Translate

quinta-feira, 31 de outubro de 2013

Sardinhas na brasa a portuguesa.

O prato mais saboroso do verão português

Vou partilhar com vocês o prato da culinária portuguesa que mais me encanta no final da primavera/inicio do verão.

Estou falando das Sardinhas na Brasa, comidas em todo território português e também no mundo todo onde tiver um imigrante português.




Um prato super simples de fazer, mas com um sabor único que me faz ficar com agua na boca so de lembrar.

Quer tentar fazer em casa? Compre sardinhas inteiras bem gordas, tire as escamas com uma faca, use muito sal grosso e deixe descansar por uma hora.

Acenda o carvão na churrasqueira na altura que estiver bem quente, ponha as sardinhas na brasa e va virando para não deixar ficar muito seca, o aroma se espalha pelo ar, deixando qualquer um com agua na boca.

Acompanha lindamente com batata cozida e pimentões assados na brasa; puré de batata; sanduíche de pão português e sanduíche de broa.

segunda-feira, 21 de outubro de 2013

💾 CI e CA no VSAM — A base física que você precisa dominar

 

Bellacosa Mainframe nos datasets vsam entenda ci e ca

💾 CI e CA no VSAM — A base física que você precisa dominar

📦 Control Interval (CI)

O CI (Control Interval) é a menor unidade de armazenamento e leitura do VSAM.

👉 Pense nele como uma “página” de dados.

🔎 O que existe dentro de um CI?

  • Registros de dados
  • Espaço livre (free space)
  • Informações de controle (overhead)

⚙️ Características:

  • Tamanho típico: 4K, 8K, 16K...
  • É a unidade de I/O (leitura/gravação)
  • Pode conter vários registros

💡 Analogia:

CI é como uma página de um livro — você não lê letra por letra, lê a página inteira.


🧱 Control Area (CA)

O CA (Control Area) é um conjunto de vários CIs.

👉 É uma unidade maior de organização e alocação.

⚙️ Características:

  • Contém vários CIs
  • Usado para gerenciamento de espaço
  • Unidade de split mais “pesada”

💡 Analogia:

CA é como um capítulo do livro, formado por várias páginas (CIs).


⚡ O que são SPLITS no VSAM?

Quando você insere dados (principalmente em KSDS), o VSAM precisa manter a ordem das chaves.

👉 E aí entra o problema:
E se o CI estiver cheio?

💥 Surge o SPLIT


🔹 CI Split (Split de Control Interval)

📌 O que acontece:

  • O CI está cheio
  • VSAM cria um novo CI
  • Divide os registros entre os dois

⚠️ Impacto:

  • Mais I/O
  • Queda de performance
  • Fragmentação

🔸 CA Split (Split de Control Area)

📌 O que acontece:

  • Todos os CIs do CA estão cheios
  • VSAM precisa alocar um novo CA
  • Redistribui os dados

⚠️ Impacto:

  • Muito mais custoso que CI split
  • Pode degradar bastante o desempenho

💡 Regra prática:

CI Split = ruim
CA Split = MUITO ruim 😅


🧠 Por que os splits acontecem?

Principal motivo:
👉 Inserções fora de ordem de chave (KSDS)

Exemplo:

  • Arquivo está ordenado por CPF
  • Você insere um CPF “no meio”

💥 Resultado:

  • VSAM precisa reorganizar → split

🛠️ Como evitar SPLITS?

Aqui entra conhecimento de “gente grande”:

🔧 Definindo espaço livre

No IDCAMS você pode usar:

FREESPACE(CI CA)

Exemplo:

FREESPACE(20 10)
  • 20% livre em cada CI
  • 10% livre em cada CA

👉 Isso reduz drasticamente splits


🎯 Boas práticas

  • Inserir dados em ordem de chave
  • Definir FREESPACE corretamente
  • Reorganizar dataset (REPRO)
  • Monitorar performance

⚖️ Resumo rápido

ConceitoO que éImpacto
CIUnidade mínima de I/OBase do VSAM
CAGrupo de CIsOrganização maior
CI SplitDivide um CIMédio impacto
CA SplitDivide um CAAlto impacto

🔥 Visão estilo Bellacosa

  • CI é onde o jogo acontece
  • CA é onde o sistema respira
  • Split é o “sintoma de má modelagem ou carga fora de ordem”

👉 VSAM bem definido = performance absurda
👉 VSAM mal definido = gargalo invisível


domingo, 20 de outubro de 2013

🔎 Guia Prático de Comandos TSO para Padawans

 


🔎 Guia Prático de Comandos TSO para Padawans

Salve jovem padawan em nosso segundo artigo de 2026, vamos mergulhar um pouco em comandos de linha no TSO, onde poderemos explorar melhor o sistema Z, criar dataset, consultar, limpar, alocar e testar.

Ganhando velocidade em nosso desenvolvimento e dominando melhor o ambiente Z, seja bem-vindo e conto com seu comentarios e criticas para melhorarmos e irmos mais longe.

Para não apanhar do terminal logo no login


🧠 Antes de tudo: o que é TSO de verdade?

TSO (Time Sharing Option) não é: 

❌ só uma tela preta 

❌ um “modo antigo” 

❌ um castigo divino

TSO é:

A interface raiz do z/OS para trabalhar diretamente com o sistema.

Se o mainframe fosse um avião:

  • TSO é o painel cru de instrumentos
  • ISPF é o cockpit amigável

Todo mainframeiro de respeito precisa saber sobreviver no TSO puro.


⌨️ Sintaxe básica do TSO (lei universal)

COMANDO OPERANDO PARÂMETROS

Regras não escritas:

  • Espaço separa argumentos
  • Parênteses organizam opções
  • Aspas protegem nomes longos
  • Abreviações são comuns (e perigosas 😈)


📂 Comandos essenciais para datasets

📌 LISTDS – listar datasets

LISTDS 'USERID.*'

🔎 Dica El Jefe:

  • Use LEVEL para evitar varrer o catálogo inteiro

LISTDS LEVEL(USERID)

⚠️ Perigo:

  • LISTDS * pode virar pecado mortal em produção


📌 DELETE – apagar datasets

DELETE 'USERID.TESTE.ARQUIVO'

☠️ Atenção:

  • Não existe lixeira
  • Apagou, rezou


📌 RENAME – renomear

RENAME 'USERID.OLD' 'USERID.NEW'

📖 Visualização de conteúdo

📌 LISTCAT – catálogo é lei

LISTCAT ENTRIES('USERID.ARQ') ALL

Use quando:

  • Dataset “existe mas não existe”
  • Erro estranho de allocation
  • Discussão com storage admin 😎


📌 PRINT – ver conteúdo

PRINT DS('USERID.ARQ')

⚠️ Não abuse com arquivos grandes. Seu spool agradece.


⚙️ Execução e controle de ambiente

📌 ALLOC – alocar datasets

ALLOC FI(ARQ1) DA('USERID.TESTE') SHR

🧠 Tradução humana:

  • FI = nome lógico
  • DA = dataset físico
  • SHR = leitura compartilhada


📌 FREE – liberar alocação

FREE FI(ARQ1)

Nunca confie que o sistema vai limpar sozinho.


📤 Trabalhando com JOBs

📌 SUBMIT – enviar JCL

SUBMIT 'USERID.JCL.TESTE'

🔥 Dica El Jefe:

  • Use SUBMIT * dentro do editor para ganhar tempo


📌 STATUS – ver jobs ativos

STATUS

Simples. Antigo. Funcional.


👤 Usuário e sessão

📌 PROFILE – perfil do usuário

PROFILE

Mostra:

  • Prefixo
  • Tamanho de região
  • Opções ativas


📌 LOGOFF – sair com dignidade

LOGOFF

Nunca feche o navegador achando que “tá tudo bem”.


🧨 Erros clássicos de padawan

❌ Digitar dataset sem aspas

❌ Apagar sem conferir

❌ LISTDS muito genérico

❌ Esquecer FREE

❌ Confundir TSO com ISPF


🥚 Easter-eggs de veterano

  • Muitos comandos aceitam abreviação
  • HELP funciona (sim, sério)

HELP LISTDS

  • TSO responde melhor quando você é educado (quase)


🎓 Palavra final do El Jefe

Quem domina TSO, domina o chão de fábrica do mainframe.

ISPF é conforto. TSO é poder.

Aprender TSO não te torna antigo. Te torna consciente do que o sistema realmente faz.

sábado, 19 de outubro de 2013

Viagem de Maria Fumaça ate Jaguariuna

Partindo de Anhumas em Campinas


A linha da Mogiana é o destino de todos aqueles que desejam sentir o prazer em andar em uma locomotiva a vapor, sentir o cheirinho da lenha, ver a fumaça subindo e ouvir o apito do trem.



O revisor grita todos a bordos!!!! A criançada vibra, bilhetes na mão e todos adentram no vagão de passageiros, ansiosos por ouvir o apito de partida.

Em breve o revisor se aproxima, verifica o bilhete e valida-o com o perfurador de bolso. A locomotiva vai ganhando força, ouve-se o ta-ta-tatatata aumentando em velocidade. Vez por outra ouve-se o apito.

Olhando pela janela ve-se o finzinho da cidade, campos, pastos e antigas fazendas de café estamos chegando em Tanquinho outra estação no caminho de Jaguariuna.

Os passeios de trem partem tanto da estação Anhumas (Campinas) como de Jaguariuna aos finais de semana, verifiquem no site, para saberem os horários e preços.

domingo, 6 de outubro de 2013

📊 Tabela de Erros Comuns no COBOL 5.x

 



📊 Tabela de Erros Comuns no COBOL 5.x

(Quando o compilador resolve dizer a verdade)

“COBOL 5 não quebrou seu programa.
Ele apenas revelou o que sempre esteve errado.”

— Bellacosa


🟥 ERROS DE DADOS (o choque de realidade)

Erro comumO que mudou no COBOL 5Sintoma típicoImpacto
MOVE inválido alfa → numéricoNUMCHECK rigorosoErro de compilação ou runtimeJob aborta cedo
Campo não inicializadoINITCHECK ativoWarning/erroResultado imprevisível exposto
Uso de lixo em COMPValidação agressivaFalha imediataS0C7 antecipado
PIC incompatívelValidação estritaCompile errorCódigo não sobe
Truncamento inesperadoTRUNC mais explícitoValor incorretoErro contábil

🥚 Easter-egg:

O erro “novo” já existia no COBOL 4 — só não gritava.


🟧 ERROS DE CONTROLE DE FLUXO

Erro comumCOBOL 5 faz diferenteSintomaConsequência
PERFORM THRU mal definidoAnálise de fluxoWarning severoLógica rejeitada
GO TO cruzando blocosRestrição maiorErro de compilaçãoCódigo não compila
IF/END-IF inconsistentesEstrutura rígidaCompile errorRefatoração obrigatória
EXIT mal posicionadoRegras mais clarasErro lógicoFluxo interrompido

Bellacosa note:

Se o COBOL 5 reclama, o código está errado — ponto.



🟨 ERROS DE STORAGE E MEMÓRIA

Erro comumCOBOL 5 expõeSintomaResultado
REDEFINES mal alinhadoSSRANGE ativoRuntime errorS0C4
OCCURS fora de limiteChecagem ativaAbort imediatoProteção de memória
DEPENDING ON inválidoValidação em runtimeAbendCorrupção evitada
Índice mal usadoTipagem rígidaCompile errorCorreção forçada

🥚 Easter-egg técnico:

SSRANGE não cria erro — ele evita desastre.


🟦 ERROS DE ARQUIVOS (mais disciplina)

Erro comumDiferença no COBOL 5SintomaImpacto
FILE STATUS ignoradoWarning severoJob rejeitadoErro detectado cedo
READ sem AT ENDAnálise estáticaCompile warningLoop evitado
WRITE sem validaçãoChecagem formalRuntime errorIntegridade garantida
OPEN fora de ordemValidação rígidaAbendErro explícito

🟪 ERROS DE PERFORMANCE (o paradoxo)

Erro comumPor que aparece no COBOL 5SintomaEfeito
Código “lento” após migraçãoOtimização diferenteCPU aumentaAjustar OPTIMIZE
Dependência de MOVENova análiseCódigo inchadoRefatoração
DISPLAY em loopRuntime modernoBatch mais lentoRemover debug
Falta de INLINECompilação conservadoraPerformance ruimAjustar opções

Bellacosa truth:

COBOL 5 é mais rápido — se o código merecer.


🟫 ERROS DE COMPILAÇÃO (novos padrões)

Erro comumCOBOL 5 exigeSintomaAção
Código legado ambíguoSintaxe claraCompile errorRefatorar
Ignorar warningsWarnings viram errosBuild falhaCorrigir
TRUNC inconsistentePadronizaçãoValor erradoRevisar
Dependência de defaultsDefaults mudaramResultado inesperadoDefinir parms

☠️ ABENDS mais associados ao COBOL 5

ABENDMotivo
S0C7Detectado mais cedo
S0C4Proteção de memória
U4038INITCHECK / NUMCHECK
U4087Violação de range
U4093Lógica inválida

🎓 Resumo para Padawans

✔ COBOL 5 não tolera código sujo
✔ Erros aparecem mais cedo
✔ Migração revela dívidas técnicas
✔ Mais seguro, mais rápido, mais previsível


🧠 Frase Final Bellacosa™

“COBOL 4 confiava no programador.
COBOL 5 confia nos dados.”