Most of the code I write is available via my GitHub account – pull requests always welcome! – but I thought I’d collate links to some of the larger codebases I’ve been involved with as well as some of the Github organisations I participate in.
Databox 2015–2018
An output of an EPSRC-funded collaboration between the Department of Computer Science & Technology, Horizon Digital Economy Research at the University of Nottingham, and Imperial College, Databox is a platform embodying the principles of Human-Data Interaction in the processing of personal data. Outputs from the project include over 50 software libraries, applications, and platform components which together comprise the Databox platform. The Databox community comprises over 50 members from industry (e.g., Google, DT42), government (e.g., the Competition & Markets Authority), and academia (e.g., Cornell, University of Oxford), as well as numerous independent developers. The BBC, project partners, have used the Databox platform to prototype the BBC Box in trials with members of the public.
MirageOS 2010—2018
MirageOS is a framework for creating unikernels that revisits library OS work from the 1990s intersecting it with the application of functional programming techniques and specifically the OCaml language), originally targeting the Xen hypervisor. Compact, efficient, lightweight, self-contained, MirageOS unikernels can be generated from a single codebase to target anything from the cloud to small form-factor ARM devices.
Dataware 2011—2014
Developed through Horizon Digital Economy Research, Dataware represents a set of prototype services enabling control over access to personal data. Presents data via web services, and controls access via a personal catalogue. Third-parties access personal data by requesting permission via the catalogue, allowing accesses to be audited and managed.
Homework 2010—2013
Developed during the Homework project, the Homework router reconstructs the home router informed by ethnographic study of home networks ‘in the wild’. Uses OpenFlow (Open vSwitch and NOX/POX) to provide novel interrogation, control and policy interfaces to a home router.
Karaka 2007—2009
Developed at Vipadia Limited, this is a scalable software system implementing a distributed Skype-XMPP gateway released under the GPLv2. Copyright was acquired by Voxeo Corp. in January 2010.
PyRT 2001—2002
I developed the Python Routeing Toolkit while at Sprint ATL, who released it under the GPLv2. It comprises code for collecting and analysing routeing data. This package currently collects BGPv4 and ISIS, and dumps and parses MRTD files including MRTD TABLE_DUMP
files (as available from, e.g., RouteViews and RIPE/RIS). A number of utilities for manipulating these dumps are also provided. Since Sprint’s website appears to be dead, I have created a GitHub repository here for it. I have also subsequently written an OCaml MRT dump parser as a learning exercise.