<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2portuguesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Pinceladas da Web - XHTML, CSS, JavaScript e WebStandards</title>
	
	<link>http://www.pinceladasdaweb.com.br/blog</link>
	<description>Blog pessoal do Desenvolvedor Web Pedro Rogério com foco em XHTML, CSS, Acessibilidade, Usabilidade, Arquitetura de Informação, SEO e WebStandards.</description>
	<lastBuildDate>Tue, 31 Jan 2012 10:30:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PinceladasDaWeb" /><feedburner:info uri="pinceladasdaweb" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><image><link>http://www.pinceladasdaweb.com.br/blog/</link><url>http://feeds.feedburner.com/~fc/PinceladasDaWeb?bg=F9FCFE&amp;fg=000000&amp;anim=1&amp;label=leitores</url><title>Pinceladas da Web</title></image><feedburner:emailServiceId>PinceladasDaWeb</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FPinceladasDaWeb" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FPinceladasDaWeb" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FPinceladasDaWeb" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/PinceladasDaWeb" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FPinceladasDaWeb" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FPinceladasDaWeb" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FPinceladasDaWeb" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:browserFriendly>Pensamentos e reflexões de um desenvolvedor web.</feedburner:browserFriendly><item>
		<title>Webservice – Consulta de CEP diretamente ao site dos correios</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/zxeHWzdNHV4/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2012/01/31/webservice-consulta-de-cep-diretamente-ao-site-dos-correios/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 10:30:32 +0000</pubDate>
		<dc:creator>Felipe Roberto</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webservice]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5333</guid>
		<description><![CDATA[Até pouco tempo, tinhamos um site onde podiamos fazer consultas via get, ou até baixar a base de dados utilizada de forma gratuita. Mas seu maior problema para todos que já utilizaram tal base era o fato desta ser muito antiga. Com isso surgia o problema de ruas e bairros com nomes errados ou até [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2012/01/31/webservice-consulta-de-cep-diretamente-ao-site-dos-correios/">Webservice &#8211; Consulta de CEP diretamente ao site dos correios</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/correios.png" alt="Correios" title="Correios" /></div>
<p>Até pouco tempo, tinhamos um site onde podiamos fazer consultas via get, ou até baixar a base de dados utilizada de forma gratuita. Mas seu maior problema para todos que já utilizaram tal base era o fato desta ser muito antiga. Com isso surgia o problema de ruas e bairros com nomes errados ou até mesmo não existentes. O tempo passou, a base ficou ainda mais velha e o site passou a cobrar pelos serviços. Mas não tem problema, os correios que antes tinham um sistema que não permitia se aproveitar dos dados (gerava as respostas em imagens), hoje nos disponibiliza uma versão mobile que facilmente nos permite tratar as respostas.</p>
<p>Para criarmos nosso próprio webservice em PHP vamos simular o comportamento realizado pelo site através de requisições cURL.</p>
<p><span id="more-5333"></span></p>
<p>Aqui incluimos biblioteca phpQuery (<a href="http://code.google.com/p/phpquery/" title="phpQuery" rel="external">http://code.google.com/p/phpquery/</a> que permite manipular conteúdo html atrvés de seleções tipo jquery/css):</p>
<pre class="brush: php">
include(&#039;phpQuery-onefile.php&#039;);
</pre>
<p>Após criamos uma função para fazermos requisições via cURL, para depois tratarmos com o phpQuery.</p>
<pre class="brush: php">
function simple_curl($url,$post=array(),$get=array()){
	$url = explode(&#039;?&#039;,$url,2);
	if(count($url)===2){
		$temp_get = array();
		parse_str($url[1],$temp_get);
		$get = array_merge($get,$temp_get);
	}

	$ch = curl_init($url[0].&quot;?&quot;.http_build_query($get));
	curl_setopt ($ch, CURLOPT_POST, 1);
	curl_setopt ($ch, CURLOPT_POSTFIELDS, http_build_query($post));
	curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	return curl_exec ($ch);
}
</pre>
<p>Depois de ambiente preparado, mãos as teclas. Aqui esta o cep a ser consultado:</p>
<pre class="brush: php">
$cep = $_GET[&#039;cep&#039;];
</pre>
<p>Fazemos uma chamada POST direta aos correios <a href="http://m.correios.com.br/movel/buscaCepConfirma.do" title="Consulta de CEP nos correios" rel="external">http://m.correios.com.br/movel/buscaCepConfirma.do</a>. Para entender, acesse a url pelo navegador e faça uma consulta, nosso webservice fará o mesmo, mas atráves do servidor.</p>
<p>Aqui é onde capturamos o HTML através da chamada cURL, enviando os parametros necessários.</p>
<pre class="brush: php">
$html = simple_curl(&#039;http://m.correios.com.br/movel/buscaCepConfirma.do&#039;,array(
	&#039;cepEntrada&#039;=&gt;$cep,
	&#039;tipoCep&#039;=&gt;&#039;&#039;,
	&#039;cepTemp&#039;=&gt;&#039;&#039;,
	&#039;metodo&#039;=&gt;&#039;buscarCep&#039;
));
</pre>
<p>Fazemos o phpQuery ler o HTML capturado:</p>
<pre class="brush: php">
phpQuery::newDocumentHTML($html, $charset = &#039;utf-8&#039;);
</pre>
<p>Aqui tratamos os dados com o phpQuery a função pq(), é equivalente ao $() do jQuery $(#id elemento.classe).html() em jQuery, e em PHP pq(#id elemento.classe)->html(). Então temos nosso logradouro, bairro, cidade/uf e cep:</p>
<pre class="brush: php">
$dados =
array(
	&#039;logradouro&#039;=&gt; trim(pq(&#039;.caixacampobranco .resposta:contains(&quot;Logradouro: &quot;) + .respostadestaque:eq(0)&#039;)-&gt;html()),
	&#039;bairro&#039;=&gt; trim(pq(&#039;.caixacampobranco .resposta:contains(&quot;Bairro: &quot;) + .respostadestaque:eq(0)&#039;)-&gt;html()),
	&#039;cidade/uf&#039;=&gt; trim(pq(&#039;.caixacampobranco .resposta:contains(&quot;Localidade / UF: &quot;) + .respostadestaque:eq(0)&#039;)-&gt;html()),
	&#039;cep&#039;=&gt; trim(pq(&#039;.caixacampobranco .resposta:contains(&quot;CEP: &quot;) + .respostadestaque:eq(0)&#039;)-&gt;html())
);
</pre>
<p>Como nem tudo é perfeito, temos que tratar as informações de cidade/uf que vem &#8216;grudadas&#8217;:</p>
<pre class="brush: php">
$dados[&#039;cidade/uf&#039;] = explode(&#039;/&#039;,$dados[&#039;cidade/uf&#039;]);
$dados[&#039;cidade&#039;] = trim($dados[&#039;cidade/uf&#039;][0]);
$dados[&#039;uf&#039;] = trim($dados[&#039;cidade/uf&#039;][1]);
unset($dados[&#039;cidade/uf&#039;]);
</pre>
<p>Pronto, basta agora imprimir no formato json e começar a fazer as requisições via ajax:</p>
<pre class="brush: php">
die(json_encode($dados));
</pre>
<p>Ao invés do phpQuery, podiamos ter usado o YQL, porém teriamos dobrado o numero de requições, pois chamariamos o servidor do yahoo que por sua vez chamaria o servidor dos correios</p>
<p>Façaa <a href="http://www.pinceladasdaweb.com.br/blog/uploads/webservice-cep.rar" title="Download dos arquivos de exemplo" rel="alternate enclosure">aqui o download</a> dos arquivos de exemplo.</p>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2012/01/31/webservice-consulta-de-cep-diretamente-ao-site-dos-correios/">Webservice &#8211; Consulta de CEP diretamente ao site dos correios</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/10/07/ler-feed-de-outros-sites-com-simplepie/" title="Ler feed de outros sites com SimplePie">Ler feed de outros sites com SimplePie</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/23/php-random-html/" title="PHP Random HTML">PHP Random HTML</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/24/endentacao-codigo-tab-espacos/" title="Endentação do código &#8211; TAB vs Espaços">Endentação do código &#8211; TAB vs Espaços</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/24/comecando-php-salvando/" title="Começando com PHP &#8211; Salvando o código">Começando com PHP &#8211; Salvando o código</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/07/20/dicas-profissionais-para-os-iniciantes-em-web/" title="Dicas profissionais para os iniciantes em web">Dicas profissionais para os iniciantes em web</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/YjQkxXV8G0IXthKedLilZ4XrdXQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/YjQkxXV8G0IXthKedLilZ4XrdXQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YjQkxXV8G0IXthKedLilZ4XrdXQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/YjQkxXV8G0IXthKedLilZ4XrdXQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zxeHWzdNHV4:ndyRfCEZPxk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=zxeHWzdNHV4:ndyRfCEZPxk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zxeHWzdNHV4:ndyRfCEZPxk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zxeHWzdNHV4:ndyRfCEZPxk:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zxeHWzdNHV4:ndyRfCEZPxk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zxeHWzdNHV4:ndyRfCEZPxk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=zxeHWzdNHV4:ndyRfCEZPxk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zxeHWzdNHV4:ndyRfCEZPxk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=zxeHWzdNHV4:ndyRfCEZPxk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zxeHWzdNHV4:ndyRfCEZPxk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=zxeHWzdNHV4:ndyRfCEZPxk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/zxeHWzdNHV4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2012/01/31/webservice-consulta-de-cep-diretamente-ao-site-dos-correios/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2012/01/31/webservice-consulta-de-cep-diretamente-ao-site-dos-correios/</feedburner:origLink></item>
		<item>
		<title>ceplivre – API de CEPs para formulários</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/bVZuj48kYZQ/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/12/19/ceplivre-api-de-ceps-para-formularios/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 09:57:46 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5311</guid>
		<description><![CDATA[Você provavelmente já deve ter passado por um daqueles formulários onde ao colocar o CEP da rua onde você mora, ele automaticamente preenche os outros campos com o seu endereço. Pois bem, por trás disso existe um simples código que busca em um banco de dados seu endereço através do seu CEP. Até aí tudo [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/12/19/ceplivre-api-de-ceps-para-formularios/">ceplivre &#8211; API de CEPs para formulários</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/cep-livre.jpg" alt="Ceplivre" title="Ceplivre" /></div>
<p>Você provavelmente já deve ter passado por um daqueles formulários onde ao colocar o CEP da rua onde você mora, ele automaticamente preenche os outros campos com o seu endereço. Pois bem, por trás disso existe um simples código que busca em um banco de dados seu endereço através do seu CEP.</p>
<p><span id="more-5311"></span></p>
<p>Até aí tudo bem, mas e para desenvolver uma engenhoca dessa? Manter o seu banco de dados com os CEPs de todo o brasil atualizados não é tarefa fácil, por isso indico a vocês um site que acabei descobrindo esses dias, o <a href="http://ceplivre.com.br/" title="ceplivre" rel="external">ceplivre</a>, onde através do seu sistema provem informações básicas de endereços, códigos do IBGE, códigos DDD (Discagem Direta à Distância), altitude, área e coordenadas (latitude e longitude) de todas as cidades brasileiras.</p>
<p>Para você ter idéia, hoje o <a href="http://ceplivre.com.br/" title="ceplivre" rel="external">ceplivre</a> conta com uma base de mais de 630.000 CEPs cadastrados que são atualizados diariamente. Manter uma base dessas atualizada não é tarefa fácil, por isso eles dispõem de diversos planos, desde o plano Free, onde você pode efetuar até 15 consultas por dia, até o Plano Premium, com pesquisas ilimitadas e acesso a todas as features do sistema.</p>
<p>O webservice do <a href="http://ceplivre.com.br/" title="ceplivre" rel="external">ceplivre</a> é compatível com todas as principais linguagens de programação web, entregando dados em formatos CSV, XML e JSON. Para utilizar o sistema é simples, basta desenvolver uma rotina que faça acessos HTTP ao servidor, onde as URLs de pesquisa seguem a seguinte estrutura:</p>
<pre class="brush: html">

http://ceplivre.com.br/consultar/$tipo/$key/$busca/$formato
</pre>
<ul>
<li><strong>$tipo</strong> é o tipo de busca, por CEP (cep) ou por endereço (logradouro).</li>
<li><strong>$key</strong> é a chave de autenticação enviada por e-mail na confirmação da assinatura.</li>
<li><strong>$busca</strong> é o termo de busca. Se for um CEP, o código (01001-000). Se for um endereço, parte do nome (Paulista).</li>
<li><strong>$formato</strong> é o formato do resultado da busca que pode ser XML (xml), CSV (csv) ou JSON (json).</li>
</ul>
<p>Portanto, para efetuar uma busca em formato JSON, basta utilizar a seguinte URL:</p>
<pre class="brush: html">

http://ceplivre.com.br/consultar/cep/sua_key_aqui/01001-000/json
</pre>
<p>Estando tudo Ok, seria retornado o seguinte JSON:</p>
<pre class="brush: js">
{

    &quot;cep&quot;: [
        {
            &quot;tp_logradouro&quot;: &quot;Praça&quot;,
            &quot;tp_logradouro_id&quot;: &quot;8&quot;,
            &quot;logradouro&quot;: &quot;da Sé&quot;,
            &quot;bairro&quot;: &quot;Sé&quot;,
            &quot;cidade&quot;: &quot;São Paulo&quot;,
            &quot;uf_sigla&quot;: &quot;SP&quot;,
            &quot;ufnome&quot;: &quot;São Paulo&quot;,
            &quot;id_estado_ibge&quot;: &quot;35&quot;,
            &quot;cep&quot;: &quot;01001-000&quot;,
            &quot;muncoddv&quot;: &quot;3550308&quot;,
            &quot;ddd&quot;: &quot;11&quot;,
            &quot;altitude&quot;: &quot;760&quot;,
            &quot;latitude&quot;: &quot;-23.548&quot;,
            &quot;longitude&quot;: &quot;-46.636&quot;,
            &quot;area&quot;: &quot;1522.986&quot;,
            &quot;capital&quot;: &quot;S&quot;
        }
    ]

}
</pre>
<p>Agora por exemplo eu poderia manipular esses dados com JavaScript para dar mais interatividade ao meu formulário quando o usuário preencher o campo CEP.</p>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/12/19/ceplivre-api-de-ceps-para-formularios/">ceplivre &#8211; API de CEPs para formulários</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/14/instagram-api/" title="Instagr.am API">Instagr.am API</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/10/10/ler-feeds-com-o-google-jsapi/" title="Ler Feeds com o Google JSAPI">Ler Feeds com o Google JSAPI</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/07/23/galeria-de-fotos-com-a-api-do-flickr-e-jquery/" title="Galeria de fotos com a API do Flickr e jQuery">Galeria de fotos com a API do Flickr e jQuery</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/JBImck-OVaJ0lOrOfmSKlKUox58/0/da"><img src="http://feedads.g.doubleclick.net/~a/JBImck-OVaJ0lOrOfmSKlKUox58/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JBImck-OVaJ0lOrOfmSKlKUox58/1/da"><img src="http://feedads.g.doubleclick.net/~a/JBImck-OVaJ0lOrOfmSKlKUox58/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=bVZuj48kYZQ:tSlD-EasSck:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=bVZuj48kYZQ:tSlD-EasSck:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=bVZuj48kYZQ:tSlD-EasSck:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=bVZuj48kYZQ:tSlD-EasSck:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=bVZuj48kYZQ:tSlD-EasSck:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=bVZuj48kYZQ:tSlD-EasSck:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=bVZuj48kYZQ:tSlD-EasSck:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=bVZuj48kYZQ:tSlD-EasSck:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=bVZuj48kYZQ:tSlD-EasSck:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=bVZuj48kYZQ:tSlD-EasSck:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=bVZuj48kYZQ:tSlD-EasSck:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/bVZuj48kYZQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/12/19/ceplivre-api-de-ceps-para-formularios/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/12/19/ceplivre-api-de-ceps-para-formularios/</feedburner:origLink></item>
		<item>
		<title>Sorteio – Livro Smashing CSS</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/kB0z_LFXNUk/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/12/12/sorteio-livro-smashing-css/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 10:15:31 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5298</guid>
		<description><![CDATA[Já que o Natal está próximo, eu em conjunto com a Bookman Editora, iremos sortear um exemplar do livro Smashing CSS, sim, aquele famoso livro escrito por Eric Meyer, com a revisão técnica de Diego Eis. Veja abaixo um breve resumo sobre o livro: mashing CSS vai muito além do básico, mostrando desde a seleção [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/12/12/sorteio-livro-smashing-css/">Sorteio &#8211; Livro Smashing CSS</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/smashing-css.jpg" alt="Smashing CSS" /></div>
<p>Já que o Natal está próximo, eu em conjunto com a <a href="http://www.grupoa.com.br/site/Default.aspx" title="Bookman Editora" rel="external">Bookman Editora</a>, iremos sortear um exemplar do livro <a href="http://www.grupoa.com.br/site/exatas-sociais-e-aplicadas/2/99/104/4926/4927/0/smashing-css.aspx" title="Smashing CSS" rel="external">Smashing CSS</a>, sim, aquele famoso livro escrito por <a href="http://meyerweb.com/" title="Eric Meyer" rel="external">Eric Meyer</a>, com a revisão técnica de <a href="http://about.me/diegoeis/" title="Sobre Diego Eis" rel="external">Diego Eis</a>.</p>
<p><span id="more-5298"></span></p>
<p>Veja abaixo um breve resumo sobre o livro:</p>
<p>mashing CSS vai muito além do básico, mostrando desde a seleção das ferramentas corretas até os efeitos com CSS, as técnicas CSS3 com jQuery e o futuro com o uso de HTML5 e CSS3. Poucas pessoas na indústria podem mostrar as vantagens e desvantagens da CSS como Eric Meyer, e neste livro o autor fornece técnicas perfeitas, totalmente úteis e universalmente aplicáveis no mundo real.</p>
<p>Fiel à missão do Smashing Magazine (smashingmagazine.com), um dos sites de Web design mais populares do mundo, Smashing CSS é o guia prático para a construção de layouts modernos na Web.</p>
<p>O que você precisa fazer para participar? Basta deixar um comentário nesse post utilizando um e-mail válido, para caso você seja o vencedor eu possa entrar em contato. O formulário de comentários ficará aberto por uma semana a contar da data de publicação desse post. O sorteio será efetuado utilizando o <a href="http://random.org" title="Random.org" rel="external">Random.org</a>.</p>
<p>Mas não fique triste, se você não for o feliz ganhador, você ainda pode comprar o livro com 20% de desconto utilizando o seguinte código: <strong>pinceladasdaweb</strong>. Mas atenção, a validade desse código é somente um mês. Boa sorte a todos os participantes.</p>
<p>O ganhador foi o <a href="http://www.pinceladasdaweb.com.br/blog/2011/12/12/sorteio-livro-smashing-css/#comment-264285" title="Marcelo Oliveira" rel="alternate">Marcelo Oliveira</a>.</p>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/12/12/sorteio-livro-smashing-css/">Sorteio &#8211; Livro Smashing CSS</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2010/08/19/css-cookbook/" title="CSS Cookbook">CSS Cookbook</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2010/02/02/css3-gradients-e-html5-databases/" title="CSS3 Gradients &#038; HTML5 Databases">CSS3 Gradients &#038; HTML5 Databases</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2008/11/18/seletores-css-com-jquery/" title="Seletores CSS com jQuery">Seletores CSS com jQuery</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2008/11/05/peppy-seletor-javascript-css3-mais-rapido-da-web/" title="Peppy &#8211; Seletor JavaScript CSS3 mais rápido da Web">Peppy &#8211; Seletor JavaScript CSS3 mais rápido da Web</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2008/09/09/css3-seletor-not/" title="CSS3 &#8211; Seletor :not()">CSS3 &#8211; Seletor :not()</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/8JgtN9CtXu-GAjup8KFLJcBPRGE/0/da"><img src="http://feedads.g.doubleclick.net/~a/8JgtN9CtXu-GAjup8KFLJcBPRGE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8JgtN9CtXu-GAjup8KFLJcBPRGE/1/da"><img src="http://feedads.g.doubleclick.net/~a/8JgtN9CtXu-GAjup8KFLJcBPRGE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=kB0z_LFXNUk:CsSojvEKdWo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=kB0z_LFXNUk:CsSojvEKdWo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=kB0z_LFXNUk:CsSojvEKdWo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=kB0z_LFXNUk:CsSojvEKdWo:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=kB0z_LFXNUk:CsSojvEKdWo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=kB0z_LFXNUk:CsSojvEKdWo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=kB0z_LFXNUk:CsSojvEKdWo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=kB0z_LFXNUk:CsSojvEKdWo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=kB0z_LFXNUk:CsSojvEKdWo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=kB0z_LFXNUk:CsSojvEKdWo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=kB0z_LFXNUk:CsSojvEKdWo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/kB0z_LFXNUk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/12/12/sorteio-livro-smashing-css/feed/</wfw:commentRss>
		<slash:comments>316</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/12/12/sorteio-livro-smashing-css/</feedburner:origLink></item>
		<item>
		<title>Ajax Image Gallery</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/rhZqssqp9ak/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/11/28/ajax-image-gallery/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 09:53:39 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5283</guid>
		<description><![CDATA[Criar galerias de imagens provavelmente é o que os desenvolvedores mais fazem no dia-a-dia, e pra facilitar isso, vou deixar aqui um exemplo de um código paraa criar uma galeria de imagens com a utilização de Ajax. O HTML é extremamente simples, crio um elemento para englobar a imagem maior, e os thumbnails são links [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/11/28/ajax-image-gallery/">Ajax Image Gallery</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/ajax-image-gallery/ajax-image-gallery.jpg" alt="Ajax Image Gallery" title="Ajax Image Gallery" /></div>
<p>Criar galerias de imagens provavelmente é o que os desenvolvedores mais fazem no dia-a-dia, e pra facilitar isso, vou deixar aqui um exemplo de um código paraa criar uma galeria de imagens com a utilização de Ajax.</p>
<p><span id="more-5283"></span></p>
<p>O HTML é extremamente simples, crio um elemento para englobar a imagem maior, e os thumbnails são links para as imagens maiores:</p>
<pre class="brush: html">
&lt;div id=&quot;container&quot;&gt;
    &lt;div id=&quot;placeholder&quot;&gt;
    	&lt;img id=&quot;current&quot; src=&quot;imgs/img1.jpg&quot; alt=&quot;Galeria de Imagens com Ajax&quot; title=&quot;Galeria de Imagens com Ajax&quot; /&gt;
    &lt;/div&gt;
    &lt;ul&gt;
    	&lt;li&gt;&lt;a class=&quot;active&quot; href=&quot;imgs/img1.jpg&quot; title=&quot;Galeria de Imagens com Ajax&quot; rel=&quot;alternate&quot;&gt;&lt;img src=&quot;imgs/thumb-img1.jpg&quot; alt=&quot;Galeria de Imagens com Ajax&quot; title=&quot;Galeria de Imagens com Ajax&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;imgs/img2.jpg&quot; title=&quot;Galeria de Imagens com Ajax&quot; rel=&quot;alternate&quot;&gt;&lt;img src=&quot;imgs/thumb-img2.jpg&quot; alt=&quot;Galeria de Imagens com Ajax&quot; title=&quot;Galeria de Imagens com Ajax&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;imgs/img3.jpg&quot; title=&quot;Galeria de Imagens com Ajax&quot; rel=&quot;alternate&quot;&gt;&lt;img src=&quot;imgs/thumb-img3.jpg&quot; alt=&quot;Galeria de Imagens com Ajax&quot; title=&quot;Galeria de Imagens com Ajax&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
        ...
    &lt;/ul&gt;
&lt;/div&gt;
</pre>
<p>E depois o resto fica por conta do JavaScript:</p>
<pre class="brush: js">
        //Flag criada para evitar que 2 imagens sejam abertas ao mesmo tempo
        var working = false;

	$(&#039;li a&#039;).click(function(e){
		e.preventDefault();
		if($(this).hasClass(&#039;active&#039;)) return;

		if(working){
	    	    return false;
	        }

		working = true;

		var imgUrl = $(this).attr(&#039;href&#039;),
		img = new Image();

		$(&#039;li a&#039;).removeClass(&#039;active&#039;);
		$(this).addClass(&#039;active&#039;);

		$(&quot;#current&quot;).remove();
		$(&#039;#placeholder&#039;).addClass(&#039;loading&#039;);

		$(img).load(function(){
			$(this).css({display: &#039;none&#039;});
			$(&#039;#placeholder&#039;).removeClass(&#039;loading&#039;).append(img);
			$(img).fadeIn();
			working = false;
		}).attr(&#039;src&#039;,imgUrl).attr(&#039;id&#039;,&#039;current&#039;);
	});
</pre>
<ul>
<li><a href="http://www.pinceladasdaweb.com.br/blog/uploads/ajax-image-gallery/" title="Ajax Image Gallery" rel="alternate">Ver exemplo</a></li>
<li><a href="http://www.pinceladasdaweb.com.br/blog/uploads/ajax-image-gallery/ajax-image-gallery.rar" title="Ajax Image Gallery" rel="alternate enclosure">Download</a></li>
</ul>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/11/28/ajax-image-gallery/">Ajax Image Gallery</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/22/carregar-botao-like-do-facebook-via-ajax/" title="Carregar botão Like do Facebook via Ajax">Carregar botão Like do Facebook via Ajax</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2009/08/03/ajax-load-com-jquery/" title="Ajax load com jQuery">Ajax load com jQuery</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2009/05/11/ajax-com-jquery-metodo-load/" title="Ajax com jQuery &#8211; Método load()">Ajax com jQuery &#8211; Método load()</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/14/instagram-api/" title="Instagr.am API">Instagr.am API</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/11/grayscale-images-hover-com-html5-cross-browser/" title="Grayscale Images Hover com HTML5 Cross Browser">Grayscale Images Hover com HTML5 Cross Browser</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/fwMY5RJjlEy18hbQ72GudFnJgWQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/fwMY5RJjlEy18hbQ72GudFnJgWQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/fwMY5RJjlEy18hbQ72GudFnJgWQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/fwMY5RJjlEy18hbQ72GudFnJgWQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=rhZqssqp9ak:zK7GSHuW7sc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=rhZqssqp9ak:zK7GSHuW7sc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=rhZqssqp9ak:zK7GSHuW7sc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=rhZqssqp9ak:zK7GSHuW7sc:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=rhZqssqp9ak:zK7GSHuW7sc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=rhZqssqp9ak:zK7GSHuW7sc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=rhZqssqp9ak:zK7GSHuW7sc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=rhZqssqp9ak:zK7GSHuW7sc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=rhZqssqp9ak:zK7GSHuW7sc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=rhZqssqp9ak:zK7GSHuW7sc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=rhZqssqp9ak:zK7GSHuW7sc:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/rhZqssqp9ak" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/11/28/ajax-image-gallery/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/11/28/ajax-image-gallery/</feedburner:origLink></item>
		<item>
		<title>Instagr.am API</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/GsMlNzRVZIo/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/11/14/instagram-api/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 09:50:31 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5264</guid>
		<description><![CDATA[O Instagram é um serviço de compartilhamento de fotos pelo celular, por enquanto disponível somente para usuários de iPhone (Sorry, Android Users). Através do aplicativo no celular, seus usuários tiram fotos em estilo Polaroid e podem enviá-las para seus amigos, compondo uma espécie de rede social. Assim como o twitter, você pode seguir pessoas e [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/11/14/instagram-api/">Instagr.am API</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/instagram/instagram-icon.png" alt="Instagram" title="Instagram" /></div>
<p>O <a href="http://instagr.am/" title="Instagram" rel="external">Instagram</a> é um serviço de compartilhamento de fotos pelo celular, por enquanto disponível somente para usuários de iPhone (Sorry, Android Users). Através do aplicativo no celular, seus usuários tiram fotos em estilo Polaroid e podem enviá-las para seus amigos, compondo uma espécie de rede social. Assim como o twitter, você pode seguir pessoas e ser seguido, enviando as fotos que retratam o seu cotidiano junto com textos curtos, e vendo fotos de amigos. Dá ainda para dizer, por geolocalização, onde as fotos foram tiradas.</p>
<p><span id="more-5264"></span></p>
<p>O serviço tem crescido drasticamente nos últimos dias, e hoje tem aproximadamente 12 milhões de usuários. E como qualquer outra aplicação pop, eles possuem uma API, onde você pode por exemplo mostrar suas últimas fotos em seu site, ou algo do tipo.</p>
<p>Antes de tudo, para utilizar a <a href="http://instagr.am/developer/" title="Instagram Developer API" rel="external">API</a> do Instagr.am, você deve ir <a href="http://instagr.am/developer/" title="Instagram Developer API" rel="external">até o site e criar um aplicativo</a> para obter um access token e um client id, sem os mesmos você não consegue fazer nada.</p>
<p>Com tudo isso OK, vamos a um exemplo prático, mostrar as últimas 20 fotos de um usuário qualquer do Instagr.am. O código responsável por isso você pode ver abaixo:</p>
<pre class="brush: js">
var accessToken = &#039;seu_access_token&#039;;
var username= &quot;nome_do_usuario&quot;;
var limit = 20; //Limite máximo de fotos
var setSize = &quot;small&quot;;

var instagram = function() {
	return {
		init: function() {
			instagram.getUser();
		},
		getUser: function() {
			var getUserURL = &#039;https://api.instagram.com/v1/users/search?q=&#039;+ username +&#039;&amp;access_token=&#039;+ accessToken +&#039;&#039;;
			$.ajax({
				type: &quot;GET&quot;,
				dataType: &quot;jsonp&quot;,
				cache: false,
				url: getUserURL,
				success: function(data) {
					var getUserID = data.data[0].id;
					instagram.loadImages(getUserID);
				}
			});
		},
		loadImages: function(userID) {
			var getImagesURL = &#039;https://api.instagram.com/v1/users/&#039;+ userID +&#039;/media/recent/?access_token=&#039;+ accessToken +&#039;&#039;;
			$.ajax({
				type: &quot;GET&quot;,
				dataType: &quot;jsonp&quot;,
				cache: false,
				url: getImagesURL,
				success: function(data) {
					for(var i = 0; i &lt; limit; i+=1) {
						if(setSize == &quot;small&quot;) {
							var size = data.data[i].images.thumbnail.url;
						} else if(setSize == &quot;medium&quot;) {
							var size = data.data[i].images.low_resolution.url;
						} else {
							var size = data.data[i].images.standard_resolution.url;
						}
						$(&quot;#instagram&quot;).append(&quot;&lt;li&gt;&lt;a target=&#039;_blank&#039; href=&#039;&quot; + data.data[i].link +&quot;&#039;&gt;&lt;img src=&#039;&quot; + size +&quot;&#039;/&gt;&lt;/a&gt;&quot;);
					}
				}
			});
		}
	}
}();

$(document).ready(function() {
    instagram.init();
});
</pre>
<p>Vocês podem ver <a href="http://www.pinceladasdaweb.com.br/blog/uploads/instagram/user/" title="Instagr.am" rel="alternate">aqui um exemplo</a> funcionando do código acima.</p>
<p>Você também pode pegar as últimas fotos mais populares, o código responsável por isso está abaixo:</p>
<pre class="brush: js">
var accessToken = &#039;seu_access_token&#039;;
var limit = 32; //Limite máximo de fotos
var setSize = &quot;small&quot;;

var instagram = function() {
	return {
		init: function() {
			instagram.loadImages();
		},
		loadImages: function() {
			var getImagesURL = &#039;https://api.instagram.com/v1/media/popular?access_token=&#039;+ accessToken +&#039;&#039;;
			$.ajax({
				type: &quot;GET&quot;,
				dataType: &quot;jsonp&quot;,
				cache: false,
				url: getImagesURL,
				success: function(data) {
					for(var i = 0; i &lt; limit; i+=1) {
						if(setSize == &quot;small&quot;) {
							var size = data.data[i].images.thumbnail.url;
						} else if(setSize == &quot;medium&quot;) {
							var size = data.data[i].images.low_resolution.url;
						} else {
							var size = data.data[i].images.standard_resolution.url;
						}
						$(&quot;#instagram&quot;).append(&quot;&lt;li&gt;&lt;a target=&#039;_blank&#039; href=&#039;&quot; + data.data[i].link +&quot;&#039;&gt;&lt;img src=&#039;&quot; + size +&quot;&#039;/&gt;&lt;/a&gt;&quot;);
					}
				}
			});
		}
	}
}();

$(document).ready(function() {
    instagram.init();
});
</pre>
<p>Vocês podem ver <a href="http://www.pinceladasdaweb.com.br/blog/uploads/instagram/popular/" title="Instagr.am" rel="alternate">aqui um exemplo</a> funcionando do código acima.</p>
<p>Caso você queira buscar por alguma tag, utilize o código abaixo:</p>
<pre class="brush: js">
var accessToken = &#039;seu_access_token&#039;;
var limit = 20; //Limite máximo de fotos
var setSize = &quot;small&quot;;

var instagram = function() {
	return {
		init: function() {
			instagram.loadImages();
		},
		loadImages: function() {
			var getImagesURL = &#039;https://api.instagram.com/v1/tags/html5/media/recent?client_id=be52cb013dda4c47a03cdd5689896c37&amp;access_token=&#039;+ accessToken +&#039;&#039;;
			$.ajax({
				type: &quot;GET&quot;,
				dataType: &quot;jsonp&quot;,
				cache: false,
				url: getImagesURL,
				success: function(data) {
					for(var i = 0; i &lt; limit ; i+=1) {
						if(setSize == &quot;small&quot;) {
							var size = data.data[i].images.thumbnail.url;
						} else if(setSize == &quot;medium&quot;) {
							var size = data.data[i].images.low_resolution.url;
						} else {
							var size = data.data[i].images.standard_resolution.url;
						}
						$(&quot;#instagram&quot;).append(&quot;&lt;li&gt;&lt;a target=&#039;_blank&#039; href=&#039;&quot; + data.data[i].link +&quot;&#039;&gt;&lt;img src=&#039;&quot; + size +&quot;&#039;/&gt;&lt;/a&gt;&quot;);
					}
				}
			});
		}
	}
}();

$(document).ready(function() {
    instagram.init();
});
</pre>
<p>Vocês podem ver <a href="http://www.pinceladasdaweb.com.br/blog/uploads/instagram/tags/" title="Instagr.am" rel="alternate">aqui um exemplo</a> funcionando do código acima.</p>
<p>Eu também posso buscar fotos por geolocalização, basta passar na requisição as coordenadas geográficas e ele busca todas as fotos em um raio máximo de 5 KM, como podem ver no código de exemplo abaixo:</p>
<pre class="brush: js">
var accessToken = &#039;seu_access_token&#039;;
var limit = 20; //Limite máximo de fotos
var setSize = &quot;small&quot;;

var instagram = function() {
	return {
		init: function() {
			instagram.loadImages();
		},
		loadImages: function() {
			var getImagesURL = &#039;https://api.instagram.com/v1/media/search?lat=52.370275&amp;lng=4.886055&amp;distance=5000?client_id=be52cb013dda4c47a03cdd5689896c37&amp;access_token=&#039;+ accessToken +&#039;&#039;;
			$.ajax({
				type: &quot;GET&quot;,
				dataType: &quot;jsonp&quot;,
				cache: false,
				url: getImagesURL,
				success: function(data) {
					for(var i = 0; i &lt; limit; i+=1) {
						if(setSize == &quot;small&quot;) {
							var size = data.data[i].images.thumbnail.url;
						} else if(setSize == &quot;medium&quot;) {
							var size = data.data[i].images.low_resolution.url;
						} else {
							var size = data.data[i].images.standard_resolution.url;
						}
						$(&quot;#instagram&quot;).append(&quot;&lt;li&gt;&lt;a target=&#039;_blank&#039; href=&#039;&quot; + data.data[i].link +&quot;&#039;&gt;&lt;img src=&#039;&quot; + size +&quot;&#039;/&gt;&lt;/a&gt;&quot;);
					}
				}
			});
		}
	}
}();

$(document).ready(function() {
    instagram.init();
});
</pre>
<p>Vocês podem ver <a href="http://www.pinceladasdaweb.com.br/blog/uploads/instagram/locations/" title="Instagr.am" rel="alternate">aqui um exemplo</a> funcionando do código acima.</p>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/11/14/instagram-api/">Instagr.am API</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/12/19/ceplivre-api-de-ceps-para-formularios/" title="ceplivre &#8211; API de CEPs para formulários">ceplivre &#8211; API de CEPs para formulários</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/07/23/galeria-de-fotos-com-a-api-do-flickr-e-jquery/" title="Galeria de fotos com a API do Flickr e jQuery">Galeria de fotos com a API do Flickr e jQuery</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/28/ajax-image-gallery/" title="Ajax Image Gallery">Ajax Image Gallery</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/11/grayscale-images-hover-com-html5-cross-browser/" title="Grayscale Images Hover com HTML5 Cross Browser">Grayscale Images Hover com HTML5 Cross Browser</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/10/10/ler-feeds-com-o-google-jsapi/" title="Ler Feeds com o Google JSAPI">Ler Feeds com o Google JSAPI</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/V60UZpaTC8pV7AbOP_Cbt_nQgQo/0/da"><img src="http://feedads.g.doubleclick.net/~a/V60UZpaTC8pV7AbOP_Cbt_nQgQo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/V60UZpaTC8pV7AbOP_Cbt_nQgQo/1/da"><img src="http://feedads.g.doubleclick.net/~a/V60UZpaTC8pV7AbOP_Cbt_nQgQo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=GsMlNzRVZIo:1uqN8wVaqFU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=GsMlNzRVZIo:1uqN8wVaqFU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=GsMlNzRVZIo:1uqN8wVaqFU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=GsMlNzRVZIo:1uqN8wVaqFU:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=GsMlNzRVZIo:1uqN8wVaqFU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=GsMlNzRVZIo:1uqN8wVaqFU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=GsMlNzRVZIo:1uqN8wVaqFU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=GsMlNzRVZIo:1uqN8wVaqFU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=GsMlNzRVZIo:1uqN8wVaqFU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=GsMlNzRVZIo:1uqN8wVaqFU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=GsMlNzRVZIo:1uqN8wVaqFU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/GsMlNzRVZIo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/11/14/instagram-api/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/11/14/instagram-api/</feedburner:origLink></item>
		<item>
		<title>Grayscale Images Hover com HTML5 Cross Browser</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/QpfTDloFF5g/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/11/11/grayscale-images-hover-com-html5-cross-browser/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 20:26:02 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5256</guid>
		<description><![CDATA[A um tempo atrás o blog Web Designer Wall fez mais um de seus interessantes posts mostrando como é possível criar imagens em escala cinza com JavaScript, mas especificamente com a utilização de HTML5 (Canvas). Só que como todos sabem, o Internet Explorer não tem suporte a esse tipo de feature, mas você pode contornar [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/11/11/grayscale-images-hover-com-html5-cross-browser/">Grayscale Images Hover com HTML5 Cross Browser</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/grayscale-images/grayscale-images.jpg" alt="Grayscale Images Hover com HTML5 Cross Browser" title="Grayscale Images Hover com HTML5 Cross Browser" /></div>
<p>A um tempo atrás o blog Web Designer Wall fez mais um de seus interessantes posts mostrando como é possível <a href="http://webdesignerwall.com/tutorials/html5-grayscale-image-hover" title="HTML5 Grayscale Image Hover" rel="external">criar imagens em escala cinza com JavaScript</a>, mas especificamente com a utilização de HTML5 (Canvas). Só que como todos sabem, o Internet Explorer não tem suporte a esse tipo de feature, mas você pode contornar isso facilmente com um código prorietário da Microsoft.</p>
<p><span id="more-5256"></span></p>
<p>Basicamente, o código é o seguinte:</p>
<pre class="brush: js">
element.style.filter = &#039;progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)&#039;;
</pre>
<p>Com isso basta você fazer uma verificação e se o user agent no momento for o IE, use esse código, caso contrário, use HTML5.</p>
<ul>
<li><a href="http://www.pinceladasdaweb.com.br/blog/uploads/grayscale-images/" title="Grayscale Images Hover com HTML5 Cross Browser" rel="alternate">Exemplo</a></li>
<li><a href="http://www.pinceladasdaweb.com.br/blog/uploads/grayscale-images/grayscale-images.rar" title="Grayscale Images Hover com HTML5 Cross Browser" rel="alternate enclosure">Download</a></li>
</ul>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/11/11/grayscale-images-hover-com-html5-cross-browser/">Grayscale Images Hover com HTML5 Cross Browser</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/04/27/html5-canvas-o-basico/" title="HTML5 Canvas &#8211; O Básico">HTML5 Canvas &#8211; O Básico</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2010/09/01/svg-vs-canvas/" title="SVG vs Canvas">SVG vs Canvas</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2010/07/19/html5-canvas-o-futuro-dos-graficos-na-web/" title="HTML5 Canvas &#8211; O futuro dos gráficos na web">HTML5 Canvas &#8211; O futuro dos gráficos na web</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/28/ajax-image-gallery/" title="Ajax Image Gallery">Ajax Image Gallery</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/14/instagram-api/" title="Instagr.am API">Instagr.am API</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/ZK8NhKSrBQ2s3HPJEybBjBQEqpk/0/da"><img src="http://feedads.g.doubleclick.net/~a/ZK8NhKSrBQ2s3HPJEybBjBQEqpk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ZK8NhKSrBQ2s3HPJEybBjBQEqpk/1/da"><img src="http://feedads.g.doubleclick.net/~a/ZK8NhKSrBQ2s3HPJEybBjBQEqpk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=QpfTDloFF5g:xkNhhPVplm0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=QpfTDloFF5g:xkNhhPVplm0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=QpfTDloFF5g:xkNhhPVplm0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=QpfTDloFF5g:xkNhhPVplm0:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=QpfTDloFF5g:xkNhhPVplm0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=QpfTDloFF5g:xkNhhPVplm0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=QpfTDloFF5g:xkNhhPVplm0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=QpfTDloFF5g:xkNhhPVplm0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=QpfTDloFF5g:xkNhhPVplm0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=QpfTDloFF5g:xkNhhPVplm0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=QpfTDloFF5g:xkNhhPVplm0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/QpfTDloFF5g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/11/11/grayscale-images-hover-com-html5-cross-browser/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/11/11/grayscale-images-hover-com-html5-cross-browser/</feedburner:origLink></item>
		<item>
		<title>Como instalar o Windows 8 em uma máquina virtual</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/hqks1B3_MVA/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/10/27/como-instalar-o-windows-8-em-uma-maquina-virtual/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 16:24:40 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[Cotidiano]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5235</guid>
		<description><![CDATA[A idéia da Microsoft com a criação do Windows 8 é de criar um sistema operacional capaz de rodar em tablets, mercado praticamente dominado pela Apple, em telas sensíveis ao toque e em PCs. Recentemente eles disponibilizaram versões de teste do seu mais novo sistema operacional, e é isso que vou mostrar nesse post, a [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/10/27/como-instalar-o-windows-8-em-uma-maquina-virtual/">Como instalar o Windows 8 em uma máquina virtual</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/windows-8.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>A idéia da Microsoft com a criação do Windows 8 é de criar um sistema operacional capaz de rodar em tablets, mercado praticamente dominado pela Apple, em telas sensíveis ao toque e em PCs. Recentemente eles <a href="http://msdn.microsoft.com/en-us/windows/apps/br229516" title="Windows 8 Developer Preview downloads" rel="external">disponibilizaram versões de teste</a> do seu mais novo sistema operacional, e é isso que vou mostrar nesse post, a como instalar o Windows 8 em uma máquina virtual.</p>
<p><span id="more-5235"></span></p>
<p>Antes de tudo, tenha o <a href="https://www.virtualbox.org/" title="Virtual Box" rel="external">Virtual Box</a> instalado em seu PC, pois o tutorial foi desenvolvido com base nele. Após, vá até o site da Microsoft e <a href="http://msdn.microsoft.com/en-us/windows/apps/br229516" title="Windows 8 Download" rel="external">baixe a imagem do Windows 8</a>, nesse tutorial a utilizada é a seguinte: Windows 8 Developer Preview with developer tools English, 64-bit (x64).</p>
<p>Agora vamos aos passos de instalação, primeiro, abra o Virtual Box:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Após clique e Novo para criar uma nova máquina virtual, você verá a seguinte tela, basta então clicar em próximo:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm2.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Você irá para a tela onde deverá escolher o nome e tipo do sistema operacional, basta preencher como abaixo e clicar em próximo:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm3.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Nesse próximo passo, configure a memória para o quanto julgar necessário:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm4.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Basta deixar como na imagem abaixo:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm5.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Basta deixar como na imagem abaixo:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm6.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Aqui é onde você configura o quanto de seu HD será alocado para a máquina virtual e onde a mesma será salva, altere conforme necessário:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm7.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Agora basta clicar em criar:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm8.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Agora basta aguardar sua máquina virtual ser criada:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm9.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Basta clicar em criar novamente:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm10.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Com a máquina virtual criada, selecione a mesma e clique em configurações:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm11.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Depois vá até a aba Sistema > Processador e clique em Habilitar PAE/NX:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm12.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Próximo passo vá até a aba Armazenamento, aqui é onde você irá utilizar a ISO que baixou anteriormente, basta clicar no CD localizado ao lado de Drive de CD/DVD e selecionar a ISO do Windows 8:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm13.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Como podem ver agora, o drive de CD contém uma ISO, basta clicar em Ok:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm14.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Agora você voltará para a tela de gerenciamento das máquinas virtuais, basta clicar em iniciar e aguardar a instalação do Windows 8:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm15.jpg" alt="Windows 8" title="Windows 8"/></div>
<p>Basta agora seguir os passos de instalação que logo você terá o Windows 8 funcionando:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/windows8/win-vm16.jpg" alt="Windows 8" title="Windows 8"/></div>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/10/27/como-instalar-o-windows-8-em-uma-maquina-virtual/">Como instalar o Windows 8 em uma máquina virtual</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<h3  class="related_post_title">Random Posts</h3><ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2008/01/08/90-do-posicionamento-em-search-engines-pode-depender-de-4-fatores/" title="90% do posicionamento em search engines pode depender de 4 fatores">90% do posicionamento em search engines pode depender de 4 fatores</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2007/10/01/padding-nos-botoes-input/" title="Padding nos botões input">Padding nos botões input</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2008/02/08/links-inteligentes-a-documentos-pdf/" title="Links inteligentes a documentos PDF">Links inteligentes a documentos PDF</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2010/05/08/gerando-id-alfanumerico-unico/" title="Gerando ID Alfanumérico único">Gerando ID Alfanumérico único</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2008/09/05/css-hack-para-google-chrome-e-safari-31/" title="CSS Hack para Google Chrome e Safari 3.1">CSS Hack para Google Chrome e Safari 3.1</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/Ir1mkRP-jw4hZ5nZZMYM5HWpJAs/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ir1mkRP-jw4hZ5nZZMYM5HWpJAs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ir1mkRP-jw4hZ5nZZMYM5HWpJAs/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ir1mkRP-jw4hZ5nZZMYM5HWpJAs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=hqks1B3_MVA:mZSmSSZph14:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=hqks1B3_MVA:mZSmSSZph14:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=hqks1B3_MVA:mZSmSSZph14:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=hqks1B3_MVA:mZSmSSZph14:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=hqks1B3_MVA:mZSmSSZph14:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=hqks1B3_MVA:mZSmSSZph14:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=hqks1B3_MVA:mZSmSSZph14:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=hqks1B3_MVA:mZSmSSZph14:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=hqks1B3_MVA:mZSmSSZph14:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=hqks1B3_MVA:mZSmSSZph14:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=hqks1B3_MVA:mZSmSSZph14:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/hqks1B3_MVA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/10/27/como-instalar-o-windows-8-em-uma-maquina-virtual/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/10/27/como-instalar-o-windows-8-em-uma-maquina-virtual/</feedburner:origLink></item>
		<item>
		<title>Ler Feeds com o Google JSAPI</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/Wlf0-3CflhU/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/10/10/ler-feeds-com-o-google-jsapi/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 10:46:00 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5212</guid>
		<description><![CDATA[O Google JSAPI é uma ferramenta muito poderosa. Ao invés de carregar uma biblioteca separada para cada API do Google você pode simplesmente carregar a JSAPI e através do google.load chamar a biblioteca de que precisa. Nesse tutorial vou carregar a biblioteca de Feeds para ler um Feed RSS externo. O que você deve simplesmente [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/10/10/ler-feeds-com-o-google-jsapi/">Ler Feeds com o Google JSAPI</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/jsapi/jsapi.jpg" alt="Google JSAPI" title="Google JSAPI" /></div>
<p>O <a href="http://code.google.com/intl/en/apis/loader/" title="Google JSAPI" rel="external">Google JSAPI</a> é uma ferramenta muito poderosa. Ao invés de carregar uma biblioteca separada para cada API do Google você pode simplesmente carregar a JSAPI e através do google.load chamar a biblioteca de que precisa.</p>
<p><span id="more-5212"></span></p>
<p>Nesse tutorial vou carregar a biblioteca de Feeds para ler um Feed RSS externo. O que você deve simplesmente é incluir a biblioteca do JSAPI na sua página:</p>
<pre class="brush: js">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.google.com/jsapi&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
	//Carrego a Google Ajax API Feed  (versão 1)
	google.load(&quot;feeds&quot;, &quot;1&quot;);
       //Feed.init é a função de Callback
	google.setOnLoadCallback(Feed.init);
&lt;/script&gt;
</pre>
<p>Após isso, vamos criar a função responsável por fazer o parser do feed:</p>
<pre class="brush: js">
//O endereço do Feed que desejo ler
var rss = &quot;http://feeds2.feedburner.com/pinceladasdaweb&quot;;
//Número de itens a serem mostrados
var itens = 8;

var Feed = function() {
	return {
		init: function() {
			var blog = new google.feeds.Feed(rss);
			blog.setNumEntries(itens);
			blog.load(function(data) {
				if (!data.error) {
					Feed.parser(data.feed.entries);
				}else{
					$(&quot;#feed&quot;).empty().html(&quot;&lt;p&gt;Ocorreu um erro ao ler o Feed&lt;/p&gt;&quot;);
				}
			});
		},
		parser: function(entries) {
			var view = [];
			view.push(&#039;&lt;ul&gt;&#039;);
			for (var i = 0; i &lt; entries.length; i+=1) {
				view.push(&#039;&lt;li&gt;&lt;h2&gt;&lt;a target=&quot;_blank&quot; title=&quot;&#039;+entries[i].title+&#039;&quot; href=&quot;&#039;+entries[i].link+&#039;&quot;&gt;&#039;+entries[i].title+&#039;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&#039;+entries[i].contentSnippet+&#039;&lt;/p&gt;&#039;);
			}
			view.push(&#039;&lt;/ul&gt;&#039;);
			$(&quot;#feed&quot;).empty().append(view.join(&#039;&#039;));
		}
	}
}();
</pre>
<p>E no HTML simplesmente adiciono uma div com o id &#8216;feed&#8217;, com uma imagem de loading que a removo assim que o Feed for carregado:</p>
<pre class="brush: html">
&lt;div id=&quot;feed&quot;&gt;&lt;img src=&quot;img/ajax-loader.gif&quot; alt=&quot;Carregando&quot; title=&quot;Carregando&quot; /&gt;&lt;/div&gt;
</pre>
<p>Aqui vocês podem ver um <a href="http://www.pinceladasdaweb.com.br/blog/uploads/jsapi/" title="Ler Feeds com o Google JSAPI" rel="alternate">exemplo</a>.</p>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/10/10/ler-feeds-com-o-google-jsapi/">Ler Feeds com o Google JSAPI</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/12/19/ceplivre-api-de-ceps-para-formularios/" title="ceplivre &#8211; API de CEPs para formulários">ceplivre &#8211; API de CEPs para formulários</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/14/instagram-api/" title="Instagr.am API">Instagr.am API</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/10/08/aprenda-mais-sobre-o-console-do-firebug/" title="Aprenda mais sobre o console do Firebug">Aprenda mais sobre o console do Firebug</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/21/introducao-ao-yql-yahoo-query-language/" title="Introdução ao YQL &#8211; Yahoo Query Language">Introdução ao YQL &#8211; Yahoo Query Language</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/13/responsive-slideshows/" title="Responsive Slideshows">Responsive Slideshows</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/jSx0S5d7hx2yR8ilGMvMY6mm8Os/0/da"><img src="http://feedads.g.doubleclick.net/~a/jSx0S5d7hx2yR8ilGMvMY6mm8Os/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jSx0S5d7hx2yR8ilGMvMY6mm8Os/1/da"><img src="http://feedads.g.doubleclick.net/~a/jSx0S5d7hx2yR8ilGMvMY6mm8Os/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Wlf0-3CflhU:XtNKNZouG80:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=Wlf0-3CflhU:XtNKNZouG80:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Wlf0-3CflhU:XtNKNZouG80:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Wlf0-3CflhU:XtNKNZouG80:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Wlf0-3CflhU:XtNKNZouG80:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Wlf0-3CflhU:XtNKNZouG80:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=Wlf0-3CflhU:XtNKNZouG80:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Wlf0-3CflhU:XtNKNZouG80:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=Wlf0-3CflhU:XtNKNZouG80:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Wlf0-3CflhU:XtNKNZouG80:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=Wlf0-3CflhU:XtNKNZouG80:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/Wlf0-3CflhU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/10/10/ler-feeds-com-o-google-jsapi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/10/10/ler-feeds-com-o-google-jsapi/</feedburner:origLink></item>
		<item>
		<title>Aprenda mais sobre o console do Firebug</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/yvnl1dOmeiQ/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/10/08/aprenda-mais-sobre-o-console-do-firebug/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 14:08:15 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[console]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5206</guid>
		<description><![CDATA[A utilização do Firebug não é voltada somente a inspeção de CSS, existem várias outras coisas que você pode fazer com ele que podem facilitar e muito a vida do desenvolvedor web. Com base nisso, deixa aqui um link com 10 dicas para se tornar um melhor desenvolvedor com o Firebug. Já para o console [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/10/08/aprenda-mais-sobre-o-console-do-firebug/">Aprenda mais sobre o console do Firebug</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/firebug.jpg" alt="Firebug" title="Firebug" /></div>
<p>A utilização do Firebug não é voltada somente a inspeção de CSS, existem várias outras coisas que você pode fazer com ele que podem facilitar e muito a vida do desenvolvedor web. Com base nisso, deixa aqui um <a href="http://www.jquery4u.com/utilities/firebug-console-tips/">link</a> com 10 dicas para se tornar um melhor desenvolvedor com o Firebug.</p>
<p><span id="more-5206"></span></p>
<p>Já para o console do Chrome, deixo aqui um vídeo interessante criado por <a href="http://paulirish.com/" title="Paul Irish" rel="external">Paul Irish</a> com algumas dicas legais:</p>
<div class="aligncenter"><object width="610" height="458" type="application/x-shockwave-flash" data="http://www.youtube.com/v/4mf_yNLlgic&amp;hl=pt_BR&amp;fs=1&amp;"><param value="high" name="quality"></param><param name="allowScriptAccess" value="always"></param><param name="allowFullScreen" value="true"></param><param name="flashvars" value="fake=1"></param><param value="http://www.youtube.com/v/4mf_yNLlgic&amp;hl=pt_BR&amp;fs=1&amp;" name="movie"><img alt="Vídeo (Objeto multimídia)" src="http://www.pinceladasdaweb.com.br/blog/uploads/youtube/video.png"/></param></object></div>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/10/08/aprenda-mais-sobre-o-console-do-firebug/">Aprenda mais sobre o console do Firebug</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/10/10/ler-feeds-com-o-google-jsapi/" title="Ler Feeds com o Google JSAPI">Ler Feeds com o Google JSAPI</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/21/introducao-ao-yql-yahoo-query-language/" title="Introdução ao YQL &#8211; Yahoo Query Language">Introdução ao YQL &#8211; Yahoo Query Language</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/13/responsive-slideshows/" title="Responsive Slideshows">Responsive Slideshows</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/07/carregar-botao-do-google-plus-via-ajax/" title="Carregar botão do Google+ via Ajax">Carregar botão do Google+ via Ajax</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/24/endentacao-codigo-tab-espacos/" title="Endentação do código &#8211; TAB vs Espaços">Endentação do código &#8211; TAB vs Espaços</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/DisEqTJOWi-Jhxogw2ZWWcBzYqw/0/da"><img src="http://feedads.g.doubleclick.net/~a/DisEqTJOWi-Jhxogw2ZWWcBzYqw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/DisEqTJOWi-Jhxogw2ZWWcBzYqw/1/da"><img src="http://feedads.g.doubleclick.net/~a/DisEqTJOWi-Jhxogw2ZWWcBzYqw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=yvnl1dOmeiQ:3kyT4Ukr6QI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=yvnl1dOmeiQ:3kyT4Ukr6QI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=yvnl1dOmeiQ:3kyT4Ukr6QI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=yvnl1dOmeiQ:3kyT4Ukr6QI:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=yvnl1dOmeiQ:3kyT4Ukr6QI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=yvnl1dOmeiQ:3kyT4Ukr6QI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=yvnl1dOmeiQ:3kyT4Ukr6QI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=yvnl1dOmeiQ:3kyT4Ukr6QI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=yvnl1dOmeiQ:3kyT4Ukr6QI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=yvnl1dOmeiQ:3kyT4Ukr6QI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=yvnl1dOmeiQ:3kyT4Ukr6QI:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/yvnl1dOmeiQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/10/08/aprenda-mais-sobre-o-console-do-firebug/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/10/08/aprenda-mais-sobre-o-console-do-firebug/</feedburner:origLink></item>
		<item>
		<title>Ler feed de outros sites com SimplePie</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/weUQ6kQzIv4/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/10/07/ler-feed-de-outros-sites-com-simplepie/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 10:33:06 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5197</guid>
		<description><![CDATA[Para aqueles que não conhecem, o SimplePie é uma poderosa ferramenta para leitura de feeds RSS ou Atom escrita em PHP. Algumas pessoas podem estar se perguntando, mas não é possível ler um feed com JavaScript? Sim, é possível, como mostrei aqui com JavaScript + YQL, a desvantagem na utilização de JavaScript é que ele [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/10/07/ler-feed-de-outros-sites-com-simplepie/">Ler feed de outros sites com SimplePie</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/simplepie/simplepie.jpg" alt="SimplePie" title="SimplePie" /></div>
<p>Para aqueles que não conhecem, o <a href="http://simplepie.org/" title="SimplePie" rel="external">SimplePie</a> é uma poderosa ferramenta para leitura de feeds RSS ou Atom escrita em PHP. Algumas pessoas podem estar se perguntando, mas não é possível ler um feed com JavaScript? Sim, é possível, como mostrei aqui com <a href="http://www.pinceladasdaweb.com.br/blog/2011/09/21/introducao-ao-yql-yahoo-query-language/" title="Introdução ao YQL – Yahoo Query Language" rel="alternate">JavaScript + YQL</a>, a desvantagem na utilização de JavaScript é que ele não gera um cache, ou seja, a cada requisição na página, uma nova requisição é feita para a leitura do feed.</p>
<p><span id="more-5197"></span></p>
<p>Já com o SimplePie isso não acontece, ele cria um arquivo de cache e novas requisições são feitas somente se o conteúdo for atualizado. Para que vocês entendam melhor, vamos a um exemplo. Antes de tudo, vá até o site do <a href="http://simplepie.org/" title="SimplePie" rel="external">SimplePie</a> e faça o <a href="http://simplepie.org/" title="Download SimplePie" rel="external">download</a> da aplicação.</p>
<p>Descompacte o zip e pegue somente o arquivo simplepie.inc, por enquanto só vamos precisar dele.</p>
<p>Dentro do diretório de sua aplicação, onde você quer mostrar os feeds, cria uma pasta chamada <strong>cache</strong>, e tenha certeza que é permitida a gravação nessa pasta. Agora vamos ao nosso código PHP:</p>
<pre class="brush: php">
&lt; ?php
	include(&quot;simplepie.inc&quot;);
	$feed = new SimplePie(&#039;http://endereco_do_feed&#039;);
?&gt;
</pre>
<p>Como podem ver basta dar um include do simplepie na página e depois atribuir a uma variável o feed que eu quero ler.</p>
<pre class="brush: php">
&lt; ?php
    //5 é o número de itens que eu desejo mostrar
    $items = $feed-&gt;get_items(0, 5);
    foreach ($items as $item) :
        $title  = $item-&gt;get_title();
        $url 	 = $item-&gt;get_permalink();
        $desc = $item-&gt;get_description();

    // Pego as 30 primeiras palavras do nó description do Feed
    $desc_array = explode(&quot; &quot;, $desc);
    $desc_excerpt = array_slice($desc_array, 0, 30);
    $desc_output = implode(&#039; &#039;, $desc_excerpt);
?&gt;

&lt;h2&gt;&lt;a href=&quot;&lt;?php echo $url;?&gt;&quot;&gt;&lt; ?php echo $title;?&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt; ?php echo $desc_output;?&gt; ...&lt;/p&gt;

&lt; ?php endforeach; ?&gt;
</pre>
<p>Após uso um foreach para percorrer esse XML e mostrar os itens na tela como eu desejo.</p>
<p>Vejam aqui nesse <a href="http://www.pinceladasdaweb.com.br/blog/uploads/simplepie/" title="Ler Feed com SimplePie" rel="alternate">exemplo</a> onde mostro o Feed de 3 blogs. Criei esse layout com base <a href="http://jsfiddle.net/sl1dr/hshMK/" title="Pure CSS3 Ribbon" rel="external">nesse exemplo</a> somente para demonstração, portanto, teste em browsers modernos.</p>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/10/07/ler-feed-de-outros-sites-com-simplepie/">Ler feed de outros sites com SimplePie</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2012/01/31/webservice-consulta-de-cep-diretamente-ao-site-dos-correios/" title="Webservice &#8211; Consulta de CEP diretamente ao site dos correios">Webservice &#8211; Consulta de CEP diretamente ao site dos correios</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/23/php-random-html/" title="PHP Random HTML">PHP Random HTML</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/24/endentacao-codigo-tab-espacos/" title="Endentação do código &#8211; TAB vs Espaços">Endentação do código &#8211; TAB vs Espaços</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/24/comecando-php-salvando/" title="Começando com PHP &#8211; Salvando o código">Começando com PHP &#8211; Salvando o código</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/07/20/dicas-profissionais-para-os-iniciantes-em-web/" title="Dicas profissionais para os iniciantes em web">Dicas profissionais para os iniciantes em web</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/1vHepdE3UwZQL0tKH1oH6G-dIW4/0/da"><img src="http://feedads.g.doubleclick.net/~a/1vHepdE3UwZQL0tKH1oH6G-dIW4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/1vHepdE3UwZQL0tKH1oH6G-dIW4/1/da"><img src="http://feedads.g.doubleclick.net/~a/1vHepdE3UwZQL0tKH1oH6G-dIW4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=weUQ6kQzIv4:7T7Dspd_pmU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=weUQ6kQzIv4:7T7Dspd_pmU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=weUQ6kQzIv4:7T7Dspd_pmU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=weUQ6kQzIv4:7T7Dspd_pmU:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=weUQ6kQzIv4:7T7Dspd_pmU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=weUQ6kQzIv4:7T7Dspd_pmU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=weUQ6kQzIv4:7T7Dspd_pmU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=weUQ6kQzIv4:7T7Dspd_pmU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=weUQ6kQzIv4:7T7Dspd_pmU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=weUQ6kQzIv4:7T7Dspd_pmU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=weUQ6kQzIv4:7T7Dspd_pmU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/weUQ6kQzIv4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/10/07/ler-feed-de-outros-sites-com-simplepie/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/10/07/ler-feed-de-outros-sites-com-simplepie/</feedburner:origLink></item>
		<item>
		<title>Slideshow com jCarousel</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/UHYCILpyyQ8/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/10/03/slideshow-com-jcarousel/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 10:28:02 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5181</guid>
		<description><![CDATA[Ao contrário do muitos pensam, o plugin jCarousel não precisa ser utilizado somente no desenvolvimento de um Carousel, ele pode também ser utilzado na criação de um Slideshow, e como vou mostrar, ele também funciona perfeitamente para isso. A grande sacada do jCarousel é que ele possui suporte a controles externos, com isso basta então [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/10/03/slideshow-com-jcarousel/">Slideshow com jCarousel</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/jcarousel-slideshow/jcarousel-slideshow.jpg" alt="Slideshow com jCarousel" title="Slideshow com jCarousel" /></div>
<p>Ao contrário do muitos pensam, o plugin <a href="http://sorgalla.com/jcarousel/" title="jCarousel" rel="external">jCarousel</a> não precisa ser utilizado somente no desenvolvimento de um Carousel, ele pode também ser utilzado na criação de um Slideshow, e como vou mostrar, ele também funciona perfeitamente para isso.</p>
<p><span id="more-5181"></span></p>
<p>A grande sacada do jCarousel é que ele possui suporte a controles externos, com isso basta então criar uma função que gere dinamicamente aqueles bullets que ficam logo abaixo do Slideshow, fazendo com que cada link ao ser clicado vá para sua imagem em questão:</p>
<pre class="brush: js">
function carouselSlideshow(carousel) {
	carousel.clip.hover(function () {
		carousel.stopAuto();
	}, function () {
		carousel.startAuto();
	});

	$(&#039;&lt;div id=&quot;bullets&quot;&gt;&lt;/div&gt;&#039;).insertAfter(&#039;.jcarousel-container&#039;);

	$(&#039;#slideshow li&#039;).each(function(index) {
			var number = parseInt(index) + 1;
			$(&#039;#bullets&#039;).append(&#039;&lt;a href=&quot;#&quot;&gt;&lt;span&gt;&#039;+ number +&#039;&lt;/span&gt;&lt;/a&gt;&#039;);
	});

	$(&#039;#slideshow&#039;).delegate(&#039;#bullets a&#039;, &#039;click&#039;, function(){
		carousel.scroll($.jcarousel.intval($(this).text()));
		return false;
	});
};
</pre>
<p>Com a função pronta, basta chamá-la como um Callback dentro da chamada do jCarousel:</p>
<pre class="brush: js">
$(&#039;#slideshow ul&#039;).jcarousel({
	auto: 5,
	scroll: 1,
	wrap: &#039;last&#039;,
	initCallback: carouselSlideshow,
	itemVisibleInCallback: {
		onAfterAnimation: function(c, o, i, s) {
			--i;
			$(&#039;#bullets a&#039;).removeClass(&#039;active&#039;);
			$(&#039;#bullets a:eq(&#039;+i+&#039;)&#039;).addClass(&#039;active&#039;);
		}
	}
});
</pre>
<ul>
<li><a href="http://www.pinceladasdaweb.com.br/blog/uploads/jcarousel-slideshow/" title="Slideshow com jCarousel" rel="alternate">Ver Demo</a></li>
<li><a href="http://www.pinceladasdaweb.com.br/blog/uploads/jcarousel-slideshow/slideshow-jcarousel.rar" title="Download Slideshow com jCarousel" rel="alternate enclosure">Download</a></li>
</ul>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/10/03/slideshow-com-jcarousel/">Slideshow com jCarousel</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/28/ajax-image-gallery/" title="Ajax Image Gallery">Ajax Image Gallery</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/14/instagram-api/" title="Instagr.am API">Instagr.am API</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/11/11/grayscale-images-hover-com-html5-cross-browser/" title="Grayscale Images Hover com HTML5 Cross Browser">Grayscale Images Hover com HTML5 Cross Browser</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/13/responsive-slideshows/" title="Responsive Slideshows">Responsive Slideshows</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/07/carregar-botao-do-google-plus-via-ajax/" title="Carregar botão do Google+ via Ajax">Carregar botão do Google+ via Ajax</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/Lclceg9MHM_cIF2whme8bEGK9R8/0/da"><img src="http://feedads.g.doubleclick.net/~a/Lclceg9MHM_cIF2whme8bEGK9R8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Lclceg9MHM_cIF2whme8bEGK9R8/1/da"><img src="http://feedads.g.doubleclick.net/~a/Lclceg9MHM_cIF2whme8bEGK9R8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=UHYCILpyyQ8:AyqWh-n7xVA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=UHYCILpyyQ8:AyqWh-n7xVA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=UHYCILpyyQ8:AyqWh-n7xVA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=UHYCILpyyQ8:AyqWh-n7xVA:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=UHYCILpyyQ8:AyqWh-n7xVA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=UHYCILpyyQ8:AyqWh-n7xVA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=UHYCILpyyQ8:AyqWh-n7xVA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=UHYCILpyyQ8:AyqWh-n7xVA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=UHYCILpyyQ8:AyqWh-n7xVA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=UHYCILpyyQ8:AyqWh-n7xVA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=UHYCILpyyQ8:AyqWh-n7xVA:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/UHYCILpyyQ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/10/03/slideshow-com-jcarousel/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/10/03/slideshow-com-jcarousel/</feedburner:origLink></item>
		<item>
		<title>PHP Random HTML</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/zNh2m4zCAq4/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/09/23/php-random-html/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 07:13:59 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5168</guid>
		<description><![CDATA[Suponho que algum dia você precise de alguma forma mostrar alguns itens de forma randômica em sua página, sejam eles banners ou coisa do tipo, vou deixar aqui um código em PHP que pode resolver isso facilmente para você. &#60; ?php $a = array( &#039;Código HTML aqui&#039;, &#039;Código HTML aqui&#039;, &#039;Código HTML aqui&#039;, &#039;Código HTML [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/09/23/php-random-html/">PHP Random HTML</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/php-random-html/php-random-html.jpg" alt="PHP Random HTML" title="PHP Random HTML" /></div>
<p>Suponho que algum dia você precise de alguma forma mostrar alguns itens de forma randômica em sua página, sejam eles banners ou coisa do tipo, vou deixar aqui um código em PHP que pode resolver isso facilmente para você.</p>
<p><span id="more-5168"></span></p>
<pre class="brush: php">
&lt; ?php
	$a = array(
		&#039;Código HTML aqui&#039;,
		&#039;Código HTML aqui&#039;,
		&#039;Código HTML aqui&#039;,
		&#039;Código HTML aqui&#039;
	);
	shuffle($a);
	$na = array_slice($a, 0, 2);
	echo implode(&#039;&#039;, $na);
?&gt;
</pre>
<p>Uma rápida explicação para entender a funcionalidade desse código:</p>
<ul>
<li><strong>Linha 1</strong> &#8211; Crio um array com os meus elementos HTML.</li>
<li><strong>Linha 8</strong> &#8211; Embaralho os elementos do array.</li>
<li><strong>Linha 9</strong> &#8211; Crio uma nova variável onde vou extrair uma parte do array que criei anteriormente, ou seja, vou pegar alí 2 itens.</li>
<li><strong>Linha 10</strong> &#8211; Mostro os itens na tela de forma aleatória.</li>
</ul>
<p>Vejam aqui um exemplo <a href="http://www.pinceladasdaweb.com.br/blog/uploads/php-random-html/" title="PHP Random HTML" rel="alternate">funcionando</a>. Dê alguns refreshs na página e você verá que os itens são mostrados de forma aleatória. Você pode fazer o <a href="http://www.pinceladasdaweb.com.br/blog/uploads/php-random-html/php-random-html.rar" title="PHP Random HTML" rel="alternate enclosure">download do exemplo aqui</a>.</p>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/09/23/php-random-html/">PHP Random HTML</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2012/01/31/webservice-consulta-de-cep-diretamente-ao-site-dos-correios/" title="Webservice &#8211; Consulta de CEP diretamente ao site dos correios">Webservice &#8211; Consulta de CEP diretamente ao site dos correios</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/10/07/ler-feed-de-outros-sites-com-simplepie/" title="Ler feed de outros sites com SimplePie">Ler feed de outros sites com SimplePie</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/24/endentacao-codigo-tab-espacos/" title="Endentação do código &#8211; TAB vs Espaços">Endentação do código &#8211; TAB vs Espaços</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/24/comecando-php-salvando/" title="Começando com PHP &#8211; Salvando o código">Começando com PHP &#8211; Salvando o código</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/07/20/dicas-profissionais-para-os-iniciantes-em-web/" title="Dicas profissionais para os iniciantes em web">Dicas profissionais para os iniciantes em web</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/cJed3W0ttqirEfYBGkOQ_uS8x8A/0/da"><img src="http://feedads.g.doubleclick.net/~a/cJed3W0ttqirEfYBGkOQ_uS8x8A/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cJed3W0ttqirEfYBGkOQ_uS8x8A/1/da"><img src="http://feedads.g.doubleclick.net/~a/cJed3W0ttqirEfYBGkOQ_uS8x8A/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zNh2m4zCAq4:sRn3agCk8Wg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=zNh2m4zCAq4:sRn3agCk8Wg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zNh2m4zCAq4:sRn3agCk8Wg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zNh2m4zCAq4:sRn3agCk8Wg:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zNh2m4zCAq4:sRn3agCk8Wg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zNh2m4zCAq4:sRn3agCk8Wg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=zNh2m4zCAq4:sRn3agCk8Wg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zNh2m4zCAq4:sRn3agCk8Wg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=zNh2m4zCAq4:sRn3agCk8Wg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=zNh2m4zCAq4:sRn3agCk8Wg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=zNh2m4zCAq4:sRn3agCk8Wg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/zNh2m4zCAq4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/09/23/php-random-html/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/09/23/php-random-html/</feedburner:origLink></item>
		<item>
		<title>Introdução ao YQL – Yahoo Query Language</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/RpQACgGMZHw/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/09/21/introducao-ao-yql-yahoo-query-language/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 08:57:53 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[YQL]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5142</guid>
		<description><![CDATA[O YQL (Yahoo Query Language) é uma API do Yahoo criada para facilitar a vida dos desenvolvedores, onde ele reune milhares de serviços únicos. Essa API não é relativamente nova, já existe a um bom tempo, mas não vejo ninguém explorar seu potencial, por isso resolvi fazer esse post. O YQL funciona de maneira similar [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/09/21/introducao-ao-yql-yahoo-query-language/">Introdução ao YQL &#8211; Yahoo Query Language</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/yql/img/yahoo-yql.jpg" alt="YQL - Yahoo Query Language" title="YQL - Yahoo Query Language" /></div>
<p>O <a href="http://developer.yahoo.com/yql/" title="YQL" rel="external">YQL</a> (Yahoo Query Language) é uma API do Yahoo criada para facilitar a vida dos desenvolvedores, onde ele reune milhares de serviços únicos. Essa API não é relativamente nova, já existe a um bom tempo, mas não vejo ninguém explorar seu potencial, por isso resolvi fazer esse post.</p>
<p>O YQL funciona de maneira similar a um banco de dados, onde os serviços são disponibilizados através de tabelas, onde podemos fazer consultas através de uma sintaxe semelhante a do SQL, sim, você poderá selecionar os dados a partir de uma simples select, ou combinando com subselects, e etc&#8230;</p>
<p><span id="more-5142"></span></p>
<p>Pelo <a href="http://developer.yahoo.com/yql/console/" title="YQL Console" rel="external">console</a>, quando selecionamos uma tabela, já é mostrado um exemplo de como seria sua consulta, o que facilita para quem não tem conhecimentos sólidos sobre SQL. Por padrão, são exibidas as tabelas referentes aos serviços do Yahoo!, mas qualquer um pode adicionar novos serviços desde que o mesmo seja proprietário das informações ou as mesmas sejam explicitamente de domínio público.</p>
<p>Para ter acesso as tabelas públicas, basta fazer o seguinte, acesse o <a href="http://developer.yahoo.com/yql/console/" title="YQL Console" rel="external">console</a>, logo a direita você verá o título DATA TABLES, basta clicar em: Show Community Tables</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/yql/yql-show-tables.png" alt="Introdução ao YQL - Yahoo Query Language" title="Introdução ao YQL - Yahoo Query Language" /></div>
<p>Agora você tem acesso a todas as tabelas comunitárias. A partir daqui você poderia, por exemplo, consultar a tabela do W3C e executar a seguinte query no console.</p>
<pre class="brush: sql">
select * from w3c.check where uri=&#039;www.yahoo.com&#039;
</pre>
<p>Essa query é responsável por verificar e validar o HTML, tudo através do YQL, e o retorno disso tudo é um XML ou JSON, a partir daí eu posso fazer o que quiser com essas informações.</p>
<p>Em um outro exemplo que fiz aqui, efetuo a seguinte consulta no console:</p>
<pre class="brush: sql">
select * from html where url=&#039;http://www.cssnolanche.com.br&#039; and xpath=&#039;//div[@class=&quot;shadow&quot;]//h2&#039;
</pre>
<p>Essa query é responsável por acessar meu <a href="http://www.cssnolanche.com.br" title="CSS no Lanche" rel="external me">outro blog</a>, ler todo o HTML, e com <a href="http://www.w3schools.com/XPath/default.asp" title="XPath" rel="external">XPath</a> pegar todo o conteúdo que está dentro da tag h2, que consequentemente está dentro de uma div com a class shadow. Vá até o <a href="http://developer.yahoo.com/yql/console/#h=select%20*%20from%20html%20where%20url%3D%22http%3A//www.cssnolanche.com.br%22%20and%20xpath%3D%27//div[@class%3D%22shadow%22]//h2%27">console</a>, escolha a opção XML ou JSON, clique em test e veja o resultado.</p>
<p>Após, eu posso pegar a <a href="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.cssnolanche.com.br%22%20and%20xpath%3D'%2F%2Fdiv%5B%40class%3D%22shadow%22%5D%2F%2Fh2'&#038;format=json&#038;diagnostics=true&#038;callback=" title="REST QUERY" rel="external">REST QUERY</a> gerada e fazer um <a href="http://www.pinceladasdaweb.com.br/blog/uploads/yql/" title="Yahoo Query Language + XPath" rel="alternate me">parser com jQuery</a>.</p>
<p>Em um outro exemplo também poderia pegar meu últimos Tweets, com a seguinte query:</p>
<pre class="brush: sql">
select * from twitter.user.timeline where screen_name=&#039;pinceladasdaweb&#039;
</pre>
<p>E depois fazer o <a href="http://www.pinceladasdaweb.com.br/blog/uploads/yql/twitter.html" title="Yahoo Query Language + Twitter" rel="alternate me">parser do JSON gerado</a>.</p>
<p>Em uma consulta mais complexa, poderia mesclar o feed dos meus 2 blogs e depois filtrar somente pelo título dos posts:</p>
<pre class="brush: sql">
select channel.item.title,channel.item.link, channel.item.pubDate
    from xml where url in(
      &#039;http://feeds.feedburner.com/pinceladasdaweb&#039;,
      &#039;http://feeds2.feedburner.com/CssNoLanche&#039;
    )
  | unique(field=&quot;channel.item.link&quot;)
  | sort(field=&quot;channel.item.pubDate&quot;, descending=&quot;true&quot;)
</pre>
<p>As possibilidades de uso do YQL são infinitas, mostrei aqui 3 exemplos básicos de uso, mas como você pode ver, o <a href="http://twitter.com/dirs" title="Twitter Dirceu">Dirceu</a> mostra em seu blog como é possível fazer um <a href="http://www.dirceupauka.com/widget-do-submarino-com-yql" title="Widget com os produtos do Submarino através do YQL e XPath" rel="external">Widget com os produtos do Submarino através do YQL e XPath</a>. Ou então o <a href="http://blog.talleye.com" title="Blog Luis Cipriani">Luis Cipriani</a> que criou um Mash up para saber a <a href="http://blog.talleye.com/2010/04/16/extracao-dados-publicos-com-yql-e-pipes-2/" title="Extração de dados públicos com YQL e Y!Pipes" rel="external">localização das feiras livres aos domingos</a> mais próximas de sua casa.</p>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/09/21/introducao-ao-yql-yahoo-query-language/">Introdução ao YQL &#8211; Yahoo Query Language</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/10/10/ler-feeds-com-o-google-jsapi/" title="Ler Feeds com o Google JSAPI">Ler Feeds com o Google JSAPI</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/10/08/aprenda-mais-sobre-o-console-do-firebug/" title="Aprenda mais sobre o console do Firebug">Aprenda mais sobre o console do Firebug</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/13/responsive-slideshows/" title="Responsive Slideshows">Responsive Slideshows</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/07/carregar-botao-do-google-plus-via-ajax/" title="Carregar botão do Google+ via Ajax">Carregar botão do Google+ via Ajax</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/24/endentacao-codigo-tab-espacos/" title="Endentação do código &#8211; TAB vs Espaços">Endentação do código &#8211; TAB vs Espaços</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/ymtE_SzRCcXrTNFgUd98rq1eooQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/ymtE_SzRCcXrTNFgUd98rq1eooQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ymtE_SzRCcXrTNFgUd98rq1eooQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/ymtE_SzRCcXrTNFgUd98rq1eooQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=RpQACgGMZHw:Lm-Vk3H_p80:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=RpQACgGMZHw:Lm-Vk3H_p80:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=RpQACgGMZHw:Lm-Vk3H_p80:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=RpQACgGMZHw:Lm-Vk3H_p80:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=RpQACgGMZHw:Lm-Vk3H_p80:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=RpQACgGMZHw:Lm-Vk3H_p80:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=RpQACgGMZHw:Lm-Vk3H_p80:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=RpQACgGMZHw:Lm-Vk3H_p80:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=RpQACgGMZHw:Lm-Vk3H_p80:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=RpQACgGMZHw:Lm-Vk3H_p80:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=RpQACgGMZHw:Lm-Vk3H_p80:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/RpQACgGMZHw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/09/21/introducao-ao-yql-yahoo-query-language/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/09/21/introducao-ao-yql-yahoo-query-language/</feedburner:origLink></item>
		<item>
		<title>Como criar um botão customizado de Share no Facebook</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/_KbzWD5VZ9k/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/09/19/como-criar-um-botao-customizado-de-share-no-facebook/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 08:56:37 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5126</guid>
		<description><![CDATA[Nesse tutorial vou ensinar aqui a criar um botão customizado para compartilhar o que você quiser no Facebook. Sua função é bem parecida com a do botão Send, com a diferença que o Send não é customizável. Antes de tudo, você deve ter uma conta de desenvolvedor no Facebook, pois será necessário criar uma APP. [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/09/19/como-criar-um-botao-customizado-de-share-no-facebook/">Como criar um botão customizado de Share no Facebook</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/facebook-share-button/facebook.jpg" alt="Facebook" title="Facebook" /></div>
<p>Nesse tutorial vou ensinar aqui a criar um botão customizado para compartilhar o que você quiser no Facebook. Sua função é bem parecida com a do botão <a href="https://developers.facebook.com/docs/reference/plugins/send/" title="Facebook Send Button" rel="external">Send</a>, com a diferença que o Send não é customizável.</p>
<p><span id="more-5126"></span></p>
<p>Antes de tudo, você deve ter uma conta de desenvolvedor no Facebook, pois será necessário criar uma APP. Basta ir então ao <a href="https://developers.facebook.com/" title="Facebook Developers" rel="external">Facebook Developers</a>, clicar em Aplicativos, e tentar criar uma nova APP, caso sua conta não seja de desenvolvedor, ele lhe dará um aviso de verificação de conta, basta seguir os passos e pronto, sua conta a partir de agora é de desenvolvedor.</p>
<p>Estando tudo ok, vamos criar a APP para o nosso botão customizado. Em aplicativos clique em <strong>Create New App</strong>. Será abeeto um modal semelhante ao abaixo, basta preencher com o nome da sua APP e concordar com os termos do Facebook:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/facebook-share-button/app1.jpg" alt="Criar APP no Facebook" title="Criar APP no Facebook" /></div>
<p>Se tudo ocorreu bem, sua APP foi criada, e agora vamos preencher algumas informações na APP, como na imagem abaixo:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/facebook-share-button/app2.jpg" alt="Criar APP no Facebook" title="Criar APP no Facebook" /></div>
<p>Em Informações básicas > App Domain, coloque o domínio do site onde o botão deverá funcionar, sem o http e www. Mas atenção, esse deve ser o <strong>domínio de onde você quer que o botão funcione</strong>, se você testar o botão fora desse domínio, ele não funionará.</p>
<p>Logo abaixo, na seção Website, coloque novamente o domínio, agora você pode colocar o http e o www, como mostrados na imagem. Pronto, sua APP já está ok, bastando só salvar as alterações.</p>
<p>Vamos agora criar um arquivo HTML para testar o botão, e após basta adicionar esse código JavaScript a sua página, pode ser dentro do body mesmo:</p>
<pre class="brush: js">
&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
	var e = document.createElement(&#039;script&#039;);
	e.src = document.location.protocol + &#039;//connect.facebook.net/pt_BR/all.js&#039;;
	e.async = true;
	document.getElementById(&#039;fb-root&#039;).appendChild(e);
}());

window.fbAsyncInit = function () {
	FB.init({
		appId  : &#039;YOUR APP ID&#039;,
		status : true, // check login status
		cookie : true, // enable cookies to allow the server to access the session
		xfbml  : true,  // parse XFBML
		oauth  : true // enable OAuth 2.0
	});
};
&lt;/script&gt;
</pre>
<p>Atente-se a colocar o ID da sua aplicação onde está marcado &#8216;YOUR APP ID&#8217;, ele fica localizado no topo da sua aplicação. Vamos agora criar a função que irá abrir o pop-up para compartilhar o conteúdo. No meu HTML eu adicionei um botão que ao ser clicado ele abre o pop-up:</p>
<pre class="brush: html">
&lt;a id=&quot;share-button&quot; href=&quot;#&quot; title=&quot;Facebook Share Button&quot;&gt;&lt;img src=&quot;facebook-share-button.jpg&quot; alt=&quot;Facebook Share Button&quot; title=&quot;Facebook Share Button&quot; /&gt;&lt;/a&gt;
</pre>
<p>Basta então agora, o JavaScript:</p>
<pre class="brush: js">
var el = document.getElementById(&#039;share-button&#039;);

el.onclick = function (e) {
	e.preventDefault();
	FB.ui({
		method: &#039;feed&#039;,
		name: &#039;Conteúdo do campo nome&#039;,
		link: &#039; sua_url_aqui&#039;,
		picture: &#039;url_da_imagem_aqui&#039;,
		caption: &#039;Conteúdo do campo caption&#039;,
		description: &#039;Conteúdo do campo description&#039;
	});
}
</pre>
<p>Como podem ver, utilizei JavaScript puro para fazer o click no botão, mas você pode fazer o mesmo com jQuery, basta utilizar o seguinte código:</p>
<pre class="brush: js">
$(&#039;#share-button&#039;).click(function (e){
	e.preventDefault();
	FB.ui({
		method: &#039;feed&#039;,
		name: &#039;Conteúdo do campo nome&#039;,
		link: &#039; sua_url_aqui&#039;,
		picture: &#039;url_da_imagem_aqui&#039;,
		caption: &#039;Conteúdo do campo caption&#039;,
		description: &#039;Conteúdo do campo description&#039;
	});
});
</pre>
<p>Vamos a explicação do significado de cada campo:</p>
<ul>
<li><strong>method</strong>: O nome do método, configure como <strong>feed</strong> para abrir a caixa de diálogo para divulgar conteúdo.</li>
<li><strong>name</strong>: Texto da primeira linha da nossa caixa de diálogo. Pode conter no máximo 99 caracteres.</li>
<li><strong>link</strong>: A URL que deseja compartilhar.</li>
<li><strong>picture</strong>: A URL da imagem que deseja mostrar com a mensagem no seu perfil. Recomenda-se utlizar uma imagem com 90&#215;90 pixels.</li>
<li><strong>caption</strong>: A legenda do link. Máximo de 100 caracteres.</li>
<li><strong>description</strong>: A descrição do link. Máximo de 270 caracteres.</li>
</ul>
<p>Agora, ao clicar no botão, será aberta uma caixa de diálogo semelhante a essa:</p>
<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/facebook-share-button/app3.jpg" alt="Botão customizado de Share no Facebook" title="Botão customizado de Share no Facebook" /></div>
<p>Vocês podem testar a funcionalidade do botão <a href="http://www.pinceladasdaweb.com.br/blog/uploads/facebook-share-button/" title="Facebook Share Button" rel="alternate">nesse exemplo</a> que criei. E não se esqueçam de dar uma passada no <a href="https://www.facebook.com/pedrorassis" title="Facebook Pedro Rogério" rel="external">meu perfil no Facebook</a>.</p>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/09/19/como-criar-um-botao-customizado-de-share-no-facebook/">Como criar um botão customizado de Share no Facebook</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/15/hot-shop-sla-20-anos-de-historia/" title="Hot Shop SLA &#8211; 20 anos de história">Hot Shop SLA &#8211; 20 anos de história</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/31/como-criar-fan-page-no-facebook/" title="Como criar Fan Page no Facebook">Como criar Fan Page no Facebook</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/25/como-criar-paginas-no-facebook-2/" title="Como criar páginas no Facebook">Como criar páginas no Facebook</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/GQYjHjZM6QKLef9sibJs05pJo_k/0/da"><img src="http://feedads.g.doubleclick.net/~a/GQYjHjZM6QKLef9sibJs05pJo_k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/GQYjHjZM6QKLef9sibJs05pJo_k/1/da"><img src="http://feedads.g.doubleclick.net/~a/GQYjHjZM6QKLef9sibJs05pJo_k/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=_KbzWD5VZ9k:iCSGzTBuIHY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=_KbzWD5VZ9k:iCSGzTBuIHY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=_KbzWD5VZ9k:iCSGzTBuIHY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=_KbzWD5VZ9k:iCSGzTBuIHY:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=_KbzWD5VZ9k:iCSGzTBuIHY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=_KbzWD5VZ9k:iCSGzTBuIHY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=_KbzWD5VZ9k:iCSGzTBuIHY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=_KbzWD5VZ9k:iCSGzTBuIHY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=_KbzWD5VZ9k:iCSGzTBuIHY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=_KbzWD5VZ9k:iCSGzTBuIHY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=_KbzWD5VZ9k:iCSGzTBuIHY:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/_KbzWD5VZ9k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/09/19/como-criar-um-botao-customizado-de-share-no-facebook/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/09/19/como-criar-um-botao-customizado-de-share-no-facebook/</feedburner:origLink></item>
		<item>
		<title>Hot Shop SLA – 20 anos de história</title>
		<link>http://feedproxy.google.com/~r/PinceladasDaWeb/~3/Qcc3gXKewM8/</link>
		<comments>http://www.pinceladasdaweb.com.br/blog/2011/09/15/hot-shop-sla-20-anos-de-historia/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 09:37:48 +0000</pubDate>
		<dc:creator>Pedro Rogério</dc:creator>
				<category><![CDATA[Cotidiano]]></category>
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://www.pinceladasdaweb.com.br/blog/?p=5119</guid>
		<description><![CDATA[No mercado de publicidade e propaganda, a maturidade de uma empresa está na sua capacidade de se manter jovem, de falar a língua de seu cliente e tratá-lo com intimidade de quem o conhece de perto. Essa é a SLA, uma das maiores, senão a maior agência de publicidade da Bahia, que atua no ramo [...]<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/09/15/hot-shop-sla-20-anos-de-historia/">Hot Shop SLA &#8211; 20 anos de história</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
]]></description>
			<content:encoded><![CDATA[<div class="aligncenter"><img src="http://www.pinceladasdaweb.com.br/blog/uploads/hotshop-sla.jpg" alt="Hot Shop SLA - 20 anos de história" title="Hot Shop SLA - 20 anos de história" /></div>
<p>No mercado de publicidade e propaganda, a maturidade de uma empresa está na sua capacidade de se manter jovem, de falar a língua de seu cliente e tratá-lo com intimidade de quem o conhece de perto.</p>
<p>Essa é a <a href="http://bitly.com/pQOvYX" title="SLA" rel="external">SLA</a>, uma das maiores, senão a maior agência de publicidade da Bahia, que atua no ramo desde 1991, e agora completa 20 anos, está chamando todos os profissionais de publicidade e propaganda para um projeto ousado.</p>
<p><span id="more-5119"></span></p>
<p>Batizado de &#8220;<a href="http://bitly.com/pQOvYX" title="Ação Hot Shop SLA 20 anos" rel="external">Ação Hot Shop SLA 20 anos</a>&#8220;, o projeto tem como parceiros a Unijorge e a Rede Bahia, e abre espaço para que estudantes desenvolvam uma campanha publicitária para uma empresa local. Serão formadas 3 equipes com 6 estudantes cada, onde terão 50 horas para elaborar um trabalho a partir dos briefings. Todo esse processo será acompanhado pela <a href="http://bitly.com/pQOvYX" title="Ação Hot Shop SLA 20 anos" rel="external">SLA</a> juntamente com as empresas que serão objeto das peças da campanha.</p>
<p>A ação tem início no próximo dia 22/9 (quinta-feira), no Centro Universitário Jorge Amado, na Paralela, com o sorteio das equipes e entrega de briefings. As equipes contarão com estudantes em funções que os profissionais desenvolvem dentro das agências, como: atendimento, planejamento, mídia, produção, redação e direção de arte.</p>
<p>Tudo isso acontece até o dia 06/10, quando serão divulgados os vencedores do concurso, na noite de cerimônia de comemoração dos <a href="http://bitly.com/pQOvYX" title="Ação Hot Shop SLA 20 anos" rel="external">20 anos da SLA</a>.</p>
<p>Dependendo do desempenho dos participantes, a campanha vencedora poderá ser veiculada em mídia local, e, além disso, os seis integrantes da equipe vencedora farão um estágio de seis meses na <a href="http://bitly.com/pQOvYX" title="Ação Hot Shop SLA 20 anos" rel="external">SLA</a> e recebem assinatura anual da Revista Meio&#038;Mensagem.</p>
<p>A equipe que ficar em segundo lugar recebe assinatura anual do Jornal Propaganda e Marketing, e a terceira colocada garante sua inscrição no Workshop Vendendo e Aprendendo – Marketing Promocional.</p>
<p>Fique por dentro de tudo acessando a página da <a href="http://bitly.com/pQOvYX" title="SLA no Facebook" rel="external">SLA no Facebook</a>.</p>
<p><hr />
<a href="http://www.pinceladasdaweb.com.br/blog/2011/09/15/hot-shop-sla-20-anos-de-historia/">Hot Shop SLA &#8211; 20 anos de história</a>
<br />
<p>J&aacute; conhece o meu outro blog? O endere&ccedil;o &eacute; o: <a href="http://www.cssnolanche.com.br">CSS no Lanche</a></p>
<p>Voc&ecirc; ainda n&atilde;o est&aacute; me seguindo no <a href="http://twitter.com/pinceladasdaweb" title="Siga-me no Twitter" rel="external">Twitter</a>, o que est&aacute; esperando para fazer isso?</p></p>
<ul class="related_post"><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/09/19/como-criar-um-botao-customizado-de-share-no-facebook/" title="Como criar um botão customizado de Share no Facebook">Como criar um botão customizado de Share no Facebook</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/31/como-criar-fan-page-no-facebook/" title="Como criar Fan Page no Facebook">Como criar Fan Page no Facebook</a></li><li><a href="http://www.pinceladasdaweb.com.br/blog/2011/08/25/como-criar-paginas-no-facebook-2/" title="Como criar páginas no Facebook">Como criar páginas no Facebook</a></li></ul>
<p><a href="http://feedads.g.doubleclick.net/~a/oOzeH2FqMQF6kIrlZ2h7B7-MYQo/0/da"><img src="http://feedads.g.doubleclick.net/~a/oOzeH2FqMQF6kIrlZ2h7B7-MYQo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/oOzeH2FqMQF6kIrlZ2h7B7-MYQo/1/da"><img src="http://feedads.g.doubleclick.net/~a/oOzeH2FqMQF6kIrlZ2h7B7-MYQo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Qcc3gXKewM8:U-zBjwbCyTg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=Qcc3gXKewM8:U-zBjwbCyTg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Qcc3gXKewM8:U-zBjwbCyTg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Qcc3gXKewM8:U-zBjwbCyTg:tr8VpXobKIM"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=tr8VpXobKIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Qcc3gXKewM8:U-zBjwbCyTg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Qcc3gXKewM8:U-zBjwbCyTg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=Qcc3gXKewM8:U-zBjwbCyTg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Qcc3gXKewM8:U-zBjwbCyTg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=Qcc3gXKewM8:U-zBjwbCyTg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PinceladasDaWeb?a=Qcc3gXKewM8:U-zBjwbCyTg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/PinceladasDaWeb?i=Qcc3gXKewM8:U-zBjwbCyTg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PinceladasDaWeb/~4/Qcc3gXKewM8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pinceladasdaweb.com.br/blog/2011/09/15/hot-shop-sla-20-anos-de-historia/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.pinceladasdaweb.com.br/blog/2011/09/15/hot-shop-sla-20-anos-de-historia/</feedburner:origLink></item>
	</channel>
</rss>
			<!-- Dynamic Page Served (once) in 0.24693107605 seconds uncached at Mon, 06 Feb 2012 19:21:33 -->
