Ruby on Rails
A collection of helpful resources for creating and deploying RoR applications, with a smattering of other related topics thrown in. It’s woefully incomplete and ill-styled, but if I don’t start writing it down, I’m going to forget it all.
A first-rate overview on Ruby on Rails installation, development, and deployment.
Book: Programming Ruby, 2nd Ed. (”The Pickaxe Book”)
The standard text for learning the Ruby language, as distinct from the Rails framework.
Developing with Rails
Readable, informative blog by knowledgeable Ruby on Rails developer, with thoughtful posts (e.g.) on Rails minutia.
The “Ruby” section of a site with lots of platform-specific tips.
Another general-purpose programming site with plenty of Ruby-specific info.
Depending on the platform, on whether or not you need the latest version, and whether you’re content with installing a pre-built binary or insist on building it yourself from the source, the ease of installation varies quite a bit. Here are a few things that can help.
The official site. Pointers to downloads, documentation, sites using Ruby, and informative screencasts.
A good step-by-step guide to building the things from scratch on OS/X.
How to install to a Mac OS/X system using MacPorts. [I've never tried this personally]
Rails Web Host: RimuHosting.com
If it doesn’t come with root access, they don’t sell it. Four years experience supporting J2EE applications, six months experience supporting Ruby on Rails. They’re my host, and they’ve been incredibly helpful, so far.
Software: Apache - Web Server
The number one HTTP server on the Internet. A great front end to Ruby-specific back ends.
Software: Subversion - Source Code Control
An open-source version control system, aiming to be a compelling replacement for CVS.
This book is certainly a good introduction, though I haven’t read more than the first few chapters, yet. (I’ve been introduced, and it was good.)
Some of the files and subdirectories created by rails generate should not be check into source code control, either because they only hold emphemeral objects, or for security reasons. Here’s a ruby script that creates a new blank rails app, checks it into subversion, and then tells subversion to delete and no longer attempt to update those inappropriate files and directories. There is a small bug in this script, as written here - the new application’s “tmp” subtree is not successfully marked with the svn:ignore property.
Software: Mongrel - Fast Web Server, Travels in Packs
One way of scaling up your Ruby application. Run with an Apache web server front end, delegating to a pack of mongrels that serve out the Ruby goodness.
Jonathan Weiss describes his company’s move from Lighttpd+mod_fastcgi to Apache 2.2+mod_proxy_balancer+Mongrel Cluster.
Has instructions for serving up multiple Rails apps from literally the same domain, e.g., domain.com/app1, domain.com/app2, rather than app1.domain.com, app2.domain.com.
Software: Capistrano - Automating Application Deployment
An open-source, multi-machine, coordinated application publishing system. One-click deployment of the latest version of your application to all of the database and web servers that run it. Easy multi-level rollback if you got a little too enthusiastic. Comes with built-in support for Subversion and CVS.
An example of a Capistrano task to link in the actual database.yml file at the last minute, so that this file, and the access secrets it contains, needn’t be checked in to source code control.
Good step-by-step guide to Rails deployment.