Starting Over

A physicist, a chemist, an engineer, and a computer scientist are in a car going down the side of a mountain when the brakes fail. They bounce and down the mountain at 60 miles an hour, barely keeping on the road, until they reach a flat area and stop with the parking brake. They get out, catch their breath, and then gather around the car, wondering what went wrong.

The physicist says — “I think the acceleration on the axle caused the fly-rods to disconnect”. The chemist says — ” I think the low pressure at this attitude catalyzed the brake fluid”. The engineer says — “I think the continuous braking overheated the pads and caused them to crack”. The computer scientist says — “Let’s tow it back up to the top and try it again…”

– Anonymous.

Rebooting, restarting, reinitializing can solve many problems. Computer software is so complex that there is a statistically non-zero number of problems that occur over the course of any period of time in most non-trivial collections of code. Therefore, the longer a program runs, the more problems are likely to build up. In fact, some beta software programs average so many problems per unit time that they rarely last for more than a few minutes before completely crashing.

Similarly although to a lessor degree, even the best software releases tend build up an increasing number of problems after they run for long enough. With several pieces of software like an operating system, web browser, and email program, they can also lose sync with each other. If you run software that shows an increasing number of bugs for long enough, perhaps finding work-arounds for more and more problems, it will probably eventually lock up. Although it doesn’t matter what gets you in the end, the most common bugs in released applications are memory leaks (forget to give back memory after you use it and eventually run out of memory), buffer overflows (accumulate items until they exceed the storage allocated and then overwrite other data or instructions), and index and counter over-runs (never supposed to reach some high limit but eventually get over-run with repeated use).

Therefore, the simplest troubleshooting advice is always the best — if you are having trouble with your Internet applications or connection, your first line of defence should be to reboot your computer and see if the problem goes away. If it does, it was because of a software bug build up. Think of it as a technology tune-up, free, costing only a bit of time. If it doesn’t solve the problem, at least you have quickly ruled out a major potential cause.

The same advice applies at all layers of the information technology architecture since they all contain considerable amounts of software. Whether a monitor, computer, or modem, your first solution to any problem should be to try to reboot it. In the extreme, you can remove the power cord or batteries to ensure a complete shutdown and guarantee an opportunity for reinitialization.