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…


Remove Textile from a WordPress blog

Here’s a Python script to remove Textile mark-up from a WordPress blog.

Download the script here: untextile.py

Read the rest of this entry »

Comments (5)

Oracle’s ‘proc’ program leaks temporary files

proc is a program that ‘compiles’ Pro*C into C or C++. It’s shocking that a big company like Oracle could produce something so shoddy. Read the rest of this entry »

Comments (5)

Pointless airport security.

So, the ludicrous plot to blow up aeroplanes with bottles of shampoo turns out to be nothing but a paranoid fantasy. Naturally, the hysterical extra security measures brought in as a response to the “threat” will remain in place indefinitely.

Is this an evil plot to further restrict our freedoms, or just stupidity? Or (as my wife suggests) are evil and stupidity just two sides of the same coin?

Either way, who put these nuts in charge??

Comments (3)

Services on AIX

I’ve just spent a rather dry afternoon working out how to create a service on AIX. In brief, AIX doesn’t provide any real support for SysV style Unix services, instead it has its own scheme, which does not use the familiar start/stop wrapper scripts. Read the rest of this entry »

Comments (2)

Identity Theft

Today we hear the BBC has discovered that Facebook apps allow your “personal details” to be “stolen”!!!!11 In reality, it’s always been obvious that Facebook apps can see your whole profile, and anyone can write a Facebook app. Yes, two plus two really does make four.

The real problem is not identity theft, but corporate laziness. I am not my birthday. I am not my address. I am not even my name, or bank account number. I am me.

Read the rest of this entry »

Comments (1)

Mapnik on Debian Etch.

Late last year I went to the Ordnance Survey to see a demonstration of their new OpenSpace mapping service. It was there that I met Artem Pavlenko, who wrote Mapnik. We talked briefly about a few things, one of which was the Boost C++ libraries. I suggested that using such libraries makes software harder to build and install… “Oh no,” he said, “Boost’s all in the header files, so there are no library dependency problems.”

Well that turned out to be a big fat lie.

Read the rest of this entry »

Comments (3)

Person Under a Train

I went into Town today to register as an election observer for the Open Rights Group. On the way home, my tube train shuddered to an early halt in Oxford Circus station. Some poor person had fallen (or jumped?) under the train.

Read the rest of this entry »

Comments (2)

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)