My Toolbox

Every so often, someone asks me what software tools I use to do my NBA analysis.


I do most of my coding in Ruby these days. It’s a fully object-oriented (literally everything is an object, even numeric literals — for example, 4.succ produces 5!) and dynamic scripting language. Here is a link to some of my play-by-play code. I recommend this for a fun and free intro. The O’Reilly books will get you going, too. If you’re really serious, pick up Eloquent Ruby and Design Patterns in Ruby. 

I mostly use TextWrangler as my editor. It’s free and you can run code directly from it without having to go to the command line. 

I’m actually using AptanaStudio3 for most of my Ruby coding these days.

Nowadays I’m using Sublime Text 2 for Ruby and WebStorm from JetBrains for JavaScript coding.


I used to do everything with just .csv files, but saw the light of day, and have started using databases. Specifically, I’m using MongoDB, which is one of the so-called “NoSQL” databases that are gaining in popularity these days. There are a few reasons that I like MongoDB. The first is that it maps really well to object-oriented programming in a language like Ruby. The second reason is that when I’m developing a new application or metric or web scraper or whatever, I don’t want to be tied down (in the beginning anyway) to a particular schema. MongoDB  allows me to be very flexible in how I build the database. The third reason is simply that I like to learn about new technologies, and MongoDB seems to be gaining traction as the database of choice for the JavaScript stack.


Pretty much R. It’s free and has thousands of free stats packages. I use the RStudio front end. Also free. The O’Reilly R in a Nutshell book is a good reference. I also found Everitt and Hothorn’s A Handbook of Statistical Analyses Using R a good starting point. There are seemingly new books coming out every day that use R, like Springer’s Use R! series. Another great resource for learning R is to follow some blogs, most notably R-bloggers, which aggregates pretty much everything happening in R these days.

That’s pretty much it. Add Ruby and R to your other 3 R’s and your all set to do some serious (or even not-so-serious) analytical work.

Leave a Reply