This year’s Ruby Hoedown was at the Scarritt Bennet Center in Nashville. Per his usual, Jeremy McAnally organized a top-notch, free, two day regional Ruby conference that was a pleasure to attend. A lot of work goes into organizing this type of thing. I doff my proverbial hat to Jeremy for making the Hoedown a reality for six years straight.
I wasn’t able to attend the Hoedown last year so this was my first experience at Scarritt Bennett. The gothic architecture was quite beautiful and made for some lovely ad-hoc photos taken with my iPhone. The presentation room was comfortable enough and just the right size for the nearly 250 developers who attended. Power was in short supply the first day, but the problem was quickly rectified (EE pun) by the appearance of a plethora of extension cords and power strips. By the end of the day there was enough power for everyone who wanted it. Wi-fi remained stable throughout the conference.
Brad Winfrey gave the first talk of the day, titled “gem install erlang” [slides]. I’m not a functional language guy, but Brad’s talk made me want to look at erlang again. What was most impressive to me was his demonstration of erlang’s built-in pattern matching. I can see how someone could get addicted to that kind of power.
Next was Phil Harvey with “REST & Hypermedia” [slides]. If you’ve ever wanted to change an API without breaking things for your existing users, Phil’s talk gave a solution in hypermedia. He demonstrated various ways to link together resources using calls that return link relations. The server essentially builds URLs dynamically for the user. He also made the point that if you aren’t using hypermedia, you aren’t really using REST.
GitHub was well represented at the conference. Brandon Keepers, one of their developers, presented on “Why Our Code Smells” [slides]. I always appreciate suggestions on how to make my code better and Brandon did not disappoint. The biggest idea I took away from his talk was to strive for clean separation between the ORM and business models. In other words, reduce coupling to the framework (e.g. ActiveRecord).
Jeffrey Baird gave a talk titled “Growing Your Own Developers: Hiring Programmers with Little to No Experience” [slides]. I really appreciated this talk since a big catalyst to pursuing programming as a career was an 8-month apprenticeship at RoleModel Software during my sophomore year of college. Jeffrey made the point that computer science majors are not predicted to meet labor demands through 2016. One way companies can find the talent they need is to hire motivated, passionate beginners and give them the tools and training they need to grow into experts.
To conclude day 1, Dave Worth presented “Static Analysis in Ruby Applications with Brakeman” [slides] which I unfortunately missed.
Jeremy Holland kicked off day 2 with “Using System V Shared Memory in Ruby Projects” [slides], a highly technical but very enjoyable mini-tutorial on how to use and manage shared memory with C. The problem he was trying to solve was to quickly search a massive binary tree. Ruby has no concept of shared memory, requiring C to be brought into the equation. It was nice hearing about another tool on the programmer tool-belt that can be used to solve problems like this.
Will Farrington introduced us to “The Setup” [slides] which is GitHub’s answer to the problem of managing an army of developer laptops. The Setup uses the CLI and Puppet and has been in development for 6 months. It enables a developer to script a configuration for his laptop (e.g. Apache, Ruby, RVM, a text editor, custom Bash aliases, etc) and have that configuration automatically installed on a new MacBook.
“Adhearsion: Telephony Through Ruby-colored Lenses” [slides] by Ben Klang was another presentation I unfortunately had to miss. But I’m sure he knocked it out of the park, to borrow the colloquialism.
Lance Ball presented “Sleep Better with TorqueBox” [slides], an introduction to the Java-based JBoss 7 application server. He quickly pointed out that you don’t need to know Java to use it, and that no instrumentation is required for Rails apps. In fact, the server supports any Rack-based application and provides scheduled jobs, robust background processing, long-running daemons, caching, messaging, web sockets, and clustering.
Lightning talks have been an important part of the conference each year and 2012 was no exception. Talks were given by Will Farrington, Brandon Valentine, Ernie Miller, Cameron Dukes, Yossef Mendelssohn, Frank Rietta, Chad Taylor, Loren Norman, Edward Anderson, Winston Hearn, and Jeremy McAnally.
Anthony Eden gave the keynote which wrapped up day 2 and the conference itself. His presentation was a nice mix of nerdy technical content (Lisp, Clojure, Erlang) along with some plain old motivational talk. He encouraged us to keep building things, to expand our toolbox by learning new programming languages, to share our experiences with others, and to never stop having fun.
This has been my first Ruby conference in over a year. It was great to reconnect with the community, make some new friends, and learn about various software projects people are working on. I left Nashville feeling recharged and ready to put into practice what I had learned.
You should consider attending the Hoedown in 2013. Maybe I’ll see you there.
Great recap. I look forward to attending next year.
Thanks, Tyler! I hope you’re able to make it.