projects

Dragon Scales

Dragon Scales is a web app for generating random musical scales. Take the boredom out of practicing!

madm

madm (Mutt Alias Danabase Manager) is a server designed to be used with mutt for managing an email contact database.

happy-space

happy-space is a command-line calculator for a whitespace-sensitive expression language. It is a demo implementation of a language in which space characters alter the semantics of expressions.

View the code or download it from GitHub.

Under the Weather

As a participant in ConUHacks 2017, I wrote Under the Weather in Python with a partner in under 24 hours. We made a bot that reports the weather in any major city in the world over Mastodon. It uses the excellent OpenWeatherMap API as well as Mastodon.py.

Try it yourself.

Mr. Prickles

Mr. Prickles is a bot for the Tox network written in C using the toxcore library. It maintains its own list of contacts and can make or accept audio/video calls.

He mostly just hangs out and doesn’t do much, but he’s super helpful for debugging.

Bugfree Computing Machine

Bugfree Computing Machine was my senior project for my undergraduate degree with the oversight of Prof. Christopher Lanz. I built an emulator, linker, and assembler for the hypothetical Extended Stack Machine, a pedagogical architecture cooked up by Prof. Timothy Fossum.

It was written entirely in Haskell, so it is naturally bug-free.

Quoridor

Quoridor is a cute board game for 2 to 4 players. I worked with a fantastic team to build Quoridor in Java over one semester.

Our implementation can be played over a network and includes a GUI and an AI opponent. I was responsible for the networking code as well as much of the game’s internal logic. I also fixed many bugs.

Funtimes

Funtimes is a command-line game engine written in Python with a partner. Originally intended to be a remake of a game we used to play in high school, it evolved into a system for building new games using our homemade domain-specific language.

dwmstatus

I use dwm on my personal machine, and it seems every dwm user has their own status program. Mine is written in C and I like to think that it is pretty good.

danso.ca

Indeed, I even made this website. It’s generated using Hakyll and the full source code is publicly viewable on GitLab.