A Day in The Life of http://adron.me

So I sat down and hacked up a new version of Adron.me. I snagged a site theme and skin from Theme Forest and ran with it. Broke apart each of a few sections to get a minimally viable site up within 24 hours. I got interrupted a few times with a few other things I needed to wrap up, more about those things later. For now I put together the site, check it out @ http://adron.me. I also put together a video of the hack session during various stages of getting the site live.

During the video I also have a few excursions away form the code to help stay focused on the code. At one point I’m actually working on the Junction App too. Also, keep an eye on it and you can see my Sublime 2 usage, iMac, Lenovo Carbon X1, Ubuntu and a whole slew of other tech. More on all those things too, for now… here’s the video.

…and yeah, no real code complexities or such, mostly an excuse to make a video to some oddball dubstep from the scraps of video I put together during building http://adron.me. Hope it was entertaining, cheers – Adron.

Johnny 5 yo! Nodebots Day PDX

Today the first Nodebots Day took place worldwide! Portland held its own event here at the old Urban Airship garage space. With the garage door wide open and the glorious day gleaming daylight into the garage 50+ hardware and coding beginners, learners, coders and hackers of all backgrounds came together. Breadboards were wired up, code was slung, robots moved and twitched to life.

This all started with a super quick organizing effort by some local JavaScript hackers to join the worldwide Nodebots Day (check the repo for infoz). After a meet, some sponsors jumping to our aid, and some hustle by some great people, the event in Portland came together. The turnout was great!

The bits everybody got...
The bits everybody got…
Bits up close...
Bits up close…

My Own Robot Battle

Oh dear, I was dead zonked when I arrived. It’s been a super long and hard week. I’ve had deadlines to meet, code to write and OSCON to attend, needless to say that leaves basically a few hours each night of the last week to actually recharge. Things were definitely catching up with me…  and I’ll admit I made almost zero progress, however I was super excited to see what many others accomplished!

Panoramic View of Nodebots Day PDX.

There was the quad copter that Carter @CarterRabasa got up and flying with some aerobatic acrobatic flips.

There was an erector set wheeled robot that was primed for deployment. Nothing like combining the quality and build endurance of erector set gear with that of modern machine and robot automation for fun!

Troy going mad scientist on his bot.
Troy going mad scientist on his bot.

Troy @thoward37 was building a walking bot for world domination… which if he didn’t finish it after my departure I’m looking forward to see it walking and doing full auto-deploy in the near future.

Serial Port for a head!
Serial Port for a head!
Wires, Connections, Devices & More...
Wires, Connections, Devices & More…

There was musical linkages being made to device and computer alike. With code combining to form knew methods of interaction between device, human and music.

Along with these bots there was much progress among breadboards laced with ideas and blinking LEDs amidst us all. I do believe everybody had a blast and learned a lot.

Erector Robot
Erector Robot
Edit Post ‹ Composite Code — WordPress
Working together… creating the robot society!
Codez! Arduino! Wires! Brains!
Codez! Arduino! Wires! Brains!

Johnny 5 and I say “THANKS AND HIGH FIVES!!!”

A huge thanks to so many, I might have missed a few people, apologies (and let me know, I’ll add you to the list of thanks!!)  —  and also, thanks to EVERYBODY who came out and worked and learned about robots!

Also if anybody has any questions about robots, javascript, node.js, robots in Portland, Portland Bridges or the event or about coming to Portland to hack, code, beer, food or just move here. Let me know and I’ll be more than happy to hook you up with appropriate resources!  Peace!

  • @HackyGoLucky – Cuz yeah, you kicked some ass and herded all us cats together for this! Thanks Tracy!
  • @nexxylove – Thanks for the code repo o’ lights! I’m sure you enjoyed San Francisco, we missed you in Portland! We’ll hack when you’re back!
  • @BlaineBublitz – Welcome to Portland again, thanks for traveling into town! I’ll ping you next I’m in Phoenix and we’ll hack the light rail. 😉
  • @s5fs – Yo, ok, you just front loaded my cortex full of ideas on that last brunch convo. Thanks for helping, being kick ass, and coming out to Nodebots day!
  • @nickniemeir – Thanks for coming up to Nodebots day PDX!
  • @thoward37 – What did you do again? You keep showing up everywhere… are you a robot?
  • @CarterRabasa – Thanks for coming down to the Stumptown from the Emerald City.
  • @_jden – Yo, Palo Alto to bridge city (another PDX nick name)… welcome back to PDX and to the future with our Robot Overlords!

Resources:

Who is Node PDX for? Who should attend? What’s going on? Where are we at?

