BBC coverage of the UK election results

Despite a 1% increase in their share of national votes the Liberal Democrats have lost five seats so far. The UK's plurality voting system doesn't seem equitable.

Super Mario Galaxy 2 receives an Edge 10

The seventeenth ten out of ten score in the magazine's sixteen year history, and the third to a Mario game.

Horse names based on The Wire

My favourites:

  • You're A Sobotka
  • Fuzzy Dunlop
  • Good Police
  • The Sunday Truce
  • Oh, Indeed

Ars Technica review Alan Wake

Ben Kuchera reviews the highly anticipated Xbox exclusive. It sounds like a really interesting game.

I am no doubt doing the game an enormous disservice but I think that the plot can be summarised in one sentence: Steven King goes on holiday to Silent Hill.

Google Chrome speed tests

Google are producing an advert for Chrome where they compare the speed of their browser to extremely fast real-life events, such as bolts of electricity and the speed of sound.

It looks like this would have been amazing fun to make!

There is an accompanying blog post.

Raganwald: Demo or Die

Reg Braithwaite has a posterous! His first post, Demo or Die, seems more inline with his 'Raganwald' blog than homoiconic:

There's nothing like a demo with a date attached to really focus your efforts. Even if progress is slow, a weekly demo establishes a heartbeat, a kind of informal iterative development process.

11 fake Harry Potter books

China is famous for many things — the Great Wall, ancient dynasties, a communist doctrine that combines elements of marxism and free market economics and, of course, fake Harry Potter books. has compiled a list of eleven Chinese bootleg books, including:

  • Harry Potter and the Leopard Walk-Up-To Dragon (in which the Hobbit is retold with Harry as the central character)
  • Harry Potter and the Chinese Overseas Students at the Hogwarts School of Witchcraft and Wizardry (which kind of explains itself)
  • Harry Potter and the Half-Blooded Relative Prince (which sounds similar to an actual book in the series, however in this book Harry is the villain)

Route planning in Introversion's new game

Route planning in Subversion

Subversion uses blueprint-like graphics to simulate a world in which you play a team trying to infiltrate buildings.

This is the first footage that they've released and accompanies a post where developer Chris discusses how he decided on a pathfinding algorithm:

Writing a system wrongly is often the best way to learn how to do it right.

Path finding has been a great example of this. I've written two pathfinding systems in my life : one for the static world map of Defcon, and another for the numerous maps in Multiwinia. Both games used a pretty crude method which I was never entirely happy with, solving route-planning the same way the internet routes messages between distant routers, and for Subversion I knew i'd have to solve it properly.


The world is rasterized onto a 2d grid. Walls produce solid grid cells that cannot be walked through. Navigation uses A* across the grid. It does use a lot of memory and there's a practical limit on how large the world can be, but it's perfect for Subversion. It can support dynamic scenery such as using shape-charge explosives to blow a hole in a wall (you simply change the relevant cells in the 2d grid), and it can support dynamic obstacles by simply rasterising them onto the same grid. Best of all, producing the 2d grid is extremely fast and error tolerant - I basically don't need to worry about navigation again.

There's more detail in there about optimisations they've used which help you appreciate what's happening in the video.

Started SICP

Today was a public holiday so after a nice walk this afternoon I decided to start reading Structure and Interpretation of Computer Programs (I'm reading the hard copy). I'm only at the preface to the first edition, but a passage stood out for capturing something I've wanted to say for a while:

First, we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.

Any programming language is capable of performing exactly the same tasks as any other programming language. So why don't we all use COBOL, or assembly, or binary?

Because different programming languages are suited to articulating solutions in different contexts.

A robot that balances on a ball

I love this little guy!