aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMelody Horn <melody@boringcactus.com>2020-11-17 20:48:40 -0700
committerMelody Horn <melody@boringcactus.com>2020-11-17 20:48:40 -0700
commit6b687d04e3e91c7ba8ea9ce3f93d61f89c88a8e6 (patch)
tree71727ba7de46f60cd9290517ed6054c73f3a9cc7
parent6111d6de623a28652632eaf939e179b036dc487b (diff)
downloadboringcactus.com-6b687d04e3e91c7ba8ea9ce3f93d61f89c88a8e6.tar.gz
boringcactus.com-6b687d04e3e91c7ba8ea9ce3f93d61f89c88a8e6.zip
overhaul projects list
-rw-r--r--projects.md182
1 files changed, 114 insertions, 68 deletions
diff --git a/projects.md b/projects.md
index dd50aa6..d0268b2 100644
--- a/projects.md
+++ b/projects.md
@@ -3,71 +3,117 @@ layout: default
title: Projects
permalink: /projects/
---
-* JavaScript
- * Developed games
- * with [HTML and React](https://github.com/mathphreak/halfhearted)
- * with [just the Canvas API](https://github.com/mathphreak/Zrczr)
- * with [a pure-HTML text UI](https://github.com/mathphreak/LD28-You-Only-Get-One)
- * with [a full HTML5 game engine and a team of people](https://github.com/mathphreak/Galactic-Max)
- * with [Elm](https://github.com/mathphreak/yummy-goodness)
- * Developed Web apps
- * a React front-end for a Java back-end as part of a group project
- * [a specialized todo list](https://github.com/mathphreak/hamwerk) with Meteor
- * [a realtime quiz application](https://github.com/KamikazeKumquatsLLC/komodo) with Meteor
- * [a status dashboard](https://github.com/mathphreak/MCWebDash) pulling data from a Java backend via UDP
- * Developed libraries
- * [remembering scroll position on a page](https://github.com/mathphreak/Pecan.js)
- * [interacting with the GitHub API from the browser](https://github.com/mathphreak/github.js)
- * [sorting strings in a natural-language-friendly way](https://github.com/mathphreak/compare-ignoring-articles)
- * Developed desktop programs with Electron
- * [for moving files around with a decent UI](https://github.com/mathphreak/ReliefValve)
- * [for diffing output of two programs](https://github.com/mathphreak/verbatim)
- * Developed a [Chrome extension](https://github.com/mathphreak/VCRI) making improvements to an existing site
-* Rust
- * [Wrote a text editor inspired by Nano](https://github.com/mathphreak/mfte)
- * [Made a Web app](https://github.com/mathphreak/cs-eco-dash) that consumed and processed data given in a poorly specified format
- * Contributed to [the standard library](https://github.com/rust-lang/rust/pull/34694) and [wasm-bindgen](https://github.com/rustwasm/wasm-bindgen/pull/1843)
-* Python
- * Wrote a [wxPython GUI](https://github.com/boringcactus/vidslice) for video manipulation using ffmpeg and youtube-dl
- * Wrote an [image processing](https://github.com/mathphreak/hexcells_hints) utility
- * Contributed to [a GroupMe chat bot](https://github.com/Boijangle/GroupMe-Message-Bot)
-* Java
- * Developed a Spring back-end for a React front-end as part of a group project
- * Developed desktop programs in Swing
- * [a homework-specific todo list](https://sourceforge.net/projects/eplanner/) (my first open source project, in 2009)
- * a CSV data processor
- * Developed Android apps
- * [Bluetooth-based robotics control system](https://github.com/mathphreak/RobotArmStuff)
- * competition status tracker
- * Developed plugins targeting an existing API (Bukkit, for Minecraft)
- * for a client [1](https://github.com/mathphreak/StaffDrops) [2](https://github.com/mathphreak/CompetentDeathMessages)
- * in collaboration with other developers [1](https://github.com/mathphreak/Fireworks) [2](https://github.com/mathphreak/RepublicaEternityEventIII)
- * for my own needs or to test what was possible [1](https://github.com/mathphreak/SpawnAndBack) [2](https://github.com/mathphreak/Trollcraft)
-* C++
- * Wrote an XPM decoder and a basic GUI layout library targeting a single-pixel-based graphics library
-* Open Source Contribution
- * Contributed features
- * [to a newly created Rust library, from scratch](https://github.com/mrandri19/rust-editorconfig)
- * [to the Rust standard library](https://github.com/rust-lang/rust/pull/34694)
- * [to a Chrome extension](https://github.com/honestbleeps/Reddit-Enhancement-Suite/pull/826)
- * [to a large Minecraft server plugin](https://github.com/Multiverse/Multiverse-Core/pull/780)
- * twice to a widely used Node.js library [1](https://github.com/joaomoreno/gulp-atom-electron/pull/28) [2](https://github.com/joaomoreno/gulp-atom-electron/pull/29)
- * Fixed bugs/issues
- * [bugs in CMake test configuration](https://github.com/editorconfig/editorconfig-core-test/pull/8)
- * [grammar in documentation](https://github.com/jonobr1/two.js/pull/3)
- * [outdated and broken dependencies](https://github.com/aweinstock314/rust-clipboard/pull/43)
-* Ruby
- * Developed Web applications
- * [Docker-based code runner](https://github.com/mathphreak/E-800) (with Rails)
- * [Gmail API client](https://github.com/mathphreak/cull21) (with Sinatra)
- * Developed a [productivity daemon](https://github.com/mathphreak/prodenfd)
-* Go
- * Wrote a [Web-based dashboard](https://github.com/mathphreak/AltcoinNetWorth) and [WebSocket chat](https://github.com/mathphreak/webchat-go)
- * Wrote [a proxy server and API client](https://github.com/mathphreak/statdns-socks5)
- * [Ported cryptography-related C code to Go](https://github.com/mathphreak/reop)
-* Embedded
- * [Programmed and built a motorized trebuchet](https://github.com/mathphreak/Arduinochet)
- * Adapted existing code to [pass light sensor data to a computer for audio](https://github.com/mathphreak/piano-stairs).
-* General Programming Knowledge
- * Translated [someone else's ActionScript synthesizer](https://code.google.com/archive/p/tonfall/) into [pseudocode](https://github.com/mathphreak/tripping-wight)
- * Wrote [an emulator in CoffeeScript](https://github.com/mathphreak/BecauseWhyNot) for a CPU based on specs written as lore for a video game that was later canceled
+
+* 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.org), 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.cs.unm.edu/slabforge/), a JS CAD tool for slab-built ceramics
+
+* 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)