What the #&$^# is Windows doing this time? (and other Microsoft gripes)

Yesterday, while starting up my PC out of hibernate mode (an activity done about 250 times before), after entering my username and password, Windows stared at me with a blank blue screen and a task bar (i.e. the desktop color and nothing else). Windows was certainly doing something, because the disk was thrashing. This went on for about five minutes. No activity on my part (CTL-ALT-DEL, CTL-SHIFT-ESC for Task Manager, etc.) brought about a response during those five minutes. After banging my keyboard countless times (it’s amazing I don’t break more than one a year), Windows suddenly sprang into service as if nothing out of the ordinary happened.

Can someone please tell me what the #&^$&#^ Windows was doing during those five minutes, and if it was such a mission-critical operation that NO OTHER ACTIVITIES could be taken while they ran, why there is no notice in the event log? Heck, a progress bar or meaningless popup message would have been nice.

Today, I attempt to hit the F1 key to get “help” in Visual Studio 2003 (yes, we all need help sometimes). VS2k3 has been run many times in the past, and I keep it up-to-date with the latest MSDN updates (i.e. the occasional help file updates). After pressing F1, Windows Installer pops up. Deciding to give up all hope on getting the help I need (and understanding that a random Internet search is faster than Windows Installer), I click Cancel. After about four minutes, the “Canceling…” message disappears, replaced by a new “Please wait while Windows installs…” message. I click cancel again. I shut down Visual Studio. The Windows Installer finally ended it “canceling” process after ten minutes, and I have a new message on my screen: “Microsoft Development Environment has encountered a problem and needs to close…” Yeah, yeah. Thanks for nothing.

It’s amazing how Microsoft can do so many things well, yet can’t do some of the most important things right — like make a responsive operating system. Then again, I shouldn’t expect much more. After all, this is a company that delivered an excellent development framework (.Net) yet decided that the framework includes platform-specific implementations (now that WinFX stuff is a “core” part of .Net). It’s funny how I spend a good part of my development time customizing built-in ASP.Net controls to do what I want them to do and not do what they were designed to do.

My three biggest complaints with ASP.Net, in no particular order…

  1. Naming containers. I understand why, but they make it almost impossible to write client-side JavaScript code. Microsoft’s answer to that is to register your scripts in codebehind and reference “ClientID” properties, but that is hardly a programming solution.
  2. The insistence on formatting with TABLEs (which is finally being addressed with the CSS adapters).
  3. The single-form limtation of ASP.Net, the dependency on ViewState, and the whole rely-on-postback model (which translates fine to some applications but terribly to others).
  4. The general goal of not expecting developers to write code. I want to write code — I want to control my application. Enhanced ASP.Net controls (things like GridViews) should be add-ons, much like you buy a component library from a company like ComponentArt (whose WebUI suite I use often). Microsoft can make them if it wants to, but don’t force-feed it on everyone.

Yeah I know that was four, but I’m a bit peeved by Microsoft today. 🙂

Microsoft patents an on-screen pause button

On December 6, 2005, the U.S. Patent & Trademark Office issued Patent #6,973,669 to Microsoft. The patent is for “Pausing television programming in response to selection of hypertext link.”

Here is the crux of the patent’s claim:

In an interactive television system … a method for pausing the display of a television program that is displayed at the television system in response to a selection of a hyperlink that is displayed with the television program…

In other words, an on-screen pause button that you click on to pause, and subsequently resume, the program.

Where does this fail the patent test (useful, novel, non-obvious)?

  • It’s potentially useful, though I’d say a remote control with a pause button is many orders of magnitude more useful than clicking on a hyperlink.
  • It’s marginally novel — VCRs have been displaying on-screen pause indicators for years. The only difference is clicking on an on-screen hyperlink instead of a (more user-friendly) pause button.
  • It’s definitely not non-obvious. How simple of a thought is it to move the pause button from a remote control to a video display? For years, we’ve had remote controls with touch-screen displays. For years, we’ve had computer media players with pause buttons that you can click on. For years, we’ve had touch-screen computers (allowing you to touch on that on-screen pause button in your media player). This is a very obvious implementation of a pause button, and definitely fails the non-obvious test.

One other problem with the patent is that it misuses the term “hyperlink.” A hyperlink, by definition, is “a link from a hypertext file to another location or file; typically activated by clicking on a highlighted word or icon at a particular location on the screen” (dictionary.com). A clickable word or icon which performs an action is not, by definition, a hyperlink. Of course, if Microsoft’s patent application talked about an “on-screen button” instead of an “on-screen hyperlink” it still wouldn’t change the fact that this claim is obvious.

One step closer to saying “Goodbye” to Microsoft (Part II)

(This is a follow-up to my previous post, One step closer to saying “Goodbye” to Microsoft, in which I describe my experience trying to rebuild my laptop.)

Well, the bootable Windows XP Pro CD provided from my Dell computer booted up fine and installed fine. This one requires you to activate the product online (within 30 days, of course). Fantastic, I figure I’m on the home stretch, as I have a valid Windows license.

