Acknowledgments

Writing a book started out fun, but it soon became far more work than I imagined. My wife, Irina, and my children, Naomi, Rebecca and Menna were very patient with me when I locked myself in the study day after day, night after night. But my children have asked me never to write a book again. For now I'm inclined to agree, but we'll see.

Phil Thompson wrote the software that this book is all about — and has fixed bugs faster than I could write chapters. Cameron Laird is responsible for egging me on to start writing, and Shawn Gordon for introducing me to Joshua Drake, who dared to take the book on. Michael Holloway, the editor, has fixed lots of bad English and made this book a better book.

Neelakantan Krishmaswami is ultimately responsible for getting me to look at Python at all — everyone needs someone else to help him over the indentation-is-block-marking hurdle, and Neel helped me.

Jim Bublitz and Wilken Boie have contributed largely to Appendix C — Jim by writing the introduction, and Wilken by writing the overview of directives. Gerard Vermeulen wrote Appendix B. I've been editing their texts, though, so any mistakes are mine. Cameron Laird gave persmission to use the graphics of a remote control for Chapter 22. Bruce Sass took the time to explain about Debian packaging. Steve Purcell helped with the chapter on unit-testing.

The following people have helped me learn about Python, Qt and the combination in the past years, on the PyKDE mailing list (set up by Torsten Horstmann) and the Python newsgroups: Aditya Bhambri, Albert Wagner, Anshul Shekhon, Arun Sharma, Corrin Lakeland, David C. Morrill, David Eller, Deirdre Saoirse, Dirk Reisnauer, Henning Schroeder, Johannes Sixt, Jonathan Perez, Karan Vasudeva, Maik Roeder, Marco Bubke, Martin P. Holland, Neal Becker, Pete Ware, Peter Torstensen, Reiner Wichert, Richard Jones, Steve Noble, Toby Sargeant and Gerrit Sere.

Finally, many people have read the drafts and helped me write a better book by sending me their comments - sometimes very long and detailed: Andre Gosselin, Andy Anderson, Brent Burley, Christopher Farly, Damon Lynch, Dave Turner, Dincer Aydin, Mark Summerfield, Robert Hicks, Sean Ahern and Yigal Duppen.