Archive for September, 2009

Google, the GUI-Snatcher

No Comments »

donaldMost pro-programmers will know that programs that function well, also need the proper form. That is, if you want users to, well actually use your program. Getting the form right, means tweaking the graphics, the layouts, the speed, the input flow, progress bars, and much, much more. Actually it is almost an art to dress up your code such that it will diffuse. Even if you do everything right, and create a Bauhausian beauty where form and function walk hand in hand with your user, straight into paradise, chances are they still will not adopt it.
Look at Google Chrome. They did a lot right, even the marketing, so after a year, how are they doing?

(taken from


Normal people just use IE, they just do, and only people like you and me use the other stuff. The inertia is horrible. So Google climbed out the box once more. They noticed that it is easier to have people install a plugin than to make them change their “Internet” as they call IE. So they made a plugin that will gut IE and replace the inside with Chrome. So people can keep using their IE like they are used to, only they are using Chrome. Brilliant, if you cannot get users to use your look and feel, use body-snatcher tactics. See the story unfold at The Reg, or any of your favorite blogs.

Failing Gracefully

No Comments »

Most languages have a mechanism to handle failure. For example, ADA has raisewith, C has setjmp(), longjmp(), Python has try:, except:, else:, finally:, and Perl has eval{die}. Despite this, a (library) function will often handle failure in an other way: by return-value. This is because failure comes in many guises.
Read the rest of this entry »

Quicksort 2.0

No Comments »

The new Quicksort algorithm uses partitioning a source array T[ ] a, where T is primitive type [...], to three parts defined by two pivot elements P1 and P2 (and therefore, there are three pointers L, K, G, and left and right [...]) shown [below]:
Afbeelding 1It is proved that for the Dual-Pivot Quicksort the average number of comparisons is 2*n*ln(n), the average number of swaps is 0.8*n*ln(n), whereas classical Quicksort algorithm has 2*n*ln(n) and 1*n*ln(n) respectively. (Vladimir Yaroslavskiy) [paper, link, Thanks John.]

Turing Complete

1 Comment »

alan5Turing was a quite brilliant mathematician, most famous for his work on breaking the German Enigma codes. It is no exaggeration to say that, without his outstanding contribution, the history of World War Two could well have been very different. He truly was one of those individuals we can point to whose unique contribution helped to turn the tide of war. The debt of gratitude he is owed makes it all the more horrifying, therefore, that he was treated so inhumanely. In 1952, he was convicted of ‘gross indecency’ – in effect, tried for being gay. His sentence – and he was faced with the miserable choice of this or prison – was chemical castration by a series of injections of female hormones. He took his own life just two years later. [...] So on behalf of the British government, and all those who live freely thanks to Alan’s work I am very proud to say: we’re sorry, you deserved so much better. (Gordon Brown) [link, via DI]