I proceed to get the laptop back up to speed by installing the necessities from my MSDN subscription, Mozilla Firefox and Thunderbird, and Norton Anti-Virus. I’m starting to feel good again!

This morning, I decide to activate Windows (even though I have 29 days to go). I open the activation wizard and type the product key on that same sticker in the most inconvenient part of my laptop. This time I write it down on a piece of paper so as not to have to keep flipping the laptop over to read it.

Product id invalid.

Now come on, this is getting ridiculous. I then decide to register by phone. A call to a toll-free line gives me an automated bot that asks me to speak out loud the 54-key installation ID generated by the activation wizard. (As an aside, I absolutely hate when machines ask me to talk to them. I have no problem pressing the number keys on a phone, but I dislike having to speak to a computer.) Incredibly, the service never reads back any of the 40 numbers you say to it, so you have to assume they got it right. After speaking these 54 numbers, I hear…

The installation ID is invalid.

@#&^@*&^!! Did they hear my spoken numbers correctly? I have no way to tell that. Fine, let me talk to a human being. Sorry, there’s no option to talk to a human being.

I try again, and the installation ID is still invalid — but this time I am being transferred to a human being. Wait time: less than one minute. Time to complete the process with a human being: 4 minutes. Finally, I’m finished.

Is this whole process necessary? I understand Microsoft has a big problem with software piracy. However, putting in such controls that make it so difficult for a legitimate owner is hardly an effective solution to the problem. You don’t solve the problem of stolen cars by requiring legitimate car owners to jump through hoops to unlock their doors. The same theory should apply to computer software.

Once I get my laptop up and running, I’m off to the local Barnes & Noble to pick up some books. Technologies of interest include:

I can’t imagine the process of reindoctrinating myself into new technologies is going to be easy, especially considering I will not be able to alleviate myself from the death-grip of Microsoft, because it is a big part of my professional career. But all journeys begin with the first step…

One step closer to saying “Goodbye” to Microsoft

This morning, I turned on my laptop and heard an unpleasant grinding sound. I knew it wasn’t good; I’ve heard this sound before.

It was a hard drive failure.

The hard drive wouldn’t boot up at all. Fortunately, I do routine backups (to a server and to a 1GB USB flash drive), so I wasn’t overly concerned. I ran out to the local BestBuy, picked up a new 100GB notebook hard drive, and installed it in the laptop.

In my CD collection, I pulled out my trusty bootable Windows XP Professional CD, and proceeded to start the install…

  • Boot from CD… check
  • Create new partition… check
  • Quick format… check
  • Command install mode file copy… check
  • Reboot to GUI install mode… check
  • Type name and company… check…
  • Enter Windows XP Professional product key… PRODUCT ID INVALID.

Wait a minute… This is the Windows XP Professional product key on the laptop itself, that stupid Microsoft sticker usually placed in the most inconvenient spot for reading! I double-checked to make sure there were no typos.

PRODUCT ID INVALID.

Let’s not give up. I’ll look at the same inconveniently-placed sticker on my desktop PC and try that one. This should work.

PRODUCT ID INVALID.

@%!&#! I’m cursing now, and I’m very close to start throwing things.

I dig through my CD collection for another bootable CD. This one came with my Dell desktop, so I’ll give this a shot. (The laptop is a Toshiba, not a Dell, but it shouldn’t matter.) I start from absolute scratch — reformatting the hard drive, taking no chances. I wait to enter the product key…

No prompt. Huh? Does Dell have some magical detection scheme? I hope so… Either they know how to read the product key off the sticker, or somehow it has magically transfered itself despite the reformatting of the hard drive. Or, I’ll be asked later during the install, just to tease me by making me think I’ve survived the torture.

Time will tell, but one thing is now absolutely certain: If it wasn’t for SQL Server and Visual Studio .Net, I’d have moved beyond Microsoft by now.

Microsoft and Marvel to sleep together (and other MMOG thoughts)

Microsoft signed an exclusive deal with Marvel Enterprises (the comic book folks), giving the software giant rights to use Marvel’s intellectual property in MMO (massive multiplayer online) games. Read about it on CNet.

