General

Gems

Web Based

Personal projects that aren't interesting enough to deserve their own page.

Sikuli Draw

drawing on flash applications

My Physics course required us to graph the acceleration and velocity in a flash application. I wrote a Ruby script to take an image and create a set of on pixels using imagemagick. Those pixels are then read by a Sikuli script, which uses Jython to locate the box, move the pencil to each of the pixel offsets, and click there. This allowed me to draw pictures into the flash application.

Now that I'm familiar with JRuby, I could have probably used that and contained the entire project in a single file, but at the time I did this, it was pushing my boundaries.

results

Engineering Open House

guide driven learning "framework"

Our school's Engineering Department has an open house every year where students can show off their work. Mostly they just show off their senior projects, but as CS majors, we weren't required to do such a project, so we had a lot of freedom to do whatever we wanted.

For our project, we hooked into our text editor, and had a bundle that would compare the file the person is working on against a series of tests. The tests would then guide the user from what they had to what was expected of them. The results of the tests were displayed on a traffic light we borrowed from the City of Wichita (controlled by a bluetooth Arduino), and were also displayed with RSpec style formatting in a window to the user.

Sort Time Complexity

graphing big O times with the growth of n

A short project to see the difference in time complexities for various Big O notation algorithms. It's written in C, and compares insertion sort to merge sort.

graph

Check out the code.

Chemistry Timer

Shoes app to replace one of my lab partners

In my Chemistry course, one of my lab partners had the sole responsibility of watching the clock and informing us every 20 seconds that we needed to take a measurement. Unfortunately, this proved too much for him, and my grade suffered as our measurement times were sporadic.

To replace help him, I wrote a program to watch the clock and tell us when to take measurements.

screenshot of chem timer

He later dropped, and my other partner and I finished off the semester with an impressive rate of success :)

Code is on github.

Craigslist Watcher

automatic notification of free stuff

I decided I wanted to play around with trying to host my own server, but I needed a computer to do this with. I started watching the free stuff section of Craigslist. I quickly realized this should be automated, so I wrote craigslist-watcher which just sets up a cron job to go scrape the free stuff page, identify any new offers that match my criteria (in this case, computers), and then pop up a notification.

example notification

Set it up through a simple commandline interface.

$ cron.rb comp  # tell it to watch for /comp/i
$ cron.rb       # turn it off
$ crontab -l    # list cron jobs