I've now completed my series about the basic functions of computers. My intent was to share information about the stack of technology that is used to perform modern computing. As part of the process I learned some new facts about the history of computers and reminded myself of the basic concepts that underly the current set of computers.
The other part of this project was generating text that could be used as the basis for a book about computers. I am very satisfied that I met that goal and have content that I can edit and enhance for eventual publication. I also understand that the topics I wrote about may be hard to understand for many people. My husband is also working on some articles about the workings of computers, I suspect that between the two of us we can develop a book that can reach a broader audience.
In the meantime, here are some of my thoughts about the series.
- A computer is a collection of on/off switches that uses mathematics and logic to emulate real world experiences and tools. Somehow this has been built into a structure that I can use to type these words and post them for many other people to read.
- A computer of any type is a stack or pyramid of technology that is integrated to work together. This means that if something doesn't work there are multiple failure points which can lead to complex troubleshooting trees to find the problem. An example, the graphics and I/O devices of a desktop computer freezes and the computer has to be restarted. There are multiple failure points, as follows
- A specific piece of software has a bug that causes a computer freeze. A fix might be getting an update for the software or checking the items listed below to see if they are causing a bug in the software
- Two pieces of software when running at the same time cause a computer freeze. Simplest fix, don't run both software packages at the same time. Harder fix, updates may be required for one or both pieces of software so they don't interfere with each other.
- There is a problem with the graphic card hardware or driver that requires an update
- There is a problem with the I/O devices, such as the mouse or keyboard, that causes a freeze. This can be easier to check, it could be caused by something as simple as laying a book on the keyboard and the computer is continually receiving input without pause. Removing the book fixes the issue.
- Another piece of hardware has a driver that is not compatible with an updated version of the operating system. The fix is downloading and updating drivers for the hardware. This can take more time since there are multiple hardware devices that could cause a glitch
- The operating system has a bug caused by some unique circumstance and freezes up. This is a summary of all of the other bugs, when the computer appears to freeze it means the OS has gotten corrupted in RAM somehow. This could be caused by updates, installation of new software or hardware drivers or some odd occurrence where multiple problems occur at the same time and cause a freeze. The Year 2000 problem is an example of an unlikely occurrence before January 1, 2000. Before 1/1/2000, there was not a problem in handling dates. After that date, software required updates in order to work properly.
- Currently the expense of software development can be offset by the reduced costs of hardware. Many years ago the opposite held true, it was cheaper to fix software instead of buying better hardware. As a result, software developers learned to code software that was very precise and efficient. As hardware became cheaper, the methods of software development didn't keep pace. This means that now it can be cheaper to purchase more hardware than it is to pay for developers to develop and debug software. This is partially driven by attempts to reduce development time and bring software products to market sooner. Better hardware can be purchased in order to cover for the bloat that has developed in many software products. This is part of the reason why software still runs at about the same speed it did a decade ago.
- Software development is in need of better techniques and practices in order to reduce costs over the long term and increase reliability with security. This is not surprising because the development of software has been around for less than 100 years. In that time software has changed from simple mathematical calculations to the use of math and logic to emulate the real world. That is a big change yet the primary software development techniques have not evolved as quickly. Many of the techniques are focused on automating software development, which doesn't address the underlying complexities. Automated development is based on the assumption that the computer can has the necessary information in good format for use in developing updated software. Based on the current issues, I feel that is a flawed assumption.
After my many years of experience with computers I could write more articles about them. However, I am ready for a break so I'll be writing about business practices and commentary on life.
I do plan to write about computers in the future, with more of a focus on using computers as opposed to understanding what they are made of. I feel it is important to help spread understanding about this topic because of how computers permeate our environment. With predicted changes such as quantum computing, I feel it is important to help others understand what we have as we leap forward with new technology. I think there should be more people with a better understanding of these tools that we use every day in so many different ways.
Pictures by J.T. Harpster, prints of selected photos can be found at our Redbubble shop
Help support our work on Patreon, get access to short stories and news about Shell Creek Publishing.