RubyConf 2008 Wrap Up 0

Posted by matt
on Sunday, November 23

This month I headed down to Orlando, Florida for RubyConf 2008. It kicked off with a delightful (and touching) keynote by Matz. He walked through his own programming history with languages including the language he got started with BASIC (the same language I started with). Matz talked about the growing community and a statistic from Gartner that says there are over a million Ruby developers and will grow to 4 million by 2012, which is amazing. He finished up by saying that Ruby is all about love, and included a slide that said "I love you all". Below are couple highlights from each day.


Photo credit: Dan BenJamin

Day 1:

Gregg Pollack's talk on Scaling Ruby (without Rails) was really good. He touched on green and native threads, EventMachine, message queues, and profiling code with ruby-prof. My favorite part of the presentation was the performance tips and tricks of optimizing Ruby code. His talk is up at EnvyCast and I definitely recommend it.

Jamis Buck - "Recovering from the Enterprise" was probably my favorite presentation at the conference. The main theme of his talk was that working in the enterprise solves problems differently than those solutions in Ruby. Jamis worked in Java (like me) before Ruby and he told a story of how he written a library for dependency injection for Ruby but realized that he was trying to use Java solutions in a Ruby world that didn't need it. He said Java is like Legos and Ruby is like Play-doh and delivered the best quote of the conference "Just in time, not just in case"


Photo credit: Dan BenJamin

Day 2:

Effective and Creative Code by Eric Ivancich was awesome. He discussed how our minds work while programming - the differences between fascination and direct attention, the mental fatique and long periods of direct attention can have on you. Fascinating stuff.

Yehuda Katz taught us how to write code that doesn't suck with Interface Oriented Design. But first, he announced that Merb 1.0 was released just minutes before his presentation. Then he went on to say that unit tests are not regression tests and that writing regression tests should make sure that the API we are exposing to the world doesn't break while work is being done under the covers.


Photo credit: Dan BenJamin

Day 3:

I saw Neal Ford's talk on Advanced DSLs in Ruby - one of my favorite topics. This presentation was really good because Neal was very specific on how to build DSLs in Ruby and not just the basics. He covered various techniques on writing DSLs and provided a nice summary of his talk on his website.

I sat down next to Dave Thomas to listen to Gregory Brown's talk about Prawn, a pure Ruby PDF generation library. Prawn is cool, but how Prawn was born was the most interesting part of the talk. A community funded project called The Ruby Mendicant Project allowed Gregory to quit his job and work on Prawn full time - A Ruby community employee.

Overall it was an amazing conference. It was great to see and talk to people that I only get to see online. Looking forward to next year.

Two+ Years Working with Rails 0

Posted by matt
on Sunday, October 12

Update: I thought I should give a little background on how I got started with Rails - when I was attending the SDWest conference in March 2006. I was at the Jolt Awards, and saw @d2h receive the award for the best web development tool for Rails 1.0. I downloaded Rails that night in the hotel room and was hooked.

This week marks the two year anniversary when I delivered my first professional Rails app. Today, I decided to take a look back at the code of that first project and see what's improved over the past two years. The result - not bad, but there were a couple areas that stood out. Here are a few:

  1. The controllers in that first project were out of control. Not sure why, maybe coming from the J2EE world, my first instinct was to cram everything into the controller. It was apparent that the concept of REST wasn't completely baked into my brain yet. Not to mention the concept of fat models, skinny controllers.
  2. Second, the views and Javascripts were a bit unorganized. I noticed excessive conditional logic and messy Javascript code in a few of the pages. If I was to re-write the app today, most of it could be cleanup with rendering partials with collections and using Low Pro to clean up the Javascript.
  3. Finally, the sheer lack of plugins for that first project was surprising. It's true that the amount and quality of plugins have grown in two years, but I believe the lack of awareness was the main cause.

So this made me think of what I would say if I were to advise newcomers writing their first Rails app. I would have to say first, if you find yourself writing code in the controller, then ask yourself "Can I put this logic in the model?". And also be sure to familiarize yourself with the available plugins with sites such as Agile Web Development and Github. They can save you a ton of work.

erubycon 2008

Posted by matt
on Sunday, August 24
Last week I made a short drive to Columbus for the erubycon conference presented by the EdgeCase crew. The three day conference, hosted by Microsoft, was an event to demonstrate Ruby's role in the enterprise. Having worked in the Enterprise for six years, I was very excited to learn more about how Ruby can change the Enterprise.

Photo credit: EdgeCase, LLC
What is legacy code and how do we avoid it? Stuart Halloway addresses these questions with his talk Ending Legacy Code In Our Lifetime. This was my favorite talk on the first day because the Enterprise is "full of it" and much my time was spent trying to avoid it. It's nice to see somebody calling attention to it.

Photo credit: EdgeCase, LLC
Very interesting talk on JRuby by it's creator Charles Nutter on the second day. I went back to the hotel room that evening and setup JRuby on my laptop. I wrote a quick rails app and with Warbler, had a working war file ready to be deployed to Java application server. Very impressive.

Photo credit: EdgeCase, LLC
Perhaps my favorite session at the conference was Jim Weirich's talk on concurrent software development. Something I don't think is talked about enough and is certainly important in the Enterprise. I've written multi-threaded apps in Java and it can be very difficult especially avoiding deadlocks. Is Ruby the answer? According to Jim, not really. Perhaps a Erlang or Clojure offers a better solution.

Photo credit: EdgeCase, LLC
And Finally, Chris Wanstrath, co-creator of GitHub talks about Git, GitHub, and a little about side projects. Oh, and did I mention I really love GitHub? It's really changing how we develop software.

Photo credit: EdgeCase, LLC
* All the photos above are provided by EdgeCase, LLC and more are available on their Flickr page.