The New York Times used Ruby on Rails to pull together, analyze and display election results in near real time on one of its busiest Web traffic days ever. How did nytimes.com scale up Rails -- a framework known for quick development turnaround but less than lightning fast performance?
"The secret is, we didn't," Ben Koski told a session at the Professional Ruby Conference in Boston Tuesday. Instead, Koski and others in the Times' interactive new media group used low-level SQL commands for some key data-manipulation tasks. And while some Rails purists might frown upon choosing SQL over Rails' own higher-level interactions with data, Koski said the direct SQL commands helped slash the time needed to process thousands of records from 30 seconds to about 1 second -- a major boost when election result files were literally being updated by the minute.
In fact, while this week's event is aimed at Ruby practitioners and enthusiasts, a common theme emerged from several of the presentations: Don't get hung up on the idea that one tool, language or platform -- no matter how good -- fits all needs.
Rails can help developers go from raw data to a working application in just a few hours, and it's "tweak friendly" for multiple iterations of an already working app, Koski noted. Rails Web code can be used from a command line to run automated cron jobs, and there's customizable built-in SQL for dealing with data that needs to be reformatted.
Even so, deployment -- while improving -- can be considered a weakness compared to other options, he noted. Also, installing and running Rails tools on Sun servers can be a challenge (Amazon's EC2 cloud computing service is now hosting some nytimes.com Rails apps). And, available built-in administrative interfaces are not as robust in Rails as they are on a competing Python-based framework, Django . The Times interactive new media group -- which works largely on projects that offer added functionality beyond conventional text, audio and video -- plans to launch a Django application next month. (The bulk of the New York Times Web site does not use Rails.)