Holy cow, I wrote a book!
Luna was the code name for the Windows XP "look".
The designers did a lot of research (and got off to a lot of false
starts, as you might expect) before they came
to the design they ultimately settled upon.
During the Luna studies,
that people's reaction to Luna was often,
"Wow this would be a great UI for X," where X was
"my dad" or "my employees" or "my daughter".
People didn't look at it as the UI for themselves;
rather, they thought it was a great UI for somebody else.
It was sometimes quite amusing to read the feedback.
One person would write,
"I can see how this UI would work great
in a business environment, but it wouldn't
work on a home computer." and the very next person would
write "I can see how this UI would work great
on a home computer, but it wouldn't
work in a business environment."
(And interestingly, even though armchair usability experts
claim that the "dumbed-down UI" is a hindrance, our studies
showed that people were actually more
productive with the so-called "dumb" UI.
Armchair usability experts also claim that the Luna look
is "too silly for serious business purposes", but in reality it
tested very well on the "looks professional" scale.)
Aero is the code name for the Longhorn "look".
With Aero, the designers have turned an important corner.
Now, when they show Aero to people, the reaction is,
"Wow, this would be a great UI for me to use."
People want Luna for others, but they want Aero for themselves.
[Raymond is currently on vacation; this message was pre-recorded.]
[South Carolina is] the only state in the nation
requiring bars to serve all hard liquor in minibottles.
The minibottle's place behind the bar is even enshrined in the state's
Mini-bottles are those cute little single-serving bottles you see
on airplanes and in hotel refrigerators.
The law was originally passed under pressure from the temperance
movement who opposed "free pour" because it created the opportunity
for bartenders to "sweeten" a drink. By requiring the liquor to
come from a fixed-sized bottle, portion sizes could be kept under
This worked great for a while. But then social pressures shifted and
economics started happening.
Across the country, the typical size of an alcoholic beverage
started shrinking. But South Carolina's drink size stayed the same,
because the size was mandated by law.
The result: absurdly huge drinks, like the Long Island Iced Tea
that comes in a pitcher.
South Carolina ended up with the stiffest drinks in the
country, exactly the opposite of what the original drafters intended!
The very people who helped West pass the minibottle law as a way
to limit consumption -- the teetotalers and religious conservatives --
are now helping Hayes's bid to abolish the law.
The effort to repeal the law has been going on for many years,
but somehow it always falls short. Maybe this year...
Ah, welcome to
This mode exists for the ultrageeks who want to put a tiny little CPU
meter in the corner of the screen. To go back to normal mode,
just double-click a blank space in the border.
This is one of those geek features that has created more problems
than it solved.
Sure, the geeks get their cute little CPU meter in the corner,
but for each geek that does this, there are
thousands of normal users who accidentally go into Tiny mode
and can't figure out how to get back.
The [U.S.] government is taking the first steps toward a
targeted military draft of Americans with
special skills in computers and foreign languages.
there is already a special system to draft "health care
personnel", whatever that means.
Can you imagine the havoc that could be wrought by
disgruntled programmers forced to write code for the government?
So all I have to do now is volunteer at the local hospital
and I'll have hit the conscription jackpot.
Because everybody here speaks English. Perfectly.
Sometimes they'll speak English to me even before I say anything. (My comparative silence probably gives me away as a non-native.) Other times they'll notice that I'm speaking with a bad accent and switch to English. Some humor me by speaking Swedish until I finally break down and ask (in English), "I'm sorry, could you say that again?" because they're speaking Swedish too fast for me to keep up.
When dealing with non-Swedes, the default language is English. Not because people from English-speaking countries are so prevalent, but because English is everybody's second language. If a German and a Russian meet, they'll talk in English.
In other language news: On the flight out of Seattle, a variety of newspapers were available and I grabbed what turned out to be a Norwegian paper by mistake. But it turns out that if you know Swedish, you can read a Norwegian paper anyway; it's no big deal.
Yesterday, one of Jonathan's corridormates listened patiently as I said "sju" ("seven") over and over again until I could get the sj-sound right. It went like this:
Me: "I give up."
Peter: "That's okay."
You may have noticed that Windows doesn't use Ctrl+Alt
as a keyboard shortcut anywhere.
(Or at least it shouldn't.)
If a chorded modifier is needed, it's usually Ctrl+Shift.
That's because Ctrl+Alt has special meaning on many
keyboards. The combination Ctrl+Alt is also known as AltGr,
and it acts as an alternate shift key.
For example, consider the
German keyboard layout.
Notice that there are three keyboard shift states
(Normal, Shift, and AltGr),
whereas on U.S. keyboards there are only two
(Normal and Shift).
For example, to type the @ character on a German keyboard,
you would type AltGr+Q = Ctrl+Alt+Q.
(Some languages, like Swedish, have a fourth state: Shift+AltGr.
And then of course, there's the Japanese keyboard...)
Most international keyboards remap the right-hand Alt key
to act as AltGr, so instead of the finger-contorting Ctrl+Alt+Q,
you can usually type RAlt+Q.
here are diagrams of several other keyboard layouts,
my bubble-blowing friend, Nadine Kano.)
Sometimes a program accidentally uses Ctrl+Alt as a shortcut
modifier and they get bug reports like, "Every time I
type the letter 'đ', the program thinks I want to start
There's some to-do over
a soldier who volunteered
to serve in the army who has since changed his mind and is applying for
conscientous objector status.
I noticed this trend over two years ago, when
people who had enlisted in the armed forces underwent a change of
heart after the World Trade Center attacks:
Many of the enlisted personnel who are now seeking honorable
discharges argue they didn't sign up to defend America; they just
wanted to learn a trade or earn money for college.
Sort of like the
Monty Python sketch.
"Watkins why did you join the army?"
"For the water-skiing and for the travel, sir. And not for the
killing, sir. I asked them to put it on my form, sir - no killing."
(I should point out that this particular situation appears to be different,
however, since he did serve the first time he was called.)
Some Aussie ex-pats developed a list of “You know you've been in Sweden too long when...”. My friend who is acting as my host (and who is himself a U.S. ex-pat) says that the list is astonishingly accurate, and that your reaction to it goes through several phases.
For example, my friend explained points 73 and 74 to me. In Sweden, when the temperature reaches a certain never-explicitly-stated-but-everybody-somehow-agrees-on-it point, it officially becomes summer and you are not allowed to wear winter clothes regardless of the actual temperature. Similarly, when the temperature first dips below a certain point, it officially becomes winter and you are not allowed to wear summer clothes.
My friend woke up one morning and noticed that it had dipped below freezing overnight. But it was warm when he got up, so he dressed appropriately for the temperature. What he didn't realize was that 0C was the secret "winter point". Everybody was bundled up for the coming blizzard, even though it was no longer freezing outside.
I myself experienced a variation on 249. I was in Åhléns and there was a sign that read, "If you don't see your size, please ask for it." (Paraphrased from Swedish.) So I asked a passing employee if they had this particular pair of shoes available in a size 36. The employee got rather annoyed at me and told me to go stand in line at the register.
Because if you want somebody to help you, you have to stand in line at the register and wait your turn - even though you aren't actually buying anything yet. When you reach the front of the line, the register person fetches the shoe you want. Fortunately, I was satisfied with the shoe she retrieved for me without trying it on (I was buying it for somebody else). If I had to try it on for size, I probably would have had to stand in line a second time.
One of the "Adjusting to life in Sweden" books I read mentioned that the intense "nobody is better than anybody else" attitude in Sweden means that customer service is an oxymoron. If nobody is better than anybody else, then service personnel have no obligation to help you. The book noted, "This may take quite a bit of adjustment for people who come from other countries. Except the British."
I didn't believe it until I saw it myself: My friend asked me to bring red and blue plastic cups to Sweden because the U.S. students really miss them. It's true. Here's why. (This needed to be explained to me because this was a part of U.S. college life I missed out on.)
These cups are valuable because they are opaque. This allows you to walk down the street with a beer without anybody (anybody = police) being able to tell that you have a beer in your hand, which would otherwise be a violation of open-container laws or evidence of underage drinking. As a result, the plastic cups have been synonymous with college drinking.
That's why the U.S. students miss them so.
In other news: Stockholm basically closes at 4pm on Saturdays.
When you're dealing with application compatibility,
you discover all sorts of things that worked only by accident.
Today, I'll talk about some of the "creative" ways people
mess up the
Now, you'd think, "This interface is so critical to COM,
how could anybody possible mess it up?"
Sometimes you get so excited about responding to all these
great interfaces that you forget to respond to IUnknown itself.
We have found objects where
IShellFolder *psf = some object;
There are some methods which return an object with a specific
interface. And if you query that object for its own interface,
its sole reason for existing, it says "Huh?"
IShellFolder *psf = some object;
IEnumIDList *peidl, *peidl2;
There are some objects which return E_NOINTERFACE to the QueryInterface
call, even though you're asking the object for itself!
"Sorry, I don't exist," it seems they're trying to say.
When you implement a derived interface, you implicitly implement
the base interfaces, so don't forget to respond to them, too.
IShellView *psv = some object;
In principle, the following two code fragments are equivalent:
CoCreateInstance(CLSID_xyz, ..., IID_IShellFolder, (void**)&psf);
CoCreateInstance(CLSID_xyz, ..., IID_IUnknown, (void**)&punk);
In reality, some implementations mess up and fail the second call
to CoCreateInstance. The only way to create the object successfully
is to create it with the IShellFolder interface.
One of the rules for saying "no" is that you have to set the
output pointer to NULL before returning. Some people forget to do
If the QueryInterface succeeds, then pmbl must be non-NULL on return.
If it fails, then pmbl must be NULL on return.
The shell has to be compatible with all these buggy objects because
if it weren't, customers would get upset and the press would have
a field day. Some of the offenders
are big-name programs. If they broke, people would report,
"Don't upgrade to Windows XYZ, it's not compatible with
Conspiracy-minded folks would shout,
"Microsoft intentionally broke <big-name program>!
Proof of unfair business tactics!"