Keynote (AKA paid sponsor time) – Cyndi Mitchell (ThoughtWorks) and Tim Bray (Sun):
Cyndi seemed a bit nervous and well she should be – this is ThoughtWorks big play to mold the face of the Ruby/Rails world by announcing RubyWorks. RubyWorks is a “free, open source LAMP production stack is for RedHat Enterprise Edition and CentOS, and will allow users to quickly put Rails applications on production servers.” Pull it down, drop in yer Rails app, and you gots a server. It's all free, but if maybe you'd like some support we could perhaps sell you some. And we'll support JRuby. Pretty big move for us as a company. So why would we expose ourselves to this risk? Other than the tons of money we stand to make, ThoughtWorks feels like the Java/.NET world is all wrapped up with horrible bloatware and bad management practices and while we're still interested in fighting for change in those areas we feel think there's an opportunity to make a real impact in a wide open area. And it won't be open for long. There's a a lot of huge companies interested in Rails but worried it's not enterprise ready. How long will it take before there's a Websphere for Rails? And a Wasad/Rad for Rails? How long before programming in Ruby becomes just like programming in Java because the company you work for signed some huge deal with “Big IT” and you have to use the approved R2EE stack?
Best to get out in front of that and make a non-evil way to reassure large companies that using Rails is “safe”. Exciting and funny presentation – but it's possible I'm biased.
Tim Bray got up and talked some more about JRuby and at one point he called Cyndi back up to talk about why ThoughtWorks is deploying Mingle in JRuby and she basically said it was a way to get big companies to feel better about deploying it. But was really cool was to see ThoughtWorks and Sun freakin' Microsystems sharing the same stage and talking as equals. My little company (little compared to Sun) has grown up a bit. But I think it's really cool that we're still willing to take risks and make big moves. Our support of Ruby a year ago looked risky, and I'm hoping we'll look back on ThoughtWorks support of JRuby and RubyWorks a year from now and feel the same way we do now about getting into the Ruby/Rails space.
Custom Rails Helpers – Glenn Vanderburg:
Good stuff. This is a prime example of one of those talks where I totally new a bunch of what he was saying already, but I picked up a few things (like using content_tag instead of just dumping out the string of an html tag).
Glenn name checked Erlang which made him the second presenter of the day to do so. Showing that 12 minute video at the last Rails conf sure did resonate with some people. I vote that at next year comparisons to Erlang be made mandatory for all sessions.
The Business of Rails – Panel:
This was pure Rails pron and I enjoyed the heck out of it. 5 dudes who stuck out on their own and started up a Rails consulting company sat around and told war stories that were completely entertaining. Joe O'Brien recounted how he signed a fixed bid project that included “basic email functionality” that ended up becoming a re-write of Gmail for 20K. Everyone told how they fell on love with ruby and the cockles of our hearts where warmed.
The Dark Art of Developing Plugins – James Adam:
Very funny and informative. James started out with super Gothic lettering on the screen and a total Satan voice as he inducted us into “THE DARK ARTS OF DEVELOPING RAILS PLUGINS” which was hilarious. The good news is there's not much to it. You put the things you want to do in an init.rb file and the files init.rb needs go in a lib folder and any rake tasks go into a tasks folder and the rest is just dealing with how Ruby extends/includes things. If you want to add instance methods to classes you use include, but you need to use extend for class methods. You can overwrite included on an object to make it include and extend what you want. At this moment I was going: “Oh, that's why every plugin I've opened up has separate InstanceMethods and ClassMethods modules inside another module, and hey yeah they all do have an included method... Neat” I had been wondering that for awhile.
Open Mic Demo Session:
I know a lot of ThoughtWorkers who worked crazy long hours to make the ThoughtWorks hangout/demo/vendor area so very cool and it was totally worth it – thank you so much. The joint was truly buzzing with activity. I remember one pretty typical moment where the following things were all happening:
- I was working with Josh Cronemeyer on our fixture thing.
- A Mingle demo was in full swing.
- A small crowd was watching our looping video about ThoughtWorks
- People were pairing on the Guv'nor app (using CruiseControl.rb and Mingle of course)
- Dudes where chatting about JRuby (including some of the core team) in the lounge (sipping fancy fancy carbonated grapefruit juice)
- Martin Fowler was holding court with some gushing fans.