Wednesday, July 18, 2007


Message To Aunt Hillary - Bang The Rocks Together

I finally downloaded a manual of instruction for PC assembly language. I've set myself the task of understanding how the gates and stuff on the circuit boards inside this very PC relate back to the actual pixels on the screen with all points in between followed. I know that this mapping seems overly complicated and I am not sure that many people in the world can actually say they know exactly the paths involved but I was inspired by the seemingly universe-sized complexity of the mapping between the DNA molecule and our own bodies - Genotype to Phenotype as Richard Dawkins and Douglas Hofstadter would put it.

Hofstadter has actually mentioned that computers do have some fuzziness involved and this was in a book written nearly thirty years ago. Imagine the degree of fuzziness that is now involved and how we still expect the machines to get it right. I suppose they do but the scope for unexpected results is now a lot higher than it once was. The secret is to beat the involved systems into submission by making sure that your programs and hardware conform to rigid definitions.

GEB discusses "Chunking", originally using to describe how chess masters see the board in play in chunks of organisation rather than by looking ahead any significant number of moves. This is why up until recently that human players could quite easily beat computers that looked ahead to the end of the universe. This chunking happens when programming as well and I can see myself doing it, realising how to fix an issue without having to follow through every possible route. It often happens that a fault and it's resolution actually cancel out or result in a much more elegant way of doing things. Even just using the word "elegant" in relation to programs may seem odd but elegance is almost like Nirvana - a sense that something will handle most of what can get thrown at it without having to consider all the tiny little possible routes through the system one by one. The big example from history is the resulting elegance of the proper way we describe the solar system. The deferents and epicycles of Ptolemy are like the myriad Boolean variables you might put in a piece of spaghetti programming to catch all the possible situations when in actual fact a look at the bigger picture removes the need for all these. This is why they call me "Mr Rewrite". Thank goodness they don't call me elegance.

Personally I have just been involved in something which did involve lots of deferents and epicycles - sometimes you just have to accept the compromise. You can't have everything.

No comments: