Tuesday 26 October 2010

"Not Responding" - What does it mean, and what do I do about it?

Summary: “Not Responding” is Windows' way of telling you that a program might have a problem. Sometimes “Not Responding” is benign, but sometimes it's a sign of a deeper issue.

I am using windows XP PRO, and I am having difficulty when I am browsing or using a program. After a few minutes the computer freezes and I get a message in parenthesis saying (not responding). Sometimes I have to log off and log-on again to fix this problem. But after a few minutes it happens again. How can I fix this?
"Not Responding" appears in the title bar of a running program when Windows detects that the program isn't behaving properly. Exactly why depends on the specific program and what you were doing at the time.
Let's look at some of the possibilities which range from actual software or hardware problems, to user impatience.
Windows expects a running program to "interact" with Windows, and respond to Windows' requests in a timely fashion. If you type a key and the application doesn't take it because it's too busy doing something else, that could be a problem. Similarly, if you click on the Close Program "X" on a programs's window, and the program doesn't acknowledge that, then that too is a potential problem.
When Windows asks a program to do something, like take a keystroke or close itself, and the program fails to acknowledge that request within a certain amount of time, the program is "Not Responding". If the program never comes out of that state, we might also call it "hung", as in "hung up" on something.
There are "legitimate" reasons this can happen. For example, if the program you're using is doing some very long, CPU-intensive calculation, it might not respond in a timely fashion. An example might be a graphics program performing a reduction or other operation on a large image. If, during that operation, you attempt to close the window and nothing happens, after a few seconds Windows might add "(Not Responding)" to the title bar to indicate that it has tried to pass your request to the application, but the app's not listening.
"Anything that causes the application to stop responding can cause Windows to add the '(Not Responding)' moniker to the title bar."
While it might be considered bad form or bad design to not respond to user input or to Windows while performing lengthy calculations, it's quite legal and legitimate. Once the calculation is complete, the program starts listening and responding again.
A recent real-life example of my own: earlier this evening I was working on a Visual Basic program that performs various database operations. I modified it to access a database remotely across the internet which turned out to be a mistake, because the operation became extremely slow on my DSL connection. While VB was accessing the database, it was unresponsive to everything else. Windows tagged it as "(Not Responding)". Since I hadn't saved my program to disk (bad form on my part), I was loath to just kill it and lose my most recent edits. So I just let it continue while I did other things. An hour later the operation completed, and VB became responsive again.
Anything that causes the application to stop responding can cause Windows to add the "(Not Responding)" moniker to the title bar.
So while lengthy calculations are one semi-legitimate way it could happen for a while, what are some of the other things that can cause it?
  • Programming Error - the classic case of an "infinite loop" in programming is perhaps the most common example - if an algorithm is mistakenly written such that it never ends, and within that algorithm Windows is never given a chance to operate, the application may become "hung" and unresponsive. As a user of the app, there's not much you can do here except avoid whatever it is you did that brought the application to that point.
  • Software Design Error - really just a variant of the preceding point, but I think of it as a different class of problem. The example I see from time to time is a program that displays an error message in a pop-up box. Some applications transfer total control to that message box such that the application's main window will stop responding until you click "OK" on that message. If for some reason that box is displayed improperly - say off the screen, or behind the application's main window - then it will appear as if the application is hung as it waits for you to click on the message you can't see.
  • Hardware - hardware that is malfunctioning can, in some cases, cause the software that interacts with it to fail in ways that make it unresponsive. For example a USB card reader might experience a failure, and the next program to attempt to read from the device might end up "(Not Responding)" because of the problem.
  • Hardware Drivers - This is really just a combination of the previous points. All the hardware on your system is in some way controlled by software. If that software has a bug, even if the hardware is working properly, the result could be a hung application. If hangs appear to be related to interacting with a specific device it might make sense to make sure that you have the latest drivers for that device - not to mention the latest updates for Windows as well.
  • Viruses and Spyware - whether intentional or simply because they're poorly written, viruses and spyware can in fact cause other programs or Windows as a whole to misbehave in various ways including causing applications to become unresponsive. Make sure your anti-virus and anti-spyware software is running and up to date.
All that is pretty vague, I know. It almost boils down to "it could be anything", which is unfortunately fairly accurate. The actual cause, and the solution, will depend on the specifics of what you're seeing. Does it happen all the time, or only when you do certain things? One specific application, or several? All of these things and possibly more are clues necessary to ferret out the cause and come to a solution.
Without more specifics, my general recommendation is to make sure Windows is up to date, make sure your hardware drivers are up to date, make sure that the anti-virus and anti-spyware packages on your system are working and have up to date databases. If the problems persist, try to narrow down the common causes, if any.

9 ways your account can be Hacked, even with a super-strong password.

Summary: Strong passwords are important, but they don't protect you from everything. I'll look at other ways that your account can be compromised.

I sometimes play a game online to pass the time. It's a simulation type of game but I like it. One day I logged into my account and realized that someone had changed the password and taken all my stuff. How is it possible that they've hacked my account? My password has plenty of characters, is almost impossible to guess because it sounds like random gibberish to everyone else except myself, and there are plenty of numbers and secret characters in it. Is it true that they used a hacking device or program of some sort to hack my account?
I can't say what could have happened in your case, specifically.
However...
I can think of a number of ways your account could have been compromised.
OK, you've got a great password - something like 0jrkdiGv5Q@n - something that is not going to be guessed, and certainly no current computer is going to get to in the next century by trying all possible combinations.
What else could go wrong?
"It's great that you have a strong password - that already puts you ahead of the majority of computer users ..."
  • You have a key-logger. Key loggers, short for keystroke loggers, are malicious programs that are installed and transmitted as viruses or spyware. Once your computer is infected with a key logger it could be recording every keystroke you press, and then sending that off to some central "hacker headquarters" where the results are analyzed and account login IDs and passwords are extracted. By the way, "keystroke logger" is a misnomer these days. Just about anything you do can be recorded, including mouse clicks, screen shots, and even network traffic, rendering most of the ways to supposedly "bypass" keystroke loggers completely ineffectual.
  • You logged in on a public computer. Not only can public computers be completely infested with malware including the aforementioned keyloggers, but they can also have hardware logging devices installed. Even if you scanned, you'd never tell from the software installed that your keystrokes and all that other activity might be captured by a device attached to or inside the computer itself.
  • You've been phished. This is happening a lot, particularly in online games. You receive a message supposedly from the game administrator that you need to visit a web site to gain access to some in-game bonus, or validate your account or risk being banned. When you go to that site you have to login and ... you just gave your login information to a hacker. Phishing is, of course, not limited to these in-game messages - they can be just about anything to get you to divulge your username and password.
  • Your password is great, but your security questions? Not so much. Security questions are often used to validate that you are who you say you are when you click the "I forgot my password" link when attempting to access your account. If those security questions are the all too typical simple kind like your birthplace or favorite color, my guess is that someone who either knows you or has read your profiles on social media sites can probably answer them. If they can answer them many times that means that they can gain access to your account. This varies depending on exactly how the security questions are used, but it's very common.
  • You logged in over an open WiFi connection. This could be while at Starbucks or some public location that has open WiFi. It could even be your own home if you've not enabled WPA encryption on your wireless access point. I'd be shocked if the game you're playing encrypted its login transactions, or for that matter any part of the game experience. That means that anyone within range (meaning perhaps within a few hundred feet) could "listen in" to your network conversation and see your login ID and password as they passed by from your computer to the gaming or other server.
  • You walked away while logged in and someone walked up to your computer and changed your password. Or changed your security questions. Or changed your email address associated with the account so that they could later say "I forgot my password" and "recover" access to your account.
  • You left your computer accessible. There's no substitute for physical security if someone can just walk up to your computer and start searching for things that might help them. If your game allows you to remember login IDs or passwords, those are probably accessible somewhere and anyone with physical access to your machine could conceivably find them. Even a Windows password is not enough, since those are easily bypassed or reset by someone with the proper knowledge and tools.
  • You told a friend. Sadly this happens more often than we think. Sometimes the easiest way to share something is to just let your friend (or spouse, or child, or parent, or ...) login "as" you - so you give them the password. Later when they're angry or hurt or no longer your friend they can login and change your password thereby locking you out.
  • Someone watched you login. "Shoulder Surfing", as it's known, is as simple as it sounds - letting someone watch you type in your password could be enough for them to memorize the keys you typed. It's not necessarily easy, but depending on how you type and how well that person watches and remembers, it's not an uncommon way to get a password - even a complex one.
