☕ 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

domingo, 15 de agosto de 2021

Famílias Estendidas – o Amor Entre Ecos do Passado

 



 Famílias Estendidas – o Amor Entre Ecos do Passado

Por Bellacosa 


💔 O amor na era das segundas chances

Vivemos tempos em que o amor se tornou um exercício de recomeço.
Nos aplicativos e nas redes, é comum encontrar mulheres com dois, três filhos — cada um de uma história, de um amor que não deu certo, de um ciclo interrompido. Muitas delas ainda sonham com algo essencial: um lar estável, um companheiro, uma nova oportunidade de ser amada.

Para alguns homens, isso soa caótico ou ameaçador.
Para outros, um convite à maturidade.
Porque entrar na vida de alguém que já tem uma família parcial é aceitar que o amor, hoje, vem com ecos do passado.


🧩 O fim do modelo linear

O amor moderno não é mais linear.
O século XXI dissolveu o roteiro clássico — namoro, casamento, filhos, envelhecer juntos — e substituiu por relações líquidas, como dizia Bauman. A mobilidade emocional é alta, as expectativas mudam rápido, e a ideia de “pra sempre” perdeu o peso dogmático que um dia teve.

O resultado é o surgimento de famílias estendidas, mosaicos de afetos que reúnem filhos de diferentes pais, ex-companheiros ainda presentes por causa da guarda compartilhada, e novos parceiros tentando encontrar seu espaço sem apagar o passado.

É a família remixada — complexa, barulhenta, real.


🧠 O ruído e o aprendizado

Essas famílias carregam ruídos:

  • pais biológicos e padrastos disputando autoridade;

  • crianças divididas entre afetos;

  • ex-parceiros presentes, ainda que distantes.

Mas também carregam sabedoria acumulada: quem viveu perdas, separações e reconciliações sabe que o amor não é um campo de fantasia — é um campo de trabalho emocional.
E nesse campo, só floresce quem aprendeu a respeitar o passado sem se aprisionar nele.


❤️ O papel de quem chega depois

Para o novo parceiro — o homem que se aproxima de uma mulher com filhos e história — o segredo é lucidez e empatia.

Não é papel dele “salvar” ninguém, nem competir com o pai das crianças.
É ser um novo centro de estabilidade, sem apagar o que veio antes.
É entender que o amor maduro é feito de presença paciente, não de posse.

Quem entra num lar estendido precisa compreender que a família não começa do zero, e que o respeito é o alicerce de qualquer novo afeto.


🌱 O amor como reconstrução

As famílias estendidas são o espelho do nosso tempo: fragmentadas, imperfeitas, mas profundamente humanas.
São o resultado de uma sociedade que valoriza o recomeço e que, mesmo ferida, ainda acredita no amor.

Talvez o desafio não seja julgar o passado de quem amamos, mas ter coragem de participar do futuro que ela deseja construir.


Bellacosa – observando o amor contemporâneo com olhos de filósofo e alma de cronista.

sábado, 14 de agosto de 2021

🌌 O Melhor Anime da História: Neon Genesis Evangelion

🌌 O Melhor Anime da História: Neon Genesis Evangelion



Título original: 新世紀エヴァンゲリオン (Shin Seiki Evangelion)
Autor / Criador: Hideaki Anno (Gainax / Tatsunoko Production)
Ano de lançamento: 1995
Gênero: Mecha, Psicológico, Filosófico, Drama, Ficção Científica


🧩 Sinopse

Em um mundo devastado por uma catástrofe chamada “Segundo Impacto”, a humanidade tenta sobreviver à constante ameaça de criaturas gigantes conhecidas como Anjos. Para enfrentá-los, a organização NERV recruta jovens pilotos para comandar colossais bio-máquinas chamadas Evangelions.
Entre eles está Shinji Ikari, um garoto introspectivo e emocionalmente frágil, filho do comandante da NERV, Gendou Ikari.
O que começa como uma típica guerra entre humanos e monstros se transforma em uma profunda jornada sobre identidade, depressão, propósito e o sentido da existência.


🧠 Personagens Principais

  • Shinji Ikari – o protagonista relutante e símbolo do conflito interno entre dever e autonegação.

  • Rei Ayanami – a enigmática piloto de olhar vazio e segredos biológicos.

  • Asuka Langley Soryu – a guerreira orgulhosa e insegura, um dos ícones mais complexos do anime.

  • Misato Katsuragi – comandante carismática que tenta equilibrar liderança e vulnerabilidade.

  • Gendou Ikari – o pai ausente, arquétipo do controle e da frieza emocional.


🧩 Curiosidades

  • Hideaki Anno escreveu Evangelion durante uma crise depressiva, e o anime reflete sua própria luta psicológica.

  • O final original, de 1996, foi tão polêmico que gerou cartas de ódio e ameaças de fãs.

  • Em resposta, o criador lançou “The End of Evangelion” (1997) — um novo final brutal, simbólico e cinematograficamente poderoso.

  • O anime inspirou centenas de obras posteriores, inclusive Darling in the Franxx, RahXephon, Attack on Titan e até Serial Experiments Lain.


🧭 Dicas para Assistir

  1. Não veja com pressa. Evangelion é uma experiência emocional e filosófica.

  2. Assista a série original (26 episódios) e depois o filme The End of Evangelion.

  3. Se quiser revisitar com visual moderno, assista à tetralogia Rebuild of Evangelion (2007–2021).

  4. Tenha um bloco de notas — sim, você vai querer anotar interpretações e teorias.

  5. Depois do episódio 16… respire fundo. O anime mergulha no abismo da mente humana.


💬 Comentário Bellacosa

Evangelion não é “o melhor” apenas por sua técnica ou popularidade — é a obra que redefiniu o que o anime poderia ser.
Ele misturou ciência, religião, filosofia e dor humana de uma forma que o Japão nunca tinha visto antes.
Para muitos, é uma terapia em forma de animação; para outros, um colapso de símbolos e metáforas.
Mas para todos nós, é uma obra que te muda.
E se você entender Evangelion de primeira... talvez não tenha entendido nada.


🌠 Especial para os Fãs

  • A icônica trilha sonora “Cruel Angel’s Thesis” virou símbolo de toda uma geração.

  • A série é cheia de referências à Cabala, Gnosticismo, Freud e Jung.

  • O estúdio Gainax praticamente faliu após o projeto, mas deixou um legado eterno.

  • A cena do “Congratulations!” do episódio final virou meme universal de superação e confusão existencial.

  • O criador Hideaki Anno, após Evangelion, se dedicou a filmes de tokusatsu, incluindo Shin Godzilla (2016) e Shin Kamen Rider (2023).


Bellacosa conclui:
Evangelion é o espelho da alma otaku — quebrado, lindo e necessário.
Não é só o melhor anime da história... é a experiência que define o que é ser humano diante do caos.

Bike Shedding Rules: Quando um Programador COBOL Descobriu que a Matrix Fazia Todos Discutirem a Cor da Bicicleta Enquanto a Usina Estava Prestes a Explodir

 

Bellacosa Mainframe e a bike shedding rules

☕ Um Café no Bellacosa Mainframe

Bike Shedding Rules sem Mistérios

Quando um Programador COBOL Descobriu que a Matrix Fazia Todos Discutirem a Cor da Bicicleta Enquanto a Usina Estava Prestes a Explodir

"A Matrix não precisa impedir você de resolver o problema. Basta convencer todos a discutir o problema errado."


Introdução — A Reunião Dentro da Matrix

Neo entra em uma enorme sala de reuniões.

Na parede existe um painel gigantesco.

No centro aparece um alerta crítico.

⚠️ Sistema Bancário Nacional
Fechamento Noturno em Risco

O problema é gravíssimo.

O processamento pode falhar.

Milhões de transações dependem daquela execução.

Neo pergunta:

— Quem está cuidando disso?

Morpheus responde.

— Eles.

Neo olha para a sala.

Os analistas discutem apaixonadamente.

Mas não sobre o processamento.

Não sobre o Db2.

Não sobre o COBOL.

Nem sobre o CICS.

Eles discutem:

  • a cor dos gráficos

  • o nome da nova aplicação

  • se o botão deveria ser azul ou verde

  • o tamanho da fonte

  • se o README usa Markdown ou AsciiDoc

  • qual editor é melhor

  • se comentários devem começar com "", ">", ou "*> "

Enquanto isso...

o Job continua falhando.

A Matrix sorri.

O Agente Smith também.

Você acaba de presenciar um clássico caso de Bike Shedding.


O que é Bike Shedding?

Bike Shedding é um fenômeno onde pessoas gastam enorme quantidade de tempo discutindo assuntos simples e pouco importantes, enquanto ignoram questões realmente críticas.

Em outras palavras:

Quanto mais simples o assunto, mais pessoas opinam. Quanto mais complexo, menos pessoas participam.

É um comportamento psicológico extremamente comum.

E perigosamente frequente em projetos de software.


A origem do termo

O conceito nasceu em 1957.

Foi apresentado pelo historiador e cientista britânico Cyril Northcote Parkinson.

No livro:

Parkinson's Law

Ele descreve uma situação fictícia.

Imagine uma comissão aprovando três projetos.

Primeiro

Construção de um reator nuclear.

Custo:

Bilhões.

Ninguém entende engenharia nuclear.

Resultado?

Aprovado em cinco minutos.


Segundo

Construção de um laboratório.

Pouca discussão.


Terceiro

Construção de um bicicletário.

Valor pequeno.

Todo mundo entende bicicletas.

Resultado?

Horas debatendo:

  • cor

  • localização

  • tamanho

  • telhado

  • pintura

O bicicletário consumiu mais tempo que a usina nuclear.

Assim nasceu:

Bike Shedding


Matrix explica perfeitamente

A Matrix vive desviando atenção.

Não precisa esconder a verdade.

Basta oferecer distrações.

Em projetos acontece igual.

Enquanto a arquitetura inteira desmorona...

todos discutem:

"Essa variável deveria chamar CLIENTE ou CLIENT?"


O paradoxo do conhecimento

Existe uma explicação psicológica interessante.

As pessoas evitam opinar sobre assuntos que não dominam.

Mas adoram opinar sobre aquilo que parece simples.

Por isso:

Arquitetura distribuída?

Silêncio.

Nome do programa?

Todo mundo vira especialista.


O Programador COBOL Padawan

Imagine.

Você participa da primeira reunião.

Tema oficial:

Modernização do Core Bancário.

Você imagina discussões sobre:

  • CICS

  • Db2

  • APIs

  • z/OS Connect

  • MQ

  • segurança

  • performance

Mas a reunião inteira é consumida por:

"O novo padrão de comentários terá três ou quatro traços?"


Exemplo COBOL

Existe um programa.

PROGRAM-ID. FATUR001.

A equipe precisa alterar:

Uma regra tributária nacional.

Impacto:

Milhões de clientes.

Mas a reunião debate durante uma hora:

FATUR001

ou

FATURA01

ou

FAT-001

ou

BILL001

A regra tributária?

Ainda ninguém analisou.


Como nasce o Bike Shedding?

Normalmente começa assim.

Alguém apresenta um assunto complexo.

O grupo sente dificuldade.

Então alguém muda para um detalhe simples.

Exemplo.

"Precisamos definir a arquitetura."

Silêncio.

Então alguém pergunta.

"A propósito...

qual será a cor do dashboard?"

Pronto.

Uma hora desaparece.


O efeito psicológico

Nosso cérebro gosta de participar.

Quando o assunto parece fácil...

todos querem contribuir.

Isso gera sensação de pertencimento.

Mas também desperdiça tempo.


Matrix Reloaded

Imagine Neo diante do Arquiteto.

O Arquiteto explica uma estrutura extremamente complexa.

Neo tenta entender.

Então alguém interrompe.

"Gostei desse terno branco.

Onde comprou?"

É exatamente isso que acontece nas empresas.


O Agente Smith ama Bike Shedding

Porque ele sabe:

Enquanto vocês discutem detalhes...

ninguém resolve o problema verdadeiro.


O impacto em projetos

Bike Shedding provoca:

  • reuniões intermináveis

  • atrasos

  • decisões lentas

  • perda de foco

  • desgaste da equipe

E o pior.

Dá sensação de produtividade.

Todos participaram.

Mas nada aconteceu.


Um exemplo no Mainframe

Projeto:

Migrar milhares de programas COBOL para Enterprise COBOL 6.5.

Questões realmente importantes:

  • compatibilidade

  • desempenho

  • testes

  • NUMPROC

  • TRUNC

  • ARCH

  • OPT

  • SSRANGE

  • RENT

Mas a reunião discute:

"O template do PowerPoint ficará azul IBM ou azul escuro?"


Outro exemplo

Projeto:

Criar API PIX.

Discussão:

REST.

OAuth.

TLS.

MQ.

CICS.

JSON.

Mas metade da Sprint foi consumida decidindo:

Qual será o ícone da documentação.


Como reconhecer Bike Shedding?

Faça uma pergunta simples.

"O tempo gasto discutindo isso é proporcional ao impacto?"

Se não...

provavelmente existe Bike Shedding.


Os sintomas

Reuniões longas.

Decisões pequenas.

Grandes decisões adiadas.

Muito debate.

Pouca entrega.


O custo invisível

Imagine.

15 pessoas.

Reunião de duas horas.

Discutindo:

Nome da aplicação.

São:

30 horas de trabalho.

Sem produzir uma linha de código.


O Programador Sênior

Os profissionais mais experientes normalmente fazem uma pergunta.

"Isso impede a entrega?"

Se não impede...

seguem adiante.


Matrix e a Escolha

Morpheus oferece duas pílulas.

A azul.

Discutir detalhes infinitamente.

A vermelha.

Resolver o problema.

Toda equipe escolhe diariamente.


Como evitar Bike Shedding?

Definir objetivo da reunião

Qual decisão precisa sair daqui?


Time Box

15 minutos.

Acabou.

Decide.


Priorizar impacto

Quanto maior o impacto...

mais atenção.


Nomear um facilitador

Alguém precisa trazer a conversa de volta.


Criar Parking Lot

Assuntos paralelos.

Anotados.

Resolvidos depois.


O papel do Scrum Master

Excelente Scrum Masters interrompem gentilmente.

"Esse assunto é importante.

Mas não agora."

Essa frase economiza semanas.


O COBOL ensina foco

Programadores COBOL antigos possuem uma característica interessante.

Eles perguntam:

"O que está quebrado?"

Não:

"O que poderia ficar bonito?"

Primeiro estabilidade.

Depois estética.


Atenção!

Existe diferença entre:

Detalhe importante

e

Detalhe pequeno.

Segurança pode parecer detalhe.

Não é.

Performance pode parecer detalhe.

Não é.

Mas discutir durante quarenta minutos:

ordem alfabética dos COPYBOOKs...

provavelmente é.


Os riscos

Escopo cresce


Projeto atrasa


Equipe desmotiva


Clientes esperam


Arquitetura piora

Porque ninguém teve tempo para ela.


Curiosidade

Google.

IBM.

Microsoft.

Amazon.

Todas treinam líderes para reduzir Bike Shedding.

Algumas utilizam:

  • Decision Records

  • RFCs

  • ADR (Architecture Decision Records)

Justamente para evitar discussões infinitas.


Um exemplo engraçado

Chamado:

"Erro no cálculo do IR."

Reunião.

Primeira hora.

Escolha do nome da branch.

Segunda hora.

Cor do dashboard.

Terceira hora.

Modelo do documento.

Quarta hora.

Finalmente alguém pergunta.

"O erro ainda existe?"

Sim.


O Oráculo explica

O Oráculo olha para Neo.

E pergunta.

"O que realmente importa?"

Essa pergunta encerra metade das reuniões inúteis do mundo.


Aplicabilidade

Bike Shedding aparece em:

  • Desenvolvimento

  • Infraestrutura

  • Cloud

  • Segurança

  • Banco de Dados

  • Mainframe

  • DevOps

  • IA

  • Projetos Ágeis

  • Gestão

É praticamente universal.


Boas práticas

Priorize valor

Cliente antes.

Estética depois.


Decisões reversíveis

Se puder mudar depois...

não desperdice horas.


Documente rapidamente

Decidiu.

Registre.

Siga em frente.


Use especialistas

Nem toda decisão precisa de vinte pessoas.


Faça perguntas

"Qual impacto?"

"Qual risco?"

"Qual benefício?"


Erros comuns

Querer consenso absoluto.

Confundir democracia com eficiência.

Dar o mesmo peso para toda decisão.

Ignorar prioridade.

Não encerrar discussões.


O ensinamento para o Programador COBOL Padawan

Você entrará em muitas reuniões.

Algumas serão fundamentais.

Outras parecerão infinitas.

Aprenda a distinguir.

Sempre pergunte:

"Essa conversa ajuda o cliente?"

Se não.

Talvez todos estejam apenas pintando o bicicletário.


Curiosidades adicionais

O conceito de Bike Shedding inspirou diversas práticas modernas de gestão:

  • Regra dos Dois Minutos para Decisões Simples: se a decisão é barata e reversível, decida rapidamente.

  • ADR (Architecture Decision Records): registrar decisões arquiteturais evita rediscussões constantes.

  • Disagree and Commit: popularizado pela Amazon, incentiva que, após uma decisão ser tomada, a equipe siga em frente mesmo sem consenso absoluto.

  • Impacto × Esforço: muitas organizações usam matrizes para concentrar energia nas decisões que realmente afetam o negócio.


Matrix Revela a Verdade

No final da trilogia, Neo compreende que o maior poder da Matrix nunca foi controlar máquinas.

Foi controlar a atenção das pessoas.

Na Engenharia de Software acontece exatamente o mesmo.

Projetos raramente fracassam porque ninguém sabia programar COBOL.

Eles fracassam porque energia, tempo e inteligência foram consumidos discutindo assuntos periféricos enquanto os problemas críticos permaneceram intocados.

Cada minuto debatendo a cor de um botão quando uma arquitetura precisa ser definida é como permitir que mais um Agente Smith se multiplique dentro da Matrix.


Conclusão — Não Pinte o Bicicletário Enquanto Zion Está Sob Ataque

Imagine que Zion esteja prestes a ser invadida.

As sentinelas aproximam-se.

O núcleo de energia está instável.

As comunicações falham.

Nesse cenário, ninguém pararia para discutir a cor da pintura da garagem das naves.

No entanto, em projetos de software isso acontece todos os dias.

Em ambientes IBM Z, onde aplicações COBOL movimentam bilhões de reais diariamente, o foco deve estar nas decisões que garantem disponibilidade, segurança, desempenho, confiabilidade e continuidade do negócio. Questões cosméticas têm seu lugar, mas não podem competir com decisões arquiteturais e operacionais críticas.

O Programador COBOL Padawan que deseja evoluir para um verdadeiro Arquiteto da Frota Estelar precisa desenvolver uma habilidade rara: distinguir o importante do apenas interessante. Antes de entrar em qualquer discussão, pergunte:

  • Isso reduz riscos para o negócio?

  • Isso melhora a qualidade do software?

  • Isso acelera a entrega de valor?

  • Ou estamos apenas discutindo a cor do bicicletário?

Porque, no universo Bellacosa Mainframe, existe uma regra que vale tanto para Zion quanto para um CPD bancário:

"Enquanto você debate detalhes sem importância, o verdadeiro problema continua executando em produção."

E essa talvez seja a maior ilusão criada pela Matrix.

quinta-feira, 12 de agosto de 2021

🌸 Flores nos Animes: quando a natureza fala o que o personagem não pode dizer

 

Bellacosa Mainframe e as flores nos animes

🌸 Flores nos Animes: quando a natureza fala o que o personagem não pode dizer

Quem nunca viu pétalas de cerejeira voando num anime e sentiu o coração apertar sem saber exatamente por quê?
Pois é, padawan… bem-vindo ao hanakotoba (花言葉) — a “linguagem das flores” japonesa, onde cada flor tem um significado oculto.

Enquanto no Ocidente as flores são decoração, no Japão elas são mensagens codificadas. E os animes usam isso o tempo todo, como um código emocional secreto.


As flores ocupam um papel muito mais profundo nos animes do que simples elementos decorativos. Na cultura japonesa, existe o conceito de Hanakotoba, a linguagem das flores, na qual cada espécie carrega significados específicos relacionados a sentimentos, emoções e mensagens simbólicas. Por isso, muitos diretores e artistas utilizam flores para transmitir informações que nem sempre são ditas pelos personagens.

A flor de cerejeira, ou sakura, é provavelmente o exemplo mais famoso. Ela representa a beleza passageira da vida, a renovação e a chegada de novos ciclos. Já os lírios podem simbolizar pureza, enquanto as rosas assumem significados diferentes conforme sua cor. Flores vermelhas frequentemente aparecem associadas à paixão, ao sacrifício ou até mesmo à tragédia.

Em animes como Your Lie in April, Violet Evergarden, Anohana, Clannad e The Garden of Words, as flores ajudam a reforçar a atmosfera emocional das cenas e contribuem para a construção dos temas centrais da narrativa.

Além do simbolismo, elas também refletem a forte conexão da cultura japonesa com a natureza e a impermanência da existência. Dessa forma, cada pétala, jardim ou árvore florida pode carregar significados ocultos que enriquecem a experiência do espectador.

Nos animes, as flores muitas vezes falam tão alto quanto os próprios personagens.



🌸 Sakura (cerejeira) — a beleza que dura pouco

A flor mais icônica do Japão simboliza a vida efêmera, o fim e o recomeço.
Quando pétalas caem ao vento, é o universo dizendo que a beleza e a juventude são passageiras.
Por isso aparecem em despedidas, reencontros ou finais de arco emocional.

🎬 Exemplo: Your Lie in April, Naruto, Clannad, 5 Centimeters per Second.
💡 Dica: se você ver sakuras no fundo, prepare o lenço. Vai ter emoção.


🌻 Himawari (girassol) — o amor que segue a luz

Representa lealdade e admiração.
Nos animes, aparece em personagens otimistas, fiéis e radiantes.
O girassol “olha” para o sol — uma metáfora direta para quem busca a felicidade mesmo em tempos sombrios.

🎬 Exemplo: Naruto (personagem Himawari!), Honey and Clover.
💡 Curiosidade: nas escolas japonesas, girassóis são plantados no verão para simbolizar amizade e calor humano.


🌼 Kiku (crisântemo) — a flor imperial

Símbolo da família imperial japonesa e da dignidade.
Mas também é usada em funerais — sim, dualidade total!
Nos animes, seu uso depende da cor e contexto: branco = luto; dourado = honra e nobreza.

🎬 Exemplo: Rurouni Kenshin (momentos de sacrifício e honra).
💡 Dica Bellacosa: se o herói cair com crisântemos ao redor, é símbolo de partida honrada.


💐 Yuri (lírio) — pureza, amor e… algo mais

Originalmente símbolo da pureza feminina, o yuri no hana virou também o nome de um gênero inteiro de anime e mangá sobre amor entre mulheres.
Por isso, quando um lírio aparece em cena, é quase um “piscar de olhos” dos criadores ao público entendido. 🌸🌸

🎬 Exemplo: Maria-sama ga Miteru, Bloom Into You.
💡 Curiosidade: “yuri” significa literalmente lírio, mas o gênero se apropriou do termo como símbolo de amor puro e sincero entre garotas.


🌹 Bara (rosa) — paixão, orgulho e feridas

Simboliza amor intenso, mas também sofrimento.
É comum em personagens românticos, narcisistas ou trágicos — especialmente em obras de estética shoujo clássica.
E assim como o yuri, o bara também virou nome de gênero — representando histórias de amor entre homens.

🎬 Exemplo: Revolutionary Girl Utena, Yuri!!! on Ice.
💡 Dica: rosas vermelhas = paixão; brancas = promessa; murchas = adeus.


🌺 Tsubaki (camélia) — a flor do destino

Uma das mais usadas em cenas dramáticas.
Na cultura samurai, a camélia que cai inteira do galho simboliza morte súbita e honrada.
Por isso aparece em histórias de sacrifício, honra e redenção.

🎬 Exemplo: Rurouni Kenshin, Dororo, Samurai Champloo.
💡 Curiosidade: samurais evitavam dar camélias a vivos — só a guerreiros que partiram com glória.


🍁 Momiji (folhas de outono) — a passagem do tempo

Não é flor, mas é poesia pura.
As folhas vermelhas representam amadurecimento, nostalgia e o outono da vida.
Quando aparecem voando ao vento, é o Japão dizendo: “o tempo passou, e crescemos com ele.”

🎬 Exemplo: Natsume Yuujinchou, Mushishi, Inuyasha.
💡 Dica: veja como as cores das folhas combinam com o tom emocional da cena — não é acaso!


🌷 Resumo do Hanakotoba Otaku:

Flor / PlantaSignificadoTipo de Cena
Sakura 🌸Efemeridade, recomeçoDespedidas, lembranças
Himawari 🌻Fidelidade, alegriaEsperança, amor puro
Kiku 🌼Honra, lutoMorte nobre, tradição
Yuri 🌸Pureza, amor entre mulheresRelações sutis
Bara 🌹Paixão, orgulho, dorAmores trágicos
Tsubaki 🌺Destino, sacrifícioHonra, despedida
Momiji 🍁Maturidade, tempoReflexão, nostalgia

🌸 Conclusão Bellacosa:
Os japoneses transformaram a natureza em uma forma de linguagem.
Cada flor é uma palavra que floresce — às vezes um amor, às vezes uma saudade.
E quem aprende o hanakotoba, aprende a ouvir os sentimentos escondidos nos animes.

💡 Dica final:
Da próxima vez que vir pétalas voando ou flores murchando em câmera lenta, não veja só a estética.
Veja o código cultural — o Japão te falando em silêncio. 🌸✨


quarta-feira, 11 de agosto de 2021

☕💣 OS 10 ANIMES QUE EXECUTARAM UM ABEND SOCIAL MAIOR QUE USAGI DROP — QUANDO O DEPLOY DA HISTÓRIA FEZ AS REDES SOCIAIS ENTRAREM EM LOOP INFINITO

Bellacosa Mainframe e os animes com abend social


☕💣 OS 10 ANIMES QUE EXECUTARAM UM ABEND SOCIAL MAIOR QUE USAGI DROP — QUANDO O DEPLOY DA HISTÓRIA FEZ AS REDES SOCIAIS ENTRAREM EM LOOP INFINITO

Durante décadas, o mundo dos animes foi relativamente previsível. Havia os shounens de luta, os romances escolares, os mechas, os animes de fantasia e os inevitáveis torneios onde alguém gritava o nome de um golpe por três episódios seguidos. Então surgiram algumas obras que decidiram ignorar o manual de operações da indústria e executar mudanças diretamente em produção.

Usagi Drop é um dos exemplos mais famosos. Durante anos foi considerado um dos animes mais emocionantes sobre família, responsabilidade e amadurecimento. Porém, quando os leitores descobriram os acontecimentos da fase final do mangá, a comunidade otaku sofreu um verdadeiro dump de memória emocional. Fóruns explodiram. Blogs entraram em modo emergência. E até hoje veteranos recomendam: "Assista ao anime e pare por aí."

Mas Usagi Drop não está sozinho.

Existe uma categoria especial de obras que começaram como sistemas aparentemente estáveis e terminaram gerando incidentes de nível crítico. Algumas chocaram pela violência. Outras pelas mensagens filosóficas. Algumas causaram guerras civis entre fãs. E algumas simplesmente tomaram decisões narrativas tão inesperadas que o público ficou anos tentando entender o que aconteceu.

São animes que dividiram comunidades, destruíram teorias, criaram memes, geraram milhares de discussões e provaram que uma obra pode ser lembrada não apenas por sua qualidade, mas também pela capacidade de provocar reações extremas.

Prepare seu console de operações.

Os logs históricos estão prestes a ser analisados.


1. SCHOOL DAYS

Título Original

School Days

Ano

2007

Episódios

12

Temporadas

1

Personagens

  • Makoto Itou

  • Kotonoha Katsura

  • Sekai Saionji

Sinopse

Um romance escolar aparentemente comum transforma-se em uma tragédia psicológica.

História

O protagonista cria uma sequência absurda de relacionamentos que desencadeia uma espiral de obsessão, traição e consequências devastadoras.

O que chocou?

O episódio final tornou-se lendário.

Até hoje é considerado um dos finais mais perturbadores dos animes.

Easter Egg

A famosa frase:

"Nice Boat"

virou meme mundial após uma controvérsia envolvendo a transmissão do último episódio.

Curiosidade

Baseado em uma visual novel adulta.


2. YOSUGA NO SORA

Título Original

ヨスガノソラ

Ano

2010

Episódios

12

Temporadas

1

Personagens

  • Haruka Kasugano

  • Sora Kasugano

Sinopse

Dois irmãos retornam à cidade natal após uma tragédia familiar.

História

A obra apresenta múltiplas rotas românticas semelhantes a uma visual novel.

O que chocou?

Uma das rotas gerou enorme controvérsia por envolver relacionamento entre irmãos.

Easter Egg

Cada arco funciona como uma linha temporal alternativa.

Curiosidade

Foi banido de diversas grades de exibição internacionais.


3. WONDER EGG PRIORITY

Título Original

ワンダーエッグ・プライオリティ

Ano

2021

Episódios

13

Temporadas

1

Personagens

  • Ai Ohto

  • Neiru

  • Rika

  • Momoe

Sinopse

Garotas enfrentam traumas e perdas em um mundo surreal.

História

Mistura psicologia, fantasia e crítica social.

O que chocou?

O episódio final gerou enorme revolta por deixar questões importantes sem solução.

Easter Egg

Referências constantes a contos infantis japoneses.

Curiosidade

Problemas de produção afetaram o encerramento.


4. THE PROMISED NEVERLAND 2

Título Original

Yakusoku no Neverland

Ano

2021

Episódios

11

Temporadas

2

Personagens

  • Emma

  • Norman

  • Ray

Sinopse

Crianças tentam sobreviver em um mundo aterrorizante.

História

A primeira temporada foi aclamada.

A segunda virou caso de estudo.

O que chocou?

Arcos inteiros do mangá foram removidos.

Easter Egg

Personagens importantes sequer apareceram.

Curiosidade

Até hoje muitos fãs fingem que a segunda temporada não existe.


5. DARLING IN THE FRANXX

Ano

2018

Episódios

24

Temporadas

1

Personagens

  • Hiro

  • Zero Two

Sinopse

Jovens pilotam mechas para defender a humanidade.

História

Começa como drama psicológico e termina em escala cósmica.

O que chocou?

Mudança radical de direção narrativa.

Easter Egg

Diversas referências ao livro "The Darling".

Curiosidade

Foi apelidado por alguns fãs de "Evangelion com turbo".


6. ELFEN LIED

Ano

2004

Episódios

13

Temporadas

1

Personagens

  • Lucy

  • Kouta

Sinopse

Uma mutante foge de instalações governamentais.

História

Mistura violência extrema e drama humano.

O que chocou?

Primeiros minutos já ficaram famosos pela brutalidade.

Easter Egg

O tema de abertura utiliza elementos inspirados em Gustav Klimt.

Curiosidade

Foi um dos animes mais censurados de sua época.


7. MADE IN ABYSS

Ano

2017

Episódios

25 + filmes

Temporadas

2

Personagens

  • Riko

  • Reg

  • Nanachi

Sinopse

Uma expedição ao maior abismo do planeta.

História

Aventura infantil na superfície.

Pesadelo existencial nas profundezas.

O que chocou?

A intensidade do sofrimento físico e psicológico.

Easter Egg

Cada camada do Abismo representa uma descida simbólica ao desconhecido.

Curiosidade

Frequentemente engana novos espectadores pela aparência fofa.


8. HAPPY SUGAR LIFE

Ano

2018

Episódios

12

Temporadas

1

Personagens

  • Satou Matsuzaka

  • Shio Kobe

Sinopse

Uma jovem acredita ter encontrado o amor perfeito.

História

A narrativa apresenta obsessão, manipulação e distorção emocional.

O que chocou?

A protagonista tornou-se uma das personagens mais controversas dos animes modernos.

Easter Egg

O nome "Sugar Life" é uma ironia constante.

Curiosidade

Muitos espectadores abandonaram a série nos primeiros episódios.


9. PUELLA MAGI MADOKA MAGICA

Ano

2011

Episódios

12

Temporadas

1 + filmes

Personagens

  • Madoka

  • Homura

  • Sayaka

  • Kyubey

Sinopse

Garotas mágicas recebem propostas tentadoras.

História

Desconstrói completamente o gênero mahou shoujo.

O que chocou?

O episódio 3 mudou para sempre a percepção do público.

Easter Egg

Referências constantes ao mito de Fausto.

Curiosidade

Muitos pais acreditavam que era um desenho infantil.


10. USAGI DROP

Ano

2011

Episódios

11

Temporadas

1

Personagens

  • Daikichi

  • Rin

Sinopse

Um homem solteiro assume a criação de uma menina abandonada pela família.

História

Uma das obras mais emocionantes sobre responsabilidade já produzidas.

O que chocou?

Os acontecimentos posteriores do mangá dividiram a comunidade mundial.

Easter Egg

A estética aquarelada reforça a ideia de memórias e infância.

Curiosidade

É comum encontrar fãs que recomendam exclusivamente o anime.


☕💣 CONCLUSÃO BELLACOSA MAINFRAME

Se Usagi Drop fosse um incidente de produção, ele seria aquele sistema que executou perfeitamente durante anos, recebeu uma atualização inesperada e deixou metade da equipe debatendo em uma sala de guerra.

Os dez animes desta lista provaram uma verdade simples:

o público perdoa bugs, perdoa atrasos, perdoa filler e até episódios ruins.

O que ele nunca esquece é quando uma obra altera as regras do sistema sem aviso prévio.

E é exatamente por isso que esses títulos continuam sendo discutidos anos depois do encerramento.

Porque alguns animes terminam.

Mas certos incidentes culturais permanecem abertos para sempre no sistema de chamados da internet. ☕💣🖥️


terça-feira, 10 de agosto de 2021

REDEFINES, Compiler Options e o Diagnóstico que o COBOL Iniciante Não Vê

 

Bellacosa Mainframe e o redefines em cobol risco de perigo eminente

☕ Um Café no Bellacosa Mainframe

REDEFINES, Compiler Options e o Diagnóstico que o COBOL Iniciante Não Vê

🩺 House M.D. entra no CPD: “O compilador não mente. O programador é que perguntou a coisa errada.”

Existe um momento inevitável na vida de todo programador COBOL.

Você está diante de um programa aparentemente simples.

O JCL compilou.

O retorno foi bonito.

MAXCC=0

Nenhuma explosão.

Nenhum abend.

Nenhum operador telefonando.

Nenhum gerente atravessando o corredor com aquela expressão típica de quem acabou de descobrir que o processamento noturno está duas horas atrasado.

Você olha para o código e pensa:

— Funcionou.

E, em algum lugar do hospital Princeton-Plainsboro do mainframe, o Dr. Gregory House manca pelo corredor, toma um Vicodin imaginário e responde:

— Não. Apenas ainda não morreu.

Bem-vindo ao Bellacosa Mainframe.

Hoje vamos investigar um daqueles problemas que parecem pequenos demais para merecer atenção até o dia em que deixam de ser pequenos:

REDEFINES com tamanhos diferentes.

E, a partir dele, vamos abrir uma porta muito maior:

  • como o COBOL organiza memória;

  • o que REDEFINES realmente faz;

  • por que o compilador pode aceitar coisas que você não deveria escrever;

  • como identificar diferenças de tamanho;

  • como usar MAP;

  • como usar XREF;

  • quais opções de compilação ajudam;

  • onde essas opções podem ser configuradas;

  • o que é CBL;

  • o que é PROCESS;

  • o que é SYSOPTF;

  • o que é OPTFILE;

  • o que é IGYCDOPT;

  • como funciona a precedência das opções;

  • e por que um bom programador COBOL precisa aprender a ler o listing como um médico lê um exame de sangue.

Pegue o café.

Temos um paciente.



🩻 Caso clínico: o REDEFINES suspeito

Imagine o seguinte código:

       WORKING-STORAGE SECTION.

       01  WS-AREA-ORIGINAL.
           05 WS-CAMPO-A        PIC X(10).
           05 WS-CAMPO-B        PIC X(10).

       01  WS-AREA-NOVA
           REDEFINES WS-AREA-ORIGINAL.
           05 WS-CAMPO-C        PIC X(30).

O iniciante olha rapidamente.

Área original:

10 + 10 = 20 bytes

Área redefinida:

30 bytes

Logo nasce a pergunta:

“Como uma área de 30 bytes pode redefinir uma área que aparentemente tem 20?”

Excelente pergunta.

E é exatamente aí que mora a armadilha.



🧠 Primeiro diagnóstico: REDEFINES não significa “nova variável”

Talvez o erro conceitual mais comum seja imaginar que isto:

01 A PIC X(10).
01 B REDEFINES A PIC X(10).

significa:

A = 10 bytes
B = 10 bytes
TOTAL = 20 bytes

Não.

Pense em uma gaveta.

Existe uma única gaveta física.

Você pode colocar uma etiqueta nela escrito:

A

ou outra etiqueta:

B

Mas continua sendo a mesma gaveta.

Conceitualmente:

             MEMÓRIA

      ┌──────────────────┐
A --> │ A B C D E F G H I J │
      └──────────────────┘
               ↑
B -------------┘

A e B são duas maneiras diferentes de interpretar os mesmos bytes.

Então grave isto:

REDEFINES cria uma nova visão lógica, não necessariamente uma nova área independente de storage.

Uma frase Bellacosa para decorar:

REDEFINES não constrói outro apartamento. Ele entrega outra planta do mesmo apartamento.



🏠 Um exemplo clássico e correto

Datas são perfeitas para entender isso.

       01  WS-DATA.
           05 WS-DATA-INTEIRA   PIC X(08).

       01  WS-DATA-DETALHE
           REDEFINES WS-DATA.
           05 WS-ANO            PIC 9(04).
           05 WS-MES            PIC 9(02).
           05 WS-DIA            PIC 9(02).

Se WS-DATA-INTEIRA contiver:

20260816

a mesma sequência pode ser visualizada assim:

WS-DATA-INTEIRA

┌─────────────────────────┐
│ 2 0 2 6 0 8 1 6         │
└─────────────────────────┘

ou:

WS-DATA-DETALHE

┌────────────┬──────┬──────┐
│ WS-ANO     │ MÊS  │ DIA  │
│ 2026       │ 08   │ 16   │
└────────────┴──────┴──────┘

Mesmos oito bytes.

Duas interpretações.

Perfeito.


🚨 Então o tamanho precisa ser sempre igual?

Aqui começa a parte interessante.

Para ensinar um iniciante, eu usaria uma regra extremamente conservadora:

TAMANHO DO REDEFINES
        =
TAMANHO DA ÁREA REDEFINIDA

Essa regra evita muitos erros.

Mas o COBOL real é mais complexo.

Dependendo do nível da estrutura, da versão do compilador, das regras da linguagem e do Enterprise COBOL utilizado, algumas redefinições com comprimentos diferentes podem ser aceitas.

Ou seja:

O compilador aceitar não significa que o design seja bom.

House provavelmente escreveria no quadro:

COMPILES ≠ CORRECT

E depois apagaria metade da palavra só para irritar a equipe.


🧪 O erro realmente perigoso

O problema não é simplesmente escrever:

05 B REDEFINES A PIC X(30).

O problema é escrever isso sem perceber as implicações.

Porque daí temos uma diferença enorme entre duas perguntas:

Pergunta errada

“O compilador aceitou?”

Pergunta certa

“O layout de memória resultante é exatamente aquele que eu acredito que seja?”

A segunda pergunta separa quem está apenas digitando COBOL de quem está começando a entender COBOL.


🔬 Não confie apenas nos olhos: use o MAP

Aqui aparece um dos recursos mais úteis e menos apreciados pelos iniciantes:

MAP

Ao compilar com MAP, o Enterprise COBOL produz informações sobre o layout da DATA DIVISION.

Em outras palavras:

o compilador mostra como ele entendeu seus campos.

Isso é quase um raio-X da memória.

Imagine:

       01 WS-REGISTRO.
          05 WS-NOME     PIC X(20).
          05 WS-IDADE    PIC 99.
          05 WS-SALARIO  PIC S9(7)V99 COMP-3.

Você pode acreditar que sabe exatamente como isso está organizado.

Mas o listing é a resposta do compilador.

E sempre que houver estruturas complexas com:

REDEFINES
OCCURS
COMP
COMP-3
SYNC
SIGN
GROUP ITEMS
COPYBOOKS

a leitura do mapa se torna extremamente valiosa.


🩻 MAP é o raio-X; SOURCE é a ficha clínica

Eu normalmente colocaria em desenvolvimento algo semelhante a:

MAP
SOURCE
XREF(FULL)

Cada opção responde uma pergunta diferente.

SOURCE

Você vê o fonte associado ao listing.

Isso facilita conectar mensagens, offsets e referências ao código que realmente foi compilado.

Parece trivial.

Até você descobrir que o programa que estava olhando não era exatamente o programa que entrou na compilação.

Copybooks entram.

Pré-compiladores entram.

Conditional compilation entra.

E de repente:

“Mas no meu fonte não está assim!”

Bem-vindo ao mainframe.

O compilador não lê suas intenções.

Ele lê aquilo que efetivamente recebeu.


🧬 XREF(FULL): quem mexeu no paciente?

XREF significa referência cruzada.

Imagine que você encontra:

WS-CUSTOMER-AREA

e quer saber:

  • onde foi declarada;

  • onde foi usada;

  • quem altera;

  • quem consulta;

  • quais parágrafos fazem referência a ela.

É aí que:

XREF(FULL)

se torna extremamente útil.

Ele não é especificamente um detector mágico de REDEFINES incorreto.

Mas responde uma pergunta fundamental na investigação:

“Quem está usando esta área?”

House chamaria isso de procurar quem teve contato com o paciente antes dos sintomas aparecerem.


🧯 Regra prática para o iniciante

Sempre que você encontrar:

REDEFINES

pare.

Faça quatro perguntas:

1. Qual é o tamanho da área original?

2. Qual é o tamanho da redefinição?

3. Essa diferença é intencional?

4. Eu conferi o MAP?

Essa pausa de trinta segundos pode economizar horas de debugging.


🧮 Não confie demais na contagem visual

Isto parece fácil:

05 CAMPO-A PIC X(10).
05 CAMPO-B PIC X(10).

Total:

20

Mas layouts reais podem envolver:

05 VALOR-A PIC S9(9) COMP.
05 VALOR-B PIC S9(7)V99 COMP-3.
05 TABELA OCCURS 15 TIMES.

Agora contar “na cabeça” começa a ficar menos divertido.

E podemos adicionar:

SYNC
USAGE
SIGN
OCCURS DEPENDING ON
nested groups
copybooks

Pronto.

Você não está mais contando caracteres.

Está fazendo arqueologia.


🗿 Easter egg número 1: Indiana Jones e o Copybook Perdido

Todo programador COBOL experiente já encontrou algo assim:

COPY ABCD001.

Você abre.

Dentro existe:

COPY ABCD002.

Abre o segundo.

Existe:

COPY ABCD003.

Quinze minutos depois você está procurando um copybook criado em 1989 por um programador chamado Geraldo que se aposentou antes do Windows 95.

Indiana Jones tinha menos trabalho.


🧪 Existe warning para REDEFINES?

A resposta precisa ser cuidadosamente entendida.

O Enterprise COBOL possui diversas opções de diagnóstico e comportamento, incluindo regras relacionadas a construções da linguagem.

Uma opção interessante é a família:

RULES

e, dentro dela, configurações relacionadas à permissividade de redefinições.

Por exemplo:

RULES(NOLAXREDEF)

pode tornar determinadas situações de REDEFINES mais rigorosas.

Mas atenção:

não pense em NOLAXREDEF como um “detector universal de REDEFINES maior”.

Isso seria simplificar demais.

Ele atua sobre regras específicas da linguagem e situações de redefinição que o compilador poderia tratar de maneira mais permissiva.

Então a estratégia profissional não deve ser:

“Coloquei NOLAXREDEF, estou protegido.”

Deve ser:

compiler diagnostics
+
MAP
+
coding standard
+
static analysis
+
code review

Defesa em profundidade.

Segurança da informação descobriu isso faz décadas.

COBOL também merece.


🏥 Diagnóstico diferencial

House raramente acreditava na primeira hipótese.

Você também não deveria.

Se um programa possui corrupção de campos, valores estranhos ou informações que aparecem “do nada”, REDEFINES é apenas uma das hipóteses.

Também investigue:

MOVE com tamanhos incompatíveis
subscripts incorretos
índices fora do limite
OCCURS
OCCURS DEPENDING ON
reference modification
COMP-3 inválido
campos numéricos contendo lixo
copybook incompatível
arquivo com LRECL errado
layout diferente entre produtor e consumidor
LINKAGE SECTION incorreta
CALL com assinatura incompatível
CICS COMMAREA
MQ payload
VSAM
Db2 host variables

O sintoma pode aparecer em um campo.

A doença pode estar cinquenta linhas antes.

Ou cinquenta programas antes.


🧰 Minha configuração de investigação

Para ambiente de desenvolvimento, algo nessa filosofia é ótimo:

SOURCE
MAP
XREF(FULL)

e opções adicionais de diagnóstico conforme a política da instalação.

Não estou dizendo:

“Use exatamente esse conjunto em qualquer empresa.”

Cada shop possui padrões, versões, custos de listing, ferramentas, pipelines e políticas.

Mas o princípio é sólido:

Durante desenvolvimento, peça ao compilador para mostrar o máximo possível sobre o que ele entendeu.


🔧 “Mas onde coloco esses parâmetros?”

Agora chegamos a outra pergunta fundamental.

Muitos iniciantes acreditam que as opções de compilação existem apenas no JCL:

//COBOL EXEC PGM=IGYCRCTL,
// PARM='MAP,XREF,SOURCE'

Não.

O JCL é apenas uma das portas.

E entender isso muda completamente sua visão sobre compilação COBOL.


🚪 Porta 1 — PARM no JCL

A forma mais conhecida:

//COB EXEC PGM=IGYCRCTL,
// PARM='MAP,XREF(FULL),SOURCE'

Ou por meio de uma PROC corporativa.

É simples.

É visível.

E funciona bem.

Mas existe uma fraqueza:

depende do ambiente de compilação utilizado.

Se alguém usar outra PROC, outro pipeline ou outro processo, aquelas opções podem mudar.


🚪 Porta 2 — CBL

Você pode colocar opções diretamente no fonte.

Exemplo:

       CBL MAP,XREF(FULL),SOURCE
       IDENTIFICATION DIVISION.
       PROGRAM-ID. PACIENTE.

Isso significa:

“Este programa solicita essas opções.”

É muito poderoso porque a configuração viaja junto com o fonte.


🚪 Porta 3 — PROCESS

Outra sintaxe:

       PROCESS MAP,XREF(FULL),SOURCE
       IDENTIFICATION DIVISION.

Conceitualmente, PROCESS e CBL servem para informar opções ao compilador a partir do próprio programa.

Existe uma regra importante:

essas diretivas aparecem no início apropriado do fonte.

Elas não são statements executáveis.

Você não coloca:

PROCEDURE DIVISION.
    PROCESS MAP.

Isso seria como tentar mudar a configuração do aparelho de raio-X depois que o paciente já voltou para casa.


🧳 Quando usar CBL ou PROCESS?

Imagine uma aplicação que, por característica própria, precisa sempre ser compilada com determinada configuração.

Nesse caso faz sentido considerar:

CBL / PROCESS

Mas existe uma discussão arquitetural importante.

Você quer que:

cada programa decida suas próprias opções

ou:

a empresa defina um padrão central?

Essa decisão importa.

Porque programas vivem décadas.

Padrões corporativos mudam.

Compiladores mudam.

Ambientes mudam.


🚪 Porta 4 — SYSOPTF e OPTFILE

Agora entramos numa solução muito interessante para shops organizadas.

Em vez de escrever quarenta opções no JCL, você pode manter um arquivo de opções.

Algo conceitualmente assim:

EMPRESA.COBOL.OPTIONS(DEV)

contendo:

MAP
SOURCE
XREF(FULL)

E associá-lo como:

//SYSOPTF DD DSN=EMPRESA.COBOL.OPTIONS(DEV),DISP=SHR

O compilador pode então consumir essas opções através do mecanismo apropriado de option file.

Isso permite criar perfis.

Por exemplo:

EMPRESA.COBOL.OPTIONS(DEV)

EMPRESA.COBOL.OPTIONS(TEST)

EMPRESA.COBOL.OPTIONS(PROD)

EMPRESA.COBOL.OPTIONS(DEBUG)

EMPRESA.COBOL.OPTIONS(MIGRATION)

Isso é muito mais elegante do que copiar e colar parâmetros em dezenas de PROCs.


🧠 Easter egg número 2: House odeia copy & paste

Se House fosse tech lead COBOL, provavelmente diria:

— Você copiou quarenta opções de compilação de um JCL de 2017 sem saber o que fazem?

— Sim.

— Então não temos um bug. Temos uma religião.


🚪 Porta 5 — IGYCDOPT

Agora chegamos ao porão do hospital.

Lugar onde iniciantes raramente entram.

O Enterprise COBOL possui defaults de instalação.

Um dos nomes importantes nesse universo é:

IGYCDOPT

É nele que a organização pode estabelecer defaults para o compilador.

Pense assim:

programador
   |
   v
programa COBOL
   |
   v
PROC/JCL
   |
   v
Enterprise COBOL
   |
   v
defaults da instalação

O IGYCDOPT permite que a instalação diga:

“Se ninguém especificar nada diferente, use isto.”

E certas opções podem ainda ser controladas de modo que não sejam livremente sobrescritas.

É aí que recomendação vira governança.


🏛️ Política versus preferência

Existe uma diferença gigante entre:

“Recomendamos usar esta opção.”

e:

“A instalação está configurada desta maneira.”

Na primeira:

João usa.

Maria esquece.

Pedro usa outra PROC.

Carlos compila no pipeline antigo.

Na segunda:

a infraestrutura ajuda a garantir consistência.

Esse princípio aparece em tudo:

RACF
DevSecOps
Git
pipeline
quality gates
compiler defaults

Se algo é realmente importante, tente automatizar.


🧭 Mas quem ganha quando existem várias opções?

Excelente pergunta.

Imagine:

instalação:

NOMAP

JCL:

MAP

fonte:

CBL NOMAP

Qual vale?

Isso nos leva à:

⚔️ PRECEDÊNCIA DAS OPÇÕES

Você precisa entender que opções podem ser fornecidas por diferentes origens.

Conceitualmente:

INSTALLATION DEFAULTS
        ↓
INVOCATION / JCL
        ↓
PROCESS / CBL

mas existem particularidades, exceções e opções que podem ser fixadas pela instalação.

Então nunca faça debugging baseado apenas em:

“Eu tenho certeza de que a PROC usa MAP.”

Abra o listing.

Veja:

OPTIONS IN EFFECT

O compilador costuma informar quais opções efetivamente estavam ativas.

Essa seção vale ouro.


🔍 Regra Bellacosa número 1

Não pergunte qual opção estava no JCL. Pergunte qual opção estava em efeito.

Existe uma diferença brutal.

O JCL representa intenção.

O listing representa execução.


🧾 Leia o listing!

Aqui está talvez a maior dica deste artigo.

Programador iniciante pensa que o listing serve para:

achar erro de compilação

Programador intermediário usa para:

achar warning

Programador experiente usa o listing como:

documentação do programa compilado

Ele procura:

compiler version
compiler options
messages
data map
cross reference
code generation
statistics
source expansion

Você começa olhando um erro.

Termina entendendo como o compilador enxerga seu programa.


🩸 MAXCC=0 é apenas pressão arterial normal

Este merece moldura.

Você recebeu:

MAXCC=0

Parabéns.

Isso significa apenas que aquele job terminou com aquela condição.

Não significa:

lógica correta
layout correto
regra de negócio correta
performance boa
thread safety
dados corretos
segurança correta
arquivo correto
transação correta

House olha o monitor cardíaco.

Paciente vivo.

Ele não diz:

— Curado.

Ele pergunta:

— Por que ele desmaiou?

Faça o mesmo.


🔬 Passo a passo para investigar um REDEFINES

Encontrou:

REDEFINES

Faça isto.

Passo 1 — identifique a área original

Exemplo:

01 WS-ORIGINAL.
   05 A PIC X(10).
   05 B PIC X(10).

Calcule:

20 bytes

Passo 2 — identifique todas as redefinições

Pode existir mais de uma:

01 WS-TEXTO REDEFINES WS-ORIGINAL.
...

01 WS-NUMERICO REDEFINES WS-ORIGINAL.
...

01 WS-FLAGS REDEFINES WS-ORIGINAL.
...

Não pare na primeira.


Passo 3 — calcule os comprimentos

Faça isso cuidadosamente.

Principalmente se houver:

COMP
COMP-3
OCCURS
nested groups

Passo 4 — procure a intenção

Pergunte:

“Por que alguém criou este REDEFINES?”

Talvez seja:

header/body
mensagem de vários tipos
record type
layout de arquivo
estrutura histórica
flags
data
packed decimal
interface externa

Nem todo código estranho está errado.

Às vezes existe uma razão escrita em 1994.

Às vezes não.


🗿 Easter egg número 3: comentário de 1994

Você encontra:

*> NÃO ALTERAR ESTA ÁREA

Sem explicação.

Sem nome.

Sem ticket.

Sem documentação.

Naturalmente você pensa:

— Por quê?

A resposta está enterrada em uma fita magnética enviada para Iron Mountain durante o governo Itamar Franco.

Não altere.


🧪 Passo 5 — compile com MAP

Veja offsets.

Veja comprimentos.

Veja como o compilador efetivamente montou a área.

Nunca deixe a teoria vencer o mapa real.


🔍 Passo 6 — consulte o XREF

Descubra quem usa:

área original
área redefinida
campos individuais

Isso ajuda muito a entender o impacto.


🧬 Passo 7 — procure interfaces

Essa área vai para algum lugar?

WRITE
CALL
EXEC CICS LINK
EXEC CICS XCTL
EXEC CICS SEND
EXEC CICS RECEIVE
MQPUT
MQGET

Ou talvez:

arquivo VSAM
arquivo sequencial
Db2
IMS
socket
API
z/OS Connect

A área interna pode ter trinta bytes.

A interface externa pode esperar vinte.

Agora temos um problema de verdade.


💣 O pior cenário: contratos de dados

Imagine:

Programa A produz:

20 bytes

Programa B acredita que recebe:

30 bytes

Programa C possui um copybook antigo com:

24 bytes

Todos compilam.

Todos possuem:

MAXCC=0

House sorri.

— Finalmente um caso interessante.

Isso é exatamente o tipo de problema que aparece em ambientes legados.

O bug não está em um programa.

Está no contrato invisível entre programas.


🧠 Por isso copybook é tão importante

Copybooks não são apenas uma conveniência para evitar repetição.

Eles funcionam como contratos compartilhados de dados.

Quando bem utilizados:

Programa A ─┐
Programa B ─┼── COPY CUSTOMER
Programa C ─┘

todos enxergam a mesma definição.

Mas existe outro perigo:

versões diferentes do mesmo copybook

Programa A compilado ontem.

Programa B compilado seis anos atrás.

O dataset do copybook foi atualizado.

O módulo load de B continua com o layout antigo.

Agora você possui duas verdades.

Uma no fonte.

Outra no executável.

Bem-vindo novamente ao mainframe.


🔦 Static analysis: não espere um humano perceber

Aqui está uma excelente regra automática:

FOR EACH REDEFINES

compare
LENGTH(original)
with
LENGTH(redefinition)

Se:

=

normal.

Se:

<>

alerta.

Se:

redefinition > original

alerta forte.

Não porque todo caso seja necessariamente inválido.

Mas porque todo caso merece explicação.

Esse é o princípio de uma boa ferramenta estática:

destacar o que é incomum o bastante para merecer revisão humana.


🤖 Code review aumentado por IA

Aqui está uma aplicação interessante para IA em mainframe.

Imagine um pipeline lendo COBOL e produzindo:

WARNING COBOL-RD-001

WS-TRANSACTION-V2
redefines
WS-TRANSACTION

Original logical length: 128
Redefinition length: 136

Difference: +8 bytes

Review recommended.

Depois correlaciona com:

CALL USING
CICS COMMAREA
COPYBOOK
MQ
arquivo

Agora estamos usando IA não para substituir o programador.

Estamos usando IA para apontar:

“Ei, House. Esse exame aqui está estranho.”


🧯 Regra Bellacosa número 2

Nunca trate warning como decoração.

Compile listings antigos e você encontrará:

W
W
W
W
W
W
W

O programa está em produção há quinze anos.

Todo mundo diz:

— Sempre funcionou.

Essa é possivelmente uma das frases mais perigosas da informática.


🐸 “Sempre funcionou”

Uma aplicação COBOL antiga pode ter sobrevivido:

mudanças de hardware
mudanças de compilador
mudanças de sistema operacional
mudanças de middleware
novas versões de Db2
novas versões de CICS
mudanças de encoding
migrações
novos copybooks

Até que alguém recompila.

Então aparece:

“Funcionava antes.”

Talvez.

Talvez apenas estivesse dependendo de um comportamento antigo.


🧬 Compiler migration é medicina geriátrica

Migrar COBOL 4 para COBOL 6, por exemplo, não é simplesmente:

recompile

Você está trazendo código escrito sob determinadas hipóteses para outro ambiente.

Coisas que passaram despercebidas por décadas podem emergir.

Por isso opções de diagnóstico, listings, testes e análise estática são tão importantes.


🔐 Onde eu colocaria as opções?

Aqui entra arquitetura de engenharia.

Para um programa específico

Considere:

CBL
PROCESS

quando fizer sentido que aquela configuração acompanhe o fonte.


Para um projeto

Pode fazer sentido:

SYSOPTF
option file

Para toda a empresa

Pode fazer sentido usar:

defaults de instalação
IGYCDOPT

Para uma execução específica

Use:

PARM no JCL

Isso cria quatro níveis mentais:

PROGRAMA
PROJETO
PIPELINE
EMPRESA

Uma arquitetura muito melhor do que:

“coloca esse PARM aí e vê se funciona.”

🏗️ Um padrão de shop possível

Imagine:

           CORPORATIVO
              |
          IGYCDOPT
              |
     -------------------
     |                 |
  projeto A         projeto B
     |                 |
 SYSOPTF           SYSOPTF
     |                 |
   PROC              PROC
     |                 |
 programa           programa
 CBL/PROCESS        CBL/PROCESS

Agora você consegue controlar:

defaults
exceções
projetos
programas especiais

Isso é engenharia.


🚨 Não transforme opção de compilador em superstição

Outro erro comum:

“Fulano disse para usar SSRANGE.”

Então alguém coloca:

SSRANGE

sem saber o que ela faz.

Depois alguém copia.

Depois vira padrão.

Dez anos depois ninguém sabe por quê.

Toda opção de compilador deveria possuir pelo menos:

nome
objetivo
impacto
ambiente
quando usar
quando não usar

📚 Crie um catálogo corporativo

Algo simples:

OPTION: MAP

Uso:
Development / Migration

Objetivo:
Mostrar layout da Data Division.

Obrigatória:
DEV = SIM
PROD = opcional

Responsável:
Mainframe Engineering

Faça isso para:

MAP
XREF
SOURCE
SSRANGE
NUMCHECK
OPTIMIZE
ARCH
TEST
LIST
OFFSET

Seu eu do futuro agradecerá.


🧠 Easter egg número 4: Differential Diagnosis

Quando House recebe um paciente, a equipe lista hipóteses no quadro.

Faça exatamente isso no debugging.

Sintoma:

WS-VALOR contém lixo

Quadro:

REDEFINES?
MOVE?
SUBSCRIPT?
COMP-3?
COPYBOOK?
CALL?
FILE LAYOUT?
CICS?
STORAGE OVERWRITE?

Depois elimine hipóteses com evidência.

Isso é debugging profissional.

Não:

“Vou mudar isso aqui e rodar.”

🧪 O compilador é testemunha, não advogado

Ele lhe diz:

o que conseguiu compilar

Ele não garante:

o que você quis escrever

Essa distinção é central.

Um compilador pode aceitar código perfeitamente legal que implemente uma ideia completamente errada.

Exemplo:

MOVE WS-SALDO TO WS-CPF.

Talvez os campos sejam compatíveis.

O compilador não conhece sua regra de negócio.

Ele não sabe que você acabou de colocar saldo bancário dentro do CPF.

Ele apenas executa ordens.


🎯 Checklist Bellacosa para REDEFINES

Antes de aprovar qualquer REDEFINES, responda:

  • Sei exatamente qual área está sendo redefinida.

  • Conheço o tamanho da área original.

  • Conheço o tamanho de cada redefinição.

  • Entendo por que a redefinição existe.

  • Conferi COMP, COMP-3 e outros USAGE.

  • Verifiquei OCCURS.

  • Consultei o MAP.

  • Consultei referências com XREF.

  • Verifiquei copybooks relacionados.

  • Verifiquei interfaces externas.

  • Sei qual versão do compilador foi utilizada.

  • Conferi as opções efetivamente em uso.

  • Não estou confiando apenas em MAXCC=0.

Se você respondeu “não” a cinco itens:

House acabou de pedir uma ressonância.


🩺 Uma pequena autópsia de exemplo

Considere:

       01 CUSTOMER-RECORD.
          05 CUSTOMER-ID       PIC X(10).
          05 CUSTOMER-NAME     PIC X(30).

       01 CUSTOMER-ALT
          REDEFINES CUSTOMER-RECORD.
          05 CUSTOMER-DATA     PIC X(48).

O programador vê:

CUSTOMER-RECORD = 40

CUSTOMER-ALT = 48

Primeira pergunta:

Por quê?

Talvez exista uma razão.

Talvez CUSTOMER-ALT represente uma versão futura.

Talvez alguém aumentou um campo.

Talvez um copybook tenha sido alterado pela metade.

Talvez seja simplesmente erro.

O ponto é:

a diferença precisa ser explicada.


🧬 Agora imagine produção

Esse registro é enviado:

CALL 'CUSTSRV'
    USING CUSTOMER-RECORD

O programa chamado possui:

LINKAGE SECTION.

01 LK-CUSTOMER PIC X(40).

Mas o chamador manipula uma visão de 48.

Você acabou de transformar uma curiosidade de DATA DIVISION em uma investigação de interface.

Por isso mainframe não é apenas sintaxe COBOL.

É ecossistema.


🚂 O programa nunca viaja sozinho

Todo COBOL real está conectado a alguma coisa:

JCL
PROCs
Db2
CICS
IMS
VSAM
MQ
sort
files
copybooks
subprograms
APIs
RACF
z/OS

Então todo problema de layout deve ser investigado no contexto do sistema.

Esse é um dos saltos mentais mais importantes para quem começa.

Você deixa de perguntar:

“Este programa está certo?”

e começa a perguntar:

“Este programa está correto dentro dos contratos do sistema?”

Isso é maturidade.


🎬 Easter egg final: “Everybody lies”

House possui uma frase famosa:

Everybody lies.

No mainframe eu adaptaria:

Everybody assumes.

O programador assume que o campo possui 20 bytes.

O analista assume que o copybook é o mesmo.

O operador assume que MAXCC=0 significa sucesso funcional.

O arquiteto assume que a PROC é padrão.

O desenvolvedor assume que MAP estava ativo.

O time assume que aquele load module foi recompilado.

E o mainframe?

O mainframe não assume nada.

Ele executa exatamente aquilo que foi definido.


☕ Conclusão — Aprenda a investigar, não apenas a compilar

REDEFINES parece um pequeno detalhe da DATA DIVISION.

Mas ele ensina uma lição gigantesca sobre COBOL.

Ensina que existe diferença entre:

fonte

e:

layout efetivo

Entre:

intenção

e:

compilação

Entre:

programa compilado

e:

programa correto

Por isso, quando você encontrar um REDEFINES, não trate como uma palavra reservada qualquer.

Olhe o tamanho.

Olhe o mapa.

Olhe o listing.

Olhe o XREF.

Descubra quais opções de compilação estavam realmente ativas.

Saiba se vieram:

do JCL
do CBL
do PROCESS
do SYSOPTF
do option file
dos defaults da instalação

Entenda a precedência.

Conheça seu compilador.

E, principalmente, abandone uma das frases mais perigosas da profissão:

“O compilador aceitou.”

O compilador aceitar é apenas o começo da investigação.

A pergunta final continua sendo:

“O programa está fazendo exatamente aquilo que nós pensamos que ele está fazendo?”

House fecharia o prontuário.

O batch terminaria.

O café estaria frio.

E no SDSF apareceria:

MAXCC=0

Você sorriria.

Mas agora saberia que esse zero não é diagnóstico.

É apenas um sinal vital.

E programador COBOL bom não trata sinal vital.

Trata o sistema inteiro.

☕🦖

Bellacosa Mainframe — onde até um PIC X(20) pode esconder uma investigação médica, três copybooks esquecidos, duas PROCs corporativas e um comentário escrito antes de Java existir.

https://eljefemidnightlunch.blogspot.com/2022/07/alerta-vermelho-na-enterprise.html

https://eljefemidnightlunch.blogspot.com/2022/05/da-compilacao-execucao-de-um-programa.html

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