Product: Book - Hardcover
Title: On Intelligence
Publisher: Times Books
Authors: Jeff Hawkins, Sandra Blakeslee
This book is thought provoking. First, let me qualify myself, that I am not a neuroscientist but an engineer and an experienced programmer. Like Jeff Hawkins, I share in his belief that intelligent machines can be built. However, this is only a cursory interest of mine.
As a non-medical person, I learned a lot about the neocortex from this book. As a programmer, I found great insights about the importance of stories in our thinking, as opposed to traditional computer operations. One of the main goals of his efforts is to find a "neocortical algorithm". The book is purported to set a scientific framework to find this algorithm.
I am not convinced of the wisdom of this effort, except that it may allow us to understand human behavior better. There are definitely ethical questions raised if we create such machines: Will people become dumber as they rely on smart machines? Will mankind invent an evolutionary successor who may become our master? Will people be placed out of work? Movies like "The Time Machine", "A.I." and "I Robot" come to my mind. Science fiction writers will find a wealth of juicy information they can use.
Apart from those fears, the intellectual challenges are exciting. Many of us are consumed by a desire to understand how the human mind works, in clear logical terms. Mr. Hawkins contributes unique insights based on his experience as a computer designer. I found many of his viewpoints be somewhat like reading about electrical circuits - which is not to say that this is bad thing. He brings an engineering approach to the understanding of this problem which I can appreciate.
Personally, I believe a more realistic approach would be to create "conscious machines" rather that merely "intelligent machines". This may sound more difficult, but I think you can't separate the two experiences. One can even argue that "intelligence" is merely a subjective attribute of consciousness. A "conscious machine" would have senses and observe it's own behavior - internally saying, "I am doing this now" (writing its stories), categorizing it's stories, and making analogies between stories (predicting). There is a time element involved in the "experience of experience", that I think the book seems to overlook.
The challenge to create a machine like this is a race, akin to the race to invent the first flying machines. In the race to build flying machines, some inventors built contraptions that looked like birds and bats. Studying neurons may shed light on the logic of conscious systems, but building "neuron machines" may not be the way to go. My own bet is on taking a new approach to AI, integrating video game programming methods.
Overall, there are many interesting ideas in this book.
Product: Book - Hardcover
Title: Agile Software Development, Principles, Patterns, and Practices
Publisher: Prentice Hall
Authors: Robert C. Martin
I bought this book after attending a conference and meeting Uncle Bob himself. If you ever have the chance to see Bob in living color (and remember to ask him why we see the colors we do) don't pass it up. In order to get the most out of this book you need to be open to his philosophy and have some experience. I say this, because I feel it's only after you can say to yourself "I know exactly what you're talking about", or in my case, "Geez, I'm guilty of that", that you understand the principles Bob is trying to get across and the applicability, or lack there-of, of patterns.
Bob does an excellent job of setting up the material and then showing an example (a believable one at that) of how to apply the concepts. For example, he will introduce a set of patterns and then provide a case study that applies those patterns. This book is not only useful for those new to the material, but the format is also very good to be used as a reference.
While his explanation of the different patterns is very good, I believe it's his principles and test-driven-development philosophy that are the real gems in this book. These are principles and practices that every developer should be familiar with. In fact, this is a great approach for junior developers so they can become disciplined. In a world where everyone seems to be an "Architect", I'm amazed at how many don't convey and don't practice similiar thoughts. If you can't open yourself up to the "model your idea up on a white-board, erase, code test case, code logic" mentality, then it will be very difficult to see the intuitiveness of Bob's writing. Bob has provided a job-aid to all of us and we'd be in a lot better shape as software professionals if we followed just a few of these principles.
Product: Book - Paperback
Title: Programming & Customizing PICmicro Microcontrollers
Publisher: McGraw-Hill/TAB Electronics
Authors: Myke Predko
Myke offers a great deal in this volume. For anyone who wants to make the quantum leap from the "Easy Pic'N" type books to a much deeper text, this is the text to use.
He has gone out of his way to ensure success for people who put together the El Cheapo programmer based on the printed circuit board included with the text. The material on the CD will take any reader through the process to a successful conclusion.
Having said that, I have to agree with other reviewers, that the proof reading of this text leaves much to be desired. Typos abound, and inconsistencies are common. For example, the El Cheapo schematic on page 601 shows resistors R3 and R4 to be 1K ohm units. But on the following page, 602, the parts list incorrectly shows them to be 1 ohm units.
In numerous areas, the text is repeated. A paragraph or section of a paragraph will be repeated word for word a page or two later.
Chapter 3 covers Processor Architecture. This material should be reviewed and rewritten in a more readable style.
In spite of my reservations, I still think very highly of the text. Myke has put together a great deal of material. For the serious student, this is a good place to spend your money. Just expect your study to include careful review to ensure inconsistencies have been sorted out, at least in your own mind.
Product: Book - Paperback
Title: Swing, Second Edition
Publisher: Manning Publications
Authors: Matthew Robinson, Pavel Vorobiev
I found this book the best for intermediate to seasoned Swing developer. Excellent coverage on some Swing topics not covered in sufficient depth elsewhere - such as tables, trees and GridBagLayout. The book is considered a classic in Java Swing developers community and is highly recommended to anyone with some basic Swing understanding who wants to know it real well and use it. The code examples are quite practical, I used the concepts from the book several times in my projects.