Noel Rappin Writes Here

Rails 3

June 21, 2011: In Brightest Day

Alternate History, Books, Comics, Cucumber, Rails 3Noel RappinComment
I'd like to pretend there was some thread connecting these things, but you and I both know there just isn't...

1. Actual News: Cucumber 1.0

Starting with something approaching a real news story, Cucumber 1.0 was released today. According to that post from Aslak Hellesøy, the project has had nearly 750,000 downloads. Oh, and there's a native JavaScript port in progress. I didn't know that.

Anyway, Cucumber 1.0 adds Rake 1.9.2 support. Recent changes you may not know about include a -l and --lines command line switch as in RSpec's and a new transform syntax that allows you to factor out duplicated parts of step definitions. Haven't seen official docs on this, but it looks like it allows you to capture bits of step definition and run a block against it. The code example within the Cucumber tests looks like this:
Transform(/a Person aged (\d+)/) do |age|

Given /^(a Person aged \d+) with blonde hair$/ do |person|
puts "#{person} and I have blonde hair"

In other words, the snippet a Person aged \d+ is captured and transformed and the result of that transform block is what is passed to the step definition block.

Interesting. I wonder if people will use it?

2. The End of the World As We Know It

This post from the Armed and Dangerous blog tries to imagine a world without the web. The general idea is that if Congress had understood what DARPA was up to in the early 80's, then funding would have been cut, and TCP/IP would not have been developed and popularized.

It's an interesting argument, and as much as I'd like to believe it's to dark, the examples of the cable and cell phone industries are eloquent. (I'll grant that the author is probably trying to make a libertarian point I wouldn't agree with in general...)

3. Books: Fuzzy Nation

Continuing playing catch-up with brief book reviews, Fuzzy Nation by John Scalzi. Fuzzy Nation is something odd -- a genuine remake of a beloved SF classic (well, beloved by some, I've never read it), namely Little Fuzzy by H. Beam Piper. Scalzi has taken the basic elements -- a guy who encounters small, sentient aliens who are, wait for it, Fuzzy -- and wound his own story around them.

Fuzzy Nation is pretty much purely entertaining, fun, well structured, fast paced. It's not as much interested in the existential questions around alien intelligence as the practical question of protecting them from a corporation that wants to strip-mine their planet. (Subtle, it's not.) It's one of those books that isn't interested in re-defining the genre as much as telling a good story inside the existing boundaries.

4. Moving Beyond Thin Controllers To The Downright Emaciated

Gary Bernhardt over at the Destroy All Software blog posts some suggestions about using routing or routing-like structures to effectively remove controllers from the system. The theory is that if controllers just exist to dispatch to a specific method someplace else in the system, and Rails manages all the other connections, then why not route directly to that method with some declarative or rules-based logic to handle things like security logic, exceptional conditions, or other high-level logic.

It's interesting, and probably could be built within Rails 3. I suspect most systems aren't pure enough in the controllers to take advantage of it, which I guess is the point, and I wonder if the gain is worth breaking the default linkage between URL and controller/action pairs, but I'd be curious to try it.

5. In Brightest Day, In Blackest Night

Finally, I haven't seen the Green Lantern movie yet, but I've been telling anybody who will listen that I've been waiting 30 years to be disappointed by it. Thanks to io9 for reminding me why be recapping an awesomely over-the-top Green Lantern comic from 1980 that I owned, loved, and could still quote alongside the recap. Watch GL stagger through the Arctic wilderness without his ring set upon by polar bears and wolves.

Aug 30, 2010: Rails 3 has landed

Obtiva, Rails 3, RubyNoel RappinComment

Top Story

As you probably know, both Rails 3 and Bundler went final over the weekend. The Rails 3 release notes are up, as well as extensive coverage on the Rails Guides page. I'll also mention Jeremy McAnally's Rails 3 Upgrade handbookhttp, and Gregg Pollack's list of great Rails 3 documentation sources. And, just for the hell of it, here's the post I wrote back when Rails 3 was first announced. Somehow, this is not the first Google result for the phrase "Merby Overlords"

In other news

I do mean to write about Obtiva's Master Class with Alistair Cockburn, but that's going to take way more concentration than I can muster this morning. For the moment, it's enough to say that it was fun, interesting, and enlightening.

In honor, this link that Alistair tweeted over the weekend, the Half-Arsed Agile Manifesto. Anybody who doesn't recognize themselves in that a little bit has never actually tried Agile.

Link Out

By the way, I loved doing the post based on search engine entries into the site... you'll see that again, as it was relatively easy, kind of funny, and marginally useful, and that's pretty much what I aspire to.

If you're into programming abstractions and/or you want to learn about Lisp, Magnus Holm has an introduction to S-Expressions for Rubyists.

And if you are into crazy Ruby metaprogramming, Lance Pollard has a long look at instance_eval. It's nice to see a metaprogramming example that's actually motivated from a use case.

Highly prolific conference blogger Jake Scruggs was at RubyKaigi this week, here's day one of his report. Day two. Day three.

August 16, 2010: I Still Like Boring Software Development

Boring Software, Chronic, Engine Yard, Rails 3, Scrivener, SnowmanNoel RappinComment

Book Status

Beta 6 is out and available for sale here. The major addition is the new Shoulda chapter. It's also available from Amazon. Note that the ship date for the print book seems to have moved to November.

Next up is the RSpec chapter, which will probably be Beta 7 sometime in the next week to ten days. After that, most likely a new chapter on test performance / performance testing. I also need to figure out what to do with an existing short bit on Autotest that doesn't seem to fit anywhere. After that, we'll see where we are in time and length.

The Boring Software Manifesto

It was fun to see my old Boring Software Manifesto linked at the bottom of this PragMag article on Software Manifestoes. I should revisit the Boring Manifesto, I think.


If you are like me, then you are paying attention to Rails 3 but haven't done any significant production projects yet. You may have seen odd references to a snowman. Sam Ruby presents a brief but clear explanation of why Frosty is now a part of Rails URLs.

One of my favorite Mac programs is Scrivener, and I wish that my writing projects lent themselves to using it more often. In this great post, Scrivener developer Keith Blount explains all the features that won't be in Scrivener 2.0. One feature that will, though, is Dropbox integration, so that a Scrivener project can be worked remotely via, say, Droptext on an iPad.

Chronic is one of my favorite Ruby gems -- it leads to a great client demo when you type "a week from next tuesday" into a calendar text box. Aaron Sumner has an overview of using Chronic and Chronic Duration for date and time parsing.

Ezra Zygmuntowicz is leaving Engine Yard after four years, and takes a blog-posts worth of time to reminsce.

Finally, Greg Moreno has been updating a Rails project to Rails 3, and documenting the process. Part 1. Part 2. Part 3.

August 3, 2010: The Most Efficient Cargo Cult Money Can Buy

Passenger, Rails 3, Yehuda, rvmNoel Rappin1 Comment

Book Status

Spent yesterday's book time rearranging the Shoulda chapter so as to be more focused on the general ideas than the specific Shoulda interpretation. Today's job is making sure it all still flows.


So I have something like a half-dozen half-finished blog posts. Until the day some of those become fully finished, here's a few links.

Simone Carletti has list of practices to follow in your Rails 2.3 app to make it more compatible for an eventual upgrade to Rails 3. I literally just used this article yesterday, building a new Rails 2.3 app with Bundler, rails_xss, and a couple of other nifty things.

Yes, that's why I tweeted yesterday about the awesomeness of RVM. It was the first time I needed to keep Rails 3 and Rails 2 on my system, so the first time I created a project specific gemset -- you can find some articles with instructions in previous link posts. Easy to create, easy to share, easy to set up everybody's development environment.

This list from Istvan Hoka of Mac OS X tools for Ruby development is a little quirky, but a good overview of what's available.

I really want to start using Passenger 3. A couple of days ago the Passenger team released another preview post with more cool features. They deliberately bury the lede, though, as they close the post with a strong hint that some of the features will be held for a premium for-pay version. More power to them, I say -- free plus paid extras sounds like a good model for them.

Following up on the gems he released a few days ago, James Golick describes his rollout tool for conditionally adding new features. It uses Redis to determine user status for the purposes of conditionally executing code.

I thought about this tweet from Yehuda Katz for a while:

Am I crazy, or is it too easy to cargo-cult crazy practices from StackOverflow, resulting in compounded problems and error reports?

I see where he's getting this, but I'm not sure that Stack Overflow is all that qualitatively different than picking up advice on the internet in general. It's just a more efficient way to cargo cult, which would make a great slogan.

July 27, 2010: No Rails Release Shall Escape My Sight

37signals, CSS, Geek Out, Rails 3Noel Rappin1 Comment

Book Status

Beta 5 should be out today, with the legacy and the Rails 3. Next up are the Shoulda and RSpec chapters, starting with figuring out how to handle the changes in Shoulda since I last wrote the chapter.


