“Finished” non-trivial projects
MFTE
The Magic-Free Text Editor. A Nano clone in Rust.
Relief Valve
Moves Steam games between storage locations. This was later built into Steam directly, rendering Relief Valve useless.
Adding a feature to Rust
The feature itself was trivial (one of the core Rust devs was surprised it didn’t exist), but participating in the process that Rust has was a cool experience.
Galactic Max
A hackathon-winning HTML5 game made with Phaser in 24 hours with some friends.
Yummy Goodness
The economy from CS:GO as a standalone game. My first project with Elm.
halfhearted
A roguelike built with React for FreeCodeCamp.
Abandoned non-trivial projects
Komodo
Realtime classroom quizzes, hosted and played through the Meteor platform.
Probably functional. Possibly outdated. Definitely abandoned.
Hamwerk
A Meteor-based todo list specialized for homework. I made it when I needed it, and I abandoned it when I didn’t.
BecauseWhyNot
An emulator for the fictional DCPU-16 from Notch’s canceled 0x10c.
Personal miscellany
Several things I worked on that weren’t published for one reason or another.
Every single GitHub repo
-
mathphreak.github.io August 2010 - November 2020
This is the source of the website you are viewing right now.
-
mfte July 2017 - November 2017
The Magic-Free Text Editor, a Nano clone I wrote in Rust.
-
functional-dependency-generator October 2017
-
who-is-here September 2017 - October 2017
-
prodenfd September 2016 - September 2017
The Productivity Enforcement Daemon keeps me from slacking off instead of doing my homework. Except for when I don’t run it.
-
GroupMe-Message-Bot July 2017 - September 2017
My friend’s Python-based GroupMe bot that I helped write.
-
rust-editorconfig August 2017 - September 2017
A Rust library to work with the EditorConfig standard.
-
editorconfig-core-test September 2017
A few of the tests for the EditorConfig standard were broken, so I sent in a PR to fix them.
-
rust-clipboard August 2017
This library depended on an old version of a dependency that was broken on an upcoming Rust version. I sent in a PR to update the dependency and fix that.
-
hexcells_hints August 2017
A Python program that (theoretically) does some image processing to generate hints based on screenshots from Hexcells. I almost finished the image processing, then I gave up.
-
JSFX May 2017 - June 2017
I wrote a sequencer for the Reaper DAW.
-
groupme-notification-buildpack June 2017
A Heroku buildpack that posts notifications to GroupMe when run.
-
gui May 2017
An apples-to-apples comparison of several GUI frameworks and libraries. I did not finish it and I doubt I ever will.
-
node-steamcmd February 2016 - April 2017
This is a Node.js wrapper for the SteamCMD interface to the Steam database. I created it for use with a feature in Relief Valve. That feature only worked about half of the time, and I’m still not quite sure why.
-
cull21 March 2017
This is a tiny Sinatra app that leverages my procrastination against itself to help me read through old email. I wrote it on a Chromebook.
-
yummy-goodness January 2017
An Elm project that implements the CS:GO economy as its own game.
-
nightmare December 2016
This is my fork of Nightmare, an Electron-based browser automation library, that I patched to use electron-prebuilt-path so that it would work even when called from within another Electron process.
-
electron-prebuilt-path December 2016
This is a small Node.js module I wrote to get the executable location of Electron whether run from inside Electron or not. The
electron
package on npm is set up so thatrequire('electron')
returns the path to the binary from a pure Node environment, butrequire('electron')
returns the Electron APIs from within Electron. Through some minor shenanigans that took a few tries to get right,require('electron-prebuilt-path')
always returns the path to the binary. -
ReliefValve June 2015 - November 2016
This moves Steam games between hard drives. It’s built on Electron in JavaScript.
-
ChillenniumGame.gmx September 2016
This was the game I helped make for the Chillennium game jam. My contribution was primarily writing the server backend and figuring out how to use the GameMaker HTTP library to make calls to that API from the game.
-
zeitgeist-server September 2016
This was the Express-based backend API for the game I helped make for the Chillennium game jam.
-
E-800 October 2015 - September 2016
The E-800 Evaluator was conceived as an unsolicited replacement for an existing PHP-based code grader that I encountered at my university.
-
fcc-imagesharing-app August 2016 - September 2016
This is a FreeCodeCamp project where I built a Web app with Express to let users post images.
-
verbatim August 2016
Verbatim runs two executables on the same input and compares their output. I wrote it to make homework easier for one of my classes.
-
fcc-books-app August 2016
This is a FreeCodeCamp project where I built a Web app with Express to let users list their books and borrow them from each other.
-
fcc-stocks-app July 2016
This is a FreeCodeCamp project where I built a Web app with Express to show historical stock prices for a list of stocks shared and edited by all users.
-
fcc-nightlife-app July 2016
This is a FreeCodeCamp project where I built a Web app with Express to show bars in a location and how many users had said they were going.
-
fcc-voting-app July 2016
This is a FreeCodeCamp project where I built a Web app with Express to run polls.
-
fcc-filesize-microservice July 2016
This is a FreeCodeCamp project where I built a microservice with Express to return the size of an uploaded file.
-
fcc-imgsearch-microservice July 2016
This is a FreeCodeCamp project where I built a microservice with Express to abstract over the Bing API for image search.
-
fcc-urlshortener-microservice July 2016
This is a FreeCodeCamp project where I built a microservice with Express to serve as a URL shortener.
-
fcc-header-microservice July 2016
This is a FreeCodeCamp project where I built a microservice with Express to work with HTTP header parsing.
-
rust July 2016
I added a small feature to Rust.
-
rfcs July 2016
I discovered while writing csgo-scoreline-monitor that I wanted a simple feature added to Rust. The Rust contributor guidelines aren’t quite clear on whether it needed an RFC or not, but the devs themselves are: it did not.
-
csgo-scoreline-monitor July 2016
This was a Rust-based Web app to publish the current status of a CS:GO match over HTTP.
-
fcc-timestamp-microservice July 2016
This is a FreeCodeCamp project where I built a microservice with Express to work with timestamps.
-
halfhearted July 2016
A roguelike dungeon crawler I made with React for FreeCodeCamp.
-
patchwork June 2016
Me proving that I know how to use Git for FreeCodeCamp.
-
fcc-git-test June 2016
Where I worked on my Git training for FreeCodeCamp.
-
gulp-atom-electron January 2016 - February 2016
This is a Node.js package I contributed two patches to while I was working on Relief Valve. One was accepting an option to reduce stdout spam. The other was detecting Wine and patching .exe files through Wine if needed.
The second patch wasn’t merged, and the upstream author didn’t say anything about it, but the pull request is still active if someone else needs it.
-
compare-ignoring-articles January 2016
This is a Node.js micro-library I threw together while working on Relief Valve.
-
Galactic-Max January 2016
This was an HTML5 game I made with a few friends as part of a hackathon, which we won.
-
cs-eco-dash December 2015 - January 2016
This was a Rust-based microservice that parsed and analyzed data from CS:GO’s built-in status API and displayed that information in a more useful way. I quit working on it because I didn’t understand the game well enough to make it analyze data effectively. I still don’t.
-
csgo-demo-info December 2015
This was a very short-lived attempt at parsing CS:GO demo files. CS:GO uses Google’s protobuf library, which I don’t understand well enough to confidently use it in C++, let alone JS. I doubt I’ll revisit this.
-
hamwerk August 2013 - November 2015
This was a todo list built on Meteor and specifically optimized for homework. I started using something more generally applicable instead, and when Meteor discontinued its free hosting I didn’t try to keep it alive elsewhere.
-
keyboard.backbone.js August 2011 - September 2015
This was an extension to Backbone that allowed for semi-configurable keyboard shortcuts. I think I was working on a Canvas-based game when I built it; I’m not sure why I felt it was necessary.
-
reop March 2015 - April 2015
I contributed some to the Go version of Ted Unangst’s reop. I haven’t really thought about it much since then, and when I went to check as I was writing this I discovered that it was discontinued.
-
statdns-socks5 March 2015
This was a Go SOCKS5 server that used an HTTP API to resolve DNS queries to avoid an untrusted DNS server. Not long after I finished writing these hundred lines of code, I realized that I could change my system DNS server instead. I haven’t touched this since.
-
webchat-go October 2014
This was a WebSockets-based, Go-backed Web chat system. I don’t remember why I wanted it, but I never used it for anything.
-
AltcoinNetWorth May 2014
This was a Go-backed Web dashboard for determining how valuable my various altcoins were. I’m not sure I ever used it for much even when I still cared about altcoins.
-
Reddit-Enhancement-Suite March 2014
I wrote a patch adding Dogecoin tip support to RES, which already had Bitcoin tip support. That patch was rejected because the RES devs were already planning on replacing their Bitcoin tip support with more generic tipping support.
-
piano-stairs February 2014
This was a physical project I worked on with a friend for a school art show. The design we found had a few problems with the software which I fixed in this repo.
-
LD28-You-Only-Get-One December 2013
This was a text adventure of sorts I made for the Ludum Dare game jam. It wasn’t great.
-
ServerlessWebappTemplate December 2013
This was my effort to build a template I could use for my LD28 game. I don’t think I’ve used it since.
-
MCWebDash July 2013
This was a Web-based dashboard for a modded Minecraft server I ran at the time. It showed some information about who was online and what time it was, and I had it set to publish the configuration that the server was using. It was fed this information over UDP from a Bukkit plugin that I subsequently lost the code and binaries for.
-
CustomRecords July 2013
Apparently I wanted to add custom records to my Minecraft server. Apparently I didn’t find out how to do that.
-
SpawnAndBack June 2013 - July 2013
I wrote a Minecraft mod that let players teleport to the server spawn area and back to where they had been before. I think I knew that there were already mods that did this and I just didn’t care.
-
two.js May 2013
I fixed a few grammar mistakes in the documentation here.
-
Zrczr May 2011 - April 2013
I meant to make a top-down shooter MMO. I made a top-down shooter non-MMO and then quit.
-
CompetentDeathMessages March 2013 - April 2013
A friend of mine was a moderator of a Minecraft server, and he had asked me to improve a few things. One of them was their glitchy death message plugin. I put in some effort to make a better one.
-
BecauseWhyNot March 2013 - April 2013
This was a CPU emulator in CoffeeScript for Notch’s 0x10c, which he later canceled. I learned a lot about how CPUs work while I was building this.
-
RobotArmStuff February 2013
A friend and I built an Arduino-powered robot arm with Bluetooth and an Android app to control it. The hardware never worked well enough for us to discover that the software didn’t work, but I really doubt that it would have worked.
-
Trollcraft February 2013
This was a Bukkit plugin to play sounds and apply potion effects to players. I don’t think it went anywhere.
-
Fireworks February 2013
I think I was helping someone else with their Bukkit plugin to set off random fireworks. I don’t actually remember.
-
RepublicaEternityEventIII January 2013
My friend’s Minecraft server had a massive event that I helped implement.
-
StaffDrops November 2012 - December 2012
My friend needed help writing a Minecraft server plugin to make staff members drop special items if people killed them.
-
tripping-wight April 2012
I was interested in how synthesizers worked, so I took an open source one and made the interesting parts of it pseudocode.
-
VCRI March 2011 - December 2011
I played Canvas Rider a bunch at this time, and there were a few minor UI things that frustrated me. So I made a Chrome extension to fix them. I had to learn how to interpret and analyze minified JavaScript.
-
Arduinochet January 2011 - November 2011
The code for an Arduino-powered trebuchet I built with a friend in middle school.
-
curtains November 2011
I think my plan here was to build a Web-based video service that could be run off a laptop and accessed on a Wii. I never made much progress.
-
developer.github.com October 2011
I don’t even remember why I wanted to change something in the GitHub API documentation.
-
github.js October 2011
I needed a browser-side GitHub API library to automatically put all my repositories on my website. I didn’t write more API calls than I personally needed.
-
domEvents.backbone.js July 2011
Why use jQuery’s event handling directly when you can unnecessarily route everything through Backbone’s event stack instead?
-
Pecan.js May 2011
This was a JS microlibrary to persist scroll location. I wanted it for something, but I don’t quite remember what.