Translate

terça-feira, 31 de dezembro de 2019

Um castelo meio assombrado em São Tomé das Letras

Estamos em 31 de Dezembro na cidade de São Tomé das Letras.


Estamos nos preparando para um jantar de Ano Novo bem diferente, estamos num castelo meio assombrado nesta mistica e louca cidade no alto das montanhas.

Esta cidade tem tantas surpresas, inclusive um castelo restaurante com salas secretas, vista fabulosa da cidade e assombrações para os mais impressionáveis

Desejo a você amigo que visita este humilde canal, um feliz 2020. Que este ano bissexto traga sorte, saúde e prosperidade, bem como muita paz, afinal com tantos governantes loucos ninguém aguenta.

#MinasGerais #SaoTomedasLetras #Castelo #AnoNovo #Jantar #Ceia #Virada #Assombracao #Almeia #Ruas #FogosArtificio #Vista #Noturna #Ceu


#SaoTomeDasLetras #Piramide  #tocaFurada #mirante #cruzeiro #IGrejaAssombrada #Castelo #Trilha #Ecoturismo #ViagemAstral #Ufo #et #duende #fada #weed #hippie #bichogrilo #cachoeira #cascata #corredeira #Caverna #pedradabruxa #panorama #ChicoTaquara #Gruta #saoTome #igrejarosario #sobradinho #eubioese #shangrila #poçoazul #poçodasesmeraldas #paraiso #veudanoiva #valedasborboletas #lua #gruta


segunda-feira, 30 de dezembro de 2019

Aventureiros em São Tomé das Letras

Uma cidade fantástica.


Imagine uma cidade construída em lages de pedra, com ruas estreitas e cheia de lendas e mistérios, Com igrejas mal assombradas e coisas bem curiosas.

Um cruzeiro e uma visão panorâmica com as serra e muito verde para animar os aventureiros, trilhas, estatuas e criaturas saídas dos contos de fadas.

Magos, duendes, gnomos e fadas para uns... Ets, ovnis e discos voadores para os mais modernos, neste vídeo iremos apresentar a igreja de Nossa Senhora do Rosario, a Igreja Matriz, a Toca do Leão, a Gruta de São Tomé, a Piramide e muitos outras coisas.

Imagine uma pista de skate escondidinha num pequeno plato,, belas aves e muitas plantas de serrado, aventure-se em nosso canal e descubra estes e muitos mais tesouros.

#MinasGerais #SãoToméDasLetras #Piramide #IgrejaRosario #Mirante #Cruzeiro #PistaSkate #Panorama #Serra #Monte #Plato #Aventura #Caminhada #Casas #Arqueologia #Historia


#SaoTomeDasLetras #Piramide #tocaFurada #mirante #cruzeiro #IGrejaAssombrada #Castelo #Trilha #Ecoturismo #ViagemAstral #Ufo #et #duende #fada #weed #hippie #bichogrilo #cachoeira #cascata #corredeira #Caverna #pedradabruxa #panorama #ChicoTaquara #Gruta #saoTome #igrejarosario #sobradinho #eubioese #shangrila #poçoazul #poçodasesmeraldas #paraiso #veudanoiva #valedasborboletas #lua #gruta


domingo, 29 de dezembro de 2019

Brasil 2019: quando o sistema parecia estável — e o operador experiente sentiu o frio na espinha

 


Brasil 2019: quando o sistema parecia estável — e o operador experiente sentiu o frio na espinha

Meu sexto ano de volta ao Brasil foi 2019. E todo veterano de mainframe conhece essa sensação: o sistema para de cair, os gráficos estabilizam, o barulho diminui — e exatamente por isso algo parece errado. Calmo demais. Silêncio demais. Em ambientes críticos, o perigo raramente anuncia chegada com sirene. Ele vem quando todos relaxam.

Depois de doze anos na Europa, eu já tinha aprendido a desconfiar da estabilidade sem explicação.

Economia: a promessa de retomada

Em 2019, a economia começou a falar em retomada. Reformas aprovadas, mercado animado, manchetes otimistas. Era como ver um sistema que finalmente responde aos pings. Mas quem estava no chão sentia outra coisa: pouco emprego de qualidade, renda ainda pressionada, desigualdade mais visível.

A engrenagem girava, mas rangia. Para quem viveu fora, o padrão era claro: ajuste fiscal sem rede de proteção cobra um preço invisível. O sistema melhora nos indicadores, piora na experiência do usuário.

A tal mudança de rumos existia — mas não apontava necessariamente para um lugar seguro.

Sociedade: normalizando o anormal

Socialmente, 2019 foi o ano da normalização do estranho. Discursos agressivos viraram rotina. Conflitos institucionais passaram a ser tratados como entretenimento. A política deixou de chocar e passou a cansar.

Para quem veio da Europa, isso acende alerta vermelho. Quando a sociedade se acostuma ao ruído, perde a capacidade de reagir ao sinal. O absurdo vira paisagem. O inaceitável vira opinião.

Era como operar um sistema com alertas desativados porque “sempre apita mesmo”.

Cultura: entre o escapismo e a negação

Culturalmente, 2019 foi dividido entre dois impulsos: fugir ou negar. Parte do país buscou escapismo — séries, memes, distração constante. Outra parte escolheu negar a complexidade, apostando em narrativas simples, quase infantis.

A arte ficou mais defensiva. O humor, mais ácido. O diálogo, mais raro. A cultura já não elaborava o trauma — apenas o empurrava para baixo do tapete.

Quem viveu fora reconhece esse momento: quando a sociedade está ocupada demais tentando manter a normalidade para perceber que algo grande se aproxima.

População: vivendo no automático

O brasileiro de 2019 estava no automático. Trabalhava, pagava contas, reclamava menos por cansaço, não por concordância. A indignação tinha virado gasto energético alto demais.

Resiliência virou rotina. E rotina, quando envolve sofrimento, é perigosa — porque anestesia.

Vi gente dizendo “pior que isso não fica”. Todo operador experiente sabe: essa frase precede incidentes graves.

Sexto ano pós-retorno: sensação de transição

No meu sexto ano de volta, senti algo diferente. Não era crise aberta, nem euforia. Era transição. Um sistema mudando de estado, silenciosamente. Algo novo no horizonte, mas não no sentido positivo ou negativo imediato — apenas desconhecido.

Na Europa, mudanças grandes costumam ser precedidas de relatórios. No Brasil, elas chegam como interrupt inesperado.

E havia algo no ar. Difícil de explicar racionalmente, fácil de sentir. Uma tensão baixa, constante, como servidor aquecendo além do normal sem disparar alarme.

O mais sinistro de todos: o que ninguém espera

O mais assustador de 2019 não foi o que aconteceu — foi o que não aconteceu. Nada explodiu. Nada caiu. Nada parou. O sistema seguiu rodando.

E é exatamente isso que assusta.

Porque os eventos mais terríveis em sistemas complexos não começam com falha total. Começam com pequenas exceções ignoradas, dependências mal mapeadas, confiança excessiva na estabilidade recente.

O perigo real de 2019 era invisível. Global. Silencioso. Não ideológico. Não nacional. Algo que não respeita fronteiras, discursos ou narrativas políticas. Algo que não pergunta em quem você votou.

Algo que ninguém esperava — justamente porque todos estavam ocupados demais discutindo o sistema antigo.

Epílogo: intuição de operador veterano

2019 terminou como começou: aparentemente normal. Mas para quem passou anos operando sistemas críticos — e vivendo em sociedades diferentes — a sensação era clara:
o sistema estava prestes a ser testado de um jeito que nenhum ajuste político ou econômico conseguiria resolver sozinho.

E todo veterano de mainframe sabe:
os incidentes mais graves
são aqueles que não aparecem nos relatórios,
não respeitam hierarquia
e não dão tempo de preparar discurso.

O Brasil de 2019 estava de pé.
Mas algo vinha aí.
Algo grande.
Algo assustador.

E ninguém, absolutamente ninguém,
estava pronto para o impact.

quinta-feira, 19 de dezembro de 2019

Do Logon ao Primeiro Programa: A Jornada do Padawan COBOL pelo TSO, ISPF e o Mundo do Desenvolvimento no IBM Z

 

Bellacosa Mainframe uma jornada no tso ispf e seus comandos para os primeiros passos em programacção cobol

☕ Um Café no Bellacosa Mainframe

Do Logon ao Primeiro Programa: A Jornada do Padawan COBOL pelo TSO, ISPF e o Mundo do Desenvolvimento no IBM Z

"Um Jedi não nasce sabendo usar um sabre de luz. Um programador Mainframe também não nasce dominando o ISPF. Ambos aprendem um comando de cada vez."

Quando alguém chega ao universo Mainframe pela primeira vez, normalmente enxerga apenas uma tela preta cheia de caracteres verdes. Acostumado com Visual Studio Code, Eclipse ou IntelliJ, o iniciante costuma pensar:

"Como alguém consegue desenvolver sistemas críticos aqui?"

A resposta surpreende.

Depois de algumas semanas de prática, muitos descobrem que aquele ambiente aparentemente simples foi projetado para maximizar produtividade, estabilidade e eficiência muito antes de existirem as IDEs modernas.

Bem-vindo ao universo do IBM Z.

Hoje vamos caminhar juntos, passo a passo, pela jornada de um verdadeiro Programador COBOL Padawan, entendendo como funciona o desenvolvimento utilizando TSO, ISPF e os principais comandos do editor que há décadas ajudam a construir bancos, seguradoras, bolsas de valores, companhias aéreas e governos ao redor do planeta.


O Mainframe não é apenas um computador

Antes de abrir um editor ou escrever uma linha de COBOL, precisamos entender onde estamos.

Um IBM Z não é simplesmente um servidor maior.

Ele foi concebido para atender milhares de usuários simultaneamente com disponibilidade praticamente contínua.

Enquanto um notebook executa dezenas de processos, um IBM Z pode executar milhões de transações diariamente, mantendo segurança, auditoria, criptografia por hardware e altíssima confiabilidade.

É por isso que grandes instituições financeiras ainda executam seus sistemas centrais nessa plataforma.

Mas como um desenvolvedor conversa com essa máquina?

A resposta começa com três letras.

TSO.


O TSO: sua porta de entrada para o universo IBM Z

TSO significa Time Sharing Option.

Hoje parece algo comum termos diversos usuários conectados simultaneamente a um sistema operacional. Entretanto, décadas atrás isso era revolucionário.

Antes do TSO, um programador preparava cartões perfurados, entregava o lote para processamento e esperava horas — às vezes um dia inteiro — para descobrir que havia esquecido um ponto final.

O TSO mudou completamente essa realidade.

Agora cada usuário possui sua própria sessão interativa.

Quando você realiza o Logon, não está apenas entrando em um sistema.

Na verdade, o z/OS inicia todo um ambiente personalizado para você.

Diversos componentes entram em ação simultaneamente.

O RACF autentica seu usuário.

Os datasets do seu perfil são alocados.

As permissões são carregadas.

Os comandos disponíveis são habilitados.

Seu ambiente de desenvolvimento é preparado.

É como abrir um escritório inteiro apenas para você trabalhar.


O herói invisível chamado RACF

Todo Padawan precisa entender uma verdade muito importante.

No Mainframe, segurança vem antes da programação.

Antes mesmo de abrir o editor, o RACF já decidiu o que você poderá fazer.

Ele verifica sua identidade.

Confere sua senha.

Analisa seus grupos de acesso.

Define quais bibliotecas podem ser acessadas.

Autoriza ou bloqueia comandos.

Controla acesso ao CICS.

Controla acesso ao DB2.

Controla acesso ao SDSF.

Controla praticamente tudo.

É por isso que muitas mensagens de erro não significam defeito no programa.

Às vezes significam simplesmente:

"Você não possui autorização."

No mundo IBM Z, privilégios são tão importantes quanto conhecimento técnico.


