Sobre JSF não prestar

June 7th, 2011

Isso é apenas um comentário sobre a tecnologia JSF.
Já trabalhei com JSF com novos projetos e sistema legado. No começo é tudo muito bonito, os componentes prontos, não se escreve javascript, nem css e nenhum código na página. Essa abstração de como a web trabalha parece tentadora. Já cheguei a indicar e defender essa abordagem que o JSF propõe.

Em contra-partida, os conceitos envolvidos e necessários para um bom domínio disso requer muito estudo e entedimento. Já vi por exemplo, vários casos de desenvolvedores que simplesmente ignoram o ciclo de vida do framework. Estou falando disso: O que todo desenvolvedor JSF deveria saber.  Sem contar que na prática, a ‘web’ não é totalmente abstraída. O desenvolvedor tem que saber onde está pisando. Mesmo com a versão nova saindo, JSF 2.x e mesmo com o JBoss Seam, as coisas ainda não fluem como deveriam. Alias, essa v 2.x já está bem atrasada, considerando que a primeira versão data de 2004. Hoje, eu não uso nem indico JSF em nenhum projeto.

Sou a favor de usar a tecnologia de acordo com o problema, mas com JSF não dá mais. Sou muito novo pra isso.

O JSF resolve os problemas que ele mesmo criou.

Para encerrar, compartilho com vocês uma thread sobre as falhas do JSF:

http://groups.google.com/group/javace/msg/7d50b05befb54ddd?pli=1

De qualquer forma, se precisarem tirar dúvidas sobre JSF, recorram à lista do JavaCE. Tem gente bastante disposta lá. Até.

#jsfailmanifesto

UPDATE 1 (7 de julho de 2011)

Tropeçei nesse link bem detalhado e bastante interessante: JSF sucks! Principalmente se voce pular para os 47 minutos desse video: I hate JSF with a passion e ver o que James Gosling acha do JSF.

UPDATE 2 (27 de julho de 2011)

Deixe sua indignação no nosso muro: http://piche.me/jsfailmanifesto

Caravana JavaCE - QCon

June 2nd, 2010

É isso mesmo pessoal, já estamos nos organizando para prestigiar o principal evento de arquitetos e desenvolvedores de software do Brasil, o QCon SP 2010.

A comunidade JavaCE está de parabéns por essa iniciativa. Eles tem parceria com a Caelum que dá direito a descontos na inscrição. Acessem o link abaixo e confiram!

Caravana JavaCE-QCon

Nos encontramos lá.

Até mais.

Abrir terminal em diretório do Nautilus

March 30th, 2010

Eu estava procurando por essa funcionalidade já faz um tempo e então vou anota-la aqui. Trata-se de uma extensão do Nautilus (o gerenciador de arquivos do Gnome), para poder abrir o terminal (gnome-terminal) na pasta atual. No caso do Ubuntu, basta digitar em um console:

$ sudo aptitude install nautilus-open-terminal

e reiniciar a sessão do usuário.
Pronto, agora se quiser abrir um terminal na pasta atual, clique com o botão direito e escolha ‘Open in terminal’.
Isso é bastante prático para o gerenciamento de arquivos.

Oracle finaliza compra da Sun

January 27th, 2010

ATUALIZAÇÂO:  01 de Fevereiro de 2010

Saiu um FAQ (perguntas mais frequentes feitas pela comunidade de desenvolvedores java).

Segue o link: http://www.oracle.com/technology/community/sun-oracle-community-continuity.html

Estou só aproveitando dessa noticia para tirar a poeira do blog :D

Na página da Oracle, tem um banner bem grande anunciando a finalização da compra da Sun:

http://www.oracle.com/us/sun/index.html

Os caras já começaram chutando o ‘pau da barraca’:

“This combination transforms the IT industry”.

Agora eles tem condições de prover desde o hardware até completas soluções de software (database, middleware, sistema operacional, etc.), cliente é o que não vai faltar.

Sobre o Java, só espero que ele evolua de forma mais rápida, pois o comitê responsável por isso, o JCP, é bastante conservador, e consequentemente lento.

Estou falando apenas como um desenvolvedor que trabalha com a linguagem java, na sua plataforma original, além de usar o oracle como banco de dados.

Espero também, que a Sun deixe alguma coisa boa, sim, porque, com essa ‘declaração’, a Sun parece que já era.

De qualquer forma, a plataforma Java é imbativel. Espero que a linguagem melhore cada vez mais, diante das várias tecnologias que existem.

Boa sorte, Java.

Noticia sobre Sun/Oracle

November 26th, 2009

Acompanhando as listas de discussão XPCE e JavaCE, vi uma noticia que foi encaminhada de outra lista, a RioJUG.

É sobre as mudanças que a Oracle vem fazendo e planejando, quanto a comunidade e profissionais da Sun.

Pelo que entendi, o CEO da Oracle, Larry Ellison é quem vai decidir o ritmo de demissões.

Enfim, peço que leiam direto dos posts das listas (riojug, xpce ou javace).

Sobre palestra de Gerenciamento de Memoria da JavaCE

August 28th, 2009

Simplesmente, estão de parabéns.

As palestras (gerenciamento de memória e ferramentas de diagnóstico de desempenho) foram muito boas. São assuntos muito detalhados e complexos.

O palestrante, Cláudio Miranda soube passar as idéias principais de forma concisa, sem perder a atenção dos participantes, Parabéns!

Na primeira palestra, tinha muita gente que não sabia sobre a ineficiência de se ter muitas instâncias da classe java.lang.String! Pois por serem objetos imutáveis, a cada concatenação, simplesmente um novo objeto é criado, isso claro, se este já não existir no pool de Strings. Vamos ler a documentação pessoal!

Acredito também, que a explicação sobre as regiões de memória Young, Old e Permanent foram muito válidas para os desenvolvedores lá presentes.

Na segunda palestra, foram comentadas as opções de configuração que a  plataforma Java permite.  Isso dá muito poder para ambientes que necessitam de robustez.

Achei interessante ver como o sistema operacional hospedeiro da JVM (unixlike, no caso) pode te ajudar, pois, pelo monitoramento da memória física, você tem melhores parâmetros para analisar a memória usada pela JVM.

Eu sempre tive curiosidade sobre a parte de Profiling de aplicações, e ver sobre como isso é complexo, me fez pensar sobre o conhecimento que o arquiteto/desenvolvedor/whatever deve ter.  Realmente, demanda muita dedicação. (estamos aqui pra isso :D )

Foram apresentadas muitas ferramentas para monitoramento da JVM (JConsole, VisualVM ). Aí vem a pergunta: qual a melhor? Acho que vai depender do cenário. O jConsole tem uma feature fantástica: Detect Deadlock! Achei essas duas as principais, mas foram citadas outras ferramentas.

E só mais uma coisa (essa é para você desenvolvedor): Como um programa consegue forçar a execução do garbagge collector?

Os participantes da palestra agora sabem.

O grupo JavaCE está de parabéns por estar envolvido em ocasiões como essas. Sempre tem certos assuntos que dão um plus para o desenvolvedor. E tudo que é  diferencial, deve ser apoiado.

Parabéns a todos os envolvidos e até a próxima.

Nasce nova lista sobre Java no Ceará - JAVACE

July 1st, 2009

É com muito orgulho que venho apresentar a JAVACE.

Após me cadastrar (é simples, pois está no Google Groups :D ), venho acompanhando por vários meios (lista, twitter) a criação dessa  lista sobre Java ‘puro’ no Ceará.

