Noel Rappin Writes Here


July 14 2010: The Smallest Thing

Obtiva, Ruby, TeachingNoel Rappin5 Comments

Book Status

Still working on the legacy chapter. The sidebar here is that deliberately writing bad legacy code for purposes of using as examples in a book is a little challenging. It's got to be tangled enough to make the point that it's hard to clean, but small and clear enough to work in the context of a book example. My tired brain was fighting it last night.


I mentioned this recently, but I want to mention it again. I'll be teaching Obtiva's Advanced Ruby on Rails course Aug 30 - Sep 2. This is going to cover a lot of non-novice topics. We'll be building in Rails 3 and (I hope) Ruby 1.9.2, and covering security, performance, rich experience tools, deployment, and the like. It's a new course, and I'm excited to put it together. I'll most likely be quizzing early registrants to determine exactly what to cover. Follow the link and enter your information on the form.

The Smallest Thing

So I was talking yesterday, and later twittering, about the smallest issue that I might see in a potential candidate's code sample that would almost disqualify that person in my eyes.

My first answer to this for Ruby is 4-space indent. Because it's totally trivial on the one hand, but on the other goes against an extremely well-established community norm, indicating that either the person isn't engaged with the Ruby community or is really, really stubborn. Neither of these is a recommendation.

Other people suggested different things -- here are some of the most trivial:

@wxwill said "for and while loops". Yeah, that would be an issue for me as well, same reason.

@aberant: suggested STATEMENT rescue "". I might give somebody a pass if that was used reasonably once, but it would look weird in a code sample.

@johnashenfelter suggested Hungarian notation, which would probably disqualify a developer for me in almost any language that was not actually C. He also suggested CamelCase, which would also act like four-space indent for me.

@mileszs mentioned explicit return statements. I sort of agree, although I see that as less of a problem than some of the others, in part because it's easy for an explicit return to slip into code, at least for me. I find when teaching Ruby that this particular community quirk is particularly hard to justify to people coming from, say Java. To them, it feels like deliberate obscurity. Though I think once you get the hang of expression-based Ruby, it seems perfectly natural.

May 5, 2010: Aaiieeee

Craftsmanship, Languages, Neil deGrasse Tyson, REST, RailsRx, Teaching, This American Life, UsersNoel RappinComment

Book Status

Working toward beta 2, which will probably come out early next week. It'll include chapters on integration testing, and webrat/capybara, and maybe the Cucumber chapter, depending on if I finish the redo. Also, the setup appendix with at least partial Rails 3 info -- still sticking on how best to integrate the user plugin.

Thanks to Dan Benjamin and Jason Seifer for mentioning Rails Test Prescriptions (still on sale) on The Ruby Show episode 115.

Lulu raffle will be tonight.

And then...

Interesting article by Michael Bleigh on the divergence between the popular definition of REST with the technical definition. Bleigh argues that the popular definition is popular for good reason, but that the technical definition can still be useful.

If you are a web developer, then you probably hate Internet Explorer, or as I always pronounce it, "Aaiieeee". (Drives the people I pair with crazy, I think.) So it's kind of nice to see that IE's market share continues to drop. Though, of course, your milage probably varies -- the site I work on these days is still about 75-80% IE.

The first story in episode 406 of This American Life is interesting for it's discussion of Steve Poizner's experience teaching in a public high school. Leaving aside the details of Poizner's claims, which I'm not really competent to discuss, what came across to me was the common misconception about what teachers do. Thinking "I know stuff and I'm just going to to go into a classroom and be all knowledgeable and the students will learn" followed by "it's the student's fault if they aren't engaged" is such a sad and depressing view of what teachers do and what it means to teach. For a more contrasting, inspiring view, here's Neil deGrasse Tyson.

Two posts inspired by presentations at this year's Chicago Code Camp:

The similarity and difference between programming languages and human language fascinates me. This blog post talks about how programming might change if Chinese language grammar components were used to build the programming language constructs. Reminds me of Damian Conway's old Perl Latin paper.

Michael Norton has posted his slides from a talk on technical debt from the idea that most of the time when we say "I'm building technical debt" we really mean "I'm writing bad code". Love the slides, wish I had seen the talk.


So, in the past, I asked the Kathy Sierra question, "How can we help our users Kick Ass" so often that people began to think we were a martial arts studio. Here's Kathy Sierra from Business of Software '09, expanding on the point -- I've only watched some of this so far, but she's one of the best on building a passionate and awesome user base.

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.