Depois do Logon aparece o verdadeiro laboratório

Após autenticar-se, normalmente encontramos o ISPF.

Seu nome completo é Interactive System Productivity Facility.

Quem olha rapidamente imagina tratar-se apenas de um editor de texto.

Esse é um dos maiores equívocos de quem está começando.

O ISPF é praticamente uma IDE completa construída décadas antes das IDEs modernas.

Dentro dele encontramos:

  • Editor de código

  • Navegação entre bibliotecas

  • Gerenciamento de datasets

  • Utilitários

  • Comparação de arquivos

  • Execução de comandos

  • Macros

  • REXX

  • CLIST

  • Painéis personalizados

  • Ferramentas administrativas

Tudo extremamente integrado.

Tudo extremamente rápido.

Tudo utilizando poucos recursos da máquina.

Essa eficiência explica por que tantos desenvolvedores continuam preferindo o ambiente 3270 mesmo após conhecer ferramentas gráficas.


O menu principal é muito mais poderoso do que parece

O famoso menu inicial do ISPF apresenta diversas opções numéricas.

À primeira vista parecem simples.

Mas cada número abre um universo diferente.

A opção 2 leva ao editor.

A opção 3 reúne utilitários.

A famosa 3.2 permite criar datasets.

A clássica 3.4 lista bibliotecas.

A opção 6 executa comandos TSO diretamente.

Cada menu representa anos de evolução do ambiente de desenvolvimento IBM.

O curioso é que muitos profissionais trabalham décadas utilizando apenas parte desses recursos.

Sempre existe algo novo para aprender.


Os Datasets: a organização é parte da engenharia

No Windows estamos acostumados com pastas.

No Mainframe trabalhamos com datasets.

Entre eles existe um dos mais importantes para quem desenvolve COBOL:

O PDS.

Partitioned Data Set.

Imagine uma estante.

O PDS é a estante.

Cada membro é um livro.

Dentro dessa estante normalmente encontramos programas, JCLs, copybooks e diversos componentes relacionados.

Uma organização típica pode conter:

  • USER.COBOL.SOURCE

  • USER.JCL

  • USER.COPYLIB

  • USER.LOAD

  • USER.TEST

  • USER.REXX

Separar corretamente essas bibliotecas facilita manutenção, controle de versões e automação.

Em ambientes corporativos essa organização torna-se ainda mais importante, pois centenas de desenvolvedores trabalham simultaneamente.


Escrever COBOL é construir uma casa

Muitos iniciantes querem começar digitando comandos imediatamente.

Mas COBOL possui uma arquitetura muito organizada.

Cada programa é dividido em grandes áreas de responsabilidade.

A IDENTIFICATION DIVISION identifica o programa.

A ENVIRONMENT DIVISION descreve recursos externos.

A DATA DIVISION declara toda a memória utilizada.

A PROCEDURE DIVISION contém a lógica de negócio.

Essa divisão clara faz com que programas escritos há quarenta anos ainda possam ser compreendidos atualmente.

Não é coincidência.

Foi uma escolha de engenharia.

COBOL privilegia legibilidade.

O objetivo nunca foi escrever menos linhas.

O objetivo sempre foi escrever programas que outra pessoa consiga entender muitos anos depois.


As famosas colunas do COBOL

Todo Padawan escuta falar das colunas.

Área A.

Área B.

Indicador.

Numeração.

Hoje o compilador moderno aceita formato livre em muitos ambientes.

Mesmo assim, compreender o formato clássico continua sendo essencial.

Grande parte dos sistemas corporativos ainda mantém milhões de linhas utilizando o layout tradicional.

Conhecer essas convenções permite navegar com segurança entre sistemas desenvolvidos nas décadas de 1980, 1990 e 2000.

Mais importante ainda: ajuda a compreender por que determinados padrões existem.


O editor ISPF: simples na aparência, poderoso na prática

Agora chegamos ao verdadeiro companheiro do desenvolvedor.

O Editor ISPF.

Quem o vê pela primeira vez acredita que seja limitado.

Na realidade ele foi otimizado para velocidade.

Cada comando foi pensado para reduzir movimentos repetitivos.

Cada tecla possui uma função.

Cada recurso procura economizar tempo.

É uma filosofia completamente diferente das interfaces gráficas modernas.

Enquanto uma IDE gráfica oferece dezenas de botões, o ISPF aposta em comandos curtos e extremamente rápidos.

Depois que a memória muscular é desenvolvida, editar programas torna-se surpreendentemente eficiente.


COLS: a régua que salva programas

Um dos primeiros comandos que todo Padawan deveria aprender é:

COLS

Ele exibe uma régua mostrando exatamente onde cada coluna está posicionada.

Isso evita deslocamentos acidentais.

Ajuda no alinhamento.

Facilita manutenção.

Principalmente quando trabalhamos com código legado.

É um comando simples.

Mas evita muitos problemas.


CREATE: criando novos membros

Criar um programa novo também é extremamente simples.

O comando CREATE gera um novo membro dentro da biblioteca.

É como criar um novo arquivo dentro de uma pasta.

Em poucos segundos o desenvolvedor já possui um ambiente pronto para iniciar seu código.


FIND: o comando que economiza horas

Imagine um sistema com 20 mil linhas.

Ou cem programas diferentes.

Encontrar uma variável manualmente seria inviável.

É exatamente aqui que entra o FIND.

Ele pesquisa palavras.

Pesquisa comandos.

Pesquisa literais.

Pesquisa variáveis.

Pesquisa praticamente qualquer texto.

Dominar FIND representa um enorme ganho de produtividade.


CUT e PASTE: refatoração antes da palavra existir

Muito antes da palavra "refatoração" tornar-se popular, o ISPF já permitia reorganizar blocos inteiros de código.

Selecionamos linhas.

Executamos CUT.

Depois utilizamos PASTE.

Tudo muito rápido.

Sem mouse.

Sem janelas.

Sem menus.

A produtividade impressiona.


UNDO: porque todos erram

Até os desenvolvedores mais experientes cometem erros.

Por isso existe o UNDO.

Alterou uma linha indevidamente?

Desfaça.

Removeu um bloco inteiro?

Desfaça.

Movimentou código para o lugar errado?

Desfaça.

É um recurso simples.

Mas extremamente valioso durante manutenção de sistemas críticos.


SAVE e CANCEL

Esses dois comandos representam decisões completamente diferentes.

SAVE grava alterações.

Permite continuar trabalhando.

CANCEL abandona tudo.

Sai sem gravar.

Aprender quando utilizar cada um faz parte da maturidade do desenvolvedor.


Existem comandos que poucos conhecem

Depois de dominar os comandos básicos, o Padawan descobre um universo ainda maior.

CHANGE permite substituir centenas de ocorrências automaticamente.

HEX ON mostra o conteúdo hexadecimal de um registro.

RESET limpa exclusões temporárias.

EXCLUDE oculta blocos inteiros de código.

FLIP alterna entre linhas visíveis e ocultas.

CAPS controla conversão automática para maiúsculas.

LOCATE posiciona rapidamente em pontos específicos.

Cada novo comando aprendido representa mais produtividade.


O desenvolvimento não termina ao escrever o programa

Um erro comum dos iniciantes é pensar que o trabalho termina quando o código está pronto.

Na realidade, ele está apenas começando.

Agora entra em cena outro personagem fundamental.

O JCL.


O JCL é o maestro da orquestra

COBOL não executa diretamente.

Primeiro precisa ser compilado.

Depois ligado.

Depois transformado em módulo executável.

O JCL coordena todas essas etapas.

Ele chama o compilador.

Executa o Binder.

Resolve bibliotecas.

Gera módulos.

Organiza arquivos temporários.

É como um roteiro detalhado dizendo ao sistema exatamente o que fazer.

Sem JCL não existe processamento Batch.

Sem Batch boa parte do Mainframe simplesmente deixaria de existir.


O Binder: o construtor do executável

Pouca gente explica o papel do Binder.

Ele recebe diversos objetos compilados.

Localiza subprogramas.

Conecta bibliotecas.

Resolve referências externas.

Monta o módulo executável final.

É como montar um quebra-cabeça gigante onde cada peça precisa encaixar perfeitamente.

Quando tudo funciona, nasce o Load Module.

É ele que será realmente executado pelo sistema.


Finalmente chega o momento da verdade

Depois da compilação vem a execução.

E logo depois...

A análise.

É aqui que entra o SDSF.


SDSF: a janela para dentro do processamento

O SDSF permite acompanhar tudo o que aconteceu durante um Job.

Podemos verificar:

Tempo de CPU.

Tempo de espera.

Mensagens.

Arquivos gerados.

SYSOUT.

Return Code.

Condition Code.

Abends.

É praticamente o painel de controle do processamento Batch.

Nenhum desenvolvedor experiente ignora o SDSF.

Ali estão todas as pistas necessárias para descobrir por que um programa funcionou...

Ou por que falhou.


Aprenda a ler mensagens antes de procurar culpados

Muitos iniciantes ficam desesperados quando aparece um S0C7.

Ou um S806.

Ou um JCL ERROR.

O profissional experiente faz exatamente o contrário.

Primeiro lê cuidadosamente as mensagens.

Depois interpreta o contexto.

Somente então começa a corrigir o problema.

Grande parte do trabalho em Mainframe consiste justamente em interpretar informações produzidas pelo próprio sistema.

O IBM Z fala com o desenvolvedor o tempo inteiro.

É preciso aprender seu idioma.


O verdadeiro segredo do Mainframe

Depois de estudar TSO.

ISPF.

Datasets.

COBOL.

JCL.

SDSF.

Comandos.

Compilação.

Execução.

Uma conclusão torna-se inevitável.

O segredo do Mainframe nunca esteve na tela preta.

Nunca esteve nas teclas PF.

Nunca esteve nos menus numéricos.

O verdadeiro diferencial sempre foi a disciplina.

Cada biblioteca possui uma finalidade.

Cada programa segue uma estrutura.

Cada Job possui um fluxo definido.

Cada autorização é controlada.

Cada alteração pode ser auditada.

Cada execução produz evidências.

Esse nível de organização permitiu que aplicações escritas há décadas continuassem evoluindo sem perder confiabilidade.

E é justamente essa filosofia que transforma um simples aprendiz em um verdadeiro Programador COBOL Padawan.

No Bellacosa Mainframe, acreditamos que aprender IBM Z não significa apenas decorar comandos ou sintaxe. Significa compreender uma cultura de engenharia construída ao longo de mais de sessenta anos, onde estabilidade, clareza e responsabilidade caminham lado a lado. Cada LOGON, cada programa editado no ISPF, cada JCL submetido e cada mensagem analisada no SDSF representam um novo passo nessa jornada. Com curiosidade, prática constante e vontade de entender o "porquê" por trás de cada recurso, o terminal 3270 deixa de ser uma tela intimidadora e passa a ser uma poderosa oficina de desenvolvimento. Que este seja apenas o primeiro capítulo da sua aventura. O IBM Z continua evoluindo, o COBOL continua moderno e o próximo grande especialista pode muito bem ser você.


quarta-feira, 18 de dezembro de 2019

⛪ Por que Igrejas e Religiões são Tão Associadas a Vilões em Animes?

 


⛪ Por que Igrejas e Religiões são Tão Associadas a Vilões em Animes?

⚔️ 1. Desconfiança Cultural do Poder Centralizado

O Japão tem uma herança cultural muito diferente do Ocidente.
Na história japonesa, o que se teme não é o “pecado”, mas o abuso do poder coletivo.

Enquanto o cristianismo construiu sua moral em torno de Deus e salvação,
o Japão (sob o xintoísmo e o budismo) sempre valorizou harmonia e equilíbrio social — o chamado wa (和).

Logo, qualquer instituição que tente impor autoridade absoluta sobre o indivíduo — mesmo que com aparência “divina” — é vista como perigosa.
E adivinha quem representa isso perfeitamente?
👉 A Igreja (ou qualquer entidade “sagrada” com poder político, militar ou moral).

