Showing posts with label Vista. Show all posts
Showing posts with label Vista. Show all posts

Monday, June 1, 2009

Whatever happened to simple?

Have you noticed a trend in the world of Programming, Computer Software, etc., towards making things more complicated than they really are?

I can understand this trend in terms of my experience as a programmer. When I was young, I thought I could pretty much make anything work, and that the time it would take to make it was always fairly short. "I can make that!" Accompanied with "That's not too hard, maybe a few hours of programming!" And time and again, my estimates were way off, and things took much longer than I had anticipated, and often bloomed in ways I had not foreseen, into complexities and code-necessities that required time and thought to handle.

Add to that the typical response of non-programmers to every feature: "Build that! And have it done yesterday!", and one quickly comes to the conclusion that things are harder than they seem, more complex than they ever appear at first blush, and a self-preservation mechanism of "default to more complex / difficult assumptions" so that you have the space and set expectations that might actually match the end-result, keeping yourself out of the cross-hairs of "you're late with X feature" criticism from management.

But on the other hand, I am more and more seeing examples of folks who are either over-compensating for these factors, or who are simply coming at everything from a hyper-conservative position, making it very hard to see the simple in things.

When I began my career, Text-based GUIs were just becoming available. Programs such as Borland's fantastic Turbo series, and PC Tools suite, and Copy II PC. Much of the standard fair of GUIs of today found their genesis (at least from my experience) in these software suites. The edit box, the drop-down menu, the combo-box, the radio button, check box, push button, list box, etc., all began their life to my eyes here. And they were generally very well done. They were consistent, and relatively intuitive. These software suites were by and large simple to use. And it was fairly common to see some new innovation, some slight twist on a theme, that made using them even easier and more powerful, such as begin-typing-jump-to-first-match in a list.

But it seems to me that much of this "try it and find out" mentality has been replaced with a "form a committee to study this issue and do focus groups to determine an interface's value" type approach. And this sort of hype-conservative approach stifles innovation, and to my eyes at least, leads to a sort of dumbed down, least common denominator approach to user interfaces.

I don't know about you, but my experience of "design by committee" is that of a sub-par experience, a sort of group-stupid applied to what should be fairly trivial and obvious decisions. It seems to me that it often invokes the "what color should we paint the shed" sort of arguments, where there shouldn't be this level of discussion and focus on something so trivial.

Essentially, the preconceived notion that every decision is not a trivial one, that there's no such a thing as a simple feature is a dangerous slippery-slope in and of itself. And here's sort of the seminal argument for why a simple feature isn't: How many Microsoft employees does it take to change a lightbulb?

And although I respect that, in fact, most things are more complex than they appear at first blush... I hurts my brain to see such overwhelming odds set up against any sort of trivial and useful innovation as a type-ahead search, or perhaps more compellingly, creating a security model at Microsoft that isn't ... well ... retarded.

Some things are simple. And they need to be left to a single developer's common sense to implement them. Its great to at least review such things on a local level - maybe the group to which that programmer is assigned. But having to have every single minute bit of trivia examined as though type-ahead and security UI are of the same depth of focus and importance is.. crazy. And that way lies stagnation and poor designs.

Two examples come to my mind when I read such blogs. First: Microsoft Vista's "shut down" button, and second: Vista & W7's "Security UI". Someplace I read a Microsoft blogger's scathing post on the process behind the Start-menu's shut-down button. How that it went to multiple committees, was changed over and over during the various stages of Vista's design, and ultimately was left with an unfocused, incoherent design. Clearly a victim of Parkinson's Law of Triviality.

But it pains me to think that the many intelligent and sometimes brilliant people at Microsoft have such a poor grasp of what is meant by "Ordinary Users". Ordinary users do not feel threatened by whether something is grouped or ungrouped on the task bar! Lol - they don't even, for the most part, have any idea how to use the task bar. Raymond's example is laughable. It sounds absolutely nothing like any ordinary user I've ever heard. And yet these are the self-same folks who believe that they understand what ordinary people perceive and how they think about computers.

