Tecnologia
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Tecnologia
- Categoria: Inteligência Artificial
- Acessos: 5
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Tecnologia
- Categoria: Inteligência Artificial
- Acessos: 14
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Tecnologia
- Categoria: Cloud Computing
- Acessos: 23
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Java
- Categoria: Spring Framework (Boot, Data, MVC , WEB, Security, HAL e outros)
- Acessos: 31
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Java
- Categoria: Spring Framework (Boot, Data, MVC , WEB, Security, HAL e outros)
- Acessos: 46
Em menos de 48 horas a Anthropic fez dois movimentos grandes. No dia 30 de junho lançou o Claude Sonnet 5, um modelo médio focado em rodar agentes de forma autônoma e mais barata. No dia 1 de julho reativou globalmente o Claude Fable 5, o modelo mais capaz dela, depois que os Estados Unidos derrubaram um controle de exportação que tinha tirado o modelo do ar.
Se você usa Claude Code, Claude.ai ou a API no dia a dia, seu leque de modelos e o seu custo mudaram essa semana. Bora ver o que aconteceu e, principalmente, o que fazer com isso na prática, do jeito certo.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Tecnologia
- Categoria: Inteligência Artificial
- Acessos: 75
Você subiu o servidor MCP, expôs as tools direitinho, testou com o inspector e estava tudo lá. Aí foi plugar o seu app Java como cliente e nada. O listTools() volta uma lista vazia, ou pior, a chamada fica pendurada até estourar o timeout. Você revisa o servidor, revisa de novo, e o servidor está certo. O problema está do lado do cliente, e quase sempre tem nome: transporte errado.
Esse é o erro número 1 de quem escreve um cliente MCP em Java hoje. Usar o SSE legado contra um servidor que fala Streamable HTTP, ou chamar listTools() antes do initialize(). A conexão até abre, mas nenhuma capability é negociada, e tool nenhuma aparece. Bora resolver isso de vez, com o código certo para cada caso, usando o MCP Java SDK 2.0 que saiu como GA em junho.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 65
Tem uma flag que metade dos pipelines de CI carrega há anos sem ninguém lembrar por quê: -noverify. Alguém colocou lá em 2017 pra "acelerar o startup" pulando a verificação de bytecode, o build ficou verde, e ninguém mais tocou. Até o dia em que você troca a imagem base pra eclipse-temurin:27 e o container simplesmente não sobe. Nos logs, uma linha seca: Unrecognized option: -noverify.
O JDK 27 parou de ser tolerante com quatro opções antigas de launcher: -noverify, -Xverify:none, -noclassgc e -verifyremote. Elas estavam depreciadas (com aviso) desde o Java 13, e agora viraram erro fatal: a JVM nem inicia. Se alguma sobreviveu num Dockerfile, num argLine do Surefire ou numa run config de IDE, o build vai parar de subir bem na hora do upgrade. Bora ver onde isso se esconde, como varrer o projeto antes e como arrumar direito.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 48
Imagina a cena: você só trocou a tag da imagem Docker de eclipse-temurin:26 para eclipse-temurin:27. Não mexeu em uma linha de código, não tocou em nenhuma flag da JVM, não mudou o requests.cpu do pod. Faz o deploy, vai tomar um café, e quando volta aquele microsserviço de 1 vCPU está gastando mais CPU e a latência sob carga começou a oscilar feio. O time de SRE abre um chamado, o time de dev jura que não mudou nada. E os dois estão certos.
O culpado tem nome: JEP 523, que chega no JDK 27 e faz o G1GC virar o coletor de lixo padrão em todos os ambientes, inclusive nos containers de 1 CPU que hoje rodam SerialGC sem você nem saber. O JDK 27 entrou em Rampdown Phase One em junho e tem GA marcada para 14 de setembro de 2026. Ou seja, tem uma janela curta pra você medir seus pods sub-dimensionados antes que esse default mude embaixo deles. Bora entender o que muda, como detectar e como fixar isso direito.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 40
Tem uma melhoria de garbage collector chegando que você ganha só de subir a versão. No JDK 27 o G1GC passa a ser o coletor padrão em todo ambiente, inclusive no seu container de 1 CPU que hoje roda SerialGC sem ninguém ter pedido. Sem flag nova, sem refatorar uma linha de código de negócio.
E o melhor: dá pra provar a diferença em uma linha de comando. Nesse artigo você vai entender por que tantos pods Java estão silenciosamente no SerialGC hoje, o que o JEP 523 muda na prática e como antecipar esse ganho antes mesmo do GA do JDK 27, marcado pra 14 de setembro de 2026.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 59
Sexta à tarde, pico de tráfego, e a aplicação que ia voar depois que você habilitou Virtual Threads congelou. Carriers presos, requisições penduradas sem resposta, o pool do banco no talo e o throughput despencando em vez de subir. Você jurou que era só ligar uma flag, né?
Pois é. O Loom não mentiu, só que ligar Virtual Threads no Java 25 não é mágica de configuração. Tem um punhado de armadilhas que ninguém conta nos tutoriais e que só aparecem na escala de produção: pinning de carrier, pool de conexão que vira o teto real, ThreadLocal multiplicado por milhões e carga CPU-bound disfarçada de I/O. A boa notícia: o JDK 25 já traz o JEP 491, que matou a pior delas. Bora ver as quatro, com código do jeito errado e do jeito certo, pra você não descobrir na marra.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 64
Dia 30 de junho de 2026 o Spring Boot 3.5 perde o suporte OSS. Depois dessa data, sem patch de segurança, sem correção de CVE, sem rede. E olha que a fila de CVE do Spring em 2026 foi a maior da história: só no patch day de 08/06 saíram 18 correções de uma vez. Quem ficar para trás vai rodar produção com buraco conhecido e sem remendo oficial.
O problema é que o caminho até o Spring Boot 4 não é um bump de versão tranquilo. São mais de 50 mudanças que quebram código de produção: Jackson 3 com group ID novo, Spring Security 7 obrigando o Lambda DSL, JSpecify ligando null-safety e o Spring AI 1.x simplesmente parando de funcionar. Nesse artigo eu te dou o checklist real, com código antes e depois, para você migrar sem descobrir cada armadilha na marra, às 2 da manhã de um deploy.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 120
Existe um jeito de rodar a mesma aplicação Java usando bem menos memória, sem refatorar serviço nenhum. A maioria dos devs ainda não ligou essa configuração porque ela era opt-in, escondida atrás de uma flag experimental. No JDK 27 ela vira padrão, e quem entende o porquê sai na frente.
O recurso se chama Compact Object Headers (JEP 534) e, em benchmark oficial, corta cerca de 22% do heap e 8% de CPU. Bora ver, na prática, o que muda no cabeçalho de cada objeto que a sua JVM cria, como medir esse ganho no seu próprio código e em quais cenários ele realmente compensa.
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
-
Também disponível:
- Acessos: 79