“Fiddling with a program until it appears to work is a reliable way of obtaining a program that almost works” — Andrew Koenig Programming Copy Share Image