☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

sexta-feira, 6 de dezembro de 2019

🃏 MELVIN UDALL E O CARTÃO QUE NÃO PODIA SAIR DA ORDEM

 

Bellacosa Mainframe e a historia dos cartoes perfurados em mainframe

☕ Um Café no Bellacosa Mainframe

🃏 MELVIN UDALL E O CARTÃO QUE NÃO PODIA SAIR DA ORDEM

Cartões perfurados, IBM 029, verificadores, duplicadores, leitores, Hollerith, EBCDIC, COBOL, 80 colunas, batch, spool, JES2 — e o dia em que Melvin descobriu que alguém havia derrubado 2.000 linhas de COBOL no chão.

Sob a tutela de Melvin Udall, de Melhor É Impossível.



🎬 PRÓLOGO — NÃO TOQUE NOS MEUS CARTÕES

Imagine a cena.

Estamos em um centro de processamento de dados dos anos 1960.

O ar-condicionado trabalha como se estivesse tentando congelar o prédio inteiro. Impressoras de linha martelam papel contínuo. Unidades de fita giram. Operadores circulam entre consoles, leitores de cartão e enormes pilhas de papel.

Em uma mesa existem 1.800 cartões perfurados.

Eles são um programa COBOL.

Não representam o programa.

Eles são o programa.

Melvin Udall entra na sala.

Olha para os cartões.

Olha para o operador.

Olha novamente para os cartões.

E provavelmente estabelece a primeira regra operacional:

— Não toque neles.

Segunda regra:

— Não mude a ordem.

Terceira:

— Definitivamente não derrube isso no chão.

Curiosamente, poucas pessoas seriam tutores melhores para explicar cartões perfurados do que Melvin: ordem, repetição, posição e intolerância absoluta a qualquer coisa fora do lugar.

Porque havia uma característica maravilhosa e assustadora naquela computação:

informação era também matéria.

Seu programa tinha peso.

O banco de dados ocupava espaço na estante.

Uma linha COBOL podia ser segurada entre dois dedos.

E 5 MB podiam formar uma montanha.



🗃️ CAPÍTULO 1 — QUANDO 5 MB PRECISAVAM DE UMA MESA

A fotografia que iniciou nossa conversa circula acompanhada da frase:

“What 5 megabytes of computer data looked like in 1966.”

A afirmação precisa ser encarada com cautela como descrição histórica literal daquela fotografia específica, mas a matemática usada para construir a comparação é excelente para compreender a densidade dos cartões perfurados.

O cartão IBM clássico possuía:

80 colunas.

Em utilização convencional, podemos pensar aproximadamente em:

1 cartão ≈ 80 caracteres

Portanto:

62.500 cartões
×     80 caracteres
-------------------
5.000.000 caracteres

Em uma comparação simplificada:

aproximadamente 5 MB de informação textual.

Hoje uma única fotografia produzida pelo celular pode ultrapassar isso.

Na época, essa quantidade de caracteres podia representar dezenas de milhares de objetos físicos.

E essa comparação já ensina nossa primeira grande lição:

armazenamento não é apenas capacidade; é densidade.

Imagine armazenar 1 TB dessa maneira.

Usando nossa equivalência didática:

1 TB ≈ 1.000.000.000.000 bytes

÷ 80

≈ 12,5 bilhões de cartões

Melvin pediria demissão antes do almoço.



🕳️ CAPÍTULO 2 — O QUE EXISTIA DENTRO DE UM CARTÃO?

Nada.

Literalmente.

Essa é a beleza.

A informação estava representada pela presença ou ausência de furos em determinadas posições.

O cartão IBM tradicional tinha 80 colunas e doze posições possíveis verticalmente, normalmente identificadas como:

12
11
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9

Não devemos concluir:

12 × 80 = 960 bits, portanto o cartão armazenava 120 bytes.

Não era assim que a codificação convencional funcionava.

Cada coluna representava essencialmente um caractere.

Um número podia ser representado por uma determinada perfuração. Letras exigiam combinações de posições.

Simplificando muito:

COLUNA
   │
   ▼

12   ○
11   ●
 0   ○
 1   ●
 2   ○
 3   ○
 ...

A combinação dos furos significava determinado caractere.

Portanto, o cartão não continha ASCII.

E também não devemos imaginar simplesmente EBCDIC fisicamente perfurado no papel.

Existiam códigos de cartão — historicamente associados ao sistema Hollerith e suas evoluções — que o equipamento interpretava.

Essa diferença será importantíssima quando chegarmos ao System/360.



⌨️ CAPÍTULO 3 — IBM 029: O TECLADO QUE FAZIA BURACOS

Nos anos 1960, uma das máquinas emblemáticas desse mundo foi a:

IBM 029 Card Punch.

Para o programador atual, ela parece uma criatura híbrida:

máquina de escrever
       +
teclado
       +
mecanismo eletromecânico
       +
impressora
       +
perfuradora

O operador pressionava uma tecla.

A máquina convertia aquele caractere no padrão correspondente de perfurações.

Conceitualmente:

OPERADOR
   │
   ▼
TECLADO
   │
   ▼
CODIFICAÇÃO
   │
   ▼
MECANISMO DE PERFURAÇÃO
   │
   ▼
CARTÃO

Imagine que você tenha escrito:

       MOVE WS-TOTAL TO TOTAL-PAGAR.

A linha poderia ocupar um cartão.

A próxima linha:

outro cartão.

A próxima:

outro.

Seu programa de 2.000 linhas?

Dois mil cartões.

Aqui começamos a compreender por que programação era também uma atividade logística.



😱 CAPÍTULO 4 — MELVIN DIGITOU ERRADO

Agora acontece a tragédia.

Melvin pretendia perfurar:

TOTAL

mas produziu alguma informação incorreta.

Hoje:

Backspace

Problema resolvido.

No cartão existe uma dificuldade fundamental.

Você pode fazer um buraco.

Mas não existe uma tecla:

CTRL+Z DO BURACO

que coloque novamente a fibra de papel que acabou de ser removida.

😂

Dependendo do equipamento e do tipo de erro havia procedimentos específicos, mas o princípio operacional importante para nosso Padawan é:

cartão incorreto frequentemente significava produzir um cartão novo.

Isso transforma a ideia de correção.

Não era necessariamente reparar fisicamente aquele pedaço de papel.

Era:

CARTÃO ERRADO
      │
      ▼
identificar informação correta
      │
      ▼
NOVO CARTÃO
      │
      ▼
perfurar novamente
      │
      ▼
verificar
      │
      ▼
substituir original

Agora imagine Melvin vendo alguém colocar o cartão novo na posição errada.

Começamos a entender o verdadeiro horror.


🩹 CAPÍTULO 5 — E SE O CARTÃO ESTIVESSE DANIFICADO?

Esse problema era mais sério do que parece.

Cartões eram objetos físicos.

Portanto estavam sujeitos ao mundo físico:

  • dobras;

  • rasgos;

  • umidade;

  • sujeira;

  • desgaste;

  • deformação;

  • cantos danificados;

  • perfurações problemáticas.

E existia uma razão adicional para não simplesmente pensar:

“Está meio rasgado, mas ainda dá para usar.”

Um leitor podia transportar cartões em alta velocidade.

Um cartão deformado poderia causar problemas de alimentação ou um jam.

Portanto, se a informação ainda pudesse ser identificada, uma solução era criar uma cópia limpa.

Conceitualmente:

CARTÃO DANIFICADO
        │
        ▼
    informação
        │
        ▼
NOVO CARTÃO EM BRANCO
        │
        ▼
   DUPLICAÇÃO
        │
        ▼
CARTÃO NOVO LEGÍVEL

Keypunches possuíam recursos de duplicação de campos, e ao longo da história do processamento por cartões existiram também máquinas voltadas à reprodução de cartões.

É o ancestral eletromecânico de:

COPY ORIGINAL TO NOVO

Só que a cópia podia ser literalmente outro pedaço de cartolina.


🔎 CAPÍTULO 6 — “MAS COMO SABEMOS QUE A CÓPIA ESTÁ CERTA?”

Excelente pergunta.

E aqui aparece uma das ideias mais modernas dessa história.

Verificação.

Existiam card verifiers.

Considere a folha de origem contendo:

123456 BELLACOSA 000015000

O primeiro operador utiliza uma perfuradora:

DOCUMENTO
    ↓
OPERADOR A
    ↓
KEYPUNCH
    ↓
CARTÃO

Mas seres humanos erram.

Portanto outro operador poderia trabalhar com um verifier.

Ele recebia novamente a informação original e digitava o conteúdo.

A máquina verificava se aquilo correspondia ao que estava fisicamente perfurado.

DOCUMENTO ORIGINAL
       │
       ▼
   OPERADOR B
       │
       ▼
    VERIFIER
       │
       ├───────────────┐
       │               │
       ▼               ▼
DIGITAÇÃO         FUROS EXISTENTES
       │               │
       └──────┬────────┘
              ▼
           COMPARA

Se houvesse divergência:

temos um problema.

Isso é maravilhoso.

Porque muito antes de alguém dizer:

validation
quality gate
peer verification

a preocupação já existia.

Mudou a tecnologia.

Não mudou o problema.


👁️ CAPÍTULO 7 — COMO UMA MÁQUINA ENXERGA UM BURACO?

Aqui entramos no coração da engenharia.

O leitor precisa responder a uma pergunta aparentemente ridícula:

Existe papel aqui ou existe um buraco?

Nos sistemas eletromecânicos mais antigos, uma técnica utilizada envolvia escovas metálicas e contatos elétricos.

Imagine:

       ESCOVA
          │
          ▼
    ───────────
       CARTÃO
    ███████████
    ███  ██████
         │
         ▼
     superfície
      condutora

Onde havia papel, a escova era impedida de estabelecer determinado contato.

Onde havia perfuração, podia ocorrer contato elétrico através daquela abertura.

Portanto:

FURO
 ↓
CONTATO
 ↓
SINAL ELÉTRICO

Um buraco no papel tornou-se eletricidade.

Isso é computação em sua forma mais bela.


💡 CAPÍTULO 8 — DEPOIS A LUZ ENTROU NA HISTÓRIA

Tecnologias posteriores utilizaram leitura fotoelétrica.

Agora podemos imaginar:

LUZ
 │
 ▼
CARTÃO
 │
 ├── PAPEL → bloqueia
 │
 └── FURO ──────────────┐
                        ▼
                     SENSOR
                        │
                        ▼
                 SINAL ELÉTRICO

Assim:

representação física
       ↓
detecção
       ↓
sinal
       ↓
codificação
       ↓
caractere

Perceba o salto conceitual.

O computador não processava papel.

O papel era apenas o meio físico que transportava uma representação da informação.

É exatamente a distinção que ainda fazemos entre:

mídia
formato
codificação
registro
dado

🧬 CAPÍTULO 9 — DO HOLLERITH AO EBCDIC

Agora chegamos ao ponto que interessa diretamente ao programador mainframe.

Com o IBM System/360, apresentado em 1964, encontramos o mundo do EBCDIC.

O cartão possui uma codificação física.

O leitor detecta as perfurações.

O equipamento e seus controladores convertem essa representação para aquela utilizada pelo computador.

Didaticamente:

CARTÃO
  ↓
padrões de perfuração
  ↓
CARD READER
  ↓
interpretação/conversão
  ↓
representação eletrônica
  ↓
EBCDIC
  ↓
MEMÓRIA

Portanto, quando alguém afirma:

“O cartão tinha 80 bytes.”

Entenda isso como uma equivalência útil de capacidade textual.

Não imagine 80 bytes EBCDIC magicamente vivendo dentro da cartolina.

O cartão tinha 80 colunas de caracteres.

A representação interna viria depois.


🧱 CAPÍTULO 10 — AGORA VOCÊ ENTENDE AS 80 COLUNAS DO COBOL

Chegamos a um dos grandes momentos da arqueologia mainframe.

O formato COBOL tradicional traz a herança física do cartão:

1-----6  7  8----11  12----------------72  73------80
   │     │     │              │               │
   │     │     │              │               └─ identificação
   │     │     │              └─ AREA B
   │     │     └─ AREA A
   │     └─ indicador
   └─ sequência

Agora nosso iniciante finalmente entende por que COBOL antigo parece obcecado por posição.

Porque posição era física.

Coluna 7 não era uma abstração inventada pelo editor.

Era:

a sétima coluna daquele cartão que você podia segurar na mão.


🔢 CAPÍTULO 11 — POR FAVOR, NUMERE ISSO ANTES QUE MELVIN VEJA

As colunas iniciais podiam conter números de sequência.

Por exemplo:

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. BELLACOS.
000300 DATA DIVISION.
000400 WORKING-STORAGE SECTION.
000500 01 WS-TOTAL PIC 9(7)V99.

Por quê?

Agora imagine alguém carregando 2.000 cartões.

Tropeça.

WHOOSH!

000400
000100
000500
000200
000300

Melvin olha para o chão.

Silêncio absoluto.

Nesse momento, você agradece aos números.

000100
000200
000300
000400
000500

Mas existe algo ainda mais espetacular.

Card sorters.

Havia equipamentos que podiam ordenar cartões mecanicamente utilizando as posições perfuradas.

Portanto, antes de:

//SORTSTEP EXEC PGM=SORT

existia uma realidade na qual SORT podia significar uma máquina reorganizando objetos físicos.


📚 CAPÍTULO 12 — O CARTÃO É O AVÔ DO RECORD

Imagine um cartão contendo:

00001BELLACOSA 00015000

Definimos:

COL 01-05 = matrícula
COL 06-15 = nome
COL 16-23 = salário

Agora nosso COBOL possui:

01 FUNCIONARIO.
   05 MATRICULA PIC 9(5).
   05 NOME      PIC X(10).
   05 SALARIO   PIC 9(8).

Está vendo?

CARTÃO
   ↓
RECORD
   ↓
FIELDS

Essa é uma conexão poderosíssima para compreender:

fixed length
posição
offset
PIC X
PIC 9
LRECL
RECFM=F
RECFM=FB

Um iniciante olha para:

RECFM=FB,LRECL=80

e pensa:

Por que 80?

Melvin aponta silenciosamente para a pilha de cartões.


🏭 CAPÍTULO 13 — AGORA COLOQUE 2.000 CARTÕES NO LEITOR

Chegou a hora do processamento.

O deck é colocado no hopper do leitor.

Simplificando:

         HOPPER
      ┌──────────┐
      │██████████│
      │ CARTÕES  │
      └────┬─────┘
           ↓
       FEEDER
           ↓
     READ STATION
           ↓
        SENSOR
           ↓
       STACKER

O mecanismo separa os cartões e os transporta pela estação de leitura.

Aqui aparecem problemas muito concretos:

double feed
misfeed
card jam
cartão dobrado
cartão rasgado
deck incorreto

Observe novamente como confiabilidade de dados e confiabilidade mecânica estavam intimamente relacionadas.

Hoje temos CRC, ECC, redundância, checksums e controles sofisticados.

Ali você também precisava preocupar-se com uma coisa muito mais prosaica:

o papel passou corretamente pela máquina?


⚙️ CAPÍTULO 14 — O MAINFRAME NÃO “EXECUTA CARTÕES”

Este ponto merece atenção.

O leitor é um dispositivo de entrada.

Portanto:

CARTÃO
   ↓
CARD READER
   ↓
SINAL
   ↓
CARACTERE
   ↓
RECORD
   ↓
SISTEMA
   ↓
PROCESSAMENTO

Uma vez internalizada, aquela informação podia ser:

  • compilada;

  • armazenada;

  • processada;

  • gravada em fita;

  • gravada em disco;

  • impressa;

  • utilizada como dados.

O computador não precisava continuar consultando fisicamente aquele cartão para cada instrução.

O cartão cumpriu sua missão:

transportar informação do mundo físico para o eletrônico.


📦 CAPÍTULO 15 — POR QUE “BATCH”?

Agora a palavra começa a fazer sentido.

Batch = lote.

O programador preparava um trabalho.

Ele podia conter:

controle
   +
programa
   +
dados

O trabalho era entregue para processamento.

O fluxo podia ser:

PROGRAMADOR
     ↓
CODING SHEET
     ↓
KEYPUNCH
     ↓
VERIFY
     ↓
DECK
     ↓
OPERADOR
     ↓
CARD READER
     ↓
COMPUTADOR
     ↓
PRINTER
     ↓
LISTAGEM
     ↓
PROGRAMADOR

Encontrou erro de sintaxe?

Corrija.

Produza o cartão adequado.

Submeta novamente.

Espere novamente.

De repente você começa a apreciar um compile de COBOL que demora 15 segundos.


🌀 CAPÍTULO 16 — SPOOL: NÃO FAÇA A CPU ESPERAR PAPEL

Computadores eram caríssimos.

Periféricos mecânicos eram relativamente lentos.

Não fazia sentido desperdiçar recursos valiosos esperando continuamente leitores e impressoras.

Entra em cena o conceito de spooling, desacoplando operações periféricas do processamento.

Simplificando:

CARD READER
     ↓
   SPOOL
     ↓
INPUT QUEUE
     ↓
PROCESSAMENTO
     ↓
   SPOOL
     ↓
OUTPUT QUEUE
     ↓
 PRINTER

Isso é extremamente importante para compreender o mainframe atual.


🚂 CAPÍTULO 17 — DO CARTÃO AO JES2

Avançamos várias décadas.

Você abre ISPF ou outra interface e submete:

//BELLACOS JOB ...
//STEP01 EXEC PGM=PGM001
//ENTRADA DD DSN=BELLACOSA.INPUT,DISP=SHR
//SAIDA   DD SYSOUT=*

Não existe uma caixa de cartões.

Mas existe:

SUBMIT
   ↓
JES2
   ↓
INPUT
   ↓
EXECUTION
   ↓
OUTPUT
   ↓
SDSF

Não estou dizendo que JES2 é simplesmente um “leitor de cartões virtual”.

A arquitetura moderna é infinitamente mais sofisticada.

Mas existe uma continuidade histórica de problemas:

receber trabalho, classificá-lo, colocá-lo em filas, executá-lo e administrar sua saída.

Conhecer cartões perfurados torna JES muito menos misterioso.


🔐 CAPÍTULO 18 — E A SEGURANÇA?

Hoje pensamos:

RACF
USERID
MFA
DATASET PROFILE
AUDIT
SMF
ENCRYPTION

Mas quando a informação existe fisicamente, segurança física ganha importância enorme.

Quem pode entrar?

Quem pode pegar o deck?

Quem pode retirar um cartão?

Quem pode substituir um cartão?

Quem pode copiar o deck?

Imagine um invasor substituindo:

IF VALOR < LIMITE

por outro cartão contendo lógica alterada.

Em espírito, temos algo parecido com um:

supply-chain attack de cartolina.

O mecanismo mudou.

O princípio continua assustadoramente familiar:

controle de integridade.


💾 CAPÍTULO 19 — BACKUP TAMBÉM TINHA PESO

Seu único deck representa semanas de trabalho.

Agora escolha o incidente:

🔥 fogo
💧 água
☕ café
✂️ dano
📦 extravio
🌀 desordem

Tem apenas uma cópia?

Tem um problema.

Duplicação de cartões, fitas e posteriormente discos mudaram radicalmente essa realidade.

Nasce uma lição que continua válida em 2026:

Backup não é acreditar que você possui uma cópia. É conseguir recuperar a informação quando a original deixa de existir.


🧠 CAPÍTULO 20 — O DEVOPS JÁ ESTAVA ESCONDIDO NA SALA?

Não vamos cometer anacronismo e chamar uma operação de cartões de “DevOps”.

Mas podemos fazer uma comparação pedagógica deliciosa.

ONTEM                    HOJE

Coding sheet          → editor/IDE
Keypunch              → entrada de código
Verifier              → validação
Reproducer            → cópia
Sequence              → controle de ordem
Deck                  → conjunto de fontes/dados
Reader                → ingestão
Queue                 → fila
Batch processing      → pipeline/workload
Spool                 → desacoplamento
Operator              → automação/orquestração
Listing               → logs/output

Não são equivalências arquitetônicas exatas.

São parentescos conceituais.

A humanidade continua resolvendo problemas semelhantes com ferramentas cada vez melhores.


🧪 CAPÍTULO 21 — EXERCÍCIO PARA O PADAWAN

Pegue este registro:

00042BELLACOSA 00001250SP

Defina:

01-05 MATRÍCULA
06-15 NOME
16-23 VALOR
24-25 UF

Agora escreva COBOL:

01 WS-REGISTRO.
   05 WS-MATRICULA PIC 9(5).
   05 WS-NOME      PIC X(10).
   05 WS-VALOR     PIC 9(8).
   05 WS-UF        PIC X(2).

Depois desenhe 25 colunas em uma folha.

Escreva um caractere em cada coluna.

Você perceberá imediatamente o significado de:

posição fixa.

Depois experimente inserir um caractere no início sem deslocar corretamente os demais.

Pronto.

Você acaba de entender por que alterações de layout podem destruir interfaces legadas.

Não é “coisa velha”.

É contrato de dados.


🏛️ CAPÍTULO 22 — O FÓSSIL CONTINUA VIVO

A jornada pode ser visualizada assim:

PUNCH CARD
    ↓
RECORD
    ↓
TAPE
    ↓
DASD
    ↓
DATASET
    ↓
JES / SPOOL
    ↓
z/OS
    ↓
APIs
    ↓
Git / CI/CD
    ↓
Cloud / OpenShift / AI

Não é uma linha evolutiva perfeita e exclusiva; tecnologias coexistiram e evoluíram em paralelo.

Mas ela revela uma característica maravilhosa do ecossistema mainframe:

o passado deixa pistas no presente.

Quando você entende a origem, muitas “esquisitices” deixam de ser esquisitas.


🎩 CAPÍTULO 23 — A GRANDE LIÇÃO DE MELVIN UDALL

Agora voltamos à nossa mesa.

Há 2.000 cartões.

Melvin está observando.

O jovem programador pergunta:

— Por que precisamos entender isso se ninguém mais vai entregar meu COBOL numa caixa?

Porque você não está estudando papel.

Está estudando conceitos fundamentais:

representação
codificação
sequência
integridade
validação
registro
entrada
fila
processamento
recuperação
redundância
automação

O cartão desapareceu.

Esses problemas não.

A IBM 029 desapareceu da sala de desenvolvimento.

Mas ainda precisamos transformar intenção humana em código.

O verifier desapareceu.

Mas ainda fazemos validação.

O reproducer desapareceu.

Mas continuamos copiando e versionando informação.

O sorter mecânico desapareceu.

Mas continuamos ordenando bilhões de registros.

O card reader desapareceu.

Mas continuamos fazendo ingestão.

A caixa de jobs desapareceu.

Mas continuamos colocando workloads em filas.

A impressora de linha deixou de ser a interface dominante.

Mas continuamos procurando SYSOUT no SDSF.


🥚 EPÍLOGO — O INCIDENTE DAS 03:17

São 03:17.

O jovem operador entra correndo.

— Senhor Udall, temos um incidente!

Melvin não levanta os olhos.

— Severity?

— Alta.

— Hardware?

— Não.

— Software?

— Também não exatamente.

Melvin finalmente olha.

— O que aconteceu?

O rapaz aponta para o chão.

        000900
  000300       001500

       000100

  001200     000700

           000200

Dois mil cartões COBOL espalhados pelo corredor.

Silêncio.

Melvin contempla o desastre.

Olha para o programador.

Olha novamente para o chão.

Então pergunta:

— Você numerou as colunas 1 a 6?

— Sim.

Melvin ajeita os cartões que ainda segura.

— Então ainda existe esperança para você.

Bellacosa Mainframe

Porque às vezes a melhor maneira de entender por que o mainframe funciona como funciona hoje é descobrir como ele funcionava quando um programa podia cair no chão.




quinta-feira, 5 de dezembro de 2019

Os Irmãos do Blues do Processamento de Dados Pequena historia dos profissionais de informatica no Brasil

 

Bellacosa Mainframe e a pequena historia do profissional de informatica no Brasil

☕ Um Café no Bellacosa Mainframe

Os Irmãos do Blues do Processamento de Dados

Quando os primeiros profissionais da informática brasileira receberam uma missão: atravessar calculadoras, telégrafos, cartões perfurados, mainframes e cinquenta anos de evolução sem deixar o processamento parar

Era noite.

Em algum lugar do Brasil industrial dos anos 1970, uma impressora de linha martelava milhares de caracteres por minuto. As unidades de fita giravam para frente e para trás como músicos esperando o momento exato de entrar na canção. Luzes piscavam no painel do computador. Um operador carregava um enorme disk pack com as duas mãos, quase como quem transportava um instrumento sagrado.

Do outro lado da parede de vidro, um programador examinava uma listagem contínua coberta de códigos, números de linha e mensagens do compilador.

O programa havia falhado.

Não existia Google.

Não existia Stack Overflow.

Não existia vídeo explicativo.

Não existia inteligência artificial para sugerir a correção.

Existiam apenas o manual, a experiência, o café, a lógica e uma equipe que sabia que precisava colocar aquele sistema novamente em funcionamento antes do amanhecer.

A missão era simples:

fazer o processamento rodar.

O prazo?

Antes que a empresa abrisse as portas.

Os recursos?

Poucos kilobytes de memória, cartões perfurados, fitas magnéticas e uma quantidade quase ilimitada de coragem.

Esta é a história da profissão de informático no Brasil. Uma história que começou muito antes do notebook, do computador pessoal e até mesmo do computador eletrônico. Ela nasceu entre calculadoras mecânicas, máquinas contábeis, telégrafos, ferrovias, fichários e departamentos Hollerith.

É também a história dos perfuradores, conferentes, operadores, programadores, analistas, técnicos de manutenção, administradores de dados e chefes de CPD que transformaram máquinas gigantescas em ferramentas essenciais para o funcionamento do país.

Eles usavam nomes diferentes.

Mas todos faziam parte da mesma banda.


1. Antes do computador, o Brasil já processava dados

Um programador COBOL iniciante pode imaginar que a história da informática começou quando alguém escreveu o primeiro IDENTIFICATION DIVISION.

Não começou.

Muito antes de existirem linguagens de programação, as empresas brasileiras já enfrentavam aquilo que hoje chamaríamos de um problema de escalabilidade.

Imagine uma grande ferrovia.

Ela precisava controlar:

  • milhares de empregados;

  • salários e benefícios;

  • locomotivas;

  • vagões;

  • horários;

  • cargas;

  • passagens;

  • oficinas;

  • ferramentas;

  • peças de reposição;

  • consumo de combustível;

  • manutenção;

  • acidentes;

  • receitas e despesas.

Enquanto uma empresa era pequena, livros contábeis e fichas manuais podiam resolver o problema. Entretanto, quando a organização crescia, o volume de informação tornava o processamento humano lento, caro e sujeito a erros.

O verdadeiro antepassado do profissional de informática não foi apenas o matemático.

Foi também o escriturário.

Era ele quem registrava, classificava, somava, conferia e arquivava informações. Em enormes salas administrativas, dezenas ou centenas de pessoas processavam dados manualmente.

O computador não surgiu primeiro para criar imagens, músicas ou mundos virtuais.

Ele surgiu para vencer filas de documentos.


2. Calculadoras mecânicas: a pré-história do processamento

Antes do computador eletrônico, existiram calculadoras mecânicas e eletromecânicas.

Elas realizavam somas, subtrações e, dependendo do modelo, multiplicações e divisões. Algumas funcionavam por manivelas. Outras utilizavam motores elétricos para movimentar engrenagens, rodas e registradores.

Não eram computadores de propósito geral, mas já introduziam uma ideia revolucionária:

Uma parte do trabalho intelectual poderia ser automatizada por uma máquina.

Para um jovem acostumado com processadores executando bilhões de operações por segundo, pode parecer pouco.

Mas considere o contexto.

Uma folha de pagamento com milhares de funcionários exigia inúmeros cálculos. Um erro poderia significar salário incorreto, imposto indevido ou total contábil incompatível.

A calculadora mecânica diminuía o esforço, mas ainda dependia intensamente do operador.

A pessoa digitava os valores.

A máquina calculava.

A pessoa anotava o resultado.

A informação precisava ser transportada manualmente de um documento para outro.

Era uma arquitetura com alto acoplamento humano.

O usuário funcionava como CPU, memória, barramento e interface.


3. O telégrafo e a primeira rede brasileira

Enquanto máquinas contábeis processavam números, o telégrafo conectava cidades, estações ferroviárias, portos e centros administrativos.

Ele foi uma das primeiras grandes infraestruturas de comunicação de dados.

Sim, caro padawan do COBOL: o telégrafo pode ser entendido como um ancestral distante das redes de computadores.

Uma mensagem era codificada.

Transmitida por um meio físico.

Recebida em outro ponto.

Decodificada.

Confirmada ou retransmitida.

Temos aí vários elementos conhecidos:

  • origem;

  • destino;

  • protocolo;

  • codificação;

  • transmissão;

  • recepção;

  • tratamento de erro;

  • operador.

Quando um telegrafista enviava uma mensagem para organizar a circulação de trens, ele participava de um sistema distribuído.

A diferença é que o middleware usava Código Morse e o operador humano fazia aquilo que hoje seria responsabilidade de um software de comunicação.

A ferrovia, portanto, não transportava apenas pessoas e mercadorias.

Transportava informações.


4. O Departamento Hollerith da Companhia Paulista

É nesse mundo de ferrovias, telégrafos, escrituração e mecanização administrativa que encontramos os departamentos Hollerith.

O nome vinha de Herman Hollerith, criador de sistemas de processamento baseados em cartões perfurados. Sua tecnologia ficou famosa pela utilização no censo norte-americano de 1890 e tornou-se a base de uma indústria de máquinas de tabulação.

No Brasil, grandes organizações passaram a empregar máquinas Hollerith para atividades administrativas. A Companhia Paulista de Estradas de Ferro está ligada a essa história de mecanização do processamento de informações ferroviárias.

O Departamento Hollerith era uma espécie de antepassado do CPD.

Não havia processador eletrônico central.

Havia um conjunto de máquinas especializadas.

Uma perfurava.

Outra conferia.

Outra classificava.

Outra intercalava.

Outra tabulava.

Outra imprimia.

O processamento era realizado como uma linha de montagem.

Observe como isso se aproxima de um pipeline:

Documento de origem
        ↓
Codificação dos dados
        ↓
Perfuração
        ↓
Conferência
        ↓
Classificação
        ↓
Tabulação
        ↓
Relatório

Hoje podemos substituir essas etapas por:

Formulário digital
        ↓
Validação
        ↓
API
        ↓
Fila
        ↓
Processamento
        ↓
Banco de dados
        ↓
Dashboard

A aparência mudou.

A lógica permaneceu.


5. O cartão perfurado: o banco de dados que cabia na mão

O cartão perfurado de 80 colunas tornou-se um dos maiores símbolos da informática corporativa.

Cada posição podia ser perfurada de acordo com um código. Letras, números e símbolos eram representados por combinações de furos.

Para um programador moderno, podemos imaginar um cartão como um registro físico.

Se o cartão representasse um funcionário, suas colunas poderiam ser organizadas assim:

01-06  Matrícula
07-36  Nome
37-44  Data de admissão
45-54  Salário
55-56  Código do departamento
57-80  Informações complementares

Isso é um arquivo de largura fixa.

Quem trabalha com COBOL reconhecerá imediatamente a filosofia.

01 REGISTRO-FUNCIONARIO.
   05 MATRICULA             PIC 9(06).
   05 NOME                  PIC X(30).
   05 DATA-ADMISSAO         PIC 9(08).
   05 SALARIO               PIC 9(08)V99.
   05 COD-DEPARTAMENTO      PIC 9(02).
   05 COMPLEMENTO           PIC X(24).

O cartão perfurado não era apenas mídia.

Ele também influenciou a própria estrutura das linguagens e dos programas.

O formato tradicional do COBOL foi organizado considerando cartões de 80 colunas:

  • colunas 1 a 6: sequência;

  • coluna 7: indicador;

  • colunas 8 a 11: Área A;

  • colunas 12 a 72: Área B;

  • colunas 73 a 80: identificação.

Nada disso nasceu por acaso.

O formato fixo do COBOL é uma lembrança fossilizada do cartão perfurado.

Easter egg desbloqueado: sempre que você encontra um programa COBOL antigo usando colunas rígidas, está olhando para a sombra digital de uma máquina de perfuração.


6. A perfuradora não era uma simples digitadora

Uma das profissões fundamentais daquela época era a de perfurador ou perfuradora.

O programador escrevia o código em folhas de codificação.

Essas folhas eram encaminhadas ao setor de perfuração.

O profissional lia cada linha e a transferia para cartões.

A operação exigia velocidade, atenção e precisão.

Um furo errado poderia transformar:

ADD VALOR-VENDA TO TOTAL-VENDAS

em uma instrução inválida.

Pior: dependendo do erro, o programa poderia ser compilado e produzir um resultado incorreto.

Depois da perfuração vinha a conferência.

Em muitas instalações, outro profissional digitava novamente o conteúdo em uma máquina verificadora. Se a sequência digitada não correspondesse aos furos existentes, a máquina indicava divergência.

Era uma forma humana e mecânica de dupla validação.

Hoje chamamos isso de controle de qualidade.

Naquela época, chamava-se sobrevivência operacional.


7. Quando deixar cair um programa era literalmente possível

Um programa podia ser formado por centenas ou milhares de cartões.

Cada cartão representava uma linha.

Os cartões precisavam permanecer em ordem.

Se a pilha caísse no chão, o programa também caía.

Literalmente.

Por isso as colunas iniciais frequentemente continham números de sequência.

Caso o desastre acontecesse, os cartões poderiam ser classificados novamente por uma máquina sorter.

Essa é uma bela lição para o programador iniciante:

Numeração de sequência não era decoração. Era recuperação de desastre.

Hoje você usa Git.

Naquela época, usava-se disciplina, numeração e caixas de cartão.

A frase “meu código quebrou” tinha outra dimensão.


8. Os primeiros computadores desembarcam no Brasil

A chegada dos computadores eletrônicos ao Brasil ocorreu durante a década de 1950.

Um marco frequentemente citado é a instalação, em 1957, de um computador Univac para o governo do Estado de São Paulo. Pouco depois, em 1959, a Anderson Clayton adquiriu um IBM 305 RAMAC, apontado como o primeiro computador eletrônico instalado no setor privado brasileiro. (Din UEM)

O RAMAC era impressionante porque utilizava armazenamento em disco de acesso aleatório. Sua unidade IBM 350 empregava cinquenta discos magnéticos de grandes dimensões e armazenava poucos megabytes — capacidade minúscula hoje, mas revolucionária naquele contexto. (Wikipédia)

Não pense nesses computadores como PCs enormes.

Eles pertenciam a outro universo operacional.

A empresa não “comprava um computador” como quem compra uma estação de trabalho.

Ela implantava uma infraestrutura.

Era necessário preparar:

  • sala especial;

  • alimentação elétrica;

  • climatização;

  • piso;

  • cabeamento;

  • procedimentos;

  • operadores;

  • técnicos;

  • programadores;

  • métodos de segurança;

  • rotinas de backup.

A chegada do computador criava um novo departamento e uma nova cultura.


9. O CPD entra no palco

O Centro de Processamento de Dados, o famoso CPD, tornou-se o coração informacional das organizações.

Ali ficavam:

  • a unidade central;

  • leitoras de cartões;

  • perfuradoras;

  • impressoras de linha;

  • unidades de fita;

  • discos removíveis;

  • consoles;

  • painéis;

  • formulários contínuos;

  • armários de documentação.

O CPD era cercado por respeito e mistério.

Possuía acesso controlado.

Em muitos ambientes havia paredes de vidro separando os visitantes das máquinas.

O ar-condicionado era intenso.

Os operadores usavam roupas adequadas ao ambiente e, em algumas empresas, jalecos.

As máquinas produziam uma trilha sonora própria:

clac-clac-clac dos cartões,

vrummm das fitas,

trrrrrrrrr das impressoras,

bip do console.

Era rhythm and blues em código binário.

Uma banda inteira tocando para fechar a folha de pagamento.


10. IBM System/360: a grande banda entra em cena

Em 1964, a IBM anunciou a família System/360.

O nome representava a ambição de cobrir uma ampla variedade de aplicações: negócios, ciência, indústria e governo.

O conceito de família compatível foi revolucionário.

Antes disso, migrar para uma máquina maior frequentemente exigia reescrever programas. Com o System/360, a IBM buscava permitir que clientes evoluíssem dentro de uma arquitetura comum.

No Brasil, sistemas dessa família chegaram a bancos, indústrias, siderúrgicas, universidades e órgãos públicos.

Para empresas como a Mannesmann, o mainframe tornou-se parte da infraestrutura industrial.

Ele processava:

  • produção;

  • estoques;

  • custos;

  • materiais;

  • compras;

  • folha de pagamento;

  • contabilidade;

  • faturamento;

  • manutenção.

O computador deixava de ser uma curiosidade tecnológica.

Tornava-se sistema nervoso corporativo.


11. Uma carteira de trabalho assinada em 1975

Quando alguém olha para uma carteira de trabalho assinada em 1975 com uma função relacionada a processamento de dados, não está vendo apenas um registro profissional.

Está vendo um documento arqueológico da informática brasileira.

A pessoa que ingressava em um CPD naquela época encontrava um mundo sem interfaces amigáveis.

Aprender significava:

  1. observar profissionais experientes;

  2. estudar manuais;

  3. decorar códigos;

  4. entender formulários;

  5. acompanhar operações;

  6. interpretar mensagens;

  7. registrar procedimentos;

  8. errar com cuidado;

  9. nunca repetir o mesmo erro;

  10. respeitar a produção.

No CPD da Mannesmann, diante de um IBM System/360, as limitações de memória não eram uma abstração acadêmica.

Eram parte de cada decisão.

Uma tabela muito grande podia não caber.

Um programa mal estruturado podia consumir recursos preciosos.

Um excesso de operações de entrada e saída podia aumentar o tempo de execução.

Um erro na definição de arquivo podia interromper toda uma cadeia de processamento.

Essa escola criava um tipo específico de profissional:

alguém que pensava antes de executar.


12. O programador não começava programando

O caminho profissional podia começar em várias funções:

Auxiliar administrativo
        ↓
Perfurador
        ↓
Conferente
        ↓
Operador
        ↓
Programador trainee
        ↓
Programador júnior
        ↓
Programador pleno
        ↓
Programador sênior
        ↓
Analista de sistemas

Nem todas as carreiras seguiam exatamente essa ordem, mas era comum o conhecimento ser adquirido dentro da empresa.

O profissional conhecia primeiro a operação.

Depois aprendia a lógica.

Depois recebia pequenas alterações.

Mais tarde criava programas completos.

Isso tinha uma vantagem enorme: muitos programadores entendiam profundamente como o sistema era executado.

Eles sabiam o que acontecia antes e depois de seu código.

Sabiam quem montava a fita.

Sabiam onde o relatório era entregue.

Sabiam qual departamento dependia do processamento.

Hoje um desenvolvedor pode executar uma aplicação sem conhecer a infraestrutura.

Naquela época, software e operação viviam quase grudados.

Era DevOps antes do nome DevOps.


13. A folha de codificação: programar antes de digitar

O programa começava no papel.

O analista descrevia o problema.

Criava fluxogramas.

Definia arquivos.

Desenhava relatórios.

Especificava validações.

O programador recebia essas informações e escrevia o código em folhas de codificação.

Cada linha era planejada.

Depois a folha seguia para perfuração.

Esse processo podia levar horas ou dias até a primeira compilação.

Portanto, escrever código sem pensar era muito caro.

Considere um ciclo típico:

Especificação
     ↓
Fluxograma
     ↓
Teste de mesa
     ↓
Folha de codificação
     ↓
Perfuração
     ↓
Conferência
     ↓
Montagem do deck
     ↓
Submissão
     ↓
Compilação
     ↓
Listagem
     ↓
Correção

Hoje o compilador responde em segundos.

Naquela época, o programador podia entregar o job e aguardar uma janela de processamento.

O erro voltava impresso.

A depuração era feita examinando papel.


14. O teste de mesa: o debugger dentro da cabeça

Antes de submeter o programa, o profissional realizava o teste de mesa.

Ele simulava manualmente a execução.

Suponha o seguinte trecho:

MOVE 0 TO TOTAL-GERAL

PERFORM UNTIL FIM-ARQUIVO = 'S'
    READ ARQUIVO-VENDAS
        AT END
            MOVE 'S' TO FIM-ARQUIVO
        NOT AT END
            ADD VALOR-VENDA TO TOTAL-GERAL
    END-READ
END-PERFORM

No teste de mesa, o programador criava uma pequena tabela:

Registro   Valor   Fim?   Total
1          100     N      100
2          250     N      350
3           50     N      400
EOF        ---     S      400

Ele verificava cada mudança de variável.

Isso revelava loops infinitos, totais incorretos, condições erradas e registros processados duas vezes.

Dica Bellacosa para o iniciante:

Quando um programa COBOL parecer misterioso, execute cinco registros no papel. O papel não mente e não esconde estado.


15. O operador: maestro da sala de máquinas

O operador não era alguém que apenas apertava ENTER.

Ele controlava a execução física e lógica do ambiente.

Suas tarefas podiam incluir:

  • iniciar equipamentos;

  • carregar o sistema;

  • montar fitas;

  • instalar disk packs;

  • alimentar leitoras;

  • retirar listagens;

  • controlar filas;

  • responder a mensagens;

  • registrar falhas;

  • reiniciar jobs;

  • comunicar incidentes;

  • executar rotinas de backup.

Imagine um job solicitando:

MOUNT TAPE PAYR01 ON UNIT 480

Alguém precisava localizar a fita correta, conferir sua etiqueta, montá-la na unidade e responder ao sistema.

A automação dependia de mãos humanas.

O operador era parte do fluxo de execução.

Se ele montasse a fita errada, o sistema poderia ler informações incorretas.

Por isso existiam procedimentos rigorosos.

O CPD ensinou cedo uma lição que a nuvem às vezes faz esquecer:

Infraestrutura abstrata continua sendo infraestrutura real em algum lugar.


16. Disk packs: o disco removível com peso de responsabilidade

Antes dos pequenos discos rígidos modernos, eram comuns conjuntos removíveis de discos magnéticos.

Os disk packs possuíam múltiplos pratos.

O operador os transportava em recipientes protetores e os instalava em unidades específicas.

Cada superfície podia armazenar dados.

Uma poeira, um impacto ou uma instalação inadequada podia causar danos.

A troca de um volume não era um clique.

Era uma operação física.

Hoje montamos um volume em cloud computing usando uma instrução ou console.

Naquela época, “montar o volume” significava literalmente pegar o volume com as mãos.

Outro easter egg tecnológico:

O verbo mount, usado até hoje em sistemas operacionais, preserva a memória de uma época em que mídias precisavam ser fisicamente montadas.


17. Fitas magnéticas e o pensamento sequencial

As fitas magnéticas foram fundamentais.

Elas ofereciam boa capacidade para a época e eram úteis para:

  • arquivos históricos;

  • backups;

  • processamento em lote;

  • transferência;

  • entrada e saída de grandes volumes.

Mas a fita era sequencial.

Para chegar ao registro desejado, era necessário percorrer os anteriores.

Esse comportamento influenciou profundamente os programas COBOL.

Muitos sistemas eram desenhados para ler dois arquivos ordenados e realizar casamento de registros.

Exemplo:

Arquivo de clientes
+ 
Arquivo de pagamentos
=
Relatório de clientes pagos e inadimplentes

O algoritmo caminhava pelos dois arquivos em ordem de chave.

Essa técnica continua valiosa.

Ela ensina que a melhor solução depende das características do armazenamento.

Não existe algoritmo isolado da infraestrutura.


18. O analista de sistemas: tradutor entre dois mundos

Com o crescimento dos sistemas, tornou-se necessário separar responsabilidades.

O analista conversava com as áreas de negócio.

Ele precisava compreender:

  • como a empresa funcionava;

  • quais documentos existiam;

  • quais regras eram aplicadas;

  • onde ocorriam erros;

  • quais relatórios eram necessários;

  • quais arquivos deveriam ser criados;

  • quais controles seriam obrigatórios.

Depois transformava isso em especificação técnica.

O analista era um tradutor.

De um lado, o usuário dizia:

“Preciso impedir o faturamento de clientes bloqueados.”

Do outro, o programador precisava receber algo como:

Se o código de situação do cliente for diferente de 01,
rejeitar a transação, registrar ocorrência e emitir mensagem 145.

Boa análise elimina ambiguidade.

Esse princípio continua absolutamente atual.

Um requisito ruim em 1975 gerava um programa errado.

Um requisito ruim em 2026 gera um microsserviço errado muito mais rapidamente.


19. Os primeiros cursos e a formação prática

Durante os primeiros anos, a indústria formava grande parte de seus profissionais.

Fabricantes ofereciam treinamento.

Empresas criavam programas internos.

Manuais técnicos circulavam entre equipes.

Os primeiros cursos superiores brasileiros voltados especificamente à computação surgiram no final da década de 1960. Estudos históricos apontam a criação, em 1969, de cursos de graduação plena na Unicamp e na Universidade Federal da Bahia. (HCTE UFRJ)

Até que essa formação se difundisse, os profissionais pioneiros precisavam vir de outras áreas:

  • engenharia;

  • matemática;

  • administração;

  • contabilidade;

  • estatística;

  • operação de máquinas;

  • funções administrativas.

A informática brasileira foi construída por uma tripulação heterogênea.

Não havia uma estrada pronta.

Eles desenharam a estrada enquanto dirigiam.


20. Uma correção histórica importante sobre 1985

Aqui precisamos ajustar uma informação frequentemente repetida.

O Decreto nº 91.250, de 17 de maio de 1985, não regulamentou de forma ampla e definitiva o exercício das profissões de informática no setor privado brasileiro.

Ele alterou dispositivos do Decreto nº 83.989, de 1979, relacionados a categorias funcionais e requisitos de ingresso no serviço público federal. Entre as alterações, incluiu o curso de Tecnólogo em Processamento de Dados entre as formações aceitas para a categoria funcional de Analista de Sistemas. (Presidência da República)

Portanto, a interpretação mais precisa é:

O decreto contribuiu para organizar e reconhecer cargos de informática dentro da estrutura funcional federal, mas não criou uma regulamentação geral da profissão de programador ou analista para todo o mercado brasileiro.

A regulamentação ampla das profissões de informática continuou sendo objeto de debates e projetos legislativos posteriores. (Legis Senador)

Isso não diminui a importância histórica de 1985.

Pelo contrário.

Mostra como o Estado precisou adaptar suas estruturas administrativas ao crescimento de uma atividade que já existia havia décadas.

A profissão surgiu primeiro.

A legislação tentou alcançá-la depois.


21. O veterano sem diploma específico não era improvisado

Quando se fala em reconhecer experiência profissional, é preciso evitar um erro comum.

O pioneiro que não possuía diploma de Ciência da Computação não era necessariamente alguém sem formação.

Muitos eram engenheiros, matemáticos, administradores, contadores ou técnicos altamente especializados.

Outros haviam aprendido integralmente dentro das empresas.

Eles acumulavam milhares de horas de prática.

Conheciam máquinas que exigiam domínio simultâneo de:

  • lógica;

  • hardware;

  • armazenamento;

  • operação;

  • linguagem;

  • negócio;

  • contingência;

  • documentação.

O mercado não podia simplesmente declarar:

“Agora existe um curso; tudo o que veio antes deixou de valer.”

Seria como construir uma ponte e depois informar aos engenheiros que fizeram a obra que sua experiência não conta.

O reconhecimento da experiência preservava a memória técnica das organizações.


22. A reserva de mercado e a informática nacional

Durante parte das décadas de 1970 e 1980, o Brasil adotou políticas de proteção à indústria nacional de informática.

A intenção era reduzir dependência externa e desenvolver capacidade tecnológica local.

Esse movimento ajudou a estimular empresas, pesquisas e projetos nacionais, mas também limitou o acesso a certos equipamentos estrangeiros, aumentou custos e criou diferenças tecnológicas em relação aos principais mercados mundiais.

Foi uma história cheia de contradições.

De um lado:

  • formação de engenheiros;

  • criação de empresas nacionais;

  • desenvolvimento de hardware;

  • pesquisa universitária;

  • domínio local de tecnologias.

Do outro:

  • equipamentos caros;

  • atraso em determinados segmentos;

  • restrições de importação;

  • compatibilidades problemáticas;

  • mercado paralelo.

Em 1972, o Patinho Feio, desenvolvido na Universidade de São Paulo, tornou-se um símbolo do esforço brasileiro de projetar computadores. O projeto nasceu no ambiente acadêmico da Escola Politécnica da USP e deixou um legado importante para ensino e indústria. (Revista Pesquisa Fapesp)

A informática nacional não foi apenas uma tentativa de copiar máquinas.

Foi também um laboratório de formação humana.


23. A grande migração: do cartão para o terminal

Com a popularização dos terminais, especialmente famílias como o IBM 3270, a relação entre o programador e o computador mudou.

Antes:

Papel → perfuração → cartão → leitora → compilação → listagem

Depois:

Terminal → editor → submissão → spool → correção

O ciclo encurtou.

Ferramentas como TSO e ISPF transformaram o desenvolvimento em mainframe.

O código passou a ser editado diretamente em datasets.

O programador podia consultar a saída no spool.

Alterar uma linha tornou-se muito mais rápido.

Mas os hábitos do cartão continuaram presentes:

  • colunas;

  • largura fixa;

  • sequência;

  • datasets;

  • jobs;

  • relatórios;

  • processamento batch.

A nova tecnologia não apagou a anterior.

Construiu sobre ela.


24. Cinquenta anos de armazenamento

Uma pessoa que iniciou a carreira em 1975 pôde testemunhar uma das maiores transformações materiais da história.

Ela atravessou:

Cartão perfurado
      ↓
Fita magnética
      ↓
Disk pack
      ↓
Disquete
      ↓
Disco rígido
      ↓
RAID
      ↓
Storage corporativo
      ↓
SAN
      ↓
SSD
      ↓
NVMe
      ↓
Object storage
      ↓
Cloud computing

No cartão, o dado era visível como um furo.

Na fita, era uma sequência magnética.

No disco, ocupava trilhas e setores.

Na nuvem, parece não possuir localização física.

Mas ainda está armazenado em algum dispositivo.

A nuvem não eliminou o hardware.

Apenas colocou o hardware atrás de uma API.


25. O que o programador COBOL iniciante deve aprender com os pioneiros

Passo 1 — Entenda o negócio

Não comece apenas pela sintaxe.

Descubra:

  • quem usa o programa;

  • qual processo ele atende;

  • quais dados recebe;

  • qual resultado produz;

  • o que acontece quando falha.

Passo 2 — Leia o layout do arquivo

Em COBOL, dados são arquitetura.

Analise:

  • PIC;

  • tamanho;

  • sinal;

  • casas decimais;

  • campos redefinidos;

  • níveis;

  • campos de controle.

Passo 3 — Faça um teste de mesa

Pegue poucos registros.

Simule:

  • entrada;

  • condições;

  • cálculos;

  • saída;

  • fim de arquivo.

Passo 4 — Conheça o JCL

O programa não vive sozinho.

O JCL informa:

  • qual programa executar;

  • quais arquivos utilizar;

  • onde estão os dados;

  • o que fazer com a saída;

  • quais recursos serão necessários.

Passo 5 — Leia o spool

Não procure apenas a última mensagem.

Examine:

  • etapas executadas;

  • códigos de retorno;

  • mensagens;

  • alocações;

  • estatísticas;

  • dumps.

Passo 6 — Respeite a produção

Nunca trate uma alteração como “apenas uma linha”.

Uma linha pode afetar:

  • milhões de registros;

  • milhares de clientes;

  • fechamento contábil;

  • pagamento;

  • faturamento;

  • obrigação legal.

Passo 7 — Documente

O profissional seguinte talvez seja você mesmo seis meses depois.

Escreva para que ele entenda.


26. Curiosidades da estrada mainframe

O formulário contínuo tinha personalidade

Impressoras de linha utilizavam papel contínuo com furos laterais. Relatórios gigantes podiam ocupar caixas inteiras.

O erro podia chegar de carrinho

Listagens volumosas eram transportadas em carrinhos dentro de grandes CPDs.

O som ajudava no diagnóstico

Operadores experientes reconheciam anormalidades pelo ruído das unidades e impressoras.

A mídia tinha biblioteca

Fitas e discos eram armazenados, catalogados, emprestados e devolvidos como livros.

Backup era uma operação física

Copiar dados significava usar dispositivos, mídias, tempo de máquina e procedimentos formais.

O café era um componente crítico

Não aparece no diagrama da arquitetura, mas sustentou muitas janelas batch.


27. Easter egg: estamos em uma missão de Deus?

Os protagonistas de uma famosa comédia musical de 1980 cruzam estradas, reúnem antigos companheiros e enfrentam obstáculos absurdos para salvar aquilo em que acreditam.

A geração pioneira da informática brasileira também recebeu uma missão.

Não usava um automóvel preto atravessando Chicago.

Usava ônibus, trem, fusca, crachá e relógio de ponto.

Não precisava reunir uma banda.

Precisava reunir:

  • o analista;

  • o programador;

  • o perfurador;

  • o conferente;

  • o operador;

  • o técnico;

  • o usuário;

  • o chefe do CPD.

Quando todos trabalhavam em harmonia, o processamento entrava no ritmo.

Quando um deles saía do compasso, aparecia o ABEND.

A diferença entre uma banda e um CPD talvez seja menor do que parece.

Ambos exigem sincronização.

Ambos dependem de disciplina.

Ambos possuem bastidores invisíveis.

E ambos podem ser destruídos por alguém que entra no momento errado.


28. O verdadeiro mainframe sempre foi humano

É tentador contar a história da informática como uma sequência de máquinas.

Hollerith.

UNIVAC.

RAMAC.

System/360.

System/370.

308X.

ES/9000.

S/390.

IBM Z.

Mas máquinas não escrevem sua própria história.

Foram pessoas que decidiram como utilizá-las.

Pessoas perfuraram cartões.

Pessoas carregaram discos.

Pessoas interpretaram dumps.

Pessoas enfrentaram madrugadas.

Pessoas explicaram sistemas.

Pessoas ensinaram colegas.

Pessoas preservaram programas.

Pessoas migraram dados.

Pessoas impediram que décadas de conhecimento fossem perdidas.

O profissional que começou em 1975 e chegou à computação em nuvem não atravessou apenas mudanças de equipamento.

Atravessou diferentes maneiras de imaginar o que é informação.

Primeiro, a informação era um documento.

Depois, um furo.

Depois, um campo magnético.

Depois, um registro.

Depois, uma tabela.

Depois, um objeto.

Depois, um evento distribuído.

Mas, em todas as épocas, alguém precisou responder às mesmas perguntas:

  • O dado está correto?

  • O processamento terminou?

  • O resultado pode ser confiado?

  • Existe recuperação?

  • Quem será afetado?

  • O que faremos se falhar?


Conclusão: todos fazem parte da mesma banda

A história da profissão de informático no Brasil não começa no Vale do Silício.

Começa também nas ferrovias, nos escritórios, nos bancos, nas siderúrgicas, nas repartições públicas, nas universidades e nos departamentos Hollerith.

Começa com pessoas que mecanizaram cálculos.

Continua com perfuradores que transformaram papel em dados.

Avança com operadores que comandaram salas cheias de máquinas.

Ganha lógica com programadores que escreveram sistemas em Assembler, COBOL, FORTRAN e RPG.

Ganha visão com analistas que converteram processos empresariais em especificações.

Ganha escala com os grandes mainframes.

Ganha alcance com redes e terminais.

Ganha velocidade com discos e servidores.

Ganha abstração com virtualização e nuvem.

E chega ao presente com ambientes distribuídos, inteligência artificial e armazenamento aparentemente infinito.

Entretanto, a essência permanece.

Informática continua sendo a arte de transformar uma necessidade humana em uma sequência confiável de operações.

Por isso, olhar para uma carteira de trabalho assinada em 1975 não é praticar nostalgia vazia.

É reconhecer um documento de fundação.

Aquela assinatura pertence a uma geração que entrou em CPDs quando o conhecimento ainda precisava ser descoberto, traduzido e transmitido de pessoa para pessoa.

Uma geração que programava na raça.

Que respeitava cada byte.

Que sabia o peso de um disco.

Que conhecia o valor de uma fita.

Que entendia o silêncio de uma máquina parada.

Que não precisava chamar tudo de “missão crítica”, porque sabia que, se o processamento não terminasse, alguém não receberia, uma fábrica não faturaria ou um banco não fecharia.

A nova geração precisa conhecer essa história não para repetir suas limitações, mas para herdar suas virtudes:

disciplina,

curiosidade,

responsabilidade,

capacidade de análise,

respeito aos dados,

e coragem para enfrentar sistemas que parecem impossíveis.

Portanto, coloque os óculos escuros.

Ajuste o chapéu.

Confira o JCL.

Monte a fita.

Não derrube os cartões.

Temos memória limitada, uma janela batch fechando, centenas de quilômetros de história pela frente e um sistema inteiro esperando para ser processado.

Estamos em uma missão.

Fazer o conhecimento dos pioneiros continuar rodando.

Conheça um pouco sobre o Cobol

 https://eljefemidnightlunch.blogspot.com/2009/04/cobol-uma-odisseia-de-1959-ao-ibm-z.html

quarta-feira, 4 de dezembro de 2019

🇯🇵 STIFLER NO JAPÃO — A Arqueologia do P2P Japonês

 

Bellacosa Mainframe e o p2p no Japão

☕ Um Café no Bellacosa Mainframe

🇯🇵 STIFLER NO JAPÃO — A Arqueologia do P2P Japonês

WinMX, Winny, Share, Perfect Dark, 2channel, NicoNico e a estranha história de uma Internet japonesa que existia diante dos nossos olhos — mas que boa parte do Ocidente quase nunca enxergou.




🍺 PRÓLOGO — STIFLER DESCOBRE QUE A INTERNET NÃO TERMINAVA NO EMULE

Imagine Steve Stifler, de American Pie, sentado diante de um computador no começo dos anos 2000.

Windows XP.

Monitor CRT.

Internet ainda relativamente lenta.

HD com alguns poucos gigabytes livres.

Winamp aberto.

ICQ piscando.

Kazaa instalado.

eMule trabalhando heroicamente durante três dias para baixar um arquivo de 700 MB.

Stifler olha para aquela maravilhosa invenção chamada Internet e chega a uma conclusão perfeitamente compatível com Stifler:

— Se existe na Internet, eu consigo encontrar.

Não, Stifler.

Você não consegue.

E talvez essa seja uma das coisas mais fascinantes da arqueologia digital.

Durante anos tivemos a impressão de que programas como Kazaa, eDonkey, eMule, LimeWire e posteriormente BitTorrent representavam praticamente todo o universo do compartilhamento de arquivos.

Mas não representavam.

Enquanto milhões de ocidentais exploravam determinadas redes, o Japão desenvolvia seu próprio ecossistema de compartilhamento.

WinMX.

Winny.

Share.

Perfect Dark.

2channel.

Depois NicoNico.

Mais tarde redes sociais, armazenamento em nuvem, aplicativos de mensagens e serviços de streaming transformariam novamente essa paisagem.

Era como se duas enormes cidades digitais estivessem funcionando simultaneamente.

Os habitantes das duas utilizavam a Internet.

Mas frequentavam bairros diferentes.

E Stifler estava prestes a descobrir que possuir o endereço IP não significava possuir o mapa da cidade.




🗺️ CAPÍTULO 1 — EXISTIAM VÁRIAS INTERNETS DENTRO DA INTERNET

Quando pensamos na Internet, imaginamos uma rede universal.

Tecnicamente isso está razoavelmente correto.

Culturalmente, não.

A Internet sempre foi dividida por idiomas, sistemas operacionais, comunidades, mecanismos de busca, protocolos e hábitos locais.

Um brasileiro dos anos 2000 poderia utilizar:

MSN
Orkut
eMule
KaZaA
ICQ
Fóruns
IRC.

Um japonês poderia circular por ambientes completamente diferentes.

Isso cria algo que podemos chamar informalmente de ilhas culturais digitais.

Não são redes necessariamente isoladas fisicamente.

A barreira está em outra camada.

Imagine:

                 INTERNET
                    |
        +-----------+-----------+
        |                       |
    ECOSSISTEMA              ECOSSISTEMA
     OCIDENTAL                JAPONÊS
        |                       |
      eMule                   WinMX
      Kazaa                   Winny
    LimeWire                  Share
    BitTorrent             Perfect Dark
        |                       |
      fóruns                2channel

Tecnicamente um brasileiro poderia instalar um software japonês.

Mas isso não significava que conseguiria encontrar alguma coisa.

Porque faltava algo importantíssimo.

Contexto.

Stifler entra na sala.

— Então basta instalar o programa japonês?

Não.

— Traduzir os botões?

Também não.

— Então o que falta?

Quase tudo.



🔎 CAPÍTULO 2 — BUSCAR É DIFERENTE DE SABER PROCURAR

Esse princípio vale até hoje.

Imagine um arquivo relacionado a determinada banda japonesa.

Você procura:

Japanese rock concert

Nada particularmente interessante aparece.

Um japonês procura o nome original da banda, uma abreviação usada pelos fãs, o nome do evento e uma convenção específica utilizada para nomear gravações.

Centenas de resultados aparecem.

O arquivo sempre esteve lá.

O problema era a consulta.

Isso é praticamente uma aula sobre banco de dados.

SELECT *
FROM INTERNET
WHERE DESCRIPTION = 'aquilo que Stifler acha que os japoneses chamam disso';

Resultado:

0 ROWS FOUND

Stifler conclui:

— Não existe!

O DBA responde:

— Sua query é que está errada.

Essa diferença torna-se gigantesca quando saímos do inglês.

Japonês possui kanji, hiragana e katakana, romanizações, abreviações, gírias e terminologia específica de determinadas comunidades.

Portanto:

arquivo existente ≠ arquivo encontrável.

Essa equação será fundamental durante toda nossa investigação.



🦖 CAPÍTULO 3 — WINMX CONQUISTA O JAPÃO

Antes de existir uma geração propriamente japonesa de softwares P2P, um programa estrangeiro encontrou terreno extremamente fértil no país.

WinMX.

Para quem viveu aquela época, o nome provoca imediatamente uma viagem no tempo.

O WinMX permitia procurar e compartilhar arquivos entre usuários e tornou-se particularmente popular no Japão.

Um dos motivos importantes era algo que hoje parece trivial:

funcionar adequadamente com caracteres japoneses.

No começo dos anos 2000 isso não era detalhe cosmético.

Era infraestrutura.

Encoding era uma guerra.

Shift JIS.

EUC-JP.

Unicode ainda não havia eliminado todos os nossos sofrimentos.

Um aplicativo que lidasse adequadamente com japonês possuía enorme vantagem naquele mercado.

Stifler observa:

— Então Unicode também influencia onde encontramos... coisas?

Sim, Stifler.

Você finalmente aprendeu alguma coisa.



👻 CAPÍTULO 4 — SURGE O MISTERIOSO MR. 47

Em 2002 começa uma das histórias mais interessantes da computação japonesa.

No gigantesco fórum anônimo japonês 2channel, um programador começou a discutir a criação de uma nova rede P2P.

Seu nome era Isamu Kaneko.

Mas naquele ambiente ele ficou associado ao apelido:

47氏 — Mr. 47.

O número estava relacionado à postagem pela qual ficou identificado na discussão.

Kaneko queria criar algo diferente.

O resultado seria:

WINNY

O nome contém um pequeno easter egg de programador.

Observe:

WINMX

Avance algumas letras:

M → N
X → Y

Temos:

WINNY

WinMX evolui linguisticamente para Winny.

Stifler olha aquilo e comenta:

— Programadores precisam sair mais de casa.

Talvez.

Mas o trocadilho ficou excelente.



🕸️ CAPÍTULO 5 — WINNY NÃO ERA APENAS OUTRO PROGRAMA DE DOWNLOAD

Aqui precisamos entrar um pouco mais profundamente na tecnologia.

Sistemas centralizados possuem uma vulnerabilidade conceitual:

o centro.

Imagine:

          SERVIDOR
         /   |   \
        /    |    \
       A     B     C

Se o servidor desaparece:

             X
         /   |   \
        A    B    C

temos um problema.

Redes P2P procuram distribuir funções entre participantes.

Simplificando bastante:

A ←→ B ←→ C
↑    ↕    ↑
↓    ↕    ↓
D ←→ E ←→ F

Cada participante pode contribuir com armazenamento, comunicação ou distribuição.

Winny empregava conceitos de descentralização, criptografia e cache distribuído.

O arquivo não precisava simplesmente permanecer no computador de uma única pessoa esperando alguém encontrá-lo.

Partes da informação podiam circular pela infraestrutura.

Isso tornava a rede mais resistente.

Também tornava controle e remoção muito mais difíceis.

E aqui aparece uma lição que continua absolutamente atual:

Descentralização distribui poder, mas também distribui responsabilidade.

Blockchain enfrentaria discussões parecidas.

Tor também.

Criptomoedas também.

IA generativa também.

A tecnologia pode ser neutra em sua arquitetura enquanto seus usos produzem consequências jurídicas, econômicas e sociais bastante concretas.


🏯 CAPÍTULO 6 — 2CHANNEL ERA O MANUAL QUE NÃO VINHA NA CAIXA

Talvez essa seja uma das peças mais importantes desta arqueologia.

O P2P japonês não era somente software.

Era software + comunidade.

2channel funcionava como uma gigantesca camada social.

Ali pessoas discutiam programas, versões, bugs, arquivos, hashes, configurações, acontecimentos e praticamente qualquer assunto imaginável.

Portanto poderíamos representar aquele ecossistema assim:

2CHANNEL
   |
   +-- conhecimento
   +-- descoberta
   +-- terminologia
   +-- comunidade
   +-- novidades
   |
   v
  WINNY
   |
   +-- busca
   +-- cache
   +-- transferência
   +-- distribuição

Essa arquitetura social é importantíssima.

Hoje fazemos algo semelhante quando alguém encontra uma informação em:

Reddit
Discord
Telegram
fórum
rede social

e segue dali para outro serviço.

O fórum não precisa armazenar o arquivo.

Ele precisa fornecer informação sobre a existência do arquivo.

É metadata humana.


🚔 CAPÍTULO 7 — A POLÍCIA BATE À PORTA

O sucesso de Winny inevitavelmente chamou atenção.

A rede passou a ser utilizada para compartilhamento de material protegido por copyright.

Usuários foram investigados.

E eventualmente o próprio Isamu Kaneko foi preso em 2004, acusado de auxiliar violações de copyright por meio do desenvolvimento do programa.

Começava uma discussão jurídica fascinante:

o criador de uma ferramenta é responsável pelos usos feitos por terceiros?

Imagine transportar a pergunta para outros contextos.

O fabricante do compilador é responsável pelo malware compilado nele?

O desenvolvedor de criptografia é responsável pela comunicação criminosa protegida pelo algoritmo?

O fabricante de uma câmera responde por fotografias ilegais produzidas com ela?

O desenvolvedor de uma IA responde por tudo que seus usuários tentarem produzir?

Não existem respostas triviais.

Kaneko foi inicialmente condenado, mas o caso percorreu o sistema judicial japonês e terminou com sua absolvição mantida pela Suprema Corte em 2011.

Ou seja, aquela aparentemente simples história de compartilhamento de arquivos virou uma discussão sobre os limites da responsabilidade de quem constrói tecnologia.

Stifler, surpreendentemente sério por alguns segundos, pergunta:

— Então quem escreve código também precisa pensar em direito?

Bem-vindo ao mundo real.


☣️ CAPÍTULO 8 — ANTINNY: QUANDO O DOWNLOAD COMEÇA A COMPARTILHAR VOCÊ

Então aconteceu algo ainda mais assustador.

Surgiu uma família de malware conhecida como Antinny.

Ela atacava usuários do ecossistema Winny.

Em determinadas variantes, arquivos existentes no computador infectado poderiam acabar sendo expostos através da própria rede.

Observe a perversidade:

USUÁRIO
   |
   v
PROCURA ARQUIVO
   |
   v
BAIXA CONTEÚDO MALICIOSO
   |
   v
EXECUTA
   |
   v
MALWARE
   |
   v
PROCURA DADOS LOCAIS
   |
   v
PUBLICAÇÃO
   |
   v
P2P

Stifler fica pálido.

Porque de repente aquela pasta chamada:

NAO_ABRIR

parece uma ideia muito ruim.

E era.

Ocorreram vazamentos envolvendo informações privadas, empresariais e governamentais.

Isso oferece uma aula extraordinária de segurança.

Confidencialidade não depende apenas de proteger o servidor.

O endpoint também importa.

O usuário também importa.

O software instalado também importa.


🛡️ CAPÍTULO 9 — UM DLP ANTES DE TODO MUNDO FALAR EM DLP

Transportemos isso para segurança corporativa moderna.

Imagine:

MAINFRAME
    |
   RACF
    |
 aplicação
    |
 arquivo exportado
    |
 workstation
    |
 malware

O mainframe poderia estar perfeitamente protegido.

RACF funcionando.

Dataset corretamente autorizado.

Auditoria impecável.

Mas alguém exportou os dados legitimamente para um endpoint comprometido.

Acabou.

Segurança precisa considerar o ciclo de vida da informação, não somente o sistema onde ela nasceu.

Esse é exatamente o tipo de situação que conceitos modernos de DLP — Data Loss Prevention — procuram enfrentar.

Winny e Antinny mostraram brutalmente que:

depois que informação confidencial sai do perímetro controlado, recuperar controle pode ser praticamente impossível.

E redes distribuídas tornam isso ainda pior.


👤 CAPÍTULO 10 — SHARE: O SUCESSOR ESPIRITUAL

A pressão sobre Winny não acabou com o P2P japonês.

O ecossistema evoluiu.

Surge:

SHARE

Share continuava explorando ideias de distribuição, anonimização e cache.

Mas existe uma curiosidade deliciosa para quem gosta de anime e cyberpunk.

Sua identidade visual possuía referência ao Laughing Man, de Ghost in the Shell: Stand Alone Complex.

Pense no encaixe perfeito:

anonimato.

Redes.

Hackers.

Identidade.

Informação.

Sociedade digital.

Ghost in the Shell.

Era praticamente inevitável.

Stifler não entende metade da referência.

Mas acha o logo legal.


🌑 CAPÍTULO 11 — PERFECT DARK E A INTERNET QUE O OCIDENTE MAL VIA

Depois surge outro nome lendário:

PERFECT DARK

O software aparece por volta de 2006 e continua a linhagem japonesa de P2P distribuído.

Perfect Dark é particularmente interessante para nossa investigação porque evidencia algo fundamental:

existiram redes cujo público estava fortemente concentrado no Japão.

Isso significa que um usuário brasileiro poderia passar anos explorando eMule e BitTorrent sem sequer perceber a dimensão de determinados ecossistemas japoneses.

Imagine dois oceanos:

        INTERNET GLOBAL
              |
      +-------+-------+
      |               |
    EMULE        PERFECT DARK
      |               |
 Europa             Japão
 Brasil             Japão
 EUA                Japão
      |               |
      +-------?-------+

Existe conexão técnica potencial.

Mas culturalmente são mundos diferentes.

É aqui que finalmente respondemos à pergunta de Stifler:

— Então existia uma Internet secreta japonesa?

Não.

Existia uma Internet japonesa que você não sabia procurar.

Essa diferença é enorme.


🔐 CAPÍTULO 12 — O RACF CULTURAL

Como programador mainframe, podemos construir uma analogia maravilhosa.

Stifler instala Perfect Dark.

Conecta.

Está dentro.

Mas procura tudo usando inglês.

Não conhece abreviações japonesas.

Não conhece comunidades.

Não conhece nomenclatura.

Não conhece referências.

Resultado:

ICH408I
USER(STIFLER)
RESOURCE(JAPANESE-CULTURAL-CONTEXT)
ACCESS INTENT(READ)
ACCESS ALLOWED(NONE)

😂

Tecnicamente:

USER AUTHENTICATED

Mas:

CULTURAL AUTHORIZATION FAILED

Ele possui acesso à rede.

Não possui acesso ao conhecimento sobre a rede.

Essa talvez seja a melhor definição da barreira.


📺 CAPÍTULO 13 — NICOnico MUDA O JOGO

Então chegamos a 2006.

Surge Niconico, que se tornaria uma das plataformas mais emblemáticas da cultura japonesa da Internet.

E começa uma transformação muito maior.

A velha geração fazia:

ENCONTRAR
   ↓
BAIXAR
   ↓
ARMAZENAR
   ↓
CATALOGAR
   ↓
COMPARTILHAR

A nova geração começa a fazer:

ENCONTRAR
   ↓
ASSISTIR
   ↓
COMENTAR
   ↓
COMPARTILHAR LINK

Parece apenas uma mudança de interface.

Não é.

É uma mudança de propriedade.


💾 CAPÍTULO 14 — NÓS ÉRAMOS BIBLIOTECÁRIOS

Quem viveu intensamente a Internet dos anos 1990 e 2000 provavelmente possui lembranças de diretórios como:

MP3
FILMES
ANIME
DOCUMENTARIOS
PROGRAMAS
FOTOS
BACKUP
BACKUP2
BACKUP_FINAL
BACKUP_FINAL_AGORA_VAI

😂

Nós acumulávamos arquivos.

Comprávamos HDs maiores.

Gravávamos CDs.

Depois DVDs.

Criávamos coleções.

Renomeávamos arquivos.

Organizávamos pastas.

Éramos bibliotecários digitais domésticos.

Stifler não chamaria aquilo de biblioteconomia.

Mas era exatamente isso.


☁️ CAPÍTULO 15 — ENTÃO PARAMOS DE POSSUIR AS COISAS

Streaming mudou completamente essa relação.

Hoje temos:

Spotify.

YouTube.

Netflix.

Serviços de anime.

Nuvens.

Redes sociais.

O arquivo não está necessariamente conosco.

Temos acesso a ele.

ERA P2P

CONTEÚDO
   ↓
MEU HD

versus:

ERA CLOUD

CONTEÚDO
   ↓
SERVIÇO
   ↓
MINHA CONTA
   ↓
STREAM

Essa transformação trouxe enorme conveniência.

Mas criou uma consequência curiosa para preservação histórica.


🏺 CAPÍTULO 16 — O PARADOXO DA INTERNET MODERNA

Temos hoje quantidades absurdamente maiores de armazenamento.

Porém determinados conteúdos podem ser mais efêmeros.

Em 2003:

arquivo
 ↓
Winny
 ↓
500 computadores
 ↓
300 backups
 ↓
CDs
 ↓
HDs esquecidos

Em 2026:

vídeo
 ↓
plataforma
 ↓
conta removida
 ↓
FIM

Isso significa que descentralização acidentalmente funcionava também como preservação.

Cada usuário mantinha uma cópia.

É semelhante ao princípio:

Lots of Copies Keep Stuff Safe.

Quanto maior a distribuição, maior a chance de alguma cópia sobreviver.


📱 CAPÍTULO 17 — O SMARTPHONE MATOU O ARQUIVISTA DOMÉSTICO

Não literalmente.

Mas mudou profundamente seu comportamento.

O computador incentivava:

SAVE AS...

O smartphone incentiva:

SHARE

Observe a diferença.

Salvar cria posse.

Compartilhar cria circulação.

Uma fotografia pode nascer no smartphone, passar por uma plataforma e nunca existir como arquivo conscientemente administrado pelo usuário.

A geração anterior perguntava:

— Em qual pasta está?

A geração moderna pergunta:

— Em qual aplicativo eu vi?

Essa diferença é gigantesca.


🕵️ CAPÍTULO 18 — ENTÃO ONDE FOI PARAR O P2P JAPONÊS?

Ele não simplesmente desapareceu numa terça-feira.

O ambiente fragmentou-se.

BitTorrent absorveu parte do compartilhamento mundial.

Serviços legais absorveram grande quantidade de mídia.

Cloud storage facilitou transferências privadas.

Redes sociais passaram a distribuir imagens e vídeos.

Mensageiros criaram comunidades fechadas.

Serviços especializados absorveram nichos.

O antigo modelo:

UM CLIENTE P2P
      ↓
MILHÕES DE ARQUIVOS

transformou-se em:

      INTERNET
          |
   +------+------+------+
   |      |      |      |
 vídeo   SNS   cloud  chat
   |      |      |      |
 nicho   nicho  nicho  nicho

Para o arqueólogo digital isso é pior.

Agora precisamos descobrir não apenas o que procurar.

Precisamos descobrir onde aquela comunidade vive.


🧠 CAPÍTULO 19 — O ALGORITMO SUBSTITUI A BUSCA

Existe ainda outra transformação.

No eMule você dizia:

Quero X.

O sistema procurava X.

Nas plataformas modernas você diz muito menos.

O algoritmo observa seu comportamento e decide:

Talvez você queira Y.

Passamos de:

SEARCH

para:

RECOMMENDATION

Isso muda inclusive a forma como culturas digitais são descobertas.

Um estrangeiro podia explorar deliberadamente um diretório P2P.

Hoje determinadas comunidades ficam escondidas atrás de recomendações personalizadas.

Duas pessoas podem abrir a mesma plataforma e praticamente enxergar duas Internets diferentes.


🧬 CAPÍTULO 20 — O QUE STIFLER FINALMENTE APRENDEU

Stifler começou esta história procurando diversão.

Terminou aprendendo ciência da computação.

O P2P japonês nos ensina sobre:

descentralização,
criptografia,
cache distribuído,
descoberta de informação,
segurança de endpoints,
malware,
DLP,
copyright,
responsabilidade de desenvolvedores,
comunidades digitais,
barreiras linguísticas,
preservação digital,
efeitos de rede
e arqueologia da Internet.

Mas existe uma lição ainda maior.

Informação não é apenas dado.

Informação é:

DADO
+
CONTEXTO
+
LINGUAGEM
+
COMUNIDADE
+
MECANISMO DE DESCOBERTA

Retire qualquer uma dessas peças e algo perfeitamente existente pode tornar-se praticamente invisível.


🥚 EASTER EGG — 03:17

São 03:17 da madrugada.

Stifler finalmente encontra um computador antigo esquecido em algum lugar.

Windows XP.

HD fazendo aquele barulho preocupante:

clack...
clack...
clack...

Existe uma pasta:

C:\P2P\

Ele abre.

WINMX
WINNY
SHARE
PERFECT_DARK

Stifler sorri.

Vinte e cinco anos de arqueologia digital finalmente chegaram ao grande momento.

Ele abre a última pasta.

Existe apenas um arquivo:

README.TXT

Stifler clica.

A mensagem diz:

VOCÊ PROCUROU DURANTE 25 ANOS.

MAS CONTINUOU PROCURANDO EM INGLÊS.

Silêncio.

O HD desliga.

Stifler olha para a tela.

— Motherf...

ICH408I — CULTURAL ACCESS DENIED.


☕ EPÍLOGO — UM CAFÉ NO BELLACOSA MAINFRAME

Talvez a história do P2P japonês seja muito maior do que Winny ou Perfect Dark.

Ela mostra como podemos estar conectados à mesma infraestrutura e ainda viver em universos digitais completamente diferentes.

O Japão não precisava construir uma rede fisicamente secreta.

Bastavam:

idioma próprio, comunidades próprias, softwares próprios, convenções próprias e hábitos próprios.

Era uma espécie de criptografia cultural.

O estrangeiro enxergava os pacotes.

Mas não necessariamente compreendia o significado.

E isso continua acontecendo em 2026.

Mudaram os protocolos.

Mudaram os aplicativos.

Mudaram os dispositivos.

Mas continuamos criando pequenas cidades dentro da grande cidade chamada Internet.

WinMX virou peça de museu digital.

Winny virou caso histórico.

Share e Perfect Dark tornaram-se capítulos fascinantes da cultura P2P japonesa.

2channel mostrou o poder das comunidades anônimas.

NicoNico antecipou uma nova cultura participativa.

Streaming substituiu grande parte da coleção local.

O smartphone transformou arquivos em feeds.

E os algoritmos começaram a decidir quais ruas dessa gigantesca cidade digital cada pessoa consegue enxergar.

No fundo, Stifler descobriu uma coisa que qualquer velho operador de mainframe já sabia:

ter conexão com o sistema não significa conhecer o sistema.

Às vezes você possui usuário.

Possui senha.

Possui terminal.

Possui rede.

Possui software.

E mesmo assim falta o componente mais importante:

saber onde procurar.

Um Café no Bellacosa Mainframe

Porque algumas das melhores aulas sobre sistemas distribuídos começaram com alguém simplesmente querendo baixar um arquivo.



terça-feira, 3 de dezembro de 2019

🔥 PUDDING JAPONÊS — O “flan supremo” dos animes,

Bellacosa Mainframe e o pudding japones


🔥 PUDDING JAPONÊS — O “flan supremo” dos animes, explicado ao estilo Bellacosa Mainframe para o blog El Jefe Midnight Lunch 🔥
(em primeira pessoa, porque memória boa a gente serve quentinha)


Sabe quando você está maratonando anime — aquele slice of life gostosinho, ou mesmo um shounen pancadaria — e do nada aparece um potinho transparente com um flan tremelicando perigosamente? Aquele dourado brilhante, coberto por uma caldinha marrom que parece ter 99% de açúcar e 1% de magia? Pois é, meus otakus padawans… aquilo é o lendário Pudding Japonês.

Ou, como dizem por lá: プリン (Purin).
Sim, “purin” — porque o Japão tem o superpoder de pegar palavras ocidentais e transformá-las em fofura.




🥮 O QUE DIABOS É O PURIN?

Pensa no nosso pudim brasileiro?
Pois tire o leite condensado, tire o furo no meio, reduza 50% da alma brasileira e adicione:

  • consistência mais firme, porém tremelicante;

  • muito ovo (mas com sabor suave);

  • calda de caramelo mais líquida;

  • formato individual;

  • e aquele brilho que parece que ele foi renderizado com Ray Tracing.

Ele está mais para uma fusão entre flan francês + geleia firme + magia das obachan.


🧪 ORIGEM — ou como o Japão fez do pudim um evento cultural

O purin chegou ao Japão no período Meiji (lá por 1870), quando o país abriu as portas para as influências ocidentais. Os japoneses, meticulosos como bons “engenheiros do sabor”, ajustaram a receita para ficar:

  • mais suave,

  • mais firme,

  • mais fácil de industrializar,

  • e perfeita para aparecer em 10.000 animes por ano.

Nas décadas de 1950–60, com o boom dos konbini (lojinhas de conveniência), ele se tornou o lanche portátil número 1. Assim como o cartão perfurado no mainframe, o pudim virou onipresente.


📺 PUDDING NOS ANIMES — onde ele brilhou

Esse glorioso flan animado é praticamente um NPC recorrente do Japão. Alguns momentos clássicos:

🍮 Purin do Shin-Chan

Shin-chan vive roubando o pudim do pai. Clássico supremo da cultura otaku.

🍮 Purin no Pokémon

Jigglypuff é chamado de Purin no original (isso mesmo!).
O nome é literalmente “PU-DIM”.
Coincidência? Eu acho é que o bicho foi modelado num flan 3D.

🍮 Sailor Moon

Usagi, sempre faminta, devorava purin como se fosse XP.

🍮 Anya de Spy x Family

Só falta fazer contrato JCL pra garantir o estoque de pudim daquela criança.
Purin é praticamente moeda de troca emocional da Anya.

🍮 Cardcaptor Sakura

Tomoyo sempre aparecia com lanches sofisticados. Claro que o pudim desfilava lá no meio.

🍮 Animes escolares

Em 99,99% deles, sempre tem:

  • o pudim do konbini,

  • o pudim caseiro da mãe amorosa,

  • ou o pudim roubado pelo protagonista bobão.


🧐 CURIOSIDADES, BUGS E EASTER EGGS OTÁKICOS

💡 1. O purin aparece como símbolo de “doçura infantil”
Se o anime quer mostrar inocência, conforto ou algo “fofinho”, prepara que o pudim vem.

💡 2. Existe “Purin Gigante”
No Japão tem versões MONSTRUOSAS, do tamanho de um volume 327 do manual do RACF.
Anime que é anime sempre mostra um desses.

💡 3. O purin virou meme de “item de cura”
Em jogos e animes, comer purin recupera energia.
Se fosse no mainframe, recuperaria MIPS.

💡 4. Purin é usado como punição
Sabe quando alguém come o pudim do outro da geladeira?
No Japão isso é TRETA nível CICS degradando recurso.
É sério. Rola briga familiar por causa disso.

💡 5. Tem purin “premium premium”
Feitos com ovos especiais, leite Hokkaido, calda artesanal…
O Japão conseguiu transformar pudim em artigo de luxo.


🍮 COMO SABOREAR COMO UM VERDADEIRO OTAKU

✔ Coma geladinho, de colherinha pequena
✔ Comece pela borda para soltar aquela tremidinha hipnotizante
✔ Não misture tudo — é pecado
✔ Se der pra comer no konbini, sentado na calçada… XP aumenta +10


🔧 DICAS BELLACOSA MAINFRAME

Se pudim fosse job JCL seria:

//PUDIM EXEC FLANPROC //OVOS DD DISP=SHR //ACUCAR DD DISP=SHR //LEITE DD DISP=SHR //TEMPO DD DLY=’00:45’ //SAIDA DD SYSOUT=P

E sempre teria um abend chamado:
S0P1 – Someone ate your pudding before you.


❤️ FECHANDO O POST — MEMÓRIA AFETIVA MODE ON

Eu sempre falo que comida boa vira checkpoint da vida.
E o purin japonês virou, para nós otakus, aquele dump de memória afetiva que aparece do nada e traz um sorriso instantâneo.

Toda vez que vejo um potinho tremendo num anime, lembro que:

  • a vida precisa de doçura,

  • de pausas

  • e de pequenos prazeres simples…

…até porque não dá pra viver só de manuais de 300 páginas, CICS, JCL e dumps infernais.

Às vezes, tudo que a gente precisa é um purin geladinho na noite de sábado, como nos velhos animes da juventude.


segunda-feira, 2 de dezembro de 2019

☕💥 A Jornada do Padawan COBOL – Parte 12 Desvendando o Universo dos CALLs no Mainframe

 

Bellacosa Mainframe e o call em cobol parte xii

☕💥 A Jornada do Padawan COBOL – Parte 12

Desvendando o Universo dos CALLs no Mainframe

PSA, CVT, ASCB, TCB, RB, ACEE, CSA, ECSA, LSQA, SQA e os Mistérios dos Control Blocks que Sustentam o z/OS

Ou como descobrir que existe um universo inteiro escondido em endereços hexadecimais que praticamente nenhum desenvolvedor COBOL vê

Por Vagner Bellacosa – Bellacosa Mainframe


O Dia em que o Padawan Descobre o Lado Oculto do z/OS

Depois de onze capítulos, o Padawan já acredita compreender bastante coisa.

Conhece:

✅ CALL

✅ LE

✅ CICS

✅ JES2

✅ GRS

✅ VVDS

✅ RMF

✅ SMF

✅ Telum

Até que um Sysprog abre IPCS.

Digita:

IP XDATA

E aparece:

PSA
CVT
TCB
ASCB
ACEE
RB

Padawan:

— O que é isso?

Veterano:

— O esqueleto do z/OS.


O Grande Segredo

No Mainframe tudo é Control Block.

Tudo.

Usuário.

Job.

CPU.

Storage.

Segurança.

Dataset.

Task.

Transação.

Tudo.


Visualmente


Programa COBOL

↓

TCB

↓

ASCB

↓

CVT

↓

PSA

↓

Hardware


PSA

Processor Storage Area


O primeiro bloco.

O mais importante.


Endereço:

00000000

Existe uma PSA.

Por processador.


Contém:

PSW

Interrupções

TCB Atual

Old PSW

New PSW

Save Areas


O PSW

Program Status Word


Coração da CPU.


Possui:

Endereço instrução

Modo

Máscaras

Estado


Exemplo

078D1000 80000000

Veteranos gostam.

Muito.


CVT

Communications Vector Table


O GPS do z/OS.


Tudo aponta.

Para CVT.


CVT aponta.

Para:

SMCA

JES

TCB

ASVT

Catalog

LPDB

CSA


Como encontrar

Assembler

L R1,CVTPID

IPCS também.


ASCB

Address Space Control Block


Representa.

Address Space.


Exemplo

TSO

DBM1

CICSA

JES2


Cada um.

Tem.

ASCB.


Contém

Nome

ASID

Usuário

TCBs

Storage


TCB

Já vimos.

Mas agora.

Internamente.


Task Control Block


Representa.

Thread.

Execução.

Task.


Contém.

Registradores.

Prioridade.

PSW.

RB.


RB

Request Block


Histórico.

Execução.


CALL.

Empilha RB.

Retorno.

Desempilha.


Visualmente


MAIN

↓

RB

↓

CALL A

↓

RB

↓

CALL B

↓

RB


ACEE

Accessor Environment Element


Favorito do RACF.


Representa.

Usuário.


Possui:

Userid

Groups

Permissões

Security Label


Quando faz:

TSO LOGON

ACEE nasce.


CSA

Common Storage Area


Memória compartilhada.


Todos acessam.


Perigosa.


Corrupção.

Pode derrubar sistema.


ECSA

Extended CSA


Versão ampliada.


Maior.

Melhor.


SQA

System Queue Area


Storage crítico.


Kernel usa.


Pouco espaço.

Muito importante.


LSQA

Local System Queue Area


Privada.

Por Address Space.


Subpools

Veteranos gostam.

Muito.


Exemplo

229

230

241


Storage.

Especializado.


Save Area

Assembler clássico.


72 bytes.


Exemplo

STM 14,12,12(13)

Salva.

Contexto.


IPCS

Melhor amigo.

Do Sysprog.


Pode mostrar.

PSA

TCB

ASCB

RB

ACEE


Exemplo

IP MTRACE

CEEDUMP

Também ajuda.


Mostra.

Stack.

Call chain.

Offsets.


O caminho de um CALL

Padawan escreve:

CALL 'PAGTO'

Internamente.

Pode ocorrer.


COBOL

↓

LE

↓

TCB

↓

RB

↓

PSW

↓

CPU

↓

RETURN



Tudo.

Em microssegundos.


O grande erro

Padawan pensa.

CALL é simples.

Veterano pensa.

CALL cria.

RB.

Storage.

Stack.

TCB Activity.

LE.

Heap.

PSW Update.


Ferramentas Jedi

IPCS

AMBLIST

CEEDUMP

RMF

SMF

VERBX

TRACE


Easter Egg Mainframe

Existe um grupo.

Capaz de olhar.

Isto.

TCB

RB

ACEE

PSA

CVT

ASCB

E dizer.

Em cinco minutos.

Quem é usuário.

Qual programa.

Onde caiu.

Quanto storage.

Qual PSW.

Qual registrador.


São conhecidos.

Como.

Os Senhores dos Control Blocks


Checklist Jedi

✅ Entender PSA

✅ Conhecer CVT

✅ Aprender ASCB

✅ Estudar TCB

✅ Entender RB

✅ Conhecer ACEE

✅ Respeitar CSA

✅ Estudar LSQA

✅ Explorar IPCS

✅ Ler CEEDUMP

✅ Conhecer Subpools


Filosofia Jedi – Parte 12

O Padawan acredita:

z/OS executa programas.

O Desenvolvedor experiente pensa:

z/OS gerencia recursos.

O Sysprog compreende:

z/OS é uma gigantesca coleção de Control Blocks conversando entre si.

E o Arquiteto IBM Z sabe que, por trás de um simples:

CALL 'SUBPGM'

existe um universo de PSA, CVT, TCB, RB, ACEE, Save Areas, registradores, PSWs e estruturas de controle que sustentam alguns dos sistemas mais importantes do planeta.




Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...