Another London.pm Technical meeting came and went. Sadly I ran out of time to get my slides together in, so I shall try again with that talk next time about.
Suddenly the Fotango collective seem to be using Devel::LeakTrace so I had to go and fix it. Pesky users.
I hate it when that happens. Especially after I've already uploaded it to CPAN and started thinking about a talk on it.
Fricked about for a few hours in setting up an ogg stream to keep me sane in the office. I looked at a bunch of existing web jukebox systems but they all seemed to want to completely take over the organisation of the source mp3s and oggs, sod that for a game.
So I tweaked the ices2 example to serve up a playlist, which was pleasant, but a little awkward since you couldn't jump around. I really wanted a way to (a) jump around the playlist, (b) stream mp3s too and (b), shift the cost of encoding onto another machine on the network.
xmms-liveice seemed to be a fit for that. It'll let you use xmms to feed the stream which gets you all the joy of xmms's playlist handling and being able to generally cope with all the files I already have. There was the small catch of needing an X server somehow but Xtightvnc solved that, so I started streaming.
A 64Kbps mp3 stream of whitenoise, but a stream all the same.
esdmon | ices2 ices-live.xml
An even better 112Kbps ogg encoded whitenoise stream! Precision is important in these things after all.
So I scratched my head. Eventually it occurred to me that esdmon was probably outputting big-endian values, where ices2 was expecting little-endian values. Neither esdmon or ices2 could be configured to deal with that, so I quickly wrote some C.
./swapend | ices2 ices-live.xml
112Kbps ogg-encoded RAWK!
Fiddled a little with
Timesink, changing the unique property of a
item from it's
link to a md5 hash of it's
description. This stopped the OpenZaurus feed from collapsing in
on itself, and also means that a revised item is displayed as a new
Tom gave me a bad idea, then Mark refined it into a more fun bad idea. There's an implied deadline of next Friday, so it may yet all fall to bits - deadlines aren't my friends recently.
Well the review ladder came back with micro-optimisations rather than style issues, which I suppose is reassuring, but I suppose I was hoping for something slightly more incisive.
Now left in the unreleased pipe are: Class::Sealed, Games::Tetris, Devel:Where, File::Find::Rule::CVS, Acme::Pie, and possibly Acme::DupArray (if I can ever imagine a useful API for it)
I dare say they'll all get usurped by whatever the next cool thing is though.
Got an email from Tom about File::Find::Rule which in answering it made me realise how slack I'd been with the 0.20 dev, so now I have to convince myself that it's the hip new thing.
May the lord have mercy...
Released File::Find::Rule 0.20. Fingers are crossed and our operators await your call.
I am feeling meta-hateful
Bit fluy and unable to sleep I sat up and hacked out Games::Set. Along the way I made a wonderful discovery which had a most kinderworthy surprise and toy.
The toy was Algorithm::ChooseSets, which was just perfect for the "I have these cards, what sets are possible" question. The surprise was that I knew the author, Brain Duggan.
I worked briefly with Brian on a project from hell back when he was drafted in from the New York office, and we've met a few times since, but I didn't really expect to be picking his module out of the blue.
The module is cool, if you ever need to identify all the possible n-sized subsets of some larger set then Algorithm::ChooseSets is going to be the one for you.
I mailed it off to the newly formed code review ladder to see what they made of it, and in part what I make of their suggestions. We'll see.
Went and saw mummies at the British Museum.
Whoa, just clocked 1500 revisions on http://unixbeard.net/svn/
Lost in the intermission is my Class::DBI rewrite of timesink, my web-browsable rss aggregator. I pretty much tore down the database schema and did it again correctly so it supports multiple users, logging in, and all that jazz.
Class::DBI made everything so much cleaner, there's far less code than there used to be, despite there being many more complex table relations. I can even safely link to my installed copy now and know you'll not disturb my state. Aaah.
I might CPAN release it at some point, but I need to nail down my mod_perl/cgi handler a little better. It's currently a slight adaptation of Siesta::Web but ideally it could be reworked to be used from both apps.
Mmmmm, meatball sandwich.
Did some hacking on the hates-software software. Now it has permalinks and a basic RSS feed.
Next up: displaying of comments, but first a nap.
Got busy, got too hot, got cold, got hate, got earache, got stressed, got caught up, get out of here.
Bundled up my script into Module::CPANTS::Generator::FreeBSD and sent it off to Leon.
Started hacking on a web-based repository browser for Munj, which
resulted in the adaption of Template::Plugin::Dumper into
Template::Plugin::YAML. Found a small bug in
resulted in mildly hosed repositories on single-file checkins.
London.pm emergency meeting as Geoff Avery and claes were in town. Arthur made sure we all had homework assignments to be working on. I get to continue with the perlbug triage herding, and fiddling with Munj.