• The Node.js Community Could Use Some TLC

    I think everyone here can agree that Node.js is awesome. Along with the commonjs effort, it has intensified the interest in javascript as a server-side language. The combination of asynchronous I/O by default and strong support for easy networking code has proven to be what lots of developers want in a platform. It's exciting and the community is growing every day.

    But with growth comes growing pains. Node has matured as a project. It has a direction and a vision. This has happened organically and not everyone is aware that things are different. And I think we need to start broadcasting that direction and protecting that vision. I got motivated to write this blog post to offer some suggestions that could help ease some of the pain points of the community.

    Most of the node community is centered around the mailing lists (nodejs and nodejs-dev). I've been following the lists since the beginning. First as a lurker, then a more and more frequent contributor. There is lots of activity and some very smart people hang out there and respond frequently to questions. What's even nicer is that Ryan Dahl and other core members actually post frequently to give good info on what's happening with node. In short, it supports the growing node community pretty well in my opinion. At least until recently.

    Keep Reading The Node.js Community Could Use Some TLC »

  • Updating libxmljs on node.js: or, how to suck less at Google v8

    I just released the latest version of libxmljs for node.js http://github.com/polotek/libxmljs/tree/0.4.0. This is a major release that doesn't have many visible changes but lots of stuff happened under the hood. I figured it'd be good to describe some of my struggles with Google v8

    Debugging Segmentation Faults

    Previous versions of libxmljs were rife with segfaults that would pop up without warning. There are lots of reasons for this, but the most common had to do with not following best practices with the v8 API. V8 has this notion of Handles that are used to hold references to javascript objects in C/C++ space. Among other things, this design decision gives v8 a nice way to keep track of js references and clean them up at the appropriate time. A contrived example (assume v8 namespace).

    Keep Reading Updating libxmljs on node.js: or, how to suck less at Google v8 »