by H. R. (Hugh Reginald) Haweis
en
~1 hours (64K characters)
Project Gutenberg
Public domain in the USA.