Blog
Últimos artigos e recursos
HyperFrames-Gradle : Transformar o AsciiDoc em Vídeo MP4
O plugin `hyperframes-gradle` converte o AsciiDoc em vídeo MP4 via HyperFrames. AsciidoctorJ traz o DSL de configuração. A ponte Node.js é isolada atrás do ProcessBuilder. Este plugin preenche a lacuna entre slides e vídeos autônomos. Aqui está por que ele existe, como se articula com capsule-gradle, e o que traz ao pipeline de produção de conteúdo.
Auditoria do meu Consumo LLM : SQLite, OpenCode, Ollama Cloud, e Por Que Minha Assinatura Profissional Está Explodindo o Mercado Mundial
Abri o banco SQLite da OpenCode para auditar meu consumo real em 73 dias. 2,6 bilhões de tokens, 1 022 sessões, custo total da API de 22 centavos. Comparação exaustiva com o Anthropic Claude ($300K+), OpenAI GPT, Groq, HuggingFace, Together AI e os fornecedores chineses. Resultado: minha assinatura Ollama Cloud Pro de 20 €/mês é a melhor oferta do mercado global, inclusive frente às ofertas diretas chinesas.
A Arquitetura “Plugin Independente + Raiz Consumidor”: Por que meus builds Gradle se duplicam
Um clone, um `./gradlew tasks`, e seu plugin Gradle está funcional. Zero configuração, zero README para ler. Aqui está a arquitetura que eu implementei nos meus 6 plugins foundry/public/: uma raiz minimalista do consumidor + uma pasta `{name}-plugin/` autônoma. Por que esse padrão de « duplicação aparente » é o mais produtivo para o desenvolvimento de plugins Gradle — com dogfooding nativo, isolamento das builds e contrato DAG claro.
O Knowledge Graph como motor de recomendação: como eu matei os « artigos relacionados» cronológicos
Os “artigos relacionados” atuais no cheroliv.com são apenas os 4 últimos posts publicados. Uma aberração semântica corrigida por um motor de recomendação de três camadas: referências explícitas (xref), ontologia emergente (clusters NLP), e fallback cronológico. Tudo conectado ao Knowledge Graph do graphify, consumido pela bakery — sem que o engine saiba nada disso.
27× a 45× mais eficaz que o Claude e o GPT: como uma frota de 23 especialistas em IA fine-tunados esmaga o mercado
Fator de eficiência de 27× a 45× frente ao Claude, GPT e afins: como uma frota de 23 especialistas de IA fine-tunados no meu workspace esmaga o mercado. Arquitetura, dataset, training e implantação completa.
Plug-in Gradle interno para gerenciar duas instâncias do Ollama Pro em paralelo
Um build.gradle.kts personalizado para controlar duas instâncias do Ollama Pro a partir de tarefas Gradle — início, parada, login, pull de modelos e verificação de saúde. Da infraestrutura orientada ao build tool.
Acumular Duas Assinaturas Ollama Pro na Mesma Máquina com Docker
O Docker permite duplicar uma assinatura Ollama Pro na mesma máquina, isolando as chaves de identidade e as portas de rede. Veja como fazer, passo a passo.
Instalar o terminal Kitty e configurar o Zsh como shell padrão no Xubuntu
Este post apresenta a abordagem completa de instalação e configuração do terminal kitty no Ubuntu.
DGX Spark vs Cloud vs Assinaturas LLM — O Benchmark Econômico Que Mata o Sonho do Hardware Local
$4 699 do DGX Spark, $20/mês Ollama Pro, $1.38/h do H100 na nuvem — o cálculo é rápido. Este benchmark compara todas as opções disponíveis em 2026 para executar LLMs, da inferência ao ajuste fino. Veredicto: o Spark é um objeto de luxo, não uma ferramenta rentável. A verdadeira razão de comprar hardware local em 2026 não é econômica — ela é política.
A Matriz de Governança LLM — Por que a Segurança da Sua IA Começa com a Arborescência
E se a segurança da sua IA não dependesse de um prompt, mas de um sistema de arquivos? Este manifesto de arquitetura define uma matriz 4×4 — zona física × direito de acesso ao LLM — que torna mecanicamente impossível o vazamento de segredos, a mistura entre código aberto e fechado, e a publicação de opiniões disfarçadas como fatos. Nenhum prompt para escrever. Nenhuma regra para reter. Apenas pastas.
A Granulação OSS/CSS — Por que eu dividi o foundry/ em dois
foundry/` misturava código de fonte aberta e código privado na mesma pasta. O RAG e o grafo de conhecimento não conseguiam fazer a distinção. A solução? Dividir essa área funcional em duas — OSS/ para o público (licença Apache 2.0, indexação livre) e CSS/ para o código fechado (conjunto de dados privado apenas). Não há mais necessidade de dizer ao LLM para ser cauteloso. O sistema de arquivos faz isso por ele. E aproveitei para colocar cheroliv.com onde deveria sempre estar: dentro de office/sites/.
O Compartimentamento Epistêmico Automatizado — Como o LLM protege meu jardim mental
O padrão STIMULUS não se limita a capturar ideias brutas e a diluí-las nos documentos do workspace. Ele adiciona uma camada crítica: o LLM é responsável por classificar cada informação em Vision (publicável no blog), Opinion (confinada ao círculo privado) ou Estratégia (diluimento restrito). Essa segregação epistemológica automatizada é o que permite pensar livremente no Círculo 0 sem medo de publicação inadequada.
Nosso Primeiro Contratado : o Anonimizador de Datasets — MVP0 em Período de Teste
Antes de fazer RAG, fine-tuning ou SaaS, é necessário ter dados limpos. Nossa primeira contratação no período de teste — o Anonimizador — detecta e limpa os PII em fontes multi‑tecnologia (SQL, pgvector, ONNX, Graphify, JSON, YAML, AsciiDoc). Este é o MVP0. Sem ele, tudo o resto é ou ilegal ou tecnicamente degradado. Veja como esse bloco transforma um problema universal em um produto de mercado.
Nossa Primeira Contratação: o Anonimizador de Datasets — MVP0 no Período de Teste
Antes de fazer RAG, fine-tuning ou SaaS, é necessário ter dados limpos. Nossa primeira contratação no período de experiência — o Anonimizador — detecta e limpa os PII em fontes de múltiplas tecnologias (SQL, pgvector, ONNX, Graphify, JSON, YAML, AsciiDoc). É o MVP0. Sem ele, tudo o mais é ou ilegal ou tecnicamente degradado. Veja como essa peça transforma um problema universal em um produto comercializável.
O Jardim Secreto do Desenvolvedor: Como a Ontologia Espacial Alinha os LLMs Sem Prompt Engineering
E se a melhor maneira de alinhar um LLM não fosse um prompt, mas um sistema de arquivos? Minha workspace está estruturada em quatro círculos de confiança concêntricos, do mais íntimo ao mais público. O LLM não precisa memorizar as regras — ele as vê a cada caminho de arquivo. Eis como essa ontologia espacial torna a governança de agentes mais robusta do que um bloco de regras textuais.
Migração Supabase → Firebase : Conectar um Formulário de Contato ao Firestore Sem Backend
Meu formulário de contato estava rodando em um mock há meses. O plano inicial do Supabase foi abandonado em favor do Firebase. Eu relato a criação do projeto, a configuração do Firestore, a reescrita do JS de envio, a limpeza do código morto e o que essa migração diz sobre o mindset « acabar o que se começou ».
DeepSeek-V4-Pro, Kimi K2.6, GLM-5.1: Três LLMs à prova do Vibe Coding de Longo Contexto
Durante três semanas, executei três modelos principais nas minhas sessões de desenvolvimento de plugins Gradle com o Opencode. Contexto de 30K tokens, governança Eager/Lazy/Hot/Warm/Cold, tarefas de refatoração, TDD e arquitetura. Qual deles sobreviveu — e por que os outros falharam.
Auditoria de Contexto do Agente : Quando sua própria governança se torna o problema — e como repará‑la sem perder nada
Depois de dois artigos sobre a estruturação e o backup do contexto do agente, descubro que o arquivo que documenta o método tornou-se ele mesmo o maior consumidor de tokens. Auditoria por seções do `AGENT_MODUS_OPERANDI` de 627 linhas, identificação das duplicações, e solução de divisão enciclopédica que preserva a engenharia sem sobrecarregar o contexto.
Sliding Window e Vague Froide: Quando o Contexto do Agente Explode e é Preciso Arquivar sem Perder
Após meses de sessões Opencode, os arquivos de governança estão explodindo. 5200 linhas carregadas automaticamente. Estou conceptualizando um mecanismo de sliding window e de "vague froide identique" para manter um contexto ativo leve sem perder nada.
Quando Gradle 9, Docker 29 e Testcontainers estão fervendo : debugando um build JHipster
Um `./gradlew build` que falha em onze erros sucessivos, desde uma variável `reportsDir` inexistente até o Docker Engine 29 que rejeita o cliente docker-java 1.32. Segue o registro completo da depuração de um build JHipster no Gradle 9, Java 21 e Testcontainers 2.0.5.
Governar um Agente de IA com AsciiDoc: Minha Estratégia Eager/Lazy para Sessões Opencode sem Vazamento de Contexto
Diante da perda de contexto entre as sessões de um agente de IA, desenvolvi uma estratégia artesanal de governança baseada em arquivos AsciiDoc. O princípio: um painel Eager carregado automaticamente, um manual do proprietário Lazy sob demanda e um procedimento de encerramento de sessão indispensável.
Por que `serve` exibia um site feio enquanto `publishSite` era perfeito
A tarefa `serve` do meu plugin Gradle JBake exibia botões retangulares, textos ilegíveis e um CSS parcialmente ausente, enquanto `publishSite` produzia um site perfeito. Causa raiz: argumentos da CLI JBake passados com sintaxe incorreta. Aqui está o diagnóstico completo e como eu o corrigi.
OpenCode e o PATH incompleto: por que suas ferramentas não estavam no shell do agente
OpenCode executa shells não-interativos que não carregam .zshrc. Resultado: SDKMAN, NVM, ~/apps e pnpm estão ausentes do PATH do agente. Diagnóstico completo do problema, comparação do comportamento SDKMAN vs NVM, e solução definitiva via .zshenv + link simbólico ~/.nvm/current.
Integrar Graphify no workflow Gradle: do Knowledge Graph ao diagrama PlantUML em um comando
Graphify extrai um grafo de conhecimento da sua base de código. O plugin Gradle PlantUML transforma esse grafo em diagramas PlantUML determinísticos. Pipeline completo: pip install graphify → graphify . --no-viz → ./gradlew generateKnowledgeGraphDiagram → diagramas PNG versionados no Git.
Integrar o Graphify num workflow Gradle : do Knowledge Graph ao diagrama PlantUML em um comando
Graphify extrai um Knowledge Graph da sua base de código. O plugin Gradle PlantUML transforma este grafo em diagramas PlantUML determinísticos. Pipeline completo: pip install graphify → graphify . --no-viz → ./gradlew generateKnowledgeGraphDiagram → diagramas PNG versionados no Git.
Super dicas do comando fg: quando o Ctrl+Z salva sua sessão de terminal
Você lançou um comando que está travando o seu terminal? Ctrl+Z o pausa, fg o retoma. Descubra como fg, bg e jobs transformam sua produtividade no terminal.
VS Code no Home: instalação local e personalização das fontes sem sudo
Instale o VS Code em seu diretório home do Linux para manter o controle total sem usar sudo. Em seguida, personalize as fontes do menu e do explorador de arquivos — um caminho repleto de obstáculos que finalmente resulta em uma interface legível.
Migração de um plugin Asciidoctor RevealJS para buildSrc Kotlin : engenharia reversa de uma API Groovy
Como migrar a configuração de uma tarefa AsciidoctorJRevealJSTask do buildscript raiz para um plugin buildSrc Kotlin autônomo, substituindo o DSL Groovy ruby { gems() } pelos seus mecanismos subjacentes descobertos por introspecção de bytecodes.
Arquitetura Portfólio JBake – Visão e Casos de Uso
Descubra como resolvi uma série de problemas complexos de mocking do Mockito nos testes de um plugin Gradle, do erro "Wanted but not invoked" aos "Unfinished Stubbing" em cascata.
Arquitetura Híbrida : O Melhor dos Dois Mundos com Supabase e Spring Boot
Combina o Supabase para o CRUD simples e o Spring Boot para a lógica complexa. Arquitetura híbrida pragmática, escalável e econômica.
Arquitetura Híbrida: O Melhor dos Dois Mundos com Supabase e Spring Boot
Combine o Supabase para o CRUD simples e o Spring Boot para a lógica complexa. Arquitetura híbrida pragmática, escalável e econômica.
A arte do pré-carregamento : eliminar o "Flash" do Tema com JavaScript e CSS
Logging Eficiente nos Testes Funcionais de Plugins Gradle
Guia completo para implementar um sistema de logging robusto e independente nos testes funcionais de plugins Gradle com SLF4J e Logback
Exibir quadrados coloridos no AsciiDoc: Guia prático
Guia prático para integrar amostras de cores no AsciiDoc utilizando a macro `pass:[]` com HTML e CSS inline. Compatível com JBake e todos os processadores.
Internacionalização de um site estático JBake com Thymeleaf
Instalar e verificar o Tor Browser no Ubuntu
Procedimento completo para baixar, verificar e iniciar o Tor Browser no Ubuntu, com uma reflexão sobre a verificação criptográfica e a navegação ética e educativa na rede Tor.
Artigo 5: A Aventura do libs.versions.toml Compartilhado
Um mergulho no catálogo de versões do Gradle (libs.versions.toml) e como compartilhá-lo em uma construção composta, por meio de um problema concreto encontrado com nosso plugin site‑baker.
Artigo 4 : A Armadilha do Cache de Configuração Gradle
Uma aventura de depuração inesperada que nos mergulhou nas sutilezas do cache de configuração do Gradle. Descubra por que nossas builds estavam se comportando estranhamente e como resolvemos o problema.
Artigo 3 : Integração do Jackson para o parsing YAML com TDD em um plugin Gradle
Descubra como integrar a biblioteca Jackson para analisar arquivos de configuração YAML em objetos Kotlin em um plugin Gradle, seguindo uma abordagem de Desenvolvimento Orientado por Testes (TDD).
Artigo 2 : Desenvolver um Plugin Gradle com uma Abordagem TDD
Neste artigo, vamos explorar como configurar uma base de desenvolvimento sólida para um plugin Gradle usando uma abordagem de Desenvolvimento Orientado por Testes (TDD - Test-Driven Development).
Artigo 1: Criar um Plugin Gradle do A ao Z com o comando gradle init
Um guia passo a passo para inicializar um projeto de plugin Gradle usando a tarefa padrão `init`, compreender a estrutura gerada e executar os primeiros comandos de build.
Artigo 0: Configuração do Ambiente para Criar Plugins Gradle
Antes de codarmos nosso primeiro plugin, devemos preparar nossa máquina. Este guia mostra como instalar e configurar as ferramentas essenciais: um JDK, IntelliJ IDEA, Gradle e JBake.
CI/CD Python – Parte 3 : Ir além com Poetry, Docker e a publicação avançada
Parte 3 - Guia completo para configurar um pipeline CI/CD robusto com GitHub Actions, desde o linting e testes automatizados até o deploy automático no PyPI nas releases.
Parte 2: Industrializar e proteger um pipeline avançado de CI/CD em Python
Parte 2 - Guia completo para configurar um pipeline CI/CD robusto com GitHub Actions, do linting e testes automatizados até o deploy automático no PyPI durante as releases.
Parte 1: Configurar um pipeline CI/CD simples para Python e PyPI
Parte 1 - Guia completo para configurar um pipeline CI/CD robusto com GitHub Actions, do lint e testes automatizados até a implantação automática no PyPI nas versões.
Desenvolvimento de um bot musical do discord: arquitetura funcional e desenvolvimento orientado por logs
Resfriar e monitorar a temperatura do seu laptop no Ubuntu
Relato de uma depuração: domar os caprichos do Firefox com o Bootstrap 5
Resolver o Desafio dos Testes Unitários do Gradle com `gradle.properties
Descubra uma técnica eficaz para testar unitariamente plugins Gradle que dependem de `gradle.properties`. Este artigo explica como usar `ExtraPropertiesExtension` para simular propriedades, garantindo testes isolados, confiáveis e manuteníveis, ilustrado por diagramas PlantUML.
Otimizar o Gerenciamento das Tarefas do Gradle com Kotlin DSL e buildSrc
Otimizem o Gradle com buildSrc e Kotlin DSL para tarefas reutilizáveis e builds mais limpos.
TDD de um plugin Gradle Kotlin configurável com JBake e JGit
Este post apresenta a abordagem completa de concepção e teste (TDD) de um plugin Gradle escrito em Kotlin DSL. Este plugin automatiza a geração de sites estáticos com *JBake* e a *implantação Git* via *JGit*, tudo a partir de um arquivo de configuração YAML.
AsciiDoc : Descobrir e Dominar a sintaxe para uma documentação eficaz
Mergulhe na sintaxe do AsciiDoc e aprenda a escrever documentos claros, estruturados e poderosos para todas as suas necessidades de documentação e publicação.
Expor um serviço local na Internet a partir do Ubuntu: Guia completo do encaminhamento de portas
Como configurar o encaminhamento de portas para tornar acessível um serviço local em execução no Ubuntu a partir do exterior da sua rede doméstica.
Depurando o Mockito: Resolvendo o erro "Wanted but not invoked" nos testes de plugins do Gradle
Descubra como resolvi uma série de problemas complexos de mock com Mockito nos testes de um plugin Gradle, do erro "Wanted but not invoked" ao "Unfinished Stubbing" em cascata.
Kotlin Arrow: Dominando a navegação na mônada Either
Descubra técnicas avançadas para navegar eficientemente nos lados `right` e `left` da mónada Either com a biblioteca Kotlin Arrow.
Guia prático: pesquisa de arquivos no Linux
Aprenda a pesquisar eficientemente arquivos no Linux com Zsh usando find, locate e grep.
Memo linux
Memo simples sobre unix/linux e o terminal bash
Expor uma porta do subsistema Linux para o host Windows
Expor uma porta do Linux Subsystem para o host Windows, com o comando `wsl --install`.
Instalar o Pandoc
Instalar o Pandoc, que é um transformador de documentos, no Linux e no WSL do Windows
Implementação de kotlin.Triple em JavaScript, TypeScript e Python
Proponha uma implementação de kotlin.Triple em JavaScript, TypeScript e Python
Introdução ao Google Apps Script
Introdução completa ao Google Apps Script
Formação Express sobre o Script e a Automação do Google Form
Formação Express sobre Google Forms Script e Automação
Nota Python
simple memo Python
Desenvolvedor web
treinamento Web dev
Jogos de cartas colecionáveis (TCGs)
Treinamento de jogos de cartas colecionáveis (TCG)
Memo Typescript
memorando simples Typescript
Memorando CSS
nota simples CSS
Memo HTML
memo HTML simples
Memorando JavaScript
memorando simples JavaScript
Memorando de Escopo
simples memo sobre o enquadramento de um projeto.
Memo Kotlin
memo simples kotlin
Memo JVM
simples memo JVM
Memorando Gradle
memorando simples gradle
Treinamento - kotlin: enum, classes seladas
Programação em kotlin: enum, classes seladas
Treinamento - Kotlin
Programação em kotlin, plano.
Memo design system
Memo simples dos links úteis e das referências no design system
Kubernetes, Microk8s, Docker: primeiros passos
Instalação, configuração do micro kubernetes, docker e execução de um helloworld no linux/unix
Gradle: Executar um processo externo de uma tarefa gradle
Como executar um binário externo a partir de uma tarefa Gradle
Kotlin: NotImplementedException, NotImplementedError
Ainda não implementado, permite lançar a exceção correta.
Untar
a aplicação untar
Gradle: Reexecutar os testes mesmo quando os testes estiverem atualizados
adicionar o argumento --rerun-tasks na linha de comando.
Docker, não instala a aplicação mas a puxa em vez
docker otimização
Gherkin em português :
BDD, cucumber, gherkin em português
Gradle cli: sobrescrever um parâmetro
./gradlew -Pparam_component=CUSTOM
Memo git
memo git simples
Aspirar de uma URL
wget baixador de URLs
Criar um disco bootável
fazer o disco bootável
Descompactar em CLI em um diretório de destino
descompactar na linha de comando
Exibir a soma dos tamanhos dos arquivos na lista dos diretórios
a soma dos tamanhos dos arquivos em uma pasta
Excluir uma branch no github
complemento memo git
Asciidoc/Markdown Memorando
memo simples ascidoc/markdown
Debian : Instalar um arquivo .deb via linha de comando
instalar pacotes .deb via linha de comando
Gradle: pasta resources visível no IDE
adicionar uma pasta ao classpath de um build Gradle
Script Groovy, grab e configuração Ivy
gradle groovy ivy
Groovy: um pouco de álgebra, o mdc e o mmc
da álgebra em groovy
Bash: Encontrar arquivos por extensão saída em arquivo com find
um pouco de bash com find
Gerir um projeto digital com uma metodologia em cascata
um pouco de método de projetos digitais com a metodologia em cascata
Listar os bancos de dados em uma instância do PostgreSQL
tentativa de postgres
Groovy: Renomear arquivos recursivamente
recursão em Groovy
Groovy: Pesquisa de arquivos com critério, cópia da seleção
pesquisa de arquivo por padrão em Groovy
Groovy: Manipulação de arquivos, pesquisa e exclusão
manipulação de arquivos e pesquisa de caracteres em groovy
Groovy: Substituir uma sequência de caracteres numa String e carregar um Properties a partir de um arquivo
manipulação de Properties e pesquisa de padrão em groovy
Groovy: Caracteres ASCII
do Groovy, de loops e da manipulação de código ascii