segunda-feira, 17 de agosto de 2009

Grails 1.2M2, JMS and ActiveMQ plugins

UPDATE: As I initially suspected, this wasn't a Grails problem: There's been some bean renaming in the last versions of JMS plugin that caused the incompatibility with the ActiveMQ plugin. Both plugins have released new versions (JMS 0.5-RC2 and ActiveMQ 0.1) that are now compatible once again.


Recently I tried to use JMS and ActiveMQ with Grails 1.2-M2 and found some bumps while trying to make it all work together. Well, after some experimentation, I found the missing pieces of the puzzle: Both jmsConnectionFactory and defaultJmsTemplate beans are missing. It seems that the plugins are no longer fully integrated as they used to be...

Without any further investigation I've simply configured them in the resources.groovy file, like this:


beans = {
jmsConnectionFactory(org.apache.activemq.ActiveMQConnectionFactory) {
brokerURL = 'vm://localhost'
}

defaultJmsTemplate(org.springframework.jms.core.JmsTemplate) {
connectionFactory = ref("jmsConnectionFactory")
}
}


... and all worked as expected. Maybe it's something that I'm doing wrong, but for now that I need a quick prototype, it's working perfect.

Feel free to leave any suggestion in the comments.

terça-feira, 10 de junho de 2008

Iniciando applicações pela linha de comando do Mac OS X


Normalmente eu uso o Spotlight para iniciar aplicações, mas de vez em quando preciso fazer isto pelo prompt do Terminal (por exemplo quando quero iniciar o Transmission remotamente). Normalmente fazia assim:

$ open /Applications/Transmission

Mas resolvi "futucar" o comando open e descobri que passando o parametro -a, ele procura a aplicação no diretório /Applications. Então basta:

$ open -a Transmission

Prático não? Você já sabia disto?!? Porque não me contou antes!?!?!?

domingo, 18 de maio de 2008

Livros grátis para download


Tenho estudado bastante nos últimos meses e tenho lido excelentes livros, além de muito material na Net, listas de discussão e blogs especializados.

Em breve devo falar sobre os livros que eu acho que valem a pena ler, mas por enquanto vou passar para vocês uma dica que, apesar de todo mundo que está no nosso meio de tecnologia já saber, pode ser muito interessante pra quem está chegando agora.

Trata-se dos livretos da InfoQ, que é um site que todos deveriam acompanhar, com informações sobre programação Java, Ruby, .Net, metodologias ágeis e arquitetura de software. Os livretos são disponibilizados de graça em PDF, mas tem opção de serem comprados em versão impressa.

Um que eu recomendo em especial é o "Domain Driven Design Quickly", que é basicamente um resumo do *excelente* livro do Eric Evans, mas todos são (pelo menos os que eu li) leituras indispensáveis.

Obviamente todo este material está em inglês e se você ainda não se sente a vontade com a língua, está na hora do começar a estudar ou então é melhor mudar de profissão.. :)

sábado, 17 de maio de 2008

Instalação do Bonjour/mDNSResponder para Java no Debian 4


Primeiro um pouco da história: (para quem estiver "na forca" e quiser ir logo para o tutorial, pode pular esta parte, eu deixo ;)

Recentemente participei de um projeto Java que utilizava o Zeroconf como meio de transporte de mensagens. O projeto já chegou pra mim quase todo pronto e funcionando com o Bonjour.

Como todos sabem :), o Bonjour é a implementação da Apple para o Zeroconf, uma família de protocolos que permitem que programas registrem serviços na rede, e clientes possam "descobrir" onde e como acessar estes serviços, de forma automática e sem configuração prévia. Quem já usou o iTunes em rede sabe bem como é. O iTunes "acha" outros iTunes na rede automáticamente para que você possa ouvir música de outros computadores.

Pois bem, a instalação do Bonjour no Windows é tranquila, tem um setup disponibilizado no próprio site da Apple, apesar de que na versão final do software desenvolvido eu ter mudado para a implementação "Pure Java" JmDNS.

No Mac OS X, claro, não precisa fazer nada, pois o Bonjour já vem instalado como serviço básico do S.O.

