some cost in workaround complexity in python unfortunatelyas we'll learn in the email package in python has number of issues related to str/bytes combinations in python for examplethere' no simple way to guess the encoding needed to convert mail bytes returned by the poplib module to the str expected by the email parser moreoverthe email package is currently broken altogether for some types of messagesand it has uneven or typespecific support for some others this situation appears to be temporary some of the issues encountered in this book are already scheduled to be repaired (in factone such fix in required last-minute patch to one of this book' workarounds in furthermorea new version of email is being developed to accommodate the unicode/bytes dichotomy more accuratelybut it won' materialize until long after this book is publishedand it might be backward-incompatible with the current package' apimuch like python itself because of thatthis book both codes workarounds and makes some assumption along the waybut please watch its website (described aheadfor required updates in future pythons one upside here is that the dilemmas posed neatly reflect those common in realistic programming--an underlying theme of this text these issues in the email package are also inherited by the cgi module for cgi file uploadswhich are in large measure broken in cgi scripts are basic technique eclipsed by many web frameworks todaybut they still serve as an entry-level way to learn web fundamentals and are still at the heart of many larger toolkits future fix seems likely for this flaw as wellbut we have to make do with nonbinary cgi file uploads for this edition in and and limited email attachments in pymailcgi this seems less than ideal nearly two years after ' releasebut such is life in the dynamic worlds of both software development at large and books that aim to lead the curve instead of following it using book examples because this book' examples form much of its contenti want to say few words about them up front where to look for examples and updates as beforeexamplesupdatescorrectionsand supplements for this book will be maintained at the author' websitewhich lives officially at the following urlthis page at my book support website will contain links to all supplemental information related to this version of the book because don' own that domain namethoughif xxxiv preface