Close and Go BackBack to Viget

RubyConf Recap

Mark Cornick
Mark Cornick, Web Developer, November 08, 2007 0

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!

A Development Community for Viget Labs and Beyond

Every team member here at Viget Labs strives to be an innovator. We members of the development team are no different - that's why we're constantly engaging in community discussions and exploring the unknown that is the next generation of open-source web applications.

Viget Is Hiring!

Viget has job openings for Ruby Developers, Interns, and Front-End Developers. Learn More »

Recent Comments

In my quick testing of this it does still work if you chain items after the cache name:

Category.top_level.other_scope

But important to note is this will still make a call to the database, it will not take advantage of the cache. Of course the actual scope, in this case find_top_level is unchanged and so you can still do any chaining with that, which also of course won’t use the cache.

As a final note though if you’re needing to do much chaining, caching in this way may not be best for your particular situation. The idea of the cache is if you need to retrieve the exact same result set over and over again, and it rarely changes you shouldn’t have to hit the database.