Rapid Web Development mit Ruby on Rails

Ralf Wirdemann and Thomas Baustert have released Rapid Web Development mit Ruby on Rails. The first German book on Rails and published by Hanser. It should be available in stores from Monday, January 16th.

About the book, Ralf and Thomas write:

The book is a practice-oriented introduction into Rails and all of its sub-frameworks. The book focuses furthermore on some advanced topics as i18n with Rails or test-driven web development with Rails.

As a extra bonus, they’re even giving away a free introduction to Ruby that didn’t fit in the book. Congratulations, guys!

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'
   body do
     p flash[:notice], :style => "color: green" 
     self << @content_for_layout

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

SwitchTower with Perforce

Richard McMahon has written about using Perforce as the SCM with SwitchTower (here). He’s even written a custom Perforce SCM module for SwitchTower, so if you’re a Perforce user wanting to dabble with SwitchTower, it looks like you’re in luck.

(Richard has given his permission for the Perforce SCM module to be included with the next SwitchTower release.)

TextMate v1.5 released

TextMate is the editor powering the work of every single core contributor and now the best just got even better. The 1.5 release of TextMate is the first official in a long time. So if you last had a look at 1.0.2, it’s time to take another peak.

Oh, and if you haven’t switched yet, you can swing by Apple and pickup a Mac on the way to TextMate. It’s not now, nor ever, going Windows.

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.

SwitchTower 0.10.0

You can read the complete changelog, but here’s a quick overview of some of the most notable changes:

Bugs Fixed

  • Handle SSH password prompts formatted like “someone’s password:”
  • Allow the sudo password to be reentered if it was entered incorrectly
  • Errors during checkout are now caught and reported early
  • Avoid timeouts on long-running commands
  • Add a small sleep during command processing to give the CPU a rest
  • Rake tasks should work much more nicely on Windows (you’ll need to do switchtower --apply-to /path/to/app to update, keeping your config/deploy.rb and overwriting lib/tasks/switchtower.rake)

New Features

ssh_options variable

There is now an ssh_options hash that you can use in your recipe files to set custom SSH connection options, like setting a non-standard port to connect on:

ssh_options[:port] = 2345

Allow svn checkouts to use export instead of co

If you don’t want to use an svn co to checkout your code, you can set the :checkout variable to :export, and SwitchTower will use svn export instead.

set :checkout, :export

This variable defaults to :co.

update_current task

There is now an update_current task that just does an svn up on the last-deployed release. This is useful for trivial updates, like when a template changed.

cleanup task

You can easily remove unused releases from your deployment directories with the cleanup task. It will (by default) keep the 5 most recent releases, and delete the rest.

SFTP for file transfers

Net::SFTP is now used (if it is available) for file transfers. This should make transferring large files more robust, as well as allow binary characters in files.

restart_via variable

You can now set the :restart_via variable to :run, if you need to have the restart task use run instead of sudo.

set :restart_via, :run

This defaults variable to :sudo.