Last updated:
19. March 2007

User Interface Programming

(Start main menu) Home ­ Articles ­ Book ­ Resources (End main menu)

Random Rants

(Start sub-menu)

Who Am I?

Site Map

Random Rants


HTML Character Codes




My blog »

(End sub-menu)

9. May 2007

Footsteps in the Sand: C’est un blog! Further random rants will appear there, and some of these are adventurous spirits and will no doubt migrate.

19. March 2007

Tie my face to a pig and drag me through the mud where did that bug come from?

New article on testing.

15. July 2004

Rednudacny, anyone?

Aoccdrnig to rscheearch at Cmabrigde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae. The rset can be a total mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Not to mnieotn taht nturaal lnguageas hvae a lot of rdndanucey…

Fcuknig amzanig, huh?

11. No­vem­ber 2003

I’ve previously mentioned error mes­sages on haiku form. Here’s more on the subject.

5. No­vem­ber 2003

collaboration n: Cool abberation.

telepanic n: You forgot your cell phone at home.

24. October 2003

What Do You Care What Other People Think? (cover)

The real question of government versus private enterprise is argued on too philosophical and abstract a basis. Theoretically, planning may be good. But nobody has ever figured out the cause of government stupidity—and until they do (and find the cure), all ideal plans will fall into quicksand.

Richard Feynman, Nobel Laureate in Physics

(Feynman wrote this in a letter to his wife, ca. 1963. He was in Warsaw at the time; the efficiency of the old-time communist regimes must not have impressed him a great deal.)

3. October 2003

balanced meal n. phrase: any meal where the combined recipes call for an equal number of egg whites and yolks.

My Marot translation has been translated (if that’s the app­ro­p­ria­te word) back into English.

1. October 2003

As of today, I have left Accenture to pursue the rather more uncertain future of an independent consultant and writer. Look here if you’re interested in my services.

30. September 2003

Something Gained in Translation

Consider this famous quote from George Orwell:

All animals are equal. But some animals are more equal than others.
When you translate this into Norwegian, you get:
Alle dyr er like. Men noen dyr er likere enn andre.
Frankly, writing “mer like” rather than “likere” would echo the original better; “likere” is the grammatical equivalent of “equaller” in English. But “likere” isn’t nearly as silly in Norwegian as “equaller” would be in English, and there’s a bonus to be had: While “likere” certainly means “more equal,” it also means “better,” resulting in an absolutely wonderful wordplay where the alternative interpretation goes like this:
All animals are equal. But some animals are better than others.

16. September 2003

I gave a talk at Yggdrasil, The Norwegian Computer Society’s yearly conference on Usability and User Documentation. The title of my talk was Hvordan nettleseren ødelegger brukervennlighet (How the Web Browser Screws up Usability).

Update: The talk echoes some of my thoughts here. Or perhaps my thoughts there echoes some of my talk; who knows.

25. August 2003

Software guru Joel Spolsky has decreed that my book Pro­gram­ming In­dustrial Strength Windows is brilliant. Joel is the author of User Interface Design for Programmers, another brilliant book.

14. August 2003

From parts unknown I’ve picked up the courage to post my translation into Norwegian of Clément Marot’s poem Ma Mignonne.

7. August 2003

I’ve taken The Step. QWERTY is out, Dvorak is in. My (alleged) brain is about to be rewired.

14. June 2003

Quotes from The Freethought Zone

“I contend that we are both atheists. I just believe in one fewer god than you do. When you understand why you dismiss all the other possible gods, you will understand why I dismiss yours.”

Stephen Roberts

“When I became convinced that the Universe is natural—that all the ghosts and gods are myths, there entered into my brain, into my soul, into every drop of my blood, the sense, the feeling, of the joy of freedom. The walls of my prison crumbled and fell, the dungeon was flooded with light and all the bolts, and bars, and manacles became dust.”

Robert Ingersoll

3. June 2003

Have you ever wondered why the year 1957 saw the most bountiful spaghetti crop in the history of Switzerland? No? Well, it’s true! Straight from the BBC.

[Read more]

31. March 2003

Interested in the pigmentation of aquatic animals? Then look no further to discover why the Web browser is death to application usability.

11. March 2003

HTTP 404 error mes­sage

The other day I ran across a Haiku HTTP 404 error mes­sage:

You step in the stream,
but the water has moved on.
This page is not here.

That’s progress. Definitely.

Here’s another—it appears to have an extra syllable in the last line, but no matter:

The web site you seek
cannot be located but
endless others exist.

Addendum April 1st, from MIT:

I ate your Web page.
Forgive me. It was juicy
And tart on my tongue.

24. February 2003

Which Two Towers?

It is in the nature of movies that they don’t explain: they show. Movies have in­fluen­ced fiction to the extent that “show, don’t tell” has become the paramount dictum for modern writers.

The great strength of fiction is that it can, should the need arise, use exposition in a way a film cannot do. Tolkien takes you into Frodo’s head to show you how The Ring is tormenting him; Peter Jackson must dramatize to get Frodo’s motivation across.

So what if his dramatization makes Jackson’s Faramir less of a man than Tolkien’s? You can like it or you can loathe it, but it’s still excusable.

Frodo has no business going to Osgiliath, you say? Well, no. But that, too, is excusable.

