2012 in Sideprojects

A year in review

It always surprises me how long a year is. It’s hard for me to believe that some of these projects were a year ago, but I’m happy to see my progress. Here’s a walk down memory lane for my projects in 2012, not including course projects and research.

Exploit Exercises: Protostar, Nebula

Description
A series of security wargames from Exploit Exercises.
Languages & Tools
shell, C, assembly and shellcode, command line tools, compilation and libraries
Other
These were both fun and educational. These problems required a good deal of persistence. Topics ranged from: buffer overflows, shell code, stack layout, library linking, race conditions, format strings, command line tools, networking. I’ve posted the solutions on this site for the format string, stack, and shell exploit sections.
Links
Nebula shell solutions: part 1, Protostar stack solutions: part 1, Protostar format solutions

Project Euler

Description
A series of mathematical programming problems from Project Euler.
Languages & Tools
C++, Scala
Other
Over the winter break of my freshman year (January 2012), I worked on these in C++. I’ll admit that I’m a bit embarrassed of the code I wrote – C++ isn’t the greatest language to use to work on these problems. However, Project Euler is a great way to become familiar with a language. The problems become significantly harder, and I continued with Scala (June 2012 - August 2012).
Links
code solutions

.grabrc

Description
A command-line client for downloading dotfiles from Github, giving a comfortable editing environment from any terminal. It can be installed via pip (pip install grabrc-client).
Languages & Tools
Python (client), Scala Play Framework (server)
Other
This was a pretty significant endeavor over the summer. The idea was motivated by my work with Amazon EC2 machines, virtual machines, and random in-house servers. Many times, I had to do work while ssh’d to those machines, but it was less productive without my comfortable shell and emacs environment at hand. sftp’ing files is a bit tedious, so I wrote a client (command-line Python) and a server (RESTful API) for accessing my dotfiles. The server is currently hosted on Heroku. I do, in fact, eat my own dog food, and it’s very handy when setting up new computers.
Links
server source code, client source code, PyPI index

Shuttleboy iOS

Description
A native iOS version of the Harvard shuttle tracker, Shuttleboy.
Languages & Tools
Objective-C, Cocoa Touch
Other
I worked on this for a few weeks during the winter break of my freshman year (January 2012). I didn’t want to pay for Apple Developer membership on my own, but after a long wait, I’m planning to release it through Rover soon.
Links
screenshots

Shuttlebaby

Description
A website with the next few times between two particular stops on Shuttleboy. Can be forked and customized.
Languages & Tools
PHP, HTML, CSS
Links
site, source code

Hungry

Description
A website with an obnoxiously concise version of the Harvard dining menu, showing only entrees. Includes an option to sign up and receive daily emails.
Languages & Tools
PHP, HTML, CSS
Links
site, source code

Jenkins Arbitrary Parameters Plugin

Description
A plugin for the open-source continuous integration tool [Jenkins] that allows an arbitrary number of string parameters to be passed in as key-value pairs in properties file format.
Languages & Tools
Java, Jenkins
Other
Over the summer, one of my first intern projects was constructing a parameterized test framework in Jenkins that would run jobs along a matrix of parameters: operating system, MySQL version, log4cpp version, Java version, etc. Along with some work on the ec2-plugin, this was my first time looking at such a huge codebase. After poking around the Javadocs and Confluence wiki for a substantial amount of time, I wrote this plugin.
Links
source code

louisrli.github.com

Description
This site.
Languages & Tools
Customized Twitter Bootstrap (HTML/CSS/Javascript), Jekyll, Markdown
Links
source code, site

Comments