Clique aqui para voltar à página inicialESPECIAL: Dia das Mães
http://www.novomilenio.inf.br/festas/maes2.htm

Clique aqui para voltar à página inicial

Mãe entende de informática!

Leva para a página anterior da série

Mesmo que você pense fazer parte da primeira geração em sua família a usar computadores, saiba que os princípios que regem essas máquinas são muito mais antigos. O texto abaixo, distribuído em inglês por correio eletrônico através do mundo, e recolhido em uma página Web da Universidade do Texas (EUA) demonstra bem isso (veja no final a mensagem que Novo Milênio recebeu do autor em 4/4/2002):

Mãe e Entendendo Computadores

Por anos, atormentei minha mãe com questões sobre se Papai Noel era uma pessoa real ou não. Sua resposta era sempre: "Bem, você pergunta pelos presentes e eles vêm, não vêm?" Eu finalmente entendi o significado total de sua resposta quando ouvi a definição de uma aplicação virtual: "uma entidade de software ou hardware que responde aos comandos de forma indistinguível de uma aplicação real". Minha mãe dizia que Papai Noel é uma pessoa virtual (simulada por pais amorosos) que responde aos pedidos das crianças de uma maneira indistinguível de um santo real.

Minha mãe também usava a estrutura SE ... ENTÃO ... SENÃO (IF... THEN... ELSE): "Se está nevando, então ponha suas botas antes de ir para escola, senão apenas coloque seus sapatos".

Minha mãe explicou a diferença entre arquivo de lote e processamento de transações: "Nós devemos lavar as roupas brancas quando tivermos bastante delas para fazer uma trouxa, mas devemos lavar essas meias agora à mão porque você vai precisar delas nesta noite".

Mamãe entendia de listas vinculadas. Uma vez, para uma festa de aniversário, ela montou uma caça ao tesouro com dez pistas escondidas, cada uma indicando onde estava a próxima, e a última apontando para o tesouro. Então, ela nos deu a primeira pista.

Mamãe sabia sobre erros de paridade. Quando ela contava meias ao voltar da lavanderia, esperava encontrar sempre o mesmo número e percebia quando só uma meia de um par emergia da máquina de lavar. E ela aplicava os princípios da engenharia de redundância a este problema, ao comprar três pares de meias idênticos a cada vez. Isso aumentava grandemente a chance de encontrar ao menos um par coincidente.

Mamãe reunia todos os nossos escritos infantis, então colocava-os em um único envelope com um único selo. Isso era obviamente uma instância de blocagem de gravações, para economizar dinheiro pela redução do número de operações físicas de entrada/saída (input/output - I/O)

Mamãe usava lembretes (flags) para facilitar o gerenciamento dos trabalhos domésticos. Sempre que ela ligava o fogão, punha um pegador de panelas sobre sua bolsa para se lembrar de desligá-lo antes de sair de casa.

Mamãe entendia de periféricos que emitem um sinal de interrupção para serem usados quando tenham completado alguma operação. Ela tinha uma sibilante chaleira.

Mamãe entendia de ordenamento LIFO (expressão inglesa para "primeiro a entrar, último a sair"): em minha lancheira ela punha a sobremesa embaixo, o sanduíche no meio e o guardanapo em cima, para que ficassem na ordem correta na hora do lanche.

Há uma antiga história de que Deus percebeu que não poderia estar fisicamente presente ao mesmo tempo em cada lugar. Então, para mostrar Seu amor por Suas pessoas, Ele criou mães. Eis a diferença entre processamento centralizado e distribuído. Como qualquer criança que esteja se comportando mal perto de casa vai descobrir, todas as mães nas redondezas falam umas com as outras. Isto é uma rede local de processadores distribuídos que não pode ser vencida.

Mãe, você foi o melhor professor de computação que eu tive.

A mensagem original:

"Mother and Understanding Computers

  For years I badgered my mother with questions about whether Santa Claus
  is a real person or not. Her answer was always "Well, you asked for the
  presents and they came, didn't they?" I finally understood the full
  meaning  of her reply when I heard the definition of a virtual device:
  "A software or  hardware entity which responds to commands in a manner
  indistinguishable from the real device." Mother was telling me that
  Santa Claus is a virtual  person (simulated by loving parents) who
  responds to requests from children  in a manner indistinguishable from
  the real saint.

  Mother also taught the IF ... THEN ... ELSE structure: "If it's snowing,
  then put your boots on before you go to school; otherwise just wear your
  shoes."

  Mother explained the difference between batch and transaction
  processing:
  "We'll wash the white clothes when we get enough of them to make a load,
  but we'll wash these socks out right now by hand because you'll need
  them this afternoon."

  Mother taught me about linked lists. Once, for a birthday party, she
  laid  out a treasure hunt of ten hidden clues, with each clue telling
  where to  find the next one, and the last one leading to the treasure.
  She then gave  us  the first clue.

  Mother understood about parity errors. When she counted socks after
  doing  the laundry, she expected to find an even number and groaned when
  only one  sock of a pair emerged from the washing machine. Later she
  applied the principles of redundancy engineering to this problem by
  buying our socks three identical pairs at a time. This greatly increased
  the odds of being  able to come up with at least one matching pair.

  Mother had all of us children write, then mailed in a single envelope
  with a single stamp. This was obviously an instance of blocking records in
  order to save money by reducing the number of physical I/O operations.

  Mother used flags to help her manage the housework. Whenever she turned
  on the stove, she put a potholder on top of her purse to reminder
  herself to  turn it off again before leaving the house.

  Mother knew about devices which raise an interrupt signal to be
  serviced when they have completed any operation. She had a whistling
  teakettle.

  Mother understood about LIFO ordering. In my lunch bag she put the
  dessert on the bottom, the sandwich in the middle, and the napkin on top
  so that  things would come out in the right order at lunchtime.

  There is an old story that God knew He couldn't be physically present
  everywhere at once, to show His love for His people, and so He created
  mothers. That is the difference between centralized and distributed
  processing. As any kid who's ever misbehaved at a neighbor's house finds
  out, all the mothers in the neighborhood talk to each other. That's a
  local area network of distributed processors that can't be beat.

        Mom, you were the best computer teacher I ever had."

Em 4/4/2002, Novo Milênio recebeu (e reproduz a seguir) a mensagem recebida do autor do texto, David Martin:

Assunto:  About "Mother's Day Meditations from the Computer Room"
    Data:  Wed, 3 Apr 2002 12:28:14 -0500
       De:  "Martin, David M." <David.Martin@unisys.com>
     Para: "'pimentel@pimentel.jor.br'" <pimentel@pimentel.jor.br>

To whom it may concern,

I am sorry that I do not speak your language and must write to you in English.

On your web page http://www.novomilenio.inf.br/humor/0004h061.htm there is part of a little essay called "Mother's Day Meditations from the Computer Room."

I'm pleased and flattered. I wrote that essay back in about 1984 when I was a part-time graduate student in Computer Science at the University of Pennsylvania in Philadelphia, Pennsylvania, USA. I wrote it because it occurred to me that a number of the supposedly high-powered computer science concepts we were covering in class were really fairly simple, basic things once you cut through all the jargon. In writing it I took some literary license with the truth and included suggestions from a number of individuals who saw preliminary versions of the essay. I passed out copies of it to a few friends back in 1984 and also posted it on the grad student computer bulletin board at Penn. And that was the last I heard of it until late in 1998 when one of my friends, who had seen it back in 1984, told me that it was making the rounds on the Internet. I was astonished.

So I'm glad you like it. Yes, you have my permission to use it, reproduce it, post it and publish it as you wish. I would appreciate it if you would include the three-line header as shown in the copy below.

This little essay of mine has gotten a little corrupted as it has been passed around the Internet. Just for the record, here is the original version:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      Mother's Day Meditations from the Computer Room
      by Gertrude Martin's son David (martindm@acm.org)
  [May be freely used and reproduced with this three-line header.]

A friend recently asked me what training it takes to work with computers. I gave a brief answer mentioning some college courses, some on-the-job training, and a long time in the school of hard knocks. But upon reflection, I realize that most of my training in fundamental computer concepts came from my mother.

When I was a baby, mother taught me about input buffering: "Don't try to stuff all your food in your mouth at once. Leave it on your plate until you're ready to eat it, and then take it in one mouthful at a time."

She also taught me about processing the entire input buffer before going on to the next step: "Eat everything on your plate. Then you can have dessert."

(It will occur to some readers that mother also taught me about output buffering, but I'd like to keep these meditations G-rated.)

When I was about four, mother introduced the concept of sequentially executed instructions: "We're going to set the table." (That's identification of the procedure.) "First put the table cloth on the table. Check it to make sure it's straight. Then put a plate at each place. Then put a cup at each place. Then ..."

Later, mother introduced the concept of a procedure call: "We're going to have dinner. Please set the table."

Still later, when I was about 14, mother would set up tasks for me and use "job control language" in a note on the refrigerator door: "We're going to have dinner at 6:00.  You make it when you get home from school. The menu is pinned up on the bulletin board, the meat is in the refrigerator, and I've put the rest of the food out on the counter. Set an extra place - Uncle Jack is coming tonight."

Mother demonstrated what it means to multi-process: She could deal with the interruptions of four children (those were the real-time, foreground tasks) while doing the housework (as a background task). Mother used the concept of hierarchical storage for her cooking tools. The cooking forks and spoons were hung on hooks right by the stove. The potato slicer and the egg beater, which weren't used for every meal, were kept in a drawer. And the big roaster, which she only used once a year to cook the Thanksgiving turkey, was kept in the storage closet in the basement.

Once we had about fourteen people for Thanksgiving dinner, and our kitchen seemed too small for the job. That's when mother introduced the concept of backing store. She cleared off the ping-pong table in the rec room next to the kitchen and laid out all her ingredients on one side of the net. My sister and I fetched things from the "input" side of the ping-pong table as mother called for them, carried partially finished dishes to and from the "backing store" on the other side of the net, and delivered finished food to the "output" dining table.

This system worked well, until my sister and I collided in the doorway between the two rooms and we nearly lost the creamed onions. Mother solved this problem of "channel contention" by establishing a protocol: "First say 'May I come through?' and then wait until you get the answer 'Yes; it's clear.'"

It was also in the kitchen that mother taught me about looping and testing: "Cook the fudge, while stirring it, and test it every couple of minutes to see if it's done. You test it by dropping a bit of it in the cold water. When it forms a soft ball, it's done."

For years I badgered my mother with questions about whether Santa Claus is a real person or not.  Her answer was always "Well, you asked for the presents and they came, didn't they?" I finally understood the full meaning of her reply when I heard the definition of a virtual device: "A software or hardware entity which responds to commands in a manner indistinguishable from the real device." Mother was telling me that Santa Claus is a virtual person (simulated by loving parents) who responds to requests from children in a manner indistinguishable from the real saint.

Mother also taught the IF ... THEN ... ELSE structure: "If it's snowing, then put your boots on before you go to school; otherwise just wear your shoes."

Mother explained the difference between batch and transaction processing: "We'll wash the white clothes when we get enough of them to make a load, but we'll wash these socks out right now by hand because you'll need them this afternoon."

Mother taught me about linked lists. Once, for a birthday party, she laid out a treasure hunt of ten hidden clues, with each clue telling where to find the next one and the last one leading to the treasure. She then gave us the first clue.

Mother understood about parity errors. When she counted socks after doing the laundry, she expected to find an even number and groaned when only one sock of a pair emerged from the washing machine. Later she applied the principles of redundancy engineering to this problem by buying our socks three identical pairs at a time. This greatly increased the odds of being able to come up with at least one matching pair.

Mother had all of us children write our Christmas thank you notes to Grandmother, one after another, on a single large sheet of paper which was then mailed in a single envelope with a single stamp. This was obviously an instance of blocking records in order to save money by reducing the number of physical I/O operations.

Mother used flags to help her manage the housework. Whenever she turned on the stove, she put a potholder on top of her purse to reminder herself to turn it off again before leaving the house.

Mother knew about devices which raise an interrupt signal to be serviced when they have completed an operation. She had a whistling teakettle.

Mother understood about LIFO ordering. In my lunch bag she put the dessert on the bottom, the sandwich in the middle, and the napkin on top so that things would come out in the right order at lunchtime.

There is an old story that God knew He couldn't be physically present everywhere at once, to show His love for His people, and so He created mothers. That is the difference between centralized and distributed processing. As any kid who's ever misbehaved at a neighbor's house finds out, all the mothers in the neighborhood talk to each other. That's a local area network of distributed processors that can't be beat.

Happy Mother's Day, Mom. You were the best computer teacher I ever had.

                                       --   end   ---
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
I case anyone asks, I'm a programmer with Unisys Corporation in Blue Bell,
Pennsylvania, and a part-time instructor at the Montgomery County Community
College.  No, I haven't written anything else like this since, but I have a
few ideas kicking around.

    -- David Martin
       email: martindm@acm.org

Leva para a página seguinte da série