Ubuntu installation notes

Some things I had to do when I first installed Ubuntu.

As I plan to install it again at home these notes will come in handy (maybe only for me).

First off; I installed it on a new partition, keeping my old Slackware install on another partition.

The first thing to do is to set it up so that I can still boot back into Slackware – just in case.

Dual boot

Mount the old Slackware partition, I normally mount it on /mnt/old as I often need to refer to old config files etc.

Copy the slackware kernel image from /mnt/old/boot to /boot on Ubuntu.

Edit /boot/grub/menu.lst and add an entry for the old kernel.

Edit the entry so that it boots off the correct partition (note: grub partitions count from zero).


The next thing was to install the NVidia drivers so that I could run it at 1600X1200.

Luckily there’s a HOWTO for that – (I followed method 1).


After installation I edited /etc/X11/xorg.conf to add 1600X1200 as a resolution for the 24 bit colour depth line.

keyboard shortcuts

I’m very big on keyboard shortcuts and multiple workspaces so I then did the following:

Increase number of workspaces to 6

Right click panel; Preferences.

Map keyboard shortcut to each workspace (Alt-1, Alt-2 etc)

Run gconf-editor /apps/metacity

Edit Global keybindings.

Map keyboard shortcuts to arbitrary commands

Run gconf-editor /apps/metacity

Add command to “keybinding_commands”

Map key to “run_command_n” in “global_keybindings”


I then installed qmail by following http://www.lifewithqmail.org/lwq.html#installation.


A friend (the one who gave me the Ubuntu CD) told me to look at Automatix.

It sets up lots of stuff for you with a nice installer tool.


Stuff I installed

I also installed a whole bunch of stuff using the Synaptic package manager.

I got this list from the history feature in Synaptic.
















That’s about it.

I still have a few things to sort out – mutt is playing up – so I’m having a play with Evolution.

xmms is skipping when playing music streams from home – not sure yet why that is.

But so much other stuff works better than it did in Slackware so overall I’m happy.


I’ve spent yesterday and today installing Ubuntu.

This is a big deal for me, I’ve been running Slackware as my main OS at home and work since around 2000.

My main reason for switching was that the latest release of Slackware no longer comes with Gnome. I don’t run the Gnome desktop environment, but I like my apps to be compiled against Gnome as I prefer its look and feel to GTK.

A few weeks ago one of the chaps at work handed me an Ubuntu live CD to try out, I figured it wouldn’t hurt to try it out so I gave it a whirl.

I liked it, so eventually I took the plunge and installed it properly.

I set it up to dual boot so I can still go back to Slackware if I need to.

So far though, I like it.

Not sure about all these GUI apps though, I’m used to running Slackware – when I want to do something I hack on text files using vi.

Now I’m supposed to run some fancy-schmancy GUI tool instead. That’s not what Linux is all about surely! 🙂

My digital workflow

I was listening to the Tips from the Top Floor podcast and there was an interview with Randal L. Schwartz (of Learning Perl fame) and he was talking about his digital workflow.

Randal is of course a geek, so his digital workflow is typically geeky, lots of custom scripts and use of Unix tools to automate stuff etc.

After he’d described it all I realised that my workflow was quite geeky too.

So I thought I’d describe it here for fun.

It can be broken down into 4 stages.

Transferring photos, post production, Web processing and Flickr interface.

Also, some of it is done on Linux, some on Windows and some on the Web.

Stage 1: Transferring photos (Linux).

I use a Canon EOS 20D which in turn uses Compact Flash. To get photos onto my camera I have a short script that copies files from a compact flash card reader onto the PC. The only interesting thing that it does is to create date-stamped directories and store photos according to the date of their timestamp.

It also simplifies an otherwise fiddly task.

Stage 2: Post production (Windows).

Once all the photos are copied across, I can access them from Windows via a samba share.

As I shoot RAW, the first step is to convert them into a universal format.

For this I use Capture One.

I quickly go through the images, deleting any that are obvious rubbish.

I tend to keep the majority of what I shoot though.

Then I run through in more detail and fix any exposure and white balance issues. Capture One makes this very simple and allows me to do stuff in batch mode too.

