Ah, life is good.
On Friday, me and some friends went to see John Digweed play at one of the local student club nights, and we partied early into the morning. Cat was well up for it as usual. It took him a while to get into his stride, which was strange given that he's been on Radio 1 and is pretty famous. By the end we were all having a great time - the laser show was fantastic, but it's a strange thing that both times I've seen professional big-name DJs play (Goldie was the first) they've been ... well ... not great. At least Digweed didn't clear the floor like Goldie did :)
Labyrinth is a very strange film. Watching it made me glad that I spent most of the 80s blissfully unaware of Hollywood culture. Its strangeness doubles when you watch it at 2:30 in the morning (yawn)
autopackage 0.5 is finally done. Once again I'm amazed at how much we've packed in. Even though I say so myself, we've put together one of the slickest installers I've ever seen - we've paid attention to the user experience right from the start and the results are impressive. It's certainly not perfect, and it's still some way from my long term goal of drag/drop "invisible" installs, but we're getting closer every day. In terms of UI it definitely beats the snot out of InstallShield (not hard) but also gives a more pleasant experience than even rather slick programs like Synaptic or redhat-install-packages.
One of the reasons that installing stuff on Linux can be such a pain in the ass is that programs have so many dependencies. Often, these dependencies aren't strictly required but because using dlopen/dlsym is so awkward it's simpler just to whack in an autoconf check and leave it at that. Good for Gentoo users, not so great for everybody else.
One solution is a program that I have been meaning to develop for a while and today actually did. relaytool lets you replace a link like -lgtkspell with a generated source file, libgtkspell.stub.c which uses assembly and GNU C magic to transparently relay the calls to either the real function or an error handler in case you accidentally call a missing function. This lets you also link against a library but not have hard dependencies on its latest features: for instance you can write a program that depends on GTK 2.0 but can still use features from 2.2 and 2.4 easily.
relaytool has some other interesting applications as well. For instance you can solve the problem with ELF symbol scoping with it, though it's certainly not the solution.
Finally, CrossOver 3 is coming out in only a couple of days. I came in part way through this effort, but still feel proud at what we've been able to do (while all along supporting the free software community).