Why Does Windows Act Weird?



A lot of Windows weirdness is from a technology term called a ‘race event’, like a speed race between lots of programs all trying to compete together. Basically, that’s when software does a few things, and expects to get feedback, answers, or results from those things, and those result arrive in an unexpected order because other software is overwhelming the system. The program doesn’t know what to do with that, and either triggers an error message, or locks up. Once a program locks up, it remains in memory, and Windows doesn’t always know that has happened. And then you see this:

Translation: “The message that says that Windows is ‘ShuttingDown’ isn’t shutting itself down, so Windows can’t shut down. Do you want to ignore “ShuttingDown” and shut down before Restarting, uh, Anyway?”

In the early days of personal computers, we had MS-DOS, the old Microsoft Disk Operating System. It could run one program and do one thing at a time. Multi-tasking (walking and chewing gum at the same time, or the computer equivalent), wasn’t possible at first. So a program could do this:
Print 'hello '
Print 'world'

And that would reliably print ‘hello world’ on some device, usually a monitor, or a sometimes a printer.

But somewhere around 1994, where we had the model 80386 processors and Windows 3.11, computer chips and software gained the ability to ‘time-share’ so that programs could take turns running on the processor, and could do things without waiting for another program. That makes a few assumptions: All programs involved follow the rules, the operating system does everything right, and the hardware is functioning normally. 

And if it doesn’t, well, we might see ‘worldhello ‘ instead. That’s a very basic failure of a race condition. Each line of code worked correctly, but the results are out of order. Far more likely: gibberish output and broken Windows.

Since then, we’ve gained multi-core processors that can run far more programs at the same time. We have ‘services’ that run in the background, loading the Internet (communications), antivirus, system monitoring, video enhancements, surround sound, backups, phone-homes for both good and bad reasons, and on and on. As I write this, my computer shows 7 programs running, and 60 background processes (mostly services) either working or waiting for things to do.  CPU load is at 2%, so this is normal operation for a modern PC with this year’s specifications.

But what happens if we add a few more antivirus programs and have them monitor all incoming web pages and email? Well, they all try to do things at the same time, and things slow down dramatically. Add some more stuff, like browser toolbars, which mostly run all day long. Or view a web page that  automatically plays videos when you arrive, maybe serveral animated advertisements and a full-motion video. At some point, the software overwhelms what the hardware can deliver, either too much for the processor to calculate or too much internet content to pull down. Pieces are skipped. Videos are time-sensitive; if the image pieces show up out of order, the image looks blocky or garbled. Error messages can occur if the programs involved don’t know what to do with contents that are delayed, damaged, or out of order. Video programs know how to lower resolution or skip frames, so they can self-repair, to some extent.

Error messages, however, are written by humans, in advance. How do we do that? Well, the code is something like this, where lines 2 and 4 are ‘error traps’:

Print 'hello ' (and listen for an error number)
If error number received is 6, display 'Printer wants paper.'
Print 'world'
If any error received, display 'Unknown error after printing.'

OK, so that works unless there is an error that wasn’t expected at the time that it arrived. Most error messages say what the programmer thought was the obvious error that would happen after a specific line in a program. That’s when something happens, not what. It’s a guess.

Now multiply that by those 60 services and 7 programs that are running or waiting. Add some program code with incomplete error traps, or some software phoning home for advertising. The work area (memory) of the computer becomes messy and unstable, as programs receive web content or hardware status messages out of order, as gibberish, or not at all. In a severe case, the computer just locks up. But Windows does a fair job of cleaning up junk in memory, so what you see may simply be unexpected garbage.

So what does this mean for a computer user?

  • Error messages tell you more about when something happened than what went wrong.
  • Overloaded Windows gets weird.
  • Programmers can’t anticipate all delays or every possible error.
  • Software doesn’t deal with traffic jams well.
  • Waiting for Windows to recover from an error works, sometimes. If you don’t expect miracles.

And for things to do:

  • Refresh can help a browser program like Firefox or Chrome when the page looks like junk because it didn’t load completely. Press either F5, or Ctrl-R.
  • Rebooting a computer clears memory and work areas. (Washes the blackboard.)
  • Uninstall software that is no longer needed.
  • Avoid installing software that runs all the time.

Is That eMail for Real?

The easiest way for hackers and ransomware to mess with your computer is social engineering. Basically, that means ‘Wear the appropriate repair-guy uniform, walk into the building looking confident, and go directly to the system that you will be “fixing.” No one challenges that, right?

OK, well then, would you click on this email? I don’t remember ordering a pricy server from Amazon, but it looks like I’m getting one. I guess I’d better look in there and see who ordered it for me; could be that my account was hacked. 

Fake Amazon Order

So what’s wrong with it? Here goes, most obvious and visible items first:

  • I ordered no such thing.
  • The sender’s email address has the wrong domain, ‘amazons.com’ which is also not the web address for Wonder Woman’s family island.
  • The return address for Amazon orders is generally auto-confirm@amazon.com.
  • The format of the email is simpler than the usual Amazon shipping confirmation, missing gray backgrounds, logos, and a picture of each item ordered. It looks a lot like an Amazon confirmation from ten years ago.
  • The order number is not a text link in the email, and the last section has too many numbers.
  • “it may take 24 hours for tracking information to be available in your account.” No, tracking shows up in Amazon before the email is sent; it’s Fedex and UPS that will just say ‘label printed’ until the next morning.
  • Finally, not visible above, if you float your mouse over the ‘Order Details’ button, which is missing the orange logo that Amazon would normally use, you will see the link, which goes to usintecmedical_ com_br, not Amazon. That ‘com.br’ points to a site in Brazil, probably hacked.

What to do? Will this big Dell system show up at my door? No. I TYPED ‘amazon.com’ into my browser, didn’t follow the link, and checked. No surprises there. However, that medical address in Brazil would likely have looked like an Amazon page, asked for a login, which it would keep and use, and then forwarded you to the real Amazon. Or the site would attempt to install malware. Be suspicious. These fake confirmations can look like they come from nearly any large company.

When is a New Gadget Ready to Buy?

Most of our gadgets are combination devices, and most of them started out as something dreamed up by someone inspired by too many MacGyver re-runs. Put together a bunch of stuff, add duct tape, and hope it will work. The next version will kinda work. And eventually, it’s a real product. Our computer devices go through three stages. We should be waiting for the third one. Here is what to look for.

IBM PC Portable

First: Two Things in One Case

The early portable computers were called ‘luggables.’ I repaired an IBM Portable PC (above), which would have been new in 1984. The left side was an amber monitor (still a tube), and the right side contained a full-size computer main board. It was around 30 pounds and $2795. There were two diskette drives, no hard drive, and it could run MS-DOS. Everything in that box was full size. It was impractical, but it led to our current laptop and notebook computers.

Second: Integrated Devices

In this phase of developments, some attempt was made to make the devices work together. My first Canon fax machine, from 1993, used thermal paper, and could be used as a scanner if you had the special software from a totally-unrelated company in Canada, plus a special cable to connect it to a computer’s serial port. It was a commercial-grade fax machine that never gave me any trouble. But as a scanner, it was slow, expensive, and worthless.

At the moment, most of the “Internet of Things” category is at this phase. Door locks that you open from your phone, and so on. Somewhat usable, but mostly full of security holes. They’re not ready.

Third: Mature Technology

Motorola cellular portable telephone 1983

You live with mature devices now. The first iPhone in 2007 was a successor to the 1983 Motorola DynaTAC 8000X cell phone ($4,000, above), that might have had some inspiration from the Maxwell Smart Shoephone of the 1960’s. The iPhone is no better as a phone than the 2007 version, but the latest and greatest iPhone X (tenth anniversary) is clearly a terrific mobile computer and video studio. The launch event of a few months back never did actually show any improvements to it, as a telephone.

Combination Devices, Again

So how do you know if the device you want to buy is ‘two things in one box’ and should be avoided, or maybe it is worthwhile?

Well, the age of the combination is a good clue. I estimate that it takes 20 years to move from ‘two things in a box’ to something you want. My Cannon fax was followed by multi-function laser printers with built-in fax machines, scanners, and photocopiers, so there’s about 25 years of history in that category now. Until around 5 years ago, I had never seen one of these devices that actually scanned reliably on a network. Now, Epson and Brother can scan over wireless reliably. Other brands haven’t figured it out yet.

‘All-in-One’ computers aren’t mature yet; the combination of a computer and a flat-screen monitor is still at the ‘streamlined devices’ phase. I repair these, and they typically use a 3.5″ hard drive of the spinning variety, running too hot because it’s attached to the back of the monitor. They’re not reliable yet. They will be worth buying when they’re built entirely using notebook computer components, with no moving parts. A far better alternative available right now is to use a standard monitor with an ‘Intel NUC’ or ‘Lenovo TINY’ computer–these are small computers, around 8″ square by 1 to 3 inches tall, and they work very well for small desks.

The first television I saw with a monitor connection was around 1997. It was nearly unreadable, because the old analog TV resolution was less than half of computer screen resolution. Twenty years later, every television is a usable monitor, and many of them are excellent choices as displays if they support high-definition.

At one point, the industry was calling all of this ‘convergence’. The telephone is a video studio and a television is a computer. We no longer expect to buy a cell phone that doesn’t include a camera. We want it all to work. And there will be more combinations that we don’t expect yet. Just don’t buy the first device to ever combine two things and expect it to do either function properly; first editions have duct tape hidden inside.