Current Development (updated January 2018)
I currently do software development work in the Federated Access Management space wearing several related hats. The first hat I wear is as consultant for the UK Access Management Federation for Education and Research. In that role I’m responsible for, amongst other things, the software that builds and publishes the federation’s SAML metadata. We publish as much of this tooling as we can under an Open Source license on GitHub in the hope that it will be useful to colleagues elsewhere. The ukf-meta project in particular includes most of the code and configuration we use to run the UK federation.
I’m also a committer with the Shibboleth open source project, concentrating on the Metadata Aggregator and XMLSecTool components where I am the lead developer. The metadata aggregator is a software framework that is (not coincidentally) designed to help address many of the problems I work on for the UK federation, and the more generally useful parts of my UK federation development work will eventually end up in the MDA codebase. I’d highly recommend anyone finding themselves manipulating SAML metadata in bulk for any reason take a look at the Shibboleth MDA. Both the documentation and the Git repository are publicly available.
I’m the editor of a draft specification for a Metadata Query Protocol; as part of that work, I’m developing an implementation of the protocol based on the Shibboleth MDA framework. A proof-of-concept deployment of that is also available; this is being used in the InCommon Federation’s Per-Entity Metadata Pilot.
A lot of the older software I’ve written runs on platforms that have become essentially extinct. I keep remnants of some of them here in case anyone is still interested.
2004: Add-ons for There
The early virtual world of There was intended to be a controlled, designed environment for non-technical users to “hang out”. The company behind the product employed an art department to put together largely static “scenes” (Inca temples, desert racetracks, spooky bone-strewn moonlit skateboard parks) that people were expected to congregate around.
What was interesting about There was the extent to which people didn’t settle for the constructed environment (beautifully designed and implemented though it was) and instead struggled to find ways to express themselves despite the constraints. I ran a blog chronicling some of this, and contributed to the anarchy in a small way with some add-on software.
Of course, There didn’t have much in the way of supported interfaces for extension; that was one of the things that distinguished the later Second Life and I think contributed to There’s decline in the end. It turned out, though, that the PC client had a debug mode that allowed another application to make some interesting things happen. I wrote some little Java applications to:
- mute annoying nearby music
- help with the maintenance of user-created “villages”
- make nautical “avast” sounds whenever a system avatar hove into view
1997: ACE Gauge for Flight Simulator 98
Back before people who bought flight simulator software were assumed to be proto-terrorists, I spent a chunk of my leisure time flying virtual aircraft. This is a surprisingly restful activity, if you don’t count the part where you have to land against a crosswind.
A lot of this was done in the context of a virtual airline called ACE, which went so far as to promote fuel efficiency by “charging” you for fuel consumed during flights. Of course, my reaction as a programmer was to construct an economy gauge for Microsoft Flight Simulator 98 which was capable of displaying gallons per (nautical) mile and other useful metrics while in flight. This looked very stylish on the dashboard of my virtual DC-3, I can tell you.
1995: ZVR Reader for Psion 3a
In an (ultimately fruitless) attempt to organise myself, I’ve bought a number of personal digital assistants (PDAs) over the years. In particular, I owned a number of Psion units, from the early and decidedly clunky Psion Organizer II to the Psion 5. All of these were user-programmable using a proprietary language called OPL, and I wrote a number of applications with this.