Projects

Local Chat Server

A toy project to write a local chat server using sockets and the poll syscall. Can handle multiple concurrent connections on a single thread.


Raytracer

A small project to try to write a raytracer without reading any reference materials about how raytracers actually work. Here's the scene it produces, while it looks fairly 3D there are some strange visual artifacts, such as the dark ring between the lighter regions on the green sphere.


SOS (StackOverflow Search)

If you've written software before, you're probably familiar with the process:

  1. Write code
  2. Run code
  3. Search resulting error messages on StackOverflow
  4. Fix code
  5. Repeat

SOS is a command-line tool that aims to make step 3 easier. It parses the output of a program to look for error messages. For each error message identified, a link to the relevant StackOverflow search query is displayed. You can even pass a command line flag to ask SOS to automatically open the links in your browser. Finally, SOS is extremely customizable - you can add a new type of error to track by simply including the corresponding regular expression in SOS's config file.

Here is a demo:


Ship-Git

Ship-Git is a dev tool for automatically pulling updates to your GitHub repositories on remote servers. It is a Flask app that you can run on your server. When it receives a GitHub webhook request, it will execute a customizable bash script. This makes it easy to automatically pull updates to your remote server when you push updates locally, and restart the service if needed.


What2Eat

What2Eat, inspired by when2meet, is a website that lets you create and send polls for anything (including food).


Infocus

Infocus is a chrome extension that helps you be productive on the internet by blocking distracting websites. It forces you to solve mental math problems when you want to disable it, which I think is a pretty positive form of negative reinforcement.