Undocumented Windows 2000 Secrets
I’ve had this one for a long time. When I got it I was looking for more information on windows internals and either I hadn’t run into the Microsoft press volumes or they hadn’t started publishing them yet. I haven’t used it for anything in a while, but I keep it on my shelf as it has lots of out of the way information that can occasionally be relevant.
Practical Unix Programming
This volume covers a bunch of less trivial Unix/Linux topics in decent detail. It hits pthreads, thread and process synchronization and various IPC options in enough detail to be useful. It hasn’t been used all that recently as I’ve been mostly working in a windows environment (with a bit of messing around in Android and web stuff).
Programming with Threads
This is a more focused discussion of pthreads in a Unix or Linux environment.
These days I try to stick with platform agnostic threads if I can (and with C++ 2011 I can in C++ now). Knowing the pthreads layer is nice, but no longer as critical as it once was.
I was very happy with the Effective C++ volumes and as I wind up writing bits of Java code now and again I picked up this book to see what it had to say. I don’t think it provides as deep a perspective on best practices as the C++ books and at this point the first edition is pretty dated as it was written before generics were added to Java. I have the newer, second edition of this book.
Ajax – The Definitive Guide
Pro C# with .NET 3.0
This book is still a pretty good overview of the C#/.NET world from what I can see. It covers a broad range of topics without diving too deeply anywhere.
A good walk through the world of STL pointing out how to make things work and what can skin you alive. I’m not sure how well this applies to the latest ANSI C++ release as I suspect that some of the new language features may address rough edges in STL that weren’t fixable with the first ANSI C++ language. At some point I’ll see if there is a newer edition or re-read this to see what may have changed. No time right now though
Data Compression, Second Edition
I picked this volume up because I’ve had reason to implement data compression in embedded environments in the past and the books that I had around from that time were getting dated. I’ve browsed through this volume and it looks pretty good, but haven’t had a need since I purchased it to dig into the level of detail that it contains. It looks as if there is a fifth edition of this book on Amazon.
This book is old and dated, but it still contains much information about the internals of MFC (which in many areas don’t seem to have changed that much) that isn’t available anywhere else. It can be informative when understanding how things work and very useful when chasing a subtle problem that arises from the lower level implementation of the code.
Debugging Applications for .NET and Windows
This older volume on debugging windows applications is very helpful when finding your way around kernel dumps or crash dump post-mortems. It contains extensive information about the various native mode debuggers available for windows development that is absent from newer books.
Advanced Compiler Design and Implementation
I read the dragon book a long time ago (Aho, Sethi and Ullman) and picked this book up because it promised to describe the details of implementing more capable compiler designs than that volume discussed. It was an interesting read. Not much that I’ve had a practical use for, but a nice view into the details of optimizing compilers and such.
Designing Active Server Pages
I’ve on occasion found that a simple scripted ASP page can be a quick and easy solution to limited remote access to resources for some part of the team. This volume provides enough detail so spin together something serviceable in a relatively short amount of time without delving in the far more complex implementation and deployment process required for ASP.NET components.
Pro WPF in C# 2010
For a time it looked as if WPF was going to be the one and only UI technology on windows going forwards. I picked up the book to get a handle on the technology and to get to the point where I could use it reasonably well where it seemed indicated. Since that time it appears that Microsoft is taking some odd side-steps from the technology and still hasn’t filled in all of the gaps in its support for the underlying platform. It still looks like a potentially interesting solution for some sorts of problems, but I’m no longer as certain that this is the way the future looks.
XNA 3.0 Game Programming Recipes
I’ve long had a passing interest in video games programming and 3D APIs. The XNA libraries looked like a great way to play with that sort of thing without diving off the deep end into either Direct3D or OpenGL. This was an interesting read and exposed me to some interesting approaches to building a game programming framework. It appears that Microsoft has effectively killed XNA now though and support under windows 8 is either absent or limited. Lately it appears that Microsoft has been pitching Unity for some sorts of cross platform game development. I’ve been too busy lately to delve too deeply though.
Understanding WMI Scripting
WMI is the technology that is used to expose much of the OS level functionality in windows to programmatic manipulation. It has a very similar feel to SNMP (on the network side) and has a similar feeling object model. I’ve so far not needed to manipulate or create WMI components, but a number of times have come close (particularly as some of the older APIs for such access become fully deprecated). This and its companion volume are handy things to keep around.
Windows NT/2000 Native API Reference
This volume covers a pretty broad range of kernel and user mode native API calls. It is a bit dated at this point, but can be useful now and again.
Tcl and Tk Toolkit
Tcl is not my favorite scripting language, but it has turned up occasionally at previous places I’ve worked. It is a simple and quick way to put together a simple user interface that is easy to make changes to on the fly. There is a newer edition of this book.
Applied Cryptography, Second Edition
My original cryptography tutorial and reference. This book covers the basics of cryptography right down to the bare metal. It is a little dated as it hasn’t been updated in a long time, but many of the algorithms it covers are still in use (though sometimes less secure than one might prefer) and in any case they are the basis from which the latest algorithms were created.
The Principles of Beautiful Web Design
For some time I’ve been using HTML and HTTP for various things. I’m still not a particularly good web designer, but I’m working on it. It is certainly one of the most important ways of implementing interfaces and conveying information in the modern day world. There is a third edition of this book out there now.
Writing Systems of the World
A useful overview for the curious and those involved in internationalization of software.
My first blog was built using Joomla. It turns out that it doesn’t feel like it has the power or flexibility of Drupal and it lacks the ease of use and speed of deployment of WordPress. I’ve since moved most of my blogging to multiple WordPress instances and I’m still looking into Drupal for more complex things. Joomla was an interesting thing to play with, but I probably won’t go back to using it. There is a second edition of the book out there.
Illustrated Guide to HTTP
This was one of the first (probably the first after the RFC itself) book on HTTP that I bought. It is a bit spotty in places, but it covers most of the important ground. I would go with either the raw RFCs or the definitive guide before I’d buy this book.
HTTP The Definitive Guide
This is a much better and more complete book on HTTP. My copy is getting a bit ragged, but still holding together. I’m of the opinion that HTTP is the appropriate transport for most networked remote control (though possibly in the form of HTTPS with TLS in the mix). Unless you need datagram service or have unusual sorts of performance requirements it provides a standard, proxy friendly, reasonably performant transport for a just about any information. XML is the most obvious payload, but HTTP is happy to carry binary data of other text serializations (JSON?) too.
ActiveX Controls Inside Out
This is the ActiveX book. It has been out of print for some time but it still is worth searching out if you need to work with the technology. Like most of COM, ActiveX had a great deal of promise, but never quite got the technology in place to smooth out the rough spots. I’ve used controls to good effect in past projects, but I’d likely be cautious about implementing them again in new development.
Leveraging WMI Scripting
This is the other half of the WMI book pair.
WMI is the mechanism (at least has been) for getting programmatic access to system level information and control. It is COM based and thus available from just about any language on windows that isn’t java.