margin

Writing

2013
Craft

Node.js style guide

2013.051

Our team's Node.js conventions -- error-first callbacks, early returns, callback alignment, and the formatting rules we drilled into every new developer.

Craft

History as communication

2013.049

Commit history isn't a log of what happened -- it's a narrative you author. Rebase, atomic commits, and the discipline of writing history for the person reading it six months from now.

Craft

Starting over

2013.036

Ditching WordPress for a custom Node.js blog engine powered by libgit2 -- git as the content store, markdown as the writing format, npm for everything else.

2012
Node

Connection pooling

2012.202

The Node.js MySQL driver doesn't pool connections. Under load, you run out. Fifty lines with generic-pool fixes it.

Node

URL mapping in Redis

2012.162

Loading every product, category, and brand URL into a Redis hash at startup, and a middleware that rewrites requests before Express sees them.

2011
Craft

The catch that never fired

2011.317

Reading the parent frame's URL throws in Firefox and returns undefined in WebKit. The defensive catch I wrote never fired.

Notation

Tangled Up in Blue

2011.100

Dylan, and the artists who orbit him.

Notation

Naagin

2011.087

Decibel made Indian rock that sounds Indian. That shouldn't be rare, but it is.

Notation

Chandigarh

2011.065

Chandigarh was beautiful. I couldn't feel it. I don't know why.

Notation

Ping from Noida

2011.007

An arrival note. The cold, the office, the exhale that took five days.

2010
Notation

Rare Pictures of Hyderabad

2010.350

Old photos of a city I've lived in for two and a half years and mostly walked past.