RubyAndRails 2010

RubyEnRails returns this year bigger and better as RubyAndRails 2010, running from 21-22 October in Amsterdam. Talks are in English and entry is just €149,00.

The speaker lineup is shaping up great. Check out the program and sign up now.

RubyAndRails has been run by volunteers for five years now, growing from a friendly regional gathering to an even friendlier all-European event. The Rumble is back this year, too!

RubyEnRails 2009

RubyEnRails 2009 goes down this 30/31 October in Amsterdam. Talks are in English and Dutch.

RubyEnRails has been all-volunteer for four years running, building on a history of sweet venues, good talks, and great company. It’s gradually grown from a local gathering to a full-fledged European event, and this year it’s also stepping up to fill the shoes of RailsConf EU.

Yehuda and I are speaking and will be mixing a potent batch of Rails 3 kool-aid. Please join us for a sip!

Juggernaut: Server-side push for Rails

Juggernaut is a combination of a small Ruby server, a Flash bridge, and a plugin that makes it easy to do server-side push systems in Rails. I played with this idea with Rich Killmer a few years ago and even made a small demo system to present at a conference, but never made it to the finish line of something releasable. So it’s fantastic to see that the guys behind Juggernaut did.

Ruby Conferences and Tracks

There are several Ruby / Rails related conferences coming up in the next few months. Some of these are smaller regional conferences, and some of them are larger conferences which have their own Ruby tracks. If you know of any additional events, please comment and I’ll add them to this list.

July 21-25 – OSCON in
Portland, Oregon

This year O’Reilly’s Open Source Convention is sporting a nice looking Ruby Track with several advanced topics. Yup, this is at the Portland Convention Center, same place as Railsconf.

Cost: $1345 (sessions only)

August 1-2 – Ruby Nation in
Herndon, VA

A Washington DC Regional area Ruby conference with a great location: right next to the Washington Dulles Airport.

Cost: $175

August 8-9 – Ruby Hoedown in
Huntsville, AL

A southeast regional Ruby conference located just down the street from the Space Center (aka Spacecamp).

Cost: $199

August 15-17 – erubycon in
Columbus, OH

A conference dedicated to Ruby’s place in the Enterprise, organized by EdgeCase.

Cost: $199

September 4-6 – Lone Star Ruby Conference in
Austin, TX

A regional Ruby conference deep in the heart of Texas. They haven’t announced their speakers or opened registration yet, but I’m told they will shortly.

Cost: $250

September 20 – Windy City Rails in Chicago, IL

A day long Rails conference in Chicago covering the freshest topics in the Rails world put together by Chicago Ruby.

Cost: $99

November 17-21 – QCon in
San Francisco, CA

InfoQ and Trifork (from JAOO) put together this annual San Francisco conference with a DSLs in Practice and Ruby for the Enterprise track that any Ruby programmer would probably enjoy.

Cost: $1,695 (sessions only)

Also worth mentioning:

  • Ruby Fringe is July 18-20, but tickets are no longer available.
  • Railsconf Europe is September 2-4 as David announced last week.
  • Rubyconf is November 6-8 in Orlando, FL, but rubyconf.org doesn’t have any information about that yet.
  • Voices that Matter: Professional Ruby Conference is November 17-20 in Boston, MA. I’m told more details will be revealed next month.
  • Merb Camp is hasn’t been officially announced yet, but I hear it might be October 11-12 in San Diego.
  • Railscamp #3 is going on this weekend (June 20-22) near Sydney, Australia, and there’s also a Railscamp UK being planned for sometime in August.
  • RuPy is this weekend (Saturday, June 21) in Omsk, Russia.

If I’ve missed any conferences, please let me know and I’ll be happy to add them.

RailsConf Europe: Registration is open!

RailsConf Europe has opened the doors for registration. The conference is returning to Berlin, Germany from September 2nd through 4th. If you register before July 15th, you can save up to 150 euros.

Considering what a blow-out success we had at RailsConf in Portland just a few weeks ago, it’s hard not to be pretty darn excited about setting up in Berlin and extending that good atmosphere across the pond. Berlin was a great spot in September last year as well.

So I’m looking forward to meeting up with more from the European Rails communities. Hopefully the very large Danish delegation will make it down this year as well :).

RubyEnRails 2008

RubyEnRails 2008 is a Dutch Rails conference happening on June 10th. They still have a few tickets left, so if you’re able to go, there’s still the option. Lots of good speakers there including Charlie from JRuby, Obie, and the Phusion Passenger guys. I’ll be doing a iChat Q&A session as well.

RailsConf keynotes: Kent Beck, Joel Spolsky, Jeremy Kemper, yours truly

I’m happy to announce that we finalized the keynote line-up for this year’s RailsConf and I can’t believe the great names we got (especially that last guy on the list, I hear he’s awesome :)):

  • Kent Beck: Few people have had a bigger influence on the modern software industry principles, patterns, and practices. I’m reading his new book Implementation Patterns right now and can’t wait to hear him speak.
  • Joel Spolsky: Joel on Software has always been a source of thought provoking, inspiring, and sometimes downright infuriating advice and opinion on software development. Joel is a great thinker and a lucid speaker on all things software and he’s been running his own software business for almost a decade to back it up.
  • Jeremy Kemper: If Rails was an army, Jeremy would be the 5-star general who always made sure the job was done. He’s been a tireless force for improvement and implementation of the Rails framework since way back in the early days. Jeremy probably touched most of the features you enjoy in Rails every day. We’re finally getting him to talk about it too!
  • David Heinemeier Hansson: Yes, I will most certainly be speaking at RailsConf again this year.

This lineup is of course in addition to the wealth of wonderful sessions planned. RailsConf ‘08 is shaping up really nicely. We have a brand-new version of Rails (2.1) scheduled to premiere not long in advance of the show and a whole year of collective learning to digest. It’s never been a better time to be programming with Ruby on Rails.

Comparing Rails 2.0 to 1.2 for speed and memory

Hongli Lai has compared a dummy scaffold application from Rails 1.2 to Rails 2.0 and found the latter to be 30-50% faster. That’s great to see.

But what I think is even more interesting is the progress we’ve been making on performance optimizations for more substantial applications. Rails 2.0 made a lot of progress for applications with lots of assets and for ones with big routes.rb files. The forthcoming Rails 2.1 will move things forward even further.

UPDATE: Hongli also investigated memory consumption on 1.2 vs 2.0 and found 2.0 to be significantly slimmer. Nice!

RubyFools: Danish Ruby conference, April 1-2

We normally don’t cover general-purpose Ruby conferences here, but since RubyFools is actually going down in the birth place of Rails and I won’t be able to be there, I thought the least I could do was mention it.

RubyFools is happening from April 1st through 2nd and will feature Ruby-creator Matz and Dave Thomas of Programatic Programmers as keynotes along with lots of other speakers.

I highly recommend checking it out. Copenhagen is such a nice place to visit.

New ActiveRecord Book, and a Contest!

To celebrate the launch of their book Pro Active Record: Databases with Ruby on Rails, Chad Pytel and Jon Yurek of thoughtbot kicked off a little contest:

We want you to email us your most ridiculous or bizarre client request — and tell us how it turned out. Did you implement it exactly to the specification even though it was absurd? Did you get them to compromise? Did you leave your job?

Check out their blog (which has probably the coolest name ever for a weblog) for more info. You have until November 30th to submit your entries, so get on it!

Today is Leopard day!

OS X 10.5 is shipping today under the Leopard moniker. Besides being a great upgrade to a wonderful operating system, it's also the first version of OS X that ships with Rails in the package. Apple has done a phenomenal job including all the good stuff from the Ruby and Rails world into the developer tools that come with the OS.

So out of the box you get Ruby 1.8.6, Rails 1.2.3 (which is just a "gem update rails" call away from being 1.2.5), Capistrano, SQLite-bindings, and so much more. No more need for compiling your own Ruby. It's great. See all the changes in What's New in Leopard.

The only minor snag is that in order to install the MySQL C bindings for Ruby, you have to be quite particular on the command line. Here's the cheat line you need to install (read more at macosforge):

sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

So happy Leopard day, folks!

Rails Rumble 2007

It’s that time of the year again: time for another Rails coding competition. In the spirit of the previous Rails Day contests, Rails Rumble challenges teams of up to four to create the best application possible in just 48 hours. This year’s competition is a little bit differently this time around, so checkout the rules. Judging is now performed by the community, allowing anyone to signup and choose their favorites. Also, your app will be provided a VPS to host the application through the end of October. How cool is that?

If you want to compete, you need to organize quickly, the contest runs on September 8th and 9th.

sMoney.EU

The Czech Rails shop Skvělý.CZ has just announced the release of sMoney.EU, a free expense tracking application written in (of course) Ruby on Rails. It sports translations for several languages, too, and joins the growing ranks of Rails applications with localized interfaces. Great job, Robert and team!

Two Years of Rails Podcasting

Two years ago today, Scott Barron published the first episode of the Ruby on Rails Podcast. — Geoffrey Grosenbach

Wow, has it been two years already? Geoffrey’s been a major positive force in the Rails community even longer then that, starting with the humble Pluralizer, which helped us all figure out what table names our ActiveRecord models were supposed to be using. For his next podcast, he’s turning the tables and letting himself be interviewed by Dan Benjamin. Be sure to send in some challenging questions (see Geoffrey’s blog post for details).

Congrats on the milestone, Geoffrey, Scott, and everyone else that’s been involved with the Rails Podcast!

RailsForge?

Jason Perry has started a survey at http://railsforge.com/, asking for community feedback on whether a Rails-specific forge-site would be useful or not. What are your thoughts? Head on over and let him know!

Subversion Browser on Rails

ActiveReload has just released Warehouse, a simple subversion browser written using Rails. It sports a beautiful UI and can handle the mundane task of user and permission management for you. It’s also being distributed in a unique fashion for most Rails applications. Instead of being hosted, it is sold and downloaded to be installed on your own server.

If you’re interested, check us out at the Warehouse site.

Slingshot goes public

Joyent’s Slingshot technology for creating offline-capable Rails applications has gone public. They’re even doing a competition to celebrate: The best ports of various open source Rails applications can win a 1-year big Accelerator ($1250 value). Now there’s a project you can hack on the plane to Portland in a few weeks ;).

Javascriptian REST

Eric Mill went ahead and created Jester, a library that lets you manipulate your Rails-style resources with javascript models. I think it’s great that we’re seeing implementations in other languages. This python port of Routes implements map.resources, can a python port of ActiveResource be far behind?

Writing Google Maps Applications with Rails and Ajax

Andre Lewis is rolling out a duo of resources for those of you creating mashups and Google Maps-based applications.

Andre's book, Beginning Google Maps Applications with Rails and Ajax: from Novice to Professional will be available Feb 26 from Apress. The book covers the basics (getting a Google map up and running, interacting with the the Google maps API in JavaScript), as well as more advanced topics. For example, later chapters show you how to use RMagick to display hundreds of thousands of points on a map by generating custom map tiles, and how to create your own geocoder from US TIGER/Line census data. The book also touches on screen scaping and bulk data manipulation -- for example, processing large text files from the command line using Ruby, and the performance implications of a pure ActiveRecord database import vs MySqlImport.

Also related to mapping, Andre recently released GeoKit. GeoKit provides a bundle of tools to make maps-based applications easier:

  • Distance calculations in miles or kilometers: distance = first_location.distance_to(second_location, :units => :miles)
  • ActiveRecord distance-based finders: Store.find(:all, :origin=>[37.792,-122.393], :conditions=>'distance < 10')
  • . . . and directly from an address: Store.find_closest(:origin=>'100 Spear St, San Francisco, CA')
  • Geocoding from Google, Yahoo, Geocoder.us, and Geocoder.ca geocoding services. It provides a uniform response structure from all the geocoders, and also has a configurable fail-over mechanism in case one geocoder fails.
  • IP-based location lookup. Provide an IP address, and get a city name and latitude/longitude in return.

Andre's announcement on GeoKit is here. Bill Eisenhauer, the co-author of GeoKit, has also put up some live demos. GeoKit's home at RubyForge is http://geokit.rubyforge.org/.

Rails Application featured on Good Morning America

Former AOL CEO Steve Case recently appeared on Good Morning America to talk about his new venture Revolution Health, a new health site built on Rails. Think next generation WebMD.

The Revolution Health team has been blogging their progress over at Revolution On Rails. InfoQ recently conducted an interview with the developers that discusses, among other things, their PluGems (it’s a plugin! it’s a gem!!) approach to sharing code across the multiple applications that make up Revolution Health.

RailsConf sells close to 3/4s of the seats, RailsConf EU Request for Proposal open

RailsConf has sold close to three quarters of the available seats for the May 17-20 show at an amazing rate. It’s only been a week since we opened for registrations. So it’s naturally wonderful to see that level of excitement even as our venue this year can accommodate a ton more people than last year. This certainly looks like it’ll be another sold out RailsConf shortly.

And hot on the heels of RailsConf in Portland, we’ve just opened up the Request for Proposals for RailsConf Europe, which will take place in Berlin between September 17-19. Last year RailsConf EU was a bit more of a sleeper hit than the Chicago show, but turned out absolutely fantastic with loads of exclusive and all-new content. With Berlin being a significantly cheaper city than London and part of mainland Europe, we’ll no doubt have an even greater show.

So get your proposals ready for RailsConf Europe. And if you haven’t already, snatch one of the last seats for RailsConf in Portland.

Joyent makes Rails app go to 4,000 req/sec

Our friends at TextDrive/Joyent have been slugging away at their seriously impressive mega-cluster for quite some time now and it looks like it’s paying off. Just a few days ago, Shopify announced they were coming over.

And now Jason Hoffman shares a few statistics on how they’re making a new big Rails app scale to no less than 4,000 requests per second on one of their sub-pages. That’s a pretty juicy number and is thanks to their BIG-IP-to-48-mongrels setup for Twitter.

Keep rocking, boys.

BTW, the company’s Jason Hoffman will be giving a 3-hour tutorial at RailsConf entitled Scaling a Rails Application from the Bottom Up. You’d be well-advised to secure an early seat to that one.

Getting that Rails Deployment Help

As hosts start expanding their hosting options, it’s becoming more important for folks to get together and share their deployment knowledge and trade war stories. Robby Russell thought it was time, and started a rails-deployment Google Group, as well as #rails-deployment on Freenode. In just a short time, it’s already attracted nearly 400 members, including experts from some prominent rails hosts like PLANET ARGON, Engine Yard, and Rails Machine.

JRuby enters the home stretch for Rails support

We’re on the home stretch now, and Rails is getting more and more solid every day. With you all helping, we should be able to finish off the remaining failures, clean up major outstanding JRuby issues, and kick out a pretty sweet “Rails-supporting” JRuby release in the next couple weeks. — Charles Nutter

I’m not a Java guy by any means, but I don’t think anyone disagrees that this is great news. Why? The idea of dynamic languages on the JVM is very appealing, even Ryan Tomayko thinks so.

Now, being a recovering C# programmer, I had no idea how to get JRuby installed and running. So, here’s a quick newbie guide for you Mac OSX users. If you have good instructions for other platforms beyond what’s in the JRuby blog, please post or link to them in the comments. Also, be sure to use the proper reporting channels for any bugs you come across: the Rails Trac for Rails bugs, and JRuby’s JIRA for JRuby issues.

  • First, you need java. Luckily, it happens to ship with Tiger. “java -version” tells me I have v1.5.0_06. Awesome.
  • I actually set this up over the weekend, and used ‘ant test’ to build and test JRuby. This required me to install JUnit to proceed. I just created a directory to act as my CLASSPATH, and threw junit-4.1.jar in there.
  • Set up a few environment variables (see below for the list).
  • Add /path/to/jruby/bin to your PATH.

export CLASSPATH=/path/to/junit-4.1.jar
export JRUBY_HOME=/path/to/jruby
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
export JRUBY_SHELL=/bin/zsh

After this was done, I was able to run jruby or jirb directly. Depending on where you add the jruby/bin path, you may or may not be using the JRuby gem script or not. Use ‘which gem’ to check.

There you go, you should be all ready to help the JRuby folks out.

Build Your Own Ruby on Rails Web Applications

Patrick Lenz wrapped up yet another Rails book: Build Your Own Ruby on Rails Web Applications, published by SitePoint. This one takes a beginners look at the Rails 1.2 framework, building a sample Digg-clone in the process.

Build Your Own Ruby on Rails Web Applications is an easy-to-follow, practical and fun guide to Ruby on Rails for beginners. It covers all you need to get up and running, from installing Ruby, Rails and MySQL to building and deploying a fully featured web application.

Update: Patrick posted a few sample chapters of the book at Sitepoint.

Processing Credit Cards

Omninerd published an introduction to ActiveMerchant.
AM is a credit card processing library extracted from Shopify in much the same way Rails was originally extracted from Basecamp.

Processing Credit Cards with Ruby on Rails

The article talks about Authorize.net as a payment provider but ActiveMerchant supports a variety of gateways such as Authorize.net, Moneris, TrustCommerce, LinkPoint, Psigate, Paypal Payments Pro, Paypal Payments Standard, eWay, USA ePay, NoChex and Chronopay. All of the supported gateways are in production use in Shopify.

Ajax on Rails

Scott Raymond latest book, Ajax on Rails, has recently been published by O’Reilly. He also wrote What’s New in Prototype 1.5? on XML.com regarding the latest changes for Prototype 1.5.

  • The book demonstrates how to use Ajax and Rails to build
    high-performance, scalable applications without having to write reams of
    difficult-to-maintain JavaScript code.
  • Provides a thorough, low-level understanding of what’s under the hood,
    with a high-level understanding of how to use Ajax techniques
    effectively.
  • Includes a complete reference to Prototype 1.5 and script.aculo.us 1.6.1,
    which can be used even outside of the Rails platform.
  • Three fully worked out applications—a quiz program, a photo gallery,
    and a workgroup collaboration tool—show how everything fits together
    in practice.

— taken from the book’s Full Description

Mongrel 1.0

To coincide with Rails 1.2.1, Zed just made Mongrel 1.0.1 official. He also points out that he started working on Mongrel around January, making it around 1 year old too. Congrats to Zed and everyone else that contributed to the application and to the wonderful Mongrel community.

Rails Cookbook

Rob Orsini released the new Rails Cookbook from O’Reilly, just in time for Rails 1.2. Just from looking at the table of contents, it looks like there’s a lot of good information packed in this book.

This book is packed with the solutions you need to be proficient
developer with Rails, the leading framework for building the new
generation of Web 2.0 applications. Recipes range from the basics,
like installing Rails and setting up your development environment, to
the latest techniques, such as developing RESTful web services. Each
recipe includes a tested solution, plus a discussion of how and why
it works. — from the book’s Full Description

DailyKos considers Ruby on Rails

Earlier this week, Hunter, uber technocrat at DailyKos.com started talking about how they will build the next version of DailyKos. The discussion has been going for a day or two now with over 700 comments as I write this.

While DailyKos is the highest-traffic political blog in the US, I don't think it's particularly newsworthy that they are considering Rails. In fact, I think it's quite the opposite. What I do find interesting is the evolving discussion about the choices. Hunter essentially set out Perl/mod_perl, Python/Django and Ruby/Rails as the main choices. What people have to say about the differences and why they would choose one over the others makes for some really I-should-have-been-in-bed-an-hour-ago reading. Some of what people think they know about Ruby and Rails seems to be out of date or otherwise misinformed, but there are some good arguments on all sides.

If you are gearing up to have a conversation with management about picking Rails for a big project, take a read to see in one place all the arguments you will have to deal with!

Trying to break free from .NET?

Luckymonk escaped their .NET entanglement and found Ruby on Rails, but they still have to live in a Windows world. Now they’re putting on a workshop teaching you how to do the same. It’s in Chicago and it’s almost sold out.

Usually we don’t mention workshops any more (there are so many), but I thought it would be nice to shine some light on one of the lesser published transitions. The one from .NET to Ruby on Rails. We got plenty of stories of how PHP and Java folks are jumping ship, so its great to hear how it’s happening from the Microsoft camp too.

Amazon goes Ruby on Rails

Never thought you’d hear that, eh? But that’s exactly what unspun.amazon.com is. A Rails application sitting on the Amazon.com domain. Adam Selipsky from Amazon Web Services introduces the site with this:

UnSpun helps you to find and create ranked lists by gathering votes from workers on Amazon Mechanical Turk and from the UnSpun community. We show the popular opinion, with no “spin” (hence the name) — along with links to websites with more information about the particular items on the list. If you don’t see the list you are looking for, simply create it and rankings will start populating within a few minutes. 2,294 ranked lists are already on UnSpun, holding 640,107 items, with more coming in all the time.

Congratulations to the AWS team at Amazon!

Coming shortly, we’ll have a bunch of other announcements for high-profile companies going Ruby on Rails for various new projects. Exciting times.

Beginning Ruby on Rails E-Commerce

Christian Hellsten and Jarkko Laine’s new book has hit the shelves: Beginning Ruby on Rails E-Commerce. Their pitch:

Beginning Ruby on Rails E-Commerce: From Novice to Professional is the first book of its kind to guide you through producing e-commerce applications with Rails—the stacked web framework taking the world by storm. The book dives right into the process of creating a production-level web application using agile methodologies and test-driven development combined with Rails best practices. You’ll take advantage of the latest crop of Rails plug-ins and helpers that will radically improve your programming schedule. You’ll also create a real application step-by-step, plus the book is driven by real-world cases throughout.

You can also get it straight from Amazon. Congratulations to both authors on completing the book.

A Voter Guide in Rails

In the United States, elections are coming up next week. Radical Designs, a Rails development shop in San Francisco, has put together a site (using Rails) to let voters build, share, and view voter guides: TheBallot.org. Ballots in US elections can be long and complicated, so many groups make voter guides to help sort through the issues. If you're curious, PodTech did a videolog interview about the building of TheBallot.org.

Ruby on Rails Camp in San Jose on November 9th

Ruby on Rails Camp is an event for up to 120 people who can make it out to the IBM Almaden Research Center in San Jose and are willing to cough up $25 for the entry. Their pitch is:

Ruby on Rails Camp will be a gathering of enthusiasts who want to share and learn more about Ruby on Rails (RoR) in an open environment. It will be an intense event with discussions, demos, and interaction from participants.

The focus is the somewhat odd question “Is Ruby on Rails Ready for Business?”, but that shouldn’t stop you from going if you’re in the area.

Paris on Rails on November 17th

Regional Rails conferences are popping up all over the place. On November 17th, Paris on Rails will go down. It looks like it’ll be a great show for all French speaking people out there. And they got some nice sponsors lined up, such as IBM and Telecom Italia. Way to go.

If you want to sign up, the fee is 60 euro.

RailsConf 2007 - Call for proposals

There are only 216 days until RailsConf 2007! The 2nd annual International Rails Conference will be in Portland, Oregon on May 17-20, 2007. Don't worry, it's going to be a few months before tickets go on sale (and sell out instantly). But if you're thinking about submitting a proposal to speak at RailsConf, the time for that is fast approaching. Go to the conference website to answer the call for proposals - the deadline for submissions is November 27, 2006.

If you're not planning a talk, you might want to go to the conference wiki and leave your ideas for what you'd like to see in the program.

Testing page caching with new plugin

Damien Merenne has created a swank plugin for page cache testing. Whether caching has happened or they’ve been expired. Quite useful for testing sweeper logic, which, like any caching techniques, are often susceptible to subtle invalidation bugs. Hopefully Merenne will continue work on his plugin and extend it to deal with action and fragment caching too. That’d put it on the fast track for core inclusion.

Who wants faster ERb rendering for free?

Stefan Kaes from RailsExpress has recently released a Rails plugin that greatly reduces the time Rails spends for rendering ERb templates. He’s now looking for help to get the code out of beta.

The basic idea behind the plugin is to improve rendering speed by partially evaluating the code produced by ERb at template compile time. This is especially helpful for pages that contain many calls to helpers that make use of Rails’ route generation, because most routes can be resolved at template compile time.

Stefan has reported some data on the speedups obtainable which looks very promising.

He has set up Trac for you to submit bug reports, feature requests and patches.

University of Notre Dame on Rails

John Nunemaker wrote to tell me that the University of Notre Dame has picked up Ruby on Rails and is using it for their forum site. About the implementation, he writes:

The live webcast area is using rjs and such to capture live notes taken by viewers and update live photos from flickr without interrupting the stream of the video. The site takes advantage of Rails page caching and has a small admin area which updates the various sections of the site.

Cool stuff! Have you seen Rails in use in academia elsewhere? Tell your story in the comments.

New Ruby site goes online

After months and months of deliciously teasing screenshots, the real deal is now out for the world to see. The official Ruby language website has been redesigned. And what a wonderful design it is. Congratulations to the visual identity team and the contributors. It’s truly a work to be proud of.

RailsConf Europe: Sold out and almost here

RailsConf Europe is imminent. Come next Thursday and hundreds of Rails programmers will descend on London for two days of talks, tricks, and perhaps a pony show.

Despite an initially slower opening (compared to the 1 week sell-out madness of the Chicago fair!), RailsConf Europe has indeed managed to sell out the slated 300 seats and then some. All in all, I believe we’ll almost be pushing 400 people including speakers, staff, and all attendants. That’s pretty fantastic!

I’m especially pleased to see the final schedule too. Mostly because it looks very little like the Chicago one. We have different headliners like Kathy Sierra and Jim Weirich and the individual sessions are also completely their own. It’s great that we’ve been able to fill no less than four tracks with excellent content.

So a big thanks and congratulations to all who decided to go. I’m sure we’re going to have one heck of a show.

Sun hires the JRuby team

Tim Bray has announced that Sun Microsystems has hired Charles Nutter and Thomas Enebo, the developers behind JRuby. Tim's announcement has a FAQ that probably answers many of the questions you have. My favorite bit:

Is Sun responding to hype? Yes, if by "hype" you mean a genuine groundswell of interest in the developer community.

Congratulations to Charles, Thomas and Tim. It's exciting to see Sun supporting this project, and it will be interesting to see what they produce.

Adobe announces Rails SDK for Flex

Adobe’s Mike Potter brings the cherry news that an officially-backed Rails SDK for Flex and the rest of the company’s RIA suite is now available.

Derek Wischusen from Flex on Rails gives us the scoop on its content:

Currently, the SDK contains a sample demonstrating: (1) Intergrating with a database, basic CRUD, and rails migrations. (2) Uploading and downloading files. (3) Downloading data directly from Flex and sending data to a new browser window directly from Flex. (4) a simple Directory Explorer. The last sample uses WebORB for integrating Flex with Rails.

Great news. Flash is on the fast track out its ghetto image and its exciting to see Adobe care about integration with the world around it.

LiteSpeed Web Server 2.2 Released

LiteSpeed Web Server is a commercial product that offers a free version for private and commercial use. With release 2.2, LiteSpeed Technologies has embraced the Rails community and provided built-in support for deploying Rails Applications.

According to their website, they are “the world’s best performing Ruby SAPI and easiest Ruby on Rails application setup”. I put their claims to a test in a couple of screencasts for your viewing pleasure.

If you haven’t checked out LiteSpeed yet, give it a try.

Shopify didn't get memo, goes international

Obviously someone forgot to tell Tobi and crew that its impossible to do internationalization with Rails. Otherwise, he wouldn’t have been so foolish as to try. And now look what has become of it? Shopify checkout in multiple languages. Even Scottish!

All joking aside, congratulations to jaded Pixel. We’re eagerly awaiting the write-up on how you guys went international.

New Mephisto Release

The latest version of Mephisto, the blog that powers Riding Rails, has been released. Justin Palmer has the nitty gritty details at the Mephisto Blog. Our focus for this release has been the simple Asset Manager, as shown in the screenshot. I feel it’s pretty solid for a blog, so future releases will focus on broadening the horizons with some more CMS capabilities.

Even if you’re not looking for a publishing tool now, there’s a wealth of good, unit tested code in the subversion repository.

Things you shouldn't do in Rails

Kevin Clark was written a nice piece on things you shouldn't be doing in Rails. It starts with a reminder about not using various deprecated pieces of the API, and goes from there into recommendations based on Kevin's personal experience with Rails. It's worth checking out. Remember, half of knowing what to do is knowing what not to do.

Power Flash and Flex from Rails

Jon Shumate introduces WebORB:

WebORB for Rails is server-side technology enabling connectivity between Flex and Flash Remoting clients and Ruby on Rails applications. WebORB for Rails can be installed as a plugin into any Rails application to expose Ruby classes as remote services. The product provides a complete implementation of the Adobe’s AMF0 and AMF3 messaging protocols and thus supports any Flash Remoting or Flex client.

Working with Flash and Flex? Check it out.

The Rails Edge

I've been wracking my brain trying to come up with something to say about The Rails Edge that isn't already obvious. The problem is that everyone already knows that Dave Thomas and Mike Clark have been delivering top-notch Ruby on Rails training since last year, so I don't have to say what a good deal this event will be. All the speakers are already famous Rails peeps in their own rights and don't need their virtues extolled (even Marcel). And I certainly don't need to tell anyone how much fun it is hanging out with a bunch of Rails folks for three days.

