Hacker's Diary

A rough account of what I did with Emacs recently.

December 31
I decided I'd have another look at Thunderbird's RSS client. It's not really something I could seriously use, as one of the main requirements for my RSS reading is an online browser so I can access my feeds from anywhere. ("feeds". How very Transmetropolitan.) In order to avoid manually importing all my feeds, however, I first took the time to bolt on an OPML export to my regular RSS toy. OPML: yet another poorly-planned RSS misfeature. There's a Wikipedia article going into some detail about what's wrong with it, but let me summarise briefly: it sucks. A few rounds of "export from Thunderbird, export from RSS toy, compare, tweak, import" and I had something working. Then I started collating all the imported feeds into approximate categories on Thunderbird. First thing I noticed is that none of the imported stuff is set to automatically fetch new articles... secondly, managing feeds in Thunderbird is awful. Aside from the fact that there's no Copy/Paste context menu in the Add Feed dialogue box (strangely, the shortcuts like Ctrl-C work), you can't actually edit the folders in the feed management window - you can only shuffle feeds from one folder to another. If you want to edit the folders (e.g. title, whether it updates or not) you have to do that from the main window. My guess at this point is that the RSS reader was thrown together by someone as a hack, and the responsible party then got distracted by all the feeds he'd just imported. Frankly, even if it did allow me to keep some sort of online tab on where my reading was at, I'd still not want to use it.

End of year... I've not released RVP 1.0, sorry. But then Gaim 2.0 is still at beta5. I've not released the new MPLE code I've been working on, not least because the API is still in flux and there's a memory leak I've still not tracked down. I've not released BBDB 2.35/36 but then I've not released a version of that in, er, five years? six years? Oh well. Maybe next month. Have a good year-end, whatever you're at.


December 30
Went back to the random housecleaning. Rediscovered "Carpet Level" in the bedroom, which is good, as it had been somewhat obscured for a while. Admittedly a certain amount of the cleaning has involved moving crap from pile A to pile B and back again, but I've actually managed to jettison some stuff in the general direction of the bin.

Had a quick shot at that SMS-box-as-IMAP idea I mentioned a while back. Realised implementing an IMAP server was going to be far too much effort for such a cheesy hack, so I opted for a POP server instead. Got as far as figuring out I'd need to go and consult the POE manual pages (by which point I'd done most of the STAT command) before I got distracted by the aforementioned cleaning.

December 29
Tried out the Line6-provided MIDI software for the POD. It's, er. Bloody awful. After checking cables and what not I eventually figured out it was trying to use the FM Synth instead of the MIDI interface to talk to the POD. Then I couldn't get it to actually scan for the POD on the MIDI interface (it keeps reverting to the FM Synth), and I can't see an option under "manually add device" that allows me to set the channel, plus I did a loopback test on the interface and despite a 100% send/receive it insisted the test had failed. The help either doesn't help or doesn't match the UI, and the "check for updates to this software" link winds up at ... Apple.com. Choice.

Fixed up some geocoding nonsense I wrote last year which uses Maporama's search engine to find Lat/Long for whatever you're looking for. Since I wrote it, the Maporama site changed a bit and part of the change apparently includes applying More Stupidity; if you get multiple results, it appears that you can't ever actually progress beyond the list-of-results page, as it just loops back on itself. Hurrah.

Eventually decided that what I really wanted to do was to watch Casablanca. It's just such an amazingly good piece of work. Plus, it's got all those lines you thought you could quote, except you never get them quite right...

December 28
Spent the day doing some random housecleaning, in part trying to figure out if there's a useful arrangement of, er, three computer desks or if I should just jettison one or more of them. So far the conclusion seems to be in favour of ditching one, although there may yet be a way to rearrange things comfortably.

Went to see Isotope at J. J. Smyths this evening. Totally awesome, especially the drummer. In the company of Cathal for the evening, and Lou dropped in for a bit too.

December 27
Found the stupidest bug ever in the MPLE code, and it's been there for at least a year, possibly longer. The short version was that I was checking to see if x + 1 was greater than x, meaning a whole chunk of useful code never got executed. This only came to light when I found a particularly formatted MP3 file (the aforementioned multi-frequency file, which it turns out wasn't multi-frequency unless you treated arbitrary chunks of the ID3 data as actual MP3 frames) but I'm still surprised it's been around for so long. Anyway, yay. Squashed THAT bug.

