Posts in 'misc' – Page 2

Linux.Conf.Au 2010 - Day 1

Linux.Conf.Au has a reputation for being one of the best FLOSS conferences in the world, and it more than lived up to my high expectations. The last one I attended was also in New Zealand, but further south - in Dunedin.

Day 1 - Monday

As usual the actual conference was preceded by two days of miniconfs. On the first day I attended some of the talks in the Open Languages track.

mwhudson gave a talk about pypy - Python implemented in Python. He discussed the reasons for doing what they do and the progress they’ve made so far. Like so many of the custom Python implementations, one of the main things that’s holding them back is the lack of support for the extensions written in C for CPython.

Rusty gave a quick tutorial to talloc after lunch (“it’s a shame K&R didn’t think of this!”) and explained why it’s so great.

In the afternoon I caught some of the talks in the distro summit track. Both of the sessions that I attended happened to be Ubuntu-related - first Dustin gave a quick introduction to the components of Launchpad, followed by a talk from Lucas about the relationship between Ubuntu and Debian. There was a discussion afterwards about interoperability between the various hosting sites and bug trackers. Several audience members questioned the relevance of Debian and suggested everything should just switch to Launchpad, but this seemed to be founded in ignorance. (For the record, none were actually Launchpad developers).


Build from branch

At the moment I am returning home after three very productive and awesome weeks in Wellington, Sydney and Strasbourg.

I spent the first week in the West Plaza in Wellington, working together with fellow Launchpad developers on getting the basics of building from branches working. We eventually managed to get something working at the end of Friday afternoon. We split the work up at the beginning of the week and then worked on it in pairs for a couple of days before integrating all work on Friday. At the end of the week William managed to get a basic source package build from recipe through the queue.

Pair-programming with Jono and Michael was very educational, I suspect I’ll be a fair bit quicker when I get back to hacking on Launchpad by myself. It’s scary to see how some people can make the changes that would take me a full day in a mere hour.

Tim picked up my initial work on support for Mercurial imports and completed and landed it during the sprint. Since the rollout on Wednesday it is possible to request Mercurial imports on Launchpad. Most imports (e.g. mutt, dovecot, hg) seem to work fine, with the main exception being the really large Mercurial repositories such as and OpenJDK. This is because of (known) scaling issues that will be fixed in one of the next releases of bzr-hg.

This was the first time I was back in Wellington since 2006, and the weather this year was exactly as I remembered it; showers and wind, with the occasional day of sunshine. For a capital the city centre is quite small, but it has its charm and the view from the various hills around the bay is amazing.

On the weekend I met up with Andrew and Kirsty and we did some hiking around Wellington (where the weather allowed it).


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.