Articles

Speaking at ChicagoRuby this Saturday

Sorry for the late notice – I was having too much fun at RubyConf last week – but I’ll be speaking at the upcoming ChicagoRuby meeting this Saturday. If you’re in the neighborhood, come join us!

ChicagoRuby is headed up by Ray Hightower, the same guy who made Windy City Rails a reality. You can let us know you’re coming by using this Meetup.com link.

See you there!

Myth #2: Rails is expected to crash 400 times/day

Zed Shaw's infamous meltdown showed an angry man lashing out at anything and everything. It made a lot of people sad. It made me especially sad because this didn't feel like the same Zed that I had dinner with in Chicago or that I had talked to so many times before. I actually thought he might be in real trouble and in need of real help, but was assured by third party that he wasn't (Zed never replied to my emails after publishing).

Myth #1: Rails is hard to deploy

(If you don't want to bother with the history lesson, just skip straight to the answer)

Rails has traveled many different roads to deployment over the past five years. I launched Basecamp on mod_ruby back when I just had 1 application and didn't care that I then couldn't run more without them stepping over each other.

Heck, in the early days, you could even run Rails as CGI, if you didn't have a whole lot of load. We used to do that for development mode as the entire stack would reload between each request.

The Rails Myths

Ruby on Rails has been around for more than five years. It's only natural that the public perception of what Rails is today is going to include bits and pieces from it's own long history of how things used to be.

Many things are not how they used to be. And plenty of things are, but got spun in a way to seem like they're not by people who had either an axe to grind, a competing offering to push, or no interest in finding out.

The YADSL Rule

Looks like the Ruby world is a fire with new DSLs for BDD/TDD. There’s

Plugin configuration style?

I’m putting the final touches on a super-sweet versioning plugin, and I’ve discovered that we’re using several different metaphors for configuring the plugin options. I’d like to get some opinions/feedback on your preferred style.

The DSL

Using a DSL and passing blocks in which get instance evalled. I’m normally very scathing of DSLs; I think that they’re Yet Another Language for people to learn to use – it’s usually your very own write-only syntax – but it’s been super-fun implementing the backend to this.

Rails meets Sinatra

For real !

It was pleasantly simple to get Rails + Sinatra run in the same process.

First of all, put your Sinatra application inside RAILS_ROOT. My Sinatra app is called tiny :

Is this a Globalize bug ?

While installing Globalize I stumbled upon the plug in’s table structure. If we look at the ‘tr_key’ field inside the table ‘globalize_translations’ we may notice that this field type is ‘VARCHAR (255)’ (obviously only under mysql but I think this
is the database chosen by the majority of rails developers).

Hey, but isn’t this column the one holding the strings to be translated?

The answer is (ASAIK) yes, in fact if we look inside file ‘view_translation.rb’ (inside the plug in’s models’ folder) we spot this piece of code:

LEGOs, Play-Doh, and Programming

This article is based on a talk I gave at the 2008 RubyConf in Orlando, Florida, entitled “Recovering from Enterprise: how to embrace Ruby’s idioms and say goodbye to bad habits”.

The other day I went to Target with my son. Like most kids, I think, he’s convinced that Target is a toy store, which just happens to sell towels and shoes and cleaning supplies, too, so in his eyes it’d be criminal to not walk through the bare handful of toy aisles.

Front Row to History

I had to tell this story several dozen times at RubyConf, so I thought I’d wrap it up for posterity.

It all started with an email. The campaign was running a contest entitled “Front Row to History,” and would select 5 first-time and 5 repeat donators to attend the rally in Chicago– what would later become a massive victory celebration.

Rails Envy Podcast – Episode #101 | Rails Fire

Rails Envy Podcast – Episode #101

Episode #101 Let’s put another shrimp on the barbie!

Sponsored by New Relic
The Rails Envy podcast is brought to you this week by NewRelic. NewRelic provides RPM which is a plugin for rails that allows you to monitor and quickly diagnose problems with your Rails application in real time. Check them out at NewRelic.com.

Show Notes

  • Torquebox

    Torquebox is an enterprise-grade application server that provides scale-oriented services to your Ruby webapps, including turn-key clustering. With its latest release, Torquebox supports all Rack-based Ruby frameworks.

  • Metaprogramming in Ruby: It’s All About the Self

    Yehuda Katz has an in-depth blog post explaining self’s scope in Ruby.

  • Skills Matter Rails Exchange

    Skills Matter will be organising the 3rd annual RoR eXchange on 3rd December 2009.

  • Racksh

    Racksh is a Rails-like console for any Rack based ruby web app.

  • 11 Things to Consider Before Deploying Your Rails Application

    Vinsol goes over their checklist for deploying Rails apps.

  • Jammit

    Jammit is an industrial strength asset packaging library for Rails, providing both the CSS and JavaScript concatenation and compression that you’d expect, as well as ahead-of-time gzipping, built-in JavaScript template support, and optional Data-URI / MHTML image embedding.

  • Deep in Action Mailer#deliver, part 1

    Part 1 in a series that will delve deep into several commonly used methods of Rails.

  • Shard The Love

    ShardTheLove is a horizontal scaling solution written in Ruby. It has support for migrations, testing/RSpec, a flexibility of partitioning patterns, a simple syntax, support for Rails & Merb

  • Using the Rubygems Bundler for Your App

    Sam Merritt posts on the Engine Yard blog about getting the new Rubygems bundler working in your app.

  • Environmental Seeder

    Francisco Tufró has released environmental seeder — a simple addition to db:seed to allow loading environment specific data through seeds.rb without
    any programming.

  • Rubinius 0.13 Released

    Rubinius 0.13 has been released with several rewrites, additions, and fixes.

  • Formtastic 0.9.2

    Justin French has released formtastic 0.9.2. From the blog post:

    I’ve just pushed the new Formtastic 0.9.2 gem up to Gemcutter this morning on the train. There’s a few API changes as we edge closer and closer 1.0, so I thought I’d do a quick post to document it all.

  • MacRuby 0.5 beta 2

    MacRuby 0.5 beta 2 has been released.

  • Request Log Analyzer

    Request Log Analayzer version 1.5.1 has been released with new features and bug fixes. This is the first time we have ever mentioned it on the show.