Tuesday, I wasted a whole hour just trying to boot up. Kept hanging. Finally figured it out: Panda (a security program!) was misbehaving for unexpected reasons. A rule of programming: never assume everything is perfect when your code runs.
The problem was either in accessing the Internet or their site, and Panda could not cope with it. Their programmers made assumptions about the Internet or their site (or both). They didn’t bother writing code to handle what they didn’t expect.
Mind you, Panda is a good program and highly rated. I see many programs, good and bad, with flaws. If I ever met one without, how could I tell? If things behave as they should, you’re only aware of the task being done, oblivious to the absence of errors.
I often see software get lost when there’s no Internet connection. All kinds of programs think they need to access the Internet, e.g., looking for updates. Yet, I’ve only seen one that actually checked for a connection before it tried to connect.
How did I solve my problem? Easy. (Sure, after an hour of trial and error.) Took Panda out of Windows Startup and put it on the Desktop. Starting up without Panda worked perfectly and no problem manually starting Panda after I was up and running.
Now, for the larger lesson. All of this could have been avoided if Windows Startup had a way to control sequence and timing. Programs in Startup can hang because an earlier Startup program had a problem (e.g., not finding the Internet).
How to prevent this? Manipulate the sequence of Startup programs, and, further, put delays between them so each has time to complete. What we need is a startup optimizer to protect us from error-prone Startup programs.
Of course, Microsoft should supply this. I can’t say for sure none exists, but I have looked and come up empty. Maybe some bright programmer will create this code for us. Meanwhile, we get burned when programmers make bad assumptions.