Thursday, May 22, 2008

More Vista Complaints

I've been complaining a lot about Microsoft lately, and I thought I'd add one more piece of fuel to the fire: that the extra layers of security MS added to Vista have hurt developers while not particularly helping users. The former has been clear for quite a while to anyone who's had to write real-world software for Vista. When we first upgraded Zango's toolbar to support Vista, it took us several months just to work around the problems that Vista introduced. Note that I say "work around". None of the things that Vista made it so troublesome to do were actually impossible to do: it was just much more difficult. In other words, from my perspective, Vista wasn't precisely more secure: it was just much more unpleasant. We had to add layer after layer of complexity to get Vista to do the sort of thing that you could do quite easily in XP.

Here's a great example that we ran into in our most impending client release. (More details about the release itself in a few days.) During our setup (which is a complicated, half-web, half-client-side sort of thing), we wanted to write a cookie that could be read by our website, which would tell our website that yes, our toolbar was installed, and yes, the user was now free to go access whatever content was available through our website. In any version of Windows prior to Vista, you did this through the WinInet InternetSetCookieEx() API. And you still can do it in Vista – except for the minor problem that the website won't be able to read it. You see, our installer is (necessarily) running in a privileged process, and in Vista, MS has declared that nothing in a privileged process shall in any way be allowed to talk to the browser sandbox, and cookies come in under that exclusion.

So what's the problem? Don't these new restrictions actually make the OS more secure? Well, no, not really. There are still obvious ways to get data in and out of the sandbox: you just have to make your code jump through a lot more hoops. One method to get cookie data out of the sandbox is described here; since our problem was getting cookie data into the sandbox, we took a different approach, namely, to have our BHO (which was by now loaded into Internet Explorer's protected mode process) write the cookie (using the same InternetSetCookieEx API).

The key here is that you can still do exactly the same thing in Vista that you used to be able to do in XP: it's just about 100 times harder. Instead of one or two lines of code to write and support, you now have hundreds.

Hence the syllogism:

Major Premise: Complexity is the arch-enemy of software.
Minor Premise: Vista is a major contributor to the complexity of recent software.
Conclusion: Therefore, Vista is . . .

I'll let you work out the conclusion yourself, but our developers have already drawn their own. There isn't a single developer on our client team who is a fan of Vista, and more than one has vowed that his next computer will be running OS/X.

Other folks have reached similar conclusions. I don't have any particular love for PC Tools; it should be duly noted that the more insecure people think Vista is, the more software PC Tools can sell; and I certainly don't accept PC Tools' definition of malware without significant qualification. But it's still interesting to note that in a recent study published on the PC Tools website, potentially unwanted software was actually more common on Vista than on older versions of the OS. Not surprisingly, MS has blamed users for ignoring the multitude of dialog boxes that Vista subjects them to. Somewhat more surprisingly, nobody at Microsoft gets that Microsoft's ongoing inability to differentiate between real threats and reasonable software is itself a large part of the problem.

I've said it before (here, here and here, for instance), but I'll say it again: MS needs to figure out how to fix their broken value curve, and fix it quickly.

Monday, May 19, 2008

FireFox 3

Today I did something surprising: I made FireFox 3 my default browser. Like nearly everyone else I know, I stopped using Netscape nearly twelve years ago, when IE 3.0 came out. Since then, I've taken a peek at other browsers on a regular basis, but none of them has ever offered me a compelling reason to switch. Up until the last year or so, this was because (in my opinion) IE maintained a comfortable lead in features and performance over its competition. Over the last year, as IE's lead in features and performance slowly dwindled, it's mostly been because the majority of websites were written around IE, and FireFox just didn't work as well.

All that has changed with the impending release of FireFox 3.0. For those of you who haven't been paying attention, FireFox 3 has been in beta for some six months or longer, and during that time it's progressed from being a fast and capable alternative, to being the fastest, most capable browser around. I've used Opera, I've used Safari, I've used IE 7 and IE 8 – and there's nothing like this latest Mozilla incarnation.

My own subjective experience with FF3 is borne out by the testing that Adrian Kingsley Hughes has been doing over on ZDNet. His testing shows that that FF3 is almost 10 times faster than IE7 on the same benchmarks:

What's more interesting, however, is what this indicates about Microsoft's declining ability to develop quality software. The earliest public beta of FF3 was already more stable than IE 7 after a year and a half of patches. The earliest beta of FF3 was faster than its predecessor; the first beta of IE8 is a bloated, unstable monstrosity that somehow manages to be even more slow and unstable than IE7. Every FF beta was released simultaneously on dozens of platforms; IE7 runs on XP SP2 and Vista, and under the hood is almost a different browser on each platform.

There are currently two use cases that I still need IE to support: Outlook Web Access (which supports FireFox, but only by degrading very ungracefully), and uploading batches of pictures to Picasa through the browser (rather than through the Picasa client). So I'll keep IE installed. But I plan to use it as little as possible.

Something has gone very wrong with Microsoft. Their stock hasn't been doing very well anyway – but I'm still of the mind to sell it short.

Friday, May 16, 2008

Visual Studio

In my day job these days, I rarely get to do any actual coding. I'm time-sliced so badly with management tasks that I don't have reliable time to devote to programming. I wish I was the sort of genius who could code up a solid, production-ready application in his spare time, but, well, I'm not. I'm still a decent coder, but I'm out of practice, and therefore slow. Without solid hours behind the keyboard, it would frankly be dangerous to throw anything I write into production. The cumulative result is that I don't have much excuse to spend time with Visual Studio these days.

And that's a shame, because Visual Studio is one of the very few Microsoft programs that are actually a joy to use. Unlike Apple, most Microsoft products are functional, loaded with utilitarian features, but absolutely missing anything to delight their users. In contrast, Visual Studio is just an astonishingly good IDE: it was written by developers for developers, so they knew exactly what developers would want, what they would like, and how they would want it implemented. With Vista, Microsoft's unprecedented ability to throw billions of dollars at a problem became a liability: Vista is a bloated, unpleasant nightmare. But with Visual Studio and its associated languages (especially C#), MS got the design pitch perfect, and they threw just enough money at the problem to impress me even more every time I fire it up.

So it's been fun the last week or so, as I've been futzing around (in my copious spare time) with a tiny little side project. I'm probably the only one who will ever use it, and I'm doing it more for private amusement than anything else – but it still feels good to be back in Visual Studio. It's an old friend, and I've missed it.

Sunday, May 11, 2008

Mother’s Day

I wrote this for Galena, for Mother's Day.

You were born to be a mother. You wear
Your care and kindness the way our son
Can wear a smile, with subtle flare
And silent grace. It was when Caedmon

Nestled first into your arms we knew
Who you at last have always been.
The silly and the careful, the blue
And sudden laughter of your moods

Were there for reasons neither you
Nor I could rightly guess. But when
You spend your days with one whose
Griefs with sudden joys must blend,

The mystery you always are to me
Is light to him, who only Mother sees.