Saturday, August 27, 2016

GIGO: Garbage In and Garbage Out


     In the world of computer science, where a lot of acronyms were created (and still are), there was a term GIGO. GIGO is an acronym for "Garbage In, Garbage Out". This is a shortened version of saying that if what goes into a system (a computer, as one example) is not legitimate then it cannot be processed into an appropriate output. For example, a cruise control system takes into account current gear ratio, axle speed, tachometer reading, and so forth. If the cruise control believes that the car is moving at 100 miles per hour (60 kph) then it will do inappropriate things to the brakes and accelerator if, in reality, the wheels are spinning freely on a patch of ice and the car is not making any forward progress.
     If a data entry person (who are almost always touch typists -- not looking at the keys) had their hands at the wrong point on the keyboard as they entered data into a system, then things are not going to go well. You may get a $1,000 refund or you may get a bill for $10,000. In the first example, there is an assumption -- that the speed of the axles is a reliable indication of the speed of the car. In the second example, there is a lack of verification that the correct data are being entered.
     Data can also be wrong if the input instrument fails. If your thermostat breaks, then it cannot give proper information back to the processor that controls the oven temperature. You find out when the turkey comes out raw from the oven or the bread starts burning and catching on fire.
     Unfortunately, we are not always able to know, or immediately be able to be certain, that a problem has occurred. We may come up with a result that is completely false -- but we do not know that. This is why it is so important to have secondary, or backup, systems and studies to make sure that results are consistent. In the case of scientific studies, one study may be interesting and have results that may entice OTHER researchers to try to duplicate the study or try a different approach, but the results of the one study cannot, and should not, be relied upon on their own.
    In the past decade, the term GIGO has expanded a bit. It now is sometimes used for a situation where any type of inappropriate incoming conditions results in bad outgoing conditions. Eating "junk foods" is an example of this in the area of nutrition. If you eat foods that do not supply the appropriate "building blocks" (see my earlier blogs on nutrition) then it is difficult to build, and maintain, a healthy body. Another situation might be a building that is created with bad materials (inferior steel, poorly mixed concrete, lack of specified reinforcements, ...) and it collapses when a problem (perhaps an earthquake for which it was SUPPOSED to have been adequate) occurs.
     Another situation is more human-directed. That is falsification of data. In other words, people can (and do) sometimes lie. This may be for many different reasons -- they want different results to be true or they think that other results will bring them more attention (and funding) or they trust that no one will bother to cross-check the results.Two instances (I'm sure there have been more) of this have happened in the past decade -- one dealing with autism and vaccines and the other having to do with climate change. While it is difficult to be certain of the motivations, the results were considerable -- a loss of trust in vaccinations (and a rise in preventable illnesses and deaths) and possible delays in addressing environmental problems.
      In the area of politics, of course, this happens all of the time. A politician will say something and reactions and decisions are made based on what they say. If what they say is truthful, then those reactions and decisions have a better chance to be good ones. If what they say is not truthful, then it is unlikely the results will be good ones. Unfortunately, the rules of scientific studies are rarely followed in politics -- the facts may be researched but the results of those fact-verifications are either not seen, ignored, or misbelieved based on what the recipients want to have happen.
     A situation that lies between the two is the matter of data gathering for political purposes. Polls are used to reflect, and to influence, people's attitudes. However, a poll may gather data that is not representative and, thus, the results are not accurate. For example, if a poll only calls people on "landline" phones then the people who have only cell (mobile) phones will be excluded. It turns out that certain groups of people are more likely to have only cell phones -- thus the poll will be skewed away from the cell phone group and not be accurate. Or the poll could call people only in the evening hours -- and certain groups not present during the evening hours will not be represented. Or some people will filter out calls based on incoming numbers and so only those who do NOT filter their calls are represented in the poll results. It is more difficult than ever to get an appropriate poll base.
     Finally, a situation that combines computer science, politics, polling data, and cross-checking -- voting. There are two types of fraud that can exist in elections. One is voting fraud -- where someone who is not entitled to vote (or who is entitled to vote once but votes more than once) is able to vote. This situation sounds scary but actually does not happen a lot. The other is election fraud. This is where people who should be able to vote are prevented from voting, or their vote is changed such that the person/cause for which they are voting does not get credit (possibly giving it to the opposing situation). This happens much more often than voter fraud and appears to be increasing in volume. Both voter fraud and election fraud are instances of GIGO in the political arena. They are addressed in the same ways -- simplification (fewer systems or people between the voter and the recording of the vote) and cross-checking (paper trails for electronic voting systems, receipts for voting records, duplication of systems and verifying that both results are the same, ...). Unfortunately, people often decide to make things "easy" and "fast" which tends to increase the opportunities for election fraud.
     In what areas of life do you see the principle of GIGO operating? How do you, or would you, make sure that the information, on which you make your decisions, is correct?

Interrupt Driven: Design and Alternatives

       It should not be surprising that there are many aspects of computer architecture which mirror how humans think and behave. Humans des...