Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Paperback
Title: HTML for the World Wide Web with XHTML and CSS: Visual QuickStart Guide, Fifth Edition
Publisher: Peachpit Press
Authors: Elizabeth Castro
Rating: 2/5
Customer opinion - 2 stars out of 5
It's OK

I work in a web-page development company and we use this book all the time for a quick reference or to teach us what we don't know! What a great guide...the pictures show you how to do it and the clear concise instructions make web development simple! A must have!

Product: Book - Hardcover
Title: Testing Object-Oriented Systems: Models, Patterns, and Tools (The Addison-Wesley Object Technology Series)
Publisher: Addison-Wesley Professional
Authors: Robert V. Binder
Rating: 5/5
Customer opinion - 5 stars out of 5
A necessary book, but will the right people read it?

A book like this is intimidating. At close to 1000 pages it is no lightweight reading matter. However this book is an engineer's approach to the concept of testing object systems and it should be a standard reference for OO developers.
Object-oriented languages, while recognised as a clear forward step in programming technology, introduce new ways for defects to be introduced. Inheritance and polymorphism both are powerful concepts, but also carry the potential for insidious defects. This book introduces fundamental techniques to analyse the class design and derive appropriate tests for its behaviour. I regard Bob's book as a must for developers. However I wonder if they will read it. This is not a criticism on this book, quite the contrary. My concern is related to the insight that most programmers see unit testing as an afterthought and not as a major component of their work. Often unit testing is seen as difficult, because of the complexities of class behaviour. And it is so easy to pass this burden on to system testing.
My message for developers is, make the attempt to read it! It actually makes it easier to design and implement unit testing. It also pays off. You will have less requests for bugfixes coming back from testing. It has been long my contention that it is in the interest of the testing community to get out of its own trenches and start working closely with developers, making it easy for them to implement effective unit testing. This book is a good start in this direction.

Product: Book - Hardcover
Title: Routing TCP/IP, Volume II (CCIE Professional Development)
Publisher: Cisco Press
Authors: Jeff Doyle, Jennifer DeHaven Carroll
Rating: 5/5
Customer opinion - 5 stars out of 5
Simple, clear

This book covers BGP in almost 300 pages. Is it better than Halabi's bible? No, you just go faster into the subject as well as on NAT, IP Multicast, IP V6 and Router Management (SNMP, Syslog, NTP, Netflow...). Doyle is always clear and chooses good examples. I would recommend it as a first and solid read on the above subjects. Then continue with Halabi's Internet Routing Architectures and Williamson's Developing IP Multicast Networks. For IP V6, NAT and Network Management there are certainly other reference texts but I don't know them...

Product: Book - Paperback
Title: Programming Pearls (2nd Edition)
Publisher: Addison-Wesley Professional
Authors: Jon Bentley
Rating: 5/5
Customer opinion - 5 stars out of 5
A classic

The thirteen columns in this book appeared in the Communications of the ACM between 1983 and 1985. There can't be more than a couple of technical books on computing from that era that are still worth reading. Kernighan & Ritchie's book, "The C Programming Language", is one that springs to mind; this book is definitely another, and will probably outlast K&R as it has almost no ties to existing or past hardware or languages.
What Bentley does in each of these columns is take some part of the field of programming--something that every one of us will have run into at some point in our work--and dig underneath it to reveal the part of the problem that is permanent; that doesn't change from language to language. The first two parts cover problem definition, algorithms, data structures, program verification, and efficiency (performance, code tuning, space tuning); the third part applies the lessons to example pseudocode, looking at sorting, searching, heaps, and an example spellchecker.
Bentley writes clearly and enthusiastically, and the columns are a pleasure to read. But the reason so many people love this book is not for the style, it's for the substance--you can't read this book and not come away a better programmer. Inefficiency, clumsiness, inelegance and obscurity will offend you just a little more after you've read it.
It's hard to pick a favourite piece, but here's one nice example from the algorithm design column that shows how little the speed of your Pentium matters if you don't know what you're doing. Bentley presents a particular problem (the details don't matter) and multiple different ways to solve it, calculating the relationship between problem size and run time for each algorithm. He gives, among others, a cubic algorithm (run time equal to a constant, C, times the cube of the problem size, N--i.e. t ~ CN^3), and a linear algorithm with constant K (t ~ KN). He then implemented them both: the former in fine-tuned FORTRAN on a Cray-1 supercomputer; the latter in BASIC on a Radio Shack TRS-80. The constant factors were as different as they could be, but with increasing problem size the TRS-80 eventually has to catch up--and it does. He gives a table showing the results: for a problem size of 1000, the Cray takes three seconds to the TRS-80's 20 seconds; but for a problem size of 1,000,000, the TRS-80 takes five and a half hours, whereas the Cray would take 95 years.
The book is informative, entertaining, and will painlessly make you a better programmer. What more can you ask?