Fork me on GitHub
isolate.js via AST analysis
Recent changes in SDK
nodeconf 2012

I had a great pleasure of attending nodeconf that took place in Portland. Conference far exceeded all my expectations. This post has no chance to capture all of the interesting things that happened there, but I still would like to make an effort and share some of the highlights.

First off I would love to thank Mikael Rogers and everyone who helped him to set a whole new standard of how conferences should be held! Theatrical feel was through the whole conference: venue at Imago theatre, talks that flowed into each other according to well crafted scenario. Remarkably single track (or single thread if you will :) model was used, which once again proved to be a perfect fit for event(ed) JS. Another novelty was in a “save questions for the bar” rule that worked out amazingly well.

Day I

Both nodejs and conference was started by a Ryah Dahl, who shared with us a little bit of a background story on how & why node was started. Then very first contributors took a scene to talk about very early days of project, when it was very unstable, but still very fun to hack on. That flowed into talks about how node was maturing and making it’s way into production at Yammer and elsewhere. Was interesting to learn why companies like Microsoft invest into nodejs and how it became first class citizen on windows. That required core changes to an underline platform layer resulting into libuv. There were several interesting talks about libuv, specifically showing how node like servers can be written in C, how much work is still ahead to be done, and how libuv go life of it’s own. Today it is used by other new projects, including Mozilla’s own rust language, by Luvit - node for a Lua language. I was completely blown away by Fedor Indutny’s crazy simple language candor with dedicated VM and JIT compiler he wrote. Unfortunately I did not get a chance to chat with him as he disappeared immediately after his talk.

At the end of the day we all headed to a bar. It turned out there is a nodejs powered karaoke bar in portland, that even has a public REST API. That is also where I was rocking out with others until almost loosing a voice (My apologies to everyone who had to bare with that).

Day II

Node is all about streaming and piping data from one stream to another. That’s what it’s good at and that’s what everyone writing node programs should embrace! We got some interesting talks on that topic. Although there was a talk that demoed that streams are not a magic dust that makes things fast, sometimes buffering is a better approach. Most important take away was that everyone should benchmark to make reasonable decisions based on numbers, not instincts (I feel people often tend to jump to conclusions without any mesures). It was also interesting to learn how streams and other node concepts had being used to drive innovation into browsers.

Another section of talks covered scaling node. That involved talks about tools for benchmarking, profiling, memory leak hunting and real life experience from Voxer.

Final section of talks was about hardware that completely blew away everybody’s minds! All kinds of crazy stuff, that I won’t even attempt to describe, just make sure to watch videos once they’re realized! Here is small teaser of Rick Waldron’s amazing node powered robot to give you an idea.

After party had an epic live performance from the band assembled of a fellow community members! You guys really rocked, I still don’t understand how did you manage to put this amazing performance without much practice.


It was pleasure to finally meet friends from internet. I’m also super happy I got a chance to share some of my ideas how I think node streams can be made even better, I’m encouraged and plan to put more effort into this. Also, glad I got some folks excited about my recent obsession lispyscript! Finally thanks for encouraging me to submit a talk for upcoming, I’m motivated and plan on doing it this weekend!

Speciall thanks to Mozilla for letting me be part of this amazing event!

Write logic, not mechanics
protocol based polymorphism
(clojurescripting :intro)
JS Guards
Packageless modules
Addons in multi process future
Yet another take on inheritance
Shareable private properties
Evolving VS Adjusting
oh my zsh
Git status in bash prompt
CommonJS based Github library
Gist plugin for Bespin
google pages is dead
bespin - JavaScript Server
bespin chromend
bespin multibackend mockup
Google App Engine + Helma = geekcloud
Bespin to Helma
Adjectives | Ubiquity + Bugzilla love
Some Mock-up around Ubiquity
Ubiquity command Say
ubiquity command dictionary
Picasa Photo Viewer (Linux port) - Updated
Ubiquity command for JIRA & Crucible
Picasa Photo Viewer (Linux port)
KeyZilla 0.1
XUL Development