Hi! I'm Avdi Grimm, and this is my software development blog. More...
Books and Screencasts
Small plates of gourmet Ruby code.
32 Patterns for joyful coding.
The Making of Cowsays.com
Watch me build an app in Sinatra and Rails
Objects on Rails
A developer notebook on applying classic Object-Oriented principles to Ruby on Rails projects.
The definitive guide to exceptions and failure handling in Ruby.
- Emacs Reboot
- RubyTapas Samples
- Smalltalk Best Practice Patterns
- Study Notes
- Stuff Worth Buying
- Stupid Ruby Tricks
Category Archives: Ruby
Today’s freebie answers the #1 most common question I get about RubyTapas!
Today’s freebie (episode 55, if you’re counting) covers a simple technique for making a single .rb file work as either a library or a runnable script. In the process, it covers the __FILE__ constant and the $PROGRAM_NAME variable.
I just released a gem I’ve been working on for the last couple days. It’s called Naught and it’s intended to make it easy to build various kinds of Null Object class in Ruby. This isn’t the first generic Ruby … Continue reading
At the borders of our systems, mockist testing hits a point of diminishing returns. In this free episode we take a look at when to stop mocking and start integration testing.
Some functions are useful in many different contexts. In this free episode we’ll explore some ways to make them available both to library code and to client code of a library.
I have a few ongoing miniseries in RubyTapas. In this, the second installment of a miniseries chronicling the creation of a Rubygems plugin and an associated server, I touch on a number of topics including acceptance testing, the shellwords standard … Continue reading
Today’s cautionary episode demonstrates and explains a Hash gotcha that often comes as a surprise.
Does code optimized for RAM usage need to be ugly? Find out, in this free episode of RubyTapas.
Sometimes it’s hard to decide how to handle a failure in a method call. Raise an exception? Return a nil? Log an error? The best choice may differ depending on where the method is being called. In today’s free RubyTapas … Continue reading