Notes from Metaprogramming Ruby, by Paolo Perrotta