Holy cow, I wrote a book!
When I saw
the root cause for all the Windows Vista product key problems,
I was amazed that the reason was something my readers tend
to go completely ballistic over:
Long file names.
It so happens that one of the ISO mounting tools that people
were using for installing Windows Vista doesn't support long file names!
(At least not by default.)
Some time ago,
I discussed several timestamp formats you might run into.
Today we'll take a logical step from that information and
develop a list of special values you might encounter.
Note that if you apply time zone adjustments, the actual timestamp may
shift by up to a day.
All of these special values have one thing in common:
If you see them, it's probably a bug.
Typically they will arise when somebody
fails to do proper error checking and ends up treating an error code as if it
were a valid return value.
(The special values 0, -1, and 0xFFFFFFFF are often used as error codes.)
Lesson 3: Schomething schtranger
is part three of a series of four (so far)
horrifically bad Swedish lessons.
(Warning: Off-color content and copious swearing,
but nevertheless very funny.)
Boz has been living in Sweden since June,
and two of his so-called friends have been putting together
Swedish language tapes for him.
Listen along as he goes through the tapes, trying to repeat
each of the phrases.
Each of the lessons does illustrate a genuine detail of the
Swedish language, even though Slaygon and Makke choose to
illustrate the points using sentences you're unlikely to
encounter in your average Swedish textbook...
One fine point of pronunciation that doesn't get much attention in
textbooks is the Swedish long "i" sound.
Most sources just tell you to pronounce it like English "ee",
but you're also supposed to
push it towards the back of the mouth,
so that you sound like Kermit the Frog.
I tend to pronounce it like English "ee" and forget to do the Kermit thing.
Just like with my problems with "sj",
it's not that I don't know how to do it; I just forget.
/A Causes the output of internal commands to a pipe or file to be ANSI
even though the output is actually in the OEM code page.
Why do errors such as this persist?
Because ANSI sometimes means OEM.
The "A" versions of the console functions accept characters
in the OEM code page despite the "A" suffix that would
What's more, if you call the
then "A" functions that accept file names will also interpret the
filenames in the OEM code page rather than the ANSI code page.
"There are two types of people in the world:
Those who believe that the world can be divided into two types of
people, and those who do not."
There are those who mentally divide the world of characters into
two groups: Unicode and 8-bit.
And as you can see, many of them were involved in the original design
There are "W" functions (Unicode) and "A" functions (ANSI).
There are no "O" functions (OEM).
Instead, the OEM folks got lumped in with the ANSI folks.
There are also those who realize the distinction, but out of
laziness or convenience often use "ANSI" as an abbreviation for
"an appropriate 8-bit character set, determined from context".
In the context of console programming, the appropriate 8-bit character
set is the OEM character set.
The person who wrote the online help for cmd.exe clearly meant ANSI
to mean "That thing that isn't Unicode."
/A Causes the output of internal commands to a pipe or file to be ANSI
/U Causes the output of internal commands to a pipe or file to be
I'll leave you to decide whether this author belongs to the "Everything
is either Unicode or ANSI" camp or the "just being casual" camp.
Keep your eye on the code page.
PC Magazine interviewed
"the team behind Windows" in commemoration of Windows'
The article's author talked with
Ray Ozzie (huh? He didn't even work at Microsoft until April 2005!
How could he have been part of "the team behind Windows"?),
Apparently "the team behind Windows" doesn't include
programmers or testers.
For some reason, the media often identify
Hillel Cooperman (a Product Unit Manager)
as a programmer,
and whenever this happens, we always make a point to assign him
a nasty bug to fix.
An example, all too frequent, of ways programs assume that
the user interface will never change is reaching into system
binaries and sucking out undocumented resources.
In the shell, we have fallen into the reluctant position of
carrying "dead" icons around for the benefit of programs
that assumed that they would always be available.
However, we often make these "orphaned" icons blank
so that these programs don't crash, but they don't necessarily
look all that wonderful either.
Recently, I learned of a new type of resource stealing:
For Windows Vista,
there have been many changes to the way the system internally
organizes its resources in order to support
the Multilingual User Interface feature.
One of the things we found was a handful of programs that reach
directly into Shell32.dll in order to obtain the
file copy animation.
Too bad (1) the animation isn't kept there any more,
and even if we moved the animation back to its original location,
(2) the animation uses a new compression scheme
that older programs can't handle.
Remember, resources in system DLLs should be treated as
implementation details, unless explicitly documented otherwise.
I'm not sure what we're going to do about the animation resource problem.
Should we declare these programs broken and make the people who bought
them go back to their vendors for upgrades?
(What if there is no vendor?)
Should we develop a shim and hope that those four are the only programs
that need it?
Should we carry the original animation in shell32.dll as junk?
If I told you that one of the programs that did this won
"Game of the Year" recently, would that change your answer?
What if another turned out to be a top-rated anti-spyware program?
announced last night that
the arduous process of assembling the PDC 2005 DVD content is now complete
and the results
are now online.
For six months.
choose a session
and watch it via streaming video,
or you can download the video itself for offline enjoyment (!).
Michael also has links to the order form if you want to have
shiny silver DVDs in your grubby mitts.
I'm told that the masters have been released to manufacturing;
this means that shiny silver DVDs (including
Channel9 bonus tracks)
will probably be in the grubby mitts of attendees by (U.S.) Thanksgiving.
But don't quote me.
So go ahead, set up your own "virtual PDC".
Tote bag not included.
A regular restaurant promotion in the Seattle area is
Twenty-Five for $25
(The "$" is silent).
Other cities have their own versions of this.
New York's is called
Restaurant Week, for example,
and Toronto's is called (I am not making this up)
The common theme is that participating restaurants offer
a prix fixe menu for a reduced price.
Twenty-Five for $25 offers dinner for $25 or lunch for $12.50.
Restaurant Week offers lunch for $20.05 (the price goes up by a penny
each year); some restaurants also offer dinner for $30.05.
Winterlicious's menus are C$10/$20 for lunch and C$20/$30 for dinner.
If your city offers these promotions, I strongly encourage you to
give them a try.
It's a great way to eat at a fine restaurant without destroying your wallet.
Plus, the portions are much more reasonably-sized.
One thing that I do miss in Seattle is "pre-theater dinners".
In London, the restaurants in the theater district have special
menus designed to offer you a leisurely dinner
while still getting you out in time to catch your show.
In Seattle, you're on your own to make sure you get out in time,
which can be a challenge when the restaurant doesn't seem to be
playing on your team.
When I discussed the behavior of Windows XP SP2's autoplay
dialog, one person suggested
making the CD autoplay configuration dialog more discoverable
to solve the problem of people not knowing how to get back to the
dialog to change the settings later.
But what is the boundary between discoverability and annoying behavior?
Windows 95 drew a bouncy arrow pointing to the Start button
to draw your attention to it,
because usability testing revealed that it wasn't discoverable enough.
Yet there existed a population of people who found the arrow
And this even though it only appeared once;
the moment you clicked on the Start button,
the arrow went away forever.
But for those people, apparently, even once is annoying.
The autoplay configuration dialog is in a somewhat intuitive place:
It's a property on the CD drive itself.
it's not intuitive enough for some.
Even the ultra-geeky Tweak UI PowerToy tells you this.
Then again, maybe ultra-geeks are too cool to use Tweak UI.
The fact that many people don't realize where the autoplay
configuration settings are kept could mean
one of several things.
First, it might mean that the location is still not discoverable enough.
But configurating one's autoplay settings is hardly a common activity.
Do you really want a balloon to pop up each time a CD autoplays
saying "Click here to change your autoplay settings"?
What if your default autoplay action was "do nothing"?
Do you want a balloon to pop up saying
"See, I'm not doing anything, just like you told me"?
Moreover, if the CD you inserted launches a fullscreen game,
the balloon won't be visible anyway,
rendering the entire exercise moot.
Another possible reason why people don't find the CD
autoplay configuration dialog is that it doesn't
even occur to them that this is a configurable behavior;
they simply don't even realize that the dialog exists.
If you don't know that something exists, you certainly
won't go looking for it.
(This is why it is often said that a significant part
of the scientific research process is merely
asking the right question.)
Identifying this boundary and knowing when you've crossed
is a hard thing to figure out.
If you ask ten people, you will get ten different answers.
The ability to strike a balance is
one of those things you just develop a sense of
supported by years of usability research.
The National Trust of Scotland
two houses to let on the island of Fair Isle,
The two properties are available at a very reasonable rate
of only £300.
Although the National Trust does not promise a job, it points
out that there are skill shortages in construction and
The knitting cooperative apparently has more orders than it can fill.
(You can listen to the entire story and
find a link to the original advertisement on NPR's web site.)
the deadline for applications has passed.
That NPR story led to
an avalanche of interest from the United States,
mostly from knitters.)
This story reminded me that my friend
made money on the side in her younger days doing hand knitting.
I wonder how many people bought a lovely English hand-knitted sweater
imagining it having been created by a sweet old lady in a rocking
chair, when in fact it was done by a fifteen-year-old girl
with a shaved head and an attitude while sitting in front of the telly