De acordo com o próprio grupo,  essa lista tem como motivação dar mais liberdade a seus membros, de ser uma lista autogerida, por membros que querem realmente discutir sobre a tecnologia Java (tanto linguagem como plataforma). O Java, sendo uma tecnologia mainstream no Ceará principalmente, tem muitos assuntos a serem discutidos e a JAVACE vem para possibilitar que essas discussões possam fluir sem impedimentos fúteis.

O que ocorre muito em listas sobre programação, é que a maioria dos membros tem receio de postar suas dúvidas, devido ao comportamento ditatorial de coordenadores ou até mesmo por parte de alguns membros que não conseguem aceitar comentários de forma democrática.

Acredito que na JAVACE será diferente.

Faço meus votos a JAVACE e convido a todos a participarem de uma lista que no mínimo já começou grande, pois muitos membros ali são experientes com essa tecnologia. Essa é uma ótima oportunidade para a comunidade promover a lista, pois a comunidade também será reconhecida.

No momento desse post,  a lista já possuia 103 membros ativos, o que indica que já podemos ter discussões de ótimo nível e de grande repercussão.

Escolhida Logo para o eXtreme Programming Ceara

June 18th, 2009

Depois de uma votação democrática (aqui e aqui) , a imagem que representará o grupo de discussao sobre eXtreme Programming (XP) do Ceará (XPCE) finalmente foi definida.

Logo XPCE

Logo XPCE

Agora, com a logo, o grupo pode divulgar melhor “sua marca” e com isso, identificar mais sua comunidade.

O XPCE que está ativo a poucos meses mas já tem uma considerável comunidade. Já houveram dois eventos aqui em Fortaleza-CE, com boa repercussão, além de possuir discussões com alto nível. Tudo isso claro, graças a sua comunidade.

Sou membro da lista, e percebi que ela vem sanar uma falta para o mercado cearence. Pois, antes não havia um ponto específico sobre XP ou mesmo sobre metodologias ágeis.

O interessante da lista, é que não somente participam desenvolvedores, como também, gerentes, analistas e empresários. Isso é importante pois ela dá uma visibilidade maior do nível do mercado cearense, e claro, de como esta a adoção das boas práticas de desenvolvimento de software.

O XPCE está apenas começando, mas já tem muita coisa a oferecer.

Metodologias ágeis estão apenas comecando por aqui. E a XPCE veio para ajudar a mudar isso.

Lista de aplicativos Windows Mobile para Pocket/SmartPhones - Parte 2

April 23rd, 2009

Olá.

Continuando com a lista de aplicativos para pockets/smartphones com Windows Mobile, temos o seguinte:

TCPMP - Player para quase tudo que você precisar

Esse é o melhor player free que existe para pocket. Com ele, dá para assistir varios formatos, como .avi, .flv, .3gp, mp4 além visualizar fotos e ouvir músicas. Seu foco são videos mesmo.
Esse programa é tão bom que fizeram uma versão comercial, o Core Player. Esta versão eu nunca testei, mas imagino que seja mais poderosa ainda.
O mais interessante, é que o TCPMP é bem leve, apesar de ser um player de video. Se comparado ao Windows Media Player, este último é uma carroça e não funciona como deveria (além de não suportar tantos formatos quanto o TCPMP).

Ah, já ia esquecendo, claro que da pra ver os videos em tela cheia. :D

TCPMP -lista de arquivos suportados

TCPMP -lista de arquivos suportados

Assistindo Anime em .avi no TCPMP

Assistindo Anime em .avi no TCPMP

Watching anime .AVI on TCPMP

Watching anime .AVI on TCPMP

Resco Screen Capture

Todas as imagens desse post e do anterior foram gravadas com esse programa. Ele captura de uma forma muita fácil e pratica toda a tela do pocket/smartphone.

