anúncios

quinta-feira, 16 de abril de 2026

A era da IA Generativa: Ainda vale a pena aprender a programar?

Se você está começando agora na área de tecnologia ou já atua como desenvolvedor Júnior, provavelmente já se deparou com a pergunta: "Por que gastar meses estudando lógica, sintaxe e estruturas de dados se o ChatGPT, Gemini, Claude Code, ou GitHub Copilot escrevem o código em segundos?"

Antes de aprofundarmos, é preciso fazer uma distinção técnica fundamental: quando falamos popularmente em "IA", estamos simplificando um campo vasto da Ciência da Computação. O que utilizamos hoje para gerar código são, na verdade, Agentes de IA baseados em LLMs (Large Language Models - Grandes Modelos de Linguagem). Ferramentas como ChatGPT, Claude, Gemini e GitHub Copilot não "pensam" no sentido humano; elas são modelos probabilísticos altamente sofisticados que preveem o próximo token de código com base em padrões de bilhões de linhas de dados.

A sensação para muitos iniciantes é de que a barra de entrada subiu ou que a profissão está desaparecendo. No entanto, a realidade é oposta: nunca houve um momento tão estratégico para aprender a programar, desde que você entenda a diferença entre escrever código e engenharia de software.

1. O Código como Commodity: A Mudança de Paradigma

Para entender por que a programação ainda é essencial, precisamos primeiro aceitar que o "código" em si tornou-se uma commodity. No mercado de TI, uma commodity é algo que pode ser produzido em massa e tem pouco valor agregado se não houver um diferencial competitivo.

Para o cliente final ou para o dono de uma empresa, o código é apenas o meio para atingir um fim. O cliente não compra "um sistema em Java com Spring Boot", ele compra a solução para um problema de negócio (ex: "preciso que meu estoque seja atualizado em tempo real").

Os agentes de LLM são excelentes em gerar a sintaxe (o "como"), mas eles não possuem visão de negócio nem consciência do contexto organizacional (o "o quê" e o "porquê"). O desenvolvedor que foca apenas na sintaxe será substituído; o desenvolvedor que foca na resolução de problemas usando a tecnologia como ferramenta será promovido.

2. A Armadilha da "Ilusão de Competência"

Um dos maiores riscos para os estagiários e juniores hoje é a ilusão de competência. Isso acontece quando um estudante pede para um agente de IA gerar uma função complexa, o código funciona de primeira e ele assume que "sabe" como aquilo funciona.

O problema surge no momento do debug. Quando o código do LLM falha, e ele falha frequentemente em casos de borda (edge cases) — quem não domina os fundamentos não consegue rastrear o erro. Sem a base, você não é o piloto da IA, você é apenas um passageiro que espera que a máquina não bata.

A diferença entre Operador de Prompt e Engenheiro de Software

Critério Operador de Prompt (Dependente) Engenheiro de Software (Autônomo)
Abordagem Tenta a sorte com prompts até o código "funcionar". Planeja a arquitetura e usa a IA para implementar partes.
Validação Executa o código e, se não deu erro, assume que está correto. Analisa a complexidade temporal, espacial e a segurança.
Manutenção Dificuldade em alterar o código sem quebrar outras partes. Aplica princípios de SOLID e Design Patterns para escalabilidade.
Resolução de Bugs Copia o erro no prompt e reza para a IA corrigir. Usa debuggers, logs e conhecimento de memória/stack para resolver.

3. Os Pilares Inegociáveis: O que você DEVE aprender

Se os agentes de LLM geram o código, onde você deve focar seus estudos? A resposta é: nos fundamentos que a IA não consegue simular com consciência.

  1. Lógica de Programação e Algoritmos: Você precisa entender como os dados fluem. Se você não sabe a diferença entre um Array e uma LinkedList, você não saberá pedir ao LLM a estrutura mais eficiente para o seu caso.
  2. Estruturas de Dados: Saber quando usar um HashMap em vez de percorrer uma lista com um loop for é a diferença entre um sistema que escala e um sistema que trava.
  3. Engenharia de Software:
    • SOLID: Para garantir que o código gerado pela IA não seja um "monolito" impossível de manter.
    • Design Patterns: Saber implementar um Observer ou um Factory para organizar a comunicação entre objetos.
    • Testes Automatizados: O LLM pode gerar o código, mas você deve escrever os testes unitários e de integração para provar que o código é confiável.
  4. Arquitetura de Sistemas: Entender a diferença entre Monólitos, Microsserviços e Serverless. O agente de IA pode escrever a função, mas ele não desenha a topologia da rede ou a estratégia de cache do Redis.

4. O Agente de IA como o "Novo Compilador"

Historicamente, a programação sempre evoluiu para abstrações maiores. Antigamente, programava-se em binário, depois Assembly, depois C, depois linguagens de alto nível como Java e Python.

O uso de LLMs é apenas a próxima camada de abstração. Eles não substituem o programador, eles substituem a digitação manual de códigos repetitivos (boilerplate).


// Exemplo de código commodity 
// (Agente de LLM faz em 1 segundo):
public class User {
    private String name;
    private String email;
    // Getters e Setters repetitivos...
}

O valor real não está em escrever a classe acima, mas em decidir se esse User deve ser persistido em um banco NoSQL para performance de leitura ou em um Relacional para consistência ACID.

5. Considerações finais: O Futuro do Desenvolvedor

A pergunta "Ainda vale a pena aprender a programar?" deve ser substituída por: "Como posso me tornar um desenvolvedor que domina as ferramentas de LLM, em vez de ser dominado por elas?"

A responsabilidade final pelo software continua sendo do ser humano. Se o sistema de um banco falha ou se os dados de um hospital são vazados, a culpa não é do modelo de linguagem que gerou o snippet de código, mas do engenheiro que validou e implementou aquele código sem a devida análise crítica.

Portanto, para os estagiários e juniores: estudem a base. Aprendam a ler código. Questionem cada linha que a IA gera. Transformem-se em arquitetos de soluções. O código é a ferramenta, mas a engenharia é a arte. E a arte, por enquanto, continua sendo humana.

Feito!

quarta-feira, 15 de abril de 2026

Como encontrar e remover arquivos duplicados com essa ferramenta

Você já ficou sem espaço no disco e suspeitou que tinha arquivos duplicados ocupando espaço desnecessário? O fdupes é a ferramenta perfeita para resolver esse problema!

O que é o fdupes?

O fdupes é um programa de linha de comando que identifica arquivos duplicados em um ou mais diretórios. Ele usa uma combinação intelligente de tamanho de arquivo e hash MD5/SHA1 para encontrar duplicatas de forma eficiente, sem precisar comparar byte a byte.

Instalação

Debian/Ubuntu

sudo apt install fdupes

Fedora

sudo dnf install fdupes

Arch Linux

sudo pacman -S fdupes

macOS (via Homebrew)

brew install fdupes

Como usar

Exemplo básico: encontrar duplicatas

fdupes ~/Downloads

Saída esperada:

./Downloads/documento.txt
./Downloads/documento-copia.txt

Ver detalhes dos arquivos duplicados

fdupes -l ~/Downloads

Saída com tamanho:

   1024 ./Downloads/documento.txt
   1024 ./Downloads/documento-copia.txt

Procura recursiva em subdiretórios

fdupes -r ~/Documentos

Primeira opção é a original (mantém primeiro)

fdupes -d ~/Downloads

O fdupes vai pedir confirmação para manter ou excluir cada conjunto de duplicatas.

Opções mais úteis

Lista de opções disponíveis fdupes
Opção Descrição
-r, --recurse Procura recursivamente nos diretórios
-l Lista apenas com detalhes de tamanho
-S, --size Mostra tamanho dos arquivos duplicados
-m, --summarize Mostra estatísticas resumidas
-d, --delete Deleta duplicatas (cuidado!)
-N, --noprompt Com -d, deleta sem pedir confirmação
-f, --omitfirst O primeiro arquivo do grupo é considerado original
-n, --noempty Ignora arquivos vazios
-H, --hardlinks Trata hard links como duplicatas
-q, --quiet Modo silencioso
-1, --sameline Lista em uma única linha
-h Mostra ajuda

Dicas de uso

Encontrar e listar sem deletar (modo seguro)

fdupes -rl ~/Downloads | less

Exemplo prático completo

1. Primeiro, descubra onde estão as duplicatas

fdupes -r ~/Downloads

2. Liste os detalhes para ver quanto espaço pode liberar

fdupes -rl ~/Downloads

3. Crie uma pasta para backups antes de excluir

mkdir ~/duplicadas_backup

4. Copie as duplicatas para a pasta de backup

fdupes -r ~/Downloads -d ~/duplicadas_backup

5. Confirme que as cópias estão na pasta de backup

ls ~/duplicadas_backup

Por que usar fdupes?

  • Economia de espaço: Arquivos duplicados podem consumir gigabytes
  • Organização: Ajuda a limpar projetos e pastas bagunçadas
  • Identificação de projetos duplicados: Encontra projetos/clones repetidos
  • Limpeza de backup: Remove cópias desnecessárias

Cuidado!

  • Sempre use -l primeiro para listar sem alterar nada
  • Faça backup antes de deletar com -d
  • O fdupes pode não funcionar bem com links simbólicos
  • Arquivos com metadados diferentes mas conteúdo igual são considerados duplicatas

Referência

fdupes man page - Linux Command Library

Feito!

terça-feira, 14 de abril de 2026

MUDANÇA NO CNPJ: O que você precisa fazer no seu projeto

A Receita Federal confirmou: a partir de julho de 2026, o CNPJ será alfanumérico (com letras e números). Novo formato: 14 caracteres sendo 12 primeiros alfanuméricos + 2 dígitos verificadores (DV) numéricos.

Isso vai quebrar muitos sistemas. Vamos aos impactos:

1. CNPJ como Integer no banco de dados

Problema: CNPJs novos terão letras (ex: 12AB3456C0001). Tipo INTEGER não suporta letras.

Solução: Migrar coluna para VARCHAR(18) ou CHAR(14), mantenham o tamanho fixo para compatibilidade com sistemas legados.

2. CNPJ como Primary Key

Problema: PKs inteiras não funcionam + índices unique baseados em Integer falharão para novos registros.

Solução:

  • Alterar tipo da PK para VARCHAR(18) ou CHAR(14)
  • Atualizar foreign keys em todas as tabelas relacionadas
  • Regenerar índices unique

3. Validação de DV (Módulo 11)

Problema: Algoritmo atual não reconhece letras.

Solução: Ver algoritmo em pseudocódigo abaixo.

4. Máscaras e formats existentes

Problema: XX.XXX.XXX/0001-XX pode não funcionar com letras.

Solução: Criar máscara flexível que aceite alfanumérico.

5. Integração com APIs e ERPs

Problema: Sistemas legados que recebem CNPJ como número quebrarão.

Solução: Revisar APIs, contratos, e integrações -> tipar como string, não integer.

Cronograma

  • Julho 2026: Primeiros CNPJs alfanuméricos emitidos
  • CNPJs atuais: Permanecem válidos (não precisam migrar)

Ação imediata

  • ✓ Audit no banco: identifique colunas CNPJ com tipo Integer
  • ✓ Planeje migração para VARCHAR/CHAR
  • ✓ Teste o novo algoritmo de validação
  • ✓ Revise integrações externas

Algoritmo de Validação do DV (Módulo 11)

O algoritmo a seguir funciona para CNPJs numéricos (atuais) e CNPJs alfanuméricos (novos).

Tabela de Conversão

Caractere Valor para cálculo
0-9 0-9 (valor numérico)
A 17
B 18
C 19
D 20
E 21
F 22
G 23
H 24
I 25
J 26
K 27
L 28
M 29
N 30
O 31
P 32
Q 33
R 34
S 35
T 36
U 37
V 38
W 39
X 40
Y 41
Z 42

Pseudocódigo

FUNÇÃO obterValorCaractere(caractere):
    SE caractere >= '0' E caractere <= '9':
        RETORNAR inteiro(caractere)
    FIM SE
    
    SE caractere >= 'A' E caractere <= 'Z':
        codigoASCII <- inteiro(caractere)
        RETORNAR codigoASCII - 48
    FIM SE
    
    RETORNAR -1  // Caractere inválido
FIM FUNÇÃO


FUNÇÃO calcularDV(cnpj, posicaoDV):
    // posicaoDV = 1 para primeiro DV, 2 para segundo DV
    
    SE posicaoDV == 1://Primeiros 12 caracteres do CNPJ
        pesos <- [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
        digitos <
    SENÃO://Primeiros 12 caracteres do CNPJ + primeiro DV
        pesos <- [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
        digitos <
    FIM SE
    
    soma <- 0
    PARA i DE 0 ATÉ comprimento(digitos) - 1:
        valor <- obterValorCaractere(digitos[i])
        soma <- soma + (valor * pesos[i])
    FIM PARA
    
    resto <- soma MOD 11
    
    SE resto <= 1:
        DV <- 0
    SENÃO:
        DV <- 11 - resto
    FIM SE
    
    RETORNAR DV
FIM FUNÇÃO


FUNÇÃO validarCNPJ(cnpj):
    // Remove máscara (pontos, barras, hífen)
    cnpjLimpo <- limparMascara(cnpj)
    
    SE comprimento(cnpjLimpo) != 14:
        RETORNAR FALSO
    FIM SE
    
    // Extrai os DVs informados no CNPJ
    dv1Informado <- inteiro(cnpjLimpo[12])
    dv2Informado <- inteiro(cnpjLimpo[13])
    
    // Calcula primeiro DV
    dv1Calculado <- calcularDV(cnpjLimpo, 1)
    
    SE dv1Informado != dv1Calculado:
        RETORNAR FALSO
    FIM SE
    
    // Calcula segundo DV
    dv2Calculado <- calcularDV(cnpjLimpo, 2)
    
    SE dv2Informado != dv2Calculado:
        RETORNAR FALSO
    FIM SE
    
    RETORNAR VERDADEIRO
FIM FUNÇÃO

Exemplo de Implementação em JavaScript

function obterValorCaractere(char) {
    if (char >= '0' && char <= '9') {
        return parseInt(char, 10);
    }
    const codigoASCII = char.charCodeAt(0);
    if (codigoASCII >= 65 && codigoASCII <= 90) {
        return codigoASCII - 48;
    }
    return -1;
}

function calcularDV(cnpj, posicaoDV) {
    const pesos = posicaoDV === 1 
        ? [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
        : [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
    
    const digitos = posicaoDV === 1 
        ? cnpj.substring(0, 12) 
        : cnpj.substring(0, 12) + cnpj.charAt(12);
    
    let soma = 0;
    for (let i = 0; i < digitos.length; i++) {
        const valor = obterValorCaractere(digitos[i]);
        soma += valor * pesos[i];
    }
    
    const resto = soma % 11;
    return resto <= 1 ? 0 : 11 - resto;
}

function validarCNPJ(cnpj) {
    const cnpjLimpo = cnpj.replace(/[.\/-]/g, '');
    
    if (cnpjLimpo.length !== 14) {
        return false;
    }
    
    const dv1 = parseInt(cnpjLimpo[12], 10);
    const dv2 = parseInt(cnpjLimpo[13], 10);
    
    if (calcularDV(cnpjLimpo, 1) !== dv1) {
        return false;
    }
    
    if (calcularDV(cnpjLimpo, 2) !== dv2) {
        return false;
    }
    
    return true;
}

// Testes
// true (CNPJ atual válido)
console.log(validarCNPJ('83.847.133/0001-25')); 

// true (CNPJ novo fictício válido)
console.log(validarCNPJ('53.RRV.R8C/9PHH-34')); 

// false
console.log(validarCNPJ('12345678900013')); 

// false
console.log(validarCNPJ('77.888.364/0001-81')); 

// false
console.log(validarCNPJ('X3.VGJ.TBC/0001-43')); 

Referências

Instrução Normativa RFB nº 2.229/2024

Nota Técnica Conjunta CNPJ Alfanumérico 2025.001

Nota Técnica Conjunta COCAD/SUARA/RFB nº 49/2024

A mudança não é complexa, mas exige atenção. Quem esperar o dia pode enfrentar problemas de última hora.

Feito!

segunda-feira, 13 de abril de 2026

Como a matemática criou a confiança digital

Se você faz um Pix, salva um arquivo na nuvem ou simplesmente faz login em uma rede social hoje, você está utilizando uma das tecnologias mais disruptivas da história da computação: o SSL/TLS.

Mas nem sempre foi assim. Em 1994, enviar o número do seu cartão de crédito pela internet era o equivalente tecnológico a gritar sua senha no meio da rua. Qualquer pessoa no caminho do pacote de dados poderia ler o conteúdo. A internet não foi desenhada para ser segura; ela foi desenhada para compartilhar pesquisas acadêmicas.

A mudança de paradigma veio com um nome: Taher Elgamal, e uma sacada matemática que transformou a confiança em equação.

O Problema da "Via Expressa Aberta"

Nos primórdios da web, o protocolo HTTP era como um cartão-postal. Cada roteador e servidor pelo qual a informação passava podia "ler o verso" do cartão. Para que o e-commerce existisse, precisávamos de um envelope blindado.

Foi na Netscape que Elgamal e sua equipe desenvolveram o SSL (Secure Socket Layer). Embora o início tenha sido conturbado (a versão 1.0 foi quebrada em minutos), a versão 2.0 lançada em 1995 mudou o mundo. Hoje, essa tecnologia evoluiu para o TLS (Transport Layer Security), que protege mais de 97% do tráfego web atual.

A magia da assimetria: O truque da tinta

O que torna o SSL/TLS tão poderoso é o conceito de funções unidirecionais. Imagine o seguinte:

Misturar tinta azul e amarela para fazer verde é trivial.

Tentar separar a tinta verde de volta em azul e amarelo é praticamente impossível.

Na criptografia, usamos a exponenciação modular e a fatoração de números primos gigantes. Multiplicar dois números primos de 300 dígitos é algo que seu celular faz em nanossegundos. No entanto, pegar o resultado dessa multiplicação e tentar descobrir quais foram os dois números primos originais é uma tarefa que levaria milhões de anos para os melhores supercomputadores do mundo.

Essa assimetria é o que permite que você e um servidor estabeleçam uma conexão segura sem nunca terem trocado uma chave secreta antes.

Por que isso importa para você leitor e Desenvolvedores em geral?

Como engenheiros de software, muitas vezes tratamos o "cadeado no navegador" como uma commodity, mas há três lições fundamentais na história de Elgamal:

  • Padrões Abertos vencem:
  • Elgamal convenceu a Netscape a tornar o SSL gratuito e aberto, inclusive para concorrentes. Sem isso, a internet teria se fragmentado em silos proprietários e inseguros.

  • Performance vs. Segurança:
  • O TLS 1.3 hoje faz o handshake de segurança em apenas uma "ida e volta" (round-trip), provando que segurança robusta não precisa sacrificar a experiência do usuário.

  • A Matemática como Base:
  • Enquanto algoritmos de recomendação ganham as manchetes, é a criptografia que sustenta os 6,4 trilhões de dólares do e-commerce global.

O Legado de Elgamal

Hoje, Taher Elgamal é reconhecido como o "Pai do SSL". Seu trabalho prova que a engenharia de contexto e a aplicação de conceitos matemáticos puros podem resolver problemas estruturais da sociedade.

Cada vez que você inicia uma transação ou protege um endpoint com HTTPS, você está executando a visão de que a privacidade não deve ser uma exceção, mas o padrão.

A segurança não é um plugin que você adiciona ao final do projeto; é o alicerce matemático que permite que o usuário confie no seu código.

Feito!

quinta-feira, 9 de abril de 2026

Dívida Cognitiva: O "Juro Invisível" que está fritando o cérebro dos desenvolvedores

A promessa era sedutora: os agentes dos provedores de LLM faria o trabalho pesado, geraria o código repetitivo e nós, desenvolvedores, teríamos mais tempo para a estratégia e a criatividade. Mas, após alguns anos de uso intenso de Copilots e agentes, a realidade bateu à porta. Não estamos trabalhando menos; estamos processando informação em uma velocidade inumana.

Esse fenômeno já tem nome: AI Brainfry. E a causa raiz é o que a pesquisadora Margaret-Anne Storey define como Dívida Cognitiva.

O que é Dívida Cognitiva?

Se a dívida técnica é o custo de atalhos tomados no código, a dívida cognitiva é o custo de atalhos tomados no nosso entendimento.

Quando você escreve cada linha de uma função, você constrói um modelo mental daquela lógica. Quando você pede para um agente de um provedor de LLM gerar 200 linhas de código e apenas "dá um joinha", você está pulando a fase de construção desse modelo. O código está lá, funciona (por enquanto), mas você não "sernente" o sistema.

"Dívida cognitiva não quebra o build, quebra a capacidade do time de pensar."

O Alerta de Margaret-Anne Storey

A professora canadense Margaret-Anne Storey observou isso na prática em suas aulas. Equipes de alunos que utilizavam um agente de IA (em algum provedor de LLM) de forma desenfreada chegavam a um ponto de paralisia total por volta da oitava semana. Eles não conseguiam fazer uma alteração simples sem quebrar o sistema. O motivo? Ninguém conseguia explicar por que o design era daquele jeito. O entendimento compartilhado havia desaparecido.

O Perigo do "Vibe Coding" e da produtividade ilusória

Estamos vivendo a era do Vibe Coding. Você abre o Cursor, orquestra três ou quatro agentes, vê o código fluindo na tela e sente que é um super-humano. Mas será que essa velocidade é real?

Estudos recentes mostram que supervisionar uma IA exige 14% mais esforço mental e causa 12% mais fadiga do que codar manualmente. Isso acontece porque o cérebro humano não é tão paralelo quanto um LLM. Tentar acompanhar múltiplos agentes gerando soluções simultâneas cria uma sobrecarga de informação que nos deixa exaustos ao final do dia, mesmo sem termos digitado uma linha de código sequer.

Insights para um Desenvolvimento Sustentável

A solução não é abandonar a IA (agentes dos provedores de LLM), o mercado mudou e não há volta. O desafio é aprender a usá-la de forma saudável e estratégica. Aqui estão alguns pontos cruciais:

  1. A IA deve ampliar o entendimento, não substituí-lo:
  2. Use a ferramenta para explicar trechos complexos, não apenas para gerá-los.

  3. O "CPF" no Pull Request é seu:
  4. Se o código foi para produção, a responsabilidade técnica e moral é do humano. Se você não consegue explicar o que o código faz, você não deveria aprová-lo.

  5. Foco na Arquitetura e Julgamento:
  6. Em um mundo onde o código é commodity, o diferencial do desenvolvedor sênior passa a ser o julgamento crítico. Saber quando dizer não a uma sugestão da IA (agente de algum provedor de LLM) é mais importante do que saber fazer o prompt.

  7. Cuidado com a métrica de tokens:
  8. Ignorar a qualidade em prol de "consumir tokens" ou "gerar volume" é o caminho mais rápido para criar um legado impossível de manter.

Considerações finais

O uso de agentes e ferramentas como o ChatGPT, Codex, Claude Code ou o Gemini não deve ser abandonado, mas sim ressignificado sob uma ótica de Engenharia de Contexto e governança técnica. Ser um profissional "AI-powered" em 2026 exige que você atue como um arquiteto e revisor crítico, e não apenas como um consumidor de código. O uso inteligente dessas ferramentas envolve utilizá-las para acelerar a implementação de padrões que você já domina, mantendo o controle total sobre a arquitetura e garantindo que cada linha gerada seja compreendida e integrada ao modelo mental do projeto. O segredo é garantir que os agentes do provedor de LLM (como Codex, Claude Code, Gemini CLI, etc) trabalhem para o sistema, e não que você se torne um refém da complexidade que eles geram.

Em vez de simplesmente delegar a autoria, o uso profissional desses agentes exige que o desenvolvedor atue como um orquestrador estratégico, utilizando-os para validar hipóteses, acelerar a escrita de especificações e implementar padrões de arquitetura sob rigorosa supervisão humana. Utilizar essas ferramentas de forma inteligente significa manter o controle do "leme" técnico, garantindo que a velocidade de entrega nunca atropele a integridade do modelo mental e a sustentabilidade do código a longo prazo.

Referência

STOREY, Margaret-Anne. The Triple Debt of AI-Assisted Software Development: Technical, Cognitive, and Cultural. arXiv:2603.22106 [cs.SE], 2026. Disponível em: https://arxiv.org/pdf/2603.22106

O que você tem sentido no seu dia a dia? A IA tem libertado sua mente ou fritado seus neurônios? Deixe seu comentário abaixo!

Feito!

quarta-feira, 8 de abril de 2026

Instalando o software IRPF 2026 no Linux

Procedimentos de instalação do software IRPF 2026 no Linux (qualquer distro)

Pré-requisitos:

Ter o openJDK 1.8 ou superior configurado no PATH do SO.

Copie a linha seguinte e cole no terminal da distribuição Linux que estiver usando ou clique no link https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/download/pgd/dirpf

Setar a permissão para execução

$ chmod +x IRPF2026Linux-x86_64v1.1.sh.bin $ ./IRPF2026Linux-x86_64v1.1.sh.bin

Na primeira tela, clique no botão "Avançar"

Clique no botão "Avançar".

O próximo passo é escolher o diretório de instalação que deseja salvar, clique em "Avançar".

Confirme a instalação no botão "Avançar".

Por fim, clique no botão "Terminar".

Pronto, a instalação do IRPF2026 está concluída, poderá abrir no atalho que foi criado na área de trabalho.

Agora, pode fazer a sua declaração do imposto de renda no Linux.

Após fazer a sua declaração e salvar o comprovante que fez a declaração do imposto de renda 2026, se quiser, pode desinstalar o software IRPF 2026.

Execute no terminal.

~/ProgramasRFB/IRPF2026/uninstall

Confirme o tipo de desinstalação (padrão ou completa), clique no botão "Avançar" e confirme.

Feito!

terça-feira, 7 de abril de 2026

Além do Hype: O guia de sobrevivência em IA para Desenvolvedores

Se você abre o LinkedIn ou o YouTube hoje, é bombardeado por siglas: NLP, LLM, RAG, MCP, Agentes. Parece que a cada 24 horas o que você aprendeu ontem se tornou obsoleto. A sensação de insegurança é real, mas aqui vai um segredo: as ferramentas mudam, mas os fundamentos são os mesmos desde a década de 50.

No presente artigo, vamos dissecar os conceitos apresentados pelo canal balta, separando o que é barulho do que é base sólida para a sua carreira.

  1. IA não é uma "Ferramenta", é uma Categoria
  2. Muitas vezes ouvimos que "o Google lançou uma nova IA". Tecnicamente, isso está errado. A Inteligência Artificial é um termo "guarda-chuva" cunhado em 1956. O que estamos vendo hoje são novos modelos e arquiteturas dentro dessa categoria.

    Entender isso acalma os nervos. Você não precisa aprender uma "nova IA" toda semana; você precisa entender como os novos modelos se comportam dentro do ecossistema que já existe.

  3. O coração do código: Redes Neurais e Probabilidade
  4. Tudo o que vemos hoje, do ChatGPT, Gemini, Claude Code e etc baseia-se em Redes Neurais Artificiais.

    O que são: Microfunções (neurônios) organizadas em camadas.

    Como funcionam: Elas não "pensam". Elas recebem um input, processam através de pesos matemáticos e entregam uma probabilidade.

    Quando você interage com um LLM (Large Language Model), ele está apenas prevendo o próximo token (pedaço de palavra). Não existe um processo criativo ou consciência; existe estatística de alto nível.

    Por isso a alucinação acontece: a função do provedor de LLM é continuar o texto, mesmo que ela precise inventar algo para que a frase faça sentido gramatical.

  5. Onde está o valor real? (Dica: não é no modelo)
  6. Qualquer pessoa com R$ 100 pode assinar o ChatGPT Plus. Se o seu diferencial como dev ou empresa for apenas "usar o provedor de LLM", você não tem diferencial.

    O verdadeiro ouro está nos dados.

    Modelos como o GPT-4, Gemini, Claude Code foram treinados com dados públicos da internet (que muitas vezes são ruidosos ou desatualizados). O valor competitivo surge quando você conecta esses modelos aos seus dados privados e estruturados.

  7. O Trio de Ferro: RAG, MCP e Agentes
  8. Para tirar o provedor de LLM do "chat" e levá-la para o mundo real, usamos três pilares:

    • RAG (Retrieval-Augmented Generation)
    • O provedor de LLM é como um gênio que leu toda a biblioteca do mundo até 2023, mas não sabe o que aconteceu hoje de manhã na sua empresa. O RAG é a técnica de "dar um livro aberto" para o provedor de LLM consultar antes de responder. Você fornece o contexto (seus PDFs, bancos de dados) e ela responde com base nisso.

    • MCP (Model Context Protocol)
    • Não basta o provedor de LLM ler; ele precisa agir. O MCP é um protocolo que padroniza como o provedor de LLM se comunica com o seu sistema. É através dele que a IA entende que pode "chamar uma função" para emitir uma nota fiscal ou consultar um estoque.

    • Agentes e Skills
    • Agentes: São programas autônomos que decidem como resolver um problema passo a passo.

      Skills: São habilidades passivas (ex: saber formatar um texto em Markdown) que os agentes utilizam para cumprir sua missão.

  9. Por que os Programadores não vão sumir?
  10. O provedor de LLM é estocástica (imprevisível). Ela pode dar uma resposta diferente para o mesmo comando. Sistemas críticos, como transferências bancárias ou diagnósticos médicos, exigem determinismo.

    A engenharia de software continua sendo sobre como construir sistemas robustos, seguros e escaláveis. A IA será uma peça desse quebra-cabeça, mas o "arquiteto" que decide onde cada peça se encaixa ainda é você.

Considerações finais

O segredo para não temer aos provedores de LLM é parar de olhar para a interface de chat e começar a olhar para a arquitetura. Entender tokens, embeddings, camadas e protocolos transforma você de um simples "usuário de ferramentas" em um engenheiro capaz de construir o futuro.

Feito!