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: Hardware and Platform-Oriented

Apple II Reference Manual Apple I keep this ridiculously out of date volume because historical documents are sometimes useful. POKE 33,0 everyone. (I think the linked item is the correct one. My volume doesn't have any author information at all, so I cannot verify it that way.)
Macintosh C Programming Primer Mark I keep this out of date volume because historical documents are sometimes useful and because it does discuss event driven programming in a reasonably clear way.
Programming .NET 3.5 Liberty & Horovitz This is a small (though several hundred pages) introduction to a mammoth topic. Most notable are the discussions of the .NET framework's new interface language, XAML, and the new first class (in the sense of the foundations of programming languages, not quality) query language LINQ. Also discussed in addition to the new .NET features are some recommended design patterns. Realistically, one will need several books like this one to make the best use of the framework.
Programming the PowerPC Sydow Junk, really. Don't bother. (It is a very sketchy discussion of the first generation of Power Macs, and almost nothing else.)
Upgrading Visual Basic 6.0 Applications to Visual Basic .NET and Visual Basic 2005 Zoufaly (et al) This is a long (and slightly repetitive and padded) introduction to the subject suggested by the title. Marred by some typos and apparently not updated for Visual Basic 2008 this is nevertheless a useful reference around whether or not one uses the porting tool. Several chapters I suspect could be a (smaller) book in their own right with more details (such as the data access and file systems materials). The biggest weakness is dealing with upgrades which are too complex to involve the upgrade tool: these are hardly addressed at all except implicitly.
Windows Internals (5e) Russinovich, Solomon, Ionescu This is the book to understand how Windows (including Vista and Server 2008, but not 7 - which is slightly different) works inside. Everything from the boot process to memory management to the security model (which appears many different places, not just in NTFS) is discussed in much detail. I bought this tome as reference and have already used it to better understand security matters. One weakness, beyond the obvious size, is that many of the exercises use Microsoft's kernel debugger to illustrate the points at issue. I hope a future volume will explain more where a virtual machine will differ from a real one, especially at this low a level, since virtualization is increasingly important - and one can't just install a kernel debugger in a real machine in many organizations, to boot.