Is SwitchPipe the Solution for Rails Shared Hosting?

Peter Cooper (who I interviewed recently ) has just announced SwitchPipe, which aims to make deploying and hosting Rails (and other frameworks, such as Django) applications easy. From the site:

Introduction / Overview
SwitchPipe is a proof of concept “Web application server” developed in Ruby. More accurately, it’s a Web application process manager and request dispatcher / proxy. Backend HTTP-speaking applications (Web applications) do not run directly within SwitchPipe, but are loaded into their own processes making SwitchPipe language and framework agnostic.
SwitchPipe takes control of, and manages, the backend application processes, including loading and proxying to multiple instances of each application in a round-robin style configuration. As an administrator, you can define the maximum number of backend processes to run for each app, along with other settings so that you do not exceeded preferred resource limits. SwitchPipe quickly removes processes that “break” or otherwise outlive their welcome. For example, you can let SwitchPipe kill any backend processes that have not been accessed for, say, 20 seconds. This makes hosting many multiple Rails applications, for example, a quick and non-memory demanding process, ideal for shared hosting environments.

SwitchPipe’s goal is to be:

* super easy to configure
* the easiest way to deploy multiple HTTP-talking backend applications
* painless in terms of management; no hand-holding of different applications is needed
* a permanent daemon that can handle configuration changes in backend apps “on the fly”
* a reliable solution on Linux and OS/X (and anything POSIX compatible, ideally)

I haven’t spent much time with SwitchPipe yet, but if it lives up to Peter’s claims this will dramatically simplify hosting Rails/Django/Camping/whatever applications.
What’s interesting to note is that this originated with Peter’s widely read article on why such a thing was needed. Unlike a lot of other people who have complained loudly about the state of Rails on shared hosting environments, Peter put his time and talents towards creating a solution which he then released within 3 weeks. This is definitely something we need more of.
So what are your thoughts? Is this the solution we’ve been waiting for?

Rails Snippets - 11/29

Holy Shmoly, Ruby 1.9 smokes Python away

Initial performance numbers would seem to indicate that Ruby 1.9 (due by Christmas) will be lots faster.

Quoted-Printable: My .irbrc

If you spend a lot of time in IRB (most of us probably do), it’s worth taking the time to learn how to customize it. This is a good start.

Faker

Nice clean library to generate fake data. The home page says it’s a port of Perl’s Data::Faker library, which I’d never even heard of.

Rails Snippets - 11/13

RESTFul OpenID Authentication

A plugin to do OpenID authentication in Rails, in a RESTful way.

Off the Rails - An alternative Rails stack

Competition is good. Merb and the like provide that competition to Rails. This article runs through an alternative to the Rails stack. It’s always good to keep an eye on what else is out there.

Rands in Repose: The Nerd Handbook

Ok, this is a bonus link. Not at all Rails related, but relevent to you if you’re reading this. Rands nails the Nerd. I mean, really nails it.

Rails Snippets - 11/7

Troubleshooting Ruby Processes: Leveraging System Tools when the Usual Ruby Tricks Stop Working

A new book from O’Reilly on troubleshooting Ruby (and Rails) apps. From the overview:

This short cut introduces key system diagnostic tools to Ruby developers creating and deploying web applications. When programmers develop a Ruby application they commonly experience complex problems which require some understanding of the underlying operating system to be solved. Difficult to diagnose, these problems can make the difference between a project’s failure or success. This short cut demonstrates how to leverage system tools available on Mac OS X, Linux, Solaris, BSD or any other Unix flavor. You will learn how to leverage the raw power of tools such as lsof, strace or gdb to resolve problems that are difficult to diagnose with the standard Ruby development tools. You will also find concrete examples that illustrate how these tools solve real-life problems in Ruby development. This expertise will prove especially relevant during the deployment phase of your application. In this way, should your production Mongrel cluster freeze and stop serving HTTP requests, it will not take you 2 days to figure out why!

Sitepoint: Preparing for Rails 2.0

A nice, if a bit short, article on some of the changes that are coming in Rails 2.0. This is focused on what you will need to change in your application.

Creating a Ruby Weblog in 10 Minutes

This is a beginner tutorial, specific to using Netbeans 6.0. I’ve not played much with the Rails support in Netbeans, but it looks impressive so far.

Rails Snippets - 10/31

The Halloween Edition

