Today I was looking at a beautiful mountain lake. A cool wind was blowing off the water, ripples sparkled in the sunlight, and the mountains in the distance were framed by gorgeous light. I felt a great inner peace, and the sense that I could sit and watch this lake forever.

Yet somewhere in my mind I could hear the voice of my inner hacker. “We can totally simulate this. Then you won’t need to go to a mountain lake to have this experience. High resolution projection onto a slanted ground plane, phase adjusted speakers on either side, software-controlled blower fans in the right position…” The mental “how-to” checklist was comprehensive and insistent.

My better judgment knew that this was all nonsense. If you could have a “mountain lake” experience anytime and anywhere, it would no longer be a magical moment in your life. It would simply be one more channel on the all pervasive multi-media idiot box. Yet it was surprisingly hard to tell my inner hacker to shut up.

Later in the day I went on a mountain hike. It was not easy, but it was fun. By the time I had made it up to a beautiful secluded waterfall and was on my way back down the mountain, I was completely exhausted and happy.

Fortunately, this time my inner hacker knew when it was outclassed, and had the good sense to just shut the hell up.

Science versus intuition in design

There are two general approaches to interface design — methodical application of scientific studies and comparisons, versus reliance on artistic talent and instinct.

Both the power and the deficiency of scientific approaches is that they require some sort of explicit model. You need to understand something about the structure of what you are looking at in order to ask sensible questions about it.

In contrast, artistic approaches to design do not necessarily require an explicit and well-understood model on the part of the designer (although there can be one). The designer does indeed always have a deep understanding of underlying structure, but the designer can be effective even if this understanding remains at the unconscious level.

We’ve all seen somebody sit at the piano, or pick up a pencil and paper, and proceed to create magic. Clearly they know a lot, and are drawing on a wealth of understanding and experience, but they don’t need to have examined that experience in order to call it forth.

Interface design might be one of those cases where the intuitive approach of a single talented artist/designer might be more effective than the methodical approach of a team of researchers.

A dance of sorts

If you tell somebody to line up ten bottles of different sizes, and then you give them the following instructions to sort the bottles in order of size, pretty much everyone can do it:

(1) Go through the bottles from left to right, swapping any adjacent bottles if they are out of order.

(2) Keep doing step (1) until all the bottles are in order.

The above is the classic Bubble Sort. Here is a lovely YouTube video of a Bubble Sort being performed as a Hungarian folk dance.

But if you say pretty much the same thing in a standard computer programming language, relatively few people can follow:

is_out_of_order = true;