Lastly I convert them all to TIFF format.

For any that I want to do some further work on I open the TIFF in Photoshop and do some additional work there.

Stage 3: Web processing (Linux).

I then process the images for displaying on the Web.

Firstly I use an app called Exiftool that generates thumbnails from the RAW files.

The reason I do this is that Exiftool maintains all the Exif data from the images – (Capture One loses any Canon-specific tags).

The next step involves a perl script that creates 3 JPEGs for each image (small, medium and large) then copies the files to this Web server.

Once the files uploaded I can then import them into my Photo database (a custom Web app written in Java).

First it display the thumbnails on screen where I can set location info and add any tags or titles to the photos.

Next it imports the photo information (made up of the Exif data and file sizes) into the database.

Stage 4: Flickr interface (Web).

The final (optional) step is uploading photos to Flickr.

As Flickr provides a comprehensive API it’s straightforward to code my app to upload photos to it.

I decided against using flickrj as it was more fun to roll my own code and learn the Flickr API.

The API also lets me set the tags, title and description that will be used on Flickr.

One of the nice things about doing it this way is that I can read some of the Exif data and set it as tags on Flickr. Stuff like the camera and lens used and location information is all picked up from my database and automatically added to my Flickr tags when I upload.

So all I do is view a photo in the Web app then click “Upload to Flickr”.

It appears in my Flickr photostream a few seconds later.

So, there it is; convoluted, idiosyncratic, geeky in the extreme and probably only of interest to me.


Couple in Richmond Park
Couple in Richmond Park
Winter Walk in Richmond Park
Winter Walk in Richmond Park
Tree in Richmond Park
Tree in Richmond Park
Richmond Park
Richmond Park

Big Up Open Source

In trying to speed up my insane photo workflow I found and downloaded exiftool.

Exiftool looked like it could make my life a lot easier but for some reason it didn’t quite work how I wanted it to.

On the off chance I emailed the developer of it explaining my problem then left it at that.

That was yesterday and today I received a reply suggesting some minor tweaks I could make to the source to fix the problem. I tried this and to my amazement it solved the problem!

It really makes my day when that happens.

Another “big up” for Open Source.

Hard disk failure

One of my hard drives failed last night.

Fortunately it’s not the one I keep my photos on (I do have backups anyway though!).

This drives contains all the JPEGs I generate from my photos for displaying on this site – and all the ogg files from my CDs.

After running e2fsk to repair the disk it seems that the ogg files survived, but the JPEGs didn’t.

I can either regenerate them all (I have a script) or re-download them from my Web server.

If I regenerate then they will have newer timestamps than the ones on the server – so my script would then try to re-upload them all.

So I have chosen to re-download.

It’s around 1.3GB of data – it may take a while.

Oh, and I need to buy a new hard disk. 🙁

The competition

I visited a friend recently and he had some sort of Streaming Media Server atop his TV.

It was a commercial system (boo! hiss!) called a Pinnacle Showcenter.

Anyway, it looked pretty nice.

Quite a bit smaller than the one I had built.

It had some funky blue LEDs, but my case has funky blue LEDs.

It doesn’t have an LCD panel though, so I win on that one.

But one really nice thing that it did do was to show photos as a slideshow on the TV.

“I can do that” I thought.

So I will.

First step, buy a cheapo (silent) video card with TV out.

Next step, write some code to display photos. On-screen display of photo titles would be a nice touch too.

Watch this space.

Import mutt contacts into gmail

This is a quick hack to import all contacts from a mail_aliases file (as used by mutt) into gmail.

cat ~/.mail_aliases | egrep -v ^# | cut -d ' ' -f 3- | tr "<" "," | tr -d ">" > mail_alias.csv

After this editing, open the mail_alias.csv file, remove any blank lines and add name, email as the first line in the file.

Check the contents of the file, as there is no way to undo an import other than deleting all your contacts from gmail.

You may also want to trim out any old email addresses you don’t use anymore.

After this editing my file looked like this:

name, email
Joe Bloggs ,joe@example.com
Joe Bloggs ,joe@example.com
Joe Bloggs ,joe@example.com

Gmail was then able to import this file without any trouble at all.