Obvious Code: Creating a simple news publishing system in Rails 2.0

One of the first tutorials I’ve seen that focuses on Rails 2.0.

Deploy a Ruby on Rails app on EC2 in five minutes

This would seem to make deploying a Rails app on Amazon’s EC2 very simple:

EC2 on Rails is an Ubuntu Linux server image for Amazon’s EC2 hosting service that’s ready to run a standard Ruby on Rails application with little or no customization. It’s a Ruby on Rails virtual appliance. If you have an EC2 account and a public keypair you’re five minutes away from deploying your Rails app.

Rails Snippets

A collection of Rails links

Using Paypal with Rails

This is a nice step-by-step article on integrating PayPal with your Rails application, using ActiveMerchant.

Rails 2.0 Features: Multiple Views

I’ve only skimmed over the new features in the upcoming 2.0 release of Rails, but this looks like one of the nicest features. This is a good explanation of how it works and why it’s useful.

Mongrel 1.0.3 is out

A bugfix release of Mongrel is out. Looks like 1.1 is due soon, and it looks interesting:

“Mongrel 1.1 is coming real soon now with JRuby support and a few other things.”

Emacs on Rails

Being a bit of an Emacs junky, I’m not sure how I missed this. Looks mature, and very functional, and almost TextMate-like. The link has a nice flash video of Emacs on Rails in action.

Free Rails book from Sitepoint

Sitepoint’s book “Build Your Own Ruby on Rails Web Applications” is now free, at least for the next month. I’ve only skimmed it, but it looks like a decent introduction, and the price is certainly right.

Relevance Announces Streamlined

Update: I somehow managed to misspell Relevance’s name. Fixed.

I’m missing RailsConf this year (I have no excuse, I live two hours away). I’m living vicariously through the other attendees though, keeping an eye on the blog posts.

One announcement that I just caught was that Relevance has announced Streamlined, which is a framework on top of the Rails framework. Some of the interesting features include (pulled from Justing Gehtland’s post):

  • Generator for churning out the initial views and configuration
  • A declarative DSL for managing views, including relationship management, field selection, etc.
  • Full Ajax-enabled management views with sorting, paging and live search (with configurable field-inclusion)
  • An extensible component system for representing relationships at runtime * REST-ful web service layer around all models
  • Auto user-management and inclusion of declarative role-based authorization

It looks like this gives you a really good jumpstart on building data driven applications (as if Rails wasn’t enough of a jumpstart). The management views in particular sound nice (Django has this already, really the only thing Django has over Rails as far as I can tell).

They’re planning on realeasing this at OSCON in July. I’m looking forward to it.

6/23 Ruby & Rails Links

A few links that caught my eye today:

An introduction to Ruby on Rails for DB2 developers - Nice article if you’re a DB2 user and want to know what the fuss is about. Written by Edd Dumbill.

Ruby-Gnome2 Website - Appears to be a decent GUI toolkit for Ruby. I wish someone would get QT’s Ruby bindings working on Windows. The thing I miss most about Python is PyQT.

Sapphire in Steel: The Little Book of Ruby - Nice introduction to Ruby with plenty of code samples, in PDF form.

Ruby Cookbook - The Perl Cookbook, ported to Ruby.

Ruby Inside - A great new blog by Peter Cooper, focused solely on Ruby. The last two items came from this site. I don’t know how he finds all these cool links.

Configuring Rails Environments - The Cheat Sheet - Now you can find out what all of those neat settings in config/environments/* are.

Django vs Rails

There’s a relatively in-depth comparison of the Django framework to Rails over at Sam Newman’s site. It appears to be a relatively fair comparison.

It’s interesting that both frameworks were extracted from large development projects in roughly the same time period, although Rails has been publicly available for longer, and has more mindshare at the moment.

I’m happy with Rails, but I wonder whether I would have bothered with it if Django had been available when I started looking at Rails. The thing that kept me away from Rails for a long time was that I didn’t know Ruby. I was (and still am) well-versed in Python. I still prefer the cleaner syntax of Python over Ruby, although the latter does have some features that I find compelling.

I wonder about the impact of one aspect of Django though: the fact that the model generates your databas schema, instead of the developer generating the model from the schema (which is the Rails model). I suspect most DBA’s would go into convulsions at the very thought of this. I can certainly see how it would ease moving from database to database.