Oh snap! We just showed you a modal..

Because we can

Cool huh? Ok, enough teasing around..

Go to our W3.CSS Tutorial to learn more!


Jon Bray


Amateur Programmer

Piano Torturer

Ruthless stealer and inept breaker of W3C's website templates.

Vet Web Apps

(Work in progress!)


Veterinary Calculator

Since before I qualified I started writing a program to allow me to quickly calculate drug dosages and the like without risking errors. It started on a Psion Revo (aww!) and progressed to a desktop version written in VB6.

The latest iteration is web-based and features over twenty calculators / reference tools; I use it every day and it saves me loads of time.


History/Clinical Exam recorder

It's all easy when gathering information in a hurry to forget to check something which may later turn out to be vital. VetForms' intention is to provide aides memoire for common consultations. It also has forms for less commonly done tests such as neuro and ophthalmology exams. Output is to a textbox which can then be cut'n'pasted into your PMS.

EDIT: Currently VetForms is well and truly broken - my intention is for the output to be in prose, and in my attempts to get it sounding more natural I started again almost from scratch. Now beginning to wish I hadn't bothered as the original version sort-of worked...

Cash/Pill counters

Count cash/pills by weighing them

This should be fairly self-explanatory - because coins have a pretty reliable weight it is possible to work out how much cash you've got by weighing them. Sadly you do have to separate the different coin types out first of all. There are versions for the UK, US and EU

The pill counter works in a similar way, but the tolerances are a bit smaller on pills and the individual weights are also much smaller, so it won't get the number exact all the time when you're counting lots of small tablets. It's also very unlikely that your practice will have exactly the same stock list that ours does, so my suggestion would be that you copy the file to your computer, open it in notepad and change the data to suit you. Once you've got it working it does make stock taking much faster!

Windows Programs

This looks at the windows you have open every 30 seconds and tries to categorise the important ones into games, work etc, so you can develop a record of how much time you've spent doing what.

It should be very useful for professionals who are required to record their continuing training, but tend to do it on an ad-hoc basis from their computer and may not otherwise be good at recording it.

It will require a small amount of configuration to be useful to you - please read the readme.txt file and then edit the filters.txt file before use.

Over the years I seem to have accrued lots of little programs on my machine which get very lonely cooped up on that nasty cold hard drive all day - they prefer to jump into my computer's memory as soon as it boots up and then stay there. Admittedly the majority don't take up an awful lot of processor time or memory most of the time, but they can cause problems when I want to do something memory intensive like playing a game.

Chomper looks through "chomper.txt" (which must be in the same directory as the "chomper.exe") and attempts to shut down any program it finds there. Its not particularly polite about doing so, taking the "yank the chair away" approach rather than the "please get down" approach, so you would for example not be advised to put word.exe on the list unless you really feel your fingers need the retyping.

Currently Chomper can't shut down any process started by the SYSTEM user, which is rather a pain (my Lexmark drivers and AVG both run under this, and the latter in particular is not the sort of thing you want sharing processor time with UT2004). I'm looking into this - watch this space.

This is a little applet which sits in the tray and measures your typing stats, namely

- Typing speed (number of key presses which aren't delete or backspace)

- Accuracy (based on proportion of key presses which are delete or backspace)

- Activity level (based on the proportion of time you spend typing something)

Keyspy is also a key logger, but not a very accurate one! I think my reasons for putting in the logging code was firstly to see how easy it was to do and secondly as a generalised backup function; I forget now - it was years ago. I promise that it doesn't send any information off your computer!

This program just renames the files in a directory so that they start with a capital letter and continue with lower case.

(Yes, yes I am anally retentive. :-) )

The basic idea of this program is to record your daily activities and food intake and thus work out your energy balance.

