Archive for July, 2007

Jogging my Memory

Wednesday, July 18th, 2007

Boston is a great city. I am there again this week visiting headquarters for some quarterly meetings and hanging with my colleagues. The best part is staying downtown… the roads are non-rectilinear and everyone drives like nuts, but there is so much rich history all around. I managed to score a great hotel downtown and have an awesome view from the 16th floor looking East.

I’ve been traveling quite often lately and to prevent lethargic tendencies while on the road, I enjoy finding a fun spot to take a jog — here is my latest route. My colleague Bob DeMaria runs this path weekly and invited me to join today. Notice the proximity to Logan Airport (BOS)… we had 757’s flying directly over us a mere 1000 feet in the air!

open-SORE-ce software

Monday, July 9th, 2007

Open source software is sometimes like “getting what you pay for.”

Don’t get me wrong… I’m a firm believer in open source software and have benefited greatly on many occasions by being (cap)able to make custom changes.

But here’s what pisses me off greatly besides the typical poorly documented, poorly written, poorly packaged freely available tarballs from random (but sometimes talented) people — bad software contracts. I’m not talking about legal stuff. I’m talking about software APIs.

Case in point: I’m authoring a plugin for Vim. Rather than start entirely from scratch, I found a freely available, basic plugin that is advertised as a ‘framework’. One of the methods that required implementing has the following signature:

function name(path): string[]

My implementation didn’t work even though it matches the above description. After following an example and briefly reviewing published software that already implements it, I was sure my implementation was accurate. Long story short, I had to crack open the framework, plaster it with debugging statements only to find their “definition” of an array of strings is a single string with NewLine delimited sub-strings.

string[] == "string1\nstring2\nstring3\n"

Do you call that a return array of strings? Ok, it’s certainly parseable. But come’on… I would have expected:

string[] == ['string1', 'string2', 'string3']

After a long night of reverse engineering, I’m pissed that this ‘framework’ has really turned into a DIY job.