This may sound like a good deal to Microsoft, or to fans of Marvel comics and MMOs, but I wouldn’t hold my breath. Here’s why.

  • From the CNet article: “The deal is Marvel’s first MMO pact. The first title is expected in 2008.” We all know that really means 2009. That’s a long time away (although not a long time considering the development efforts required to produce an MMO), and a long time to wait when there’s already a superhero game on the market, City of Heroes, which is among the better MMO’s out there. (In fact, Marvel tried suing NCSoft, makers of City of Heroes, for copyright infringement. The suit flopped.)
  • Sony Online Entertainment (SOE), owners of the EverQuest franchise and Star Wars Galaxies), recently acquired The Matrix Online and signed a deal with DC Comics to make an online game. Sony’s the big player in the market who is running into stiff competition from Blizzard (World of Warcraft) and NCSoft (City of Heroes, Lineage, GuildWars) and is trying desperately to expand its market share. Too bad they still don’t realize that to succeed in the MMOG universe, you need good games with good quality controls. Sony’s failing miserably in the quality department, and their games are suffering as a result. Sony’s expecting its DC-branded game for a “fourth-quarter release in 2007.” We all know what that means: 2008 – a long time away.
  • Consider the similarities in a game based on the Star Wars or Star Trek (where Star Trek Online is under development) universes with a game based on DC or Marvel comics. In Star Wars, you spend time killing creatures and aliens depicted in the movies, but rarely get the chance to interact with the main characters in the movies, and pretty much never get the chance to battle and kill them (i.e. you can’t attack and kill Boba Fett or Han Solo). The same would probably exist in a comic book game – you wouldn’t be able to be Superman, nor would you be able to kill Lex Luthor. So the appeal is in the market name and, to a lesser degree, the ability to have some content, but ultimately it comes down to the main issue: Can the designers design a good game, or not? Microsoft and Sony saw their greatest success in the MMO world until they got real competition; now their market share is falling because the quality of their games isn’t good enough — despite the marquee titles.
  • Finally, Microsoft doesn’t have a lot of experience in the MMOG area. They were involved with Asheron’s Call early on but eventually bailed out, returning the game to its developer, Turbine. They are developing a new game, Vanguard, right now – a game also being primarily developed by a third party, Sigil Games Online. It appears the main attraction of Microsoft as a MMOG shop is in their marketing and distribution clout. Unfortunately, those two areas are helpful, but don’t guarantee success in this area. Sony has marketing and distribution on-par with Microsoft, yet EverQuest II can’t compete with Blizzard’s World of Warcraft because the game simply isn’t as good. Don’t expect that to change significantly in the future. Marketing and distribution will help initial sales, but it won’t give a game legs, as the EQ2 vs. WOW battle has shown.

We truly are in an age of competition in online games. How everything plays out remains to be seen. To keep up with the different games and their popularity, check out MMOGChart.

More stupid Microsoft Patents: U.S. Patent #6,895,426 – a direct attack against Thunderbird?

Back in April, I blogged on one of Microsoft’s stupid patents. (Arguably, it’s not Microsoft‘s stupidity, but the stupidity of the patent office in allowing such patents to be filed.) Well, they’ve done it again.

We all get email each day. In each email we get, we see email addresses that messages are sent from or to. It’s all rather simple and common. But Microsoft has patented a better solution:

The present invention is directed at a system and process for allowing a user to treat email addresses as objects. This allows easy manipulation of the email addresses, such as allowing them to be added to a contact list, copied to the computer’s clipboard, or double-clicked to open the related contact information for that email address sender. Email addresses are treated as objects in the message preview pane and full message windows of both incoming and outgoing email messages. [From United States Patent #6,895,426]

Ironically, if you’ve used Mozilla Thunderbird (which I do), you are familiar with clicking on an email address to access some nifty features like add the name to the address book or copy the email address to the clipboard (among other features). So what is so novel about this patent? Apparently nothing, but it does open the door for Microsoft to potentially sue the Mozilla Foundation – developers and distributors of Thunderbird – for violating this patent. That’s pretty pathetic, and it not only shows Microsoft’s lack of focus in applying for valid patents, but also shows that the folks in the U.S. Patent Office who allegedly review these patent applications do almost nothing to check their validity.

Patents gone awry: Microsoft’s U.S. Parent 6,882,706

Today, The Register reported that Microsoft patents 911 – more specifically, “a system for accessing data used by emergency services.”
If you read the details of U.S. Patent 6,882,706 and interpret the lofty “patent-speak,” you’ll realize that this is nothing more than a searchable database of emergency information with a user interface and triggers — certainly useful, probably statutory, but not obvious or unique. Apparently, the U.S. Patent and Trademark Office should hire people who understand technology.
Let’s write our own patent…


Method and system of recording and maintaining unique identity information
What is claimed is:
1. A computer-implemented method, comprising:

  • generating a pseudo-random sequence of numbers in a strictly defined format defined by the regular expression \d{3}\-\d{2}\-\d{4};
  • storing personal identifying information in a computer database;
  • storing such pseudo-random number sequence in a computer database;
  • establishing a link between personal identifying information and pseudo-random number sequence in a computer database, utilizing information previously stored in such database;
  • providing a user interface using a unique assembly of open and strictly formatted data entry fields for the purpose of entering personal identifying information into a computer database;
  • providing a user interface to automatically generate aforementioned pseudo-random number sequences and assign to individual personal identifying information, or to such information in groups (“batches”);
  • provide a user interface to query a computer database using a strict query-by-example design;
  • report on the results of said queries.

Congratulations! You just got a patent for a database to store and query on names, addresses, and Social Security numbers.