Blog Posts

Go Trie Benchmarks

After writing a trie I wanted to better understand its performance, so I wrote some benchmarks against various other Go implementations for storing UK postcodes. At some point since the new year I entirely replaced the implementation from my last post with one that more closely matches the “pure” trie described at the start of TAOCP 6.3; i.e. a table of nodes, consisting of a list of entries, where each node entry can be either a link to another node, or a key (that is, an entire string stored in the trie). …(more)

January 10, 2021

Golang Trie

A trie (pronounced either “tree” or “try”) is a data structure typically used to store a set of strings in a way that allows looking up by prefix efficiently - i.e. unlike a hashmap where the keys are randomly ordered - this makes it a reasonable choice for an autocompletion system. A possible advantage over binary trees is that the keys are not stored in full in each node - so if you have a large number of strings which often have overlapping prefixes (e. …(more)

December 31, 2020

Focusing on Ingenuity

I am led to believe that New Year’s Resolutions seldom work, and that a more effective approach to goal setting is to choose a theme for the year. This makes sense to me, as in hindisght 2020 threw up a few surprises. Last January, buoyed by my success in gaining various technology-related certifications, I wrote that I would focus on learning; at that time I intended to engage in more formal study, but subsequently rediscovered how little I enjoy essay writing! …(more)

December 28, 2020

Bin Calendar

Around this time each year it is especially useful to know when the rubbish is due to be collected by the local council, since the schedule is inevitably disrupted by the holidays until well into January. In fact where I live we have fortnightly collections, with different types of bin collected on alternate weeks, so I never find it easy to remember which bin is due to be put out. …(more)

December 28, 2020

seL4 on Raspberry Pi 3 in AArch64 mode

Several references exist that document how to run seL4 on the Raspberry Pi 3 in 32-bit mode. One annoying paper cut encountered when getting this working is the need for a custom u-boot - either a binary distributed by the authors of seL4, or reverting a particular commit in u-boot. A recent release of seL4 mentioned AArch64 support for RPi3. I’ve got it running, and it appears to avoid the need for a custom u-boot. …(more)

May 11, 2020


It seems right that I should mention the pandemic on my personal blog; I doubt very much that I will say anything original or interesting, but it would seem strange to look back on my writings from 2020 and see nothing about COVID-19. I had to check this, but I have been staying at home since Monday 15th March, save for occasional walks around the park. (UK schools closed on 20th March, and we officially announced the lockdown on 23rd March, but our house started a bit early due to having a mild cough. …(more)

May 6, 2020


Life comes at you fast. Since changing jobs three months ago, I have earned several cloud-related certifications, and started an assignment as a cloud security architect with a large financial services client. Consulting is quite different to ordinary employment; a great deal of emphasis is placed on making connections, and building a personal brand. I’m enjoying the variety of work, and the opportunity to develop my skills. My focus this year is on learning; I intend to spend more time reading and writing, especially as a way to distill and clarify my ideas. …(more)

January 2, 2020

PA Consulting

In early October, I will be saying goodbye to my colleagues at CV-Library after 7.5 years, and joining PA Consulting in London as a Principal Consultant. Over the course of my time at CV-Library I have got married, had a child, and moved from Southampton to Bedford. I am happy to have played a part in the growth of CV-Library as a leading recruitment brand in the UK, especially helping to make the site more reliable - I can tell more than a few war stories. …(more)

September 4, 2019

My Free Software Activities for Jan/Feb 2019

I have done a small amount of free software work! However, I’m going to cheat and list it since the start of the year. Social groups First, the fun stuff: I organised the first two meetings of the Bedford Linux User Group. Fire engines were observed on both occasions, but this was pure coincidence. I sent pull requests adding a fancy map to the new site. I need to follow up to make that mobile-friendly… apt security I sent PRs to whydoesaptnotusehttps. …(more)

February 28, 2019

Blog Migration

This evening I’ve migrated my blog to Hugo, and made it look a bit prettier. I apologise if I’ve broken any links - in particular, I don’t think listings of blog posts in a particular day or month are working. …(more)

February 27, 2019

Tokenizing IT jobs

One size does not fit all when it comes to building search applications - it is important to think about the business domain and user expectations. Here's a classic example from recruitment search (a domain which has absorbed six years of my life already...) - imagine you are a candidate searching for IT jobs on your favourite job board. Recall how a full-text index works as implemented in Solr or Elasticsearch - the job posting documents are treated as a bag of words (i. …(more)

May 29, 2018

Jenkins milestone steps do not work yet

Public Service Announcement for anyone relying on Jenkins for continuous deployment - the milestone step plugin as of version 1.3.1 will not function correctly if you could have more than two builds running at once - older builds could get deployed after newer builds. See JENKINS-46097. A possible workaround is to add an initial milestone at the start of the pipeline, which will then allow builds to be killed early. (Builds are only killed early once they have passed their first milestone. …(more)

August 14, 2017 arm64 servers offer an ARMv8 server with 96 cores for $0.50/hour. I signed up and tried building Libreoffice to see what would happen. Debian isn't officially supported there yet, but they offer Ubuntu, which suffices for testing the hardware. Final build time: around 12 hours, compared to 2hr 55m on the official arm64 buildd. Most of the Libreoffice build appeared to consist of "touch /some/file" repeated endlessly - I have a suspicion that the I/O performance might be low on this server (although I have no further evidence to offer for this). …(more)

April 25, 2017

Happy New Year!

Happy New Year! Apparently I failed to write a blog entry in all of 2016, and almost all of 2015. Probably says something profound about the rise of social media, or perhaps I was just very busy. I bet my writing has suffered. I have spent the last few days tidying up and clearing out clothes, bits of paper, and wires. I think there's light at the end of the tunnel. …(more)

January 1, 2017

CPAN PR Challenge - January - IO-Digest

I signed up to the CPAN Pull Request Challenge - apparently I'm entrant 170 of a few hundred. My assigned dist for January was IO-Digest - this seems a fairly stable module. To get the ball rolling, I fixed the README, but this was somehow unsatisfying. :) To follow-up, I added Travis-CI support, with a view to validating the other open pull request - but that one looks likely to be a platform-specific problem. …(more)

January 17, 2015

Docker London Meetup - January 2015

Last week, I visited London for the January Docker meetup, which was the first time I'd attended this group. It was a talk-oriented format, with around 200 attendees packed into Shoreditch Village Hall; free pizza and beer was provided thanks to the sponsors, which was awesome (and makes logistics easier when you're travelling there from work). There were three talks. First, Andrew Martin from British Gas spoke about how they use Docker for testing and continuous deployment of their Node. …(more)

January 15, 2015


Kate's been reading a book by KonMari. Hence we've rehomed lots of clothes, books and DVDs to charity and various places. I am told the key is to ask, "Does this item bring me joy?" Then if it doesn't bring you enough joy, it goes. The nice thing was, it was actually exciting to reveal the gems among my bookshelves, which were previously hidden by a load of second-rate books. …(more)

January 2, 2015

Looking back at 2014

I have a tendency to forget what I've been up to - so I made a list for 2014. I started the year having recently watched many 30c3 videos online - these were fantastic, and I really should get round to the ones from 31c3. January is traditionally the peak time for the recruitment industry, so at work we were kept busy dealing with all the traffic. We'd recently switched the main job search to use Solr rather than MySQL, which helped - but we did spend a lot of time during the early months of the year converting tables from MyISAM to InnoDB. …(more)

January 1, 2015

Website revamp

This weekend I moved my blog to a different server. This meant I could: Enable IPv6 Enable SSL Set up a profile I've tested it, and it's working. I'm hoping that I can swap out the Node.js modules one-by-one for the Debian-packaged versions. …(more)

August 31, 2014 update 1

[The story so far: I'm packaging for Debian.] 4 packages uploaded to NEW: node-webfinger validator.js websocket-driver node-openid 2 packages eliminated as not needed: set-immediate - deprecated crypto-cacerts - not needed on Debian 1 package in progress: node-databank Got my eye on: oauth-evanp - this is a fork with two patches, so I need to investigate the status of those. node-iconv-lite - needs files downloaded from the internet, so I'm considering how to add them to the source package dateformat/moment - there's an open discussion about combining Node. …(more)

August 28, 2014

Packaging for Debian

I intend to intend to package for Debian. It's going to take a long time, but I don't know whether that's weeks or years yet. The world needs decentralized social networking. I discovered the tools that let me create this wiki summary of the progress in packaging. There are at least 35 dependencies that need uploading, so this would go a lot faster if it weren't a solo effort - if anyone else has some time, please let me know! …(more)

August 23, 2014's July 2014 tech meeting

Last night, I went to the tech meeting, along with a couple of colleagues from CV-Library. The talks, combined with the unusually hot weather we're having in the UK at the moment, combined with my holiday all last week, make it feel like I'm at a software conference. :) The highlight for me was Thomas Klausner's talk about OX (and AngularJS). We bought him a drink at the pub later to pump him for information about using Bread::Board, with some success. …(more)

July 25, 2014

Cowbuilder and Tor

You've installed apt-transport-tor to help prevent targeted attacks on your system. Great! Now you want to build Debian packages using cowbuilder, and you notice these are still using plain HTTP. If you're willing to fetch the first few packages without using apt-transport-tor, this is as easy as: Add 'EXTRAPACKAGES="apt-transport-tor"' to your pbuilderrc. Run 'cowbuilder --update' Set 'MIRRORSITE=tor+' in pbuilderrc. Run 'cowbuilder --update' again. Now any future builds should fetch build-dependencies over Tor. …(more)

July 22, 2014

apt-transport-tor 0.2.1

apt-transport-tor 0.2.1 should now be on your preferred unstable Debian mirror. It will let you download Debian packages through Tor. New in this release: support for HTTPS over Tor, to keep up with :) I haven't mentioned it before on this blog. To get it working, you need to "apt-get install apt-transport-tor", and then use sources.list lines like so: deb tor+ unstable main Note the use of http. …(more)

July 21, 2014

Day of Action

Today I attended the Don't Spy On Us campaign's Day Of Action at Shoreditch Town Hall in London. I'm not sure how much actual action there was, but the talking was interesting. Retrospective Day of Action drinking game: drink every time you hear the phrase "If you have nothing to hide, you have nothing to fear." The spooks have a really good marketing department. I don't write a lot on the internet any more - something I regret, actually. …(more)

June 7, 2014

Backporting some Perl modules

I've started backporting some Perl modules to wheezy-backports - for starters, libbread-board-perl, which is now waiting in BACKPORTS-NEW. At work I've recently been trying to automate the deployment of our platform, and was originally trying to use Carton to manage the CPAN dependencies for us. It seems like it ought to be possible to make this work using CPAN-only tools. However, in practice, I've seen two strong negatives with this approach: it's a lot of work for developers to manage the entire dependency chain, and it takes forever to get the environment running. …(more)

February 15, 2014


I attended FOSDEM this year. As always, it was very busy, and the Brussels transport system was as confusing as ever. This time it was nice to accidentally bump into so many people I know from years past. Lunar's talk on reproducible builds of Debian packages was interesting - being able to independently verify that a particular binary package was built from a particular source package is quite attractive. Also Mailpile declared an alpha release. …(more)

February 6, 2014

OpenVPN and easy-rsa

One of those enlightenment moments that I should have had sooner: every time I have seen someone set up an OpenVPN VPN, they have generated all the certificates on the VPN server as root using easy-rsa. This is kind of strange, because you end up with an incredibly sensitive directory on the VPN server containing every private key for every client. Another angle is whether you trust the random number generators used to create all these keys - does your hosting provider use a weak RNG? …(more)

January 2, 2014


So, happy new year. :) I watched many 30c3 talks via the streams over Christmas - they were awesome. I especially enjoyed finding out (in the Tor talk) that the Internet Watch Foundation need to use Tor when checking out particularly dodgy links online, else people just serve them up pictures of kittens. Today's fail: deciding to set up OpenVPN, then realising the OpenVZ VPS I was planning to use would not support /dev/net/tun. …(more)