Porém, o módulo "cliente" do sistema desenvolvido deveria rodar em Linux. Como não consegui migrar do Bonjour para o JmDNS no software cliente, por falta de tempo, tive que usar a implementação Open Source da Apple, mDNSResponder. Esta implementação a princípio deveria ser multiplataforma, e compilar/rodar em várias plataformas.

Mas parece que a Apple ainda tem que aprender algumas coisinhas sobre como desenvolver para multiplas plataformas, pois a instalação do mDNSResponder no Linux é, no mínimo, um desafio.

No Ubuntu, uma das distribuições usadas pelo cliente, foi relativamente fácil a instalação. Infelizmente não anotei os passos, pois consegui resolver em alguns minutos.

Já no Debian a coisa foi bastante mais complicada. E pra piorar não achei nenhuma referência no Google de como resolver, só gente procurando solução em diversos fórums.

Então depois de quebrar bastante a cabeça consegui criar um passo-a-passo de como fazer esta instalação. Resolvi colocar aqui estas instruções, caso alguém também passe por isto.


Instalação do mDNSResponder (Bonjour) no Debian 4

1 Pré­requisitos:

Instalar packages necessários:
$ sudo apt­-get install gcc libc6­-dev make­-jpkg fakeroot

Baixar arquivos necessários:
Bonjour: http://www.opensource.apple.com/darwinsource/tarballs/other/mDNSResponder­107.6.tar.gz
JDK 6 update 6 : http://java.sun.com/javase/downloads/?intcmp=1281

2 Instalar JDK 6:

OBS: Caso você já tenha a JDK 6 instalada no seu sistema, pode pular esta parte, apenas corrigindo o path para a JDK no próximo passo

$ ln ­-s jdk-­6u6-­linux-­i586.bin jdk-­1_5_0_11­-linux-­i586.bin
$ fakeroot make-­jpkg jdk­-1_5_0_11­-linux­-i586.bin
$ sudo dpkg ­-i sun-­j2sdk1.5_1.5.0+update11_i386.deb



3 Instalar Bonjour (mDNSResponder):

$ tar xfz  mDNSResponder­-107.6.tar.gz
$ cd mDNSResponder­-107.6/mDNSPosix


editar Makefile, linha 267:
JDK=/usr/lib/j2sdk1.5­-sun



$ make os=linux
$ sudo make os=linux install
$ make os=linux Java

$ sudo chmod +x /usr/sbin/mdnsd
$ sudo /etc/init.d/mdns start

$ cd build/prod
$ sudo cp dns_sd.jar /usr/lib/j2sdk1.5­sun/lib/ext
$ sudo cp libjdns_sd.so /usr/lib


Após estes passos, o mDNSResponder estará instalado e tudo deve funcionar.

Qualquer dúvida sobre o que estes passos fazem, ou se não funcionar pra você, ou até uma forma mais fácil que esta, não deixe de comentar.

Inté!

Eu também!

Pois é, eu também sou um daqueles entusiastas que cria um blog, escreve meia dúzia de posts e não consegue mais tempo pra continuar. Da mesma forma, depois de um tempo, como todos os entusiastas, resolvi voltar a blogar. 

Este post é só pra informar que vou voltar (pelo menos vou tentar), e que o assunto vai ser mais dedicado a tecnologia, pois tenho estudado novas ferramentas e linguagens e gostaria de compartilhar o que tenho aprendido com todos vocês (Google, tô falando contigo).

Inté.

sábado, 22 de setembro de 2007

Donkey Kong

Lembram do Donkey Kong? Então adicione um boa dose de completa falta do que fazer e olha o que dá:

terça-feira, 18 de setembro de 2007

Windows roda melhor em Macs!

Excelente post do StevenF, desenvolvedor do Transmit (um cliente FTP pra Mac), sobre a experiência de comprar um Notebook com Windows. Hilário. Vale a pena ler. Veja este trecho:
"I won't lie to you — I use Windows occasionally. It's important for me as a Mac developer to use Windows once in a while, because it's a fantastic lesson on how do absolutely everything wrong when designing software."
Leia o post completo: Macs really do run Windows better