TJ Holowaychuk

Programmer & artist. Creator of the Luna programming language, Koa, Express, Stylus, Cluster, Mocha, Jade, node-canvas, component and many others. Pastafarian


Farewell Node.js

Leaving node.js land


I’ve been fighting with Node.js long enough in production now that I don’t enjoy working with it anymore unfortunately, so at least for now this my formal farewell! And more importantly I need maintainers!

Node does some things well, but ultimately it’s not the right tool for the type of software I’m interested in…


StrongLoop & Express


I understand this won’t clear my name, and that’s not the intention of this post. I want to put the facts out on the table because people are pretending they know them.

I have chatted on and off with the guys at StrongLoop about improvements to Node for quite a while, and they approached with the idea of “sponsoring” Express, aka compensation for…


Go packages


Similar to any other large communities it becomes increasingly hard to find quality packages for any given task, so this is simply a list of ones that I’ve needed and found to be useful for my projects.

Go’s standard library is pretty fantastic so this list is short for now, I’ll try and remember to update it as I Go!


Profiling Golang

Concise guide to profiling Go programs


There are plenty of guides for profiling Golang, just writing this here so I can find it again easily ☺

The runtime/pprof package offers lower level control over creating profiles, and the very cool net/http/pprof package registers HTTP end-points for profiling live applications, this is a…

Publications edited by TJ Holowaychuk

Code articles, tutorials, and rants.


Farewell Node.js

Leaving node.js land


I’ve been fighting with Node.js long enough in production now that I don’t enjoy working with it anymore unfortunately, so at least for now this my formal farewell! And more importantly I need maintainers!

Node does some things well, but ultimately it’s not the right tool for the type of software I’m interested in…


Koa 0.5.0


We’ve had three minor releases since the last blog post so let’s see what has changed!

Formatted JSON responses


Koa 0.2.0


This release of the Koa framework is short but sweet. If anything this is an indication that our design choices with 0.1.0 were pretty solid, we haven’t come across any road blocks yet…


Actorify


The actorify module allows you to turn any duplex stream into an “actor” for simple & efficient bi-directional messaging.

The API

Actors are instantiated with a duplex stream, so features such as reconnection logic and multiplexing are delegated to third-party.

After an actor is created you may send messages back via the .send(


GIT Conventions


These are my personal conventions, mix and match or ignore, but at least have some form of convention for yourself and your team! :)

Respect Existing Project Conventions

This is one I don’t see applied too often, but when you’re committing to an open source project that you either have direct access to — or are patching, take a…


Introducing Clib

Micro C Libraries & package manager


Despite the ubiquitous nature of C it’s sometimes difficult to find just what you need, and you’re especially lucky if it’s not part of some gigantic library of unrelated code. For this reason I’ve decided to create Clib, a GitHub organization aimed at providing small, focused, discoverable “micro libraries”.


Request for maintainers


As most of you know I have a lot of projects (500+ repos), some tiny and some large. Most of them are considered “done” the odd bug or two might be found or platform changes might require that the project be updated — say to a more recent node release that introduces a breaking change.

Some people have suggested that I’ve been “spread too thin”…