Pratik joins core, retired members go alumni

We’re shaking up the Rails core group a bit. First, please welcome Pratik Naik as the newest member of the group.

He’s been doing great work all around the framework and has been spearheading both the documentation branch in git and a thorough cleanup of Action View internals. We’re really happy to hand him the commit keys to the repository.

Second, we’ve created the Rails core alumni for all the proud members of the core group who are no longer in the day-to-day improvement of the framework itself. All of the alumni are still busy working in the Ruby on Rails ecosystem, but either have their hands full with their business or has dedicated their open source time to other initiatives.

We’re incredibly grateful for all the works you guys have done for Ruby on Rails over the years. And you’re all welcome back in the active core group any time you decide. Thanks guys!

Finally, this means that the current active core group is about half its former size. We’d like to add a few more to that, so hopefully we can pick a few more people who’ve been doing varied work on the framework for a sustained period of time soon.

Posted in General  | 26 comments

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.

Posted in General, Sightings  | 8 comments

#rails-contrib and rubyonrails-stacks

RailsConf gave birth to a number of new outlets for sub-communities within the Rails family:

#rails-contrib is a new IRC channel on freenode for contributors to Rails. The Rails core team will hang out there to answer questions, discuss patches, and generally interact with anyone doing implementation work for the Rails framework. It's not meant for general chatter, though. Or for how to use the framework. It's strictly for implementational issues and the contributors working on those.

rubyonrails-stacks is a new forum to discuss how we can get standardized set of images going for Rails that can be deployed on any Xen host or even EC2. I posted a welcome with more details on the forum.

Posted in General  | 3 comments

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?

Posted in General, Sightings, Tricks  | 14 comments

Shiny new Subversion and Trac cluster

You’ve all noticed the excruciating Rails svn updates and Trac molasses in the last couple of weeks. Following the release of Rails 1.2 we thoroughly overwhelmed our development server, no small feat for a hefty dual Xeon. Congratulations, all, for your hearty Rails appetite! Your sustained Mbps say more than words possibly could.

Our friends at TextDrive have stepped up once again to keep Rails development running smoothly and your production apps deploying predictably. Please give a warm welcome to our new development cluster, a load-balanced crew of SunFires and Thumpers hosting Trac at dev.rubyonrails.org and Subversion at svn.rubyonrails.org.

Subversion will remain available at the old dev URL so you needn’t touch your live apps. Feel free to migrate to the new URL at your own speed.

Posted in Edge, General, Horizon, Releases  | 6 comments

Using SQLite3 with Rails

If you are using SQLite3 with a Rails application, make sure you are using SQLite3 3.3.7 or earlier. Versions after 3.3.7 incompatibly changed the way in which default values are stored, making it so that current versions of Rails get into quoting issues and problems with columns with NULL defaults.

The source code for version 3.3.7 may be downloaded here: sqlite-3.3.7.tar.gz. Likewise, a pre-compiled binary for Windows is available here: sqlite-3_3_7.zip.

I’ve got a ticket open on the SQLite3 trac about this (right here ); hopefully this will be recognized as an unacceptable change for a point release and will be reverted.

Posted in General  | 14 comments

Capistrano mailing list

After getting all inspired by Kathy Sierra’s keynote at the RailsConf last week, and reflecting on the requests I’ve received for a Capistrano-specific mailing list, I decided it was time to do something about it.

(Btw, you can read more about Capistrano in the manual.)

So, I started a mailing list for Capistrano. Currently, it is intended for any and all discussion related to Capistrano—sharing recipe files, relating success (or horror!) stories, posting patches, discussing tips and techniques, etc. So if you use Capistrano, or want to be using Capistrano, go ahead and sign up! You can join by sending an email to capistrano-subscribe@googlegroups.com, or by using the Google Groups web interface at http://groups.google.com/group/capistrano.

Let the good times roll!

Posted in General  | 2 comments

Rails is 2 years old

It seemed to have slipped all of our minds, but yesterday, the 25th of July marks the 2 year anniversary of Rails’ release.

Here’s David’s announcement email to the ruby-talk mailing list.

Cheers to you early adopters.

Posted in General  | 18 comments

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.

Posted in General, Sightings  | 15 comments

Remember CRC Cards?

Last week I was chatting on IRC with some cool and clever Rails developers, and made a comment about not being able to proceed with a design because I couldn't find my 3x5 cards. No one seemed to know what I was talking about. Why would I need 3x5 cards to design software?

It seems that many Ruby on Rails developers are just starting out with object-oriented programming. And many of them are finding it can take a while to reset their brains and escape the procedural way of thinking. Some try to use tools like UML, but while UML can be good for documenting a design, I've never found it helpful in actually creating the design. What does work is CRC cards. CRC stands for Class, Responsibility, and Collaboration - the fundamental elements of object-oriented design.

Read more...

Posted in General, Tools  | 10 comments

Rails System Back on Track

Hopefully you didn’t notice, but I’ve been very busy this weekend. I finally took the plunge and got all the Rails applications that run on this machine up to snuff. All applications hosted here are now deployed with Capistrano, run under Mongrel (using the mongrel_cluster plugin) with requests being handled by Apache 2.2 and proxied to Mongrel by the mod_proxy_balancer module. So far it seems to be working great. You’ll notice that the Wiki, the Manuals and the weblog are all much zippier. The machine seems to be much happier as well.

