a learning tutorial on http://ruby.railstutorial.org/