Hacker's Diary

A rough account of what I did with Emacs recently.

January 31
It's hard to watch Good Night And Good Luck without drawing parallels to the current state of affairs in America, particularly the closing shot of someone (a senator, I presume) waxing lyrical on the nature of freedom of association and the bill of Habeus Corpus. A good movie on a topic I wasn't overly familiar with, and a shame that the likes of Murrow seem to be a lot harder to find these days.

January 30
Got some stuff done at work that's been pending for quite a while, so a celebratory pint was in order. And of course, you can't leave those celebratory pints out on their own, they need guidance from their peers...

January 29
Everything Is Illuminated is another movie I put on the list so long ago I'd even forgotten what it was about. Turns out it's Elijah Wood in another "I'm not a Hobbit" role, looking curiously like his character from Sin City, in fact, but that aside it's a wonderful movie. It's funny, poignant, thoughtful, beautifully shot, and features some excellent music. Definitely worth seeing.

January 28
The noisy fan mentioned last month finally got sufficiently annoying for me to actually turn off the server last night. I subsequently discovered that some part of my login to the web/mailserver is dependant on an NFS mount to the server that I switched off, as are a few of the CGI scripts. D'oh. First things first, though: replacing the fan. As the owner of too many computers I had no trouble locating a spare CPU fan; popped the server's case and discovered that the heatsink and fan are glued to the CPU. As the owner of too many computers I had no trouble locating a spare CPU; swapped out the CPU and fan, powered on the server, whining fan continued. D'oh #2 - it was the PSU fan. As the owner of too many computers... so now the box is back with a new quieter PSU, and I'm waiting for the backups (which kicked in as soon as the NFS server appeared) to finish so I can take it down again, put the case back on, and shove it back in the cupboard. Of course, I also need to figure out where the dependency on the NFS server is. I really don't need that.

Well, for a start I can change a whole bunch of Perl scripts from use lib "/home/waider/src/perl"; to use lib "$ENV{HOME}/src/perl"; and frankly I'm kinda surprised I'd not done that ages ago, since my home directories differ from one machine to another on my network (Legacy crap. Yes, there is legacy crap on my little LAN. How sad.)

Speaking of legacy, I added fedoralegacy.org to the FC3 box, since Red Hat have stopped giving me updates. Again, something I should've done ages ago, and now there're 42 updates totalling 54 meg waiting for me. Including a new kernel. I wonder if it solves the NFS bug I encountered?

Happy Birthday sis!

Made a few passes through the librvp code, picking off marked bugs (i.e. the ones I'm aware of but haven't done anything about). I still haven't fixed the fact that there's a synchronous write in a very important place in the code that really needs to be made asynchrounous, because it'll require a major restructuring of a central function and frankly that scares me. I just know I'll break the whole thing. Actually, in the words of the late, great Douglas Adams, this may already have happened.


January 27
Found a minor bug in the TV movie listings CGI script, which was spewing errors into the httpd error log whenever it was encountered. It's not anything important, but it was annoying me.

What we will laughingly refer to as "The Plan" was to have some food and catch a movie at the local cinema. It got sort of derailed by Andrew Tannenbaum's Sweet & Sour Chicken (hey, even my cooking is geeky) and the last hour or so of Star Trek: First Contact, at which point it was too late to go to the cinema (it seems we don't get late weekend shows out here in the 'burbs). So we watched the rest of Long Way Round, followed by Once Upon A Time In Mexico. Pah. Who needs cinemas anyway?

January 26
Sheila's visiting for the weekend. We spent far too long watching a few episodes of Long Way Round, which really I think should be mandatory viewing for anyone thinking, "it'd be really wild and romantic to drive a motorbike across <country>".

Gaim 2.0.0 beta6 is out; this time they don't appear to have changed any of the API's I'm using, and this is allegedly their release candidate for 2.0.0, so I guess I should kick out a new version of librvp this weekend to match it. Stay tuned, I'll be socialising too and that always interferes with my desire to sit on my own in front of a laptop pounding out code... I wonder why?

January 25
Mirrormask is a lovely piece of work; it really conveys Gaiman's sense of humour and mischief. Definitely worth renting out.

January 24
Met up with Lou for a bite to eat and a chat, which turned into a few beers and more chat. You were expecting software?

January 23
Man On Fire is about 40 minutes too long: instead of spending all that time establishing Man Redeemed By Little Girl, they could've just opened with the kidnap and worked from there. There was also a bit of that irritating jump cutting/over-exposure that made Domino difficult to watch, but once the movie got going (i.e. after the excessive 40-minute intro) it wasn't actually all that bad.

January 22
Started digging into the actual .OMA files in the v2 code. It's a little premature, but should get me some visible results quickly and then I can go back to filling in the missing bits. I also really need to prune out the v1 code, especially the bits that have been obsoleted by rerouting them through the filepointer interface.


January 19 - 21
Went to Galway for the weekend to hang out with Sister and Brother-In-Law. Got hailed on (painfully). Managed not to buy anything in a bookshop. Managed not to buy anything in a music (instrument, as opposed to CDs) shop. Had several beers. Had a tasty burger with cheese and bacon in... pita bread. Had a quantity of wine. Had a slight hangover. Had a whale of a time!