But when you actually sit down and use a computer, be it a Vista machine or a Windows 7 machine, and are constantly bombarded with "This action requires Administrator permissions" dialog, where you have to type the password for the admin account over and over to accomplish even day to day tasks, with no option to perma-authorize anything, you come to the inescapable conclusion that the folks at Microsoft behind this UX as they like to call it (User Experience), must all be on some serious drugs, or more likely, utterly self-delusional. Its so far from a functional, usable interface as to make me want to shame them in front of the entire class. I'd give them an "F". Hell, I'd post it in the school cafeteria's wall for all to see. I'd hold a mandatory "school-rally" to highlight the vast failure that is their security, and I'd want to interview the many folks involved in the course of creating this albatross to try to come to grips with how such an Elephant comes to reside in plain view without anyone commenting on how incredibly retarded it is, so that we can learn from their mistakes and never, ever, ever make this colossal of a stupidity again.

Or do you find that you side with the "there is no such thing as a simple feature" folks? Do you find Microsoft's UI changes in Vista and Windows 7 to be genuinely better and more usable than their overall UI in XP? Would you prefer to see every decision go through committee? Or do you see a better way?

Sunday, May 17, 2009

Windows Games Explorer

Starting with Vista, Microsoft has given us the rudiments of a way to organize our games on our PCs. A place where all of our games can be easily accessed. Great! Perhaps I'll be able to ensure that my machine is up to snuff for my games, or a way to help me troubleshoot the endless stream of problems that arise when trying to game on a PC?

Well, sort of. Like everything Microsoft, it seems, their "Games Explorer" is nice idea wrapped in a turd of an implementation.

I can add my own games links to it... though I have to do the leg work to find most games, because the GE fails more often than it succeeds at finding the games on my machine when I install them. And when I do add a game, chances are rather high that the wrong icon will be associated to it (see my rant on Program Files (x86)). And of course Microsoft didn't see fit to give me a way to edit my icons, say to fix the icon or to set start up options for my game (e.g. a command line option, many games do support them for power gamers or to avoid technical problems on some machines).

So, I have this place that is supposed to be a central launching point for all of my games, but it doesn't actually find my games, and manually adding them it generally does the wrong thing, with out recourse to correct its shoddy implementation.

Okay, well, maybe those short comings will be addressed in the next version of Windows... Windows 7. No. I'm running Windows 7 RC and I can tell you without a doubt that it still fails to detect most game installations, fails to provide basic interfaces to fix problems, fails to associate the right icon to the game in the first place, and provides no opportunities to customize the shortcut's behavior.

Hmm - well, maybe Microsoft would have thought to provide a central clearing house for ensuring that your video card is up to snuff, that the drivers are up to date, that Direct X is installed and up to date, etc, to help you be sure that your rig is configured properly to run the game your mouse is hovering over.

A reasonable set of features, a modest set of possibilities. So almost by definition then Microsoft comes to save itself from success and fails yet again.

No, there isn't any link or tools to see what version(s) of Direct X your machine is running. There's no diagnostics of any kind. What version of video driver do I have installed? Can't tell that from here. What version of Direct X does this game require? Nope, can't tell that from here either. There is a goofy number associated with each game that seems to supposedly refer to the minimum system requirements needed to play the game... the same sort of vague, poorly defined marketing bullshit that one finds on the side of the game box, that is so vacuous as to be useless to anyone but the most clueless consumer - say a 12yr old's mom trying to buy a game for him. To everyone else, these things are pointless.

But for the real stuff - the issues that get you messed up regularly when trying to play a game: Video drivers, Sound Card drivers, OS-Compatibility modes, and Direct X versions, there is absolutely no support. Zip. Zilch. Nada. Go fish. Sucks to be you.

Friday, May 15, 2009

Windows UAC: Why it is wrong-headed

The problem with the entire UAC approach to security as implemented on Vista and Windows 7 is that it is little more than way for Microsoft to punt on its responsibilities and claim with a straight face that Windows is not at fault.

As seen in the Windows 7 blog:
There has been no report of a way for malware to make it onto a PC without consent.
Sigh. Great, so your approach is working perfectly. You've gone from a system where malware installs itself while the user is doing things, to one where you bombard the user with generic, indistinguishable, relentless queries as to whether its okay to do the thing they just clicked on, and hidden in that avalanche of requests is one that is actually from a piece of malicious software, which gets approved as a matter of course, but its not Microsoft's fault anymore. Brilliant. But completely shallow, self-serving, missing the point, blame-the-victim mentality at its best (worst?)!

Many, many pundits critizied MS for its onerous UAC when it first came out. As they reasonably should have. And many of them made this exact point: if you bombard the end-user with questions that they don't understand and give equal weight to things that are ordinary with things that might actually be of concern, then they're not going to take you seriously and they're not going to spend time evaluating every single query before answering.

I mean, gosh, how many of you are familiar with "The boy who cried wolf" at Microsoft? Anyone? Anyone?

