<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Wilian Fiabani - [conhecimento sem limites] - blog oficial</title>
	<atom:link href="http://wilianfiabani.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://wilianfiabani.wordpress.com</link>
	<description>&#34;pode correr risco, arriscado sempre é. só não pode o medo te paralizar.&#34;</description>
	<lastBuildDate>Fri, 09 Dec 2011 03:42:10 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='wilianfiabani.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Wilian Fiabani - [conhecimento sem limites] - blog oficial</title>
		<link>http://wilianfiabani.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://wilianfiabani.wordpress.com/osd.xml" title="Wilian Fiabani - [conhecimento sem limites] - blog oficial" />
	<atom:link rel='hub' href='http://wilianfiabani.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Java Chat Usando Sockets e Threads</title>
		<link>http://wilianfiabani.wordpress.com/2010/11/25/java-chat-usando-sockets-e-threads/</link>
		<comments>http://wilianfiabani.wordpress.com/2010/11/25/java-chat-usando-sockets-e-threads/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 00:40:56 +0000</pubDate>
		<dc:creator>fiabani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wilianfiabani.wordpress.com/?p=137</guid>
		<description><![CDATA[Essa semana precisei desenvolver um chat multi-usuários em java com sockets e threads. Como não encontrei muita coisa funcional na web, resolvi disponibilizá-lo para download. Se você precisar fazer algum trabalho semelhante, procure não simplesmente copiar, mas sim aprender esta linguagem de programação fantástica. Download<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=137&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Essa semana precisei desenvolver um chat multi-usuários em java com sockets e threads. Como não encontrei muita coisa funcional na web, resolvi disponibilizá-lo para download. Se você precisar fazer algum trabalho semelhante, procure não simplesmente copiar, mas sim aprender esta linguagem de programação fantástica.</p>
<p><a href="http://www.wg3web.com.br/arquivos/BrilhusChat.zip">Download</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wilianfiabani.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wilianfiabani.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wilianfiabani.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wilianfiabani.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wilianfiabani.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wilianfiabani.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wilianfiabani.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wilianfiabani.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wilianfiabani.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wilianfiabani.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wilianfiabani.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wilianfiabani.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wilianfiabani.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wilianfiabani.wordpress.com/137/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=137&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wilianfiabani.wordpress.com/2010/11/25/java-chat-usando-sockets-e-threads/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76aecaee926df623d70ac8650fe03697?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">fiabani</media:title>
		</media:content>
	</item>
		<item>
		<title>Adicionando Extensões no Adobe Flash CS4 para Mac OS x</title>
		<link>http://wilianfiabani.wordpress.com/2010/04/01/adicionando-extensoes-no-adobe-flash-cs4-para-mac-os-x/</link>
		<comments>http://wilianfiabani.wordpress.com/2010/04/01/adicionando-extensoes-no-adobe-flash-cs4-para-mac-os-x/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 17:52:09 +0000</pubDate>
		<dc:creator>fiabani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wilianfiabani.wordpress.com/?p=130</guid>
		<description><![CDATA[Olá pessoal, depois de muito tempo voltei a postar&#8230; Ultimamente me deparei com um problema ao instalar extensões no flash cs4 p/ mac, através do Adobe Extension Manager. Depois de instaladas as extensões, elas não apareciam na aba &#8220;Other Panels&#8221; do flash. Depois de garimpar bastante encontrei a solução, é preciso instalar manualmente. Embora não [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=130&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, depois de muito tempo voltei a postar&#8230;</p>
<p>Ultimamente me deparei com um problema ao instalar extensões no flash cs4 p/ mac, através do Adobe Extension Manager. Depois de instaladas as extensões, elas não apareciam na aba &#8220;Other Panels&#8221; do flash. Depois de garimpar bastante encontrei a solução, é preciso instalar manualmente. Embora não obtive nenhum problema seguindo as dicas abaixo, não me responsabilizo por possíveis problemas.</p>
<p>1- instale as extensões normalmente pelo Extension Manager;</p>
<p>2-verifique o conteúdo da pasta /Library/Application Support/Adobe/Flash CS3/. Se houver mais que uma pasta (no meu caso &#8220;en&#8221; e &#8220;pt&#8221; &#8211; o flash usava &#8220;en&#8221; enquanto as extensões estavam em &#8220;pt&#8221; ), faça um backup da pasta LANG/Configuration, copie o conteúdo da pasta ERROR_LANG/Configuration para LANG/Configuration, onde LANG é a pasta utilizada pelo flash (no meu caso en) e ERROR_LANG a pasta onde as extensões foram instaladas.</p>
<p>No meu caso funcionou tudo muito bem, porém aconselho tomar certos cuidados ao copiar as pastas, como copiar somente os arquivos adicionas da pasta ERROR_LANG, sem excluir os arquivos já existentes na pasta LANG.</p>
<p>Espero ter colaborado, abraços</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wilianfiabani.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wilianfiabani.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wilianfiabani.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wilianfiabani.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wilianfiabani.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wilianfiabani.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wilianfiabani.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wilianfiabani.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wilianfiabani.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wilianfiabani.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wilianfiabani.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wilianfiabani.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wilianfiabani.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wilianfiabani.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=130&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wilianfiabani.wordpress.com/2010/04/01/adicionando-extensoes-no-adobe-flash-cs4-para-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76aecaee926df623d70ac8650fe03697?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">fiabani</media:title>
		</media:content>
	</item>
		<item>
		<title>Validando emails no MySQL com Expressões Regulares</title>
		<link>http://wilianfiabani.wordpress.com/2009/12/29/validando-emails-no-mysql-com-expressoes-regulares/</link>
		<comments>http://wilianfiabani.wordpress.com/2009/12/29/validando-emails-no-mysql-com-expressoes-regulares/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 23:40:38 +0000</pubDate>
		<dc:creator>fiabani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wilianfiabani.wordpress.com/?p=126</guid>
		<description><![CDATA[Olá à todos, Hoje vou falar de um assunto interessante para quem trabalha com email marketing, a validação básica de emails. Quem tem lá suas centenas de listas com seus milhares de emails também tem lá suas dúvidas quanto a integridade desses dados, uma vêz que torna-se difícil controlar devido à grande quantidade de endereços. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=126&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá à todos,</p>
<p>Hoje vou falar de um assunto interessante para quem trabalha com email marketing, a validação básica de emails. Quem tem lá suas centenas de listas com seus milhares de emails também tem lá suas dúvidas quanto a integridade desses dados, uma vêz que torna-se difícil controlar devido à grande quantidade de endereços.</p>
<p>A query abaixo seleciona apenas os emails com grafia correta:</p>
<p>select email from tb_contatos where nome regexp &#8216;[A-Za-z0-9\\._-]+@[A-Za-z]+\\.[A-Za-z]+&#8217;</p>
<p>vamos às explicações:</p>
<p>Regra 1   =&gt;   [A-Za-z0-9\\._-]+   =&gt;  o grupo deve conter ao menos um caractere, sendo letras maiúsculas, minúsculas, números, ponto ou hífen</p>
<p>Regra 2   =&gt;   @   =&gt;  deve conter o &#8220;@&#8221; entre a regra 1 e a regra 3.</p>
<p>Regra 3   =&gt;   [A-Za-z0-9]+\\.[A-Za-z]+   =&gt;    o grupo deverá conter ao menos um caractere sendo letras maiúsculas e/ou minúsculas e/ou números, o ponto e ao menos um caractere sendo letras maiúsculas e/ou minúsculas.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wilianfiabani.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wilianfiabani.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wilianfiabani.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wilianfiabani.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wilianfiabani.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wilianfiabani.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wilianfiabani.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wilianfiabani.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wilianfiabani.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wilianfiabani.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wilianfiabani.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wilianfiabani.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wilianfiabani.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wilianfiabani.wordpress.com/126/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=126&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wilianfiabani.wordpress.com/2009/12/29/validando-emails-no-mysql-com-expressoes-regulares/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76aecaee926df623d70ac8650fe03697?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">fiabani</media:title>
		</media:content>
	</item>
		<item>
		<title>TextArea ajustável</title>
		<link>http://wilianfiabani.wordpress.com/2009/12/14/textarea-ajustavel/</link>
		<comments>http://wilianfiabani.wordpress.com/2009/12/14/textarea-ajustavel/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 19:32:24 +0000</pubDate>
		<dc:creator>fiabani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wilianfiabani.wordpress.com/?p=123</guid>
		<description><![CDATA[Olá pessoal, hoje explicarei um pequeno truque com textarea&#8217;s, utilizado quando não sabemos a quantidade de texto que o usuário vai inserir/editar e ao mesmo tempo queremos aproveitar melhor os espaços na tela. Desta forma, tornando a altura do textarea ajustável q quantidade de texto inserida. Bem, o negócio é muito simples mesmo. Primeiro criamos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=123&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal,</p>
<p>hoje explicarei um pequeno truque com textarea&#8217;s, utilizado quando não sabemos a quantidade de texto que o usuário vai inserir/editar e ao mesmo tempo queremos aproveitar melhor os espaços na tela. Desta forma, tornando a altura do textarea ajustável q quantidade de texto inserida.</p>
<p>Bem, o negócio é muito simples mesmo. Primeiro criamos a função responsável por redimensionar o textarea:</p>
<p><strong>function verifica(){<br />
//id do textarea<br />
var t = document.getElementById(&#8216;text&#8217;);<br />
if(t.scrollHeight &gt; t.offsetHeight){<br />
t.style.height = t.scrollHeight+&#8221;px&#8221;;</strong><strong><br />
}<br />
}</strong></p>
<p>Depois, no textarea expansível, colocamos o seguinte código:</p>
<p><strong>&lt;textarea name=&#8221;text&#8221; id=&#8221;text&#8221; cols=&#8221;45&#8243; style=&#8221;height: auto;&#8221; <span style="color:#ff0000;">onkeyup=&#8221;verifica()&#8221;</span>&gt;&lt;/textarea&gt;</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wilianfiabani.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wilianfiabani.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wilianfiabani.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wilianfiabani.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wilianfiabani.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wilianfiabani.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wilianfiabani.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wilianfiabani.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wilianfiabani.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wilianfiabani.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wilianfiabani.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wilianfiabani.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wilianfiabani.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wilianfiabani.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=123&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wilianfiabani.wordpress.com/2009/12/14/textarea-ajustavel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76aecaee926df623d70ac8650fe03697?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">fiabani</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex: Botões de controle em DataGrid</title>
		<link>http://wilianfiabani.wordpress.com/2009/08/31/flex-botoes-de-controle-em-datagrid/</link>
		<comments>http://wilianfiabani.wordpress.com/2009/08/31/flex-botoes-de-controle-em-datagrid/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 16:38:42 +0000</pubDate>
		<dc:creator>fiabani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wilianfiabani.wordpress.com/?p=107</guid>
		<description><![CDATA[Olá pessoal, hoje descobri um pequeno truque, então resolvi compartilhar com vocês. Sabe aqueles botões de controle de um datagrid, onde você deixa-os habilitados/desabilitados conforme um item é selecionado? pois bem, através do recurso de binding do flex encontrei uma forma fácil para este operação, vejam: dataProvider do datagrid: código do datagrid: botões de controle: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=107&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, hoje descobri um pequeno truque, então resolvi compartilhar com vocês.<br />
Sabe aqueles botões de controle de um datagrid, onde você deixa-os habilitados/desabilitados conforme um item é selecionado?<br />
pois bem, através do recurso de binding do flex encontrei uma forma fácil para este operação, vejam:</p>
<p>dataProvider do datagrid:<br />
<a href="http://wilianfiabani.files.wordpress.com/2009/08/xml.png"><img src="http://wilianfiabani.files.wordpress.com/2009/08/xml.png?w=500&#038;h=22" alt="xml" title="xml" width="500" height="22" class="alignnone size-full wp-image-113" /></a></p>
<p>código do datagrid:<br />
<a href="http://wilianfiabani.files.wordpress.com/2009/08/datagrid.png"><img src="http://wilianfiabani.files.wordpress.com/2009/08/datagrid.png?w=500&#038;h=92" alt="datagrid" title="datagrid" width="500" height="92" class="alignnone size-full wp-image-112" /></a></p>
<p>botões de controle:<br />
<a href="http://wilianfiabani.files.wordpress.com/2009/08/buttons.png"><img src="http://wilianfiabani.files.wordpress.com/2009/08/buttons.png?w=300&#038;h=14" alt="buttons" title="buttons" width="300" height="14" class="alignnone size-medium wp-image-111" /></a></p>
<p>Desta forma, convertendo a propriedade selectedIndex incrementada para booelan, conseguimos controlar os botões sem funções externas.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wilianfiabani.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wilianfiabani.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wilianfiabani.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wilianfiabani.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wilianfiabani.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wilianfiabani.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wilianfiabani.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wilianfiabani.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wilianfiabani.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wilianfiabani.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wilianfiabani.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wilianfiabani.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wilianfiabani.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wilianfiabani.wordpress.com/107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=107&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wilianfiabani.wordpress.com/2009/08/31/flex-botoes-de-controle-em-datagrid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76aecaee926df623d70ac8650fe03697?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">fiabani</media:title>
		</media:content>

		<media:content url="http://wilianfiabani.files.wordpress.com/2009/08/xml.png" medium="image">
			<media:title type="html">xml</media:title>
		</media:content>

		<media:content url="http://wilianfiabani.files.wordpress.com/2009/08/datagrid.png" medium="image">
			<media:title type="html">datagrid</media:title>
		</media:content>

		<media:content url="http://wilianfiabani.files.wordpress.com/2009/08/buttons.png?w=300" medium="image">
			<media:title type="html">buttons</media:title>
		</media:content>
	</item>
		<item>
		<title>Trabalhando com funções no MySQL</title>
		<link>http://wilianfiabani.wordpress.com/2009/07/07/trabalhando-com-funcoes-no-mysql/</link>
		<comments>http://wilianfiabani.wordpress.com/2009/07/07/trabalhando-com-funcoes-no-mysql/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 20:10:49 +0000</pubDate>
		<dc:creator>fiabani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wilianfiabani.wordpress.com/?p=100</guid>
		<description><![CDATA[Olá Pessoal, Hoje resolvi mergulhar superficialmente num assunto bastante interessante: as funções do MySQL. Este recurso está disponível somente à partir da versão 5.0. São apenas duas tabelas, uma contendo as lojas e outra contendo um cadastro para visita. A lógica é a seguinte: o usuário se cadastra para visitar a loja, de forma que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=100&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Hoje resolvi mergulhar superficialmente num assunto bastante interessante: as funções do MySQL. Este recurso está disponível somente à partir da versão 5.0. São apenas duas tabelas, uma contendo as lojas e outra contendo um cadastro para visita.<br />
A lógica é a seguinte: o usuário se cadastra para visitar a loja, de forma que só possam se cadastrar 2 pessoas num determinado intervalo de horários. Cada horario possui uma identificação, por exemplo: 8h às 9h = 1 , 9h às 10h = 2  , &#8230;<br />
Caso o usuário tente efetuar seu cadastro onde já existam duas pessoas cadastradas o sistema deve impedir. Deverá também impedir números de CPF duplicados.</p>
<p><strong>tabela de lojas:</strong><br />
CREATE TABLE IF NOT EXISTS `awo_loja` (<br />
`id` int(10) NOT NULL AUTO_INCREMENT,<br />
`nome` varchar(255) NOT NULL,<br />
PRIMARY KEY (`id`)<br />
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;</p>
<p><strong>tabela de cadastros:</strong><br />
CREATE TABLE IF NOT EXISTS `awo_cadastro` (<br />
`id` int(10) NOT NULL AUTO_INCREMENT,<br />
`id_loja` int(10) NOT NULL,<br />
`nome` varchar(250) NOT NULL,<br />
`cpf` varchar(11) NOT NULL,<br />
`telefone` varchar(20) NOT NULL,<br />
`email` varchar(200) NOT NULL,<br />
`horario` int(10) NOT NULL,<br />
PRIMARY KEY (`id`),<br />
KEY `id_loja` (`id_loja`)<br />
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;</p>
<p><strong>função que verifica se o cpf já foi cadastrado anteriormente, retorna um se já existir ou 0 se não existir:</strong><br />
CREATE FUNCTION vcpf(num_cpf varchar(11))<br />
RETURNS INT<br />
BEGIN<br />
DECLARE total INT;<br />
SELECT count(*) into total FROM awo_cadastro WHERE cpf=num_cpf;<br />
RETURN total;<br />
END$$</p>
<p><strong>função que verifica a disponibilidade de horários por loja. recebe como parâmetro o id da loja e o id do horário pretendido.</strong><br />
CREATE FUNCTION vhora(id_hora int(10), loja int(10))<br />
RETURNS INT<br />
BEGIN<br />
DECLARE auth, res INT;<br />
SELECT count(*) into res FROM awo_cadastro WHERE id_loja=loja;<br />
IF res&lt;2 THEN<br />
SET auth = 1;<br />
ELSE<br />
SET auth = 0;</p>
<p>END IF;<br />
RETURN auth;<br />
END$$</p>
<p>Observação: Se você for rodar o script acima no phpMyAdmin, é preciso alterar o delimitador para &#8220;$$&#8221;</p>
<p><strong>Utilização:</strong><br />
select vcpf(&#8217;83682112049&#8242;) as ja_existe, vhora(2,1) as tem_horario</p>
<p>Era isso pessoal, desejem-me tudo de bom que não custa nada <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , abraços</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wilianfiabani.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wilianfiabani.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wilianfiabani.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wilianfiabani.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wilianfiabani.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wilianfiabani.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wilianfiabani.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wilianfiabani.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wilianfiabani.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wilianfiabani.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wilianfiabani.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wilianfiabani.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wilianfiabani.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wilianfiabani.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=100&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wilianfiabani.wordpress.com/2009/07/07/trabalhando-com-funcoes-no-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76aecaee926df623d70ac8650fe03697?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">fiabani</media:title>
		</media:content>
	</item>
		<item>
		<title>truques com JComboBox [sem mágica]</title>
		<link>http://wilianfiabani.wordpress.com/2009/03/28/truques-com-jcombobox-sem-magica/</link>
		<comments>http://wilianfiabani.wordpress.com/2009/03/28/truques-com-jcombobox-sem-magica/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 00:38:59 +0000</pubDate>
		<dc:creator>fiabani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wilianfiabani.wordpress.com/?p=89</guid>
		<description><![CDATA[Olá pessoal, alguem ai já precisou usar um JComboBox, usando dois valores diferentes para label e value, tipo um select do HTML? Eu já precisei, eis um pequeno truque: public class StrObject{ private String label; private Object value; public StrObject(Object value, String label){ this.value = value; this.label = label; } public String toString(){ return this.label; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=89&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal,</p>
<p>alguem ai já precisou usar um JComboBox, usando dois valores diferentes para label e value, tipo um select do HTML?<br />
Eu já precisei, eis um pequeno truque:<br />
<em><span style="color:#339966;">public class StrObject{<br />
private String label;<br />
private Object value;</p>
<p>public StrObject(Object value, String label){<br />
this.value = value;<br />
this.label = label;<br />
}</p>
<p>public String toString(){<br />
return this.label;<br />
}</p>
<p>public Object getValue(){<br />
return this.value;<br />
}<br />
}</span></em></p>
<p>Na hora de montar o JComboBox, coloque no Array de objetos, ao invés de Strings, objetos da classe StrObject, recuperando seus valores posteriormente através do método getValue(); exempo:</p>
<p>StrObject obj = (StrObject) combo.getSelectedItem();<br />
int value = (int) obj.getValue();</p>
<p>obrigado, até a próxima</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wilianfiabani.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wilianfiabani.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wilianfiabani.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wilianfiabani.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wilianfiabani.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wilianfiabani.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wilianfiabani.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wilianfiabani.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wilianfiabani.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wilianfiabani.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wilianfiabani.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wilianfiabani.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wilianfiabani.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wilianfiabani.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=89&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wilianfiabani.wordpress.com/2009/03/28/truques-com-jcombobox-sem-magica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76aecaee926df623d70ac8650fe03697?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">fiabani</media:title>
		</media:content>
	</item>
		<item>
		<title>Persistindo dados no MySQL com Java</title>
		<link>http://wilianfiabani.wordpress.com/2009/03/28/persistindo-dados-em-java/</link>
		<comments>http://wilianfiabani.wordpress.com/2009/03/28/persistindo-dados-em-java/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 00:25:14 +0000</pubDate>
		<dc:creator>fiabani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wilianfiabani.wordpress.com/?p=84</guid>
		<description><![CDATA[Olá pessoal, a pouco tempo me deparei com uma situação comum na vida de qualquer desenvolvedor. Ter que desenvolver um software simples, sem análise nenhuma  e entregar pra daqui a algumas horas. Pensei que acharia algum framework em alguns minutos mas não encontrei. Tentei me aventurar pelo Hibernate, mas o tempo não me permitiria tanta [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=84&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal,</p>
<p>a pouco tempo me deparei com uma situação comum na vida de qualquer desenvolvedor. Ter que desenvolver um software simples, sem análise nenhuma  e entregar pra daqui a algumas horas. Pensei que acharia algum framework em alguns minutos mas não encontrei. Tentei me aventurar pelo Hibernate, mas o tempo não me permitiria tanta audácia, hehehe, então resolvi criar uma classe simples, que efetua as operações básicas (inclusão, exclusão, atualização e replace).</p>
<p>Utilização:</p>
<p>é necessário uma classe intermediária que com métodos query(return ArrayList &lt;Map&gt;) e um método exec(return boolean). Para utilizá-la, cria-se a class com o mesmo nome da tabela+&#8221;DAO&#8221;, por exemplo, em uma tabela cliente, ficaria assim:</p>
<p><span style="color:#339966;"><em>public class ClienteDAO extends DAO{</em></span></p>
<p><span style="color:#339966;"><em> public ClienteDAO(){<br />
super();<br />
}</em></span></p>
<p><span style="color:#339966;"><em> public ClienteDAO(id){<br />
super(id);<br />
}</em></span></p>
<p><span style="color:#339966;"><em>}</em></span><br />
Espero que sirva para alguém na mesma situação que eu, dúvidas postem</p>
<pre><span style="color:#333399;">package sistema.api;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;</span>
<span style="color:#333399;">
public abstract class DAO {
    protected DB conn = new DB();
    protected String table;
    protected String pk;
    private Object pk_val;
    protected Map &lt;String, Object&gt; data = new HashMap &lt;String, Object&gt; ();
    protected List &lt;String&gt; fields = new ArrayList &lt;String&gt; ();

    public DAO(){
        initialize();
    }

    public DAO(Object id){
        pk_val = id;
        initialize();
    }

    public void initialize(){
        table = getClass().getSimpleName().substring(0, getClass().getSimpleName().length()-3).toLowerCase();
        load();
    }

    @SuppressWarnings("unchecked")
    protected void load(){
        ArrayList &lt;Map&gt; result = conn.query("SHOW index FROM "+table+" WHERE Key_name='PRIMARY'");
        Map &lt;Object, Object&gt; t = result.get(0);
        pk = t.get("COLUMN_NAME").toString();

        result = conn.query("SELECT * FROM "+table+" WHERE "+pk+"="+pk_val);
        ArrayList &lt;Map&gt; columns = conn.query("SHOW COLUMNS FROM "+table);

        for(Map map : columns){
            fields.add(map.get("COLUMN_NAME").toString());
            if(result.size()&gt;0){
                data.put(map.get("COLUMN_NAME").toString() , result.get(0).get(map.get("COLUMN_NAME").toString()));
            }
        }
    }  

    public void set(String prop, Object val){
        if(data.containsKey(prop)){
            data.remove(prop);
        }
        data.remove(prop);
        if(fields.contains(prop)){
            fields.remove(prop);
        }
        data.put(prop, val);
        fields.add(prop);
    }

    public Object get(String prop){
        return data.get(prop);
    }

    public boolean add(){
        String sql = "INSERT INTO "+table+" (";
        for(int i=0 ; i&lt;fields.size() ; i++){
            sql += fields.get(i)+(i==(fields.size()-1) ? "" : " , ");
        }
        sql += " ) VALUES (";
        for(int i=0 ; i&lt;data.size() ; i++){
            String val = (data.get(fields.get(i)) instanceof String) ? "'"+data.get(fields.get(i))+"'" : String.valueOf(data.get(fields.get(i)));
            sql += val+(i==(fields.size()-1) ? "" : " , ");
        }
        sql += ")";
        return conn.update(sql);
    }

    public boolean replace(){
        String sql = "REPLACE INTO "+table+" (";
        for(int i=0 ; i&lt;fields.size() ; i++){
            sql += fields.get(i)+(i==(fields.size()-1) ? "" : " , ");
        }
        sql += " ) VALUES (";
        for(int i=0 ; i&lt;data.size() ; i++){
            String val = (data.get(fields.get(i)) instanceof String) ? "'"+data.get(fields.get(i))+"'" : String.valueOf(data.get(fields.get(i)));
            sql += val+(i==(fields.size()-1) ? "" : " , ");
        }
        sql += ")";
        return conn.update(sql);
    }

    public boolean update(){
        String sql = "UPDATE "+table+" SET ";
        for(int i=0 ; i&lt;data.size() ; i++){
            String val = (data.get(fields.get(i)) instanceof String) ? "'"+data.get(fields.get(i))+"'" : String.valueOf(data.get(fields.get(i)));
            sql += fields.get(i)+"="+val+(i==(fields.size()-1) ? "" : " , ");
        }
        sql += " WHERE "+pk+"="+((pk_val instanceof String) ? "'"+pk_val+"'" : String.valueOf(pk_val) );
        return conn.update(sql);
    }

    public boolean drop(){
        return conn.update("DELETE FROM "+table+" WHERE "+pk+"="+((pk_val instanceof String) ? "'"+pk_val+"'" : String.valueOf(pk_val) ));
    }
}</span></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wilianfiabani.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wilianfiabani.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wilianfiabani.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wilianfiabani.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wilianfiabani.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wilianfiabani.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wilianfiabani.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wilianfiabani.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wilianfiabani.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wilianfiabani.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wilianfiabani.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wilianfiabani.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wilianfiabani.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wilianfiabani.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=84&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wilianfiabani.wordpress.com/2009/03/28/persistindo-dados-em-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76aecaee926df623d70ac8650fe03697?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">fiabani</media:title>
		</media:content>
	</item>
		<item>
		<title>Uma solução &#8220;alternativa&#8221; ao AJAX</title>
		<link>http://wilianfiabani.wordpress.com/2009/01/21/uma-solucao-alternativa-ao-ajax/</link>
		<comments>http://wilianfiabani.wordpress.com/2009/01/21/uma-solucao-alternativa-ao-ajax/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 18:23:12 +0000</pubDate>
		<dc:creator>fiabani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[acentuação ajax]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[problemas com ajax]]></category>
		<category><![CDATA[soluções alernativas]]></category>

		<guid isPermaLink="false">http://wilianfiabani.wordpress.com/?p=60</guid>
		<description><![CDATA[Pra quem procura uma solução para escapar do reload de páginas e dos iframes, nem sempre ajax é a melhor solução. Volta e meia nos deparamos pequenos problemas dos mais variados tamanhos, sejam eles de acentuação gráfica, página não encontrada, etc&#8230; Hoje abri a página inicial do google e vi um recurso de auto-completar muito [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=60&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Pra quem procura uma solução para escapar do reload de páginas e dos iframes, nem sempre ajax é a melhor solução. Volta e meia nos deparamos pequenos problemas dos mais variados tamanhos, sejam eles de acentuação gráfica, página não encontrada, etc&#8230;</p>
<p>Hoje abri a página inicial do google e vi um recurso de auto-completar muito interessante. Interessante sim, por que o firebug não me mostrou nenhuma requisição!</p>
<p>Com o auxílio de meu amigo <a href="http://nzk.com.br">Artur Magalhães (Nezkal)</a> , descobrimos uma forma inteligente de fazer isso através do jsDOM.</p>
<p>Primeiro, criamos a função carregadora de scripts:<br />
&lt;script&gt;<br />
function wload(url){<br />
try{<br />
var js = document.createElement(&#8220;script&#8221;);<br />
js.setAttribute(&#8216;type&#8217; , &#8216;text/javascript&#8217;);<br />
js.setAttribute(&#8216;src&#8217; , url);<br />
document.body.appendChild(js);<br />
}catch(e){<br />
alert(&#8216;Impossível carregar o script solicitado!&#8217;)<br />
}<br />
}<br />
&lt;/script&gt;</p>
<p>e depois a página em php:<br />
document.getElementById(&#8216;txt&#8217;).value = &#8216;&lt;?= ($_GET['param']==&#8221;João&#8221;) ? &#8220;João e o pé de feijão&#8230;&#8221; : &#8220;João sem o pé de feijão =(&#8220;; ?&gt;&#8217;;</p>
<p>e por último um campo de texto com id &#8216;txt&#8217; e um formulário:<br />
&lt;script&gt;<br />
document.forms[0].onsubmit = function(){<br />
wload(&#8216;default.php?param=&#8217;+document.getElementById(&#8216;txt&#8217;).value);<br />
return false;<br />
}<br />
&lt;/script&gt;</p>
<p>Apesar de ser uma solução muito simples, reduz consideravelmente o script responsável pelo carregamento de conteúdo tornando-o assim mais rápido, embora ficando com a url limitada à 255 caracteres, devido ao envio através do GET.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wilianfiabani.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wilianfiabani.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wilianfiabani.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wilianfiabani.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wilianfiabani.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wilianfiabani.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wilianfiabani.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wilianfiabani.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wilianfiabani.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wilianfiabani.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wilianfiabani.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wilianfiabani.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wilianfiabani.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wilianfiabani.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=60&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wilianfiabani.wordpress.com/2009/01/21/uma-solucao-alternativa-ao-ajax/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76aecaee926df623d70ac8650fe03697?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">fiabani</media:title>
		</media:content>
	</item>
		<item>
		<title>AJAX e Firefox 3: A história, o problema e a resolução.</title>
		<link>http://wilianfiabani.wordpress.com/2008/07/30/ajax-e-firefox-3-a-historia-o-problema-e-a-resolucao/</link>
		<comments>http://wilianfiabani.wordpress.com/2008/07/30/ajax-e-firefox-3-a-historia-o-problema-e-a-resolucao/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 15:57:31 +0000</pubDate>
		<dc:creator>fiabani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[ajax assíncrono]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[firefox 3]]></category>
		<category><![CDATA[onreadystatechange]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://wilianfiabani.wordpress.com/?p=16</guid>
		<description><![CDATA[Resolvi escrever este pequeno artigo após ter me deparado com um problema que vinha acontecendo quando utilizava ajax no firefox 3. Algumas de minhas aplicações em ajax que funcionavam perfeitamente no ff2, ie, Safari, e Opera simplesmente pararam de funcionar quando instalei o ff3 em minha máquina. Utilizando o firebug, percebi que tudo estava ocorrendo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=16&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Resolvi escrever este pequeno artigo após ter me deparado com um problema que vinha acontecendo quando utilizava ajax no firefox 3. Algumas de minhas aplicações em ajax que funcionavam perfeitamente no ff2, ie, Safari, e Opera simplesmente pararam de funcionar quando instalei o ff3 em minha máquina. Utilizando o firebug, percebi que tudo estava ocorrendo perfeitamente bem, mas quando tentava tratar a resposta (xmlhttp.responseText) ela estava em branco. Após algumas horas (na verdade muitas, hehe) tentando obter a bendita resposta esperando encontrar algum bug na comunicação síncrona do ff3, cheguei a esta conclusão:</p>
<p>&#8220;O método onreadystatechange não é acionado no ff3 em chamadas síncronas!&#8221;</p>
<p>Simples né? desta forma fazendo uma simples alteração no código javascript meus scripts voltaram a funcionar e os clientes da agência viveram felizes para sempre (os que usavam ff obviamente, os demais usuários do ie continuarão a viver na <a href="http://pt.wikipedia.org/wiki/Mito_da_caverna" target="_blank">caverna de Platão</a>)</p>
<p>Aqui vai o código com as modificações necessárias para funcionar no firefox 3. Espero ter ajudado <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong><em><br />
</em></strong></p>
<p><strong><em>function Ajax(){<br />
this.assincr = true;<br />
this.method = &#8220;GET&#8221;;<br />
this.val = &#8220;&#8221;;<br />
this.xmlhttp = null;</em></strong></p>
<p><strong><em>try{<br />
this.xmlhttp =  new ActiveXObject(&#8220;Microsoft.XMLHTTP&#8221;);<br />
}catch(e){<br />
try{<br />
this.xmlhttp = new ActiveXObject(&#8220;Msxml2.XMLHTTP&#8221;);<br />
}catch(ex){<br />
try{<br />
this.xmlhttp = new XMLHttpRequest();<br />
}catch(exc){<br />
alert(&#8220;Esse browser não tem recursos para uso do Ajax&#8221;);<br />
this.xmlhttp = null;<br />
}<br />
}<br />
}</em></strong></p>
<p><strong><em>//carrega o conteudo de uma ajax em uma var<br />
this.loadResult = function(url){<br />
if(this.xmlhttp) {<br />
this.xmlhttp.open(this.method, url , this.assincr);<br />
//<br />
if(this.method == &#8216;GET&#8217;){<br />
this.xmlhttp.send(null);<br />
}else if(this.method == &#8216;POST&#8217;){<br />
this.xmlhttp.setRequestHeader(&#8220;Content-Type&#8221;, &#8220;application/x-www-form-urlencoded;&#8221;);<br />
try{<br />
this.xmlhttp.send(url.split(&#8220;?&#8221;)[1]);<br />
}catch(e){}<br />
}<br />
//<br />
if(this.assincr){<br />
this.xmlhttp.onreadystatechange = function(){<br />
if(ajax.xmlhttp.readyState == 4){<br />
if(ajax.xmlhttp.status == 200){<br />
ajax.val = ajax.xmlhttp.responseText;<br />
}else{<br />
alert(ajax.xmlhttp.statusText);<br />
}<br />
}<br />
}<br />
}else{<br />
ajax.val = ajax.xmlhttp.responseText;<br />
}<br />
}<br />
return this.val;<br />
}</em></strong></p>
<p><strong><em>}</em></strong></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wilianfiabani.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wilianfiabani.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wilianfiabani.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wilianfiabani.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wilianfiabani.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wilianfiabani.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wilianfiabani.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wilianfiabani.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wilianfiabani.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wilianfiabani.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wilianfiabani.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wilianfiabani.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wilianfiabani.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wilianfiabani.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wilianfiabani.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wilianfiabani.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wilianfiabani.wordpress.com&amp;blog=2857635&amp;post=16&amp;subd=wilianfiabani&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wilianfiabani.wordpress.com/2008/07/30/ajax-e-firefox-3-a-historia-o-problema-e-a-resolucao/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76aecaee926df623d70ac8650fe03697?s=96&#38;d=monsterid" medium="image">
			<media:title type="html">fiabani</media:title>
		</media:content>
	</item>
	</channel>
</rss>
