Ruby

Ruby is my favorite language to work with. I vividly remember the first time I got my feet wet in the language. I had been hearing a lot of hype about Ruby, so I figured one day at work I should install it and see what it could do. I opened up irb and just started guessing at the syntax. I was amazed when, 9 times out of 10, my guess at how something should work, or what a method should be called, was correct. I thought to myself, this language gets out of my way to let me get things done. This is how a language should be! It immediately became my go-to tool for the many small network admin scripts I wrote to automate things around the office.

As I moved into web development, I thought the Rails has the cleanest implementation of the MVC framework, and discoverd that ActiveRecord was the best ORM ever invted. Recently, I have been building a lot of projects in Sintra (ie. this website ), which I love for it's simplicity and low footprint.

In graduate school I adopted Ruby as my go to language for homework assignments. Computer science homework, particualry the coding assignments, is often ripe with trial and error, and rightfully so. After all, what's the best way to learn the right way to do something, or to see why another approach is slow or wrong, other than trying it out? Ruby made the many interations of many attempts at finding the right algorithm go by so much faster. As I delved further into the language, I started to learn about things like meta-programming, showing off more and more of the power of Ruby.

This site was developed as a portfolio of my work, in the hopes of helping me find a job when I graduate in May of 2013. If that job could include writing Ruby every day, I would be a very happy man. Below are some examples of my work with Ruby. If you'd like to see more, please checkout my github page.

This is a web based client I made for MPD, the Music Player Daemon. I love MPD because it allows me to run one instance of it on my media center at home, which I can then control from any of the numerous network connected devices I have at home. With it's built in HTTP streaming, it also gives me access to my library from my office, friend's houses, etc. rMPD is broken up into two pieces. The first is a server that runs on your home network. This is basically a wrapper to librmpd to provide a RESTful HTTP API for MPD. The other piece is a JavaScript heavy web-based client to communicate with the server. Click here to find out more and view the code.

In graduate school, I took a class on data mining. We covered subjects such as data types and data quality, similarity metrics, clustering, classification, association analysis, and anamoly detection. All of my algorithms were implemented in Ruby. At the end of the semester I produced a portfolio of my work. This portfolio is a general overview of what I did, and what I took away from the class. To take a closer look at the various algorithms and data mining techniques I implemented, check out this GitHub repository.