One thing I can offer is a personal testimonial as to the quality of the Pragmatic Studio programs. I took the Rails Studio back in January. Up until then I'd only dabbled with Rails. After taking the studio I had the knowledge to build real applications, and now I've got a job doing Rails development full time and am an author on the official Rails blog.. One can never know what might have been so I can't say I owe it all to that training, but I certainly got a lot from it and happily give it credit for getting me going in the right direction.

This year, RailsConf and RubyConf both sold out in a matter of hours. There is a huge demand for conferences - people want to learn what's up in the Rails world, to meet other Rails developers, and to improve their Rails development skills. We've started to see some regional conferences being organized which could potentially be pretty cool, but there is always a place for a professional production like The Rails Edge. If you're looking to get more involved in Rails, you should check it out.

Unobtrusive Javascript Plugin

Dan Webb and Luke Redpath have release the latest version of their Unobtrusive Javascript Plugin for Rails. It solves several of the main problems people run into when working with unobtrusive javascript:

  • Development isn’t as intuitive with Rails when you’re defining your custom javascript behaviors in an external file.
  • When working with pages with lots of images and content, the behaviors won’t be enabled until everything is downloaded and window.onload is called. It’s been solved with some nasty cross-browser javascript hacks, all handled transparently by Dan’s LowPro extension for prototype. This has been a big deal for me personally, so it’s nice to see it all solved.

UJS attempts to solve this by taking defined behaviors in the view and creating a tailored javascript file for it. Smart conditional GET and page caching techniques can be used to save bandwidth and time.

All in all, it looks like Dan and Luke did an excellent job on the plugin. Anyone using it? How’s it working out for everyone?

Streamlined: Taking admins beyond scaffolding

Justin Gehtland and Stuart Halloway has been moving along at a rapid pace on Streamlined since its unveiling at RailsConf in June. There’s now a public repository with the code available and they’ve put together a convincing screencast of its use.

I really like their approach of using separate UI classes instead of contaminating the model classes with administrative concerns. It has a great feel and look to it. Exciting to see it move forward.

Miguel de Icaza longs for the Rails of GUI

Open source hacker extraordinaire Miguel de Icaza muses about the state of GUI APIs in light of Avalon:

I just had a realization today.

Microsoft’s Avalon is the J2EE of GUI APIs.

Its God’s way of punishing us for replacing the ten commandments with the Design Pattern fad.

We will have to wait a couple of years for the “Rails” of GUI toolkits to come into existance. In the meantime programmers will pay for their sins.

Avalon marks the end of the American Dream.

Now that’s not a happy programmer speaking.

Russian Rails community growing fast

Yaroslav Markin wrote to inform me that the Russian Rails community is experiencing rapid growth and that they’ve now completed a translation of the entire site living at www.rubyonrails.ru. If you speak Russian and want to join the community, they already have hundreds of members in their Google Groups forum.

Do you know of any other local Rails groups making headway? Please post in the comments.

Testing with CSS selectors

If you have trouble wrapping your head around assert_tag and its options, you might want to give CSS selectors a chance instead. There are currently two plugins for handling that: assert_select and hpricot helper.

The hpricot style gives you something like assert element('title').should_contain('Funky Chicken Title') and the assert_select gives you something like assert_select "title", "Welcome".

From a brief cursory overview, I tend to like the assert_select style better. But I have yet to use either for real stuff. Please do shoot a comment with your experiences. One of these methods could well make it into core.

Composite primary keys for Active Record

Dr Nic Williams has charged one of the major strongholds of legacy database compatibility with Rails, composite primary keys support. By installing his nimble plugin, you get a very natural API for mapping those blasted composites using set_primary_keys and an array of keys.

It’s still a work in progress, but if you have to deal with a legacy database and want to use Rails, this might just be your ticket in.

Typo 4.0 released, with Rails App Installer

I’m only a week behind on the release of Typo 4. Typo is one of the oldest and most visible of Rails open source projects, so it’s always nice to see a new release. Out of all the new features and bug fixes, what really stood out for me was the Typo installer. Scott has recently extracted this into its own gem, ready for inclusion with your own Rails applications!

Typo now includes a .gem-based installer that makes it easy to install Typo. Just install the Typo gem (gem install typo) and run the Typo installer (typo install /some/path) to create a new Typo blog in /some/path. The installer will install all of Typo’s files, create a working set of config files, create a SQLite database for you, and start the Mongrel web server on a random TCP port. It’ll also create a set of sample Apache and Lighttpd configuration files to show you how to tie Typo into your existing web server. — Typo Installer

David Heinemeier Hansson's RailsConf 2006 keynote now online

David’s RailsConf 2006 keynote, Discovering a World of Resources on Rails, is now online.

In this talk he announced the new ActiveResource project, for consuming REST web services and evangelized his new infatuation with regimenting his domain into simple CRUD operations.

You can get the slides and a slice of David’s point of view on all this, over at LoudThinking.

For those twitching at the flash video player, Ruby Central will be making the footage available in the future in an unflashy format.

RailsConf keynotes on video

If you missed RailsConf 2006, you'll be glad to know that videos of the keynote presentations are being made available for online viewing and (coming soon) download. A collection of slides synchronized with recorded audio for all presentations will also be available soon. Videos and information about audio and slides can be found at ScribeMedia at the RailsConf 2006 Keynote Series page.

The first two keynotes by Dave Thomas and Martin Fowler are already available. The other five will trickle out over the next few weeks. Next up, David Heinemeier Hansson's keynote on "A World of Resources".

The Power of the Marginal

Paul Graham delivered one of the keynotes to an audience of about 550 people this weekend at RailsConf. The text of his talk, The Power of the Marginal, is now online. Hold tight for full video of almost all the keynotes in weeks to come. They will be made available for free to download.

For now, relive the weekend or catch up to what went down with a bunch of pictures and commentary.

New Rails app: MOG.com

You may have seen MOG mentioned on BoingBoing or elsewhere earlier this week. It's the new social networking site that lets music lovers connect based on what they're into, keep a blog about their musical discoveries, and find new things to appreciate based on their friends' recommendations. It even has this MOG-O-MATIC plugin for iTunes so that it can figure out what you listen to without you having to tell it. Even if you don't have your music tagged.

That's all pretty cool, but for the readers of this blog, the really cool part is that MOG is written entirely in Ruby on Rails. The MOG software is the creation of Lucas Carlson, Dave Fayram, and Joshua Sierles. It's a nice piece of work, serving up 1.5M requests per day using Pound, Mongrel and memcached, and they are still tuning it for performance. The app also includes an XML-RPC interface used by the plugin (though Dave says now he thinks REST might have been a better way to go).

So tune your internet dial to mog.com and take a listen...

Tips on how to improve application efficiency

Rails performance specialist Stefan Kaes, who writes extensively about optimizing Rails over at Rails Express has a lengthy article at the new InfoQ site called A Look at Common Performance Problems in Rails.

Kaes identifies various development practices that will slow down your Rails applications, such as repeating computations that only need to be run once and then cached. If you’ve located some slowness in your application, Kaes may have already identified some of the likely culprits.

New Rails App: RightCart.com

Back in January I took the Pragmatic Rails Studio along with some guys named Dylan Stamat and Jonathan Siegel. Earlier this week they announced a brand new internet application: RightCart.com. By the way, the two of them wrote it in Ruby on Rails in just six weeks!

RightCart logo

RightCart is "Shopping 2.0". It lets you embed a shopping cart on any web page with just three lines of HTML and JavaScript. The RightCart service manages your customer's shopping cart contents for you, so integrating shopping capabilities into your website is trivial. They take care of everything from your catalog to payment processing. You can sell your own stuff and pay them a small percentage. You can also sell stuff from a shared catalog (with over a million items already) and get a 1% commission on the sale.

And like all good Web 2.0 companies, RightCart has a blog (State of the Cart) to share news about their business and services.

Congratulations to Dylan and Jonathan on their product launch!

Testing RJS with ARTS

An Achilles’ heal of Rails is no good way to test your RJS. As the presentation behavior gets more and more sophisticated, the inability to test it becomes a real problem. Not anymore.

Kevin Clark has released ARTS, a mechanism to test RJS. His API is simple yet flexible. A single point of entry let’s you test a considerable amount of the RJS you can generate. Here’s an idea of what you can do:


  assert_rjs :alert, 'Hi!'                                                     
  assert_rjs :assign, 'a', '2'                                                 
  assert_rjs :call, 'foo', 'bar', 'baz'                                        
  assert_rjs :draggable, 'draggable_item'                                      
  assert_rjs :drop_receiving, 'receiving_item'                                 
  assert_rjs :hide, "post_1", "post_2", "post_3"                               
  assert_rjs :insert_html, :bottom, 'posts'                                    
  assert_rjs :redirect_to, :action => 'list'                                   
  assert_rjs :remove, "post_1", "post_2", "post_3"                             
  assert_rjs :replace, 'completely_replaced_div', '<p>This replaced the        
div</p>'                                                                       
  assert_rjs :replace_html, 'replaceable_div', "This goes inside the           
div"                                                                           
  assert_rjs :show, "post_1", "post_2", "post_3"                               
  assert_rjs :sortable, 'sortable_item'                                        
  assert_rjs :toggle, "post_1", "post_2", "post_3"                             
  assert_rjs :visual_effect, :highlight, "posts", :duration => '1.0'           

He’s written up an extensive tutorial to get you up and running.

The Railways at Reboot 8

Finnish superstar Jarkko Laine, who’s been in the Rails community since day one, is going to be hosting a discussion this Thursday around 9PM at Reboot 8 in Copenhagen called The Railways.

The idea of
the discussion is to bring together people who have already dipped
their toes in the Rails koolaid with those who have contemplated doing so but have not yet made the jump. The conversation will be around
topics like:

  • What in the Rails way has struck people as most important?
    What has made the most difference?
  • Real-world war stories. How has Rails made something possible/
    easier/more productive?
  • Whatever people feel is important to tell Rails newbies.

All Rails people attending Reboot are kindly asked to participate in
the discussion and think beforehand of a few good stories they can
tell to spread the love.

Rails Helps People Find and Share Wine

Dan Benjamin, the man who brought A List Apart to Rails, has teamed up with web-standards guru Dan Cederholm and launched Cork’d, a free service for wine fans.

Built with Rails, Cork’d lets you rate, review, and catalog the wines you’ve tried. You can also keep track of wines you’d like to try and buy easily. Best of all, the site has a nice social network aspect to it, where members are encouraged to share and subscribe to each others’ reviews and recommendations.

Rails Day 2006

Last June was the first Rails Day, where teams of two or three competed to build the best all around Rails app in a 24 hour period.

Well they’re doing it again this year: Rails Day 2006 will be held on June 17th, just a few days before the first official Rails Conference.

Last year’s contest had dozens of dozens of teams and almost as many prizes, including some pretty sweet ones for the teams that won top honors.

This year’s organizers are looking for your help on fine tuning the rules. So weigh in with your opinions if you have any.

Registration isn’t quite open yet. So rally the troops and stay tuned.

Getting Real after RailsConf in Chicago

If you’re in Chicago for RailsConf, you might want to extend your stay to include the following Monday. The Getting Real workshop by 37signals is going down on June 26th. Learn all about how you can put those Rails skills towards your own business and build web applications like Basecamp, Backpack, and Campfire.

The workshop was announced yesterday and half the seats are already gone. If you want to partake, you’ll probably have to sign up pretty soon.

Tom Copeland on the Rails podcast

The latest Rails podcast features Tom Copeland, one of the guys who generously runs RubyForge. Some might be surprised to know that Rich Kilmer and Tom Copeland have been running RubyForge out of Rich’s basement for the past few years.

Aside from keeping all our Ruby libraries available for download, Rich and Tom have been putting in a lot of work on their latest application, indi which is in a private beta until mid summer.

Download the podcast: mp3, mp4.

A typed transcript should be available soon as well. For those interested in typed transcripts, you can subscribe to a transcript RSS feed.

Interview with Mongrel developer Zed Shaw

Zed Shaw’s new (mostly) Ruby webserver Mongrel has been getting people’s attention lately. What started out as perhaps just an itch has turned into a full time project for Zed, backed by corporate funding.

Pat Eyler caught up with Zed over at O’Reillynet for an interview where Zed gives some details about the Mongrel project.

Many have already switched their apps over to use Mongrel. Keep an eye on it as an increasingly viable option for serving up your Rails applications.

Weekly interactive guides with Kevin Clark

Kevin Clark, the guy whose recently taken on the documentation cleanup project, is diversifying his documentation work. His latest idea: weekly interactive guides.

Write into Kevin with requests on a specific Rails related topic that you’d like to understand better. He chooses a topic from your requests each week and builds a guide around that topic.

Get your submissions in by Monday to kevin dot clark at gmail dot com. Include [idea] at the start of the Subject. He’ll have the guide ready by the following Monday.

Easily find inefficient queries with QueryTrace

Nathaniel Talbott of test/unit fame has just released a new plugin he calls QueryTrace. I’ll let him explain what it does:


It’s nice that ActiveRecord logs the queries that are performed when your actions are executed, since it makes it easy to see when you have serious inefficiencies in your application. The next question, though, is always, “OK, so where are those being run from?

Silicon Valley Ruby on Rails group forming

For those of you in the Silicon Valley, Zachary Taylor and others are starting up a Ruby on Rails group and are looking for people interested in joining in. They don’t have any set dates for the first meeting, but are aiming for a get together in the coming weeks. If you are interested, get involved.

If you are closer to San Francisco proper, you should know that they already have a group setup. The SF Ruby Meetup has regular meetings on the 2nd Tuesday of the month.

JRuby runs a simple Rails application

The chaps at the JRuby project has been making rapid progress in anticipation of JavaOne. They finally got a simple, but complete Rails application running. I hear it’s not breaking any speed records, but it’s a great first step regardless. This should bring comfort to any developers stuck in large, mono-culture organizations that mandate the JVM as its sole alter. JRuby is a great way to sneak Rails in the backdoor.

The Complete Guide to Rails Plugins

Plugins are the official way to bend Rails to do your bidding. Creating a plugin is a great way to share your Rails extensions with others who may find them useful. Until recently though, resources on plugins have been scattered around various blog articles and mailing list posts.

Mr. Rails Podcast Geoffrey Grosenbach has pulled together these various resources and done the homework for you. Presented in several parts, here is Part I of The Complete Guide to Rails Plugins.

This first installment is an introductory overview. He covers how to find and install plugins, lists the various points of entry into your Rails app that plugins can hook into as well as summarizing the parts they generally consist of. He’s got an explanation for each default file and directory that gets generated for a new plugin.

With this primer you’ll be all set for making your own plugin when Part II comes around.

RailsConf Europe: September 14-15 in London

The first RailsConf scheduled for June 22-25 in Chicago sold out so fast it made our heads spin. 550 seats were snatched up before the program was even ready or a week had passed. That left a lot of people from Europe and even the US without much of a chance to participate.

