Projects

This is a list of all of my projects. This list is sometimes outdated, and yes, it's very long. For a more succinct version, look at my resume instead. This is a very expanded version of that.

This page was last updated on Janaury 2nd, 2023.



The difference between a project being discontinued, abandoned, or complete is somewhat philosophical rather than concrete, so there's just a filter in regard to what I'm actively working on.

Main projects

  • streakersplit. streakersplit is a project for VMware Uhana, a platform for providing real-time telecommunication performance analysis, which uses machine learning and AI to diagnose problems. This video explains Uhana better than I can. Anyway, the goal of the streakersplit project is to separate the large streakerflink service into two new services, sessioncollator and kpi-composer, in order to decrease complexity and allow newer VMware projects (TCx) to be able to easily reuse the kpi-composer. Unfortunately, Uhana is a proprietary project, so I cannot share any source code. I worked on this for my 2022 internship at VMware. Project status: Complete.
  • decoderflink. decoderflink is a service of VMware Uhana, which is a rewritten/refactored part of the origin decoder service. The decoder transforms a big data stream of various format into a unified format (protobufs); it was originally written using Kafka Streams, and I ported it/rewrote it to use Apache Flink. I worked on this during my 2021 internship at VMware. Project status: Complete.
  • Official FTB Wiki. The Official FTB Wiki is an online publicly edited wiki that documents the world of modded Minecraft, including mods, modpacks, and other third-party content for Minecraft. In 2014, I started documenting my own mod (Nuclear Control 2), and I got so far into documenting that I started documenting other people's mods. Now I'm an administrator, and I have over 50,000 edits on the wiki. I used to edit each day and make a lot of new articles, but nowadays I mostly just do administrative tasks. Contributing to the wiki has involved:
    • Writing and editing content in an encyclopedic tone using MediaWiki.
    • Analyzing Java (and rarely Scala/Kotlin) to obtain information for the wiki.
    • Engaging with other editors on various platforms.
    • Creating and modifying templates and other wiki components, using wikitext, Lua, JavaScript, and CSS.
    • Developing third party tools and scripts to deal with wiki management tasks, usually in Ruby, occasionally in Java and Groovy (see other projects).
    • Refining wiki guidelines/help, managing the translation projects, community management (including managing the Discord, appearing in virtual events, and organizing editathons).
    Project status: Semi-actively working on.
  • Nuclear Control 2. Nuclear Control 2 is an addon to a Minecraft mod called IndustrialCraft 2. It is also a fork of Nuclear Control, originally created by Shedar. It helps players monitor their nuclear reactors, but it might be more famous for the Advanced Information Panel and the Howler Alarm, the latter of which can be used to annoy unfortunate victims for hours on end. I ported it, with collaboration from Zuxelus and dmf444, from Minecraft 1.6.2 to 1.7.2 to 1.7.10. Pyrolusite modernized the art. We made some changes/improvements to the mod, which are documented here. Nuclear Control 2 is currently discontinued and replaced by a new mod, World Control (see below). Made in Java. GitHub here. Project status: Discontinued.
  • ESAEBSAD. ESAEBSAD is an IRC bot that can be used to manipulate wiki content, as well as perform some silly commands. Its more useful functions include the find-replace command, the double redirect fixer, and the translated categories generator. I wrote this in Ruby, and you can say it worked out pretty well, since it convinced my fellow administrator Eli to rewrite his bot in Ruby instead of Perl. Since we stopped using IRC, ESAEBSAD was replaced by ESAEBSAD2, which is being replaced with ESAEBSAD3. Project status: Discontinued.

2022

  • WorseThanVim. WorseThanVim is a port of BetterThanVim in C++ (from Rust), made over winter break just to prove I know some C++. Project status: Effectively complete.
  • NAShell. Not A Shell (NAShell) was a school project. I implemented a simple single-cycle MIPS processor in Verilog for an FPGA, and then wrote this program in Assembly for it. NAShell supports 12 simple commands, ~120 characters (including several special characters), supported by ~900 instructions and ~900 words in static memory. I drew all of the "Ericscii" characters myself, and it shows. You can see my demo here. Project status: Effectively complete.
  • streakersplit. See top.
  • JOS. This was a school project to implement key portions of an operating system. The OS supports boot loading, virtual memory, processes/environments, multiprogramming, a file system and shell, and a partial implementation of a hypervisor. It also has special support for floating point operations. Although I would like to return to finish the hypervisor, and complete the optional networking assignment, I consider it done for now. Project status: Effectively complete.

