Corrigindo o problema de Ajax no IE9 com JSF e Richfaces 3

Assim que saiu o Internet Explorer 9 começamos a ter inúmeros problemas com o RichFaces 3, especialmente com as requisições em Ajax. O problema está no javascript de terceiros usado pelo componente de interfaces ricas. Algumas pessoas mencionaram ter conseguido corrigir e divulgaram o método, entretanto outras fizeram o mesmo procedimento e não deu certo (como eu).

Segundo os desenvolvedores do RichFaces, eles estão muito atarefados com a versão 4.0 da biblioteca. Há previsão de sair uma versão 3.3.4 com as correções, mas sem prazo divulgado.

Dessa forma, a única solução que encontrei foi adicionar um filtro no web.xml para forçar o IE9 a trabalhar como a versão 8. O procedimento é muito simples e leva poucos minutos. Vamos a ele:

Leia mais

Uece ganha quatro prêmios no Prêmio Ceará de Cidadani@ Eletrônica 2011 com seus sistemas Java

O destaque da solenidade de entrega dos troféus aos vencedores do Prêmio Ceará de Cidadani@ Eletrônica de 2011, ocorrida na manhã desta terça-feira (09/11/2011), foi a Universidade Estadual do Ceará (Uece), agraciada com nada menos que quatro prêmios e uma menção honrosa, fato inédito nas quatro edições do Prêmio: Sistema de Eventos (SisEventos): 1º lugar na Categoria TI Verde; Sistema Web de Avaliação (Avalere): 2º lugar na Categoria Inovação; Aragatu – Kanban: 3º lugar na Categoria Governança de TI; Gerenciador de Identidade de Usuário (GIDU): 3º lugar na Categoria Software Livre e o Portal www.uece.br (menção honrosa): 2º colocado no ranking dos melhores sites do Governo do Estado do Ceará.

Os projetos foram desenvolvidos pela área de gestão da universidade através do Departamento de Informática e atestam a qualidade do trabalho desempenhado por toda a equipe de T.I. da Universidade.

Para ler a notícia completa no site da Universidade acesse aqui.

Fotos do Evento e da Premiação:

Leia mais

O que acontece na Internet em 60 segundos?

60 segundos on-line

60 segundos on-line

Categoriasmiscelânea Tags:,

Como adicionar a classe String como opção de tipo de atributo no Enterprise Architect

Quem trabalha com o Enterprise Architect sabe que o produto não mostra a opção String ao especificar o tipo do atributo de uma classe, como a imagem abaixo mostra.

Tipos de Atributos para Projeto Java sem a opção String

Tipos de Atributos para Projeto Java sem a opção String

A solução é adicionar a opção ao projeto. O procedimento é muito simples, conforme mostrado abaixo:

Leia mais

Cresce frustração dos desenvolvedores com sistema Android

Saiu uma matéria no IDGNow! mostrando que os desenvolvedores estão menos interessados em desenvolver na plataforma da Google. O problema principal parece ser a utilização do S.O. em tablets, que atualmente é bastante pequena.

Veja a matéria clicando aqui.

Certificações em T.I. valem a pena?

Esse é assunto que sempre gera polêmica. A maioria dos profissionais de T.I. se sente atraída em tirar uma ou mais certificações como forma de comprovar sua competência, mas por qual motivo percebe-se um avanço significativo no número de especialistas das áreas de recrutamento e coaching que não aconselham a busca desenfreada por esse tipo de teste?

A verdade é que o mercado mundial de certificações está cada vez mais aquecido e o diploma de proficiência em alguma área de T.I. pode ser considerado um diferencial pela maioria das empresas. Há inclusive algumas seleções que colocam como critério obrigatório possuir um ou mais títulos para concorrer à vaga.

Obviamente que essas duas visões de carreira geram uma grande dúvida no profissional: vale a pena se dedicar aos estudos e realizar as provas ou o diferencial de um empregado vai estar em outras habilidades?

Leia mais

Como adicionar Captcha na aplicação JSF – solução com Recaptcha

Um problema muito sério em aplicações que possuem acesso aberto na internet é o uso de softwares automatizados que enviam inúmeras requisições seguidas, normalmente com a pretensão de gerar spam, diminuindo o desempenho de sistemas e gerando prejuízo às empresas.

A técnica mais utilizada para evitar esse problema é o emprego de imagens com letras distorcidas, que em alguns casos pode ter a adição de uma seqüência obscurecida das letras ou dos dígitos que aparecem na tela. O objetivo é evitar o uso de robôs, já que eles não conseguem fazer a leitura de imagens. Essa solução é conhecida como Captcha (da sigla Completely Automated Public Turing test to tell Computers and Humans Apart) e embora tenha recebido esse nome, é visto como um Teste de Turing reverso, uma vez que é administrado pelo computador e não por humanos.

