20131228

Did God create my watch?

Probably everyone knows about the watchmaker analogy. Having been brought up by fairly conservative evangelical parents and in a very conservative evangelical church I can remember preachers who would dig this one out in the "gospel service". I must say it didn't do much for me - the conclusion that surely God must have created the world did not seem to me to follow necessarily. And whether I or anyone else thinks it does or does not will not change whether it actually happened or not.  And those who think not will of course dis those that uphold the argument as proof of a divine creator.

José Cordeiro
José Cordeiro

And so my ears perked up when I read an interview with José Luis Cordeiro in E&T this afternoon whilst taking a bath (as one does). This man claims all manner of futuristic stuff including a prediction that 2045 will be the year of the singularity when "we will reach hardware and software immortality". You will have to read the article to have any chance of decoding the jargon.  He appears to be the David Ike of technology.

Anyway the bit that made my ears perk was regarding us humans creating brain upgrades and doing a better job (and here I quote) "Remember, our brains are the product of random evolution and we are creating things by design". Notice the complete reversal of the "watchmaker analogy". And because the preacher's analogy left me cold I regret to say that José's reversed version does likewise. But it makes interesting bath-time reading none the less.

Slow TV

Bruckner was infatuated with Wagner's operatic music although it is thought that he would neither have understood nor cared about the plot. I feel similarly with computer games: I am drawn towards the adventure type but always want to explore places that the computer reckons are out of bounds, and I care not about the point of the game which appears to usually be to kill the opponent. Or with movies like the Lord of the Rings where the scenery is so magnificent that I just want to look around and the plot gets in the way.

So I was interested to hear about Slow TV where films have actually been made about, for example, a train journey in its entirety - with no plot other than the fact that it is a train journey and, joy of joys, the camera is in the driver's cab!  Here is a preview of NRK's seven hour offering:


I love it...  Not sure about watching the whole seven hours though...

20131226

F8 bug or how I hate I2C bus

I have been revisiting assembler code I wrote maybe 10 years ago because of a software bug.  The device announces the problem by displaying a message "ERROR CODE F8" which, being translated into the vernacular, means that when my Microchip 8-bit microprocessor accesses external serial EEPROM via I2C bus the bus gets into a can't-get-out-of-it situation. That the serial memory devices should suffer such ignominy is my case against I2C.  SPI bus is simpler and is my preferred choice.

It turned out I was trying to access a memory address that did not exist and, after many days of searching, it turned out that this was because I had initialised said memory (pointers and wotnot) after my first attempt to access it. The solution - move the call to the initialise code back before the first access. Simple - once I had identified the problem.

It took me so long to identify because I had very poor debug tools.  I had very poor debug tools because I hadn't previously made any those 10 years back when my teeth were shorter, and in this recent spate of work I thought I could do it without the necessary tools. This morning I decided that was bad thinking. I made a terminal routine that would dump salient registers to a display screen and hey presto I was able to locate the bug. The most helpful part of my debug tool was the display of stack pointer and return addresses on the stack from which I was able to figure what part of the code caused the error display.

Which adds weight against the inference in the absurd proverb "a bad workman blames his tools". It should read something more like "a bad workman has bad tools".

A similar principle applies when routing cables through or driving screws or hammering nails in awkward positions. If you cannot see what you are doing, chances are you will mess up: the screw will drop into a void, you will instead hit the nail on your finger, or the cable being poked will just refuse to exit where you want. But once you can see what you are up against it is oh so much easier!  For this reason I keep a stock of small flash-lights and mirrors.

There could be a moral here somewhere...

20131225

Christmas morning

My Christmas morning walk to the lake, shod, with Meg, having figured my back would not let me run...

Frosty fields

Lake shore

Curious tree roots

View towards Kings River

That's Meg out there

Valleymount bridge

Reflections

An unusual angle on HH

Meg

The bridge again

Winter branches


20131222

Of human bondage


Somerset Maugham

I have just finished reading the book "Of human bondage" by Somerset Maugham.  It is generally agreed to be his masterpiece. The Guardian and Penguin expose some of Maugham's life story behind this partly-autobiographical work and paint a pathetic picture of a weak man without hope. And yet in so many ways I identify with his pseudonym Philip Carey in the book. I too am weak and hopelessly affected by what I think other people think. The book underlines human frailty and its dependence on fate even if, for the sake of the reader, Philip is left in a positive state as the book closes. We are left thinking that, for all his manifold failings, Philips is a good man.

Maugham's lack of foundation stands in stark contrast to "Jesus, knowing that the Father had given all things into his hands, and that he had come from God and was going back to God...John 13:3-5. The author and Philip, early on, express pride in freeing themselves from religious bondage, but seem to miss the point of true religion.

I come away from book book with a mixture of identity, sadness but a kind of "new year's resolution" to be different.

Incidentally the fact that I have enjoyed this somewhat long and stodgy book supports my theory that books and films and music (indeed art generally) that appeal to me are those which I can identify with in some way. The joy of sharing the appreciation of a landscape, a face, a musical transition or melody, a character trait - of the discovery that someone else in the world thinks or has experienced just a tinsy bit like I have.

20131220

Bloatware

Wikipedia has "Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory or processing power, or have higher hardware requirements than the previous version whilst making only dubious user-perceptible improvements." My definition is broader in that it includes unnecessary complexity in the user interface.

We have a new microwave. A domestic microwave is essentially either 'off' or 'on' for a period of time. Granted there is also the sometimes used complexity of pulsing on and off for defrosting.  So why the bloated user interface with its need to press multiple buttons to do the most common function when one would do?

Lewis acknowledges the malady with " 'If that's all they mean, why do they wrap it up in so strange a fashion?'. 'Doubtless,' said Arnom (and I could tell that he was yawning inside the mask, being worn out with his vigil), 'doubtless to hide it from the vulgar.' "

Way longer ago Occam acknowledged it with his famous "lex parsimoniae" principle of parsimony, economy, and succinctness.

Conversely I belong to a church where a sermon is not worth much unless it is at least an hour long, never mind the content. I was asked to comment on one recently - the man had a good point, I noted, but he could just as well have said it in a sentence and then sat down.

The most common negative criticism I have heard concerning Peter Jackson's The Desolation of Smaug is that there is too much padding, too little plot - it is bloated.

Whilst the principle applies across the board it is perhaps most noticeable in software. I was watching a 4-year old playing a educational "game" - the user interface was so ridiculously convoluted doubtless intentional to prepare for later life.

The programming language 'C' claims to be as efficient, as close to the computer's native assembler language, as they come. And yet it is bristling with unnecessary paraphernalia.  And how about the 'C18' construct:

unsigned char n = 7;       //8-bit
unsigned short integer r;  //16-bit
r += n * 200;

The compiler has to translate this to assembler. In assembler the basic multiply instruction takes two 8-bit values and generates a 16-bit value, as one would expect. The 'C' statement starts with a 16-bit variable 'r' so one would expect the arithmetic to be carried out to at least 16-bit precision but, no, although the compiler has to use the 16-bit result assembler multiply instruction, because 'n' is 8-bit the compiler chooses to trash the upper 8-bits and gives the answer r = 120.  Without so much as a warning message.

'C' also promises tight code, but fails to deliver. True, it does make programming easier, faster and less prone to error - that is an essential quality of any higher level language, but it is not true that it avoids bloat. I have written similar code for embedded systems in both assembler and 'C' and the latter is far less efficient in terms of amount of code memory used.  But at least with 'C' it is easy enough to include sections of assembler for critical functions if one is fussed about speed or code efficiency.

The modern GUI (graphical user interface) lends itself to bloat with its keyboard / mouse duality. Programmers seem to think that both have to be used whatever the function. The mouse is good for graphical operations but a keyboard wins for text, so why mix the usage?  Having to use both is wasting my time.

My opening quote Wikipedia compares the amount of memory and processor speed required by successive generations of MS-Windows - OK I know that good features have been added during that time but no-one can convince me that I really need at least 2Gbyte of RAM, a 1GHz processor and untold amounts of hard disk space just to do word processing an social networking (let's face it - that's what most people use their computers for).

I use (2D PCB) CAD software 'BoardMaker' that runs under MSDOS on a 486-DX2-66MHz computer with just 640Kbyte of RAM. It is lightening fast, the user-interface is ultra-slick, and it just WORKS.  OK the memory limitation does set a maximum complexity to my designs but I haven't reached the limit yet. Don't tell me I need a bloated CAD package that only runs on a super-work-station - although doubtless one day I shall be forced to buy one.

Apple preen themselves on minimalistic design, but minimalistic is not necessarily the opposite of bloat. To get one button to do everything may not be that efficient even if it looks nice.

No, the criterion is not whether it looks nice, whether it has more flashy gimmicks that the competition, whether it boasts a 64-bit processor - the criterion is: does it do the job I want done efficiency and without falling over.  What are your expectations when you buy a car - that it is easy to control, economic and reliable, and above all safe are expectations so paramount as to be hardly questioned - and yet those are the very features that get missed with bloatware.

20131213

Why have I not blogged?

It's a good question. Too busy? Lost the muse? Am I becoming boring? I like to think it is temporary - I just don't have much interesting to say at the moment. Wait...

What about car radios?  Some countries outlaw the use of cell phones whilst driving but what about car radios?  Take the following example. You want RTE1 and the last person who used the car has filled up all the presets with noisy music - and you try to keep your eyes on the road whilst groping the myriad buttons and knobs. I'd say that was as dangerous as or worse than pressing one button to take an incoming call.