It's great that you have a strong password - that already puts you ahead of the majority of computer users, sad to say. But it's not something that protects you from all threats. Be aware of the scenarios I've listed, and for those that you think might apply take appropriate steps to minimize the risk.

Wednesday 20 October 2010

What's a BIOS?

Summary: BIOS, for Basic Input Output System, is the software already built in to you computer. It's primary job? Load other software.

I keep hearing people talk about something called a BIOS in my computer. What is it?
Your computer's BIOS is perhaps one of the oldest legacies of PC computers. It's special software that's on your computer before you take it out of the box, and before you even turn it on.
Even before the computer has a hard disk installed, the BIOS is there.
It's software that has a critical role in getting your computer started.
It's a little like my morning coffee that way.

The BIOS, for "Basic Input Output System" is software (or more properly, "firmware") that resides in a special memory chip on your computer's motherboard. The BIOS begins running the instant that your computer is turned on, before any other software is loaded. It runs before your hard disk is even touched, or for that matter before your computer even knows that there is a hard disk.
"Your computer's BIOS is completely separate from (and unrelated to) Windows ..."
Your computer's BIOS is completely separate from (and unrelated to) Windows or whatever other software you might have installed on your hard drive.
The BIOS has three primary purposes:
  • When you first turn on your machine the BIOS performs various tests - called the "Power On Self Test" or POST - to ensure that your hardware is operating properly at some basic level. It'll perform tests such as ensuring that memory is working, a keyboard is present, and that a hard drive can be found. The tests are not exhaustive (so as not to delay the next step), but often detect basic problems that would impact your ability to use the computer.
  • After completing the POST it's the BIOS that boots your machine. It figures out what device (Floppy? CD/DVD? Which of several hard disks perhaps?) to boot from, and then loads and runs the software that it finds on the boot device. It's likely that on your computer this is where Windows starts to load.
  • After the operating system is loaded, the BIOS is still available and can provide a common software interface to some of your computer's hardware. It's not uncommon for Windows (or other operating systems) to continue to use the software in the BIOS to access your hard disk or other common hardware.
The BIOS originally was truly software in hardware - it was placed in unalterable read-only memory (ROM) and could be replaced or updated only by physically opening the computer and replacing the chip that contained it.
In later years, ROM's were replaced with "Flash ROM's", which are similar in some ways to the Flash memory used in USB memory sticks and memory cards. The contents of the Flash ROM could be replaced by a upgrade process that required only special software. Typically this involved booting from a floppy disk and running a utility specific to that particular motherboard and ROM that would perform the magic sequence to replace the Flash ROM contents.
Unfortunately, if that failed, and the BIOS was incompletely updated, the result was often a dead motherboard. While all the hardware might be in fine working order, without a working BIOS there is no way to boot - not from floppy (to update the BIOS) or from a hard disk or from anything else for that matter. Initially, that meant physically replacing the chip once again.
Fortunately, memory got cheaper and many machines now include a backup copy of the "factory original" BIOS on the motherboard which can be reset - typically by opening the computer and setting a special jumper on the motherboard or some other special sequence. (The specific technique varies based on your motherboard.)
Normally your BIOS is not something you really need to think about. In fact, unlike other software on your machine I actually recommend updating it only when there's an identified need. Since it is possible for a BIOS update to fail, and recovering from that failure can often be quite painful, it's often just not worth it. When I've checked, most BIOS updates available for my equipment actually have nothing relevant to my machines or usage.
On occasion, however, updating a BIOS can be just the thing to do for specific problems. If that's the case, research on that specific problem will lead you to a BIOS update.

Tuesday 19 October 2010

What is bandwidth?

Summary: Bandwidth is a term you hear frequently but it can be confusing and it's easy to gloss over exactly what it means.


