Several Viget Labs developers participated in RubyConf 2007 from November 2-4 in Charlotte, North Carolina. Ben was once again selected as a speaker, and Patrick, Clinton, Kyle and I came along. Unlike the Ruby on Rails-oriented conferences we attended earlier in the year, RubyConf is devoted to Ruby outside of the specific context of Rails. As such, although several presenters made passing references to Rails, it was not the focus of any presentation. Our attendance at RubyConf would, therefore, provide an opportunity to think outside the Rails box we usually occupy in our work at Viget. Friday's agenda started with Rails core developer Marcel Molina Jr.'s "What Makes Code Beautiful?" attempting to bring definition to what is always a subjective matter. This was followed by Jim Weirich's "Advanced Ruby Class Design" which approached readable code from a slightly different angle. Following a tasty lunch, afternoon sessions included discussions of Camping, a "micro-framework"; Treetop, a system for text parsing and interpretation; and the intriguingly-named "Hurting Code for Fun and Profit." The day concluded with Yukihiro "Matz" Matsumoto, creator of Ruby, answering a variety of questions from the audience. Saturday morning brought a discussion of three alternate Ruby language implementations: IronRuby, targeting .NET; JRuby, targeting the JVM; and Rubinius, targeting Ruby itself. In his evening keynote, Matz made reference to these three implementations, as well as the upcoming YARV virtual machine, calling himself merely the "designer" of Ruby, rather than its implementor. Matz is famous for this humility and good humor and sees these alternate implementations as widening the scope of Ruby rather than competing with his own work. Between the morning plenaries and evening keynote, break-out sessions included profiling and tuning Ruby, shipping desktop applications written in Ruby, and the vastly-improved Ruby support in the new Leopard release of Mac OS X. On Sunday, we were awakened to the sounds of TV's "A-Team" in Dr. Nic's presentation on Rubigen, an extraction of Rails' generators into more generic Ruby form. This was followed by David Chelimsky and Dave Astels presenting on the current state of behavior-driven development with RSpec, and Jay Phillips speaking on his Adhearsion VOIP framework. Ben finally got to speak in the last set of break-out sessions; his "Cleanliness is Next to Domain-Specificity" showed how creating a domain-specific dialect in Ruby can really clean up your code. Other afternoon sessions included discussions of OpenID, JRuby, and the solr search engine. Outside of the conference hours, we enjoyed taking in some of downtown Charlotte's restaurants and bars (be sure to stop in at Mert's for some excellent soul food if you're ever in the area); meeting with friends, colleagues and clients; and reuniting with our fellow developers, whom we mostly see over Campfire since the opening of our Durham office. For all of these reasons, RubyConf 2007 was a great experience, and a fitting end to a year of conference appearances in Portland, Berlin, Raleigh, Austin, and Pisa, among others. We're already making plans for 2008, so keep an eye on the Four Labs blog for details, and look for us to come near you soon!