NodeLabs, the latest creation of NodeKC

November 14, 2012 - by Luke Patterson

This is a guest blog post by Luke Patterson, an intellectual juggernaut, i.e software consultant at Keyhole Software. Check out his KC User Group Tour to learn more about Kansas City, user groups, and what an intellectual juggernaut is.

Be sure to check out Luke's interview with NodeLabs organizer Andrew Dunkman in the last half of this post.

Some Node.js bigwigs, Paolo Fragomeni, co-founder and CTO of Nodejitsu, and Ed Saipetch, then Senior Technical Director at Joyent, stopped by Kansas City in May, and spoke at the NodeKC "Drinkup" event. That’s where I first “drank up” the platform and the culture of Node.js. It had a refreshing taste and I didn’t even have a hangover the next day. I was hooked.


I drank the punch, now I needed a main course. Something meaty, and preferably MSG-free. Don’t get me wrong - I enjoy light meeting topics such as “Integrating Twitter with toilet” as much as the next person, but I also like to hear about the practical aspects of everyday software development. NodeKC delivered on both fronts. It is the shoes-optional yet discipline-progressing environment that I had been looking for. I’ve since been to several NodeKC meetings:

Although the technical merits of a platform are surely significant, the importance of the surrounding culture can’t be overstated. Here, NodeKC is a shining beacon. If you want to know what kind of individuals coordinate and attend the Node.js meetups, rest assured they pass the “fishing trip” test. The “fishing trip” test is basically this: If you were stuck for a few hours in a small fishing boat on a summer lake with the person, how annoying would it be? ... so, I think I’ve drifted off course – I don’t even fish – what was my point again? Oh yea, basically I was just trying to say that NodeKC is filled with down-to-earth people that help foster a fun and beneficial environment.

NodeLabs, the latest creation of NodeKC

So the philanthropists coordinating NodeKC, along with a few other local Nodesters, realized that Node.js is more than just an awesome platform - it's a fundamental human right. They spun up NodeLabs to help empower people with open source teaching materials and training for Node.js.

Gathering financial and logistical support from local tech enterprises, including the corporate steward of Node.js, Joyent, NodeLabs held its first session, themed "Intro to Node.js". There was a great turnout.

Can you find me in the picture above? I’m sitting next to the person with the laptop.

I think the “Labs” portion of the “NodeLabs” name is fitting and did help capture the essence of the first event. The event was sorta like “The Good Parts” of being in a university lab session or study hall with a group of helpful TAs. It had just the right blend of structure, flexibility, direction, exploration, formality and tomfoolery. We even had music and snacks. My only complaint was that the organizers weren’t wearing lab coats (they did have NodeLabs-logoed shirts), and we could have used a few more oscilloscopes and bunsen burners.

The event was split into two parts. The Friday night session was a couple hours focused on helping everyone get their local dev environment set up for Node.js work, and the full-day Saturday session was for the instructor-lead lectures and lab breakouts. The format seemed to worked well.

On the Saturday session, coordinator Joe Andaverde started us off with a lecture on the history and general architecture of Node before diving into the labs.

Sorry, this was the best picture I could come up with for Joe’s lecture. Joe doesn’t look too happy in the shot, but at least he isn’t blinking and he doesn’t have red-eye. The thing is – not only was Joe a key lecturer, but he was also the primary photographer. Joe hasn’t mastered the art of bilocation yet, but I hear he’s working on a module for that.

Over the next 4 or 5 hours, we all worked on the labs together and in small groups, covering everything from the REPL to HTTP to Data Storage to an IRC demo.

We all took a lunch break for some “freaky fast” food, which was provided by NodeLabs.

(Ha, I finally get it! I just realized how important the parenthesis are – it totally changes the meaning to say “freaky” “fast food”.)

Sprinkled throughout the labs were small trivia games and mini coding-challenges. There were some great prizes to be had.


Towards the end of the day we had “demo time”. Basically, anyone using Node as a side project, and especially anyone lucky enough to use Node at work, got a chance to come up to the front of the class and show some code. We saw some interesting stuff, everything from a multiplayer “jumping plumbers” mini-game to a "lorem ipsum of people" tool to a full blown rules engine used in financial work.

Pete Thomas CTO at Pollenware talks about how his company uses Node for real-deal production financial work.

So, that’s pretty much it. The coordinators thanked everyone for coming. I feel bad because the students, as a group, didn’t get a chance to thank the coordinators. And I really wanted to be the one to start the slow clap. But I chickened out after waiting a couple seconds too long of awkward room silence, which was followed by a dry cough somewhere in the back.

Q&A with Andrew Dunkman

Andrew is a NodeKC/NodeLabs coordinator. He was kind enough to answer some questions I posed to him months ago, and I never got around to writing up a blog post until now. I mention the timeline because I don’t want anything to seem out of context or strangely dated. After all, this was like way back in the B.G. (before-gangnam) era – and so much has changed since then.

What is a Node developer called?

A nodester. Not to be confused with the open-source PaaS by the same name.

Are you currently working on any Node-based projects which would be more difficult to implement with other languages/platforms?

Yes, I’m currently working on a project to give an overview of your organization on Trello.

Node is great for dealing with networks, a problem that seems to come up more and more as software is tending towards public APIs and REST services. A somewhat complicated problem of fetching data from two or three different REST APIs asynchronously to display one page is stupidly simple with Node (especially with libraries such as async). Oh, and consuming and creating JSON strings in Node? Of course, that’s a breeze in JavaScript!

What are the best stranded-on-an-island essentials for learning Node.js?

A strong understanding of JavaScript (or an okay knowledge of CoffeeScript), browsing the source of npm packages on github, and beer. Beer is probably the most important (as the creator of Node.js mentions from time to time.

What is NodeKC’s official stance on the Greek austerity measures?

BearLove Good. Cancer Bad.

If Node had a theme song, which song would it be?

Oh, it already does, and it's horrible. NPM, the package manager also has a theme song to help you remember the basics.

What makes a Node developer angry?

Non-realtime web applications, npm packages that don’t have tests, and [object Object]. Seriously though, if you can make your Node-based web application realtime and you don’t, you’re missing out. It’s crazy simple.

Douglas Crockford once said “JavaScript is the only programming language that people don’t bother to learn before using.” Is that changing? If so, how as Node played a role?

It’s absolutely changing. Node has really uncovered the strength of JavaScript—that it’s fully event-driven to the core. When all of those crappy browser quirks are left out, it’s really given the opportunity to shine.

We’re past the point were a “JavaScript developer” is someone who can write jQuery plugins that may or may not put all of its variables on the window object. As JavaScript through Node becomes a serious tool to cut development costs and severely boost performance, the industry is demanding a true JavaScript developer—one who crafts the language in a way that is beautiful and maintainable.

How has Node changed your life?

It all started with HUBOT and my love for dogs (in this case, specifically pugs). I discovered HUBOT’s “pug bomb” feature, and decided to try my hand at a Node.js application to serve up pug pictures. That web application qualified me as a “Node developer.”

A few weeks later Pat Patterson of Salesforce had to give up his ticket to Node Summit 2012. He chose to give his place to the first “Node developer” who had a running Node application in production—and that happened to be me. I can honestly say that Node Summit got me severely pumped about Node. I met a few awesome people and discovered that Node.js has an extremely active and lively community of talented developers— one that I was now a part of.

Thanks Andrew!

And a big thanks to NodeLabs, both the coordinators and fellow attendants. Can’t wait until the next session!