Reliving the Atari 2600

- Projects

I am currently taking a course titled “Hackers in the Bazaar”, which is, by all acounts, the greatest class ever. Anyway, we spent class today playing classic video games brought in by students. I brought in a SNES and a copy of Mortal Kombat). Additionally, I spent about an hour and a half yesterday creating something a bit special for the occasion. My dad keeps his old Atari 2600 up in my closet, along with a chest full of games.

Continue reading ↦

How to Drive Your Roommate Crazy

- Projects

For the past five months, I’ve had an old IBM Model M sitting on my desk. Specifically, a 1390572, a 122-key monstrosity. Ever since spending the summer typing on one of these old keyboards I have wanted to get this keyboard working, because it is very loud and very fun to type on. I found a converter for about $40 online, but that doesn’t seem worth it. The keyboard has this weird DIN-5 connector, where the pins sweep 240 degrees; I’ve never seen any connector quite like it.

Continue reading ↦

A Prediction on the Future of Movies

- Ideas

About a year ago my dad suggested that in the future, it will be very common to see virtual actors. That is, there will be actors who exist only as the product of CGI and speech synthesis. Additionally, he believes that very famous actors will be preserved in this way - replications of famous actors will be able to fill in for actors at any age and at any point. We are already beginning to see this, and as the technology begins more advanced I believe it will become more acceptable to replace actors with CGI.

Continue reading ↦

Live Action Armor

- Ideas

For a while now, I’ve been wanting to create a set of foam armor that can keep track of hits and their locations. As a kid I used to like fighting with foam swords, but there wasn’t an easy way to stop people from lying about being hit. It would have been nice to have something like what I describe below: The basic idea for hit detection I came up with is shown in the image below.

Continue reading ↦

A Recurrent Neural Network for Wolfrat Bot

- Projects

For fun, I decided Wolfrat Bot needed a bit more, err, personality. So, I set off to make him one. After training an RNN for a few hours on my desktop’s GPU, I had interesting results but ultimately failed at achieving quite what I wanted. Anyway, I encountered some huge hurdles I found out AFTER training for ~8 hours that the way I was encoding the characters for the network input (and thus, the way I was decoding the network output) behaved non-deterministically between Python 3.5 runtimes!

Continue reading ↦

Automatic Site Rebuilding with PHP and GitHub

- Projects

The content of this website is on GitHub here. A nifty feature about GitHub are its Webhooks. I wanted to be able to add content here without having to SSH into my server, cd-ing into the www directory, git pulling, and makeing, as those steps are tedious. So, I set up a GitHub webhook to POST to a PHP page on the server. The basic form of this PHP page is just: <?php passthru("MYSCRIPT.sh"); ?> Where MYSCRIPT.sh is just a script that pulls and makes the site.

Continue reading ↦

Data Structures Final Project - SnowGPS

- Projects

For our final project for our Data Structures course, my group decided to make a GPS app that finds the path with the minimum time spent outdoors. We wrote a python program to allow us to map our campus as an undirected graph, with vertices at the intersection of every outdoor path, and at every door of every building. To decide paths, it uses Dijkstra’s Algorithm. To achieve our goal of deciding paths with the least time outdoors, we assign weights of 0 to all edges that connect nodes within buildings, and for each other edge the weight is the linear distance between the nodes.

Continue reading ↦

An Arcade Machine (Mostly) From Scratch

- Projects

This project is one that has been in development for a few years now, and it probably won’t be finished for a few more. It is one that has grown in scope considerably, and is really the result of several smaller projects. Currently, the end goal is to have a fully working arcade machine of my very own - running a game I wrote on hardware I built. The project began at the end of grade school when I decided to try making my own fighting game.

Continue reading ↦

Legacy - Why Names Are Important and You Should Always RTFM

- Projects

My summer job always ends up being a grab bag of different assignments, ranging from IT tasks such as installing a new network switch or deracking an old server to more developer tasks such as writing a document management program. Most recently, however, I was tasked with updating some of their legacy programs that run on their IBM AS400. The more impactful change I was instructed to make was to reverse the sort order on a list of jobs for a given company - since 1991 they were listed in ascending order, meaning users had to scroll to get to the newest jobs.

Continue reading ↦

Multiplayer Spaceship Game

- Projects

Back between 2008 and 2011, I spent a fair bit of time on FunOrb. One of their most interesting games was their last official release, Void Hunters. Unfortunately, FunOrb did not last much longer than that, as there has only been a small handful of updates since then, and with the death of NPAPI Plugins, the Java-based gaming site has virtually no chance of being revived. Some time around my freshman year at Notre Dame, I decided that it would be fun to recreate the game.

Continue reading ↦