Archive for Normal

Republic of Rome: Cheat Sheet

Republic of Rome is a great boardgame. Or at least I think it is — I’ve never really been able to play a proper game. The rules are so complicated, and so badly written, that I’ve never really felt I understood them. So, I decided to write a cheat sheet. One that would be useful for someone who is trying to learn the rules while playing their first game.

Republic of Rome: Cheat Sheet (PDF)
Republic of Rome: Cheat Sheet (Open Office)

Read the rest of this entry »

Comments (2)

An interesting day for Copyright.

The UK’s Digital Economy Bill will introduce the concept of orphan works which may effectively abolish copyright on most photographs. Is this a foretaste of the future copyright in general? Read the rest of this entry »

Comments (2), hmm… is a price comparison web-site. They gather lots of information about you, and offer no way to cancel your account. They also take the opportunity to spam your e-mail address with lots of unrelated offers.


Comments (2)

Powers of Arrest


Double-Glazing Film

I’ve just added double-glazing film to the windows in our hall, landing and living-room. It’s fantastic!

The windows in our house are the original single-glazed wood frames. We’ve kept them for three reasons – we like them, they’re in good condition, and all the advice suggests that new double glazed windows are bad for the environment, and not cost-effective.

The glazing film is really cheap though. It looks virtually invisible and it has made a huge difference to how warm our house feels. It’s fun to put up too – you stick the film around the window and then stretch it flat by heating it with a hair-dryer.

So, double-glazing film for the win!

Comments (6)

WordPress Multi-Widget

I’ve decided that I hate WordPress’ multi-widget “API”, so I’ve written a cleaner interface for it: class MultiWidget

Read the rest of this entry »

Comments (12)


The Monkeysphere project looks interesting. It basically integrates ssh authentication with the OpenPGP web-of-trust. So a server admin can create an account for a new user with only his OpenPGP identity – basically just an e-mail address. There’s no need to have a separate ssh public-key – the PGP public-key is used instead.

Why is this interesting? Well, it sounds like it might become a single-sign-on arrangement that’s actually useful. Microsoft’s Active Directory is widely used in business, and offers administrators an easy life that’s hard to reproduce in the Unix world. That’s partly for technical reasons (open source LDAP servers are hard to set-up) but also partly due to a different focus: AD requires a central authentication server, an idea that doesn’t fit well with the distributed nature of many open-source projects. While AD is top-down hierarchical, Monkeysphere seems to be much more freewheeling and democratic.

Secondly, it’ll encourage people to actually start using the OpenPGP web-of-trust infrastructure. It’s been possible to send and receive encrypted e-mails for well over a decade, yet encryption remains a backwater. I’d love to be able to discard all unsigned mail – that would eliminate my Spam problem overnight.

I can dream, can’t I…


libhex v0.2.0

I’ve just uploaded a new version of libhex, my library for manipulating and drawing hexagonal grids. It’s available in C++, Python and JavaScript.

[docs, source, examples: C++, Python, SVG]

I’ve redesigned the SVG output interface. The crazy templates are gone. It’s now just a set of simple functions. SVG output is no longer flipped either, so it’s easier to add text.

I’ve also added routing algorithms: find best path, find movement horizon given a movement budget. Using the library for a game, you need to know where a piece can move. The hex::move namespace defines a “Topography” class which enables you to model movement costs within the grid. Then it will calculate the best path from one hex to another, or tell you how far a piece can get with a given movement budget.

As always, please, please try out libhex. Let me know how you get on.

Comments (4)

A hex map of England!

I’ve been using (and testing) my new hex-map library. Here’s a map of England.

Hex map of England

It was generated by a little program that uses NASA’s SRTM data as input. The light brown hills are just high ground, but the dark brown hexes are both high and hilly – my program samples the elevation, and calls a hex hilly when the elevation’s standard deviation rises above a set limit. The rivers are drawn by selecting sample locations and then finding an optimal route to the sea. The routing is done with something like Dijkstra’s algorithm – it mostly wants to go downhill, but will jump over small rises if necessary to get to the sea.

The rivers look plausible, but there are quite a few problems, if you look closely. For example the Welsh headwaters of the Severn flow North into the Mersey on this map, but in real life they turn South.

Anyway, the map looks pretty good. It’s certainly good enough to form the playing surface for my online game (don’t ask). Writing the program was way more interesting than generating maps by hand. I only found a single bug in libhex, which is heartening.

Comments (5)

libhex v0.1.0

I’ve just uploaded the first draft version of libhex, my library for manipulating and drawing hexagonal grids. It’s available in C++, Python and JavaScript.

[docs, source, examples: C++, Python, SVG]

Read the rest of this entry »

Comments (2)