Arnt Gulbrandsen
About meAbout this blog

A sort of bug tracker

All bug trackers suck. That's why Abhijit and I really don't want to use one for aox.

Here's what we do instead. It's subtle.

There's a notes file in the version-controlled source tree. The only way to add to a note (ie. file a bug) is to make us do it. There are some scripts that look at the file.

The notes file and SCM

The notes file is very mildly structured. Basically anything can go in that we want to add. This is an important point: Adding to this, or working with it, requires hardly any effort. Understanding what to add requires mental effort, but the procedure of adding does not. (At the same time there is some structure, enough that reporting scripts can extract useful information from the file.)

There are no required fields to fill in, there's not even any need to change to a different program. The drawback is that it's impossible to append screenshots or other data.

The file is version-controlled along with the files it's about. The regular commands to look at versions and review new changes for the source code apply. The atomic commit that resolves a bug also updates the tracking file.

I suspect that version-controlling it separately wouldn't work as well. I don't have any rational arguments, but intuitively I think that bug-tracking needs to be closely tied to the source code it tracks in order to work well.

Receiving bug reports

There's no way for an end-user to talk to the bug tracker. End users can send mail, and someone such as I must answer the mail and make notes as required.

This is a feature, not a shortcoming. Answering the mail is a chore, but it's not (much) worse than handling user-supplied bugs in typical bug trackers, and the results are better.

Classic bug trackers have a great advantage if most bug reports don't need to be handled by a human, or aren't handled by one. Three examples of many: The program has a feature that users report as a bug. Users report supposed bugs because they didn't find the solution to their problem in the (disorganised) documentation. The developers only fix bugs that are relevant to their own use of the code.

Statistics, reports, notifications, etc.

The notes file is version-controlled, and all decent version control systems are able to run user-provided code when a file is updated.

We use git. git hooks can look at changes to the notes file and do anything, including update a web-accessible list of open bugs, notify people via email or jabber, etc. We don't do any of that, but it's possible.

The structure we use is simple: A single-line headline, one empty line, optional body text indented two spaces or more, magic lines at the end, also indented.



Snippets is a jabber/xmpp bot that periodically asks each team member what are you doing? and collects the answers on a web page. (more…)


The ReadyNAS broke down

After a few years of service, my ReadyNAS NV+ broke one day. The hardware was fine, but the software had painted itself into a corner and didn't want to boot at all.

Googling showed that lots of other people have been bitten by the same bug. I phoned support. The support person told me that my box was out of warranty, and would I please post to a web forum and I'm sure someone will help you. I could tell from his voice that he didn't really believe that.

I eventually moved the drives to a linux box. LVM (on ubuntu 10.04) recognised the drives automagically and ext3 let me mount the file system, so I bought a new Synology NAS and copied the data to it.

When I did a factory reinstallation (the hard way) the ReadyNAS booted without problems. From now on I'll use it to back up other devices, nothing more.


Bose QC15

A neighbour is noisily tearing down one of its office blocks. I'm sure a new unpretty office block will then be noisily built in its stead, so I bought a Bose QC15 to work in peace meanwhile.

Summary review: It handles the construction-related noise well, but it does really badly with respect to human noises such as a telephone conversation or a crying baby.

Both of the employees I spoke to in the Bose shop here in Munich were sloppy, arrogant and ignorant. Not a good combination. I walked out, and bought the QC15 at Hifi Concept instead.


Into the flow, quickly

One really good thing I learnt from working with Abhijit on Archiveopteryx is how to get quickly into the flow. Click, flow.

The basic pattern involves a good kind of task, and a good way to get to it. Both parts are vital. (more…)