Navigation

User login

Elsewhere

June 19, 2016
by davidc

Acrobat's automatic form generation is atrocious. It inevitably gets almost everything wrong, meaning you have to recreate it by hand. It boggles the mind that it's had the ability to create forms for 20 years now, and still has no way of automatically creating the form from a Word document without a buggy and and half-hearted attempt at auto-detection. You'd think at the very least it would be able to turn Word form elements into PDF form elements, but no.

December 8, 2014
by davidc

qmail-remove provides a means to easily remove messages from the Qmail queue, but restoring messages is rather more complicated. Here is a quick shell script that will allow messages to be correctly restored, undoing the yank.

December 5, 2013
by davidc

Customers wishing to use their own router with VDSL2 (FTTC) services in Germany are hampered by the CPE not supporting PPPoE passthrough, as Telekom limits the line to 1 PPPoE session. The CPE therefore needs to be replaced entirely. This article describes how to extract the login information from an O2 Homebox and then configure a Cisco router as a replacement CPE.

August 23, 2012
by davidc

For my new NAS, I wanted newly-connected USB disks to be automatically mounted and then exported over Samba. Debian's usbmount program is used to handle the mounting, and a couple of scripts handle the Samba export.

September 19, 2011
by davidc

This is a simple multiplayer version of the classic Snake game, developed in 16 hours for the Überall video game party. It features network play, with mobile phone or laptop controllers, for 2-8 players per game. It can also be played with up to 4 players on the local keyboard, or with a combination of both network and local players.

September 16, 2011
by davidc

I've added one more powerup, 'speed', which doubles your movement rate (effectively letting you get extra moves in between everyone else's moves) for 15 moves. Also finally implemented a smart algorithm to determine how many rabbits to spawn and how often to spawn them and the other powerups. Minimum and maximum rabbit numbers are determined by the number of players in the current game.

Added a new skull and crossbones icon besides dead players, keeping their colour (but faded out) so you can quickly see who is dead.

September 16, 2011
by davidc

Lots of tidying up done today, making the game look a bit better. Katia has started working on new snake images to fit the new board size, but they're not done yet.

I've added a new invulnerability powerup, which lets you slither through yourself, other snakes, or bones - but if you're still crossing them when you leave invulnerability, you die. You can still eat friendly powerups in the meantime. You flash faster and faster as your time runs out.

September 15, 2011
by davidc

The client/server protocol is now fully implemented my end. It now sends "prepare" messages with the countdown if they're in the next game, and "play" and "gameover" messages to complete the set.

The game no longer starts immediately on state transition; there's now a six-second countdown with big flashing numbers to give people a few seconds to find their snake. And there's a few seconds to see the scoreboard at the end of the game, before it transitions back to the 'insert coin' state. So now the game can run fully standalone in a loop.

September 15, 2011
by davidc

More of the client-server communication is now implemented. The client is now put into the queue (and sent a message) after they enter their name. The server now broadcasts a 'gameover' to all clients on startup, in case any clients are stuck in the game from a server crash.

The 'insert coin' state now lists players in the order that they joined the queue, and the 'play' state now adds players to the game in that same order.