Aprenda a adicionar BIRT Reporting a aplicações usando RichFaces

19/01/2010    


"Learn how to add BIRT Reporting to JSF Applications using RichFaces"

Pessoal, vai acontecer um webcast ao vivo no dia 9 de fevereiro. Pode ser bem produtivo, é uma iniciativa Exadel.

Confira mais detalhes no link abaixo:

http://www.actuate.com/be/info/techexadelwsem/

Nos "vemos" lá.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Manuseando a propriedade NUMBER_OF_VIEWS_IN_SESSION

19/01/2010    


Mais um post referente à Java Server Faces e relacionado ao anterior sobre a propriedade javax.faces.STATE_SAVING_METHOD.

É importante saber que existe um limite de Views a serem mantidos em Session, esse número de views, inclui qualquer tela que seja submetida simultâneamente em uma mesma sessão. Importante: Subviews tanbém contam (e como).

Para resolver este problema, em casos onde você precisa que sua sessão dure bastante tempo e com muitas views a serem guardadas, você pode ampliar este número (o padrão é 20), segue um exemplo de configuração que pode ser incorporada no seu web.xml:


<context-param> 

         <param-name>org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION</param-name> 

         <param-value>200</param-value> 

         <description>Only applicable if state saving method is "server" (= default). 

                      Defines the amount (default = 20) of the latest views are stored in session. 

         </description> 

 </context-param>


No exemplo acima foi definido o número de 200 views, porém use com prudência essa propriedade, economize objetos em sessão e ganhe performance em sua aplicação.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




javax.faces.STATE_SAVING_METHOD pode resolver problemas

15/01/2010    


Após algum tempo sem escrever no blog, venho aproveitar a ocasião para descrever uma experiência que tive durante a resolução de um problema.

A maioria dos desenvolvedores que utiliza o framework JavaServerFaces acaba adotando por regra determinar a propriedade STATE_SAVING_METHOD como client, deixando a validação da renderização dos componentes no cliente ( cria-se um input hidden com o nome de ViewState ), é possível também deixar que essa responsabilidade fique no servidor de aplicações, definindo assim a propriedade com o valor "server".

Basta verificar a seguinte configuração em seu web.xml:

<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>


Caso exista algum problema de validação na estrutura do seu código ( jspx, jsp, jsf ), e a propriedade server estiver definida, será possível que a validação ocorra em linha, ou seja, antes de renderizar a página o servidor irá fazer todas as validações necessárias ( se existe tal propriedade ou metodo, se existe mais de 1 componente com mesmo id, se seus conversores estao definidos de maneira correta, etc ), pois bem, muitas dessas validações são feitas indiferentemente do que se define no "saving_method", porém em alguns casos o "client" pode falhar.

Ex: Caso você tenha utilizado jstl para fazer alguma verificação dos componentes, ex:

<c:choose>
<c:when> test="${meuMBean.minhaCondicao}"
<t:inputHidden id="meuHiddenComIdRepetido" forceId="true" value="#{meuFacesMBean.meuValue}" />
</c:when>
</c:otherwise>
<t:inputHidden id="meuHiddenComIdRepetido" forceId="true" value="#{meuFacesMBean.meuValue}" />
</c:otherwise>
</c:choose>



Obs: Veja que o ID é o mesmo, isso não pode.

Nesses casos, a validação client pode falhar. Muitos poderão dizer que o motivo é essa mistura do JSTL com JSF, porém em muitos casos se faz necessária, além de que você nunca sabe o que foi escrito no código antes de dar manutenção no mesmo, e pode ser que pensem diferente de você, portanto é preciso estar preparado para todos os casos. Outro argumento à favor é o fato de ser permitida essa adição, então se é permitida, logo é possível que ocorra e se o código funcionar assim, poderá causar erros inexplicáveis na aplicação, pois no momento em que for para o server, a validação irá falhar (e pode falhar de forma intermitente, digo isso como experiência propria que tive em uma aplicação).