I'm sure all of you within the interest circle of this blog already know that Rails 3.0 RC 1 was released yesterday. Part of me wants to say "finally", but that really isn't fair. Doesn't look like there are dramatic changes from Beta 4, but check out the release notes.

And another thing

So Larry Doyle, author of the Go Mutants! book that I reviewed yesterday, re-tweeted me this morning, which I suppose means he read the review. That kind of thing always surprises me more than it should, given how often I Google my own name...


Okay, nobody else is going to care, but here is Ryan Reynolds from ComicCon reciting the Green Lantern Oath for a small fan during the panel discussion of the upcoming movie. Green Lantern was, somehow, my favorite character when I was a kid, and it's great to see Reynolds do the line without a hint of ironic winking.

37Signals posts some information on their production database setup. This kind of thing is incredibly useful, but for obvious reasons kind of hard to come by. So, thanks.

Thoughtbot announced the release of Flutie, which is a "not CSS framework" distributed as a Rails engine. It seems like a set of intelligent CSS defaults that can be used to make something look good by a non CSS-guru developer, but which still allows a CSS expert to use a site layout framework on top. Looks helpful.

This is a couple of months old from Takaaki Kato, but it's a nice series of TextMate tips for Rails developers. I'd add that I've always had trouble with ProjectPlus -- it's always had performance problems for me. A very handy set of tips, though.

June 30, 2010: The Triumphant Return of the Monster Link Post

Cucumber, Don Norman, Rails 3, Ruby, Shoulda, Steve Martin, UXD, iPhone, rvm, writingNoel RappinComment

The end of the repair story

At the end, a very positive experience with Apple support. The repair was free, done when they said it would be done, and all told, I spent less than fifteen minutes in the store between both halves of the visit. Plus, they replaced the top part of my pre-unibody MacBook, which was worn down and discolored from my gunky hands, almost as though they didn't want an ugly Mac in the field.

Book Status

With the laptop back, I'm back to work, last night going back over the Style chapter. I think now the plan is to do a slightly smaller next beta that would get out next week, just the Coverage and Style chapters, with the next batch, probably the Legacy and redo of the startup example coming shortly on its heels.

Also, the book has somewhat quietly shown up on Amazon and, I presume, other online outlets.

Of course, the beta is still available at PragProg.


Many, many links, as I catch up on an entire week's worth.

Thoughtbot announces that factory_girl is now split into a separate Rails 3 gem, in much the same way that Cucumber and RSpec are.

Also in Thoughtbot-land, the should_change command has been deprecated from Shoulda.

Jeremy McAnnaly announces the 2010 Ruby Hoedown, after some rescheduling due to the Nashville flooding. Again, it's the low, low, price of free. I'm hoping to break my 0-for-2010 streak on conference proposals with my submission.

Everyday Rails has a good post about getting Rails 3 and RVM working together.

I haven't watched this video yet, but a little Don Norman is a good thing, right? (via Joel Spolsky)

Test Inline is a Ruby library from Eric Anderson to put tests in the Ruby source file. Eric freely admits that this is an experiment, which is good because my experience with this kind of tool (Python doctests) is that it gets messy pretty quickly.

Ever think that Lemmings would make a great iPhone game? Me too. Also, the people who have the rights to the code. Coming soon.

I love Steve Martin. He's posted the rider for his tours. A sample: "BUFFET ... Six-packs of any canned beverage for Steve to compare his abs to."

I've been waiting for this: Lifehacker posts some Handbrake presets for iPad and iPhone 4. Seem decent, but a bigger file size than what I had been doing.

Please don't do this. It's a bad idea and will make your code harder for other Ruby developers to maintain.

Two from David Chelimsky: Having a topic branch when contributing to git projects, and a change in how views are handled in controller tests in RSpec 2.

I really need to watch this presentation from RailsConf on Beautiful Markup by John Athayde.

Speaking of RailsConf, here's a retrospective from John Trupiano of the BohConf "unconference" that happened alongside.

Dan Ingalls was one of the people behind Smalltalk 80, here's an interview with him.

Over at Teach Me To Code, a screencast about setting up a Rails project and writing the first Cucumber feature.

Still in Cucumber, Michael Orr shows how you can use an instance variable to track objects in a Cucumber test. I do this a lot, myself, although I'm not completely convinced that you get a cleaner test suite at the end.

Rands has a great post about his writing process. I love that everybody does this a little differently, although calling what I do a "process" is probably a little much.

Paolo Perrota, author of Metaprogramming Ruby, has a nice note about how great the Ruby community is.

UxMyths seems like a useful site to browse.

Speaking about great writing, I loved, loved the opening of this article by Adam Keys about why he always comes back to TextMate. Also some good comments. I hadn't thought of the issue exactly this way, but it makes perfect sense.

The Time of Day gem lets you treat ActiveRecord time columns without their date information for certain kinds of comparisons.


I think I mentioned that I did a talk at Refresh Chicago last week. It was fun, but we think turnout was down due to the tornado warning over Chicago that night -- it's possible the sirens acted as a deterrent. Well, video of that is not up, but here's a video of the storm that night, featuring lightning striking three Chicago skyscrapers at the same time.

June 21, 2010: Double Double Splat Splat

Database, Hudson, JQuery, Less, Matz, Passenger, Rails, Rails 3, rvmNoel Rappin2 Comments
Link post today. Turns out I built up more links than I thought.

Book Status

Somehow I wound up writing and editing the Rcov chapter, which, among other things, is the first time I've had to wrestle with RSpec 2 vs. RSpec 1 behavior, when writing about how RSpec and Rcov get along. Now I need to figure out how to write about that more coherently. Actually, I need to decide if I'm going to acknowledge RSpec 1 at all.

The book is still on sale, of course. I've gotten nice feedback so far, but not much of it, I'd love to hear from you. And if you like the book, and wanted to tell your friends, or the Internet at large, that'd be great, tool. (Oh, look, I'm turning into that guy...)


Rebecca Murphey has written "JQuery Fundamentals" a new Creative Commons book on JQuery. Looks useful, though I'd also love it if an epub version was made available. I bet I'll be referring here a bunch, though.

Looks like there will be a JavaScript native implementation of LessCS. Interesting. I'm still wondering how the Less/Sass thing plays out.

The previous two links are via Larkware's Daily Shots.

Here's a big chunk of code from Brian Cardarella that allows you to do user-selected subdomains using the Rails 3 router.

Via Everyday Rails, here's, which generates a Rails template for you, after you select some parameters. Pretty neat. I'd imagine it'll grow more parameters over time.

I think the lesson of this article by Patrick McKenzie about human names is that no matter how far you go in creating a database schema, there's always somebody who will go farther.

The Phusion team continues to tease about the impending awesomeness of Passenger 3.

Thoughtbot, in the person of Nick Quarantino, has a crazy detailed post on using Hudson for continuous integration with RVM. I'm going to go out on a limb and say this could be made easier.

I don't read the Japanese, but supposedly Matz is blogging about possible Ruby 2.0 features. If I'm interpreting this correctly, it looks like Python-style double-splats are in play, which I'd like. ("Python Style Double Splats" is the name of my new Eric Idle cover band. Sorry.)

June 14, 2010, Practice makes less imperfect

Authlogic, Coulton, Mongrel, Rails 3, Shoulda, Steve Jobs, Yehuda, testingNoel Rappin1 Comment
Still catching up on links. The PeepOpen review has morphed into a larger IDE/TextMate piece, hoping to finish that today.

Book Status

Still working on the renovated Style chapter, which will probably combine the chapters that are in the current Table of Contents as "Testing Style and Structure", "Fix Slow Tests", "Rcov", and "Help! My Test Is Failing". The chapter on Legacy testing will remain a separate chapter -- I get asked about how to test legacy projects all the time.

What happens at that point kind of depends where we are on page count -- there are two chapters left that are basically unwritten (Selenium, performance testing), and two chapters that are written but need to be brought up to date (Shoulda, RSpec). Probably more information on this line later this week.

Today In Links

Liked this article from Naresh Jain about deliberately practicing TDD on sample problems to get better. Not sure if I've mentioned it here, but Project Euler is a great source of sample problems if you are mathematically inclined.

I suppose it was inevitable that somebody would write about Steve Jobs' presentation style in the wake of the network issues during the iPhone keynote last week. Still, good advice, even if they handwave over the most useful helpful bit -- "an adoring crowd".

Yehuda posted a short gist about implementing the "acts_as" pattern more simply then is usually done.

Thoughtbot posted a list of the Rails 3 compatibility status of all their open projects. Yay! Most relevant for my immediate purposes, Shoulda has a new release with Rails 3 support and "some dramatic changes". Though I couldn't quite see from the history what they meant. More details coming.

In other Rails 3 news, Jhimy Villar has a workaround for a Rails 3 issue affecting Authlogic. I'm seriously considering moving the Rails Test Prescription examples to Devise on the grounds that a) it's already Rails 3 compatible, b) it seems to have fewer setup steps and c) it seems to stay out of the way a bit more, which is a big plus for my purpose.

Did not mention this last week, but RubyConf X will be Nov 11 - 13 in New Orleans. Never made it to a RubyConf.

Zed Shaw has announced the Mongrel2 project, which is a complete redesign of Mongrel. Not much there yet, but watch this space.


In an interview with Think Geek (via GeekDad), Jonathan Coulton says that the new album he's been teasing for a bit will be produced by John Flansburgh of They Might Be Giants. That should be fun.

June 10, 2010: RailsConf-a-palooza

Capybara, Rails 3, RailsConf, SafariNoel Rappin2 Comments
Sorry for the involuntary day off yesterday. Lot of links, I'll try and be brief.

RailsConf and Related

DHH's Tuesday keynote is up. Presumably this is different from last year's keynote about Rails 3. The other keynotes will probably become available in the next few days.

David announced Rails 3 beta 4 at his keynote. It looks like we'll be getting a release candidate in another couple of days.

The Ruby Hero awards were given. Weirdly, I can only see the list via people who tweeted about it -- there doesn't seem to be an official list up yet. Winners are José Valim, Nick Quaranto, Xavier Noria, Aaron Patterson, Wayne Seguin, and Gregory Brown. Congrats to all.

Most speaker slides will be available at the RailsConf site.

Gregg Pollack has a screen cast series called Dive Into Rails 3. Which, if past performance is any indicator, will be very useful.

Online recaps include: JetBrains and Jake Scruggs.

Says here that DHH "was dismissive of an analyst report that did not reflect kindly on Rails". Ooh -- how'd I miss this. It's a survey from April that places Rails 11th out of 12 web frameworks in developer satisfaction. (Beating out Spring, with .NET on top). That seems... unlikely based on my experience. But hey, what do I know, I can't charge $600 for my reports.

And A Bunch of Other Stuff

Bowline is a new library for cross-platform desktop apps using Ruby.

Apple's official Safari Extension page isn't up yet, in the meantime, there's

Send Keys is a Capybara extension that lets you send keystrokes to the web page under test.

June 7, 2010: Lot of Conferences Week Begins

Authentication, Mac, Rails 3, i18n, self promotionNoel RappinComment
Today is the RailsConf tutorial day, with the conference proper starting tomorrow. I was less disappointed than I thought I would be when my talks were not accepted, but I'm more disappointed than I thought I would be not to be going. Have fun, everybody.

On the other side of the country, today is the Apple WWDC keynote, which I'm sure I'll join the rest of the internet in obsessing over.

Book Status

Over the weekend, worked on the style chapter of the book, largely trying to incorporate the ideas from the Chicago Ruby talk, and also combining some of the short chapters. Need to find out if I have a page limit.

Lots Of Links

Plasma Rails is a new Rails RDoc presentation site that claims to update Rails 3 docs nightly. It's got a very TextMate-ish dark theme.

The Everyday Rails site has a quick rundown of three Rails Authentication methods, Restful Authentication, Authlogic, and Devise. Devise looks nice, and I'm considering moving the Rails Test Prescription examples to it since it seems to be an easier setup than Authlogic and also Rails 3 compatible.

Not to be outdone, I Suck At Ruby mentions a feature of the the Ruby TextMate bundle that validates Ruby code on save.

Josh Owens at RailsFreak has a suitably quick post with thoughts on how to do a quick launch of a web application.

DHH himself has released Tolk, which is a Rails engine providing a web interface to support translators entering text and converting it to the Rails YAML locale files. I think this was extracted from the recent Basecamp multiple language release, looks like it'd be useful.

Ars Technica named the winners of their design awards. I concur on two of the three apps that I use (Tweetie -- please finish the Mac version 2.0 -- and Dropbox), I like 1Password, but wouldn't consider the app itself to have a particularly great design. Don't use the others, although Soulver is pretty cool.

Finally, In Self Promotion

This has been around for a while, I think, but it just passed back in front of my eyes. Antonio Cangiano has a list of recommended Ruby books, and a separate list of Rails books.

Somewhat flattered to have my Wrox book, Professional Ruby on Rails, be included. There are parts of that book that I think are really great. And parts of it that were obsolete almost the moment it was printed (for instance the entire chapter on using Subversion with Rails...). Anyway, thanks!

June 4 2010: Okay, here's a link post

JRuby, Rails 3, Ruby, RubyMine, YehudaNoel RappinComment
Quick links post:

Gregory Brown is looking for comments and donations for a proposal for a Ruby Mendicant University, basically a rolling online Ruby course.

Charles Nutter is interviewed by InfoQ on the state of JRuby.

Yehuda Katz has a long post on various kinds of extensions in Rails 3 -- gems, plugins, generators. This one I need to look at in some detail.

The new RubyMine 2.5 beta integrates with Pivotal Tracker. Looks like you can tell RubyMine what story you are working on and it will tag your source control comments. Cool.

Book Status

Working on the style/quality chapters, integrating material from the ChicagoRuby talk. Probably not a beta next week, but maybe the week after.

June 2, 2010: How To Test Good

Apple, Chicago Ruby, Me talking, Rails 3, Yehuda, nodeNoel Rappin1 Comment


Gave my talk at Chicago Ruby. The video is already online -- yay Chicago Ruby team. I was pleased with it, actually, I did pretty much what I hoped to do, except that I thought the repetition joke would get a bigger laugh.

In other news

Yehuda Katz posted slides on another Rails 3 talk: dashing to the finish.

Speaking of people on stage, Steve Jobs was interviewed on stage at the D conference yesterday. Among other, more important things, Jobs admitted that the initial iPhone-ish prototype was tablet sized.

Saw this on Twitter just now, and it looks nice -- a node based console app for speaking HTTP. Looks like that'd be handy in almost any web development toolkit.

David Turnbull has a new Tumblelog called I Suck At Ruby, looks like he's got some useful short bits and good advice for sucking less. I've also got Everyday Rails, by Aaron Sumner (Tip to everybody: make your actual name more prominent on your blog...) Both of which remind me that it's time I put more original content here...

May 28, 2010: Friday Friday Friday

Chicago Ruby, JQuery, Metaprogramming, Obtiva, Plugins, Rails, Rails 3, RubyNoel RappinComment
Short today, but preparing some longer, more rant-y bits for the future...

Book status

Not much forward motion for the next few days, as I have a lot of other stuff to do, including preparing for Chicago Ruby on June 1 and doing a bit of touch-up on Obtiva's 4-Day Ruby on Rails/TDD boot camp. All fun, but time consuming.

Some Links

A quick tutorial by Peter Cooper on setting up JQuery in Rails 3.

This isn't the first time I've seen something like this, but this article by Alan Skorkin on Ruby Procs and Lambdas is well done and it's worth refreshing from time to time.

We always say that Ruby methods can't have spaces in them, but technically that's a lie, as shown in Joon You's screencast.

Rails Dispatch this week is by José Valim. It's kind of rambling, but a very interesting look at plugins that mess with Rails 3 features like Responders and Generator.

May 21, 2010: Meetings

Chicago Ruby, ChicagoDB, Cucumber, Rails 3, Snow LeopardNoel RappinComment

Book Status

Committed what I hope will be the Beta 3 version of the Cucumber chapter. Most of the changes were in the various conclusions. When I originally wrote the chapter, Cucumber was still quite new, and I had kind of a ragged set of thoughts about how it should be used. Since then, I've used it more, and more importantly, there's been a lot more community discussion about how Cucumber is best used, so I needed and was able to tighten up that part a bit.

Meetings, I've Got Meetings

If you are in the Chicago area, you might want to check out some group meetings.

The brand new ChicagoDB user group will have its first meeting Monday June 21 at Obtiva World HQ in Chicago. RSVP if you plan on coming.

Also, the Chicago Ruby meeting on June 1, now has a more detailed description of the schedule.

And then

A couple of links on setup:

This week in RailsDispatch, upgrading from Rails 2 to Rails 3.

Rogelio Samour has posted a set of steps that Hashrocket currently uses to create their standard Ruby setup for Snow Leopard machines. Looks nice.


A few weeks ago I linked to a This American Life story about the NUMMI auto plant that recently closed after a long time being the flagship GM plant for running based on Toyota/Lean principles. Interesting follow up yesterday: the plant will be part of Toyota's investment in Tesla, and will be used to build Tesla's cars.

May 14: Moving To Beta 3

Cucumber, Git, HTML5, Rails 3, RailsRx, YehudaNoel RappinComment

Top Story

Just a quick update here.

Cucumber chapter newest draft is complete, and I'm hoping it will be beta 3 early next week. Not sure what to do next, I need to look around and see what's relatively stable with respect to Rails 3.

The book is still on sale. Tell all your friends.

And then

Rails Dispatch this week is about the new routing in Rails 3.

Yehuda Katz has a really nice article on workflow with git.

A brief rant on Ruby 1.9 and encodings.


