I got a good chunk of reading yesterday because I went on the shortest ride of my life. It was about 60 degrees yesterday in Boston, perfect riding weather. I drove to Blue Hills, my favorite place to ride, had Blink on the CD player, and was all strapped in… bunny-hopped onto the trail-head and got a pinch flat when my back tire hit the curb. I didn’t have any extra tubes because I gave my last one to a guy who had a flat on my last ride at Blue Hills. Then I stepped in poo walking my bike back to the car. Sheesh…
So anyways.. I’m currently reading “Gödel, Escher, Bach: An Eternal Golden Braid” by Douglas Hofstadter. This book is over 700 pages and is described by one guy on the back of the book as “…an entire humanistic education..” so a) I’m not even going to try and give a description of what it’s about and b) I’m going to blog it as I go, rather than blog it after completing the book.
On Kurt Gödel’s discovery of the Epimenides paradox: “Epimenides was a Cretan who made one immortal statement: ‘All Cretans are liars.’ A sharper version of the statement is simply ‘I am lying’; or, ‘This statement is false’. It is that last version which I usually mean when I speak of the Epimenides paradox. It is a statement which rudely violates the usually assumed dichotomy of statements into true and false, because if you tentatively think it is true, then it immediately backfires on you and makes you think it is false. But once you’ve decided it is false, a similar backfiring returns you to the idea that it must be true…. The Epimenides paradox is a one-step Strange Loop, like Escher’s Print Gallery. But how does it have to do with mathematics? That is what Gödel discovered. His idea was to use mathematical reasoning in exploring mathematical reasoning itself. This notion of making mathematics ‘introspective‘ proved to be enormously powerful, and perhaps its richest implication was the one Gödel found: Gödel’s Incompleteness Theorem.” (pg 17)
— It’s interesting to see that introspection (in software development) probably has its roots in this mathematical introspection that Gödel introduced above…. what was the first language that used introspection?
On intelligent behavior: “No one knows where the borderline between non-intelligent behavior and intelligent behavior lies; in fact, to suggest that a sharp borderline exists is probably silly. But essential abilities for intelligence are certainly:
— to respond to situations very flexibly;
— to take advantage of fortuitous circumstances;
— to make sense out of ambiguous or contradictory messages;
— to recognize the relative importance of different elements of a situation;
— to find similarities between situations despite differences which may separate them;
— to draw distinctions between situations despite similarities which may link them;
— to synthesize new concepts by taking old concepts and putting them together in new ways;
— to come up with ideas which are novel.” (pg 26)
— Makes these ‘intelligent agents‘ not seem so smart doesn’t it? Next time you see a claim that this or that software is intelligent, apply the above tests to see if it passes. I’d love to know about software that does…
On being inside and outside a ‘System’: “… Now let me be very explicit about what I meant by saying this shows a difference between people and machines. I meant that it is possible to program a machine to do a routine task in such a way that the machine will never notice even the most obvious facts about what it is doing; but it is inherent in human consciousness to notice some facts about the things one is doing. But you knew this all along. If you punch ‘1’ into an adding machine, and then add 1 to it, and then add 1 again, and again, and again, and continue doing so for hours and hours, the machine will never learn to anticipate you, and do it itself, although any person would pick up the repetitive behavior very quickly. Or, to take a silly example, a car will never pick up the idea, no matter how much or how well it is driven, that is supposed to avoid other cars and obstacles on the road; and it will never learn even the most frequently traveled routes of its owner…. The difference, then, is that it is possible for a machine to act un-observably; it is impossible for a human to act unobservant.” (pg 36-37)
— The newest versions of Windows *are* in fact observant… the “Programs” menu ‘learns’ what programs you use most frequently and shows only those programs. How else could software applications become ‘observant’? Might your Palm handheld ‘notice’ that it gets synced every night before you go to bed and ‘suggest’ to you that it schedule itself to sync at 9pm? Wouldn’t it be nice if your cell phone saw that you called take-out twice in the last week and suggest that you add that phone number to your list of contacts?
On jumping out of systems: “It is an inherent property of intelligence that it can jump out of the task which it is performing, and survey what it has done; it is always looking for, and often finding, patterns.” (pg 37)
— Substitute the word ‘intelligence’ for ‘software developer’ or ‘business manager’. Revealing isn’t it?
That was some heavy duty stuff, but the point of “observant” software is well taken. It’s easy for me to say that some of the most impressive software I’ve seen is software that reacts to my behaviors.
Tivo, for instance, does this well with it’s recording of shows it thinks you might like based on the metadata of shows you’ve recorded. Browsers are doing this more with auto complete features for typing URLs and form data. I love the Windows 2000 start menu for only showing me things I use often. It was one of my biggest peeves with Windows XP in that it only showed x amount of most recently used programs, or, the entire list of programs.
Your reading of strange and obscure stuff, along with the post, has inspired me to write more observant software. It’s almost intrinsic to web design already, as you’re always predicting the behavior of web users, but to have the idea of always writing in predictivness and observant features is a good idea.
Glad it inspired you Mike! I was reading a book review last night on Amazon that said something like “… there are ‘professional books, books that you buy that help you immediately in your day to day work and then there are ‘spiritual’ books, books that help you stand at 30,000 feet and look at your work with in a new light… I’m pretty sure that “Gödel, Escher, Bach: An Eternal Golden Braid” is a spiritual book.