Zum Puzzler Pocket is a game I wrote. It was developed entirely in assembly language, and runs on a Nintendo Gameboy Color. (In fact, I produced a cartridge of it, which actually worked on a real Gameboy!)
I’ve created almost a tradition of sorts in my family, creating a new game as a gift for my sister’s birthday every year. Zum Puzzler Pocket was one of these games, the next installment in this series.
Not only did I write the entire game in assembly language, but I wrote my own assembler, gbasm, specifically for developing Gameboy games. I’m very proud of the fact that I was able to take a system that I had basically zero prior experience with (knowing very little about the system’s processor, its assembly language, or its graphics hardware), create a fully-functional game (complete with my own tooling!), and produce a working, physical cartridge. The project was also a learning experience for me, helping me understand concepts and develop skills that could be used in future projects, like my Soviet computer replica.
FCAPlus is the name I gave to a series of patches (along with a Python script to apply them) that take the Android app for FirstClass, the email system my school uses, and resolve various issues I’ve encountered.
The Android app for FirstClass isn’t the greatest, with a dated, glitchy interface that was last updated in 2013, and an average rating of 2 stars. (at least, until it ended up being taken off the Play Store entirely) While I can’t change what my school uses for email, I could try and fix some of these issues, which is why I created FCAPlus.
Even though the code itself is not super complex, it’s something that I’ve found to be incredibly useful and well worth the effort, even when it comes to minor changes like moving the send button on the “new email” screen. In addition, it was my first time with this sort of reverse-engineering and patching of an Android app, and I had to learn Smali in order for my patches to do anything really useful.
tasky is a minimialistic service that let you keep a series of to-do lists. All of your data is stored in MyHomeworkSpace, meaning that the apps themselves are entirely client-side and just need you to grant access to your MyHomeworkSpace accounts.
There were two main reasons I wanted to create tasky: first, I needed a to-do list app, and second, it served as a test of the MyHomeworkSpace API. By building a relatively functional app, as simple as it may be, it made sure that there was nothing missing in the API and verified that it is possible to build something useful on top of MyHomeworkSpace.
The apps themselves can rely entirely on MyHomeworkSpace for authentication and storage, meaning that they do not have nor need a backend, and can synchronize data between devices very easily. In addition, there were little to no changes necessary on the MyHomeworkSpace side of things, again proving that the API is pretty complete in terms of building apps to interact with MyHomeworkSpace.
CoursesPlus was a Chrome extension that took the Courses website, which my school used for teachers to post homework and assignments, and extended it. The extension provided extensive customization options for almost every page on the site, and also added several useful features, such as the ability to hide events.
I wasn’t very happy with the look and feel of the Courses website, so I made some tweaks to the CSS, and realized that I could package these tweaks up as an extension, allowing me to easily distribute them to other students.
While it has become useless with the death of the Courses website, CoursesPlus had a long lifetime, with built-in analytics showing that, during its life, the extension’s code was cumulatively run over half a million times.