The excellent Dive Into HTML 5 book/site has a quick reference on how to detect all kinds of HTML 5 related browser behavior. I'm pretty sure I'll be coming back to this page again.

May 6, 2010: The day of promoting stuff

Cubbies, Dropbox, JRuby, Mac, MarsEdit, Pragmatic, Rails 3, Ruby, Yehuda, xkcdNoel RappinComment

Top Story

I'll mention somebody else's book, but don't worry, I plan on doing it in a totally self-absorbed kind of way. Pragmatic released Using JRuby into beta yesterday, by the core JRuby team. Looks good, interested to see where they go with it.

Because I'm me, I can't help but compare the structure of the book with the Jython book I did. Biggest structural difference so far is that we were unable to assume a Python-savvy audience, so we felt we had to awkwardly teach Python for 100 pages at the start of the book, where as the JRuby book is able to teach Ruby in an Appendix. Good luck to the JRuby team, and I'm looking forward to seeing this one all the way through.

Book Updates

In the spirit of an old Chevy Chase routine, Rails Test Prescriptions is still on sale. There's a forum, which is still largely empty -- I'd love some feedback.

Worked on the integration and webrat/capybara chapters, cleaning them up for beta 2.

The May, 2010 issue of the PragPub is out with my article about mocking, among other, cooler stuff.

And Then...

Today was a big day for updating software I use every day. If this blog post looks extra-shiny, it's because I'm using MarsEdit 3, which I've used for every blog post I've written for several years. New stuff includes a rich text editor and better HTML syntax highlighting.

I also upgrated TextExpander and iStat Menus.

Matt Polito discovered that the Rails 3 API can be found at He did not know this. Neither did I. Neither did you, probably. Now we all know.

You probably do know about Rubular, which is an outstanding online tester for Ruby regular expressions. I just wanted to point out that it's really cool.

