DPath—Filesystem Querying with XPath

YAMS: Awesome MIPS Server

My EECS 314 project group (Jeff Copeland, Andrew Mason, Thomas Murphy, Katherine
Cass, Aaron Neyer, and myself) created a HTTP 1.0 web server, written entirely
in MIPS assembly. In addition to serving static pages, it also comes with
“dynamic content” courtesy of a
Brainf*** interpreter also written in
assembly.

PyWall—A Python Firewall

My EECS 444 project group (Jeff Copeland, Andrew Mason, Yigit Kucuk) implemented
a firewall in Python. While obviously not practical for normal use, this
firewall illustrates the basics of packet filtering (including TCP connection
tracking) in a high-level lanugage, which is much easier to understand and
extend than C.

Corvid—Static Site Generation Made Easy

For our Software Engineering project, my team (me, Jeff Copeland, and
Kyle Deal) created a web application that helps people create simple static
web sites. It uses Pelican under the hood, and it’s
implemented in Python using the Django web framework. Unfortunately, Corvid is
no longer deployed. However, a few friends are working on a sequel for their
senior project – stay tuned.

Personal Projects

CWRU Love—Web Service for Spreading Love

I’ve launched a version of the
open-source Yelp Love for
students, faculty, staff, and alumni of my school. This web application lets
users send short notes of appreciation (aka “love”) to each other. In addition
to setting up our version of the web service on Google Appengine, I’ve been
contributing features and bugfixes back to Yelp’s open source project.

KChat—In-Kernel Chat Server

A kernel module that implements a special device file that allows everyone with
a file open to send each other messages in real time, like a chat server. If you
think about it, it is acutally an IPC mechanism. Whatever you call it, it’s a
lot of fun.

PySwizzle—A Twitter Bot

Hacker’s Society hosted an event called “Python and Pie”
for incoming freshmen during Fall 2015 orientation. I gave an intermediate
Python tutorial, which was all about writing a Twitter bot using Python. As a
result, this bot and the accompanying tutorial are now on GitHub for others to
learn from. The bot responds to any @mention with a randomly chosen Taylor
Swift lyric.

Tetris in C!

A 24 hour Tetris implementation written in C, using the ncurses library. I
wrote an accompanying blog post about it, which also touched on how important I
find my personal projects, even if some are reimplementations.

Libstephen

This library extends the standard C library with dynamic lists, hash tables,
regular expressions, command line argument parsing, several string-handling
utilities, logging, and lightweight unit testing. It’s an experiment in making
an API as well as sharing code. Several of my other C projects depend on it
already.

tswift—A Python MetroLyrics API

CBot—IRC Bot in C

A fun little challenge - write a functioning IRC bot in C! This little guy was
a great excuse to use Libstephen’s regular expressions in the real world, as
well as learn all about dynamic loading of modules and the IRC protocol. CBot
currently has the basic functions necessary for a chatbot, and I’m sure I’ll
return every now and then to expand on his available plugins.

Minesweeper

A minesweeper game written entirely in C, with both a command line and graphical
interface. This was a fun and short project to apply my C knowledge, as opposed
to my more ambitious, long running projects above.