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
I feel like I’m practically the poster child for the “passionate programmer”. I code for fun, always have. I’m like the stereotype of the guy who’d be programming even if it didn’t pay. I play with new programming languages for … Continue reading
Lately I’ve been handling configuration entirely through environment variables for my apps, as the 12 Factor App recommends, and I can’t recommend this approach enough. As a constraint it helps me think about what parts of a given app actually need to … Continue reading
Understanding assignment in pattern-matching functional languages. Continue reading
A reflection on programming in OO languages versus dynamic functional languages such as Elixir and Clojure. Continue reading
I’ve been trying to use Benoit Chesneau’s hackney library to hit the Wistia API from an Elixir program. Between the fact that hackney is still under rapid development, and the fact that I’m not great at reading Erlang code, it’s … Continue reading
Sometimes when rescuing an exception in Ruby, it’s useful to handle the error scenario by raising another, different exception. As an example, we may want to add domain-specific failure information before passing the error on to client code. begin # … Continue reading
Unlike Clojure, as far as I know Elixir does not have a library of foundational higher-order functions such as like lift or complement. So I’ll have to build them myself. Before I do anything else, I need a helper function … Continue reading