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
- 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 ?
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:
- Announcements (9:00)
- Ruby and Rails Symposium: Versions, Implementations, and the Future (9:15)
- Developing Ruby and Rails applications with the NetBeans IDE (10:45)
- Rails powered by GlassFish (13:40)
- How Not to Build a Service (15:45)
Originally posted on Miles to go...