Nos animes, a “igreja vilã” simboliza o sistema opressor mascarado de justiça.


🕍 2. Influência do Cristianismo como Mito Exótico

Como o cristianismo nunca foi parte orgânica da cultura japonesa, ele é retratado como mitologia estrangeira — misteriosa, dramática, perigosa.
Os japoneses o veem mais como estética narrativa do que fé.

Assim, cruzes, padres e anjos são usados como figuras de poder e manipulação, não como símbolos sagrados.

🎬 Exemplos:

  • Chrono Crusade – a igreja caça demônios, mas esconde seus próprios pactos infernais.

  • Hellsing – a Igreja cria monstros em nome de Deus.

  • Attack on Titan – a religião dos muros protege segredos sombrios.

  • Fullmetal Alchemist – o culto de Lior usa fé para manipular massas.

➡️ A mensagem: “Não confie cegamente em quem diz ter a verdade absoluta.


🧩 3. A Metáfora da Hipocrisia Moral

Na sociedade japonesa, existe uma palavra poderosa: tatemae (建前) — a “fachada social”, o que se mostra em público.
O oposto é honne (本音) — o que realmente se sente por dentro.

A “igreja vilã” é o tatemae do mal: a máscara da pureza escondendo corrupção, manipulação e egoísmo.

Os roteiristas japoneses usam isso para criticar:

  • o sistema político,

  • o autoritarismo,

  • a alienação social,

  • e até a própria natureza humana.

Ou seja: a igreja é só o palco onde se encena a hipocrisia universal.


⚙️ 4. A Herança do “Poder Invisível”

Na cultura oriental, há um fascínio por forças que agem por trás das cortinas — o destino, os deuses, o governo, ou entidades secretas.
A igreja, em muitos animes, representa essa estrutura invisível que controla o mundo.

📺 Em Neon Genesis Evangelion, a SEELE (organização secreta) usa símbolos religiosos para manipular o destino da humanidade.
📺 Em Vatican Miracle Examiner, o próprio Vaticano investiga milagres que escondem crimes.
📺 Em Claymore, a “Igreja da Luz” cria guerreiras-monstro em nome de Deus — e as descarta quando perdem utilidade.

O que há em comum?
👉 O uso do sagrado para justificar o controle.
O vilão, portanto, não é a fé — é a manipulação dela.


🧠 5. Crítica Filosófica e Existencial

A filosofia japonesa moderna, influenciada por Nietzsche, Jung e o existencialismo europeu, sempre teve uma pergunta central:

“Se Deus existe, por que o sofrimento é inevitável?”

Os criadores de anime transformam isso em drama visual.
A igreja — ou o “deus” — vira a estrutura que falhou.
O herói, muitas vezes, precisa enfrentar o próprio criador (divino, científico ou institucional).

💥 É o arquétipo do “Anjo Caído” reimaginado:
não como rebelde do mal, mas como símbolo da consciência humana que se liberta da obediência cega.


💡 Curiosidades Bellacosa

  • No Japão, poucos animes retratam a fé de forma positiva — exceções são Your Name, Natsume Yuujinchou e Mushishi, onde a espiritualidade é contemplativa, não institucional.

  • Os símbolos cristãos em anime raramente seguem teologia: são instrumentos de metáfora, não de doutrina.

  • Muitos roteiristas (como Hideaki Anno e Hiromu Arakawa) estudaram iconografia cristã apenas como referência simbólica, não religiosa.

  • Igrejas góticas são comuns em Tóquio — usadas para casamentos “de estilo ocidental”, mesmo entre não cristãos.


💬 Comentário Bellacosa

A “igreja vilã” não é um ataque à fé — é um espelho do medo humano de ser controlado pelo que parece puro.
O Japão, com sua filosofia da impermanência e harmonia, vê no fanatismo o colapso da alma.
E é por isso que, nos animes, o verdadeiro herói não destrói o sagrado — ele o redefine.


✨ Especial aos Fãs

Quer explorar essa simbologia com profundidade?
📚 Top 5 Animes para Estudar o “Símbolo da Igreja como Poder”

  1. Neon Genesis Evangelion – a religião como código de engenharia divina.

  2. Fullmetal Alchemist: Brotherhood – fé versus ciência, e o preço da verdade.

  3. Attack on Titan – a religião como prisão política.

  4. Hellsing Ultimate – o fanatismo armado e a guerra em nome de Deus.

  5. Trigun – redenção e pecado num deserto que tem mais cruzes do que igrejas.


Bellacosa conclui:
Nos animes, a igreja é o espelho invertido da alma humana:
prega a luz, mas esconde sombras.
E talvez, no fundo, o vilão não seja o templo — mas a fé cega que constrói muros em vez de pontes.

terça-feira, 17 de dezembro de 2019

teste 2


meu texto original
3

Teste de atualização

Ajustes na atualização.





1. Frameworks e bibliotecas para manipulação do DOM

Existem muitos frameworks e bibliotecas JavaScript que facilitam a manipulação do DOM (Document Object Model), tornando o desenvolvimento web mais produtivo, organizado e escalável. O DOM representa a estrutura da página HTML em forma de árvore, permitindo que scripts acessem, modifiquem e respondam a elementos da interface do usuário.

O jQuery foi uma das bibliotecas mais populares nesse contexto, pois simplificou tarefas comuns como seleção de elementos, manipulação de classes, animações e tratamento de eventos, reduzindo significativamente a quantidade de código necessária em comparação ao JavaScript puro da época.

Frameworks como AngularJS e EmberJS introduziram conceitos mais avançados, como MVC/MVVM, data binding e organização estrutural da aplicação. Eles permitem que o desenvolvedor trabalhe com a interface de forma declarativa, ligando dados diretamente aos elementos visuais, o que reduz a necessidade de manipular o DOM manualmente.

Já o ReactJS popularizou uma abordagem baseada em componentes e no uso de um DOM virtual. Em vez de alterar diretamente o DOM real, o React calcula as mudanças necessárias e as aplica de forma otimizada, melhorando desempenho e previsibilidade. Outros frameworks modernos seguem conceitos semelhantes, priorizando reutilização de código e manutenção facilitada.

Apesar das diferenças entre essas ferramentas, todas compartilham o mesmo objetivo: tornar a interação com o DOM mais simples, organizada e eficiente, especialmente em aplicações maiores e mais complexas.


2. Ouvintes de eventos e atualização automática com JavaScript

Independentemente do framework utilizado, um conceito fundamental na manipulação do DOM é o uso de ouvintes de eventos (event listeners). Eles permitem que o código reaja a ações do usuário, como cliques, movimentos do mouse, digitação no teclado ou carregamento da página.

Por exemplo, é possível adicionar um ouvinte de evento de clique a uma <div> para alterar seu texto quando o usuário interagir com ela. Esse processo envolve selecionar o elemento desejado e associar a ele uma função que será executada quando o evento ocorrer. Essa função pode modificar o conteúdo, estilo ou comportamento do elemento, tornando a página dinâmica e interativa.

Além da interação direta do usuário, muitas aplicações precisam atualizar informações automaticamente em intervalos regulares. Para isso, o JavaScript oferece a função setInterval. Ela permite executar uma determinada função repetidamente, respeitando um intervalo de tempo definido em milissegundos. Esse recurso é muito utilizado para atualizar relógios, contadores, dashboards, dados em tempo real ou verificar mudanças periódicas em um sistema.

O uso de setInterval deve ser feito com cuidado, garantindo que o código seja eficiente e que o intervalo seja adequado, evitando consumo excessivo de recursos. Sempre que necessário, a execução pode ser interrompida com clearInterval, garantindo maior controle sobre o comportamento da aplicação.

Em resumo, a combinação de frameworks modernos, ouvintes de eventos e funções de temporização como setInterval permite criar interfaces dinâmicas, responsivas e interativas, oferecendo uma experiência mais rica ao usuário e maior controle ao desenvolvedor.


Teste

Existem muitos frameworks e bibliotecas que podem lhe ajudar a manipular o DOM, como: JQuery, AngularJS, EmberJS, ReactJS, etc.

Não irei entrar em detalhes sobre eles, mas basicamente você pode adicionar ouvintes de eventos específicos a elementos que você queira manipular.

Aqui está um exemplo de como alterar o texto de uma div adicionando um ouvinte para o evento de clique. Quanto a atualizar a cada X tempo, você pode usar a função setInterval, você pode ver mais detalhes sobre ela na documentação.

Original

segunda-feira, 16 de dezembro de 2019

🚨 BOMBEIRINHO – O DRINK QUE INCENDIOU OS ANOS 80

 


🚨 BOMBEIRINHO – O DRINK QUE INCENDIOU OS ANOS 80


por El Jefe – Bellacosa Mainframe Night Batch Edition

Há tragos que apagam a sede, e há tragos que acendem a alma.
Nos botecos paulistanos dos anos 80, o Bombeirinho era o fogo líquido — o boot etílico que reiniciava a madrugada.
Vermelho, doce, letal e indecentemente bonito no copo 7.
Era o drink que prometia amor, ressaca e amnésia — tudo num mesmo deploy.



🔥 Origem – quando o fogo encontrou o açúcar
A receita é simples: vodka e groselha, às vezes com um toque de limão pra dar respeito.
Mas o nascimento do Bombeirinho é uma daquelas histórias que só poderiam ter acontecido em São Paulo, entre uma jukebox e um balcão de fórmica.

Dizem que surgiu no final dos anos 70, quando os bares queriam um drink “bonito” e “forte” pra vender às moças — algo que disfarçasse a agressividade da vodka e tivesse aparência de refrigerante.
O nome veio por causa da cor: vermelho vivo, lembrando o uniforme dos bombeiros — e, dizem alguns, o rosto de quem tomava três doses seguidas.

No auge da noite, era comum ouvir o brinde clássico:
— “Manda um Bombeirinho pra apagar esse fogo aí!”
E lá vinha o copo 7, reluzindo como alarme de incêndio.



🧯 O drink que enganava o paladar e queimava a inocência
O perigo do Bombeirinho era a sua camuflagem.
Docinho, leve, parecia inocente — mas por dentro trazia a fúria pura da vodka russa de garrafa sem rótulo, vendida em armazém.
Era o veneno dos aprendizes, o bootloader da bebedeira, a primeira compilação alcoólica de muita gente.

Nos bailinhos de garagem e nos bares de azulejo, o Bombeirinho reinava ao lado da Batida de Coco e do Cuba Libre.
Mas tinha algo nele que chamava atenção: o visual.
Um drink cor de rubi, brilhando sob a luz fraca do boteco.
Parecia coisa de filme — até o segundo gole.

📀 O código dos anos 80 – neon, discoteca e groselha
Nos anos 80, o Bombeirinho virou figurinha carimbada das festas.
Enquanto o DJ tocava Roupa Nova ou As Frenéticas, os copos de groselha e vodka passavam de mão em mão como se fossem poções mágicas.
Era o combustível das madrugadas, o patch que atualizava o humor, o debug emocional de quem levava um fora.

O charme estava em fazer parecer sofisticado o que era pura gambiarra.
E isso, meus caros padawans do balcão, é a essência do espírito Bellacosa: transformar pinga e xarope num manifesto cultural.

🍓 Adaptações e variações
Como todo clássico de boteco, o Bombeirinho evoluiu — ou, dependendo do ponto de vista, se corrompeu.
Vieram versões com cachaça, com conhaque, com batida de morango e até com espumante barato, apelidado de Bombeirinho de Festa.
Nos bares da Vila Madalena, a juventude alternativa tentou “gourmetizar” o drink com vodka importada e xarope artesanal…
Mas quem provou o original sabe: se não for groselha Milani ou Maguary, se não vier no copo 7 trincado, não é Bombeirinho, é bug visual.

