Blog

Últimos artigos e recursos

31 May 2026
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.

18 May 2026
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.

14 May 2026
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.

12 May 2026
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.

11 May 2026
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.

08 May 2026
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.

08 May 2026
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.

07 May 2026
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.

06 May 2026
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.

04 May 2026
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.

03 May 2026
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/.

02 May 2026
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.

01 May 2026
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.

01 May 2026
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.

30 April 2026
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.

29 April 2026
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 ».

28 April 2026
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.

27 April 2026
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.

26 April 2026
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.

25 April 2026
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.

24 April 2026
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.

22 April 2026
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.

21 April 2026
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.

19 April 2026
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.

19 April 2026
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.

18 April 2026
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.

17 April 2026
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.

16 April 2026
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.

15 January 2026
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.

14 January 2026
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.

14 January 2026
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.

15 November 2025
A arte do pré-carregamento : eliminar o "Flash" do Tema com JavaScript e CSS

07 November 2025
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

01 November 2025
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.

20 October 2025
Internacionalização de um site estático JBake com Thymeleaf

05 October 2025
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.

27 September 2025
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.

26 September 2025
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.

25 September 2025
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).

24 September 2025
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).

23 September 2025
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.

22 September 2025
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.

19 July 2025
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.

18 July 2025
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.

17 July 2025
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.

16 July 2025
Desenvolvimento de um bot musical do discord: arquitetura funcional e desenvolvimento orientado por logs

15 July 2025
Resfriar e monitorar a temperatura do seu laptop no Ubuntu

14 July 2025
Relato de uma depuração: domar os caprichos do Firefox com o Bootstrap 5

13 July 2025
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.

11 July 2025
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.

09 July 2025
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.

20 June 2025
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.

28 May 2025
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.

17 November 2024
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.

24 September 2024
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.

23 September 2024
Guia prático: pesquisa de arquivos no Linux

Aprenda a pesquisar eficientemente arquivos no Linux com Zsh usando find, locate e grep.

23 September 2024
Memo linux

Memo simples sobre unix/linux e o terminal bash

01 February 2024
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`.

30 January 2024
Instalar o Pandoc

Instalar o Pandoc, que é um transformador de documentos, no Linux e no WSL do Windows

25 December 2023
Implementação de kotlin.Triple em JavaScript, TypeScript e Python

Proponha uma implementação de kotlin.Triple em JavaScript, TypeScript e Python

22 December 2023
Introdução ao Google Apps Script

Introdução completa ao Google Apps Script

20 December 2023
Formação Express sobre o Script e a Automação do Google Form

Formação Express sobre Google Forms Script e Automação

19 November 2023
Nota Python

simple memo Python

24 August 2023
Desenvolvedor web

treinamento Web dev

21 August 2023
Jogos de cartas colecionáveis (TCGs)

Treinamento de jogos de cartas colecionáveis (TCG)

19 August 2023
Memo Typescript

memorando simples Typescript

14 August 2023
Memorando CSS

nota simples CSS

13 August 2023
Memo HTML

memo HTML simples

04 August 2023
Memorando JavaScript

memorando simples JavaScript

31 December 2022
Memorando de Escopo

simples memo sobre o enquadramento de um projeto.

29 May 2022
Memo Kotlin

memo simples kotlin

28 May 2022
Memo JVM

simples memo JVM

23 May 2022
Memorando Gradle

memorando simples gradle

17 May 2022
Treinamento - kotlin: enum, classes seladas

Programação em kotlin: enum, classes seladas

12 May 2022
Treinamento - Kotlin

Programação em kotlin, plano.

09 January 2022
Memo design system

Memo simples dos links úteis e das referências no design system

03 November 2020
Kubernetes, Microk8s, Docker: primeiros passos

Instalação, configuração do micro kubernetes, docker e execução de um helloworld no linux/unix

28 September 2020
Gradle: Executar um processo externo de uma tarefa gradle

Como executar um binário externo a partir de uma tarefa Gradle

27 September 2020
Kotlin: NotImplementedException, NotImplementedError

Ainda não implementado, permite lançar a exceção correta.

26 September 2020
Untar

a aplicação untar

25 September 2020
Gradle: Reexecutar os testes mesmo quando os testes estiverem atualizados

adicionar o argumento --rerun-tasks na linha de comando.

24 September 2020
Docker, não instala a aplicação mas a puxa em vez

docker otimização

23 September 2020
Gherkin em português :

BDD, cucumber, gherkin em português

22 September 2020
Gradle cli: sobrescrever um parâmetro

./gradlew -Pparam_component=CUSTOM

21 September 2020
Memo git

memo git simples

20 September 2020
Aspirar de uma URL

wget baixador de URLs

19 September 2020
Criar um disco bootável

fazer o disco bootável

18 September 2020
Descompactar em CLI em um diretório de destino

descompactar na linha de comando

17 September 2020
Exibir a soma dos tamanhos dos arquivos na lista dos diretórios

a soma dos tamanhos dos arquivos em uma pasta

16 September 2020
Excluir uma branch no github

complemento memo git

15 September 2020
Asciidoc/Markdown Memorando

memo simples ascidoc/markdown

19 August 2019
Debian : Instalar um arquivo .deb via linha de comando

instalar pacotes .deb via linha de comando

16 August 2019
Gradle: pasta resources visível no IDE

adicionar uma pasta ao classpath de um build Gradle

14 August 2019
Script Groovy, grab e configuração Ivy

gradle groovy ivy

13 August 2019
Groovy: um pouco de álgebra, o mdc e o mmc

da álgebra em groovy

12 August 2019
Bash: Encontrar arquivos por extensão saída em arquivo com find

um pouco de bash com find

01 August 2019
Gerir um projeto digital com uma metodologia em cascata

um pouco de método de projetos digitais com a metodologia em cascata

30 July 2019
Listar os bancos de dados em uma instância do PostgreSQL

tentativa de postgres

29 July 2019
Groovy: Renomear arquivos recursivamente

recursão em Groovy

19 July 2019
Groovy: Pesquisa de arquivos com critério, cópia da seleção

pesquisa de arquivo por padrão em Groovy

18 July 2019
Groovy: Manipulação de arquivos, pesquisa e exclusão

manipulação de arquivos e pesquisa de caracteres em groovy

17 July 2019
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

10 July 2019
Groovy: Caracteres ASCII

do Groovy, de loops e da manipulação de código ascii