codes
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’m involved in.
Mirage 2010–date
MirageOS is a framework for creating unikernels that revisits of library OS work from the 1990s joined with the application of functional programming techniques (specifically, the OCaml language) and the of 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. Our current focus is on support for the Internet-of-Things and the use of MirageOS to produce infrastructure that can be deployed by non-expert users as part of the HDI agenda.
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 the code on Sprint’s website appears to be
orphaned, I have created a github repository here for it. I have
also subsequently written an OCaml MRT dump parser as a learning
exercise.