I had a mysterious error in a project in Go:

myproject/types.go:89: fmt.Println not used

If you declare a variable or import a package in Go, that’s a compiler error. Good thing too, in my opinion. But this one was puzzling. It wasn’t complaining about an imported package, it was complaining about a function within a package. As far as I’m aware, the syntax of Go allows only for importing a whole package (or sub-package) at a time, rather than members of that package (as Python does).

The odd thing was that the error was reported on the last line of the file. The entire contents of that line was:

}

Read more →

I love going out on my boat and I do it as often as I possibly can. Unfortunately the recent rain has meant that I’ve been unable to as often as I’d like. If the current is too fast, it’s not sensible or safe to do it. The Environment Agency has an excellent site which gives live information. But I wanted to put it on a map. Cue an evening of hunting down coordinates of every lock on the non-tidal thames (Google data is surprisingly bad) and writing an app to take data out of the online service and put it on a map.

Read more →

I have been a devoted fan of Jaga Jazzist, a Norwegian group (they pretty much defy description) since around 2003, when I heard one of their tracks on a sampler CD issued by the Norwegian Embassy in London. This is the third gig of theirs I have been to. The first two were in the normal venues you would expect, with a lot of space for movement in response to the music.

Read more →

One of the great things about my workplace is that we have unlimited peacocks at our disposal a number of my colleagues are qualified peacock-ologists Here’s a short video of just one of the peacocks, along with some commentary about their feeding habits and behavioural characteristics (something about baked beans, pretending to be a bike and the thing from Jurassic Park, I don’t know it went over my head).

Read more →

I live not far from the spot where Hussein Mohammed jumped in the Thames and drowned. Local youths have spray-painted their tributes in the underside of the bridge. Touching.  

Read more →

Respect the aeropress. If you don’t pay it enough respect it will explode, sending coffee EVERYWHERE. STOP PRESS Not wishing to be outdone, the Gaggia espresso machine had a go too. I should add that this happened to a colleague.

Read more →

I’m working on a Django app which is able to serve content on a number of subdomains. The app has a number of sites, which appear as subdomains of the main domain. There’s some middleware to look things up from the request and do the right routing.

In the wild the subdomains will be done with DNS, but for local development, I’m creating entries in my /etc/hosts such as demosite.local, using .local as my ‘main domain’ locally.  After a colleague integrated some authentication code, I suddenly found I couldn’t log in on my development environment. It didn’t work with either the custom login screen or the Django admin. Very odd.

Read more →

Came across this when deploying a Django app to a fresh VM, installing with Python PIP from a requirements file.

Read more →

I have been banging my proverbial head against a brick wall (or my actual head against a proverbial wall) for the best part of a few days, on and off, trying to find the cause of an inconsistency in behaviour between Safari and Chrome in a Facebook canvas app.

Read more →

In the week after the engine came out, I was left with access to my bilges. These are usually hidden away behind an unmovable wooden wall, with access blocked by the engine. As far as I can tell these had not seen the light of day for two decades (my boat was built in 1993 and there are no signs of the engine having been out since then). It appears that they weren’t even painted, or if they were, there’s no paint left.

I was appalled at the state of them, frankly. The rust was thick, and not in a good way. My boat is my home, as well as my boat, and the sign of that much rust really wasn’t a very comforting thought.

Read more →