Last day at work this year, whee!

December 26
Trying to figure out what I did wrong with the RSS toy exactly. The main difficulty I have is that any time I figure I'll adjust the code, I end up throwing away my entire reading history and in some cases the whole database, because it's too awkward to figure out any cleaner way to fix things up. So then there's a protracted period of "read that... read that... read that..." while I catch back up to where I was. Mainly, all this grief is caused by the fact that there's so much crap out there in RSS-land - most of the code I've written for this is an attempt to clean up and datestamp feeds before handing them off to a simple reader.

any2dvd is still messing with me. There's another place where it looks for Arial.ttf, and that one appears to ignore your config file. Fortunately now that I've got VOB files generated I can just tell it to skip the whole transcoding mess and go straight to DVD generation. Eventually I just gave up and dropped an Arial.ttf file into the appropriate directory.

I'm pretty sure someone told me that Meet The Fockers was worth watching. It's not. It's barely funny at the best of times, it's entirely predictable, it's too long - in short, it's Yet Another Ben Stiller Movie. Go and watch some grass grow instead, it'll be more entertaining.

December 25
Merry Christmas!

Novel. Poking at the MPLE stuff I discover that I am in possession of what appears to be a variable sample frequency MP3 file - frequencies ranging from 8 to 48KHz. What the hell?

March of the Penguins taught me many interesting things about penguins, such as the fact that they're plainly nuts - unsatisfied with simply living in the coldest place on earth, they have a complex and danger-filled species-continuation strategy; they're ungainly on land when they're adults; and they're insanely cute as chicks. Worth a look.

Broke my RSS toy somewhat. Grr.

December 24
More inconsequential loafing. Figured out the any2vob problem, so now I can use any2dvd properly: the former expects you to have Arial.ttf somewhere in /usr/share/fonts, and breaks when you don't. any2dvd doesn't notice and wanders off into a holding pattern, waiting for input that's not coming. To fix: either install windows fonts in /usr/share/fonts, or specify a font on the command line or the in the config file.

Spent the evening with Lou and Elaine and several bottles of wine. Putting the "Merry" in "Merry Christmas", if you will.


December 23
Spent most of the day doing some non-Christmas shopping, reading, and watching whatever TV threw at me, which included about half of Hook - which I saw on its cinema release, with a similarly-aged friend, in a matinee screening that was otherwise full of kids - and about half of Pirates of the Caribbean. The computer mainly spent the day transcoding a file with any2vob so I can find out where it breaks.

December 22
Oook. Sudden attack of some sort of cold or something. Where did that come from? Anyway, last day in the office before Christmas today. So I can sleep for the weekend.

Merged in Pete's patch, but still haven't considered Robert's as I'm a bit out of practice with hacking lisp lately...

December 21
Spent the evening out with Lou, so those patches for RVP (thanks, Pete) and BBDB (thanks, Robert) will have to wait for another day...

December 20
Well, the plan was that tonight was my "quiet night" to catch up on a couple of movies and sleep, but I got a call to take up a spare ticket to see The Stunning, and boy was it well worth while. I even met up with an ex-girlfriend who I haven't seen in about seven years.

December 19
Donal's last day in Ireland, so of course we had an evening in the pub.

My Christmas present "to me, from me" was waiting on my desk when I got back: a Line6 Pod that I bought on ebay. I tooled around with it for a bit while Donal checked email before the aforementioned pub incident.

Oh, and. Someone please tell the gphoto developers that "lock keys failed" is not a meaningful error message to us mere mortals. More to the point, I'm not clear on why failing to "lock" the "keys" is a fatal error when all I'm trying to do is list the contents of the camera. And further, I'm curious as to why the camera was misdetected when the camera list claimed to have drivers/detection for the correct model... in the end, I left Donal offload the pictures onto his laptop, and then hauled 'em across to mine via good old ethernet.

December 18
I've been away for a few days - my sister got married. Congrats, sis!


December 13
Requiem is the same story as The Exorcism Of Emily Rose, except with a smaller budget, I guess - I've not seen the latter, but I'd not even heard of the former until Lou asked me if I wanted to go see it. It's another one of those movies that you can't exactly be said to have enjoyed, per se; the subject matter is pretty grim. But it's well-made, and the lead actress turns in an amazing (and convincing) performance.

December 12
Sitting in my favourite bar with my favourite person listening to my favourite music. It doesn't really get better than that, I guess.

Also, congrats to Stella on her big news!

December 11
The New World could best be described as "ponderous". It's a complete waste of time, and frankly I found debugging autoconf macros more entertaining.

RVP fun and games: firstly, I managed to get a successful build on a 64-bit Linux box (thanks, Dave!) albeit with a few warnings where I'm casting pointers to integers. No cookies for me - literally, since it's in the cookie code. Secondly, I didn't actually manage to test messaging with said client as for some reason attempting to log in to my half-assed RVP server from two different networks (my home net and Dave's home net) resulted in one of the connections inexplicably hanging until the timeout kicked in. Well, at least I know the timeout works. The downside to all this is that I've got two bug reports that I can't reproduce, which makes them kinda hard to fix.

Oh yeah, and the craziness with autoconf. I run autoupdate to update the configure files, and it turns AM_CONFIG_HEADERS into AC_CONFIG_HEADERS. I look in the manual and it says that this is correct. I build it locally, and it all works. Schlep it over to the 64-bit box, and it complains that AC_CONFIG_HEADERS should be AM_CONFIG_HEADERS. Uh, ok. So I switch it back, and autoconf complains that AM_CONFIG_HEADERS is undefined. So I figure that hey, autoupdate will know what to do, run it on the 64bit box, and, uh. Yeah. Still broken. Stupid autoconf. This, remember, makes things easier.

One of the machines in the cupboard sounds like it's about to throw a fan. Yay. I'm more bothered by the annoying noise than the fact that there's a server fixin' to melt, really.

December 10
Slow day... there appears to have been some sort of Tom Hanks/Gary Sinise-fest on TV, as I caught bits of Apollo 13 and Forrest Gump. However I'd received two more discs from Screenclick so I wound up watching Lolita at some point in the evening. It sticks pretty closely to the source material, although Humbert's first marriage is skipped and there's a few other bits here and there cut out - and it's still a long movie. About the only thing that didn't quite gel for me was the closing scene with Quilty; I seem to recall the book being slightly more madcap from the start, and never with Quilty in any genuine fear - although granted I could be misremembering. I did like the fact that the humour of the book is carried through, even if it's occasionally done with a little slapstick. I'm now curious to see Kubrick's version for the sake of comparison.


December 9
Fiddled with some junkmail handling crap I've had sitting around for a while, trying to make it leave stuff on a server folder via IMAP rather than dumping it locally. The fact that it's written in Perl and uses a no-longer-maintained module to deal with mailboxes made this a little trickier than it sounds. Not like I'd have been inclined to do it in any sort of an easier fashion...

The evening was taken up with the office Christmas party, which I have no photographs of due to not bringing a camera. I'd intended to, but forgot. D'oh.

December 8
Ooof. Plans and reality didn't quite coincide, meaning I ended up with a little more alcohol and a little less food than I'd planned. On the plus side, I didn't have to spend two hours getting home and back into town again...

December 7
Beers with Ruadhrí to celebrate the aforementioned birthday, and in advance of Christmas, and because it's Thursday, I guess.

December 6
Aha, found the phishing bug in BankOfIreland.pm: I was matching on the link text instead of the URL. D'oh.

Also, the usual Wednesday evening beer and chat with Stella.

Got an excellent bug report for a core dump in librvp; it included the Gaim version, plugin version, exact sequence to reproduce the bug, and the debug output. It looks like something I've possibly already got a bandaid for if not an outright fix, but still. Let that be an example to you all.

More by accident than anything else I ended up watching A Time To Kill, which I'm pretty sure I've seen before; it's a pretty powerful courtroom drama with a rather impressive cast. I'm still not a John Grisham fan, mind you.

December 5
Happy Birthday, Ruadhrí!

I'd intended doing a bit of work on librvp this evening, except that I broke my Samba install, which in turn breaks my fake RVP server. I'm not even sure how I broke my Samba install, it just, er, broke. So I'm rebuilding my little domain from scratch with the latest Samba version since it's broken anyway and I'm not overly concerned about losing credentials, etc.

Hurrah, it's (mostly) working again. All I had to do was build the latest version of Samba, throw away all my config, rejoin the various bits to the domain, restart Apache... on the plus side, I can finally take advantage of a patch I submitted ages back that allows you to use wbinfo to pull an entire passwd-style record for a user, which in turn means my cheesy RVP server can now spit out real names to match user accounts. Small but useful improvement.

