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.
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.
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.
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…
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
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.