http://software-carpentry.org/blog/2014/01/code-review-round-2.html