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:
<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.
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:
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:
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
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.
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
É 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
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:
"É 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).
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.
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.
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.
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:
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.
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......