So here we are, looking towards the next version of UAC, and someone is actually foolish enough to make the exact claim that everyone denounced as stupid and self-serving for Microsoft to do: "Not our fault, you pressed okay."

Any security design that requires constant authorizations for even mundane tasks is going to create the boy-who-cried-wolf problem. Its going to cause users eyes to glass over. Its going to cause knee-jerk acceptance of the "ok" button everytime that interface is presented. IT IS NOT, at its most basic level, A SOLUTION. Its merely a way to push the blame onto the end-user. Its ... a ... marketing ... tool.

And most end-users aren't even stupid enough to confuse the two. Microsoft is only fooling themselves. When Vista's UAC first came out, everyone immediately glomed to the fact that this is not a secure system, or a useful answer or approach or remdy to the underlying first-principles cause of the problem: malicious software getting installed or otherwise allowed access to our computers.

In their defense, I certainly grant that this is a difficult and complex issue. However, I don't actually think its beyond the resources at Microsoft to solve it in a way that is genuinely useful and usable by its customers and business users.

I don't think most of this is that difficult for most users to understand: run programs at only the level of access that they actually need, and no more.

If there were a SIMPLE way to grant some programs more access than the default (which would be set to a low, harmless level), then users could grok this. They could easily distinguish that their anti-virus software needs full access to their machines, but the latest toolbar from Yahoo does not!

But since Microsoft's UAC is too fucking stupid to distinguish between the user clicking on an applet in the control panel, and a bit of software trying to install itself from a web site or removable media, then there is no way that end-users are going to be able to distinguish between when a security authorization is actually meaningful or routine.

Microsoft utterly dropped the ball here. They did nothing to improve the actual situation. All they did was blame the end-user and create a stupid self-justifying system to prove themselves un-culpable.

Its a shitty way to handle this situation, and I for one am neither amused nor tricked into believing their bullshit.

Microsoft's UAC is the biggest "fuck you" to its customers that they've probably ever done. And until they take a deep breath, and admit the truth, there is little chance of actual forward progress or rational conversation on the issue to be had.

Friday, May 8, 2009

Windows 7...

So... MS made a great product some years ago. An OS that pleased almost everyone, that was fairly simple to use, had great capabilities, could do business software, interconnect with printers, scanners, fax machines, connect to the internet, and supported vast hard drives, was quick and responsive to the user, and could be easily tweaked to your personal needs. It was the pinnacle of an age of OS technology... no, I'm not talking about Windows 7, or even XP. I'm talking about Windows 98. The ultimate hybrid of 32 bit processing and DOS mode kernel, bringing to near perfection computing on a PC. Sure there were still glitches here and there, nothing is perfect. But in many ways I contend that Windows 98 was superior to Vista, and the up coming Windows 7 from the "what does it do for me" and "ease of use" POV.

Windows XP was another high point in MS's OSes. It had the enhanced stability of the NT core combined with the vastly superior user interface supported by Windows 98, bringing to the masses a truly 32 bit OS with no legacy DOS compromises that was at once easy to use, hugely configurable and extensible by software developers, while offering robust support for the latest 32 bit technology of the chips of the day. This did away with the limitations of fixed USER, KERNEL and GUI heap sizes of Windows 98 once and for all. Gone was a need to regularly reboot the machine in order to get back missing resources that slowly leaked away into a no-mans land of purgatory, awaiting the next reboot to live again. NTFS was the new defacto file system, bringing with it massive improvements in file storage efficiency over the aging and stretched to nearly breaking FAT32 filesystem, giving us an underlying transaction oriented filesystem with much room to grow and adapt to future hardware capabilities. And much like Windows 95, XP was very well received... in time.

It is easy to forget now the many voices of distrust and dislike of XP at the time. But XP was initially criticized on many levels, for breaking compatibility with Win 9x games and software, and for foisting upon users the more error-prone and complex world of security attributes on the registry and filesystem, and user accounts that could easily prevent various software from functioning properly, or which could lock out your computer from being usable at all, were you so foolish as to forget the only account password for your machine. But in time, most folks saw that the relaxation of, and in some cases, complete disappearance of restrictions from the old DOS-kernel based 9x OSes by XP was a worthy trade-up, and the nay-sayers voices died down in a general atmosphere of contentment with XP. After all, it had taken Microsoft many years to bring the vision of a truly new OS, written from the ground up as a 32 bit fully preemptive micro-kernel-esque to the masses. An OS that was inherently stable, extensible, robust in every way, and secure enough internally as to rate a C2 level from the government. Modern computing was finally here! No more crashing the machine when a single buggy application experienced a failure. No longer would one application be able to grab access to another's memory, or to mess with any other component's state and cause harm to your PC. The dream appeared real, and for the most part, functional.

