|
June 2006
June 24, 2006
RailsConf 2006 Report 8 – 9:30 PM CDT - FINAL REPORT
This report ends my coverage of RailsConf 2006 Chicago, closing with comments on Rails creator David Heinemeier Hansson's Saturday evening keynote to RailsConf attendees.
Several afternoon sessions spanned topics from Rails performance improvement and testing to web accessibility.
Glenn Vanderburg's popular talk on Testing Migrations reminded the audience that Rails currently does not have migration testing capabilities built in, even though Rails is one of the easiest frameworks to perform database migrations. "ActiveRecord model abstractions are leaky, especially prevalent when performing unit tests."
Accelerating Rails with Lighty, presented by Badrinath Janakiraman, reviewed the various HTTP servers and CGI delivery mechanisms for Rails, covering CGI, FastCGI, SCGI and Lighttpd. He had these Rails delivery performance tips to share:
- The less Rails you use, the faster it gets.
- Cache as much as you can.
- Use the 404 Eror handler to call Rails only for non-cached content.
- Use Content Legnth, If-Modified-Since and ETags for dynamic content management.
Badrinath noted that cached Rails content is automatically compressed and ETag'ed by Lighttpd, further helping to reduce overall server load. He also mentioned that a new version of Lighttpd is under development, featuring native Win32 support and a new I/O subsystem.
I only caught the last few minutes of Jason Kunesh's talk on Rails, Ajax and Universal Design, where Jason asserted that Rails and Ajax especially fall behind in accessibility. "No accessibility, no usability, no product." However, Jason did emphasize to his audience that "Ruby on Rails is fast becoming the API for web applications, UI to DB like the Windows API once was for desktop applications."
After a brief late afternoon break, attendees regrouped for Mike Clark's extremely well received presentation on Testing Rails Apps. One of the comments I overheard from one of the attendees was "I've looked at other frameworks, but the only reason I use Rails is because of its integrated testing capabilities."
Nathaniel Talbott's session, titled Homesteading: A Thriver's Guide, discussed his experiences of becoming an entrepreneur in the realm of Ruby on Rails consulting. Frankly, it wasn't that good of a talk (especially since there have been bookstores filled with just such subject matter) and consequently, people started leaving before it concluded... perhaps because it was also just around dinner time.
After dinner, Rails creator and benevolent dictator David Heinemeier Hansson delivered his keynote address. Prior to that, I had the pleasure of interviewing David on his and Rails celebrated rise in popularity. He was clearly enjoying Rails success and empahsized that "I'm not done!" He was happy with Rails ability to achieve both quick and clean development (a reference to Thoughtworks' Chief Scientist Martin Fowler's comments made during yesterday's keynote). He also said "There are no cathedrals left in the framework world," and that "PHP is an example of the Bazaar gone slightly wrong." He admitted that "Rails may not be for everybody, but we want to be the framework for most applications." He also humbly admitted that Rails may simply be a stepping stone to an even better framework, but at least it's going in the right direction. As our conversation came to a close, I asked him what his which Rails applications he was most fond of, and his first choice was Seattle-based Robot Corp's 43things.com, a Rails-based 'To Do List' site with a reflective twist. He also thought shopify.com was a slick Ruby on Rails e-commerce front end.
With regards to David's keynote, he talked about the perceived problem with Create, Read, Update, Delete (CRUD), defending his reasoning behind the asthetic design constructs of its implementation in Rails within the context of ActiveRecord. He also demonstrated a prime case how he "tried to be RESTful" with the relationships between Users and Groups and how they are elements of the Membership class.
David also said...
"Frameworks act as either the devil or the angel, and the devil acts mostly by being quiet."
"Rails takes an active role in educating developers."
"If you're not already doing testing, well you should damn it, and we'll force you to do so."
"CRUD is not a goal, it's an aspiration, a design technique."
"No one paradigm can encapsulate all of the world all of the time."
Without question, attending RailsConf will make any stalwart Java or .NET developer a true Ruby on Rails believer.
Posted at 09:04 PM Permalink
|
NEWSFLASH
Chad Fowler just announced that RailsConf will be flying with the O'Reilly banner on May 17-20, 2007 at Oregon Convention Center in Portland.
Posted at 09:02 PM Permalink
|
RailsConf 2006 Report 7 – 2:30 PM CDT
It's another beautiful summer day in Chicago as the Dr. Dobb's Journal coverage of RailsConf 2006 Chicago continues.
Seth Fitzsimmons gave a talk called Lucene Eye for the Ruby Guy that explored Ruby-centric alternatives to the Java-based Apache-sponsored Lucene search engine. He gave a roadmap showing how Swish evolved into Swish-e into Lucene and eventually into the open source Nutch.
Some of the Ruby search toolkits are:
- Hyper Estraier (recommended)
- Ferret (works, but it's buggy), and
- Lucy (deliverables doesn't exist yet, as the project was just approved by the Lucene PMC on June 1, 2006)
Some choices to consider for ActiveRecord integration include:
Seth also mentioned that he is working on his own Rails search plug-in called Searchable, which is similar to acts_as_ferret. He also encouraged the audience to consider using the web services version of Lucene called SOLR once the project gains more momentum.
Matt Biddulph shared his experiences in Rails-enabling a catalogue web application for the BBC (these experiences are recounted in his article. Matt also gave kudos to Cal Henderson for his O'Reilly book titled Building Scalable Websites as a treasure trove of best practices for buidling highly transactional web applications for large audiences. He also mentioned a load testing tool he used on the project called Siege as well as talked about how BBC's political and economic situations had to be accounted for in the technical development and eventual deployment of his application.
In the crowded MeatProgramming Writertopia session, presenter Bill Katz dove deep into the code that makes up the Rails-based writertopia.com site, a service that allows writers to manage their writing portfolios, participate in workshops and manage profiles. Bill used metaprogramming and mixins used to promote Don't Repeat Yourself (DRY) principles throughout the project.
Rails for the Enterprise, featuring speakers Rick Bradley and Charles Johnson, was a session that many of the conference attendees were looking forward to, including myself. Rick and Charles showed how their Ruby on Rails application replaced a overtaxing Java-based healthcare application. The HIPAA-compliant Rails application they wrote supports 40,000 clients. The original application they inherited was a 250,000 embedded Oracle PLSQL-based legacy application. They originally considered migrating to Java via JBoss, Struts, JSP, Hibernate, EJB3, JUnit, Ant, and CruiseControl and got a big laugh and applause when they flashed their 'book' slide that emphasized how their decision to scrap their Java plans in favor of Ruby on Rails reduced their 20+ stack of Java books to just 3 Ruby books. The talk made quite an overall impact on the audience.
Ezra Zygmuntowicz's presentation on Rails Deployment illustrated his experience with writing his first large scale Rails application, located at yakimaherald.com. He talked about the pros and cons of using different types of web servers (Apache, Lighty, and Pound) and his performance experience working with FastCGI and Mongrel. Ezra also discussed the development of his Ruby plug-in, the BackgroundDRb framework, which makes working with long processes in separate tasks more manageable.
Stay tuned for one more report later today from RailsConf 2006.
Posted at 02:30 PM Permalink
|
RailsConf 2006 Report 6 – 11:15 AM CDT
RailsConf attendees hit the ground running the first half of the morning with several technical sessions and a series of real-world Rails use case presentations.
Jeremy Voorhis' talk on Internationalizing Rails educated the audience on globalization and localization of Rails, as well as using such handy Ruby modules as 'jcode' to properly support Unicode in Rails applications.
Justin Gehtland's Ajax on Rails talk was given to an overflowing standing room only audience and was one of the most technically in-depth presentations given yet at the conference. Justin shared his experiences and code working with Ajax and Rails and provided slick approaches to making it vastly easier to work with a web browser's Document Object Model.
Thoughtwork's employee Obie Fernandez shared several projects his company managed using Ruby on Rails and how the technology quickly diffused throughout the organization as the popular word spread about the manageability and productivity gains achieved using the Rails framework. Obie related a story about how a project manager who wasn't even a programmer by trade was able to create a time and billing system using Rails that was so well received by his department that the company is considering rolling it out for use across the entire corporation. Obie also shared his success with adopting the Extreme Programming model, as well as how several Thoughtworks Java and .NET developers have since migrated to the Ruby camp. Interestingly enough, Obie postulated that it is easier for .NET developers to migrate to Rails since .NET developers are already used to working within a web framework akin to Rails.
After a brief morning break, the second set of sessions began with a talk by Steven Hammond on creating a Domain Specific Language (DSL) Rails plug-in. Steven admitted that the motivation to do a DSL in Rails was due to a mammals/reptile evolutionary game he wanted to port to the web and decided to use Rails to create his DSL. He explained what a DSL was ("a partial programming language focused on a specific problem domain that generally tries to replicate syntax common to users of that domain.") and examples of horizontal and vertical DSLs (such as insurance company systems and circuit board layer specification systems).
Doug Fales presented a talk on his experience creating a Ruby GEM for his need to create a mashup of GPS readings with photos taken from those locations. Essentially, Doug's solution is:
Flickr + Google Maps + the GPX Ruby GEM he wrote = www.walkingboss.com.
I wasn't able to catch much of Scott Raymond's presentation on his lessons learned from two Rails projects he worked on called Blinksale using the REST API and IconBuffet, which uses Ajax via RJS templates, but the talk was delivered to a packed audience nonetheless.
More RailsConf 2006 updates to follow shortly...
Posted at 11:15 AM Permalink
|
June 23, 2006
RailsConf 2006 Report 5 – 8:30 PM CDT
My final RailsConf summary post of the day...but check back in for updates on Saturday's goings-on. And if you get a chance, listen in on Friday's podcast.
In a session titled "Overcoming Scaffolding Addition", web developer Amy Hoy shared her best practices and valuable experience working with Rails beyond the auto-generated scaffolding that newbie Rails developers rely upon for their web presentation needs. Leveraging partials, helper methods and other Rails internals, complete with clear code samples accompanying the concepts, helped to further educate those developers ready to take Rails apps to the next level.
An entertaining, informative talk presented by Geoffrey Grosenbach (with whom I had the pleasure of interviewing a few weeks ago for this Dr. Dobb's podcast) about Rails Deployment on Shared Hosts. He recommended to keep shared applications small due to contention with other shared customers server resource demands.
Thoughtworks' Chief Scientist Martin Fowler admitted in his keynote that he never even used Ruby on Rails, but was an avid Ruby user. He compared Active Record to other patterns he worked with in his past and questioned its usefulness in an enterprise setting but added that he had never seen an active record implementation as powerful and easy to use as the one developed for Ruby on Rails. He also applauded Rails drive toward simplicity and proposed that the influence Rails has had over other frameworks, with these alternatives asking how they can make their frameworks as easy and uncluttered to use as Rails. Martin emphasized that "Quick doesn't have to be dirty."
Lastly, keynote speaker and dot com success story Paul Graham closed the evening with his talk on "The Power of the Marginal". I really enjoy Paul's intelligent, well prepared speeches and this was yet another one of Paul's priceless deliveries. He masterfully weaved the genesis of Apple Computer, the US Civil War, the glut of Java books, with truisms like "Don't learn things from people who are bad at them." and "If you're not good at anything yet, consider working on something that no one else is good at yet either," and "Work on things that can steal prestige from eminence," and "You're on the right track when people complain you're unqualified and working on things that are inappropriate. So be inappropriate!"
These and other such comments placed the RailsConf attendees into a festive mood. Speaking of which, it's time to unwind after a long yet informantive day while listening to Why The Lucky Stiff and his band The Thirsty Cups live performance in the background.
Posted at 08:42 PM Permalink
|
RailsConf 2006 Report 4 – 3:30 PM CDT
Mid-afternoon update from the RailsConf 2006 Chicago conference.
Curt Hibbs’s talk on understanding the Instant Rails Ruby/Rails/MySQL/Apache bundle for Windows was sparsely attended, probably due to the fact that the Apple Powerbook to attendee ratio is almost equivalent to the same ratio of an Apple Worldwide Developer Conference. Consequently, a majority of the RailsConf attendees were eager to see Rails & Asterisk work together in a real-world dental office environment.
Five Runs’ Steven Smith talked about his company’s equipment configuration to support its Rails-based, open source hosted systems management service. He also shared his experience with making Rails scalable with such recommendations as:
- Don’t maintain state at the web/app level
- Design Rails apps by extraction (ex: Rails was extracted from Basecamp)
- Use the C binding for database access, not the native Ruby-based adapters
I had a great conversation catching up with Kyle Shank on the latest status of his RadRails IDE. Kyle’s team originally hoped they would have the 1.0 release ready in time for the conference, but his busy schedule got in the way. He’s heading off to Europe for the summer to work with IBM on a few projects and he hopes that he will have more time to complete the 1.0 RadRails requirements, including an interactive debugger and a few other enhancements on the way.
I also had an opportunity to speak with several of the Rails core development team which shared some of the more interesting enhancements planned for the Rails 2.0 release, such as plans for supporting RESTful interfaces. Since the creator of Rails, David Heinemeier Hansson and several other core team members are employees of Chicago-based 37signals, their enthusiastic interaction with conference attendees has been warmly received and appreciated by the people I spoke with so far.
Posted at 01:03 PM Permalink
|
RailsConf 2006 Report 3 – 12:00 PM CDT
I caught the first half of Adam Key’s entertaining talk on comparing Ruby on Rails development with listening to the music of AC/DC and Stravinsky.
Some of Adam’s observations include:
Adam’s Law of AC/DC
"If you know the title, you’ll know the chorus." A Ruby on Rails corollary is "Read the URL and you’ll know the name of the controller (and possibly the model too)."
Another example Adam provided was the intentional, discernable space between notes in AC/DC's Back in Black and how developers could learn from this by not overburdening their designs with Eddie Van Halen-style fills, making what could have been a clear rocker into a doodling distraction.
I caught the second half of a talk on Tooling Rails by Kyle Shank, Matt Kent and Marc Baumbach. DDJ podcast listeners may remember I conducted an interview with Kyle several weeks ago – you can listen to the podcast here. They talked about their RadRails IDE and their experience working with an open source business model – they concluded that making money with a purely open source approach may not be fiscally rewarding. Sidenote: the Ruby faithful in the audience responded negatively to the fact that RadRails is based on Eclipse, and when they were asked to demo the IDE they had a number of Java-related errors. I followed up after the talk with Kyle and asked him about the status of RadRails 1.0.
The most popular presentation so far was Mike Clark's Intro to Capistrano, with attendees overflowing outside the standing room only crowd. Deployment is obviously a big issue on the minds of many Ruby developers.
Posted at 12:53 PM Permalink
|
RailsConf 2006 Report 2 – 10:30 AM CDT
Dave Thomas delivered a thought provoking opening keynote on unsolved Ruby on Rails problems.
He first established Ruby’s rapid ascent to global developer awareness with the help of Google search and Google Trends. His example showed that a search on Ruby on Rails returned 21 million results and numerous diverse Ruby advertisements. Google Trends showed that Ruby on Rails is rapidly gaining ground on Websphere and JBoss and has already overtaken Tapestry, Spring and Zend from a search lookup perspective. David then express three areas of Ruby on Rails development that needs to be improved to further promote Ruby in the corporate development environment. These are:
- Data Integration
- Better use of schemas
- Better foreign key support
- Support distributed two-phase commit transactions
- Standardize attribute-based finders
- Better support for non-database models (ex: JMS/MQ integration)
- Real-world CRUD
- Upgrade the Rails scaffolding to an AJAX-based interface.
- Support table relationships (ex: many-to-many).
- Allow for configurable, custom display styles, cross-application skins and UI elements
- Bring the simplicity of Active Record to Views and Controllers
- Deployment
- Capistrano is "the best deployment system there is, but we can make it better."
- Account for cooperative development
- Decouple application configurations from server configurations
- App Config considerations should include such things as where to find/put files, library/environment requirements, etc.
- Server Config considerations such as server config files, permissions/security (passwords, ACL’s, etc.)
- "Set up the server once and set up individual applications as needed."
- An example Capistrano string might look like:
cap deploy --on cap://server.com
- The Capistrano file should be ISP independent (ex: Ask ISP’s "What Capistrano profile do you support?")
- Consider packaging GEMs similar to the way Java WAR files are contained and deployed.
Dave closed his keynote with the following witticisms:
"Rails and Ruby have corrupted me."
"I’ve been Java free for 18 months."
"All developers deserve to be happy."
More from RailsConf 2006 Chicago to follow shortly....
Posted at 12:44 PM Permalink
|
RailsConf 2006 Report 1 – 9:15 AM CDT
The RailsConf 2006 conference being held in Chicago kicked off this morning with a brief introduction by Chad Fowler, Rich Kilmer and David Black talking about the days upcoming events.
They also mentioned that question submission email address for conference attendees to send to the Rails Core team that will review and respond to selected inquiries on the last day of the conference.
David Black quickly discussed the history and objectives of RubyCentral, the primary web repository for Ruby and Rails files. RubyCentral is a non-profit Ruby advocacy group that is accepting tax deductible donations.
The trio closed with a reminder about upcoming RailsConfs in London, UK September 14-15, 2006 and in Denver, CO October 20-22. Individuals interested in speaking at these events should submit their proposals at proposals.rubygarden.org.
Next up - Dave Thomas' opening keynote...
Posted at 11:38 AM Permalink
|
June 22, 2006
RailsConf Coverage
Coming this Friday, June 23 and Saturday, June 24, blogging coverage of RailsConf 2006 live from Chicago, IL USA. We'll be doing some podcasting from the conference floor as well.
Posted at 03:21 AM Permalink
|
|