Software Development

Request Router is a routing engine. The default install methodology exposes a Geolocating DNS Load Balancer.

It features:

  • Geolocation cost based routing (with overrides)
  • Protocol Aware
  • Delivery Status/Load Aware
  • EDNS Client Subnet (ECS) support
  • Wildcard support
  • HTTP Redirect (302) Routing Support
  • Content Optimised Routing in HTTP Routing
  • Alt-Svc Header Support

My original bug tracker - BUGGER - was ultimately replaced with a self-hosted JIRA install

I wanted to continue to make some project information publicly available, but wasn't overly happy about exposing a complex Java application to the world without good cause. Ultimately I created the Jira Issue Listing Script in order to create a static HTML mirror of selected JIRA issues (though my initial motivation was to allow my search engine to index non-public issues)

JILS is the basis of, although it also hosts a static mirror of my old BUGGER tracker (or at least, the incomplete rewrite of it - the original is no longer available)

LottoPredict was a simply statistical exercise to see whether analysis of ball draw rates could lead to predicting some of the balls to be drawn

The underlying engine compromised of a site scraper (in order to collect and collate lottery results), the analysis engine and a simple REST API in order to retrieve results, generate predictions etc.

The concept ultimately led to the development of a better API, and the release of my mod_lotto Joomla extension.

Vehman was a system to track the Total Cost of Ownership for vehicles

The primary component was a fuel consumption tracker, allowing you to generate reports on average MPG, distance travelled by month etc.

It ultimately evolved into a purely API based system, with the front-end being presented as a custom Joomla extension on

I provide CDN services to - providing a network of low latency caches for them to deliver via

Their site is essentially a date sorted index of various subreddits - somewhat unsurprisingly, with a focus on various NSFW subs. As a result, they occasionally received DCMA takedown requests, but because of the setup on their origin were quite slow to process these.

This periodically resulted in me, as a provider, receiving an escalation from the person complaining. So, to remove these disturbances I created a small piece of software so that the site operators could process a takedown by inputting the URL path - that path (and all associated images) then get blacklisted across my edge, preventing any further delivery, while they continued with their process on the origin to remove the content at source.