quarta-feira, 16 de fevereiro de 2011

Criando uma aplicação no NetBeans com JPA 2.0 e JavaDB

O vídeo tutorial a seguir apresenta a criação de um projeto desde o início, através da versão atual do NetBeans, para o uso do JPA 2 para persistência de uma entidade simples.

Neste vídeo a IDE é usada para criar um projeto Java e demonstrar o uso do JPA via EclipseLink com o banco de dados JavaDB. Uma entidade simples Cliente é criada. Depois o DAO (Data Access Object) é implementado para realizar algumas operações de persistência.


O projeto completo criado neste tutorial pode ser baixado através do seguinte link: exemploJPA-1.0.zip

Enjoy it!
By Spock
Twitter: @drspockbr
http://linkedin.spock.com.br/
http://www.springbrasil.com.br/

terça-feira, 28 de dezembro de 2010

Slides JavaOne 2010 USA, Brasil e TDC2010

Performance Tips and Tricks: Java EE, Java Persistence API and JavaServer Faces foi o tema apresentado no JavaOne nos Estados Unidos (San Francisco) e aqui no Brasil este ano. Contudo, o título que melhor descreveria a apresentação seria Dicas e Truques sobre performance em aplicações Web com JSF, JPA e AJAX.

Junto com o Danival Taffarel Calegari, fiz uma prévia deste tema no evento TDC2010 (The Developers Conference 2010 - Globalcode) em português. Depois fizemos vários ajustes e a tradução para inglês antes do JavaOne 2010 USA. Quando soubemos que o evento seria trazido para o Brasil, encaminhamos o mesmo tema como proposta de palestra. Foi aprovada e, após uma nova tradução para o português e algumas melhorias, realizamos a palestra duas vezes aqui no Brasil.

A primeira apresentação aqui no Brasil, no JavaOne, foi realizada no dia 08/12 (quarta-feira) às 16h. Para nossa surpresa, a lotação da sala foi máxima e infelizmente muitas pessoas ficaram de fora por falta de lugar. Mas, uma surpresa maior ainda foi sermos convidados para uma segunda apresentação no dia 09/12 (quinta-feira) às 14h. Esta segunda apresentação foi sugerida para atender aquelas pessoas que ficaram na fila e não conseguiram entrar na sala. Tivemos uma grande fila novamente, mas desta vez, todos puderam entrar na sala, mesmo alguns ficando em pé e outros sentados no chão, resultado numa nova lotação. Assim, fechamos 4 apresentações sobre o tema proposto.

O feedback da nossa apresentação nos USA foi muito bom. Mas, o resultado das apresentações aqui no JavaOne do Brasil foi muito melhor ainda.


Agora compartilho os slides usados nestas quatro apresentações em três versões.



Esta última versão contem um vídeo (screencast) da aplicação de demonstração (implementação de referência) desenvolvida para demonstrar as dicas e truques apresentadas nos slides.

O projeto criado como implementação de referência das dicas e truques apresentadas está disponível como um projeto open source no SourceForge através do link: JavaOne Catalog Prototype.

Enjoy it!

By Spock
Twiiter: @drspockbr
http://linkedin.spock.com.br/
http://facebook.spock.com.br/
http://www.springbrasil.com.br/

sábado, 25 de dezembro de 2010

Instalando ffmpeg no Mac OS X Snow Leopard

Hoje me deparei com a necessidade de converter um arquivo de áudio do formato aac para mp3 e tinha disponível apenas o meu MacBookPro 13" com o Mac OS X Snow Leopard.

Infelizmente, este sistema não disponibiliza um conversor já previamente instalado. Várias opções que achei na rede eram shareware ou pagas. Até quando encontrei o ffmpegX, mas também não é free. Foi quando resolvi baixar o ffmpeg puro e recompilar no Mac.

Quando fiz isso, pude notar o quanto você precisa ser nerd para fazer coisas um pouquinho mais avançadas no Mac OS. As vezes até precisa ser mais nerd do que um nerd de Linux/Ubuntu/etc.

Contudo, encontrei as seguintes referências na rede:
Então, após o download do LAME, FAAC, FAAD2 e descompactar os respectivos arquivos num diretorio, segui os passos indicados no roteiro indicado na primeira referência. Para isso, usei as seguintes instruções num terminal aberto:
cd lame-3.98.4
./configure
make
sudo make install

cd ../faac-1.28
./configure
make
sudo make install

cd ../faad2-2.7
./configure
make
sudo make install

cd ..
svn checkout \
    svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-libmp3lame \
            --enable-shared --disable-mmx \
            --arch=x86_64
make
sudo make install
Todo o processo de configuração, compilação e instalação de cada ferramenta ocorreu com sucesso. Então, para converter o arquivo desejado para "mp3", usei a seguinte linha de comando no terminal:
ffmpeg -i origem.aac \
       -acodec 'libmp3lame' destino.mp3
Pronto ... simples assim! :)

Para ser um usuário PRO num Mac OS X as vezes precisamos ser mais nerd do que num Ubuntu que facilita a vida com o synaptic.

By spock
http://linkedin.spock.com.br/
http://facebook.spock.com.br/
http://www.springbrasil.com.br/

sábado, 13 de novembro de 2010

Vídeo Tutorial sobre Spring Roo + GWT + GAE

Baseado na apresentação realizada no TDC 2010 em Florianópolis preparei um vídeo tutorial com narração desmonstrando o uso do Spring Roo gerando uma aplicação Web baseada no GWT (Google Web Toolkit) e deploy no GAE (Google App Engine).

Luz, Câmera, Ação!


Enjoy it!
By spock
http://linkedin.spock.com.br/
http://facebook.spock.com.br/
http://www.springbrasil.com.br/

terça-feira, 9 de novembro de 2010

TDC2010 em Floripa foi sensacional!

Neste último final de semana aconteceu em Florianópolis a terceira edição do "The Developers Conference" promovido pela Globalcode e V.Office. O evento contou com mais de 500 inscrições, 6 trilhas de assuntos e 42 palestras. Eu tive a oportunidade ímpar de contribuir com 3 palestras de assuntos que gosto muito. Foi sensacional!

Agora resolvi publicar aqui os slides que utilizei durante as palestras. A primeira palestra foi sobre computação física com Arduino, Program-ME e a plataforma Java. Apresentei nesta palestra o conceito de computação física, hardware open source, além de mostrar o Arduino e o Program-ME (exemplos de hardware open source) como excelentes meios de realizar/experimentar/aprender computação física.
Na segunda palestra falei sobre a plataforma Spring através do tema "Spring 3: Uma plataforma além do framework". O objetivo era apresentar os vários frameworks, linguagens, ferramentas e portes do Spring que começam a estabelecer uma nova plataforma de desenvolvimento de aplicações Java. Na segunda parte desta palestra tratei das funcionalidades e características presentes na versão 3.0 do Spring Framework.
A terceira e última palestra foi para mostrar a ferramenta de geração de códigos chamada de Spring Roo. O objetivo desta palestra, além de definir e apresentar o Spring Roo, era de mostrar como gerar uma aplicação Web baseada em GWT (Google Web Toolkit) e o deploy no GAE (Google App Engine). A aplicação gerada e demonstrada durante a palestra está disponível no GAE: Scrum ROO Toys. Disponibilizei também o script para criação da aplicação demo através do ROO shell: ScroomToys.
Outras apresentação estão disponíveis no site oficial do evento: The Developers Conference 2010.

Como sempre, não pude deixar de visitar um pub local para beber uma cervejinha artezanal da região. Daí, o happy hour para network etílico aconteceu no Chopp do Gus (sábado) e na Academia da Cerveja (domingo).

By spock
http://linkedin.spock.com.br/
http://facebook.spock.com.br/
http://www.springbrasil.com.br/

terça-feira, 15 de junho de 2010

Arquitetura do ScrumToys influencia livro sobre JSF 2.0

Recentemente participei do desenvolvimento da aplicação exemplo chamada de ScrumToys para demonstrar o maior número possível de funcionalidades do JSF 2.0. Boa parte do refactoring da arquitetura de componentes na camada de controle e modelo foi realizado por mim.

Alguns detalhes sobre as classes implementadas para suporte aos Managed Beans da aplicação ScrumToys estão disponíveis no blog da Globalcode: Um pouco sobre a arquitetura do ScrumToys.

As simplificações propostas nas classes implementadas na camada de controle serviram de referência para o desenvolvimento dos exemplos contidos no livro JavaServer Faces 2.0, The Complete Reference, escrito pelo Ed Burns, líder da especificação do JSF 2.0 no JCP, e pelo Chris Schalk, Developer Advocate no Google. Este livro implementa uma aplicação chamada Virtual Trainer ao usar a modelagem para gerenciamento do contexto de persistência e demarcação da transação via JTA através de classes base abstratas para os Managed Beans do JSF 2.0 no ScrumToys.

Um trecho do livro está disponível no Google Books e indica uma referência indireta à arquitetura proposta pelo ScrumToys.


O projeto ScrumToys foi incorporado à versão final do NetBeans 6.8 como uma demonstração de aplicação Web. O vídeo a seguir ilustra o uso do NetBeans para criar este projeto a partir de um wizard da ferramenta e permitir o acesso aos códigos de demonstração do JSF 2.0:


Em reconhecimento ao trabalho realizado, o Ed Burn faz referência à alguns desenvolvedores deste projeto no tópico Acknowledgments do livro.

Ed, muito obrigado!

By Spock
http://twitter.spock.com.br/
http://www.springbrasil.com.br/

sexta-feira, 4 de junho de 2010

Motorola Milestone vesus Apple iPhone 3GS

Qual escolher? Qual o melhor? Êita decisão difícil!

Num comparativo realizado pela Info, o iPhone 3GS levou a melhor em alguns quesitos, mas o Motorola Milestone, além do Android 2.0, ganha em alguns pontos no hardware. Apesar da Motorola já oferecer um outro celular com Android (o Motorola Dext), no momento o Milestone é a nossa única opção com a versão mais nova do Android.

O Motorola Milestone conta com uma câmera fotográfica de 5M pixels contra a câmera de 3M pixels do iPhone. Além disso, o Milestone oferece flash através de LED e um certo nível de zoom. Contudo, o design quadradão do Milestone desanima qualquer um. Inclusive é chamado de Android de tiozão pela Info.

Tirando a câmera fotográfica e o sistema operacional aberto da Google (o Android) no Motorola Milestone, sem dúvida o iPhone se mostra melhor em vários aspectos, como comentado na avaliação da Info. O design e a usabilidade do iPhone são imbatíveis.

Apesar da velocidade proporcionada pelo Android, pela presença da Google, por ser mais simples de desenvolver aplicativos e disponibilizá-los sem muita burocracia para venda na loja online do Android, acabei optando pelo iPhone pelo design, facilidade de uso e excelente integração com o iTunes via um MacBook Pro que possuo. Contudo, achei muito chato não suportar multi-tarefa, ao sair do Skype para rodar outro aplicativo, o iPhone desconecta a minha conta Skype. Tem uma boa gambi para os programas serem atualizados periodicamente via a tecnologia de "push". Mas nem todo aplicativo suporta o "push".

Como disse o TK, que tem em mãos as duas plataformas, no seu twitter: "O iPhone é realmente um belo trabalho que oferece uma ótima experiência para o usuário. Como este trabalho de criar uma boa UI é valioso." (link) e "Testei o Android: funciona, rápido; muito legal e melhor que muito celular mais caro. Mas a interface com o usuário do iPhone é incomparável" (link).

Mais informações:


Não pude deixar de notar que a operadora aqui na região que comercializa os dois celulares, oferece o iPhone e Milestone por quase o mesmo preço para o meu perfil de consumo de ligações e 3G. Portanto, a escolha foi difícil!