<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog do Alone</title>
	<atom:link href="http://www.nelsonalone.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nelsonalone.com.br</link>
	<description>A tecnologia de forma simplificada</description>
	<lastBuildDate>Wed, 18 Aug 2010 12:03:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Deploy remoto via ANT</title>
		<link>http://www.nelsonalone.com.br/2010/08/17/deploy-remoto-via-ant/</link>
		<comments>http://www.nelsonalone.com.br/2010/08/17/deploy-remoto-via-ant/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 01:25:02 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[build]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=458</guid>
		<description><![CDATA[Automatizar tarefas é um dos hábitos mais comuns dos bons desenvolvedores. Através desse tipo de atividade perdemos um tempo configurando, mas o tempo que ganhamos executando as tarefas repetitivas de forma automática é uma coisa absurda. Para isso, é aconselhável o estudo das principais ferramentas de automatização do mundo Java: ant e maven. Ambas têm [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Automatizar tarefas é um dos hábitos mais comuns dos bons desenvolvedores. Através desse tipo de atividade perdemos um tempo configurando, mas o tempo que ganhamos executando as tarefas repetitivas de forma automática é uma coisa absurda. Para isso, é aconselhável o estudo das principais ferramentas de automatização do mundo Java: ant e maven. Ambas têm o mesmo propósito, porém, trabalham de forma bem particular. Aqui apresentarei uma simples dica para automatizar deploys no Tomcat.</p>
<p style="text-align: justify;">Participei de projetos onde precisava-mos fazer constantes deploys a cada instante, inclusive no servidor de integração contínua que rodava constantemente. Para isso, utiliza-mos a task contida nas libs do apache que permitia fazer deploys remotos no apache através da interface de administração do servidor. Com isso, criamos targets que utilizava essa task para efetuar. Não é complicado, ao contrário, é muito simples, apenas precisa configurar o ligin, password e o caminho da aplicação. Segue abaixo um exemplo.<code> </code></p>
<div>
<pre class="brush:xml">&lt;property value="CAMINHO_DO_TOMCAT" /&gt;

&lt;fileset id="tomcat.lib" dir="${tomcat.home}/lib"&gt;
    &lt;include name="**/*.jar" /&gt;
&lt;/fileset&gt;

&lt;path id="path.lib"&gt;
     &lt;fileset refid="tomcat.lib" /&gt;
&lt;/path&gt;

&lt;taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask" classpathref="path.lib"/&gt;

&lt;target name="deploy-tomcat" depends="war"&gt;
      &lt;echo message="Deploying application"/&gt;
&lt;deploy url="http://localhost:8080/manager"
            username="LOGIN_ADMIN"
            password="SENHA_ADMIN"
            path="/APP"
            war="file:${dir.build}/APP.war"
            update="true"/&gt;
&lt;/target&gt;</pre>
</div>
<div>
<p>Como vocês viram não é uma tarefa complexa, basta apenas carregar e configurar a task.</p>
</div>
<div><code> </code></div>
<div><code> </code></div>
<p><code> </code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/08/17/deploy-remoto-via-ant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Descrença dos serviços 3G</title>
		<link>http://www.nelsonalone.com.br/2010/08/06/descrenca-dos-servicos-3g/</link>
		<comments>http://www.nelsonalone.com.br/2010/08/06/descrenca-dos-servicos-3g/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 04:28:26 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Off-Toppic]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[serviços]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=453</guid>
		<description><![CDATA[Em alguns posts optei por dar dicas de configurações de redes 3G no Ubuntu, isso tudo baseado em minha experiência que tive com esses recursos devido ao fato de não haver nenhum tipo de solução de internet que houvesse cobertura onde estou morando. Tudo que fiz foi resultado do sucesso que tive configurando o modem [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Em alguns posts optei por dar dicas de configurações de redes 3G no Ubuntu, isso tudo baseado em minha experiência que tive com esses recursos devido ao fato de não haver nenhum tipo de solução de internet que houvesse cobertura onde estou morando. Tudo que fiz foi  resultado do sucesso que tive configurando o modem da melhor forma possível nessa distribuição. Tive muita dificuldade no início mas, depois que você pega a prática e entendo como funciona, tudo fica mais fácil.</p>
<p style="text-align: justify;">Tudo funcionou perfeitamente mas, o serviço oferecido por essas operadoras (que não vou citar nome porque são todas) é precário para a região norte. A banda que disponibilizam é até razoável pelo preço (500 kbps e 1mb) nas a qualidade é uma porcaria. Para se ter ideia, fiz uma ligação via slype para uma pessoa da mesma cidade e foi um transtorno. A perda de pacotes era tanta que  foi impossível ter uma conversa descente.</p>
<p style="text-align: justify;">Em fim, a empresa, na qual era cliente, cobriu a área que moro e imediatamente solicitei troca de endereço. No momento, não estou contente com o serviço mas, apesar do link ser bem baixo, estou menos descontente do que estava quando era cliente dos serviços 3G da operadora.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">No momento, o Brasil todo sofre com qualidade de serviços precários quando se trata de internet, principalmente no norte do Brasil onde é uma área isolada e de acesso bem limitado. Estamos torcendo para que a infraestrutura de rede que vem da Venezuela possa suprir a grande demanda por acesso a rede e por um pouco de concorrência no mercado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/08/06/descrenca-dos-servicos-3g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modem HUAWEY no Ubuntu 9.10. Resolvido</title>
		<link>http://www.nelsonalone.com.br/2010/04/29/modem-huawey-no-ubuntu-9-10-resolvido/</link>
		<comments>http://www.nelsonalone.com.br/2010/04/29/modem-huawey-no-ubuntu-9-10-resolvido/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 01:18:57 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Off-Toppic]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[huawei]]></category>
		<category><![CDATA[modem]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=442</guid>
		<description><![CDATA[A solução é mais simples do que parece. O pior de tudo é que estava sempre lá debaixo da fusa. Resumindo os fatos. Após instalar os módulos necessários, usb_modemswitch e o usbserial, o modem aparecia no resultado do comando lsmod mas não aparecia como driver de dispositivo, só funcionava quando iniciava o pc com o [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } -->A solução é mais simples do que parece. O pior de tudo é que estava sempre lá debaixo da fusa.</p>
<p style="text-align: justify;">Resumindo os fatos.</p>
<p style="text-align: justify;">Após instalar os módulos necessários, usb_modemswitch e o usbserial, o modem aparecia no resultado do comando lsmod mas não aparecia como driver de dispositivo, só funcionava  quando iniciava o pc com o modem espetado na USB, uma forma bastante deselegante. Tentei de várias formas de solucionar esse problema, li diversos tutoriais e mesmo assim não conseguia fazer o modem subir aós o pc ligado.</p>
<p style="text-align: justify;">Solução.</p>
<p style="text-align: justify;">Ao executar o comado usb_modemswitsh verifiquei que faltava um arquivo de configuração para executar o comendo com sucesso. Li o manual do programa e encontrei onde esse arquivo de configuração é armazenado. Lá são armazenados inúmeros arquivos contendo configurações para diversos modens de vários fabricantes. Veio a dúvida; como eu vou encontrar o meu nessa lista de arquivos? Lembrei do resultado do comando lsusb. Lá tinha a descrição do modem e um número que que era o mesmo de um arquivo que estava lá.</p>
<p style="text-align: justify;"><code><br />
<span style="font-size: x-small;">Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub </span></code></p>
<p style="text-align: justify;"><span style="font-size: x-small;">Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub </span></p>
<p style="text-align: justify;"><span style="font-size: x-small;">Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub </span></p>
<p style="text-align: justify;"><span style="font-size: x-small;">Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub </span></p>
<p style="text-align: justify;"><span style="font-size: x-small;"><strong>Bus 001 Device 004: ID 12d1:1446 Huawei Technologies Co., Ltd</strong>. </span></p>
<p style="text-align: justify;"><span style="font-size: x-small;">Bus 001 Device 002: ID 04f2:b008 Chicony Electronics Co., Ltd USB 2.0 Camera </span></p>
<p style="text-align: justify;"><span style="font-size: x-small;">Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub </span></p>
<p style="text-align: justify;"><span style="font-size: x-small;"><br />
</span></p>
<p style="text-align: justify;">Com isso foi moleza fazer funcionar esse cara. Era só digitar o comando sudo usb_modemswitch -c  /etc/usb_modeswitch.d/resultado_do_comando_lsusb, ele vai tentar encontrar o seu modem como descrito no arquivo de configuração e pronto. Após isso ele vai aparecer como um dispositivo de I/O e aós isso é só wxecutar o seu wvdial de acordo com suas configurações. Ex:</p>
<p style="text-align: justify;"><code><br />
<span style="font-size: x-small;"><strong> sudo usb_modeswitch -c  /etc/usb_modeswitch.d/12d1\:1446 </strong></span></code></p>
<p style="text-align: justify;">Inicia o processo de identificação do modem e montagem automática do modem. E depois:</p>
<p style="text-align: justify;"><code><span style="font-size: x-small;"><strong>sudo wvdial vivo</strong></span><br />
</code></p>
<p style="text-align: justify;">
<p style="text-align: justify;">Pronto. Modem montado e conectado na internet via interface 3G. Para ser mais específico, meu modem é um Huawei E1756 e minha operadora é a VIVO.</p>
<p style="text-align: justify;">[]s</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/04/29/modem-huawey-no-ubuntu-9-10-resolvido/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5. Demonstrações e Exemplos</title>
		<link>http://www.nelsonalone.com.br/2010/04/02/html5-demonstracoes-e-exemplos/</link>
		<comments>http://www.nelsonalone.com.br/2010/04/02/html5-demonstracoes-e-exemplos/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 06:42:57 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=438</guid>
		<description><![CDATA[Imagina um mundo onde não será necessário instalar nenhuma extensão, plugin ou VM para rodar uma apresentação multimédia no seu browser. Sim, isso é possível. HTML5 mostrou para o que veio. Não é atoa que é conhecida como “flash killer” (com um pouco de exagero). Esse link mostra o potencial da tecnologia nos browsers mais [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Imagina um mundo onde não será necessário instalar nenhuma extensão, plugin ou VM para rodar uma apresentação multimédia no seu browser. Sim, isso é possível. HTML5 mostrou para o que veio.  Não é atoa que é conhecida como “flash killer” (com um pouco de exagero).</p>
<p style="text-align: justify;">Esse <a href="http://html5demos.com/">link</a> mostra o potencial da tecnologia nos browsers mais atuais que suportam HTML5. Vale a pena conferir e formar sua opinião.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">Mais uma vez o link <a href="http://html5demos.com/"><strong>AQUI</strong></a></p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">[]s.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/04/02/html5-demonstracoes-e-exemplos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modens 3G. Suporte medíocre para Linux</title>
		<link>http://www.nelsonalone.com.br/2010/04/02/modens-3g-suporte-mediocre-para-linux/</link>
		<comments>http://www.nelsonalone.com.br/2010/04/02/modens-3g-suporte-mediocre-para-linux/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 02:21:55 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Off-Toppic]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[modem]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=432</guid>
		<description><![CDATA[Muito tempo sem postar, é verdade. Mas estou voltando a postas, não com tanta frequência. Recentemente, comecei a utilizar o Ubuntu 9.10 por necessidade, principalmente para usufruir das facilidades do Shell devido a alguns aplicativos que iria desenvolver. Utilizei Linux durante um bom tempo, especificamente o Slackeare 9.0, e hoje me deparei com um Linux [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Muito tempo sem postar, é verdade. Mas estou voltando a postas, não com tanta frequência.</p>
<p style="text-align: justify;">Recentemente, comecei a utilizar o Ubuntu 9.10 por necessidade, principalmente para usufruir das facilidades do Shell devido a alguns aplicativos que iria desenvolver. Utilizei Linux durante um bom tempo, especificamente o Slackeare 9.0, e hoje me deparei com um Linux extremamente amigável e fácil de utilizar, foi empolgação de primeira. Copiz melhorado, som funcionando com o chaveador de fones de ouvido, suporte e Wifi, etc, etc e etc. Porém, tive uma decepção, não com o sistema operacional, mas com os desenvolvedores de drives dos modens 3G, simplesmente o suporte a Linux é deprimente.</p>
<p style="text-align: justify;">Para fazer com que o modem funcione nem sempre chega a ser trivial, principalmente quando o software de discagem não te dá alternativas de edição de DNS (já que queria utilizar os DNS do google 8.8.8.8 e 8.8.4.4), a cada nova conexão o endereço mudava. Para navegar na internet era necessário clicar no ícone do navegador que fica no software, só então o software disponibilizava o acesso. Lógico que isso não é conveniente pra ninguém, para ser mais comodo, resolvi baixar e configurar o <a href="http://en.wikipedia.org/wiki/Wvdial">wvdial</a> como discador para modem adicionando as <a href="http://ubuntuforum-br.org/index.php?topic=61928.0">configurações extras</a>. Um detalhe, o modelo do modem é o Huawei E1756, talves não funcione em outros modens. Após toda essa dor de cabeça, resolvi desinstalar o software discador que veio com o modem e utilizar o wvdial.</p>
<p style="text-align: justify;">Pensando que tinha resolvido tudo, me daparo com mais um problema; a única forma de fazer o modem funcionar era espetando o mesmo na usb anter de carregar o sistmea, só assim que ele era reconhecido. O pior que ainda não resolvi o problema e não consigo nem montar o dispositivo como storage. Fiz de tudo, carreguei os módulos, tentei montar pelos dispositivos /dev (tendo como base o comando lsusb), e não consegui. Em fim, o suporte para sistemas “Não Microsoft” continuam escassos, já que, os usuários Apple também tem diversos problemas.</p>
<p style="text-align: justify;">Dessa vez postei uma solução incompleta, já que, estou meio inferrujado com Linux, por enquanto estou na readaptação. Esse post serviu mais como um pedido de dica do que uma solução, quem tiver podem comentar. Estou cassando diversos tutoriais para solucionar esse problema e caso solucione, estarei postando.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">[]s</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/04/02/modens-3g-suporte-mediocre-para-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problemas com modens HUAWEY 3G</title>
		<link>http://www.nelsonalone.com.br/2010/01/28/problemas-com-modens-huawey-3g/</link>
		<comments>http://www.nelsonalone.com.br/2010/01/28/problemas-com-modens-huawey-3g/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 11:00:49 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[huawei]]></category>
		<category><![CDATA[moden]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=424</guid>
		<description><![CDATA[Recentemente adquiri um modem 3G da marca HUAWEY da VIVO com pacote de internet ilimitado para suprir minhas necessidades de internet, já que, onde estou morando ainda não há cabeamento de voz nem de dados. Verifiquei os valores das soluções via Radio, mas, aqui em Manaus ainda é um absurdo. A única solução foi adquirir [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Recentemente adquiri um modem 3G da marca HUAWEY da VIVO com pacote de internet ilimitado para suprir minhas necessidades de internet, já que, onde estou morando ainda não há cabeamento de voz nem de dados. Verifiquei os valores das soluções via Radio, mas, aqui em Manaus ainda é um absurdo. A única solução foi adquirir o modem para ter acesso a rede 3G.</p>
<p style="text-align: justify;">Instalei o discador que veio no modem e a conexão foi feita normalmente com velocidade média de 50 a 60 KBps, uma velocidade excepcional pra quem mora em Manaus, já que a internet por aqui é precária. Naveguei cerca de dez minutos e uma surpresa, minha máquina travou. Reiniciei, conectei novamente e depois de dois minutos torna a travar. Fiquei frustrado com isso, tentei várias vezes e aconteceu a mesma coisa.</p>
<p style="text-align: justify;">Anotei o modelo do modem e fui ao Google pra tentar resolver o problema. Em um dos fóruns que pesquisei tinha um post que recomendava atualizar o firmware do modem e o discador, lá tinha o <a href="http://www.huawei.com/pt/catalog.do?id=1681">link para o site do fabricante</a> onde tinha os pacotes para tal, baixei imediatamente e instalei em seguida tudo conforme tava no manual. Reinstalei o software discador e tornei a discar.</p>
<p style="text-align: justify;">Na primeira tentativa veio a frustração, travou novamente. Muito decepcionado, cogitei  em voltar para o Ubuntu, mesmo ignorando os softwares que uso no Windows, o que importava era solucionar esse problema e voltar a trabalhar o mais rápido possível. Hoje, utilizo o Windows 7, sistema operacional onde o problema ocorria constantemente, e para minha surpresa, o problema acontecia também no Linux. Cogitei em ir para a operadora para trocar o modem, porém, tinha que fazer uma ultima tentativa, tinha que fazer a conexão com o discador nativo do Windows.</p>
<p style="text-align: center;"><a href="http://www.nelsonalone.com.br/blog/wp-content/uploads/2010/01/modem1.png"><img class="aligncenter size-full wp-image-426" title="modem" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2010/01/modem1.png" alt="" width="486" height="344" /></a></p>
<p style="text-align: justify;">Quando o modem é utilizado pela primeira vez no PC é instalado os drivers de conexão para Windows automaticamente. Portanto, ao configurar no discador nativo, para Windows, o modem 3G aparece para ser lincado ao discador. Copiei as configurações do software discador que vem com o modem a adicionei no discador e efetuei a discagem. Funcionou perfeitamente e não travou mais.</p>
<p style="text-align: justify;">Conclusão, o problema todo era software discador que veio com o modem. Quando havia uma quantidade muito grande de dados em transmissão, o travamento ocorria e não era registrado nos logs do sistema operacional.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>Detalhes da solução:</strong></p>
<p style="text-align: justify;">Sistema Operacional: Windows 7</p>
<p style="text-align: justify;">Modem: Huawey E1756 MODEM USB 3G</p>
<p style="text-align: justify;">Discador: VIVO Internet 11.302.06.20.149, plugins 1.01</p>
<p style="text-align: justify;">Operadora: VIVO</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/01/28/problemas-com-modens-huawey-3g/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ajax com RichFaces</title>
		<link>http://www.nelsonalone.com.br/2010/01/26/ajax-com-richfaces/</link>
		<comments>http://www.nelsonalone.com.br/2010/01/26/ajax-com-richfaces/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 08:42:37 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=417</guid>
		<description><![CDATA[Desenvolver aplicações para Web que requer bom desempenho, clareza no conteúdo e flexibilidade não é tarefa fácil até para os desenvolvedores experientes. O principal item que deve ser levado em conta é o bom desempenho pelo fato de influenciar na maioria dos valores que podem ser agregados em um produto voltado para Web. Nesse ponto, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Desenvolver aplicações para Web que requer bom desempenho, clareza no conteúdo e flexibilidade não é tarefa fácil até para os desenvolvedores experientes. O principal item que deve ser levado em conta é o bom desempenho pelo fato de influenciar na maioria dos valores que podem ser agregados em um produto voltado para Web. Nesse ponto, existem diversas dicas que podem ser seguidas através da iniciativa da Google, o <a href="http://code.google.com/intl/pt-BR/speed/articles/">Let’s make the web faster</a> , que apresenta uma série de dicas para compactar o conteúdo ao máximo para tornar a transferência da páginas mais rápida.</p>
<p style="text-align: justify;">Existem recursos que viabilizam o desempenho em aplicações Web de forma aceitável para o usuário final. Entre elas, na minha opinião, o mais adequado é o Ajax. Existem outras alternativas como o Flex, porém, dependendo da aplicação desenvolvido pode haver demora no carregamento e processamento das requisições, mesmo sendo carregada uma única vez. Com base nisso, a utilização do Flex sobre uma intranet é uma excelente opção. Como o contexto é a internet, soluções Ajax levam vantagem pelo fato do conteúdo ser apresentado em HTML/XHTML e pelo fato de não utilizar nenhum plugin para os navegadores. Porém, quando se trata de JavaScript, muitos desenvolvedores tentam evitar por ser mais uma linguagem necessária para o aprendizado para desenvolver uma aplicação. Ironicamente, um desenvolvedor web necessita saber no mínimo três linguagens para desenvolver uma aplicação utilizável.</p>
<p style="text-align: justify;">Em alguns casos, a utilização do javascript em alguns projetos torna-se complicada devido a dificuldade, principalmente quando projetos são feitos utilizado AJAX. Isso encorajou a criação de inúmeros frameworks e componentes que tentam tornar o desenvolvimento de aplicações que utilizam AJAX mais simples e fáceis de manter.</p>
<p style="text-align: justify;">JQuery é um framework que tenta facilitar ao máximo a utilização de JavaScript nas páginas, sendo que, é a ferramenta mais utilizada quando se trata de recursos para a linguagem. O que chama mais atenção são os efeitos e a facilidade para desenvolver com essa ferramenta.</p>
<p style="text-align: justify;">A comunidade Java é privilegiada com inúmeros frameworks e APIs que facilitam o desenvolvimento resolvendo problemas de vários segmentos, principalmente WEB. Acredito que, devido a dificuldade de desenvolver aplicações WEB apenas com JSP, Servlets, Filters, TagLibs, etc., os desenvolvedores tentaram diminuir essa dificuldade com frameworks, tai então a explicação da grande quantidade de frameworks WEB para Java.</p>
<p style="text-align: justify;">Em Java, atualmente, o frameworks WEB mais utilizado, depois do Struts (legado) , é o JSF. Talvez devido ao fato de ser um produto da Sun e estar coberto por uma especificação. Não cheguei a ver detalhes da especificação 2.0, mas nas versões anteriores o desenvolvimento ainda é maçante e chato, onde existem situações que necessitam cada vez da habilidade do desenvolvedor. Porém, muito foi feito para tentar corrigir os problemas e ao mesmo tempo agregar valor ao framework com as extensões repletas de componentes para ser utilizados nos projetos, uma dessas extensões é o <a href="http://www.jboss.org/richfaces">RichFaces</a>. Atualmente encontra-se na versão 3.3 e vem uma série de componentes que podem funcionar sobre uma camada AJAX. A facilidade é tanta que a forma de desenvolver é a quase a mesma que desenvolver com JSF puro. Com isso, está a disposição do desenvolvedor recursos de Drag’nDrop, calendários bem elaborados, efeitos, e uma série de componentes bem desenvolvidos que funcionam sobre AJAX.  A configuração do RichFaces também é simples, basta adicionar alguns filtros, escolher o template, ou desenvolver um, configurar um ou dois XMLs e adicionar algumas taglibs no projeto e pronto, seu projeto já está configurado.</p>
<p style="text-align: justify;">O objetivo desse artigo não é de escrever um tutorial e nem comparar as ferramentas, é de alertar sobre a má utilização dos recursos AJAX na aplicação com o RichFaces. O framework utiliza JQuery para fazer os efeitos e manipular do DOM HTML/XHTML, com isso, o conteúdo do framework vai junto com o projeto. A infra-instrutora de um projeto AJAX é repleta de JavaScript e quando projetos se tornam  complexos, conseqüentemente, a complexidades de manter os script se eleva. Com isso, existe uma estrutura de arquivos javascript pronta para suportar a arvore JSF gerada a cada requisição tornando a estrutura pesada ao ponto de ser desvantagem desenvolver a aplicação baseada em requests sobre toda a página.</p>
<p style="text-align: justify;">Destrinchando o conteúdo carregado pelo browser, existe um tipo de arquivo que representa a chamada de sua URL que é respondida a cada requisição, é configurada no web.xml na definição da chamada para a execução do servlet. Nesses arquivos contem o emaranhado do Javascript que o servidor envia a cada requisição. No meu caso, esses arquivos ficaram em torno de 933Kb, é um tamanho considerável quando se trata de requisições. Isso pode deixar sua aplicação uma carroça quando sua aplicação for pro ar.</p>
<p style="text-align: justify;">Nessa situação, a solução para esse problema é aplicar ao máximo os recursos AJAX na aplicação, fazendo com que apenas um trecho da página possa ser renderizada e não todo a cada requisição. Isso diminui bastante o tráfego na rede tornando a aplicação um pouco mais leve. Nas primeiras solicitações a aplicação fica muito lenta, mas quando o conteúdo está no cache o desempenho fica razoável.</p>
<p style="text-align: justify;">Para comprovar, fiz um teste desenvolvendo uma página simples com um CSS pequeno e sem nenhum arquivo JavaScript amais. Fiz as configurações dos pacotes JSF e do RichFaces descritas em seus devidos manuais respectivamente. Fiz com que a primeira página utilizasse um apenas um <em>&lt;a4j:region &gt; </em>contendo alguns componentes, como; <em>&lt;a4j:form&gt; </em>e  um &lt;a4j:commandLink&gt;. Isso é suficiente para habilitar o suporte AJAX do framework, ou seja, carregando todos os JavaScript responsáveis por essa funcionalidade.</p>
<p style="text-align: justify;">Na documentação do framework não existem tópicos que auxiliem a diminuir o tamanho do conteúdo, isso encoraja a utilização massiva dos recursos em todas as páginas e evitando request desnecessários. Não quero dizer que o framework seja ruim, pelo contrário, é uma ótima ferramenta, porém, deve ser utilizada com cuidado. A utilização de AJAX puro é uma excelente opção.</p>
<p style="text-align: justify;">[]s.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/01/26/ajax-com-richfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desigh X Negócio</title>
		<link>http://www.nelsonalone.com.br/2010/01/02/desigh-x-negocio/</link>
		<comments>http://www.nelsonalone.com.br/2010/01/02/desigh-x-negocio/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 19:23:17 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Off-Toppic]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=402</guid>
		<description><![CDATA[Trabalho em uma empresa de tecnologia, especificamente desenvolvendo software, e também trabalho como freelancer nas horas vagas (que no momento são cada vez mais raras). Ganhei conhecimento e experiência participando como desenvolvolvedor,  a vezes como quadjunvante, nos projetos que apareciam, sendo que, a sua maioria eram de projetos WEB e alguns poucos eram de frameworks [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Trabalho em uma empresa de tecnologia, especificamente desenvolvendo software, e também trabalho como freelancer nas horas vagas (que no momento são cada vez mais raras). Ganhei conhecimento e experiência participando como desenvolvolvedor,  a vezes como quadjunvante, nos projetos que apareciam, sendo que, a sua maioria eram de projetos WEB e alguns poucos eram de frameworks e desktops. Suas finalidades também eram variadas, desde serviços até websites para vender produtos, porém, uma coisa me deixava muito frustrado, a dificuldade de não saber elaborar uma interface intuitiva e ao mesmo tempo simples, resumindo, tinha inveja (e tenho até hoje) dos designs.</p>
<p style="text-align: justify;">Dediquei meus estudos para conhecer linguagens de programação, frameworks, processos, padrões, boas práticas, ferramentas, etc, mas nunca me dediquei a aprender alguma coisa de design.  Digo que design não significa manipular imagens, HTML, CSS, Photoshop, etc. o termo significa muito mais que isso, significa ter em mente a melhor forma de apresentar um produto, impacto visual, chamar o cliente, ou melhor, possuir o “conhecimento artístico” de como tocar um cliente através da arte.</p>
<p style="text-align: justify;"><img class="aligncenter size-medium wp-image-403" title="passionate-design_id820440_size400" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2009/12/passionate-design_id820440_size400-300x300.jpg" alt="" width="300" height="300" /></p>
<p style="text-align: justify;">Vi que isso era de extrema importância depois tentar fazer uma interface, para uma necessidade específica, que iria utilizar em um projeto. Tinha a idéia mais não tinha capacidade para colocar em prática. Frustrado com minhas tentativas em vão, consultei alguns colegas que são web designs e solicitei uma ajuda no que eu estava fazendo. Depois de alguns minutos expondo minhas idéias ele me surpreendeu afirmando que eu não sabia o que eu estava fazendo, ou seja, tinha o problema, mas formulou sua resolução de forma errada.</p>
<p style="text-align: justify;">Quanto mais ele falava mais ficava desapontado, pois realmente, o que eu tinha em mente não tinha bulufas com a solução do problema. Para tentar mostrar melhor, ele desenhou a interface toda na minha frente mostrando o porque de cada elemento contido na tela, achei isso fantástico, além do mais, ganhei a interface de graça e utilizo até hoje no projeto. Analisando isso, me questionei sobre a vantagem de ter designs em empresas que desenvolvem software, seja web ou não.</p>
<p style="text-align: justify;">No ponto em que fui ajudado, todas as regras de negócio já estavam completamente desenvolvidas e testadas para solucionar o problema. Tratando a interface como um item sem importância, vi que estava completamente errado sobre quase tudo que tinha feito. Ou seja, o problema que aconteceu foi que não me preocupei com a apresentação para o cliente. É obvio que, tendo uma interface sem a regra de negócio o sistema não funciona, porém, se tendo a regra de negócio e não tendo uma interface funcional e também intuitiva o fator psicológico entra em cena. Isso é fácil de exemplificar; É só observar o comportamento de uma pessoa que utiliza uma família sistema operacional quase que</p>
<p style="text-align: justify;"><img class="aligncenter size-medium wp-image-404" title="web_design" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2009/12/web_design-300x287.jpg" alt="" width="300" height="287" /></p>
<p style="text-align: justify;">a vida toda e força-la  a utilizar um sistema sem sua interface que estava acostumada. Acreditem, já vi isso acontecer e quem se ferra é o setor de suporte.</p>
<p style="text-align: justify;">Bom, voltando ao assunto, é óbvio que a necessidade de ser ter uma equipe de design é importantíssima. A Apple faz disso o seu principal elemento de desenvolvimento de produtos e venda, eles levam a sério o Design Funcional. A Microsoft incorpora o design no seus produtos voltados para usuários comuns e incorpora o design ao produto de forma intuitiva que ajuda o departamento de vendas a fazer o seu papel de forma agressiva.</p>
<p style="text-align: justify;">Descrevi minha experiência frustrante de tentar fazer um trabalho de design sem o conhecimento adequado para isso. Respeito muito o trabalho desses caras porque, sem eles a web (WWW) não era um elemento tão atrativo como é hoje, e o marketing não seria são eficiente como é hoje.</p>
<p style="text-align: justify;">[]s</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/01/02/desigh-x-negocio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O que é SPDY? O que o Google quer com isso?</title>
		<link>http://www.nelsonalone.com.br/2009/11/17/o-que-e-spdy/</link>
		<comments>http://www.nelsonalone.com.br/2009/11/17/o-que-e-spdy/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 17:32:48 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[protocolo]]></category>
		<category><![CDATA[SPDY]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=397</guid>
		<description><![CDATA[Quando se trata de Web, o Google é uma fábrica de inovação. E quando o desempenho é o problemas eles sempre tem uma carta na manga. Com o objetivo de tornar a web mais rápida e eficiente, a gigante das buscas deu início a uma iniciativa chamada “Lets make the web faster”. Essa iniciativa propõe [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Quando se trata de Web, o Google é uma fábrica de inovação. E quando o desempenho é o problemas eles sempre tem uma carta na manga. Com o objetivo de tornar a web mais rápida e eficiente, a gigante das buscas deu início a uma iniciativa chamada <a href="http://code.google.com/speed/">“Lets make the web faster”</a>. Essa iniciativa propõe a adoção de um conjunto de boas práticas para tornar o tráfego utilizado via HTTP mais rápido. Essas boas práticas são medidas simples e bem elaboradas para otimizar o tamanho de imagens, redução de espaços em branco de JavaScript, compressão de documentos HTML e etc. Porém, o que mais me chamou a atenção foi a utilização de um novo protocolo para trabalhar em conjunto com o HTTP, o SPDY.</p>
<p style="text-align: justify;">O SPDY, como o Google diz, nada mais é do que um protocolo para transporte de conteúdo através da internet, que foi projetado para gerar o mínimo de latência possível. De acordo com os testes feitos nos laboratórios do Google, o tempo de caga das páginas tiveram o tempo reduzido em torno de 64%. Realmente é um tempo considerável, mas do que se trata esse protocolo, o que ele faz pra ser tão rápido?</p>
<p style="text-align: justify;">O protocolo utilizado na rede mundial de computadores é o TCP/ÍP. Esse protocolo encontra-se, segundo o modelo OSI, na camada de transporte que visa garantir a entrega dos pacotes de uma origem até seu destino. A utilização desse protocolo com o HTTP proporciona que os browsers abram um conexão  a cada request e response. Nesse processo, a latência gerada vem da única requisição por conexão TCP/IP feita pelo browser, cada requisição é feita pelo cliente (browser) tornado o WebServer um robô sem inteligência enviando/recebendo na maioria das vezes um conteúdo que poderia ser comprimido. Ainda por cima, o padrão de envio de documentos não comprimida, coisa que poderia ser feita utilizando algumas boas práticas.</p>
<p style="text-align: justify;">Com a utilização do SPDY em conjunto com o HTML os ganhos de desempenho são obtidos implementado funcionalidades que eliminariam as características citadas acima como:</p>
<ul style="text-align: justify;">
<li>Streams multiplexadas: Possibilidade de suportar inúmeras requisições e respostas através de uma conexão TCP.</li>
<li>Request Priorization:  Essa implementação permite que o cliente possa fazer uma série de requisições do servidor e o mesmo respondendo-as de acordo com a prioridade da mesma.</li>
<li>HTTP header compression: Implementação da compressão do header resultando em pacotes menores de menos bytes transmitidos.</li>
</ul>
<p style="text-align: justify;">Esses são os itens básicos que o novo protocolo foi designado para resolver. Existe uma série de melhorias na <a href="http://dev.chromium.org/spdy/spdy-whitepaper">pagina do protocolo</a>. Lá é possível encontrar maiores detalhes sobre o desenvolvimento do mesmo e a bateria de testes e seus resultados.</p>
<p style="text-align: justify;">A idéia do Google não é substituir o HTTP para processar as requisições WEB, e sim fazer com que ambos os protocolos trabalhe em conjunto. Nesse ponto os engenheiros do Google tiveram bom senso, já que, implementar a troca do HTTP (cliente) contida nos navegadores seria uma tarefa não só tecnológica e sim política decidiram implementar o mesmo nos Web Serves.</p>
<p style="text-align: justify;">Já que o protocolo inda não está disponível, portanto, para tornar a web mais rápida podemos seguir as iniciativas do <a href="http://code.google.com/speed/">Lets make the web faster</a>. Com a adoção de medidas simples como essas há uma melhoria considerável da latência em cada página carregada.</p>
<p style="text-align: justify;">Mais detalhes: <a href="http://dev.chromium.org/spdy/spdy-whitepaper">aqui</a>, <a href="http://www.infoq.com/news/2009/11/Google-SPDY-Replace-HTTP">aqui</a> e <a href="http://code.google.com/intl/pt-BR/speed/">aqui</a></p>
<p style="text-align: justify;">
<p style="text-align: justify;">[]s</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2009/11/17/o-que-e-spdy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN &#8211; Lista de Hosting para projetos</title>
		<link>http://www.nelsonalone.com.br/2009/11/09/free-svn-hosting/</link>
		<comments>http://www.nelsonalone.com.br/2009/11/09/free-svn-hosting/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 01:34:54 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[SVN]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[projetos]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=391</guid>
		<description><![CDATA[Quando entramos em um time de desenvolvimento é indispensável utilizar ferramentas de controle de versão, os CSVs. Existem muitas soluções opensource e outras que oferecem serviços de hospedagem com restrição de segurança gerenciado pelo usuário, serviço que na maioria das vezes é cobrado. Acostumei a utilizar o Git em projetos pessoais e recentemente em alguns [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Quando entramos em um time de desenvolvimento é indispensável utilizar ferramentas de controle de versão, os CSVs. Existem muitas soluções opensource e outras que oferecem serviços de hospedagem com restrição de segurança gerenciado pelo usuário, serviço que na maioria das vezes é cobrado.</p>
<p style="text-align: justify;">Acostumei a utilizar o Git em projetos pessoais e recentemente em alguns projetos opensource e tenho que afirmar: é o melhor CSV que já utilizei. Porém, recentemente necessitei de compartilhar projetos com um time específico, mas não tinha conhecimento de um serviço que fosse grátis e que solucionasse nossos problemas.  Verificamos os serviços disponíveis no GitHUB, porém, adicionar restrições para acessar requer um custo e, apesar de não ser caro, infelizmente descartamos.</p>
<p style="text-align: justify;">Fuçando na net descobri essa lista no <a href="http://www.svnhostingcomparison.com/">Subversion (SVN) Hosting Comparison</a>. Aqui você encontra uma lista completa contendo vários serviços e seus custos, quantidade de desenvolvedores e serviços agregados disponíveis. Encontramos um que oferecia o repositório com suporte a trinta usuários, 100 MB de projeto, track e blog de graça. Não pensamos duas vezes e ficamos com esse.</p>
<p style="text-align: justify;">Espero que ajude aos que procuram hosting de projetos.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">[]s</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2009/11/09/free-svn-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