Gostaria de citar uma observação sobre o TCPMP. Quando fui capturar as imagens do video executando, simplesmente não gravou! Inicialmente pensei que fosse uma limitação do Resco e então testei outros programas. Não obtive sucesso. Então, fui investigar sobre o TCPMP. E encontrei algo interessante. Se você tentar capturar com o modo de video 2700G o resco não vai funcionar. A solução então, é mudar para o modo Raw FrameBuffer. Nas opções do TCPMP dá pra fazer isso facilmente. Isso prova as ótimas capacidades do TCPMP. E até do Resco.

Softick Card Export II - use seu pocket como um pendrive

Isso mesmo. Na maioria das vezes, é bem melhor transferir e gerênciar os arquivos do pocket, como se ele fosse um pendrive, pois o Active Sync (programa padrão da Microsoft para gerenciamento de arquivos) é muito lento, pois ele lê o arquivo (e verifica se precisa de conversão para formatos do pocket) para somente depois envia-lo ao dispositivo.

CardExport - seu pocket como pendrive

CardExport - seu pocket como pendrive

SPB Menu - Melhore a interface do seu Windows Mobile

Ele cria menus mais amigáveis para os programas, para configurações,gerenciamento de temas,organizadores, etc…
Particularmente, eu sempre uso as cores do gerenciador de temas dele, pois, esses temas não vem por padrão.

SBP Menu com categorias de aplicativos(na parte de baixo) e programas mais usados (na parte de cima)

SBP Menu com categorias de aplicativos(na parte de baixo) e programas mais usados (na parte de cima)

SBP Menu - Relógio e Emails

SBP Menu - Relógio e Emails

Resco Keyboard - Teclado Otimizado
Da linha de programas da Resco, esse teclado vem pra acabar com a concorrência.
Ele é bem completo e muito bem feito, pois aproveita muito bem o pouco espaço da tela do pocket.
Ele possui varias opções de teclado… Recomendo de verdade.

Resco Keyboard - teclado em ação

Resco Keyboard - teclado em ação

Resco Keyboard - tipos de teclado numérico

Resco Keyboard - tipos de teclado numérico

Morph Gear - Emula tudo - Transforme seu pocket num SuperNintendo, MegaDrive, MasterSystem, Nintendinho, Game Boy e Game Boy Advance…
É isso mesmo. Com esse programinha você literalmente “mata o verme”. Este é um dos aplicativos que mais admiro, não só por ser fãn de jogos, mas porque se mostra muito bem feito. Ele aproveita muito bem o processador do dispositivo.  São “vários programas em um”. Muito prático.

Morph Gear - emulando Sonic The Hedgehog do MegaDrive

Morph Gear - emulando Sonic The Hedgehog do MegaDrive

Morph Gear - emulando Super Street Fighterdo SuperNintendo

Morph Gear - emulando Super Street Fighterdo SuperNintendo

Resco Photo Viewer - Visualizador Profissional de Fotos

Não, eu não tenho contratos com a Resco, mas não vai ser por isso que vou deixar de lado seus programas maravilhosos.
O Resco Photo Viewer é um deles. Dá para editar fotos, zoom e ver todas as fotos em modo de apresentação.
Se você pensa que tudo isso já deveria vir por padrão no Windows Mobile, está enganado, pois não vem.

. falta foto do photoviewer

Download YouTube Videos - busque e baixe videos do youtube e assista off-line!

Sim, com o Youtube mobile downloader, podemos pesquisar e baixar videos, no formato .flv (flash player) e assisti-los sem estar conectado ao próprio site (usando o TCPMP).
O interessante é justamente o formato que é baixado, o próprio .flv que é bem leve e ocupa pouco espaço. Segue bem a filosofia mobile.

YouTube Downloader - videos off-line

YouTube Downloader - videos off-line

YouTube Downloader - tela sobre o aplicativo

YouTube Downloader - tela sobre o aplicativo

Desenvolvimento JBoss Seam no Tomcat Passo-A-Passo

April 12th, 2009

