Surnames as a Science by Ferguson, Robert Surnames as a Science
 is a Project Gutenberg book, now on Github.