💬 Lendas do balcão
Conta-se que um famoso radialista da AM nos anos 80 só tomava Bombeirinho “pra manter a voz aveludada” — e acabou proibido de falar por 24 horas.
Outro mito diz que uma lanchonete do Brás servia um “Bombeirinho Especial” que, além da groselha, levava pimenta-do-reino.
Resultado: o cliente bebia, tossia, suava e pedia outro “pra apagar o fogo”.

Há também a teoria conspiratória de que o Bombeirinho foi o primeiro drink unissex da história paulistana — bebido tanto por moças de permanente quanto por operários de macacão azul.
Um símbolo democrático, que unia todas as classes na mesma mesa, sob o mesmo vermelho.

⚙️ A engenharia do perigo
O segredo do Bombeirinho era o equilíbrio entre doçura e veneno.
Como um sistema legado rodando em loop infinito, você só percebia o erro quando já era tarde.
O primeiro copo era alegria.
O segundo, filosofia.
O terceiro, tela azul.

🎛️ Versão moderna – o Bombeirinho 2.0
Hoje, alguns bares nostálgicos ainda servem o drink, às vezes com nome de fantasia: Fire Shot, Red Flame, Rubro Boêmio.
Mas o Bellacosa garante: o original é insubstituível.
Ele pertence a uma era em que o bar era uma extensão da sala, o balcão era o divã, e o copo 7 era o santo graal da sociabilidade urbana.

💡 Dica do El Jefe para os padawans
Quer recriar o clássico?

  • 1 dose generosa de vodka

  • 2 colheres de sopa de groselha (quanto mais vermelha, melhor)

  • Um toque de limão pra dar nervo

  • Gelo até a borda do copo 7
    Mexa com dignidade, não com colher de café.
    E beba ouvindo um vinil do RPM.

🖤 Reflexão final – o fogo que nunca apaga
O Bombeirinho é mais do que um drink.
É um snapshot de uma época em que o perigo era doce, o amor era analógico e a vida rodava em fita cassete.
É o bug delicioso da juventude, o commit que a gente não reverte.

Porque, no fim das contas, como diz o Bellacosa:

“Alguns sistemas não travam — eles queimam até o último byte de memória.”


🚨 Bellacosa Mainframe – onde até o incêndio da alma tem sabor de groselha.


domingo, 15 de dezembro de 2019

Sword and Sorcery : Descobre que Antes dos Isekais Existia um Mundo Onde a Espada Enferrujava, a Magia Custava Caro e Monstros Não Eram NPCs Esperando Sua Vez

 

Bellacosa Mainframe introduz o genero sword and sorcery 


☕ Um Café no Bellacosa Mainframe

Sword and Sorcery sem Mistérios

Quando um Programador COBOL Descobre que Antes dos Isekais Existia um Mundo Onde a Espada Enferrujava, a Magia Custava Caro e Monstros Não Eram NPCs Esperando Sua Vez

"Um aventureiro inteligente não pergunta quantos pontos de vida possui. Pergunta quantos dias faz desde a última refeição."


Introdução — Muito Antes do Herói Overpower

Existe um momento curioso na vida de quase todo fã de fantasia.

Depois de assistir dezenas de isekais, surge uma pergunta inevitável.

"Espera aí... por que esse mundo parece tão confortável?"

A comida nunca falta.

A água nunca causa doença.

As roupas permanecem limpas.

Os cavalos nunca morrem.

As espadas nunca quebram.

As mochilas parecem ter espaço infinito.

Os protagonistas nunca sofrem disenteria, hipotermia ou infecção.

E, curiosamente, os monstros aguardam pacientemente sua vez de apanhar.

Foi exatamente por isso que Goblin Slayer conquistou tantos fãs.

Não porque seja perfeito.

Mas porque recupera uma sensação que dominava a fantasia clássica:

o mundo não gosta de você.

Você não é especial.

Você apenas ainda não morreu.

E essa filosofia nasceu muito antes dos isekais modernos.

Ela pertence a um gênero chamado Sword and Sorcery.

Prepare seu lampião.

Hoje vamos abrir um baú muito antigo.

E ele não contém espadas mágicas.

Contém ferrugem.


O que é Sword and Sorcery?

Traduzindo literalmente:

Espada e Feitiçaria.

Mas isso não explica absolutamente nada.

Sword and Sorcery não é simplesmente fantasia com espadas.

É uma maneira completamente diferente de contar aventuras.

Enquanto a High Fantasy (como O Senhor dos Anéis) fala sobre salvar o mundo...

Sword and Sorcery normalmente fala sobre...

...tentar sobreviver até amanhã.

A escala muda completamente.

Não existe um destino cósmico.

Existe fome.

Existe frio.

Existe dívida.

Existe um mercenário tentando ganhar dinheiro suficiente para comer.

É uma fantasia muito mais humana.

Muito mais brutal.


Robert E. Howard — O Pai de Conan

Se existe um nome obrigatório, é este.

Robert Ervin Howard (1906–1936).

Criador de:

  • Conan

  • Kull

  • Solomon Kane

  • Bran Mak Morn

Howard escreveu numa época em que aventura significava violência, exploração e sobrevivência.

Conan não era um príncipe.

Não era escolhido.

Não era reencarnado.

Era um bárbaro.

E isso fazia toda diferença.

Ele aprendia observando.

Errando.

Apanhando.

Sobrevivendo.

Conan vence porque luta melhor.

Não porque o roteiro resolveu premiá-lo.


O Conan dos livros é diferente do cinema

Muita gente conhece apenas Arnold Schwarzenegger.

Mas os contos originais são ainda mais interessantes.

Conan é inteligente.

Observador.

Excelente estrategista.

Lê pessoas.

Entende política.

Percebe armadilhas.

É muito mais do que músculos.

Aliás...

Existe um enorme erro moderno.

Confundir força física com ausência de inteligência.

Howard nunca fez isso.


Fritz Leiber — Os Ladrões Mais Carismáticos da Fantasia

Outro gigante.

Criador da dupla:

Fafhrd e Gray Mouser.

Aqui nasce praticamente o modelo das aventuras urbanas.

Tavernas.

Guildas.

Assassinos.

Mercenários.

Magos corruptos.

Ladrões.

Cidade suja.

Becos.

Mercados.

Tudo aquilo que hoje vemos em RPGs nasceu aqui.

Se você gosta de Baldur's Gate...

The Witcher...

Dragon Age...

Dungeons & Dragons...

Existe uma enorme dívida com Fritz Leiber.


Michael Moorcock — O Anti-Herói

Então chega Michael Moorcock.

E apresenta...

Elric de Melniboné.

Elric é o oposto de Conan.

Fraco.

Doente.

Intelectual.

Dependente de magia.

Sua espada, Stormbringer, alimenta-se de almas.

Ela salva.

Mas cobra.

Toda magia possui preço.

Esse conceito influenciou praticamente toda a Dark Fantasy posterior.


Clark Ashton Smith

Pouco lembrado.

Mas gigantesco.

Criou mundos decadentes.

Civilizações morrendo.

Magia antiga.

Horror cósmico.

Ruínas.

Bibliotecas proibidas.

Boa parte do clima sombrio moderno passa por ele.


Karl Edward Wagner

Criador de Kane.

Talvez um dos personagens mais cruéis da Sword and Sorcery.

Nem herói.

Nem vilão.

Um sobrevivente.

Ambicioso.

Violento.

Inteligente.

Perigosíssimo.


Ursula K. Le Guin

Embora caminhe mais para a fantasia filosófica, Earthsea (Terramar) mostrou algo revolucionário.

Magia possui equilíbrio.

Nome verdadeiro importa.

Conhecimento custa caro.

Não existe poder gratuito.


J.R.R. Tolkien

Aqui surge uma confusão comum.

Muita gente coloca Tolkien dentro de Sword and Sorcery.

Não está.

Ele representa a High Fantasy.

Grandes guerras.

Nações.

Destino do mundo.

Profecias.

Enquanto Conan tenta sobreviver...

Frodo tenta salvar toda a Terra-média.

São propostas completamente diferentes.


Então chega Berserk...

Kentaro Miura faz algo extraordinário.

Mistura:

Sword and Sorcery.

Horror.

Psicologia.

Religião.

Trauma.

Violência.

Resultado?

Uma das maiores obras da história dos mangás.

Sem Berserk provavelmente não existiriam, da forma como conhecemos:

  • Goblin Slayer

  • Dark Souls

  • Elden Ring

  • Dragon's Dogma

A influência é gigantesca.


Goblin Slayer — O Filho Espiritual

Goblin Slayer lembra Conan.

Lembra Berserk.

Lembra campanhas antigas de RPG.

O protagonista não possui magia infinita.

Sua maior arma é planejamento.

Veja como ele pensa.

Entrar na caverna.

Contar inimigos.

Analisar saída.

Verificar ventilação.

Levar óleo.

Preparar cordas.

Calcular retirada.

Isso parece menos um anime...

E mais uma operação militar.


O Verdadeiro Mundo Medieval Era Muito Pior

Agora vem a parte que muitos isekais ignoram.

Imagine acordar em outro mundo.

Você não conhece:

A língua.

A moeda.

As leis.

A religião.

Os costumes.

As doenças.

As plantas.

Os animais.

Você bebe água.

Talvez morra.

Come um cogumelo.

Talvez morra.

Aceita trabalho.

Talvez seja escravizado.

Dorme numa floresta.

Talvez acorde cercado por lobos.

Ou pior.


Monstros Sendo Monstros

Aqui Goblin Slayer acerta novamente.

Os goblins não são malvados porque sim.

São predadores.

Fazem emboscadas.

Roubam comida.

Atacam aldeias pequenas.

Exploram fraquezas.

Fogem quando perdem vantagem.

É exatamente o comportamento esperado de um animal inteligente.

Agora imagine outros monstros.

Um dragão.

Quanto ele precisa comer?

Um grifo.

Qual território defende?

Um troll.

Onde consegue alimento?

Uma hidra.

Como afeta o comércio local?

Monstros alteram toda economia.

Não são chefes de fase.

São parte do ecossistema.


O Grande Problema dos Isekais Modernos

Aqui entra uma crítica divertida.

Você morre atropelado.

Acorda em outro mundo.

Cinco minutos depois:

✔ Já fala o idioma.

✔ Ganha casa.

✔ Recebe espada lendária.

✔ Uma elfa apaixonou-se.

✔ Uma princesa quer casar.

✔ Um dragão virou mascote.

✔ O rei oferece emprego.

Parabéns.

Nem a Receita Federal trabalha tão rápido.

Enquanto isso...

Conan continua tentando pagar a próxima refeição.


O Drama Verdadeiro da Aventura

Sword and Sorcery fala sobre problemas concretos.

A espada quebrou.

O cavalo morreu.

Acabou comida.

Está chovendo há três dias.

A armadura pesa vinte quilos.

Existe febre.

Existe medo.

Existe frio.

Existe culpa.

Não há tutorial.


Dungeons & Dragons Também Mudou

As primeiras edições de D&D eram extremamente mortais.

Uma armadilha podia acabar com um personagem.

Uma porta errada significava morte.

Uma flecha perdida encerrava meses de campanha.

Hoje muitos jogos são mais heroicos.

Mas a raiz continua lá.


Dark Fantasy Herdou Tudo Isso

Dark Fantasy não nasceu do nada.

Ela bebeu diretamente da fonte de:

Howard.

Leiber.

Moorcock.

Smith.

Lovecraft.

Berserk.

A diferença?

Acrescentou desespero.

O mal não pode ser totalmente derrotado.

A vitória sempre cobra um preço.

Às vezes salvar alguém significa perder outra pessoa.

Às vezes vencer deixa cicatrizes maiores do que perder.


O Maior Vilão Não É o Monstro

Conforme você lê mais Sword and Sorcery, percebe algo curioso.

O verdadeiro inimigo raramente é um dragão.

São pessoas.

