Late Night Coding

‘; ?>

As some of you probably know, I’ve been programming computers for the largest part of my life. When I was young I had a lot of time in my hands to experiment and goof around with languages, APIs, platforms etc. But it wasn’t so much time, but mostly passion that allowed (drove?) me to spend most of my free time in front of my machine: the passion to learn and the passion to get stuff working. Over the years, computing was demystified, from the bare metal, or rather silicon, to software engineering all the way to high-level APIs, academic languages and ‘arty-farty’ logic; the computer’s charms largely disappeared, the passion waned and what’s left is that feeling of habit, longlasting love for the machine, nostalgia and a sense of belonging. That certainly wasn’t the case ten or fifteen years ago.

Still, there’s something magical about staying up all night solving problems, in the absolute darkness and silence (well, at least when you’re not using a Mac tower), with no distractions or stimuli. Back in the day I’d frequently stay up all night trying to figure out how something worked, getting comfortable with one language or the other, trying to solve a interesting problem. My hardware was very modest up until I was about sixteen, but my passion unsurpassed. I clearly remember several occasions when I practically spent the whole weekend in front of the computer trying to solve some problem in Pascal or C, or later x86 Assembly. Later, at university, practically all of my — almost nonexistent — studying for exams, assignments and projects, endless hours of coding in C++ and Java, Haskell and Prolog happened in the early hours and when I graduated I continued working at night, be it for my Ph.D or my other professional engagements. Sadly, it’s not very often that I get to do this anymore. Not because I don’t have the time; but because I don’t have the will. It is somewhat regrettable, in a sense, as my experience and knowledge would probably allow me to do so much more with my programming time now than I did back then.

In the past few days I’ve been doing all-nighters as I need to finish the final pieces of my Ph.D software, an analysis and visualisation tool. The design has been stable for a long time, most of the implementation details too, but I just never got around to finishing it. In some ways it’s a bit frustrating writing software that you know no one is ever going to see or use. But it has to be done, so earlier this week I decided to take as much time as I needed to finish it and get on with finishing my thesis right after that. Unfortunately, I ran into some stupid problems with Apple’s Core Data framework and NSController classes (yep, next time I am probably going to investigate and pay attention to the people that claim that NSTreeController or some other Apple API sucks. You probably should too.) which took me back several days in rewrites and getting around them. The get-it-working stubborness was back and there are few things better than the satisfaction you get when you get the damn thing to work, watch the sun rise and go to bed (or your dayjob 🙂 )

So tonight, as a tribute to my late night coding sessions I made a short film that is more or less representative of the dark, strenuous code-debug-execute all-night sessions I’ve been going through for almost two decades now. I love working at night, and I think many hackers/geeks/programmers/whatever-you-want-to-call-us do too. This is for all of you.

I’m not a very experienced cinematographer or video editor, so I apologise if the result is not up to your average pro level. Very obviously there’s scene reuse and the presented code is only there for demonstration purposes. I’ve only shot and edited stuff once or twice before so be gentle 🙂