The New Utovsky Bolshevik Show

Mon, 04 Apr 2011

The Red Sox Aren't Doomed

The baseball season has started, and the Red Sox are off to an 0-3 start. A lot of Red Sox fans will be feeling down about this, so I'm going to cheer them up the only way I know how: statistics.

In this post, I'm going to look at how well teams records through the first 3 games of their seasons predict their record on the season. I'm going to examine this by looking at the correllation between the number of wins in the first three games of each team's season and their final win percentage for that season. I've used every team-season since 1962, the year in which the NL adopted the 162-game schedule that the AL started using a year earlier. This includes strike years, as they didn't occur to me until after I'd finished making all the graphs.

Let's start out by looking at the distribution of wins in the first three games:

The numbers break down as follows:
0 Wins 1 Win 2 Wins 3 Wins Total
148 473 475 152 1248

Unsurprisingly, there are a lot more 2-1 and 1-2 records, with a large tail-off for 3-0 and 0-3. It should be noted, however, that the 2011 Red Sox are part of the most exclusive club as far as records in the first 3 games go.

Now let's look at the distributions of full-season records against the number of wins in the first 3 games:

Looks pretty flat, doesn't it. Let's add in a linear trend line to see just how flat it really is:

That confirms that it is actually pretty flat. There is a tiny amount of correlation between the first 3 games and the full-season record, but only at r=0.17, with r squared at a miniscule 0.03.

For those not in the know, the r of two variables ranges between -1 and 1, where 1 means that there is perfect positive correlation (i.e. when one variable increases, the other always increases) and -1 means that there is a perfect negative correlation (i.e. when one variable increases, the other always decreases). 0 means that there is no relation between the values.

r squared tells us how well our r fits our model. It is pretty much arrived at by comparing what r (the black line in our graph) predicts with the actual data (all the blue points). If the black line represented our data well, r squared would be near 1. As it does not represent our data well, it is very near 0.

So, to summarise, we have looked at how good a predictor the first 3 games of each team's season from 1962 to 2009 were for their overall record in that season, and have concluded that there is a relationship between the two, but that it is of no great significance.

Red Sox fans, take heart!

Sources and Scripts

All of these conclusions were drawn using game logs freely available from Retrosheet.

The following shell script was used to generate summaries of games in each year:

for n in $(seq 1871 2009);
    cut -d, -f6,9,4,7,10,11 < GL$n.TXT > summary$n.txt

The following Python script was used to process the summarised game logs into win-loss records for the first 3 games and the whole of each season:

#!/usr/bin/env python

from csv import DictReader

first_three_wins = {}
first_three_losses = {}
wins = {}
losses = {}

for n in range(1962,2010):
    d = DictReader(file('summary%d.txt' % (n,)),
    for r in d:
        home_name = "%d%s" % (n, r['home'])
        away_name = "%d%s" % (n, r['away'])
        first_three_wins.setdefault(home_name, 0)
        first_three_losses.setdefault(home_name, 0)
        wins.setdefault(home_name, 0)
        losses.setdefault(home_name, 0)

        first_three_wins.setdefault(away_name, 0)
        first_three_losses.setdefault(away_name, 0)
        wins.setdefault(away_name, 0)
        losses.setdefault(away_name, 0)

        away_win = r['away_score'] > r['home_score']
        if int(r['home_no']) <= 3:
            if away_win:
                first_three_losses[home_name] += 1
                first_three_wins[home_name] += 1
        if int(r['away_no']) <= 3:
            if away_win:
                first_three_wins[away_name] += 1
                first_three_losses[away_name] += 1
        if away_win:
            losses[home_name] += 1
            wins[away_name] += 1
            wins[home_name] += 1
            losses[away_name] += 1

for team in wins:
    w = float(wins[team])
    l = float(losses[team])
    w3 = float(first_three_wins[team])
    print "%s,%f,%f" % (team,w3,w/(w+l))

Insofar as it matters for such a short snippet, this script should be considered to be in the public domain.

Posted: Mon, 04 Apr 2011 23:03 | Tags: , , , | Comments: 17 |

Wed, 15 Dec 2010

Cycling Websites

Being something of a geek, I couldn't start cycling without looking around at what online aids there are available. Below I give details of three websites that I've found useful: Ride With GPS, Bike Route Toaster, and CycleStreets.

Ride With GPS

Ride With GPS is the site that I've been using most often. It allows you to create routes and then log trips along those routes. From that information, it will give you a breakdown of how long you've spent on your bike, how much distance you've covered and how much elevation you've gained.

The creation of routes is done using Google Maps data. You add waypoints along the route and use either straight lines or automated routing to join them up. As you create your route, the elevation profile is displayed, as well as the route distance and the total elevation gained and lost. Excitingly, when you move your mouse over the elevation profile it shows where on the map that elevation is, so you can correlate what you were feeling and the actual facts.

The automated routing is performed by the Google Maps' routing algorithms (either car or walking). This can cause problems, as the car algorithm is likely to choose a poor/dangerous route for a cyclist, and the walking algorithm (unhelpfully labelled 'Cycling' by Ride With GPS) will do things like sending you the wrong way up a one-way street. As such, you have to switch between the two to ensure that you are getting a good, cycleable route.

As the name suggests, Ride With GPS is designed for use with a GPS device. None of the functionality above requires a GPS, but there is other functionality that I haven't described as I've never used it. The most obvious example is that you can upload a trip from your GPS and it can/will be used as a route. This obviates the need for the route planner, so I do wonder how much improvement/work it will receive from the developers.

A few examples from my Ride With GPS profile:

Bike Route Toaster

Bike Route Toaster is a bike route planning website. It doesn't include any of the non-routing features of Ride With GPS, but it does include integration with OpenStreetMap, which has considerably more detailed information about cycle-only routes (and won't send you the wrong way down one-way streets). This makes it a good choice for planning a route through somewhat unknown areas, where Google may well screw you.