But having a single OS that both business and consumers use proved a fantastically huge target for the unscrupulous amongst us. Virus writers, malware writers, phishers, net bots, and so on found a fantastic wealth of users who didn't know how to protect themselves from the explosion of connectivity available during that time, and so Microsoft got something of a tarnished reputation for the guys that make the OS that is susceptible to every virus, malware, and bot-net ever conceived.

From there, MS, motivated to avoid losing its dominance in both the consumer market and the business market, has made more and more strident attempts to quash this reputation.

Sadly, this is what has inexorably lead to Vista and Windows 7. Not that this is all that Vista and Windows 7 are about. There is a great deal of focus and good design behind C#, and the .NET platform as a whole. There are some excellent improvements to the video device driver model, as well as to the sound subsystem. And intertwined with all of these other improvements has been the largely unheralded creation of x64 based versions of XP and Vista, with solid device driver support for the lion's share of devices for Vista x64 edition. All of those improvements are just that: improvements. They don't take anything away from the end-user, they don't make it harder to use one's computer, they only create an enhanced set of capabilities for a computer running Vista / Windows 7, especially x64.

However, all of these advancements are overshadowed by ineptitude of MS's security model. It seems to me that many parallels could be drawn between MS's wrong-headed approach to security and this nation's wrong-headed approach to foreign diplomacy under the Bush administration. Both sought to improve the security of its "citizens", and both created an atmosphere in which the evildoers and the enforcers thrive at the expense of their citizens. Our rights as owners of our own computers are less today than they were when XP was introduced, which itself restricted some of our former rights under 98.

The intent is understandable. We all want to have our computers virus, and malware, free. We want our data to be off-limits from those who aren't authorized to view it. We want our computers to remain functional under an attack - to prove stronger than the virus or malware its subjected to as we browse the wild west of the Internet. That's a laudable goal.

However, MS has built walls the likes of which can only be seen in Israel and in the formerly partitioned Germany. The very idea of such walls is contrary to freedom, to the free flow of ideas, and to empowering citizens to be able to accomplish what they want with their own computers. It takes away control from the hands of owners (users), and puts it in the hands of overseers (Microsoft). Which from some obviously Machiavellian perspective fits Microsoft's overall business goals perfectly: they gain control of everyone's PCs making people all the more dependent upon Microsoft and its affiliates for relief from problems that arise, and it helps move the entire notion of a computer away from an ownership by the end-user model towards a rental model where Microsoft remains firmly in control. Chances are good that these thoughts have occurred to Steve Ballmer or other luminaries at Microsoft. I'm equally sure that they're not the primary goal or driving force behind MS. There is no conspiracy, just motivating factors. And giving Microsoft more control, and users and businesses even more reason to need MS in order to function well, can only be seen as a good thing to those who wish to get as much as they can out of our wallets at MS (which is by definition the primary goal of any corporation's share-holders, and therefor the primary goal of the corporation's senior management).

When it comes right down to it, Vista and Windows 7's penchant for creating an even more complicated environment in which to operate as an end user is fundamentally a bad idea. It necessitates middle men to become the high priests of computers, specialized individuals who have the aptitude and training to maintain end-users and businesses computers in the face of the growing complexity of doing so. It encourages users to become ever more complacent, ever more putting themselves in the hands of an expert with no hope for taking control of their machines, of having any real understanding or ability to control them and make them work for them, and adapt to their needs, rather than the other way around.

We are more and more forced to become slaves to our computers, forced to figure out how to make them function for what we need to accomplish within the ever-more-restricted environments that they present to us, all in the name of "security."

But I ask you - what security? Real security, measurable with actual results? Or the illusion of security. The sense that it is hard for a virus to succeed because it is hard for us to succeed at using our own machines? But is there any concrete evidence that a machine, running Windows Vista or Windows 7, is any less susceptible to current viruses and malware and net bots than the same machine running Windows 98 or XP? I doubt it. I very much doubt it.

Now, I'm sure that given MS's marketing dept, a reasonable-sounding case can be made that seems like MS has made gains in theses areas. However, ask yourself: "do I feel more confident about my computer now than I did 5 years ago?" Or, "when a virus strikes, am I more or less confident that I can rid my machine of it and restore it to full operation without losing my files and configuration settings on my machine now as compared to 5 years ago?"

