Rails Conf Europe 2008 - Day 2

DZone 's Guide to

Rails Conf Europe 2008 - Day 2

· ·
Free Resource

On Day 2, David Black gave the opening session. After some logistics he introduced the favorite son of Chicago - David Heinemeier Hansson. The theme of DHH's session was "Legacy Software". Now that Rails is 5 years old, the discussions of legacy is indeed meaningful. He showed some code from BaseCamp and showed how refactoring can deal with legacy. I love his statement "What you write today will become legacy". That is indeed so true especially given the fact that Rails community is now thinking about legacy. There is Rails 1.2.x, 2.0.x, 2.1 and 2.2 coming up - it was bound to happen. Overall a great session and love the honesty!

In JRuby: The Other Red Meat by Tom Enebo, the highlights were:

  • JRuby is "It's just Ruby". No prior knowledge of Java is required, at all, to run JRuby.
  • 22,000 tests and 33,000 assertions (from Ruby Spec) all pass to ensure 1.8.6 compliance.
  • 75% memory improvement with upcoming Rails 2.2. The numbers captured from the preso for 1000 requests and 10 concurrent users are:

      10 Rails instances Edge Rails
    Startup Memory 200 Mb 50 Mb
    Heap (at end) 233 Mb 55 Mb

    I'll explain in a detailed post later on how to generate these numbers
  • Several JRuby success stories
  • FFI support in JRuby that will make converting a C-based plugin to pure-Ruby a breeze
In Rails Software Metrics Roderick talked about different tools to generate metrics for Rails applications.
  • rake stats: Provides Code to Test Ratio (0.8 to 1.6 is a good range)
  • flog: Tracking code complexity (available as gem, useful for refactoring, elaborates on complexity)
  • rcov: Tracking test coverage (analyzes line coverage, available as gem)
  • heckle: Analyzes branch coverage (available as gem, dynamically mutates your code - flipping a branch should cause test failire, takes very long, not feasible for TDD)
  • saikuro: Cyclometic complexity (Decidedly scientific graph theory, available as gem, highlights overly complex methods, useful to spot refactoring methods)
  • metrics_fu: Set of Rake tasks to use with CruiseControl, Runs all of the before mentioned on a check-in. Anybody interested in integrating that with Hudson ?
The advise "A single metric is seldom useful, pair them to see what's going on." is certainly very practical.

Fernando explained in details in his session, Achieving High Throughput and Scalability with JRuby on Rails, on how to tune GlassFish for Rails applications. Look for his slides, they got real meat from a Rails application running on production with multiple concurrent requests.

At Five Runs exhibit, I found about FiveRuns monitoring on JRuby. That means you can generate all the performance monitoring data on GlassFish. And then there is nagios and stickshift for monitoring. That's a few blog posts for me later :)

Here are some of the sessions I plan to attend Day 2:

Here are some pictures from Day 2

Originally posted on Miles to go...



Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}