One thing that Bike Route Toaster does lack (as far as I've been able to tell) is a location-finder. So I have to find my house every time I'm planning a route from my house, and I have to look up the exact location of places I'm not familiar with on Google Maps or OpenStreetMap to be able to route to them.

With both Bike Route Toaster and CycleStreets, you can use their routes in Ride With GPS. This is done by exporting to GPX (the GPS eXchange format) and then importing that into Ride With GPS. There are some complications, so this isn't a good solution for every route, but if you're planning a particularly tricky or regularly-used route, it is worth it.


As with Bike Route Toaster, CycleStreets is solely designed to plan routes from Point A to Point B. Also like Bike Route Toaster, it uses OpenStreetMap's data, which gives you better routing than Ride With GPS. However, unlike the other two websites, it doesn't allow you to specify points C, D or E in between your Points A and B. You give it start and end points, it does the rest.

After spending some time deliberating, CycleStreets generates not one, not two, but three (potentially) different routes to get you to your destination. These consist of a Fastest route, which ignores any niceties to give you the shortest distance A to B; a Quietest route, which prefers a longer route with minimal traffic; and a Balanced route, which takes a little from column A, a little from column B. You get a map, an elevation profile (though it's not as shiny as the Ride With GPS one), and step-by-step instructions with mini-maps (which is better than either of the other sites).

Of the three projects, CycleStreets is probably the one that I'm most excited about. It's run on a not-for-profit basis, and they plan on releasing the code as open source. They're also looking to expand and allow your points C, D and E, as well as to improve their use of the OSM data.

Here's the CycleStreets routing for my house to Leam and Coventry to Peterborough.

Posted: Wed, 15 Dec 2010 20:00 | Tags: , , , | Comments: 0 |


I recently bought a new bike (which deserves a separate blog post, regardless of whether or not it will ever receive it) and, as such, have been doing and planning quite a bit of cycling.

My current aims are:

Posted: Wed, 15 Dec 2010 12:20 | Tags: , , , | Comments: 0 |

Tue, 02 Nov 2010

Re-encoding an Audio File as Video

As part of my current MythTV project (about which I may blog more in future), I wanted to re-encode an audio file with a black video track.

To do this, I used the following commands:

$ convert -size 320x240 xc:black /tmp/black.jpg
$ ffmpeg -loop_input -i /tmp/black.jpg -i in.mp3 -qscale 1 -shortest -acodec copy out.avi

I hope this helps.

For those who are wondering why I wanted to do this, it's because MythTV won't play audio-only recordings, and I wanted to include BBC iPlayer radio programmes in my recordings screen. So the simplest way to fix this was to just make it so that they weren't audio-only.

Posted: Tue, 02 Nov 2010 22:36 | Tags: , | Comments: 0 |

Wed, 11 Mar 2009

Review: Lowboy

Lowboy, by John Wray is a novel about a schizophrenic teenager who calls himself Lowboy. There are two main threads to the story, that of Lowboy who escapes his handlers in a subway station into the tunnels themselves, and that of his mother and the police officer assigned to find him.

I enjoyed the novel a great deal. The Lowboy thread helped me to understand what having Lowboy's condition might feel like, the constant shifting of attentions and the extrasensory feelings he was having, without alienating me from him. The mother thread both grounded the novel and provided a background of normality against which the Lowboy thread was juxtaposed.

The characters in the book are vivid. Lowboy himself is neurotic but never alien. His mother, seen through the police officer's eyes, is alien but not unwelcome. The police officer, seen through the mother's eyes, is predictable but not boring. There are other, peripheral, characters. They are well-drawn and never feel like they exist to expose some facet of a main character or to move the plot along.

The only disappointments I had with the novel came within the last 5 to 10 pages. The ending is not quite as clear-cut as I was hoping, and the 'twist' doesn't have a mind-blowing effect. On the other hand, the ending fits with the rest of the book perfectly, and the lack of a 'twist' means that rereading the novel in future will remain interesting, so the disappointment was not too great.

I recommend reading this wholeheartedly. As with The Sound of Building Coffins, anyone I know should feel free to ask to borrow it.

Posted: Wed, 11 Mar 2009 12:00 | Tags: , , , | Comments: 2 |

Mon, 09 Mar 2009


I'm writing this blog post using a text editor called PyRoom, which bills itself as allowing 'distraction free writing'. I've also written all of my recent blog posts using it.

It's a really stripped down editor, which runs fullscreen and contains just a text area within the middle of the screen, with configurable themes to define background and text colour. It's designed for creative writing rather than text editing per se, and I really like it.

It's packaged for Debian (and so probably Ubuntu), or can be downloaded from

Posted: Mon, 09 Mar 2009 02:22 | Tags: , , | Comments: 0 |

Review: Watchmen

On Saturday night, abandoning CompSoc to their own trip to see Watchmen, a group of friends and I went to see Watchmen at a cinema in Leamington Spa.

Overall, I considered the film to be just OK. Of the four friends I went with, two liked it and two disliked it, so I was right in the middle.

I should note now that I haven't read the graphic novel (yet). I should also note that I'm not going out of my way to avoid spoilers below.

I'll start with what I liked. I liked the action sequences, they kept me interested. Not the highest praise, but I'm not really an 'action movie' guy, so this was an achievement. I liked the world we were being immersed in. I liked the title sequence, with the live-action cells of a graphic novel, a lot.

What didn't I like? Quite a lot, sadly.

Despite that I liked the world we were in, I didn't know enough about it. Was it reasonable for the Comedian to start shooting his shotgun at the crowd in one particular scene? I don't know. It feels more like the strength of the world in the graphic novel is such that anything set within the world will be interesting but, as this film show, not necessarily satisfying. Hopefully reading the graphic novel will be satisfying.

The film was too explicit, both in terms of gore and in terms of sex. With the violence, it was obviously important that we, the audience, realise that we aren't in a standard superhero universe here. We need to know that people bleed blood here, and that facing off against a superhero doesn't just involve the word 'POW'. I get that. However, I didn't need to see bones popping through skin or entrails plastered on the ceiling to get it. I guess this was just to be expected from the director of 300 though.

We were also treated to an entirely needless sex scene or, at the very least, a needlessly lengthy sex scene. Apparently the sex scene is in the graphic novel, which I guess goes some of the way to explaining it. I just wish that the film-makers had spent more time on the interesting part of the graphic novel, the world we were in (see my above complaint), rather than a sex scene which we have seen in plenty of other films which could roughly be summarised by "these two characters love one another; people who are in love have sex".

The film became largely incoherent in the last third. Essentially from the scenes within the prison onwards. I guess this is linked into my first complaint. On the bright side, I'm told that the graphic novel has a different ending, which I'm looking forward to.

Overall, I don't think that this film isn't really worth seeing unless you have already read the graphic novel or really want some motivation to do so.

Posted: Mon, 09 Mar 2009 01:55 | Tags: , , , | Comments: 0 |

Review: The Sound Of Building Coffins by Louis Maistros

The Sound of Building Coffins is, in some respects, like the Mississippi river that flows through its pages. It is turbulent and muddy whilst being powerful and beautiful. It tells a number of stories, all of which flow into the novel at various points, adding to and changing those that have come before them.

I was somewhat uncomfortable with the magical realism of the book to begin with. I guess that part of this was to do with not having a firm understanding of what 'magical realism' was, and so not being sure as to what statement Louis Maistros was making regarding some issues of spirituality and faith. However, as I went through the novel, these concerns were allayed as I began to make sense the world in which I was becoming immersed. If you experience similar concerns, I urge to push on through to the end.

Overall, I recommend this novel.

N.B. If anyone I know would like to borrow this book, just ask me.

Posted: Mon, 09 Mar 2009 01:01 | Tags: , , , , | Comments: 0 |

Sun, 08 Mar 2009

Three New Debian Django Packages

Recently my employer, credativ UK1 have been kind enough to allow me to spend some time working on Debian packaging from some Django apps we've started using internally. Chris Lamb was kind enough to sponsor the upload of these packages.

Django developers, this means that if you are running a Debian GNU/Linux machine2, you can type:

apt-get install python-django-<app name>
and you will have it installed for all users on the system. You won't need to mess around with any Python packaging systems, or modify your environment to be able to use them.

So, what are the packages and why are we using them?


django-tinymce is a Django app providing integration with TinyMCE, a pure JavaScript rich text editor. It provides a widget that can be used within forms, and can also easily be used within views. It integrates with django-filebrowser, which I will mention below.

django-cms integrates with django-tinymce to provide a rich text editor for pages within it. As our website content will have to be maintained by people who may have little or no experience with HTML (or Markdown or anything else that isn't Word), this is obviously desirable.


django-filebrowser is a Django app that provides a file management interface within the Django admin interface. It should essentially replace an FTP client, allowing browsing and upload/deletion/editing/renaming of files on the server.

As mentioned above, django-tinymce integrates with django-filebrowser, to allow users to upload content they will be using with the edited text. This saves us from having to teach our potentially technically-illiterate users how to either access the web server remotely or how to use the version control system we're using for the website (bzr, incidentally).


django-contact-form which provides generic, extensible contact-form functionality for Django. It streamlines the process of displaying a contact form and emailing the contents of it out once the 'Submit' button is clicked.

Our website include a contact form, and django-contact-form saves me from having to worry about a number of issues involved in the implementation, as well as reducing the amount of internally maintained code I'm writing.

1 That website will soon be replaced by a very similar one using Django as the backend. Hopefully I will blog about this once the rollout is complete.

2 Currently just the unstable distribution, but soon to be testing/squeeze. Backports will also be trivially easy.

Posted: Sun, 08 Mar 2009 23:52 | Tags: , , , , | Comments: 1 |

Mon, 24 Nov 2008

Backup Broadband

At work last week, we had some unexpected Internet downtime. As both our phone system and access to our customers' machines depends on an Internet connection, this is something we would like to avoid. As such, we're looking for a backup broadband provider, ideally from someone other than our current provider.

This list is currently:

Should we avoid any of these? Are there any others we should consider? What we're really looking for is low price and reliability. We're not going to be using this a great deal, so line speed and bandwidth caps are secondary concerns.

Posted: Mon, 24 Nov 2008 11:21 | Tags: , , , | Comments: 0 |

Fri, 21 Nov 2008

Christian Focus Weekend Away

I'm going. It'll be great. Posts on Sunday.

Posted: Fri, 21 Nov 2008 16:47 | Tags: , , , | Comments: 0 |

About Time

As I go to work, I walk past the newspapers in the station shop. For the last week, many of them have had 'BABY P' in large letters on the front.

The Times today had, as their main headline, "Four at-risk children die from abuse every week".

Finally, someone noted that there are children other than Baby P who have suffered, and who continue to suffer.

About fucking time.

As tragic as Baby P's death undeniably is, the continuing obsession over it is disgusting. It paints a picture of a country more interested in moral outrage than morality, more interested in calling for action than action itself, more interested in dwelling on the past than trying to improve the future, of a media keen to capitalise and encourage these qualities. I try to avoid being a part of this picture. Who wouldn't?

During the course of the coverage of the Baby P story, another 4 children in the UK will have died in similar circumstances. One hundred and eighty thousand children will have died across the whole world. One hundred and eighty thousand. I haven't seen them in the headlines recently. I couldn't even name a single one of them. Could you?

Turns out I'm part of the picture after all.

Posted: Fri, 21 Nov 2008 01:26 | Tags: , , , | Comments: 1 |

Wed, 19 Nov 2008


As a number of people correctly ascertained, my server naming scheme is based on ships commanded by Jack Aubrey in the Patrick O'Brian Aubrey/Maturin saga. I thought I'd take this opportunity to write a little bit about why I chose this naming scheme.

For those of you who don't know, Master and Commander is the first book in the series, which lent its name to Master and Commander: The Far Side of the World. That film is, in fact, based mostly on the events of the 10th book in the series, from which it takes the other half of its name, The Far Side of the World, while taking memorable events from all of the books.

So, I chose these books as my naming schemes because I absolutely adore them. As with anything one loves, it's quite hard to put my finger on exactly why. Nonetheless, I will attempt to do so.

Ever since year 7 (11 years old), I've been interested in the nautical and the naval. This stems from both C.S. Forester's Hornblower books and joining my local sailing club. It's not entirely clear to me which of these motivated the other or, indeed, if they motivated one another at all, but they are very much tied together in my memory. In amongst those two things are Arthur Ransome's Swallows and Amazons books. It is these things that really motivate everything else that makes me interested in the nautical, and so in the Aubrey-Maturin books.

Foremost amongst these motivated actions is the tall ships cruise I went on when I was 16 years old, between Corfu and Cyprus. A tall ship is a sailing ship, roughly in the style of those sailed by Hornblower and Aubrey. The vessel I was in, the Stavros S Niarchos, had two masts with square sails on each of those. Sadly, the cruise was somewhat marred by a lack of wind and by a few shipmates who, for reasons passing understanding, were expecting something more along the lines of a normal cruise ship. By and large though, and there is a nautical expression, I loved it. I haven't had the opportunity or, really, the finances to do it again, but given the chance I would certainly do so.

I had been involved in the sailing club throughout this time, and had also bought my own dinghy, along with a friend, a pea-green Mirror. This was eventually sold on, as I outgrew it, but nonetheless owning my own boat was a great pleasure.

I don't think it was until after 'Master and Commander: The Far Side of the World'; a film, incidentally and unsurprisingly, that I love; that I discovered the Aubrey/Maturin books.

Since then, I have tried a number of times to read through the 20 books that make up the full cycle, but it is only recently, having bought all of them, that I have come anywhere close. I'm currently reading The Yellow Admiral, the 18th book in the series.

Although this has been a highly personal account of why I hold these books so dear, I would definitely recommend that you check them out. The best place to start is at the beginning, with Master and Commander.

Posted: Wed, 19 Nov 2008 23:42 | Tags: , , , | Comments: 1 |

Tue, 18 Nov 2008

EDM 2141 (My Followup)

So, as I have posted about previously, I have contacted both of my MPs about Early Day Motion 2141. They both responded, expressing their support for the motion. Which was nice.

However, I'm not satisfied with just their support for a fairly inconsequential EDM. So, I replied to both of them, thanking them, but also asking them to clarify both their position and the position of their party on free software. I wrote the following to Jim Cunningham, with roughly the same going to Stewart Jackson as well:

Another topic related to the publishing of bills in an accessible format, is the use of open formats within government, central and local. Hand in hand, I believe, with that comes the use of free software, sometimes known as open source software. I believe that our government cannot govern effectively if it has locked itself into proprietary formats and software, provided by companies that could, legally, hold all of the government's data hostage. Indeed, it seems downright irresponsible. As a long-time GNU/Linux user and free software developer, this is something that is very close to my heart.

It would be greatly appreciated if you could inform me of both your and your party's views on this matter. I would also be interested to hear what practical effect this has on the operations of the Labour party, and what practical effect it is having within Government.

I sent those replies yesterday evening, so I should hopefully have responses before the end of the week...

Posted: Tue, 18 Nov 2008 22:01 | Tags: , , , | Comments: 0 |

Mon, 17 Nov 2008

Podcast Timings Metadata

As I mentioned yesterday, one of the podcasts that I listen to regularly is Filmspotting. Now, I've listened to Filmspotting for a long time and, as such, have come to trust their recommendations and reviews. Unfortunately, as they are based in the US, they often review films that I have no way of seeing for some time. Or, perhaps, it's a marathon film that I haven't managed to get a hold of. Either way, if I later catch up with the film, I like to go back and listen to the Filmspotting review again.

Now, this is somewhat irritating. I have to find the episode in which the film was reviewed (which normally involves Google), then download that episode, then scan through looking for the review, then skip on to something else when the review is finished. This is made somewhat easier by the Filmspotting guys, as they publish timings of each show in the show notes. However, it's still more effort than it should be.

On a number of occasions, when trying to conserve space on my MP3 player or something along those lines, I've downloaded the episode in question and then used mp3splt to get only the part of the show I'm interested in.

Having done this a couple of times, it occurred to me that this should be easily automatable, if not done by the podcast provider themself. If each episode in the podcast feed included its timing information as part of its metadata, then this would be much easier. This would presumably imply using Atom rather than RSS, but that's the way things should be moving anyway, as it's a superior format.

So, is this already done? If not, are there good reasons why not?

If it isn't, and there aren't, I think I should look into how I can take this further, because I don't really have enough things to do in my spare time as it is.

Posted: Mon, 17 Nov 2008 20:05 | Tags: , , | Comments: 2 |

Sun, 16 Nov 2008


Yesterday I posted about the word 'podcast', and today I am going to post about podcasts I listen to.

The podcast I have been listening to for the longest is Filmspotting, which contains, to quote their website, "Movie reviews, interviews and top 5 lists with Adam Kempenaar and Matty Robinson". The typical structure includes two reviews or interviews a week, a listener feedback section and a top 5 to end the show. The reviews are either of new releases, festival films that the hosts have seen, or one of the films in a 'marathon'. From time to time, the co-hosts engage in a 'Filmspotting marathon', in which they review around six films by the same director, or from the same genre, or fitting some sort of theme and then award the films with various awards. The films included in marathons are normally those that Adam and Matty feel that they should have seen but haven't. Recent marathons have included the 'Classic Heist' marathon and the '70s Sci-Fi' marathon.

Dan Carlin's Hardcore History is a podcast I've started listening to very recently. It gives a narrative view on events in history that are sometimes too remote for people to really identify with. Most recently has been a series of three episodes on the Punic wars, entitled "Punic Nightmares". I'm interested in history, though not really in an academic sense, so this podcast is ideal. I'm still on the look-out for other good history podcasts, so if you know of any then let me know.

podictionary is a podcast about words. Every week day, the host, Charles Hodgson, spends about four minutes talking about a word and its origins. As someone who likes words but doesn't really have the time to read a dictionary, this is great.

This Week In Django is, as the name suggests, a weekly podcast about Django. For those of you who don't know, Django is a web framework written in Python. If that hasn't cleared things up, you can read more here. I develop a few things in Django, but don't work with it full-time, so this helps me to keep abreast of what's happening in the Django world.

My name is Daniel Watkins, and I approve these podcasts.

Posted: Sun, 16 Nov 2008 13:37 | Tags: , , | Comments: 1 |

Sat, 15 Nov 2008

'podcasting' considered harmful?

The terms 'podcast' and 'podcasting', to mean 'an RSS feed with associated audio content' and the process of creating the aforementioned respectively, are massively prevalent in the zeitgeist at the moment. However, the terms do refer to Apple products in their names (if somewhat obliquely), that being where the idea really exploded into the public awareness.

The GNU Project publishes a list of words to avoid. I don't think that 'podcast' and 'podcasting' belong on that particular list, as they don't directly affect GNU software (that I am aware of). But should those terms be included there in spirit?

I'm not sure I really care, but it's something that popped into my head just now, people's responses to which I would be interested to hear.

So, what do you think?

Posted: Sat, 15 Nov 2008 17:27 | Tags: , , | Comments: 1 |

Fri, 14 Nov 2008 Tags

So, in my first post about I mentioned, right at the end, tags. You may be familiar with tags from other Internet things, and tags on are essentially the same: they are used for classifying your dents into categories.

What differentiates tags in from tags on, say, your blog, is that they are included right there in the text of your dent, simply by prepending a '#' to a word. So, for example, I posted about Debian earlier, here. I included the text '#debian', which makes it automatically show up on the Debian tag page. You can use any word for a tag, and as soon as you do a tag page is created (or added to).

So what?

So, this means that you suddenly have a different aspect on dents. Now you don't just follow people, you can follow dents from anyone about things you're interested in. And there's no real definition to these things, it's very fluid. So, for example, you might be interested in Obama, a free voice-over-IP solution or even just food.

So now you don't just follow your friends, you can chat to people you don't know about stuff that interests you. That's pretty cool, and not something you can easily get with normal blogging.

Posted: Fri, 14 Nov 2008 19:33 | Tags: , , , | Comments: 2 |

Thu, 13 Nov 2008


Identi.Ca bills itself as a micro-blogging service. What is micro-blogging? And what's a service?

Micro-blogging is exactly what you think it is. It's like blogging, right, but it's actually much smaller. To be precise, each post, or dent as they are known, is 140 characters long. That's a little less than an SMS message. You don't have much room in which to flex your literary muscle. That sounds like a bad thing, but it actually isn't.

What does is it takes your 140 character message and it displays it for all to see. Anyone can read it, just like a blog. But, because it's micro, they can read it in about three seconds. And because it only takes them three seconds to read a dent, they can read a lot of them. So you have a lot of people able to read about a lot of other people. That's awesome!

In order to make reading things easier, you subscribe to other people's dents. So if someone was subscribed to me, they would see a list of all my dents interspersed with all of their other subscriptions, like this. Those are the recent combined dents of all of the people I subscribe to.

Anyhow, to come back to the nub of the thing, having limited-length messages has two big advantages.

Firstly, you can dent 'Going for lunch' and no-one minds. It can be kind of like Facebook statuses in that respect, except it's much easier to track a lot of statuses at once, it's much easier to set your status and you don't have to use Facebook to do any of it.

Secondly, and this is the bit I like the most, is that you can afford to talk about what you're doing all the time so you get talking to other people who are doing similar stuff, which is very, very cool. I'll probably give some examples of this in later posts.

The length also forces you to be concise, which is something all writers apparently strive for. Getting a dent exactly 140 characters long is actually worryingly satisfying.

Anyhow, that's a bit about what Identi.Ca is and why you might want to use it. This really only just scratches the surface. In upcoming blog posts I hope to talk about tags, cool ways you can send and receive dents and why Identi.Ca is better than Twitter. Reading back over this post, I guess what a 'service' is should also come up at some point.

Posted: Thu, 13 Nov 2008 23:32 | Tags: , , , | Comments: 3 |

Wed, 12 Nov 2008

Phrase From Nearest Book

Repeating the meme from Elliot:

My result:

"Please give them this note." — The Commodore by Patrick O'Brien

Disappointing, there are much better sentences to be had in the Aubrey/Maturin books.

Posted: Wed, 12 Nov 2008 11:16 | Tags: , , , | Comments: 2 |

Tue, 11 Nov 2008

What's In A Name?

An email over the weekend from Tim reminded me of a post on Planet Debian (I think), about computer naming schemes. Computer naming schemes are a strange window into the owner's mind and interests. I've seen schemes based on Old Testament prophets. The University of Warwick Computing Society uses well-known computer scientists for its on-campus servers and Postman Pat characters for its off-campus servers. I've seen Winnie The Pooh used, and Lord of the Rings.

Anyhow, I think I've come up with a unique scheme, so I thought I'd share it, and see if people can work out from whence its inspiration comes.

I decided on the new scheme fairly recently, when given the opportunity by my laptop's hard drive dying. So far my laptop, as the only computer I'm regularly using, is the only one that has been given a name, which is 'sophie'. The next one I (re)name will probably be my lamby-xen server, which will be called 'surprise'. When I repair and reinstall my desktop, that will be called 'lively', and when I finally get around to using one of the old, decrepid boxen I have sitting around in my bedroom it will be called 'polychrest'.

So, what's my naming scheme?

Posted: Tue, 11 Nov 2008 19:38 | Tags: , , , | Comments: 3 |

Mon, 10 Nov 2008

wnpp-bg 1.1

So, over the weekend I noticed a couple of bugs in wnpp-bg which are worth cutting a new version for. The changelog entries in question are:

  * Create an empty background when no WNPP bugs exist.
  * Fix border defaults.
The former changes the behaviour from giving a message on the command-line to silently creating an empty background when there are no WNPP bugs open for the given email address, to make using it in a cron job easier. This does have the side-effect of meaning that if you specify an invalid email address, there's no easy way to detect this, so I plan on adding a '--strict' option at some point in the future.

The latter change means that you don't have to specify the borders even if you want them to all be 0. I accidentally set the default to (0,0) when it should have been (0,0,0,0), so the program would crash out.

The latest code is in the bzr branch, and this release is available as a tarball or as a Debian package.

Posted: Mon, 10 Nov 2008 22:09 | Tags: , , , | Comments: 0 |

Sun, 09 Nov 2008

EDM 2141 (Part 2)

In a previous post I mentioned Early Day Motion 2141, the fact that I wrote to both of my Members of Parliament and the fact that Jim Cunningham MP, my Coventry MP, responded impressively quickly.

Well, I arrived for the family reunion this weekend and my parents had a letter from Stewart Jackson MP who had, as my Peterborough MP, sent his response to my Peterborough address. In this letter, he expresses his support for MySociety and EDM 2141. Needless to say, I'm pleased about this, and am glad that both of my representatives in the House of Commons share my views on what I consider to be an important motion. I'm also reasonably impressed by Stewart Jackson's response time which, while not quite as fast as Jim Cunningham's, was still only two days.

One thing that struck me about Stewart Jackson's letter was that it elaborated his position more than Jim Cunningham's letter did his, though this may be something to do with the response time. Admittedly, Stewart Jackson wrote only a paragraph of what might be stock text, but it was interesting nonetheless.

Another thing that struck me was that Stewart Jackson's letter, in contrast to Jim Cunningham's, mentioned the position of other members of his party (namely David Cameron and Theresa May) whom, needless to say, also support it. I suspect this is something to do with relative positions within their respective parties, though I don't really know enough to be sure. I don't recall whether or not I saw Theresa May and David Cameron's signatures on the EDM, so I'll have to check and possibly follow up with Stewart Jackson.

Another small thing of note is that while Theresa May and Harriet Harman both had 'MP' appended to their name, David Cameron did not. I wonder if this was just a minor oversight or a party marketing line.

Anyhow, I think the next thing I'm going to do is write a letter to both of my representatives asking what their position on free software and open standards is in general, to see whether I can work with either of them to encourage government to use more of it.

Posted: Sun, 09 Nov 2008 20:25 | Tags: , , , | Comments: 1 |

My Job (or, What I'm Doing With My Life)

I recently realised that, whilst people who I see on a regular basis are aware of what I'm doing at the moment, most people don't really have a clue about what I'm up to. As the latter group of people is fairly large, I thought I'd post to make people aware.

So, I'm currently doing an Intercalated Year as part of my Computer Science degree at the University of Warwick. This means that I'm spending a year working in industry (rather than on my degree), and means that I will get a "Computer Science (with Intercalated Year)" degree rather than a "Computer Science" degree, assuming I graduate. That really is the only difference it makes to me, academically.

I've been working since the end of August at an open source consultancy called credativ. credativ is a German company, with about forty staff in their office in Germany, but I work in the UK branch in Rugby, where there are three full-time staff. The company does a combination of systems administration, project work and bespoke coding.

For those of you not on Planet WUGLUG, Planet UWCS or Planet Bazaar (I'm looking at you, Facebook readers), an 'open source consultancy' is an IT consultancy that works primarily with open source software, sometimes known as 'free software'. This is software that is both free as in beer and free as in freedom, essentially meaning that anyone can take it and modify or use it as they wish. The fact that such a company exists is evidence that free software does not mean doom and gloom for software developers (though I won't vouch for those who have been unwise enough to tie them to proprietary systems).

As a consultancy, we, and therefore 'I', do a wide variety of things. So far, I've been involved in writing a presentation player using the OpenOffice API, creating Fedora 8 packages for OpenOffice, setting up monitoring using Nagios and munin, doing some Debian packaging and other general maintenance work.

So, that's what I'm doing with my life at the moment.

Posted: Sun, 09 Nov 2008 20:19 | Tags: , , , | Comments: 1 |

Fri, 07 Nov 2008

Why I Won't Shut Up (For Now)

As the more observant amongst you will have noticed, I've been blogging considerably more often than normal recently. I started off just posting a couple of articles two days in a row, because I had something to write about, but then noticed the postscript to this post on Planet Debian, which lead to me finding the National Blog Posting Month or NaBloPoMo as it is rather niftily known.

So, I've decided to try and write a blog post a day for this month. This is going to be a little tricky over the coming weekend, as I'll be completely away from the internet (*gasp*) and my blogging software doesn't have timed entries. So, assuming that I both write them before the weekend, which seems unlikely, and that I win the 'at' game (which, in fact, I am testing with this post), I'll be posting over the weekend. Failing that, I'll post the two articles when I get back on Sunday, or maybe Monday morning.

NaBloPoMo, I believe, takes its inspiration from the National Novel Writing Month (or NaNoWriMo). Ever since I heard about it, I've been interested in taking part in NaNoWriMo, but I'm not convinced that I have either the interest or the capacity to write fiction on the same topic for an entire month. I'm hoping that this month will either quell my interest in NaNoWriMo, or give me the confidence to give it a try some time.

Anyway, for those of you who've been thinking it, that's why I won't shut up.

Posted: Fri, 07 Nov 2008 12:50 | Tags: , , , | Comments: 0 |

Thu, 06 Nov 2008


I'm pleased to announce version 1 of wnpp-bg, a Python script for generating background images listing your currently open wnpp bugs. It is available either from bzr, as a tarball or as a Debian package.

wnpp-bg works by scraping a user's page on (presumably your own), and finding the bugs listed under 'Owned WNPP bugs'. It pulls out the package names and creates an image from that list. You can pass in the geometry of your screen, as well as how large the blank borders around the image should be (to take account of, for example, gnome-panel).

wnpp-bg was inspired by Tim Retout, with whom I work, who manually generated such an image and had it set as his background. Naturally, I had to do one better, and this is the result. Hopefully people will find it useful. I suggest shoving it in a cron job, though probably not a fortnightly one.

Bug reports or feature requests should be sent to

Posted: Thu, 06 Nov 2008 19:50 | Tags: , , | Comments: 0 |

Wed, 05 Nov 2008

Early Day Motion 2141

Yesterday afternoon, I received an email from Free Our Bills, a campaign run by MySociety to encourage Parliament to publish our laws in a format more amenable to real people looking at, and using, them. This email concerned Early Day Motion 2141. The EDM is very short and readable, so I suggest you look at it yourself. In fact, to make that easier, here it is:

That this House believes it has a duty to publish Bills in such a fashion that they can be accessed as easily and as early as possible by the public; notes that the non-partisan Free Our Bills campaign is urging the House to publish bill texts in a new electronic format to improve accessibility and public scrutiny of legislation; further notes that the changes requested would have no impact on the content of Bills, nor upon the process by which they are currently made; considers that the new format could be delivered cheaply and quickly; acknowledges that the Leader of the House's office did not accept a prior request for new formatting from mySociety, nor provide an explanation of why the changes could be made; and calls on the Leader of House to ask House of Commons Clerks to work with Free Our Bills campaign staff to commence publication of Bills in the new format.

Anyhow, the point of this email was to ask me to write to my representative and ask them to consider signing the Early Day Motion. As a student, I have the privilege of two MPs: Jim Cunningham for Coventry South, and Stewart Jackson in Peterborough. I sent them both a letter, via WriteToThem expressing my opinion on the matter, urging them to sign the EDM.

This morning, I woke up to find a letter from Jim Cunningham, MP waiting for me. He informed me that he agreed with my position, and has put his name on the EDM (as you can see if you look at the list of signatures). Needless to say, I was rather impressed with this one-day turnaround, and am feeling that I have done my part to keep this country from sinking. All I can say is:

Democracy. It works, bitches.

Posted: Wed, 05 Nov 2008 21:47 | Tags: , , | Comments: 1 |

Tue, 04 Nov 2008

Running cron fortnightly: round-up

It's a few days on from my original post, so I thought I'd give a summary of people's ideas. Just to remind you of the aim of the exercise, it's to get a cron job to run every fortnight, without using the 'date' command.

So, here are the ideas we've had:

Well, in light of the above ideas, my solution might be slightly cheaty. It depends on a Debian (or, presumably, Ubuntu system), as it takes advantage of /etc/cron.weekly. Essentially you write a script that live in /etc/cron.weekly and symlinks other scripts in and out of /etc/cron.weekly. These scripts could be stored in, for example, /etc/cron.fortnightly. It would scan through there and symlink in any that weren't in /etc/cron.weekly and remove existing symlinks to /etc/cron.fortnightly scripts.

This has the advantages of:

Of course, we should all just use 'date'...

EDIT: benji has noted that /etc/cron.weekly is by no means a Debian-specific feature. SUSE has it. Warn your distributor now.

Posted: Tue, 04 Nov 2008 21:56 | Tags: , , | Comments: 4 |

Mon, 03 Nov 2008

Interesting Involvement In Installing Intrepid Ibex

So I went to visit a school friend over the weekend, in the other Newcastle. An enjoyable but not especially blog-worthy weekend was had by all. So, I hear you ask, why the blog post?

I've been engaged in a campaign over the last few years to convert my friends and, hopefully at some point, my family to using GNU/Linux, free software and open standards. With my school friends I have been pleasingly successful, with two of them now using Ubuntu. Over the weekend, that became three. In itself, that's not an especially interesting occurence. So, I hear you ask, why the blog post?

Well, this blog post isn't so much about having installed Ubuntu, but how disappointingly painful the process was. Once we had burnt a CD that was working (damn you, Woolworths!), we shoved it in the CD drive and the boot menu came up. Now, Nick (the latest convert to the cause) didn't want to try Ubuntu before installing, he just wanted to install it. So, naturally, we chose the 'Install' option from the boot menu.

This was our first mistake.

When we had finally gone through the installation process (which was, in itself, very slick), we rebooted into the Ubuntu installation, as is traditional. Unfortunately, X wouldn't accept input of any sorts. The consoles would, but nothing we could do would fix X. So, we turned to Google. This turned up a similar problem that some people had experienced when upgrading to Intrepid, the solution for which was to purge GDM and reinstall it. So, we did so.

This was our second mistake.

None of the network interfaces were configured, and apt didn't want to use the CD as a source of packages. There was no easy way to install any packages, even those that shipped with Ubuntu. So, at this point Nick was getting impatient, so we booted into the LiveCD so he could piss around on Facebook or something. Once he had finished wasting his life away on Facebook, we decided to try reinstalling. The most convenient way to do this was the Install icon on the desktop, so we used that.

It. Worked. Perfectly.

Nick is now happily using his mostly-free laptop, so we all live happily ever after. My only thoughts are that the LiveCD installer copies the X and network configurations from the LiveCD, whereas the boot menu option can't. But that shouldn't break it as much as it did.

Oh, and, lamby, before you ask: my bug report.

Posted: Mon, 03 Nov 2008 19:06 | Tags: , , , | Comments: 0 |

Fri, 31 Oct 2008

Running cron fortnightly

In the office, we've just been having a discussion about how to run a cron job fortnightly. This is relatively easy to do with an entry like:

03    04    *     *     4     expr `date +"%s"` / 604800 % 2 >/dev/null || run_my_script
(there are 604800 seconds in a week)

However, I was wondering how to do it without using date, because that's clearly cheating. I have an idea, but want to hear what other people come up with. Go!

NOTE: It must be actually fortnightly, the 1st and the 15th of the month won't do.

Posted: Fri, 31 Oct 2008 16:04 | Tags: , , | Comments: 5 |

Wed, 24 Sep 2008

'Open' Considered Harmful

In the past couple of days, there have been two posts on the programming reddit that have caught my attention:

Here we have two codebases that seem obviously free. They are seemingly accepted within the free software ecosystem yet until recently have not been free software. Never having used these from a coder's perspective, I've never had any reason to investigate their licensing thoroughly. However, I've certainly used them as part of my desktop, and still had no idea.

This suggests to me that using the term 'open' to refer to software that is free as in speech is harmful. You will do only one of two things:

There is no good reason for someone developing free software to want either of these things to happen. The only incentive I can see here is for someone who wants their code to be accepted within the free software community without the supposed disadvantage of licensing their code under a free license.

If you're not convinced, consider Microsoft's latest file format offering, Office Open XML. If that doesn't convince you, you're not even trying.

EDIT: It has been noted in Reddit comments and in #wuglug that these complaints apply to 'free' as well. I should note that:

Posted: Wed, 24 Sep 2008 20:05 | Tags: , , | Comments: 0 |

Tue, 23 Sep 2008


I have been surprised by the number of systems I use where htop is not installed. I find it to be better than top in every way, so would recommend people check it out.

Posted: Tue, 23 Sep 2008 08:42 | Tags: , , | Comments: 0 |

Thu, 07 Aug 2008

Review: Wicked by Gregory Maguire

Gregory Maguire's "Wicked", as popularised by the Broadway musical, is a tale of the Land of Oz's Wicked Witch of the West's life. It starts with her birth to an unsuspecting minister and his unfaithful wife, and ends with her death, as chronicled in L. Frank Baum's classic book.

First, a brief note on why I chose to read this book. Recently (though not recently enough for me to have blogged about it), my housemates and I went down to London to see "Wicked the Musical". It was faintly enjoyable, but had a massively disappointing ending (as with the vast majority of musicals, but that's for another time). Anyhow, I couldn't really understand why this was such a big deal, so I assumed it must have something to do with the book on which the musical is based (albeit exceedingly loosely, now I have experienced both). So I took Wicked out of Peterborough Central Library and set about reading it.

Starting at the ending, it was better than that of the musical. However, it was probably the weakest part of the book. I should note at this point that I was getting rather tired by the end of the book (the tiredness entirely my own doing, most of you will not be surprised to hear), so I am not entirely sure that that didn't affect my enjoyment. Anyway, on with the review.

The book is split into five parts, and it is along these lines that I have made my notes (though I read the final part without my notebook by me, so that part will be even more sparse on comment than the rest). A quick warning, I haven't gone to any great lengths in what follows to avoid any spoilers. Beware.

In the first section, "Munchkinlanders", the story opens, as mentioned previously, with the Witch, whose name is Elphaba, being born to Frex, a minister of sorts, and Melena, a housewife of noble stock. Green from the outset, Elphaba causes a great deal of consternation and not a little infanticidal feeling from most people who meet her. By and by, a Quadling named Turtle Heart arrives, and proves to be able to tell the future in some part. It is here that we first get the link between this Oz and L. Frank Baum's Oz, as he predicts the arrival of the Wizard in a few years. This link is confirmed when Ozma, the deposed Princess of Oz, is later mentioned. As someone who has read some of the Oz canon outside of "The Wizard of Oz", I was pleased to see this reference. This part of the book ends with the birth of Elphaba's sister, Nessarose. Overall, however, this part of the book seems to take too long to get going, and doesn't really get enough done for the amount of time it takes to do it.

The story then skips, in "Gillikin", to Elphaba's arrival at Shiz University. Within this part, the story of the musical diverges from that of the book by so much that it would be laughable to claim they are the same at all. The storyline in this part becomes too complex for me to bother with describing (though I don't consider this to be a bad thing). One thing that bothered me about this section was that occasionally it got too cutesy, and the dialogue in some scenes seemed very false. It completely drew me out of those parts of the storyline, which were fairly important. The other thing that I began to notice, which was confirmed by the rest of the book, is that religion is fairly weakly drawn. It is too similar to religion in this world to stand independant and be more than allegorical, but yet doesn't really say anything of value about the religion of our world.

In the "City of Emeralds", Elphaba has a love affair with Fiyero, who showed up in "Gillikin". This becomes relevant in the latter parts of the story. I found this section to be enjoyable and readable, my only complaint being that the ending is somewhat ambiguous (though it should be understood that, by this time, I was beginning to tire).

"In The Vinkus" is set seven years on from the "City of Emeralds". I found this part interesting, but it began to drag on. I also found that Maguire kept the happenings of the seven interim years back until they could be sprung at some suprising moment. This didn't really add anything, but just meant that I went back and had to consider the behaviour of Elphaba from the start of this section over again, which disrupted the flow.

The final section, "The Murder and Its Afterlife", seemed confused to me, and seemed to raise more questions than it answered.

To conclude, I quite enjoyed reading this book. However, it always felt like it was grasping for something, whether it be deep meaning, true understanding of camaraderie or Elphaba's mounting frustration towards the end, but never quite grabbing it. It seems to me a lot like Galinda at Shiz University, there's meaning and thoughtfulness in there somewhere but it's virtually impossible to coax it out. I also found that it was leaving a number of questions irritatingly unanswered. These may be answered in the sequels, but I fear I am more likely to read about them on Wikipedia than in the actual works themselves. Overall, though, I would recomend reading this, if only because I'm not sure I'm right.

Posted: Thu, 07 Aug 2008 23:18 | Tags: , , , | Comments: 0 |

Mon, 04 Aug 2008

Review: The Essential Plato by Paul Strathern

"The Essential Plato" is another in the Virgin Philosophers series by Paul Strathern. I have previously read and reviewed (earlier this evening) his "The Essential Confucius", so this review will naturally reference that in some respects.

This book is short, only 56 pages including chronologies, recommended reading and a number of quotations, but Strathern manages to give a fairly complete history of Plato's life, showing how his life affected his philosophy while exploring, albeit in a fairly shallow manner, the core of his philosophy. In contrast to "The Essential Confucius", I know more about Plato's life and works, and so feel more able to say that this book gives a decent understanding on which to base further study of Plato.

Having said this, my one complaint about the book is that despite leaving me interested in studying Plato further, it doesn't really make such further study all that easy. The only help it lends is the 'Recommended Reading' section, which contains five entries with no sort of information about how to read them or which should be read first. I suspect that I will find this problem to be endemic in the series and only failed to notice it in "The Essential Confucius" because I wasn't all that interested in reading anything further.

This book also demonstrates a much reduced level of the issues I had with "The Essential Confucius", which largely boiled down to sacrificing readability in an attempt to be accessible and a seeming contempt for religion and faith. I wonder if this reduction is due to there being a great deal more to write about Plato than Confucius, meaning the author had no need to resort to such things. I suspect also that my increased interest could be traced to the increased content.

Overall, a good book which I would recommend to anyone with a passing interest in philosophy.

Posted: Mon, 04 Aug 2008 01:04 | Tags: , , , | Comments: 0 |

Sun, 03 Aug 2008

Review: The Essential Confucius by Paul Strathern

In this short book (57 pages including recommended reading, quotations and an index), Paul Strathern attempts to shed some light on Confucianism. Being completely uninitiated in the philosophy of Confucius, I am the target market. However, this also makes it quite hard to judge whether or not I have received a good grounding. Strathern seems to do a reasonable job of covering the basics, and I certainly know more about Confucianism than when I picked up the book. Sadly, the author comes across as being too eager for the text to be accessible, with puns and jokes which do nothing but distract. Strangely jarring with this wish to be accessible, he also can't help but take a few needless potshots at religious belief and faith, which I also found distracting. Overall though, a decent book.

A couple of quotes stood out to me. The first, as a fan of The Mighty Boosh,

"To expect a man to do something without the proper advice - this is an outrage."

The second, as a university student,

"It is difficult to find a man who is willing to study for three years without getting a job at the end of it."

Posted: Sun, 03 Aug 2008 22:31 | Tags: , , , | Comments: 0 |

Fri, 25 Jul 2008

Tutor Meeting

As some of you may be aware, I had a meeting with my tutor yesterday to discuss my future following my terrible degree performance this year. The discussion basically broke down in to two categories:
Third Year
Following my performance this year, I have been moved from the four-year MEng course to the three-year BSc course. Furthermore, I have been moved to the pass degree and so will only be required to do 90 CATS in my third (and now final) year, which is three-quarters of the honours degree load. My understanding is that I can still receive an honours degree by doing 120 CATS, but I'm not absolutely clear on this, so need to check.
Year Out
There was initially some confusion as to my eligibility to take an intercalated year, as my tutor believed that pass degree students were unable to do so. Thankfully, this proved to be false. As such, provided both the Intercalated Year coordinator and the Director of Undergraduate Studies sign off, I will be taking an intercalated year next year, working for credativ Ltd. in Rugby. All paperwork on my end has been handed in, so I simply await confirmation from the department.

Posted: Fri, 25 Jul 2008 20:19 | Tags: , , , | Comments: 0 |

A New Blog

So, I have a new blog. I have no idea whether it'll be used more than my previous blogs have been, I just wanted to shift the meagre amount of blogging I do to be self-hosted.

For those who care, it's running on PyBlosxom 1.3.2, using the comments plugin from the contrib tarball. Tagging is provided by the tags plugin from with some minor modifications.

Posted: Fri, 25 Jul 2008 19:57 | Tags: , , , | Comments: 0 |