Feb 27 2007


Javalobby reviews R4JD

Michael Smolyak has written a nice review of Rails for Java Developers over at Javalobby.

We got five smiley faces for "Relevance", which is important given our company name.

Feb 27 2007


Streamlined lives at

We are adding some sanity to our domains, hosts, and ports. Streamlined's official home is I am adding permanent redirects for old URLs.

Some of the top-level URLs are not yet redirecting correctly. I think this may be upstream of my Apache config because things look fine there. Apologies for the inconvenience until we get all the redirects in place.

Update: Fixed the link. Without that being right the post didn't have a lot going for it.

Feb 26 2007


Farewell, Codecite

During 2005 and 2006, we developed a simple Rails application called Codecite that we used to deliver presentations and training materials at our private training classes, and at the No Fluff, Just Stuff Java symposiums. As of 2007, codecite is mothballed. Our new course delivery system for 2007 uses a combination of TiddlyWiki and Prototype to present course materials and lab exercises.

If you are looking for Ruby and Rails samples, we have a more polished set of samples with the book Rails for Java Developers. The sample code is a free download.

We will be moving some of the old codecite material into the Code section of the website. If you are looking for some specific code sample that we have not updated yet, contact us and we will get it to you.

Feb 23 2007


Apache/Cap/Mongrel day at Relevance

Today I am moving 14 Rails applications in various states of very-oldness up to either (1) the dustbin or (2) the modern world of Apache/Capistrano/Mongrel. If you are reading this, the main site is back online, for the moment.

Feb 22 2007


rcov doesn't like vanilla, digs mocha

The solution to yesterday's rcov problem, it turns out, is to yank flexmock from our test suites. This is a shame, because we like the library so much. However, by removing it and replacing it with mocha/stubba, we were able to get rcov running again. Now, if I could just convince it to quit saying "60.8%"..........

Feb 21 2007


Relevance is Hiring Two Ruby Developers

Relevance, LLC is seeking Ruby developers in the Durham/Chapel Hill, NC area. We will begin with two full-time contract positions around April 1 and May 1, 2007.

The ideal candidate would have experience with several of the following items, and a passion to learn the rest:

  • Ruby
  • Object-Oriented Design
  • Domain-Specific Languages
  • Test::Unit
  • Rails
  • Streamlined
  • Subversion
  • Trac
  • FlexMock
  • Rcov
  • Mac OS X
  • TextMate

Relevance is a leading developer of enterprise Ruby and Rails applications. Relevance's partners are authors of Rails for Java Developers and Pragmatic Ajax.

Do you want to work with a small, talented team, and develop your skills with the technologies above? Please send a resume and a one-page writing sample to, subject line "Ruby position."

Feb 21 2007


The rcov that ate Durham

We depend pretty heavily on rcov for keeping us sane in our Ruby projects. To our mild surprise and massive consternation, rcov started failing on us yesterday. Somehow or another, we're getting a Bus error thrown out of the c code. It seems to have something to do with multiple aliases of the initialize method in an AR model. It happens across platforms, and it seems that the only other people to experience it are the rspec folks, and the only solution they've found is to turn off the c-level bindings. Which is PAIIINNNFFFULLLLL.

If anybody has any solutions, please let us know, because right now, we're bummed.

Feb 20 2007


Show us your gems

Mike, Chad and Bruce have all opened up their inner repositories and showed us what lies within; I thought I'd show mine too. Here's what's installed on my box:

  action_profiler (1.0.0)
  actionmailer (1.3.2, 1.3.1, 1.3.0,, 1.2.5, 1.2.3, 1.2.1, 1.2.0)
  actionpack (1.13.2, 1.13.1, 1.13.0,, 1.12.5, 1.12.3, 1.12.1, 1.12.0)
  actionwebservice (1.2.2, 1.2.1, 1.2.0,, 1.1.6, 1.1.4, 1.1.2, 1.1.0)
  activerecord (1.15.2, 1.15.1, 1.15.0,, 1.14.4, 1.14.3, 1.14.2, 1.14.0)
  activesupport (1.4.1, 1.4.0,, 1.3.1, 1.3.0)
  acts_as_ferret (0.3.1)
  aws-s3 (0.3.0, 0.0.8952)
  builder (2.0.0)
  capistrano (1.3.1, 1.2.0, 1.1.0)
  cgi_multipart_eof_fix (2.0.2)
  color-tools (1.3.0)
  creditcard (1.0)
  daemons (1.0.4, 0.4.4)
  director (0.1)
  facets (1.8.8, 1.7.46)
  fastercsv (1.2.0)
  fastthread (0.6.3, 0.6.2)
  fcgi (0.8.7,
  ferret (0.10.14)
  flexmock (0.5.0, 0.4.5, 0.4.3, 0.3.0)
  gem_plugin (0.2.2, 0.2.1)
  google-geocode (1.2.1, 1.2.0)
  gruff (0.2.8, 0.1.1)
  hoe (1.1.7)
  icalendar (0.98, 0.97, 0.96.4)
  json (0.4.3)
  Linguistics (1.0.3)
  mailfactory (1.2.3)
  markaby (0.5)
  mime-types (1.15)
  mocha (0.4.0)
  model_security_generator (0.0.9)
  mongrel (1.0.1, 1.0,,
  mongrel_cluster (0.2.1)
  mysql (2.7)
  needle (1.3.0)
  net-sftp (1.1.0)
  net-ssh (1.0.10, 1.0.8)
  payment (1.0.1)
  pdf-writer (1.1.3)
  rails (1.2.2, 1.2.1, 1.2.0,, 1.1.6, 1.1.4, 1.1.2, 1.1.0)
  rake (0.7.1)
  rc-rest (2.2.1, 2.1.0, 1.0.0)
  rcov (
  RedCloth (3.0.4, 3.0.3)
  redgreen (1.2)
  rspec (
  ruby-growl (1.0.1)
  ruby-prof (0.4.1)
  rubycas-client (0.11.0, 0.10.1)
  rubyforge (0.4.0)
  rubygems-update (0.9.2)
  rubyzip (0.9.1)
  ruport (0.8.10)
  s33r (0.5.2, 0.4.1)
  scruffy (0.2.2)
  Selenium (1.0.1)
  simple-rss (1.1)
  sources (0.0.1)
  sparklines (0.4.1, 0.2.7)
  sqlite3-ruby (1.2.0, 1.1.0)
  stomp (1.0.5, 1.0.4, 1.0.2)
  streamlined_generator (0.0.6)
  syntax (1.0.0)
  tattle (1.0.1)
  termios (0.9.4)
  test-spec (0.3.0)
  transaction-simple (1.4.0, 1.3.0)
  trestle_generator (, 1.1.2)
  tzinfo (0.3.3, 0.2.1)
  xml-simple (1.0.10)
  ZenTest (3.4.3)

That's 73 gems, for those counting at home. Special notes:

  • even though streamlined_generator is still in there, it shouldn't be because we moved to a plugin model with 0.0.7
  • the trestle generator is redundant if you have Rails 1.2
  • there's a bunch of gems in there I've rarely used more than once, but only one designed to be that way

Feb 20 2007


The Ruby Way

Summary: If you want to be a serious Ruby programmer and have already devoured the Pickaxe, you should read The Ruby Way.

When reading a programming language book, I look for two things:

  1. Big ideas: What make this language unique? What styles of programming might it enable?
  2. Little details: Any interesting language has hundreds of little idioms, tricks, and quirky corners.

When I finally cracked my copy of The Ruby Way (2nd ed.), I did not expect to find much that was new to me--big or little. After all, I have been using Ruby daily for years, and have worn out the electrons in my PDF copy of the Pickaxe. My expectations bumped up a notch when I saw this in the introduction: "[The Ruby Way] was carefully designed to be complementary to [the Pickaxe] rather than overlapping it." When Chapter 1 jumped into reflection, singletons vs. eigenclass, threequals, and method_missing, I knew I was in for a fun ride.

There is a ton of stuff in The Ruby Way that I have not seen elsewhere in book form. The sections on core classes are not afraid to visit the dimly-lit corners. For example, collection coverage includes not only inject, but also partition and how to write your own n-way partition method. This "how to write you own" theme recurs throughout the book, as Hal moves past what Ruby does into what you might coax Ruby to do.

The Ruby Way covers many things that you might not use every day, but give you a complete utility belt for when you face an unusual challenge. You'll learn about Madeleine, Rinda, ZenTest, GUI toolkits, Rcov, web toolkits (not just R**ls), RMagick, PDF::Writer, and internationalization.

There are a few nits to pick. There could be more about Rake, which is vastly more important than anyone seems to realize. The material on metaprogramming is excellent, but the idioms in a few places are "old school", e.g. append_features is used where included is more appropriate in Ruby 1.8+.

I usually take a page or two of notes when reading a book on a familiar topic. With The Ruby Way I took about fifteen pages. There is a lot of good food for thought here. Dig in.

Feb 15 2007


4000 requests per second with Mongrel

It is certainly helpful for FUDbusting when people post numbers like this.

Popular Tags