{{> header}}
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.
2020-10
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.
2020-09
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.
2020-09
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.
2020-08
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.
2020-04
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.
2020-04
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.
2020-04
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.
2019-12 (until current)
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 a web-frontend for it at refactoring.marks.kitchen.
2019-10
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.
2019-08
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 here.
2019-01 (until current)
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. I wrote some about making this here.
2019-03
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 (Java: 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 here.
2019-05
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.
2019-02
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
2019-10
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.
2017-10