Posts in 'misc' – Page 2

My first week as a Launchpad developer: impressions

Roughly a week ago I joined Julian, Muharem and Michael, working on the Soyuz component of Launchpad. For now I've been working on easy Soyuz bugs, as a way of becoming more familiar with the internals. I'm working from home but I had the chance to hang out with some of the other Launchpad developers, including the full Soyuz team, at UDS Lucid in Dallas.

Launchpad is different from most other FOSS projects I have worked on so far. Some things I noticed during my first week:

The codebase is big and well tied together. I don't think I've ever used grep and ctags as often as I have in the last week. Fortunately, the directory structure makes it relatively easy to predict where to look for things.

Reviews are really quick - no long round-trips between author and reviewer trying to get a branch landed. This is a really really great thing.

It's easy to find somebody familiar with a particular piece of code and it doesn't take long to get an answer when you ask questions. I'm still getting used to this - I tend to ask questions sporadically because I have gotten used to having to wait a couple of days for an answer that's actually useful.

Setting up the development environment takes some time. Or perhaps I'm spoiled by Bazaar where "bzr branch lp:bzr bzr && ./bzr/bzr selftest" is all you need to start hacking. And it seems like karmic is the only platform on which things work - I tried with Debian Sid and Lucid as well, but things broke in strange and unusual ways.

The test suite is heavy and takes long to start up, something that makes proper TDD too hard. I also managed to run into some unexplainable problems where the librarian wouldn't shut down on one of my systems. Since there is only one instance of the database it is not really possible to run multiple instances of the testsuite at the same time unless you use chroots or something like that - this makes it hard to work on multiple branches at the same time, something which would especially be nice since the testsuite is slow (so you can run the testsuite in one branch, hack in another and alterate).

Doctests, while fast, a bit of a nuisance. Because of the setup/teardown overhead that is paid for every single test, doc tests are a lot faster than unit tests. On the other hand, pdb doesn't play well with doc tests - it doesn't show any context. Conceptually I also prefer small unit tests over doc tests, since they're quicker to read, easier to understand and there's less side-effects from previous instructions in the test that could affect the code that's being tested.

And for those that know me well; yes, getting used to somewhat regular working hours was indeed a challenge, but I seem to have managed.


US: Observations

These past few days in the US were a bit of a rollercoaster. Some random observations:

  • The mentor summit was very nice and well organized (or rather: well disorganized). Lots of awesome people around from a wide variety of projects and nationalities.
  • "Next Generation VCS" seems to be an alias for git these days in the minds of most people.
  • I didn't write a single line of code in almost a week, something that is very rare.
  • Driving an automatic gives you two spare limbs to use for other things. What those other things are, I have yet to figure out.
  • Is the fact that your kid was student of the month or the fact that you own two cats and a dog really something that belongs on a bumper sticker?
  • Gas is cheap (compared to Europe). I drove 300 miles on a $30 tank.
  • The malls in the Bay Area are some of the biggest I've ever seen, but strangely enough they seem to lack both book- and cd-stores.
  • It is legal to turn right on a red traffic sign in California unless otherwise indicated. It took me a while to realize this until people repeatedly started honking behind me...
  • The waiver I had to sign to be able to skydive in California was scary. I can live with my operating system coming without implied warranty or fitness for a particular purpose, but my parachute?
  • I stopped pretending to have any regularity in my sleeping habits. 6 AM flights? It seemed like a good idea at the time.


CtrlProxy: Looking for a new maintainer

After over 7 years of working on it off and on, I'm looking for somebody to help maintain (and eventually take over) CtrlProxy. I started working on CtrlProxy somewhere in 2002, only a short while after Wilmer started hacking on BitlBee. If I remember correctly I started working on it because I didn't want to run a separate dircproxy (the only real competitor at the time) instance (with configuration) for each IRC network that I connected to. It was also just a good excuse to play with the IRC protocol a bit.

Over the years, CtrlProxy has served as a playground for me to try out new and interesting things. It's been rewritten or severely refactored several times in its early history, the latest time being the 3.0 release (from 2005). I've tried different build systems, I've tried different implementation languages, I've tried different configuration file formats, I've tried different support libraries, I've tried different version control systems, I've tried different documentation formats. So while it's definitely been a very educational project for me personally, I haven't really had the time or the interest to dedicate to the project that it deserved during the last few years. This was mostly because there were other more interesting FOSS projects I spent my spare cycles on.

These days there are plenty of other good IRC proxies out there, such as BIP, so I doubt CtrlProxy will be missed if it were to disappear. Despite that, if anybody is interested in taking over, please send me an email ( or contact me on IRC (jelmer on the OFTC and Freenode networks).

Currently Playing: Anathema - Shroud of False


Oxegen '08

Oxegen was a bit expensive but awesome. Irish people rock.

update: Wilmer has details.



I've joined the microblogging hype; I'll be giving status updates on my coffee drinking habits and other uninteresting facts at


Building shared and static libs on different platforms

One of the main portability problems across different POSIX implementations is the way shared and static libs should be built.

Just came across a nice overview of the flags to use on the different platforms:

it would be nice if POSIX could standardise this at some point.


Converting CSV files to QIF

Recently I've started using GnuCash for my personal finances. Eventually I got it running well, after I recompiled it myself, because the version in Debian was segfaulting on start-up (it is also very outdated).

My bank, PostBank only supports exporting transactions in it's own custom CSV files which, of course, aren't supported by Gnucash. I wrote a simple Python script that converts PostBank CSV files to QIF, which Gnucash can handle ok.

I'm publishing the script here for others interested in importing PostBank CSV files in their finance apps:

# Very simple converter from PostBank .csv files to
# QIF files for use by (among others) gnucash.
# Written by Jelmer Vernooij <>, 2007

import csv, sys

rows = csv.reader(sys.stdin)

header =

assert header == (['Datum', 'Naam / Omschrijving', 'Rekening']
    + ['Tegenrekening', 'Code', 'Af Bij', 'Bedrag (EUR)']
    + ['MutatieSoort', 'Mededelingen'])

print '!Type:Bank\n'

for l in rows:
    if "-" in l[0]:
        p = l[0].split("-")
        print "D%s/%s/%s" % (p[1], p[0], p[2])
        print 'D%s/%s/%s' % (l[0][4:6], l[0][6:8], l[0][0:4]) # date
    if l[5] == 'Bij':
        print 'T%s' % l[6] # amount
    elif l[5] == 'Af':
        print 'T-%s' % l[6] # amount
        raise Error("Unknown field value '%s'" % l[5])
    print 'P%s' % l[1] # payee / description
    print 'M%s' % l[8] # comment
    print 'L%s' % l[7]
    print '^\n' # end transaction


LUG Radio Live

Just got back to the hotel after LUG Radio Live and the afterparty event. I guess the best way to describe LUG Radio live is as a your average geek conference but with a bit of a rock concert flavor: lots of cheering on, groupies, swearing, simple humor and metal music being played in between between sessions.

The talks were very good; in particular I liked Nat Friedman's talk about, among other things, the way the Oxford English Dictionary was developed (although he still doesn't seem to understand what is so bad about the MS-Novell deal) and Aaron Seigo's talk on KDE 4 (made my fingers itchy and want to contribute..). The short talk Szilveszter and I gave on bzr-gtk went ok, but was probably not all that entertaining right after Malcolm's talk on zombies and Ubuntu.

The major thing I disliked is the fact that the wireless was very crappy. I got it to work on two occassions, just long enough to read a few emails. It took a while to get used to the weird accent with which they speak English around here and I seem to've picked up a few swearwords that I now have to unlearn again. Doh.

All in all really worth the trip from Amsterdam and definitely something to keep in mind for next year!

Erik and I decided to stay an extra day to see a bit of Wolverhampton and Birmingham, but it turns out this isn't your typical tourist spot.


UK Summer

Great Britain appears to be the place to be this summer; a lot of the annual conferences are held in various cities around the UK this year: DebConf (Edinborough, 17-23 June), GUADEC (Birmingham, 15-21 July), Akademy (Glasgow, 30 June-7 July) and last but not least the next Bazaar sprint (London, 14-20 May).

I'll be attending at least the Bazaar sprint and LUG Radio Live, and I hope to be present at GUADEC, time permitting.


More great bands

Thanks Wilmer for introducing me to a great Dutch space-rock band called 35007. Their sound is quite unique and reminds me of Porcupine Tree or even Mogwai. Unfortunately, like so many awesome bands it seems they've already split up so it's unlikely I'll ever be able to ever see them live.

Currently Playing: Riverside - Second Life Syndrome - Conceiving You

The more I listen to Riverside (the Polish progrockers, /not/ the Dutch cover band), the more I regret having missed their performance at Arrow Rock this year. The vocals match the instruments nicely and unlike a lot of other small progrock bands, you can hear they have a capable producer.

Muse in Den Bosch tomorrow ought to be good as well!


New blog title

I've decided to give this blog a more original title than "Jelmer's blog". From now on it will be named "Stationary Traveller", after the song by Camel and because of my continuous presence on IRC, no matter where on the world I am..


Summer of Code

I've finished the last few bits of my Summer of Code project. Client and server side authentication to CUPS using Kerberos work now, and that includes both the administration tools and IPP.

It's been fun working on CUPS and now that I'm a bit more familiar with the code, I'd like to have a stab at implementing SPNEGO and NTLMSSP support as well. This should be much easier now, as I have already done the required work to support WWW-Authenticate: Negotiate, one of the prerequisites for both Kerberos and SPNEGO.

Rolf Kvinge also seems to have been successful, Mono now has a self-hosting Visual Basic.NET compiler. I'm looking forward to trying it out, once I can get my hands on a binary to compile it with...


Ethereal renamed

It looks like ethereal has been renamed to Wireshark. The reason specified on the website is the fact that Gerald (Ethereal's founder) has switched jobs and apparently his old employer owned the trademark.


Applications for Summer of Code

For the second time I will be participating in the Google Summer of Code. My project this year is Kerberos integration in CUPS.

Currently Playing: Counting Crows - Goodnight Elizabeth


GSSAPI patch for Dovecot

My GSSAPI patch for Dovecot is now in CVS. Thanks to Timo for committing it to CVS, and to pod for fixing some issues. This patch just implements authentication.

We're now going to work on support for integration verification (sign) and protection (seal).