Bush hid the facts... Just compile that..\h
Oh, Mr. President Sir, I didn't\h expect to see you down here...\h
BUSH: Are you using notepad\h to spread lies about me?\h
No, I'm nooo BUSH: Are you sure?\h
I, can assure you! BUSH: There's an old\h\h
saying in Tennessee. I know it's in Texas,\h but probbably Tennessee. It says fool me once,\h\h
shame on.... shame on you...........You\h fool me, I can't get fooled again.
In early 2004, it appeared that Microsoft had a\h problem. By this time the United States Coalition\h\h
were a year into their invasion of Iraq,\h and people were starting the question the\h\h
legitimacy of this war. What was being covered\h up? Who was lying? Was George W. Bush lying?
Now this wasn’t Microsoft’s problem,\h per say, they likely had very little\h\h
to do with the whole thing, but they\h did have a problem connected to it.
At some point, after seeing a blog post online,\h someone went to their Windows accessories folder,\h\h
opened up notepad, typed “Bush hid the facts”\h and saved it. We’re not sure exactly why they\h\h
did this, or who this person specifically\h was. But when they re-opened the file,\h\h
the text had gone, replaced with garbled\h characters that couldn’t be displayed on screen.
Quickly this popped up on Usenet\h groups, email and internet forums.
Hey all try this: >>>\h
>>>For those of you using\h Windows, do the following:\h
>>> >>>1.) Open an empty notepad file\h
>>>2.) Type “Bush hid the\h facts” (without the quotes)\h
>>>3.) Save it as whatever you want. >>>4.) Close it, and re-open it.\h
>>> >>>Real strange huh.
People rapidly started reporting\h that they had the same results,\h\h
and this apparent conspiracy spread like wildfire.
Not long after, someone reported that if\h you typed one of flight numbers from 9/11\h\h
using the Wingdings font, you would get\h this. Similar instructions were given.
Open Notepad / WordPad or MS Word,\h type in that flight number i.e.Q33N\h
> > (Qand N Caps only) > > * Increase the font size to 72\h
> > * Change the font to Wingdings > > ……. U will be amazed by\h\h
the findings!!!………………….. > > !!!!!!!!!!!!!!!!!!! IS\h\h
IT COINCIDENCE.!!!!!!!!!!!!!!!!!!!OR WHAT???
Seemingly another Microsoft derived message,\h\h
that must have held deeper meaning and\h that could be executed within Notepad.
What the hell was going on?
Did someone at Microsoft know something\h we didn’t? Did someone at Microsoft hold\h\h
a grudge against Bush? Or was\h something weirder going on.
Well, it turns out that it was\h actually something a lot weirder.\h
It was actually David Crumps\h who, on 27th February 2004,\h\h
originally reported on this\h issue on his self titled blog;
“Someone showed me a weird text file today. It\h was a bat file with ‘copy MeYou.bak MeYou.txt’.\h\h
When you would ran it, it would work. But when\h you opened it in Notepad, there was nothing.
So we decided to look a bit into this and here\h\h
is something we came up with\h to ‘create’ invisible text:
Open notepad and enter: ‘ abc.bak abc.txt’
(That is: space abc dot bak space abc dot\h txt, no line break, without the quotes)
It doesn’t work with every string, just\h follow us on this example and use that one.
Save your file. Notepad picks\h default ANSI as encoding.
Open your file, Notepad seems to\h open by default in Unicode encoding.
Your text is now invisible.”
As you’ll notice, this error doesn’t have anything\h to do with the text string “Bush hid the facts”,\h\h
instead the text is “abc.bak abc.txt”,\h and the error was actually stumbled upon\h\h
by accident. I fired him a message to see what he\h recalled, but it was a fairly inconsequential run\h\h
of the mill batch scripting problem, just\h before he became an intern for Microsoft.
It was the fallout that was more significant.
You see, the error is down to a\h fundamental function of Windows\h\h
called IsTextUnicode that Notepad uses\h to determine the encoding of text files.
Every file stored on your hard drive is just\h collection of bytes. Each byte being 8 bits in\h\h
length. Each of those bits can be on, or\h off; a one or a zero. In the olden days,\h\h
we just had plain text, otherwise known\h as ASCII, this was extended by ANSI,\h\h
or more officially, SO/IEC 8859, and each\h character took up exactly one byte. 8\h\h
bits in each byte gives the potential for 256\h permutations, and so ANSI had 256 characters.
So, if this is the only encoding\h format, notepad would look at a file,\h\h
see the hex code for each byte, and translate\h it to a character on screen, as per ANSI rules.
But, by the time Windows was knocking about,\h\h
there was need for more than just ANSI.\h There are many languages around the world,\h\h
and a lot of them have their own character sets.\h So, other encoding standards were developed.
One of those was Unicode. The development\h of Unicode dates back to the 1987,\h\h
when Xerox employee Joe Becker, along with\h Apple employees Lee Collins and Mark Davis\h\h
started looking into a universal character set.\h Various other members would join the group,\h\h
including from Microsoft, and on the 3rd January\h 1991, the first Unicode Standard was published.
But, for Unicode to function, it needed\h more characters, and so 16 bits were now\h\h
used for each character, or two bytes.\h This gives 65,536 possible permutations,\h\h
and enough to include most languages. This\h encoding used the UCS-2 Character set,\h\h
and is now known as UTF-16. But just like\h Microsoft does, I’ll refer to it as Unicode here.
So, if we open up notepad and type ” abc.bak\h abc.txt”, and save the file. Then re-open it.\h\h
Notepad has to now determine how the file is\h encoded, and display the appropriate characters\h\h
on screen. If it assumes ANSI, reading each\h byte as a character, then we’ll get our text\h\h
file as normal. However, if it decides it is\h Unicode, and uses two bytes as each character,\h\h
then we’ll get either invisible text, or a bunch\h of squares. This is because, on this computer at\h\h
least, Notepad is trying to display characters\h from a character set that isn’t installed.
This has a name, it’s called Mojibake, and\h its definition is the gibberish resulting\h\h
from text being decoded using\h an unintended encoding method,\h\h
and it happens more than you may realise. From\h websites to software, Mojibake is pretty common.
So, if we go back, create the file and save it\h again, but this time, specify Notepad to save\h\h
it as Unicode, then open it again, there’s no\h problem. This is because we’re making Notepad\h\h
specify the encoding using a BOM, or Byte Order\h Mark. Which is essentially a Marker in the file to\h\h
tell a parser what encoding format is being used,\h but text files don’t always have this marker,\h\h
and so Notepad then falls onto the function\h IsTextUnicode to attempt to guess the encoding.
Thankfully, you can be sure that your encoding\h will be spot on with sponsor SquareSpace.
Come on it's easy. Use blueprint AI, or select a\h template. Choose your colours. Choose your style.\h
Change some text. Change your\h font... you can't use Wingdings,\h\h
but that's probably for the best. See what it looks like in mobile form.
Then, when you're live check out\h the analytics to see where your\h\h
visitors are coming from. Then make\h changes to ensure they come back.
Simply head to Squarespace to get\h started, then when you're ready go to\h\h
Squarespace.com/nostalgianerd to get 10% off a website or domain.
IsTextUnicode is a Win32 function that has\h been around since Windows NT 3.51. It was then\h\h
passed down the NT lineage including Windows\h 2000 and XP. The function is different from\h\h
the hyrbrid 16/32bit versions of Windows, and\h so, this behaviour won’t replicate on those.
If we take a look at the Notepad source code,\h we can see the point at which IsTextUnicode\h\h
is called, in an attempt to ascertain\h whether our file is ANSI or Unicode.
IsTextUnicode will take a string of text,\h typically the first 256 bytes of a file,\h\h
perform some statistical analysis, and then return\h whether it thinks the file is Unicode or not. In\h\h
this instance, for whatever reason, it decides\h that our file is in fact Unicode and thus, Notepad\h\h
presents it as such, resulting in what we see,\h or don’t see, depending on your choice of font.
On 24th March 2004, Microsoft developer Raymond\h Chen would publish a blog post entitled “Some\h\h
files come up Strange in Notepad”\h in response to David Crumps post,\h\h
where he explains the various encodings.
Then on 30th January 2005, Lead Microsoft\h developer Michael S. Kaplan posted about\h\h
“Why I don’t like the IsTextUnicode”\h API, detailing some of its pitfalls,\h\h
and pointing out that this function was now\h written some 10 years prior by someone outside\h\h
of the NLS (National Language Support)\h team, when there wasn’t as much Unicode\h\h
awareness or acceptance. Nethertheless, it does\h sometimes assume Unicode, when it’s not Unicode.
On 18th May 2006, someone going by the\h username Zoomba wrote on the WinCustomize\h\h
forum about how you can type the sentence\h “this app can break” into Notepad, save it,\h\h
reopen it, and voila. We have the same problem.
Kaplan responded to this with his own blog\h post, identifying that, in this instance,\h\h
Notepad is actually trying to display a\h bunch of CJK ideographs. It seems then,\h\h
that IsTextUnicode thinks that it’s more\h likely that these characters fit together,\h\h
than the original ANSI characters. Which\h isn’t as outlandish as you may think.
Now I actually dug out the source code, although\h it’s also explained well in FlyTech Videos,\h\h
the algorithm it employs checks the\h difference between the two bytes which\h\h
would make up a Unicode character. It plots the\h difference in value of each first character,\h\h
and each second character. Let’s\h take these ones and convert them\h\h
into decimal to make it easier.\h So 74 becomes 116, 69 becomes 105,\h\h
20 becomes 32, down the left hand column.\h On the right, 68 is 104, 73; 115 and 61;97.
Ok, so we start with 116 on the left,\h and calculate the difference between 105,\h\h
which is 11. The difference between 105 and 32 is\h 73. Now we do the same for the right hand column.
It then adds these values together, and then uses\h the final numbers to perform a calculation. That\h\h
is, if the left hand sum > right hand sum*3 then\h it’s Unicode. This kind of makes sense as, Unicode\h\h
characters will typically have a higher left hand,\h or low byte value than the right hand, or high\h\h
byte value (assuming Little Endian formatting,\h otherwise it’s reversed, but forget about that),\h\h
so even if you multiply the right byte value\h by 3, it will still typically be less. BUT,\h\h
it’s very much not without its flaws. As we can\h see….. and we can easily force this algorithm to\h\h
guess incorrectly every time, simply by limiting\h the amount of deviance (and therefore numerical\h\h
difference) of every even character, which the\h algorithm will see as the right hand Unicode byte.
Now, you’ll probably have noticed that “this\h app can break” follows the same pattern as\h\h
“Bush hid the facts”. A four letter word, 3 letter\h word, three letter word and a five letter word,\h\h
and it just so happens that this combination\h also triggers IsTextUnicode to return a TRUE\h\h
value when asked. I mean, that’s\h simplifying the function’s input\h\h
and output slightly, it has various arguments,\h but if suffices for explaining this story.
If we add an extra character onto the\h end of this 18 character sentence,\h\h
then Notepad will no longer make the\h mistake. That’s because there is now\h\h
an extra byte. 19 bytes doesn’t fit into the\h Unicode bracket, as its bytes come in pairs,\h\h
so IsTextUnicode returns FALSE and Notepad\h correctly presumes this is an ANSI file.
But, given what was in the news at the time, all\h the time, it didn’t take long for someone to come\h\h
up with Bush hid the facts, and start spreading\h rumours of this weird apparent conspiracy.
Of course, the vast majority of\h people on the internet, even then,\h\h
weren’t developers with a specific knowledge\h of the IsTextUnicode function, and therefore,\h\h
upon seeing such strange behaviour, their\h instant reaction was to conclude some kind\h\h
of weird foul play, and then, pass the\h message on, which led to the “Bush Hid\h\h
the Facts” conspiracy spreading around\h forums and groups for years and years.
Usenet groups alone were brimming with the\h stuff1. But it also did the rounds in email,\h\h
on forums, and it even made it into\h the press. Because of course it did.
Hoaxes and conspiracies aside, this\h clearly this wasn’t useful behaviour\h\h
for a Notepad application to have. If\h you save a file, you kinda want to be\h\h
able to read it again…. and so, by April 2008\h Microsoft decided to do something about it.
This came in the form of Windows Vista SP1,\h where the IsTextUnicode calls from Notepad were\h\h
bolstered with additional checks, and just like\h that, Bush apparently no longer hid the facts. I\h\h
mean Saddam Hussein had been plucked from his hole\h by now anyway. The only problem of course is that,\h\h
it was Windows Vista. So most people just\h stuck with XP and Bush hiding the facts,\h\h
and the conspiracy kept spreading. That is\h until enough posts popped up explaining the\h\h
reality that it just kind of fizzled out. The\h website Hoax-Slayer being one of the first.2
The Wingdings Issue But, that doesn’t explain\h\h
the Wingdings issue, which was often shared in the\h same posts as the “Bush hid the facts” conspiracy.\h\h
Now that, is a different deal entirely,\h and honestly, even more of a piss take.
After September 11th, an email began circulating\h claiming that “Q33 N” or “Q33 NY” was the flight\h\h
number of the first plane to hit the Twin\h Towers. If you type this into Notepad,\h\h
or anywhere else, using the Wingdings\h font, then it would generate a plane,\h\h
two filing cabinets, a space, a skull and cross\h bones and, with the added Y, the Star of David.
Now this was supposed to represent,\h apparently, the strike on 9/11. However,\h\h
it’s driven off the back of a conspiracy\h theory some ten years earlier,\h\h
after the release of Windows 3.1, which\h came pre-loaded with the Wingdings font.3
It was The New York Post who kicked off the\h controversy with the 1992 front page headline\h\h
“PROGRAM OF HATE… Millions of Computers\h Carry Secret Message That Urges Death to\h\h
Jews in New York City”. *sigh* A headline that\h was clearly going to sell copies of the rag,\h\h
and it was all because typing NYC\h using Wingdings would result in this….
The consultant was testing a mailing-address\h use of the program when he noticed the letters\h\h
“NYC” had been replaced by a hateful\h message – a skull and crossbones,\h\h
the Star of David and an\h approving thumbs-up symbol.
Microsoft strongly denies any\h hidden message. Others disagree.
“There’s no way it could be a random\h coincidence,” said Brian Young,\h\h
a friend of the consultant,\h who does not wish to be named.
Apparently, the friend of an anonymous\h programmer who discovered the issue,\h\h
Brian Young, calculated the odds of the three\h letters of the alphabet being combined with 255\h\h
symbols were less than one in a trillion.\h Less than a trillion hey Brian? Good work.
This purported anti-Semitic message\h apparently referencing New York’s large\h\h
Jewish community was nothing more than random\h placement of glyphs relating to characters,\h\h
however it didn’t stop The Anti-Defamation\h League from sending a letter of complaint to\h\h
Microsoft or for it from bouncing around\h in the news for years. Even after The\h\h
League and other groups concluded there was no\h malicious intent by Bill’s software company.
Microsoft’s Brad Silverberg commented\h “The Wingdings were like Rorschach blots,\h\h
it probably said more about the person than the\h symbols”. Which, given you could extract meaning\h\h
from pretty much any words you typed; NUN is two\h poison signs with a cross; IBM is an openhand, an\h\h
OK sign and a bomb, and MILLENIUM, which would pop\h up in 1999 is this, its a valid statement to make.
A rebuke by PC Computing Magazine columnist,\h\h
Penn Jillette, quickly did the rounds,\h correcting the ridiculous claims and\h\h
odds and penning various tongue in cheek\h comments, including among other things;
There is so much hate, paranoia,\h\h
and bad math in this whole thing that\h I quit. (“QUIT,” incidently comes out;
[airplane] [cross] [hand held up] [snowflake] This must mean “A plane carrying christians must\h\h
be stopped if it’s snowing.” The odds of obtaining\h this message by chance are one in 4,228,250,625“
In an attempt to smooth things over Microsoft\h would roll out their Unicode compatible Webdings\h\h
font a few years later, in 1997, using\h this now deliberate combination for NYC4…\h\h
Something that only brought out the hoaxers\h once again. HOW CAN THIS BE A CONICIDENCE NOW.
So, as you’d expect after 9/11,\h\h
this rumour cropped up again and Microsoft\h felt obliged to issue a further statement;
“We can certainly understand how people would\h respond with some shock to this apparent issue.\h\h
We did too when it first came up nine years\h ago and we investigated it thoroughly in\h\h
partnership with the Anti-Defamation League.\h The conclusion was that the sequence in the\h\h
Wingdings character set is coincidental and\h that there was no malicious intent. In fact,\h\h
it impacted several software companies at the\h time and continues to do so. Unfortunately,\h\h
there was not an easy way to fix the problem.\h We understand that this requires explanation.
At the simplest level, wingdings and webdings are\h much like an alphabet of characters and provide\h\h
thousands of potential combinations from which\h a person could choose. Changing the character\h\h
set would create an impact of unknown scale on\h existing data and code using the affected font.\h\h
Again, using the example of the alphabet,\h what would happen to existing documents and\h\h
applications if we switched around a handful\h of letters? The likely result is that we would\h\h
create significant issues for people, cause\h some unintended humorous moments and several\h\h
offensive ones. For that reason Wingdings has\h been left unaltered since its inception.”4
Even so, they had no reason to, if people only\h looked at the facts, rather than being reactive\h\h
knobends, the claim that Q33NY was the flight\h or tail number of either of the planes that hit\h\h
the towers was completely fabricated. It was\h a hoax, designed to spread a new conspiracy,\h\h
a new drama to propagate the web. Not that people\h ever let factual inaccuracy get in their way.
Combine it with the very real bug of “Bush\h hid the facts” and you had a rather sinister\h\h
story pointed against Microsoft, and\h specifically Bill Gates… Because if\h\h
you’re gonna throw a conspiracy out\h there, he is apparently the man.
Thankfully by the end of the decade\h things had calmed down. Most people\h\h
now had a version of Windows\h that didn’t replicate the error,\h\h
email was no longer the primary method of\h spreading information, and there was now\h\h
social media and a whole spate of brand new\h conspiracies to keep people occupied instead.
Hurrah.
Fool me once, shame on... shame on you........\h you fool me, I can’t be fooled again.
Until next time, I’ve been Nostalgia Nerd.
Toodleoo.