Here comes the remedy: RailsConf Europe. From September 14th to 15th, London will set the stage for the second official Ruby on Rails conference.

The program has yet to be finalized, but a good number of headliners have already been confirmed: Dave Thomas, Jamis Buck, Jim Weirich, and my favorite blogger and thinker on passion, Kathy Sierra. Marcel Molina, David A. Black, Chad Fowler, and yours truly are also lined up. A call for proposals should be going up shortly to fill in the rest.

Bringing over that many speakers from the US and putting them and the conference up in central London ain’t cheap, though. So the sticker might carry a bit of an initial shock. There’s a super-early bird special of £400 and the rates then travel from there to a just-before price of £575.

But none of the speakers are taking home a dime and Chad Fowler has been working his ass off for free through RubyCentral, which is the non-profit organization putting on this show. They have in the past used profits from conferences to fund Ruby hackathons. So at least you know your quid isn’t being blown on white powdery rails. All the hype is 100% home-grown.

To the tune of that violin, let me just remind that as with RailsConf Chicago, there’re a limited number of seats. Roughly 500 spots. When they’re gone, they’re gone. If you want to go to an official Rails conference this year, meet and hear the core team among others speak, this is the last chance.

See you all in London in September!

EastMedia jumps into the Rails training arena

Matt Pelletier’s EastMedia, a Rails-centric firm out of New York City, has announced that they are offering two Rails classes in the near future.

The first is a one day course in New York City on April 29th taught by Matt Pelletier and Francis Hwang, the founder of the NYC Ruby user group, humanist and author of, among other things, Lafcadio and MockFS. Francis has been building websites in Ruby for over 4 years now. Up until recently he was the primary developer for http://rhizome.org/. You can sign up here for $395.

For those on the other side of the pond, they are also offering a three day course in London , May 5 – 7 taught also by Matt as well as Dr. David Black of Ruby for Rails fame. That one is £1200 GBP and you can sign up here.

UPDATE: Jeremy Voorhis of PLANET ARGON and Globalize fame will also be one of the instructors at the London gig.

Fluxiom has launched


The wait is over for the next killer Rails application. Fluxiom has launched! Digital asset management just got a lot sexier.

You may have seen its demo video which has been floating around since last December. Developed by wollzelle with none other than Thomas Fuchs, aka Mr. Scriptaculous, at the helm, it brings a native desktop app feel to your web browser. Those building Rails applications these days may be familiar with all the swanky effects Thomas has been putting together. Turns out he’s had a few tricks up his sleeve. Fluxiom not only helps collect, manage and access your assets, it does it with style.

Fluxiom provides four subscription levels, all of which offer a free 30 day trial. You can check out the video and then head over to the sign up page.

We await a bevy of great extractions Thomas ;)

Writing Domain Specific Languages

If you’ve been in the Ruby community for any time, you will likely have heard about “Domain Specific Languages”. Rails uses the concept extensively with its macro style methods for setting up associations, callbacks and validations in models, as well as layouts and filters in controllers. Indeed, Ruby provides great support for creating your own DSLs. It may have become easier to spot domain specific languages, but how does one actually implement them?

Rails core team member Jamis Buck has taken the time to guide you toward understanding the fundamental mechanisms used to create domain specific languages. Get up to speed with his tutorial, Writing Domain Specific Languages, and you’ll be creating elegant abstractions sooner rather than later. What a treat.

Rails training for a good cause

Here’s a good idea: Use a hot new technology to help kids prepare to create the next hot new technology.

Amy Hoy, Ezra Zygmuntowicz and Jeff Casimir are doing just that and calling it Workshop for Good. On Saturday, May 20th and Sunday, May 21st, in Washington, D.C. Amy, Ezra and Jeff will be teaching an intensive Rails workshop. All (i.e. 100%) of the proceeds from attendance fees ($400 regular, $200 for students) will go towards buying stuff like computers for the students of César Chávez Public Charter School.

Amy Hoy has been giving back to the Rails community with education almost since day one. You may have gotten over the initial hurdles yourself with one of her accessible tutorials or clarifying visual aids. Ezra Zygmuntowicz singlehandedly built one of the first substantial real world Rails applications, the Yakima Herald Website and is currently working on a Rails book for the Pragmatic Programmers. Both bring substantial experience with Rails to the workshop.

Last I heard there were 23 spots left so get on the list while you still can. Take this opportunity to both learn Rails and promote a great cause. Killing two birds with one stone is seriously agile.

Sign up here

UPDATE: There are only 8 seats left! If you were thinking of coming, now is your chance to get in.

Learn about Ruby on Rails from oracle.com

Richard Monson-Haefel has a simple tutorial up on oracle.com that describes how and why to use Ruby on Rails with an Oracle database. It’s great to see big organizations like Oracle take Rails serious enough to commission articles about it for their site.

It’s also fitting since the Oracle database adapter in Rails now has a really strong team of contributors keeping it sharp. Michael Schoen in particular has done a fantastic job. He has set up an automated testing server for Oracle, so any new revision of the framework is automatically tested and run against Oracle. If any failure occurs, an email is sent out.

We invite guys working with DB2, MS SQL, Sybase, and the other commercial databases to do the same.

San Diego Ruby Users Group

There is some action down in San Diego on the Ruby and Rails front. The local RUG, after some time of inactivity, is revving back up. If you live in the area and are keen on meeting up with like minded Rubyists and Railers, take a look over at Kevin Clark’s blog for more information.

Rails Training Coast to Coast (and beyond)

Mike and Dave are mobilizing their perpetually sold out Pragmatic Rails Studio again. This time, they’re hitting both coasts of the USA.

First in Portland on April 10 followed by Boston on May 11.

These session have sold out every time, so don’t miss your chance.

For those in Europe or the United Kingdom, Geoff Grosenbach will be doing a one-day Rails workshop in London on March 30 followed by me on April 10 with a four day workshop in London and Rails Core member Marcel Molina, Jr. with a five-day Rails Bootcamp in near Frankfurt, Germany.

Quick PDF generation with RTex

Bruce Williams of Naviance recently announced his RTex plugin. It exposes your controller data to rtex views that output LaTeX which is convereted to PDF.

To install you can use the plugin script:

ruby script/plugin install rtex

Or grab it from svn:

svn co http://codefluency.com/svn/codefluency/rails/plugins/rtex

People have used PDF::Writer to generated .rpdf views. Why go through LaTex to get to PDF rather than use PDF::Writer? Speed, says Bruce.

i5labs pushing the limits of Rails

In November, PlanetMoon launched Infected, a first-person shooter game for Playstation Portable. The PSP game has two-pieces, one, the actual PSP game (which is C++), and a statistics reporting tool (how many kills did you get, how many people did you infect, where in the world are they). Any time someone wants to grab their stats, it kicks in the PSP Web Browser, which points to a Ruby on Rails server. The team behind this is Jason Wong’s i5labs. Jason blogs about some of the challenges of working within the constraints of PSP console.

i5labs also just finished a Zubio chair massage kiosk at the San Francisco Shopping Center. You schedule 10 or 20 minute massage sessions using a touchscreen, then swipe your credit card. The touchscreen system is implemented with Rails. Jason shares details of the code and hardware.

i5labs is also looking to hire a part time Ruby on Rails developer (who could eventually go full time). If you’re interested drop them a note at jobs@i5labs.com.

We’ve seen the limits of Rails pushed before, when Mike Clark and James Duncan Davidson mixed Rails with Cocoa with VitalSource. Anyone else using Rails outside of the traditional web context?

Ruby/Rails in the Valley: the Silicon Valley Ruby Conference

David Black sends along this note about the upcoming Silicon Valley Ruby Conference, which features Rails core’s own Marcel Molina Jr. and Jeremy Kemper:

Ruby Central is a name you can trust in conferences (RubyConf and
RailsConf), and now Ruby Central has teamed up with SDForum to present

Silicon Valley Ruby Conference April 22-23, 2006 http://www.sdforum.org/rubyreg

The impetus for this event was SDForum’s interest in producing a top-notch conference with a regional focus but with broad Ruby/Rails
appeal. SDForum asked Ruby Central to co-produce the event, and
the Silicon Valley Ruby Conference is the result.

Who should attend this conference? Everyone who didn’t get into
RailsConf. Plus, everyone who DID get into RailsConf! Don’t let the
subtle marketing fool you: this is one of the major Ruby/Rails events
of the year.

Speakers include:

and many others.

Questions? Contact David Black (dblack@rubycentral.org).

The Adventures of Scaling: A Case Study

Patrick Lenz has started in on a case study The adventures of scaling, in four instalments, on how he made eins.de scale, improving its performance by about 60%.

The online community site was ported from 50,000 lines of PHP to 5,000 lines of Rails. It serves up over 1 million dynamic page impressions on a “good day”. This first instalment goes through their unsuitable initial setup and explains why it didn’t work, including a diagram of their configuration. As one of the article’s commenters says, “Nothing beats a shiny chart”. Looks promising. Good start. Thanks for the write up Patrick. Stay tuned.

Bruce Tate on the Rails podcast

While down in Austin for SXSW, Geoffrey Grosenbach caught up with Bruce Tate for the Ruby on Rails podcast. Bruce talks about how Rails is the catalyst behind a sea change in the development world. Download as mp3 or mp4.

A long time Java developer, earlier this year Bruce put out a book called Beyond Java which caused quite a stir.

He also just wrote an article for IBM’s developer Works about Active Record aimed at Java developers called Crossing Borders: Exploring Active Record .

Keep an eye out for his upcoming Java to Ruby book. Your boss will thank you for alerting him/her to it one day.

Rails makes headlines down under

The Australian version of ComputerWorld has a great article about how Ruby on Rails is helping Spin Technologies migrate school portal schoolseek.com.au get off .NET. Jordan Brock speaks about how fast Rails is to get started with and recommends that others get going by doing a small application first. Good advice and great to see Rails making headlines down under.

Sneak peak at effortless deployment with Rails Machine

SwitchTower author Jamis Buck has provided an excellent manual documenting how to use it. Those who’ve taken the plunge are loving how easy it makes deployment, as well as myriad other tasks. But I’m still always hearing, “We haven’t setup SwitchTower yet but are really looking forward to”.

Enter Rails Machine. It sets out to lower the barrier to using SwitchTower by taking care of all the setup and maintenance. They are scheduling to open their doors in April. For now take a look at the short movie they’ve made showing how easy they’ve made it for you to get going with SwitchTower. They get you up and running in under 5 minutes. No more excuse to not realize how much you love SwitchTower.

RubyConf 2006 location announced

Hot on the heals of the fervor behind the upcoming RailsConf, the location of RubyConf 2006 has been announced. This fall it’s going to be in Denver, Colorado from October 20-22, 2006.

Two years ago we had about 70 people at RubyConf. This past year we stopped accepting signups months before the event when 200 tickets were sold. This year’s conference promises to have huge demand.

Venue, schedule and registration should be opening up in the Spring. Keep an eye on the RubyConf site as more details trickle out.

Big thanks to David Black and the others behind RubyCentral for their tireless work setting all this up.

Annotated models

Ever working with a model and you forget what all of its columns are? Ever find yourself with your schema.rb open in a separate window so you can see what the structure is of your tables?

Dave Thomas, of Rails Pragmatic Studio fame (among a brazillion other things), hacked up a plugin that adds a comment block to the top of all of your model classes documenting the current schema for the given model. It ends up looking something like this:

  1. Schema as of Sun Feb 26 21:58:32 CST 2006 (schema version 7)
    #
  2. id :integer(11) not null
  3. quantity :integer(11)
  4. product_id :integer(11)
  5. unit_price :float
  6. order_id :integer(11)
    #
class LineItem < ActiveRecord::Base belongs_to :product

When the schema is updated, the comment is updated to reflect the new schema.

Install it with the plugin script:

script/plugin install http://svn.pragprog.com/Public/plugins/annotate_models

Run it with a custom rake task:


rake annotate_models

Check out the caveats in the README.

Thanks for sharing Dave.

Getting Real: How to build web apps like 37s

So now that we’ve forced our technology of web applications upon the world with Ruby on Rails, we decided to get opinionated about everything else involved too. Getting Real, the book is a 171-paged PDF that sells for $19 and tries to explain the guiding principles behind Basecamp, Backpack, Writeboard, Ta-da List, and Campfire. The why’s and the how’s.

If you’re doing web application work for yourself or others, there should at least be a handful of essays that gives you a bright idea or the motivation to make a change. And we’re giving away four of the 91 essays for you to sample first. Yay, free stuff!

Two Ruby articles in the latest ObjectiveView

ObjectiveView, a journal for software developers that focuses each issue on a specific topic, has two Ruby related articles in their latest issue, New Technologies Focus.

The first is an introduction to Ruby by Amy Hoy. She brings her quirky right-brained ebullience to bear, providing a thorough yet accessible tour of Ruby. She emphasizes that one of its most salient characteristics is that it makes you happy. If her writing style is any indication, she’s loving life.

ThoughtWorker Obie Fernandez serves up the other article which demonstrats what DHH’s often cited phrase “opinionated software” means and how it relates to Rails. Keep an eye out for Obie’s upcoming book, Extending Ruby on Rails (Into the Enterprise) which is expected out in Fall 2006 by Addison-Wesley.

These two tutorials provide a nice introduction to both Ruby and Rails.

Past issues of ObjectView which focus on such topics as agile development, use cases and componentized development, are also available, so check out the rest of the back issues on their website.

Jim Weirich on the Rails podcast

Jim Weirich has been using Ruby for ages. He’s one of the early-adopter all-stars from the days before Rails. Rails programmers will be familiar with his wildly popular and influencial Rake and Builder projects. He’s also one of the main developers of RubyGems, which is scheduled to be included with Ruby in an upcoming release.

The enthusiasm he brings to his work and talking about his work make it clear that he has a genuine love for programming. On top of it all, cliches aside, he’s one of the nicest people you’ll ever meet.

So what a treat to have him on the
Ruby on Rails podcast. Have a listen.

Cheers to Geoffrey Grosenbach for snagging yet another great guest.

Using Ruby on Rails on Mac OS X at the Apple Developer Connection

The Apple Developer Connection has a nice Ruby on Rails tutorial called Using Ruby on Rails for Web Development on Mac OS X. As the title suggests, it is aimed at getting OS X users off the ground with Rails.

The Apple Developer Connection doesn’t supply any attribution for their articles, but this one was written by none other than Mike Clark, who along with Dave Thomas runs the always-sold-out Pragmatic Studio series of Ruby on Rails and Ajax training.

Cheers to Mike for taking the time out of his busy schedule to write up a great tutorial.

Rails is Boring and Ruby is a Toy

CUSEC 2006 in Montreal this past January featured a great line up of speakers including Chad Fowler, Kathy Sierra and David Heinemeier Hansson.

Except snow storms in the midwest kept David from making it, so with 12 hours of advanced notice, Rails Recipes author Chad Fowler flexed his jazz improv background by whipping up an entertaining, wise and cool-as-cucumber talk in place of David’s keynote. The result is Rails is Boring and Ruby is a Toy.

Thanks to SOENlive for making the talk available. You can get the rest of the conference by subscribing to the SOENlive podcast on iTunes.

List of what's coming up in Rails 1.1

Today someone on the Rails mailing list asked, innocently enough, “Is there by any chance some document available summarizing all the
(major) beautiful new stuff in Rails 1.1?” As is to be expected, he received instructions on how to do a diff between the 1.0 release tag and trunk as well as links to the CHANGELOGS. He used “summarize” carefully. Turns out there was nothing like he was looking for. Well, not for long…

Scott Raymond, of Blinksale and IconBuffet fame, rolled up his sleeves and did the dirty work for the rest of us. So, as requested, here is a summary of what will be new in Rails 1.1. Thanks Scott.

RailsConf: 150 additional seats <strike>open</strike> GONE!

Due to the overwhelming success of selling 400 seats in just a week, RailsConf has been able to extend the venue and open up an additional 150 seats. So if you missed out during the first round of registrations, now would be a very good time to expedite that intention to be there and sign up. Hope to see you in Chicago in June!

UPDATE: Away they went! The additional 150 seats have been sold in a little less than 24 hours and we’re thus full. We’re going to have one hell of a time with 550 Railers in the room. Awesome!

Two new interviews with Rails creator David Heinemeier Hansson

MySQL developer Lenz Grimmer has a quick chat with David for the MySQL developer zone.

Also, uk.BUILDER.com has a long and insightful interview. David explains how 1.0 should have really been 2.0, what the continuum of database evil entails, why Rails is useful for the enterprise and the joys of aesthetic moments with Ruby. It’s a laundry list of David’s ideology, all in one place. A window into the culture and personality driving Rails.

Choice excerpts:

  • I am not a vendor. I don’t work on Rails to please other people, I work on it to please me. That’s the beauty of open source. I’m free to make technology choices unrestricted by legacy or ill-advised customers. If you don’t “buy” Rails, it’s no skin off my back. There are plenty of people who do buy it because they share the priorities presented.
  • So if labelling me “crazy” helps you ignore the disruptions Rails is bringing to the table, I say go for it. Maybe that’s an accurate label for me in the current situation you’re in. And if there’s no interest or ability to get out of that situation, it’s probably best to write me and Rails off as crazy such that you can head into work with a smile tomorrow.
  • Once a high-level component becomes big enough to be interesting, it’ll take more work to configure it than it would take to build just what you needed from scratch.

Should be required reading for anyone interested in Rails.

Rails training opportunities in Europe

In the next few months, our friends over in Europe will be getting several opportunities to attend Rails training courses.

For those looking for longer, more intensive training, April brings two options.

  • Chad Fowler, author of the new Rails Recipes book, will be offering a comprehensive Rails course April 10th-14th in London through Skills Matter. Chad has deep knowledge and experience with Ruby as well as Rails. His workshop provides particular attention to how Rails uses the strengths of Ruby to its great advantage. Seats are going for £1,500. Register

How long before Dave Thomas and Mike Clark bring their Pragmatic studio over to Europe?

Rails training is spreading.

Canada on Rails is here too

In the flurry of enthusiasm over the official RailsConf, Canada on Rails seems to have been a bit forgotten. It’s going down in Vancouver on April 13th and 14th. I’ll be speaking there, so will Thomas Fuchs (Mr. Scriptaculous), Dave Astels, David Black, and many other Rails celebrities. Do check it out too. We know that you can’t get enough of Rails anyway, so two conferences should be all the double fun.

Testing the view with Selenium

Selenium enables you to test the view by driving it through a real browser. This allows you to test that your application works correctly in multiple browsers and that the Javascript functions as intended. Very nifty stuff.

And Jonas Bengtsson just made the use of Selenium with Rails all the much easier through the new Selenium plugin. This removes the drudgery of setup and makes it silly simple to get started.

RailsConf: <strike>65%</strike> 80% of the seats sold!

RailsConf was announced less than a week ago and the seats are going faster than snappy quick. Of the 400 tickets for sale, 265 were gone as of this morning. That’s 65% sold or just 135 left.

I’d be very surprised if we still had any tickets left by the end of the week. This is shaping up to be the exclusive event of the year, so if you don’t want to regret participating in that, you’d better secure yourself a ticket before it’s too late.

The conference panel is currently judging the more than 80(!) talk proposals and the final schedule will hopefully be announced some times next week.

UPDATE: 80% of the tickets are now gone.

RailsConf 2006: Open for registration!

The first official Rails conference has opened its doors to registrations and is tempting with a wide variety of auxiliary announcements. While all the sessions haven’t been announced yet, the keynotes are final. We got Martin Fowler, Paul Graham, Dave Thomas, and yours truly all lined up to deliver anchors of blast.

There’s a limited number of seats, so just like RubyConf this year, we expect RailsConf to sell out well in advance. That’s one great reason to register now, another is the $400 super early-bird price that only lasts until the end of the month. After that it’s $475 for a while and finally $550 once we get past April 18th. I doubt we’ll have any seats left to sell at $550, though.

As if you needed additional reason, the first 100 lucky people who sign up and donate at least $40 to charity will get free access to a pre-conference day called The Rails Guidebook where Dave Thomas and Mike Clark will teach you Ruby on Rails. So if you’re really quick, that’s a fantastic opportunity to get even more value out of your trip to Chicago in June.

Yes, in case you forgot, RailsConf 2006 is going down in Chicago from June 22nd through 26th at the Wyndham O’Hare hotel. Three days of happy programming for people who love beautiful code. I expect to see you there!

Secrets Behind Ruby on Rails: The Numbers

ITConversations has just made David’s OSCON 2005 keynote, Secrets Behind Ruby on Rails, available for download.

One of the big stories for Rails in August was the numbers behind its budding ecosystem. The conference fell right around Rails’ first anniversary and the numbers one year in were promising. Today, six months down the road, they keep going up.

In the year between when Rails was released and the OSCON 2005 keynote, it was downloaded 100,000 times. In the six months since then it’s up to 300,000.

Estimates on the Rails wiki in August indicated that there were no fewer than 250 programmers in 36 countries getting payed to work professionally with Rails. There are now over 550 Rails programmers in 50 countries, including Azerbaijan!

When Agile Web Development with Rails was released it sold 6 thousand books in its first run. Six months later, its sales are over 25 thousand. Rails publishing is busy, with even more titles upcoming, such as the Rails Recipes cookbook, which is scheduled to be available in beta sometime this February.

There are now around 400 people in the #rubyonrails IRC channel, about the same as #php. The Rails mailing list is as busy as ever.

Six months from now? The first annual Rails Conference. The next half year promises to be interesting. See you there.

Camping: A micro-version of Rails

why the lucky stiff is at it again with his great stuff. This time he has produced a microframework called Camping in the spirit and feel of Rails, but clocking in at just 4kb! Sure, it won’t do what most people need most of the time. But often, there’s good value in doing a bit of what a few people need occasionally. Camping, as the framework is called, fits that description to a T.

And since it conceptually lies close to Rails, you could easily start a quick thing in Camping and then not have too much trouble porting it to be a full-grown Rails application if need be. Camping even uses ActiveRecord to make it all that much easier.

Checkout the insane and too funny announcement that even includes this classic description of XML sit-ups:

Rails and the book both finalists for Jolt Awards

The Jolt Awards have been honoring products of excellence and high productivity for 15 years and this year both Rails 1.0 and Agile Web Development with Rails made the cut as finalists!

The announcement tells us that the book competes against such titles as Practical Common Lisp, Service-Oriented Architecture, and Wicked Cool Java. Rails 1.0 is going up against JBoss 4x, Coldfusion, and Zend Studio. Pretty exciting stuff. Hopefully we’ll be jolting in red shortly.

SwitchTower with Bazaar-NG

Damien Merenne has just announced a Bazaar-NG SCM module for SwitchTower. All you bzr users now have one less reason to not use SwitchTower.

Damien has given permission for this module to be included in the next SwitchTower release, too. If you’ve got a pet SCM that you’d like to see supported by SwitchTower, just take a look at Damien’s code to see how little it really takes to implement a new SCM module. Then, implement it and submit it as a patch to http://dev.rubyonrails.org/newticket.

More templating choice with Markaby for Rails

why the lucky stiff and Tim Fletcher have released a pretty cool templating language for Rails called Markaby that looks like Builder, but assumes a few more things to make it even more succinct and targeted against HTML. An Example:

 html do
   head do
     title action_name
     stylesheet_link_tag 'scaffold'
   end
 
   body do
     p flash[:notice], :style => "color: green" 
     self << @content_for_layout
   end
 end

All you need to do is install the Markaby plugin and you can start creating .mab files. Very cool.

Balancing two approaches to web development

Ruby superstar Jim Weirich gives an insightful overview of the environment that led to Rails, showing how it strikes a balance between PHP and Java. We’ve seen this bisection played out culturally as well, with widespread Rails adoption by designers and enterprise Java programmers alike.

Jim prefaces his talk by saying it isn’t technical but more of an introduction to Rails. Don’t let that dissuade you from watching. He presents a very lucid and concise illustration of how Rails has positioned itself amongst the old garde, cherry picking the best of both worlds.

The video is not to be missed. Jim’s rapid fire style of presentation is a site to behold. Great stuff.

Apache gets serious about FastCGI

Brian McCallister reports that the Apache team has decided to revive mod_fcgi as mod_proxy_fcgi with intentions of proper support for external FCGIs and a place in the core Apache distribution.

This is fantastic news! Paul Querna and Garrett Rooney deserves much praise for embarking on this important quest to restore our faith in Apache as a worthy web server for applications. Not only will this mean that FCGI is no longer a bastard child on Apache 2.x, but also that it’ll have active maintenance and people to turn to if things are sour.

Speaking of sour. Please do forward all your grapes to Brian McCallister or the FastCGI Developers list. Any trouble you’ve had in the past with FCGI and Apache or things you’d like to see happen.

Viva la Apache!

Just in time for the holiday season, the Peace Library

The Peace Library is an online index of Conflict Transformation & Peacebuilding information featuring research papers, reports, and news related to the Sri Lanka peace process put together by the non-profit web media company InfoShare.

It’s in “beta” but already features 207 publications wrapped in an attractive interface. Read more about them here.

Yet another nice app riding the Rails.

Rails Podcast with the creator of Seaside

Avi Bryant is the creator of Seaside, the Smalltalk web-framework built on continuations, that has been shining light on alternatives to traditional MVC- and request/response-based frameworks. I heartily recommend taking a look. It might not fit your brain (it didn’t mine), but its sure to expand it.

Now Avi has been interviewed by Geoffrey Grosenbach for the Rails Podcast. (Unfortunately, the audio is pretty grainy.. hang in there for the first few minutes).

You're Using SwitchTower, Aren't You?

Mike Clark declares his love for SwitchTower, the distributed deployment manager built for Ruby on Rails. He shows off a few fancy tricks in the love letter, such as how to turn web access on and off when you go down for upgrades.

I’m with Mike on this lovefest. I couldn’t imagine operating the 37signals cluster without it. Jamis Buck deserves another round of applause for this fantastic piece of software.

Is GCC 4.0 incompatible with Ruby on OS X (and elsewhere)?

We’ve been receiving various reports of intermittent errors while running Rails applications and regular Ruby stuff that goes something like this: “undefined method ‘include?’ for -517611318:Fixnum”.

It appears that this might be a problem with GCC 4.0-compilations of Ruby. Most platforms are still using GCC 3.3, so they don’t see the problem. But on OS X, GCC 4.0 is now default if you’ve installed the recent Xcode. To switch back to GCC 3.3, do: sudo gcc_select 3.3 and then recompile Ruby.

We’ve love to get more reports and evidence on what exactly the problem is. Perhaps we can get it fixed in time for Ruby 1.8.4. Please use the comments.

Creator of Blinksale and IconBuffet interviewed

GodBit has an interview with Scott Raymond about his use of Ruby on Rails in Blinksale and IconBuffet. I particularly enjoyed this bit about the opinionated software:

If you pay attention when you’re using Rails, you can hear its authorial voice. The Rails community calls the notion “opinionated software,” and people either love it or hate it. I love it. For me, working on Rails is sort of like having really smart, like-minded coworkers. It is inspiring, motivating and energizing.

Interview with the CD babies: Derek and Jeremy

Robby Russell has interviewed Derek Sivers and Jeremy Kemper about the Rails rewrite of CDBaby.com for O’Reilly. A choice bit from Derek:

I was already studying Martin Fowler’s books like a schoolboy, ingesting the lessons while preparing for the rewrite. Then when Tobi really showed me Rails I got it : by sticking with Rails’ conventions, I would be already working by these best-practices I was aspiring towards.

The 37signals' Getting Real workshop

On January 27th, 37signals will once again be sharing insights, ideas, passion, opinions, and vision on how to build an online business in The Getting Real Workshop. We’ll be talking about the whole lifecycle including lots of thoughts on software development with or without Rails.

Yours truly and Jamis Buck will both be presenting and we’ve traditionally had a lot of great chats about Rails. So if you’re considering jumping on board or already have, but needs inspiration to take that somewhere, do join us in Chicago in the beginning of next year.

UPDATE: Sold out. All 50 seats where gone in 12 hours. That’s about 14 times as fast as last time.

Canada on Rails: Vancouver, April 13th

On top of the official RailsConf in Chicago in June, Rails developers are getting a second chance to get together and rejoice this year. Canada on Rails is a two-day conference dedicated entirely to Rails and set in Vancouver, Canada for April 13th and 14th.

I will be there to keynote and Nathaniel is rounding up a bunch of other cool speakers to come talk about Rails. You can even submit your own talk proposal and the registration for conference is open too. There’s an early bird special for just $175 CAD.

So check it out, yo.

Write an article on Rails for .net

I got this pitch from UK magazine .net:

.net, the UK’s leading internet magazine, is looking for Ruby on Rails
experts to contribute to articles and tutorials. Please get in touch
with the editor at lisa.jones@futurenet.co.uk.

Your title as published writer is within reach. Get to it!

Hungary on Rails

www.rubyonrails.hu is a new community site for the Hungarian Railers. It contains a translation of most of this site and its own blog among other things. Neato.

Talking Rails in London in February

The Future of Web Apps is a Summit penned for London in February where people from various parts of the industry will met to talk about.. well.. The FUTURE!

And so will I, under the banner of “Happy Programming and Sustainable Productivity with Ruby on Rails”. So if you have your future groove on and a chance to do London early next year, this is a match.

Snakes and Rubies in Chicago on December 3rd

Chicago is turning into the hotbed for web-application framework development with both a majority of the Rails and Django teams in town. So we thought we’d celebrate that with a happy gathering at DePaul University on December 3rd. For chats and talks on web development using Django and Rails.

In town? Checkout the Snakes and Rubies site for preloading questions and event info.

Typo theme contest: Win tons of stuff including a Powerbook

The Typo theme contest just got beefed up quite bit. Site 5 has offered a 15" Powerbook for the wining theme and a 12" iBook for number two. That’s on top of the truck load of other prices.

If you have any sliver of design skill in your bone, you’d be well advised to participate in this content. Oh, and the upshot is that Typo gets a legion of cool new themes out of it too. See, everybody wins!

Refactoring Rails is coming soon

Refactoring Rails is a new site in the making by Jeremy Voorhis and Robby Russell that’ll focus on how you can make sure that “…your code is for a human first and a computer second”. Signup to be notified on launch.

Rails podcast has been relaunched

The Rails podcast is back in business with a handful of new shows conducted by Geoffrey Grosenbach of Topfunky. There are interviews with Amy Hoy, Obie, Matt, and Thomas Fuchs. And Geoffrey promise to keep the deliveries regular. Fire up that nano.

David Geary demonstrates Rails at Denver Java User Group

David Geary did a cool demonstration of Rails yesterday at the Denver Java User Group by getting a member of the audience, unfamiliar with Rails, to do the demo for them:

In the end, Kirk pulled off the demo without a hitch. That says something about Kirk, but it speaks volumes about Rails. After he left the podium, I added some users to the db and refreshed the app and there, magically, were the new rows in the database. Then I tweaked the pagination parameter for the controller that controls page size from 10 to 5, saved the file and refreshed the browser. I asked the audience if they noticed how long that deployment took. Then I changed the prameter to 3 and then to 2 and reran the demo each time. Each time, the number of contacts displayed updated according to the pagination parameter and each time the redeploy time was, well zero. That got people’s attention.

Change’n’refresh is an intensely addictive form of working, no doubt.

Integrating Wee components in Rails applications

Michael Neumann has released a new version of Wee, which allows for integration of its components with Rails applications. He wrote up a small tutorial on how to do it with the release notes. Wee is a component-centrific framework inspired by Seaside from Smalltalk. Looks mighty interesting, thanks for integrating, Michael.

Convincing those CxO's to see beyond Struts

Matt Raible hopes to become a Ruby on Rails developer, but has doubts on how exactly he’s going to convince CxO’s to see beyond Struts. Matt recognizes that it’s not about technology any more, but rather appearance. On the once golden “but will it scale?”, Matt writes:

The one thing that I see time and time again is that Java developers don’t seem to realize that some of the highest traffic sites on the net are using LAMP stacks similar to what Rails advocates. IMHO, I don’t think “Rails can’t scale” is a valid argument. In fact, I don’t know if there’s any argument or way to put down Rails anymore.

So it’s not about scaling. Rather, Matt sees the problem as an appearance of being unable to hire:

Try convincing a Fortune 500 company to program in Rails vs. Struts and they’ll probably choose Struts because there are thousands of Struts Developers. Is this a good decision on their part? I don’t think so. I think it’s more important to hire smart people that can learn a technology, rather than hiring those that know a technology. Of course, if someone knows a technology really well, there’s probably no harm in hiring them.

Considering the nice flow of job applications we’ve been posting on this weblog and the growing number that has been appearing at places like craigslist, I’m pretty sure this is a mirage. I haven’t heard of anyone getting into Rails development that hasn’t been able to hire.

And the step from corporations like Bank of America posting job listings with Rails as a “nice to have” to “required” is not that big. And with wins at places like EPSON, it gets even easier.

Comparing J2EE and Rails on developerWorks

Aaron Rustad, Technical Architect for Anassina, has written Ruby on Rails and J2EE: Is there room for both? for IBM’s developerWorks. It compares Rails with Struts and show the power of convention over configuration by listing code for similar actions. In summary, Aaron concludes:

So, should you consider Rails for your next Web application? Well, why shouldn’t you? It’s a well-written stack of components that work well with each other and are based upon industry accepted enterprise patterns. The Ruby language allows for fast development and adds to the framework by generating much of the application plumbing. Those who are familiar with MVC and ORM frameworks available in the Java world will have no difficulty wrapping their minds around Rails.

That’s a big part of the reason why Ruby on Rails is enjoying rapid uptake and grabbing mind share left and right. It’s the same ideas! There’s no paradigm revolution in terms of the core patterns and approaches that drives the framework. It’s all about taking familiar concepts and bringing them into a context of convention over configuration, tight integration across a full stack, and of course Ruby.

Get your Rails swag and wear here!

Bill Katz has setup a Cafepress shop for Rails swag and wear that features our wavy railroad tracks on the back and a discrete Ruby on Rails wording on the front. There’s currently no markup over the standard Cafepress prices, so you can get your Rails thong or baby bip at a pretty descent cost.

This is all just in time for OSCON, so all you Railers can show up representin’ tha posse, yo!

Ruby on Rails at Java Forum Stuttgart

Thomas Baustert and Ralf Wirdemann are working on the German book for Ruby on Rails and they’re also spreading the word around the country. Two days ago they did the Java Forum Stuttgart, which is a gathering of some 800 Java programmers. Ralf summarizes the feedback:

Our presentation was also well attended by more than 100 people. We got excellent feedback and many developers were impressed about the simplicity and less code of Rails application.

Very nice. It’ll be interesting to see if a similar reaction will be had at JAOO when I enter the lion’s cave.

Getting Things Done with Active Record

Mike Clark has a great article on how to dig deeper into Active Record by using acts_as_nested_set and find_by_sql. On the notion of using SQL in an OO model, he writes:

Some may think this breaks object purity. I think it’s just productive. After all, I know there’s a database under there, and SQL is incredibly powerful for querying relational data. Most of the time I’d rather not write SQL because I’m doing CRUD operations. In those cases, Active Record intervenes to boost my productivity. And when SQL is the best tool for the job, Active Record gets out of the way to let me be most productive.

I couldn’t agree more. SQL is not bad at all. Once you take out the repetition for the simple cases, you’re left with a very powerful query language for the hard cases.

Rails Day winners have been found

The 24 hours allotted to create an interesting Rails application from scratch yielded a ton of create entries to Rails Day. The three winners have now been declared, along with the three runner-ups, and honorable mentioning. Congratulation to the winners and to all who completed an application for Rails Day. Everyone learning Rails wins too as all entries are available with full source code.

Rico does scrolling table on top of Prototype

Sam Stephenson and I met the Sabre team at the O’Reilly/Adaptive Path Ajax Summit a few months back. Their presentation of a scrolling table was part of their very nice line-up of widgets build on Ajax. Talking with Bill and Darren, we got speaking about cooperation, which has now lead to their framework called Rico being build on top of Prototype.

And now they have their LiveGrid widget ported to this framework that let’s you build long lists of endless scrolling (thousands of results without paging). They got an example with Yahoo Search and one with a plain data table. They currently only work in Firefox and IE, so no Safari (but that’s gotta be coming as Bill switched to the Mac at home).

Bill has a long post entilted Death to Paging! – Rico LiveGrid Released that further explains the workings of the widget. Good stuff, guys. Keep it coming.

TextDrive seeks to sweeten control with Rails application

TextPanel is the name of TextDrive‘s effort to modernize Webmin and the whole of branch of control panel software. They’re hard at work on it. And it’s going to be a Rails application, of course. Like all the other management software they’re building over there. The first we’ll see of TextPanel will be a reduced version, which will power the forthcoming Strongspace offering.

Cheers to Justin, Marten, Jason, Dean, and all the others at TextDrive for pushing the hosting envelope on so many fronts. And what a steal in picking up a relationship with Michael Koziarski. He has been the untiring force behind verifying, prioritizing, and managing the ticket cue on Rails for a good long while. Congratulations to both parties.

Rails #3, Ruby #8 on most popular tutorials at OSCON

Ruby on Rails: Enjoying the Ride of Programming, the tutorial I’m giving at OSCON, is the third most popular tutorial for the entire conference! As Nathan Torkington from O’Reilly writes: “Tutorial signups for OSCON are a great measure of what’s hot in Open Source.” Rails most surely be hitting the hot still.

And it’s not only Rails. Dave Thomas’ Ruby tutorial is #8 on the same list! It’s going to be a fantastic conference for Ruby on Rails. And I’m not only saying that because I’m doing a keynote, a session talk, and this tutorial on the subject. Not at all. Really.

Designer CMS on Rails: Programmers needed!

There are surely lots of content-management system projects happening in Rails, but are any of them that magic bullet that designers are looking for? Designer CMS on Rails is a call to make just that happen. So if you have the programming chops to help a band of top-notch designers deliver an open-source system, get in touch with them, and make it happen.

Dreamhost now supports Ruby on Rails

Word on the street is that popular webhost Dreamhost now supports Ruby on Rails. That’s great news, especially if you’re already married to DH and wants to do Ruby on Rails development. For everyone else starting out or looking for a new host, the premier choice for Rails hosting is naturally still TextDrive. They have multiple Railers on staff, support the Rails project, and rock (this site is running on TextDrive).

Slashdotted: Agile Web Development with Rails

As the 6th Slashdotting of Rails comes a review of the Agile Web Development with Rails book. It’s written from the perspective of a PHP programmer who’s coming to terms with the patterns and approaches used. And he’s certainly enjoying the move:

Whether you believe the hype or not of “super productivity,” “Ten times faster development,” and “Better than anything else,” Ruby on Rails is a great tool to add to your belt. In fact, I find myself using it exclusively for Web apps, and I catch myself using python and PHP less and less and Ruby more and more for my day to day programs.

If you want to learn Ruby on Rails, Agile Web Development with Ruby on Rails is a great choice, and will probably be the definitive book on the subject.

The ensuing comments definitely also reflect the time passed since the first Slashdotting. There’s less ignorant wailing and more insightful help and suggestions. With enough exposure the baseline of knowledge is bound to rise.

Where should the Rails Bootcamp go?

Dave Thomas and Mike Clark are gearing up to run a series of Rails Bootcamps in the Fall. The idea is to take someone who haven’t been doing any Rails at all to become a capable driver of it. We’re talking a two-day fair with potentially another day assigned for a Ruby introduction. But where should it start? The two gents wants your opinion on that, so go vote for the Rails Bootcamp venue.

FastCGI gem is now safe as 0.8.6

The FastCGI gem was stranded at 0.8.5 for a while, which of course included a nasty memory leak. Thanks to Tobias, it’s now up to date as 0.8.6. Just do gem install fcgi and you’re all set.

Rails Day ends in triumph with 55 apps!

Rails Day had a great turnout with 55(!) projects crossing the finish line. That’s a lot of interesting code generated in no time at all. It’s so interesting in fact that the developer section on Slashdot just picked it up — hi guys!

Now for the judging. We’ll be announcing a week’s worth of slip on that considering the massive amount of projects to look through, but you’ll have plenty of projects to keep you entertained in the mean time.

Congratulations to all who finished.

habtm.com: It\'s all about code

Courtenay is blogging about Rails at habtm.com (awesome domain name, geek points for spotting the connection). Lots of people are blogging about Rails, though, and I welcome them all. What’s somewhat special about Courtenay’s blog is that it focuses especially on posting useful snippets. When he figures out how to do something neat in Rails, there’s a snippet. Great work, keep it up!

Kwartz 2.0 brings more templating choice to Rails

Kwartz is a templating system for Ruby built on the concept of Independence of Presentation Logic, which bans loops, conditions, and similar constructs from the template files themselves. Instead that logic is added in a second pass based on ids in the original template.

With the latest 2.0 release, Kwartz is now available as a templating option for Rails. Makoto Kuwata used the hooks created by Jamis Buck to follow the conventions of instance-to-template variables and even allowed the use of helpers.

Another familiar template language for Ruby, Amrita, is also on the way with Rails integration. Rails will still only ship with ERb and Builder for the default options, but Kwartz and soon Amrita are getting very easy to inject as an alternative. Great work, guys!

Got design chops? lighttpd needs them!

A star is rising as an alternative, lighter-weight web server that doesn’t start with an A and ends with ‘pache. It’s called lighttpd and they actually maintain their FastCGI bindings, which makes them a promising future heir to the crown of Rails Favorite Application Server. But while Jan and friends work on the code, they need your design chops to make them look good doing so.

In short, they need a logo. And who better to ask than the design-savvy Rails community? Our thoughts exactly. So here comes the plea: If you got the skills, please make an entry in the logo competition for lighttpd.

Rails Day: Make an application in 24 hours and win!

Since Rails is supposedly this über-productive bag of lightning bolts, you should be able to accomplish great things within a single clip of 24 hours, right? That’s the assumption Rails Day is setting out to prove. A competition to build something meaningful, cool, neat, and/or beautiful that’ll be judged by a panel of experts including yours truly and Dave Thomas.

There’s even a great give-away happening. The best applications can win an Apple Mac Mini (courtesy of the ever-fantastic TextDrive— are you signed up yet?), an iPod Mini from the crew at Odeo, 6 books from the Pragmatic Bookshelf, lifetime Basecamp basic subscription, and more. It’s a true shower of gifts.

The whole shebang is going down on June 4th. Read more at Railsday.com.

Portland Rails presentation draws full house

Lucas Carlson talks about how Portland is turning into a power zone for Rails development and how great his presentation there went last night:

Last night I gave a presentation about Rails to what was supposed to be the local Perl mongers and Ruby group. Usually, between 6-10 people show up to either meeting, so I was expecting 20-25 people. But Rails pulled people out of the cracks and the turnout was around 50 people.

Overall, the crowd seemed very happy and excited, many oooos and ahhhhs. A lot of people emailed me afterwards saying that they were planning on starting their first Rails sites.

You should get involved with your local Java, Perl, Python, or PHP user groups too. Let the rhetoric take a back seat for a little while and show your fellow programmers what it is we have here in Ruby on Rails land. No reason hoggin all the tool toys for yourself. Sharing is so much more fun.

Contrasting scaling in J2EE and Rails/FastCGI

Jon Tirsen has taken a closer look at the differences between the threaded scaling approach in J2EE and using Rails with FastCGI. While the former requires object pools, induces thread-safety concerns, and other complications, the FastCGI approach remains dead simple from the application programmers perspective:

This means that each process can pre-allocate one single database connection (for each database that it talks to). There are no issues of multi-threading as each process processes only one request at a time. No objects needs to be written to handle multi-threading, as there is just one single thread per process. Expensive resources doesn’t need to be allocated in pools and application code doesn’t need to return the resources once done with them. Complicated non-blocking IO solutions or muxer/demuxer architectures doesn’t need to be used. You can even allocate FastCGI processes on multiple physical nodes, effectively implementing a cluster. In high-security situations a double-firewall security architecture can be set up so that the web-server is protected by one and the back-end FastCGI servers are protected by an additional one.

Typo gets prettier URLs, Ajax, AWS, cheap hosting

Tobias Lütke’s blogging engine Typo is storming ahead with good stuff lately. He recently implemented even-prettier URLs and Ajaxed the comments section. Now Patrick Lenz has brought the web service integration into the world of Action Web Service.

The metaWeblog, MT, and the Blogger APIs have all been implemented. And Patrick has been so nice as to walk us through the entire procedure.

If any of this has made you hot for Typo, Planet Argon is offering Typo hosting for as low as $3/month. And Patrick also did a migration script for moving from MT 3.x to Typo.

It appears that my excuses for still running Loud Thinking on Movable Type and this blog on WordPress are growing even thinner. Expect a transition in the not-too-distant future.

Addressing "bogus statements" about Rails

Xavier Defrang has been following the heated arguments about Rails for some time and got fed up with a bunch of “…bogus statements (FUD?) and issues raised in the TSS discussion”. So he went ahead with a summary of the claims and why he believed them to be without merit.

I particularly like the code snippet for putting the “code embedded in HTML is evil” nonsense to rest:

Of course, you could even write that snippet as a single readable line:

&lt;%= @collection.collect { |item| content_tag "li", item.some.nested.property } %>

Code embedded in HTML is only evil when you’re not using a programming language suitable for the purpose and when you don’t apply sound principles of abstractions.

Rails mentioned in Reuters story on open source

The rise of small outfits building big things on constrained budgets is the theme of a Reuters story carried by Yahoo! News. It includes a quote by Tim O’Reilly and talks among others about Odeo. And of particular interest on these parts about their use of Ruby on Rails:

Evan Williams, who helped create Blogger software and later sold it to Google, is working with a small group of developers in San Francisco, to build Odeo, a highly anticipated new application due out in the next few weeks. Odeo relies on a freely available set of simple yet powerful database programing tools known as Ruby on Rails.

Rails enters and Ruby reach goes up by 2-3x

Rob Harwood spotted this very interesting trend from Alexa describing the rise of Ruby reach as Rails enters the scene:

Harwood interprets the correlation:

Forget the hype over Rails — not important. Forget the anti-hype too — irrelevant. Instead, just look at this graph from Alexa.com. See any correlation? Rails is a killer app, regardless of hype or anti-hype. As soon as Rails appeared on the scene, Ruby has experienced a 200% increase in web traffic over three months.

Brian McCallister to be preset Rails at ApacheCon

Under the session title of Cheap, Fast, and Good: You can have it all with Ruby on Rails, Brian McCallister will be presented at ApacheCon Europe 2005. The session will run for 60 minutes and features this abstract:

Ruby on Rails is a new web application framework which provides tools for everything from object/relational mapping to componentized views. It provides the architectural soundness of the Java Model 2 action/view frameworks with the rapid development and expressiveness of PHP. This session will teach you how to build sophisticated, scalable applications quickly using Ruby on Rails, the Apache Web Server, and PostgreSQL

ApacheCon Europe 2005 is going on in Stuttgart, Germany on the 18th through 22nd of July.

Rapid adoption of Rails as documented by ML and IRC

If you should have any doubts that Rails is experiencing rapid adoption, consider this graph plotting the number of messages per day (as a raising average, high mark was 141 messages in a single day) on the mailing list:

On IRC, we’ve high-marked at 225 people and have more people than the #ruby-lang channel on most evenings.

Welcome all who’ve recently joined us!

Obfuscated Ruby Code Contest

While Ruby is usually praised as being one of the most readable programming languages around, it’s certainly also possibly to make it obfuscated. It just takes a good dose of dedication to cause. And if that kind of dedication is flowing through your veins, consider signing up of the Obfuscated Ruby Code Contest. A competition on doing something useful with unreadable code and to win prices in the process.

Patching Ruby-FastCGI for leaks and exceptions

Apparently, Ruby-FastCGI is one leaky pipe. It’s currently happily disposing of up to 16K per request. Not particularly helpful for the long-running processes like FastCGIs. But have no fear, Kirk Haines is near. And plugged the holes, he has.

Read all about the patch and get it from Kirk’s FCGI Patch for Ruby FCGI 0.8.5 page.

Additionally, 0.8.5 isn’t raising the original exception when it dies, which makes it pretty hard to debug. But luckily, Aredridel made a patch to get the original exception bubbled up a while back. Apply that while you’re at it.

Note: As Ruby-FastCGI has temporarily disappeared from the RAA listing, you might like to know that the direct link is http://www.moonwolf.com/ruby/archive/ruby-fcgi-0.8.5.tar.gz

RubyConf 2005 preregistration is open

Let me tell you where you’re going to be on October 14th through 16th. You’re going to be in San Diego, California. That’s right. RubyConf just opened the doors for the preregistration (which incidentally is a Rails app by David Black) and I managed to grab the entry with ID = 1 in the database. So you know I’m going to be there. Are you?

RubyGems 0.8.8 with better dependency management

I forgot to mention that a new and much improved version of RubyGems was made available a while back. The new version makes it a lot easier to install Rails with all of the dependencies thanks to the added --include-dependencies option and you can cleanup older versions of Rails with the new cleanup command.

The RubyGems team also started using Hieraki to do documentation. Checkout RubyGems Manuals.

Bla-bla List: Cloning a Rails app in RIFE

Geert Bevin gets an A+ for trying, no doubt about that. In an attempt to hold the fort for Java as the troops are deserting left and right, Geert went away for a few months to contemplate and implement Bla-bla List. A more or less functional clone of Ta-da List done in Laszlo and RIFE (a Java web framework).

With the introduction of Bla-bla, Geert was even so kind as to point out a few security and usability issues with Ta-da, which was promptly resolved. Even kinder, he has put up a Subversion repository with the full source.

I gave it a glance and decided to share a few snippets from Ta-da (which unlike Bla-bla is not open source) to show the difference in how the two implementations deal with the core action: checking off todo items.

While no comparison between two different implementations is going to be perfect, this is as close as it gets. What surprised me the most was the lack of a real domain model. Apparently, the model in Blabla is just a bunch of data containers while the logic is in a service/controller layer. Ouch. I sure don’t hope that procedural excuse for an object-oriented system is par for course with RIFE.

Regardless, this was surely good fun. Geert put a lot of effort into it and a pat on the back for that. Whether this implementation is going to lure any of the deserters back into the camp is more doubtful, though.

P.S.: Geert’s posting includes a doomsday warning that data will be lost on Ta-da if your session expires. That was true for about half an hour, but has since been resolved.

Ruby on Rails tops the Buzz Game

Yahoo! Research Labs has a pretty cool new app out making markets out of buzz called Buzz Game. It uses the Yahoo search engine to identify hot topics and assigns a dollar value based on that. When you sign up, you get $10,000 to trade for an can invest as you see please.

Now the reason this is terribly interesting is of course that they have a Web Application Frameworks market. And as I spotted this, I saw that Rails was already trading at twice the value of number two (Flex) and more than four times the value of Java. Wow!

Puzzled as to what all this would mean, I asked recognized internet entrepreneur Thomas Madsen-Mygdal. As the founder of internet conference Reboot, co-founder of wifi hotshot Organic, and a slew of other companies, I knew he would know. While Rails was trading at $22, he predicted:

I see the core fundamentals in the Rails market taking it to 80 dollars six months. A strong buy recommendation.

Holy moly! That’s a four-fold increase prediction right there. Not one to distrust Thomas, I immediately invested all my starting capital of $10,000. Are you in yet?

Ruby Weekly News is alive

Keeping up with the flow of ruby-talk can easily become quite a job, so why not have someone do it for you and just bring you the highlights? That’s exactly what Ruby Weekly News is about. Thanks to Tim Sutherland for getting it going.

ruby-lang.org is getting redesigned!

I’m exceedingly happy to see the rapid progress of the team appointed to redesign ruby-lang.org. The old website served us well, but this redesign is going to make it even easier to declare 2005 The Year of Ruby.

While both designs are great, I’ve already fallen in love with John’s “Ruby Red” 3.0. The gem is beautiful, the composition is great, and hey, it features Rails on the front page ;). Nix the scoped search into just a single search box and add the participation stuff from clean and we’re definitely rolling.

Congrats to _why and the rest of the team behind this!

The story behind Rails at O'Reilly

Jason Fried from 37signals talks about the origins of Rails with Marc Hedlund from O’Reilly:

Ruby on Rails is the open source web application framework we extracted from Basecamp. When we built Basecamp we didn’t know we were building Rails at the same time, but that’s exactly how it happened. Basecamp came first; Rails was born from Basecamp. Basecamp was the divine chicken, Rails was the egg.

I had some natural hesitation about using Ruby at first (“What the #@!* is Ruby?”“Why don’t we just use PHP—it served us well before?”), but David cogently made the case and I bought it. I’m thrilled with the results.

I’m sure a few of the readers here are thankful that Jason decided to trust yours truly and bet on Ruby :)

Swiss InfoWeek looking for Rails writers

Editor Andreas Ahlenstorf would like to print an article on Rails in the Swiss IT magazine InfoWeek:

I’m looking for somebody who would like to write an article about
Ruby on Rails for the swiss IT magazine InfoWeek, best one of Rails’
core developers :). The article must be written in german, so it
would be helpful if it’s somebody from Switzerland, Germany or even
Austria. Do you know one person in your team who’s predestinated to
do that?

Do you know Rails? And can write a readable German? Then get in contact with Andreas right away and help him increase the awareness of Ruby on Rails in Switzerland.

Picking platforms based on performance

Chris Petrilli talks about the delusions of grandeur that lots of programmers indulge in when they pick an environment based on performance concerns:

Write in whatever language you feel most comfortable and productive in. I know quite a few Python (either Zope or SkunkWeb) based websites that are running millions of hits per day. That puts them in the top 1%. Your site isn’t like that. If you think it is, you’re wrong. Maybe someday it might be, but deal with it then.

Couldn’t agree more. For almost a year, Basecamp was served well by a single, if beefy, server running web, application, and database services. We’ve just recently moved beyond that — after success was achieved. There’s no reason to gold platen a possible flop.

Tobias updates Hieraki, Typo, and more

Tobias Luekte has been a busy bee lately. In his week worth of updates, he writes about updating Hieraki and Typo to Rails 0.10 and a bunch of goodies for both in the wake of that. Additionally, he has a new scaffold generator using the postback approach and updates to both Money and the login generator. Way to go, Tobi! Keep it coming.

Want to learn how to Rail like a pro? Consider hiring Tobias to show you the ropes. He’s offering his services.

Should I learn Perl with Maypole, or Ruby on Rails?

Ben Hammersley was debating with himself in public whether to dive into Ruby on Rails or stay with his trusty Perls and pick up on Maypole:

Should I learn Perl with Maypole, or Ruby on Rails? Perl I know, Ruby I don’t; Maypole seems a bit under the radar, Rails is hot hot hot; Perl has shedloads of modules to give other really useful features, Ruby has less.

I offered my always impartial and objective advice that perhaps Ruby on Rails would open his mind more. Learning a new language and all. Hammersley responded:

I’m inclined to go with his sage advice and learn a new language as well. And a new version came out this morning, too. That’s it. I’m sold.

Welcome on board, Ben!

Rails is the #1 gem with 20K+ downloads

Rails has now assumed the #1 gem spot with 20,801 downloads at the time of writing. Just in front of Rake, which have long had a solid lead as a required dependency to Rails. Out of the 11 gems listed on the top downloads table on the cover of RubyForge, Rails is now responsible for the six of them.

Funny side note: The two programmers at 37signals (yours truly and Jamis Buck) stewards 8 out of 11 gems listed on the hit list.

Rails Noise: Blogging the learning process

Tim Germer is learning Rails and liking it so much that he decided to start a blog about the experience. And such was Rails Noise born. As background for his interest in Rails, Tim writes:

I’m no programming whiz-bang; I can muck around, and mucking I have been doing. Recently Ruby on Rails caught my attention. My attention has something to admit, it’s biased towards those that innovate and stand out from the crowd. I know, I know, what an affliction I have!

Rails makes the cover of Slashdot again

There’s nothing like an O’Reilly article to get you on the cover of Slashdot. Curt Hibbs is once again the man for writing a great article that boosts awareness about Rails in the process. Once again, welcome Slashdotters!

If you’re a happy Rails user, you might want to consider hanging out in the comments and helping others find the resources they need. Perhaps even throw a testimonial in there, if you’re really Rails happy ;)

"What the fuck are we gonna do now?!"

Master: “Hmmm. The argument on programmer productivity seems to be lost..”
Apprentice: “It’s game over, man. Just game over! What the fuck are we gonna do now?!”
Master: “You are mistaken, young one. There is always the ace: claim it can’t scale!”

Matt Raible caught the glimpse of a good headline and ran with it: Rails is 8 times slower than Spring+Hibernate. The honorable source of this “fact” comes from “rix” — a commenter on one of Dion’s post (ironically enough railing on this kind of silliness). He has done “extensive performance testing”, but of course doesn’t care to reveal his method, the apps compared, or the hardware setup used.

With this he concludes that Rails isn’t deserving of its attention and that he would rather develop with “…deployment descriptors! And verbose crap. And repetition.” Hehe. I don’t know where to start. Or even if I should. Perhaps other than to say that whenever Microsoft attempts to pull meaningless FUD like this, we call them on it.

Do note that I don’t doubt Java to be faster, I’m objecting to the silliness of publicizing and promoting figures with no context and to draw conclusions from these figures

Get a life-time TextDrive for $399

TextDrive is our wonderful host. They’re contributing big time to the development of Rails and are up to date with the latest (like exploring lighttpd as an Apache alternative). They’ve won the heart of many big-time Railers, like the Pragmatic Programmers, Scott Barron, Marten Veldthuis, and many others.

Now they’re offering you a limited opportunity of a life-time account for just $399. The drive is called VC II and is a very interesting way to allow users to expand the company’s ambitions by getting something in return and keeping foreign capitals (and the onslaught of strings attached) out.

Better be quick, though. The last drive they did sold out in no time fast.

Installing Rails through RubyGems 3x faster!

RubGems 0.8.5 has been released and turbo-charges the installation of new gems and updating of the repository lists. In general, it’s about three times faster than the old version. All you have to do to update is:


gem install rubygems-update
update_rubygems

Rails for Strut-ters: Dealing with the view

