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’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
This is where FPOO starts to get interesting. I have to say I find the choice of the term “dataflow” confusing due to its other associations in programming. But this section introduces a style of working with data–first annotating it, … Continue reading
Continuing to translate the code from Brian Marick’s “Functional Programming for the Object Oriented Programmer” into Elixir. Continue reading
So far, my tiny object system in Elixir has been stowing all methods directly in instances. Chapter 5 of FPOO directs me to move instance methods out into a “class” of some kind. First off, there’s no more new_point. In … Continue reading
The title is the first line of Justin Searls’ latest blog post. It also happens to be true of me, albeit by a very thin margin. That is, it’s been two years (I think) since I spoke as the result … Continue reading
I’m going to be getting Confident Ruby hardcopies printed, and I need someone to wrangle the cover art according to the specifications of the printer. I already have art assets from the cover designer in Illustrator format. This job just … Continue reading
Today I slightly refine the nascent OO implementation in Elixir. Here’s the new point constructor, with methods contained within it: def new_point(x, y) do [ x: x, y: y, __class_symbol__: :point, __methods__: [ class: &get(&1, :__class_symbol__), shift: fn (this, xinc, … Continue reading