passes = 0;
while ( is_out_of_order )
      passes = passes + 1;
      is_out_of_order = false;
      n = 0;
      while ( n < 10 - passes )       {             if ( item[n] > item[n + 1] )
                  is_out_of_order = true;
                  swap ( item, n, n + 1 );
            n = n + 1;

Somewhere between the Hungarian folk dance and the computer program, comprehension breaks down for most people.

It would be useful to do a careful research study to see just where most people get lost between these two ways of describing a Bubble Sort. The answers might give us better insight into how more people might eventually attain the power to program computers.

Programmer mind, mathematician mind

Over lunch today, Peter Norvig told me that his two daughters (who are, respectively, 15 and 17 years old) solve problems in different ways. The 15 year old thinks like a programmer, whereas the 17 year old thinks like a mathematician. Not that one way is better than the other — they are simply different.

In particular, the 15 year old frames solutions in terms of “here is what you should do”, whereas the 17 year old frames solutions in terms of “this is what the solution is”.

It occurs to me that this distinction extends to other areas. There are people who, seeing a goal, think about the route that they will take to get there (what might be called “programmer mind”). Then there are people who, picturing their goal, define things so that they will arrive at that goal (what might be called “mathematician mind”).

For example, one person who wishes to have more friends might set out, step by step, to do things that make them popular. But another person might work to become the kind of person who is popular. The former is procedural, whereas the latter is definitional.

It’s a dialectic, of course. Every one of us travels between programmer mind and mathematician mind many times a day, usually without being aware of it. In a sense these two ways of thinking define fundamentally complementary ways of thinking about our relationship to the world around us.

Real and imaginary

Thinking about complex numbers some more, especially in the wake of my “Sweet Popcorn Gal” story, which obliquely alluded to them, I wonder whether the general structure of the plane of complex numbers can be used as a way to map out psychology in fiction.

To the East we would find the positive real, representing all that is good and noble in a character’s actions. To the West is the negative real, representing the moments when a character acts in a shameful or cowardly manner. But why restrict ourselves? After all, in fiction the real can combine with the imaginary.

To the North is the positive imaginary, a place where our character thinks good and noble thoughts. But to the South lies the negative imaginary, a fearful place where the soul explores its darkest inner urges.

But it is only when we wander from these two perpendicular paths that our character becomes truly complex.

The Northeast and Southwest are fairly simple places. The former is reserved for our saints — noble characters performing noble deeds. In the latter dwell their opposite, the cardboard villian, whose evil actions stem from evil thoughts.

But the Northwest is truly interesting, a place reserved for those unfortunate souls who find themselves doing evil, even though they are pure and noble of heart.

And the Southeast is the most fascinating of all complex places, a realm where evil and damaged souls wander about doing good, and making a better place of the world around them.


I am currently attending a conference that is housing everybody in a rather large hotel. When I checked in last night I was given room 3025.

My first thought when I looked at the number was “Ah, this is a perfect square”. So as I carried my bags to the room, I mentally set about working out the square root of my room number.

Being lazy, I did this the easiest way I could think of: I multiplied by four to find a number with zeros at the end. This gave me 12100. Which is clearly 121 × 100, or 112 × 102, or 1102.

Having multiplied by four to get the square of 110, I now needed to divide 110 by two. So by the time I arrived at my room, I knew that the square root of 3025 is 55.

But how did I know, in that first moment at the registration desk, that 3025 is a perfect square?

I remember that I had immediately been struck by seeing “30” followed by “25”. This suggests that I may have subconsciously recognized the visual pattern 2500 + 500 + 25 as an instance of (a2)100 + (2a)10 + a2, or (10a + a)2.

If this is true, it would mean that my conscious and subconscious minds had gone in completely different directions. And it would also mean that my subconscious mind had been a whole lot quicker than my conscious mind.

Alas, if only my conscious mind could be as quick as my subconscious mind.

Complex numbers and imaginary detectives

I recently discovered that a good friend of mine, a highly educated and erudite man, does not know what complex numbers are. Yes, he learned about them in school once upon a time. Yet, he says, he has long since forgotten what they are.

Those people reading this who know that understanding complex numbers is a fundamental prerequisite to describing the universe around us — gravity, electronics, magnetism, springs, sound, light, weather, car engines, why a swing set works, and many other things as well — will probably realize what this means.

There may in fact be a yawning chasm in our society. It is not merely likely that the majority of highly intelligent, educated and literate people do not understand how the physical world around us works. It is likely that they cannot understand these things, because so much of the world around us is very difficult to describe without complex numbers.

Then again, one could argue that there is no reason to understand so much of the world around us. I am reminded of the scene in A Study in Scarlet when Watson recalls of his friend Sherlock Holmes:

I found incidentally that he was ignorant of the Copernican Theory and of the composition of the Solar System. That any civilized human being in this nineteenth century should not be aware that the earth travelled round the sun appeared to be to me such an extraordinary fact that I could hardly realize it.

“You appear to be astonished,” he said, smiling at my expression of surprise. “Now that I do know it I shall do my best to forget it.”

“But the Solar System!” I protested.

“What the deuce is it to me?” he interrupted impatiently; “you say that we go round the sun. If we went round the moon it would not make a pennyworth of difference to me or to my work.”

Of course, in order to really understand why the earth goes around the sun it is useful to know complex numbers. Then again, Sherlock Holmes was not a real detective, but an imaginary one, so I suppose we should cut him some slack.

Computational dramatic social dynamics

Continuing the topic from yesterday, I wonder whether some numeric sequences of character groupings produce more effective dramatic situations than others.

If so, then we could imagine generating effective plot outlines by synthesizing classes of sequences that are known to work better.

We all already work from such principles on a basic level. After all, the classic scenario “Boy meets girl, boy loses girl, boy gets girl” can be represented by the sequence 323 (that is, 11 → 10 → 11). We just don’t usually describe it that way.

It would be interesting to look at, say, the plays of Shakespeare in such terms, and see whether there are patterns that could be analyzed.

And therefore possibly synthesized.

Dramatic social dynamics

Unlike real life, theatre always involves an additional and unseen presence — the audience. Unlike the characters in a play, the audience is always present. That is, it is possible to have moments in a performance when there are no actors on stage, but there are no moments in a performance when there is no audience.

Which means that unlike a social group in real life, in which N people can form (as we discussed yesterday) at most 2^N – N – 1 possible social sub-groups, the N characters in a theatrical performance can form up to 2^N subgroups.

This is because we must also include the cases where a single character is on-stage, as well as the case where there are no actors on-stage. If the play is properly written and performed, such moments of “nothingness” can be filled with drama and meaning.

This allows us to describe the sequential moments of a play in terms of these shifting subgroups. For example, consider the following sequence of events:

Anne and Bob walk on-stage and she declares her undying love for him. Bob goes happily off-stage, while Anne remains and does a monologue bemoaning her doubts about the relationship. Carl joins Anne on-stage and she declares her undying love for him. Anne and Carl go off-stage together. After a pause, Bob comes on-stage and delivers a monologue extolling the wonders of true love. Carl joins him, and the two friends excitedly tell one another that they have each just met the woman of their dreams.

If we denote Anne, Bob and Carl as the respective bits of a three bit binary number, then, for example, Anne on stage alone is denoted by 100, Anne and Bob together is denoted by 110, and an empty stage is denoted by 000.

The above scenario can therefore be described by the sequence:110,100,101,000,010,011.

If we represent each binary number by the corresponding base-10 digit (so, for example, “110” represents 4 + 2 + 0, or 6), then our dramatic scenario can be summarized as: 645023.

Social dynamics

Our little group here in the woods consists of four people. As I’ve been watching the various conversations develop, I’ve been observing how the social dynamics change, depending upon who is or isn’t present in any particular discussion.

Counting all the possibilities, I see that there are eleven possible conversational groupings among four people: (1,2) (1,3) (1,4) (2,3) (2,4) (3,4) (1,2,3) (1,2,4) (1,3,4) (2,3,4) (1,2,3,4).

Between any two people there is only one possible set of groupings, and between any three people there are four: (1,2) (1,3) (2,3) (1,2,3).

There turns out to be a simple formula based on the number of people, which is how I know that for five people there are 26 possible conversational groups, for six people there are 57, and for seven people there are 120. **

I will leave it up to you to figure out what the formula is.

** My original post contained typos for some of these numbers, which Sharon and Logan kindly corrected.