Close and Go BackBack to Viget

The Hoedown Wrap-up

Ben Scofield
Ben Scofield, Development Director, August 12, 2007 2

Patrick, Clinton, and I spent Friday and Saturday with 100+ other Ruby developers at the Ruby Hoedown here in North Carolina, and we had a great time. The sessions ranged from conceptual (Ken Auer talked about “Crossing the Chasm,” pulling examples from the history of Smalltalk) to highly technical (Jared Richardson showed just how easy it is to turbocharge your Ruby by dropping down into C), and, as so often happens, meeting the other attendees was tremendously valuable in and of itself.

I think the sessions we got the most out of were the opening workshop on testing (which raised over $3,000 for charity), the lightning talks on the second day (where nearly a dozen attendees, including Clinton and Patrick, spent 5 minutes each presenting things they’ve been working on), and Marcel Molina‘s closing keynote on code beauty (which was easily the most thought-provoking event of the conference), but all of the sessions had something to offer.

One other thing of note came out of the Hoedown - lunch on the second day provided the opportunity for people interested in individual topics to come together in Birds of a Feather sessions. One of these BoF sessions (on using Ruby to enact social change) has resulted in the creation of a new rubyforchange project on Rubyforge. This project, with its accompanying mailing list, will serve as a focus for Ruby developers who want to use their skills to benefit others. It’s heartening to see that the community is continuing to make a concerted effort to give back.

Finally, I’d like to say that Nathaniel and Jeremy did a fantastic job putting this on, and we can’t wait ‘til next year!

Windmill and the Art of Automated Web Testing

Clinton R. Nixon
Clinton R. Nixon, Senior Developer, August 08, 2007 1

I recently attended O’Reilly’s Open Source Conference in Portland and was very excited this year to see a tremendous focus on testing. There were sessions on unit testing and test-driven development; but, I was most excited to see people tackling one of the most complicated and least-advanced testing environments: web testing.

Testing web applications has been a bit of a black art. You’ve got a minimum of three languages to deal with (HTML, CSS, and Javascript), perhaps a fourth language for your tests, and a cornucopia of environments in which to test. Each web browser can be seen as a virtual machine for your application and, currently, there’s a bare minimum of four different virtual machines your application will have to run in (Internet Explorer 6, IE 7, Firefox 1.5, and Firefox 2.) That’s the fewest you can get away with, and you also have to worry about variations in browsers running on different operating systems. Yahoo!’s supported browser list has 22 separate browser/operating system combinations. It is no wonder to me why developers throw up their hands at browser compatibility issues.

Luckily, the team at the Open Source Applications Foundation has been hard at work. Their new testing platform, Windmill, is still rough around the edges but seems to be a great competitor to Selenium. Windmill’s focus is making it easier to debug tests and author them in any programming language, as well as fitting into continuous integration. It provides you with a nice test authoring environment and console with any of its supported browsers to help in the traditional test, fix, and refactor development cycle.

It is easy to forget that we are in the early days of web applications. The coming of Web 2.0 and the heavy use of Ajax is roughly analogous to the leap from text-based command-line applications to graphical applications on the desktop. I am very excited to see our testing tools begin to mature to meet the new challenges of this platform.

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.