Hacker's Diary
A rough account of 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
Waider |
In like a lamb, out like a lion --
isn't it usually the opposite? |