Keith Douglas' Web Page

About me Find out who I am and what I do.
My resumé A copy of my resumé and other documentation about my education and work experience for employers and the curious.
Reviews, theses, articles, presentations A collection of papers from my work, categorized and annotated.
Current research projects What I am currently working on, including some non-research material.
Interesting people People professionally "connected" to me in some way.
Interesting organizations Organizations I am "connected" to. (Some rather loosely.)
Intellectual/professional influences Influences on my work, including an organization chart. Here you can also buy many good books on philosophy and other subjects via I have included brief reviews of hundreds of books.
Professional resources Research sources, associates programs, etc.
What is the philosophy of computing? A brief introduction to my primary professional interest.
My intellectual heroes A partial list of important people. Limited to the dead.
My educational philosophy As a sometime teacher I've developed one. Includes book resources.

Book Influences - Computing: Programming Practice

Beautiful Code: Leading Programmers Explain How They Think Oram and Wilson, eds. This book is a collection of essays about writing good software. Amongst the most astonishing are a Haskell program that handles concurrency via a typing mechanism, an audible interface to Emacs, and a discussion of the design of S. Hawking's specialized computer interface.
Code Complete: A Practical Handbook of Software Construction (2e) McConnell A massive yet in some ways introductory tome on all the topics related to construction of software from evaluating an architecture to the personal qualities needed for programming successfully. It is nice to see a Microsoft Press book that doesn't presuppose Windows, etc. too: the examples and discussion are generic enough that software developers on many platforms can profit from its well thought out (and in many cases, scientifically investigated) advice. A first step towards proper software engineering and away from craft. Despite its introductory character, its size makes it likely that even a very advanced programmer could merit from reading some of the sections.
Mastering Regular Expressions Friedl Like many O'Reilly books, this one is also top notch. This, like the name suggests, is an extended tutorial on those strange languages-of-pattern-matching. Freidl emphasizes the differences in "dialects" across Perl, .NET, Java, etc. and provides exercises to test the reader's understanding. Most notable are the extensive interbook references, which do not require flipping to an index to use.
XML By Example Marchal Dated and somewhat oversimplified, with a few typos. Not really worth reading, with the way XML has been expanded, used in more ways, has more concrete uses, etc. Might be interesting for history's sake and to have a very brief introduction to what XML is about - with the proviso that the details are picked up elsewhere. (I cannot find the first edition at, but the 2nd is only a year newer, so I suspect that much of what I say applies to it as well.)

XML from A to Z

Williamson Very brief reference to XML. (Aside: Is Redmond Technology Press owned by Microsoft?)