Grub Splash Image on my Eee PC

The default eeeXubuntu install doesn't setup a background image while the GRUB (the bootloader) is on screen. Quick google search and I found this post about enabling a splash image.

I installed grub-splashimages from the ubuntu repository and created the symlink to debian.xpm.gz. The next step was running update-grub, this added the necessary splashimage= line to /boot/grub/menu.lst but it got the drive numbering wrong and setup everything to boot from (hd2,0) instead of (hd0,0). I didn't notice this before rebooting so I had to edit the boot parameters in GRUB's shell to boot properly. I would recommend
manually adding


to /boot/grub/menu.lst instead of running update-grub.

Once I fixed /boot/grub/menu.lst I rebooted and to my pleasure saw the debian splash image instead of black behind the GRUB menu.

None of the images that came as part of
grub-splashimages were to my liking so I went on a hunt to find another image. After searching through many option
s on and I decided to make my own. It's designed to fit with the default xubuntu GDM theme.

I'm certainly no artist and I'm sure someone else could do much better but it's sufficient for my needs.

Another quick search turned up a detailed Howto from Luis R. Rodriguez that contained contained the require steps for making your own image. After installing ImageMagick I converted the png I produced to the required format and gzipped it up.

 convert -resize 640x480 -colors 14 image.png image.xpm
gzip image.xpm

Here's the formatted and gzipped file for use as a GRUB splash image

Moving an eeeXubuntu install from SDHC to SSD

When I first installed eeeXubuntu on my Eee PC I wanted to keep the default Xandros installation intact so I could use it to help sort out any issues that arose during the eeeXubuntu install. To this end I installed eeeXubuntu on an 8 GB SDHC card leaving the internal 4 GB sold state disk alone.

The install was painless and I never once booted back to Xandros so I decided it was time to dump Xandros and move the eeeXubuntu install to the SSD. I had already started customizing eeeXubuntu so I did not want to bother with a reinstall. A couple users on the EeeUser forums were asking how to accomplish this so I detailed the steps I took.

I just did this today.

First thing to do is repartition the SSD. I wanted to use suspend to disk so I needed a swap partition the size of the amount of RAM. You can just go with one partition if this is not important to you.

Partition Layout Before:

Device Boot Start End Blocks Id System
/dev/sda1 * 1 300 2409718+ 83 Linux
/dev/sda2 301 484 1477980 83 Linux
/dev/sda3 485 485 8032+ c W95 FAT32 (LBA)
/dev/sda4 486 486 8032+ ef EFI (FAT-12/16/32)


Device Boot Start End Blocks Id System
/dev/sda1 * 1 419 3365586 83 Linux
/dev/sda2 420 484 522112+ 82 Linux swap / Solaris
/dev/sda3 485 485 8032+ c W95 FAT32 (LBA)
/dev/sda4 486 486 8032+ ef EFI (FAT-12/16/32)

Create the file systems (omit the second command if you're not using swap)
sudo mkfs.ext2 -L LABEL /dev/sda1
sudo mkswap /dev/sda2

Mount the new root file system
sudo mkdir /mnt/tmp
sudo mount /dev/sda1 /mnt/tmp

Clean out old *.deb files (optional)
sudo apt-get clean

Copy the old directories to the new new root file system. (Exclude /tmp /sys /proc /dev /lost+found /media /mnt)
This will take a few minutes (open a second terminal and use "df" to check on progress)
sudo cp -a bin boot etc initrd initrd.img lib opt root sbin srv usr var vmlinuz home /mnt/tmp/

Create empty directories for the omitted directories
cd /mnt/tmp
sudo mkdir dev sys proc mnt tmp media

Create the required device nodes in /dev
cd /mnt/tmp/dev
sudo mknod -m 660 console c 5 1
sudo mknod -m 660 null c 1 3

Open /mnt/tmp/etc/fstab with your preferred editor and make /dev/sda1 your root partition
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc /proc proc defaults 0 0
/dev/sda1 / ext2 defaults,noatime,errors=remount-ro 0 1
tmpfs /var/tmp tmpfs noatime 0 0
tmpfs /tmp tmpfs noatime 0 0

Modify the Grub configuration on the SDHC to boot from the SDD
Open /boot/grub/menu.lst and copy an existing entry, changing the root parameter so it looks like this
title           Ubuntu 7.10, kernel 2.6.22-14-generic from SDD
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-generic root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.22-14-generic

Reboot the system choose the newly added "from SDD" option

Once booted verify that you've booted from the correct disk by typing "df"
/dev/sda1 should be your root partition
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1 3.2G 1.9G 1.1G 64% /

Final step is to install grub on the SDD
sudo grub-install /dev/sda

Remove the SDHC and reboot the system, it should now boot directly in to xubuntu from the SDD

You may need to change the BIOS boot order to keep it from booting off the SDHC when it's inserted.

19 new scarves

Finally got around to cleaning and photographing all the scarves that a friend in England had been gathering for me. Really cut down on the postage costs to have things shipped to the UK. Thanks Johnstun!

Got official club scarves for the FA and
Carling Cup finals and Real Betis 05-06 as I never liked the one I had. My favourites of the lot are these two:

1986 Full Members Cup Final

1997-98 Cup Winners Cup Semi Final vs Vicenza (in Italian)

Checked eBay for scarves for the first time in a while and got a nice Greek Olympiacos scarf for the upcoming CL tie. Missed out on a 2006 Community Shield one split half with Liverpool but it's almost the same as the 05 Arsenal one and the 05 Carling Cup final one so I'm not too concerned.

See the rest of my scarves at

Buffalo buffalo buffalo buffalo

Just finished reading Mike Cohn's excellent book "User Stories Applied: For Agile Software Development". The buffalo bit one of the examples Mike uses to illustrate the problems with rigid requirements specifications written at the start of a traditional waterfall project. I've always hated trying to sift through a lengthy requirements document only to find ambiguous language that raises more questions that it answered. Mike explains in great detail how using short user stories that act as a reminder of a conversation can deliver requirements that are easy to understand as well as encouraging communication.

The start-up I work for is in the process of formalizing our process and Mike's book provides insight and ideas that are helping us to reap the benefits of agile development. Whether you're a development manager, team lead or a developer you'll benefit from Mike's in-depth knowledge and real world experience.

Gmail + Google Reader Integration

Released v3.4 of the Gmail+Reader Greasemonkey script today. Fixed some breakage caused by the latest Greasemonkey update as well as problems caused by the Firefox 3 beta 2 now throwing WRONG_DOCUMENT_ERR (NS_ERROR_DOM_WRONG_DOCUMENT_ERR) if you if you try to add a node created from an external document. Gmail uses iframes so there are multiple documents that you must deal with when manipulating the DOM.

There are two possible solutions, importNode and adoptNode. Since adoptNode is new with Gecko 1.9 it's not available for Firefox 2.0 users so I used importNode.

I also moved the feed list navbox on the left above the chat and labels navboxes to reduce the amount of scrolling needed when on a lower resolution display like my laptop.

You can install the latest version of the script from