Projects
Free and Open Source Software projects where I am a primary contributor:
ApexORC provides a handler, for the Apex structured logging library for Go, that will cause Entry structs to be persisted to an Apache ORC file.
ApexOverNSQ is a Go library that bridges the Apex structured logging package for Go onto the NSQ, Go-native message bus. I used this as part of the log centralisation mechanism for Avocet's micro-service architecture, circa 2017.
Confita is a Go library that loads application configuration in cascade from multiple backends into a struct.
Felice was an opinionated Kafka library for Go, in Go.
We were building this in the "Developer Care" team at Heetch, but that team broke early in the COVID outbreak, and this code has since been abandoned and archived.
Regula is a business rules engine / feature flag system for use with Go applications.
Developed at Heetch, the intent was to provide a full featured UI with a domain specific rules language called "RUSE" (Rules Using S-Expresions, If I recall correctly).
Although I completed the work to develop and document the first version of the RUSE language, the UI work to support it was never completed and version 7 of Regula was not deemed ready to ship before the COVID pandemic hit and the team, unfortunately, broke up.
StdLogToApex is a A small library to bridge Go's log package to the Apex Structured Logging library.
The most venerable Go library out there for reading and
writing Microsoft's Office Open XML format for Excel
(.xlsx files).
I have some thoughts and frustrations around xlsx, and its competitor, Excelize. See : "The needle and the damage done."
-
v4.x.x onwards
Installation:
go get codeberg.org/tealeg/xlsx/v4Source Code:
codeberg.org/tealeg/xlsx -
v3.x.x and earlier
Installation:
go get github.com/tealeg/xlsx/v3Source Code:
github.com/tealeg/xlsx
A very simple Emacs minor mode to properly indent YUI Javascript files.
Free and Open Source Software projects where I was a minor contributor
The official Open Service Broker protocol support for Amazon's AWS.
Most notably, I fixed bug #1 for the project, allowing the service broker to use AWS Lambda functions to dynamically provision credentials when requested via the Open Service Broker protocol (previously, all credentials requests would be granted the same credentials, created during resource creation, which didn't meet security standards for most organisations).
I ported Cisco Chez Scheme to the HaikuOS.
I provided a little code and code review for the EndOf10 website.
This website serves as an information centre in support of the KDE Eco project's EndOf10 campaign.
EndOf10 focuses on the environmental impact of Microsoft's discontinuation of support for the Windows 10 operating system - an event that renders millions of Windows laptops unsupported, and unupgradable. EndOf10 offers a simple solution - upgrade to Linux instead - and backs this up with a network of people and events to support that transition and life with Linux thereafter.
The HaikuPorts project provides the default package repository for the HaikuOS (other package repositories exist).
I created and maintain the HaikuOS packages for:
- Cisco Chez Scheme
- Akku (package manager for Scheme)
Landscape Client is the Open Source client-side agent for systems that are managed as part of Landscape.
I was a software engineer on the Landscape team for six years.
Although the Linux distribution was never my core focus, I spent 6 years as an engineer at Canonical, and necessarily contributed to the distro in some small ways, including the provision of the landscape client GUI, and the first Snap packages for both GNU Emacs and GNU Zile.
Proprietary Software I've been paid to work on
Canonical's infrastructure / systems management tool for Ubuntu Linux. deployments. Landscape was my day-job between 2011 and 2017.
Timaeus was a suite of software appliances for Electronic Data Capture and Electronic Data Management in Clincal trials.
Timaeus was originally developed by a start-up called ThirdPhase, spun out of the Oxford University incubator under the leadership of Dr. Timothy Corbett-Clark and Dr. Mark Holt. ThirdPhase eventually merged with the Clinical Trial Management company, Cmed, and formed the Cmed Technology arm of the Cmed Group, with Timaeus as it's primary product.
Timaeus was delivered as a series of hardware appliances, running a custom linux distribution that booted directly into the application. Each appliance was built, automatically from a clinical trial configuration and featured a custom hierarchical, Copy-On-Write database that replicated subsets of the database on a peer-to-peer basis. Communication channels were managed automatically by the appliances, utilising multiple modalities (Ethernet, WiFi, dial-up modem, GSM, GPRS, BGAN Satellite).
The design of the Timaeus system was a radical departure from traditional clinical data management systems (like Oracle Clincal) or even the "cutting edge" electronic data capture systems of the day, which tended to be delivered as web applications.
Timaeus enabled complex trial designs that other systems couldn't achieve, and its peer-to-peer architecture allowed operation in geolocations that other systems couldn't reliably operate in, such as sub-Saharan Africa - as demonstrated in a pilot program that resulted in Timaeus winning the 2008 GCPJ Award for "Best Technological Development in Clinical Trials".
Cmed was the first start-up I ever worked for, and Timaeus is, to this day, the most interesting, and technologically challenging product I've ever had the honour to work on. I'm eternally grateful to Dr. Tim Corbett-Clark for taking the plunge and hiring me.