2012 in Sideprojects
A year in review
Published on 12 January 2013It 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