☕ 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

quarta-feira, 25 de janeiro de 2023

COBOL Recursivo — Muito Além do Fatorial: A Engenharia Invisível da Pilha de Execução no IBM Z - Parte I

 

Bellacosa Mainframe apresenta o cobol recursivo parte i

☕ Um Café no Bellacosa Mainframe

COBOL Recursivo — Muito Além do Fatorial: A Engenharia Invisível da Pilha de Execução no IBM Z

"Você provavelmente passará a carreira inteira escrevendo sistemas COBOL sem precisar desenvolver um programa recursivo. Ainda assim, compreender recursividade talvez seja uma das melhores formas de entender como o Enterprise COBOL realmente funciona por dentro."


Introdução

Existe um fenômeno curioso no universo do desenvolvimento Mainframe.

Pergunte para cem programadores COBOL se eles já utilizaram um programa recursivo em produção.

Talvez apenas cinco levantem a mão.

Pergunte agora se eles sabem exatamente como funciona um CALL, como o compilador cria uma nova instância do programa, o que acontece com a Working-Storage, como a pilha de execução (Call Stack) é organizada pelo Language Environment (LE) e por que existe a Local-Storage Section.

Muito provavelmente o número continuará sendo pequeno.

E esse é justamente o paradoxo.

Embora a recursividade seja pouco utilizada nos sistemas corporativos tradicionais, ela revela alguns dos conceitos mais importantes da arquitetura do COBOL moderno.

Ela nos obriga a abandonar a visão simplificada de que um programa é apenas uma sequência de comandos e nos faz enxergar aquilo que realmente está acontecendo:

  • memória;

  • pilha de execução;

  • contexto de chamadas;

  • passagem de parâmetros;

  • gerenciamento de variáveis;

  • criação e destruição de ambientes de execução.

Em outras palavras...

Recursividade não é apenas um algoritmo.

É uma janela para entender como o próprio Enterprise COBOL foi construído.

Prepare seu café.

Hoje vamos abrir a tampa do compilador.


O mito da recursividade em COBOL

Existe uma frase repetida há décadas.

"COBOL não foi feito para recursividade."

Essa afirmação está apenas parcialmente correta.

O COBOL clássico da década de 1960 realmente não possuía suporte adequado para chamadas recursivas.

Naquela época, memória era extremamente cara.

Processadores trabalhavam com poucos kilobytes.

Cada instrução era planejada para consumir o mínimo possível.

O objetivo principal do COBOL era simples:

  • ler registros;

  • processar registros;

  • gravar registros.

Tudo de forma linear.

Imagine um processamento bancário.

READ

↓

VALIDA

↓

CALCULA

↓

UPDATE

↓

WRITE

↓

READ

Milhões de vezes.

Sem árvores.

Sem grafos.

Sem estruturas hierárquicas.

Sem necessidade de chamar o mesmo programa novamente.

A arquitetura inteira do COBOL nasceu voltada para processamento sequencial.


Então por que o COBOL moderno suporta recursividade?

Porque o mundo mudou.

Hoje o Enterprise COBOL conversa diariamente com:

  • XML

  • JSON

  • REST APIs

  • C

  • C++

  • Java

  • Assembler

  • Language Environment

  • Web Services

  • z/OS Connect

  • IBM MQ

E todos esses ambientes trabalham intensamente com estruturas hierárquicas.

Uma árvore XML, por exemplo, é naturalmente recursiva.

<empresa>

    <departamento>

        <funcionario>

            <dependente/>

        </funcionario>

    </departamento>

</empresa>

Cada elemento pode conter outros elementos.

Não existe limite teórico.

A melhor maneira de percorrer isso?

Recursão.


O verdadeiro significado de um programa recursivo

Quando um Padawan ouve falar em recursividade, normalmente pensa:

"É quando um programa chama ele mesmo."

Tecnicamente isso está correto.

Mas essa definição é superficial.

O que realmente acontece é isto:

Cada chamada cria um novo ambiente completo de execução.

Isso muda completamente nossa visão.

Imagine uma rotina simples.

PROCESSA(5)

Ela chama:

PROCESSA(4)

Que chama:

PROCESSA(3)

Que chama:

PROCESSA(2)

Que chama:

PROCESSA(1)

Visualmente:

PROCESSA(5)

↓

PROCESSA(4)

↓

PROCESSA(3)

↓

PROCESSA(2)

↓

PROCESSA(1)

Não existe apenas um programa funcionando.

Existem cinco instâncias simultâneas do mesmo programa.

Cada uma em um estágio diferente da execução.

Esse conceito é fundamental.


A grande mágica acontece na pilha (Stack)

Sempre que uma chamada ocorre, o Language Environment cria um novo frame.

Pense na pilha como uma torre de caixas.

+----------------------+
| PROCESSA(1)          |
+----------------------+
| PROCESSA(2)          |
+----------------------+
| PROCESSA(3)          |
+----------------------+
| PROCESSA(4)          |
+----------------------+
| PROCESSA(5)          |
+----------------------+

Cada caixa contém:

  • parâmetros;

  • registradores;

  • endereço de retorno;

  • variáveis locais;

  • contexto da execução.

Quando PROCESSA(1) termina:

a caixa é removida.

Depois PROCESSA(2).

Depois PROCESSA(3).

Até voltar ao programa original.

Essa estrutura recebe o nome de Call Stack.

Todo programador deveria conhecê-la.

Mesmo que nunca escreva um algoritmo recursivo.


A pilha sempre existiu

Existe outro detalhe curioso.

Mesmo programas totalmente lineares utilizam pilha.

Por exemplo.

Programa A.

CALL B

Programa B.

CALL C

Programa C.

CALL D

Visualmente:

A

↓

B

↓

C

↓

D

O sistema operacional precisa lembrar para onde voltar.

Então cria uma pilha.

+-----------+
| D         |
+-----------+
| C         |
+-----------+
| B         |
+-----------+
| A         |
+-----------+

Perceba algo interessante.

A recursividade apenas repete esse processo.

A diferença é que quem aparece novamente é o mesmo programa.


O compilador não tem medo disso

Muitos imaginam que o compilador "fica confuso".

Na realidade...

Para ele não faz diferença.

Ele apenas cria outra instância.

Depois outra.

Depois outra.

Até encontrar a condição de parada.


O maior perigo da recursividade

Imagine o seguinte pseudocódigo.

PROCESSA

↓

PROCESSA

↓

PROCESSA

↓

PROCESSA

↓

PROCESSA

↓

PROCESSA

E nunca para.

O que acontece?

A pilha cresce.

+----------------+
| PROCESSA       |
+----------------+
| PROCESSA       |
+----------------+
| PROCESSA       |
+----------------+
| PROCESSA       |
+----------------+
| PROCESSA       |
+----------------+
| PROCESSA       |
+----------------+
| PROCESSA       |
+----------------+
| PROCESSA       |
+----------------+

Cada chamada ocupa memória.

Mais cedo ou mais tarde...

Não haverá mais espaço.

Resultado:

Stack Overflow.

Em ambientes z/OS isso normalmente termina em um abend relacionado ao esgotamento da pilha ou da região disponível para a tarefa.

Por isso existe uma regra absoluta.

Toda recursão precisa possuir uma condição de parada.

Sem exceções.


O conceito mais importante para um Padawan

Existe um exercício mental muito útil.

Imagine cinco cópias do mesmo programa.

Não uma.

Cinco.

Cada uma com seus próprios parâmetros.

Cada uma em um ponto diferente da execução.

É exatamente isso que a recursividade produz.

Ela não "volta para o começo".

Ela cria outra execução.

Depois outra.

Depois outra.

Essa mudança de mentalidade faz toda diferença.


RECURSIVE x NON-RECURSIVE

O Enterprise COBOL precisa saber antecipadamente se um programa poderá chamar a si mesmo.

Por quê?

Porque isso muda completamente a estratégia de gerenciamento de memória.

Um programa tradicional pressupõe que existe apenas uma instância ativa.

Já um programa recursivo pode possuir dezenas ou centenas de ativações simultâneas.

É como comparar um apartamento ocupado por uma família com um hotel onde vários hóspedes utilizam quartos iguais ao mesmo tempo.

A estrutura física é parecida.

A forma de administrar os recursos é completamente diferente.


O papel do compilador

Quando um programa é preparado para suportar recursividade, o compilador gera código considerando que cada ativação precisará preservar seu próprio contexto.

Isso inclui:

  • parâmetros recebidos;

  • endereço de retorno;

  • variáveis locais;

  • registradores utilizados;

  • informações necessárias para retomar a execução exatamente do ponto em que foi interrompida.

Essa organização é uma das responsabilidades compartilhadas entre o Enterprise COBOL e o Language Environment (LE).


O maior erro de iniciantes

Existe um erro extremamente comum.

O desenvolvedor escreve:

WORKING-STORAGE SECTION.

01 WS-CONTADOR PIC 9(4).

Depois cria um algoritmo recursivo.

Na primeira chamada:

WS-CONTADOR = 1

Na segunda:

WS-CONTADOR = 2

Na terceira:

WS-CONTADOR = 3

Quando retorna...

O conteúdo foi alterado por outra ativação.

A lógica começa a produzir resultados inesperados.

O motivo?

Todas as ativações estão compartilhando a mesma Working-Storage.

Esse é um dos primeiros conceitos que todo Padawan precisa dominar.


Working-Storage: a memória compartilhada

A Working-Storage Section existe durante praticamente toda a vida do programa.

Ela é excelente para:

  • constantes;

  • tabelas fixas;

  • áreas de trabalho;

  • buffers reutilizados;

  • indicadores globais;

  • variáveis de controle que realmente precisam ser compartilhadas.

Mas ela não foi pensada para armazenar o estado individual de cada chamada recursiva.

Imagine uma lousa em uma sala de reunião.

Todos escrevem na mesma superfície.

O último a apagar ou sobrescrever vence.

É exatamente esse comportamento que pode ocorrer quando um programa recursivo utiliza Working-Storage para guardar informações específicas de cada ativação.


Local-Storage: a grande aliada da recursão

Foi justamente para resolver esse problema que surgiu a Local-Storage Section.

Ao contrário da Working-Storage, ela é criada novamente para cada ativação do programa.

Voltando ao exemplo da pilha:

+----------------------+
| PROCESSA(1)          |
| LOCAL-STORAGE        |
+----------------------+
| PROCESSA(2)          |
| LOCAL-STORAGE        |
+----------------------+
| PROCESSA(3)          |
| LOCAL-STORAGE        |
+----------------------+

Cada chamada possui sua própria cópia das variáveis locais.

Uma alteração realizada em uma ativação não interfere nas demais.

Esse comportamento torna a Local-Storage a escolha natural para programas recursivos e também para rotinas reentrantes e altamente concorrentes.


Uma analogia para nunca mais esquecer

Imagine uma cozinha industrial.

A Working-Storage seria uma única bancada compartilhada por todos os cozinheiros. Se um chef espalha farinha, outro pode encontrar essa farinha antes de começar sua própria receita.

A Local-Storage, por outro lado, funciona como uma bancada individual entregue a cada cozinheiro no início do trabalho. Cada um organiza seus ingredientes, prepara sua receita e, ao terminar, aquela bancada é desmontada sem afetar os demais.

Essa simples analogia ajuda a entender por que tantos problemas em programas recursivos desaparecem quando o estado da execução deixa de ser compartilhado e passa a ser local.


Conclusão da Parte 1

Ao ouvir a palavra recursividade, muitos programadores pensam imediatamente em exercícios acadêmicos como fatorial ou sequência de Fibonacci. No entanto, para quem trabalha com IBM Z, esse é apenas um detalhe.

O verdadeiro valor da recursão está em revelar como o Enterprise COBOL administra memória, organiza a pilha de execução, preserva contextos de chamadas e separa dados compartilhados de dados locais.

Mais do que aprender um algoritmo, estudar programas recursivos significa compreender os bastidores da linguagem — uma compreensão que será útil mesmo em projetos onde nenhuma rotina recursiva seja escrita.

No próximo café, vamos construir um programa recursivo completo em Enterprise COBOL, acompanhar cada chamada passo a passo dentro da pilha de execução, comparar sua execução com uma solução iterativa e descobrir em quais situações a recursão realmente se torna a melhor ferramenta para um desenvolvedor Mainframe.

Na Parte 2, aprofundaremos com código COBOL completo e comentado, execução passo a passo da pilha (stack), exemplos de fatorial, Fibonacci, árvores, XML/JSON, busca em diretórios, algoritmos clássicos (DFS, QuickSort e MergeSort) e diagramas de memória mostrando exatamente o que acontece a cada chamada recursiva.


terça-feira, 24 de janeiro de 2023

Beast Tamer - EXPULSO DA PARTY, ABSURDAMENTE OVERPOWER E COM WAIFUS FELINAS: O ANIME QUE VIROU O “JCL DO ISEKAI”!

Bellacosa Mainframe analise o anime Beast Tamer


EXPULSO DA PARTY, ABSURDAMENTE OVERPOWER E COM WAIFUS FELINAS: O ANIME QUE VIROU O “JCL DO ISEKAI”!

Se existe um gênero que domina o mundo dos animes modernos do mesmo jeito que COBOL domina o core bancário, é o famoso:

“Você me expulsou? Então vou virar absurdamente poderoso enquanto vocês quebram em produção.”

E poucos animes representam isso tão bem quanto:

Yuusha Party wo Tsuihou sareta Beast Tamer, Saikyoushu no Nekomimi Shoujo to Deau
ou simplesmente:

Beast Tamer

Um anime que mistura:

  • fantasia medieval,
  • protagonista injustiçado,
  • crescimento absurdo de poder,
  • garotas “ultimate species”,
  • guildas,
  • magia,
  • e aquele clássico sentimento:

“O time caiu porque mandou embora o cara certo.”

Sim… praticamente um paralelo perfeito com muito ambiente mainframe corporativo.


O QUE SIGNIFICA O TÍTULO?

O nome gigantesco traduzido fica mais ou menos assim:

“O Beast Tamer Expulso da Party do Herói Encontra uma Garota Gato da Raça Suprema”

E sinceramente?

Isso resume 90% do anime.

Mas também revela algo importante sobre a indústria moderna:
os títulos de light novel viraram praticamente um dump de SYSOUT explicando a aplicação inteira antes mesmo do IPL.


DATA DE LANÇAMENTO

Light Novel

  • Início: 11 de junho de 2018

Mangá

  • Início: 30 de janeiro de 2019

Anime

  • Estreia: 1 de outubro de 2022
  • Episódios: 13

AUTOR E PRODUÇÃO

Autor

Suzu Miyama

Criador da light novel original.

Ilustradores

  • Hotosoka/Subachi (volumes iniciais)
  • Nozomi (volumes posteriores)

Estúdio

EMT Squared

Mesmo estúdio de:

  • Kuma Kuma Kuma Bear
  • Assassins Pride
  • I’m Quitting Heroing

RESUMO DA HISTÓRIA

O protagonista:

Rein Shroud

é um Beast Tamer que fazia parte da party do herói.

O problema?

A party inteira acreditava que ele era inútil.

Porque ele:

  • não dava dano absurdo,
  • não explodia montanhas,
  • não soltava Hadouken mágico,
  • e trabalhava mais no suporte/logística.

Ou seja:
o clássico profissional invisível da TI.

Até que um dia:

“Você só brinca com animais. Está demitido.”

E ele é expulso da equipe.

Só que a party não percebeu um detalhe IMPORTANTÍSSIMO:

Rein era o cara que sustentava toda a operação.

Exatamente igual:

  • operador de mainframe,
  • sysprog,
  • especialista em JES2,
  • DBA DB2,
  • ou aquele cara do batch noturno que ninguém valoriza.

Quando ele sai…

o ambiente começa a colapsar.

Enquanto isso, Rein encontra:

Kanade

uma garota-gato da “Ultimate Species”.

E a partir daí:
o anime vira uma mistura de:

  • evolução de poder,
  • aventura,
  • fantasia,
  • harém leve,
  • e revenge story corporativa.

PRINCIPAIS PERSONAGENS

Rein Shroud

O protagonista.

No começo parece fraco.

Mas isso é pura ilusão operacional.

Rein é:

  • estrategista,
  • suporte,
  • buffer,
  • summoner,
  • controlador,
  • e escalador absurdo de poder.

Quanto mais contratos ele faz com espécies supremas:
mais overpower ele fica.

Ele representa perfeitamente:

“O profissional subestimado que carregava a empresa inteira.”


Kanade

A famosa nekomimi.

Ela pertence à raça dos gatos — uma das “Ultimate Species”.

Características:

  • força absurda,
  • velocidade monstruosa,
  • carisma gigantesco,
  • e energia caótica de mascote oficial do anime.

Kanade é basicamente:

um CICS hiper otimizado com orelhinhas de gato.


Tania

A dragon girl.

Chega desafiando Rein para combate.
Perde.
Vira aliada.

O clássico fluxo shounen.

Ela aumenta brutalmente o poder mágico de Rein.


Sora e Luna

As gêmeas fada.

Uma mais calma.
Outra mais travessa.

Aqui o anime começa a acelerar o fator:

  • “party overpower”,
  • “família encontrada”,
  • e “coleção de personagens ultra apelonas”.

Arios Orlando

O herói.

E provavelmente:
um dos personagens MAIS ODIADOS do anime.

Porque ele representa:

  • arrogância,
  • incompetência gerencial,
  • ego corporativo,
  • e incapacidade de reconhecer talento.

Ele literalmente desmonta a própria equipe por ego.


O GRANDE TEMA DO ANIME

Muita gente acha que Beast Tamer é só:

  • ecchi leve,
  • waifu collection,
  • fantasy genérico.

Mas existe um tema muito forte aqui:

VALORIZAÇÃO INVISÍVEL

O anime inteiro gira em torno disso.

Rein nunca foi “fraco”.

Ele só fazia:

  • tarefas invisíveis,
  • suporte,
  • sincronização,
  • logística,
  • estabilidade.

Até que ele saiu.

E então:
a party do herói entra em degradação operacional.

Isso é MUITO mainframe.

Porque:

  • ninguém lembra do batch quando funciona,
  • ninguém lembra do storage,
  • ninguém lembra do scheduler,
  • ninguém lembra do RACF.

Mas quando cai…

o caos começa.


CURIOSIDADES ABSURDAMENTE INTERESSANTES

1. O anime surfou a onda do “banished from hero party”

Nos últimos anos surgiu um subgênero inteiro:

  • protagonista expulso,
  • depois fica overpower,
  • enquanto os antigos colegas afundam.

Beast Tamer virou um dos exemplos mais populares dessa fórmula.


2. Rein é MUITO mais forte que um Beast Tamer normal

O anime vai revelando aos poucos que:
ele é uma anomalia completa.

Ele consegue:

  • múltiplos contratos,
  • compartilhamento de habilidades,
  • buffs absurdos,
  • e crescimento exponencial.

Na prática:
ele é quase um “admin root” do sistema de contratos.


3. O herói é praticamente um vilão

Isso quebra um pouco a expectativa clássica de fantasia.

Arios:

  • manipula,
  • trai,
  • enlouquece pelo ego,
  • e afunda moralmente.

É quase um estudo sobre:

liderança incompetente destruindo equipes técnicas.


4. A opening é MUITO energética

“Change The World” do MADKID virou uma das marcas do anime.

Ela passa exatamente a sensação:

  • aventura,
  • liberdade,
  • crescimento,
  • e “agora vou provar meu valor”.

EASTER EGGS E DETALHES ESCONDIDOS

O simbolismo das “Ultimate Species”

Cada garota representa um tipo de poder:

  • força,
  • magia,
  • velocidade,
  • ilusão,
  • resistência,
  • poder divino.

Rein funciona quase como:
um “integrador de sistemas”.

Ele conecta diferentes “módulos” e cria uma arquitetura absurda.

Sim.
O cara praticamente virou um z/OS humano.


O anime inverte o trope clássico do herói

Normalmente:
o herói é o protagonista moral.

Aqui:
o “suporte demitido” é o verdadeiro coração da obra.

A narrativa inteira questiona:

  • meritocracia superficial,
  • liderança arrogante,
  • e julgamento baseado só em aparência de poder.

O colapso da Hero Party lembra incidentes corporativos reais

Sem brincadeira:
a degradação da equipe após a saída do Rein parece:

  • perda de conhecimento institucional,
  • ausência de documentação,
  • dependência de especialista,
  • turnover crítico em TI.

É praticamente:

“o sysprog pediu demissão e ninguém sabia o que ele fazia.”


O ANIME É BOM?

Depende do que você procura.

Se quiser:

  • filosofia profunda estilo Monster,
  • política complexa,
  • roteiro ultra sofisticado…

não é isso.

Mas se quiser:

  • diversão,
  • fantasia confortável,
  • protagonista overpower,
  • personagens carismáticos,
  • sensação de evolução constante,
  • e revenge fantasy extremamente satisfatória…

Beast Tamer entrega MUITO bem.


ANÁLISE BELLACOSA MAINFRAME

Rein é o operador invisível do ambiente

Ele:

  • não aparece,
  • não recebe crédito,
  • ninguém entende o que faz,
  • mas sustenta tudo.

Até que removem ele.

Resultado?

ABEND organizacional.


Arios é o gerente que destrói o time técnico

Ele olha só:

  • para output imediato,
  • para glamour,
  • para ego.

E ignora:

  • estabilidade,
  • suporte,
  • arquitetura,
  • integração.

O resultado é inevitável:
colapso operacional.


CONCLUSÃO

Yuusha Party wo Tsuihou sareta Beast Tamer parece apenas mais um fantasy genérico.

Mas no fundo:
é uma história sobre:

  • reconhecimento,
  • competência invisível,
  • equipes disfuncionais,
  • e crescimento pessoal.

Tudo embalado com:

  • waifus felinas,
  • dragões,
  • magia,
  • porradaria,
  • e um protagonista absurdamente roubado.

E sinceramente?

Para quem trabalha em tecnologia…

é impossível NÃO olhar para Rein e pensar:

“Esse cara era o único que sabia manter o ambiente em pé.” 🔥 

segunda-feira, 23 de janeiro de 2023

🧠 SMP/E: O Orquestrador Invisível do z/OS — O Dev COBOL Não Vê… Mas Depende Todos os Dias

 


Bellacosa Mainframe apresente o orquestrador de atualizaçõs no Z/OS

🧠 SMP/E: O Orquestrador Invisível do z/OS — O Dev COBOL Não Vê… Mas Depende Todos os Dias

Se você é um dev COBOL sênior, já escreveu milhares de linhas, já enfrentou abends misteriosos, já discutiu copybook em reunião… mas existe uma verdade silenciosa:

Quem realmente controla o seu ambiente não é o COBOL. É o SMP/E.

E se você nunca mergulhou fundo nele… você está dirigindo um Ferrari com os olhos vendados.


🏛️ Origem: Quando instalar software virou um problema sério

Nos primórdios do mainframe:

  • Software era entregue em fitas físicas
  • Instalação era manual
  • Dependências? 😅 Boa sorte…

Foi aí que a IBM criou o:

👉 SMP (System Modification Program)
E depois evoluiu para o SMP/E (Extended)

💥 O objetivo:

Transformar o caos de instalação em um processo controlado, auditável e reversível


🧩 O mundo real: o que você usa… sem perceber

Você roda:

  • COBOL ✔
  • CICS ✔
  • DB2 ✔
  • REXX ✔
  • ISPF ✔

Mas tudo isso chegou ao sistema via:

👉 SMP/E


📦 O conceito mais importante: SYSMOD

Tudo no SMP/E gira em torno de:

👉 SYSMOD (System Modification)

Tipos:

  • FMID → Produto base
  • PTF → Fix oficial
  • APAR → Fix temporário
  • USERMOD → Customização

💥 Regra de ouro:

Se modifica algo → depende de um FMID


🧠 Easter Egg #1 (prova e vida real)

APAR não é elemento — é SYSMOD
(essa derruba muita gente 😄)


🧱 Elementos: o que realmente vai pro sistema

Um SYSMOD é composto por:

  • MOD → executável
  • SRC → source
  • MAC → macro
  • JAR / zFS → mundo UNIX
  • Panels / REXX / CLIST

💥 Tradução COBOL:

Seu load module veio de um MOD, que veio de um SRC, controlado pelo SMP/E


📀 RELFILE: o “pacote de entrega”

Antes do APPLY, existe o pacote:

👉 RELFILE

Hoje:

  • Download via internet

Antes:

  • 📼 Fita magnética

Dentro dele:

  • MCS (metadados)
  • Elementos do software

⚙️ O pipeline sagrado do SMP/E

Aqui está o coração da operação:

RECEIVE → APPLY → ACCEPT

📥 RECEIVE (entrada no sistema)

  • Carrega RELFILE
  • Atualiza GLOBAL ZONE
  • Prepara staging

👉 Ainda não instala nada


⚙️ APPLY (instalação real)

  • Copia elementos para TARGET LIBRARIES
  • Atualiza TARGET ZONE

👉 Agora o software roda


✅ ACCEPT (consolidação)

  • Copia para DISTRIBUTION LIBRARIES
  • Atualiza DLIB ZONE

👉 Vira baseline


🧠 Easter Egg #2 (nível prova)

RECEIVE → GLOBAL
APPLY → TARGET
ACCEPT → DLIB

Se decorar isso → passa em qualquer prova 😎


🗃️ CSI: o cérebro do SMP/E

👉 CSI (Consolidated Software Inventory)

Baseado em VSAM KSDS

Guarda:

  • Versões
  • Dependências
  • Elementos
  • Histórico

💥 É o “CMDB raiz” do mainframe


🧠 Curiosidade forte

Um CSI pode controlar vários produtos ao mesmo tempo


⚠️ O pulo do gato: dependências

Antes de instalar:

  • Prerequisite (PRE) → precisa antes
  • Corequisite (CO) → precisa junto

👉 SMP/E valida automaticamente


🧠 Easter Egg #3

SMP/E pode:

✔ Instalar dependências
✔ Cancelar instalação

Mas nunca:

❌ Instalar versão mais antiga sobre nova
❌ Desinstalar arbitrariamente


🔥 Insight de produção

SMP/E não é apt-get
SMP/E é governança


🏭 Exemplo real (modo Bellacosa)

Você precisa aplicar um fix no CICS:

  1. Recebe PTF
  2. SMP/E verifica:
    • FMID correto
    • PRE/CO ok
  3. APPLY:
    • Atualiza loadlibs
  4. Testa em ambiente
  5. ACCEPT:
    • Consolida baseline

⚠️ Prática avançada (ouro)

👉 Nunca dê ACCEPT imediatamente

Porque:

  • APPLY = reversível
  • ACCEPT = compromisso

🧠 Easter Egg #4 (experiência real)

Erro clássico:

GIMxxxx

👉 80% das vezes:

  • FMID errado
  • Dependência faltando
  • CSI inconsistente

🔌 Interfaces SMP/E

Você pode usar:

  • ISPF
  • Batch (JCL)
  • API

💥 Sim — SMP/E pode ser automatizado


🚀 SMP/E no mundo DevOps

Tradução moderna:

DevOpsSMP/E
PipelineRECEIVE/APPLY/ACCEPT
DeployAPPLY
PromoteACCEPT
ArtifactRELFILE

🧠 Easter Egg final

O mainframe já fazia DevOps… antes de ser moda.


🎯 Conclusão

Se você escreve COBOL e ignora SMP/E:

👉 Você domina a aplicação
👉 Mas não domina o ambiente


🔥 Frase final (pra guardar)

COBOL escreve o sistema.
SMP/E garante que ele exista.

domingo, 22 de janeiro de 2023

Os Holocrons Esquecidos do Tratamento de Erros no IBM Z – O Despertar das DECLARATIVES - EXCEPTION/ERROR Procedures em COBOL: Parte I

 

Bellacosa Mainframe e o tratamento de erro no Cobol Parte 1

EXCEPTION/ERROR Procedures em COBOL: Os Holocrons Esquecidos do Tratamento de Erros no IBM Z

Parte 1 – O Despertar das DECLARATIVES

Quando o Padawan Descobre que COBOL Possui Seu Próprio Mecanismo Jedi de Tratamento de Erros

Por Bellacosa Mainframe


"Todo Padawan aprende FILE STATUS. Alguns aprendem AT END. Pouquíssimos descobrem que COBOL possui um mecanismo ancestral capaz de interceptar falhas antes que elas se transformem em um ABEND às três da manhã."

Mestre Bellacosa Sysprog Jedi


Introdução

Existe um momento na vida de praticamente todo desenvolvedor COBOL em que ele acredita ter dominado completamente o tratamento de erros.

Ele aprendeu:

FILE STATUS.

Aprendeu:

AT END

Aprendeu:

INVALID KEY

Aprendeu:

ON EXCEPTION

Aprendeu:

ON SIZE ERROR

E então pensa:

Mestre...

Acho que já sei tudo sobre tratamento de erros em COBOL.

O mestre Bellacosa sorri.

Abre um velho manual ANSI COBOL.

Mostra algumas linhas quase esquecidas.

E pergunta:

DECLARATIVES.

ARQ-ERROR SECTION.

USE AFTER STANDARD ERROR PROCEDURE ON ARQUIVO1.

O jovem Padawan arregala os olhos.

O que é isso?

O mestre responde:

Jovem Padawan...

Você acaba de encontrar um dos Holocrons mais antigos e menos estudados do COBOL.


O Grande Mito

Existe um mito bastante difundido.

Muitos acreditam:

COBOL não possui tratamento centralizado de erros.

Na verdade possui.

Há décadas.

E ele atende pelo nome:

DECLARATIVES


O que são DECLARATIVES?

Declaratives são blocos especiais.

São definidos antes da PROCEDURE DIVISION.

Possuem finalidade específica.

Capturar condições excepcionais.


Visualmente.

Programa COBOL


↓

Erro


↓

DECLARATIVES


↓

Tratamento


↓

Continua

ou

Termina

É quase um ancestral dos modernos:

  • try

  • catch

  • exception handler

  • interceptor

  • middleware de erros


Quando surgiu?

Precisamos voltar bastante no tempo.


COBOL-68

Possuía capacidades limitadas.


ANSI COBOL 74

Introduziu mecanismos iniciais.


ANSI COBOL 85

Consolidou.

DECLARATIVES.

USE.

Error Procedures.


IBM manteve suporte.

VS COBOL II.

COBOL for MVS.

Enterprise COBOL.

COBOL 6.5.


Sim.

Em 2026.

Ainda funciona.


Por que quase ninguém usa?

Porque a maioria dos programadores aprende.


FILE STATUS.


INVALID KEY.


AT END.


E para por aí.


As Declaratives ficaram escondidas.

Por décadas.


Muitos profissionais com vinte anos de experiência.

Nunca escreveram uma.


Anatomia das Declaratives

Estrutura.

DECLARATIVES.

ERRO-ARQ SECTION.

USE AFTER STANDARD ERROR PROCEDURE
ON ARQCLIENTE.

TRATA-ERRO.

DISPLAY 'ERRO'.

END DECLARATIVES.

Depois.

PROCEDURE DIVISION.

Muito importante.

Declaratives ficam.

Antes.

Da lógica principal.


O que significa USE?

USE é uma instrução especial.


Ela informa.

Ao runtime.


Quando determinada condição ocorrer.

Execute.

Este bloco.


Exemplo.

USE AFTER STANDARD ERROR PROCEDURE
ON CLIENTES.

Significa.


Se CLIENTES falhar.

Execute.

Esta rotina.


O que é STANDARD ERROR PROCEDURE?

Talvez seja a expressão mais misteriosa.


Significa.

Erros detectados.

Pelo sistema de I/O COBOL.


Exemplos.

OPEN

READ

WRITE

REWRITE

DELETE

START

CLOSE


Falhou.


Declaratives.

Recebem controle.


Primeiro exemplo do Padawan

Passo 1

Arquivo.

SELECT CLIENTE

ASSIGN TO ARQCLI

FILE STATUS WS-FS.

Passo 2

Status.

01 WS-FS.

PIC XX.

Passo 3

Declarative.

DECLARATIVES.


ARQ-ERRO SECTION.


USE AFTER STANDARD ERROR PROCEDURE


ON CLIENTE.


ARQ-ERRO-PROC.


DISPLAY 'ERRO'


WS-FS.


END DECLARATIVES.

Passo 4

Procedure.

PROCEDURE DIVISION.


OPEN INPUT CLIENTE.

Arquivo inexistente.


Declarative executa.


Muito elegante.


Fluxo interno

Visualmente.

OPEN


↓

Erro


↓

Runtime COBOL


↓

Declarative


↓

Retorna


ou


STOP RUN

Quase um middleware.


Memória

Padawan pergunta.

Mestre...

Como isso funciona na memória?

Boa pergunta.


Compilador.

Cria.

Tabelas internas.


Associa.

Arquivo.

↓

Rotina.


Quando erro.

Runtime.

Consulta.

Tabela.


Transfere.

Controle.


Visualmente.

Tabela


CLIENTE


↓

ARQ-ERRO

Sem overhead grande.


Muito eficiente.


Chamada automática

Importante.

Programador.

Não faz.

PERFORM ARQ-ERRO

Runtime.

Faz.

Automaticamente.


Quase.

Interrupção.

Controlada.


Pode haver vários?

Sim.


Exemplo.

CLIENTE


↓

DECL1



PEDIDO


↓

DECL2



ESTOQUE


↓

DECL3

Muito poderoso.


FILE STATUS versus DECLARATIVES

Muitos perguntam.

Qual melhor?


FILE STATUS

Explícito.


Exemplo.

OPEN INPUT ARQ.


IF WS-FS NOT = '00'

Vantagem.

Simples.


Problema.

Repete.

Muito.


DECLARATIVES.

Centralizado.


Muito elegante.


Grande volume.

Melhor.


INVALID KEY

Outra dúvida.


INVALID KEY.

Funciona.

Com VSAM.


Declarative.

Mais abrangente.


Pode capturar.

Vários erros.


Cuidados

Nem tudo.

São flores.


Primeiro.

Evitar.

Lógica complexa.

Dentro.

Declarative.


Segundo.

Não abrir.

Mesmo arquivo.

Novamente.


Terceiro.

Cuidado.

Loops.


Exemplo ruim.

Erro.

↓

Declarative.

↓

READ.

↓

Erro.

↓

Declarative.

↓

Loop.


Muito perigoso.


Performance

Excelente.


Quase.

Zero impacto.


Só executa.

Quando.

Erro.


Em produção.

Pouco custo.


Segurança

Pouco comentado.


Muito útil.

Auditoria.


Exemplo.

Registrar.

Arquivo.

Usuário.

Timestamp.

Erro.


Excelente.

Compliance.


LGPD.

SOX.

Auditoria.


Framework Bellacosa

Gosto bastante.

Modelo.

Declarative


↓

Logger


↓

Dataset LOG


↓

MQ


↓

Splunk


↓

Observabilidade

Muito elegante.


Curiosidades

Pouquíssimos desenvolvedores COBOL modernos.

Conhecem.

DECLARATIVES.


Muitos arquitetos bancários.

Adoram.


Principalmente.

Frameworks.

Antigos.


Curiosidade 2

VS COBOL II.

Utilizava.

Muito.


Hoje.

Menos comum.


Curiosidade 3

CICS.

Possui.

Algo semelhante.


HANDLE CONDITION.


Veremos.

Parte 3.


Bellacosa Best Practices

Sempre.

FILE STATUS.

Mesmo.

Com Declaratives.


Documente.

Tudo.


Não abuse.


Use.

Logging.


Padronize.

Framework.


Não coloque.

Regra negócio.


Somente.

Tratamento.

Erro.


O Conselho do Mestre Bellacosa

Durante décadas, milhares de programadores COBOL trataram erros utilizando IF FILE-STATUS, INVALID KEY e AT END.

E isso funciona muito bem.

Mas escondido nas profundezas dos antigos padrões ANSI existe um mecanismo sofisticado.

Elegante.

Pouco conhecido.

Quase esquecido.

Chamado DECLARATIVES.

Ele lembra uma antiga técnica Jedi.

Não é utilizada todos os dias.

Não é necessária para pequenos programas.

Mas quando um sistema possui dezenas de arquivos, centenas de jobs e requisitos rigorosos de auditoria, observabilidade e recuperação, ela pode transformar um emaranhado de verificações repetitivas em uma arquitetura limpa e centralizada.

Talvez esta seja a principal lição da primeira jornada.

O jovem Padawan verifica FILE STATUS.

O Cavaleiro utiliza ON EXCEPTION.

O Mestre Bellacosa conhece DECLARATIVES.

E o Conselho Jedi do IBM Z sabe exatamente quando utilizá-las.


Continua na Parte 2

O Padawan Aprende a Domar os Abends do Dataset – VSAM, KSDS, FILE STATUS 35/39/92/93, Retry, Logging e Frameworks Corporativos de Recuperação.


segunda-feira, 16 de janeiro de 2023

Nós, os Vivos, Éramos os Mortos: Quando o Mundo Parou e a Última Praça Pública Era a Janela

 

Bellacosa Mainframe e a pandemia do covid 19

☕ Um Café no Bellacosa Mainframe — Especial

Nós, os Vivos, Éramos os Mortos: Quando o Mundo Parou e a Última Praça Pública Era a Janela

🪟 Papel higiênico, entregadores, violência doméstica, política, curas milagrosas, covas, Netflix e o panelaço que me fez voltar instantaneamente a Madri em 2004

Existem acontecimentos históricos que você acompanha pela televisão.

Existem aqueles que acontecem na cidade onde você está.

E existe uma terceira categoria, muito mais rara e assustadora:

o acontecimento acontece em todos os lugares ao mesmo tempo.

Não havia outro país para onde olhar.

Não havia outro continente funcionando normalmente.

Não havia um aeroporto onde fosse possível embarcar e simplesmente sair da história.

Nova York parou.

Madri parou.

São Paulo parou.

Roma parou.

Paris parou.

Tóquio parou.

Pequenas cidades pararam.

Grandes cidades pararam.

Aeroportos ficaram vazios.

Escritórios ficaram vazios.

Escolas ficaram vazias.

Restaurantes fecharam.

Fronteiras fecharam.

A humanidade inteira recebeu praticamente a mesma mensagem:

Fique em casa.

Era 2020.

E, pela primeira vez em minha vida, parecia que o roteirista maluco responsável pelo planeta havia finalmente conseguido algo que nem os melhores filmes-catástrofe ousavam tentar:

parar o mundo.


🧻 O apocalipse começou pelo papel higiênico

Talvez daqui a cem anos algum historiador tente compreender o comportamento humano durante as primeiras semanas da pandemia.

Espero sinceramente que ele encontre boas fontes.

Porque, se depender apenas das fotografias dos supermercados, poderá concluir que a COVID-19 atacava prioritariamente o sistema digestivo.

As prateleiras de papel higiênico começaram a desaparecer.

Carrinhos abarrotados.

Pacotes enormes.

Pessoas disputando rolos.

E eu me lembro de pensar:

Por que diabos alguém está estocando papel higiênico numa pandemia?

Era uma doença respiratória.

Mas a humanidade aparentemente decidiu que, antes de compreender vírus, máscaras, transmissão e quarentena, precisava garantir que jamais faltariam condições adequadas para limpar a bunda.

É engraçado hoje.

Naquele momento, porém, aquilo dizia alguma coisa importante.

Não estávamos comprando apenas papel.

Estávamos tentando comprar controle.

Diante de uma ameaça invisível, desconhecida e aparentemente incontrolável, colocar vinte pacotes dentro de um carrinho talvez produzisse a sensação de que pelo menos alguma coisa estava sob nosso domínio.

O medo havia entrado no supermercado.


🛒 Depois começaram a desaparecer outras coisas

Álcool.

Máscaras.

Produtos de limpeza.

Macarrão.

Arroz.

Feijão.

Enlatados.

E começaram também as perguntas.

Quanto tempo isso vai durar?

Duas semanas?

Um mês?

Três meses?

Vai faltar comida?

Os bancos vão funcionar?

Meu emprego continuará existindo?

Posso visitar meus pais?

Posso abraçar alguém?

Posso pegar elevador?

A sacola do supermercado transmite?

Preciso limpar cada embalagem?

Quanto tempo o vírus permanece numa superfície?

E aquela tosse?

É COVID?

É alergia?

É ansiedade?

Provavelmente nunca houve tanta gente observando a própria garganta simultaneamente.


🚪 FIQUE EM CASA

A mensagem parecia simples.

Fique em casa.

E, epidemiologicamente, reduzir contatos enquanto se compreendia o novo vírus fazia sentido.

Só havia um pequeno problema.

Para milhões de pessoas, ficar em casa era um privilégio.

A cidade precisava continuar funcionando.

Alguém precisava manter os hospitais.

Alguém precisava trabalhar nas farmácias.

Alguém precisava abrir o supermercado.

Alguém precisava transportar comida.

Alguém precisava dirigir.

Alguém precisava limpar.

Alguém precisava manter água, eletricidade, telecomunicações e sistemas bancários.

E alguém precisava levar até nossa porta aquilo que comprávamos pelo celular.


🛵 “Seu pedido está a caminho”

Poucas frases daquele período ficaram tão sinistras retrospectivamente:

“Seu pedido está a caminho.”

Nós estávamos protegidos dentro de casa.

O entregador estava lá fora.

Nós tocávamos numa tela.

Pizza.

Hambúrguer.

Remédio.

Mercado.

Comida japonesa.

Ração.

Qualquer coisa.

Alguns minutos depois aparecia no mapa uma pequena motocicleta.

Ela atravessava uma cidade estranhamente vazia.

Até nossa casa.

O sujeito deixava o pacote.

Às vezes nem havia contato.

E desaparecia novamente.

Essencial.

Essa palavra tornou-se uma espécie de condecoração durante a pandemia.

“Trabalhador essencial.”

Mas havia uma ironia amarga escondida nela.

Muitas vezes “essencial” significava:

“Não podemos viver sem o seu trabalho, portanto você continuará se expondo enquanto nós permanecemos protegidos.”

Havia dois mundos.

No primeiro, home office.

Notebook.

Internet.

Delivery.

Netflix.

Reunião por vídeo.

No segundo:

rua.

Ônibus.

Moto.

Hospital.

Supermercado.

Limpeza.

Risco.

A pandemia não inventou a desigualdade.

Apenas colocou iluminação de emergência sobre ela.


🏙️ A cidade dos protegidos e a cidade dos descartáveis

Do alto dos prédios, havia pessoas trabalhando remotamente em apartamentos confortáveis.

Na rua, outras pessoas atravessavam a cidade para manter aqueles apartamentos funcionando.

Era quase uma arquitetura social perfeita.

Redomas de vidro em cima.

Infraestrutura humana embaixo.

O mundo digital parecia ter vencido.

Reuniões migraram para telas.

Compras migraram para aplicativos.

Restaurantes viraram cozinhas invisíveis.

Escritórios viraram quartos.

Só que havia uma mentira confortável escondida nessa transformação:

o mundo nunca ficou realmente digital.

Atrás de cada botão continuava existindo alguém.

Você clicava:

COMPRAR

Um ser humano separava.

Outro embalava.

Outro carregava.

Outro dirigia.

Outro entregava.

A interface era digital.

O risco continuava analógico.


💰 E o dinheiro?

Então apareceu outro vírus.

Não biológico.

Econômico.

Empresas fecharam.

Projetos foram suspensos.

Contratos desapareceram.

Pessoas perderam renda.

Negócios que pareciam perfeitamente saudáveis algumas semanas antes começaram a morrer.

E eu também tive meu pequeno encontro particular com o apocalipse.

Minha conta corrente chegou a zero.

Zero.

Não “estou economizando”.

Não “este mês apertou”.

ZERO.

E existe uma sensação particularmente desagradável em observar o mundo inteiro entrando em colapso ao mesmo tempo em que seu próprio sistema financeiro pessoal decide acompanhá-lo.

Era como olhar para o extrato e receber:

BALANCE = 0

WORLD_STATUS = UNKNOWN

RECOVERY_DATE = NULL

Excelente.

Ground Control havia perdido contato com Major Tom novamente.


🧠 Ninguém sabia exatamente o que fazer

Essa talvez seja uma das coisas mais difíceis de reconstruir depois.

Hoje conhecemos muito mais sobre SARS-CoV-2.

Naquele começo, havia incerteza real.

Pesquisadores aprendiam.

Governos aprendiam.

Hospitais aprendiam.

A população aprendia.

Informações mudavam conforme surgiam evidências.

E nesse espaço entre “não sabemos ainda” e “precisamos fazer alguma coisa agora”, floresceu praticamente tudo.

Boa ciência.

Má ciência.

Hipóteses legítimas.

Boatos.

Charlatanismo.

Política.

Desespero.

Oportunismo.


💊 A farmácia virou campo de batalha

Medicamentos passaram a ser discutidos como se fossem times de futebol.

Hidroxicloroquina.

Ivermectina.

Combinações diversas.

Tratamentos precoces.

Receitas compartilhadas em WhatsApp.

Vídeos.

Médicos discordando.

Políticos opinando.

Influenciadores recomendando.

Parentes encaminhando mensagens com:

“REPASSE!!! MÉDICO NÃO QUER QUE VOCÊ SAIBA!!!”

Nunca tantos epidemiologistas haviam surgido simultaneamente numa lista de família.

E havia uma dificuldade genuína no meio daquele ruído:

como distinguir uma hipótese científica ainda em avaliação de uma certeza fabricada para consumo político?

A ciência dizia frequentemente:

“Precisamos de evidências.”

A internet respondia:

“Minha prima tomou e melhorou.”


⛪ E chegaram os feijões mágicos

Crises sempre atraem duas categorias de pessoas.

Aquelas que querem ajudar.

E aquelas que percebem uma oportunidade comercial.

A pandemia não foi diferente.

Apareceram curas.

Proteções espirituais.

Objetos milagrosos.

Promessas.

Profecias.

Receitas.

Teorias.

Havia líderes religiosos sérios tentando amparar comunidades assustadas.

E havia também gente vendendo, metaforicamente ou literalmente, feijões mágicos para pessoas desesperadas.

Porque existe uma regra antiga da humanidade:

quando o medo cresce, o mercado da certeza cresce junto.


🇧🇷 E tínhamos um presidente

No Brasil, tudo isso ganhou uma camada adicional.

Jair Bolsonaro minimizou repetidamente a gravidade da COVID-19, confrontou medidas de distanciamento adotadas por governadores e prefeitos e promoveu medicamentos cuja eficácia contra a doença não seria demonstrada de maneira confiável.

A pandemia tornou-se também uma batalha política.

Máscara virou política.

Vacina virou política.

Quarentena virou política.

Remédio virou política.

Abrir comércio virou política.

Fechar comércio virou política.

Até espirrar parecia correr o risco de adquirir filiação partidária.

E famílias começaram a brigar.


🗣️ DIREITA!

🗣️ ESQUERDA!

Grupos de WhatsApp transformaram-se em trincheiras.

Amigos brigaram.

Parentes brigaram.

Casais brigaram.

Colegas brigaram.

Um lado acusava o outro de irresponsabilidade.

O outro acusava o primeiro de histeria.

Todo mundo tinha gráficos.

Todo mundo tinha médicos.

Todo mundo tinha vídeos.

Todo mundo tinha “um amigo que trabalha em hospital”.

Todo mundo tinha absoluta certeza.

E havia uma ironia gigantesca:

o vírus não votava.

Não estava interessado em direita.

Não estava interessado em esquerda.

Não lia Twitter.

Não assistia televisão.

Não participava de manifestações.

Apenas se replicava.

E enquanto discutíamos...

os números subiam.


🏠 Maridos versus mulheres

Havia ainda outra guerra muito menos visível.

Aquela que acontecia dentro das casas.

A casa havia sido apresentada como lugar seguro:

“Fique em casa.”

Mas casa não é lugar seguro para todo mundo.

Nos primeiros dois meses das medidas de confinamento no Brasil, março e abril de 2020, dados reunidos pelo Banco Mundial apontaram aumento de 22% nos casos de feminicídio e de 27% nas denúncias ao Ligue 180, comparados ao mesmo período de 2019. Perda de renda, ansiedade, medo, isolamento e convivência contínua com possíveis agressores criaram uma combinação particularmente perigosa. (Banco Mundial)

Para algumas pessoas:

rua = perigo de contágio.

Para outras:

casa = perigo de violência.

Escolha seu inferno.


📺 Netflix

E então havia nós.

Os sobreviventes provisórios.

Presos.

Esperando.

Acordava.

Café.

Computador.

Notícia.

Trabalho, quando havia.

Comida.

Televisão.

Netflix.

Próximo episódio.

Próximo episódio.

Próximo episódio.

Dormir.

Repeat.

O calendário começou a perder significado.

Segunda-feira parecia sábado.

Sábado parecia terça.

Feriado parecia qualquer coisa.

O tempo havia virado uma sopa.

E foi aí que comecei a pensar em The Walking Dead.


🧟 Nós, os vivos, éramos os mortos

A ficção havia nos ensinado que o apocalipse seria espetacular.

Carros destruídos.

Prédios queimando.

Explosões.

Exércitos.

Gritos.

Zumbis caminhando pelas avenidas.

Mas nosso apocalipse era assustador justamente porque era silencioso.

A avenida estava inteira.

Mas vazia.

O shopping estava inteiro.

Mas fechado.

O aeroporto estava inteiro.

Mas sem passageiros.

A escola estava inteira.

Mas sem crianças.

O restaurante estava inteiro.

Mas com as cadeiras sobre as mesas.

As cidades não tinham sido destruídas.

Tinham sido desligadas.

E nós continuávamos vivos.

Biologicamente.

Mas alguma coisa da vida havia sido suspensa.

Sem encontros.

Sem viagens.

Sem festas.

Sem abraços.

Sem planos confiáveis.

Sem saber quando terminaria.

Andávamos da cama para a cozinha.

Da cozinha para o computador.

Do computador para o sofá.

Do sofá para a cama.

Foi quando pensei:

Nós, os vivos, éramos os mortos.

Walking Dead sem walking.


⚰️ E então vieram as covas

No começo eram números pequenos.

Depois centenas.

Depois milhares.

Depois dezenas de milhares.

Depois centenas de milhares.

O Ministério da Saúde registraria posteriormente mais de 700 mil mortes por COVID-19 no Brasil; dados oficiais posteriores já passaram de 710 mil registros. (Serviços e Informações do Brasil)

Mas existe um problema cognitivo com números dessa magnitude.

700.000 é uma abstração.

Nosso cérebro não foi construído para sentir setecentas mil pessoas.

Então precisamos converter.

Uma cidade.

Imagine uma cidade brasileira inteira.

Bairros.

Padarias.

Escolas.

Ônibus.

Casas.

Casamentos.

Aniversários.

Avós.

Pais.

Mães.

Filhos.

Vizinhos.

Professores.

Médicos.

O sujeito que você cumprimenta na rua sem saber o nome.

Agora imagine:

a cidade desapareceu.

Ainda assim, provavelmente continuamos sem compreender completamente.


🏥 Os que entravam onde ninguém queria entrar

Enquanto ficávamos em casa, profissionais de saúde faziam exatamente o contrário.

Entravam nos hospitais.

Todos os dias.

Médicos.

Enfermeiros.

Técnicos.

Fisioterapeutas.

Limpeza.

Ambulâncias.

Laboratórios.

Administrativos.

Pessoas colocando equipamentos de proteção para entrar voluntariamente em ambientes onde havia aquilo de que o restante da população tentava fugir.

Depois voltavam para casa.

Alguns evitavam abraçar os próprios filhos.

Alguns dormiam separados da família.

Alguns adoeceram.

Alguns morreram.

Quando o Ministério da Saúde começou posteriormente a discutir a criação de um memorial da pandemia, representantes das famílias das vítimas fizeram questão de lembrar também os trabalhadores da saúde que enfrentaram diretamente a doença. (Serviços e Informações do Brasil)

A palavra essencial novamente adquiria um significado bastante concreto.


💉 Então veio a vacina

E talvez poucas coisas demonstrem tão bem nossa capacidade de adaptação quanto o fato de que, em menos de um ano, diferentes equipes científicas conseguiram desenvolver vacinas eficazes contra formas graves da doença.

A vacinação não fez o vírus desaparecer magicamente.

Mas mudou dramaticamente a relação entre infecção, hospitalização e morte. O próprio Ministério da Saúde registraria redução importante de hospitalizações e óbitos após a obtenção de boas coberturas vacinais, especialmente a partir de 2022. (Serviços e Informações do Brasil)

O apocalipse começou lentamente a perder potência.

Mas ainda não sabíamos exatamente quando poderíamos declarar:

acabou.


🪟 Até que alguém abriu uma janela

E aqui minha história dá um salto.

Dezesseis anos para trás.

Madri.

11-M.

Atocha.

Atentados.

Mortos.

Dúvidas.

Indignação.

Manifestações.

Puerta del Sol.

E panelas.

Eu estava lá.

Eu havia ouvido uma cidade descobrir que uma panela doméstica podia transformar-se em instrumento político.

TUM.

Outra pessoa responde.

TUM TUM.

Outra janela.

TUM TUM TUM.

De repente não existe mais uma pessoa batendo panela.

Existe uma rua.

Uma praça.

Uma cidade.

Eu conhecia aquele protocolo.


🇧🇷 2020

Então, durante a pandemia brasileira, ouvi novamente.

TUM.

Parei.

Outra janela:

TUM TUM.

Outra:

TUM TUM TUM.

Panelas começaram a bater contra Bolsonaro.

E alguma coisa dentro da minha memória abriu instantaneamente um arquivo antigo.

MADRID_2004.LOG

Eu conhecia aquele som.


🥘 O protocolo mais simples do mundo

Não precisava de aplicativo.

Não precisava de login.

Não precisava de algoritmo.

Não precisava de 5G.

Não precisava de líder.

Não precisava sequer sair de casa.

Precisava de:

1 janela

1 panela

1 colher

1 pessoa irritada

A pessoa transmite:

TUM TUM TUM

O vizinho recebe:

PACKET RECEIVED

Responde:

TUM TUM

ACK

Outro apartamento entra:

JOIN

Mais outro.

JOIN

O prédio inteiro:

BROADCAST

E alguns minutos depois você possui um sistema distribuído de protesto popular sem servidor central.

Como homem de mainframe, preciso reconhecer:

arquitetura elegante.


🏛️ A última praça pública

Existe uma diferença fundamental entre Madri em 2004 e Brasil em 2020.

Em Madri, podíamos sair.

As pessoas ocuparam as ruas.

Caminharam.

Encontraram outras pessoas.

Chegaram às praças.

A multidão podia existir fisicamente.

Em 2020, a própria natureza da crise dizia:

não forme uma multidão.

A praça pública havia sido temporariamente interditada.

Então fizemos uma coisa extraordinariamente humana.

Transformamos nossas janelas em praça.

Cada apartamento tornou-se um pequeno pedaço da manifestação.

Cada varanda virou alguns centímetros quadrados de espaço público.

Não podíamos estar juntos.

Mas podíamos fazer barulho juntos.


🪟 TUM

Talvez seja por isso que aquele som tenha me atingido de maneira diferente.

Para muita gente era simplesmente o panelaço daquele momento.

Para mim havia uma camada adicional.

Eu estava novamente em Madri.

Por alguns segundos:

2004 e 2020 coexistiram.

Puerta del Sol e uma janela brasileira estavam conectadas por uma colher batendo numa panela.

Dezesseis anos.

Dois países.

Duas crises completamente diferentes.

A mesma tecnologia.

TUM.


🌎 O mundo literalmente parou

Usamos essa expressão o tempo inteiro.

“O mundo parou.”

Normalmente é metáfora.

Na pandemia, chegou assustadoramente perto de ser descrição operacional.

Companhias aéreas estacionaram frotas.

Fronteiras fecharam.

Turismo evaporou.

Escritórios esvaziaram.

Eventos desapareceram.

Estádios ficaram silenciosos.

Templos fecharam ou limitaram presença.

Milhões passaram a trabalhar de casa.

Milhões perderam trabalho.

Milhões adoeceram.

Milhões morreram no mundo.

E bilhões descobriram simultaneamente que a civilização moderna, aparentemente tão sólida, podia entrar em modo de emergência por causa de uma entidade microscópica.

Nenhum ataque alienígena.

Nenhum meteoro.

Nenhum Skynet.

Nenhuma guerra mundial.

Um vírus.


🧀 O Swiss Cheese da civilização

Olhando retrospectivamente, vejo a pandemia quase como uma demonstração planetária do Swiss Cheese Model.

Saúde pública.

Hospitais.

Governos.

Ciência.

Comunicação.

Famílias.

Economia.

Logística.

Tecnologia.

Comportamento individual.

Cada camada tinha buracos.

Algumas funcionaram extraordinariamente bem.

Outras falharam.

Algumas foram sabotadas pela desinformação.

Outras simplesmente não tinham capacidade suficiente para enfrentar algo daquela escala.

E o vírus procurava alinhamentos.

Quando os buracos coincidiam:

tragédia.


🤡 E nós continuávamos sendo humanos

Mesmo durante uma das maiores crises sanitárias de nossa geração, continuamos fazendo aquilo que humanos fazem.

Piadas.

Memes.

Receitas.

Pão caseiro.

Lives.

Desafios.

Brigas.

Teorias conspiratórias.

Romances.

Separações.

Pornografia.

Cursos online.

Vídeos de gatos.

Reuniões em que alguém inevitavelmente dizia:

“Você está no mudo.”

Talvez isso também tenha nos salvado um pouco.

A capacidade absolutamente ridícula da humanidade de continuar produzindo banalidade enquanto o mundo está desabando.


☕ Café

Eu continuei tomando café.

Porque algumas infraestruturas críticas precisam permanecer disponíveis mesmo durante o fim da civilização.

Computador.

Internet.

Café.

Notícia.

Netflix.

Janela.

Panela.

Repeat.


🧠 Trauma coletivo

Hoje é tentador olhar para 2020 como um arquivo fechado.

COVID19_ARCHIVE.zip

Mas não foi simplesmente uma interrupção temporária.

Foi trauma coletivo.

Crianças perderam escola presencial.

Jovens perderam experiências.

Idosos perderam amigos.

Famílias perderam parentes.

Profissionais de saúde carregaram experiências difíceis de explicar.

Pessoas perderam empresas.

Empregos.

Dinheiro.

Relacionamentos.

Tempo.

E talvez ainda estejamos descobrindo algumas consequências.

O Ministério da Saúde chegou a promover discussões sobre a criação de um Memorial da Pandemia de Covid-19, justamente reconhecendo que a experiência deixou marcas profundas e merece preservação histórica. (Serviços e Informações do Brasil)

Memória também é infraestrutura.

Uma sociedade que esquece como falhou fica disponível para repetir o erro.


🪟 A janela

Quando penso naquele período, porém, não vejo primeiro gráficos.

Vejo uma janela.

Do lado de dentro:

um homem preocupado.

Conta corrente vazia.

Computador.

Televisão.

Netflix.

Café.

Incerteza.

Do lado de fora:

uma cidade estranhamente silenciosa.

E então:

TUM.

Uma panela.

Outra janela responde.

TUM TUM.

Outra.

TUM TUM TUM.

E meu cérebro imediatamente viaja dezesseis anos.

Madri.

Puerta del Sol.

Carmen.

Atocha.

Panelas.

Pessoas nas ruas.


🔁 Eu conheço esse som

Talvez essa seja uma das características mais estranhas da memória.

Ela não respeita calendário.

Um cheiro.

Uma música.

Uma frase.

Um som metálico.

E subitamente você não está mais em 2020.

Está em 2004.

Não está mais no Brasil.

Está em Madri.

A panela brasileira não precisava conhecer a panela espanhola.

Eu conhecia as duas.

E fui a ponte involuntária entre elas.


❤️ Nós, os vivos

O título deste texto parece pessimista:

Nós, os vivos, éramos os mortos.

Mas talvez agora eu perceba que ele contém também o contrário.

Estávamos assustados.

Parados.

Isolados.

Entorpecidos.

Muitas vezes sem objetivo.

Mas ainda fazíamos alguma coisa.

Telefonávamos.

Cozinhávamos.

Entregávamos comida.

Cuidávamos de doentes.

Pesquisávamos vacinas.

Mantínhamos sistemas funcionando.

Tentávamos proteger nossos pais.

Inventávamos maneiras de trabalhar.

Fazíamos piadas ruins.

Assistíamos Netflix demais.

E batíamos panelas.

Os vivos ainda estavam vivos.

Mesmo quando não parecia.


☕ Epílogo: quando o mundo reiniciou

Sistemas eventualmente voltam.

RECOVERY STARTED

Portas abriram.

Aviões voltaram.

Restaurantes colocaram novamente as cadeiras no chão.

Escolas receberam crianças.

Aeroportos recuperaram aquele barulho infernal que um dia descobrimos sentir falta.

Pessoas voltaram a se abraçar.

A vida executou lentamente:

RESTART

Mas não houve:

ROLLBACK

Os mortos não voltaram.

O dinheiro perdido não voltou automaticamente.

O tempo não voltou.

Algumas empresas não voltaram.

Alguns relacionamentos não voltaram.

Algumas pessoas que entraram em 2020 nunca saíram dele.

O Brasil ultrapassou 700 mil mortes oficialmente registradas por COVID-19. (Serviços e Informações do Brasil)

Isso não cabe numa estatística.

Cabe em centenas de milhares de cadeiras vazias.


E talvez seja por isso que ainda me lembre daquela panela.

Porque, quando praticamente tudo havia sido retirado de nós — rua, praça, viagem, encontro, certeza, dinheiro, rotina e às vezes até esperança — restava uma coisa extremamente simples.

Abrir a janela.

Olhar para uma cidade silenciosa.

Pegar uma panela.

E dizer da única maneira disponível:

EU AINDA ESTOU AQUI.

TUM.

Uma janela responde.

TUM TUM.

Outra responde.

TUM TUM TUM.

Madri, 2004.

Brasil, 2020.

O mundo podia estar parado.

Mas enquanto alguém ainda respondesse da janela ao lado,

nós, os vivos, ainda não éramos os mortos.

domingo, 15 de janeiro de 2023

🇯🇵 Estereótipos Regionais no Anime – quando o sotaque também conta história!



 🇯🇵 Estereótipos Regionais no Anime – quando o sotaque também conta história!

Quem mergulha fundo no mundo dos animes logo percebe: nem todo japonês fala igual! E isso não é só detalhe — é roteiro cultural disfarçado de sotaque. O Japão, embora pequeno no mapa, é um mosaico de dialetos e temperos sociais. Cada região tem sua “personalidade”, e os animes amam exagerar isso pra dar cor, humor e identidade aos personagens. 🍱


🎙️ O sotaque que denuncia a alma: Kansai-ben

Se você já viu personagens que falam alto, piadistas e cheios de energia (tipo Osaka em Azumanga Daioh ou Satoru Gojo em certos momentos de Jujutsu Kaisen), bem-vindo ao Kansai-ben, o dialeto da região de Osaka e Kyoto.

Ele é o “carioquês” do Japão — divertido, informal, cheio de ritmo e expressões regionais.
👉 Normalmente indica um personagem:

  • extrovertido,

  • trapaceiro charmoso,

  • ou aquele “malandro de bom coração”.

Curiosidade Bellacosa: o stand-up japonês, o manzai, nasceu em Osaka — por isso o Kansai-ben virou sinônimo de humorista nato.


🍵 Kanto – o japonês “padrão”

A região de Kanto, onde fica Tóquio, é o equivalente ao nosso “português neutro de telejornal”. Quando você ouve aquele japonês limpinho, educado e formal, é Kanto puro.

Nos animes, personagens com esse jeito falam de forma direta e um tanto fria. Representam o urbanita racional, o “corporativo”, o “herói padrão de shonen”.

💼 Exemplo: Light Yagami (Death Note) é o estereótipo do estudante perfeito de Tóquio — formal, elegante e... perigosamente controlado.


⛩️ Kyoto – o sotaque nobre

Ah, o Kyoto-ben… é o dialeto dos templos, do chá e das gueixas.
Em animes, personagens que o usam costumam ser refinados, calmos e misteriosos. Falam de forma lenta e com muita cortesia, o que às vezes soa meio passivo-agressivo.

🎴 Personagens de Kyoto têm um ar antigo, quase espiritual — uma espécie de “nobreza disfarçada”.


🌾 Tohoku e Hokkaido – o campo e o frio

No norte do Japão, os dialetos são vistos como “rústicos” ou “do interior”. Quando aparece um personagem com sotaque forte de Tohoku ou Hokkaido, prepare-se para o arquétipo do ingênuo, puro ou trabalhador rural.

🐄 Costuma ser o amigo de infância, o cara do campo, ou a garota que se muda pra cidade grande com o coração aberto.
Nos animes de romance, esse contraste “cidade x interior” é clássico — uma metáfora do Japão moderno tentando não esquecer suas raízes.


🌋 Kyushu e Okinawa – o exótico e o rebelde

Os sotaques do sul, como Hakata-ben (Fukuoka) e Okinawa-ben, são pouco usados — mas quando aparecem, é pra dar força e identidade rebelde.
Personagens dessas regiões costumam ser calorosos, temperamentais e cheios de sotaques cantados.

🔥 Exemplo: em Barakamon, o protagonista vai parar numa ilha de Okinawa e descobre que “vida simples” é sinônimo de sabedoria local.


🗾 Por que isso importa?

Nos animes, o dialeto é um elemento narrativo. Ele informa de onde o personagem vem, o que valoriza e até como enxerga o mundo. É a “cor” invisível da fala — e os japoneses a percebem imediatamente.

Nós, ocidentais, perdemos esse detalhe nas legendas, mas saber disso faz toda a diferença pra entender o subtexto.
Quando alguém muda de dialeto em cena, é tão significativo quanto mudar de roupa ou de expressão.


💡 Dica Bellacosa para Padawans Otaku

Assista animes com áudio original e tente notar o ritmo e o tom de voz. Mesmo sem entender japonês, dá pra sentir a energia regional.
Quer um desafio? Compare o jeito de falar de personagens de Osomatsu-san (puro Kansai) com os de Your Name (Tokyo Kanto). É outro Japão! 🇯🇵


✨ Conclusão:
Os estereótipos regionais nos animes são mais do que sotaques engraçados — são retratos culturais, cheios de identidade, humor e emoção.
Eles revelam o quanto o Japão é diverso dentro de si mesmo. Afinal, nem todo samurai nasce em Kyoto, e nem todo gênio vem de Tóquio.

E você, padawan — de qual região do Japão seria seu sotaque de anime? 😄

#BellacosaMainframe #AnimeParaPadawans #CulturaJaponesa #DialetosDosAnimes #OtakuCultural

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...