No meus testes em JSF consegui utilizar as soluções do Tomahawk, do PrimeFaces, do JCaptcha e do Recaptcha. Todos são muitos simples de adicionar à aplicação, mas o Tomahawk  e o JCaptcha integrado ao JSF usam, para fazer a validação, um atributo em escopo de sessão com o valor da chave, o que muitas vezes não é desejado a nível de arquitetura. Já o PrimeFaces tem como base o Recaptcha da Google, mas a maioria dos desenvolvedores (eu me incluo entre eles) usa o RichFaces como solução de biblioteca de interface rica, tornando-se impensável colocar o PrimeFaces na aplicação apenas para ter o componente Captcha.

Por fim, meu último teste foi o Recaptcha, da Google. Vamos às vantagens da solução:

  1. Não utiliza a chave como atributo de sessão para validar a imagem;
  2. Ajuda a digitalizar livros e jornais (no momento estão sendo digitalizadas edições do The New York Times e livros do Google Books);
  3. É acessível para deficientes visuais;
  4. É popular: empresas como Facebook e TicketMaster utilizam;
  5. Tem compatibilidade com várias linguagens e aplicações.

Obviamente que nem tudo são flores. As desvantagens são:

  1. O serviço da Google está na web, portanto se ele cair (pouco provável), ou se o host onde a aplicação Java está não conseguir comunicação com ele, o componente não será exibido;
  2. O componente possui uma visual mais complexo do que os outros, o que às vezes confunde o usuário;

Pesando as desvantagens e as vantagens, decidimos optar pelo Recaptcha, que se mostrou com a melhor relação entre os dois aspectos. Vamos ao que interessa: como colocar na aplicação.

Leia mais

Como desabilitar copiar e colar em Rich:Editor

Aqui na UECE temos um sistema com um rich:editor e muitas vezes apareceram problemas na exibição de páginas internas por conta de o usuário que estava cadastrando a informação ter colado o texto dentro do componente ro RichFaces a partir do Word ou algum programa semelhante. O problema está no fato de que esses programas geram uma grande carga de estilização antes da exibição da informação em si, e quando você vai mostrar o que o usuário digitou, o navegador não interpreta corretamente o HTML colado.

Solução: evitar que o usuário cole dentro do rich:editor. O procedimento é muito simples. Basta adicionar um evento onSetup no componente através do código abaixo:


onsetup="event.onPaste.add( function(event, e, o) { alert('Não é possível copiar e colar dentro do componente.'); return tinymce.dom.Event.cancel(e); });"

Leia mais

Os números de 2010

Decidi compartilhar as informações abaixo geradas pelo WordPress.


Os duendes das estatísticas do WordPress.com analisaram o desempenho deste blog em 2010 e apresentam-lhe aqui um resumo de alto nível da saúde do seu blog:

Healthy blog!

O Blog-Health-o-Meter™ indica: Uau.

Números apetitosos

Imagem de destaque

Um navio de carga médio pode transportar cerca de 4.500 containers. Este blog foi visitado 18,000 vezes em 2010. Se cada visita fosse um container, o seu blog enchia cerca de 4 navios.

Em 2010, foram criados 8 novos posts, fazendo com que o número total atingisse o valor de 18. 16 imagens foram enviadas, ocupando um total de 1Mb. Isso equivale a cerca de uma imagem por mês.

O dia com mais visitas foi 20 de abril de 2010 com um total de 451 visualizações. O post mais popular nesse dia foi 50 dicas práticas para o exame SCJP Java 6.

Leia mais

Categoriasmiscelânea Tags:

Usando ResultTransformer personalizado na sua consulta com Hibernate

No post “Como retornar e preencher apenas alguns atributos da entidade na consulta com Hibernate” mostrei como usar a classe AliasToBeanResultTransformer junto com HQL. A classe fornecida pelo próprio Hibernate é realmente muito útil, acontece que se você tem alguma consulta SQL através do método createSQLQuery (da classe org.hibernate.Session), pode ter passado pelo problema que tive essa semana. Infelizmente a classe AliasToBeanResultTransformer não funciona com SQLQuery quando, entre os atributos retornados, há  Enumerations. Outro problema é quando temos atributos de entidades relacionadas. A reflexão empregada por essa classe auxiliar não consegue instanciar e preencher as dependências entre a classe principal e seus relacionamentos.

Vamos ao exemplo abaixo:

Leia mais

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.