Hacker's Diary

A rough account of what I did with Emacs recently.

November 30
Office drinks. 'nuff said.

November 29
Well, I'd planned on doing other things, but Bad Boys was on TV. It's still a nice chewing-gum-for-the-brain sort of movie.

November 28
Cypher plays like something Robert Anton Wilson would've written. Tons of paranoia and misdirection and it all holds together right up to the denouement. I like this; not quite enough to buy it, but I'd certainly watch it again.

Did some more Palm Pilot data cleanup. Still too many leftovers from the old backups, but I'm gradually getting them whittled down to data I actually want to keep.

November 27
Zwartboek is pretty grim throughout, but well made. Worth a look if you're into war movies, I guess.

November 26
Had a novel idea at the weekend while trawling the Argos website for information: a GreaseMonkey script combined with a web service to add semantic information to a website. Allow me to explicate: you visit argos.ie. It has, among other things, a store locator, which is bloody useless because it's a static map. So some helpful soul transfers the locations into a Google KML file, and updates the unnamed web service to add something like
Site: argos.ie
Data: store locations
Format: kml (or maybe Type: Google Maps)
You could also transcribe details like contact numbers, opening hours, etc. into appropriate formats (iCal, vCard). So now you visit argos.ie, and the GreaseMonkey script makes a call to the unnamed web service, which says, "We have a google map for you, and a phonebook", and GreaseMonkey provides some icons on the page to allow you to pop up or download the relevant details. This might be just intrusive enough to merit being a Firefox extension rather than simply a Greasemonkey script, but you get the idea. I'm writing this up here because I know it's exactly the sort of thing that I'd play around with for a few days, get it halfway working, and then abandon in favour of some other shiny object. Also, I've already found the store. I don't need a store locator any more, dammit.

For those of you who prefer buzzwords: Web 2.0! Semantic Web! Ajax! Rah rah rah! HOOP HURG CYBER HBLABHBABABHLBHBA.

I am contemplating adding an idea bucket to the website. Not least so that I can keep my ideas where I don't forget about them, and possibly where someone's likely to find them and either implement them or bug me into doing so.

I am downloading a bunch of stuff via iTunes podcast interface right now, and I really can't get over how amazingly clunky it is for something produced by Apple. For a start there's the adding/editing a podcast interface: a text box for adding, and no obvious way to edit if you make a typo. Then there's "Error -3259" on some of the feeds (goes away on retry, eventually): someone somewhere in Apple land knows what that number means. Why not put the actual text into the window, instead of an inscrutable error number? Oh, and I've one item that refuses to download at all, and I'm not getting any errors from it, either, so I can't tell what's going on. I guess since it's pulling from my own server I can check there...

November 25
One for I Want Sandy users:
#!/bin/sh
action=`basename $0`
echo $action $* | /bin/mail -s "" [yourmail]@[yourdomain].iwantsandy.com
Dump that into a file called remind somewhere in your path, and hardlink it to remember and lookup. Then you can enter those I Want Sandy directives on the command line. You'll still have to read the responses via email, but it's handy if you want to make a quick note of something. For now it appears that either the website doesn't have an API (strange, since it's based on Stikkit, which does have an API) or they're very deliberately not saying anything about it. Makes it tricky to synchronize the data there with anything, really.

I almost bought a Mac laptop on impulse this weekend. Maybe that'll be my christmas present to myself this year. I'm certainly getting tired of the laptop I'm using right now; aside from its general wimpiness in the face of Firefox's memory/CPU requirements, the left button on the mouse pad is starting to flake out. And this is a mouse pad I've already replaced once, too.


November 24
James pinged me this evening: he was out skating with his wife and wanted to know if I'd join them for a beer afterwards. This, it turns out, is about the most productive thing I did today - the rest of it was spent enjoying the comfort of my (somewhat worn) sofa!

November 23
So once upon a time I wrote some code for my chat client (XChat combined with Bitlbee) which would detect when my screen locked and set my status to Away. And at some point I noticed that it was broken: if the screen lock program (xscreensaver) wasn't actually running (which in turn was because I'd switched from GNOME to KDE), when I finally got around to shutting down XChat it would simply hang. I eventually sort of traced the problem to the code that checked to see if the screensaver was active or not, and so I disabled that code, and was then stuck with manually setting my status to Away.

Today, I finally added the extremely small amount of code required to have it detect the KDE screensaver, and so my automatic Away status is back in action. Hurrah!

Good: buying rechargable batteries. Bad: realising I don't actually have a charger big enough for them (they're D-cells) until after I'd left the shop. I bet I could've gotten a deal on battery plus charger rather than just battery, too.

Spent a long, long time attempting to consolidate a dozen or so different backups of my palm pilot from various periods. So far I've managed to get the address book approximately in order, and merged pretty much everything else so I've got just one set of files to work with. Really, though, I think I'd be better off visiting the nearest bar.

The Fifth Element special edition 2-disc DVD ftang ftang olé biscut barrel has possibly the worst menu system I've ever encountered on a DVD. It took me several minutes to figure out how to get through the scene selection...