Gandalf exorcizing Saruman from Théoden Weird, yes—but excusable. And if Jackson’s ents must see for themselves the devastation brought by Saruman before becoming sufficiently enraged to act—well, that’s dramatization for you. Excusable.

What about the Battle of the Varg Riders and Aragorn’s fall into the river? With all of The Lord of the Rings to choose from, why bother to invent new incidents? Unfathomable, yes. Disastrous? Not quite—simply because this is not a pivotal plot element.

Jackson’s one cardinal sin took place in Osgiliath. Having Frodo confront the Black Rider is bad. Having him show the ring to the enemy seems to me insanity. Dramatic? Sure. But, dammit, the whole plot hinges on Sauron not knowing where the ring is.

Now, that’s inexcusable.

And now (as the Monty Python used to say) for something com­pletely different:

I always thought that the “two towers” of the title referred to the twin towers of Minas Tirith and Minas Morgul, facing each other across the Anduin. According to Jackson, however, the two towers are Orthanc and Barad-Dr.

In a recent rereading of The Two Towers I found nothing to dissuade me from my original belief. On the other hand, I found no explicit support for it either.

Was Tolkien being intentionally ambiguous?

19. February 2003

People that are really very weird can get into sensitive positions and have a tremendous impact on history.

Dan Quayle, former Vice President of the United States

4. February 2003

And did you hear the one about the nuclear engineer who became a priest in order to perform a critical mass?

4. No­vem­ber 2002

In some countries, people drive on the left side of the road.

In Australia, they just think they do.

In Australia, they actually drive on the right side of the road, but, Australia being upside-down, the right side seems to be the left side. (This is com­pletely analogous to the Australian sun, which seems to go backwards, but is really only upside-down.)

28. August 2002

I sincerely believe that Moore’s Law is on our side: good chip designers improve CPU performance faster than bad software designers can waste it.

And if you buy that one, I have a bridge to sell you.

27. August 2002

What keeps me awake at night? The heat death of the universe. I’m not in the least worried about the Sun; if in five billion years we can’t handle its death we don’t deserve to. Flat entropy is something else, though, and the problem isn’t getting nearly the attention it deserves.

18. June 2002

Inefficaciousness! What a wonderful word! Means “a lack of efficacy.”

(Efficacy: “capacity or power to produce a desired effect.” Synonym: efficaciousness!)

13. March 2002

Garbage in the Time of Collection

A great number of APIs are sandwich APIs of one form or another: An open call at the top, a close call (pun unintentional) at the bottom. I open a file, I read from the file, I close the file. I acquire a graphics resource, I paint on the screen, I release the graphics resource.

Dynamic memory is no different: I allocate some memory, I use the memory, I free the memory. (Recycling, you see. Long live the rainforest!)

That, at any rate, is what I did before Java and C#. These languages have garbage collection, which obviates the need for freeing memory.

Garbage collection as such is not new. Its application in the mainstream of programming was, however, ushered in with Java. In that sense, garbage collection is new.

Garbage collection as such is not bad: It simplifies programming no end, and disposes of perhaps the most significant source of bugs in one fell swoop. The run-time downside of garbage collection is often more perceived than real, and for most app­li­ca­t­ions matters not at all.

I do not quarrel with Gosling’s decision to include garbage collection in Java, nor with Hejlsberg’s decision to include garbage collection in C#. I do, however, lament the resultant throwing-out of babies with all the bathwater.

One such baby fell by the wayside at the crossing of Heap Road and Stack Allocation Lane: The demise of destructors.

Destructors are per­fectly suited to sandwich APIs: Do the open call in the constructor, the close call in the destructor.

Classes based on this paradigm are wonderfully easy to use: Declare a variable of the right type, and the resource is ready to use. You don’t have to release it, and therefore can’t forget—do I hear echoes of garbage collection?

Classes based on this paradigm are exception safe.

Classes based on this paradigm are elegant.

“Resource acquisition is initialization,” says Bjarne Stroustrup, and you scratch your head and wonder what he means by that. What he means is the interplay bet­ween constructor and destructor I just discussed.

Getting rid of complexity is hard. Usually, the most you can hope to achieve is to move it around—hopefully out of your immediate way. The death of destructors moves complexity back where we don’t want it: into application-level code.

You didn’t really believe that the bottom layer of the sandwich would just go away, did you?

26. February 2002

Esky Pescalators

Going down the escalator at Stockholm’s Arlanda airport, I got increasingly annoyed that my hand (resting on the handrail) moved faster than my feet, so that I had to shift my grip underway. What a stupid malf!

Switching to the next escalator I had the same déjà vu all over again, and I started thinking. (I sometimes do; it’s supposed to be good for me.) Aren’t all escalators like this? Thinking about the mechanics of escalators, it seems possible that steps and handrail make the same RPMs, so the handrail moves ahead simply because it has a slightly longer route.

If I’m right, this is a serious flaw in escalator design, ¿yesno?

5. February 2002

The drone of the lecturer’s voice accentuated the soft humming of the video projector: a new high in lethargy production.

Oh, what fun we have.

(Start bottom menu)

Win­dows De­vel­oper Maga­zineR&D BooksCMP Books Petter Hesselberg

(End bottom menu)