Reis corruptos.

Sacerdotes fanáticos.

Mercadores gananciosos.

Magos enlouquecidos.

Traidores.

A criatura fantástica apenas torna o mundo mais perigoso.

Quem normalmente destrói civilizações...

...é o próprio ser humano.


Easter Egg do Bellacosa Mainframe

Imagine um programador COBOL entrando em um típico isekai moderno.

No primeiro dia recebe:

LEVEL 999

SUPER MAGIC

INFINITE STORAGE

IMMORTALITY

Ele olha para a tela.

Respira fundo.

E pergunta:

"Cadê o ambiente de homologação?"

Silêncio absoluto.

No horizonte aparece Conan.

Olha para ele.

Entrega uma espada enferrujada.

E responde:

"Produção."


A Grande Lição

Talvez seja por isso que tantas pessoas continuam voltando para Conan, Berserk, Goblin Slayer e outras obras do gênero.

Elas não tratam o espectador como alguém que precisa de uma explicação para cada passo.

Confiam que você observará.

Interpretará.

Ligará os pontos.

Quando Goblin Slayer leva óleo para uma caverna, ninguém interrompe a narrativa para explicar por quê. Quando Conan examina um terreno antes de um combate, o filme não coloca um narrador dizendo "agora ele está montando uma estratégia". A história simplesmente mostra.

É a velha máxima do cinema e da literatura: "mostre, não conte".

No fim, Sword and Sorcery não fala sobre heróis perfeitos. Fala sobre pessoas imperfeitas tentando permanecer vivas em um mundo que não foi feito para elas. É uma fantasia onde a lama suja as botas, o aço perde o fio, a magia cobra juros e cada refeição pode ser a última antes da próxima batalha.

Talvez essa seja a maior diferença em relação a boa parte da fantasia contemporânea. Em vez de perguntar "como o protagonista vai desbloquear seu próximo poder?", Sword and Sorcery nos faz perguntar algo muito mais humano e muito mais antigo:

"Será que ele conseguirá voltar para casa antes do anoitecer?"

E, curiosamente, essa pergunta continua tão poderosa hoje quanto era quando Robert E. Howard começou a escrevê-la quase um século atrás. Algumas arquiteturas nunca envelhecem. Apenas continuam compilando, geração após geração.

P.S. Para Quem Achou Goblin Slayer "Pesado"... Ainda Existe um Andar Abaixo do Calabouço

Se Goblin Slayer foi a porta de entrada para a Dark Fantasy, saiba que ele está longe de representar o limite do gênero. Existem obras que mergulham ainda mais fundo na violência, na desesperança, na corrupção humana e nos dilemas morais. A seguir estão cinco excelentes exemplos para quem deseja explorar esse lado mais sombrio da fantasia.


1. Berserk (ベルセルク)

Título original: ベルセルク (Beruseruku)

Lançamento:

  • Mangá: 1989

  • Anime clássico: 1997 (25 episódios)

Autor
Kentaro Miura

Estúdio
OLM Team Iguchi

Classificação
+18

Resumo

Guts é um mercenário criado em um campo de batalha. Sua vida muda ao encontrar Griffith e a Tropa do Falcão. O sonho de construir um reino transforma-se em uma das maiores tragédias da história dos mangás.

Personagens

  • Guts

  • Griffith

  • Casca

  • Judeau

  • Pippin

  • Corkus

Por que é mais pesado?

Berserk aborda:

  • guerra

  • tortura

  • religião

  • insanidade

  • abuso psicológico

  • violência extrema

  • horror cósmico

O famoso Eclipse tornou-se uma das sequências mais impactantes da história dos animes.


2. Claymore (クレイモア)

Título original
クレイモア

Lançamento

  • Mangá: 2001

  • Anime: 2007

Autor

Norihiro Yagi

Estúdio

Madhouse

Classificação

+16

Resumo

Monstros chamados Yoma devoram seres humanos e assumem suas identidades. Apenas guerreiras híbridas entre humanas e Yoma conseguem enfrentá-los.

Personagens

  • Clare

  • Teresa

  • Raki

  • Miria

  • Helen

Temas

  • perda da humanidade

  • vingança

  • sacrifício

  • corrupção do poder

A atmosfera lembra Goblin Slayer, porém com monstros ainda mais assustadores.


3. Devilman Crybaby (デビルマン Crybaby)

Título original

デビルマン Crybaby

Lançamento

2018

Autor original

Go Nagai

Estúdio

Science SARU

Classificação

+18

Resumo

Akira torna-se um híbrido entre humano e demônio para enfrentar uma invasão demoníaca que coloca em dúvida a própria natureza da humanidade.

Personagens

  • Akira Fudo

  • Ryo Asuka

  • Miki Makimura

Por que é tão pesado?

Possui:

  • violência gráfica

  • nudez

  • sexo

  • massacres

  • colapso social

  • questionamentos filosóficos

É um dos poucos animes que realmente transmite uma sensação de apocalipse inevitável.


4. Shigurui (シグルイ)

Título original

シグルイ

Lançamento

2007

Autor

Takayuki Yamaguchi

Estúdio

Madhouse

Classificação

+18

Resumo

Durante o período Edo, dois samurais mutilados enfrentam-se em um duelo cuja origem revela décadas de obsessão, rivalidade e brutalidade.

Personagens

  • Fujiki Gennosuke

  • Irako Seigen

  • Kogan Iwamoto

Temática

Embora não tenha monstros, apresenta um dos retratos mais cruéis do Japão feudal.

Tudo dói.

Tudo custa caro.

Ninguém é herói.


5. Dororo (どろろ) — Versão 2019

Título original

どろろ

Lançamento original do mangá

1967

Anime moderno

2019

Autor

Osamu Tezuka

Estúdio

MAPPA / Tezuka Productions

Classificação

+16

Resumo

Um senhor feudal entrega partes do corpo de seu filho a demônios em troca de poder. O menino sobrevive e parte em uma jornada para recuperar cada parte perdida derrotando os próprios demônios.

Personagens

  • Hyakkimaru

  • Dororo

  • Daigo Kagemitsu

  • Tahomaru

Temas

  • guerra

  • fome

  • abandono

  • sacrifício

  • humanidade

É menos gráfico que Berserk, mas emocionalmente devastador.


Para quem deseja continuar descendo às profundezas...

Uma boa sequência de exploração seria:

  1. Goblin Slayer (+16) — sobrevivência e estratégia contra monstros "realistas".

  2. Claymore (+16) — horror medieval com guerreiras e criaturas grotescas.

  3. Dororo (+16) — fantasia trágica sobre identidade, perda e redenção.

  4. Shigurui (+18) — brutalidade humana sem elementos sobrenaturais, onde a violência nasce da obsessão.

  5. Berserk (+18) — a obra que redefiniu a Dark Fantasy moderna, influenciando mangás, animes e jogos por décadas.

  6. Devilman Crybaby (+18) — um mergulho no horror apocalíptico e na fragilidade da natureza humana.

Como curiosidade, Goblin Slayer costuma ser lembrado pelo impacto do primeiro episódio. Já Berserk e Devilman seguem um caminho diferente: eles aumentam gradualmente a tensão até atingirem momentos que marcaram a história dos animes. São obras que influenciaram desde Dark Souls e Elden Ring até inúmeros mangás e animes de fantasia sombria lançados nas últimas décadas.

 

sábado, 14 de dezembro de 2019

O Mistério do Arquivo que Nunca Pulava uma Linha : Como OPEN, READ, PROCESS, WRITE e CLOSE Mantêm o Mundo Financeiro Funcionando Enquanto a Cidade Dorme

 

Bellacosa Mainframe e o misterio do arquivo que nunca pulava uma linha

☕ Um Café no Bellacosa Mainframe

O Mistério do Arquivo que Nunca Pulava uma Linha

Como OPEN, READ, PROCESS, WRITE e CLOSE Mantêm o Mundo Financeiro Funcionando Enquanto a Cidade Dorme

A chuva caía fina sobre os telhados da cidade.

Lá fora, os últimos ônibus atravessavam avenidas quase vazias. As luzes dos escritórios já tinham sido apagadas, os gerentes haviam ido embora, os clientes dormiam convencidos de que o dinheiro continuava imóvel dentro dos bancos e os relógios avançavam silenciosamente em direção à madrugada.

Mas, no subsolo de um grande centro de processamento, as máquinas continuavam acordadas.

O operador do turno da noite segurava uma caneca de café já frio. Diante dele, telas negras exibiam letras verdes, números de jobs, nomes de datasets e mensagens do JES2. Um processamento importante estava prestes a começar.

Milhões de transações realizadas durante o dia seriam lidas, verificadas, calculadas, separadas e gravadas novamente.

Uma por uma.

Sem atalhos.

Sem improvisações.

Sem saltar registros.

Era o trabalho perfeito para o COBOL.

Naquela noite, um jovem programador chamado Arthur seria apresentado a um dos mecanismos mais antigos, simples e poderosos do mundo corporativo:

o processamento de arquivos sequenciais.

Ele ainda não sabia, mas estava prestes a descobrir que boa parte da economia moderna depende de um ciclo aparentemente humilde:

OPEN
READ
PROCESS
WRITE
CLOSE

Cinco palavras.

Cinco portas.

Cinco etapas que, executadas corretamente, podem processar milhões de registros durante uma única madrugada.


1. O arquivo que guardava tudo em ordem

Arthur observou o analista mais velho abrir um membro no editor ISPF.

— Este é o arquivo de transações do dia — disse o veterano.

Na tela apareciam linhas com tamanhos fixos:

0000000001PIX  000012500CLIENTE000001CLIENTE00098720260729
0000000002TED  000250000CLIENTE000122CLIENTE00145620260729
0000000003BOL  000008990CLIENTE000834EMPRESA00005520260729
0000000004SAQ  000050000CLIENTE000912ATM00000002320260729

Cada linha era um registro.

Cada registro representava uma ocorrência de negócio.

Uma transferência.

Um pagamento.

Um saque.

Uma operação realizada por alguém em algum lugar do país.

Aquelas linhas não estavam espalhadas aleatoriamente. Elas estavam armazenadas uma após a outra, em uma sequência definida.

Esse é o princípio básico de um arquivo sequencial.

Um arquivo sequencial armazena registros consecutivamente. Para chegar ao registro número 500, o programa normalmente precisa passar pelos 499 registros anteriores.

É como ler um romance.

Você começa na primeira página.

Depois lê a segunda.

Depois a terceira.

Não se chega naturalmente à solução do mistério começando pela página 317.

No mundo COBOL, o programa lê um registro, processa aquele conteúdo e segue para o próximo.

REGISTRO 1
REGISTRO 2
REGISTRO 3
REGISTRO 4
...
REGISTRO N

A simplicidade desse modelo é exatamente o que o torna tão eficiente para grandes processamentos em lote.


2. Sequencial não significa ultrapassado

Muitos iniciantes cometem um erro de julgamento.

Ao ouvir a palavra “sequencial”, imaginam algo lento, antigo e inferior a bancos de dados modernos.

Nada poderia estar mais distante da realidade.

Arquivos sequenciais continuam extremamente úteis quando o objetivo é processar praticamente todos os registros de um conjunto de dados.

Imagine uma empresa que precisa calcular a folha de pagamento de 200 mil funcionários.

Ela não quer localizar apenas um funcionário.

Ela quer processar todos.

Nesse caso, ler o arquivo inteiro sequencialmente é uma estratégia lógica e eficiente.

O mesmo vale para:

  • fechamento bancário;

  • cálculo de juros;

  • emissão de faturas;

  • geração de extratos;

  • consolidação contábil;

  • processamento de apólices;

  • cálculo de comissões;

  • envio de informações fiscais;

  • classificação de transações;

  • produção de relatórios gerenciais.

O arquivo sequencial não tenta ser uma solução para tudo.

Ele é uma solução excelente para aquilo que foi criado para fazer:

processar grandes volumes de registros em ordem.


3. A herança das fitas magnéticas

Para entender a força do processamento sequencial, é preciso visitar o passado.

Nas décadas iniciais da computação comercial, muitos dados eram armazenados em fitas magnéticas.

A fita era um meio naturalmente sequencial.

Para acessar um registro localizado no meio dela, era necessário avançar fisicamente pelos dados anteriores.

Algo parecido com uma fita cassete.

Quem viveu a era das fitas de áudio sabe como funcionava.

Para ouvir a quinta música, você precisava avançar a fita até o ponto correto. Não havia um índice eletrônico instantâneo como em um aplicativo moderno.

Os primeiros sistemas corporativos foram construídos respeitando essa característica.

E o COBOL nasceu exatamente nesse ambiente.

Por isso, seu modelo de processamento de arquivos é tão natural:

ABRIR A FITA
LER UM REGISTRO
PROCESSAR
LER O PRÓXIMO
PROCESSAR
CONTINUAR ATÉ O FIM
FECHAR A FITA

Mesmo quando os discos substituíram as fitas em muitos cenários, o modelo continuou útil.

Hoje, o dataset pode estar em disco, em armazenamento virtualizado ou em uma infraestrutura moderna de alta velocidade. Ainda assim, o programa pode tratá-lo como um fluxo ordenado de registros.

A tecnologia física mudou.

A lógica permaneceu.


4. A anatomia de um programa COBOL com arquivo

O veterano apontou para a estrutura do programa.

— Para um arquivo existir dentro do COBOL, você precisa apresentá-lo formalmente ao programa.

Um programa de arquivo sequencial envolve várias divisões e seções importantes.

Normalmente, encontramos:

IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.

Cada parte possui uma responsabilidade.

IDENTIFICATION DIVISION

Identifica o programa.

IDENTIFICATION DIVISION.
PROGRAM-ID. RELATORIO-FUNCIONARIOS.

Aqui o programa recebe um nome.

Parece apenas burocracia, mas nomes são importantes em ambientes corporativos. Eles ajudam na compilação, catalogação, documentação e manutenção.

ENVIRONMENT DIVISION

Relaciona o programa com o ambiente externo.

É aqui que o arquivo lógico do COBOL é associado a uma identificação externa.

ENVIRONMENT DIVISION.

INPUT-OUTPUT SECTION.
FILE-CONTROL.

    SELECT EMPLOYEE-FILE
        ASSIGN TO EMPFILE
        ORGANIZATION IS SEQUENTIAL
        FILE STATUS IS WS-EMP-STATUS.

Observe os elementos.

SELECT EMPLOYEE-FILE

Define o nome lógico que o programa utilizará.

ASSIGN TO EMPFILE

Relaciona o arquivo COBOL ao nome externo usado pelo ambiente de execução.

Em um job z/OS, esse nome geralmente se conecta a um DD statement do JCL.

ORGANIZATION IS SEQUENTIAL

Declara que o arquivo será tratado sequencialmente.

FILE STATUS IS WS-EMP-STATUS

Define uma variável que receberá o resultado de cada operação realizada sobre o arquivo.

Esse último item é fundamental para programas de produção.


5. O elo entre COBOL e JCL

O COBOL conhece o nome lógico.

O JCL conhece o dataset físico.

Essa ligação ocorre por meio do DDNAME.

No COBOL:

SELECT EMPLOYEE-FILE
    ASSIGN TO EMPFILE.

No JCL:

//EMPFILE  DD DSN=EMPRESA.RH.FUNCIONARIOS,
//            DISP=SHR

O COBOL diz:

“Quero trabalhar com EMPFILE.”

O JCL responde:

“EMPFILE corresponde ao dataset EMPRESA.RH.FUNCIONARIOS.”

Essa separação é extremamente poderosa.

O programa não precisa conhecer o nome físico definitivo do arquivo.

Em desenvolvimento, o mesmo programa pode usar:

DSN=DEV.RH.FUNCIONARIOS

Em homologação:

DSN=HML.RH.FUNCIONARIOS

Em produção:

DSN=PRD.RH.FUNCIONARIOS

O código COBOL permanece o mesmo.

Apenas o JCL muda.

É uma forma antiga e elegante de desacoplamento entre programa e ambiente.

Muito antes de a palavra “configuração externa” virar moda em arquiteturas modernas, o mainframe já fazia isso.


6. A FILE SECTION e o formato do registro

Na DATA DIVISION, o programa descreve como cada registro deve ser interpretado.

DATA DIVISION.

FILE SECTION.

FD  EMPLOYEE-FILE.

01  EMPLOYEE-RECORD.
    05 EMP-ID          PIC 9(5).
    05 EMP-NAME        PIC X(30).
    05 EMP-DEPARTMENT  PIC X(10).
    05 EMP-SALARY      PIC 9(7)V99.

O FD significa File Description.

Ele apresenta as características lógicas do arquivo.

Logo abaixo, temos o layout do registro.

01 EMPLOYEE-RECORD.

Esse grupo representa o registro completo lido do arquivo.

Os campos internos descrevem posições específicas.

05 EMP-ID PIC 9(5).

Número do funcionário com cinco dígitos.

05 EMP-NAME PIC X(30).

Nome com trinta caracteres.

05 EMP-DEPARTMENT PIC X(10).

Departamento com dez caracteres.

05 EMP-SALARY PIC 9(7)V99.

Salário com sete dígitos inteiros e duas casas decimais implícitas.

O V não ocupa uma posição física no arquivo. Ele representa uma vírgula decimal lógica.

Por exemplo, o conteúdo:

000350000

pode representar:

R$ 3.500,00

dependendo da definição do campo.

É importante observar que o arquivo sequencial normalmente não carrega separadores visuais entre campos.

O programa sabe onde cada campo começa e termina graças ao layout.


7. Um registro é uma fotografia do negócio

Cada registro pode ser visto como uma pequena fotografia de um evento corporativo.

Em uma folha de pagamento:

FUNCIONÁRIO
SALÁRIO
DEPARTAMENTO
HORAS EXTRAS
DESCONTOS

Em uma transação bancária:

CONTA
AGÊNCIA
VALOR
TIPO DE OPERAÇÃO
DATA

Em um sistema de seguros:

APÓLICE
CLIENTE
PRÊMIO
COBERTURA
VIGÊNCIA

O COBOL lê essa fotografia e interpreta cada pedaço segundo as regras do layout.

Se o layout estiver errado, a interpretação estará errada.

Um campo de valor pode ser lido como data.

Um nome pode invadir o campo de departamento.

Um código pode ficar deslocado.

Por isso, conhecer o layout do arquivo é uma das tarefas mais importantes para qualquer programador COBOL.

Em muitos incidentes de produção, o programa está tecnicamente correto.

O problema é que o arquivo recebido não respeita o layout esperado.


8. OPEN: a porta do arquivo

Nenhuma operação pode começar antes do OPEN.

OPEN INPUT EMPLOYEE-FILE

O OPEN prepara o arquivo para uso.

Ele informa ao ambiente de execução qual será o tipo de acesso.

Existem quatro modos principais.

OPEN INPUT

Usado para leitura.

OPEN INPUT EMPLOYEE-FILE

Operações típicas:

READ EMPLOYEE-FILE

O programa não pode gravar nesse arquivo.

OPEN OUTPUT

Usado para criar ou preparar um arquivo de saída.

OPEN OUTPUT REPORT-FILE

Depois, o programa pode executar:

WRITE REPORT-RECORD

É preciso atenção.

Em muitos cenários, abrir um arquivo como OUTPUT significa iniciar um novo conteúdo. O arquivo anterior pode ser substituído conforme a configuração do ambiente.

OPEN EXTEND

Usado para acrescentar registros ao final de um arquivo existente.

OPEN EXTEND LOG-FILE

É útil para arquivos de log ou históricos acumulativos.

OPEN I-O

Usado quando o programa precisa ler e atualizar o arquivo.

OPEN I-O CUSTOMER-FILE

Esse modo é mais comum em arquivos que suportam atualização apropriada, como certos cenários com VSAM.

Em arquivos sequenciais tradicionais, atualizações no meio do arquivo exigem estratégias específicas e frequentemente envolvem a geração de um novo arquivo.


9. O FILE STATUS: o informante que nunca deve ser ignorado

O veterano aproximou a cadeira.

— Programador iniciante acredita que um OPEN sempre funciona. Programador experiente pergunta o que aconteceu depois do OPEN.

Para isso existe o FILE STATUS.

01 WS-EMP-STATUS PIC XX.

Após uma operação:

OPEN INPUT EMPLOYEE-FILE

o programa verifica:

IF WS-EMP-STATUS NOT = '00'
    DISPLAY 'ERRO NO OPEN: ' WS-EMP-STATUS
    STOP RUN
END-IF

O código "00" normalmente indica sucesso.

Outros códigos podem indicar situações como:

  • arquivo inexistente;

  • modo de acesso incorreto;

  • fim do arquivo;

  • registro duplicado;

  • arquivo não aberto;

  • erro lógico ou físico.

O FILE STATUS é uma testemunha silenciosa.

Ele não impede o erro.

Mas informa exatamente que algo não saiu como esperado.

Ignorá-lo é como investigar um crime e desprezar a única pessoa que viu o suspeito.


10. READ: um registro de cada vez

Após abrir o arquivo, o programa começa a leitura.

READ EMPLOYEE-FILE

Cada READ transfere um registro do arquivo para a área definida na FILE SECTION.

O programa não recebe o arquivo inteiro.

Recebe apenas o registro atual.

Exemplo:

Arquivo:

00001ARTHUR COSTA                  TI        000750000
00002MARIA SILVA                   RH        000620000
00003JOAO PEREIRA                  FIN       000810000

Primeiro READ:

EMP-ID         = 00001
EMP-NAME       = ARTHUR COSTA
EMP-DEPARTMENT = TI
EMP-SALARY     = 000750000

Segundo READ:

EMP-ID         = 00002
EMP-NAME       = MARIA SILVA
EMP-DEPARTMENT = RH
EMP-SALARY     = 000620000

Cada leitura substitui o conteúdo anterior da área do registro.

Se o programa precisa preservar dados de registros anteriores, deve movê-los para variáveis de trabalho ou acumuladores.


11. O fim do arquivo: AT END

Todo arquivo termina.

O programa precisa saber quando não existem mais registros.

READ EMPLOYEE-FILE
    AT END
        MOVE 'Y' TO WS-END-OF-FILE
END-READ

Uma flag simples pode controlar todo o loop.

01 WS-END-OF-FILE PIC X VALUE 'N'.

Enquanto o valor for "N", ainda existem registros a processar.

Quando se torna "Y", a leitura terminou.

Uma abordagem tradicional é:

PERFORM UNTIL WS-END-OF-FILE = 'Y'
    READ EMPLOYEE-FILE
        AT END
            MOVE 'Y' TO WS-END-OF-FILE
        NOT AT END
            PERFORM PROCESS-EMPLOYEE
    END-READ
END-PERFORM

Essa estrutura é clara e segura.

O processamento ocorre apenas quando o READ realmente encontrou um registro.


12. A leitura antecipada

Existe outra técnica muito comum em COBOL batch.

Ela é chamada informalmente de priming read, ou leitura inicial.

O programa faz uma leitura antes do loop.

PERFORM READ-EMPLOYEE

PERFORM UNTIL WS-END-OF-FILE = 'Y'
    PERFORM PROCESS-EMPLOYEE
    PERFORM READ-EMPLOYEE
END-PERFORM

O parágrafo de leitura:

READ-EMPLOYEE.

    READ EMPLOYEE-FILE
        AT END
            MOVE 'Y' TO WS-END-OF-FILE
        NOT AT END
            ADD 1 TO WS-READ-COUNT
    END-READ.

Essa abordagem separa melhor as responsabilidades.

