June 2006

« March 2006 | Main Index | Archives | July 2006 »


Via one of the internal Atlassian blogs, I found Microsoft adCenter Labs Demonstration, which claims:

You can use adCenter technology to predict a customer’s age, gender, and other demographic information according to his or her online behavior—that is, from search queries and webpage views.

Admittedly, the small print at the bottom of the page says: "The statistics on this page are based on undisclosed size of sample data and are for proof of concept only. Actual results may vary." That said, they wouldn't be putting this up if they didn't think it was at least marginally accurate, right?

So without further ado. One of the screen-captures below is MSN's estimated age-distribution for you, my dear readers. The other is for popular children's site site Neopets.

Age demographic: <18. 24% under 18, 24% 18-24, 18% 35-49, 18% 25-34, 16% 50+

Age demographic: <18. 26% under 18, 23% 18-24, 20% 25-34, 16% 35-49, 14% 50+

The first thing to strike me about the blog post announcing the end of WinFS as a Vista feature is how totally un-blog-like it is.

Every comment (bar one) got the point. WinFS is dead. Its carcass is being split between SQL Server and ADO.NET, and the relational filesystem that was going to change the way we use computers is no longer just postponed to be shipped after Vista, it's gone.

The blog post itself, however, is written entirely in marketing-speak. The engineer talks about how super-excited the team is about this "new direction", how encouraging this news is, and leaves the fate of Vista for a final, particularly obfuscatory paragraph. Nary a word is allowed to suggest that the last nail in the coffin for Vista's most eagerly anticipated feature might be a huge let-down to those people who have been watching it slip further and further down the schedule since its fanfare announcement as a part of Longhorn three years ago.

Did Microsoft forget everything Scoble was supposed to be teaching them, so quickly?

Every now and then, you've got to put out a mea culpa. You've promised something that turned into something else, or that you changed your mind about, or that you just can't deliver. In the mass-media world, you do this by spinning the story as positively as you can. The message will be filtered by intermediaries before it reaches the public, and it's expected the journalists in the middle will get the point, pulling quotes from the positive spin to offset the otherwise negative message.

Journalists know the game, and play it because that's how things are done. Take the middle-man out, though, and the whole thing just looks like what it is: fake, fake, fake. It's perfectly reasonable to sugar-coat a bitter pill, but giving someone a teaspoon of sugar while you sneak up behind them with the suppository won't make you any friends at all.

In a comment on a blog trackbacking the original post, "Alan" adds:

Microsoft seem to have this habit of promising things they never release. They should just do it the OSX way, and only release information on components that are pretty much a sure thing, and even then only a few months tops before release.

Microsoft may have other ideas.

Apple have a reputation as an innovator, and are profoundly in the position of the underdog in the operating system wars. From Apple's point of view, the worst thing that could happen is that they announce an innovative product, only to have it pre-empted by a competitor (in this case Microsoft) before the official release, robbing Windows users of any reason to 'switch'.

Microsoft, on the other hand, are the massive incumbent with a reputation (deserved or otherwise) for producing reasonably good copies of the innovations of others. In chapter 14 of Accidental Empires, Robert X. Cringely describes five techniques a large incumbent can use to control the market:

  1. Announce a direction, not a product (people will put off buying competing products because you've just told them they're the old way of doing things).
  2. Announce a real product, but do so long before you actually expect to deliver, disrupting the market for competing products that are already shipping.
  3. Don't announce a product, but do leak a few strategic hints, even if they aren't true.
  4. Don't support anybody else's standards; make your own.
  5. Announce a product, then say you don't really mean it.

Remember, WinFS was announced before Apple first showcased Spotlight as a part of OS X. When Tiger was demonstrated at WWDC 2004, it was heralded with cheeky "Introducing Longhorn" banners, to which Microsoft adherents replied: "Sure, but Spotlight is just an inverted index hacked on top of the existing filesystem. WinFS's integrated-from-the-ground-up approach will bury Spotlight."

