Alasdair North’s Projects

What I get up to when I have a spare moment

Sometimes I like to play with stuff in my spare time. Most of this never gets finished or released. I do the fun/interesting part of the software and then can't be bothered to make it into a proper thing. What you see below are the projects that have actually been finished and could be useful to someone else.

Most of the stuff I write in my spare time is written for fun or to get a job done, rather than to be elegant or robust. I wouldn't say this represents the best of my programming, or even the best way to get a particular job done.

Questioning Faith

A simple website presenting questions about Christianity

Back in 2011 I helped out with the youth work at a church conference. Part of the programme was “the question box”.

This was exactly what it sounds like. The teenagers would write questions about some part of Christianity and put them in a box. We’d then do our best to answer them.

I hope that my answers helped the young people explore their fledging faith. I certainly found the whole process great for making me think about all sorts of nooks and crannies in my knowledge and opinions of God. Being put on the spot like that forces you to articulate what you really think and feel.

I kept all the question cards that the teenagers wrote and I made a website with some of them on. The idea is simple: run through a few questions and see if you can put your own answer into words. Try speaking it out loud if you find that helpful.

RTM Bulk Add

A website allowing you store lists of tasks and add them to Remember the Milk all in one go

One of the features missing from the excellent Remember the Milk is the ability to store sets of tasks that you might want to add every so often.

For example, every few days I want to add these tasks:

  • “Washing - put on” for today
  • “Washing - hang up to dry” for today
  • “Washing - put away” for tomorrow

It doesn't happen after a regular number days so I can’t use a repeating task, I just need a way of keeping a list of tasks somewhere that I can submit to Remember the Milk with one click.

I've written a little webpage that fills this gap. It hooks in to Remember the Milk's API in order to submit your lists simply. You can even use RTM's smart add syntax to attach due dates, tags, etc.

SGMLReader backport

A backport of SGMLReader to .NET 1.1

SGMLReader is a library for converting sloppy HTML into valid XML. I needed it for a project at work, but Insight was written in .NET 1.1 so I needed this to be .NET 1.1 too.

I hope it will be useful to someone.

The Insolator

A Java program for calculating the insolation at a particular place over a series of months/years/millennia

This program outputs a CSV file giving insolation in watts per square metre. This can be given as averages over different time periods for a particular location.

This is a port of three Fortran programs available on the NASA website. These files are included in the source code in the docs directory

The NASA programs are based on a couple of papers by Andre L. Berger - 1978, "Long-Term Variations of Daily Insolation and Quaternary Climatic Changes" and May 1978, "A Simple Algorithm to Compute Long Term Variations of Daily Insolation".


A Wintersmith plugin for processing CSV files

A plugin for Wintersmith, the static site generator that powers this website.

CSV files will be served as normal, but they're also parsed and the data added to the content tree for other pages to use.

dead - doesn't work any more

Good Food ProPoints

Calculating WeightWatchers ProPoints for recipes on the Good Food website

A Chrome extension that uses nutritional information on the Good Food website to calculate the ProPoints for recipes. Useful for anyone doing WeightWatchers that wants to eat tasty food.

dead - doesn't work any more

Listening Room Add-ons

A Chrome extension to enhance the UI of Listening Room and add integration

Listening Room was a great website that allowed you and a bunch of other people to upload music and listen to it simultaneously in your own named room. When it was in its infancy Ryan North tweeted about it and a group of fans of Dinosaur Comics checked it out. We played music almost constantly in one of the many rooms on the site.

When it was in its first incarnation I wrote a few user scripts to add features to the UI. Listening Room then went away for a few weeks and came back with a new interface which broke most of the scripts. I took some of the functionality of those scripts and created a Chrome extension.

This extension added support for scrobbling to as well as a few extra UI widgets. It also sent data to my server in order to build up charts for each room. This data was available via a JSON API for those who wanted to play with it in some way. At its peak the extension was used by about 400 people.

Listening Room shut down in December 2011 and so this extension is now unusable, but the source code might be interesting to someone. There's also a dump of the data available on my blog.

dead - doesn't work any more


An art project that generates a personal manifesto from your twitter feed

A product of the Digital Sizzle Arthack, Mashifesto creates personal manifestos from scrambled fragments of an individual's tweets.

What would future archeologists make of us as an age through the digital data we've left behind? What remnants would they discover and, in piecing these together, what potential misinterpretations could be reached?

Just how wrongly would we be represented through what we've willingly and unwittingly shared?

The mashifestos will be a series of auto-generated propaganda-style prints that, despite being a mashup, will make sense. These could be distributed and stored for our post apocalyptic selves to uncover and decipher… perceiving the mundane as profound.

dead - doesn't work any more


A key/value datastore for simple web apps

Quolace is a key/value store for simple, single-page, web apps. You simply add the library to your page, hook up all the get and set commands, and your users will be able to use their data and settings on whatever computer they want.

The server is written in Python and runs on Google App Engine, and there's a client library available as well as documentation and a demo app.

dead - doesn't work any more


Augmenting documentation with data from Stack Overflow

StackDoc is a Chrome extension that adds lists of relevant Stack Overflow questions to documentation websites. The hope is that these questions will fill in any gaps in the existing documentation.

It's quite early days and so only Microsoft's MSDN documentation for their .NET libraries is currently supported.

dead - doesn't work any more Loved Lister

A simple web app for managing loved tracks on

Lists loved tracks along with links to buy albums by that artist. Once you've got an album by them, or have decided that you don't want to fet one, you can hide the artist so they are removed from the list. Uses Quolace to store the list of hidden artists.

dead - doesn't work any more

A super simple postcode lat/long API

You can get the latitude & longitude of any postcode as a JSON file by appending it to

  • The space in the middle of the postcode must be removed.
  • All characters must be uppercase.

e.g. CB24 9PT =>

dead - doesn't work any more

A toy website that says when dawn is

This is a website that I wrote in order to play with a couple of APIs. It gets the user's location using the JavaScript geolocation API (or works it out from the user's IP) and tries to give them the correct time for dawn in their local timezone.

Yes, it really is that pointless, but it gets more traffic than most of the other things I've built.