<?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>Leandro Garcia &#187; Blog</title>
	<atom:link href="http://www.leandrogarcia.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leandrogarcia.com</link>
	<description></description>
	<lastBuildDate>Thu, 02 Sep 2010 16:52: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>Blog do Garcia virou App e está no Facebook</title>
		<link>http://www.leandrogarcia.com/blog/blog-do-garcia-virou-app-e-esta-no-facebook/</link>
		<comments>http://www.leandrogarcia.com/blog/blog-do-garcia-virou-app-e-esta-no-facebook/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 16:52:35 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[app]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[aplicativo]]></category>
		<category><![CDATA[blog do garcia]]></category>
		<category><![CDATA[on facebook]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=357</guid>
		<description><![CDATA[Finalmente, criei vergonha na cara e desenvolvi um app do blog para o facebook. Agora você pode adicioná-lo ao seu perfil e acompanhar os últimos posts deste que vos escreve.
Segue o link. http://www.facebook.com/apps/application.php?id=135598243117295
Espero que aproveitem, abraços e até a próxima.
]]></description>
			<content:encoded><![CDATA[<p>Finalmente, criei vergonha na cara e desenvolvi um app do blog para o facebook. Agora você pode adicioná-lo ao seu perfil e acompanhar os últimos posts deste que vos escreve.</p>
<p>Segue o link. <a href="http://www.facebook.com/apps/application.php?id=135598243117295">http://www.facebook.com/apps/application.php?id=135598243117295</a></p>
<p>Espero que aproveitem, abraços e até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/blog-do-garcia-virou-app-e-esta-no-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validação de formularios com jQuery</title>
		<link>http://www.leandrogarcia.com/blog/validacao-de-formularios-com-jquery/</link>
		<comments>http://www.leandrogarcia.com/blog/validacao-de-formularios-com-jquery/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 18:28:29 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=350</guid>
		<description><![CDATA[ção É muito comum que em projetos que desenvolvemos tenham formulários e em formularios é praticamente necessário que haja validações qunaton à entrada de dados. Por mais que tenhamos quer validar a entrada dos dados por backend, uma boa prática é validar no front, através de JS.
A validação por JS é interessante uma vez que [...]]]></description>
			<content:encoded><![CDATA[<p>ção É muito comum que em projetos que desenvolvemos tenham formulários e em formularios é praticamente necessário que haja validações qunaton à entrada de dados. Por mais que tenhamos quer validar a entrada dos dados por backend, uma boa prática é validar no front, através de JS.</p>
<p>A validação por JS é interessante uma vez que poupamos processamento  do servidor por requisições inuteis como uma postagem de dados faltando algum campo requerido, além de ser mais rápido para o usuário. Muito trabalho com validação de dados nos diversos trabalhos em que participei. No entanto, depois que passei a utilizar jQuery o trabalho com validação foi muito facilitado. Uso de vez enquando um plugin chamado jquery validator, mas é muito raro, uma vez que o tamanho dele em KBs pode tornar a página mais lenta de ser carregada, e o que, geralmente, preciso validar é entrada de dados em brando ou formato de emails. Para isso, eu desenvolvi uma função para validar  entrada de dados em branco e formato de e-mail, de frma bem simples e com poucas linhas de código. Essa função só funciona com jQuery.</p>
<pre class="brush: jscript;">
function validaForm(){
	var emailfilter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	$(&quot;.erro&quot;).remove();
	$(&quot;.emailerr&quot;).remove();
	var required = $(&quot;.required&quot;);
	var req = 0;
	for(i=0;i&lt;required.length;i++){
		if($(required[i]).val() == &quot;&quot;){
			if($(&quot;.erro&quot;).length == 0){
				$(&quot;form&quot;).prepend('&lt;p class=&quot;erro&quot;&gt;campos obrigatorios&lt;/p&gt;');
			}
			$(required[i]).css(&quot;border-color&quot;,&quot;#ff0000&quot;);
			req = 1;
		}
	}

	var email = $(&quot;.email&quot;);
	for(i=0;i&lt;email.length;i++){
		if(!emailfilter.test($(email[i]).val())){
			if($(&quot;.emailerr&quot;).length == 0){
				$(&quot;form&quot;).prepend('&lt;p class=&quot;emailerr&quot;&gt;Email errado&lt;/p&gt;');
			}
			$(email[i]).css(&quot;border-color&quot;,&quot;#ff0000&quot;);
			req = 1;
		}
	}

	if(req == 1){
		return false;
	}
}
</pre>
<p>Para que esta função funcione, você precisa incluir na tag form o atributo &#8216;onsubmit=&#8221;return validaForm()&#8221;&#8216; e a classe &#8216;required&#8217; em cada campo que não pode ser em branco, para e-mail a classe &#8216;email&#8217; como no exemplo a seguir.</p>
<pre class="brush: xml;">
&lt;form action=&quot;#&quot; method=&quot;post&quot; onsubmit=&quot;return validaForm()&quot;&gt;
	&lt;fieldset&gt;
		&lt;label&gt;Nome&lt;/label&gt;&lt;br /&gt;
		&lt;input type=&quot;text&quot; name=&quot;nome&quot; class=&quot;required&quot; /&gt;

		&lt;br /&gt;
		&lt;label&gt;Nome&lt;/label&gt;&lt;br /&gt;
		&lt;input type=&quot;text&quot; name=&quot;nome&quot; class=&quot;email&quot; /&gt;
		&lt;br /&gt;
		&lt;input type=&quot;submit&quot; value=&quot;OK&quot; /&gt;
	&lt;/fieldset&gt;
&lt;/form&gt;
</pre>
<p>Espero que seja tão util à vocês quanto écpara mim. Ckique nos links à baixo e veja em funcionamento.<br />
<a href="http://tutoriais.leandrogarcia.com/jquery_validacao_formulario/">http://tutoriais.leandrogarcia.com/jquery_validacao_formulario/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/validacao-de-formularios-com-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Realidade aumentada</title>
		<link>http://www.leandrogarcia.com/blog/realidade-aumentada/</link>
		<comments>http://www.leandrogarcia.com/blog/realidade-aumentada/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 21:14:05 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[Vídeo]]></category>
		<category><![CDATA[realidade aumentada]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=349</guid>
		<description><![CDATA[Recebi esse video muito bom sobre um produto que usa realidade aumentada em um e-commerce. Muito bom.

]]></description>
			<content:encoded><![CDATA[<p>Recebi esse video muito bom sobre um produto que usa realidade aumentada em um e-commerce. Muito bom.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/rn_iPjGKd0M&amp;hl=pt_BR&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/rn_iPjGKd0M&amp;hl=pt_BR&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/realidade-aumentada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pakus CSS Framework</title>
		<link>http://www.leandrogarcia.com/blog/pakus-css-framework/</link>
		<comments>http://www.leandrogarcia.com/blog/pakus-css-framework/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 16:58:58 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[css framework]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=347</guid>
		<description><![CDATA[Estou desenvolvendo um framework CSS para agilizar a maioria dos desenvolvimentos front-end. Ainda não está completo, mas da pra se usar. Ja coloquei o código no Google Code, quem quiser ja pode baixar. No pacote tem um html exemplo com tudo que tem no framework.
Em breve mais novidades.
http://code.google.com/p/pakus/
]]></description>
			<content:encoded><![CDATA[<p>Estou desenvolvendo um framework CSS para agilizar a maioria dos desenvolvimentos front-end. Ainda não está completo, mas da pra se usar. Ja coloquei o código no Google Code, quem quiser ja pode baixar. No pacote tem um html exemplo com tudo que tem no framework.</p>
<p>Em breve mais novidades.</p>
<p><a href="http://code.google.com/p/pakus/" target="_blank">http://code.google.com/p/pakus/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/pakus-css-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memcached</title>
		<link>http://www.leandrogarcia.com/blog/memcached/</link>
		<comments>http://www.leandrogarcia.com/blog/memcached/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 17:23:15 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[cahe]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[memcached]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=344</guid>
		<description><![CDATA[Eventualmente nos deparamos com alguma aplicação web, ou até mesmo site, que tenha seu conetúdo armazenado em uma base de dados, seja ela um banco de dados ou um xml ou até mesmo JSON. isso é muito interessante no ponto de vista de dinamismo, pois você pode ter um sistema de administração, atualizar de maneira [...]]]></description>
			<content:encoded><![CDATA[<p>Eventualmente nos deparamos com alguma aplicação web, ou até mesmo site, que tenha seu conetúdo armazenado em uma base de dados, seja ela um banco de dados ou um xml ou até mesmo JSON. isso é muito interessante no ponto de vista de dinamismo, pois você pode ter um sistema de administração, atualizar de maneira mais rápida, porém isso pode acarretar um grande problema se sua aplicação(site) tiver muito acesso.  Isso pode criar um gargalo enorme na transferência dos dados e até mais travar seu servidor, uma vez que cada requisição de página é uma reuisição para o arquivo ou uma requisição para o banco de dados.</p>
<p>Para se evitar esse tipo de gargalo, é interessante utilizar algum mecanismo de cache para os dados. Um dos mais utilizados e mais fáceis de se usar (pelo menos em PHP) é o memcached.</p>
<p>O ruim desse mecanismo é que o servidor tem que disponibilizá-lo, não é uma coisa que você memo possa fazer em sua aplicação. Tirando isso, é muito bom.</p>
<p>Basicamente, você armazena os dados na memória do servidor o que porna a leitura muito mais rápida.</p>
<p>O memcached, permite que você armazene qualquer tipo de texto desde que em um array, ex. você não pode armazenar somente uma string, tem que armazenar um array que tenha essa string.</p>
<p>adicionar = &#8220;string&#8221;; <strong><span style="color: #ff0000;">X errado</span></strong></p>
<p>adicionar = $array[0] = &#8220;string&#8221;;  <span style="color: #339966;"><strong>Correto</strong></span></p>
<p>No memcached você armazena em um local (chave) que você define, o conteúdo e por quanto tempo você quer que o conteúdo seja armazenado.</p>
<p>Como um banco de dados, você deve informar ao memcached o endereço de armazenamento, por padrão é localhost:11211, mas pode variar caso o rsponsável pelo servidor determine.</p>
<p>bom vamos a um exemplo</p>
<pre class="brush: php;">
$mem = new Memcache;
$mem-&gt;addServer(&quot;localhost:11211&quot;);
$mem-&gt;set(&quot;chave01&quot;, $array, TRUE, 60);
</pre>
<p>No exemplo acima, eu estou armazenando na chave01 meu array por 60 segundos.</p>
<p>Agora para pegar esse conteúdo, você deve usar a função get. Vamos ao exemplo.</p>
<pre class="brush: php;">
$mem = new Memcache;
$mem-&amp;gt;addServer(&quot;localhost:11211&quot;);
$resp = $mem-&gt;get(&quot;chave01&quot;);
print_r($resp);
</pre>
<p>Nesse exemplo eu estou pegando o conteúdo da chave01 e armazenando na variável $resp.</p>
<p>Aqui abaixo, um exemplo de uma função que procura no memcached uma determinada query e se não acha busca no banco de dados, armazena no memcached e responde o conteúdo.</p>
<pre class="brush: php;">
function mysql_queryCache($consulta, $tempo = 3600) {
     $chave = md5($consulta);  //Gera uma chave à partir de um hash formado pela query

     // Conecta no Memcached
     $mem = new Memcache;
     $mem-&gt;addServer(&quot;localhost:11211&quot;)

     // Tenta pegar o item em cache
     $query = $mem-&gt;get($chave);

     if ($query === false) {
          $query = mysql_query($consulta);
          if(mysql_num_rows($query) &gt; 0){
               $itens_array = array();

               if(mysql_num_rows($query)){
                    while($item = mysql_fetch_array($query)){
                         $itens_array[] = $item;
                    }
               }
          }else{
               $itens_array[0] = &quot;null&quot;;
               $itens_array[1] = &quot;null&quot;;
          }
          $mem-&gt;set($chave, $itens_array, TRUE, $tempo);

     } else {
          $itens_array = $query;
     }

     return $itens_array;
}

print_r(mysql_queryCache(&quot;SELECT * FROM clientes&quot;, 60) );
</pre>
<p>essa função procura no memcached a query &#8216;SELECT * FROM clientes&#8217;, se não tiver faz a busca no banco de dados, armazena no memcached e retorna o conteúdo. Se a query retornar vazia,  responde null.</p>
<p>Basicamente é isso, espero que seja tão útil para voc~es como foi para mim.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/memcached/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery plugin. Seus últimos tweets exibidos em seu blog</title>
		<link>http://www.leandrogarcia.com/blog/jquery-plugin-seus-ultimos-tweets-exibidos-em-seu-blog/</link>
		<comments>http://www.leandrogarcia.com/blog/jquery-plugin-seus-ultimos-tweets-exibidos-em-seu-blog/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 02:16:56 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=309</guid>
		<description><![CDATA[Algumas vezes, precisamos incluir em nossos layouts um box com os últimos tweeets de um determinada conta
A API do twitter não permite que haja mais de 150 acessos à ela no período de uma hora, essa restrição é imposta através do ip que acessa. Por isso, não podemos fazer a requisião através de uma linguagem [...]]]></description>
			<content:encoded><![CDATA[<p>Algumas vezes, precisamos incluir em nossos layouts um box com os últimos tweeets de um determinada conta</p>
<p>A API do twitter não permite que haja mais de 150 acessos à ela no período de uma hora, essa restrição é imposta através do ip que acessa. Por isso, não podemos fazer a requisião através de uma linguagem backend, como o PHP, pois com uma dessas linguagens a requisição é feita através do servidor, logo um único IP. Para driblar essa regra, uma possibilidade é acessar essa API através de Javascript, pois a requisição passa a ser feita através do IP do usuário.</p>
<p>Não é tão simples criar uma função em JS para efetuar essa tarefa, para isso, pesquisando na internet, achei o plugin de jQuery para efetuar essa tarefa.  Ele é bem simples de usar. No pacote disponível para download, há um exemplo de uso.</p>
<p><a href="http://coda.co.za/blog/2008/10/26/jquery-plugin-for-twitter">http://coda.co.za/blog/2008/10/26/jquery-plugin-for-twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/jquery-plugin-seus-ultimos-tweets-exibidos-em-seu-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verificar se um objeto Json está vazio</title>
		<link>http://www.leandrogarcia.com/blog/verificar-se-um-objeto-json-esta-vazio/</link>
		<comments>http://www.leandrogarcia.com/blog/verificar-se-um-objeto-json-esta-vazio/#comments</comments>
		<pubDate>Fri, 28 May 2010 21:37:43 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[json]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=303</guid>
		<description><![CDATA[Tive um problema recentemente, a API do twitter que na busca me traz as informações que preciso, em um determinado usuário resolveu não trazer, consequentemente o sistema não funcionou para este usuário.
A solução verificar o resultado se está vazio, no entando como o callback traz um jason é um pouco difícil. Pesquisando na Net descobri [...]]]></description>
			<content:encoded><![CDATA[<p>Tive um problema recentemente, a API do twitter que na busca me traz as informações que preciso, em um determinado usuário resolveu não trazer, consequentemente o sistema não funcionou para este usuário.</p>
<p>A solução verificar o resultado se está vazio, no entando como o callback traz um jason é um pouco difícil. Pesquisando na Net descobri a função abaixo. Ela verifica se o objeto está vazio, se sim retorna true se não false. Bem útil.</p>
<pre class="brush: jscript;">
function isEmpty(obj) {
    for(var prop in obj) {
        if(obj.hasOwnProperty(prop))
            return false;
    }

    return true;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/verificar-se-um-objeto-json-esta-vazio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Fonts API</title>
		<link>http://www.leandrogarcia.com/blog/google-fonts-api/</link>
		<comments>http://www.leandrogarcia.com/blog/google-fonts-api/#comments</comments>
		<pubDate>Fri, 28 May 2010 14:59:52 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[google font API]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=295</guid>
		<description><![CDATA[Recentemente o Google lançou uma nova API chamada Google Fonts, junto lançou um diretorio de fontes de alta qualidade que podem ser usadas em qualquer aplicação WEB independente do navegador usado.
É bem simples de se usar, mas ainda não tem muita variedade de fonts disponíveis.
Google font directory
É o repositório de fontes liberadas para o uso [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente o Google lançou uma nova API chamada Google Fonts, junto lançou um diretorio de fontes de alta qualidade que podem ser usadas em qualquer aplicação WEB independente do navegador usado.</p>
<p>É bem simples de se usar, mas ainda não tem muita variedade de fonts disponíveis.</p>
<p><strong>Google font directory</strong></p>
<p>É o repositório de fontes liberadas para o uso através da API, pode ser acessada no endereço <a href="http://code.google.com/webfonts" target="_blank">http://code.google.com/webfonts</a></p>
<p><strong>Como usar</strong></p>
<p>É muito simples usar essa API.</p>
<p>No google font directory, você clica em cima da fonte que vc quer usar e depois em<strong> GET the Code</strong>. Copie o código de referencia do CSS e cola na sua página. Depois é só usar.</p>
<p><strong>Exemplo</strong><br />
Referência</p>
<pre class="brush: css;">
link href='http://fonts.googleapis.com/css?family=Cantarell' rel='stylesheet' type='text/css'
</pre>
<p>CSS</p>
<pre class="brush: css;">
h1.Cantarell { font-family: 'Cantarell', arial, serif; }
</pre>
<p><!--<br />
h1.Cantarell { font-family: 'Cantarell', arial, serif; }<br />
--></p>
<p><strong>HTML </strong></p>
<pre class="brush: xml;">
&amp;lt;h1 class=&quot;Cantarell&quot;&amp;gt;Cantarell&amp;lt;/h1&amp;gt;
</pre>
<h1 class="Cantarell">Cantarell</h1>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/google-fonts-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mascara de campo em JS com jQuery.</title>
		<link>http://www.leandrogarcia.com/blog/mascara-de-campo-em-js-com-jquery/</link>
		<comments>http://www.leandrogarcia.com/blog/mascara-de-campo-em-js-com-jquery/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:49:54 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[campo]]></category>
		<category><![CDATA[mascara]]></category>
		<category><![CDATA[mascara de campo]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=228</guid>
		<description><![CDATA[É muito comum em aplicações sejam web ou não que alguns campos como telefone, por exemplo, tenham que ter um formato padrão. [(99) 9999-9999]. O difícil é conseguir com que o usuário que acessa essa aplicação digite da maneira correa e não [(999)  99999999], por exemplo.
Recentemente ao desenvolvermos um widget, aqui no iG, no deparamos [...]]]></description>
			<content:encoded><![CDATA[<p>É muito comum em aplicações sejam web ou não que alguns campos como telefone, por exemplo, tenham que ter um formato padrão. [(99) 9999-9999]. O difícil é conseguir com que o usuário que acessa essa aplicação digite da maneira correa e não [(999)  99999999], por exemplo.</p>
<p>Recentemente ao desenvolvermos um widget, aqui no iG, no deparamos com a mesma situação, no caso era valor. Em uma busca na net encontramos um plugin para jQuery que faz isso de maneira bem fácil.</p>
<p>Na página do <a href="http://digitalbush.com/projects/masked-input-plugin/" target="_blank">plugin </a>é possível baixar o arquivo que deve ser incluído no código logo abaixo do arquivo de inclusão do jquery.</p>
<p>Algo mais ou menos assim:</p>
<pre><script src="jquery.js" type="text/javascript"><!--mce:0--></script>&lt;script src="jquery.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;script src="jquery.maskedinput.js" type="text/javascript"&gt;&lt;/script&gt;

<script src="jquery.maskedinput.js" type="text/javascript"><!--mce:1--></script></pre>
<p>Depois vem a mágica.</p>
<pre class="brush: jscript;">
$(function($){
    $(&quot;#date&quot;).mask(&quot;99/99/9999&quot;);
});
</pre>
<p>Permite apenas números e o formato será 99/99/9999.  Simple viu?</p>
<p>Aí você pode uisar com data, hora, valor, etc&#8230;</p>
<p>O &#8220;9&#8243; representa número, se usar &#8220;a&#8221; representará letra, se usar &#8220;*&#8221; representara caracter.</p>
<p>Simples, fácil e objetivo.</p>
<p>Para usar valore, no entanto, pode não ser o ideal uma vez que se digita da esquerda pra direita o que obriga a digitar todos os valores.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/mascara-de-campo-em-js-com-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Charts</title>
		<link>http://www.leandrogarcia.com/blog/google-charts/</link>
		<comments>http://www.leandrogarcia.com/blog/google-charts/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:31:46 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[google charts]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=200</guid>
		<description><![CDATA[Eu ja me peguei algumas necessitando incluir gráficos em algumas aplicações que desenvolvi. Cheguei até a desenvolver uma função que gerava gráficos em barra, mas não era muito funcional e, além de de só poder utilizar gráficos em barra não era muito bacana.
Eis que descobri uma ferrmente bem bacana chamada Google Charts.
Mas qual a vantagem?
Basta [...]]]></description>
			<content:encoded><![CDATA[<p>Eu ja me peguei algumas necessitando incluir gráficos em algumas aplicações que desenvolvi. Cheguei até a desenvolver uma função que gerava gráficos em barra, mas não era muito funcional e, além de de só poder utilizar gráficos em barra não era muito bacana.</p>
<p>Eis que descobri uma ferrmente bem bacana chamada <a href="http://code.google.com/intl/pt-BR/apis/charttools/" target="_blank">Google Charts</a>.</p>
<p>Mas qual a vantagem?</p>
<p>Basta que você insira uma tag img em seu código e no src dela você coloque um determinado endereço com alguns parâmetros.</p>
<p>Por exemplo.<br />
<img src="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=250x100&amp;chl=Hello|World" alt="" /></p>
<p>Olha a url.</p>
<pre>http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=250x100&amp;chl=Hello|World
</pre>
<p>Viu como é simples. No site tem a documentação de como se elaborar outros tipos de gráficos.</p>
<p>Outros exemplos.<br />
Acelera<br />
<img src="http://chart.apis.google.com/chart?chs=200x125&amp;cht=gom&amp;chd=t:70&amp;chco=FF0000,FF8040,FFFF00,00FF00,00FFFF,0000FF,800080&amp;chxt=x,y&amp;chxl=0:|Groovy|1:|devagar|rapido|fiapo" alt="" /></p>
<p>Linha<br />
<img src="http://chart.apis.google.com/chart?cht=lc&amp;chs=200x125&amp;chd=t:40,60,60,45,47,75,70,72" alt="" /></p>
<p>Pizza<br />
<img src="http://chart.apis.google.com/chart?cht=p&amp;chd=s:Uf9a&amp;chs=300x120&amp;chl=January|February|March|April&amp;chdl=30°|40°|50°|60°" alt="" /></p>
<p>Mapa<br />
<img src="http://chart.apis.google.com/chart?cht=t&amp;chs=440x220&amp;chd=t:0,100,50,32,60,40,43,12,14,54,98,17,70,76,18,29&amp;chco=FFFFFF,FF0000,FFFF00,00FF00&amp;chld=DZEGMGAOBWNGCFKECGCVSNDJTZGHMZZM&amp;chtm=africa&amp;chf=bg,s,EAF7FE" alt="" /></p>
<p>Matematica<br />
<img src="http://chart.apis.google.com/chart?cht=tx&amp;chl=x%20=%20%5Cfrac%7B-b%20%5Cpm%20%5Csqrt%20%7Bb%5E2-4ac%7D%7D%7B2a%7D°" alt="" /></p>
<p>Radar<br />
<img src="http://chart.apis.google.com/chart?cht=r&amp;chs=200x200&amp;chd=t:10,20,30,40,50&amp;chxt=x&amp;chxl=0:|1|2|3|4|5|6°" alt="" /></p>
<p>Entre Outros</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/google-charts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