January 1, 2014

How not to parse search queries

While I remember, I have uploaded the slides from my talk about Solr and Perl at the London Perl Workshop. This talk was inspired by having seen and contributed to at least five different sets of Solr search code at my current job, all of which (I now believe) were doing it wrong. I distilled this hard-won knowledge into a 20 minute talk, which - funny story - I actually delivered twice to work around a cock-up in the printed schedule. …(more)

December 2, 2013

At the London Perl Workshop last Saturday, one of the lightning talks was about, formerly known as "". It's social gamification for your task list, or something like that. Buzzword-tastic! But most importantly, there seems to be a nice community of programming types to procrastinate with you on your quests. This means I can finally get to work refuting lamby's prediction about gamification of Debian development! Tasks are referred to as " …(more)

December 2, 2013


It's my first Father's Day! Sophie was born 2 months ago (3345g or 7lb 6oz), and I've been on a blogging hiatus for quite a bit longer than that. She's very cute. I am getting into the swing of fatherhood - lots of nappy changing. :) I took my two weeks of paternity leave, but spread the second "week" over two weeks by working just afternoons, which gave me lots of time with mummy and baby. …(more)

June 16, 2013

New Year

Another year. 2012 was busy - I got moved house twice, changed jobs, and got married. In 2013, I should become a father, fingers crossed (due mid-April). Change is a familiar friend now. I just listened to Tom Armitage speaking about coding on Radio 4 - I /think/ the podcast mp3 link will work for people outside the UK, but the iPlayer probably won't. If you can get hold of it, it's worth the 20 minutes of your time. …(more)

January 3, 2013

Perl Forking, Reference Counting and Copy-on-Write

I have been dealing with an interesting forking issue at work. It happens to involve Perl, but don't let that put you off. So, suppose you need to perform an I/O-bound task that is eminently parallelizable (in our case, generating and sending lots of emails). You have learnt from previous such attempts, and broken out Parallel::Iterator from CPAN to give you easy fork()ing goodness. Forking can be very memory-efficient, at least under the Linux kernel, because pages are shared between the parent and the children via a copy-on-write system. …(more)

December 21, 2012


On Monday, I need to start hiring a Perl programmer - or, at least, a programmer willing to write Perl. I work for a website where people post their CVs, which tends to help - although this will mean that my boss wants me to do it without going through recruiters. Which is fine. I just have to use the search interface that recruiters normally use. And looking through all these CVs, it dawned on me that I don't have a clue whether any of the people are suitable for the job. …(more)

October 27, 2012


