Tecnologia
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Linguagem de programação
- Categoria: Java
- Acessos: 150
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Tecnologia
- Categoria: Inteligência Artificial
- Acessos: 127
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Tecnologia
- Categoria: Inteligência Artificial
- Acessos: 137
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Tecnologia
- Categoria: Inteligência Artificial
- Acessos: 141
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Tecnologia
- Categoria: Cloud Computing
- Acessos: 128
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Java
- Categoria: Spring Framework (Boot, Data, MVC , WEB, Security, HAL e outros)
- Acessos: 122
- Detalhes
- Escrito por: Jorge Demetrio
- Categoria Pai: Java
- Categoria: Spring Framework (Boot, Data, MVC , WEB, Security, HAL e outros)
- Acessos: 135
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: 144
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: 107
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: 90
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: 79
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: 101
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: 100