It's been a while, but then I've been busy. In the last month I've been to YAPC::Europe (rocked), been through two laptops (sucked), and started a new job which got me exiled to Edinburgh to be on site. I've managed to fit in some random hacking in the meantime, and spent the weekend back in London. Anyhow let's skip to the end.
Algorithm::MarkovChain is getting factored into 4 distributions, A::MC, the algorithm and a pure-perl hash storage implementation. The other three chunks will provide storage via MLDBM, DBI and Inline.
The Inline one is really cool, it Inline::C to interface to glibs hash type. That and some aggressive key sharing to make a 40% memory footprint saving over the regular perl implementation. It's notably faster for the seed operation too, which was nice.
I'm splitting it to make it all easier to test and maintain sane dependencies, but doing the testing is proving difficult, writing tests before code really is the way to go. The lack of tests is why they're not yet on CPAN, but if you're feeling impatient take a peek here[0]
I've also found a new itch - I want to be able to do a two-way sync on maildirs and have the right thing come out of the other end. Notes on the tool[1] I may build to achieve this are online[2], code to follow.
London.pm took a trip out to Brighton on Saturday, more specifically it was the people on #london.pm who could deal with the short notice nature of the deal. We rode ponies, it rocked.
Anyhow, on the train out we were chatting about documentation, specifically forcing people to document their interfaces. Suddenly the idea of Pod::Coverage floated through the air. mstevens captured it on paper which he gave to me to turn into real code. I drafted in Simon for some extra glob magic but it mostly wrote itself. Version 0.02 is out now[3], it's a really nifty idea, I hope I'm doing it justice.
Writing it has also given me an excuse to play with Devel::Cover - run, don't walk, run to CPAN and install that right now, it rocks really hard. All I have to do now is work at getting the expression coverage up on P::C (statement coverage is at 100%, because we were slightly extreme, and wrote most of the tests first), and things will be superfine.
One thing I've noticed recently is that people are being extra polite to me, while I'm looking more and more like a tramp. Admittedly this has mostly happened when shopping or dealing with people at Airports[4] but even so it's a little disconcerting. I have two concurrent theories, they're practicing their customer relations extra hard for comedy value, or they think I'm some eccentric millionaire. Both are fairly cool :)
I've had a really inspiring weekend, let's see what the week holds.
[0] http://unixbeard.net/user/richardc/lab/
[1] Currently codenamed mymap, which may have to change so people stop
assuming I'm going to find some way to paper over the cracks in the
current range of imap clients.
[2] http://unixbeard.net/user/richardc/lab/mail/mymap.pod
[3] Available from your local CPAN mirror, or
http://unixbeard.net/user/richardc/lab/Pod-Coverage/Pod-Coverage-0.02.tar.gz
[4] I'm writing chunks of this from a plane heading back up to Edinburgh
from London, laptops rock.