Archive for December, 2007

The Flop That is Windows Vista

Thom posted an article on OSNews.com yesterday called Vista’s Mythical Cut Features. It got me thinking; I left a few comments on the article that really hit the heart of the matter, but Thom’s responses, and those of others, questioned whether or not the things I mentioned were cut features or not.

Longhorn, years ago, was presented as delivering on three pillars. The pillars were: WinFS, a metadata based, database-like file system; Avalon, a new .NET graphical subsystem; and Indigo, a new communications framework. WinFS is in beta now, but delivers in a far different way than originally posed. Avalon, renamed Windows Presentation Foundation or WPF was delivered with Windows Vista and is available on XP. Indigo, retitled Windows Communication Foundation, is available in Vista as well. Initially, this lends some credence to the editorial, which suggests that it’s virtually impossible to name individual “missing features” from Vista.

But upon further thought, it goes further than “which feature is missing?” Because there are loads of things that are “missing” in the sense that they ought to be included. Ultimately, where Vista fails on a large scale is delivering on the promise it made. Microsoft, not only via promo videos, but also via their insiders like Scoble, Mary Jo Foley, and Paul Thurott, started to lay the groundwork via conversations and ideas that promised a next generation operating system. A new OS, built almost entirely from scratch, almost entirely in managed code.

But they blew it. Big time.

In fact, they were so incapable of delivering that they infamously scrapped their work and rolled back to Windows 2003 SP1 in what would eventually be called the “Longhorn reset.”

Vista is an incremental change at best. This should come as little surprise, as Vista is pretty much, as described, XP enhanced twice over. Many of the changes that made it to the final version serve little purpose. The Aero interface is clunkier and less attractive than Apple’s. The Flip3D tool is cool, but ultimately, a toy. UAC is a disaster. WinFS isn’t there. Windows Mail received love under the hood, but is still second rate. The over-branding of every app and the un-customizable, dumbed-down UI is hatable. Pretty much everything about Vista is less appetizing than Windows XP, which is maturing really nicely.

Longhorn, on the other hand, was an idea. It was going to show us something new and exciting. It was going to be the best that incredibly talented engineers could come up with when they had unlimited budget, an amazing array of programmers, marketers, user interface experts, and powerful partners. But Microsoft collapsed under its own weight. They couldn’t commit to advancing things and making them work. Who could forget the Windows shudown crapfest article? This is likely a microcosm of the entire development of this OS: the lowest common denominator, the least offensive, the least problem causing thing won. And more often than not, it sucked.

This isn’t to say Redmond doesn’t count amongst its ranks, some of the best and brightest. It’s just that when you become that large, it’s hard to be nimble and stay on course. Microsoft’s newest utter failure is their foray into search — Microsoft has already lost search. I wonder if they will apply the same “we can do anything” attitude there.

The interesting thing is that Microsoft has pretty much admitted Windows Vista is a flop by feeding the press details about “Windows 7.” The very fact that they have already dumped Vista to focus on the next shining star is pretty telling.

Combine all of this with the dizzying number of “versions” of Vista, designed, as best as I can tell, to slowly extort money from you. There is no magic included with each version, you don’t get an extra disc, or more applications. You don’t get more at all, in fact, what you get is something simply less crippled. Microsoft intentionally sells versions of its own OS with features removed unless you pay more. This is the business behind the OS, and it is part and parcel of the problem – there is no respect for the client, either as a consumer or as a user. In short, they don’t deliver the best product they can, they deliver part of the product, and for more dollars, you can use some of what was there anyway. Since none of the version provide explicitly what I would want, I would need to buy the “ultimate” edition, which currently runs $329. That’s $200 more than Mac OS X Leopard.

So maybe I can’t name siginificant individual things left out of Vista besides WinFS. And perhaps the disappointment is not that the features are left out, but rather, that developers haven’t really leveraged them for fear that a Vista-only program is doomed before the first header file is included. But one thing is certain: Vista didn’t deliver on what most people expected, which was a new experience, a new OS, a new paradigm, a new adventure. Instead, they got a stinker that requires top-notch specs to perform half as well as XP. Microsoft may yet impress us with Windows 7. Perhaps their days ruling the roost of OSes have begun their long and painful wane. But one thing will remain forever clear when discussing Vista: what they “left out” was innovation and inspiration. And what we got is a flop.

Integers on the Intertubes

Some time ago, I wrote an application for my company. Like most weblets I’ve written, this used PHP and either MySQL or MSSQL for the backend. This particular application logged all phone calls. As part of the record, it would record the caller’s account number, which is a 5 or 6 digit integer.

So, I got a phone call from the director of our customer contact department this week. He was concerned about the reports. He made a decision last week that when a call came in that was a lead – in other words, a non-customer, that his people would fill the phone number from the caller ID into the account number field. But when he ran his export reports, he found that hisn techs had entered this phone number for ALL of the calls: 429-496-7295. That’s weird, he said. So he called me and asked why that was. I checked all the calls and most were from one woman, so my first instinct was “Check if her browser has autocomplete turned on”. But he swore that he tried it too and gotten the same result.

I checked the database and sure enough, it was right there: 429-496-7295, in all of the fields. So I went back to the code. In short, I took the input from the form, and declared it like this:

$accountnum = (int) $_POST['accountnum'];

Pretty straightforward: explicitly declare the type. So, I started my debugging by attempting to manually enter the data into the database. Sure enough: the account key field showed this: 4294967295.

So, I went back to the PHP and started by dumping out the raw SQL query:

INSERT INTO calls ('','x','x','x','4294967295','x','x');

What? So the database automatically converts it to this weird phone number and PHP does too? Suddenly it occured to me. One of the benefits of 64-bit computing is the ability to address more memory. There are limits to what can be done in 32-bit computing, and one is that integers have a limit! In this case, a database field called “integer” is limited to numbers between -2,147,483,648 and +2,147,483,647. It just so happens that the number is the same length as a US phone number – 10 digits. Changing the db field to “BIGINT” allowed me to manually run the SQL query and it worked. But the app still didn’t.

PHP’s int() and (int) $var syntaxes both conform to the integer limit. So I devised a work around:

$ac = $_POST['accountnum'];
if(!is_numeric($ac) { $ac = (int) $ac; }

It’s not gorgeous, but it will more than suffice for an internal app. We web programmers don’t usually have to deal with big integers, so it’s totally possible that web developers would never have had occasion to handle a situation like this. Here’s looking forward to native 64-bit for our next server, though.

Facebook and the Beacon Fiasco

It’s time for Facebook to suck it up and admit they screwed up with this “beacon” system. People everywhere are complaining that Facebook is not respecting their privacy. In at least one case, Facebook ruined Christmas. But more importantly, users – a fickle crowd, indeed – are more concerned about privacy than many people think.

Perhaps only because I’ve yet to get abused by it have I not acted on my urge to close my account, but I am pissed nonetheless than a company like Facebook – which, until the last few weeks – was the “hot, young” company in Silicon Valley, but has recently crashed and burned in many people’s minds, would do something like this. The beacon system is 100% designed for advertisers and Faecbook itself, not for users. And when you sell out your users, well, you sign your own death certificate. I could not agree any more with Scoble, who says Mark Zuckerburg ought to get his ass out there and apologize. Remember, Mark, Facebook is only worth 1 billion dollars on paper. Once your userbase distrusts you, you’re done.