Are you the one person left on the planet using a Palm Treo?

If you are, then I have two very important things to say to you.

First, why the hell haven't you upgraded to something - anything! - else?

Second, I just released updated versions of Palm::SMS, Palm::Treo680MessagesDB, and Palm::TreoPhoneCallDB. Now they should build with a vaguely modern perl toolchain (in the case of Palm::SMS) and will work with a modern version of Palm::PDB, which appears to have mysteriously travelled back in time and gone from version 1.29 in 2002 to version 1.016 ="…

Instant podcasts, in 50 lines of perl

I have a directory full of stuff that I've recorded off the radio. I'd like to listen to it on my phone on the way to work. And the most convenient way to do that is to create a podcast of that directory. That way, whenever I record more stuff, I just have to update the podcast and the files magically appear on my phone.

I am, of course, far too lazy to edit XML by hand, and I want something that will work in a terminal. I was surprised that I couldn't find anything like this. Well, I could. It was 1300 lines of PHP. I've not got anything against PHP, but 1300 lines of code for such a…

CPANdeps and cpXXXan scheduled downtime

CPANdeps and cpXXXan will be unavailable for some of the evening of the 28th of May, for a data centre move.


A year and a bit ago I wrote about measuring the coverage not of the code I was testing but of my tests, and how doing so had helped me find some problems. Today I dived further down that rabbit-hole.

As I mentioned then, we ran all our tests under Jenkins. Because we're testing quite a complex application, which needs configuration data, databases and so on, we've got a wrapper script that sets up all that jibber-jabber, runs the tests, and then tears down the temporary databases and stu…

CPANdeps pass/fail display now working again

Some months ago the way that third parties got access to the CPAN-testers results database changed. Instead of just downloading a SQLite database, there is now an API. This is good. It means that to get all the new reports since your last query, for example, you only need to transfer a few reports across the network instead of downloading all 40 million-odd records every time.

The change was well-publicised in advance, with a fairly long deprecation cycle. But I just never had the tuits to make the changes I needed, and so eventually that part of CPANdeps just stopped updating. It was…