(Note, I'm not saying that WinFS was a deliberate exercise in vapourware. There are other, better explanations of the project's failure that more knowledgeable pundits are raking over as I write. I'm just saying that over-promising and under-delivering can be at least a short-term competitive advantage.)

The irony, of course, is that in Accidental Empires, Cringely was describing IBM, not Microsoft. The original definition of Fear, Uncertainty and Doubt, as described in the Jargon File, is:

"FUD is the fear, uncertainty, and doubt that IBM sales people instill in the minds of potential customers who might be considering [Amdahl] products.” The idea, of course, was to persuade them to go with safe IBM gear rather than with competitors' equipment. This implicit coercion was traditionally accomplished by promising that Good Things would happen to people who stuck with IBM, but Dark Shadows loomed over the future of competitors' equipment or software.

Meet the new boss, same as the old boss.

The other irony is that in this chapter, Cringely describes how these tactics, while disrupting their competitors, ended up losing IBM various segments of the PC market, losing them the respect and trust of their customers. Which sort of takes this blog-post full-circle: in the absence of an honest voice admitting fault, you're left with the immortal words of John Lydon: "Ever get the feeling you've been cheated?"


  • 10:04 PM

In preparation for the upcoming Superman movie, now is a good time to revisit Superdickery.com.

It's the secretive smile on her face that makes the picture.

The A20 Hack

  • 10:51 AM

In an article about how X-Box security was bypassed to allow home-brew software and mod-chips, the author describes how hackers managed to bypass Microsoft's secret ROM:

Unfortunately there were some 8086/8088 application that broke, because they required the wraparound for some reason. It wasn't Intel who found that out, but IBM, when they designed the IBM AT, and it was too late to modify the behavior of the 286, so they fixed it themselves, by introducing the A20 Gate ("A20#"). An unused I/O pin in the keyboard controller was attached to the 20th address line, so that software could pull down address line 20 to 0, thus emulating the 8086/8088 behaviour.

This behaviour was later moved into the CPU, which means every Intel-based PC built in the last twenty years (including the X-Box) has contained a variant on this quick-and-dirty hack, for those few 8086 applications that expected a couple of segments of memory above 1MB to wrap around.

I think there are a few lessons in here about how unused code can still be dangerous, or about how hard it is to keep a complex system secure, or just about the inertia that keeps this sort of thing in generation after generation of CPU designs simply because at each step it's easier to keep it than get rid of it.

But mostly, it's just a neat story.

Science Fiction

  • 12:46 AM

Back when I was a teenager, an adult of my acquaintance happened to pick up the science fiction novel I had just finished, and read the first page. They didn't get any further than the first page because, they said, they simply didn't understand half the words. They didn't understand the language that the book was written in.

I patiently explained that when I first read that page, the words didn't mean anything to me either. You could sort of work out what they might mean from guessing possible etymologies, but what you were really expected to do was file the word away and fill in its meaning later, when it was explained more fully.

For an unfamiliar reader, this can be disconcerting, but for an author it's necessary. Science fiction works by inventing things that don't exist, and those things all need names. Even familiar objects may need to be renamed because new slang might give more insight into the culture that produced it. Explaining each concept the first time it is mentioned would make the first few chapters of any book unreadable.

It was really just like A Clockwork Orange, just not quite as densely packed.

I wonder, sometimes, if this has influenced my programming style. When trying to introduce a new concept into my program, it seems perfectly natural to invent a verb or noun for it (a new method or object), then go back later to fill in the word's definition significantly after I've finished the sentence. So long as I picked the word right, I can recall what I wanted it to mean when I go back to define it.

Far too often, I see programmers try to get everything working top-to-bottom, in order. Like the author who must explain every word the first time it's used, they end up continually losing their train of thought because they have to descend into finer and finer levels of detail. You also end up with a mass of unreadable spaghetti-code.

This is a real book.

The Complete Idiot's Guide to Middle East Conflict

You can take as read the snarky comments about who its intended audience might be.