Finding programmers and designers for Rails projects

The Signal vs Noise Job Board is a new alternative for finding good programmers and designers to work on Rails projects (among other things). It puts your job pitch in front of the tens of thousands of people reading the Signal vs Noise weblog. It comes at a price of $250 for a posting of 500 words visible for 30 days.

CNET, Fleck, and NYTimes.com are all using it to advertise developers with Ruby and Rails experience. If you’re just looking for programming positions, you can subscribe to the RSS for the programming section.

As you might have noticed from the URLs, this job site is using the new Simply Restful plugin. Our playground for RESTful living on Rails.

Use params, not @params

I still frequently see people in the #rubyonrails channel using @params in their code. For a while now @params has been deprecated in favor of simply params. For those who just skim these blog posts:

Use params, not @params

Why? When you use the params method, it allows for the implementation details of the parameter hash to be changed without breaking existing code. If the implementation of params changed you wouldn’t have to change your code at all because the single point of access for the parameters would just remain the params method. So, the details of what is happening behind the scenes don’t matter. If, though, you use the @params instance variable directly, you’ve broken encapsulation and consequently the ability for the implementation to be easily modified. Methods can be refactored, but instance variables can’t. Today the params method just wraps the @params instance variable, so still using @params works, but that’s not guaranteed to always remain the case.

Same goes for request, response, session, headers, template, cookies and flash.

Basically, a good rule of thumb here is don’t use an instance variable in your controller or view unless you created that instance variable.

Even the old @content_for_layout in the layout is deprecated in favor of just using yield in its place. Also content_for('some_fragment') is now accessed with yield :some_fragment rather than @content_for_some_fragment.

EastMedia jumps into the Rails training arena

Matt Pelletier’s EastMedia, a Rails-centric firm out of New York City, has announced that they are offering two Rails classes in the near future.

The first is a one day course in New York City on April 29th taught by Matt Pelletier and Francis Hwang, the founder of the NYC Ruby user group, humanist and author of, among other things, Lafcadio and MockFS. Francis has been building websites in Ruby for over 4 years now. Up until recently he was the primary developer for http://rhizome.org/. You can sign up here for $395.

For those on the other side of the pond, they are also offering a three day course in London , May 5 – 7 taught also by Matt as well as Dr. David Black of Ruby for Rails fame. That one is £1200 GBP and you can sign up here.

UPDATE: Jeremy Voorhis of PLANET ARGON and Globalize fame will also be one of the instructors at the London gig.

habtm vs has_many :through

Of late the ActiveRecord association code has been getting a lot of love. One of the high profile additions are polymorphic associations which turned into one of the big features of the 1.1 release. Amongst all the commotion, some may not have noticed that there is an enhanced way to do many to many associations other than with has_and_belongs_to_many.

For some time people have been skipping out on has_and_belongs_to_many in favor of setting up two has_many associations so that they get the benefits of a full join model and what that brings with it. With 1.1’s new :through association option, a two way has_many just got even sweeter. So if there are two ways to do a many to many relationship, what are the differences, and which approach should you take?

Josh Susser has been digging deep into the association code lately and has emerged from the thicket with a point by point comparison of habtm and has_many :through, a dance-off if you will, between the two approaches. This would be a good time to add him to your RSS reader if you haven’t already.

Jobster looking for lots of Rails developers

Jobster is buying into Rails big time. Over the next few months they are looking to hire no fewer than 10 developers. Those over in the Getting Real camp may cringe at the idea of bulking up your team so quickly, but Jobster CEO Jason Goldberg aims to keep things small and nimble:


One of the cool things we have done at jobster
(we think) is to foster small teams which take on big projects in rapid
cycles. Rails makes that possible. With 12 more devs, for instance, we
would spin up 4 significant projects.

So far Rails has indeed proven to be a great fit.


A team of three engineers tasked with prototyping a compelling consumer
product in one month. They where given complete freedom to do what they
wanted, and to build on top of whatever technology they chose. They chose
ruby on rails, completed a successful prototype that will be pushed to our
live site shortly. It was so successful that rails will be the technology
that all our new consumer features will be built on.

Maybe being on one of these teams sounds like a good fit for you. Check out what they are looking for.

Fluxiom has launched


The wait is over for the next killer Rails application. Fluxiom has launched! Digital asset management just got a lot sexier.

You may have seen its demo video which has been floating around since last December. Developed by wollzelle with none other than Thomas Fuchs, aka Mr. Scriptaculous, at the helm, it brings a native desktop app feel to your web browser. Those building Rails applications these days may be familiar with all the swanky effects Thomas has been putting together. Turns out he’s had a few tricks up his sleeve. Fluxiom not only helps collect, manage and access your assets, it does it with style.

Fluxiom provides four subscription levels, all of which offer a free 30 day trial. You can check out the video and then head over to the sign up page.

We await a bevy of great extractions Thomas ;)

Writing Domain Specific Languages

If you’ve been in the Ruby community for any time, you will likely have heard about “Domain Specific Languages”. Rails uses the concept extensively with its macro style methods for setting up associations, callbacks and validations in models, as well as layouts and filters in controllers. Indeed, Ruby provides great support for creating your own DSLs. It may have become easier to spot domain specific languages, but how does one actually implement them?

Rails core team member Jamis Buck has taken the time to guide you toward understanding the fundamental mechanisms used to create domain specific languages. Get up to speed with his tutorial, Writing Domain Specific Languages, and you’ll be creating elegant abstractions sooner rather than later. What a treat.

Stress testing your protected pages

David came up with a quick tip for anyone stress testing protected pages with a stateless tester, such as siege.

  1. Log in with your browser
  2. View the cookies and find the session id (Firefox has a handy cookie search tool)
  3. Prepend the queries with ?_session_id=YOURSESSIONID

Now, any requests made will be as though they came from your account.

Do you have any other handy tips for stress testing your Rails applications?

Rails Recipes release candidate now available

Dave Thomas has just announced that the first release-candidate of Rails Recipes is now available. What that means is that the book is essentially in its finished form. It’s had a great beta run, with a lot of praise and good feedback. Now that it’s been put through its passes, it’s pretty much ready for primetime, sporting 70 solutions to your real world programming challenges. If you’ve been holding off, now is a great time to get in on what is shaping up to be the de facto companion to Agile Web Development with Rails.

If you already bought the PDF, you can get the latest copy for free.

If you haven’t, what are you waiting for? Order it here.