Languages: various

I use a number of different pieces of software that use .dotfiles for configuration (e.g. Emacs, ZSH). I keep my dotfiles in a GitHub repo so I can pull down changes across multiple computers.

Rise of Kingdoms Talent Builder

Languages: Javascript (React)

An online tool I created for the Rise of Kingdoms game community. It is a talent builder that allows you to create and edit character talent builds. Links to builds are also persistent, and can be shared with other players. Site:

Python Utilities

Languages: Python

An assortment of Python utility functions that I use across my various projects. For example, contains code to grade scantron exams, aggregate and analyze different types of survey data, calculate cross-correlations on eye-tracking data etc.

R Open Movie Database API

Languages: R

For a class project I decided to write a small package that would use the OMDb API to pull movie information into R. Nothing fancy, just a fun way to collect movie ratings, actor information etc.

Random Walk

Languages: Java (Android)

Imagine you’re out for a walk, you reach an intersection, but can’t decide which way to go! I like going for random walks but I come up against this admittedly first world problem quite frequently. So one day, before one of my walks, I quickly wrote an Android application that will randomly pick a walking direction for me…

Server Monitor

Languages: Javascript, MongoDB, Python

I was running Debian on my home server for a long time, but for various reasons I needed to switch to a Windows based server. When I was running Debian I had a few tools that would monitor my hardware (memory usage, hard drive free space, network I/O etc.) but I was lacking a solution on Windows. I’m sure there are many and I just didn’t look hard enough, but I thought it’d be fun to write my own. There are faster languages for hardware polling, but I figured it’d be interesting to write something with python and javascript.

It’s basically a nodejs server that uses various python libraries to collect information about the hardware on the system. It polls this information every few seconds and stores the data in mongo capped collections. The goal was to eventually create a web interface that pulls the information from mongoDB and displays the information in a sensible way…however, since starting this project many years ago I have since gone back to using Linux for my server, so this project is on the back burner for a while.

Homebrew Compute Server

Languages: Javascript, Python

I have a number of machine learning projects that all need access to a GPU for training. Currently, I do the training on my main computer, which isn’t ideal if I need the GPU for other tasks. There are online services that offer GPU clusters for training machine learning models (e.g. Google and Amazon), however, it’s always more fun (and cheaper!) to create your own tooling. This is still in the planning stages, but what I want is to create a server for distributed training, where I can upload a Python script, have it initiate training and report the results to a web front-end.