2021

  • MagnumVM. MagnumVM is a custom process virtual machine that I made for queer_hack 2021, which I worked on alone. It's written in Rust. It's somewhat on the experimental side, but it won 1st Place! In the future, I hope to clean it up, and then make an assembler/compiler targeting it. GitHub here. Project status: Complete for now.
  • The Calculator. For HackNC 2021, I wanted to do something, but I was busy that weekend. So me and Chongyi Zheng just made a simple calculator in Rust. He made the "backend" (the parser/evaluator) and I made the "frontend" (the very simple GUI). Even though I spent only about 5 hours of effort on it, I enjoyed learning about the state of the GUI scene in Rust (which is ever-changing). You can try it here using WASM. The web GUI version is slightly different from the native version. You can use the application as a CLI also. GitHub here. Project status: Complete.
  • Psil. Psil is a Lisp-like programming language, which uses Limp as a prototype. It has a standard variety of types (numbers, booleans, strings, symbols, procedures), some composite types (lists, tables), bindings, control logic, mix of functional/procedural programming, a native documentation generator (like Javadocs), and a decently sized standard library (currently over 50 built-in procedures). Working on, sporadically.
  • decoderflink. Limp is a Lisp-like programming language implemented in Rust I made for PackHacks 2021, with some contributions from Chongyi Zheng. I really wanted to create a language from scratch, as well as get some more Rust use. The language is very much a toy language, missing many important constructs, but it has a few powerful features, including conditionals, boolean logic, basic integer/float operations, and bitwise operations. It is succeeded by Psil. GitHub here.
  • miniJava Compiler. This was a school project to create a compiler for a subset of Java. My compiler supports basic integer and boolean operations, arrays, basic control logic, and some level of OOP. I completed the assignment but did not complete all extra credit parts; there's support for field initialization, constructors, for loops, and some level of broken support for overloading. Although I would like to return to finish overloading, more likely I will start a new compiler at some point. Project status: Effectively complete.
  • ESAEBSAD3. This is the third (and hopefully final) iteration of my bot. It is a Discord bot used to manipulate wiki content, as well as do some other stuff. It's written in Ruby and hosted on Heroku, with a PostgreSQL database to log (and potentially undo) actions. Project status: Working on, sporadically.

