1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
---
layout: default
title: Projects
permalink: /projects/
---
* January 2022: [Glides](https://medium.com/@katrinalanger/green-means-go-improving-green-line-operations-b831daf7a834), an Elixir and React service for train tracking on the MBTA's Green Line
* March 2021: [makers](https://code.boringcactus.com/makers/), a Rust implementation of `make`
* November 2020: [cactus-ssg](https://git.sr.ht/~boringcactus/cactus-ssg), a Python static site generator targeting both WWW and Gemini (built this site right here!)
* September 2020: [Crowbar](https://crowbar-lang.boringcactus.com), a language offering "the good parts of C, with a little bit extra"
* September 2020: [gemifedi](https://sr.ht/~boringcactus/gemifedi/), a Rust server offering a Gemini frontend to the fediverse
* September 2020: [csgo-gsi](https://sr.ht/~boringcactus/csgo-gsi/), a Rust library for integrating with CS:GO
* August 2020: [the Fuck Around and Find Out License](https://sr.ht/~boringcactus/fafol/), an experimental software license
* June 2020: [Slabforge](https://handandmachine.org/index.php/2021/10/15/slabforge/), a JS CAD tool for slab-built ceramics built as part of [research published at CHI '22](https://doi.org/10.1145/3491102.3517663)
* June 2020: [pig.observer](https://pig.observer), a JS frontend for viewing several traffic camera streams simultaneously (finished)
* December 2019: [cargo-why](https://sr.ht/~boringcactus/cargo-why/), tracing dependency paths to show why a Rust crate is needed in the current project
* December 2019: [wasm-pack pull request #745](https://github.com/rustwasm/wasm-pack/pull/745), adding watch and serve subcommands
* November 2019: [wasm-pack pull request #736](https://github.com/rustwasm/wasm-pack/pull/736), adding support for binary crates (finished)
* October 2019: [wasm-bindgen pull request #1843](https://github.com/rustwasm/wasm-bindgen/pull/1843), adding support for binary crates (finished)
* October 2019: [OWReplayRenderer](https://github.com/boringcactus/OWReplayRenderer), a utility in Rust to render out Overwatch replays to a single video file automatically
* September 2019: [micro-ci](https://github.com/boringcactus/micro-ci), a tiny self-hosted CI system written in Rust
* September 2019: compiler for the [While programming language](https://www.oxfordreference.com/view/10.1093/oi/authority.20110803122041931), written in Rust as a group project for a compilers class
* June 2019: [faketwitch](https://github.com/boringcactus/faketwitch), an IRC server shim in Python to allow Twitch-chat-integrated games to use other services instead of Twitch
* February 2019: [vidslice](https://github.com/boringcactus/vidslice), a wxPython GUI wrapping youtube-dl and ffmpeg (finished)
* January 2019: [kink.garden](https://github.com/kinkgarden/kinkgarden), a (NSFW) Django service for maintaining lists of kinks (finished)
* January 2019: [DynaMaze](https://github.com/boringcactus/dynamaze), a Rust-based multiplayer game compiled to WebAssembly (finished)
* December 2018: [crabravebot](https://git.sr.ht/~boringcactus/crabravebot), a Python (originally JS) service for easily overlaying text over Crab Rave
* August 2018: undergraduate thesis on natural language processing and textual entailment (finished)
* February 2018: full stack web application with Spring, React, and Elasticsearch for a software engineering class (finished)
* October 2017: [functional-dependency-generator](https://github.com/mathphreak/functional-dependency-generator), a PHP site that generates database theory example problems (finished)
* August 2017: [rust-editorconfig](https://github.com/mrandri19/rust-editorconfig), an editorconfig library for Rust that I substantially contributed to
* July 2017: [MFTE](https://github.com/mathphreak/mfte), a Nano clone written in Rust
* April 2017: graphics library exposing XPM and Swing-like layout interfaces and targeting a set-one-pixel-at-a-time renderer
* March 2017: [cull21](https://github.com/mathphreak/cull21), a Ruby web-based Gmail API client designed specifically for powering through backlogs (finished)
* January 2017: [Yummy Goodness](https://github.com/mathphreak/yummy-goodness), a JS game built with Elm (finished)
* September 2016: [prodenfd](https://github.com/mathphreak/prodenfd), a Ruby program that doesn't let me play games if I have pending tasks in my todo list due soon (finished)
* August 2016: [verbatim](https://github.com/mathphreak/verbatim), an Electron application for integration testing an actual binary against an expected one (finished)
* July 2016: [Rust pull request #34694](https://github.com/rust-lang/rust/pull/34694), adding trivial helper methods to the `IpAddr` enum
* June 2016: [halfhearted](https://github.com/mathphreak/halfhearted), a JS game built with just React (finished)
* January 2016: [compare-ignoring-articles](https://github.com/mathphreak/compare-ignoring-articles), a JS library for sorting in a natural way
* January 2016: [Galactic Max](https://github.com/mathphreak/Galactic-Max), a JS game built on Phaser with a full team for a hackathon (finished)
* December 2015: [CS Eco Dash](https://github.com/mathphreak/cs-eco-dash), a Rust web application taking [CS:GO data](https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Game_State_Integration) and presenting recommendations
* September 2015: [E-800](https://github.com/mathphreak/E-800), a Rails web app for running and grading student-submitted code
* August 2015: Java application translating CSV exports from one program to be importable by another, with a Swing GUI
* June 2015: [Relief Valve](https://github.com/mathphreak/ReliefValve), an Electron application for moving Steam games between libraries (finished)
* March 2015: [statdns-socks5](https://github.com/mathphreak/statdns-socks5), a Go proxy server for DNS-over-HTTP before it was cool
* November 2014: [komodo](https://github.com/KamikazeKumquatsLLC/komodo), a Web-based realtime quiz system powered by Meteor
* May 2014: [AltcoinNetWorth](https://github.com/mathphreak/AltcoinNetWorth), a Web-based dashboard for an altcoin portfolio, written in Go
* December 2013: [LD28-You-Only-Get-One](https://github.com/mathphreak/LD28-You-Only-Get-One), a Backbone-powered textual JS game
* August 2013: [hamwerk](https://github.com/mathphreak/hamwerk), a Web-based todo list specialized for homework powered by Meteor (finished)
* July 2013: [MCWebDash](https://github.com/mathphreak/MCWebDash), a Web-based dashboard showing the status of a Minecraft server
* June 2013: [SpawnAndBack](https://github.com/mathphreak/SpawnAndBack), a simple Minecraft mod
* March 2013: [BecauseWhyNot](https://github.com/mathphreak/BecauseWhyNot), a CPU emulator written in CoffeeScript for the DCPU-16 fictional CPU from Notch's cancelled 0x10c.
* March 2013: [CompetentDeathMessages](https://github.com/mathphreak/StaffDrops), a Minecraft server plugin
* January 2013: [Republica Eternity Event III](https://github.com/mathphreak/RepublicaEternityEventIII), a Minecraft server plugin some friends needed help with
* November 2012: [StaffDrops](https://github.com/mathphreak/StaffDrops), a Minecraft server plugin a friend needed help with
* July 2012: [Multiverse Core pull request #780](https://github.com/Multiverse/Multiverse-Core/pull/780), adding a feature to a Minecraft server plugin
* October 2011: [github.js](https://github.com/mathphreak/github.js), a library for making client-side calls to the GitHub API
* May 2011: [Zrczr](https://github.com/mathphreak/Zrczr), a canvas-based JS game
* May 2011: [Pecan.js](https://github.com/mathphreak/Pecan.js), a library for persisting scroll position
* March 2011: [VCRI](https://github.com/mathphreak/VCRI), a Chrome extension tweaking an existing JS game (finished)
* January 2011: [Arduinochet](https://github.com/mathphreak/Arduinochet), a needlessly-motorized trebuchet I built with a friend
* February 2010: [Acts 20:2](http://sourceforge.net/projects/acts202/), a Java Swing application displaying periodic popups of Bible verses, which I built in collaboration with a few other people
* January 2009: [EPlanner](https://sourceforge.net/projects/eplanner/), a todo list specialized for homework built in Java with Swing
(these are start dates, because that's what made sense to me at the time)
|