Here's a list of some projects I've worked on. Let me know if you find any of them useful or fun.
- Live Coding in Python
- This is my current passion. It lets you play with Python code, and continuously runs the code while you edit it. You can use it to create interesting graphics, or see what's happening inside your code.
- Chinese Vocabulary Flashcards
- A fun project to generate several thousand flashcards for reviewing Chinese characters. I combined several sources of data on character frequency and definitions. The most interesting part was converting the data from a stroke order animation tool to static images. It makes the stroke orders easier to follow in the same way that static visualizations of sorting algorithms are easier to follow than animated sorting algorithms.
- Chinese Reading Practice
- After I'd learned enough characters, I wanted to practice reading, but it was frustrating to always have to look up unknown characters. I filtered through the Chinese sentences on tatoeba.org to find sentences that only used the most common characters.
- Blind Hex
- I designed this board game to try and make simultaneous movement as elegant as possible. I also used it to test out my Live Coding in Python tool when I wrote the code to draw the game board.
- Fortune Puzzles
- Based on an idea from a book of party games, I used the sayings from the Unix fortune command to generate puzzles that you can solve as a group.
- The Time Traveller's Tow Truck
- A time-travelling trivia game that I designed as a way to let the players create their own historical trivia questions.
- Birthday cakes for programmers
- A birthday cake that I designed for a coworker. It's decorated with C code that prints the words to "Happy Birthday". Also includes a bunch of cakes by other people.
You can find descriptions of more projects at the blog.