Node PDX is a conference that is for programmers (ticket link below!!) both new to the industry and stalwarts, ladies and gentlemen, and simply the curious or already seasoned pros of JavaScript. Our goal is to have great speakers, great topics, encourage and support intelligent and forward thinking conversation. All of this and we’ll strive to move the industry forward as a whole in whatever way we can. Node PDX is for those that want to help do just that!

What is Node PDX? What is Portland?

Node PDX is a conference held yearly in Portland, Oregon. It’s driven by the passionate tech industry located in Portland and around the country and world. At the conference we’ll dive into technologies surrounding JavaScript, Node.js, NPM, hardware and beyond. Other topics may include patterns, design practices, new libraries, and technology add ons.

Portland is a coder’s paradise! Nuff’ said. 🙂

Where is Node PDX?

PDX is the airport code for Portland, Oregon. It’s not at the airport, but if you fly in to our fair city for Node PDX, take the light rail Red Line MAX to downtown and enjoy our coffee, beer and some of the finest food and the most amazing cart collections you’ve ever seen in your life. Promise!

If you’ve never heard of Portland, Oregon here’s a documentary starter…

When is Node PDX?

First off, it’s going to be every year. This year, the grand year of two thousand and thirteen, is going to be on the 16th and 17th of May. That’s a Thursday and Friday on the 3rd week of the fifth month of 2013. Come for Thursday or Friday or Thursday and Friday and enjoy the weekend afterwards. However you pick your days, we hope you come and join us for Node PDX 2013 on May 16-17, 2013.

Why Node PDX?

This is easy. Node PDX is a conference that Troy Howard and I put together out of a frustration from two things: we wanted a conference without the high prices and had a desire to contribute to the local JavaScript and Node.js community, and any other interested coder community. Thus, Node PDX was born in a few quick weeks of hectic hustle. This year we’re back at it with Luc Perkins hacking the program along with us.

Node PDX, How is This Happening?

Mostly magic, with the help of some druids and unicorns. But for some of the heavy lifting we’re looking for sponsors, but we’re throwing an interesting little twists into the fray.

Last year we worked hard to be inclusive and bring together great talks. We did this in a various ways. The first was, we used a Github repository for the site and pull requests as the method to submit talks. We figured, what better way to submit a talk to a developer’s conference than to throw down a commit and pull request to Github. Needless to say, it worked great!

In 2012 to insure we had proper party groove and vittles for the attendees we had volunteers throw down some chef skills and some great sponsors including New Relic, Mozilla and others. This year we’re aiming for a slightly different angle and putting a little more crowd sourcing into the ingredient list.

So here’s how you can get involved!

  • First and foremost: Come to Node PDX – Get your tickets here!!  Oh yeah, there’s a 200 limit, and only so many early birds so do NOT wait!!  🙂
  • Second, throw a talk into the mix! We’ve got two tracks lined up so we’re looking for a lot of material, beginner to advanced!

That’s it! To keep up with the latest, subscribe to my blog here and/or read up on the Node PDX Site! We’re looking forward to seeing you in Portland (even if we see you in Portland every day!)  Cheers!

Getting Github : JavaScript Libraries Spilled EVERYWHERE! Series #003

This is an ongoing effort putting together some JavaScript app code on client and on server that started with blog entry series #001 and #002.

This how-to is going to kind of go all over the place. My goal is to get github data. The question however is, how and with what. I knew there were some available libraries, so writing straight and pulling straight off of the API myself seemed like it would be unnecessary work.

The github API documentation is located at http://developer.github.com/v3/ with the list of client libraries for ease of access listed at http://developer.github.com/v3/libraries/. The first two that I forked and cloned were the gh3 and npm installed the octonode and node-github libraries.

Node.js Based Github Libraries

The two node based projects install via npm, as things go with node and were super easy. The first one I gave a test drive to is the https://github.com/ajaxorg/node-github project. I forked it and dove right in.

[sourcecode language=”bash”]
$ npm install github
npm http GET https://registry.npmjs.org/github
npm http 200 https://registry.npmjs.org/github
npm http GET https://registry.npmjs.org/github/-/github-0.1.8.tgz
npm http 200 https://registry.npmjs.org/github/-/github-0.1.8.tgz
$
[/sourcecode]

After that quick install I took a stab at the test code they have in the README.md.

[sourcecode language=”javascript”]
var GitHubApi = require("github");

var github = new GitHubApi({
// required
version: "3.0.0",
// optional
timeout: 5000
});
github.user.getFollowingFromUser({
user: "adron"
}, function(err, res) {
console.log(JSON.stringify(res));
});
[/sourcecode]

