Projects
Here’s a list of some of my projects. You can find more on my GitHub account.
Sidecar (2024)
A plain-but-pretty blog theme with a little sidebar, for the static site generator Pelican.
Oatcake (2024)
My universal typography stylesheet.
ghp-pelican (2023)
A reusable workflow for deploying a Pelican site to GitHub Pages using GitHub Actions.
ghp-static (2023)
A GitHub Actions reusable workflow for deploying static files directly to GitHub Pages - no Jekyll or static site generator needed, just deploy a directory of HTML and other static files directly to your GitHub Pages site.
Find Me (2011)
An iPad game for children with autism. App store: pro version, free version. BBC news article, journal paper. JTRS made a good YouTube video that explains how the app worked.
Story Maps (2005–2011)
A story authoring application for children, developed for my PhD thesis.
CKAN (2011-2015)
I used to work for Open Knowledge as a core developer on the CKAN project. Some of my CKAN work:
- Tutorials (2014, archived copies):
- CKAN extensions:
- Dead or Alive (2014), check websites for broken links
- Data Packager (2014), a web app for making tabular data packages
- OAuth 2.0 Support for CKAN (2014)
- Mozilla Persona Support for CKAN (2014)
Edinburgh University Java Screencasts (2008)
I used to work as a computer programming lecturer at Edinburgh University and created the online version of the Introduction to Java Programming course: 1. Objects and classes, 2. Understanding class definitions, 3. Object interaction, 4. Grouping objects, 5. More sophisticated behaviour, 6. Well-behaved objects, 7. Designing classes, 8. Improving structure with inheritance, 9. More about inheritance, 10. Further abstraction techniques, 11. Building graphical user interfaces.
PandaSteer (2006)
Computer game characters that follow, chase, flee, and avoid obstacles and collisions. Also PandaZUI, a zoomable user-interface framework.
Various command line tools and dotfiles I’ve developed over the years
- My ripgrep config (2019)
- My Openbox config (2018)
- My DWM config (2015)
- Losser (2014), a little JSON to CSV converter
- Terminal Velocity (2012), a fast note-taking app for the UNIX terminal
- Snapshotter (2011), very easy incremental snapshot backups
Gedit Plugins (2019)
gedit-autoname and gedit-smart-autosave.
Websites
I sometimes make websites for people. Here’s a few examples: Forest (circa 2010, archived copy), a free arts and events space masquerading as a vegetarian cafĂ©; Infoseed (circa 2007, archived copy); Ottawa No Sweat Coalition (circa 2005, archived copy).
PyBlosxom (2005–2015)
My PyBlosxom plugins and themes: mtimecache, drafts, HTML5 theme, tumblelog, metadate, markdown, Vessel and Scribbish.
Navigating 3D Environments (2004, PDF)
A non-player character that navigates complex 3D environments (Quake III levels), created for my undergraduate dissertation.