< | >

Hacker's Diary

A rough account of what I did with Emacs recently.

March 31
Spent the day behaving as a socialised late-twenties male for a change, rather than an antisocial geek. Practice for starting my new job on Monday...

March 30
Found a bug in the id3lib module I was working on ages ago. Specifically, the bug that caused me to stop working on it. So now maybe I'll actually finish the thing.

March 29
Got some CDs from MP3.com today, and discovered they've got a nifty feature whereby there's a Windows CD player toy (Director-based) with band info, etc. on the Data Track section of the CD. Also pre-ripped MP3s for your Gronking pleasure, although purist that I am, I ripped the tracks myself using Grip. Incidentally, I grabbed a patch for the latter from the Sourceforge project page that stops it from jumping around the screen all the time. I wonder if Mike is going to release a new version soon?

Discovered that Netscape doesn't like raw NULs in its plain text, so cleaned the linkfarm mode elisp approriately.

March 28
ARGH. The guys at GNU Designs have gone and moved pilot-link again. The CVS root, in case you're wondering, is now :pserver:anonymous@cvs.gnu-designs.com/cvs/pilot-link. If you can find this information without grepping their site (the "official pilot-link page" has the information if you click around on non-obvious links like "Debugging"), do point it out to me, as it took me a couple of guesses to figure out what was wrong. Doesn't help that the CVS error you get is "no such user anonymous"...

My patch to make the emu10k1 sequencer branch build was accepted into CVS, yay!

