On this page, I'll discuss the use of a few handy applications, as well as presenting some of the programmes I wrote in my younger days :)
You can check out my first few Java applets on my page The RSA Code.
Or, more precisely, the 48 Ceremonial Counties of England. As with most things English, the notion of a county is simultaneously ancient and ever-changing. Currently, there are two useful notions of Counties, the Ceremonial Counties and the "Metropolitan and non-metropolitan counties and unitary districts", the latter numbering 82.
The MANM Counties and unitary districts are administrative divisions in local government and include such oddities as Warrington, Medway, and Halton, to name but three. Conversely, the 39 Historic Counties include sadly defunct entities such as Middlesex and Huntingdonshire.
The Ceremonial Counties occupy a sane middle ground between the two extremes. They are characterised by each having a Lord Lieutenant appointed to them. For instance, the current Lord Lieutenant in my county of Oxfordshire is Hugo Brunner JP. The Lord Lieutenant is the representative of the Crown in their lieutenancy. As such, their most important duty is to escort members of the Royal family on visits to their county.
All this is apropos of a little online quiz I've made to test your knowledge of the ceremonial counties. Do click the link if you're interested!
Update! I've now written a version for our friends across the pond. So please try out my 50 States of the USA quiz.
GnuPG and Friends
Installation of GnuPG
GnuPG is the GNU Privacy Guard — an open source replacement for PGP. GnuPG can be used for encrypting and/or signing emails and other documents.
First you need to download a copy of GnuPG, verify its authenticy, then install it. The instructions for so doing are to be found on the GnuPG website.
Having installed the software, I recommend adding GnuPG to your
%PATH% environment variable. To do this, right-click on "My
Computer", select Properties, then Advanced, then Environment
Variables. Add (if it doesn't exist) or Edit (if it does), the User
Variable "PATH". Add the value
Files\GNU\GnuPG. You may
now access gpg from the command line.
Your personal data will be stored in
if your username is Bob, the personal data will be stored in
C:\Documents and Settings\Bob\Application Data\gnupg.
If you already have some keys from another installation of GnuPG
(which will be found in files called
pubring.gpg), you may import them with
If you don't already have your own keys, you'll have to generate
them with the command
gpg --gen-key. Follow the
instructions. I recommend generating a key-pair which doesn't expire,
though this can be changed later.
Make your passphrase fairly long!
Your key is useless unless you can share it with others.
One way to share your key is to use a keyserver. First find the keyID
of your public key with
gpg --list-keys. The keyID is an
8-digit hexadecimal number. The keyID for one of my public keys is
CC144DA2. We'll use this in the following examples.
Before sending the key to a server, it's a good idea to create a
revocation certificate. You'll need this if your key is every
compromised. The revocation certificate is used to inform a server
that the key has been revoked. The syntax for the creation of a
revocation certificate is
gpg -a --output filename
We may now add our public key to a key server. Here is the command:
gpg --send-keys --keyserver pgp.mit.edu CC144DA2
Now we need to do something useful with GnuPG! I assume you're
using the Thunderbird/Mozilla email client. Find and install the
enigmail extension. The only setup required is to tell enigmail where
to find GnuPG. Close down and restart Thunderbird (if you haven't
done so already). Loacte the OpenPGP menu and select Preferences.
For the GnuPG executable path, enter
Files\GNU\GnuPG\gpg.exe. It should be fairly clear how to
Fingerprints; the Web of Trust
I mentioned that a key pair is only useful if the public key is shared. However, you need to ascertain that a key you find (from a keyserver, for example) really does belong to the person it claims to. This is where fingerprints enter the picture.
Each key has a fingerprint associated with it. If you download a
key, you can contact the key's owner in person to find out the key's
fingerprint. If the fingerprints match, you can be almost certain
that you have found a valid key. You can find the fingerprint of a
gpg --fingerprint keyID. Once you are
certain of the authenticity of a key, you may sign it with your
own secret key. Having signed the key, you may send the updated key
to a keyserver (note, you will be sending someone else's key to the
Anyone who subsequently downloads the key from the server will see that you have placed your seal of approval on the key. If they have a validated copy of your key, this may give them some level of confidence that the key is authentic, without having to check the fingerprint themselves. In fact, GnuPG has a built-in system called the web of trust which automates this process to some extent.
For more information on these issues, please refer to the GNU Privacy Handbook.
A 'game' I created using blender. There is no actual goal in the game, but you can move around by using the cursor keys, the A and Z keys and the space bar (should be easy to figure out what the keys do!). This game is in the form of a zipped Linux and Windows binaries for x86 machines.
This is a patch for the spcaview webcam software for linux. The patch provides an automatic brightness adjustment facility. Installation instructions are included.
Update: the patch has now (as of 17/08/2004) been applied to the official driver.
This is a patch for the camserv webcam server for linux. The patch improves the speed performance of the autobrightness code. Installation instructions are included.
This is my first internet program. It is an internet version of a children's game of a similar name. A help system is provided. (Please read the README file for instructions). Important note for Windows Users!! The Windows version of konnect4 needs a dynamic link library called cw3215.dll. This file is distributed with the zip file and the self-extracting archive. If konnect4 is to run properly, then cw3215.dll must be in the current directory (i.e. the directory which konnnect4 is run from), a directory in your PATH, your Windows directory or the System subdirectory of your Windows directory
This programme could be viewed as a heat flow or diffusion model, but, more realistically, it just draws pretty pictures. The source code is in C, but I'm not giving out the source code for this one, as it evolved, rather than being planned, so the code is almost as untidy as my bedroom. (N.B. This is my personal favourite)
In the UK, there's a popular television quiz program called
Countdown. One of the games on the show is the
numbers game. Seven numbers are chosen pretty
much at random, and the contestants have
to form the seventh number by means of
arithmetical operations on the first six
numbers. For instance, if the seven numbers
were 5, 3, 4, 8, 25, 50 and 657, then you'd
form the answer as 657 = 4+3+50*(5+8). My
programme takes as its input the seven
numbers, then tries to find an arithmetical
expression involving the first six which gives
the seventh (i.e. it solves the
Note : This programme is for PC's running Linux.
Note also that my program is very slow :( There are much better implementations to be found on the web, e.g. look up Thaddaeus Frogley on Google.
This is a simple C++ programme which displays a fractal known as the Mandelbrot set. There are other programmes out there which do the same thing much faster (eg. FractInt), but I haven't got any of them. If you really want the source code for this, or any of the sequel, email me. (btw. the menu options for loading images and displaying instructions have not been implemented yet (and probably never will be.) sorry.)
Rerverse Polish Notation Pop-Up
This is rather an odd one, and only for hardened DOS
rptsr is a scientific
calculator pop-up, though it does require the
user to enter expressions in reverse polish
notation (no, I don't know why it's called
In reverse polish notation, the arguments of an operation always preceed the operator. For instance, where one would normally write 3+4, in reverse polish notation, we write 3 4 +
Get the idea?
As a more sophisticated exmaple, consider the following:
- (4 * (2 + 3)) ^ sin(9 + 10)
- Which becomes:
- 2 3 + 4 * 9 10 + sin ^
This one is for Windows 3.x or later, and is a graphical version of the reverse polish notation calculator. Nuff said.