Daily posts are not interesting, and I’ve got the same problem as Norm, to some degree. I’ve got dozens of projects I’m working on, some of them professionally, so I’m going to try weekly updates, with the hope that with those come progress.


Project S is the company I’ve been working for, for the past year. They have a thing, and I’ll be explaining more about that thing the more public we are about it. The last week I’ve been mostly fixing communication issues with our API server (Beehive) and the Media server (Warehouse). Both are Flask-based python applications backing on to a shared CouchDB cluster, and I’ve been working on getting the transcoding services (Thumbnailing, indexing, that kind of thing) to communicate back to the main systems. It’s uncovered an interesting series of security context issues, and some horrible things around EXIF, where finding out if an image is the same way up it started has become troublesome.

My long running project for the other company continues. There is light at the end of the tunnel. I fear the light, now.

New things? Ansible, this month, and also looking at front-end javascript libraries like KnockoutJS. This year I have learnt a lot about Symfony 1.3. None of it good.


AqWiki Wetired

Over ten years ago, I created AqWiki, a PHP3 based, textile formatted basic wiki system. Originally as a replacement for BrowserAngel’s TCL-based wiki system, it contains structural flaws caused by being written for PHP3, conceptual flaws due to being written by me ten years ago, and security flaws due to being written by me in PHP3 ten years ago. However, one of those flaws is a slightly baroque SQL schema, and so writing an export of it has been hard, and writing an importer for any better wiki software harder still. However, my current saviour is Gollum, which is a git-backed wiki system. So, I have written an exporter for AqWiki to Gollum. It’s not perfect – There are a few formatting inconsistencies, and I need to fix some double-quoting issues – but it’ll get me off my own NiH platform, and into a new and better world.

More usefully, it’s meant digging deeper into gitpython and some more knowledge about how git works internally, which improves my ability to help others get out of git-holes.

Moving My Lampstand

Lampstand is an IRC bot I originally wrote for a channel I was on some time ago. Since then, I’ve taken over as Responsible Adult for the channel, and it’s become somewhere halfway between a utility bot, toy and mascot. It’s also rotting a bit, since the Twisted framework it’s built on never liked IRC much, and I’m using an outdated version. It’s never really needed deep enough development to keep me from working on the live bot, and it’s a toy, but a rewrite of the core is going to involve spreading the parts on the floor a bit and risking oil on the carpet, so I’ve built it a nice Vagrant virtual environment builder, which has the nice side effect of encouraging the people who report bugs and are able to fix them to be able to do so.


Empire Wiki

The empire plot wiki was getting occasional errors, so I bit the bullet and ran an upgrade of Mediawiki on it.

This will teach me to be quite so fucking stupid.

Everything broke, from the custom theme to the database access, the bugs still existed, and the search functionality – using a Lucene backend – was still entirely fucked. So I fixed what I could, ripped out Lucene in favour of the normal mediawiki search (which sucks, but at least was updating) and backed away slowly.

Then backed back in even more slowly when I got more reports of white-outs of death from updating articles. Fuck everything to do with mediawiki, slowly and with corkscrews.


Me and Mr Cooke have been batting around the concepts for a Scifi larp game for a while, and so I decided to put some of my initial thoughts into short textual illustration, which has raised some interest and caused a number of discussions on the metaphysic and how our Sci Fi universe works. Next steps are to turn it from a universe into a larp game, because I don’t have enough of those.