09.11.2016 Views

Foundations of Python Network Programming 978-1-4302-3004-5

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Acknowledgements<br />

This book owes its very existence to John Goerzen, whose work in writing the first edition <strong>of</strong> <strong>Foundations</strong><br />

<strong>of</strong> <strong>Python</strong> <strong>Network</strong> <strong>Programming</strong> indeed provided the foundation on which this volume has been built.<br />

The excellent example he set by supplying complete, working example programs has guided me at every<br />

step. Where his examples were not obsolete, I have worked to retain his source code so that it can benefit<br />

another generation <strong>of</strong> readers.<br />

The editorial team at Apress provided ample support during this experience—my first attempt at<br />

revising something the length <strong>of</strong> an entire book—and the quality <strong>of</strong> the result is in large part thanks to<br />

Laurin Becker’s gentle encouragement, Michael R. Bernstein’s very knowledgeable technical reviews,<br />

and Matt Wade’s holding the rudder to keep each chapter on course. Michael’s reviews, in particular,<br />

were a model <strong>of</strong> what an author needs: frequent encouragement when a chapter has gone well, tips and<br />

links to more information when coverage <strong>of</strong> a topic is sketchy, and frank dismay when part <strong>of</strong> a chapter<br />

has gone <strong>of</strong>f the rails. Several parts <strong>of</strong> this book that will please readers will do so because their first draft<br />

was not adequate, and Michael suggested the direction in which the chapter needed to move instead.<br />

And, <strong>of</strong> course, the copy editors and layout people all did much work as well, and I want to thank Mary<br />

Ann Fugate in particular for imposing her good taste about when to use “which” and when to use “that,”<br />

which (that?) has produced much smoother English.<br />

Every reader <strong>of</strong> this book should join me in thanking the <strong>Python</strong> core developers and the community<br />

that has grown up around <strong>Python</strong> for every single tool, routine, and function referenced in this book.<br />

And as John Goerzen did in the first edition’s acknowledgments, I want to express gratitude to the early<br />

generations <strong>of</strong> programmers like Richard Stallman, who demonstrated that programming could be an<br />

open, happy, and cooperative discipline that did not impose the physical world’s economics <strong>of</strong> scarcity<br />

onto the world <strong>of</strong> freely copied programs. To those who prefer more negative forms <strong>of</strong> protest, I <strong>of</strong>fer<br />

Joss Whedon’s mantra about creativity: “The greatest expression <strong>of</strong> rebellion is joy.”<br />

And, finally, I would like to thank my mother for letting me spend enough time in front <strong>of</strong> the computer<br />

when I was growing up, and my father for raising me in a house with shelves <strong>of</strong> books about Unix. He<br />

chose an AT&T 3B1 as our home computer. While other students in grade school were learning about the<br />

abysmal world <strong>of</strong> DOS, I was learning about awk, C, and multi-processing—background that prepared<br />

me to appreciate <strong>Python</strong>’s beauty the moment I saw it.<br />

Brandon Craig Rhodes<br />

Midtown Atlanta<br />

19 November 2010<br />

xvii

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!