O loop principal fica fácil de entender:

LER O PRIMEIRO
ENQUANTO NÃO TERMINAR
    PROCESSAR
    LER O PRÓXIMO
FIM

É um padrão extremamente comum em programas COBOL tradicionais.


13. PROCESS: onde mora a inteligência do negócio

O arquivo apenas fornece dados.

O parágrafo de processamento decide o que fazer com eles.

PROCESS-EMPLOYEE.

    IF EMP-SALARY > 000700000
        ADD 1 TO WS-HIGH-SALARY-COUNT
    END-IF.

Mas programas reais fazem muito mais.

Podem:

  • calcular impostos;

  • verificar faixas salariais;

  • aplicar juros;

  • classificar clientes;

  • validar códigos;

  • detectar inconsistências;

  • acumular totais;

  • produzir registros de erro;

  • decidir qual arquivo receberá o registro;

  • montar linhas de relatório.

Exemplo de cálculo de bônus:

IF EMP-DEPARTMENT = 'VENDAS'
    COMPUTE WS-BONUS = EMP-SALARY * 0.10
ELSE
    COMPUTE WS-BONUS = EMP-SALARY * 0.05
END-IF

Suponha um salário de:

R$ 5.000,00

Para o departamento de vendas:

Bônus = R$ 500,00

Para outro departamento:

Bônus = R$ 250,00

O COBOL é particularmente forte nesse tipo de regra clara, determinística e repetitiva.


14. Acumuladores e contadores

Programas de arquivo sequencial quase sempre utilizam contadores e acumuladores.

Contador de registros lidos

ADD 1 TO WS-READ-COUNT

Contador de registros gravados

ADD 1 TO WS-WRITE-COUNT

Acumulador de valores

ADD EMP-SALARY TO WS-TOTAL-SALARY

No final, o programa pode exibir:

REGISTROS LIDOS    : 00000200
REGISTROS GRAVADOS : 00000198
REGISTROS REJEITADOS: 00000002
TOTAL DE SALÁRIOS  : R$ 945.300,00

Esses totais são importantes para reconciliação.

Se foram lidos 200 registros, mas apenas 198 foram gravados, os outros dois precisam estar explicados.

Talvez tenham sido rejeitados.

Talvez tenham sido enviados para um arquivo de erros.

Talvez exista um defeito.

Em produção, números de controle são pistas essenciais.


15. WRITE: transformando processamento em resultado

Depois de processar um registro, o programa pode gravar uma saída.

WRITE REPORT-RECORD

Antes do WRITE, normalmente o programa monta o registro de saída.

MOVE EMP-ID         TO OUT-EMP-ID
MOVE EMP-NAME       TO OUT-EMP-NAME
MOVE EMP-SALARY     TO OUT-EMP-SALARY
MOVE WS-BONUS       TO OUT-BONUS

WRITE REPORT-RECORD

O arquivo de saída pode ter um layout diferente do arquivo de entrada.

Entrada:

ID
NOME
DEPARTAMENTO
SALÁRIO

Saída:

ID
NOME
SALÁRIO
BÔNUS
SALÁRIO FINAL

Esse é um dos padrões mais clássicos do batch:

ARQUIVO DE ENTRADA
        ↓
   PROGRAMA COBOL
        ↓
ARQUIVO DE SAÍDA

O programa atua como uma máquina de transformação.


16. Arquivos de rejeição

Programas robustos não encerram necessariamente por causa de um único registro inválido.

Em muitos casos, o registro problemático é enviado para um arquivo separado.

IF EMP-ID IS NOT NUMERIC
    MOVE EMPLOYEE-RECORD TO REJECT-RECORD
    WRITE REJECT-RECORD
    ADD 1 TO WS-REJECT-COUNT
ELSE
    PERFORM PROCESS-VALID-EMPLOYEE
END-IF

Assim, o processamento principal continua.

No final, uma equipe pode analisar os registros rejeitados.

Esse desenho é comum em integrações de grande volume.

Um arquivo com um milhão de registros não deve necessariamente ser descartado inteiro porque três linhas estão incorretas.

Tudo depende da regra de negócio e do nível de criticidade.


17. CLOSE: o último ato do caso

Depois do último registro, os arquivos precisam ser fechados.

CLOSE EMPLOYEE-FILE
      REPORT-FILE
      REJECT-FILE

O CLOSE faz mais do que encerrar formalmente o uso.

Ele permite que o sistema:

  • descarregue buffers pendentes;

  • finalize gravações;

  • libere recursos;

  • complete operações de entrada e saída;

  • mantenha a consistência do arquivo.

Um programa disciplinado abre, usa e fecha corretamente seus arquivos.

O CLOSE é o momento em que o detetive guarda as provas, fecha o armário e registra oficialmente o fim da investigação.


18. Um programa completo comentado

A seguir, um exemplo didático.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. EMPREPORT.

       ENVIRONMENT DIVISION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT EMPLOYEE-FILE
               ASSIGN TO EMPFILE
               ORGANIZATION IS SEQUENTIAL
               FILE STATUS IS WS-EMP-STATUS.

           SELECT REPORT-FILE
               ASSIGN TO REPORT
               ORGANIZATION IS SEQUENTIAL
               FILE STATUS IS WS-REP-STATUS.

       DATA DIVISION.

       FILE SECTION.

       FD  EMPLOYEE-FILE.

       01  EMPLOYEE-RECORD.
           05 EMP-ID              PIC 9(5).
           05 EMP-NAME            PIC X(30).
           05 EMP-DEPARTMENT      PIC X(10).
           05 EMP-SALARY          PIC 9(7)V99.

       FD  REPORT-FILE.

       01  REPORT-RECORD.
           05 OUT-EMP-ID          PIC 9(5).
           05 FILLER              PIC X VALUE SPACE.
           05 OUT-EMP-NAME        PIC X(30).
           05 FILLER              PIC X VALUE SPACE.
           05 OUT-BONUS           PIC 9(7)V99.

       WORKING-STORAGE SECTION.

       01  WS-END-OF-FILE         PIC X VALUE 'N'.
           88 END-OF-FILE         VALUE 'Y'.
           88 NOT-END-OF-FILE     VALUE 'N'.

       01  WS-EMP-STATUS          PIC XX.
       01  WS-REP-STATUS          PIC XX.

       01  WS-BONUS               PIC 9(7)V99 VALUE ZERO.

       01  WS-COUNTERS.
           05 WS-READ-COUNT       PIC 9(9) VALUE ZERO.
           05 WS-WRITE-COUNT      PIC 9(9) VALUE ZERO.

       PROCEDURE DIVISION.

       MAIN-PROCESS.

           PERFORM OPEN-FILES

           IF WS-EMP-STATUS = '00'
              AND WS-REP-STATUS = '00'

               PERFORM READ-EMPLOYEE

               PERFORM UNTIL END-OF-FILE
                   PERFORM PROCESS-EMPLOYEE
                   PERFORM WRITE-REPORT
                   PERFORM READ-EMPLOYEE
               END-PERFORM

           END-IF

           PERFORM CLOSE-FILES
           PERFORM DISPLAY-TOTALS

           STOP RUN.

       OPEN-FILES.

           OPEN INPUT  EMPLOYEE-FILE
                OUTPUT REPORT-FILE

           IF WS-EMP-STATUS NOT = '00'
               DISPLAY 'ERRO OPEN EMPFILE: ' WS-EMP-STATUS
           END-IF

           IF WS-REP-STATUS NOT = '00'
               DISPLAY 'ERRO OPEN REPORT: ' WS-REP-STATUS
           END-IF.

       READ-EMPLOYEE.

           READ EMPLOYEE-FILE
               AT END
                   SET END-OF-FILE TO TRUE
               NOT AT END
                   ADD 1 TO WS-READ-COUNT
           END-READ.

       PROCESS-EMPLOYEE.

           IF EMP-DEPARTMENT = 'VENDAS'
               COMPUTE WS-BONUS = EMP-SALARY * 0.10
           ELSE
               COMPUTE WS-BONUS = EMP-SALARY * 0.05
           END-IF.

       WRITE-REPORT.

           INITIALIZE REPORT-RECORD

           MOVE EMP-ID     TO OUT-EMP-ID
           MOVE EMP-NAME   TO OUT-EMP-NAME
           MOVE WS-BONUS   TO OUT-BONUS

           WRITE REPORT-RECORD

           IF WS-REP-STATUS = '00'
               ADD 1 TO WS-WRITE-COUNT
           ELSE
               DISPLAY 'ERRO WRITE REPORT: ' WS-REP-STATUS
           END-IF.

       CLOSE-FILES.

           CLOSE EMPLOYEE-FILE
                 REPORT-FILE.

       DISPLAY-TOTALS.

           DISPLAY 'REGISTROS LIDOS   : ' WS-READ-COUNT
           DISPLAY 'REGISTROS GRAVADOS: ' WS-WRITE-COUNT.

Esse programa ilustra os principais conceitos:

  • definição do arquivo;

  • associação externa;

  • layout do registro;

  • FILE STATUS;

  • abertura;

  • leitura;

  • detecção de fim;

  • processamento;

  • gravação;

  • fechamento;

  • contagem de registros.


19. O fluxo mental que o iniciante deve dominar

Antes de escrever qualquer código, desenhe o fluxo.

INÍCIO
  |
ABRIR ARQUIVOS
  |
OPEN FUNCIONOU?
  |
  +-- NÃO → INFORMAR ERRO E ENCERRAR
  |
  +-- SIM
        |
      LER PRIMEIRO REGISTRO
        |
      FIM DO ARQUIVO?
        |
        +-- SIM → FECHAR ARQUIVOS
        |
        +-- NÃO
              |
           VALIDAR
              |
           PROCESSAR
              |
           GRAVAR
              |
           LER PRÓXIMO
              |
           VOLTAR AO TESTE

Se esse fluxo estiver claro, o código será apenas a tradução da lógica.

O erro mais comum é começar pela sintaxe sem entender o ciclo.

O COBOL não é difícil porque possui palavras em inglês.

Ele se torna difícil quando o programador não sabe qual é o estado do arquivo em cada momento.

Pergunte sempre:

  • o arquivo já foi aberto?

  • o registro atual é válido?

  • o fim do arquivo já foi atingido?

  • a gravação funcionou?

  • os arquivos foram fechados?

  • quantos registros foram lidos?

  • quantos foram gravados?

  • houve rejeições?


20. Arquivo sequencial fixo e variável

Nem todo arquivo sequencial possui registros do mesmo tamanho.

No z/OS, dois formatos muito conhecidos são:

FB — Fixed Blocked

Registros de tamanho fixo.

Exemplo:

LRECL=80

Cada registro possui exatamente 80 bytes.

Se um nome ocupa apenas 20 posições de um campo de 30, as posições restantes normalmente são preenchidas com espaços.

VB — Variable Blocked

Registros de tamanho variável.

Cada registro pode possuir um tamanho diferente, dentro dos limites definidos.

Programadores iniciantes costumam trabalhar primeiro com arquivos fixos porque o layout é mais direto.

Ao receber um arquivo, procure conhecer:

  • RECFM;

  • LRECL;

  • BLKSIZE;

  • codificação;

  • layout;

  • quantidade esperada de registros;

  • origem;

  • destino;

  • critérios de validação.

Um programa pode compilar perfeitamente e ainda assim falhar porque o LRECL não corresponde ao layout.


21. O truque dos buffers

Quando o COBOL executa:

READ EMPLOYEE-FILE

parece que o sistema busca fisicamente apenas aquele registro.

Na prática, o sistema pode usar buffers.

Um bloco contendo vários registros é lido para a memória.

O programa recebe um registro por vez, mas o sistema reduz a quantidade de acessos físicos ao dispositivo.

Esse mecanismo melhora muito o desempenho.

Imagine um arquivo com um milhão de registros.

Buscar cada registro individualmente no dispositivo seria caro.

