Project Kenai at JavaOne

Posted by Nick Sieger Tue, 09 Jun 2009 02:23:36 GMT

It’s just the beginning and a small milestone, but it’s a goal we set for ourselves by JavaOne last week that we reached: 10K registered users at We were fortunate to be highlighted in the Tuesday afternoon keynote, which, to our collective relief, went off without a hitch. I also had a chance to speak a bit about Project Kenai behind the scenes in my technical session.

My slides are available and contain a decent overview of what we’ve been doing. One slide in particular seems to have surprised some folks: our codebase metrics.

  • 12K lines of application code (everything in app/{controllers,models,helpers})
  • 10K lines of views (HTML + template code in app/views)
  • 1K lines of custom Javascript (public/javascripts excluding jQuery and plugins)
  • 8K lines of test code (RSpec + plain text stories) (yes, we’re upgrading to Cucumber)
  • 73.7% test coverage

If you’re doing Rails, you’re probably not all that surprised by these numbers; hopefully you’ve seen similar ones yourself. If you haven’t tried Rails, consider a site like and ask yourself if you could build and maintain a production site like it with these numbers in your favorite language/framework.

Other takeaways from my talk:

  • Use Java what it’s good for; in this case, long-running server apps. The downtime of the JRuby/GlassFish-deployed Rails application has been minimal for us; the few cases where we’ve had issues, they’ve usually been self-inflicted application problems. Instead of running Monit with a pack of Mongrels that need to be periodically recycled, we run a few GlassFish domains per server and only recycle them when we deploy new code.
  • For the Java programmers out there, don’t be afraid to use stuff other than Java. We use Python, Django, Memcached, Perl, and anything that gets the job done.
  • You can build cool stuff quickly with community Rails plugins like attachment_fu, geokit, and will_paginate. Not news to Rails programmers, but I’d be interested to hear of any equivalents for Java-based web frameworks.
  • JRuby is a big win, allowing co-development on MRI and JRuby with deployment to GlassFish. JRuby’s java integration also allows for neat tricks like image_voodoo, a pure-Java imaging plugin for attachment_fu.

Tags , ,  | 3 comments


  1. Avatar Christian Seiler said about 10 hours later:

    Are you using JRuby-Rack or the Glasfish gem?

  2. Avatar Nick said about 11 hours later:

    JRuby-Rack and Warbler, deploying to GlassFish v2.

  3. Avatar Odchudzanie Poznan said 14 days later:

    I’m really greatful that you posted your slides. Too many people post stuff like “oh yeah I did that presentation. People loved it” but when asked for some materials or video they never post it.