Translate

quinta-feira, 6 de novembro de 2025

☕🚀 REXX: O “CANIVETE SUÍÇO” DO z/OS — Quando um Script Começa a Conversar com TODO o Mainframe 🚀☕

 

Bellacosa Mainframe apresenta Executing Host Commands em REXX

☕🚀 REXX: O “CANIVETE SUÍÇO” DO z/OS — Quando um Script Começa a Conversar com TODO o Mainframe 🚀☕

“O verdadeiro poder do REXX não está na sintaxe.
Está na capacidade de conversar com absolutamente tudo.”
— Estilo Bellacosa Mainframe


🧠 O Dia em Que Você Descobre Que o REXX NÃO É Só “Scripting”

Todo mundo começa igual.

O programador iniciante aprende:

SAY 'HELLO WORLD'

Depois:

DO I = 1 TO 10
SAY I
END

Aí pensa:

“Ok… é uma linguagem simples.”

Mas então chega o momento da revelação.

O momento em que você escreve:

ADDRESS SDSF

…e percebe que aquele “scriptzinho inocente” acabou de ganhar acesso ao coração operacional do z/OS.

Nesse instante você entende:

😳 O REXX NÃO RODA NO MAINFRAME.

😳 O REXX CONVERSA COM O MAINFRAME.

E isso muda tudo.


🏛️ O Conceito Que Faz o REXX Virar Um Monstro de Automação

A IBM criou algo brilhante:

Host Command Environment

Traduzindo para Bellacosaês:

“Pra qual universo você quer mandar comandos agora?”

O REXX não executa tudo sozinho.

Ele atua como um maestro.

Cada ambiente executa um tipo de magia.

Host commands


AmbienteSuperpoder
TSOcomandos operacionais
ISPEXECcontrolar ISPF
ISREDITcriar macros editoriais
SDSFdominar spool/jobs
CONSOLEvirar operador MVS
DSNREXXconversar com DB2
SYSCALLcontrolar UNIX
SOCKETfalar TCP/IP

☕ ADDRESS — A Palavra Mais Poderosa do REXX

A instrução:

ADDRESS

parece inocente.

Mas ela literalmente troca o “mundo” onde o REXX está falando.


🎯 Exemplo Simples

ADDRESS TSO
"LISTALC STATUS"

Aqui o REXX diz:

“TSO, execute isso pra mim.”


😎 O Grande Truque

Você pode mudar de ambiente a qualquer momento.

Tipo assim:

ADDRESS TSO
"ALLOC FI(INPUT) DA('CLIENTE.ARQ') SHR"

ADDRESS ISPEXEC
"DISPLAY PANEL(MENU001)"

ADDRESS SDSF
"ISFEXEC ST"

Percebe a insanidade disso?

😳 Um único programa:

  • aloca dataset
  • controla ISPF
  • acessa SDSF
  • automatiza operações

Tudo junto.


🔥 O Dia em Que o Programador Descobre o ISREDIT

Existe um momento na carreira do mainframeiro em que ele percebe:

O editor ISPF é programável.

A mente explode.


🧙 Macros ISPF: O “VIM MODE GOD” DO Mainframe

Exemplo:

/* REXX */
ADDRESS ISREDIT
"MACRO"

"CHANGE 'TESTE' 'PROD' ALL"

Você acabou de criar um comando novo dentro do editor ISPF.

Agora imagine:

  • refatoração automática
  • padronização COBOL
  • alteração massiva JCL
  • análise estática
  • geração automática de código

Tudo feito em REXX.

Décadas antes de IDEs modernas.


🧨 Easter Egg Mainframe #1

Muita gente usa ISPF há 20 anos…

…sem perceber que o editor dele é basicamente um mini sistema operacional programável.


🚨 CONSOLE — O Modo “Deus do Sysprog”

Agora vem a parte perigosa.

ADDRESS CONSOLE
"D A,L"

Isso NÃO é brincadeira.

Você está emitindo comandos reais de operador MVS.


😅 Sim… Dá Medo.

Porque daqui a pouco você faz:

"F JES2,DEBUG"

ou pior:

"P TCPIP"

e o datacenter inteiro olha pra você.


🧨 Easter Egg Mainframe #2

Todo sysprog experiente conhece alguém que:

  • derrubou subsystem
  • pausou JES2
  • congelou spool
  • matou CICS

…“só testando um REXX rapidinho”.


🧠 SDSF + REXX = Automação Jedi

A maioria das pessoas usa SDSF manualmente.

O especialista usa:

rc=isfcalls('ON')

ADDRESS SDSF "ISFEXEC ST"

E então começa a automatizar o impossível.


🎯 Exemplo: Listar Jobs Ativos

rc=isfcalls('ON')

ADDRESS SDSF "ISFEXEC ST"

DO I = 1 TO JNAME.0
SAY JNAME.I STATUS.I
END

rc=isfcalls('OFF')

😳 O Que Isso Significa?

Você pode criar:

  • monitor batch
  • restart automático
  • watchdog operacional
  • análise de spool
  • alertas inteligentes
  • observabilidade do z/OS

ANTES da palavra “observabilidade” virar moda.


☕ O Mainframe Já Fazia DevOps Antes do DevOps

Enquanto o mundo moderno:

  • descobria scripts
  • aprendia automação
  • inventava pipelines

o z/OS já fazia isso com:

REXX + SDSF + JCL + ISPF

nos anos 80 e 90.


🗄️ DSNREXX — Quando o REXX Aprende SQL

A IBM foi além.

Ela pensou:

“E se o REXX falasse DB2 também?”

Nasceu o DSNREXX.


🎯 Exemplo Conceitual

ADDRESS DSNREXX

"EXECSQL
SELECT NAME
INTO :WS-NOME
FROM CLIENTES
WHERE ID = 100"

😳 Resultado?

O REXX virou:

  • DBA assistant
  • monitor DB2
  • gerador relatório
  • ferramenta troubleshooting

🧨 Easter Egg Mainframe #3

Muito DBA antigo automatizou ambientes inteiros sem escrever uma linha de COBOL.

Só REXX + DSNREXX.


🌐 SOCKETS — O Momento Cyberpunk do z/OS

Agora segura essa.

O REXX consegue abrir socket TCP/IP.

Sim.

Socket.

TCP/IP real.


🎯 Exemplo

CALL SOCKET 'Initialize'

parse value SOCKET('Socket') with rc sock .

CALL SOCKET 'Connect',sock,'AF_INET 80','192.168.0.1'

😳 Você Entendeu o Que Isso Significa?

O mesmo REXX que:

  • mexe em spool
  • controla JCL
  • automatiza ISPF

também consegue:

  • falar rede
  • integrar sistemas
  • abrir conexão TCP

🧠 O z/OS Sempre Foi Mais Moderno do Que Diziam

Essa é a verdade que ninguém conta.

Muita tecnologia “moderna” já existia no mainframe:

  • automação
  • scripting
  • integração
  • APIs
  • virtualização
  • segurança centralizada
  • observabilidade
  • alta disponibilidade

Décadas antes do hype.


🐧 UNIX Dentro do Mainframe? Sim.

Com:

CALL SYSCALLS 'ON'

o REXX ganha acesso ao z/OS UNIX.


🎯 Exemplo

CALL SYSCALLS 'ON'

ADDRESS SYSCALL
"readdir / tmp."

DO I = 1 TO TMP.0
SAY TMP.I
END

😎 Resultado?

Agora o mesmo REXX:

  • acessa datasets
  • conversa com JES
  • executa SQL

também navega no filesystem UNIX.


🧨 Easter Egg Mainframe #4

Muitos ambientes bancários modernos:

  • APIs
  • microserviços
  • integrações REST
  • automações batch

têm algum REXX escondido funcionando nos bastidores.

Às vezes há 25 anos sem cair.


⚔️ LINK e ATTACH — Chamando Programas Como um Ninja

O REXX também consegue executar load modules diretamente.


🎯 Exemplo

ADDRESS LINKMVS "SORT parm"

😳 Isso é Profundo.

Porque o REXX deixa de ser:

  • linguagem de script

e vira:

  • controlador de execução MVS.

☕ O Verdadeiro Segredo do Mainframe

O segredo nunca foi o COBOL.

Nem o JCL.

Nem o CICS.

O segredo sempre foi:

Integração.

E o REXX virou a “cola universal” do ecossistema z/OS.


🧠 O REXX Como Sistema Nervoso do Mainframe

Observe esse fluxo:

REXX

SDSF consulta JOB

captura spool

analisa ABEND

consulta DB2

abre ticket

reinicia JOB

notifica operador

Tudo em um único exec.


🚀 Comparação Moderna

HojeMainframe já fazia
Python automationREXX
DevOps scriptingSDSF REXX
VSCode macrosISREDIT
Cloud orchestrationJES automation
REST integrationSOCKET/SYSCALL
Database scriptingDSNREXX

🧨 Easter Egg Final

Muitos dos ambientes mais críticos do planeta:

  • bancos
  • seguradoras
  • bolsas
  • governos

ainda sobrevivem graças a pequenos REXX feitos por algum mago do mainframe em 1998…

…que ninguém tem coragem de apagar.

Ambientes suportados



☕ Conclusão Bellacosa Mainframe

O REXX parece simples porque foi criado para humanos.

Mas por trás da simplicidade existe algo colossal:

Ele é a interface universal do z/OS.

Quando você domina:

  • ADDRESS
  • ISPEXEC
  • ISREDIT
  • SDSF
  • CONSOLE
  • DSNREXX
  • SYSCALL

você para de “usar” o mainframe…

REXX e suas bibliotecas


…e começa a ORQUESTRAR o mainframe.


🚀 Frase Final

“O COBOL processa negócios.
O JCL organiza execução.
O CICS controla transações.

Mas o REXX…

o REXX conversa com o universo inteiro do z/OS.” ☕

 

quarta-feira, 5 de novembro de 2025

👀 Olhos de cores raras (amestista, dourado, prateado, etc.), junto com o significado narrativo

 👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀

Bellacosa Mainframe identidade visual a cor dos olhos nos animes


🔮 Olhos cor de Amestista / Roxo

  • Yuki Nagato (Suzumiya Haruhi no Yūutsu) → misteriosa, fria, mas com aura sobrenatural (ser extraterrestre/IA).

  • Hitagi Senjougahara (Monogatari Series) → olhos lilases que reforçam a aura enigmática, elegante e cortante da personagem.

  • Emilia (Re:Zero) → meio-elfa, ligada à magia e espiritualidade, reforçando pureza + mistério.

  • Hanyuu (Higurashi no Naku Koro ni Kai) → divindade ligada a lendas, cor que remete a sagrado.


🟡 Olhos Dourados / Amarelos

  • Gilgamesh (Fate/stay night) → rei arrogante, divino, ouro em tudo: cabelos e olhos reforçam sua realeza.

  • Armin Arlert (Shingeki no Kyojin) → dourado suave = inteligência, clareza e “luz” entre os amigos.

  • C.C. (Code Geass) → olhos dourados simbolizam seu contrato sobrenatural e imortalidade.

  • Kurapika (Hunter x Hunter) → olhos ficam escarlate, mas quando brilham dourados é a marca da linhagem Kurta (única, valiosa).


⚪ Olhos Prateados / Brancos

  • Kaname Tōsen (Bleach) → olhos cegos, mas prateados como símbolo de justiça “além da visão”.

  • Inuyasha (Inuyasha) → olhos âmbar prateados, reforçando que ele é meio-yokai, meio-humano.

  • Kaworu Nagisa (Neon Genesis Evangelion) → prateados para marcar sua origem angelical, não humana.

  • Sephiroth (Final Fantasy VII: Advent Children) → prateados/mako glow, símbolo de poder antinatural.


🔴 Olhos Vermelhos / Escarlates

  • Kurapika (Hunter x Hunter) → cor escarlate é a marca da vingança e do clã Kurta.

  • Shana (Shakugan no Shana) → olhos rubros ativam quando usa seus poderes flamejantes.

  • Itachi Uchiha (Naruto) → sharingan vermelho, símbolo de poder e maldição familiar.

  • Zero Two (Darling in the Franxx) → olhos rosados/vermelhos reforçam sua natureza híbrida.


🟢 Olhos Verdes

  • C.C. (Code Geass) → olhos esverdeados brilhantes, misticismo + imortalidade.

  • Sailor Neptune (Michiru) (Sailor Moon) → olhos marinhos, harmonia e ligação com o oceano.

  • Izuku Midoriya (My Hero Academia) → olhos verdes reforçam esperança e crescimento.


📌 Resumo visual rápido das simbologias:

  • 🔮 Amestista / Roxo = magia, nobreza, mistério.

  • 🟡 Dourado = realeza, divino, poder raro.

  • Prateado = espiritualidade, outro mundo, mistério sobrenatural.

  • 🔴 Vermelho = paixão, fúria, sangue, força.

  • 🟢 Verde = vida, natureza, esperança.

💣🧠 “TRACE ?R”: O SUPERPODER SECRETO DO REXX QUE TRANSFORMA DEBUG EM INVESTIGAÇÃO FORENSE 🧠💣

 


Bellacosa Mainframe apresenta o Trace no REXX


💣🧠 “TRACE ?R”: O SUPERPODER SECRETO DO REXX QUE TRANSFORMA DEBUG EM INVESTIGAÇÃO FORENSE 🧠💣

Quando um EXEC entra em colapso no z/OS… o verdadeiro programador não entra em pânico. Ele ativa o TRACE.


Existe um momento na vida de todo profissional Mainframe em que o EXEC começa a agir como entidade paranormal.

Você roda o REXX.

Ele:

  • não dá ABEND,
  • não retorna RC,
  • não mostra erro,
  • não funciona,
  • e ainda imprime uma mensagem que parece saída de um ritual obscuro do ISPF.

Você olha para a tela.

A tela olha para você.

E naquele instante nasce a pergunta clássica:

“QUE DIABOS ESSE EXEC ESTÁ FAZENDO?”

É aí que entra uma das ferramentas mais poderosas já criadas no universo IBM:

⚡ TRACE ⚡

Mas este artigo não é apenas sobre TRACE.

É sobre:

  • debugging profissional,
  • tratamento de erros,
  • SIGNAL,
  • RC,
  • traps,
  • investigação de falhas,
  • sobrevivência operacional,
  • e a fina arte de impedir que um EXEC destrua sua sanidade mental às 03:17 da manhã em pleno fechamento bancário.

🏛️ O DIA EM QUE O REXX DECIDIU NÃO FALHAR

Uma das características mais bizarras — e ao mesmo tempo geniais — do REXX é:

Ele tenta NÃO te atrapalhar.

Isso parece bonito…

ATÉ VIRAR UM PESADELO.

Exemplo clássico:

/* REXX */

salario = 5000
bonus = 1200

total = salrio + bonus

say total

Você esperaria:

6200

Mas recebe:

SALRIO1200

Sim.

Porque:

  • salrio não existe,
  • o REXX assume o nome da variável,
  • concatena tudo,
  • e segue a vida como se nada tivesse acontecido.

O programa não explode.

O programa apenas:

  • distorce a realidade,
  • corrompe lógica,
  • e abre um portal dimensional dentro do TSO.

🚨 SIGNAL ON NOVALUE — O “AIRBAG” DO REXX

Todo EXEC profissional deveria começar com:

Signal On Novalue

Sem isso:

  • bugs silenciosos vivem entre nós.

Com isso:

  • variáveis inexistentes são capturadas imediatamente.

🧪 Exemplo Profissional

/* REXX */
Signal On Novalue

nome = "BELLACOSA"

say sobrenome

exit 0

Novalue:
say "ERRO: Variavel nao inicializada!"
say "Linha:" sigl
say sourceline(sigl)
exit 20

Resultado:

ERRO: Variavel nao inicializada!
Linha: 5
say sobrenome

ABSOLUTAMENTE LINDO.

Você:

  • identifica o erro,
  • localiza a linha,
  • entende o problema,
  • salva horas de investigação.

🕵️ TRACE — O CSI DO MAINFRAME

Agora chegamos ao coração da magia.

Trace R

Essa instrução transforma o EXEC em um documentário criminal.

Você começa a enxergar:

  • execução linha por linha,
  • resultados intermediários,
  • expressões,
  • variáveis,
  • comandos host,
  • fluxo lógico.

🔥 Exemplo

/* REXX */
Trace R

a = 10
b = 20
c = a + b

say c

Saída típica:

>>>   "a = 10"
>>> "b = 20"
>>> "c = a + b"
>>> "30"
30

Você literalmente vê o cérebro do EXEC funcionando.


👁️ TRACE ?R — O MODO MATRIX DO REXX

Agora prepare-se.

Porque existe algo ainda mais poderoso:

Trace ?R

O ? ativa:

DEBUG INTERATIVO

Sim.

INTERATIVO.

Em pleno ambiente Mainframe.

Tecnologia ancestral da IBM.


🤯 O QUE ISSO FAZ?

O EXEC:

  • pausa em cada instrução,
  • espera comandos,
  • permite inspeção dinâmica.

Você pode:

  • reexecutar linha,
  • alterar variável,
  • testar expressão,
  • inspecionar ambiente,
  • modificar comportamento em tempo real.

🧠 Exemplo

Trace ?R

x = 10
y = 30
z = x + y

say z

Durante execução você pode digitar:

say x

E o EXEC responde.

É praticamente um:

  • debugger,
  • shell,
  • laboratório interativo,
  • máquina do tempo operacional.

☢️ RC — O NÚMERO QUE DEFINE O DESTINO

No Mainframe existe um conceito sagrado:

RETURN CODE

A variável especial:

rc

contém o retorno do último comando host.


🎯 Exemplo

"LISTDS USER.INVALID.DATASET"

say rc

Se dataset não existir:

8

📜 Convenção clássica IBM

RCSignificado
0Sucesso
4Warning
8Problema provável
12Falha séria
16Caos crescente
20O datacenter está pegando fogo

(Ok… o último é interpretação emocional.)


💀 O ERRO MAIS COMUM DOS INICIANTES

Executar comando host…

e IGNORAR o RC.

Exemplo proibido em 37 países:

"ALLOC FI(TESTE) DA('ARQ.INEXISTENTE') SHR"

"EXECIO * DISKR TESTE"

Se ALLOC falhar:

  • EXECIO também falha,
  • mensagens ficam confusas,
  • debugging vira arqueologia.

✅ Forma correta

"ALLOC FI(TESTE) DA('ARQ.INEXISTENTE') SHR"

If rc <> 0 Then Do
Say "Falha na alocacao!"
Exit 8
End

🧨 SIGNAL ON ERROR — O CAÇADOR DE DESASTRES

Outra arma essencial:

Signal On Error

Agora qualquer comando host com RC ruim:

  • desvia execução,
  • entra no trap,
  • permite recovery.

🛡️ Exemplo corporativo

/* REXX */
Signal On Error

"DELETE USER.PROD.ARQ"

say "Arquivo removido"

exit 0

Error:
say "Falha no comando host"
say "RC =" rc
say "Linha =" sigl
exit 12

🧬 SIGL — A LINHA DO CRIME

A variável:

sigl

contém:

a linha onde o erro ocorreu.

Isso é ouro puro.


🧠 SOURCELINE() — A MEMÓRIA FOTOGRÁFICA DO EXEC

Você pode mostrar exatamente a linha problemática:

say sourceline(sigl)

Exemplo:

"DELETE USER.PROD.ARQ"

O EXEC literalmente aponta:

“FOI AQUI.”


🏴‍☠️ EASTER EGG MAINFRAME #1

Veteranos de REXX frequentemente usam:

Trace ?R

como se fosse um mini TSO dentro do próprio EXEC.

É quase um:

  • “REXXCEPTION”,
  • um EXEC rodando dentro do EXEC,
  • enquanto você conversa com ele durante a execução.

🏴‍☠️ EASTER EGG MAINFRAME #2

Existe uma lenda antiga de operadores que:

  • ativavam TRACE,
  • esqueciam de desligar,
  • geravam SYSOUT gigantesco,
  • e enchiam spool JES2 inteiro.

Moral da história:

Trace O

também salva carreiras.


🏴‍☠️ EASTER EGG MAINFRAME #3

Programador Mainframe raiz não chama bug de bug.

Ele chama de:

  • “anomalia operacional”,
  • “comportamento inesperado”,
  • “efeito colateral do ambiente”,
  • ou:

“funciona em produção.”


⚙️ O VERDADEIRO ENSINAMENTO

Debugging não é apenas corrigir erros.

É:

  • entender fluxo,
  • prever falhas,
  • construir resiliência,
  • escrever automações seguras,
  • proteger produção,
  • facilitar manutenção futura.

🏛️ O MAINFRAME NÃO PERDOA DESCUIDO

Um EXEC mal escrito pode:

  • apagar datasets,
  • travar usuários,
  • consumir spool,
  • quebrar automações,
  • causar RC cascata em batch,
  • gerar incidentes gigantescos.

Por isso programadores experientes:

  • validam RC,
  • usam SIGNAL,
  • usam TRACE,
  • documentam tudo,
  • tratam exceções.

🚀 CONCLUSÃO

REXX parece simples.

Mas por trás da simplicidade existe uma linguagem:

  • elegante,
  • introspectiva,
  • extremamente poderosa,
  • absurdamente avançada para sua época.

E quando você domina:

  • TRACE,
  • SIGNAL,
  • RC,
  • NOVALUE,
  • SOURCELINE,
  • SIGL,

você deixa de apenas “escrever scripts”.

Você começa a construir:

automações enterprise-grade dignas do universo z/OS.

Porque no fim…

o verdadeiro programador Mainframe não teme o erro.

Ele:

  • captura,
  • analisa,
  • documenta,
  • trata,
  • e transforma caos operacional em engenharia confiável.

💙🖥️🚀

terça-feira, 4 de novembro de 2025

🎨 olhos de cores não convencionais


 



🔮 1. Diferenciação e impacto visual

  • O anime precisa que o personagem seja memorável. Um olho lilás, vermelho ou dourado chama atenção e ajuda a fixar o personagem na mente do espectador.

  • Em especial nos mangás, onde tudo é preto e branco, a cor do olho é descrita no material extra ou no anime para destacar a personalidade única.


🎭 2. Simbolismo das cores

No Japão (e na narrativa visual), cada cor carrega significados:

  • Amestista / Roxo → nobreza, espiritualidade, mistério, magia. Personagens com esses olhos costumam ter aura de realeza ou ligação com o sobrenatural.

  • Vermelho → intensidade, paixão, poder, às vezes perigo ou sangue. Olhos vermelhos aparecem em vampiros, demônios ou personagens muito fortes.

  • Dourado / Amarelo → divindade, luz, raridade. Usado para figuras quase sagradas ou sobrenaturais.

  • Prateado / Branco → pureza, mistério, ligação com a lua ou espiritualidade.

  • Verde → vida, natureza, equilíbrio. Muitas heroínas gentis têm olhos verdes.

Ou seja, a cor dos olhos ajuda a “contar a história” do personagem antes mesmo dele falar.


🧬 3. Exagero estilístico (anime logic™)

Na vida real, quase todos no Japão têm olhos castanhos ou pretos. Então, dar olhos de cores diferentes é uma forma de quebrar a uniformidade e permitir maior variedade estética.
Isso também serve como atalho narrativo: o público já associa certas cores a traços de personalidade (ex.: azul = frio ou racional, vermelho = explosivo, etc.).


🌌 4. Indicação de poderes especiais ou origem diferenciada

Muitos animes usam a cor dos olhos para:

  • Mostrar que o personagem é sobrenatural (elfo, yokai, vampiro, alienígena).

  • Marcar poder oculto (ex.: sharingan em Naruto, Geass em Code Geass).

  • Destacar linhagens especiais ou “sangue raro”.

Exemplo clássico: em Sailor Moon, a cor dos olhos das guerreiras ajuda a reforçar suas conexões planetárias.


🎨 5. Influência de design ocidental

Nos anos 70-80, muitos criadores se inspiraram em personagens de olhos grandes e coloridos de animações ocidentais e HQs. A estética de olhos grandes e brilhantes, com cores raras, virou assinatura do anime moderno.


📌 Resumo:
Olhos de cor amestista (ou outras cores raras) funcionam como símbolos visuais de personalidade, origem e poder, além de tornarem o personagem marcante e diferente dentro da narrativa.