I have made and written many things, and most of them are of little interest, as I am but a hobby programmer and general all-round nerd. A few of them have reached the point of being actually functional and useful though, so I share them here.
This site is written using Gemtext and hosted on both Gemini and HTTP protocols. Gemini is a web-lite protocol created out of a nostalgia for what the web once was, intentionally constrained in a way that strongly favors text-heavy content and makes bloated design a technical impossibility.
A collection of music, all of which was recorded prior to 1963 and so is public domain under the law of the UK where this site is hosted. The copyright term for music was extended from fifty years to seventy under the "Copyright and Duration of Rights in Performances Regulations 2013." This law did retroactively extend the terms of sound recordings which had yet to expire, but did not re-copyright works which had already expired - therefore all of these files are public domain.
The MusicMany years ago, some friends and I were avid players of Unreal Tournament 2004. I made a few mods and levels for this game, which I share here.
Mods and levelsA file optimisation utility. You give it a set of files and (under default settings) it will make them more compact without any loss of quality. It does this by a combination of re-structuring common file types more efficiently and by the de-compression and then re-compression at more intensive settings of compressed data. Much of the actual re-compression is handled by utilities written by people smarter than me, but minuimus serves as a wrapper making the process simpler and automated. It will hand such tasks as decompressing an archive, processing each file within, and then reassembling the archive.
It does support more more aggressive, non-transparent optimisations, which must be expressly invoked.
MinuimusA duplicate file finder. It constructs fingerprints for each file and compares these, locating files which contain strings of data in common even if the files are not identical. It will identify, for example, multiple ZIP archives containing the same file, or the same music encode with different metadata. The techniques it uses are entirely generic and not specific to any one file type.
ConferoRecursively hashes a folder and produces MD5 hashes of all files - dupdelete is a program I wrote a very long time ago when MD5 was still in common use. Can then hash another folder recursively, and e delete any files which match a hash on the list from the first execution. A handy tool for removing the 'already done' files from a 'to sort' folder. Can also cache known file hashes so there is no need to re-hash them every run.
This used to be used in a school together with a list of pirated music, games, uneducational fluff and other inappropriate material to purge the student documents of such clutter and highlight any finds to the administrator. Sadly the rise of chromebooks makes this more difficult now.
DupdeleteA very old utility that just decodes the headers of WMA/WMV/ASF files for display. These files are rarely encountered these days, and good riddance to them.
ASFViewA simple yet surprisingly effective locality-preserving hash for audio. Perfect for searching a music collection and identifying all the duplicated songs.
RISAHash details.Reads damaged ZIP files (or ZIP-based formats), recovering what can be recovered from truncated files even without the directory usually located at the tail end. A handy little data recovery tool which has saved a few documents damaged by people who pull the USB stick out too fast.
Zipfilerecover details.A utility for reassembling fragmentary data using a .par2 file as an index. If you have a par2 set without enough pieces for recovery, and possibly some of those missing chunks can be found in another data set, this will try to find and assemble them.
Par-scavengerA utility to generate a graphical summary of the statistical properties of a file. This is intended as an educational tool for showing how data compression works, and comes with some basic demonstrations.
File-SummaryA tiny (and very non-portable) program that plots an audio input into an XY vectorscope. Rather crude as I made it for a specific task, and had no use for it once that task was finished.
X11 VectorscopeIt sends data over audio. Much like minimodem, but using BPSK and FEC to send data faster and more reliably.
Bird modemVoronoi approximations as a tool for image disocclusion. An abandoned idea from some years back.
Voronoi dabblingsNone of these work with gemini browsers, unfortunately - they do require javascript.
Adds together single digit numbers quickly. Written to calculate scores in Munchkin.
Card-addPhoto goes in, and with two clicks, out comes the photo rotated and scaled for use in making an identity badge.
IconifexThe first javascript program I ever made, as my exercise to learn the language. It's a quiz game themed on taxonomy.
Genus Loci gameA series of clocks made to be projected during an examination. Made in consultation with invigilators, these clocks provide space to enter exam information, both analog and digital display, and a monochrome design readable regardless of any color-blindness.
ClocksA video player with a special feature: It allows people to watch videos in sync, just by exchanging a number. No streaming server required! The purpose for this is obvious: So that groups of friends may watch terrible movies together and make fun of them.
Videmus and demonstrationsAn instrument for measuring component properties in the sub-volt range, down to a few milivolts. It's a basic manual curve tracer which any hobbyist can build. It was specifically made to help identify counterfeit components.
The Sillyvolt testerAdapted from VK2ZOI's original Flowerpot Antenna, my own refinement to the design is identical electrically identical, but adapts the mechanical design so it can be mounted to a roof from the inside.
The Slender Flower antennaA compact 'ideal diode' circuit - it behaves like a near-ideal diode with a forward voltage drop of close to zero volts. These are commonly used in low-voltage solar power applications. The active electronics do consume power, but with appropriate resistors this might be under a miliwatt - far less then the energy lost to even a schottky diode.
Description and schematicA circuit that turns things off. Specifically things that run on 12V DC. Designed for a solar-powered garden lighting system, to ensure the lights were not accidentally left on all the time.
Description and schematicTurns off when the battery voltage is low, turns on when the battery voltage is high. Useful to anyone who wants to DIY their own solar power on hobbyist/outbuilding scale.
Schematic and explanation.Can you weatherproof stripboard using household materials? Yes, you can, to an extent.
An attempt was made.Email codebird@ this domain name. I can be found many places, but due to the sensitive nature of my occupation I seldom use the same name in two of them. I work in education, and it would be quite awkward should the students start putting my personal life together, so I make myself hard to find.