16 Aug
A Associação Software Livre Santa Catarina – SoLiSC – informa a abertura da chamada de trabalhos para o 5º SoLiSC – Congresso Catarinense de Software Livre.
O evento será realizado em Florianópolis, SC, em local a ser definido, nos dias 22 e 23 de oububro de 2010.
A submissão das palestras deve ser feita até o dia 01/09/2010 (primeiro de setembro de 2010), através do sistema papers, no seguinte endereço: http://papers.solisc.org.br/2010/speaker/. Para quem já postou palestra no ano passado, pode utilizar o mesmo cadastro.
Graças à excelente avaliação do público para as palestras que vieram da chamada de trabalhos no último ano, o espaço para estas será ampliado na grade de 2010.
O comitê organizador do evento definiu os seguintes macro-temas ou trilhas para este ano:
As palestras devem ser preparadas para a duração de 50 minutos, incluindo o tempo para perguntas.
Os trabalhos serão avaliados pelo comitê de programa do SoLiSC.
A organização do evento informa que todos os palestrantes aprovados terão isenção da inscrição do evento, mas que não irá dispor de ajuda de custo para quem tiver a palestra aprovada.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
31 Mar
Um dos grandes problemas que enfrentamos no meu atual projeto na AdaptWorks foi descobrir qual o real encoding de páginas html arbitrárias.
Existem diversas causas para esse problema:
Depois de muito procurar, encontramos um projeto que usa diversas heurísticas para detectar o encoding correto do arquivo.
O ICU (International Components for Unicode) faz todo o trabalho pesado para a detecção do encoding, com mais confiabilidade do que os dados enviados pelo servidor ou especificados pelo criador da página.
Entre os vários usuários do ICU, estão Google, IBM e Apple.
Ele é meio chato de usar, mas vale a pena.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
3 Mar
Semanas atrás eu apanhei bastante do Hibernate Search. Na verdade, não foi dele que eu apanhei, mas de não entender algo fundamental sobre ele.
Pra quem não sabe, o hibernate search é uma ferramenta muito legal para busca textual construída em cima do Lucene e do Hibernate. É realmente muito simples de configurar e usar. Mas tem um ponto que eu sabia mas não entendia as implicações.
O cenário era o seguinte. Eu tinha uma aplicação que usava lucene para fazer busca textual. Tudo era feito na mão e tinhámos uma boa suite de testes cobrindo a busca textual. Como a utilização do lucene foi em um momento experimental (fazer e depois melhorar), resolvemos migrar para hibernate search. Tirando o tempo que demorei para notar que a versão atual do hibernate search exige Lucene 2 e não o 3 que usávamos, dois testes insistiam em não passar por nada no mundo.
Todo o resto funcionava (o que praticamente garantia que a configuração estava certa). Depois de muito quebrar a cabeça, me lembrei de como o hibernate search funciona.
O hibernate possui uma estrutura de interceptadores para muita coisa interna dele, inclusive operações básicas com o banco, como inserir, atualizar, remover, etc.
O hibernate search entra exatamente nesse ponto. Cadastrando interceptadores para todas essas funções, ele é capaz de pegar os dados e serializar no índice do lucene também (notem que existe replicação de informação, uma vez que você terá os dados no banco e no índice do lucene). E esse é exatamente o ponto.
O teste que não passava era um teste que simulava o comportamento do usuário, usando WebDriver. Na funcionalidade em questão, não eram enviados todos os dados do objeto, apenas a chave primária dele. Com isso, o hibernate search indexava apenas a chave, pois todo o resto do objeto estava vazio. Quando me lembrei disso, foi necessário apenas fazer uma busca antes de mandar gravar o objeto.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
24 Feb
Quando eu comecei a trabalhar na Adaptworks em setembro do ano passado, estou em um projeto onde temos muito espaço para experimentação e criação de melhorias.
Uma dessas melhorias é uma forma diferente de se trabalhar com internacionalização em Java.
Em geral, usamos uma taglib para fazer isso (como a JSTL/fmt). Mas eu realmente não gosto muito de sintaxes como:
<input type="submit" value="<fmt:message key="project.submit.button" />">
Fica bem ruim de ler. Eu lembrava de ter ouvido que era possível estender a Expression Language do JSP, mas nunca tinha dado muita bola pra isso.
Enfim, depois de apanhar um pouco chegamos a uma solução interessante para o mesmo código:
<input type="submit" value="${i18n.project.submit.button}">
Não sei quanto a vocês, mas acho bem mais legível.
O projeto está em http://projetos.vidageek.net/i18n
Feedback é sempre bem vindo.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.