Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼


Rails Rumble 2009: Usefulness Prize

The Rails Rumble is an annual programming competition where teams of up to four people will have 48 hours to build an innovative web application in Ruby on Rails. Once the build portion of the competition is over, a two-phase judging process selects the winning entries in several categories. In the first judging phase, a selected panel of experts reviews all qualifying applications to determine the top tier. Once they're finished and the top applications identified, the public judging period begins. The categories of winners include: Grand Prize, Second Prize, Third Prize, Solo, Appearance and User Interface, Originality and Innovation, Usefulness, and Completeness. Thanks to Nick Plante, Darcy Laycock, Erin Shine, and Jeff Rafter who organized this year's event.

Usefulness Prize

The 2009 Rails Rumble Usefulness Prize goes to the ZenVDN application, developed by Brandon Arbini, Nathan Sutton, Steve Heffernan, and Jonathan Dahl.

Figure 1: ZenVDN, developed by Brandon Arbini, Nathan Sutton, Steve Heffernan, and Jonathan Dahl

Jon, can you describe ZenVDN. What does it do?

Sure, ZenVDN is a video delivery network where publishers can upload raw videos, transcode them to support multiple devices, and host them on a CDN to be played back through Flash, mobile, or HTML 5 built-in players. In other words, ZenVDN is a simple video publishing platform that takes away the hassle of hosting, processing, and embedding videos.

What tools did you use to build it?

We used the the standard Rails stack: Ruby on Rails, MySQL, jQuery, Git, TextMate, plus several Rails plugins. Transcoding was done by FlixCloud, an on-demand video transcoding service that Zencoder co-authored with On2 Technologies. We also made use of Amazon CloudFront and EC2.

What was the hard part in building it?

Delivering polished in 48 hours. We were confident that we'd be able to finish the core functionality - user accounts, uploads, FlixCloud API integration, video embedding, and a good design. But the little things really give the app polish, like the video statistics, the help page, the uploader, and the screencast.

Now that you've caught up on your sleep, what would you have done different?

Stopped development earlier. We theoretically stopped development 4 hours before the contest ended, so we could test the app, fix bugs, and improve polish. But of course, that wasn't enough time. We ended up actually introducing a few small bugs at the 47th Hour, and of course we found some problems after the contest was over.

What's next with the ZenVDN? (Enhancements, improvements?)

Two main things. First, we're going to do some basic fixes and feature improvements. Second, we're going to add paid subscription levels.

We've also considered licensing the codebase -- customized, of course -- to customers who need a video publishing platform of their own. As consultants, we talk to several people a year who want a video sharing website, and ZenVDN would make a great starting point for these sorts of sites.

For More Rails Rumble 2009

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.