Pois bem, adicionando em sua aplicação a propriedade SERVER, esse trecho de código acima, será rejeitado sempre, não deixando que nenhuma execução problemática ocorra.

Nota: Utilizei neste projeto myfaces1.1.7, tomahawk 1.9 e trinidad-api-1.0.11.jar




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




ATOM É O MENOR PROCESSADOR FEITO PELA INTEL

23/10/2009    


Saiu no Informativo Geral: http://www.informativogeral.com.br/?post=ATOM-O-MENOR-PROCESSADOR-DA-INTEL.

Confira esta matéria completa sobre este revolucionário processador. Com palavras dos próprios executivos da intel, responsáveis pela coordenação geral do seu desenvolvimento. Uma tecnologia de várias décadas que vem evoluindo com o passar dos anos.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Apache Trinidad dispensa tutoriais alternativos

20/10/2009    


Leitores

Gostaria de compartilhar com vocês alguns links que precisam ser visitados para o desenvolvimento Java com JSF. Todos os links foram retirados de http://myfaces.apache.org/trinidad/, tudo sobre o Trinidad está lá no apache.org, não existe tutorial mais completo do que estes:


Sobre o Apache Trinidad: http://myfaces.apache.org/trinidad/index.html#Overview

Lista de componentes: http://www.irian.at/trinidad-demo/faces/componentDemos.jspx

Demonstração de componentes: http://www.irian.at/trinidad-demo/faces/demos/demos.jspx

FAQ: http://myfaces.apache.org/trinidad/FAQ.html


Existe a seção Guia do desenvolvedor com exemplos de código de como implementar, o que implementar e o que o componente faz:
http://myfaces.apache.org/trinidad/devguide/index.html

Exemplo de desenvolvimento de tabela (tr:table):
http://myfaces.apache.org/trinidad/devguide/table.html



Bons estudos.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Thread safety aprenda sua necessidade

09/10/2009    


É um conceito de programação de sistemas onde o reaproveitamento de instâncias que contenham determinados valores ou lógica é utilizado, deste modo é possível obter maior performance e fazer com que os sistemas possam de forma mais inteligente deixar de alocar recursos desnecessários à aplicação.

Baseando-se no exemplo da linguagem de programação Java, a utilização de classes estáticas e obter uma instância compartilhada na aplicação faz com que um código padrão possa ser reutilizado em demais aplicações, vejamos abaixo um simples Hello World de uma classe onde os conceitos Thead Safe são aplicados:

// MinhaClasse.java
package pacotemeu;

public class MinhaClasse {

public static final MinhaClsse getInstance() {
return FooHolder.INSTANCE;
}

MinhaClasse () {
}
}
// MinhaClasseHello.java

package pacotemeu;

class MinhaClasseHello {

public static final MinhaClasse INSTANCE = new MinhaClasse();

}


outro exemplo de helloworld:

class Classe { private Classe(){}

private static Classe _instance;

static{ _instance = new Classe(); }

}



No desenvolvimento de software, os detalhes sempre fazem a diferença no final do processo. A qualidade de seu software depende da qualidade do código que escreveu-o.

Mais informações. Wiki: http://en.wikipedia.org/wiki/Thread_safety




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Persistindo dados com hibernate 3

08/10/2009    


Saiu no site JavaFree esta matéria que prevê orientá-los na configuração de persistencia de dados com hibernate 3.

Ótima leitura no link abaixo:

FONTE: LER Hibernate-3-com-Spring-e-DAO-Generico




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Phpbb configure pacote de linguagem

12/08/2009    


É muito simples, através do phpBB configurar um pacote de linguagem.

Vejamos em simples passos como fazer.

Exemplo, pacote português:

Com seu phpBB já instalado ( Clique aqui para ver como se faz), execute os passos abaixo.


1) Inicialmente faça o download, você pode utilizar este link:
http://superdownloads.uol.com.br/download/53/phpbb-portugues/