After our Big Saturday Night Out, the young whippersnappers were too wiped out to stay up and watch Pirates of the Caribbean: Dead Man's Chest with me. Actually, I kinda missed the first ten or fifteen minutes due to, uh, not being able to concentrate on it. It turns out it's not quite as good as the first, but neither is it simply a rehash of the same gags, which was good. I think I shall be a-purchasing it. (Mind you, for some reason Play.com will only ship it to the UK, so I'll need to shop elsewhere for it...)

Happy Birthday, Hannah!


January 18
Killed my webserver, but thanks to netdump I got to see a stacktrace this time. Looks like NFS just plain blew up.

As of, hmm, yesterday I've given up my position as maintainer of the Big Brother DataBase. The truth of the matter is that most of the "maintaining" I've done in the last year or more has amounted to accepting other peoples' patches and writing curmudgeonly emails about why feature X is not implementable and so on. Robert Widhopf-Fenk, who also appears to have taken on the task of propelling VM forward, is the new maintainer; he's been working on BBDB pretty much since I took it over, and has proven himself to be well capable of driving this particular bus.

More hacking on the v2 stuff. I think I've figured out a little more of the file formats. The annoying bit is that someone out there has figured out enough to write a Java app, but hasn't seen fit to share the info, so I get to redo someone else's work all over again.

January 17
Ok, so now nw-dump sort of halfway works for v2 devices. There's a lot of faking going on, but it doesn't actually crash, which is an improvement. I'm using the v2 API as a lever to drag some sense into the v1/libnw API, so expect things to move around a lot more. In particular, all the nw_ types will most likely wind up being opaque to anything outside the library, because I really don't want you mucking around in there.

January 16
Good things about Underworld: Evolution: Kate Beckinsale, and some of the music. Bad things: pretty much everything else. It suffers much the same problem as the second and third Matrix movies: once your heroes are indestructible immortals, all you're left with are Larry/Curly/Moe slapstick fights. Ptui.

Interesting: I managed to figure out the failed decoding attempt from last night (they're not ID3 frames, they just look a lot like them...) and it occurs to me that this format easily allows S*ny to product a player which can store e.g. album cover images in the metadata section of this stupid indexing system. No idea if they've built such a device, mind you. Of course, I'd already figured out this decoding before, and even documented it, but I, er, didn't read my own docs. D'oh.

January 15
Weird. I go to debug the problem with the libnw code, and I can't reproduce it. I can guess roughly what happened - it takes a shortcut to finding the Media Serial Number if it can, because otherwise it may need root privs to get the data - but I can't see how it happened. So, er, sure. Use the code. If your player says "MG ERROR", then you just hit the same bug. Wherever the hell it is.

Made an unsuccessful attempt to decode one of the v2 files. I may need to *shudder* read some specs for ID3 tags...

January 14
Continuing my quest to put some life back into this creaky laptop, I switched from KDE to XFCE. Now, this is nice. It seems to have most of the bits I want and it's lightweight. The dock is a bit short on applets and there's not a way of configuring it exactly as I'd like it (notification area in the dock and full-screen width being two things off the top of my head), but other than that it's just fine. Mind you, at this rate I'll be back to using my old FVWM config from the 1990's...

I've a little toy called xmms-frob.pl which does stuff like pull "now playing" info and playlist housekeeping when I'm on a file renaming spree; it relies on a Perl module I contributed to some time back called MP3::Info. This module used merge equivalent ID3v1 and ID3v2 tags, so if you had a file labelled with both the v2 tags would override the v1 tags. Somewhere along the way the current developer has apparently changed this to return an array reference with the relevant tags, and there's no indication of this fact in the docs. It appears to be a side-effect of his attempt to deal wtih ID3v2.4 trailers, from a rough perusal of the code. Anyway, patched around it, made inappropriate comments, and I'm flinging the resulting script into the workshop. Note that the last.fm stuff in there is for the old streaming system, so it no longer works, and there's a hardcoded attempt to cater for people listening to a stream labelled "(Gronk)" which is of minimal use...

Hmm. XFCE doesn't seem to have any means of mounting USB drives automatically.

Squished one memory leak in the "new" MPLE code, found another. There's a strong argument for just throwing this stuff away and starting over from scratch, but you think I'd do that? Anyway. I am goading myself into doing more work on this by flinging it into the workshop for public abuse; it's called libnw which I've just found out that clashes with a library for Neverwinter Nights. I was going to rename it to libsnw, but someone's using that too, so to hell with it. For obvious reasons I'm unwilling to put Certain People's Trade/Service Marks into the name to distinguish it from the other stuff out there...

Ok, the libnw code is BROKEN right now for both old and new APIs. Actually, it's not even functional for the new API, but I seem to have broken it rather badly for the old API, which I hadn't exactly planned on doing. And the test suite still checks out, so evidently my test code needs work, too. Anyway, don't use it right now. Use the mple stuff instead.


January 13
Once more, a day of no importance. Per one of the non-resolutions I made, I did spend some time making use of the sizeable stack of musical equipment I've accumulated, but I am not yet Brandon Flowers and his merry men. Also, trying to assemble a drum track when the drummer is essentially playing a non-repeating rhythm on the hats is pretty frickin' annoying.

January 12
The Man Who Wasn't There is pretty stock Coen brothers stuff: a bit quirky, a bit dark, and a twisty plot. It's well put together and all, but it didn't really engage me as such. And Scarlett Johansson kept remind me of a friend of mine, which was kinda distracting.

"Keef from Boyzone" was in our office today. Well, not in our office; he was in the Digital Hub for some random TV production. Yesterday there was a bunch of guys who all looked like they'd know if asked the exact pros and cons of a half-dozen brands of hair goop, apparently all contestants for I presume the same TV production.

January 11
Oooh. Work drinks. Like, a tab and stuff. Blink blink. Someone paid me a HUGE compliment this evening, I'm not sure I'm actually worthy of it, but to hell with it. GO ME.

January 10
I was expecting Shaft (2000) but I got Shaft (1971)... well, it's a classic. It's a classic of bad acting, but it's actually not a bad movie aside from that.

January 9
Not sure where this evening went... I went running, but aside from that I don't seem to have done anything worth noting.

January 8
Of course, it was inevitable that all of this fiddling with my phone would lead to some confusion: I accidentally resent a text message from a late-night conversation in October resulting in a response reading, in its entirety, "???". D'oh. I'm blaming Motorola for putting "resend" at the top of the options menu when you're trying to do something with a message in the Outbox.

Having discussed it with someone recently I had a hankering to watch High Fidelity all over again. Such a great movie, and such a great book.

January 7
I really wanted Æon Flux to be good, because the trailer and even the DVD menus looked so slick, reminiscent of The Matrix. Unfortunately, it didn't turn out that way; I'm not sure if it was poor pacing or what but it just didn't seem to work well. Ok, so Charlize Theron isn't exactly hard on the eyes, and Martin Csokas looks like someone mixed together the better bits of Clive Owen and Kevin Spacey, but really it just wound up being a could-have-been-great-but-wasn't.

Fun With Dick And Jane was ok. A little too much of Jim Carrey playing Jim Carrey, but aside from that a nice piece of brainless nonsense to while away the evening. Given my rather hectic last few days, pretty much exactly what I needed.

In more geekly events, I finally decided to do something about the fact that my poor aged laptop is constantly swapping to the point of being unusable; I checked to see what the hell it was at and found that Nautilus on startup was consuming 100M of memory just to give me an active desktop. So I've switched from Gnome to KDE, since the kdesktop process uses a more restrained 18M for the same purpose. And lo, firefox is rendered usable once more. Now to figure out how to replace all the Gnome-ish crap I was using.


January 6
Whoop, MORE socialising. Sheila was persuaded to stay in town, and I'd already arranged to go out with Lou, Elaine and Dave anyway, and it all wound up as a mini college reunion in The Porterhouse followed by a much-reduced group of revellers ultimately partying chez Waider. Notable occurrences: the Blue Note populated by what looked like a birthday party, including some anklebiters, despite it approaching 9pm; Pravda full of bad music and strange people (well, moreso than usual); talking heavy physics with Elaine at Ukiyo; Alan's extremely popular hat; and my second-ever performance of the entirety of Sweet Child O' Mine on air guitar with cheers, whistles and foot-stomping from the Aussie Chicks (and the rest of the gang). I, like, totally rock, yo.

January 5
Further incidence of socialising meant that for the 5th of January I spent all of about two hours in my house.

January 4
An incident involving the Lou Crew, a pub, a nightclub and an increasingly familiar couch meant I didn't quite make it home. All very reminiscent of 2002, right down to the people involved.

January 3
Ah, the things I get up to when I've some free time and an interesting puzzle to figure out. Thanks to the fact that my phone (well, everyone's phone) doesn't allow you to retrieve the "sent" time for outbound SMS messages (and why the hell not?) I now have several nasty bits of perl; the approximate workings thereof are, pull list of messages from phone, pull appropriate bill from Vodafone website, parse bill, compare bill with list of messages, if possible datestamp messages. I've been tooling around with this since before Christmas, but I finally got it working today. Of course, given that the "parse bill" step involves regexp sillywalking through a ps2ascii rendition of a PDF file, "working" is a pretty loose term.

One thing I've noticed from the mucking about, actually, is that the text messages I sent from Iceland appear to have been billed as two separate items: an international SMS to my SMSC, followed by the SMS to the intended recipient. The funny thing is that the international SMS is in Icelandic time, while the immediately-following SMS is in Irish time, an hour later. Hmm, now that I look closer, the same thing happened for the Seattle trip.

January 2
It's still 2007, surprisingly enough. It hasn't gone away yet. And I'm not up to much worth writing about.

January 1
Happy New Year!

previous month | current month | next month


Here we go again...