Tag Archives: jsf

Problemas de encoding: como solucioná-los

Recentemente estava fazendo uma aplicação em Java utilizando JSF e passei pelo famoso problema de encoding. Depois de navegar bastante na internet, em listas de discussões e alguns chats com amigos, consegui resolver e achei um ótimo guia para procurar o problema nas aplicações:

  • How is the form encoding the request (application/x-www-form-urlencoded or multipart/form-data)? Multi-part data will be decoded using a 3rd party MIME parser, so there is scope for trouble there. If the data is url-encoded, is it being escaped properly?
  • What charsets is the browser accepting?
  • What encoding is the server detecting? Is it a Unicode character set?
  • Is it just the logging that is writing as a lossy encoding (e.g. MacRoman)? What default charset is the server using?

Fonte: http://stackoverflow.com/questions/863767/unicode-problem-with-jsf-and-html-forms

Segredo do sucesso do Aniversário CEJUG 2009: colaboração

Colaboração é a palavra chave do sucesso da realização de mais um evento do CEJUG: Aniversário CEJUG 2009. Tivemos três semanas para organizar e realizar o evento, contando com o apoio incondicional do René Araújo, Paulo Jr., Thiago Sá, Francisco Barroso e Gregory Fontenele. Sem o apoio dessa tropa de elite nós (Silveira Neto e Hildeberto – coordenadores) não teríamos realizado esse evento totalmente gratuito.

dsc08227

René, Thiago, Gregory, Barroso e Paulo Jr.

Tivemos durante os dois períodos do dia um total de 300 pessoas que desfrutaram de muito conteúdo técnico, brindes e alegria. Fazia muito tempo que eu queria realizar um evento no Ceará que tivesse uma grade repleta de nomes conhecidos da comunidade Java e ágil do Brasil. Só que desta vez consegui realizar, tendo como braço direito (e não gostando da idéia de realizar um evento com poucos dias de organização) o Silveira. 🙂

dsc08034

Silveira Neto e sua agenda (ou seria uma bíblia?) na abertura do evento

Bruno Pereira abriu o evento com a palestra O caminho da produtividade para desenvolvedores web, onde falou do leque de opções e ferramentas para ter sucesso no desenvolvimento web. Logo após, Régis Melo comentou sobre as experiências da sua empresa no desenvolvimento de uma aplicação nas plataformas JEE e JME, rodando em diversas línguas e em vários países. Victor Oliveira apresentou a última palestra da manhã com o tema O mito dos times ágeis, falando um pouco da sua experiência liderando times utilizando Scrum.

Na parte da tarde os conterrâneos Tarso Bessa e Rafael Ponte (que palestraram na mesma semana no JustJava) falaram sobre Os 10 maus hábitos dos desenvolvedores JSF. Essa palestra dispensa comentários pois os palestrantes são, sem dúvida nenhuma, as principais referências de JSF no Ceará. Logo em seguida, Jeveaux falou com excelência sobre Lucene, Solr e Hibernate Search, mostrando conceitos e códigos dessas poderosas ferramentas que podem aumentar rapidamente a performance das aplicações. Logo após, Rodrigo Yoshima palestrou sobre O que matou o RUP pode matar o Agile. O mais interessante dessa palestra foi ver a cara de espanto dos participantes, pensando que ele iria anunciar a morte do agile. Para finalizar o evento com chave de ouro, Paulo Silveira esbanjou talento e fenótipo de palestrante profissional ministrando a palestra Desmistificando o TDD na prática, mostrando muito código ao vivo, com participação do público e do Rafael Ponte (que foi praticamente obrigado pelos participantes a comparecer no palco para programar).

A realização dessa grande festa só foi possível – além do apoio dos membros citados no primeiro parágrafo – através das empresas que sempre acreditam no CEJUG: FA7, Caelum, Concrete Solutions, USIX Technology e Sun Microsystems. Também tivem os apoio das empresas Oktiva, Sagarana Tech, Novatec e Java Magazine.

Membros da organização do evento entregando cestas de lembranças do Ceará para os palestrantes

Membros da organização do evento entregando cestas de lembranças do Ceará para os palestrantes

Participantes

Participantes