This worked all well and good, so I moved on to some other examples. The following example however needed authentication. To authenticate you’ll need to add the little snippet below with the username and password. However there’s also a Oauth token method you can use too, which I’ve not documented below. To check out other auth methods check out the documentation.

[sourcecode language=”javascript”]
var GitHubApi = require("github");

var github = new GitHubApi({
version: "3.0.0", timeout: 5000,
});

github.authenticate({
type: "basic",
username: "adron",
password: "yoTurkiesGetYourOwn"
});

github.orgs.get({
org: "Basho"
}, function(err, res){
console.log(res);
});
[/sourcecode]

The result is prefect for putting together a good display page or something of the organizations.

[sourcecode language=”bash”]
$ node adron_test.js
{ login: ‘basho’,
id: 176293,
url: ‘https://api.github.com/orgs/basho’,
repos_url: ‘https://api.github.com/orgs/basho/repos’,
events_url: ‘https://api.github.com/orgs/basho/events’,
members_url: ‘https://api.github.com/orgs/basho/members{/member}’,
public_members_url: ‘https://api.github.com/orgs/basho/public_members{/member}’,
avatar_url: ‘https://secure.gravatar.com/avatar/ce5141b78d2fe237e8bfba49d6aff405?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png’,
name: ‘Basho Technologies’,
company: Basho,
blog: ‘http://basho.com/blog/’,
location: ‘Cambridge, MA’,
email: null,
public_repos: 105,
public_gists: 0,
followers: 0,
following: 0,
html_url: ‘https://github.com/basho’,
created_at: ‘2010-01-04T19:05:19Z’,
updated_at: ‘2013-03-17T20:29:09Z’,
type: ‘Organization’,
total_private_repos: YYY,
owned_private_repos: XXX,
private_gists: 0,
disk_usage: 788016,
collaborators: 0,
billing_email: ‘not_a_valid_address@basho.com’,
plan: { name: ‘platinum’, space: 62914560, private_repos: billions },
meta: { ‘x-ratelimit-limit’: ‘5000’, ‘x-ratelimit-remaining’: ‘azillion’ }
}
[/sourcecode]

Now at this point there’s a few significant problems. Setting up tests of the integration variety for this library gets real tricky because you need to authenticate, or at least I do for the data that I want. This doesn’t bode well for sending any integration tests or otherwise to Travis-CI or otherwise. So even though this library works, and would be processed on the server-side and not on the client side, having it as a non-tested part of the code base bothers me a bit. What’s a good way to setup tests to verify that things are working? I’ll get that figured out shortly and it’ll have to be another blog entry, maybe. For now though, let’s jump into the client side library and see how it functions.

Client Side JavaScript Github

For the client side I started testing around with the gh3 library. It has two dependencies, jQuery and Underscore.js. jQuery is likely always going to be in your projects. Underscore.js is also pretty common, but sometimes you’ll find you’ll need to go download the library. Upon download and getting the additional libraries I needed installed, I gave the default sample a shot.

[sourcecode language=”html”]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>gh3 Sample</title>
</head>
<body>
<ul id="user"></ul>
</body>
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/underscore-min.js"></script>
<script src="js/gh3.js"></script>
<script>
var adron = new Gh3.User("adron")
, userInfos = $("#user");

adron.fetch(function (err, resUser){
if(err) {
throw "outch …"
}
console.log(adron, resUser);
_.each(_.keys(resUser), function (prop) {
userInfos.append(
$(‘<li>’).append(prop+" : "+resUser[prop])
);
});
});
</script>
</html>
[/sourcecode]

This worked pretty seamlessly. Also it got me thinking, “what do I really want to do with the github library?” If it’s a server side service, obviously I’d want to use the Node.js libraries probably. However if it is client side data I want, is it even ideal that the server side actually pull the data anyway? The other issues around cross site scripting and related matters come into play too if it is a client side script, but this might be, even in spite of that, just what I needed. For now, that left me with some solid things to think about. But I was done for now… so until next entry, cheers!

JSConf EU

In light of the upcoming Cascadia.js Conf I was digging around last night through some of the other JavaScript Conference videos and found the JSConf EU’s listings on Youtube. Here’s a few picks from the ones I watched. I’d highly advise checking these out, there’s a lot of great content there. With that quick introduction, here’s Max, Irene and James. Cheers!

Max Ogden @MaxOgden provides reasons how to help Government work better through various means…  absolutely great talk. Check it out.

Irene Ros @ireneros combining practices we’ve had for years into a better way to get data.

James Halliday (@substack and github) UNIX Philosophy and…  just watch this, James is kick ass and contributes a ton to the #nodejs community.