Think Black

Home > Other > Think Black > Page 10
Think Black Page 10

by Clyde W. Ford


  Even years before Miss Silva’s rigid insistence that musical instruments somehow aligned with gender, I’d overheard my father more than once whispering to my mother his fears about my being gay because I never took to baseball, even though he tried his best by taking me to games at Yankee Stadium. Terms like geek and nerd had not yet entered the popular lexicon, so he found himself in a bind when I bounded with joy at the prospect of accompanying him on a trip to IBM World Headquarters to help with the latest computer but failed to display a similar “manly” enthusiasm when Mickey Mantle or Roger Maris, baseball greats of the era, stepped up to bat.

  One Saturday morning in the late 1950s, I accompanied my father to 590 Madison Avenue to help him and a group of systems and field engineers1 perform a memory check on an IBM 705, recently installed in the basement of the world headquarters building. Heading south into Manhattan from the Bronx, the #2 train rocked and rolled. My father leaned in to deliver a now-familiar line.

  “Computers will control your life one day. Better if you learn how to control them first.”

  At the time, the IBM 705, a successor to the IBM 407, was one of the world’s most advanced commercial computers, with a processor capable of 0.04 MIPS (millions of instructions per second), disk drives able to store 60 kilobytes of data per drive, and 20 kilobytes of memory. I walked through the doors of the data-processing center holding my father’s hand. My head reached just above his waist, while above and around me, seemingly endless tape drives jerked, disk drives whirred, and vacuum tubes glowed. With the machine’s housings and covers removed, men scurried between rows of the 705’s electronic guts.

  My father, thoroughly trained on the IBM 705, sat me down at the operator’s console with very specific instructions: An engineer would call on the rotary-dial telephone sitting next to the console and tell me which of the many switches to set and which of the many buttons to press in order to activate specific memory locations. A group of engineers would then hustle over to the vacuum tubes managing those memory locations and ascertain that all the filaments glowed. Tubes would be replaced as needed. Then I’d receive another call with instructions to activate a new memory location, and the cycle of inspection and replacement would repeat.

  As much as I loved the feeling of power that came with flipping switches, punching buttons, and sending a group of adults running around a room, it turned out to be grueling work for an eight-year-old. With 1,700 vacuum tubes glowing, and electricity running through miles and miles of wiring consuming 70 kilowatts of power, a full IBM 705 system easily weighed 16 tons, generated 250,000 Btus of heat, and required the equivalent of 1 ton of ice per day to cool. Needless to say, the room housing the 705 felt frigid. With the sprawling size of the 705, I experienced long periods of boredom as my father and the other engineers walked long distances to inspect and replace tubes.

  It helps to put the 705’s specifications into perspective. If you consider that the smartphone you are carrying has at least 8 gigabytes of memory to store pictures and music, a 705 with 20 kilobytes of memory had roughly 1/500,000 the memory capacity. And that smartphone’s 8 gigabytes of memory fits into roughly the same physical space as 1 bit of memory on the 705, less the vacuum tube circuits to control that bit of memory. In other words, the memory of a 705 would occupy the physical space equivalent of the tip of a pin when compared to the memory of your smartphone. A 705 had a processing speed of approximately 0.04 MIPS. Your smartphone’s processing speed can easily reach 71,000 MIPS, an almost 2-million-fold increase.

  While vacuum tubes performed the processing logic on an IBM 705, they could not function as memory: turning on and off power to the machine turned on and off power to the vacuum tubes, and hence no tube could retain its state. So the IBM 705 had an array of tiny ceramic and iron donuts called ferrite cores, one-quarter of an inch or less in diameter. Each core had several wires threaded through it—directional wires and sense wires. Directional wires magnetized the core in either a counterclockwise or clockwise direction (on or off, 1 or 0), while sense wires determined the direction of magnetization. Once a core was magnetized in a counterclockwise direction (representing a 1, for example) it would retain that magnetization even if the machine lost power, hence core memory was nonvolatile.

  My work at the operator’s console—flipping switches and punching buttons—helped to isolate bits of memory that the engineers could inspect. Today, a check on 8 or 16 gigabytes of memory in a smartphone or a laptop happens in a few milliseconds, but in those days a memory check on a model 705 might take all weekend. When my father and I left for home that day, the 705’s memory check still had not been completed. Yet whatever I’d accomplished at the operator’s console met some unspoken benchmark set by my father. Even though I was not yet ten years old, on that day a more formal tutelage in computers began.

  It started with binary arithmetic.

  Holes punched or not punched in card columns; switches set on or off on a control panel; logic circuits buzzing with electricity or silent; core memory magnetized in one direction or another; pixels illuminated or dark on a screen—all digital technology centers on the duality of being and not being, of existence and nonexistence, of here and not here. Punched, on, buzzing, counterclockwise, and illuminated can be represented by 1s. Not punched, off, silent, clockwise, and dark can be represented by 0s. In this way, 1s and 0s are mathematical shorthand for describing the state of any collection of digital devices.

  In an office entered from the front corner of our living room on 221st Street in the Bronx, an IBM THINK sign stood sentry over my father’s large wooden desk. He set his pipe in an ashtray, though the smell of his cherry-blend tobacco lingered, and tapped a blank sheet of paper with his pencil.

  “Count,” he commanded. His baritone voice had the power to make me tremble.

  He wrote down the first three binary numbers—000, 001, 010.

  “Zero. One. Two,” I said.

  At eight years old, I thought the binary numbers looked strange, more like 0, 1, 10.

  “Now the next three,” my father said.

  He wrote down 011, 100, 101.

  “Three, four, five,” I said.

  “And the final two.”

  He wrote down 110, 111.

  “Six and seven.”

  “Good.”

  But it wasn’t good. I knew how to count in decimal and had simply repeated the numbers from 0 to 7 without really understanding the relationship between those numbers and the strange way they now appeared. My father also knew that, so he flipped the page and wrote down a random binary number, 101.

  “What’s this?” he asked.

  I hesitated.

  “Count,” he said.

  “I’m confused,” I said.

  “First position on the right represents a one. Second position on the right represents a two. Third position on the right represents a . . .” He paused.

  In a weak voice, I answered. “Three?”

  “Wrong,” he said. “Four.” He tapped each digit with his pencil. “One is on. Two is off. Four is on. One plus four is?”

  “Five?”

  “Right. In binary, 101 is five.”

  “It looks like one hundred and one,” I said.

  “But in binary it’s only five,” my father said.

  “It’s confusing.”

  “Try this.” He wrote down 011.

  I studied the number, then guessed, “Two?”

  He tapped each digit with his pencil, beginning on the right side. “One is on. Two is on. Four is off. . . . One plus two is?”

  “Three,” I said, though I still didn’t really get it.

  “This is the math I use all day at work,” he said.

  It went this way when my father came home from work and on weekends. I’m not certain that I ever really understood binary in those days, but I did get really good at recognizing any binary number between 0 and 7. I even tried out binary on a classmate. I scribbled 101 in my notebook.

  �
�What’s this number?”

  “Hundred one,” the kid said.

  I smiled. “Nope.”

  “Is too,” he said.

  “Is not.”

  “Okay, what is it?”

  “Five.”

  “Five? Is not.”

  “Is too.” I fumbled through an explanation of columns and digits and 1s and 0s.

  The kid waved me off. “I’m tellin’ you, it’s a hundred one. No five anywhere. And if you think it’s five, you’re weird.”

  My smile drained away as the kid walked off.

  At our next lesson, I told my father about my experience teaching binary. He laughed. “That’s good.”

  “Good?” I mumbled.

  “You know something. They don’t.” He tapped the side of his head. “You only need to be sure of what’s up here. Doesn’t matter what anyone else thinks. Doesn’t matter if they call you weird or any other names.” He tapped the side of his head again. “Only matters what you know. So, whatever you think you know had better be right.”

  For Christmas 1960, my father bought me a personal computer. Though hardly a computer by today’s standards, the Lego-like contraption had a register—a white plastic piece that slid in and out. Pull the register out, then push it in, and on the front of the machine, three binary digits showed a 1 or a 0, counting from 000 to 111 (zero to seven) in binary.

  Meanwhile, my father proceeded with instruction in simple binary multiplication and division. Multiply by 2? Add a 0 to the right of a binary number, and treat it as though it had four digits. Thus, 101 binary times 2 became 1010 binary, or 10 in decimal. Divide by 2? Lop off the farthest digit to the right and add a 0 on the far left. If a 1 is lopped off, treat it as a remainder. Read the binary number, and add the remainder if needed. Thus, 111 binary divided by 2 became 011 binary remainder 1 (7 divided by 2 equals 3 with a remainder of 1). If this is confusing, imagine how it scrambled my young mind.

  Nineteen sixty also marked our move from the family home on 221st Street to the thirteenth floor of the newly built co-op apartment in the Bronx. As the only Black kid in an accelerated seventh-grade class, I felt trapped between dualities—Black and White, decimal and binary.

  At school, students would gather in a tight circle behind combatants, segregated by skin color. A heated, singsong cheer went forth.

  “A fight. A fight. A Nigger and a White.”

  I knew only to avoid such melees, for there were no students of any color behind me.

  At home, our family was trapped between being seen as the only all-Black family in the building and not being seen at all.

  “I know what you are,” a kid said.

  He sat inside one of the large concrete barrels in the building’s playground. I stood outside.

  “My parents told me you’re an eegro.”

  He’d mispronounced the word. Still, a white-hot flash of embarrassment shot through my body. I drifted away as the kid chanted, “Eegro, eegro. You’re an eegro.”

  I tried playing sandlot football but grew tired of hearing kids say, “I mean no offense by this.” Everyone would look at me. “But the Niggers have challenged us to a game.”

  The last time I played with the kids in our building, a game of ring-a-levio turned savage. Ring-a-levio is a special variation of tag, originating on the streets of New York City. We’d split up into two teams. One team hid while the other tried to capture them. Captured players were thrown in a “jail,” perhaps our playground barrels or some other defensible area. Prisoners could be sprung from jail by tagging them and shouting, “Olly olly oxen free,” at which point all captives were released and had to be recaptured. Ring-a-levio ended when one team captured all members of the other team, or when one team conceded defeat.

  That day, I was still free, and it seemed as though the game had changed and all the kids on both teams now hunted me. They were all White. I peeked around the rear bumper of a car and spied the mob of kids a block away. I took off running. They saw me. I ran. They yelled, “Get him! Get him!” I ran harder. They chased me. My heart pounded as I bounded up the steps of an elevated subway station. I popped a token in the turnstile, pushed through the wooden arms, and, still running, leaped into a subway car. I rode the subway several stops, got off, and raced down the steps. I kept running. The mob of kids was long gone, but I did not stop running. I ran out of my body. I ran back through time. I ran as though my life depended on it. I ran as though I were running for every Black person ever chased by a crazed White mob. And when I stopped running, I found myself on the far side of that binary divide between Black and White. I never played with the White kids in our building again.

  * * *

  Soon binary arithmetic proved insufficient to meet the needs of ever more sophisticated computers and the humans who programmed them. Strings of 1s and 0s grew too long and too complex for humans to easily grasp. One thousand and eight, for example, while readily expressed in decimal (1,008) became cumbersome in binary (001111110000). Systems engineers initially adopted octal numbers to curb the excesses of binary numbers. Octal arithmetic (octal meaning “eight”) is a base-8 system, where one counts from 0 to 7 and then moves over a column to the left and starts counting again. By comparison, decimal is a base-10 system, where one counts from 0 to 9 and then moves over a column to the left and starts counting again.

  Not long after extolling the virtues of 1s and 0s and insisting that I learn binary, my father switched to octal, which had displaced binary at IBM. He made the switch to keep up, and therefore in my father’s mind octal was now the best way to represent the innermost workings of digital technology. Out came new blank sheets of paper, and new numbers were scribbled with a pencil, as “Learn octal” became the new battle cry for him. Fortunately, octal and binary are intimately related. Take the number 1,008, represented in binary as 001111110000. Now make groups of three digits, and you have 001 111 110 000. If you represent every three binary digits as a single digit between 0 and 7, it yields 1760. So, 1760 in octal is 001111110000 in binary and 1,008 in decimal.

  Still, for a ten-year-old, deriving 1,008 decimal from 1760 octal is no easy feat. I struggled under this new mathematics and the relentless insistence of my father to come up with the right answer. Just as I seemed to make some headway with octal, it too proved insufficient.

  Along came hexadecimal. Hexadecimal, or simply hex, is a base-16 numbering system, as the name implies. One counts from 0 to 15 and then moves a column to the left and begins counting again. However, there’s a catch. What do you do after the digit 9? Base-10 arithmetic counts from 0 to 9, and there is a single character for each digit. But in hexadecimal, you run out of single digits after reaching the character 9, so letters of the alphabet are used for digits between 10 and 15. Hence, in hex, the count is 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

  Confusing? Yes, it is. Especially for a ten- or eleven-year-old kid who was still mastering plain old decimal math. Again, out came the blank paper and the penciled numbers, and my father pontificated that hex was the latest, greatest, and ultimate digital numbering system that I needed to learn. From decimal 1,008, represented as binary 001111110000, create groups of four digits, yielding 0011 1111 0000. Now use a single hexadecimal digit to represent each group of four binary digits, and what results is 3F0—1,008 decimal equals 001111110000 binary equals 1760 octal equals 3F0 hexadecimal. While I may have been confused when I first attempted to decode a hexadecimal number, time has proved my father right. No other numbering system has yet surpassed hexadecimal in representing the underlying logic of digital devices. Hex is in widespread use today.

  This transition from binary to octal to hex came at a time when I transitioned from junior high school to high school to advanced placement within high school, and each transition was more difficult than the previous one. I left behind friends as rapidly as I made them, with my father’s voice always close, reminding me that I didn’t need them anyway.

  This transition also came at a
pivotal moment in the maturation of computers. To be more useful, computers needed to be “human-friendlier.” Machines needed to interact with people in a manner more easily understood by humans: they needed to understand human language. In the early days of computers, this did not mean voice recognition or handwriting recognition, which are so common in smartphones and digital devices today. It meant that humans should be able to program computers using English-like languages.

  Around this time, IBM bifurcated itself into scientific and commercial computing and designed machines specifically to handle the different computational needs of the scientific and business communities. IBM promoted the IBM 704, for example, as a scientific computer, while featuring the IBM 705, which my father knew intimately, as a business computer. Thus IBM created scientific and business computer languages. FORTRAN (short for FORmula TRANslation) became the first widely used scientific computer language, and COBOL (short for COmmon Business Oriented Language) was the first widely used commercial computer language. IBM assigned my father to the maintenance and propagation of COBOL.

  Prior to FORTRAN and COBOL, computer programming relied on a set of arcane skills. By the middle 1950s, my father no longer performed “basket weaving,” as he had on the IBM 407, to control the internal logic of a computer. Instead, he typed instructions into designated columns of punch cards. Those punch cards were read by a computer that decoded the instructions and, in turn, enacted the logic they contained. Instructions had an extremely terse syntax, making it difficult, even for the humans who had written them, to later trace the flow of their execution. For instance, the instruction A ANSWER,=X'0A' actually means, “Add 10 to a number in storage.” Now, imagine thousands upon thousands of lines of such nearly unfathomable nomenclature. That’s what early written computer programs were composed of, and programs written in this way are still described as machine code, or assembly language, because the instructions are so very close to what the actual machine circuitry does.

  Clearly, a better way to program computers had to be found, and the quest for this better way gave rise to computer languages and the notion of computer software. If hardware represents the physical circuitry of a computer, software represents the instructions that, when decoded, cause a computer’s physical circuitry to behave in unique ways that perform the tasks described in the software.

 

‹ Prev