Feb 12

Critical Mass, February 2012

If you are into cycling in any way, you might like the opportunity for a friendly cycle round Birmingham.  Birmingham has a bit of a car centric attitude toward town planning, so it is great to be able to cycle around the center en mass and be a very visible part of the evening traffic.  Oh and we drop in at a pub on the way home. What’s not to like?

Here is a short video of last weeks Critical Mass.

Critical Mass, Birmingham, February 2012 from Tim Hodson on Vimeo.

A Critical Mass ride around central Birmingham. It was cold, getting close to if not below zero, but still a good ride.

Meet at Pigeon Poo park (by St Philips, Temple Row) for an 18:30 start.

Jan 12

Ubuntu, Copying Partitions and UUIDs

After some rather unsettling moments when everything in RAM kept running, but the root filesystem quietly disappeared, I decided to clone the root partition onto a second drive and boot from that. On investigation it looked like the first hard drive – /dev/sda –  had been hitting a max temprature of over 130°C.

The thing that was really puzzling me was how to tell Grub 2 that it should use /dev/sdc6 as the new root partition. I followed several sets of instructions, but no matter what I did, it always chose /dev/sda6 as the root partition.

I then tried using the excellent boot-repair disk to see if that could do what I wanted.  I ticked the option I wanted which was to use /dev/sdc6 a the default boot partition.  I applied the changes and still it booted from the wrong partition.  boot-repair sends a clear and well thought-out report to paste.ubuntu.com, and while looking through this I happened to note that the cloned partition had the same UUID (Universally Unique IDentifier) as the original partition.

light bulb!

I figured that this must be causing the confusion, so a quick google pointed me to this post by Paul Goscicki, which confirmed that it was a likely cause.  So on running tune2fs -U random /dev/sdc6 , and then re-running boot-repair, I now have a system booting from the correct partition.

UUIDs are obviously not always UUIDs!

Dec 11

Kasabi.com’s Developer Advocate

Since the beginning of this week, I am officially now working for Kasabi.com.  My role here is to find ways to make the adoption of Kasabi.com’s suite of datasets and easy to consume APIs even easier for developers who need a quick way to get at the data that powers their apps.

You probably already know that the core data hosting and ready-provisioned APIs of Kasabi datasets allow you to get a data backed application out of the door much more quickly than you would if you had to incorporate data hosting and access infrastructure within your project.

We want to concentrate on helping you build something fantastic that is compelling for your user groups.  We’re going to be doing this in several ways; by improving our documentation; by holding webinars to demonstrate key features; by running hack days to give you space to play and learn how to effectively work with the Kasabi APIs in order to get the data you want.

This is an exciting time.  We are building something that feels like its moment has come.

Dec 11

Cycle safety: A longer amber phase for traffic lights

While reading the DfT’s publication of a report on Infrastructure and Cycling Safety, it occurred to me that increasing the length of the pre-green red/amber phase at traffic lights, and allowing cyclists to cross the junction in this phase could be a relatively cheap way to improve the visibility and reduce the risk of collision by cars.

What do you think?

What are the pros and cons?

Sep 11

Crunchy Mince and Cavolo Nero with Gnocchi

Over the weekend, I made the following dish. I only wish I had taken a picture of it as it was so delicious.  Here I record the recipe, because I know I am likely to want to do it again sometime. As with the majority of my cooking, it is experimental in nature, so feel free to suggest a more interesting name or point out any similarity with world cuisine somewhere…


Gnocchi in a white sauce, provides a soft backdrop to crispy beef mince and crispy green cavolo nero with a hint of oregano and carraway seed.


  • Some mince
  • Some carraway seed
  • Some oregano
  • Some gnocchi
  • Some cavolo nero – cut into thin strips across the stem
  • Some flour
  • Some butter (or margarine)
  • Some milk
  • Salt and pepper to taste


In a sauté pan, melt a tiny bit of butter and then load up with the mince. Add the carraway seed and oregano while the meat is sizzling in its own juices. Let the mince cook through and make sure it is well separated (i.e. not cooked in big clumps). Add the strips of cavolo nero to the mince and cover. Keep an eye on the mince, you want it to start going crispy, but not burnt, and you want to keep the environment in the pan quite steamy so that the cavolo nero is part steamed, part sautéd; this will mean adding a few tablespoons of water on a regular basis.
While you are doing all that (and don’t you hate it when cookery books say that and you realise you should have started this bit half an hour ago…) make a white sauce. Melt butter in a saucepan, take it off the heat, mix in some flour until it is a smothe paste, then drip by drip add milk while stirring in to keep that smooth consistency. then pop it back on the heat and keep storing. You could add some grated cheese at this point, but I didn’t have any in the house.
Cook the gnocchi according to the instructions on the packet (yes I cheated).
Server the gnocchi with the white sauce poured over, and the cavolo nero plus mince to one side.

Aug 11

Digital open space

Just a quick thought… In this age of social networking via portable smartdevices, It would be really interesting for architects and planners to explore how their development of open space can become a part of online social space.

Some ideas for you…

  • have lots of easily identifiable public art sculptures that can act as meeting spaces.
  • number the squares in the square so that people can find a square stand in it and tell their friends to meet them at that square. could be the basis of some rather interesting games too…
  • street furniture that can be tweeted to provide identifiable meeting places
Any others?

Aug 11

iPhone cycle mount mark one

Here is mark one of my iPhone mount. It comprises some closed cell foam from server packaging, some Velcro pop riveted to a small piece of hardboard, and an old light mount bolted to the hardboard. The foam is cutaway inside to provide a space in which the iPhone in an aquapac can sit snuggly. Being mark one, this isn’t elegant, but it is functional, and did excellent service on the way to work this morning.


Jul 11

Pictures from Segovia and #sssw11

Here is a selection of photos from Segovia. This evening trip was organised by the 8th European Summer School on Ontology Engineering and the Semantic Web. First we had a tour of Segovia, followed by Cochinillo (roast suckling pig) at Resturante José Maria.

[flickr-gallery mode=”photoset” photoset=”72157627100200713″]

Jul 11

Winning Video from #sssw11

One aspect of the mini-projects at #sssw11 was to create a one minute video that was both humorous and contained reference to some innovative semantic technologies.

Our Mini-Project team, Don’t Move the Plants was intrigued by the signage in the residencia, so took that as our inspiration.  It is worth noting that all the text translation seen in the video is as translated by Word Lens, an iPhone app which translates words right before your eyes.

Don’t Move the Plants comprised myself, Esther Lozano, Andrea Nuzzolese, Ferdinand Dhombres and Luca Greco.

I’m at risk of over explaining the joke, so here is our winning entry.

Jun 11

Running Jena Eyeball on Mac OSX

A HowTo for running Jena Eyeball on Mac OSX.

  1. Download the eyeball package somewhere convenient.
  2. Create the following script somewhere convenient, then add it to your PATH.
    # script to run eyeball on a file or files
    for file in $FILES
    echo "======================================="
    echo "    Checking $file"
    echo "======================================="
    java -classpath "$CLASSPATH" jena.eyeball -check $file
  3. You may want to tell Jena what schemas you are using. I did this by downloading all the schema rdf or n3 files I could find to the {eyeball_install_dir}/mirror direectory, then adding the following to the end of the java command line:
    -assume owl dc-all `ls $FILEBASE/mirror/*`

    This means that we don’t get so many ‘predicate not declared’ messages when we will only ignore them.

Don’t you just love Java and its classpath loveliness… NOT.