Brian McCallister is doing an excellent job showing Strut-ters how Rails work by comparing it to their own environment. In this round, he’s taking a look at the oh-horror that is unleashing a real programming language on view logic. He finds that perhaps it’s not so bad at all comparing:

&lt;% for invite in @invitations %>
  ...
&lt;% end %>

…from Rails to the JSP approach of tag libraries with:

&lt;%@ taglib uri="/tags/struts-logic" prefix="logic" %>
...
&lt;logic:iterate name="invite" property="invitation">
  ...
&lt;/logic:iterate>

Indeed they do look similar. For more on that discussion, read my views on template languages and why the scriplet approach works in Rails.

As a sidenote, I’d like to suggest a few improvements to the tag/value mix that Brian has in his examples. For example, we could convert:

&lt;form action="<%= url_for :action => 'register', :controller => 'rsvp' %>">  
...
   &lt;input type="text" 
          name="invite_names[&lt;%= slot %>]" 
          length="30"&lt;%= "value='#{@invite.split_names[slot]}'" %>/>
...

To use a few more succinct FormTagHelper helper methods:

&lt;%= form_tag :action => 'register', :controller => 'rsvp' %>
...
&lt;%= text_field_tag "invite_names[#{slot}]", @invite.split_names[slot] %>

But that’s nitpicking. Brian is doing a fabulous job expressing the unknown in familiar terms. If you’re in need for something more visual on the Helpers, see this video demonstrating how to create a helper method in Rails.

What if I could just use Ruby on Rails...

Jaikoo wonders what the world would look like if he could just develop purely in a dynamic environment:

One of the things I’m currently working on is this massively complex J2EE application running on JBoss. The thing I still can’t get used to is bouncing Apache (thats running a full blown Rails app). I mean it starts from cold in like 3 seconds on my live server. That can’t be right? After all JBoss 3.2.3 takes around 5 minutes to startup on the equivilent server. Yes, I know I’m comparing apples with oranges, but sometimes I just wonder how much more productive I’d be if I developed purely in dymanic languages such as Ruby or Python.

Of course, during development you don’t even have to restart anything to see your changes instantly reflected. It’s change’n’reload, baby.

Jamis Buck presents Rails at Utah JUG

Jamis Buck did a presentation of Rails for the Utah Java Users Group two nights ago. He has made the entire show available online including the Terminal videos used to show the programming. The presentation was given in between one about JDO and Howard Lewis Ship’s one about Tapestry. Here’s what one of the spectators noted:

As a witness to the event, I have to say that the presentation went quite well. This is what I learned from each speaker:1) JDO is losing popularity to Hibernate, 2) How to build a entire CRUD app in 40 min using Rails, 3) How to build a single login screen in 1 hour using Tapestry. Hmmmm… kinda indicative of the tools presented. :)

Congratulations on the good show, Jamis!

Tobias sets up Trac for Typo

Tobias Luekte has set up a Trac site for his Typo weblog engine. Typo has a slew of neat features including:

  • XML-RPC backend implementing the metaweblog api. MarsEdit and other desktop clients work great.
  • Comments
  • Textile by way of RedCloth
  • fulltext search
  • RSS2 and Atom export
  • CommentRSS export
  • Some use of caching and sweepers

So whether you’d like to run it or not, you’ll probably do well by having a look at the source.

Natural selection for frameworks in Ruby vs Java

Dion Almer is pondering the difference in how the Ruby and Java communities have dealt with natural selection in web-application frameworks. About Rails, he writes:

There were various web frameworks available to a Ruby developer, and then Ruby on Rails came on the scene… How did natural selection kick in with Rails? Developers started to use it. They liked it, and the community grew and grew. As the community has grown, so has the quality of the software itself (as well as documentation).

So a case of natural selection where a popular choice emerges from the opinions and usage of many. Dion contrasts this with the “unnatural” selection in Java where the de facto champion Struts is being replaced by a committee-driven JavaServer Faces:

So, the progression has had little to do with natural selection. JSF wasn’t suddenly the best framework out there that the Java community jumped on. It was made by committee. It was funded by large corporations. And, as such, it doesn’t have the quality of a natural winner.

It’s fascinating what drives the forces of natural selection. And how it takes a long time, or doesn’t occur at all, in some communities. Or whether its even good or bad that it happens (I, surely biased, strongly believe in the good of it).

When longer is better and more is more

The father of Java, James Gosling, is traveling the down under and has some.. erhm.. “interesting” thoughts on scripting languages. I’m getting these sound bytes from Alan Fracis’ summary of the Sidney meeting, so there is a chance they might not be accurate, but here they are:

Opinion of script languages – Perl, Python, Ruby, PHP
Program density and comprehensibility are inversely related
Write Once, Read Never. TECO was worse. Rapid Development
static typing gets you to prod faster, scripting gets you
to demo first. easy to write small things, harder to wrote
big things.

Oy. First of all, lumping all these dynamic languages together under the convenient banner of “scripting” to attack them in symphony is disingenuous in itself. But claiming that writing a long program leads to a more comprehensible one is just plain silly. I hope that wasn’t what he meant.

Additionally, the artificial distinction between “demo” and “prod” in a post-agile world rings awfully hollow in that High Priest of Architecture kind-of-way. Once more oy.

'That application is so stupid'

Just as Patrick Lightbody recants his ill-guided charge, Geert Bevin — also involved with a Java web-framework, this time RIFE — picks up the torch and tries his best to scorch the earth anew:

About tadalist, that application is so stupid that I’m wondering how the hell it could have taken him 600 lines to write it. Also, the hugely hiped ‘killer application’ of RoR, Basecamp, is a total fraud imho. The screenshots look nice, and are nicely presented. So I did make an account and started using it. And honestly, everything they say is true, it sets itself apart in simplicity. Not difficult to write that in a few weeks.

It’s incredible how much vile bile that lies within the Java community. I’m beginning to understand why many of the defectors I’ve talked to are so happy about the Ruby and Rails communities. Oh well, back to the stupid, fraud applications.

"I think Ruby on Rails is way over hyped"

Patrick Lightbody is on the steering committee of the Java web-framework WebWork and not at all happy about all the attention Ruby on Rails is gaining. Apparently, it’s all terribly undeserving as Rails surely “doesn’t scale” to applications with “thousands of concurrent users and/or hundreds of thousands of gigabytes”, right?

Of course, Patrick doesn’t bother to back up his charge besides asserting that “anyone… knows that a CRUD framework just doesn’t cut it”. Interesting. Rails follows a similar approach to scaling as do Yahoo and LiveJournal. Share Nothing. Push concurrency into the database and the memcache. I hear that approach is working rather well on LJ’s 100 machine park handling 5+ million dynamic requests per day.

But why bother addressing the specifics when you can just assert the somewhat cryptic “Mapping web UI directly to the DB never scales”. What does this mean exactly? Does Patrick think that the only UI you can do in Rails is a scaffolded one? Oy, talk about forming ill-informed opinions.

If any of these vague, hand-waving assertions should have failed to convince you, then of course, we can always rely on our good friend complexity!

Form processing, payroll, etc probably work very well with RoR. But trying to implement Spoke using RoR would be impossible — the schema is just too complex.

I’m sure it’s too complex, Patrick. Can’t beat an expert at his own game. But since you’re interested in learning more about marketing your open source wares, you might start by dropping the FUD tactics. They leave such nasty stains of ignorance and bitterness.

Brian McCallister offers a similar rejection of Patrick’s fear mongering:

It is scary (FEAR FEAR) to see opinions formed, and backed with vitriol, by fear that something different than what they are doing works better. Something you don’t know that approaches the same problems as something you do know does not make the first thing bad. It does not justify lashing out at it saying “it is just [foo] and sucks so bad compared to [bar] and can never [scale|perform|manage|eat] enough to be used for [serious|difficult|real] things.” Possibly this is true, but reacting that way out of fear certainly does not make it so.

Now back to our mega-scala-enterprisy-serious-real-complex-important work. Nothing to see here, move along.

3,000 people are doing 10,804 things...

43things.com has just been in the air for a week and already do they have 3,000 people are doing 10,804 things! That’s an incredible achievement in such a short period of time and bodes well for the future success of the application. 43things.com will undoubtedly soon become a reference point for discussing performance with Rails.

Speaking of performance, Bob Cottrell is their main man on MemCached integration and also the contributor of MemCacheStore in Rails 0.9.3. He has promised to start writing about how best to use MemCached with Rails and were eagerly awaiting his guides.

Are you watching the health of your software?

Kent Beck has probably been more responsible for the uptake of automated testing amongst the general developer population than any other figure over the last five years. One of the reasons is that he’s such a great speaker and writer that you can’t help but paying attention. Another, of course, is that automated testing is naturally a Good Thing to do, so it shouldn’t be such a hard sell.

Anyway, as the second edition of his Extreme Programming Explained is hitting the street, Kent has broadened his focus from just testing to the concept of software health. It’s not just about passing the tests today, it’s about being in a position that allows you to pass the test tomorrow too.

He talks at length about this and other great metaphors in an IT Conversations recording called Developer Testing. It’s about one hour of Kent’s thoughts. For free. So what are you waiting for?

When you come back, all energized with a strong desire to improve the health of your software, do check out Steve Kellock’s A Guide to Testing the Rails. Rails is uniquely supportive of getting your test game on with the least amount of configuration or even learning. For all the controllers and models generated, you already have test suites waiting for test cases to enter. And running rake will execute the whole lot of them.

If you do need a bit more assistance in exactly how you should do testing, and especially unit testing, I can heartily recommend the Pragmatic Unit Testing book by Andy Hunt and Dave Thomas. It’s available in both a Java and C# flavor, but don’t let that scare you off, pretty much all of the meaningful lessons apply directly to any environment. Combined with Steve’s guide, you should be all set.

As a rule of thumb, you want your rake stats to report that you have a 1:1 ration between code and tests.

Learning Ruby on Rails with 43things

Ruby on Rails is already going strong on 43things. Learn Ruby is #2 and Write an application on Rails is #8 according to the 43things Zeitgeist. So if you already have done or are doing these things, please do let 43things know and share your experience with all the other people currently working on it.

About the experience of building 43things itself with Ruby on Rails, Erik Benson writes:

My first exposure to Ruby on Rails was when I sat down and started building the prototype for this site (43 Things). From the start, it was easy to learn, full of wonderous surprises, and it encouraged excellent coding practices such as separation of controllers, models, and views, unit testing, and documentation.

It has only been a little over 3 months since I started working in Rails, and 43 Things will be launching soon having been written completely with it. Having used several other languages and frameworks to build websites in the past for both personal and professional sites (I used to work at Amazon), I can say that this has been the most enjoyable one yet.

The Robot Co-op takes 43things.com live!

First things first: The Robot Co-op has launched 43things! Go check it out right now. It’s a portal for ambitions where you track the 43 things you currently want to do with your life. It’s growing fast to become a unique view into the dreams and desires of the human race. Check out my 43 things, sign up, check it out. You can read the rest of this when you’re done playing…

So, I first got in contact Josh Petersen back in late May of last year as he had been tracking the pre-release hype of Rails and was intrigued. That lead to a visit to Seattle in late June where I got a chance to hang with Erik, Daniel, and Josh for a few days to help them explore the idea, inject a (over?) dose of cocky Less Software mentality, and of course convince them that Ruby on Rails was exactly the platform they wanted to develop 43things on.

Over the following months, Josh and friends retained 37signals to work on the user interface, hired Ruby programmer Eric Hodel and three more guys to have a team of seven working on the company and their first Ruby on Rails application. I kept growing inspired by the idea behind 43things, the confidence shown by the Robots in Rails, and impatient to see the final result.

How fitting then, that the Robots would launch 43things on the first day of the new year. Just in time for you to enter all those New Year’s resolutions and committing to them in public. I’m already busy getting lost in the intensely intriguing world of desires. I could easily see one spending hours and hours and hours browsing the depths.

So there you have it. The second poster-app for Rails. Smashing! Huge congratulations to Ivan, Todd, Bob, Erik, Eric, Daniel, and Josh. You did it, guys. Can’t wait to see this thing skyrocket.

Escaping Java but not its thinking

Kevin Dangoor is getting out of J2EE development after four years of legacy mud and fear-driven technology choices. He has picked to start his new businesses on a dynamic language with Python. Unfortunately, he’s still stuck in Java-skewed thinking on the difficulties of learning a new dynamic language or framework:

Ruby looks nice and Rails is attracting a lot of attention for good reason. Seaside on Squeak should be attracting attention, because it looks like a very productive way to put together apps. There are two problems with both of these: 1) I don’t know them, and 2) they are less mature and have smaller communities than Python or Java.

I can certainly overcome (1), but that would slow me down initially. The clock is ticking, because I need to generate money to pay my mortgage and all that… The second point also means slower velocity: there are fewer places to turn for help. There are fewer prepackaged modules, and those modules may be less-tested.

I guess its natural to think that you must stay in the competency trap when exiting one of the deepest and most alive in the tech world today. But it needs not be this way. Very much unlike Java, it doesn’t take months and months to gather hard-won experiences with application servers or climb mountain-high framework stacks when starting out with Rails (or Seaside+Persistance for that matter). You can try it out in a day or two and have a pretty darn good idea of what’s going on. So the cost of escaping the competency trap is at an all time low.

So let’s address the charge “less mature and have smaller communities”. I’ve found that while a language community at large is a nice backup, the real importance for productivity is having a strong community around the frameworks that you pick. When people have problems with Ruby on Rails, it’s very rarely the general ruby-talk mailing list that hears their pleas. It’s the Rails-specific outlets.

Speaking of those, the Rails mailing list is buzzing with activity averaging 26 mails per day in December. The Rails IRC channel is ever so alive filled with between 100 and 120 developers every single day. This is a uniquely vibrant force that’s able to provide end-to-end help and advice. Unlike the scattered search for assistance that’s necessary when trying to combine template, web-flow, and persistance frameworks from separate communities.

This is not a charge against Python for not having a complete on Rails solution, but rather just a dissimal of the claim that the Ruby sub-community of interest should be less mature or vibrant than a comparable stack in Python. It’s simply not the case.

So. Blue Sky Development woes to persue “technology choices [that] can be made on technical (and business) merit without politics getting in the way”. I’d say you owe that statement at the very least a day or two outside your most immediate comfort zone. I’m pretty sure you’ll find that the competency trap is not inescapable and that the fears of a missing community are expelled instantly.

43 things makes The Seattle Times

The seven robots at the co-op just had their upcoming Rails application 43things featured in The Seattle Times. Perhaps the characterization of the application isn’t as spot on as could be, but who can deny a mainstream mentioning of a major Rails application in the works? We sure can’t. Congratulations to Josh for making the mug shot and to the entire team for a bit of early recognition.