Today, Kate and I got married! Thank you to everyone who sent best wishes. A big wedding party will follow in the next 18 months or so (when we've saved some money!), to which many more people will be invited. This was the minimum viable subset of wedding - we got the product to market early, and both stakeholders are very satisfied. We had dinner at the Caribbean restaurant in town which is always busy - turns out there's a reason for that. …(more)

October 6, 2012

The Library - a challenge

I visited my local library at the weekend, on a whim. (The weekend before, I'd been to the British Library for the first time, so I guess this inspired me.) The computing sections at public libraries do not tend to inspire me, on the whole. Southampton's is actually relatively good - there are four tall bookcases assigned to computing, although one is introductory IT (Word and Excel), and another seems to be assigned to graphic design (Photoshop). …(more)

October 2, 2012

Enscript 1.6.6

The other day, I released GNU Enscript 1.6.6. You should all go and send me bug reports. It's basically the same as the release, but more official. (I'm bored of the long version numbers - maybe I ought to knock a decimal point off.) …(more)

October 2, 2012

Inbox zero

My email's been out of control for a while now. I've noticed a correlation between the state of my email and my state of mind - I don't know which way the causation flows, if any. At the weekend (after assembling the shelves), I archived my entire inbox. Again. But I find the hard part with email bankruptcy is preventing the entire cycle recurring. This time, I was more drastic. …(more)

September 13, 2012


Bookshelves are a wonderful thing. Kate and I have been living without enough book space since we moved in together - all our shelves have been double-stacked. Finding anything is a pain, because it's impossible to tell if you still own the book you're looking for. No longer. One short visit to Ikea (plus delivery and assembly), and we have a huge 5x5 Expedit bookshelf dividing our living area. It has comfortably absorbed our entire collection (plus boxes) - we have double-stacked it, but can access both sides. …(more)

September 10, 2012

NMUs on the go

Today, as an experiment, I attempted to fix a Debian bug while on the train to work. I use a 3G card from in my Lenovo Thinkpad x121e, and my commute is from Southampton Central to Fleet (changing at Winchester) - just under an hour. 3G coverage is not 100%, but tends to be better around the major stops. First, I found a bug. I used to browse for a relatively simple RC bug, and found bug #674992 in actionaz. …(more)

June 6, 2012


Following on from the weekend of change, I've got engaged to Kate. :) We now need to organise a combined housewarming/engagement party... …(more)

May 8, 2012

Weekend of change

Agile processes harness change for the customer's competitive advantage. Principles behind the Agile Manifesto After two and a half years at Smoothwall, I'm moving on - Friday is my last day. Since I joined the development team, we have adopted Agile development, set up a pretty nifty Gerrit/Jenkins code review + integration system, and introduced dpkg for package management. Along the way, I helped with a bunch of important features for the business, like a ground-up rewrite of the web filter, and time-based browsing usage quotas. …(more)

April 11, 2012

Bye, Mark.

I've finally got around to deleting my Facebook account. I'd love to claim that this was a grand gesture against privacy-invading apps, or a bid to recoup vast amounts of my spare time... but it's not, really. I rarely logged in to the site, these days, so Facebook has very little of my personal data. …(more)

April 8, 2012

2012-02-09: Thursday

Michael Meeks gave awesome talks at FOSDEM, so Kate was inspired to hack on LibreOffice. I was inspired to write this blog entry in a list. She probably wins. Building LibreOffice master on Debian stable failed for her with a segmentation fault in GNU Make. A bit of searching threw up Savannah bug #20033, which is hitting everyone on the upstream mailing list. Bumped severity and offered to NMU Debian bug #622644. …(more)

February 9, 2012

Lenovo X121e 3G with ModemManager

Recently, I tried to get 3G working on my Lenovo ThinkPad X121e - it has an Ericsson F5521gw mobile broadband card. This is supported by ModemManager, but all I got were unknown errors (276 and 272). Searching online, there were very few results (hence this short note) - just previous unrelated Linux kernel issues. I found someone with the same problem on Fedora, but no solution, so I started off by filing a bug report with Debian. …(more)

January 24, 2012

Perl tutorial searches revisited

So since my last post about perl tutorials, the Perl Tutorial Hub has leaped from page 2 to be the top result for the relevant Google search. The Leeds tutorial has dropped off the first page. I couldn't figure out how such a dramatic reversal could have happened, until I asked Mithaldu on IRC; the admins of the old Leeds tutorial have added a (delayed) redirect. So, Google has interpreted that as a 302 status, and given perl-tutorial. …(more)

January 19, 2012

Perl Tutorial

Hello, World! Last year, a bit of a fuss was kicked up in the Perl community about the low quality of search results for the phrase "Perl tutorial". Various ideas for fixing this were proposed, including the handy Perl tutorial hub, but kicking Leeds University off the coveted top spot is going to be a real challenge. The problem is, most Perl tutorials on the internet were written for Perl 4; modern Perl doesn't get a look-in. …(more)

January 9, 2012

SFTP default umask

So I was about to configure an FTP server to let a friend upload content for a website... and then I came to my senses and remembered sftp exists. It's supported by the same graphical clients, and avoids me having to figure out SSL certificates and so on. Next problem: we want to both edit the site. Okay, so I create a group, make it the default group for both users. …(more)

December 10, 2011

BITE server

This week, Google released an extension called BITE which lets you file bug reports from within Chrome (or Chromium). If you are testing web applications, it lets you attach screenshots and/or automated tests to reproduce the bug you've found. There's just one small catch: they haven't released a server to go with the client. Oops. Apparently the internal systems are too tightly integrated to make that possible. I have hacked up enough stubs of a BITE server in Perl to get the client to " …(more)

October 16, 2011

Apache Request-Range headers

Note to self: when disabling Range headers in Apache to fix CVE-2011-3192, be sure to read the updated advisory and also disable Request-Range headers. (Presumably not "Range-Request" as in the summary of that link?) Or just apply the handy Debian update, of course. …(more)

August 31, 2011


Some things I have learnt this week at DebConf: The cost of living in the UK is much higher than in Bosnia and Herzegovina. I feel much better about life when I am being a fun and exciting person, compared to boring and cynical. My laptop is not well-suited to travelling - poor battery life, and poor wifi. However, I have mastered the art of taking only hand luggage. I have quietly resolved to spend more time doing things that I enjoy, that maximise the use of my skills, and which help other people; and spend less time on the opposite. …(more)

July 30, 2011

DebConf 11

It feels good to be at DebConf again, this time in Banja Luka. This is my fifth consecutive DebConf. Getting here was fairly painful; a flight from Split was delayed, so I had to get a later bus than planned from Zagreb. Still, I met a bunch of DebConf attendees getting the same bus, so at least there was conversation. Packaging-wise, I have been working on adding KiokuDB (and associated backends) into Debian. …(more)

July 28, 2011

No comments

I have turned off comments on my blog - there was too much spam, and I'm not planning to invest the time to fix that properly. On the one hand, this is a shame - it removes an opportunity for other people to respond to what I might write. On the other hand, the idea that this was any kind of two-way conversation was always a badly-maintained illusion. I didn't have any kind of notifications set up to tell me when comments arrived; so I rarely read them, and almost never replied. …(more)

July 22, 2011

The Prisoner

I have recently finished watching The Prisoner (1967). All the surrealism is messing with my head. In other news, I updated GNU Enscript. Oh, and I filed an ITP for the real Data::UUID, and promptly found a symlink attack which I suspect I failed to disclose responsibly. Hmm. I could write a lot more, but the short version is: I need a holiday. …(more)

July 13, 2011

HMRC data

The UK government publishes lots of spending data now. Let's do cool stuff! ScraperWiki is one of these new-fangled cloud services, hosting code that scrapes websites. You can throw some python (or ruby, or php) together to download all the CSV files for a department. Google Refine is like a spreadsheet on crack, with features ideal for cleaning up messy data sets. I saw it for the first time at OpenTech 2011 a few weeks ago in London. …(more)

June 14, 2011

Software Architect

I've been promoted - my job title will now be 'Software Architect'. This seems to mean I'll be writing documents rather than code - any higher-level, and I'd need Mark Shuttleworth's spacesuit. Is this a good thing? Anyway, I celebrated by opening my last bottle of Debian wine. <spam>Unfortunately, I can't take up my new role until we have hired a replacement. UK-based developers who know Perl and ideally PostgreSQL might want to look at the job description, although I'd recommend sending your CV and covering letter to me directly. …(more)

March 6, 2011

Gnash and cookies

A new release of Gnash, version 0.8.9, is due in the near future. Plenty of bugs have been fixed, but some users are still going to have problems playing YouTube videos. Here's a short explanation. At some point last year, YouTube started setting HTTP cookies in your web browser, to keep track of which of their video servers is nearest to your machine. This lets them provide a better experience for you (I guess). …(more)

February 12, 2011


My employer moved offices to Park Gate about a year ago - there's a coffee/sandwich place just down the road, which I generally walk past to get my lunch. And it's got a sign outside: I can't believe I didn't notice that swirl sooner. It will join my picture of the FreeBSD naughty toys machine from DebConf7. In other news, Debian squeeze is being released as I write this. It's been a fun two years. …(more)

February 5, 2011


My paternal grandmother died a month ago today - I may have been quieter than usual since December. The most vivid memory I have of her is helping to collect runner beans from her garden - apparently this had been going on since the World War II "dig for victory" campaign. Her funeral was in Hastings on 10th January, and she was buried in Fairlight, in the Roman Catholic area of St. …(more)

January 22, 2011

File synchronisation

If anyone mentions Dropbox to me one more time, I will scream. I'm sure it's a wonderful solution, but I have deep misgivings about handing my data over to someone I don't trust. Besides, my synchronisation needs are not that complicated. Here are my high-level requirements: Two way synchronisation between multiple clients and a central server. Automatic syncs - no requirement for manual triggering. Graceful handling of network outages, suspends, etc. …(more)

December 26, 2010

The Archers website

For those who are not aware, The Archers is a soap opera about rural life, broadcast on BBC Radio 4. Its website has recently been revamped. Unfortunately, I appear to be served the mobile version when I visit the front page (in all of Chromium, Iceweasel and Epiphany on Debian - admittedly not the most mainstream of browsers). BBC Mobile is doing some over-zealous useragent sniffing, it seems. Also amusing: there's a " …(more)

November 24, 2010

First RTMP connection

Mwahahahaa, just a few moments ago, my local copy of gnash actually got past the RTMP handshake, and got a response from iPlayer. I need to be at work in around 8 hours, though, so no time to push this until tomorrow... and it needs some cleanup. Obviously, no audio has yet been played. Don't be silly. …(more)

November 19, 2010

Gnash and librtmp

Having studied librtmp over the weekend, it doesn't drop into gnash as neatly as I'd hoped. Gnash already has classes to implement NetConnection and NetStream, which it makes sense to use - but librtmp is designed to replace the need for such classes to exist. So it implements certain higher-level responses to various calls from the server, that are necessary when downloading a stream. Gnash probably needs to hook in instead, and let the flash application decide what to do in these cases. …(more)

November 15, 2010

Imitation is the sincerest of Flattr-y

Of course, now everyone wants to hate Flattr, and ban its buttons from Planet Debian. You can't coerce effectively over a network connection - unless you wave the DMUP at them. It's an interesting exercise to square this approach with the promise at the heart of free software - freedom. We let people sell our software for a profit; we're a billion-dollar industry now. (Red Hat alone is worth $1bn.) That's before we start counting the money made by the businesses whose servers rely on us. …(more)

November 11, 2010

Splitting librtmp from Gnash

So I studied the SWF 8 iPlayer a little - there are some simple rendering issues with Gnash that I'd like to come back to, but the biggest problem is obviously the media not playing. Looking at the network requests, wireshark says something about malformed packets - Gnash is getting as far as making RTMP requests, but the connection dies pretty quickly. My working theory is that there is a bug in the Gnash RTMP client code. …(more)

November 10, 2010

Eyeing up iPlayer

There exist several different versions of BBC iPlayer. (Even if you don't care about the main iPlayer site, perhaps you might want to watch videos on BBC News one day, which uses the same code.) Here is some (reformatted) Javascript from the BBC's site: a = glow.embed.Flash.version(); f = ""; f = a.major>=10 ? "10player.swf" : a.major<8 ? "7player.swf" : a.major==9 && (a.minor>0 || a.release>=115) ? "9player.swf" : "player.swf"; It is clear that Flash 9. …(more)

November 8, 2010

Gnash and downloaded SWF files

So, with the GNASH_OPTIONS=writelauncher hint from last time, you have got a script which runs gnash. It is still running a remote SWF file, though - you want to modify that file to isolate a test case, and for that it will need to be on the local filesystem. First, look in the script to find the URL for the SWF, and download it. It's the last option passed to gnash. …(more)

November 7, 2010

Gnash from git

Gnash has moved from bzr to git, at least for the moment - Savannah's bzr setup is slow and unlikely to improve, so the choice is git or Launchpad, apparently. (Thinking selfishly, I'm a lot more familiar with git than with bzr, so I hope it stays this way.) My instructions from July have changed only slightly: git clone git:// cd gnash ./ ./configure --enable-renderer=agg \ --enable-media=GST \ --enable-gui=gtk \ --with-plugins-install=system make sudo make install sudo make install-plugins Buried near the end of the bug reports wiki page is a useful tip for debugging - export GNASH_OPTIONS=writelauncher before starting the browser, and gnash will write out the instructions for starting a local copy. …(more)

November 3, 2010

Flattr-y will get you nowhere

Dato pointed out on my post yesterday that I had omitted to link to the Ikea catalogue. And then it hit me - I am completely failing to monetize this blog! (Sadly, Ikea aren't in a position to give me any kickbacks right now.) Since my money would be spent on innovative Swedish design in any case, I present a new microdonations system: Flattr-pack. I'll add a "Flattr-pack this! …(more)

November 3, 2010


Today I bought two Ikea boxes. Possibly the best £8 I have ever spent - I still have a load of bits of paper to sort out, but now they're all hidden from sight in a sleek, black and chrome rivet-effect container. More than simply reclaiming my sofa from the piles of notes, they seem to point to a higher truth; they fit their purpose in a way that is hard to articulate, like some platonic Form. …(more)

November 1, 2010


I've been ill this week. The only hacking I've been doing is of the cough variety. :) I think I'm recovering, though. This evening, I finally checked out LibreOffice, to get an idea what's going on - kicked off a build, joined the mailing lists. Some of the easy hacks look quite feasible, but there's always a bit of work to get started. The community looks very welcoming, though, so no problems there. …(more)

October 30, 2010

RC bugs for w/c 2010-10-17

My humble RC bug squashing efforts for this week. I've saved them all up, because I don't want to spam Planet Debian too much... or alternatively, because I've been feeling ill Thursday/Friday and didn't do anything at all. #598619 in x11vnc NMU'd, after one false start, but at least I learnt something. #586849 and #586838 in mgltools-{utpackages,geomutils} confirmed fixed. Patch written for #592417 in mgltools-utpackages. Verified and NMU'd patch for #410130 in cryptonit. …(more)

October 24, 2010

Erm... more bugs.

I went shopping today, and inadvertently stole a very nice cardigan-like thing from a multinational clothing retailer. Enough anecdotes. Yesterday: NMU'd nut to fix bug #583371. I hear a co-maintainer is sought, so if you're into UPS devices... Downgraded bug #599909 in emacs23. Tempted to upgrade it again now it's reassigned to gtk-qt-engine, though. Asked for a binNMU to fix rep-gtk on kfreebsd-amd64. Today: Filed a binNMU request for sawfish, which should eventually resolve bug #599959 on the back of the librep work I did earlier in the week. …(more)

October 17, 2010


Summary of yesterday: Investigated rep-gtk/librep-dev breakage, and NMUd librep. Got a libtool wishlist bug out of it as well. Cloned bug #584327 in python-rdflib to gcc-4.4 as a reminder to see if mips/mipsel is already fixed. Downgraded bug #580876 in ldc. Wrote a patch for gpib FTBFS, which occurs because of an interesting new cdbs/module-assistant problem. I'm getting to the point where RC bugs actually keep me up at night. …(more)

October 15, 2010


I took most of the weekend off, although took a look at an upgrade bug on e16. Turns out Tolimar's got it handled, right? :) Tonight I put together a tentative patch for bug #557580 on aptitude to make it respect configuration under /etc/apt/preferences.d/ - aptitude is written in C++, and I have had some recent exposure to that language at work. Unfortunately, it means aptitude takes most of an hour to build on my desktop. …(more)

October 12, 2010


This evening's RC bug fixes were in magyarispell: Bug #591365 - the myspell-hu dictionary was completely broken. Bug #585132 - turns out everyone was just very confused, and blaming it on the myspell-hu dictionary being completely broken. I'm tempted to go to Paris for the mini-debconf at the end of the month. I've never visited France, despite my French roots - and it turns out it's quite easy for me to get there. …(more)

October 8, 2010

More bug fixing

I've been mostly working on GnuCash the past few evenings. I added more info and a test case to Bug #593856, so that should fall into place soon. I turned my attention to ettercap this evening, and Bug #521857 - another easy one, just applying the updated patch. Except when I ran "lintian -F", I got: lintian -F /var/cache/pbuilder/result/ettercap_0.7.3-2.1_amd64.changes E: ettercap: binary-or-shlib-defines-rpath ./usr/sbin/ettercap /usr/lib E: ettercap-gtk: binary-or-shlib-defines-rpath ./usr/sbin/ettercap /usr/lib This led me to a Jan 2008 email from Raphael Geissert about packages defining RPATH on amd64. …(more)

October 7, 2010

Warn your distributor

My gnucash fix from last night poses an interesting problem - there will be no new gnucash 2.2.x release. So we can fix this potential data loss bug in Debian (probably even in lenny), but what about other distributions? I'm not aware of a formal way to co-ordinate non-security patches like this across distros. (Sure, we can leave it for the vultures on the patch tracker...) Someone should whip up a whizzy web-app, or whatever. …(more)

October 4, 2010

Problem solving

I have developed an affection for crime drama - on Sunday nights, the TV channel Five USA shows something like four hours of CSI, back to back. There's obviously something fascinating about the problem-solving process... and there's always the too-good-to-be-true computer interfaces to laugh at. (I also watch The Mentalist, NCIS and Law & Order, for variety.) And also, on CSI:NY and Law & Order, I get to spot the places in New York I visited at DebConf. …(more)

October 4, 2010


It's been raining this weekend in Southampton. This afternoon's not been too bad - I went for a walk around the city walls. Just a few hundred years ago, the River Test would have come right up to them, and my flat would have been in a defensive moat full of sea water, I think. I re-read zack's rcbw page, and noticed the section on 'blog posts' - there is also a propaganda element to the idea, in improving Debian's internal culture w. …(more)

October 3, 2010

Debian Perl talk

Today I went to HantsLUG at IBM Hursley. I delivered a talk on the Debian Perl team aimed at end users, which was well received - I got a head start by getting people in #debian-perl to review the slides beforehand, which was very helpful. I'm told there will be a video uploaded in a month or so. I also plugged SmoothWall Express on Debian to some new people, and there was interest. …(more)

September 11, 2010


Here in the UK we've had a bank holiday weekend. Usually I would have gone to Cambridge for the Debian BBQ, but this year I joined forces with Thomas Adam for some SmoothWall Express on Debian hacking. There are several challenges involved in moving the SWE3 code from its native distribution to Debian; this weekend we worked around some of the permissions problems. On SWE3, the web server and most of the service daemons run as the user 'nobody'. …(more)

August 30, 2010

SmoothWall Express on Debian

SmoothWall Express is a GNU/Linux distribution geared towards firewalling, with an installer, a web interface, and some common software like squid that can be useful when running a small business router. It is theoretically the basis for the corporate products of SmoothWall Ltd., who happen to employ me; but all opinions here are my own, and I'm not speaking for them. Unfortunately, the SmoothWall Express kernel is somewhat "stable", which leads to problems installing the distro on modern hardware. …(more)

August 16, 2010

Sunny Southampton

On my last night in New York, I didn't sleep much. At 6am, I said farewell to Central Park by running round the reservoir, which I hadn't yet done. There was a very nice red sunrise to be seen from the west side. Unfortunately I didn't sleep much on the flight home either. The British accents sounded quite unusual when we landed in Heathrow, and it was quite confusing not being able to find a Starbucks. …(more)

August 10, 2010

For future reference

I have a relatively new laptop, and have spent some time today fixing some of the rough edges in my setup. (One day I'll throw all the config files into git, or something, but not yet.) I use zsh, but only in a fairly conservative manner, to emulate/mimic bash. All searches on the subject of zsh prompts seem to produce ugly behemoths from people who have just discovered that the feature exists. …(more)

August 4, 2010


I was up early this morning for the 17km run with bubulle over the George Washington Bridge and back. We had an interesting diversion near the start, as we tried to go cross-country through a woodland path that slowly disappeared. I was quite happy to have finished at the same time as the "real" runners... and grabbed a bagel with cream cheese for breakfast. During the day I attended a few talks from the Java track. …(more)

August 3, 2010


I'm going insane in this country - the accents, the jaywalking, the food, the money, the poverty in the heart of Manhatten... suddenly I appreciate the UK much more. So I have purchased an electric kettle, and set it up in the Carman basement, for the moment. I have also splashed out on a teapot, and one mug. (So far I haven't found any other mugs in the place, so bear that in mind if you wish to join me - $2. …(more)

July 31, 2010

Reverse build-depends

I've started to build up to actually doing some development-related activities. Maybe. But first, we've got QR Codes dotted around the hacklab and on our namebadges if we're taking part in the keysigning - I persuaded zbarcam (from the zbar-tools package) to reveal their mysterious secrets. I'm looking into packaging some Java libraries that use maven. Fun. I think I'll be attending some of the talks in the Java track, although I feel like I'm three years late to the party. …(more)

July 29, 2010

Running around

So apparently the route I took round Central Park is 9.7km, which explains a lot. This morning I checked out Morningside Park, but it's really too small for running - there's a loop of about 400m at one end, and you can go down the long bit to 123rd St, but it gets boring very quickly. Most of the park is taken up with a big hill and stairs. I'll try Riverside Park on Thursday, or find a shorter loop at this end of Central Park. …(more)

July 27, 2010

Arriving at DebCamp

Yesterday my brother and I checked out of the youth hostel - it was a nice place, but I think it would have been better if we'd had the time to focus on the youth hostelling experience. As it was, I felt like we were just interlopers peeking into a world where we didn't belong. We headed across Central Park and visited the Met, which is huge - and noted with some satisfaction all the things that came from England. …(more)

July 26, 2010

New York

Well, I made it to New York, along with my brother. Yesterday we walked down most of Manhatten Island - we've been staying in the youth hostel on 103rd street, and made our way on foot as far as Battery Park. Along the way, we visited McDonalds (twice) and Starbucks (was that two or three times?), both featuring free wifi and air conditioning. We went up the Rockefeller Tower as well, and got a few photos out of that. …(more)

July 25, 2010

Gnash and BBC glow

One thing I noticed having started to use gnash is that the BBC's iPlayer website (UK-only, I believe) gives a message like "You do not have Flash player installed" - not merely complaining about the version, but actually not recognising gnash as a Flash player at all. Cue some digging. The BBC's pages use glow, an in-house JavaScript library (available under the Apache 2.0 License) to detect whether Flash is installed. …(more)

July 19, 2010


Adobe aren't supporting their flash player on amd64 right now. The cognitive dissonance gets a little draining, anyway, and I've seen the hoops I'd have to jump through to get the 32-bit version running. So I'm going to try tracking gnash trunk for a while. First impressions: gnash seems easier to build than it used to be (or maybe I just read the instructions this time). I chose the AGG graphics backend, with gstreamer and gtk. …(more)

July 17, 2010

Starting the Emacs daemon

The daemon feature of Emacs is great. But when should the daemon be started? At one time I used an '@reboot' line in my crontab. But when you want to use things like Tramp mode (for editing files on remote servers transparently), you very quickly wish that emacs could talk to your ssh-agent. So if you accept that you will be running a desktop environment (not always true), you can add the daemon to your equivalent of " …(more)

July 16, 2010

Toggle fullscreen in Emacs

Today I improved the function I was using to toggle full screen in GNU Emacs. (defun toggle-fullscreen (&optional f) (interactive) (let ((current-value (frame-parameter nil 'fullscreen))) (set-frame-parameter nil 'fullscreen (if (equal 'fullboth current-value) (if (boundp 'old-fullscreen) old-fullscreen nil) (progn (setq old-fullscreen current-value) 'fullboth))))) (global-set-key [f11] 'toggle-fullscreen) The previous function would always restore the frame to "normal" state, even if Emacs was previously maximized. This one makes it behave more like, say, Epiphany or Totem. …(more)

July 9, 2010


Thank you to everyone who came to see me sing in the Southampton Philharmonic Choir this evening, and to those supporting from afar. My favourite parts, naturally, were the phrases in Villa-Lobos's Choros 10 that include fortissimo low F notes. There's a low E at one point in Daphnis et Chloe, but it's pianissimo.   …(more)

July 4, 2010


Today I wore a tie to work, and told everyone it was "dress up Friday". Of course, this has been done before. At lunch most of the office was together at the pub, celebrating a software release. I had an entertaining discussion with the Technical Director about how our next major version should be developed - we disagree. But it seems I've convinced several key people of the merits of basing our work on a third-party distribution, so that looks promising. …(more)

June 25, 2010

Recording video with gstreamer

For future reference, here is the gstreamer pipeline I'm currently using to record videos (with audio) for YouTube: gst-launch-0.10 \ v4l2src ! 'video/x-raw-yuv,width=800,height=600,framerate=20/1' \ ! tee name=t_vid ! queue ! xvimagesink sync=false t_vid. ! queue \ ! videorate ! 'video/x-raw-yuv,framerate=20/1' ! queue \ ! mux. pulsesrc ! audio/x-raw-int,rate=48000,channels=2,depth=16 ! queue \ ! audioconvert ! queue \ ! mux. avimux name=mux ! filesink location=test6.avi For some reason cheese becomes slow for me when I start recording. …(more)

March 1, 2010

Plugging the Debian GNOME bug weekend

This weekend I've been messing about with gstreamer pipelines so that I can spam the world with YouTube videos. Go me! Let's see if it shows up on Planet Debian. Next weekend I'll be teaching my brother how to triage Debian GNOME bugs. :) …(more)

February 22, 2010

Facebook and XMPP

So Facebook Chat now uses XMPP. And the Empathy development version has some nice integration. This could mean that I can finally chat to non-Jabber using friends on a regular basis. It's been nearly four years since I switched from MSN to Jabber, and I think I lost contact with a lot of people. Facebook chat via AJAX is unreliable, and my visits to the site are quite irregular, so hopefully this will work around both problems. …(more)

February 12, 2010


On Tuesday, I released version 0.02 of Net::NationalRail::LiveDepartureBoards to CPAN. So far, no one has complained. This module is probably of interest only to people in the UK; it looks up which trains are next to arrive/depart from a particular station. This release was prompted by a patch sent to me by Ian Dash, implementing a filtering feature I was too lazy to write myself. If someone wants to put a fancy GNOME applet around it, I'd be grateful. …(more)

January 14, 2010

Hudson and Devel::Cover

I wrote a plugin for Hudson today, which integrates Devel::Cover (Perl's test coverage tool) into the build reports. Actually, that's currently an exaggeration. All it does is add a checkbox in the configure page, and a link to Devel::Cover's reports on the build page when it's enabled. I spent the day remembering how to program in Java. Tomorrow I might be in a position to extend it into something more attractive - I'll publish it very soon, but I need to run it past my employer. …(more)

January 7, 2010


I can now announce my return to the land of the internet. Of course, I wasn't entirely without visiting rights. It so happens that one corner of my new living room is just within range of a terribly expensive wireless access point. It was slow, and kept dropping out. But I managed at least one upload over it, and some email... I have quite a lot of catching up to do. …(more)

December 23, 2009


I'm now a Debian Developer. :) My thanks go to Ben Hutchings, gregor herrmann, Chris Lamb, Christoph Berg, Steve McIntyre, Brad Smith, Jonny Lamb, Chris Boyle, everyone at credativ, and everyone else who helped me with Debian over the last... almost six years? Actually, I've been a DD since the weekend, but have been too absorbed to write about it. In other news, I'm moving house today... I'm more or less packed now. …(more)

December 11, 2009


My (very) humble efforts this week: 2009-11-25: #527710 in 'ming' - closed as no longer occurred. Prodded some bugs, especially #555036 in 'bash-completion-lib'; don't remember actually fixing any. :( 2009-11-29: #552680 in 'libtest-valgrind-perl' - investigated and closed. Was actually a previously-closed bug in valgrind. Then bringing up #551926 in pip and python-pip on debian-devel. Less of the instant gratification of NMUs for me lately. But; the Perl packaging team is down to a much lower number of RC bugs now. …(more)

December 1, 2009

My favourite Ubuntu patch

I thought I should share my current favourite Ubuntu patch. While hunting for easy RC bug fixes yesterday, I stumbled across mit-scheme_7.7.90+20090107-1ubuntu1.patch [roughly 9MB]. It contains a Debian .deb to bootstrap the Ubuntu mit-scheme package (bug filed). Nice. Now, to be fair, Debian has a bootstrapping problem for mit-scheme as well - it requires itself to build, but is currently uninstallable in unstable (although zack's on the case). Having looked at the problem, I think the best thing to do in the long term would be to package mit-scheme-c (which appears to be a superset of the upstream tarball for mit-scheme? …(more)

November 26, 2009

Delayed gratification

I've been slacking on the RC bugs front. :) Let's see, my last blog post was on Monday 16th, so I'm late... 2009-11-17: #527838 in 'smart' - investigated, closed as fixed. (Blatant cheating.) 2009-11-18: #516338 in 'pornview' - debugged a segmentation fault on amd64 2009-11-19: #551251 in 'libjavascript-perl' - patch written, but need to finish off and release. On Friday I looked at postgresql-pllua and postgresql-plproxy, but they need a bit more work than I originally thought, so I joined the pkg-postgresql team. …(more)

November 24, 2009

On mentors and museums

This evening I investigated #555941 in libxml-filter-xslt-perl, and was able to downgrade it to "important". I'm working on a proper fix, but it's not RC any more. (Gunnar, I don't mean to make you feel bad! I've been inactive for a while myself - I'm just making up for lost time.) And now for conversation via blog! Clint, I'm inclined to agree about ego, fiefdoms and so on. But I'm unconvinced that personal relationships themselves are harmful. …(more)

November 16, 2009

More RC bugs

Heh, thanks zack for your welcome. :) I'm afraid I don't make bug fixing look as easy or as organised as you do. Some cheating to finish off the weekend: #548860 was reopened accidentally, #555898 was already fixed in another package, and #555939... actually, that did need a fix, but I just munged the test suite to expect some new error output. Then I spent this morning writing half a testsuite for svn-buildpackage, and this evening just zoning out. …(more)

November 16, 2009

RC bug roundup

On Wednesday, I fixed #551228 in libgstreamer-perl - from the bug log, it looked like it would be an intriguing parallel-build problem, but I reckon it was just a faulty test. Next I applied a patch from the upstream bug tracker for #544894 in libtk-filedialog-perl, which was fine; but then we noticed that there was no explicit copyright notice in the source, so it hasn't been uploaded yet. The code is from 1996, so we would request removal from Debian if it weren't for 'horae' depending on it. …(more)

November 14, 2009


Hello, Planet! (Thanks to lamby for adding me to Planet Debian.) If you don't know me... I'm not surprised. I do some occasional pkg-perl work, but I've really been slacking (and changing jobs, and moving halfway across the UK). Last week I fixed one RC bug, in libgnupg-interface-perl. Better than none, I suppose. It turned out to be quite interesting; the tests failed when the package was built on the buildds, but not locally. …(more)

November 9, 2009

SmoothWall Express - ntpd

Part one of an occasional series about SmoothWall Express (SWE). The SmoothWall Express source tree contains two NTP daemons - both ntpd and OpenNTPD. SWE uses the openntpd daemon, but installs the ntpdate and ntpq utilities from the ntpd package. This is justified because openntpd is apparently more lightweight than ntpd. But note that ntpq does not work with openntpd. On my machine, the saving in memory is not massive. As observed in the thread, openntpd needs to run two processes (with one running as root), while ntpd can use Linux capabilities. …(more)

October 29, 2009

The story so far

I spent the weekend in Rugby, not doing very much. I had this morning off work to travel back to Southampton, and it was surprisingly busy. This afternoon I put the transaction scope guards I'd researched on Saturday into my project at work, and then refactored bits of it. According to the project plan I'm meant to be finished soon, but I keep finding more important things to do than implement the final SQL functions. …(more)

October 26, 2009

The Future Is Here

While depositing a cheque using the machine at my local Nationwide branch yesterday, a remarkable thing occurred; the machine looked at the cheque and told me how much it was for. …(more)

October 25, 2009

Transaction Scope Guards

I've been writing some Perl DBI code which involves some fairly involved error handling; I've been looking for a way to roll back transactions neatly when certain errors happen. I very nearly reinvented the concept of a 'transaction scope guard' which I now find is implemented in DBIx::Class (with Scope::Guard implementing a more general version). A lexical variable can be used to detect in which cases a transaction should be ended, because the object it points to will get DESTROYed when it goes out of scope. …(more)

October 25, 2009


I just signed up to a petition about postcodes. The context is that Royal Mail asked someone to stop giving not-for-profit websites access to postcode data. From a database copyright perspective, Royal Mail is within its rights to do this; but it seems wrong that socially useful non-commercial sites are unable to make use of postcodes without paying a high license fee. Compare this to the US, where this data is freely available. …(more)

October 6, 2009

Code Reuse

At work, I have been refactoring old Perl code. Part of me feels that this was tangential to the main aims of the project I've been assigned, but another part of me can list all the bugs I've found/fixed and the advantages in terms of maintainability, so on balance I think it was a good idea. Something I like even more than tidying code is reducing the amount of code required. …(more)

October 4, 2009

Escape Velocity

I am no longer going to tag my blog posts with Planet {WUGLUG,UWCS}. As I don't even lurk in the IRC channels any more (or read the mailing lists), and as of recently don't even live near enough to campus to visit, I think it's time to stop imposing my ramblings on the respective groups. :) You can still read my blog directly, or on Facebook, if you are so inclined. …(more)

September 20, 2009

Unit testing

I spent the last day and a half writing a vaguely interesting Perl module for testing some code which gives a subtly different answer each time (i.e. incorporates data from time() and /dev/urandom) and has side effects (i.e. writes to the file system). By overriding Perl's built-in 'open' function, it is possible to prefix each filename with the location of a temporary directory, effectively emulating chroot(). I also replaced Perl's time() with one that always returned the same answer. …(more)

September 9, 2009


I have changed jobs, and now live in Southampton, working for SmoothWall. This week I have got married on Facebook, and went out to an "alternative" club until 1am on a weeknight. (Normally it plays heavy metal, but Wednesday night is cheese night.) …(more)

August 27, 2009


Well, I'm nearly at the end of DebConf - I'm missing the last day of talks, so travelling home tomorrow. It's been a really good experience - I mean, DebConf is always fun, but this time I feel like I'm getting more involved myself, and a bit closer to the heart of the community than I did before. In practical terms, the two-week holiday has helped me feel more laid-back - I even got complimented on how I always look relaxed, which was amusing. …(more)

July 29, 2009


This week, I've more or less finished my NM questions; I looked again at a problem in dak which turns out mainly to be caused by some edge cases in debconf (the package), so filed a bug there. Then looked at conglomerate, and came up with patches for a couple of bugs there as well. I'm quite looking forward to just being able to NMU these kind of things. With all this hacking, I've stayed up until around 4:30 for the past few nights - I really didn't mean to, it just happened. …(more)

July 22, 2009

DebConf9 continues

Yesterday I almost updated mdbtools. Then I went to a debian perl team meeting, and promptly spent 24 hours trying to improve the speed of working with 1300+ git repositories. It's a bit tricky. This afternoon, I looked at some pkg-perl RC bugs... but they're tricky as well. I then updated the postgresql-autodoc man page, and sent it back upstream. Hopefully, next release the Debian package will not need any patches. …(more)

July 19, 2009


DebConf is in Spain this year, in Cáceres. Getting here involved a plane to Madrid, navigating the metro system, a 3.5 hour train journey and then a walk to the accommodation at 2am. This year I had actually looked at a map before arriving in the city, although hadn't bothered to bring one with me. Or note the exact address I was heading for... At night, it is still pleasantly warm here. …(more)

July 18, 2009

Blog back

I have restored all my previous blog entries. I couldn't be bothered to think of a way to restore the post times, but I got the dates out of the path and used to overrride the timestamps. If this floods planets, I'm sorry. …(more)

July 17, 2009

The Techteam Suck

(But so does PyBlosxom for using file timestamps.) …(more)

June 30, 2009


I spend (and have spent) a lot of time thinking. I also spent a lot of time reading. Every so often I reach conclusions... sometimes I remember them, sometimes not. A lot of them just got incorporated into my general world-view, I suppose. A long time ago it was thoughts about philosophy... these days I suppose it's mainly psychology. I've been thinking a lot about cognitive dissonance - I think there have been differences between where I am and how I think of myself. …(more)

June 23, 2009


I used to have a pile of paper, with notes/letters/junk going back several years. Piles like this have been sitting around in various corners of my room for as long as I remember. Now it's filed away - all in square-cut beige folders with labels on, in alphabetical order in a metal box. (Most of it got recycled.) I'm not sure what this means. Is "organization" an end in itself, or a means to an end? …(more)

June 22, 2009

Einem Freien Parlament

Paul Battley discovered that the proceedings of the European Parliament are recorded in the speaker's original language. Awesome, I can get some language practice in. To provide context for the following excerpt, Ashley Mote was formerly a UKIP MEP, but got kicked out of the party after a conviction for benefit fraud. Ashley Mote (NI ). - Mr President, over the last five years I have watched in horror the EU's endless scandalous institutionalised looting of taxpayers' money. …(more)

May 26, 2009


I've been experimenting with the python bindings to libnotify - the interface to the cross-platform notification daemon. The API is quite simple (although there's more when you start adding buttons and things to the notifications): import pynotify import sys if not pynotify.init("Test Notification"): sys.exit(1) n = pynotify.Notification("Test", "testing") if not print "Failed to send notification" Then I put these notifications into a simple XMPP bot, so that I could send it Jabber messages and they would get displayed as a notice. …(more)

May 25, 2009

Roast Chicken

My brother visited last weekend, which was nice. For those who don't know Michael, he's like a younger, more stylish version of myself. He's started a blog, and it is instantly younger and more stylish than mine. It would be even better if he replaced the Wordpress example text. :) On Sunday I cooked roast chicken, which was a first. Not just chicken though - M&S chicken, with M&S vegetables and M&S roast potatoes. …(more)

May 16, 2009

Baked Potato

I got distracted from cookery by a minor health issue in April, so didn't meet my original target. Still, I managed four recipes, which is better than none; and I've managed to improve my omelette technique to the point where it is actually semicircular rather than sausage-shaped when it rolls onto the plate. So let's reschedule for ten by the end of May. It's odd, I don't feel too worried by this melanoma; for one thing, the chances of dying seem relatively small, now that it's been found. …(more)

May 3, 2009


On Wednesday I was told that a mole that was removed from my left forearm about a month ago was in fact a melanoma. Melanoma is a form of skin cancer - a relatively uncommon and dangerous type, but fortunately curable if picked up sufficiently early. I don't have all the details yet; but the impression I get is that my mole didn't look like the classic pictures on the internet - neither my GP nor the dermatologist instantly recognised it as malignant. …(more)

April 27, 2009


I wanted to improve my night life, so I joined the Rugby & District Astronomical Society. This evening there was a talk on Norman Lockyer by Mike Frost - a topic of particular interest to me, because our computer naming scheme at work involves famous historical figures from Rugby. …(more)

April 19, 2009

Squid on Windows

No, this is not an exotic seafood/glass recipe. Yesterday (well, Tuesday evening) I was sent down to Poole to set up a caching proxy server for a customer... on Windows. Working with a Microsoft operating system is a little bit unusual in my open source support job, but hey, it pays the bills. It turned out to be surprisingly easy (or rather, my preparation had been sufficiently thorough). We'd budgeted the entire day to set things up - but I had Squid running by 9:20am, and was authenticating against Active Directory by 10am (with a choice of methods; single-sign on with NTLM or prompting the user for credentials). …(more)

April 9, 2009

Mushroom Risotto

I was lazy with cooking over the weekend - on Friday I had leftover lasagne for lunch, so just cheese and crackers in the evening. On Saturday I was down in Hastings all day, so didn't cook. On Sunday evening I had frozen pizza (ew), but used the 18 minutes while it cooked to boil an egg, chop some lettuce, and prepare a basic vinaigrette. (1tsp Dijon mustard, 1tbsp white wine vinegar, 3tbsp olive oil, salt and pepper, mix. …(more)

April 6, 2009

Kernel Mode Setting on Debian

The new kernel mode setting feature in Linux 2.6.29 is relatively easy to enable, although at this point there does not seem to be much in the way of documentation. Ingredients You will need: linux-image-2.6.29-1-686 or similar (or later) The xserver-xorg and related packages from Debian experimental, unless you're reading this in the distant future, at which point 7.4 will be in unstable. An intel graphics card which uses the i915 driver. …(more)

April 2, 2009


This evening I made lasagne, loosely following a recipe from Gordon Ramsay. I'm not going to type it out, partly because I didn't follow it to the letter; I still don't have fancy stuff like oregano or bay leaves. My cheese sauce needs work, but the end result was edible, surprisingly. There's half of it left for lunch tomorrow. Some bits of the lasagne sheets seemed like they were still hard, which was probably the result of not quite being covered in sauce or something. …(more)

April 2, 2009

Three egg omelette

I haven't taken much time on cooking for the past couple of nights. Last night I just used a sweet-and-sour sauce from a jar, and had chicken with quick-cook rice. I don't think that counts as cooking - more like a ready meal by stealth. As a concession, I bought whole chicken breast fillets and diced them myself. It seems to help if you use a sharp knife. This evening I cooked an omelette (with three eggs - there's a standing joke in the family concerning my brother once having cooked a one-egg omelette) and frozen veg, so I must have been done in under five minutes. …(more)

April 1, 2009

Pasta with Tomato Sauce

So, I decided to start off gently. The advantage of this recipe is that... I already knew how to make it. Awesome. Ingredients Olive oil Half an onion, chopped One clove of garlic, chopped One tin of chopped tomatoes A small amount of dried thyme or whatever; basil seems more traditional, but does Sainsbury's Local have that? Buggered if I could find it. Pasta Method Easy peasy. Heat some oil in a saucepan, add the onions and stir until they're more or less transparent (supposedly, although I'm sure I just make them turn brown). …(more)

March 30, 2009

1GB should be enough for anybody

My HP dx2250 desktop suddenly refused to turn on last Tuesday; it just beeped loudly at me when the power button was pressed. It took me until today to look at it; downloading the troubleshooting guide, I could translate the pattern of flashes of the LEDs as signalling faulty RAM. Phew. I must say I was surprised - I have never had RAM die on me before. At least it wasn't a DIMM module I had bought myself. …(more)

March 29, 2009

SWOTting up

No man is an island; objectives cannot be set in isolation from the reality of our situation. One standard technique for analysing where we are is the SWOT analysis: considering Strengths, Weaknesses, Opportunities and Threats. Strengths and Weaknesses deal with aspects internal to your organization; Opportunities and Threats are concerned with environmental factors over which you have no direct control. Once these are identified, you can act to mitigate the negative points. …(more)

March 27, 2009

Cooking for Project Managers

Spurred on by the accusation that my expertise is limited to computer-related topics, I have resolved to learn to cook. This in fact will solve more than one problem: what to do with my copious free time given that I am organized, and give me more confidence that I am not wasting my money on ready meals each week. Obviously I am looking to transfer skills from existing domains of knowledge to this endeavour. …(more)

March 26, 2009

Apparently today was Document Freedom Day. Next year we shall have to actually celebrate it. At work, one of the company's key objectives is to promote open standards like ODF. We are lucky to have an developer in-house (a rare commodity, especially outside of Sun or Novell), and I've had the opportunity to work on supporting from time to time. The biggest difficulty is the sheer size - the built source tree needs 15GB, so it's pretty difficult to search through, for instance. …(more)

March 25, 2009

Flymake and XML on Debian

Flymake is an emacs minor mode that runs a syntax check tool over source files as you write them, on the fly. Essentially it calls the compiler for the relevant language and then parses the warnings. Because this is so obviously useful, I have it turned on by default in .emacs: ; Highlight syntax errors (require 'flymake) (add-hook 'find-file-hook 'flymake-find-file-hook) Recall also that I use emacs to view page source in Epiphany. …(more)

March 21, 2009


Suddenly I am very organized - a series of tedious tasks seem to have completed themselves, and I'm teetering on the brink of productivity. But that way lies madness. Today at work we finally deployed the new django-based website. It uses the same HTML and styling as the old website, but reduces the URL duplication, which will help with optimizing for search engines. We now need to add better content, and then perhaps work on the style. …(more)

March 19, 2009


Is popularity the measure of success? Yes and no. In a discussion this evening, an assertion was made that RHEL was more widely used than Debian. This may or may not be true. But let's make a loose comparison to the theory of evolution, in this Darwin anniversary year - compare programs to species perhaps, program versions to individuals, and lines of code to genes. A particular distribution version is equivalent to a kin group of individuals. …(more)

February 14, 2009 evangelization

It's the end of FOSDEM - it's been great. More on that later. Meanwhile, I'm sitting in the hotel lobby at 11:30pm, and some random businessman starts talking on the phone to a colleague about his problems opening a ".docx" file. Apparently the converter won't install on his Mac, so he might not be able to get this work done until Thursday. I happen to be wearing a bright blue OO. …(more)

February 8, 2009

Telford Ted

I'm thinking of framing this: …(more)

January 26, 2009

Enscript security patches

I have been taking a closer look at the various security patches Debian applies to GNU Enscript this morning - I believe there may be similar problems lurking in other parts of the codebase, so my plan is to fix these myself this week. This avoids various inconvenient questions about copyright assignment. For the shorter patches this isn't a problem, of course - and there's generally more than one way to fix buffer overflows anyway. …(more)

January 25, 2009

Fixing Problems

My mum uses a Dell laptop running Ubuntu. Each time I visit I get to fix any problems that have cropped up. To be fair, there weren't that many so far. libdvdcss2 was not installed. I explained why, and fixed it. DVD menus were not being played in totem-gstreamer - the DVD would autorun, but you could not change to other titles. If you restarted totem with a different menu option you could at least set up a playlist with all the titles. …(more)

January 24, 2009

Emacs and Epiphany

It turns out to be possible to persuade emacs and epiphany to play nicely together. Opening URLs in Epiphany from Emacs Sometimes Emacs presents you with clickable hyperlinks (in info documentation, perhaps). To customize the browser in which these are opened, I am using the following in .emacs: (setq browse-url-browser-function 'browse-url-generic browse-url-generic-program "gnome-open") There are also specific epiphany-related functions, but I'm using the default gnome program for the moment. …(more)

January 23, 2009


I have a week's break from work. I'll be improving the OpenStreetMap coverage of Wooler, hopefully. I need to check over some enscript patches, so that I can make a release. At the same time, I want to practise using gnus for email more thoroughly. …(more)

January 23, 2009

Blind *and* stupid

Went to the optician's and asked about prescription swimming goggles today. Might have to get them made specially - buying cheaper ones with standard spherical lenses would not correct my astigmatism, and leave everything blurry. Still, it would be the difference between being able to read half the eye test chart and not being able to see where the chart is. I have an HP dx2250 at both home and work, and HP's BIOS doesn't enable the SVM instructions on the CPU (which would let you do cool things with virtualization). …(more)

January 21, 2009


On Saturday I went to Birmingham for the Friends of the Earth West Midlands regional meeting. We learnt about campaign planning, and got an overview of the main national campaigns for the next year. FoE Birmingham use Edubuntu. On Sunday I went swimming again. Not so tiring - still need to get some prescription goggles. Today at work we were delivering a PostgreSQL database training course for a company in Leicester. …(more)

January 19, 2009

Things I learnt today

gLabels is a nice and simple app, and works well for making CD labels. Swimming appears to exercise completely different muscles to jogging, so is very tiring. I could really use some prescription goggles. The usual plural of no is noes. …(more)

January 16, 2009


I am not having a good year. Traditionally, when annoyed, I make extravagant purchases that I may or may not regret later. In this new economic climate, however, I have found a substitute outlet. Arriving soon at a CPAN mirror near you: Net::NationalRail::LiveDepartureBoards 0.01 - an interface to a SOAP API from ATOC. Given a station code, you can obtain the next few arrivals/departures/both. This is in hacky Perl, but the module should be easy to translate to other languages which have SOAP libraries. …(more)

January 8, 2009


I had a reply from Jeremy Wright MP today regarding EDM 2141 - he's going to sign it. I'm going to think a bit about how to follow up on this. My desk is looking far too cluttered with House of Commons stationery at the moment. …(more)

November 17, 2008


Of course, uses XHTML 1.0 Transitional. …(more)

November 15, 2008

EDM 2141

Following Dan's lead, I have emailed Jeremy Wright, MP for Rugby and Kenilworth, concerning EDM 2141. Watch this space. …(more)

November 9, 2008


Interesting discovery of the evening: the third-party Apache module "mod_macro", packaged as libapache2-mod-macro for Debian. Awesome. …(more)

November 9, 2008

Interesting Times

I haven't written a blog entry for a week; obviously I have been busy with interesting things. Like xulrunner. Procrastination may be a valid time management strategy. By prioritising tasks and doing the more important ones today, lesser tasks are pushed back. Occasionally these tasks then fall over a deadline, and disappear. Whether this is a good thing... I'm not sure, but this has happened to me with around three tasks this week. …(more)

November 1, 2008

That time of year again

I tend to update DateTime::Event::WarwickUniversity at around this time each year, according to the changelog. Version 0.05 will appear on CPAN with the next update. My testcases still pass, at least. …(more)

November 1, 2008


A day or two ago, I donated to the atheist bus campaign. They have now nearly raised £100k, which is quite impressive. To follow up, I have joined the BHA. I have asked them about starting a Humanist group in Rugby - as if I have surplus free time. I realise religion (or a lack thereof) can be a controversial issue, but I have considered and respect the BHA's position on these matters. …(more)

October 24, 2008


I tried to look at an RC bug this evening: bug #502657 on netmaze. It looked so easy - a segmentation fault, a backtrace... no. The package doesn't even build on sid, doesn't support the 'nostrip' option, and hasn't had an upload for two years. When you get past those stumbling blocks, it's a 64-bit compatibility problem that would probably need quite a large patch. So, in the end, I've increased the RC bug count by one this evening, in suggesting to the maintainer that netmaze should not be released with lenny. …(more)

October 22, 2008


As a brief diversion from Debian, I spent the evening learning about small-scale hydro power. Remember, kids, the power available at your site is proportional to the product of the effective pressure head and the volume flow rate. I think at some point I promised the Rugby Friends of the Earth group that I would link to them. My PageRank, let me show you it. They have a social meeting tomorrow at the Alexandra Arms. …(more)

October 22, 2008

RC != Roman Catholic

I got a concerned phone call from my mother following my previous blog post, asking whether I owe Debian money. Fortunately, I believe I am fully paid up for all the T-shirts and BBQs that Steve McIntyre has given me. I have decided that the interest payment on my outstanding debt to Debian must be made in the form of RC bug fixes. I suck at RC bug fixes. They are generally boring, but of great value to the community. …(more)

October 21, 2008

WNPP bugs are like debt

Credit cards can be very useful, provided you pay off your outstanding balance at the end of each month. If you do not, the debt can pile up, and will be sticking with you for a very long time. Credit is a tool - it lubricates the economy. Without it, production would grind to a halt. However, it is very important that creditors lend only as much as debtors can afford to repay. …(more)

October 20, 2008


Ironically, the number of blog posts I make tends to be inversely proportional to the number of interesting things going on in my life. …(more)

October 19, 2008


For my first trivial bit of coding while I'm here, I patched the debconf IRC bot to announce nicknames as well as the real name of new arrivals (a feature request from madduck). I'm hoping to resist wasting time adding lots of features to it - the code is awful. This morning I went running at 8:30 - in theory there are going to be group runs in the morning and afternoon sometime, but for now I went on my own. …(more)

August 5, 2008


I arrived in Mar del Plata yesterday - DebConf this year is all in one hotel (with a nearby hotel for overflow accommodation next week), which makes everything very convenient. When they're not serving meals, they're usually serving coffee and cakes in the hacklab. There were some teething troubles with the networking today, so I took a walk down the beach. Mar del Plata reminds me of Llandudno - it's a popular beach resort in the summer, but it's winter at the moment. …(more)

August 4, 2008

Vital Statistics

I finally registered with a GP's surgery in Rugby today (that is, Thursday). This went fairly smoothly once I managed to decipher the way to Waiting Room 2. I am 180cm tall, and weigh 75kg. This gives me a BMI of 23.1, which is normal. I didn't get the numbers for my blood pressure, but apparently it's fine. :) …(more)

August 1, 2008

GNU Hackers' Meeting 2008

On Thursday and Friday, I took time off work to visit Bristol for the GNU Hackers' Meeting 2008. Around 20 people attended - obviously these were all people contributing to GNU, but (surprisingly) I didn't feel too much like I was surrounded by giants. Instead, it was all quite relaxed; most people there seemed rather like me - with a mild caffeine addiction, permanently short of spare time, and just trying to improve their small projects as best they could. …(more)

July 13, 2008

OpenJDK in Debian main

After much anticipation, the free-as-in-freedom version of Sun's Java JDK has arrived in Debian's `main' section. There are still a few bugs in the packaging, but these will be ironed out before the lenny release. Various other useful packages still need to adapt to its presence, but many will be able to move from the `contrib' section into `main' as well. Going forward, this makes Sun's Java platform quite attractive for developing future free software applications. …(more)

July 13, 2008

gnu-standards in Debian

An update to Debian's gnu-standards package is now in incoming. This package contains the GNU Coding Standards and the Information for GNU Maintainers document. It is now in the `main' section rather than `non-free', so is officially part of the Debian system. This has taken several months; at the end of December I asked whether the maintainers' document could be relicensed. RMS evidently approved, because the licence was changed in January. …(more)

July 4, 2008

The things I do for Debian

Blue and White G3 PowerMac on eBay, collection only: £10. Train fares to and around London: £26. Fixing an annoying PowerPC f-spot bug: priceless. It weighs 13kg, apparently, and my arms still ache. Thanks to Anton and Dan for letting me stay at their place on Saturday night, and use their fast net connection to download Debian packages. …(more)

June 30, 2008

Licence club

The first rule of licence club is, you do not talk about licence club. The second rule of licence club is, you DO NOT talk about licence club. If a copyright holder says stop, gets confused, is bought out, the licence is over. Only two parties to a licence. One exclusive licence at a time. No CDDL, no Jörg Schilling. Licences will go on as long as the copyright is enforcable. …(more)

June 27, 2008

Recent fixes

Some small victories: You can now install devscripts-el without needing to install elserv, an http server written in emacs lisp and Ruby. (The devscripts-el package provides various useful emacs commands to help with Debian packaging.) This is good, because I don't need Ruby for anything else. It is now possible to use irssi's default theme on terminals with a white background, at least in Debian. I found that in bright sunlight, black-on-white terminals were actually more visible on my laptop screen - but when using IRC, I couldn't see who was using /me any more. …(more)

June 21, 2008


This evening I visited Rugby Library. Apparently I had not used my Warwickshire library card for 991 days - that was from when I lived in Leamington Spa. It is probably quite a while longer since I last borrowed books from Rugby. To be honest, I was quite fond of the old Victorian library building. Unfortunately, that one closed in 1997 and was demolished. And I suppose the £5.5m new one looks nicer. …(more)

June 17, 2008

It's all very technical, you know...

Increasingly I am asked how things are going at work. Unfortunately, I struggle to give a meaningful answer in conversations with "normal" people - I don't know how to begin to explain that this afternoon I set up a pbuilder environment that lets me build Debian packages for our customised etch-with-backports i386 distribution using my amd64 machine running Debian sid. Or that this morning I ran into some interesting problems with dpkg-shlibdeps and symbol versioning in lenny when trying to downgrade some dependencies to 'Suggests'. …(more)

June 10, 2008

Free software, fix it

Another potential response to online complaints about free software is "FSFI", meaning "It's free software, fix it". This is the next level up from asking someone to link to their bug report - it places the sole responsibility for fixing the bug onto the shoulders of those who complain. Sometimes this can be reasonable - but expecting every user to be able to fix every problem themselves is not. There was a link today on LWN to an article claiming that it is strictly the software which is free, not the users - the users must abide by the restrictions of the licence, so cannot distribute proprietary derivatives, for instance. …(more)

June 4, 2008

Link to your bug report

With the rise of the blogosphere, a greater number of people are now free to post their thoughts to the world - and because of the nature of the medium, there are a fair number of people writing about their experiences with computer software. Most software is not perfect, so some proportion of those experiences will be negative. In the special case of free software, all end users have the freedom to study and modify the source code. …(more)

June 3, 2008

aMSN sound with PulseAudio

Following my awesome coding on Pidgin yesterday, my brother has switched to aMSN. I had let slip at some point that his laptop's webcam would probably work with aMSN. The drivers themselves are included with the Ubuntu kernels, so that has never been a problem; however, because of some abstraction problems with Pidgin, there is still no webcam support with the MSN protocol. It almost worked with aMSN out of the box, but I had to open a port in the firewall to let people connect to him. …(more)

June 1, 2008

Pidgin 'Open Mail' bug

At the request of my brother, looked at Pidgin's mail notification dialog this evening. The Ubuntu package takes ages to build, unfortunately. The reported bug was that the 'Open Mail' button didn't work - looking at it, it's possible to select the mail you want to open on some services now, but by default nothing is selected. There's some code to desensitize the button in that case, but the initial state isn't set. …(more)

May 31, 2008
May 17, 2008

Bank Holiday and stuff

The bank holiday formed a welcome break after a hard week at work writing and fixing a Linux kernel module. On Friday afternoon version of f-spot was uploaded to Debian, and then yesterday a new version of postgresql-autodoc. We've found a release-critical bug in f-spot already, of course. Most of the rest of my time was spent hacking on Angel, a project which we haven't formally announced yet. …(more)

May 6, 2008

GNOME Bugzilla edit rights

Last night, I was granted permission to edit/close bugs on GNOME's bugzilla. Because of the logarithmic way in which the points system works, I now have three more bugzilla points than I did this morning. :) …(more)

April 22, 2008

GPG trustdb batch updates

A while ago, I mused on how network latency affects my email usage - one other cause of slowness in my mail client has been GPG key verification. Occasionally, when Evolution wants to check a signature, gpg takes 30 seconds or more to run, and the text of the message is not displayed until the end. The reason gpg runs so slowly is that it sometimes checks its trust database to make sure it's up to date. …(more)

April 9, 2008

Linux Hardware Support

Just over a year ago, Greg Kroah-Hartman announced the Linux Driver Project - companies could get Linux drivers written for their hardware free of charge, if they provided specifications (possibly under NDA). There is now an April 2008 Status Report for the project - they are short of companies and hardware to write drivers for. This is probably because Linux hardware support is excellent in all but a few specific areas - there is some interesting discussion of the efforts being made to support wireless devices and graphics cards later on in the thread. …(more)

April 8, 2008

Debian BSP

I spent my weekend in Cambridge at the Debian bug squashing party. It was good seeing people again. I even squashed a bug, but then spent Saturday forwarding non-RC bugs upstream, and kernel hacking today. :) Walked back to Cambridge station - about 40 minutes, along the river for part of the way, and it was a nice evening. Living where I do, I don't walk as much as I used to. …(more)

April 6, 2008

Demise of Windows XP

June 30 - "That's the last day when large computer makers — the Dells, HPs and Lenovos of the world — will be allowed to preinstall Windows XP on new PCs." -- Computerworld story What caught my eye about this was the fact that OEM manufacturers actually won't be allowed to continue installing XP. This seems quite odd to someone used to distributions of GNU/Linux - sure, security support from the distribution might end, and you might well be hard-pushed to find someone to support your seven year-old software, but if your customers want the older, faster version of the operating system, you will always be allowed to sell it. …(more)

April 6, 2008

I'll be at DebConf8

Lamby reckoned I wouldn't be able to resist using the DebConf8 blog sticker thing. And he was right. My horrendously expensive plane tickets arrived last week. …(more)

April 3, 2008

PostgreSQL UK 2008

Yesterday, I was at the first ever PostgreSQL UK conference, in Birmingham. The venue was familiar from various events last year, such as GUADEC and PyCon UK - the Conservatoire is becoming quite established as a relatively cheap, central UK venue for technical events. I gave a talk about monitoring PostgreSQL databases on behalf of credativ. (Slides for all the talks are available on the PostgreSQL wiki.) I got a reasonable level of comments and feedback afterwards, and perhaps those will help with the development of some better monitoring solutions. …(more)

April 3, 2008

Shell startup times, part 2

Following up on Saturday's post and various other blog entries about bash. While arguing with Anton about bash being slow, I discovered that /etc/bash_completion was sourced twice when starting a shell on my laptop; once in /etc/bash.bashrc, and once in ~/.bashrc. This is Debian bug #430501 - the suggestion there is that /etc/skel/.bashrc should change to check whether /etc/bash_completion had already been included. So, that saves 0.27 seconds. [email protected]:~$ time bash -i -c exit exit real 0m0. …(more)

March 24, 2008

Encryption and disk access

Beginning last night, I reinstalled my laptop. Normally, if it were just to clean up some packages, I wouldn't do this - the aim was more to try out removing the disk encryption that I was using, and the effect has been quite dramatic. I worked out a while ago that the device-mapper encryption was slowing down disk access - with it gone, boot times are much shorter (and I don't have to type in a LUKS passphrase). …(more)

March 22, 2008

Shell startup times

So, a benchmark. [email protected]:~$ time zsh -i -c exit real 0m0.064s user 0m0.048s sys 0m0.008s [email protected]:~$ time bash -i -c exit exit real 0m0.540s user 0m0.436s sys 0m0.100s Both shells had their respective completion systems enabled. (Without them turned on, bash actually beats zsh... but the times are small enough that it doesn't matter.) These times are with a warm disk cache - the first time through both shells were slower. …(more)

March 22, 2008

F-Spot 0.4.2-1 done

Yesterday evening, I finally found the patch for a bug in mono-addins that had been affecting f-spot extensions for a while - rebuilding the f-spot Debian package with no changes and reinstalling would cause the built-in extensions to disappear. In the end, the patch was just two lines long, and had been applied in mono-addins SVN (and in the copy of mono-addins that f-spot bundles). One less RC bug for lenny. …(more)

March 21, 2008

Looking towards lenny

This weekend, I visited Derby, and updated the f-spot packaging in the Debian pkg-cli-apps repository. It's now at version 0.4.2, but this hasn't fixed the complicated extensions problems - they are Mono.Addins bugs, so we'll need to update libmono-addins0.2-cil to the version the f-spot devs claim fixes everything. Apart from that, I've been looking at my list of potential pet projects, and thinking about which of them I want to prioritize over the next year or so. …(more)

March 9, 2008

Post-FOSDEM thoughts

FOSDEM was interesting, this year - I knew a lot more people than last time. Going to talks was a pain, because everywhere was so crowded; but the best bits are outside the talks, anyway. I eventually managed to sign my keys from the keysigning, and even caught up with some left over from last year. The next day I fell horribly ill - I was recovering for the whole of last weekend. …(more)

March 8, 2008

Where did last year go?

Counting off years at an arbitrary date on a calendar seems a bit meaningless - to many people I suppose it makes sense, because everyone gets together at New Year's Eve, and there's a big party to remember things by. With me it's different; for the last few New Years, things have been quiet. The big events in my life are not the times when I take a few days to relax, as pleasant as they are. …(more)

February 22, 2008

New Jabber Address

It has been quite a while since I switched to using only Jabber (a.k.a. XMPP) for all my instant messaging. We use Jabber a lot at work, as well, and there are plans to set up an internal Jabber server eventually. (At the moment, everyone uses their personal Jabber IDs, which isn't ideal.) I've been having problems with lately - they seem unreliable at times, although they're going through a complicated migration to ejabberd which should eventually fix things. …(more)

February 10, 2008

More Crazy Ideas

Lately I've been having crazy ideas. Even more than usual, perhaps. I think the trick is to try and break the wildly unrealistic goals down into bite-size chunks that could actually work. Like, for instance, getting the project you want to hack on mirrored into your favourite repository format. In other news, I've finally got around to learning how to set up public git mirrors of cvs and svn repositories - there are plenty of tutorials about creating private repositories, but very few which deal with public ones in detail. …(more)

February 7, 2008

I'm busy, honest.

I haven't been writing so much recently - only one blog post for January, and I didn't even find the time to finish all the things I did in December. This is because I'm busy. Honest. So, before it gets too far into February, I'd better summarize things a little. Projects I worked on recently: f-spot - Near the end of December, I joined the Debian Mono packaging team, and helped clear up a few bugs in the photo management application I use. …(more)

February 2, 2008

Stale config files and upgrades

I've had two cases recently where an old configuration file has been causing problems, and there's no clean upgrade strategy. My wireless card was made by Broadcom, and I use the newer b43 driver in Linux. However, the new mac80211 drivers introduce a second network interface (used internally by mac80211) but with the same MAC address as the normal interface. And because it gets created first, udev puts this master interface into the place where the real interface is meant to be, and the real one gets called 'wlan0_rename'. …(more)

January 2, 2008

Fitts' law bugs

Firstly, a rant: as of December 2007, a self-righteous idiot named Chris Cunningham thinks he can change the name of "Fitts' law" to "Fitts's law" on wikipedia, in the name of grammar. To boot, he claims to have changed every link to "GNU/Linux" to point to "Linux", probably without regard to the difference in meaning. I am not happy. Fortunately, a recent attempt to become an admin was unsuccessful. Anyway. …(more)

December 31, 2007

Hello from Morpeth

So I'm in Morpeth for Christmas, staying with my mum. Until today there was no internet access here - they had been paying for an ADSL connection since May, but hadn't managed to get the modem to work with the computer. After a trip to the shops for a nice ADSL wireless router, I can now type blog entries from bed. There was an existing computer to get working with the router as well. …(more)

December 23, 2007

Desktop annoyances - getting a prompt

Continuing my search for the subtle things that have annoyed me for years about my desktop usage, I want to think about shell startup times. Application startup times have been done to death, I'm sure - it is one of the more obvious areas to work on when improving a desktop application. Evolution's startup time is still appalling, for instance; I count five seconds before I get a GUI, and many more before I see any email. …(more)

December 19, 2007

Desktop annoyances - network lag

Some things always feel uncomfortable about my desktop usage, even when I change solutions - KDE, GNOME, XFCE, all the way down to evilwm and beyond, to the console. I want to pin these problems down, in order to address them. First I want to focus on network lag. Take email as an example. One of the biggest changes I made to my use of email a few years ago was to store all my email on an IMAP server, so that I can access it from any computer I happen to be using. …(more)

December 17, 2007

Emacs keybindings for GTK text fields

My attempt to learn to use emacs continues. Today's discovery: I can enable emacs-like keybindings in GTK text fields (well, Readline-like) - this includes form fields in Epiphany. I have remapped C-w to backward-kill-word, to be more like Readline. I'm working up to writing some lisp to make common tasks easier... like writing blog entries, perhaps. I'll need to synchronize my .emacs files somehow... but I need to make more of an effort to use emacs over vim at work. …(more)

December 7, 2007

TAOCP volumes I and II

This evening, my order from arrived. It took a few weeks, but the savings with the USD exchange rate were huge. I'm now the proud owner of the first two volumes of The Art of Computer Programming (3rd ed.) by Donald Knuth. First impressions of volume one are that it's quite heavy on the maths; I'm pretty sure the first chapter will go slightly beyond most undergraduate maths courses, mostly because it is focusing on a few key areas. …(more)

December 7, 2007

Ubuntu for relatives

My mum will shortly receive a laptop with Ubuntu installed (from Dell). She will be the second of my relatives to start using Ubuntu, after my brother - the advantages are the lower initial price, no recurring anti-virus software costs, better interoperability out of the box with cameras and printers, and photo management software for no charge (again, out of the box). I'm really hoping Dell don't mess this up. …(more)

December 7, 2007

Munin Apache uptime plugin

At work, we have a customer who are having problems with their web server. So many problems, in fact, that I felt the need to write a Munin plugin to graph the uptime of Apache, so that I could tell when it had been restarted. The graphs are as boring as the code, which is entirely stolen from Munin's 'apache_volume' and 'uptime' plugins. …(more)

December 4, 2007

I want to learn Emacs

Three weeks ago I swapped capslock and Ctrl on all my usual systems, much to the chagrin of Daniel when he foolishly tried to use my keyboard. I'm now quite happy with the positioning of Ctrl - it was surprisingly easy to get used to. It is not a coincidence that this is Tip #1 on various lists of ways to use emacs more effectively. I find myself wanting to ditch vim… perhaps this is just asking for a holy war. …(more)

December 3, 2007

Rugby LUG inaugural meeting

I just got back from the inaugural Rugby LUG meeting which I helped arrange. It went better than I was expecting - in total we had eight people there, and some interesting conversation over three and a half hours. The next meeting will be in January, but after that I'm hoping we can do something more often than once a month. …(more)

December 3, 2007

Back to using Linux wireless tree

My laptop has a Broadcom 4311 rev 01 wireless chipset. The drivers from the latest Linux git releases are vastly superior to the old bcm43xx driver... so as of yesterday, I'm back to running the latest wireless-2.6 code. The former upstream maintainer claims that he gets better throughput with the reverse-engineered Linux driver than he does on Windows XP. While I was at it, I compiled in dynamic tick (tickless) support. …(more)

December 2, 2007

Enscript git repositories

Today I created a git repository for enscript's Debian packaging. The upstream repository is in git as well, of course. Next I need to work on pulling any distro fixes I can find into upstream, and getting a new bugfix version released. This should hopefully obsolete most of the Debian patches. …(more)

December 2, 2007

More CPAN uploads

Following my update on Monday, I've made changes to the build systems of both DateTime::Calendar::WarwickUniversity and DateTime::Event::WarwickUniversity, in my search for higher kwalitee. These are not important updates, they just add a few more tests, and so on. …(more)

November 22, 2007

DateTime::Event::WarwickUniversity version 0.02

Warwick University appear to have changed some of their future term dates, so I have released version 0.02 of DateTime::Event::WarwickUniversity to CPAN. This release also fixes bugs which were happening when using DateTime objects with time zones, so everyone should probably upgrade. Overall, I'm surprised that it took me a year before I had an excuse for a new release. It would be worth adding the ability to get a real date from a given term week, but I haven't quite needed it yet. …(more)

November 19, 2007

GNU Enscript Maintainership

Some news that's overdue to be blogged: a few weeks ago, I picked up the Debian package 'enscript', and fixed some of the easier bugs in it. This has been uploaded to unstable, thanks to Myon, who rocks. Having looked at the package, I realised that further work on it was unfeasible without a new upstream release. GNU Enscript had been unmaintained for a while, so I wrote to the GNU project and asked whether I could set up a Savannah project for it. …(more)

November 17, 2007

WUGLUG talks last Wednesday

Last Wednesday, I gave two talks to WUGLUG; one on ssh security, and one on some ideas for making the UWCS website development process a bit easier. This evening, I've been following up on one of the ideas I presented. I want to get the website to run on SQLite (because sqlite3 is already installed in DCS). However, this is going to mean writing a date formatting module to match SQLite dates. …(more)

November 17, 2007

Swapping Caps Lock and Ctrl

I have a lot of blogging to catch up on. Meanwhile, here's something completely unrelated. I keep having to use the 'Ctrl' key a lot, and it's getting a bit awkward having my little finger hover near the bottom left of the keyboard all the time. I also often have problems with hitting 'Caps Lock' when I don't mean to. (I mean, who uses it? Not me.) So, the obvious solution is to turn the Caps Lock into a second Ctrl key. …(more)

November 11, 2007

Woo, internet

Having asked nicely for a WEP key from a housemate, I now have an internet connection in the evenings. I'm still not sure how much time I want to spend on a computer, but it might at least let me work on some free software outside of work. I've borrowed a huge book on PostgreSQL, so now have to find time to read it. …(more)

October 19, 2007


This week, I have mostly been in Mönchengladbach, at the German office of credativ GmbH. It's a completely different experience working here, compared to Rugby. For one, the building is a lot bigger - several stories, compared to the tiny room we have at the moment in England (soon to change, hopefully). I've been meeting a lot of people, and trying to remember their names. It's been a while since I was last in Germany - exactly seven years, in fact. …(more)

October 11, 2007


Oh Pete, I deliberately didn't use your name because I wasn't attacking you in particular; I was aiming at the completely misleading article whose pagerank you (and Digg) increased to the point where it achieves higher results in searches for "XDS drag and drop" than the XDS specification itself. Please don't take it personally. Of course, you still fail utterly for not providing any explanation of why you were so pleased to have this feature in your original post, and for not linking to, say, the GNOME 2. …(more)

September 27, 2007


Recently, people linked to a random news site claiming GNOME has added "XDS support" in 2.20. XDS is an extension to the XDND drag-and-drop protocol. This is very misleading. The headline reads as if GNOME has not had any drag-and-drop support until now, which is ridiculous. The Digg headline was even worse: "GNOME Gets Real Drag n' Drop Support with XDS". Bullshit. What actually happened is that Nautilus (the GNOME file manager) has received a patch to support this extension in the main window bit. …(more)

September 25, 2007

New domicile

Today, I finally found a place to live in Rugby. It turned out that a landlord friend of my boss had a room to let, in a very convenient location. I'm within ten minutes' walking distance of the station, the town centre, and the (hopefully soon to be) new office. It's also quite cheap (university accommodation prices), with all utilities and bills except internet access included in the rent. Yay. …(more)

September 25, 2007

First day at credativ

My first day at credativ went well. In the morning I updated some RHEL packages on a couple of test servers. I suspect the live systems will be next. In the afternoon I copied over some PostgreSQL configuration tuning for an upgrade from 7.x to 8.x. I'm getting up to speed with the various systems - there's even the threat of fixing bugs in Java code, in the future. …(more)

September 17, 2007


I just realised that my new job title is 'Technical Engineer', so will probably annoy Sadiq. …(more)

September 14, 2007

Killing ODB

Late on Tuesday evening, I successfully got a branch of Choob to run without its 'Object DB'. Presently, it runs only a few of the more simple plugins - for instance, the 'Alias' plugin is not supported, so I spent a couple of minutes trying to work out why it wasn't replying to commands. With ODB gone, vast swathes of complicated parsing code can be removed from the bot's core. …(more)

September 14, 2007

64-bit Semprons

So, during a conversation at PyCon UK, Keith White noticed that he owned the same model (HP nx6325) laptop as me. He also informed me that his processor was 64-bit, and asserted that mine probably was as well. I was sceptical. It's a Mobile Sempron - last I checked, all Semprons were 32-bit. Of course, I don't keep up with hardware at all. Checking /proc/cpuinfo: [email protected]:~$ cat /proc/cpuinfo <br /> processor : 0<br /> vendor_id : AuthenticAMD<br /> cpu family : 15<br /> model : 76<br /> model name : Mobile AMD Sempron(tm) Processor 3500+<br /> stepping : 2<br /> cpu MHz : 800. …(more)

September 10, 2007


Of course, there are no packages for Jackfield yet. Rather than mess about with installing Jackfield, I badgered Stuart Langridge to do it for me. So, I now have a working shiny clock thing. Making packages for Jackfield requires solving a few problems, like gconf keys for showing Jackfield and multiple instance detection. …(more)

September 9, 2007

PyCon UK

My conference tradition is to occupy myself with activities completely unrelated to the main topic. For instance, at DebConf I hacked on GNOME stuff, at GUADEC I hacked on Debian stuff, and at I did very little. At PyCon UK, I've built the wireless-dev tree of Linux, and got the new b43 driver to run. So, it works. It appears to have increased the transmission power of the card, and limits the bit rate properly, so should work at longer ranges without fiddling about. …(more)

September 9, 2007

First post

I've accepted a job at credativ, in Rugby - I start on the 17th. This means I'm preparing to move back to the Coventry area. (I just can't get away.) It's very exciting, and all that. :) I celebrated today by getting an overpriced lunch at Starbucks. The other thing I've splashed out on has been a bunch of German reference books - I want to brush up for communicating with the German branch. …(more)

September 7, 2007 2007

On Saturday, I travelled to Cambridge via Coventry, seeing lamby, benji and mulletron's new house en route. has been pretty good. It's a technical enough conference that 'Linux' actually refers to the kernel, for the most part. I've learnt a few things about Linux development, and I'm vaguely curious now about getting involved there. Also, I took lots of photos - yesterday we got to see Linus Torvalds, who was quite entertaining while leading the git BoF session. …(more)

September 5, 2007

BCM43xx wireless range

This weekend, I'm at the annual Debian BBQ in Cambridge, and it's very nice weather. All the cool people are sitting outside with their laptops, a good 10-20 meters from the indoor wireless access point, happily using the internet. The problem is, by default, my wireless card just doesn't work at that range. So, today I had a look at the Broadcom bcm43xx driver code, to see what was going on. …(more)

August 26, 2007

Automagic screen window titles

Lurking in #screen on freenode is paying off. I found out today that you can set your GNU Screen window titles automatically - so, while you are running a command, the title changes to that command. This will help when changing windows (such as when using the window list bound to C-a " by default). This requires two things: first, your shell has to send an escape code as part of the prompt. …(more)

August 23, 2007

Bring on GVFS

This evening, I have been made acutely aware that the gnomevfs Python bindings lack up-to-date documentation. Gnome-VFS is a pain to use anyway, but not having a complete reference manual is a bit of a problem. One of the projects with quite a bit of buzz at GUADEC this year was GVFS. It's going to fix all the bugs in Gnome-VFS, and make our lives much happier. It'll be based upon FUSE. …(more)

August 22, 2007

GPLv3 in Debian

With this morning's update of the 'base-files' package, I now have a shiny new copy of GPLv3 in /usr/share/common-licenses/. I'm slightly concerned that a lot of packages will still be pointing to the GPL symlink, when they are GPLv2 only, not v2 or later. Oh well. …(more)

August 21, 2007

Yahoo! UI Libraries

As part of creating my new blog, I mentioned that I threw some CSS onto my website. I'd been a bit reluctant to do this before, because there's usually a lot of boilerplate CSS to write before you can do anything interesting. Last February, Yahoo! released a set of web development libraries under a BSD licence; among these were some CSS components. They are relatively painless to drop in, and simplify making fonts consistent across browsers, for example. …(more)

August 21, 2007

One step at a time

My new blog is set up, more or less. I'm vaguely happy with it. This one is a self-hosted Pyblosxom install, with various plugins. I've added tags instead of the default categories system, and set up comments. I also got a MetaWeblog API plugin working, so I can post this entry with gnome-blog. (I patched the Pyblosxom plugin to support images, but one thing I can't do at the moment is tagging from gnome-blog - it would be nice to add the UI elements. …(more)

August 20, 2007
Nifty tech tag lists from Wouter Beeftink