Rapidinha: import.sql

June 18th, 2008 by rafaelliu No comments »

Uma facilidade muito desconhecida do Hibernate é o import.sql, que pode ser usado para popular o banco. Basta o hibernate.hbm2ddl.auto estar setado como create ou create-drop que, logo após o banco ser criado, o script será executado.

fonte: http://in.relation.to/9081.lace

Firefox download day

June 15th, 2008 by rafaelliu No comments »

Data confirmada: 17 de junho.

Brasil está com quase 85.000 participantes, mais que quase todos os países europeus, mas muito atrás do Estados Unidos com quase 231.000.

Participe.

LPI 101

June 13th, 2008 by rafaelliu No comments »

Passei hoje na LPI 101 com 630 pontos, o mínimo era 500. Terminei a prova de 120 minutos em apenas 40. Como esperava foi pura decoreba, você sabia responder ou não. Como material utilizei muito as MAN pages, principalmente para gerência de usuários e pacotes e para conceitos em geral o livro LPIC-1: Linux Professional Institute Certification Study Guide. Fiz também alguns testes do TestKing que foram muito úteis, com algumas perguntas muito parecidas com as do exame.

Para obter o LPIC1 falta ainda passar no exame LPI 102, que cobre as partes kernel, rede e seguraça. Não sei ao certo quando farei, mas não pretendo demorar muito já que minha LPI 101 seria inútil.

Treinamento Seam

June 10th, 2008 by rafaelliu No comments »

Começei essa semana no treinamento JB170 JBoss: SEAM Essentials, da Red Hat. Ele está sendo ministrado pelo João Paulo na Mirante. Nunca havia mexido com Seam embora já tivesse lido bastante sobre em artigos. É uma palavrinha que vem aparecendo cada vez mais no dia-a-dia de quem mexe com tecnologia e muitos livros vêm sendo lançados.

Tive a primeira aula ontem e me pareceu ter idéias muito interessantes. Os não tão atuais esforços de padronizar a idéia do Seam sobre a JSR 299 (Web Beans) deverão dar um maior impulso e maior adesão ao Seam. Vejo vários indícios de um futuro próspero para esse framework.

Acabado o curso pretendo dar um overview sobre o Seam e quem sabe fazer um tutorial ao longo de vários posts. Aguardem!

Fedora 9

June 8th, 2008 by rafaelliu 1 comment »

O Fedora 9 saiu já faz algum tempo, fiquei de fazer um review mas outras coisas sempre iam aparecendo. Aproveitei esse finalzinho de tarde de domingo para finalmente escrever minhas impressões.

Primeiro a instalação. Instalei o F9 no meu notebook, um HP Pavillion dv2000. Tive problemas na parte final da instalação, quando chegava nos últimos pacotes o Anaconda travava e era sempre no mesmo pacote. Instalações travando já aconteceram comigo antes, já tive isso instalando o Windows XP também. Fato é que um teste no meu desktop logo pôs a culpa no meu note. Tive então que remover alguns pacotes e a instalação foi concluida.

Senti o boot com o novo Upstart mais rápido e mais novidades tela de login: ferramentas de acessibilidade, gerenciador de energia e seletor de língua. Ao tentar logar, um problema estranho: na tela de login, quando eu entrava com o login a tela de login parecia apenas dar um refresh. Bootei com init=/bin/bash e vi que era um erro de permissão quando ia-se iniciar o gdm. Desconfiado do SELinux, desabilitei-o e dei reboot para então consegui logar.

Depois disso só alegria. É só habilitar o som que vem mute por padrão, instalar o xorg-x11-drv-nvidia do repositório do livna e deixar o gnome mais com a sua cara.

As novidades que mais notei foram:

  • OpenJDK 6! – vem sem algumas ferramentas com que estava acostumado no JDK da Sun, mas apoio incondicionalmente esse projeto;
  • PackageKit – uma idéia interessante de fazer uma GUI unificada para todos os gerenciadores de pacotes;
  • Keyring integrado – usando PAM;
  • Firefox 3 – tá muito bom =) só me deixou na mão uma ou duas vezes, fechando do nada, mas é beta ainda.

Fora essas novidade o F9 possibilita ainda a criação de um Live USB persistente, algo muito interessante. Bom, um ponto fraco: não vi conector Xen para o Virtual Machine Manager.

Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5 (CX-310-083)

June 2nd, 2008 by rafaelliu 2 comments »

Hoje foi a vez da prova de Web Component Developer. Passei com 76%, bem apertado mesmo. Estudei unica e exclusivamente SCWCD Exam Study Kit, único livro na biblioteca da empresa sobre o assunto. Faltando apenas 10 minutos para o início do meu exame meu nome ainda não havia aparecido no sistema e a recepcionista teve que contactar o pessoal do Prometric. Tudo certo, fui ao exame.

Aquelas típicas perguntas pré-teste pareceram maiores e foram um tanto chatas de se responder. No mais o tempo para essa prova, assim como a de SCJP, também foi muito grande. Sai da sala com ainda 1:20 para o término da prova.

A prova começou fácil e não assustou muito. Algumas questões bem de decorar, eu já sabia que iam cair. E muita coisa sobre tags, inclusive JSTL. Não esperava que fosse ser cobrado do jeito que foi. Tive que fazer uma força para lembrar dos velhos tempos em que usava Struts. Gostaria de ter estudado com mais afinco, estava imaginando que ela fosse ser muito tranquila de se fazer com o que uso no dia-a-dia.

Firefox download day

May 29th, 2008 by rafaelliu No comments »

Não sou muito de postar news e sou contra ufanismos mas sendo usuário de Firefox, abri essa exceção. Esse é realmente um projeto que tem um potencial de crescimento enorme.

A Mozilla abriu uma campanha para quebrar o recorde de software mais baixado num período de 24 horas. A data ainda será divulgada, mas já existe um link para confirmar participação, se cadastrando um e-mail será enviado lembrando do dia.

Na verdade acho que o mérito dessa campanha é divulgar esse tão querido browser entre os desenvolvedores para mais pessoas. Convoco a todos que acreditam na idéia a ajudarem!

Download Day 2008

Agora fazer festinhas para lançamento de software já acho demais..

Quick one

May 26th, 2008 by rafaelliu 1 comment »

This one is for all of you who (like me) keeps wasting time using commands such as find, jar and grep each time you get a classpath error:

#!/bin/bash
if [ "$1" = "" ]; then
	echo "Usage: jarfind REGEXP";
	exit;
fi
 
for d in `find . -name '*.jar'` ; do
	FILES=`unzip -l $d | cut -c 29- | egrep ''$1''`;
 
	if [ "$FILES" != "" ]; then
		echo "$d";
 
		for f in $FILES ; do
			echo " - $f"
		done
	fi
done

I’ve chose to use unzip instead of jar since it’s far more commonly seem. Move it to /usr/local/bin/jarfind (well, that’s a little personal) and chmod it to +x.

I works searching all jars under the current directory for a regular expression, most commonly a simple class name. It returns the jar’s names and all corresponding class matches.

I’m not a bash programmer, so it may not look that pretty to experienced bash programmers, but it looks beautiful to me, as it saves me a lot of time =). Feel free to make any comments.

EDIT:

first known bug: doesn’t escape special characters in paths =/

setProperty must be overridden by all subclasses of SOAPMessage

May 8th, 2008 by rafaelliu 19 comments »

Tive recentemente que fazer uma prova de conceito, usando web services. Criei uma aplicação usando JAX-WS no JBoss 4.2.2 rodando na JDK 6 da Sun e me deparei um a seguinte exceção:

java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:424)
at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:83)
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:161)

Pesquisando um pouco achei vários relatos similares e até uma entrada no JIRA. A classe SOAPMessage é da biblioteca SAAJ, e o problema é entre o JBoss e a JDK 6. Até a versão 6, essa biblioteca era distruida separadamente, mas na nova versão ela já vem integrada. O problema é que o JBoss já possui uma implementação própria dessa biblioteca e ao se carregar o SOAPMessage a biblioteca da Sun é utilizada, a qual está implementada de forma lançar um UnsupportedOperationException.

Uma solução é usar o esquema de endorsed da JVM. Bibliotecas endorsed são carregadas antes, tendo prioridade então sobre quaisquer outras bibliotecas. Assim, basta adicionarmos o jboss-saaj.jar (em <CONFIG_HOME>/lib) ao <JBOSS_HOME>/lib/endorsed. O script run.sh define a variável JBOSS_ENDORSED_DIRS=”$JBOSS_HOME/lib/endorsed” e cuida de setar esse diretório na propriedade java.endorsed.dirs da JVM.

Mas eu estou rodando o JBoss para JDK 6! (EDIT)

Existe uma “peculiaridade” se você estiver rodando o JBoss 5 para JDK 6 no WTP do Eclipse. O JBoss 5 usa o $JBOSS_HOME/lib/endorsed como o java.endorsed.dirs, setando esse parâmetro quando executamos o $JBOSS_HOME/bin/run.sh. O problema quando executamos via WTP é que o eclipse não usar o run.sh, portanto não seta o diretório endorsed e caímos no mesmo problema do JBoss 4.

Para resolver o problema basta clicar no “launch configuration” do servidor e adicionar o seguinte parâmetro no “VM arguments”:

-Djava.endorsed.dirs=../lib/endorsed

IMPORTANTE: O JBoss não é oficialmente suportado na JDK 6 e outros imprevistos podem vir a ocorrer. Recomenda-se utilizar a JDK 5, ao invés.

Sun Certified Programmer for the Java Platform, Standard Edition 6 (CX-310-065)

April 6th, 2008 by rafaelliu No comments »

Fiz quinta passada a prova de SCJP 6. Foram 72 questões e passei com 86%. Como já tinha experiência com Java, deixei para estudar apenas quando terminasse a prova da IBM.

Como fonte de estudo usei o livro da Katherine Sierra, já consagrado entre todos os test takers do SCJP. Usei também o Sun Academic Initiative do qual fiz apenas os simulados, mas me pareceu ter um bom material para estudo. Dei umas clicadas também no Scjp Faq do JavaRanch, que tem um material talvez até extenso demais.

A prova foi tranquila e deu para acabar faltando ainda 1:30 de prova. Tive um susto durante a prova: o programa deu um erro, travou e fechou. Nisso eu estava no meio da revisão da prova, agora imaginem a minha reação… Depois do técnico reiniciar o computador (é Windows), o programa da Prometric me mostrou a prova de onde havia parado. Foi um alívio.

Acostumado com as interfaces dos mocks, tive uma agradável surpresa ao ver a interface do programa da Prometric. Os códigos maiores eram postos em janelas a parte de forma que dava para organizar a melhor a vizualização, os drag and drops, também foram bem feitos e a única coisa de que não gostei é que não se podia revisar as questões de drag and drop sem que se perdesse as respostas dadas.