Now I'm getting two password prompts from Gaim. WTF?

Ok, if this is working how I think it's working, then the two prompts are because (a) I specified --login on the command line and (b) because the account in question is also marked "auto-login". This seems like insanely stupid behaviour, but on the other hand it's Gaim 1.0.1.

So I've still definitely got some sort of issue with idling, but it's not clear to me if there's a problem with the aforementioned cheesy server that's contributing. Oh well, punt for now.

December 4
Tooling around with some DVD-creation software in addition to further phone abuse. I'm somewhat annoyed by the fact that there are now several programs for Windows which basically bundle stuff like mplayer behind what I presume is a Visual Basic front-end: the annoyance stems from the fact that I can't seem to find a single corresponding Linux tool, despite the fact that all the backend bundled bits are generally Linux-native to start with. QDVDAuthor looked briefly hopeful, but left a trail of errors which it insisted weren't important despite the lack of a DVD at the end of the run.

The phone abuse was equally fruitless. After once again doing battle with Windows' idea of driver installation, I finally got one of the tools to talk to the phone, at which point it said, "oh, nice phone, fetching file list.... communication timeout". Yay. Helpful message, that.

December 3
Mostly inconsequential tooling around with the phone, plus a side order of sorting out some old files. Cleaning up a filesystem is, for me, a lot like cleaning a room: you move stuff around a lot without actually throwing away anything. Of course, the filesystem requires a lot less physical effort...

My watching of Walk The Line was interrupted about ninety minutes in by a text message telling me there was some really good music going on in my local. For those of you not familiar with the bar, this is the sort of place where it's not uncommon to hear barstaff telling people that singing isn't allowed in the bar - so much so that when I managed to finagle my way into borrowing the guitar and playing when Best Barman Ever left a while back, I figured it was a one-off chance to play there. The guys in the bar played, among other songs, Folsom Prison Blues, Ring of Fire, That's All Right Momma (which Elvis plays in Walk The Line) and Whole Lotta Shakin' Goin' On, which isn't on the soundtrack but is a Jerry Lee Lewis track and he's in the movie too. It's a fantastic movie. Just... just excellent. I can't say enough good about it, really. Both leads are totally convincing in their roles, and the music is just amazing. Better still if you watch it with DTS and somewhere that the neighbours aren't going to bang on the walls, because when it cuts into the Folsom Prison gig or one of the tour scenes mid-movie, you're going to be drowned in LOUD MUSIC. I particularly loved the jam session with Waylon Jennings, Jerry Lee Lewis, Johnny Cash, and whoever the hell else was with them; it's the sort of thing that someone should've been earwigging with a tape deck for posterity. I don't even care if it was a fictional creation for the movie, really. If you've not seen this, you're missing out.


December 2
Gaim 2.0 beta 5 is out, and once again the network API has changed. GRR. Yes, I've done little enough with the RVP code lately (handwaving reasons) but this is still annoying.

Yet more noodling with the NW lib. Sorted out the metadata problems rather messily, but I'm gradually dragging the API into some sort of shape I'm actually happy with. I've now made the main device structure opaque, which has highlighted a few more buglets.

Ok, so the gaim change isn't huge: gaim_proxy_connect now has one more parameter, which convention appears to be putting the GaimConnection struct into. Easy peasy.

Spent some time tooling around with my phone and figuring out (a) what commands it supports and (b) what those commands actually do; information that's painfully scarce on the ground (and the net). Ultimately I found that it's got a read-but-don't-mark-as-read option for SMS messages, which is nice; doing a full list of messages results in an ERROR code for reasons I can't determine; MMS messages come out as some garbled rubbish, while messages including Motorola's built-in graphics don't show up in the message listings at all; there's apparently no way to pull the sent-message status, so you can't find out when it was actually sent; and so on. I've this crazy idea that I could throw together an IMAP server for the phone so that I can pull the messages into a standard mail client.

December 1
Jarhead is sort of in the same category as Buffalo Soldiers: it's an unorthodox look at the Marines, focused around the first Gulf "War". It's pretty engaging, beautifully shot, well played, and the music is really, really good. Ultimately it didn't really tell me anything new, but hey. It's entertainment.

More noodling with the NW lib. The metadata is getting lost in some cases, and I'm trying to figure out where, and in the process realising that some of the MPLE-specific code could be dragged back into the main library.

previous month | current month | next month


Irish Summer continues - more rain.