If you aren't using Dropbox, you should start right now -- it's an outstanding backup tool. (Man, I'm plugging a lot of commercial stuff today for some reason). Anyway, there's now a Ruby library for the brand-new Dropbox API.

Also from Ruby Inside, a nice overview of three newish date-time libraries. Tickle, in particular, looks handy.

And in Yehuda news, a nice overview of Ruby 1.9 and character encodings, and in a completely different mode, a jQuery plugin for using HTML 5 offline data support.


Randall Munroe at XKCD did a big survey asking people to name colors, and the results are really cool.

Will Leitch has a new book about baseball and dads, and this excerpt from Deadspin is all about the famous 2003 Chicago Cubs playoff loss. Since I'm a Cubs fan who loves reliving painful moments, I read it. Leitch gets the flavor of the game down correctly. As a Cubs fan, what I remember most strongly about when that ball dropped, was thinking "Oh, that's how we're going to blow this game" -- the play was important mostly in getting across the idea that Weird Stuff was afoot.

May 3, 2010: Hi, I'm Back

Cucumber, JavaScript, Obtiva, Peanuts, Podcasts, Rails 3, RailsRx, Teaching, cheat sheets, testingNoel RappinComment

Hey, where were you?

Sorry about that, I spent most of last week running the Obtiva Ruby/Rails/TDD 4-day boot camp training, and I didn't have time to do this daily catchup. Hey, if you think you need me or somebody like me to come to your company and blather about Ruby and Rails for a few days, contact us at It's fun.

Book Status

Rails test prescriptions: still on sale. Please do go to the forum to talk about what's there and what's not there.

Lulu raffle: still open, I think for another day or two.

Meantime, I've been working through the Cucumber chapter, and also proofing the mock article that will be in the May Pragazine.

Tab Dump

Several days worth of stuff.

Cucumber 7 is out of beta and in the wild. I'm hoping this doesn't mean too much updating of the chapter I'm in the middle of editing. The big change is a new parser advertised as 50-100 times faster. Which sounds like an outstanding change.

This week in Rails Dispatch, an article outlining the new ActiveRelation/Arel implementation of ActiveRecord for Rails 3

Thinking in Rails has a nice list of Ruby and Rails podcasts.

This is exactly what I want from a Rails plugin in: short, sweet, and solves a problem. In this case, from Ryan Bigg, finding database records by partial date.

I think I'll probably use this one: a detailed cheat sheet for all things Rails Migration.

A very detailed article on unobtrusive JavaScript that I really need to read more carefully.

The Thoughtbot team shows a nice design retrospective, walking through their process.

A couple of test links:

José Valim gives out some awards for best test suite features.

Will Leinweber tells you what the winning integration test stack looks like.

Bryan Liles at the Smarticus blog also responds to the question of whether you need unit tests and provides a good overview of the TDD process. I think he's got this right.


Apparently the Peanuts brand is still worth something, even without daily content, as an 80% stake in the brand rights for Peanuts just sold for $175 million. And if you want a sense of exactly where the pecking order is here, the article casually mentions in the next-to-last paragraph that the rights to Dilbert are also included...

April 21, 2010: Annnndd... We're live

ActionMailer, Podcasts, Pragmatic, Rails 3, RailsRx, TeachingNoel Rappin1 Comment

Top Story

What else, but the actual live sale page for Rails Test Prescriptions, which is You should be able to see the cover off to the right sidebar. (As I write this, they haven't turned on the "Buy" link, sometime today, I think).

I like the mortar and pestle in the cover, it has a nice resonance with "prescriptions" and also, at least for me, a little bit of a tinkering kind of vibe.

Anyway, I'm excited and nervous about this -- of the books I've written, this is the one that is most clearly my project from the beginning. I hope you like it, and I hope that your comments will help this be an even better book, and that we can get the physical book in your hands soon.

Buy early, buy often.

Book Status

I've been working on an article for the next issue of the Pragazine. I think I might be doing a better job of justifying a mock style than I have in the current book text, which means I'll need to copy some of those arguments back into the book.

Tab Dump

Nice Rails Dispatch post by Mikel Lindsaar detailing the changes for Rails 3 ActionMailer. The ActionMailer API is much more consistent with the rest of Rails, giving me a fighting chance of remembering how it works without looking it up every time.

The CoderPath podcast popped up on RubyFlow -- it's a weekly interview podcast with Ruby and Rails programmers, that has so far included DHH, Ryan Bates, and others. I haven't actually listened yet, I just saw the link, so you can consider this a transparent plea for them to interview me. Since you may have heard I have a book out.

Since I do a fair amount of Rails Training (interested?), I liked this Sarah Allen slide show about Test First Teaching. Some ideas here that I need to think about incorporating better in the training sessions that I run.


Do not adjust your web browser. The rubyonrails domains are all still down as I write this. And it has nothing to do with the volcano. Hopefully it'll all get straightened out soonish.

April 19, 2010: The Week Begins

Bundler, HTML5, Rails, Rails 3, RailsRx, Ruby, Yehuda, iPadNoel Rappin1 Comment

Top Story/Book Status

This is the week -- Rails Test Prescriptions should go on beta sale on Wednesday.

In a related story, now points to here, also will shortly. I'll be adding some basic about information and static pages here. At some point, I'll probably bring over any blog content from the previous site that still seems relevant. I'm not sure if the original free version of Rails Test prescriptions will still be available (it's becoming out of date, and there will be free samples available at Pragmatic), but I will make it available if anybody is still interested.

Tab Dump

Reg "raganwald" Braithwaite has a brief article on why Ruby needs blocks separately from lambdas, how blocks differ, and when that difference is useful.

A double dose from Yehuda Katz: A slideshow titled "Making your OSS project more like Rails", with some interesting insight on what makes Rails work as a project. And another Bundler article addressing the issue of why Bundler appears to work differently based on the ordering of gems within it. (Short answer: it's exposing dependency issues in the gems themselves.)

Over at Envylabs, they announced a new gem called Census, which allows you to gather demographic-style data on your users and then search for data based on their answers.

Another Rails 3 intro, this one at IBM Developer Works. I've written Rails stuff for them in the past, but I didn't write this one.

Here's a nice slideshow in HTML5 that shows off the new features of HTML5.


NetNewsWire has quickly become one of my indispensable iPad apps. The developer, Brent Simmons, in an attempt to discuss software development, has posted a number of pictures from various stages in the design and implementation of NNW-iPad. Thanks!

Standup for April 14, 2010: Whedon to direct Rails 3

Joss Whedon, Rails 3, RailsRx, standupNoel RappinComment

Book Status

Not much new to report. Still in the webrat and capybara space. It does look like April 21 will actually be the beta date really and for true.

Top Story

Well, it's got to be Joss Whedon possibly directing the Avengers movie, right? The Internet would never lie to me about Joss. It's not like there's a collective internet freakout any time some rumor about a Whedon project comes through. If this is true, though, the resulting nerdquake could topple Cleveland.

Oh, and Rails 3 beta 3 is out. The biggest change seems to be that some helpers have been rolled off into plugins.

Tab Dump

IronRuby went 1.0, if you are into that kind of thing.

This is a couple days old, but Jason Seifer has a nice intro to Rake.