A collection of my projects, mostly programming
Daily RSS Server
A server that just hosts an RSS feed. This feed is populated daily with items that change based on the day, such as upcoming holidays, links to newspaper comics, and fetching journal entries from historical ebooks.
I use wiki.js for my personal wiki. I wanted a simple client I could use for it and a command line one would also allow for me to script it. The wiki comes built in with a GraphQL API, so I learned some GraphQL and created a python wrapper that allows for managing and editing of wiki.js content over this API.
Pi Weather Station
I set up a sensor on a raspberry pi zero to measure the temperature, pressure, and humidity. This project is a web site that runs on the pi that plots the data over time. In the future I’d like to make the plots nicer, and include outdoor temperature data as well.
Local Podcast Generator
I had some audio files on my phone I wanted to listen to like a podcast. My podcast app is way better for this type of content than a general purpose media player. So this app will locally create a web server that serves an rss feed generated from a directory on your phone. This can be added like any other podcast in your favorite app.
I found myself wanting to browse social feeds a lot, and wanting new content. I have a lot of documents on my file of things I haven’t explored yet. So this program tries to merge the two: a generated feed of files on my computer.
A collection of HTML5 games that I’ve made. When I have some fun idea, I’ll host it here. It has high scores for some games too, and a scoreboard. I am pretty proud of how this website turned out, it is what I wanted to have when I was a kid.
Backdoor Learning on Models of Code
A class project where I studied how to poison training datasets of source code to create backdoors in a model predicting a function name based on a code body. A backdoor is an inocuous feature that will force a prediction to a target label. By modifying a small proportion of training data, with something like adding an unused variable declaration, the backdoor will be successfully learned. I implemented the Sever algorithm which attempts to find and remove poisoned data, but it was unsuccessful at doing so on the code2seq model architecture.
Multi-level Wavelet-CNN HDR Image Reconstruction from Single Exposures
A class project that used MWCNNs to reconstruct images. On HDR single exposure images, white balancing often clips values. The novel wavelet approach was able to reconstruct image detail in a realistic way.
My website I made to host manage my budget. It functions a lot like a spreadsheet, with some more advanced features and an easier interface to use. It is multiuser, and if you are interested in using it send me an email.
For class, I did a project using program synthesis to refactor programs. The program tried to find areas inside source code that could be extracted into methods. It sort of works, and in the future it could really be improved by using compilers techniques. I also made web frontend for it.
A game I worked on with some friends for GBJAM 2019, and is Oregon Trail, in space. This game was made over the course of a week, and can be played at this_link
Telegram Plugin Bot
A custom Telegram bot I wrote in python that allowed for custom plugins. This made it super easy to add functionality to a bot, and it made my group chat with friends lively. This project has now been suceeded by a rewrite in Java. It was difficult to manage loading and unloading in Python, and wrapping the API by hand made it difficult to expand beyond basic messages.
2017-11, then 2019-10
A general purpose bot and web server to play Telegram HTML5 games. I couldn’t find any existing solutions that allowed me to deploy these games easily, so I wrote my own. The API is not well documented, and I wrote a bit about it in a blog post.
A personal database management system I wrote in order to keep track of a lot of things. I use this as a bookmark manager, a recipe and pantry organizer, and a way to store lots of other things too.
A firefox extension that adds the reading length of a website to the title of a page. This was my first web extension, and its technique for finding paragraph content doesn’t work great. It works well in firefox on Ubuntu, as the window bar will display the title with the updated reading time.
The engine behind this website. I wanted to learn more about back-end servers, and creating a way to me to update this website dynamically. I wrote a blog post about the making.
A compiler I worked on as an indepedent study during undergrad, implementing techniques from “Compilers: Principles, Techniques, and Tools”. I also wrote a small stack based virtual machine that runs the generated code
A general purpose card game engine. I wanted to test out some strategies for card games, so I tried to write an engine for it. I didn’t finish it, but you can play some basic card games in this engine.
A rogue-like demo game I made just for fun while I was on winter break one year.