March 27
Played around with MIDI and the soundcard some more. Made the sequencer branch of the driver compile, but I now need a real sequencing tool to see if it actually works or not - I'm getting nothing from playmidi, but then the Korg doesn't seem to conform to General MIDI standards (like, the drumkit isn't on channel 10, for example, although maybe that's just when it's in sequencer mode), so I'd rather have something that allows me to frob the channels, etc. as I see fit. Or maybe I'll just talk directly to /dev/sequencer myself.

March 26
Poked at my server's soundcard some. I spent all this money on a flash piece of kit - a SoundBlaster Live with digital expander card - and then Linux don't got drivers. Well, there's the Creative Labs Opensource Site, but they stopped committing code more than a month ago, and the /dev/sequencer branch doesn't even compile any more. I tried ALSA, and the /dev/dsp playback was unusable. GAH, with GUSTO. So I tried hacking on the /dev/sequencer stuff and I can get the old branch to compile, but it looks like merging the changes is going to be a world of hurt. Meantime I discover KeyKit, which someone claims will run on /dev/midi, which would be neat. Of course, I went straight for the bleeding-edge version, which is ALSA only. D'oh. Read, then download. Silly me.

Turns out it's a rather neat package, albeit with the ugliest user interface I've come across in a long time - with all its awkwardness touted as "features". I then got sidetracked feeding arbitrary system exclusive messages to my Korg to see what it'd come back with. Whee!

March 25
Spent the day playing around with image analysis without an actual clue of what I was doing, for amusement purposes. Sobel edge detection works better than I recall from college, but I really need to read up on how to actually figure out what to do with the results.

Happy Birthday, Mum!

March 24
Ripped out all the nav stuff from the threader again because I couldn't get it working. This is what we call a "hissy fit", maybe.

Spent some time kicking the DSPsrv mail archive threader around. The fact that the archive has been assembled from about five or six different sources, including unthreaded digest messages, means there's a lot of places where jwz's threading algorithm misses possible threads or creates unnecessary fake parents. I still haven't properly figured out how to patch the thread information into individual messages, either.

March 23
Yep, it appears that the VMware problem is gone. Yay!

Installed MySQL Navigator on spec, and my is it a pretty toy. The build process was a little painful, mind, at least partly due to version collision and more due to the fact that the Makefile expects Qt and MySQL header files to be in a specific location, and there's no config option for that. Hack hack. Here's a patch to make MySQL Navigator run on RedHat Linux 7, and a spec file to build MySQL Navigator into a RedHat 7 RPM.

Got my Lucent driver working again on Linux, so that's good. Turns out that for some reason I was missing some include stuff that I must've manually inserted last time around.

Hacked around some silliness in GNU Emacs for BBDB's completion code. Yet again I have to resort to low-level grovelling to get around a misfeature. Why am I still using this editor?

March 22
Fixed a silly bug in the menuing stuff of BBDB that someone had "unfixed" shortly after I'd implemented it. GAH. And then I get email asking me to undo the change, with no mention of what my fix had broken. Works on Emacs, works on XEmacs, ergo, there is no bug, thank you.

The bug, for what it's worth, is in GNU Emacs' notion of overlay priorities. The documentation (elisp manual 20-2.5) seems to imply that a lower number for priority puts an overlay above other, higher-numbered overlays in the same region; setting two overlapping overlays to trigger mouseover highlighting reveals this to be a load of toss. It's a documentation rather than implementation bug, I guess. The lower-is-above behaviour is the exact opposite of what XEmacs does, of course, which is why I was initially prepared to believe the documentation.

March 21
Pushed the changes up to the DSPsrv site, then promptly deleted the local copy. Luckily I'd moved the mail archives elsewhere. DOH, though.

Spent much of the rest of the day trying to figure out if my IrDA port was, in fact, toasted. And as best I can tell, it is, although damned if I can figure out how or why. I poked in the BIOS and discovered it was disabled (why is your IR port under "Security"?) for some reason, so I enabled it and ran Compaq diagnostics on it... the diags find the regular serial port but not the SMC one. Funny thing is, hardware detection on Windows still turns up the port. I should probably rip and reinstall to be on the safe side... While investigating this I discovered that Compaq also had new audio drivers for the laptop which appear to have cured an intermittent problem I was having with Midtown Madness 2 where the sound'd go all weird. And an upgrade of XFree86 to the current RawHide version - 4.0.2-12 - appears to have fixed the VMware crash. Appears, note.

March 20
Medical for my new job today. Apparently despite my visual weirdness, I have 20/20 vision, all of it from my right eye. Better look after it.

Spent most of the evening kicking around the DSPsrv website, rearranging things and restoring stuff that had been lost in the big disk crash last year.

March 19
Do you have any idea how long it takes to download RedHat's XFree86 SRPM over a 33.6 connection?

March 18
Woo woo! Malaysian Formula 1, and another victory for Ferrari. Jordan got points too, although they could probably have done better with more luck on their side.

Spent most of the day recovering from my patriotic activities.

March 17
Happy St. Patrick's Day!

Still patching things up on the new DSPsrv box. It's now a Debian box (we should change that front-page logo some time) which means that everything has moved and some things are, well, frankly screwed up. Like I just spent twenty minutes tracking down a problem with snorq only to discover that it was caused by Debian's netpbm package omitting pnmtogif, presumably because the GIF patent violates their tiny little sensibilities. And the default vi setup has not only colour syntax highlighting, gack, but also has some broken "feature" whereby searching in a file puts you into some sort of visual selection mode which you need to ESC out of before you can do any actual editing. Bill Joy would be turning in his grave if he was dead. If this is what the "Debian is better than RedHat" people have to offer, then I'm sticking with RedHat, thanks. Changing default behaviour or default package contents, especially with well-established packages, is so brain-dead I'm not even going to BEGIN to rant about it.

March 16
Hurrah, the server's back! New disk, new motherboard, new processor, tons of memory. Yay! Now to reconfigure it all back into shape...

March 15
Did an interview this morning and got the job. Whee!

Spent most of the rest of the day continuing on the mail hackery. I'm beginning to think an interactive rethreading tool might be of use to connect things that aren't but should be. Certainly beats parsing the actual mail messages and figuring out what's quoted text and what's not.

Looked at WINMAIL.DAT for a while trying to figure out the formatting stuff - all the toys for hacking this file on the net deal with getting attachments out of it. The formatting stuff is helpful where people have used the fact that MSMail used colour quoted message text instead of indenting it or something.

March 14
Decided to start working through my to-do list rather than constantly adding things to it. First off the list was sorting out the DSPsrv mailing list archives going back to 1994. Now, I could go and feed 'em to something like Pipermail or mhonarc or whatever, but I'm much happier reinventing the wheel, plus at the very least I have to sort out headers and varying folder formats. So, back to the hack.

March 13
Sigh. Still no server. It seems that it was moved to the new facility where it refused to start up. JoeV is doing a rebuild on it tomorrow with some new goodies (bigger disk, faster processor & network card) so it's not all bad.

Hacked my property-searching toy far enough to retrieve a list of price, address, id from one of the Irish property websites. Now what?

Downloaded Nautilus from Eazel for a peek. And again, here we have a GNOME/Gtk/Whatever app that doesn't multithread the display, so if it takes any period of time whatsoever to fetch the current page, and I get bored and flip to another desktop, the screen isn't updated when I flip back. And it has the same "Your font doesn't fit my window" problem I've seen elsewhere, too. Doesn't Gtk provide basic text wrapping? I thought this having the backing of an ex-Apple guy might have some impact on things like this, but apparently not. Grip is so far the only application I've seen that does the display update stuff satisfactorily.

Went hacking at the XML Resume idea again. The documentation for the XML cluster of bits (XML, XSL, XSLT) is a real pain to extract actual information from, and there's a very poor selection of actual real-world examples.

X vs. VMware vs. Emacs is still an issue, as I discovered the hard way. The annoying part of this is that VMware are running around saying, "not our problem, your graphics drivers are broken". So how come nothing else is causing my entire X server to keel over and die?

March 12
Egad. Back in Dublin. Install new CPU fan in Gonzo, since the old one was after wearing its bearings down sufficiently to keep me awake (somehow, I go through about one CPU fan per year). Fire up machine. New CPU fan seems to be grinding also. ARGH. Remove fan entirely, since I've only got a 200MHz processor in the machine and it's got a monstrous heatsink on it. Restart, and it turns out it's the PSU fan that's thrown a bearing. Dismantle the PSU, clean out the fan, reassemble, fire up, no good. New PSU? New fan? New case, maybe? I mean, I have spares, but maybe I should convert Gonzo from a desktop form to a mini tower.

Decided that replacing the fan was the least hassle, so now Gonzo has a new PSU fan. Well, replacement, rather than new. It's about 9 years old but it doesn't sound like a Harrier in take-off mode, so.

Hacked around with the MM2 map tweaker a little more, trying to clean it up and incorporate the module I wrote for reading pathset files.

March 11
After a little kicking and shoving and some swearing, MM2 is running again. Still no IrDA port, though, and I've even gone running amok in the registry deleting likely-looking keys. I'm trying to decide whether it's worth doing a rip-and-reinstall since with MM2 working, there's not a whole lot else I actually want from the Windows side of the machine. I could probably toast everything else quite happily.

Somewhere in Seattle, I am haunting Bill Gates' dreams. I hope. Chasing him with a Linux-powered lawnmower, perhaps.

And then, at 23:00ish, my server vanished. Aie!

March 10
Visiting parents and goddaughter this weekend. Brought the laptop. Discovered that the "Explorer dies every thirty seconds" bug was showing itself when I didn't have a network to plug into. Reinstalled Windows, and now my IrDA port ain't working no more. Remind me again why I was doing this? Oh yeah. So I could play Midtown Madness, that's it. Right.

Of course, the beauty of reinstalling Windows is that not only does it lose whatever patches you'd downloaded from Windows Update, it doesn't realise you've no longer got them. Whatever magic they're doing to "customize the catalog of patches for your machine" doesn't actually look at what's installed on your machine. Seems to me like a few registry or DLL checks would establish what you'd patched. But, you know, can't expect Microsoft to do anything right. Ever. Not even ONCE.

March 9
Built X, tried it, couldn't reproduce bug, went back to original X, couldn't reproduce bug there either. Gah. Maybe the kernel upgrade fixed whatever the problem was... he said hopefully.

March 8
Building X, to see if there is, in fact, a bug in the DGA 2.0 support that VMware triggers, or if that's just pants.

"Almost Famous" is a fine movie indeed.

March 7
Hacked at the memopad code some more, so now it allows you to pull up and edit a memo. Also put 2.4.2 kernels on Gonzo and Klortho.

March 6
One BBDB bug so far, and that's a cosmetic one.

Some silliness with the All Your Base meme and The GIMP.

Other idle hackery of the day: Pilot stuff, gronk.

March 5
Spent pretty much the whole day sorting out other peoples' computers. Mom's school computer now has an extra 64MB of memory to accompany the extra 4GB of disk, and Broom the Mac now has a shiny new PRAM battery. The guy at Maplin was able to identify the battery by sight from half-way across the counter area. That impressed me.

Started working on my hacked version of Gronk again, and somewhere along the way managed to lose my entire list of files for the running version. So, build-pages.pl jukebox and kick it off again. It doesn't cope well with not being able to find all.m3u, but then again it doesn't cope well with any deviation from the originally-intended layout of things in general. Not really a whine, just an observation.

Cleaned up the linkfarm toy code a little and dropped it into the Emacs section for all to play with. While I was doing so, I did a bunch of tidying up around the pages there, since some of that stuff hasn't been modified in quite a while. Then I went trawling in my source directory for more things to unleash, and realised that I really need to clear out some of this crap. Although as soon as I do, I'll find a use for it, I'm sure.

March 4
BBDB 2.32 released, hurrah! That should flush out another wave of bugs...

March 3
Formula 1 day, due to the fact that they thoughtlessly ran it on the opposite side of the planet, so I caught the repeat of the qualifying session in the afternoon and then watched the race live after a long day of watching "Lock, Stock and Two Smoking Barrels" and a bunch of U2 videos, drinking beer, and eating chinese food. It's a hard life, I tell you. Schumacher won, Jordan got points. Alas, another track marshal was killed as a side-effect of a rather spectacular Ralf Schumacher/Jacques Villenueve off.

March 2
Patching stuff into BBDB, mostly, and one hell of a gig - the Fun Lovin' Criminals at the Olympia.

March 1
Well, after yesterday's bout of hacking, I think I've escaped from my slow brane period. So, I've started setting myself up for another BBDB release, which should cause a little more hell to break loose since I've changed one of the defaults and one of the keybindings since the last release..

previous month | current month | next month

In like a lamb, out like a lion --
isn't it usually the opposite?