JBoss Seam (http://www.seamframework.org), é uma poderosa plataforma open source de desenvolvimento web  para construção de aplicações ricas de internet, em Java.

Esse post foca no desenvolvimento com Seam, utilizando o container web Tomcat, sem utilização de EJB, mas utilizando Seam com POJO e JPA+Hibernate como provedor de persistência. Ele foca na configuração do Seam no Tomcat.

Não vou explicar os conceitos implementados pelo Seam (como conversação e segurança, por exemplo),  usados nessa aplicação. Isso fica para um outro post. ;)

Na documentação do Seam existem todos os passos de configuração para utilização do Seam no Tomcat e em outros servidores.

Antes de tudo, baixe o Seam. Vou usar o release 2.1.1.GA. Vou considerar que o Seam, após ser descompactado em alguma pasta, está em $SEAM_HOME.

Pasta onde o seam foi descopactado

Pasta onde o seam foi descopactado

Vou usar um exemplo que já vem com o Seam. É uma aplicação de Reservas de Hotel (BookingHotel), que faz consultas em hotéis para se hospedar, faz reserva de quartos, e o cadastro de usuário (no caso, o hóspede solicitante da reserva). Essa aplicação exige um usuário logado.

Sendo bem direto, vou mostrar os passos e depois comentá-los.
De acordo com a documentação:

•    Instale Tomcat 5.5 ou Tomcat 6
•    Copie a lib do banco de dados embutido que vem com o download do Seam que está em $SEAM_HOME/lib/hsqldb.jar para $TOMCAT_HOME/common/lib (no Tomcat 5.5) e
$TOMCAT_HOME/lib (no Tomcat 6)
•    Entre na pasta $SEAM_HOME/examples/jpa pelo console e execute:
Para  Tomcat 5.5
# ant tomcat55
Para  Tomcat6
# ant tomcat6

Pasta de exemplo com JPA do Seam

Pasta de exemplo com JPA do Seam

executando o build do ANT no console

executando o build do ANT no console

•    Copie o .war gerado que deverá estar na pasta $SEAM_HOME/examples/jpa/dist-tomcat6/jboss-seam-jpa.war para a pasta $TOMCAT_HOME/webapps

Aplicação gerada para deploy no Tomcat

Aplicação gerada para deploy no Tomcat

•    Inicie o tomcat
•    Acesse a aplicação em http://localhost:8080/jboss-seam-jpa/

Nesse momento, a aplicação já deve estar funcionando. Com o arquivo .war, fica fácil de importá-lo para o Eclipse/MyEclipse. Essa explicação também fica para outro post. ;)

Agora, como prometido, explicando os passos, após instalar o Tomcat:
•     A aplicação de exemplo BookingHotel usa um banco de dados livre, o HSQLDB. As entidades dessa aplicação já criam as tabelas necessárias. Não é necessário se preocupar com configurações do banco. Leia esse artigo sobre ele.
•    No passo 3, o building do exemplo é feito como Ant. O Apache ANT é uma ferramenta de automação de builds bem conhecida. Mais informações nesse artigo.
•    Esse comando do ant chama o arquivo build-tomcat55.xml ou build-tomcat6.xml dependendo do comando. Perceba que, na pasta da aplicação existem outros arquivos de build, como o build-glassfish, o build-jboss, o build-websphere61. Ou seja, presumimos que para usar o seam em outros servidores, os passos devem ser semelhantes. A documentação que vem com o download do Seam explica tudo isso no arquivo $SEAM_HOME/examples/jpa/readme.txt
•    Os demais passos são simplesmente o deploy (copiar o .war) para a pasta webapps do Tomcat, iniciá-lo e acessar o endereço.

Perceba que o Tomcat não necessita de nenhuma configuração a mais. Digo isso, pois já vi muita coisa complicada sobre rodar o seam no tomcat.

Espero que esse tutorial sirva como base para projetos baseados em Seam com POJO+JPA+Hibernate.

Compartilhe suas idéias.