November 22
Tooling around with I Want Sandy, which is a pretty nice toy.

Also playing around with my Vodafone site-scraping code, specifically the stuff I wrote to access the billing. Needs more work, I think.

I'd seen the start of Intolerable Cruelty before, although I've no idea where. I watched it on the strength of a recommendation from William Goldman (yes, that William Goldman) in his book "Which Lie Did I Tell?". And I'm glad I did. The courtroom scene where the client is trying to establish if his lawyers have encountered the judge before is priceless, and there's a lovely layer of schmaltzy romance sprayed all over the whole thing. Go watch it!

November 21
Investigating some Windows laptop diskspace issues, I find that the System Restore "feature" is chewing up over half of the available drive space. Booted into Linux, nuked the damn thing (after doing a full backup), rebooted back to Windows, laptop is happy once more. Hurrah!

November 20
After being out of service for quite some time, the Vodafone picture album "feature" appears to be back in operation. Of course, it's still a mess of broken javascript, missing images, etc. but at least it means my phone-to-Flickr gateway is back in operation. I've half a mind to trawl through the logs for the gateway and graph how often the picture album is down...

November 19
Java-based sudoku on my phone. That's it, no more productivity from me.

November 18
Sudoku for the Palm Pilot. Nice. Keeps me distracted.


November 17
Spider-Man 3 was too long. I'm not sure if this was a matter of editing or just because they had too many sub-plots going on, but really, when the whole goo-from-outer-space plot didn't get going until an hour into the movie, I wound up mentally trying to decide which scenes should have been cut. No conclusion reached, however.

November 16
An unexpected "feature" of Perl which I stumbled on today:
my @cm = qw( foo/a foo/b foo/c );
my $p = map { s@^.*/@@; $_ } sort @cm;
print join( ", ", @cm ) . "\n";
This prints "a b c", i.e. that map/sort bit has, in fact, corrupted the original array. Which I wasn't expecting, as noted. It took me quite a while to find this, because it's really not obvious. Even doing a silly hack like putting parentheses around the sort @cm bit doesn't work - your original array still gets corrupted!

[Guide for Mom... well, this one's a bit tricky to explain, actually. The short version is that I've got a list of things, and I thought I was making a copy of that list and modifying the copy, but it turns out I'm modifying the original list. So I was expecting this to print out "foo/a, foo/b, foo/c" like it says in the first line, and it didn't. This is what your son does for a living :)]

November 15
KPilot is truly awesome in its flakiness. Typically, one sync attempt in five actually succeeds. The rest of the time, something doesn't work and I don't know what, because the UI just says something meaningless like "lost connection to device". How? It was plugged in all the time...

November 14
Met up with Lou for the usual coffee and gossip. Chocolate and gossip. Hot chocolate with marshmallows, and a chocolate muffin. And gossip.

Accidentally found the dictionary for my phone. As in, the one that it "learns" from my typing. Also a bunch of other things that I didn't think would be visible files (i.e. I thought they'd be hardcoded into the system). Could have some fun with this...

November 13
Still continuing to fiddle with the Palm Tungsten. I've decided to set it up cleanly from scratch, since doing an "upgrade" from the Vx just left me with a bunch of useless crap installed (like drivers for the old external Bluetooth sled I picked up for the Vx) and omitted some useful stuff (like Plucker). The downside to this: I wiped the Tungsten, then told KPilot to sync it. KPilot refuses to sync and instead crashes; I'm assuming this is because I've not set the username or whatever it is on the Tungsten. Gah.

Ok, so it turns out it's just the Autodetect option that's broken. Once I kicked it a few times it offered to set the username for me, and now things are back in sync.

November 12
Impossible as it may seem, Epic Movie was actually worse than I expected. There's no good reason to watch this.

Hacking on the aforementioned *BSD code again, but I realised I wasn't exactly taking a structured approach to it (by which I mean I was randomly chopping out bits of code and attempting to replace them with code cribbed from another source), so I think I need to go back and look at what's actually going on in the code and see if I can figure out how to make it work. In the mean time I got KPilot to talk to the new Palm over the USB cable, so I'm not completely without backups.

November 11
Hacking on the *BSD code a bit, but mainly watching the last few Firefly episodes, visiting my cousin for Sunday dinner, and going to the gym.


November 10
Further adventures in Palm vs. Bluetooth on Linux. Getting the new gadget to sync is, uh, decidedly non-trivial. See, on Windows, you plug it in and you press the button. On Linux, you... well, as best I can tell, you're supposed to set up networking, then set up a network hotsync, and then throw your Linux box out the nearest window and buy a Macintosh. Fortunately, the *BSD guys came up with a marginally better solution which would be really great if it worked on Linux, so I'm trying to make that so. Why noone has done this so far I have no idea. Also, why the Linux and *BSD Bluetooth libraries differ so much I also have no idea. Fetch me a hammer, I'll fix this....

November 9
Office beers, and a visit from The Sister and The Brother-in-Law. Happy Birthday, John!

November 8
I picked up a boxed set of Firefly during the week, so between that and the gym there's not been a whole lot else going on....

