Skip to content

Christmas projects

Every year, usually around Christmas, I’ll take a break from regular work to focus on something new. While it’s usually possible to learn on the job or in evenings and weekends, it’s great to take a week or two away to do a deep dive in something different.

This page lists my recent Christmas projects.

2023: Logieminu: A program for modifying Korg Minilogue Sound Library files

The Korg Minilogue Sound Librarian allows import and export of program settings from a Korg Minilogue. However, Korg offers no way to modify program settings except on the synth itself. Logieminu was an exercise in reverse engineering binary files so that I could make my own sounds programmatically.

2022: Pychoons: An ID3 tag index

Pychoons scrapes the ID3 metadata tags from a music library and indexes them to ElasticSearch. ElasticSearch’s powerful dashboards can be used to gain insight into your music collection. I was hoping I could chart the best vintage years for albums. Unfortunately the main insight is that more than half of my MP3s don’t have useful metadata.

2021: Zookidash: A dashboard for Zookeeper

I was interested in management and monitoring of Zookeeper. I created Zookidash: A dashboard for Zookeeper. Zookidash uses Zookeeper’s 4 letter words or the newer AdminServer HTTP services to find all servers in an ensemble and report on their health.

2020: …and rest

2020 was a difficult year for all. No Christmas project this year.

2019: Primer: A Spring Cloud Data Flow app on Kubernetes

Primer is a Spring Cloud Data Flow application for deployment to Kubernetes. The process of generating numbers, checking for primes and displaying the result fits nicely with the SCDF source, processor and sink concepts.

Primer SCDF flow definition

The result was deployed to Google Kubernetes Engine and is available to view at

2018: Dog n Bone: A browser phone for Twilio

Dog n Bone is a ReactJS based browser phone that uses the Twilio voice API. It was deployed to Google App Engine and is available at

I was already familiar with browser based telephony but had never used Twilio. This was a great opportunity to build something I already know using a technology I don’t. This was also my first attempt at full stack Javascript development. Dog n Bone uses ReactJS for the front end with back end services powered by Node.

I was also interested in deploying to a cloud provider. AWS seemed the obvious choice but I was won over by the simplicity of Google App Engine for Node applications.

2017: VoiceXML, JVoiceXML and VoiceXMLRiot

I’m currently doing a lot of development of voice applications using VoiceXML and wanted to learn a little more about its capabilities and ecosystem. VoiceXML applications are typically powered by expensive enterprise telephony systems so development and testing can be difficult. JVoiceXML is a powerful and flexible open-source VoiceXML browser but it has a steep learning curve and is difficult to set up and configure.

During the Christmas break in 2017, I started work on VoiceXMLRiot – a VoiceXML application testing framework. It builds on top of JVoiceXML and indeed is an alternative to its own test framework, VoiceXMLUnit. VoiceXMLRiot hides much of the complexity of JVoiceXML and is accessed through a simplified API.

2016: Angular 2

I’ve built web based GUIs in a number of roles, often relying on basic JavaScript. However, I’ve never had the need to build a JavaScript heavy Single Page Application. As a means to learn Angular 2 and to brush up my JavaScript (and TypeScript) skills, I rewrote the Spanners demo app as an Angular based SPA. Results in GitHub.

2015: Docker

During a career break in 2015 I decided to look at Docker which was terribly new and exciting at the time. I was glad to discover that the hype was well deserved and astonished at its power and simplicity. This led to a four-part series of articles on Docker basics and later to a redesign of the Spanners demo app. The new 4.x iteration of Spanners demonstrates microservice concepts. It would have been next to impossible to build, test and distribute without Docker and Spring Boot.