Hacker's Diary

A rough account of what I did with Emacs recently.

October 31
So I spent some time reading and trying things out, and I still can't get either of my Palm devices with Bluetooth to recognise that there's a Linux box standing next to them advertising connectivity. Bah.

October 30
Not much going on this evening, since I went to the gym and that tends to push against anything else I've got on my list of things to play with. I've still not switched over to using my shiny new Palm Tungsten E2, mainly because I don't have a case for it. I've just ordered one from eXpansys, matching as closely as possible to what I've got for the Palm Vx, and I also succumbed to a moment of weakness and ordered a wireless network card for the gadget, too. Ubiquitous Interweb, here I come!

Actually, I'm curious to see how the mail program that came with it works in the presence of the wireless card. Right now, I found myself somewhat unimpressed with the fact that I had to explicitly tell it to go dial up a connection for itself; to me, the point of having a ubiquitously networkable device like this is that it picks the best available network when you want it. In other words, if you've got a wireless network point in range, it uses that, otherwise it falls back to dialup. Or maybe there's a bluetooth network option in there, if I can figure out how to configure one of my Linux boxes as the other end of the connection. Time for more reading, I guess...

October 29
Mucked around with some cabling and a half-dozen programs and eventually got my MIDI keyboard to squawk. It's a start... what I'm missing right now is something obvious to tell me "You've just plugged a Korg M-1 into your MIDI network" or some such. Sysexxer looks like it should do the job, except that it crashes when I try to set it up with the correct device. A real shame as it seems to be exactly what I want. Might try debugging it...

October 28
Watched the rest of Neverwhere. I have a hankering to go buy the book now, which I last read probably around 1996 when the TV series was broadcast.

I picked up a few second-hand CDs yesterday and decided to let the default KDE audio ripper convert them to MP3s for me, instead of using Grip. They've done a lot to make the interface user-friendly, although for some reason after I'd configured it the first time I had to restart it before it'd let me actually rip anything. However, I did notice one or two rough edges: for one CD, the genre was "Alternative Rock", which the mp3 encoder balked at as an invalid genre; and for, I think, the same CD, the saved CDDB file is missing all the track-length information - which breaks Gronk, although I've not actually used Gronk in quite a long time now.


October 27
Lunch with Lou, then dining out with a few friends later on. Mmm, beer!

October 26
Transamerica is one of those movies where for an hour and a half, nothing seems to happen. It's not that it's bad or anything, it just didn't seem to engage me. Plus, loose ends. What became of Graham Greene's character? I know real life isn't like the movies and those seemingly meaningful moments often come to naught, but, er, this is a movie. The seemingly meaningless moments are supposed to turn out to be meaningful. Anyway, not actually a bad flick, but not something I'd say you'd have to go out and see immediately or anything. It'll be on TV in a short while I'm sure.

Started watching Neverwhere, which I'm pretty sure I saw when it was on TV although I can't exactly remember if that was the case or if I'd just borrowed someone's tape of it. I picked up the DVD a while back and hadn't gotten around to watching it; it's quite entertaining, and more so with Neil Gaiman's commentary over it. He declares himself unhappy with several aspects of it, not least the fact that the shooting of it on video tape made all the authentic locations look fake, but I can't say I found it particularly noticeable or bothersome.

October 25
Why do I keep renting Vince Vaughn movies? The guy almost invariably annoys the hell out of me, since he's almost always playing his "I'm the guy who talks fast" role. And so, The Break-Up. About 15 minutes in I wanted to kill the entire cast, but fortunately as the movie went on they gradually vanished (what's that about?) until we were left with the main characters and one or two supports on each side. And thankfully one of the elements that vanished was Vaughn's motormouth. There are a few funnies, and it might work well either as a date movie or as a "I just broke up with someone" movie, but as something to watch on a Thursday night on your own I can't really recommend it.

October 24
Cars was fun, but I can't help feeling that the whole anthropomorphic vehicles idea simply didn't work very well. And I don't quite get why they spend so much effort on things like water and light and even rubber "marbles" on the race track for an environment where bending the laws of physics is sort of the point. Still, worth a look.

October 23
Work beers, involving package management, virtualisation, and many war stories.

October 22
Various technical plans for this evening were abanadoned in favour of a trip to the gym and catching up on some reading.

Ok, not completely. I've started writing short test programs to identify leaky code in the system libraries so I don't waste time tracking down leaks that aren't my fault. Certain chunks of recently-written code (GLib, GTK, DBUS, HAL...) seems to operate on the principal that some memory doesn't need to be released since it lasts the lifetime of whatever program includes it, and the system will clean up when the program exits. This is all fine and dandy except when I'm trying to nail down memory leakage in my own code and have to unravel what bits I'm actually responsible for first. Here's an illustration of one of the leaks I've found (assuming, of course, that my code is correct): calling dbus_bus_get followed by dbus_connection_unref results in a leak of 7,588 bytes. Which is trifling stuff, to be honest, but still.

[Guide For Mom: A memory leak in a program works like this: I ask the system for some memory to store something in. The system gives me a label saying, "your stuff is stored here". When I'm done with the memory, I throw away the label instead of giving it back to the system. So now the system thinks that the memory is still in use, but since I've thrown away the label saying where that memory is, I have no way of telling the system that I'm actually finished using it - what I should have done was handed the label back to the system. As such, this memory is now unavailable for anyone to use, and this is known as a memory leak. This is why, over time, most non-trivial programs use up more and more memory until either the program or the system crashes. There are various techniques for avoiding this, but it's still a pretty major problem.]

October 21
Plugged in MIDI doohickey. Kernel said, "USB-to-MIDI doohickey". And there was much rejoicing! Now to see if I've any software to go with it, although my first intention is to use the bits I hacked together some time ago to make a backup of what's on my keyboard (musical, not computer) before doing a full wipe of the thing.


October 20
For handwaving reasons I ended up working out in the same gym as one of the players from our national rugby squad - Jerry Flannery. I did not ask why he wasn't still in France as I like not having broken bones.

October 19
Picked up a Yamaha USB-to-MIDI doohickey, after briefly and vainly scouring the packaging for an indication that it might or might not work with Linux. This is why I end up with so much useless hardware. Well, that and the fact that for years I tended to take the hardware that other people were throwing out.

October 18
Went at the Bank of Ireland stuff, and now it works. It's a bit less fragile in most places, so it should at least die properly the next time they update their content, rather than leaving random stuff undefined.

My fileserver sounds like its fan is on the way out. Dunno if it's the PSU or CPU fan. I think it's already had one or both swapped out, which possibly means I have no spares.

October 17
So today I acquired a Palm Tungsten E2 for less than half the current retail price (thank you Ebay and Luzern Technologies). It's quite nice, although I did manage to lock it up completely: set the automatic keylock, enable "wake on bluetooth access", then let it lock itself, then try poking it with a bluetooth signal. The unlock screen appears, but you can't click on anything, because behind it is a dialogue box telling you bluetooth is active, and that's trying to claim the input. This is a pretty trivial bug, I hope the rest of the thing isn't as easy to break. The worst part, of course, is that none of the toys for my aged Palm Vx will work with this, so I have to go and get myself a bunch of new toys.

Bank of Ireland updated their website again, apparently to make it harder for people to use ("I know! Let's replace the type-in boxes for the PIN with pull-down lists!"). As such, the Perl modules I wrote to connect to the online banking stuff don't work right now. I'm in the process of rewiring them for the new site, though.

October 16
Minor perl tweaks for some other site-scraping stuff that got broke.

Storytelling was, uh. I'm not sure I got the point. Or maybe there wasn't one. Actually, about 15 minutes into the second half it started annoying me. And it went downhill from there. What a waste of time.

October 15
Took a spin to the gym and surprised myself by not dying. Hurrah for recovery time!

Well, that was annoying: car battery is flat, a trick it pulled about this time last year also. On inspection, the electrolyte level is kinda low, so I guess I have to go get some distilled water. Meantime, I'm recharging it off the mains.

Happy birthday, Elaine!