I suspect that, like me, you don't feel more confident now on either count. That, in truth, the complexity that makes our machines harder to understand, and harder to control works in favor of the virus writers (who can specialize in this technology) and against ourselves, who are by definition not going to specialize in every nuance of the ever-changing complexities of MS's security measures.

The fact of the matter, from the most obvious and simple stand-point, is that obscurity and complexity aids the bad guys, and transparency and simplicity aids the common person. If everyone knows the rules, then everyone can figure out how to fix it, or at least a much, much larger pool of folks can, which means that viruses are only that much more easily removed and rendered useless. They're also easier to detect, since the system as a whole is easier to understand and see what its supposed to do, and easier to see when its functioning incorrectly.

At the absolute minimum, I would be content if MS would take its ill-thought-out war on simplicity over to its business-only side of the fence. I think its still a disservice to its business customers for much the same reason that I think its a foolish policy in general, anywhere and anytime, but at least there is some real motivation from the business side... primarily in the form of "I don't care if MS bilks bajillions of dollars from a stupid sheep-like business community", but I do care if they debilitate ever man woman and child in their ill-considered quest for world-domination and perfect security.

Home users don't need, nor want, for the most part, a security model that gets in the way of actually accomplishing productive uses for their costly computers. I want my PC to auto-detect other computers on my LAN. I want to share files with my family easily. I want to be able to print to any printer on my LAN without the need for a masters in the bizarre underworld of MS "security." My wife wishes to install and play games as painlessly as possible. My daughter wants to get onto facebook or myspace and hang out with her friends. She doesn't understand, nor should she be required to understand or see or ever have to deal with a retarded "are you sure you want to install blah-blah-blah"?

If software wants to install onto a computer, a simple signature verification should be issued, and confirmed, and a user-friendly and comprehensible dialog asking if you trust X vendor should be shown. If you trust that vendor, then the software is installed and given enough rights to perform its duties. If you don't, it isn't, end of story. And if it doesn't have proper credentials, then it simply shouldn't be allowed at all except by a super-user / administrator. I, as owner of the machine, should have the right to shoot myself in the foot. Its my computer, and hence my prerogative.

But perhaps now we're wandering into a cultural stupidity that needs to be resolved in America before some of these idiocies of technology can be properly addressed. The idea of personal responsibility.

Currently, we seem to be leaning ever so precipitously over the edge of a cliff of "its someone else's responsibility at all times" attitude in this nation. An attitude that is so incredibly at odds with those of our parents and their parents and on back to the settlers and immigrants that founded this nation. If I override the warnings, and install something that ultimately is harmful to me... that IS MY OWN DAMN FAULT. It isn't MS's for failing to warn me adequately. It isn't my governments for failing to protect me adequately. It isn't my parents for failing to teach me adequately. IT IS MY OWN DAMN FAULT. I am responsible for my actions. Me and me alone. And if I do something retarded... well, I suffer the consequences. Not sue someone. "I did something stupid: so pay me lots of money because you should have made it impossible for me to be an idiot." -- who the fuck thought that this was a reasonable approach to life, and why do we as a nation seem to be wedded to this intellectually, morally, and spiritually vacuous and ultimately self-defeating idea?

Gross negligence should be the burden of the plaintiff. And if the negligence isn't gross, obvious, systematic, and otherwise blatantly out of control, then the fault is not the companies, not the governments, but the individuals. You chose to buy the cup of coffee. If you're too fucking dumb to know its really hot and hot things are owie when spilled, then you're too fucking stupid to live on this planet and fuck you already.

And I don't want to live in a world filled with limitations on what I can do with the things I buy because the manufacturer is terrified that I'll sue (and win) over their failure to stop me from being a fucking idiot. Idiots have removed themselves from the gene pool from time immemorial by virtue of their own stupidity. There is no reason to think that this is a bad thing. There is no reason that I can think of that society should endeavour or waste any resources on protecting such idiots from themselves (Though, there is a good reason to protect the larger society from such idiots).

So, in a nutshell, Windows 7 is Vista with a few minor visual baubles, and the myriad patches necessary to make Vista stable, and a continuation of the misguided policies at Microsoft which further alienate the American public and solidify their reputation for being an error-prone and user-unfriendly OS and company in general.

Apple gets no love from me, but that's a rant for another day.

And that's my take on Windows 7. God help us all.