2020

  • SAP-1. This was a hardware project to create an 8-bit computer. If it is ever finished, I hope to upload many pictures of it. I originally started on it during the 2020 break, but haven't really touched it since. It's about 75% complete. You can see a picture of it here. Project status: On hiatus.
  • BetterThanVim. BetterThanVim is an ed-like command line command-based text editor that I made for queer_hack 2020. This was a conceptual idea that was especially interesting to me, so I decided to work on it alone. It's written in Rust. I consider this to be finished since it works and completes the general concept. GitHub here. Project status: Effectively complete.
  • Tar Heel Calendar. This was created by me, Victoria Hoffman, Alfred Mathew, and Ezri White for our COMP 426: Modern Web Programming final. It is a calendar/scheduling website. Because it's on Heroku, it may take a while to come online if it hasn't been used in a while. The frontend uses React.js, Bulma, and axios, while the backend (which I was in charge of) uses Node.js, express, MariaDB, the mysql NPM package, and Heroku. The GitHub is here. Project status: Complete.
  • COMP 211: Systems Fundamentals (fall 2020) website. This was created by me, Dylan Binley, and Cindy Wang for our COMP 227: Effective Peer Tutoring final project. It is a website for the course, with links to all the lectures and resources, plus some extra resources. It's a static website, using HTML/CSS/JS and Bulma. GitHub here (currently private). Project status: Complete.
  • Mad Muzzic. This is a website created by me, Anand Hande, and Leonard Zhang for HackNC. It allows users to upload a midi file, using machine learning to generate a continuation of it. It wasn't really finished (and we did not win), because we put too much importance into getting a goodnight's sleep, but it was interesting to make. On the frontend, which I was in charge of, we used React.js and Bulma, and on the backend, we used Python Flask, Music21, Keras, and Google Cloud. GitHub here. Project status: Complete (we're done with it, effectively).
  • Newton's Law of Cooling. This was the final project for my laboratory for differential equations. It's an 11-page paper, presentation, and GitHub repo (with coding in MATLAB). The GitHub has links to the other components of the project in the README. Project status: Complete.
  • Breath. This is a game made in Unity (using C#) which is a submission to the Global Game Jam (2020). The goal is to not run out of oxygen. Farts lower the oxygen level by a lot. Having the mouth closed will slowly deplete oxygen, while having it open (use the space bar) will slowly bring it back. The longer you last the better your score. It's a bit like Floppy Bird. This was made by me, Richard Pan, and Dylan Binley. I did much of the code and I Photoshopped some assets. GitHub here. The GitHub is more updated than the GGJ entry since Richard made some last-minute improvements before we had to present. We probably weren't the best game in the room but we used Unity for the first time and so gained some Unity/C# experience. And like most hackathons, about 10% of the time allocated went to actually working, with 90% of the time going to sleeping, eating, goofing off, pretending to work, going to workshops, etc. Oh well. Project status: Complete.
  • This website. Yep! Originally was written in HTML/CSS/JS with jQuery, now migrated to Nuxt.js/Vue.js (specifically Nuxt 3/Vue 3, which uses a bit of TypeScript). Styled with Bulma, hosted using GitHub Pages. GitHub here. Project status: Some migration/updating is ongoing.

2019

  • Conway's Game. Made in Java Swing. This was an extra credit assignment for COMP 401. Although most school assignments aren't noteworthy, I think this one is since I made it from scratch and it has a bunch of cool options. Unfortunately it doesn't work very well in large sizes. Project status: Complete.
  • Ball Game. his is a Java Swing game where the player shoots at ten balls to get points. This was made for a hackathon just for COMP 401 students. We (me, Dylan Binley, Anand Hande) didn't win, probably because the game is genuinely difficult, not super intuitive, and we didn't have time to make it aesthetically pleasing. The gravity is pretty cool. Made in <12 hours. Project status: Complete.
  • Language Fun. This is an Android app that we (me, Anand Hande, Dylan Binley) made for HackNC. It's our first Android app. The app lets you practice the top 100 most common words in Spanish and French. It's not really complete, and not released anywhere. We did not win. Made in 24 hours (minus when we slept and goofed off) in Java. Project status: Complete.
  • Coabot. It's an exercise planner made in Ruby made for personal use. I never really used it though. I believe I made since I wasn't busy enough in my online art appreciation class. Project status: Complete.

2018

  • ESAEBSAD2. A Discord bot written in Groovy to replace ESAEBSAD. I technically started this in early 2018 but didn't really do much until late 2019. Unfortunately the dependencies I relied on no longer function, so I decided to create an ESAEBSAD3.

2017

  • Gamepedia Rapid Anti-Spam Patrol (GRASP). This was an initiative across Gamepedia to revert vandalism (and rarely spam) across wikis. I was appointed a GRASP member. When I was active I patrolled like 10-20 wikis a day to check for vandalism. Project status: Inactive.
  • Long Fall Boots. Ported/recreated small mod from Minecraft 1.11 to 1.12.2 in Java, and from 1.14 to 1.15/1.16.1/1.16.4/1.17.1/1.18. GitHub here. Project status: Complete (until the next update).
  • HuesoDeWiki. HuesoDeWiki is a Minecraft mod created by me in Java to create a base page of blocks and items in the game. It also has a command to copy structures in a {{Cg/Multiblock/Alt}} format, but Hubry made that part. GitHub here. Project status: Complete.

2016

  • BlockRenderer. BlockRenderer is a Minecraft mod created by unascribed used to dump renders of blocks and items. We use it at the FTB Wiki to make tilesheets. I ported the mod from Minecraft 1.10 to 1.11. I was working on porting it from Minecraft 1.12 to 1.15 but someone beat me to it. GitHub here (my fork). Project status: Abandoned.
  • Bonemealable babies. This is a small joke mod for Minecraft written in Java (there was a test port in Groovy, but it had issues) that allows baby animals to be grown by right-clicking them with Bone Meal. Now updated to the latest version of Minecraft. GitHub here. Project status: Complete.
  • BunnyTech. BunnyTech is a small Minecraft mod made in Java by me and Eli Foster during The Modding Trials, a mod-making competition. I tried to make a TESLA-based Basic Generator (which burned Coal) but it didn't work. Eli successfully made a Bunny's Tail that lets the player jump. We didn't win. Project status: Complete/Abandoned.
  • ATT-9001. AKA the Auto Tile Translator 9001. This a tool made in Ruby for the FTB Wiki. Given language files from a mod, it will automatically translate tiles registered on the wiki based on those official translations. It supports both .lang and .json files. Project status: Complete.
  • World Control. World Control was a Minecraft mod written in Java that was a recreation of Nuclear Control 2 for Minecraft 1.10 and 1.12, and without requiring IC2. I was the project manager more or less, although dmf444 has probably taken more initiative than me. Zuxelus started his own fork of the original Nuclear Control called Energy Control, which is the unofficial replacement for this mod, since me and the other developers didn't have enough time to work on it. GitHub here. Project status: Discontinued.
  • The Madness of Little Emma Wiki. This is a wiki that I was the administrator of for a period of time, gaining a bit more than 1500 edits. I made templates and many pages. I am no longer involved. The game is an indie game, not especially popular, and not being updated anymore. I don't think anyone plays it nowadays. So yeah, I don't see much of a reason to return to the wiki. Project status: Abandoned.
  • Gadget-toolbar.js. This is a MediaWiki Gadget written in JavaScript that expands the default WikiEditor to include templates commonly used on the FTB Wiki (infoboxes, crafting grids, etc). Currently retired because Fandom moved to a simpler source editor. Project status: Complete/Abandoned.

2015

  • autosummary.js. This used to be a pretty basic script, but I made it more powerful in 2019. Basically, you can set a default edit summary which is saved via cookies to be used whenever you edit, and you can also toggle that to be on or off as desired. Also, if creating a new page, and there's no summary, it will make the default summary "created page" (which was the original use). Made in JavaScript. Currently retired because it no longer works with the latest version of MediaWiki/the Fandom platform. Project status: Complete/Abandoned.
  • MediaWiki::Butt. MediaWiki::Butt is a Ruby library/gem that makes it easy to perform wiki actions in Ruby. It's created by Eli Foster, with me as a co-author. Mostly I fixed random stuff, but I also added the random articles function and namespace constants. I've used MediaWiki::Butt in ESAEBSAD, ATT-9001, and a bunch of random scripts. Project status: Inactively involved.
  • AntiEndPortalMod. This is a small Minecraft mod created by me in Java that disables the creation of the End Portal by the Ender Dragon, and makes the Ender Dragon drop its egg as an item. It's for Minecraft 1.7.10. This was made by request of a friend and never officially released. It's currently unmaintained. It's a simple mod but was hard to implement since I had to use a library called ASM to manipulate the bytecode at runtime. Project status: Complete/Abandoned.
  • Shiny Stones Mod 2. This was a port/recreation of a small mod that I liked from Minecraft 1.6 to 1.7.10. Written in Java. Never was popular; it mostly just adds a few decorative blocks. GitHub here. Project status: Complete/Abandoned.

2014

  • ESAEBSAD. See top.
  • Flaxbeard's Steam Power. This a large Minecraft mod made originally by Flaxbeard and maintained by SatanicSanta. I'm a co-author/contributor. I mostly just did bug fixes/code cleanup as well as some crossmod integration, including support IC2 canning of FSP's foods, adding a Steamed Imphide for Natura, cross-FSP-IC2-Natura support for that, and NEI support for the Rock Smasher and Steam Heater. Also introduced some config stuff, helped bring back the Block Placer, and added some Rock Smasher recipes. The newer iteration of this mod is called "Esteemed Innovation" (after the in-game book). I'm no longer involved with the project. GitHub here. Project status: Abandoned.
  • AFSU Mod. This is a small Minecraft mod made by me in Java. It's an addon to IndustrialCraft 2 that adds a 5th tier of energy (EU) storage called the AFSU (the block) and the AFB. Currently the mod is abandoned. GitHub here. Project status: Abandoned.
  • My original website. This website isn't super great. Project status: Complete, I guess (works for what I need).
  • IndustrialEx. IndustrialEx is a Minecraft mod created by me in Java that is an addon to IndustrialCraft 2. Unfortunately, I never considered it finished and released it. Currently it's abandoned. This is sad because it had a bunch of cool features, like Nano/Quantum baubles, Natura crops, a rotor made of Dark Steel, and a "hardcore" Macerator recipe. Project status: Abandoned.
  • Official FTB Wiki. See top.
  • Nuclear Control 2. See top.
  • Bony's Desertcraft. Bony's Desertcraft is the first Minecraft mod I released. It has a bunch of cool Desert-related survival items and blocks. It was written in Java and created for ModJam 4. BitBucket is here. Project status: Complete/Abandoned.
  • Bitm. Bitm was my first Minecraft mod, or rather, a reimplementation of it. Written in Java. I originally started it in mid 2013, but unfortunately that original version (which was written for Minecraft 1.4.7) is now lost. The last version of Bitm was for Minecraft 1.6.2. Never released. The code is pretty embarrassing. There's some decorative blocks and items. Project status: Abandoned.