Happy New Year!

Snowman with sparklers

Hope you all made it safely to 2006 🙂 Take care and have a great year!

My renewed GPG key can be found in its usual place and on keyservers.

As for the other reason you might have visited this site for: delicious2safari 2.0 will probably need a couple more days work … stay tuned 🙂

Algorithmic Poetry

I think that I shall never see
A graph more lovely than a tree.
A tree whose crucial property
Is loop-free connectivity.
A tree which must be sure to span.
So packets can reach every LAN.
First the Root must be selected
By ID it is elected.
Least cost paths from Root are traced
In the tree these paths are placed.
A mesh is made by folks like me
Then bridges find a spanning tree.

from R. Perlman: An Algorithm for Distributed Computation of a Spanning Tree in an Extended LAN (PDF)

On that note: I passed my computer networks + mobile computing exam today … only two more exams and the diploma thesis left. Yay! 🙂

delicious2safari

Just a quick heads-up to everyone who has been sending me suggestions for delicious2safari: Version 2.0 is in the works (list of planned features here), to be released before the end of this year. Thanks for your patience (and apologies if I didn’t answer your email personally, all of your suggestions have been noted).

Something I’ve been working on …

This is our new student lab, in beta-testing since Friday. The machines run Windows XP and Ubuntu Linux.

Ubuntu Lab Photo

Installation of Ubuntu is fully-automated through Debian installer preseeding. Its partitioner is replaced with a custom udeb that provides formatting for the Linux partitions, while preserving the complex partitioning scheme that Windows/Norton Ghost needs.

Updates and patches get distributed using a custom toolkit written in Python (originally designed by Fabi for RedHat-based systems). It consists of an NFS mount with directories for different classes of machines, and a script (run by cron or on-demand) that checks for new updates to the machine classes a system belongs to. Updates are represented by numbered symbolic links to files, tars, text files with package names to be installed through apt, debs, patches and shell scripts. The on-demand updating and other administrative tasks are initiated through SSH Forced Commands. The postinstall process is also done using the same system, through rc-style numbered scripts.

Each machine has a separate installation partition, containing a netboot kernel, initrd, and the machines’s boot loader (Grub) installed into its boot sector along with the associated configuration files. The installation partition is distributed by Norton Ghost (which is used by the Windows guys anyway to distribute their images), and has the “bootable” flag set. This enables Ghost to install Windows and reboot it multiple times by simply removing the flag and restoring it after installation is complete. By providing a Grub configuration file that will boot into the installation kernel with appropriate kernel parameters for preseeding, any machine running Linux can be re-installed at any time by simply mounting the installation partition and copying the special installation configuration over the normal menu.lst (of course it will have to be reset before the installation reboots for the first time, or we’ll end up in an endless cycle of base installs).

I’ll probably have more to say on this later, but here’s a random collection of “lessons learned” while setting up this lab:

  • FAI and other 3rd party tools are not the only solution, plain Debian installer preseeding works too — or even better than FAI in Ubuntu’s case.
  • Expert recipes for use with partman in Debian installer are unable to deal with complex partitioning setups. We use our own tiny udeb to accomplish this, and radically eliminate partman from the installation process.
  • Debconf does not export DEBIAN_FRONTEND, so when using “noninteractive” as the frontend, make sure the variable is set to “noninteractive” before running anything that might use debconf (such as installing packages). Otherwise some postinstall scripts fail miserably.
  • NIS password changes are broken in pam_unix in every version whose source code I’ve seen so far. I’ve modified 0.76 to make it work, but it’s hardly a good solution (otoh NIS isn’t either, and there’s a chance we won’t have to use it much longer).
  • Python rocks 🙂

Back … sort of ;-)

After a great WWDC, turning in my “Studienarbeit” (first thesis) right after I got back, and being slightly sick for a week, I am back among the living, I guess 🙂

There’s still a huge backlog of emails and an even longer todo list. I’m sorry if you haven’t gotten a reply yet, I’m working on that. I also haven’t uploaded any more WWDC pictures (I will, I know some of you are waiting for them), and I haven’t had much time to try out some of the interesting stuff I learned at WWDC yet either. Working on that one, too 😉

Two things nobody ever thought would happen …

Apple switching to Intel processors and Debian Sarge finally being released 😉

Edit:
And one more thing I didn’t think would happen just yet: A line for the ladies’ room on a technical conference (and that wasn’t the line after the keynote speech where there are lots of media reps and other non-tech people). Admittedly, it wasn’t a very long line compared to the one at the men’s room, but still 😉

In San Francisco for WWDC

I arrived in San Francisco last night. Some photos can be found here. Unfortunately, I slept through the middle of that beautiful sunset, and NWA also didn’t do a very good job keeping their windows clean. Otherwise, the flights with KLM and NWA were really quite enjoyable. In particular on the Airbus A330, which features a personal entertainment system where you can even play games against the other passengers. It also has laptop power in half of the economy seats 🙂

Seems some other people weren’t that lucky …

Musical Baton

I just got passed the musical baton from three different people at once 😉

Update: Guess that makes four 😉

Total volume of music on my computer: 10 GB

The last CD I bought: I guess that must have been a used copy of “Joyride” by Roxette (yeah, laugh at me, I’m still a big fan of Roxette and that was the last album I only had on tape *g*).

Song playing right now: The Road to Mandalay by Robbie Williams

Five songs I am listening to a lot:

Who’s next: Blogcat, Akkana, Kill_X, Dana