Confira as apresentações, fotos e vídeos na página do evento. Até o próximo!

Comentários do I Café com Tapioca em Sobral

Overview

No último sábado participei do I Café com Tapioca em Sobral, um evento realizado pelo CEJUG. Na oportunidade, tive o prazer de viajar e palestrar com Paulo Sobreira, Silveira Neto e Tarso Bessa.

Falamos sobre o CEJUG, JavaServer Faces, NetBeans, JPA, Hibernate, iReport e certificações Java. O evento contou com a presença de 95 participantes, de Sobral e da Parnaíba. Foi um público muito bom, ultrapassando até CCTs realizados em Fortaleza!

Gostaria de agradecer o apoio e hospitalidade do Yuri, Patrick e Adriano. O Silveira fez um excelente post sobre o evento, vale a pena conferir.

Palestra

[slideshare 436127 apresentandocejug-1212104288827710-9]

Apresentando o CEJUG e o poder do Java

Mini-curso

[slideshare 663894 jpacomhibernate-1224213677904742-8]

JPA com Hibernate

Fotos

img_2731.jpg

img_2639.jpg

Mais fotos em: http://picasaweb.google.com.br/cafecomtapioca/ICafComTapiocaEmSobral

I Juazeiro do Norte JavaDay

Comentário

Neste último sábado estive participando do I Juazeiro do Norte JavaDay, uma iniciativa da FJN que contou com o apoio do CEJUG. Desta vez falei sobre as certificações Java, especificando e detalhando cada prova. Também falei sobre o mercado de trabalho, estatísticas, citações de empresários locais e sobre todas as certificações do mundo Java.

O evento contou com a participação do Tarso Bessa, Silveira Neto e Rafael Ponte, cujo temas foram, respectivamente: Utilizando o Spring Framework em aplicações JEE, NetBeans 6.0 e JavaServer Faces: desenvolvendo aplicações web com produtividade.

Apresentação

[slideshare 439512 certificacoesjava-1212261945230230-8]

Vídeo

