Mar 2, 2008

21st Century Computers are Still Annoying

Let's get this out of the way right now...

It's the god damn 21st century. Why the hell are computers still slow and annoying?

This rant has been building up for some time, mostly because I come from a family that has usability and optimization in our blood.

Look, we put the Mars rovers into space and onto Mars with on 8mhz cpu's for processing. That's right, 8mhz. For those that can't imagine how fast 8mhz is, the "original" PC 8088's were 4mhz machines with a "turbo" 8mhz option. Naturally, all you did was just run it in turbo mode all the time. These days, we have computers many times faster than 8mhz. They have ghz, which is 1000x faster than mhz. And yet, they still take a minute to boot up.

Some would argue that "there's more detailed programming getting loaded." Ok, sure, you're right. But computers have ramped up in speed exponentially. Are we saying the complexity of programs has ramped up exponentially, too? If so, why? Of course you need more advanced software to run more advanced hardware. But still, part of software engineering is optimization. I think the software side of things has been resting on its laurels with all the computer speed increases so graciously hitting us over the years that they figured they could get away with not optimizing stuff. Back in the Apple days, they had to optimize the hell out of things to cram it into 640k worth of memory. These days, it's common for folks to have 2gb of memory (even in non-gaming, video, audio computers).

But, it still takes a minute to boot up. Ok, I'm not so annoyed with a minute. I can wait a minute. I have patience. What I AM annoyed at is deception. Windows is the culprit of the deception. What is the deception?

When the damn desktop shows up, you better be ready to go.

Here's the typical scenario...

* Computer boots through POST

* Windows "progress bar" scrolls for a bit to let you know "something" is happening (although not exactly letting you know how much is happening or how soon it will get done, which is pretty shitty usability)

* Login screen comes up (or, the comp just goes right to your default login, however you have it set up)

* Desktop comes up, and you think you're ready to work...BUT, no, it's laggy as hell and the computer is unresponsive

* You CTRL-ALT-DEL to bring up Task Manager to see what the hell's going on

* Sorting by CPU usage, doesn't seem like anything's going on, so you try a program again...unresponsive

* Suddenly Task Manager goes ape-shit with all these services, programs and other crap starting up and doing their thing.