2)descompacte e copie o pacote para a pasta language, com o nome correspondente (no caso pt_br, conforme o zip), dentro do seu diretorio do phpBB, em seu servidor de aplicações.

3) entre no administrador do seu forum (aplicação localizada em /forum/adm/index.php, é claro, voce precisará estar logado como admin).

3) Clique na aba SYSTEM depois language pack.





4) Clique na opção install.





5) Essa mensagem aparecerá.





6) depois disso basta ir nas configurações do blog e definir o idioma principal (se portugues se ingles, criar regras, definições, etc).

No próximo tópico vou ensinar como baixar um layout especial para seu blog e configura-lo, com alguns passos tanbém.

Quer conferir o resultado? Acesse o fórum do Amarelinho:

http://www.informativogeral.com.br/forum/




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Gerando jpeg progressivo com imageio

30/07/2009    


Segue um exemplo de como fazer para gerar Jpeg progressivo com a api imageio:


ImageWriteParam param = writer.getDefaultWriteParam();

param.setCompressionMode( ImageWriteParam.MODE_EXPLICIT );

param.setCompressionQuality( quality );

param.setProgressiveMode( ImageWriteParam.MODE_DEFAULT );

ImageWriter writer = (ImageWriter) ImageIO.getImageWritersByFormatName("JPEG").next();
writer.setOutput( ImageIO.createImageOutputStream(out) );
writer.write(null, new IIOImage(image, null, null), param);


Para quem não sabe o que é um jpeg progressivo, leia uma explicação mais técnica e exata:

http://www.faqs.org/faqs/jpeg-faq/part1/section-11.html

Para leigos, podemos resumir:

"É aquele 'efeitinho'?|?| que faz com que a imagem seja carregada toda, inicialmente 'sem foco' e depois irá ganhando nitidez", essa é uma explicação bem tosca, na verdade não há efeito nenhum, o que ocorre é que o browser recebe uma informação diferente quando encontra um jpeg progressivo para ser carregado, esse jpeg precisa SER GRAVADO de uma forma diferente, não há nada que Javascript ou css possa fazer (talvez com swf... gif animado..), mas ai ja perdemos o foco (jpeg).

Abraços




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Porque Java ME?

08/07/2009    


Saiu no site Java Móvel:


Java Plataform, Micro Edition, Java ME, ou ainda J2ME, é uma tecnologia que possibilita o desenvolvimento de software para sistemas e aplicações embarcadas, ou seja, toda aquela que roda em um dispositivo de propósito específico, desempenhando alguma tarefa que seja útil para o dispositivo.

Das opções tecnológicas disponíveis no mercado, desde sistemas embarcados aos inúmeros jogos e aplicações de celulares, a plataforma Java ME destaca-se como sendo mais atrativa devido a sua portabilidade e acessibilidade, pois além de suas aplicações rodarem nas plataformas de várias empresas de telemóveis, com o Java ME é mais simples construir aplicações que não exigem alto custo, visto que muitos dispositivos de baixo custo suportam aplicativos desta plataforma, o que não acontece com as demais plataformas, como Symbian, Brew, Android, Iphone OS, que requerem implementações específicas utilizando APIs proprietárias.

Mesmo sendo mais limitada que a plataforma Java SE, a Java Micro Edition possui recursos essenciais para o desenvolvimento de qualquer aplicação móvel e provê um ambiente robusto e flexível para aplicativos portados para dispositivos móveis. Possui uma gama de APIs e frameworks para otimização do desenvolvimento das aplicações, juntamente com ferramentas, emuladores e plug-ins que enriquecem o arsenal do desenvolvedor. A plataforma não para de evoluir desde sua criação e através do Java Community Process, onde diversos fabricantes formam uma comunidade para aprimoramento e definição de novas funcionalidades de forma padronizada, a linguagem se tornou um instrumento importante tanto para desenvolvedores quanto para os fabricantes.


FONTE http://www.javamovel.com/2009/07/por-que-java-me.html




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




GEERAL DISPONIBILIZA SOFTWARE LIVRE PARA SEUS CLIENTES

08/07/2009    


Com a idéia de manter o suporte e prestar o serviço de manutenção/hospedagem para seus clientes, o Guia comercial Geeral.com.br disponibilizará até o próximo mês a ferramenta de CMS Joomla, que disponibilizará para cada um dos assinantes um site próprio, automaticamente gerenciado por esta ferramenta de software livre.

Visando e respeitando todos os princípios do software livre, os fins comerciais serão atribuídos à suporte do Joomla, desenvolvimento de Layout e adaptação de melhorias.

O Joomla disponibilizará aos clientes diversos recursos, como Galerias de foto, informações, notícias, artigos, etc.

Aguardem por novidades.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




CONFIGURE O JOOMLA NO SEU SITE EM ALGUNS CLIQUES

07/07/2009    


Um CMS muito bom e completo é o Joomla, um software totalmente livre e com grandes qualidades. Muito divulgado no Fórum Internacional do Software livre em Porto Alegre, ele reúne uma série de benefícios para você desenvolvedor. Você não precisa nem ser um expert em programação, basta ler o manual, como de costume, segue o link do manual, clique aqui.

Se você continua neste post, é porque não tem o costume de ler o manual (muito obrigado pelo seu acesso), para você, vou escrever alguns passos básicos para a configuração:

1 - Preparando o ambiente:

Se você já possui um site com disponibilidade de hospedagem PHP e suporte à algum tipo de banco de dados (vamos supor e propor MySQL), ignore este passo.

- Configure o EasyPHP na sua máquina, nele tudo que você precisa já estará disponível, se você não conhece o EasyPHP ainda não se desespere, ainda lhe resta a opção de ler um outro manual, Clique e leia este, mas vá só até o passo de configuração do EasyPHP, depois volte aqui, não quero perder seu acesso, mesmo sabendo que nesse link tudo esta mastigado, para você iniciante em Joomla.

2 - Configurando o Joomla para trabalhar no seu ambiente:

Hospede o conteudo baixado neste link em alguma pasta no seu servidor.

Depois abra o arquivo de configuração com o nome configuration.php-dist e configure os detalhes nos locais indicados:

var $dbtype = 'mysql'; // Normally mysql
var $host = 'localhost'; // This is normally //(COLOQUE AQUI O ENDEREÇO DA SUA MAQUINA LOCAL NO CASO O LOCALHOST OU 127.0.0.1 ou //então o ip/dns do seu servidor de hospedagem) set to localhost
var $user = ''; // MySQL username
var $password = ''; // MySQL password
var $db = ''; // MySQL database name
var $dbprefix = 'jos_'; // Do not change unless you need to!

/* Server Settings */
var $secret = 'FBVtggIk5lAzEU9H'; //Change this to something more secure
var $gzip = '0';
var $error_reporting = '-1';
var $helpurl = 'http://help.joomla.org';
var $xmlrpc_server = '1';
var $ftp_host = '';
var $ftp_port = '';
var $ftp_user = '';
var $ftp_pass = '';
var $ftp_root = '';
var $ftp_enable = '';
var $tmp_path = '/tmp';
var $log_path = '/var/logs';
var $offset = '0';
var $live_site = ''; // Optional, Full url to Joomla install.
var $force_ssl = 0; //Force areas of the site to be SSL ONLY. 0 = None, 1 = Administrator, 2 = Both Site and Administrator

/* Session settings */
var $lifetime = '15'; // Session time
var $session_handler = 'database';

/* Mail Settings */
var $mailer = 'mail';
var $mailfrom = '';
var $fromname = '';
var $sendmail = '/usr/sbin/sendmail';
var $smtpauth = '0';
var $smtpuser = '';
var $smtppass = '';
var $smtphost = 'localhost';

