Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Paperback
Title: Foundations of Python Network Programming (Foundations)
Publisher: Apress
Authors: John Goerzen
Rating: 5/5
Customer opinion - 5 stars out of 5
This is an Essential Python Book

For the time-crunched, in-need-of-a-quick-fix reader: This is an excellent, much-needed book. If you want to do network programming with Python or, for that matter, any scripting language (as many of the concepts here are basic, essential, and adaptable) buy this book and be happy. With clear code examples, concise text, and insightful attention to the needs of the target audience -- practical programmers in need of a quick intro -- John Goerzen dispenses with the dross and gives the reader a head-first survey of network programming.

The book's title hits the target audience but doesn't, however, precisely characterize the thrust of the text. "Foundations" implies a broad structure on which to build and this book certainly addresses network programming in a broad sweep. Yet the book had a feel more accurately described as "learning by example" than a "foundations" approach might traditionally imply. Basic concepts are given a cursory overview, but if you wish to get to the nitty gritty details of sockets, protocols or network services then look for that sort of foundation elsewhere. Here you will, instead, get a few terms covered in just a few pages and then you're presented with working examples of Python code.

By no means should this be construed as an overall weakness. This observation is only made in order to clarify Foundation's approach: quick and cut-to-the-chase. Chapters are short, averaging a little over 19 pages, and the overall feel is that of a "cookbook" with an emphasis on gentle explanation. If what you want is to get up and running, leaving small details for later if necessary, then you've come to the right place. But perhaps "Python Network Programming by Example", or "The Joy of Python Network Programming", would be more fitting.

The author, who has been a member of the Debian GNU/Linux development team since 1996 (the Unix/Linux bias shows slightly here, with some space devoted to to inetd and forking), does the learn-by-doing reader a great favor by providing copious working examples of readily grasped code which cover straightforward solutions to typical problems or situations with an emphasis -- a very nice emphasis -- on error-checking and recovery from the various hiccups of network programming. Nothing teaches like good code with astute attention paid to explaining key concepts and usual corner cases, and this is the case here.

The writing style is a little dry. That said, the prose is both clear and concise and does a good job of speedily presenting new, potentially tricky concepts, another notable strength. Chapters five, "Advanced Network Operations", and seven, "XML and XML-RPC", are both good examples.

The first five chapters, which form the first section, "Low-Level Networking", get the reader started with sockets, servers, and DNS. These are probably the only essential chapters of the book, especially if the reader is new to these topics, in that they reveal Python's general approach to networking within the standard library. After that the reader would do well to, more or less, hop around among the remaining chapters as needed. Part Two covers Web services, with some nice coverage of XHTML and XML parsing. Part Three addresses E-mail services: MIME, SMTP, POP, and IMAP. Part Four takes a general shot at FTP, database clients, and (a very brief) chapter on SSL. Part Five is on server-side frameworks, covering a three items, SocketServer, SimpleXMLRPCServer, and CGI, all which come as standard modules, along with an introduction to mod_python, which does not. Part Six is on multitasking, lending an overview of threading and forking, and asynchronous communication.

That's a lot. Some subjects, like SSL and async, can't be covered in a great deal of detail given the space provided, and if this is your first exposure to these topics, you'll be left wanting. But you will be effectively introduced.

The Twisted Framework (http://www.twistedmatrix.com) is discussed in Chapter 12, IMAP, which is nice, and is touched on again in the final chapter on async. It would have been nicer to see some more Twisted coverage, since Twisted is one of the most elegant and distinctly Pythonic approaches to networking, but there's material available on the Web and, again, this gets you pointed in the right direction.

The only final criticism that might be leveled about the book is that, at times, some of the approaches don't seem particularly "Pythonic". The database client chapter, for example, doesn't cover the common Python approach of operater overloading, such as overloading __getitem__ in order to wrap a SQL SELECT statement. In this and certain other parts of the book, if you are not new to some only moderately advanced concepts in Python, then the reader will be able to see where certain choices were made between the notions of "Foundations" (and how foundational to be) and "Python" (and just how pythonic to get).

Criticisms aside, this is a fine book, and a fine complement to Apress's rather excellent "Diving Into Python" by Mark Pilgrim. "Foundations" fills a fundamental need for this information to be aggregated into a cohesive resource, and the book's no-nonsense, effective approach should win over both new Python converts looking to implement their first network client or Web site, or experienced Pythonistas who desire quick information at their fingertips. I thoroughly enjoyed this book and I heartily recommend it.

Product: Book - Paperback
Title: HTML 4 for Dummies, Fourth Edition
Publisher: For Dummies
Authors: Ed Tittel, Natanya Pitts, Ed Tittel
Rating: 4/5
Customer opinion - 4 stars out of 5
a REFERENCE for the rest of us.

They really live up to that subtitle in this one. Chapter 6 is a reference. This is however what I needed, because I already had written some html code, but was unhappy with the code the tools were creating. Remember, YOU DO NOT NEED A BOOK TO LEARN HTML! However, a book can help you improve the your html code. If you do need a book to learn html, then your going to have much larger problems because html is the tip of the iceburg, it's what the user sees and uses to communicate with the CGI script running on the server. May all the gods help you if you need more hand holding then any HTML book would provide. You could print the reference from the web, but, that will not look as pretty on the shelf. I'm a programmer for FamilyHomeSearch.com, and use the book as a reference to make the generated html code from Microsoft Front Page 2000, more efficient.

Product: Book - Hardcover
Title: Programming Windows, Fifth Edition
Publisher: Microsoft Press
Authors: Charles Petzold
Rating: 4/5
Customer opinion - 4 stars out of 5
Almost perfect.

This book is definately one of a different crop.
It is not so intermediate that the simple beginner would cower before it, yet it is not so basic that it should be a beginner's first read.
This book essentially picks right up from a programmer who is comfortable with C (or C++, but the core is C based) and starts the process of introduction to the Win32 API. While gradual enough that those who prefer a slower pace can follow, it is quick enough to keep the attention of the more fluent programmers.
The good sides are the fact this text introduces the foundations in a very crisp and clear manner while maintaining the reasoning behind the structure. Each step consitantly builds upon the former.
The down side is the fact the latter half pushes more emphasis over the graphical side of the Win32 api, than it does the functionality of Win32.
Another point that would be appreciated in a 6th edition would be some kind of chart or quick reference index.

Product: Book - Paperback
Title: Thinking in Java (3rd Edition)
Publisher: Prentice Hall PTR
Authors: Bruce Eckel
Rating: 5/5
Customer opinion - 5 stars out of 5
Definitely Java classics,

So many technical authors get caught up in trying to show off their "smarts" that they just end up confusing their readers. You know the kind off books I'm talking about...where even after reading a paragraph over 3 or 4 times you still don't quite get it but you know it's important! How frustrating!
Not this guy. He's so laid back and clear that even a novice programmer like myself can grasp any topic he presents...on the first pass! Teaching is not about spouting off it's about transferring useful knowledge. Bruce knows how to transfer knowledge.
I highly recommend ANY of Bruce Eckel's books.