Musings
muse: to turn something over in the mind meditatively and often inconclusively
Pure ruby SHA1 implementation

I wanted a pure ruby HMAC SHA1 implementation (or more specifically, one that didn't just call out to the OpenSSL libraries) because we have a tool I want to make available on Windows.

Searching about a bit turned zilch up, and just annoyed me. I lost track of the number of "pure ruby" implementations of things that I found that ultimately had a native code dependency.

So I went looking for an implementation in another language that looked reasonably easy to port.

The end result is not pretty, definitely not efficient, certainly not idiomatic, elegant or even "decent" ruby code. But it serves my purposes (signing AWS requests). In the end I ported a JavaScript library that I've used with some success before. Bit manipulation in JavaScript and Ruby differs more than I'd expected.

The working code is here. Use it, laugh at it, I don't really care.

Posted at 05:02 PM

A random smattering of paint

On honesty: never tell the whole truth. Information is power; it makes little sense giving it all away. It's all about relative advantage (that last one is a 100% certified bona fide Jeff Bezos "gem").

On decision-making: decisions require time and space. It's almost impossible to make good decisions without distancing yourself from day-to-day trivialities.

On (your own) redundancy: find the balance. Build in enough redundancy so you can take time out, but make sure it's at least a little painful when you're not available.

On having a child: you're what?

Posted at 05:32 PM

Checkpoint

Been a while. A long while.

I blame Facebook.

In truth, it's just been a little crazy over the past few weeks (month? I've lost track). EC2 continues to be a mad, exhiliarating, rush of a ride. We have people beating down the door (and bidding on credentials) to secure their place. We're working as fast as we can to make that possible, and modulo a few operational challenges we're making good progress in that direction.

I've taken over a team of devs, and so spend most of my days "herding cats" (possibly the most apt expression I can think of) and taking names (I made the last bit up). Needless to say this is keeping me off the streets rather effectively.

Outside of work my wife is putting on weight in champion style. We think we have chosen a name but in the interests of avoiding jinxing it I'll leave it at that. He's active enough so most evenings we can feel him kicking, and from Claire's descriptions he gives her a good going over most mid-mornings. Fortunately he's small enough to be somewhat ineffectual (in this regard at any rate).

And all that aside another one of those rare but occasional fork-in-the-road decisions has arisen and when I'm not fighting off a tension headache I'm trying to trade futures and derivatives (or something akin to this) in an attempt to figure out what the right call is.

Wish me luck.

Posted at 12:16 AM