Friday, September 10, 2021
Computers are always sorters

Computers spend most of their time organizing and sorting data, NOT calculating numbers.

I discussed this at length a few years ago with the original 1890 Hollerith:

= = = = = START REPRINT:

Here's a simple animation of Hollerith's 1890 Census machine. [Polistra and Happystar wanted to get in the picture, but they blocked the view of the important parts. So you'll have to imagine a person operating the press and moving the cards.]

This 1890 Tabulator only automated the most tiresome and error-prone stage of the process, counting the holes and sorting cards into 'pre-programmed' categories. When you pull the handle of the press, a grid of spring-mounted needles tries to poke through all the hole locations. Where a hole is actually punched, the needle drops through to make contact below, closing a circuit that leads to the corresponding dial above. An electromagnet ratchets the Ones dial forward one step, and the Tens dial follows by reduction gearing. Much like the escapement in a clock.

If this particular combination of holes corresponds to one of the programmed combinations, the Sorter pops an appropriate door open. You'd then take the card, drop it into the one open door, and close the door.

The programming of combinations was done mainly by soldering and unsoldering dozens of wires for each setup! There were a few switchboard-style plugin choices, which would have been like user-selected variables, not like actual software. So my animation is arbitrary, not trying to make any real combinations, showing only that the dials increment and a different door opens for each card.

This process was clearly too 'manual' even by the standards of the time, with humans performing several steps that were easily mechanized.

After 1890 Hollerith went commercial and quickly developed various ways to feed and read cards automatically, then carry them into appropriate slots. He also began to add more calculation and programming abilities.

= = = = = END REPRINT.

Now let's look at those later versions. Here Polistra is loading a stack of cards into the most basic 1957 sorter, the model 82.

Now she is selecting one column for sorting. Three turns of the crank to reach the third column. (Fancier machines had more automatic multiple choices.)

In typical use, each column carried one variable in the data, and each row in the column denoted one category of this variable. For a database of criminal suspects, the third column might be weight, with the 10 rows of the column corresponding to 90, 100, 110, and so on. The secretary in charge of this database knew these assigned meanings by heart, so she could quickly sort one column at a time. She's looking for a 5'8 white dude weighing 160, with tattoos on left arm and scar on right cheek. She would first sort by gender, picking out the pile for male; then sort those by race, picking out the stack for white; then sort those by weight, picking out the stack corresponding to 160; then sort those by height, pulling the 5'8 stack, then by tattoo, and so on. Each successive sort was smaller and faster, and the final result would hopefully pin down only a few known suspects.

When each card crosses over the selector, the first ROW with a punch triggers the chute blades to move down in unison. Here a punch in the 4th row triggers the first 4 chute blades to move down:

And then the same card enters the open gap in the chute blades, and the rollers on top propel it along the chutes. The middle of the card rides between the top unmoved chutes and the bottom moved chutes. The first chute above the open path knocks the card down into the appropriate slot.

Note that this card with a 4th row punch ends up in the 5th slot. The rightmost slot was for a card with no punches at all**. With no hole to trigger the solenoids, all the chutes would stay up. The rightmost and lowest chute would be above the card, and would kick the card into the 'reject' slot. (In modern software the 'reject' slot is a NULL or None value of the column variable.)

Computers are still mainly sorters with secondary calculating functions. In the last Windows EXE version of my courseware, the C++ source code contains about 13000 non-comment lines, of which only 120 are explicit arithmetic. In other words, only 1% of the action is adding, multiplying, sines, arctans, etc. The other 99% is pattern-matching and counting and recording. Hollerith jobs. The program presents an image or a text question; waits for a click on some part of the image or a button; increments the number answered and number correct; and holds the results in a file.

= = = = =

The business model of IBM's machines was strictly rental. The time pattern of computing business models corresponds to the timeline I observed in media. Start out as individual units, mainly in large markets and academia; spread out to broadly available individual units; re-centralize back to CENTRALLY CONTROLLED systems, turning the world into one unit.

Here's the price list for the 082 and 083 sorters from a 1957 IBM catalog, with inflated modern equivalents in red:

Note first that these machines were FAST. 650 cards per minute, about 10 per second. A typical stack would take about a minute, with a stream of cards zooming across the top and sliding into their appropriate slots. Those chute blades clicked up and down with remarkable speed and accuracy. The 82 had less electronic components than the old Hollerith; it was mainly a superfast mechanism.

In modern terms a business paid \$500 a month for the basic model 82, \$1000 a month for the fancier and more automatic model 83. As with cars, options added to the total. The accounting machines, with calculating abilities on top of the sorting, were \$1000 a month in 1957 or \$9000 today.

Comparing to human workers, a skilled secretary earned about 5 times the rental of the sorter, but a skilled accountant cost the same as the accounting machine.

These machines were usually not connected to any sort of web, but webs did exist in 1957. The telegraph system was still an active data network in 1957, and businesses could also rent private lines from Bell Tel to carry data.

Here's the Data Transceiver, able to read a stack of cards and send their data over any of the 'private webs' to a corresponding transceiver at the other end. The sending speed was about 500 characters per minute, and the price was \$200 per month, or \$1800 in today's money.

As always, renting is more profitable than selling. IBM and Bell Tel were both rental-based utilities, offering intensive and fast service for a fairly high rental.

= = = = =

** Graphic serendipity sidenote: I wasn't thinking about the reject slot when I animated this action. I just moved the bottom four guides down, then slid the card leftward and followed the first kicker above it. The logic of the mechanism WORKED even though I didn't understand it. Later when rechecking, I noticed the 5 vs 4 inconsistency, thought it was a mistake, then RTFM more closely and understood the 'reject'. As usual, EXPERIMENT LEADS TO THE CORRECT ANSWER regardless of facts and theory.