Can you explain bandwidth to me in layman's terms? I have looked it up on the internet, but I get the standard mathematical explanation. My brain doesn't really work mathematically so I need something a little more tangible, or some examples of what is FAST and what is SLOW. For example, according to bandwidth.com, my download speed is 17237 kbps and my upload speed is 1615 kbps. I understand that means 17.237 mbps and 1.615 mbps respectively. But what does that mean? Is that fast? Slow? What do I compare it to?
That's fast. Compared to me, anyway, that's fast. Given your ISP (from your email address) and the speeds you're seeing I'd guess you probably have cable internet.
I'm going to bring out the oldest metaphor I have to try and put a handle on how fast is fast. No math, but first just a teeny, tiny bit of computerese.
That part's inevitable.

First, let's define the term: bandwidth simply is the speed at which data is transferred. Sometimes bandwidth is also used to refer to the maximum capacity, or the fastest, that a connection could move data.
Now let's define what you were told: 17237 kbps is 17237 "kilo-bits per second". "Kilo" is 1000, so what you're seeing is 17,237,000 bits per second.
Your math is correct: mbps is "mega-bits per second" so that's17.237 million bits per second.
For that to have some meaning, we need to understand what bits are, and how they're used to carry information.
You probably know that a bit is a single "thing" that can be either 0 or 1. Nothing more, nothing less. Everything in your computer, everything digital, everything you communicate on the network and on the internet is built on the fundamental concept of a bit. Everything. The bit is the very definition of digital.
"The bit is the very definition of digital."
Bits are commonly handled in groups of 8 called bytes. If you look at 8 bits whose possible values are either 0 or 1 each, the collection can have up to 256 possible unique combinations:
00000000
00000001
00000010
.
.
11111110
11111111
Now, when we represent text - such as the text you're reading here - on a computer, the most common way to do so is to use one byte for each character. So if I type, "The quick brown fox jumped over the lazy dog," that took 44 bytes to store all the characters, including the spaces between the words.
Now we break out the metaphor: The Bible.
Let's be clear; it doesn't matter if you believe or not. This has nothing to do with the contents of the Bible, only its size. You've probably seen one, perhaps even own one, and have a good sense for how big it feels, how hefty it might be, and how long it might take to read it cover to cover.
The Bible is a fairly sizeable common frame of reference.
You can download the text of The Bible from project Gutenberg as plain text meaning that it has only the text of The Bible, in its simplest form.
A representative copy in this digital form is about 5,000,000 bytes, or more commonly 5 megabytes.
And here comes just a little math.
Five megabytes at 8 bits per byte is, roughly, 40,000,000 bits.
On your 17,237,000 bits-per- second connection, that means you can download the entire Bible in about two and a half seconds. In the other direction you're running 1,615 kbps, so it would take you about 25 seconds to upload it.
Now let's compare that to some other common bandwidth figures and see how long it would take to transfer The Bible at those rates:
Connection TypeCommon BandwidthOne Bible Time
Common Dial-up28kbps23 minutes
Max Dial-up56kbps12 minutes
Basic DSL768kbps52 seconds
T-1 / DS11.5mbps27 seconds
You (Cable)17.237mbps2.3 seconds
Max FIOS50mbps0.8 seconds
These are approximations meant to be examples of orders of magnitude. Your mileage will almost certainly vary and will likely be not quite as fast as the numbers above should you actually download a 5 -megabyte file. These numbers assume you have 100% of your connection available to you (which is not always true on shared resources like cable), and that the download is the only thing happening. I'm also completely ignoring any overhead caused by the way the internet and networking work in general. Typically, if you're getting within around 80-90% of these numbers, life is pretty good.
Naturally, we don't all go around downloading Bibles all day. But using that as a common physical object that translates into an easy- to -remember number of bits (40 million), perhaps that'll help give a sense of what bandwidth might mean and how fast your connection might compare to others.
As one final exercise for those so inclined, I'll point out that a data CD holds around 700,000,000 bytes, or 5.6 billion bits. A DVD? 4.7 gigabytes, or 37.6 billion bits. I'll let you do the math for your own connections, but for my T-1, that means with ideal conditions it would take me a little over an hour to download a CD and around 7 hours to download a complete DVD.