- Python Testing Workshop
- Code Review in Remote Teams
- Pyblosxom on Ubuntu with Gunicorn & Nginx
- Background Tasks as Simple Web Services
- A Broken Link Checker Plugin for CKAN
- Functional Core, Imperative Shell
- The Network as the Database
- The Open Knowledge Data Packager
- SuperDuper & FileVault on OS X Lion
- A Mozilla Persona Plugin for CKAN
- The Difference Between “Organizations” and “Groups” in CKAN
- The Difference Between the Database, Datestore and Filestore in CKAN
- How to Use Virtualenvwrapper with CKAN
- CKAN - “Failed to get credentials for storage upload”
- Instantiating Classes in Python
A story authoring application for children, developed for my PhD thesis.
Screencasts for the MSc course Introduction to Java Programming: 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.
Computer game characters that follow, chase, flee, and avoid obstacles and collisions. Also PandaZUI, a zoomable user-interface framework.
A little JSON to CSV converter.
Check websites for broken links.
A web app for making tabular data packages.
Login to CKAN sites using Mozilla Persona.
Very easy incremental snapshot backups.
A fast note-taking app for the UNIX terminal.
Website for Forest, a free arts and events space masquerading as a vegetarian café.
Website for Ottawa No Sweat Coalition.
Website for Infoseed hacklab.
My DWM config.
A computer game character that navigates complex 3D environments (Quake III levels), created for my undergraduate dissertation.