November 7
Goodies arrived from lying weasels. Despite the packaging looking like it'd been gnawed on by actual weasels, everything was in good shape. Good enough, in fact, that I managed to nick my thumb on some of the plastic packaging... Palm WiFi was scarily easy to set up, but it'd be nice if it had things like "connect to any available open network". The instructions also tell you to shut off Bluetooth while using it, although not why - I presume it's because of the power drain, but I can envisage wanting to use a Bluetooth keyboard and the WiFi connection at the same time.

The case isn't quite as good as the battered one wrapping my Palm Vx for one simple reason: the latter more-or-less physically attaches to the enclosed Palm, preventing it from slipping out. I found with my new toy in its new case, putting it in my pocket upsidedown was sufficient to shake it at least partially loose. And yes, I am liable to be that careless with it - that's the whole point of getting the case. I suspect a little bit of velcro will fix this, however.

It took me a while to actually get interested in Birthday Girl, and by the time I did the movie was nearly over. I don't know if it's that it wasn't engaging enough or that I simply wasn't in the mood, to be honest. I did find John's attitude when he's figured out what's going on to be quite funny. Not really a movie I'd rush to recommend, though - probably good for a slow evening, but nothing more.

November 6
So while DHL could get my Palm goodies from Manchester to Dublin overnight, they apparently couldn't get it any further. I guess they were tired. It's been "With delivery courier as of: November 06, 2007 10:50" since, well, 10:50 today.

Oh wait, it updated after 6pm to "Scheduled for delivery". And the lying weasels marked the update as happening at 11am this morning. DHL, the L is for "Lying"! (I guess that means the D and the H are for "Weasels" somehow. Maybe if you bend them into a W.)

November 5
Met up with Lou for coffee and gossip. Actually, hot chocolate and gossip, but that's just implementation detail.

Next is a bit of a head-wrecker. Well, anything that plays with time travel or time perception is going to do that. However, on top of the usual issues of "is he doing that because he's figured out that any other course of action is going to get him killed?", you have the fact that the film flips into "forward time" a few times with no indication. I'm sure the obsessive movie geeks have already timed all of these to make sure they're within the alloted two minutes per occurrence, but it's a bit distracting trying to figure out which bits are happening and which bits are just future peeks... anyway. Good movie, worth seeing.

November 4
More Bluetooth fun and games. I've sorta-kinda identified why the older Palm gadget won't hook up to my little network, but I can't say I understand the specifics just yet, which means I don't know how to fix the problem. And while it's about to be retired, I'd like to make it work anyway.

I also installed the KDE Bluetooth stuff that's under development, and true to form managed to crash it in fairly short order... it's got an interesting little hack whereby you can tell it to lock the screen if a given Bluetooth device goes out of range - so, for example you could key it to your phone so that walking away from your computer with your phone causes it to lock automatically - but the problem is that it doesn't seem to work very well - it only picks up my phone when I explicitly set the phone to discovery mode, and that only lasts three minutes, at which point my screen locks. Nice try, no cookie.

Messing around with the passwords Firefox has stored for me over the last several years, and I think maybe I need to start changing passwords since some of these have been in use a long, long time. Of course, since there's over 200 of them stored, that's a lot of password-changing...


November 3
After a bit more fiddling around, I managed to get the Palm networking via Bluetooth. I'm still not 100% clear on what I changed, alas, so if it breaks I'm back at square one. Still, kinda nifty to be able to use it as a handheld web device without thinking about the cost of a data phone call.

Having played around with the apps on the E2 for a bit, there are a few sticking points:On the whole, though, I do like this device, and will be switching to using it full-time once I get the hard case for it (next week some time, according to eXpansys' delivery page).

Vodafone's Photo Album service appears to be on the fritz again. I think at this point they've probably abandoned it and not bothered telling anyone. I've emailed to check, anyway.

November 2
Having watched half of the Google video of Linus Torvalds talking about his SCM tool, git, I figured I'd play around with it a little. And, well, holy crap, it's rather awesome. I see what he means about speed - it's quite refreshing to see something running at pace on my creaky old laptop. I need to do a bit more reading about how to use it for things like vendor branches, but on the whole I think I'll be ditching my local CVS setup at the very least.

Happy Birthday, Ellen!

[and a quick Guide For Mom: Linus Torvalds is the guy who wrote Linux. He's strongly opinionated ("if you disagree with me, you are ugly and stupid" - but said with a smile) but he's smart enough to back up his opinions. SCM, in his terminology, is Source Code Management, which means keeping track of many different versions of the files that are used to build a piece of software, so that for example you can rebuild the version you worked on last month, or compare some changes you made with the original version, and so on. Traditionally, you have one central store of all the versions and everybody works on their own copy, pushing changes back to the central store when they're finished working. git takes a completely different tack, and it's impressively different, and I've still not gotten my head around exactly how certain things should work, so I need a Guide For Ronan at this point!]

November 1
Tried getting the Windows bluetoothy stuff working. Equally as successful as my attempts on Linux, with the added bonus that there's less debugging information available. This is annoying.

previous month | current month | next month


No vember for you!