* You sit for a minute (sometimes longer) waiting for this crap to finish up (either loading, or running, if it's virus scanner and the like)

* Several minutes later, YOU can finally use YOUR computer

So, what's wrong with this picture?

* The obvious is that all the post-processing BS when the desktop shows up should be going on when the Microsoft scrollbar is rolling. If something has to load, do it during the little scroll-bar dog & pony show. Don't do it when the desktop shows up and I'm trying to get started on something. Maybe it's the way Windows handles services, I don't know. But it seems like a lot of the crap that's trying to start up post-desktop arrival is some kind of service-related bullshit...anti-virus, defrag, spyware scanner, etc. Maybe it's the way the developers of those programs half-ass implemented them, to do so after the desktop shows up, expecting the user to suck it up and wait, as if their program was the second coming of Jesus Christ, and user's would sit their in awe, willing to look past the fact that they can't do whatever they planned on doing on their comp for several seconds or minutes. That's pretty prima-donna'ish if you ask me. When a user starts up the computer, the most important part of that process is...THE USER! Their the one using the computer. If you're going to keep tying up the machine loading crap, don't do it after the clear signal that the computer can be used (IE: the desktop) has been given. When the desktop shows up, everything should be loaded and ready to go, giving the User the full attention.

That "Windows Loading" scroll bar, by the way, is crap. Not saying it's visually crap, I'm saying from a usability stand-point, it's crap. Jakob Nielsen says that if some operation will take more than a second, then provide the user with some kind of feedback to let them know the computer's working. You know, like when you click something with the mouse, and the little clock shows up next to the cursor to let you know it's cooking for a couple of seconds. Ok, that's good in those situations, but more and more programs are half-assing their way with these scrolling progress bars that don't tell you shit. There have been times (when I had a data-corruption issue with Vista) where the scrolling bar would just go and go, but the comp wasn't booting up. Other times, it goes, and finally boots up. Other times, it goes for a long time and finally boots up. Other times, it goes, then goes to a black screen for several minutes and THEN finally boots up.

These are all piss-poor usability methods. Folks joke about "Microsoft time" where it's semi-unrealistic in how it gauges the amount of time left. But, I'm not asking for an amount of time to show up. What I'm asking for is a REAL progress bar. Nielsen's other usability suggestion (guideline) was that operations taking more than 5 seconds (?) should provide a REAL progress bar, so folks know the computer hasn't just locked up. Folks have gotten completely gun-shy these days seeing scrolling progress bars and mouse cursors with hourglasses, because they've seen them go on and on and on for minutes before. It always means something's hosed up and usually involves a reboot.

When I started using Vista, the pattern of operation was that the scrolling progress bar took about twenty seconds to run. When it starts taking a minute to run without me doing anything to alter that (IE: without running any updates, which usually take some time pre-boot to install), then I get worried. I tend to reboot if it's sitting for more than a minute. What I learned was this was a good way to hose your Vista machine, because usually it's updating something or sorting something out. I don't know what, but it's doing something important. So if that's the case, show a REAL GOD DAMN PROGRESS BAR so I know it's something really important and that I shouldn't reboot after a minute of seeing this scrolling bar mock me. What they should do is pop up a message stating "Doing something very important...please stand by, and do not reboot". Of course, change "something very important" with more specific dialog of what's going on. (When folks see "doing something very important" their mistrust of MS will make them think their whole porn collection is being d/l'ed to Bill Gates, or their entire torrent activity is being scanned for illegal DRM music downloads.) By showing the user an important message, along with a real progress bar, they won't get testy and reboot. Of course, this entails the progress bar actually MOVING, which, even though it's the 21st century, programs still haven't quite figured out how to do so in a reasonable fashion. (EG: installing some programs has it roll right to the half-way or 99% mark, and then sit there for 5 minutes, and finally finish installing. I attribute that to lazy programming, not some inherent flaw in Windows. Microsoft simply gives programmers the tools to use to build and implement programs. They can't dictate if a programmer's going to be lazy in using a progress bar. However, they CAN dictate whether their OWN programmers will be lazy by not using a real one during boot up.)

The other bitch-point about this is when the scroll bar goes to a blank screen and just sits there. What I've figured out is this usually occurs (in Vista) when the computer is updating itself. Some of the updates they roll out are ok. They tell you "updating 1 of 3", and they'll do their thing, but at least they give you the heads up. But when it just goes to a black screen and sits there...damn, you might as well toss up a sign that says "I've fucked up! Reboot me! Reboot me!", because that's how the user interprets it. I realized after using Vista some that rebooting in the middle of one of these black screens generally falls into the "bad" category. "Bad" like "you're going to be re-installing Vista soon, because rebooting in the middle of that black screen just botched some updates and hosed your system". Yeah, THAT kind of "bad". For something so mission-critical, why do they just have the computer sit there at a black screen? I guess when they test it on their comps at Microsoft, it rolls in so fast that they don't see a black screen? Well, great. Microsoft creates Windows, so I'm sure they have these super-leet tweaked versions they all use there. But as an average joe home user...I'm not privvy to such. I get stuck with whatever they put in that damn box, or whatever they decide to grace us with over the net. And what I end up getting is crap that makes my comp look like it locked up.

After reinstalling Vista once, I've gotten past the urge to reboot during a black screen. But I haven't gotten past the aggravation I feel when I see that insipid scrolling progress bar that tells me nothing more than "MS has started this fancy-looking progress bar that just keeps going...Vista may still be working, or it may be locked up...you don't know! And this progress bar doesn't tell you! HHAHAHAHAhahahahaha!" Fuckers. And the aggravation at the black screen is just injury to insult, literally, because if you do what comes natural, and reboot during it thinking your computer has REALLY locked up, then you're getting hosed. (Seriously, typical user will see the scroll bar and think "huh, it's not real progress...it's just this thing scrolling. So, how do I know if it didn't lock up". Then this blank, black screen shows up. To the user, that's like validation that the computer did lock up. So they reboot. They reboot during one of the most critical times Vista should NOT be rebooted...during an update. And why? Because some genius at Microsoft decided they didn't need to put in a real progress bar for the typical boot up progress, and some warnings and progress bar for boot updates. They've basically set users up to screw up their comps. Morons...)

So, how to handle this? Easy. When the comp boots up, go through POST, then Windows puts up a REAL progress bar based on all the crap it needs to load. Also, it starts a text line telling the user what it's loading. It should start up all the services and crap while doing this, too. So, you'll see a text line state "starting basic OS", then it replaces with "starting Anti-Virus", etc, etc, until all the crap is loaded, the progress bar is full, and you get tossed to the login screen or desktop. If there's programs that are user-specific, then naturally, those get loaded during another intermission before the user gets take to their desktop. But if a program, like ANTI-VIRUS, is installed at the ADMIN level, that should be starting up during initial Windows boot up! If it actually has to run, then that should run during the boot-up, or it should be made Low or Below Normal priority so it doesn't god damn interfere with the user's control of the desktop. (I have an alternate solution to this below, where the anti-virus runs on shutdown...)

* The other obvious one is that programs that are running with Below Normal or Low priority...shouldn't be tying up the machine to the point where you can't use it. And, actually, they don't. What's going on is programmers are making all their programs run at Normal priority. The user's input is also gauged as Normal priority. So, when your computer starts up, you have all these things set at the same priority you get, but because they're programs and have super response times (IE: they can request the computer to do things faster for them than you can), they hog you out of the trough. Just looking in my Task Manager, I've got Ad-Aware & AVG Anti-Virus, all starting up at Normal priority. I understand the need for security, but if they need to start up in Normal priority, they should do so during the Windows scroll-bar intro, not when the desktop shows up and I'm trying to do something.

The worst offender is Norton Anti-virus scanner at work. The IT folks are smart enough to schedule the virus scans at midnight, when nobody's around to suffer a performance issue. But, the exec's aren't so bright. They told everyone to turn their computer off before going home at night because they're penny pinching and want to save the .001 cent per night of energy that a computer uses. So, folks show up, and first thing that happens is the Norton Virus Scan that's task scheduled for midnight realizes it's over-due, and immediately starts up...while the user is trying to start their work for the day. So, they get to sit on their ass for ten minutes while it runs in Normal priority, hogging most of the computer resource, and their computer is unresponsive. Folks can always tell when this is happening, because it takes MS Outlook 5 minutes to start up. Now, let's say the average employee gets $10/hr. If they can't work for 10 minutes, that's a $1.60 you just tossed out the window, letting them sit on their duff while the computer prevented them from doing work. I can CLEARLY see the cost-savings of turning computers off at night, saving that crucial $.001 of energy each night, and having user's waste $1.60 in the morning to let the virus scan run then instead. GENIUS! (Morons...)

Look, when a virus scanner is running in Normal priority, it doesn't mean the user can use the computer as normal. The other process is tying things up as much as it can to get its job done. And the user is left in the back-seat. I don't know where these programmers get this idea that users will be able to use their computer as usual when something's processing for 10 minutes with the same priority. It's just crazy.

But, typical programs these days all want to install some bullshit service or task bar TSR (terminate / stay resident) program, because much like that one annoying teacher in school who thought kids only had his/her class, and thus piled on hours of homework every night, these programs all think the world revolves around them. So, typical scenario is that you have about 5 of these programs all vying for Normal priority resource management, not just 1. And, as the user, you can't play "whack-a-mole" fast enough with your mouse to click icons and get responsiveness as fast as these programs can hog up the resources as they become available. So, you're screwed waiting.

Or, the other response is to CTRL-ALT-DEL Task Manager open to see what the hell's going on and to try to stop some of this shit from running. This, however, takes 5 minutes to come, because since you're running in Normal Priority, you end up kicking off Task Manager in normal priority. So, all the other things are running, sucking up resources, and it seems like the computer is unresponsive even to the "Safety Net" CTRL-ALT-DEL, which is supposed to be the "stop everything, I'm taking control, so IMMEDIATELY pay attention to me now" switch. But, the way it's executed in Windows these days, it makes you feel like a scrawny dork trying to saddle up to the bar where a bunch of beefy brutes are busy drinking their asses off. You try to CTRL-ALT-DEL to get the bartenders attention, but he just keeps passing you by, because the other guys are sucking the well dry. When you hit CTRL-ALT-DEL, it should be as if you just fired your six-shooter off at the bar...everything goes quiet, you get immediate attention, and nobody's gonna fuck with you. You should get full, immediate control, and Task Manager should instantly pop up at High Priority, so you can see what that hell's going on. Nope, can't do that. You're just a user of the computer, and as we all know, the user doesn't rank as high as Windows or the programs running. You're just a scrawny little dork trying to get attention at the bar, and everyone's ignoring your pathetic attempts.

AVG Anti-virus annoys me further in that it auto-loads an email checker service. I use Yahoo web email. I don't have an email program loaded on my computer. But it still auto-loads this. It didn't give me the option to NOT load it. So, there's crap loading that I don't even want loading. I have to go msconfig it off, or explicitly switch off its service to prevent it from loading on boot. Now, I'm half-way tech savvy, so I know how to do that. But Windows is geared towards the "common denominator" user, which is not tech savvy. And Microsoft wonders why all these non-techy folks are bitching about their computer being so slow to boot and operate and use....

* Let's look at this crap from an alternate perspective. When you start up your computer, it's because you want to do something on it, not because you want to sit and wait for it to do 5 minutes of crap, and THEN let you do something on it? So, why, seeing as it's the 21st century, are users not given the option to run this crap during shutdown?

Sure, some folks never shut their computer off daily. Well, good for them. They can task schedule this crap to run when they feel like. But, a lot of folks do shut down their computer when their done. And, programs, like anti-virus, defrag, etc, that task schedule themselves to run at midnight, don't get ran during midnight, because the computer is either not on, or the user got tired of it bogging down the comp and switched it off because they wanted the resources to do something they wanted to do.

Now, using Linux, some folks have figured out how annoying this boot-n-wait crap can be. Ubuntu developers decided that every 30th boot they'd force an FSCK disk check. If you have a small disk or not much on it, it's like a 30 second wait. But if you have gigs and gigs of stuff, you could be waiting for several minutes. Some folks got tired of this, and one guy made a tweak program that let you force it to run on shutdown. Folks bitched that "FSCK should REALLY be ran on first boot." Ok, then. He made it where when you shutdown, the comp would reboot itself, run FSCK first thing, then really shut itself down. Look, problem solved. You don't have to wait for the damn thing to run first thing when you're trying to get into your comp (which is really annoying if you were just planning to quickly boot up to surf the net for movie times or something, and instead find yourself waiting 5 minutes for FSCK to run).

Now, if Windows is geared to the not-so-tech-savvy crowd, why haven't they done things like this yet? The average user should easily have the ability to tell the computer to defrag, run anti-virus, etc, etc on shutdown, not on start up or during a scheduled time. You know what, I bet a LOT more folks would end up running it if that was the case. No more switching it off, because it decides to start up (as Normal priority) when the user's in the middle of something important (which is subjective...the user could be typing up a term paper, or just trying to find some porn to fap to.) The idea is that the user is busy doing something and doesn't want to have their computer suddenly bog down as if someone else is getting the attention.

I could see Microsoft implementing this as part of Task Scheduler. It doesn't matter how it technically gets implemented in the back-end. In the front-end, integrate this option with task scheduler. Folks can go there, and click a checkbox to have something run at shutdown. Have another check-box below it that let the computer reboot itself if the process needs it to. This may or may not be rocket science to implement, but the idea is so obvious that I'm surprised Microsoft hasn't implemented it a while back. I think the answer is that it would get dicey, what with all the damn programs that require a reboot to do this and that. Microsoft has figured out ways to put DRM, advanced search, etc into Vista. I'm sure they can think of some way to make a scheduler organize all the various updates and processes that would run and in what order they'd reboot the computer until they're all finished and the comp finally shuts itself down. All the user should have to do is click "shutdown" on their comp, and the computer does the rest until it's done, and then actually shuts down.

And, yes, this goes for Windows Updates, too. These are some of the worst offenders of requiring rebooting. These things should run, update, reboot, etc during "shutdown". User clicks shutdown, let the comp update itself before doing so. All the user should see with this is maybe a pop-up saying "there's more updates, pick the ones to install upon shutdown", and that's only if the user hasn't chosen to automatically install things behind-the-scenes. It's very annoying to get going on something, then the damn balloons pop up telling you there's more updates, they were installed and no-big-freakin-suprise, we now need to reboot your computer. So, you know, it doesn't matter how important that crap was that you were working on...you need to reboot. So, stop what you're doing, because our needs are more important than yours.

Hey, you know what? Why don't you fuck off and make this shit run on shut down...whan I'M done using MY computer.

~~~~~~~~~

So, really, is this rant about how long it takes comps to boot up? No. It's about how stupid its implemented. It's the the 21st century, but we still can't get computers to do this crap. The bottom-line is, computers have gotten uber faster, and still take the same amount of time to boot up (DRM and other crap added tends to do that). And, you know what, I'm fine with that. But don't try to make it SEEM like the computer boots up faster by tossing me to desktop, and then having all this other crap starting up while I'm trying to use the computer. When I see the desktop, it should mean the computer has totally devoted its complete attention to me. It should mean it's done loading all the other crap that should get pre-loaded, and it's ready to roll doing whatever *I* want it to do.

And, as a side note, I don't have these complaints with Linux (Ubuntu). The only annoyance was the FSCK running every 30th boot, but there was a tweak that rolled that to shutdown. The auto-updates run quietly enough and don't bog down the computer, that I don't mind them running when I'm doing other things on the computer. And, they don't usually require a reboot. If they do, they don't force you to reboot, like Windows does some times (or, more annoyingly, Windows makes it seem like you have the "option" of rebooting, by asking if you do. And, if you click "no", it pops up a display letting you know that it will reboot in 5 minutes regardless of whether you want to or not. Gee, way to make me feel special...way to make me feel like I'm in control of my own computer there guys.)

It's just odd that this multi-billion dollar company seems to be failing in usability, when the open-source Linux crowd seems to be winning the war on it. And when I say "war", I'm not saying Windows vs. Linux. I'm saying Poor Usability vs. Good Usability. Usability is there to make the user's life easier. But with Windows, it's like they want to make the user's life harder. Each iteration of Windows has more annoyances to aggravate the user. They change menus around, or the way something works, so the mental model you created is totally blown out of the water, and you're stuck re-learning how to do things again.

Plus, the way they implement services, or the "uninstallation" of Internet Explorer... There's tons of crap starting up that you don't want, but they don't walk you through a wizard to figure out what exactly you're going to use the computer for, and switch off some of the crap that's not needed. Look, if internet browsers can tell that you're trying to view a flash movie, and that you don't have the flash plugin installed...then Windows should be smart enough to realize you initially decided not to use your comp as a home media center, and then later did, and walk you through turning those services back on. But, if I'm not going to use them...I DON'T WANT THEM ON! For a semi-tech-savvy person, it used to be pretty easy to go through and shut off services manually, but now, in Vista, it seems like so many are interdependent that you can't shut off the "hair dryer" service, because suddenly the "cook your food" service will no longer run without it. The Windows Media Player services are the most annoying. I don't want to use Windows Media Player, but the services are so integrated with a lot of other crap, that I can't just switch it all off.

The "uninstallation" of Internet Explorer is a real pain, too. All this is is a placebo option that just removes the icons from your desktop and such. Internet Explorer is still there on your computer, because it's integrated in with the OS. Now, I can understand integrating certain aspects, since the OS windows use a web-browser style back/forward buttons and such. But, that shouldn't require the ENTIRED IE stay installed. Windows operates with .dll's and such...just keep the necessary dll's and purge the rest. But, no. You "uninstall" Internet Explorer thinking it's gone, then you click some box in a window to get more info from the net for something and realize 2 things...

1) Internet Explorer is still fully installed, since the Windows help system just used it to bring up some Microsoft site to explain something (which is usually about as helpful as a tick on a dog's ass ... "we see you're having problems with this program...have you tried uninstalling the program?" It was giving me this suggestion when Half-Life 2 crashed for some unexplainable reason a while back. This was when I botched the updates during the black screen, and Vista went on a tear corrupting random data until it finally corrupted winload.exe and I got to reinstall the whole OS. Look, if I install a program, it's because I want to use it. If it's not working, then "uninstall the program" is not an option I want to hear. That's not help, that's annoyance.)

2) Windows doesn't really follow the prioritization of programs you choose, because I use Firefox as my main web-browser, and have it set as the main web-browser. But, no. Windows decides to ignore Firefox and open Internet Explorer. Why? Because even though I asked for IE to get uninstalled, it ignored my request. This makes me wonder how many other things I do on my computer that give the facade of doing something, but don't actually do something? It used to be a pain uinstalling programs, and them not fully uninstalling (leaving crap registry keys and files around you have to manually clean up). Now my computer's not even uninstalling things when I ask it to. That pretty much violates some trust right there. I can't trust Windows Vista to do what I ask it to. It's clearly demonstrated that when I tried uninstalling IE and it made it look like it did, but it didn't. What else can't I trust it to do? It's truly giving me the signs that I'm no longer in control. I may be a user of the computer, but apparently I'm not the controller of it. I ask it to do something, and it disregards it, because clearly I'm a moron who doesn't know what I'm doing. Not really. It's more the fact that MS has integrated it so tightly, and so much crap defaults to it, they can't risk a user getting rid of it. But, other programs can easily figure out which web-browser to use to bring up internet pages. Why can't Windows? They obviously could if they wanted to, but they don't want to modularize their OS. God forbid folks choose not to install IE, Media Player, Movie Maker, etc when installing Windows. No, we're going to force it on them without question, knowing that most folks will just use whatever's first given to them, and we can also justify the astoundingly high price by telling them they get all this "free" software along with it. Yeah, it's free software I DON'T WANT and DON'T USE. But I can't get rid of it unless I use something like vlite. So, I'm stuck with a 12-15gb Vista install, because I'm not allowed to get rid of the crap I don't want. Again, Microsoft doesn't think you're smart enough to decide what to do with your own computer. They're calling the shots for you. God forbid you accidentally uninstall the DRM, or WGA...

The 21st century, and computers are more annoying than ever (well, if you're still with Microsoft, who puts their needs and other corporation's needs ahead of yours).

0 comments: