Blog
Notas pessoais sobre desenvolvimento, arquitetura, segurança e entrega contínua.
Por tópico
-
Segurança web
Checklist moderno, SQL injection com prepared statements/PDO e práticas que ainda importam em 2026.
-
Arquitetura e microsserviços
Quando migrar de monólito, fronteiras de ERP e trade-offs reais de operação.
-
Entrega e CI/CD
Pipelines úteis para times pequenos e hábitos de produtividade de engenharia.
-
Integração e fiscal
Pentaho/PDI, parâmetros em jobs e CFOP no contexto de software fiscal brasileiro.
Todos os posts
-
Segurança web em 2026: checklist prático para sites e APIs
TLS, autenticação, prepared statements, headers, rate limit e cookies — o que ainda importa na segurança web em 2026.
-
Arquitetura de ERP e integrações: fronteiras e contratos
Como desenhar boundaries, APIs, filas e ETL ao integrar módulos fiscais, financeiros e sistemas satélite.
-
CI/CD para times pequenos: pipeline mínimo que funciona
Como montar testes, build e deploy contínuo com pouca gente — sem copiar processo de big tech.
-
Microsserviços: quando migrar (e quando não)
Sinais reais de que o monólito dói — e quando microsserviços só aumentam o custo operacional.
-
Da TEK Softwares à impressão 3D: jornada do fundador
Como expandi de software sob medida para produtos físicos impressos em 3D — canais, operação e o que muda no dia a dia.
-
Produtividade de desenvolvedor: hábitos que somam horas
Automações, foco, gates de teste e hábitos que somam horas por semana no dia a dia de um arquiteto de software.
-
Avisos por voz no Mac para produtividade
Como ativar anúncios por voz de alertas no macOS e reduzir context switching.
-
Internacionalização (i18n) em Java com ResourceBundle
Como internacionalizar aplicações Java com arquivos .properties, ResourceBundle e formulários multi-idioma.
-
Integração de sistemas com Pentaho Data Integration (PDI)
Por que usar PDI/Kettle para ETL e integração entre ERPs, bancos e arquivos — visão prática atualizada.
-
Inserção múltipla de registros em SQL
Como reduzir round-trips com INSERT multi-values e limites por banco (MySQL, SQL Server, Oracle).
-
Passagem de parâmetros no Pentaho PDI (Jobs e Transformações)
Como parametrizar Jobs e Transformações no PDI em vez de duplicar processos — com exemplos visuais.
-
JAVA_HOME, CLASSPATH e PATH no Mac (JDK moderno)
Como configurar JAVA_HOME, PATH e CLASSPATH no macOS com JDK atual — shell profile e arm64/x64.
-
O que é QR Code e para que serve
Explicação rápida de QR Code: padrão bidimensional, usos e leitura por celular.
-
Ofuscar e compactar JARs Java com ProGuard
Como usar ProGuard para ofuscar e otimizar projetos Java modernos — sem downloads inseguros de rt.jar.
-
JPasswordField: use getPassword() em vez de getText()
Por que getText() está depreciado em JPasswordField e como converter char[] com segurança.
-
Menu na barra do sistema no Mac com Java Swing
Como ativar apple.laf.useScreenMenuBar e Look and Feel nativo no macOS para apps Java.
-
Preencher JDateChooser no NetBeans a partir de String
Converter String dd/MM/yyyy para Calendar e setSelectedDate no JDateChooser.
-
Adicionar JDateChooser na Palette do NetBeans
Como instalar o componente JDateChooser (OpenFaces) na Palette Swing do NetBeans.
-
Ordenar colunas do JTable com RowSorter
Ativar ordenação de linhas no JTable com setAutoCreateRowSorter(true).
-
PreparedStatement em Java contra SQL injection
Como usar PreparedStatement com placeholders e setters tipados para consultas seguras em Java.
-
Botão default com Enter em formulários Java Swing
Como definir o botão default do RootPane para executar ação ao pressionar Enter.
-
ORA-03115 no Java: executeUpdate sem SQL duplicado
Causa comum do ORA-03115 ao passar SQL de novo em PreparedStatement.executeUpdate(sql).
-
Select HTML dinâmico com PHP e MySQL
Como montar um combo <select> a partir de uma query PHP (padrão clássico).
-
Separar caracteres de uma string em PHP
Duas formas simples: substr em loop e indexação de string como array.
-
CFOP na escrita fiscal: o que é e como classificar
Código Fiscal de Operações e Prestações: grupos de entrada/saída e importância para software emissor.
-
Cursor de espera (WAIT) em Java Swing
Trocar o cursor para WAIT_CURSOR durante rotinas longas e restaurar o padrão.
-
Ataques em cadeia: SYN Flood, spoofing e varredura
Visão introdutória de técnicas de reconhecimento e negação de serviço em redes (contexto histórico).
-
Teclado virtual em bancos: o que protege e o que não
Por que bancos usam teclado virtual contra keyloggers — e limites frente a malware com captura de tela.
-
SQL injection em PHP: use PDO e prepared statements
Por que addslashes não basta e como prevenir SQL injection com PDO/prepared statements em PHP.
-
MySQL ERROR 2002: socket e 127.0.0.1
Corrigir Can't connect through socket usando 127.0.0.1 em vez de localhost no cliente.
-
TBookmark em Delphi: marcar posição na query
GetBookMark e FreeBookMark para voltar a um registro sem reconsultar o banco.
-
Inc e Dec em Delphi (e datas)
Como incrementar/decrementar inteiros e datas no Delphi sem operadores ++/--.
-
Por que ainda uso MySQL em projetos freela
Flexibilidade, InnoDB, índices e stacks locais (MAMP/LAMP) — visão prática de MySQL para sistemas.
-
Domínio, DNS e hospedagem para iniciantes (2026)
Registro.br, DNS, escolha de hospedagem e o que mudou desde a era do shared hosting barato.