Title: Projects
Here's a list of some of my projects.
You can find more on [my GitHub account](https://github.com/seanh?tab=repositories).
#### [Sidecar](https://github.com/seanh/sidecar) (2024)
A plain-but-pretty blog theme with a little sidebar,
for the static site generator Pelican.
#### [Oatcake](https://seanh.cc/oatcake/) (2024)
My universal typography stylesheet.
#### [ghp-pelican](https://github.com/seanh/ghp-pelican) (2023)
A reusable workflow for deploying a Pelican site to GitHub Pages using GitHub
Actions.
#### [ghp-static](https://github.com/seanh/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](https://www.youtube.com/watch?v=B-aAfLJop0s) that explains how the app worked.
#### [Story Maps](https://www.seanh.cc/storymaps) (2005–2011)
A story authoring application for children, developed for my PhD thesis.
#### CKAN (2011-2015)
I used to work for [Open Knowledge](https://okfn.org/) as a core developer on the [CKAN project](https://ckan.org/).
Some of my CKAN work:
* Tutorials (2014, archived copies):
* Plugin writing
* Theming
* JavaScript
* Internationalisation
* Documentation guidelines
* API guide
* Contributing guide
* Open Data Licensing Workshop
* 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](http://www.inf.ed.ac.uk/teaching/courses/ijp)
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](https://github.com/seanh/ripgrep) (2019)
* [My Openbox config](https://github.com/seanh/openbox) (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](https://github.com/seanh/gedit-autoname) and [gedit-smart-autosave](https://github.com/seanh/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.