Ler blocos maiores e entregar os registros gradualmente é muito mais eficiente.

Esse detalhe é quase invisível para o programador, mas explica parte da enorme capacidade de throughput dos ambientes mainframe.


22. Sequencial versus VSAM KSDS

Arthur fez a pergunta inevitável:

— E se eu quiser buscar apenas o funcionário 54321?

O veterano sorriu.

— Então talvez você não queira um arquivo sequencial.

Em um arquivo sequencial, para encontrar um registro localizado no meio do arquivo, o programa normalmente precisa ler os anteriores.

Já um VSAM KSDS utiliza uma chave e uma estrutura indexada.

Pode localizar diretamente um registro específico.

Arquivo sequencial

Ideal para:

  • processamento completo;

  • relatórios;

  • interfaces;

  • cargas;

  • extrações;

  • ordenações;

  • consolidações batch.

VSAM KSDS

Ideal para:

  • acesso por chave;

  • consultas online;

  • atualizações de registros específicos;

  • aplicações CICS;

  • recuperação rápida de dados individuais.

A escolha depende da necessidade.

Não existe tecnologia universalmente superior.

Existe arquitetura adequada ao problema.


23. Erros clássicos de iniciantes

Processar depois do fim do arquivo

Erro:

READ EMPLOYEE-FILE
PERFORM PROCESS-EMPLOYEE

Se o READ encontrou o fim do arquivo, o programa pode processar dados antigos que ainda estão na área do registro.

Forma segura:

READ EMPLOYEE-FILE
    AT END
        SET END-OF-FILE TO TRUE
    NOT AT END
        PERFORM PROCESS-EMPLOYEE
END-READ

Não verificar o OPEN

O programa tenta ler um arquivo que não foi aberto corretamente.

Abrir em modo errado

Abrir como INPUT e tentar gravar.

Esquecer de inicializar o registro de saída

Campos podem carregar conteúdo da gravação anterior.

INITIALIZE REPORT-RECORD

pode ajudar, desde que usado conscientemente.

Não validar campos numéricos

Um campo definido como numérico pode receber conteúdo inválido do arquivo externo.

Antes de calcular:

IF EMP-SALARY IS NUMERIC
    CONTINUE
ELSE
    PERFORM REJECT-RECORD
END-IF

Ignorar contadores

Sem total de entrada e saída, a reconciliação fica muito mais difícil.

Misturar tudo no mesmo parágrafo

Programas tornam-se confusos quando OPEN, READ, cálculo, WRITE e CLOSE são escritos em um único bloco gigantesco.

Separar responsabilidades facilita testes e manutenção.


24. Dicas de sobrevivência no turno da madrugada

Dica 1 — Sempre conheça o layout

Não programe com base em suposições.

Dica 2 — Use FILE STATUS

Especialmente em OPEN, READ e WRITE.

Dica 3 — Conte tudo

Registros lidos, processados, gravados e rejeitados.

Dica 4 — Separe leitura, processamento e escrita

Parágrafos pequenos são mais fáceis de analisar.

Dica 5 — Preserve o registro original quando necessário

Antes de alterar campos de entrada:

MOVE EMPLOYEE-RECORD TO WS-ORIGINAL-RECORD

Dica 6 — Planeje o tratamento de arquivo vazio

Um arquivo vazio pode ser perfeitamente válido.

O primeiro READ retornará fim do arquivo.

Dica 7 — Diferencie erro técnico de erro de negócio

Arquivo inexistente é erro técnico.

Salário negativo pode ser erro de negócio.

Eles exigem tratamentos diferentes.

Dica 8 — Registre mensagens úteis

Evite:

DEU ERRO

Prefira:

ERRO AO ABRIR EMPFILE. FILE STATUS: 35

Quanto melhor a mensagem, menor o tempo de investigação.


25. O exemplo do fechamento bancário

Imagine um banco realizando o fechamento do dia.

Arquivo de entrada:

TRANSACTIONS.DAT

Cada registro contém:

NÚMERO DA TRANSAÇÃO
TIPO
CONTA DE ORIGEM
CONTA DE DESTINO
VALOR
DATA
HORÁRIO

O programa executa:

  1. abre o arquivo de transações;

  2. abre o arquivo de relatório;

  3. abre o arquivo de rejeições;

  4. lê a primeira transação;

  5. valida contas e valores;

  6. classifica a operação;

  7. soma os totais;

  8. grava o resultado;

  9. lê a próxima;

  10. repete até o fim;

  11. fecha todos os arquivos;

  12. mostra os totais de controle.

Ao final:

TRANSAÇÕES LIDAS      : 12.500.000
TRANSAÇÕES PROCESSADAS: 12.499.982
TRANSAÇÕES REJEITADAS : 18
TOTAL PIX             : R$ 987.500.320,18
TOTAL TED             : R$ 145.830.000,00
TOTAL BOLETOS         : R$ 82.114.942,11

Esses números não são apenas informativos.

Eles ajudam a provar que o processamento foi completo e coerente.


26. A analogia com Inteligência Artificial

A comparação com uma IA lendo um documento é interessante.

Imagine um documento com 500 páginas.

A IA precisa:

  1. receber o conteúdo;

  2. interpretar cada parte;

  3. identificar informações relevantes;

  4. manter contexto;

  5. produzir um resumo.

O COBOL faz algo conceitualmente parecido com um arquivo sequencial.

Ele:

  1. abre o arquivo;

  2. lê um registro;

  3. interpreta os campos;

  4. aplica regras;

  5. acumula informações;

  6. grava um resultado;

  7. continua até o fim.

A diferença está no objetivo.

A IA pode produzir uma síntese textual.

O COBOL pode produzir:

  • uma folha de pagamento;

  • um extrato;

  • uma posição contábil;

  • um arquivo fiscal;

  • uma fatura;

  • uma lista de clientes;

  • uma interface para outro sistema.

Nos dois casos, existe um fluxo de entrada, interpretação e saída.


27. Curiosidades do mundo sequencial

A simplicidade é uma vantagem

Sistemas sequenciais possuem poucos estados e um fluxo previsível. Isso facilita auditoria e repetição.

Um arquivo pode alimentar vários programas

Um programa gera o arquivo A.

Outro programa lê A e produz B.

Um terceiro lê B e atualiza um banco de dados.

Essa cadeia forma um fluxo batch.

Arquivos podem ser checkpoints naturais

Em alguns processos, cada etapa gera uma saída persistente. Se a etapa seguinte falhar, não é necessário repetir tudo desde o começo.

SORT é companheiro frequente do COBOL

Muitos arquivos precisam ser classificados antes do processamento.

Um utilitário SORT pode ordenar por conta, data, agência ou código antes de entregar os dados ao programa COBOL.

O conteúdo pode viajar entre plataformas

Arquivos gerados no mainframe podem alimentar sistemas distribuídos, ambientes de analytics, data lakes e APIs.

O conceito é antigo.

A integração continua moderna.


28. Perguntas de entrevista

O que é um arquivo sequencial?

É um arquivo no qual os registros são armazenados e normalmente acessados em ordem, um após o outro.

Quais são as operações básicas?

OPEN
READ
PROCESS
WRITE
CLOSE

Como o programa identifica o fim do arquivo?

Por meio da cláusula AT END, do FILE STATUS ou de ambos, conforme a implementação.

Qual a diferença entre INPUT e OUTPUT?

INPUT abre para leitura.

OUTPUT abre para gravação de um novo conteúdo.

Para que serve EXTEND?

Para acrescentar novos registros ao final de um arquivo.

Por que usar FILE STATUS?

Para verificar o resultado de operações realizadas no arquivo.

O que é um FD?

É a descrição do arquivo na FILE SECTION.

Onde o arquivo físico é definido no z/OS?

Normalmente no JCL, por meio de um DD statement relacionado ao nome usado em ASSIGN TO.

Um arquivo sequencial é adequado para consulta direta por chave?

Geralmente não. Para acesso direto por chave, um formato indexado como VSAM KSDS pode ser mais apropriado.


29. Easter egg: o registro número 1959

Arthur passou horas testando o programa.

Ao final, o arquivo de entrada continha exatamente 1.959 registros.

O número chamou sua atenção.

— Por que 1959? — perguntou.

O veterano olhou para a tela e respondeu:

— Foi o ano em que o CODASYL começou a organizar as bases daquilo que se tornaria o COBOL.

Arthur abriu o último registro.

No campo de observação havia uma mensagem estranha:

READ THE RECORD. TRUST THE STATUS.

Ele riu.

Parecia uma brincadeira deixada por algum programador décadas antes.

Mas o veterano não riu.

— Nunca ignore uma mensagem antiga em produção.

Arthur verificou o FILE STATUS.

10

Fim de arquivo.

Tudo normal.

Ele fechou o dataset e pensou que o mistério havia terminado.

Foi então que percebeu um detalhe.

O contador mostrava:

REGISTROS LIDOS: 000001958

Faltava um.

O programa havia encerrado o loop antes de processar o último registro.

O erro estava na posição da leitura.

A condição de fim era testada no momento errado.

Arthur corrigiu a lógica:

PERFORM READ-EMPLOYEE

PERFORM UNTIL END-OF-FILE
    PERFORM PROCESS-EMPLOYEE
    PERFORM READ-EMPLOYEE
END-PERFORM

Executou novamente.

REGISTROS LIDOS: 000001959

Agora tudo estava certo.

O último registro havia sido processado.

O veterano tomou um gole de café e finalmente sorriu.

— O arquivo nunca mente. O loop, às vezes, sim.


30. O ensinamento final

O processamento sequencial pode parecer simples.

E realmente é.

Mas simplicidade não significa falta de profundidade.

Para dominar arquivos sequenciais, o programador precisa compreender:

  • organização dos dados;

  • layout de registros;

  • relação entre COBOL e JCL;

  • modos de abertura;

  • leitura segura;

  • fim de arquivo;

  • regras de negócio;

  • gravação;

  • FILE STATUS;

  • contadores;

  • rejeições;

  • reconciliação;

  • desempenho;

  • fechamento correto.

Esses princípios aparecem em incontáveis aplicações corporativas.

Quando um banco fecha o movimento do dia, um arquivo sequencial pode estar envolvido.

Quando uma seguradora recalcula milhares de apólices, um arquivo sequencial pode estar envolvido.

Quando o governo processa benefícios, impostos ou registros administrativos, um arquivo sequencial pode estar envolvido.

Quando uma empresa gera a folha de pagamento, novamente ele pode estar lá.

Silencioso.

Disciplinado.

Registro por registro.


Epílogo — O último CLOSE

Já passava das quatro da manhã.

O job terminou com sucesso.

MAXCC=0000

Os arquivos de saída estavam completos.

Os totais conferiam.

Nenhuma transação havia sido perdida.

Arthur fechou o editor, mas permaneceu alguns segundos olhando para a tela.

Agora entendia que o COBOL não era apenas uma linguagem antiga cercada por terminais verdes e histórias de veteranos.

Era uma ferramenta construída para tratar dados com ordem, previsibilidade e responsabilidade.

Antes de ir embora, ele escreveu em seu caderno:

OPEN  — abra a porta com cuidado.
READ  — examine uma evidência por vez.
PROCESS — aplique a lógica sem preconceitos.
WRITE — registre aquilo que foi descoberto.
CLOSE — encerre o caso corretamente.

Do lado de fora, a chuva havia parado.

A cidade começava a acordar.

Milhões de pessoas abririam aplicativos, consultariam saldos, receberiam pagamentos e examinariam extratos sem imaginar que, durante a madrugada, um programa COBOL havia percorrido silenciosamente um enorme arquivo.

Uma linha após a outra.

Um registro após o outro.

Até o fim.

E, como todo bom detetive das antigas, o programa só abandonou o local depois de executar o comando final:

CLOSE EMPLOYEE-FILE
      REPORT-FILE.

STOP RUN.

Caso encerrado.

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