Richard Hamming The Art of Doing Science and Engineering