Raising Steam by Terry Pratchett
Raising Steam by Array