Arquivo de Julho de 2006

Melhorando a serializacao de objetos imutaveis

Sexta, 28 de Julho de 2006

Criei um issue no JIRA do JBoss Serialization para melhorar a serialização de objetos imutáveis. Enquanto fazia algumas otimizações em um sistema que utiliza RMI - como protocolo de comunicação com um EJB remoto -, percebi que as chamadas problemáticas eram grandes somente porque continham diversos objetos imutáveis semanticamente iguais.
É muito comum isso ocorrer em […]

Polemica no post “The language barrier”

Sexta, 28 de Julho de 2006

Por essa eu não esperava: a maior parte dos comentários no meu post The language barrier acha que todo mundo tinha mais é que saber inglês e pronto. Para quem não consegue ler inglês, o post fala sobre a dificuldade que o indivíduo com potencial tem de se tornar um bom desenvolvedor pela falta de […]

GPL3, draft 2

Quinta, 27 de Julho de 2006

Se voê usa ou cria software open-source, deveria visitar o site da versão 3 da licença GPL. Para aqueles que não sabem, com exceção dos projetos da Apache, do Spring (que usa licença Apache também) e dos projetos da Sun, a grande maioria dos frameworks e ferramentas livres que utilizamos estão licenciados sob a LGPL […]

The language barrier

Quinta, 27 de Julho de 2006

Acabo de escrever um novo post no meu blog em inglês sobre a barreira do idioma que impede que muitos desenvolvedores talentos possam mostrar seu verdadeiro potencial. Confiram!

Aceito na JSR 303

Terça, 18 de Julho de 2006

Fui aceito no Expert Group da JSR 303 - Bean Validation. Desta vez, o objetivo é definir anotações e uma API para permitir a validação de JavaBeans, independente da camada em que sejam usados. Este é um assunto em que planejava me ocupar de qualquer forma, já que o Commons Validator, da Apache, possui […]

Resolvendo ORA-01000: maximum open cursors exceeded

Terça, 4 de Julho de 2006

Junto com o clássico OutOfMemoryError, este é um dos erros que mais aparece em sistemas que usam Oracle. Resolver esse problema não é difícil, como vou explicar aqui.
Este erro é causado por Connections, Statements e ResultSets deixados abertos. Normalmente temos algo como:

Connection con = //obtem conexao;
PreparedStatement ps = con.prepareStatement(”SELECT …”);
ResultSet rs = ps.executeQuery();

while (rs.next()) {
[…]