/* Cache Settings */
var $caching = '0';
var $cachetime = '15';
var $cache_handler = 'file';

/* Debug Settings */
var $debug = '0';
var $debug_db = '0';
var $debug_lang = '0';

/* Meta Settings */
var $MetaDesc = 'Joomla! - the dynamic portal engine and content management system';
var $MetaKeys = 'joomla, Joomla';
var $MetaTitle = '1';
var $MetaAuthor = '1';

/* SEO Settings */
var $sef = '0';
var $sef_rewrite = '0';
var $sef_suffix = '';

/* Feed Settings */
var $feed_limit = 10;
var $feed_email = 'author';



3 - Instalando:

Instale o Joomla à partir do seu arquivo INSTALL.php, siga o passo à passo até o fim.

Pronto, seu site esta preparado para trabalhar com o Joomla em alguns cliques.

Agra sinta-se livre para acessar www.joomla.com.br e descobrir o universo de opções e facilidades que te espera.

Se você é programador Java (Público padrão deste blog), não tenha pré-conceitos com o glorioso PHP, saiba que qualquer linguagem de programação pode se tornar muito poderosa se usada da forma adequada e com padrões bem definidos. E isso não falta ao Joomla.

Seja feliz e faça parte do maravilhoso mundo do software livre. Quem sabe até você consiga parar de perder tempo acessando sites pouco construtivos e comece a ganhar dinheiro com sua excelente capacidade de ser um NERD assumido e interligado ao mundo TI.

Dúvidas sobre o Joomla? Comente aqui ou pergunte para algum rapaz (ou moça) mais capacitado do que quem vos escreve no site recomendado acima.

Um grande abraço.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Construindo vídeos e players de áudio

06/07/2009    


Vejam este vídeo que propõe-se a construir players tanto de vídeo quanto de audio, esse é mais um tópico referente à benefícios do Html 5. Os argumentos são muitos, cabe à cada um analisar a eficiência e força dos mesmos:




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




HTML 5 para uma web melhor

06/07/2009    


Recentemente recebi um email de uma newsletter do site PHP Classes com este título. Achei bem interessante o conteúdo e os argumentos debatidos.

The HTML 5 will definitely contribute to a better Web. Despite its specification is still being drafted, several browsers like Firefox 3.5, Internet Explorer 8, Safari 4, Chrome 2 and Opera 10 already implement a significant part of the current HTML 5 specification.

This article reviews a bit of the history of how we got to HTML 5 and presents an overview of the enhancements that HTML 5 introduces to provide a better Web.

It also presents a reflection about whether HTML 5 will render useless browser extensions like Flash, Silverlight and Java.


Leia mais aqui




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Java versus .NET por Paulo Krieser

04/06/2009    


Caros leitores, vejam uma amostra do que foi escrito por Paulo Krieser sobre Java e .NET (C#, J#, VB, etc etc etc) :

Prosseguindo com a sequência de colunas sobre as comparações entre linguagens de programação, neste artigo vamos comparar o Java ao .NET.

Antes que sigam as críticas, cabe esclarecer que o .NET não é uma linguagem, e sim uma plataforma da Microsoft que permite a utilização de diversas linguagens, como C#, Visual Basic, J# e ASP. Vamos focar então a comparação na construção de aplicações web, utilizando J2EE e o framework ASP NET da Microsoft, que é onde as duas linguagens mais competem.

Comecemos pela questão das licenças de uso, que influenciam diretamente no TCO (para referência aos fatores sendo comparados, consultar na minha coluna Fatores para Escolha da Linguagem de Programação). Apesar da Sun deter a marca Java, a mesma tornou a linguagem open source, permitindo aos usuários efetuar alterações convenientes. Para a plataforma .NET, existem algumas iniciativas free......


LEIA O ARTIGO COMPLETO EM: http://www.baguete.com.br/colunasDetalhes.php?id=3070




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email





próximas >>