Holy cow, I wrote a book!
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.
[Raymond is currently on vacation; this message was pre-recorded.]
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!"
(or as they call them "web beacons") - these are the little 1x1
images that web sites use to keep track of where you're going.
Halfway down the page (at least as of the time I wrote this,
which is not the same as the time this gets posted since I write
stuff in advance...) in the section "Outside the Yahoo! Network"
there is a link to opt out of sharing the information with companies
outside the Yahoo! Network.
Maybe it's time to start surfing with images off again, or perhaps
somebody can write a plug-in that blocks all 1x1 images.
My friend Jonathan is acting as my host in Uppsala,
and he was responsible for preparing dinner for
a staff party at
He chose curry. The same thing he chose the last time
he was responsible for preparing dinner for a party.
The last time, one of the attendees ceremonially
dumped the curry into the trash because it was
"inedible". Translation: Too spicy.
So this time he tried to tone it down.
But by the time it came to taste-test the curry,
it was already too hot.
(Not hot at all by Thai standards.
But this is Sweden we're talking about.)
But apparently this time the Swedes have become
accustomed to slightly spicier food because nobody
At this party there was a lot of singing
(from the official club song book),
banging on tables,
and lots and lots of drinking.
Beer, wine, sangria, schnapps, whatever.
Some of the students from the U.S. taught
the Swedes how to play
which was a hit because, well, it involves drinking.
College students + alcohol + Sweden.
You do the math.