Code Kata solutions from http://codekata.pragprog.com/