It also allows you to record "nice" things you've done and weigh them against "naughty" things you've done, should you be so inclined, to try and keep a healthy balance. And as of January this year it also contains a to-do list (I've just started using it with Desktop Delta to show a task list on my desktop)

It is designed to import files from the US Nutrient Data Laboratory, as this has masses of nutrient information for lots of different foods. You can add your own from the back of the food packet but in the UK at least this information is fairly brief.

Binary clocks are two a penny but most geeks know how to read them by now. This one is actually easier to work out when you know the secret.

Right clicking on the display turns it to a normal window which you can drag and resize; right click again for all the transparenty goodness.

This is inspired by the one sold by ThinkGeek which has a solution for those of you too lazy to work out how to read it.

Requires the NET framework (which most computers will have these days)

This is about as simple as it gets. Alarm plays an alarm at a specified time.

If you don't like the alarm included, put a WAV file called "alarm.wav" into the same directory as alarm.exe and the program will use that instead.

Check out Wakey for something a little more complicated.

This is a pretty small application designed to change your wallpaper for you.

Yes, I know there are other wallpaper changers out there but most of them appear to remain in memory after running, taking up resources (or at least cluttering up your task manager).  Once Desktop Delta has done its job it exits until the next time you call it.  There are three basic ways you can use the program:

1.) Just put it in your startup folder to start each boot with a new wallpaper.

2.) Schedule a job so that it runs every x minutes.  An example job is included in the ZIP file - just put this in C:\Windows\Tasks and edit it so that the username and password are valid.

3.) Add a shortcut key combination (I use ALT-CTRL-W 'cos that's what WebShots used) so that you can change the wallpaper whenever it takes your fancy.

You need to put Desktop Delta into the directory with all your piccies and run it once to create the list of potential images (if you have several such directories just move the program into each directory, run it, then merge the resultant piclist.txt files into one using notepad).  If you then open up piclist.txt you'll find that there is a "Y" at the first column of every line.  Rather than deleting pictures you don't want to use as a background you can just change this to an "N".

If you're feeling adventurous have a look at screen.ini, which allows you to set up extra info.  The file format is as follows:



X=Degree across screen of text start point, as a percentage of total screen width

Y=Degree down screen of text start point, as a percentage of total screen height

S=Font size, where size 1 is about as small as it is comfortable to read and going up from there.

R, G, B=The Red, Green and Blue parts of the font colour respectively.  Range is from 0 to 255.  So 0,0,0 is black, 255,255,255 is white, 0,255,0 is bright green etc.

C=Command.  This can be either any text you wish to put on your screen (e.g.: "Don't forget Mum's Birthday Fri") or one of the following special commands (note you need to enclose them with @ signs).

@TITLE@ - The title of the current picture.

@SDATE@ - The current date in short format (e.g. 2008-01-27)

@LDATE@ - The current date in long format (e.g.: Sun Jan 27, 2008)

@QOTD@ - Displays a random quote from the included qotd.txt file.

@FILE:<filename>@<startline>@<numberoflines> - Displays lines from a text file.  <Filename> should include the full path, <startline> should be the first line you wish to include, and <numberoflines> should be the number of lines you wish to include.  e.g.: @FILE:C:\hosts.xml@1@5@ would display lines 1-5 from C:\hosts.xml, assuming such a file exists.

I love my alarm clock's snooze button far too much.

On workdays its not too bad - I know roughly the latest time I can get up and still get to work on time.  On weekdays I can press the "Go on, just have another nine minutes" button literally for hours and hours, driving my partner to distraction and making me waste most of the day.

Wakey works a little differently. It plays WAVs, MP3s or Windows Media Player playlists - up to three per day and each at a specified time (it actually looks for WML files first, then MP3 files and lastly WAV files.  All the files must be in the program directory and called alarm1, alarm2 or alarm3).

Currently I've got mine to wake me with a cockerel crowing (alarm1.wav) followed about five minutes later with an ambient music playlist (alarm2.wpl); the stabbing theme from psycho (alarm3.wav) comes in on a loop about twenty minutes later if I haven't got up and turned it off by then*.

