Hacker's Diary

A rough account of what I did with Emacs recently.

December 31
Back in the office, doing the geekery for my employer rather than myself.

I was somewhat confused by the fact that my old Palm apps are running on the new hardware, despite the change in processor (old Palm Vx was a Motorola 68k device, new Palm Tungsten is an ARM device); more to the point, I was confused by the absence of ARM libraries to allow me to build things for the new hardware. It turns out that most of the Palm world runs m68k code and uses a software translation layer to run it on the ARM chip. What a great way to use up those extra processor cycles!

December 30
Made an attempt to change my Vodafone account settings, and was rewarded with one of their incomprehensible error messages. Usually these take the form, "Please review the error message below:" followed by something completely uninformative like "an error occurred (NING-FTANG-999)". It's never anything actually useful. And just think - somewhere in Vodafone someone signed off on this as sufficiently customer-friendly.

December 29
Somewhere along the way my DSL download speed was doubled. Upload appears to be the same, however. Maybe I'll look for a new provider in 2008, because I haven't had a decent telecomms problem in ages.

December 28
Last few episodes of House! Now I need to watch Seasons 1 and 3...

December 27
More episodes of House M.D. in lieu of geekery.

December 26
Found the part of the kpilot sync that was crashing: the Notepad conduit. Some part of the process of turning your scribblings into an image, I guess. Since I don't use Notepad, I just turned off that conduit and hurrah, I can sync again. In the process I abandoned the USB sync in favour of a WiFi connection, but I really need to resurrect my recent attempt to port some Bluetooth stuff from BSD to allow me to use that instead.

December 25
Merry Christmas!

December 24
Nuked a bunch of old software repositories that I'd built up for previous releases of Fedora - FC3 and FC5. I tried out the Fedora 8 live image yesterday and it seems nice enough, although I'll want to give it a whirl on the wimpy laptop before I make any decision about installing it. The problem with not installing it, of couse, is that less and less updates appear for the older releases as time goes by.

So much for my 15 megabytes of fame: the Wiki entry on Pidgin refers to a plugin for talking to Microsoft Exchange Instant Messaging. Except it's not my librvp, it's another chunk of code which has been dead for quite a while. Oh woe is me, etc. Of course, I've not done any serious work on librvp in about a year, which is something I intend to rectify if only to get a 1.0 release out.

Hmm. Note to self: Palm only likes calendar files with a .vcs extension. Label them .ics and it'll claim they're in some unknown format.

After seeing The Departed I figured I should probably watch its source material, Infernal Affairs; having discovered that that came with two sequels, I figured I'd add all three to my wishlist at Screenclick. Alas, Infernal Affairs II turned up first. And it's confusing me. I guess part of the problem is the whole us-westerners-can't-tell-asian-folk-apart, so I kept losing track of who was who, but I suspect there were some implied bits in the story that I missed, too. Anyway, I'm now at 1:37 into the film and it's still not finished, when I thought it was building to a climax about 20 minutes ago.

Hung out with Lou and her sister for a bit, then wandered off to the local for some Christmas cheer.

December 23
Inconsequential geeking today, and a few crap movies. Nothing worth writing about, to be honest.

December 22
Pirates of the Carribean: At World's End is too long (seems to be a common problem), has an overly-muddled collection of threads, and frankly had me scratching my head at points where the music indicated I was supposed to go, "A-ha! he/she's foiled their plan!". I liked bits of it, and maybe if it was edited down to 90 minutes it might have been more enjoyable, but it's really not a patch on the first in the series. Which was made as a standalone movie, and then had a pair of sequels tacked on. Hmm. Reminds me of a certain sci-fi trilogy which had much the same problems with the second and third installments. Do I think a lesson will be learned from this? Hahahah. Right. Oh, also the ending seemed a bit of a downer, or maybe it wasn't and I'm still confused. Aaaand blatant setup for Another Bloody Sequel. Give it up, Disney, you're flogging a dead horse.

I'm having an extremely frustrating time with KPilot at the moment. To be somewhat fair, I'm using an eight-year-old laptop and I'm two releases back along Fedora Core's chain (FC6 rather than the current FC8), but seriously. I've spent ten minutes trying to sync the damned Palm Pilot, and all I've got to show for it thus far is that the alleged software that's supposed to do the job on the laptop's side crashes every time I manage to get the sync process started. Which is about one attempt in four. What sort of a godawful piece of crap is this? I've read a website where some guy is claiming this is the best sync software available for the Palm. What drugs is he on? Here's a litany of faults:I may add this to the Reasons To Get A Mac list. Of course, I've no doubt that since the Palm people betrayed their Mac roots in favour of Windows, the situation is not much better there...

In passing, I will note that it appears the daemon is crashing because it is unable to set a colour appropriately. What sort of completely idiotic preventable stupidity is that, exactly?

December 21
Broken Arrow was on the box. I should have gone to bed. It's not even impressively bad, it's just plain ordinary bad. Avoid.

December 20
House M.D. is not the comedy I understood it to be, but it is both excellent and funny. I see a boxed set or two in my future...

December 19
Independence Day was on TV, so I figured I'd watch it. It's fun, even if the acting is totally overbaked in places (who would've thought jewish actors would ham it up so much?)

December 18
More great moments in Palm syncing: device refuses to sync, then desktop software crashes, then device gets wedged in "cancelling sync" state.

For some reason I was poking at notification tools (generally speaking, anything that will cause a non-intrusive window to appear on the screen with a message for a short period of time) and both the approaches I tried (talking directly to the KDE Notification system, and running an app called "specto") failed, so I went back to the Palm data merging again.And I've decided not to bother with the notepad files since I don't think I've anything useful in them...

So I've had the Palm Tungsten E2 for just over two months now, and what do I think of it?On the whole, I'm pretty happy with it. I'm certainly not going back to the Vx, although I have been thinking of things to do with it!

I've been using ThinLiquidFilm to convert arbitrary chunks of video (mainly YouTube clips) to the iPod. The biggest problem I have with it is that it's not possible to run it in batch mode, i.e. tell it to convert an entire directory full of movies in one go - it needs clicking to make it fly. So instead I'm digging in its internals to figure out what it's doing that my previous attempts at on-the-fly conversion weren't doing, and I think I've got the bones of it at this point. Hurrah!

December 17
Believe it or not, I'm still trying to finish up the data merge of all my old copies of Palm databases. Tonight I scraped up the various datebooks, so I now have (in theory) a consolidated collection of what are mainly birthday and anniversary reminders. In doing this I discovered that my IrDA port is yet again not working in some unspecified way (this happens every time I try to use it), that my Datebook-to-ICal tool was, like everything else, half-written, and that it's very annoying trying to import 100+ entries into the Palm via bluetooth because it asks you to confirm each one. Still, job done. I have the oddly-named memos file, the notepad, doodle (sort of notepad's predecessor), and the to-do lists left to merge. Yes, I understand the irony in the to-do lists being, well, on the to-do list.

December 16
Visited my nieces and delivered Christmas presents, then back to Dublin.

December 15
Decided to take a trip to the A&E (for people on the left side of the Atlantic: E.R.) to have the ankle looked at, since it was still not exactly functional, and I'd read enough Wikipedia and what not to scare me. After a two-hour wait I had five minutes with a doctor who determined that I didn't need an x-ray, would most likely recover in a few days, and shouldn't go to the gym until after Christmas. That last bit really ticks me off, but hey.

Drove down the country to see family for Christmas.

December 14
Volver: a typical Almodovar movie, featurning strong female characters and a storyline that really didn't engage me. Oh well. Why did I rent this again?

Ankle still somewhat sore. Weekend plans may be disrupted, dammit.

December 13
Met up with Cathal for some Christmas beers. Managed to turn my ankle in my haste to get to the last DART, ow ow ow.

December 12
Looking at some code that purports to talk to Motorola P2K-based phones (such as my E770v), I find almost every imaginable bad practice for C coding. There are badly hand-built clones of standard functions. There's an unnecessary function for raising a number to a given power, except it's part of a hex converter so the code could be replaced with some bit-shifting. There are signed versus unsigned mismatches. There are calls to undeclared functions that I'm having to trace through the code to find. Static buffers loaded from user input. Missing bounds checks (hint: you can't read the fifth item from a list of four). Frankly this is horrific, and the only reason I'm even touching it is because I think I might be able to salvage something useful out of it.

[I should probably do a Guide for Mom on this! What can I say? There are many right and wrong ways to do things when programming, but there are a whole class of recognised ways to go about setting yourself up for trouble, and this piece of software seems to hit pretty much every one of them, and in the worst possible way. It might even suffice as an interview example: "what's wrong with this code?"]

I went to take my old MP3 player to the gym tonight and discovered that my software to load it (that's right, the poorly-maintained libnw stuff that gave me my 15 minutes of geek fame) no longer does so. On further investigation I am puzzled by what's going on, exactly; I am looking up a value in a table (actually a hash), and being told it doesn't exist, but if I dump out the table, there's the value I'm looking for. What the hell?

Ah. My bug. And somehow I didn't notice it when I wrote it, er, over a month ago. D'oh.

December 11
Today's hardware abuse: replacing the fill valve in the toilet. I was mildy annoyed to discover recently that I couldn't buy a plug chain, I had to buy a plug and chain of a piece; likewise, a toilet fill valve is not a thing to be bought alone, you also get the assembly it's mounted in complete with float arm, which necessitated buying a float as well since the old float was of an incompatible type. Then there was the mortal combat with the old elbow joint which had apparently been put in place with a combination of glue, caulk, paint, and anything else the plumber had to hand to make sure it never moved again. And finally the reassembly fun and games wherein I wrapped some of that sealant tape around the fitting, tightened things up, tried it, found a leak, undid the fitting, applied more sealant tape, lather, rinse, repeat. At this point the job is done but I'm leaving it overnight to check for leaks; I suspect I might need one more go-around with the sealant tape. In passing, I will note that all the online guides to doing this job have the fill valve fed from a pipe coming up through the bottom of the tank, whereas in my experience (and indeed in my cistern) it's far more common in these parts to have the pipe coming in through the side, near the top. Makes for less of a problem with replacing the valve since you could in theory do it without draining the cistern and at least in practice you don't have to figure out how to get the last inch or so of water out.

Working on my to-do list, I find that some of the new core Palm apps (to-do, and memo pad at least) seem to be storing two copies of the data; for example, memos are in the original MemoDB.pdb and also in a near-identical file called MemosDB-PMem.pdb. The gross data structures appear to be the same, there are just some minor differences in the header section (perhaps the appinfo?)

I'm not sure if I liked the final reveal in The Illusionist. It smacked a little of appeasing the test screeners, as opposed to part of the original movie, since all of the other illusions go unexplained for the duration. Aside from that, I found the movie pretty slow, enough that I didn't really have to pay attention to it constantly... never a good sign. Watch it if you've nothing better to do, I guess.

December 10
Coffee^WChocolate and gossip with Lou, as usual.

Did you know that in Smokey And The Bandit II, there's a record-breaking stunt jump? I read about it years ago; they rigged the driver's seat of a car with motorcycle shock absorbers, and then the stuntman took flight off the top of a double-decker car transporter and covered somewhere around 160 feet before touchdown. Unfortunately, the shock absorbers didn't work as planned and he suffered one or more compressed lumbar vertebrae. Plus, the movie kinda sucked.

December 9
Christmas party recovery.

December 8
Office Christmas party.

December 7
A moment of financial weakness: I got fed up of the fact that the neither of the original DVD/CD drives from my two Compaq laptops are capable of dealing with DVD+/-R/RW discs, and sprang for a new one on ebay. If I'd been a little more in control of my impulses I'd have payed the little extra to get a reader/writer instead of just a reader, but still. The drive arrived today, cost me about €40, and does the job, so I'm happy enough with it.

December 6
The Departed is too frickin' long. I wasn't keen on the ending, either, but should definitely have been edited back by about an hour or so. Yes, it's good, but really now. I think this item from the IMDb trivia section sums it up: "The movie's title does not appear until almost 18 minutes into the film."

December 5
Aside from a trip to the gym, I have no idea how it has suddenly come to be 23:30. I had planned on doing some domestic stuff this evening, and instead it looks like it'll have to wait.

Well, that was mildly irritating. A power outage, about 30 seconds or so in duration, which is not only plenty long enough to take out my non-UPS-supported kit (by which I mean "all of it") but for some reason also caused my laptop to shut down. Gah.

December 4
The History Boys is sort of a reverse Dead Poets Society set in England. It's a little rough in terms of pacing, but on the whole it's a really cracking piece of work with great music and snappy dialogue driving it along. A little odd seeing the hallowed towers of Oxford soundtracked by The Cure, mind you... definitely one to watch.

December 3
One for the Crazy Ideas bucket: most browsers give you the option of accepting or rejecting cookies from websites. However, beyond a coarse decision on whether you want to accept a cookie from ADVERTISING.SPAMSPAMSPAM.COM, it's generally not obvious what any of these cookies are for. It would be a small matter of programming (and, indeed, bandwidth) to add a Cookie-Description header that gives a short explanation of each cookie. Or again, to go back to the previous crazy idea, a greasemonkey script that says, "site X is offering me cookie Y. What's that do for me?" Because not all cookies are used for user-tracking; some are for useful things like remembering that you never, ever want to see one of those annoying snapshot pop-ups, or that your preferred view of the BBC News site is World News rather than UK News.

Of course, I think I'm in a relatively small selection of the web-browsing populace in that I generally reject cookies in the first place, precisely because I don't want my identity to be correlated from one site to another.

My RSS toy has a notion of active items versus inactive ones; inactive ones are ones that have disappeared off the public RSS feed, although the articles themselves may still be live. Since I've been very slack about adding housekeeping routines, I had something like 15,000 inactive articles sitting in the database when I finally got around implementing a means of switching between showing active, inactive, or both types of article. Skimming through these, you can see the evolution of news headlines on the same story (for various reasons - mainly to do with poor adherence to poor standards - my code considers that to be a new article rather than an update on the original one) particularly on the BBC where it seems that the very popular scare quotes they put on their headlines come and go more-or-less at random. I've now added a small amount of tuning to the process which collects the RSS data in the first place so that it disregards minor changes in the feeds, such as changes in whitespace or punctuation, which should cut down the churn a bit. There's actually a much better solution to the problem I'm trying to solve (viz. the aforementioned standards) but thus far I've been far too lazy to actually implement it.

I contemplated my metadata idea a little further, as far as looking up the availability of a few domains for it. The thing is, there are three major restraints on me doing such a thing: firstly, it's a shiny object, so I'd do a half-assed implementation and then let it fester; secondly, if it actually became popular I'd have to consider how to set it up in an actual reliable fashion (not such a huge restraint, admitedly); and thirdly, if it did actually become popular, I'm wary of things that could be deemed to be in any way conflicting with my day job, as that way lies legal foofraw that I'd rather not play with.

After a little bit of prodding I managed to get a Jabber server up and running. This is for another one of those nefarious unmentioned ideas that I may have more to say about once it's actually working...

December 2
I downloaded Google's shiny new mobile mapping toy during the week to see if their locate-me-by-my-cellphone feature worked here. Unsurprisingly, it doesn't; what was more surprising is that the application no longer recognises my "cursor-down" key, which makes it pretty difficult to do anything useful with it. It appears to be a known problem that affects certain Motorola phones, but there's no indication from Google themselves that they're working on a fix.

Trying, once again, to do something useful with XSL, but let me backtrack to explain: I have a script which scrapes a couple of websites to obtain TV listings. It converts what it finds into something resembling a standard format: XML as defined by the guys who wrote the xmltv code. I then have a further script which parses this, filters for the channels I actually have, filters for the day of the week, and arranges everything in one or two different ways depending on what I'm looking for. One version shows all channels on the vertical axis, with the TV programmes arranged by time on the horizontal axis; another version just shows me what movies are on tonight. The "something useful" I am trying to achieve is to replace the second script with something far simpler, the idea being that if I give my browser XML and XSL it should bang them together and produce a web page. Unfortunately this idea has just now stalled - literally - as I seem to have sent my browser off to la-la land with an incautious piece of coding.

I think it's about time I sent Sandy a request for my current to-do list, to stop me hacking about aimlessly...

December 1
Tooling around with wireless toys. By which I mean randomly locking up my wireless network and then struggling to fix it again before realising I'd messed up some device configuration.

Evolution wasn't a complete barrel of laughs, but it was pretty funny in places. Not a run-out-and-see movie, but don't discount it if it shows up on TV. The fake Head & Shoulders advert at the end was a gem, too.

previous month | current month | next month

almost time to write off 2007