My notes for ruby metaprogramming