[youtube:http://www.youtube.com/watch?v=7Tdu6cFTK-I]

Fotos

Página do evento | Álbum do evento no picasaweb

Juazeiro do Norte x 2

padre.jpgNo próximo sábado, dia 31, estarei em Juazeiro do Norte com mais três integrantes do CEJUG para participar do 1º Juazeiro do Norte JavaDay que acontecerá na FJN. Silveira Neto, um dos palestrantes, postou sobre o evento. Você poderá ver a grade completa do evento no blog do Silveira e também no site do CEJUG.

Essa já é a segunda vez (veja a primeira vez) que estarei palestrando na cidade e desta vez terei mais tempo para conhecer melhor os pontos turísticos da cidade.

Tarso Bessa e Rafael Ponte serão os outros dois palestrantes.  Veja as fotos do evento passado.

CEJUG Lets go!

Frameworks: agindo com bom senso

Um pouco de conversa

Sempre que posso, acesso o fórum do Javaranch para ver as novidades e assuntos interessantes do mundo Java. No feriado de ontem estava eu navegando nesse fórum quando achei um tópico de título “When to use JSF or Struts“. Título este bem chamativo, por conta das diversas discussões e comparativos sobre esses frameworks na comunidade Java do mundo inteiro.

Nesse post, o autor pergunta qual a diferença entre os dois. A diferença é simples: a quantidade de artefatos criados e a complexidade de sua utilização. JSF é bem simples e com algumas configurações e artefatos criados já está apto para ser utilizado no seu sistema. Eu não sou xiita e não estou dizendo que JSF é melhor do que Struts ou qualquer outro framework, não estou afirmando que ele é a bala de prata. E não é.

Gostei muito de uma resposta desse post e ainda bem que ela foi logo a primeira resposta, evitando que outras respostas mudassem os pensamentos e opiniões dos leitores. Nessa resposta, o autor enfatiza: “How to choose? For me, I’ll choose a framework that team members familiar with“. Essa resposta foi bem coerente, pois se sua equipe possui experiência e produtividade com o framework X, não quer dizer que se adotar o framework Y aumentará a produtividade da equipe, pelo contrário, pode acontecer o inverso, já presenciei casos desse tipo.

É comum ver em fóruns, listas de discussão e até mesmo no dia-a-dia, profissionais discutindo com seus companheiros de trabalho, alegando que o Struts (versões 1.x) é obsoleto e está ultrapassado. Isso não é mentira, é fato. Porém o que não concordo é esse xiitismo e essa generalização em volta desse assunto. Você já trabalhou com Struts, já ganhou muito dinheiro com ele, eu também. O framework Struts foi por muito tempo o framework padrão de mercado, exigido por quase todas as empresas como requisito fundamental no currículo. Acredito que apenas uma fatia dos novos desenvolvedores que iniciaram a pouco tempo não tiveram a chance de trabalhar com ele. Mas este dia chegará, pois muito em breve esses teenagers irão prestar consultoria em sistemas que foram feitos com esse framework.

Por que o Struts está obsoleto?

É muito simples de explicar. Veja a imagem abaixo e tente comparar com qualquer outro framework da moda.

Arquitetura orientada a BOLOVO

Essa arquitetura é completamente orientada a BOLOVO. Note que é necessário a criação de vários artefados para a criação de um simples caso de uso.

Artefatos necessários:

  1. configuração do Servlet Front Controller do Struts no deployment descriptor (web.xml)
  2. criação de um XML denominado struts-config.xml
  3. criação de uma classe Java que estende a classe ActionForm (Struts)
  4. criação de uma classe Java que estende a classe Action (Struts)
  5. configuração do ActionForm no struts-config.xml
  6. configuração da Action no struts-config.xml
  7. se você for utilizar validação (que é necessária em todo sistema que se preze), é necessário a criação de outros artefados, como por exemplo um arquivo de propriedades.

Isso não acontece com frameworks da moda, nos quais são orientados a POJO. Por exemplo, o JSF necessita apenas da criação de uma classe POJO, configuração do Servlet no deployment descriptor e da criação de um XML chamado faces-config.xml. Três artefatos criados, eu disse apenas três artefatos criados.

Portanto, a sua utilização poderá acarretar em futuros problemas, como inúmeras refatorações. Também existe uma má utilização dos princípios da Orientação a Objetos e péssimas práticas de desenvolvimento de software, nos quais posso citar algumas: alto acoplamento, alta manutenabilidade e complexidade.

E agora, o que utilizar?

Muita calma nesta hora. Como mencionei acima, não sou xiita (a-rá, gosto de EJB e irei utilizá-lo em todos os meus projetos, até um hello world numa simples JSP, criarei diversos artefatos, farei várias configurações e utilizarei um servidor de aplicações parrudo). Ratificando: o intuito deste post não é mostrar que o framework X é melhor do que o framework Y.

Java está se tornando uma plataforma difícil de se dominar, por ser bastante abrangente e surgir novas funcionalidades todos os dias. Sem falar de frameworks, que todo dia nasce um no quarto de um desenvolvedor que está com seu ócio criativo em alta. Mas alguns frameworks estão me chamando bastante atenção, por serem produtivos, robustos e simples. São eles: JSF, VRaptor e Spring.

Lembrando mais uma vez: nenhum framework é a bala de prata!

frameworks-cadeia.jpg

Outros frameworks que estão chamando atenção da comunidade: Apache Wicket e Waffle. Implementações: Jersey e Metro.

Sobre frameworks caseiros

Se você acessar os maiores fórums brasileiros de Java como GUJ e PortalJava, verá inúmeras discussões sobre as vantagens e desvantagens de frameworks caseiros. Particularmente eu vejo muitas desvantagens, pois já passei por uma experiência que não me agradou muito. Há uma discussão no GUJ sobre esse assunto, ela é datada de 2005, que me chamou bastante atenção. Se em 2005 alguns dos membros mais ativos da comunida Java já falaram das desvantagens de construir tal geringonça, por que após três anos isso ainda continua?

Frameworks caseiros não são arquiteturas de referência, não são padronizados, não possuem uma comunidade em volta para dar apoio e não são padrões da insdústria de software. Construir frameworks caseiros com o dinheiro público é o pior caso de todos.

Nesse post do GUJ, Carlos Villela comentou:

Desenvolver um framework ANTES de desenvolver uma aplicacao nao da certo: ou voce acaba com a aplicacao tendo que fazer gambiarras em cima do framework, ou a aplicacao nao sai ate mudarem o framework. Eh melhor fazer uma aplicacao primeiro, refatorar ela e tirar os pedacos genericos e transformar num framework do que tentar advinhar o que eh generico e o que nao eh. Alias, risque a palavra advinhar do dicionario.

Ele adivinhou o que poderia acontecer utilizando essa abordagem e eu tive a péssima experiência de passar por isso.

Não sendo xiita, afirmo que cada caso é um caso. Está certo que em determinados projetos é necessário construir um determinado número de classes que executam processos comuns entre sistemas. Mas é para ser feito só o básico e o necessário, nada mais além do que isso, porque senão irá virar um framework!

Referências

Chamada para projetos open source

Participar de algum projeto open source é a melhor maneira de aprender novas tecnologias e ganhar experiência para a vida profissional. Mas, você sabe o que é um projeto open source? Open Source

Atualmente estou participando do desenvolvimento do CEJUG-Classifieds, um projeto open source que tem como objetivo retirar anúncios que não tem nada a ver com o conteúdo da lista de discussão do JUG, que é sobre Java.

Mas o que eu ganho com isso? Nada.

Pelo contrário, eu gasto tempo e energia elétrica. Mas você sabia que dá para ganhar dinheiro?

Posso enumerar vários motivos que me levam a participar de projetos open source, dois desses eu citei acima, mas vamos enumerar mais alguns:

  1. experiência
  2. ajudar a comunidade
  3. aprender inglês
  4. trabalho em equipe
  5. aprender novas tecnologias

Participo de diversas listas de discussão sobre Java do Brasil e do mundo e vejo a quantidade exorbitante de anúncios de todos os tipos, como: venda de livros e vouchers, cursos, revistas, aparelhos eletrônicos, computadores, etc.

Dentre as listas de discussão que participo, a lista do PBJUG é uma das que me chama mais atenção. São vários e-mails diários e membros competentes sanando as dúvidas.  Recentemente um membro enviou um e-mail anunciando a venda de um aparelho eletrônico, e o Rodrigo Rebouças perguntou se alguém queria implementar um sistema de classifidados. Bem, o CEJUG-Classifieds é open source e pode ser facilmente utilizado por outros JUGs.

Portanto, faço uma chamada para quem quiser participar desse projeto.

Vídeos-aula de JSF

Aderindo a onda de desenvolvimento em JSF, o blog screencast publicou duas vídeos-aula sobre a utilização de JSF no eclipse europa em duas partes: a primeira, fala sobre como registrar a implementação no eclipse até rodar uma aplicação de exemplo. A segunda fala sobre como colocar JSF e EJB em sua aplicação JEE.

Comentários do Café com Tapioca de outubro: Anatomia do JSF

No último sábado (27/10/07), aconteceu o Café com Tapioca de outubro com o tema Anatomia JSF – JavaServer Faces, já anunciado neste blog e também nos blogs do Christiano Milfont, Handerson Frota e Rafael Ponte.

Gostaria de agradecer aos membros do CEJUG por terem comparecido ao evento e permitir com que o Rafael Ponte passasse todo o seu conhecimento de JavaServer Faces para a comunidade. O evento contou com a presença de 87 pessoas, das quais vivenciaram momentos de descontração, conteúdo técnico e sorteios. A faculdade Lourenço Filho nos proporcionou um excelente coffee break, bem variado e contendo muito café e tapioca.

Queria agradecer também o apoio do coordenador da faculdade, George Gomes, do Handerson Frota, Christiano Milfont, Emanoel Tadeu e de vários membros do CEJUG que me ajudaram de toda forma no evento. É assim que uma comunidade funciona, todos apoiando.

Rafael Ponte soube passar tudo sobre JSF de uma forma clara e sucinta, sem deixar vestígios de dúvidas para os presentes.

Vídeo

[youtube:http://www.youtube.com/watch?v=5qladX7GxlI]

Fotos

milfont-carneiro-handerson.jpg
Christiano Milfont, eu e Handerson Frota

Posts relacionados em outros blogs: