Testing Hy code

I tested both pytest and nose for testing my hy code. Unfortunately I couldn’t get nose to work. Pytest did work after some weird configuration and monkey patching.


Squick is the evolution of ZAP. While working on ZAP I realised that trying to cram every single thing I might want to do with my website into a general-purpose static site generator is not only too much work, but also no fun at all. There are a few things that I was interested in doing differently (at least from the static site generators I’ve found) and many things that I was interested in doing exactly the same as everyone else.


a bunch of lines - screencap of sndblstr visuals

SNDBLSTR is a relaxing screen-covering/thing-shooting/moire-effect-generating toy. It also makes sounds, which are not so relaxing.


Cryssake is a simplified C++ build system written in Python. It Understands very basic configurations of C++ executables and libraries. The guiding principle of Cryssake is that by adding structure to the project being built, we can simplify the build system. Unfortunately, C/C++ code tends to have complex requirements from the underlying operating system, available libraries, etc, and structure cannot be enforced in those areas. Ultimately, I determined that this project, though it works well for very simple C++ builds, would need to rapidly grow in complexity to accomodate more complex configurations. At that point I gave up and learned CMake.


BackTalk is a programming language designed to provide simple points of configuration or interaction within a larger piece of software. For instance, it could be used to allow a user to add custom behaviour to a button in a WYSIWYG website editor. You can try out BackTalk right now by going through the interactive BackTalk tutorial.

Pi Expirements

This repo houses a few simple experiments in controlling the Raspberry Pi GPIO using C++. Maybe it will be helpful to someone else trying to do the same thing!

Split Merge Steal

some colourful blocks

I once decided to do an exercise from a game design textbook. The exercise was to design a simple game around a territory capturing mechanic. Instead of just completing the exercise, I decided to make it possible for people to make and share games that used the same type of board/moves. Finally, the resulting game editor/player is ready to share! I think this could maybe be a good tool for people to experiment with game design.

Sounds of Jelly

some pixely green and blue audible jelly

Sounds of Jelly is a relaxing jelly simulator with wave noises. It uses three.js for graphics and WebAudio to synthesize audio in your browser!

Shake Stick

The Shake Stick is a NIME (New Interface for Musical Expression) implemented in C++ and SuperCollider on a Raspberry Pi B+. This repo contains all of the necessary code and data to run a Shake Stick. This project was produced as part of a directed study with Dr. Abram Hindle at the University of Alberta. You can read a pre-print of the resulting paper on PeerJ.

Polling Thing

Written in 1 hour, this repo provides an example of HTML5, CSS, and REST usage. This simple application written with AngularJS monitors the issues on its own GitHub repo via the GitHub JSON API.


Zap is multiple prototype CMSes that lets you edit locally and deploy your site using git. The guiding principle of ZAP is to keep your content in git. The rest is still being explored. Currently, ZAP is still being prototyped, with two branches that you might find interesting:


Spincycle logo: basically the word spincycle

A long time ago, as BlackBerry prepared to launch their foray into the tablet market, they announced a promotion for developers: make a PlayBook app, get a PlayBook. One of the technologies you could use to make the app was HTML5, which, at the time, was still somewhat new. I decided this was the perfect time for me to get my feet wet with web-based game development, and so I started planning and making this game.

Please Play Again

two white circles and a green circle

I made this game for the 2013 js13k contest, which had a theme of bad luck that year. Originally, I was inspired to make a game about bad luck and failure. I had a vague idea of making a point in this game, so I tried to do that by forcing people to give up. The game encourages you to keep going with little text snippets, but then at some point you cannot progress any further. I’m not really sure anymore that this fits with ‘bad luck’, but I thought so at the time.