October 14
Finally got around to fixing last weekend's exploding lightbulb; when I rewired the socket during the week, the light wouldn't go off regardless of the switch position. Yes, I did rewire it correctly. I surmised that the switch must have been damaged in the power surge, so I opened it up, dismantled it, failed to find any fused parts, reassembled it, reattached it to the wiring, and powered things on. And it works. Hurrah! I will note in passing that the wiring it's connected to is old enough that it uses the "all wires should be the same colour" wiring system. How electricians survived that period I have no idea.

Did a little more digging in the libnw sample files but didn't really make any significant discoveries.


October 13
Woke up, took the train and tram to the Phoenix park, ran 5 miles in about 34 minutes. Hurrah! Had lunch with Lou, who also did the 5-miler.

Tooling around with the Vodafone stuff a bit. Looks like their MMS-to-Picture Gallery gateway is broken again...

MORE libnw hacking! Also, Con Air was on TV, so I kinda half-watched that as well.

October 12
More coffee and gossip with Lou. Also a damned fine BLT.

Vodafone updated their site this week, which broke one of my site scrapers (a bunch of stuff, actually; the one I most often run is the one that takes a picture from the Vodafone Picture Album and posts it to Flickr for me). Spent some time fixing that this evening. Turned out to be not a huge amount of work, really. The nice thing about the various scripts I have is that they all use the same code to access the Vodafone site, so I only need to fix it in one place.

October 11
libnw: working again, but still leaking memory. Also, the v2 code will not safely delete things.

What I'm doing with it right now is trying to cut down on the device-specific code so that there's more common, shared code to work with. Of course, I'm not entirely sure about the particular way I'm doing this, but it certainly makes things like cleanup-on-exit a lot tidier.

October 10
After many months I've started playing about with the libnw code again. The thing is, I've now got an iPod, and the world at large is (slowly) moving away from Devices Which Scramble Your Audio Files. Still, I'd like to get this stuff back in some semblance of working order. For now, it compiles, then crashes, as I've been changing some of the internals to not be quite so hard-coded.

Ok, now the v1 tests run successfully, but it leaks memory. Code In Flux™

And it's broken again, and I'm off to bed. Hurrah!

October 9
Black Snake Moan, in which Christina Ricci looks oddly like one of the Arquettes, and Samuel L. Jackson is, once again, a badass. It's not a bad movie, all told, and the music is pretty awesome.

October 8
Met up with Lou for coffee and gossip (quotable quotes were quoted, pointing and laughing occurred, etc), followed by a rapid trip to the gym to try and squeeze in a workout before the place closed. Made it, just barely. Bad enough that I have been the last person out of various local bars, without being the last out of the local gym as well...

October 7
Back down to the gym this afternoon to get inducted into their fitness hoo-ha. Yes, I realise a gym and fitness are not the sort of things you'd expect to find in a quote-unquote Hacker's Diary, but there you go. I am now possessed of a fitness programme, which is a bit wimpy but is merely intended to ease me into the whole thing (several months of running and a half-marathon notwithstanding). We shall see how this progresses.


October 6
Well, that was entertaining: bulb in my bedroom light blew. I figured I'd swap the one from the bedside lamp in temporarily. Untwisted the bulb, noticed it was a little twistier than I'd expect for a bayonet fitting, but thought nothing of it. Twisted the bulb into the overhead socket, again noticing further twistiness. Huh, what are the chances that both sockets would be loose? Hit the switch for the overhead light, watched as the bulb was shot from the socket with a bang and a flash (also tripping the circuit breaker in the process). Nothing wrong with the fittings, the problem was that the bulb glass had come unstuck from the metal contacts and in twisting it into place I'd short-circuited the live and neutral terminals.

October 5
Despite having two movies on hand from ScreenClick, I opted instead to half-watch Robocop on TV. It's still a good movie; about the only special effects sequence that didn't age well is the ED-209 stuff - it's just a bit too jerky.

October 4
And more beer, this time with James and Ruadhrí. Apparently I'm some sort of political outcast.

October 3
This is turning out to be a very non-geeky week: went to the gym, then filed a bunch of paperwork...

October 2
Beers with Cathal.

October 1
Found some perl modules for talking to my mobile phone. Interesting...

Hmm. Not quite useful enough. It seems to get as far as switching the phone to the appropriate file-access mode, then stops talking to it. And it wants administrative privileges.

previous month | current month | next month


October? Where's this year going?