THANKS TO MY WIFE, REBECCA, for working with me to get this book completed. I really don't know what I would have done without her help in researching and compiling some of the information that appears in this book. She also did a fine job of proofreading my rough draft and page-proofing the result. Rebecca also keeps the house running while I'm buried in work.
Russ Mullen deserves thanks for his technical edit of this book. He greatly added to the accuracy and depth of the material you see here, especially of some of the more difficult source code. Russ is always providing me with great URLs for new products and ideas. However, it's the testing Russ does that helps most. He's the sanity check for my work. Russ also has different computer equipment from mine, so he's able to point out flaws that I might not otherwise notice.
Matt Wagner, my agent, deserves credit for helping me get the contract in the first place and taking care of all the details that most authors don't really consider. I always appreciate his assistance. It's good to know that someone wants to help.
A number of people read all or part of this book to help me refine the approach, test the coding examples, and generally provide input that all readers wish they could have. These unpaid volunteers helped in ways too numerous to mention here. I especially appreciate the efforts of Eva Beattie and Osvaldo Téllez Almirall, who provided general input, read the entire book, and selflessly devoted themselves ...