You can also tell Wakey to shut the computer down after a specified time if you like - I use this to add a "sleep" timer to Windows Media Player.


(*In case you were wondering about the logistics of this, my computer has a secondary speaker output to my bedroom via wires through the loft, and my speakers are on a timeswitch so that I can't hear the low hum they sometimes make and don't get woken up by them talking to my mobile phone at 3am.  My computer's BIOS wakes it up in time for it to have booted up a good few minutes before the earliest wake-up call I get, and my computer is set to log on automatically (see below).  I've got a schedule set up for each day to start Wakey running at the right time, although I could more easily have just put a shortcut to it in my startup menu).

To get your computer to log on automatically, open up the included REG file in notepad and alter it so that your Username and Password are correct, then save it; double click and confirm that you want to add the data to the registry.  Don't do this if you don't trust the people that have physical access to the computer not to do bad stuff with your workspace, though!

This is a relatively simple dice roller, modified to simplify the calculation of stun/kill points in "Champions" but perfectly useful if you don't require this addition.  It also utilises basic encryption to allow players in a PBEM game to make their own dice rolls, but send the result to the GM with an embedded validation code.

(The validation lacks a few key features which I will rectify some day when I'm really bored; don't trust it utterly for now)

This program allows you to create picture-based tests.  It was originally designed to test map locations but it could conceivably be used for other pictures.

There are two test modes - either it shows you the location and you select the name from a list, or it shows you a name and you try to click on the location.

Each overlay (ie group of questions) has its own tolerance level (because you might need to get quite close to select the right town, for instance, but if you're clicking roughly in the middle of a long mountain range you want it to be able to tell you know what you're talking about if you get slightly off dead centre).  To alter these, right click on the overlay and change the number (where 1.00 means a tolerance radius of 100% of the screen width (which would be a bit easy).

The program uses the GIF picture format.  It makes more sense to use a solid "base" and then (if you wish) several transparent overlays - you can turn these on or off to reduce information overload.  Take a look at the example UKMap test to see how naming the maps work.

If you create any maps of your own please send them to me and I'll include them on my site.

This won't be of much interest to most people, but if you own a pool or spa and have problems with maintaining water quality it could be invaluable - some of the maths required is a right royal pain in the arse if you're not used to it. 

The program also allows you to graph levels of the various chemicals over time (this does assume of course that you have the apparatus required to measure them).

Little disclaimer here.  Although the chances of something going wrong when you use this tool correctly are far lower than if you do the maths yourself (given that unless I'm using an original Pentium I only need to get the maths right once in the code and you have to do it each time) do NOT blame me if you jump into your nice new pool and come out with no skin.

(My old practice used it for a hydrotherapy pool for at least a year with no problems).

This is a spaced repetition-like program, designed for revision. I say spaced repetition-like because I'd not come across the concept when I wrote the program but independently came up with something quite similar. Dataplex works fine, but these days the likes of Anki are slicker and have the advantage of being cloud based - the latter is what I'm using now.

Other Projects

Just a little app to quickly work out whether the correct ports on your computer are accessible, for anyone who still tries to do internet gaming without using Steam :-)

Go there!

I've spent a lot of time playing Rifts - it was great when I started Roleplaying at it was quick and simple, and as my RP group has got to know and love the scenario we got increasingly irritated by the shitty ruleset. This goes just a little way towards trying to fix a couple of those, notably staggering the turns in a round so you don't have the Juicer getting three attacks while no-one else can move, and making falling damage more realistic.

Go there!

An android app which turns your headphones into an emergency pull cord, sending a text or or email with a distress call, your current location and a link to an updating location plus uploads of recorded audio until cancelled. I had high hopes for it, but due to the way google play works it has been languishing at the bottom of the list where nobody can find it, so please try it out, give me positive feedback (or constructive criticism) and spread the word if you like it.

Go there!