Tuesdays are my book browsing days at the Palo Alto branch of Borders.
There's no knowing what will grab my attention when I enter the bookstore.
By the time I've left, some 40 to 90 minutes later, I'm usually satisfied with what I've seen.
Last time, it was a quick look at The Philosophy of Schopenhauer by Bryan Magee.
This time, I was more "technical" in my pickings, but only after a run-in with a non-fiction as soon as I entered the bookstore.
It's amazing how refreshing one hour of random book reading can be to the mind.
Let me talk about the technical ones first, and then I'll turn to the "non-fiction".
I ran to two books from our friends up in Redmond that looked really good. One, which I'd seen before but whose beautiful simplicity I had completely missed (Code: The Hidden Language of Computer Hardware and Software by Charles Petzold) and the other, a more recent book (Find a Bug: A Book of Incorrect Programs by Adam Barr).
I'd browsed Code many years earlier but was too embroiled in the actual writing of code (in Java) to sit back, relax and enjoy its simple reminders. It certainly didn't seem to have much to teach then, and probably has little now, but no one can deny the almost mundanely pedagogical but straight presentation that touches on everything that matters and is important in the essential foundation of digital computing.
The next book, Find a Bug, which I'd like to browse in more detail, seems to be hitting on a bull's-eye. How many bug books, "effective" books, and programming languages and styles books have I seen which say nothing about the importance of the concept of variables? Too many in my life to bother recording in memory. How could so many books miss such a supremely important notion in all programming languages? It escapes me, but it has not escaped this book. When I first came to Sun, I had to pore over the RMI-IIOP code (just dropped after some work by IBM, according to an agreement in the early days of Java) and debug the mammoth. But without my training in logic and model theory, I'm not sure I could have ever gotten the job done. In logic, the first principles are the concepts of bound and free variables. (See Quine's book for example.) Without these concepts, how can any one understand any program? And there is plenty of evidence that many don't. Once cast in those terms, i.e. bound and free variables, the writing and reading of programs, particularly object oriented or functional ones, become not only easier but more natural. Find a Bug seems to have understood this issue although I need to read more of it to confirm its usefulness to my full satisfication. Moreover, Find a Bug touches on a breadth of programming languages, not everything but at least a good picking.
I'm sure we already have the top two books in the Sun Library, and I'll certainly be checking them out for my evening reading.
Now, to the third which is a short sweet one from Oxford as part of their "Very Short Introductions" series: Cryptography: A Very Short Introduction by Fred Piper and Sean Murphy. I liked this book simply because it can be held in the hand in various reclining positions, unlike the much more complete but also much more verbose and thicker Applied Cryptography by Bruce Schneier, which I've had for some time but have never had the time to even take out for a good browse, not to mention the fact that the book is impossible to hold while lying down. (Why do publishers create such books?) In Schneier, only the most concentrated reader can claim to avoid missing the forest for the trees. It seems to me that Piper and Murphy's little book brings all the most important details as headlights to explore the forest.
Last but not least, I should mention the first book that grabbed my attention in the "New Non-Fiction" category as I stepped to the center of the book store: The Persian Puzzle: The Conflict between Iran and America by Kenneth Pollack. First, the choice of name is not original at all. Lord Corzun of the British Empire, and the governer of India, titled his 1892 book on Persia (based on his colonial tutelage in India) Persia and The Persian Question. I guess what was a question for one empire has turned into a puzzle for the next. At the outset, what Pollack misses in his [ Persian Empire Superiority Complex | Shiite State | 19th-20th Century Inferiority Complex ] analysis of Iran is that the Persians, through the history of their ancient empire, their embrace of Shiite Islam and their experience with modern Europe, have come to believe in a sense of justice that is very refined, unique and almost revolutionary in its conception, a conception that still demands a more comprehensive analysis and which is the real source of Pollack's puzzlement. As I quickly read the last chapter of his book ("Towards a new Iran policy") I could not help think that it was a compilation of a number of opinion pieces that the author might have written earlier. Unfortunately, these opinion pieces have little punch, and that last chapter should have been a book of its own, with a full analysis of the colorfully pale differences in the pervailing opinions about the topic of the chapter. While it makes some correct observations regarding the futility of many U.S. dreams regarding Iran, it sheds no real light on how the U.S. must proceed to adjust its policies towards Iran. So, it looks like Pollack may have missed a real opportunity in building the book to its climax. Nevertheless, the book does have an interesting cover graphics, designed by Victoria Wong. Someone was not asleep in design school. Well-done Victoria!