And, to cap off all this fun, the weblog has been migrated from Typo to Mephisto, the blog/CMS engine from Rails Core member Rick Olson. The feed has also been moved to FeedBurner and redirects have been put in place so your reader should make the change automatically. If not, just subscribe here.

Thanks to everyone who helped me check and test things! Trac improvements are next on my list. Stay tuned!

Posted in General  | 30 comments

Wellington Rails User's Group

Tomek Piatek and others have started Well Railed, the Rails User’s Group in Wellington, NZ. The first meeting will be on the 30th May at 6:30-ish at Hell Pizza in Bond Street. So come along for some pizza and beers to meet the local rails crowd.

You can follow group discussions on-line on Google Groups page.

Posted in General  | 6 comments

Obie Fernandez on the Rails podcast

In this installment of the Rails podcast, Geoffrey Grosenbach catches up with Obie Fernandez of Thoughtworks.

Obie has been using Rails with great success to take on “enterprise” scale projects. A die hard Java programmer since 1996, he admits that his first impression of Ruby was that he hated it.

Available, as usual, in multiple formats: mp3, m4a. Enjoy.

Posted in General, Sightings  | 12 comments

Mostly good news about freezing, Typo, and Rails 1.1.1

Let’s start with the good news about freezing and Rails 1.1.1:

  • New applications will automatically bind to the gem version of Rails they were created with using a RAILS_GEM_VERSION constant in config/environment.rb
  • You can now file freeze a new application with rails myapp --freeze, such that it doesn’t even depend on the proper gems being available
  • You can now also freeze Rails from a tag using like rake rails:freeze:edge TAG=rel_1-1-0

So lots of great options to prevent that your application will ever get bitten by an external upgrade again.

In addition, we’re including a handful of fixes for various other regressions. So the vast majority of all applications should Just Work after the upgrade (but of course, you should always test before deploying an update). You may still have plugins that are incompatible, but most plugin authors should have a 1.1.x compatible version available by then.

If you have Typo 2.6.0, you must freeze

Now to the slightly less exciting news: Typo 2.6.0 is not going to work with Rails 1.1.1. The Typo team has been working on a new release that’ll be 1.1.x compatible and I’ve been imploring them to release a 2.6.1 that just includes Rails 1.0 in vendor/rails. But a vanilla 2.6.0 install with not work with 1.1.x.

That sounds worse than it is, because the remedy is really simple: Checkout Rails 1.0 into vendor/rails and Typo won’t give a hoot when your host inevitably decides to upgrade to Rails 1.1.x. The easiest and most fault-tolerant way of doing that is through svn. Go to the root of your Typo application and run:

svn export http://dev.rubyonrails.org/svn/rails/tags/rel_1-0-0 vendor/rails

Then restart your Typo and you’re now safe from gem updates. This antidote is a good one for any application you have deployed on a shared host. It’s not safe, and will never be safe, to just float against the latest Rails on a shared host. Always make sure you’re playing it cool and do a freeze.

Regardless of the factors, the core team apologizes for any inconvenience caused by the 1.1.0 release. While it worked for the vast majority of people, we should indeed had made sure to get feedback from the Typo guys before pushing out the release. Then at least we could have warned people in advance that 2.6.0 was simply not going to jive.

Hopefully this ordeal will motivate more people to help test future release candidates. We’ll do ours to help by extending the testing period and we’ll be grateful if you would do yours by testing and reporting any troubles found.

Rails 1.1.1 early this week

If you want to get into the good spirit right away, you can help test the trunk, which is aiming to become Rails 1.1.1 early this week. We still lack a few fixes, but what’s there should already deal with almost all of the issues. To be fail safe, remove vendor/rails (if you have it), and run:

svn export http://dev.rubyonrails.org/svn/rails/trunk vendor/rails

Thanks everyone!

Posted in General  | 24 comments

Freeze is cool, so freeze for goodness sake

Many shared hosts did a quick dance up and down at the release of Rails 1.1 because a large number of their customers were floating off the gems, which meant that upgrading the gems automatically updated all the applications. Some applications couldn’t handle the upgrade (most notably Typo), so they broke. And the customers were none too happy and complained to the hosts: “Why oh why, dear host, would you upgrade and break my application?”

This is obviously bad. But nothing is so bad that you can’t learn from it. And this is a wonderful opportunity to learn that You Should Freeze Rails For Any Application In Production. Sure, we talked about that back in December, but talk is cheap (and often overheard).

So here follows a lifted finger and a promise. The lifted finger first:

If thou bless thee world with an application of open source, thou must ship it with the version of Rails that thou knowest it to work with in vendor/rails.

Here’s one counter argument that will not allow you to evade this finger: “But it’ll make my app X% larger to download”. In this day of age, nobody cares. Time is more valuable than disk space and saving hair-pulling aggravation over broken dependencies is infinitely more valuable than disk space.

Then the promise: The next version of Rails will by default extract the version of Rails it was created with into vendor/rails. This will get everyone into the Christmas spirit of being good on day one. It’ll be natural to desire less dependencies and you will soon froth at the notion of a shared host controlling the destiny of your application by choosing to update some gems. And you will be happy and content.

Posted in General  | 41 comments