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

<channel>
	<title>BrasilBlog</title>
	<atom:link href="http://brasilblog.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://brasilblog.com.br</link>
	<description></description>
	<lastBuildDate>Wed, 04 Jan 2012 14:53:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Baixar fotos do iPhone no Mac, sem usar o iTunes</title>
		<link>http://brasilblog.com.br/2012/01/04/baixar-fotos-do-iphone-no-mac-sem-usar-o-itunes/</link>
		<comments>http://brasilblog.com.br/2012/01/04/baixar-fotos-do-iphone-no-mac-sem-usar-o-itunes/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 14:53:45 +0000</pubDate>
		<dc:creator>Feijão Costa</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac OS]]></category>

		<guid isPermaLink="false">http://brasilblog.com.br/?p=300</guid>
		<description><![CDATA[Essa dica é um conselho pra quem esta afim de sincronizar as fotos do seu iPhone com o iTunes e, assim como eu, quer fazer um Backup antes. No mac existe um programa que se chama Image Capture. Ele vai funcionar não só com o iPhone, mas também com câmeras fotográficas. Entrando no programa (esta [...]]]></description>
			<content:encoded><![CDATA[<p>Essa dica é um conselho pra quem esta afim de sincronizar as fotos do seu iPhone com o iTunes e, assim como eu, quer fazer um Backup antes.</p>
<p>No mac existe um programa que se chama <strong>Image Capture</strong>. Ele vai funcionar não só com o iPhone, mas também com câmeras fotográficas.</p>
<p>Entrando no programa (esta dentro da pasta Applications), vc seleciona as fotos que quer importar, ou se quer importar todas, indica a pasta em que essas fotos devem ser salvas, e pronto! Seu backup esta ok, e vc pode sincronizar com o iTunes sem medo.<br />
<h3 class="bsuite_related_bypageviews">People who looked at this item also looked at&#8230;</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/06/28/calibre-sua-bateria-do-macbook/'>Calibre sua bateria do Macbook</a></li>
</ul>
<h3 class="bsuite_related">Related items</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/06/08/de-pe-ou-deitado/'>De pé ou deitado?</a></li>
<li><a href='http://brasilblog.com.br/2010/04/28/java-1-6-no-macos-1-5-x/'>Java 1.6 no MacOS 1.5.x</a></li>
<li><a href='http://brasilblog.com.br/2010/06/28/calibre-sua-bateria-do-macbook/'>Calibre sua bateria do Macbook</a></li>
<li><a href='http://brasilblog.com.br/2010/05/06/apple-screen-sharing/'>Apple Screen Sharing</a></li>
<li><a href='http://brasilblog.com.br/2010/04/05/novo-ipad-no-liquidificador-will-it-blend/'>Novo iPad, no liquidificador &#8212; Will It Blend?</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brasilblog.com.br/2012/01/04/baixar-fotos-do-iphone-no-mac-sem-usar-o-itunes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Z-index inverso via css</title>
		<link>http://brasilblog.com.br/2011/07/30/z-index-inverso-via-css/</link>
		<comments>http://brasilblog.com.br/2011/07/30/z-index-inverso-via-css/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 03:54:38 +0000</pubDate>
		<dc:creator>Feijão Costa</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Dicas]]></category>

		<guid isPermaLink="false">http://brasilblog.com.br/?p=298</guid>
		<description><![CDATA[Demorei um pouco pra conseguir fazer isso, mas achei uma solução muito boa. Pra fazer isso, é preciso usar uma forma inteligente de acessar itens pelo css. HTML &#60;html&#62; &#60;body&#62; &#60;ul&#62; &#60;li&#62;Primeiro&#60;/li&#62; &#60;li&#62;Segundo&#60;/li&#62; &#60;li&#62;Terceiro&#62;&#60;/li&#62; &#60;/ul&#62; &#60;/body&#62; &#60;/html&#62; CSS ul li{ z-index: 10; } ul li+li{ z-index: 9; } ul li+li+li{ z-index: 8; } People who [...]]]></description>
			<content:encoded><![CDATA[<p>Demorei um pouco pra conseguir fazer isso, mas achei uma solução muito boa.</p>
<p>Pra fazer isso, é preciso usar uma forma inteligente de acessar itens pelo css.</p>
<p><strong>HTML</strong></p>
<p><code> &lt;html&gt;<br />
&lt;body&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;Primeiro&lt;/li&gt;<br />
&lt;li&gt;Segundo&lt;/li&gt;<br />
&lt;li&gt;Terceiro&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
</code><br />
<strong> CSS</strong><br />
<code><br />
ul li{<br />
z-index: 10;<br />
}<br />
ul li+li{<br />
z-index: 9;<br />
}<br />
ul li+li+li{<br />
z-index: 8;<br />
}</code><br />
<h3 class="bsuite_related_bypageviews">People who looked at this item also looked at&#8230;</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/07/13/resizemybrowser-guarde-esse-link/'>resizeMyBrowser &#8212; Guarde esse link!</a></li>
<li><a href='http://brasilblog.com.br/2010/06/28/calibre-sua-bateria-do-macbook/'>Calibre sua bateria do Macbook</a></li>
</ul>
<h3 class="bsuite_related">Related items</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/09/30/error-1063-argument-count-mismatch/'>Error #1063: Argument count mismatch</a></li>
<li><a href='http://brasilblog.com.br/2010/07/21/truques-com-seu-endereco-de-e-mail-do-gmail/'>Truques com seu endereço de e-mail do Gmail</a></li>
<li><a href='http://brasilblog.com.br/2010/04/07/monstros-feitos-em-css/'>Monstros feitos em CSS</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brasilblog.com.br/2011/07/30/z-index-inverso-via-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novo Blog: Meu Imã</title>
		<link>http://brasilblog.com.br/2010/11/18/novo-blog-meu-ima/</link>
		<comments>http://brasilblog.com.br/2010/11/18/novo-blog-meu-ima/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 02:27:38 +0000</pubDate>
		<dc:creator>Feijão Costa</dc:creator>
				<category><![CDATA[Blogs]]></category>

		<guid isPermaLink="false">http://brasilblog.com.br/?p=286</guid>
		<description><![CDATA[Acabei de lançar um novo blog no BrasilBlog: o Meu Imã. Esse blog funcionará como uma loja virtual de Imãs de Geladeira, e estréia com um kit do Space Invaders, com 13 imãs. Pra saber mais, clique aqui e acesse o site. People who looked at this item also looked at&#8230; Desconto para Hospedagem resizeMyBrowser [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://meuima.brasilblog.com.br/imas-do-space-invaders/"><img class="size-full wp-image-287 alignnone" title="Imãs do SpaceInvaders" src="http://brasilblog.com.br/files/2010/11/SpaceInvaders.jpg" alt="" width="560" height="448" /></a></p>
<p>Acabei de lançar um novo blog no BrasilBlog: o Meu Imã.</p>
<p>Esse blog funcionará como uma loja virtual de Imãs de Geladeira, e estréia com um kit do Space Invaders, com 13 imãs.</p>
<p>Pra saber mais, <a title="Meu Imã" href="http://meuima.brasilblog.com.br">clique aqui</a> e acesse o site.<br />
<h3 class="bsuite_related_bypageviews">People who looked at this item also looked at&#8230;</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2009/07/03/desconto-para-hospedagem/'>Desconto para Hospedagem</a></li>
<li><a href='http://brasilblog.com.br/2010/07/13/resizemybrowser-guarde-esse-link/'>resizeMyBrowser &#8212; Guarde esse link!</a></li>
<li><a href='http://brasilblog.com.br/2010/04/28/java-1-6-no-macos-1-5-x/'>Java 1.6 no MacOS 1.5.x</a></li>
<li><a href='http://brasilblog.com.br/2010/04/07/monstros-feitos-em-css/'>Monstros feitos em CSS</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brasilblog.com.br/2010/11/18/novo-blog-meu-ima/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google street view já esta disponível em São Paulo</title>
		<link>http://brasilblog.com.br/2010/09/30/google-street-view-ja-esta-disponivel-em-sao-paulo/</link>
		<comments>http://brasilblog.com.br/2010/09/30/google-street-view-ja-esta-disponivel-em-sao-paulo/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 14:40:18 +0000</pubDate>
		<dc:creator>Feijão Costa</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://brasilblog.com.br/?p=280</guid>
		<description><![CDATA[Sim, o Google Street View está disponível em São Paulo, e a produtividade nas empresas deve cair muito nas próximas horas(rs). Mais de 100km disponíveis. Clique aqui. Exibir mapa ampliado Related items Truques com seu endereço de e-mail do Gmail]]></description>
			<content:encoded><![CDATA[<p>Sim, o Google Street View está disponível em São Paulo, e a produtividade nas empresas deve cair muito nas próximas horas(rs). Mais de 100km disponíveis.</p>
<p><a title="Google Street View Disponível em São Paulo" href="http://maps.google.com.br/">Clique aqui</a>.<br />
<code><br />
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com.br/maps?f=q&amp;source=embed&amp;hl=pt-BR&amp;geocode=&amp;q=av+paulista&amp;sll=-23.402765,-46.104126&amp;sspn=0.812903,1.454315&amp;ie=UTF8&amp;hq=&amp;hnear=Av.+Paulista+-+S%C3%A3o+Paulo&amp;t=h&amp;z=14&amp;layer=c&amp;cbll=-23.564252,-46.653095&amp;panoid=8vkkTCXx24GrqhEarMaxag&amp;cbp=12,160.66,,0,4.15&amp;ll=-23.563596,-46.653885&amp;output=svembed"></iframe><br /><small><a href="http://maps.google.com.br/maps?f=q&amp;source=embed&amp;hl=pt-BR&amp;geocode=&amp;q=av+paulista&amp;sll=-23.402765,-46.104126&amp;sspn=0.812903,1.454315&amp;ie=UTF8&amp;hq=&amp;hnear=Av.+Paulista+-+S%C3%A3o+Paulo&amp;t=h&amp;z=14&amp;layer=c&amp;cbll=-23.564252,-46.653095&amp;panoid=8vkkTCXx24GrqhEarMaxag&amp;cbp=12,160.66,,0,4.15&amp;ll=-23.563596,-46.653885" style="color:#0000FF;text-align:left">Exibir mapa ampliado</a></small></code><br />
<h3 class="bsuite_related">Related items</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/07/21/truques-com-seu-endereco-de-e-mail-do-gmail/'>Truques com seu endereço de e-mail do Gmail</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brasilblog.com.br/2010/09/30/google-street-view-ja-esta-disponivel-em-sao-paulo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error #1063: Argument count mismatch</title>
		<link>http://brasilblog.com.br/2010/09/30/error-1063-argument-count-mismatch/</link>
		<comments>http://brasilblog.com.br/2010/09/30/error-1063-argument-count-mismatch/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 11:58:00 +0000</pubDate>
		<dc:creator>Feijão Costa</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Dicas]]></category>

		<guid isPermaLink="false">http://brasilblog.com.br/?p=275</guid>
		<description><![CDATA[Esse erro ocorre no Flash, quando você cria um EventListener no AS3, e não habilita a função que será acionada a receber o retorno do evento. Esta confuso né? vamos mostrar no código. Imagine que eu crie esse listener aqui: botao.addEventListener(MouseEvent.MOUSE_DOWN,preso); Essa seria a forma errada de criar a função preso: function preso():void{ //actions } [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-276 alignnone" title="ArgumentError: Error #1063: Argument count mismatch on nome_do_arquivo::nome_do_layer_1/solto(). Expected 0, got 1." src="http://brasilblog.com.br/files/2010/09/erroFlash.jpg" alt="ArgumentError: Error #1063: Argument count mismatch on nome_do_arquivo::nome_do_layer_1/solto(). Expected 0, got 1." width="485" height="153" /></p>
<p>Esse erro ocorre no Flash, quando você cria um <strong><em>EventListener</em><span style="font-weight: normal;"> no AS3, e não habilita a função que será acionada a receber o retorno do evento.</span></strong></p>
<p><strong><span style="font-weight: normal;">Esta confuso né? vamos mostrar no código.</span></strong></p>
<p><strong><span style="font-weight: normal;">Imagine que eu crie esse listener aqui:</span></strong></p>
<div style="text-align: left; color: #ffffff; background-color: #000000; border: solid black 1px; padding: 0.5em 1em 0.5em 1em; overflow: auto; font-size: small; font-family: monospace;">botao.addEventListener<span style="color: #ff0000;">(</span>MouseEvent.MOUSE_DOWN,preso<span style="color: #ff0000;">)</span>;</div>
<p><strong><span style="font-weight: normal;">Essa seria a forma errada de criar a função </span><span style="font-weight: normal;">preso<span style="font-weight: normal;">:</span></span></strong></p>
<div style="text-align: left; color: #ffffff; background-color: #000000; border: solid black 1px; padding: 0.5em 1em 0.5em 1em; overflow: auto; font-size: small; font-family: monospace;">
<p><span style="color: #0000ff;">function</span> preso<span style="color: #ff0000;">():</span><span style="color: #0000ff;">void</span><span style="color: #ff0000;">{</span></p>
<p><em><span style="color: #236e25;">//actions</span></em></p>
<p><em> </em><span style="color: #ff0000;">}</span></p>
</div>
<p>O correto é habilitar a função pra receber o retorno do evento:<strong><span style="font-weight: normal;"><span style="font-weight: normal;"><br />
</span></span></strong></p>
<div style="text-align: left; color: #ffffff; background-color: #000000; border: solid black 1px; padding: 0.5em 1em 0.5em 1em; overflow: auto; font-size: small; font-family: monospace;"><span style="color: #0000ff;">function</span> preso<span style="color: #ff0000;">(</span>event<span style="color: #ff0000;">:</span>MouseEvent<span style="color: #ff0000;">):</span><span style="color: #0000ff;">void</span><span style="color: #ff0000;">{</span></p>
<p><em><span style="color: #236e25;">//actions</span></em></p>
<p><em> </em><span style="color: #ff0000;">}</span></p>
</div>
<h3 class="bsuite_related_bypageviews">People who looked at this item also looked at&#8230;</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/09/30/google-street-view-ja-esta-disponivel-em-sao-paulo/'>Google street view já esta disponível em São Paulo</a></li>
</ul>
<h3 class="bsuite_related">Related items</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2011/07/30/z-index-inverso-via-css/'>Z-index inverso via css</a></li>
<li><a href='http://brasilblog.com.br/2010/09/20/inserindo-o-divisor-de-milhares-num-numero/'>Inserindo o divisor de milhares num número</a></li>
<li><a href='http://brasilblog.com.br/2010/07/21/truques-com-seu-endereco-de-e-mail-do-gmail/'>Truques com seu endereço de e-mail do Gmail</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brasilblog.com.br/2010/09/30/error-1063-argument-count-mismatch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inserindo o divisor de milhares num número</title>
		<link>http://brasilblog.com.br/2010/09/20/inserindo-o-divisor-de-milhares-num-numero/</link>
		<comments>http://brasilblog.com.br/2010/09/20/inserindo-o-divisor-de-milhares-num-numero/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 22:41:12 +0000</pubDate>
		<dc:creator>Feijão Costa</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Códigos]]></category>

		<guid isPermaLink="false">http://brasilblog.com.br/?p=266</guid>
		<description><![CDATA[Precisei aqui formatar um número, inserindo o divisor de milhares, que facilita muito na leitura de números relativamente grandes. Por default, o Flash não faz isso sozinho, e soh vai ter uma classe específica pra isso na versão CS5, que não é a que travalho. A solução foi escrever uma função que resolvesse meu problema, [...]]]></description>
			<content:encoded><![CDATA[<p>Precisei aqui formatar um número, inserindo o divisor de milhares, que facilita muito na leitura de números relativamente grandes. Por default, o Flash não faz isso sozinho, e soh vai ter uma classe específica pra isso na versão CS5, que não é a que travalho.</p>
<p>A solução foi escrever uma função que resolvesse meu problema, ou melhor, meu problema e da <a title="Gi Pungan" href="http://twitter.com/gipungan" target="_blank">Gi Pungan</a>, que foi quem programou boa parte desse <a title="Calcule o real valor de seu salário" href="http://www.band.com.br/jornalismo/infografico.asp?ID=261" target="_blank">belo infográfico</a>, e que a mim coube esses detalhes.</p>
<p>Nesse código aqui embaixo eu espero receber um número com duas casas decimais. O Flash vai me trazer o &#8220;.&#8221; pra separar o inteiro dos decimais. Transformo então esse número numa string, substitui o &#8220;.&#8221; por &#8220;,&#8221; e dai insiro o &#8220;.&#8221; como divisor de milhares:</p>
<div style="text-align: left; color: #ffffff; background-color: #000000; border: solid black 1px; padding: 0.5em 1em 0.5em 1em; overflow: auto; font-size: small; font-family: monospace;"><span style="color: #0000ff;">function</span> formataNumero<span style="color: #ff0000;">(</span>txt<span style="color: #ff0000;">){</span><br />
<span style="color: #0000ff;">var</span> retorno <span style="color: #ff0000;">=</span> txt.<span style="color: #6619bc;">toString</span><span style="color: #ff0000;">()</span>;<br />
retorno <span style="color: #ff0000;">=</span> retorno.<span style="color: #4d4dff;">replace</span><span style="color: #ff0000;">(</span><span style="color: #727272;">&#8220;.&#8221;</span>,<span style="color: #727272;">&#8220;,&#8221;</span><span style="color: #ff0000;">)</span>;<span style="color: #0000ff;">var</span> str <span style="color: #ff0000;">=</span> retorno.<span style="color: #6619bc;">substr</span><span style="color: #ff0000;">(-</span><span style="color: #009919;">3</span><span style="color: #ff0000;">)</span>;</p>
<p><span style="color: #0000ff;">for</span><span style="color: #ff0000;">(</span><span style="color: #0000ff;">var</span> i <span style="color: #ff0000;">=</span> <span style="color: #009919;">2</span>; i<span style="color: #ff0000;">&lt;=</span><span style="color: #cc4c00;">Math</span>.<span style="color: #6619bc;">floor</span><span style="color: #ff0000;">(</span>retorno.<span style="color: #0000ff;">length </span>/ <span style="color: #009919;">3</span><span style="color: #ff0000;">)</span>; i<span style="color: #ff0000;">++){</span><br />
<span style="color: #0000ff;">if</span><span style="color: #ff0000;">(</span>i <span style="color: #ff0000;">&gt; </span><span style="color: #009919;">2</span><span style="color: #ff0000;">){</span><br />
str <span style="color: #ff0000;">=</span> <span style="color: #727272;">&#8220;.&#8221;</span> <span style="color: #ff0000;">+</span> str;<br />
<span style="color: #ff0000;">}</span></p>
<p>str <span style="color: #ff0000;">=</span> retorno.<span style="color: #6619bc;">substr</span><span style="color: #ff0000;">(-</span>i<span style="color: #ff0000;">*</span><span style="color: #009919;">3</span>,<span style="color: #009919;">3</span><span style="color: #ff0000;">)</span> <span style="color: #ff0000;">+</span> str;<br />
<span style="color: #ff0000;">}</span></p>
<p><span style="color: #0000ff;">if</span><span style="color: #ff0000;">(</span>retorno.<span style="color: #0000ff;">length </span>% <span style="color: #009919;">3</span> <span style="color: #ff0000;">!=</span> <span style="color: #009919;">0</span><span style="color: #ff0000;">){</span><br />
<span style="color: #0000ff;">if</span><span style="color: #ff0000;">(</span>retorno.<span style="color: #0000ff;">length </span>/ <span style="color: #009919;">3</span><span style="color: #ff0000;">&gt;</span><span style="color: #009919;">2</span><span style="color: #ff0000;">){</span><br />
str <span style="color: #ff0000;">=</span> <span style="color: #727272;">&#8220;.&#8221;</span> <span style="color: #ff0000;">+</span> str;<br />
<span style="color: #ff0000;">}</span><br />
str <span style="color: #ff0000;">=</span> retorno.<span style="color: #6619bc;">substr</span><span style="color: #ff0000;">(</span><span style="color: #009919;">0</span>,retorno.<span style="color: #0000ff;">length </span>% <span style="color: #009919;">3</span><span style="color: #ff0000;">)</span> <span style="color: #ff0000;">+</span> str;<br />
<span style="color: #ff0000;">}</span></p>
<p>retorno <span style="color: #ff0000;">=</span> str;<br />
<span style="color: #0000ff;">return</span> retorno;<br />
<span style="color: #ff0000;">}</span></p>
</div>
<h3 class="bsuite_related_bypageviews">People who looked at this item also looked at&#8230;</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2009/07/03/desconto-para-hospedagem/'>Desconto para Hospedagem</a></li>
</ul>
<h3 class="bsuite_related">Related items</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/09/30/error-1063-argument-count-mismatch/'>Error #1063: Argument count mismatch</a></li>
<li><a href='http://brasilblog.com.br/2010/07/29/como-utilizar-captcha-em-seus-sites/'>Como utilizar captcha em seus sites</a></li>
<li><a href='http://brasilblog.com.br/2010/07/20/como-gerar-uma-senha-aleatoria-em-php/'>Como gerar uma senha aleatória em PHP</a></li>
<li><a href='http://brasilblog.com.br/2010/06/18/wordpress-3-0-instalado-mas-as-imagens-sumiram-leia-a-solucao/'>WordPress 3.0 instalado, mas as imagens sumiram &#8212; Leia a solução</a></li>
<li><a href='http://brasilblog.com.br/2010/04/20/numero-randomico-no-asp/'>Número randômico no ASP</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brasilblog.com.br/2010/09/20/inserindo-o-divisor-de-milhares-num-numero/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Páginas protegidas por senha no WP</title>
		<link>http://brasilblog.com.br/2010/09/16/paginas-protegidas-por-senha-no-wpr/</link>
		<comments>http://brasilblog.com.br/2010/09/16/paginas-protegidas-por-senha-no-wpr/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 20:29:53 +0000</pubDate>
		<dc:creator>Feijão Costa</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://brasilblog.com.br/?p=261</guid>
		<description><![CDATA[Estava montando uma página pra testes, e precisava deixar ela acessível somente com senha. A página na verdade era toda em PHP, e não trazia nada de conteúdo da página. A única coisa que eu queria é que ela fosse acessível pra o template. Criei ela como modelo de página do WordPress, e depois inseri [...]]]></description>
			<content:encoded><![CDATA[<p>Estava montando uma página pra testes, e precisava deixar ela acessível somente com senha. A página na verdade era toda em PHP, e não trazia nada de conteúdo da página. A única coisa que eu queria é que ela fosse acessível pra o template.</p>
<p>Criei ela como modelo de página do WordPress, e depois inseri uma nova página, sem conteúdo, somente usando aquele modelo, e no item &#8220;Visibilidade&#8221; coloquei &#8220;Protegida por senha&#8221;. Acessei a página e ele não restringiu o acesso.</p>
<p>A solução foi usar o comando<strong><em> post_password_required()</em><span style="font-weight: normal;">. Ele retorna &#8220;false&#8221; se a página não estiver protegida por senha, ou se a senha estiver no cache. Caso contrário retorna &#8220;true&#8221;. E pra poder solicitar que o visitante digite uma senha, bastou usar o &#8220;the_content&#8221; quando o retorno do comando anterior fosse true.</span></strong></p>
<p><strong><span style="font-weight: normal;">Aqui vai como ficou o trecho do código:</span></strong></p>
<blockquote><p><strong><span style="font-weight: normal;">If (post_passwrd_required()){</span></strong></p>
<p>the_content();</p>
<p><strong><span style="font-weight: normal;">}else{</span></strong></p>
<p>// O código da página que vc quer proteger</p>
<p><strong><span style="font-weight: normal;">}</span></strong></p></blockquote>
<h3 class="bsuite_related_bypageviews">People who looked at this item also looked at&#8230;</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/07/20/como-gerar-uma-senha-aleatoria-em-php/'>Como gerar uma senha aleatória em PHP</a></li>
</ul>
<h3 class="bsuite_related">Related items</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/07/06/onde-foi-parar-o-botao-publicar-do-wp/'>Onde foi parar o botão Publicar, do WP?</a></li>
<li><a href='http://brasilblog.com.br/2010/06/18/wordpress-3-0-instalado-mas-as-imagens-sumiram-leia-a-solucao/'>WordPress 3.0 instalado, mas as imagens sumiram &#8212; Leia a solução</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brasilblog.com.br/2010/09/16/paginas-protegidas-por-senha-no-wpr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como utilizar captcha em seus sites</title>
		<link>http://brasilblog.com.br/2010/07/29/como-utilizar-captcha-em-seus-sites/</link>
		<comments>http://brasilblog.com.br/2010/07/29/como-utilizar-captcha-em-seus-sites/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 12:31:21 +0000</pubDate>
		<dc:creator>Feijão Costa</dc:creator>
				<category><![CDATA[asp]]></category>
		<category><![CDATA[Captcha]]></category>
		<category><![CDATA[Códigos]]></category>

		<guid isPermaLink="false">http://brasilblog.com.br/?p=128</guid>
		<description><![CDATA[Precisei habilitar um captcha pra um site de votação, e no começo bati um pouco a cabeça, mas depois encontrei o caminho certo. Pra não reinventar a roda, usei o Captcha mais famoso existente, o reCAPTCHA, e aqui embaixo segue um passo a passo do que você precisa fazer pra utilizar ele no seu site [...]]]></description>
			<content:encoded><![CDATA[<p>Precisei habilitar um captcha pra um site de votação, e no começo bati um pouco a cabeça, mas depois encontrei o caminho certo.</p>
<p>Pra não reinventar a roda, usei o Captcha mais famoso existente, o <a title="reCAPTCHA" href="http://www.google.com/recaptcha" target="_blank">reCAPTCHA</a>, e aqui embaixo segue um passo a passo do que você precisa fazer pra utilizar ele no seu site também.</p>
<ol>
<li>Acesso o <a title="reCAPTCHA - Sign up" href="http://www.google.com/recaptcha/whyrecaptcha">site do reCAPTCHA</a>, e cadastre-se lá. Você pode depois inserir diversos sites no seu perfil;</li>
<li>Cadastre o site onde você irá utilizar o serviço. Esse cadastro é feito apenas para o domínio principal, e todos os subdomínios utilizam os mesmos dados. Atente para o fato que você pode habilitar suas Keys pra funcionar em qualquer URL, mas aconselho a usar isso somente se a sua aplicação vai rodar em vários domínios, fugindo ao seu controle;</li>
<li>Após o cadastro você tera dois dados: sua chave pública (<em>Public Key</em><span style="font-weight: normal;">)</span>, e a chave privada (<strong><em>Private Key</em><span style="font-weight: normal;">). Vamos usar elas no próximo passo;</span></strong></li>
<li><strong><span style="font-weight: normal;">Na <a title="reCAPTCHA - Documentation" href="http://code.google.com/apis/recaptcha/intro.html" target="_blank">documentação do reCAPTCHA</a> você encontra os plugins para as mais diversas linguagens. Nesse exemplo (que foi a minha necessidade) vamos fazer no ASP Clássivo. Eu uso o exemplo de códigos usado por eles, com uma pequena modificação. Abaixo segue o código que eu estou usando:</span></strong>
<div id="_mcePaste">&lt;%</div>
<div id="_mcePaste">recaptcha_challenge_field  = Request(&#8220;recaptcha_challenge_field&#8221;)</div>
<div id="_mcePaste">recaptcha_response_field   = Request(&#8220;recaptcha_response_field&#8221;)</div>
<div id="_mcePaste">recaptcha_public_key       = &#8220;SUA_CHAVE_PUBLICA&#8221; &#8216; your public key</div>
<div id="_mcePaste">recaptcha_private_key      = &#8220;SUA_CHAVE_PRIVADA&#8221; &#8216; your private key</div>
<div id="_mcePaste">&#8216; returns the HTML for the widget</div>
<div id="_mcePaste">function recaptcha_challenge_writer()</div>
<div id="_mcePaste">recaptcha_challenge_writer = _</div>
<div id="_mcePaste">&#8220;&lt;script type=&#8221;"text/javascript&#8221;"&gt;&#8221; &amp; _</div>
<div id="_mcePaste">&#8220;var RecaptchaOptions = {&#8221; &amp; _</div>
<div id="_mcePaste">&#8221;   theme : &#8216;clean&#8217;,&#8221; &amp; _</div>
<div id="_mcePaste">&#8221;   lang : &#8216;pt&#8217;,&#8221; &amp; _</div>
<div id="_mcePaste">&#8221;   tabindex : 0&#8243; &amp; _</div>
<div id="_mcePaste">&#8220;};&#8221; &amp; _</div>
<div id="_mcePaste">&#8220;&lt;/script&gt;&#8221; &amp; _</div>
<div id="_mcePaste">&#8220;&lt;script type=&#8221;"text/javascript&#8221;" src=&#8221;"http://www.google.com/recaptcha/api/challenge?k=&#8221; &amp; recaptcha_public_key &amp; &#8220;&#8221;"&gt;&lt;/script&gt;&#8221; &amp; _</div>
<div id="_mcePaste">&#8220;&lt;noscript&gt;&#8221; &amp; _</div>
<div id="_mcePaste">&#8220;&lt;iframe src=&#8221;"http://www.google.com/recaptcha/api/noscript?k=&#8221; &amp; recaptcha_public_key &amp; &#8220;&#8221;" frameborder=&#8221;"1&#8243;&#8221;&gt;&lt;/iframe&gt;&lt;&gt;&#8221; &amp; _</div>
<div id="_mcePaste">&#8220;&lt;textarea name=&#8221;"recaptcha_challenge_field&#8221;" rows=&#8221;"3&#8243;&#8221; cols=&#8221;"40&#8243;&#8221;&gt;&lt;/textarea&gt;&#8221; &amp; _</div>
<div id="_mcePaste">&#8220;&lt;input type=&#8221;"hidden&#8221;" name=&#8221;"recaptcha_response_field&#8221;"value=&#8221;"manual_challenge&#8221;"&gt;&#8221; &amp; _</div>
<div id="_mcePaste">&#8220;&lt;/noscript&gt;&#8221;</div>
<div id="_mcePaste">end function</div>
<div id="_mcePaste">&#8216; returns &#8220;&#8221; if correct, otherwise it returns the error response</div>
<div id="_mcePaste">function recaptcha_confirm(rechallenge,reresponse)</div>
<div id="_mcePaste">Dim VarString</div>
<div id="_mcePaste">VarString = _</div>
<div id="_mcePaste">&#8220;privatekey=&#8221; &amp; recaptcha_private_key &amp; _</div>
<div id="_mcePaste">&#8220;&amp;remoteip=&#8221; &amp; Request.ServerVariables(&#8220;REMOTE_ADDR&#8221;) &amp; _</div>
<div id="_mcePaste">&#8220;&amp;challenge=&#8221; &amp; rechallenge &amp; _</div>
<div id="_mcePaste">&#8220;&amp;response=&#8221; &amp; reresponse</div>
<div id="_mcePaste">Dim objXmlHttp</div>
<div id="_mcePaste">Set objXmlHttp = Server.CreateObject(&#8220;Msxml2.ServerXMLHTTP&#8221;)</div>
<div id="_mcePaste">objXmlHttp.open &#8220;POST&#8221;, &#8220;http://www.google.com/recaptcha/api/verify&#8221;, False</div>
<div id="_mcePaste">objXmlHttp.setRequestHeader &#8220;Content-Type&#8221;, &#8220;application/x-www-form-urlencoded&#8221;</div>
<div id="_mcePaste">objXmlHttp.send VarString</div>
<div id="_mcePaste">Dim ResponseString</div>
<div id="_mcePaste">ResponseString = split(objXmlHttp.responseText, vblf)</div>
<div id="_mcePaste">Set objXmlHttp = Nothing</div>
<div id="_mcePaste">if ResponseString(0) = &#8220;true&#8221; then</div>
<div id="_mcePaste">&#8216;They answered correctly</div>
<div id="_mcePaste">recaptcha_confirm = &#8220;&#8221;</div>
<div id="_mcePaste">else</div>
<div id="_mcePaste">&#8216;They answered incorrectly</div>
<div id="_mcePaste">recaptcha_confirm = ResponseString(1)</div>
<div id="_mcePaste">end if</div>
<div id="_mcePaste">end function</div>
<div id="_mcePaste">%&gt;</div>
</li>
<li>Insira o código acima em um arquivo <strong>.asp</strong>, por exemplo <strong>inc.captcha.asp</strong>, não esquecendo de inserir sua chave pública e sua chave privada no início do arquivo;</li>
<li>Crique um arquivo chamado <strong>formulario.asp</strong> e nele você vai inserir seu formulário normalmente, no início do arquivos vamos fazer o include do <strong>inc.captcha.asp</strong> e no formulário vamos inserir a chamada para o captcha. Exemlpo:<br />
&lt;!&#8211;#include file=&#8221;inc.captcha.asp&#8221;&#8211;&gt;<br />
&lt;html&gt;<br />
&#8230;<br />
&lt;form name=&#8221;formulario&#8221; method=&#8221;post&#8221; action=&#8221;processa.asp&#8221;&gt;<br />
&#8230;<br />
&lt;%=recaptcha_challenge_writer()%&gt;<br />
&lt;input type=&#8221;submit&#8221;&gt;<br />
&lt;/form&gt;<br />
&lt;/html&gt;</li>
<li>O próximo passo será criar o <strong>processa.asp</strong> que irá receber os dados do seu formulário. Nesse arquivo você vai novamente fazer o include do <strong>inc.captcha.asp</strong>, e rodar a função de verificação. Se o captcha foi digitado corretamente ele retorna uma string vazia, caso contrário retorna um erro. Abaixo um exemplo pro tratamento:<br />
&lt;!&#8211;#include file=&#8221;inc.captcha.asp&#8221;&#8211;&gt;<br />
validaCaptcha = recaptcha_confirm(recaptcha_challenge_field,recaptcha_response_field)<br />
if(validaCaptcha = &#8220;&#8221;) then<br />
Response.write(&#8220;Sucesso!&#8221;)<br />
else<br />
Reponse.write(&#8220;Erro!&#8221;)<br />
end if<br />
%&gt;</li>
</ol>
<p>O básico esta ai. Com isso da pra você já brincar um pouco com o reCAPTCHA. Vale gastar alguns minutos lendo um pouco a documentação, inclusive sobre a parte de personalização. Sucesso ai!<br />
<h3 class="bsuite_related_bypageviews">People who looked at this item also looked at&#8230;</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/07/20/como-gerar-uma-senha-aleatoria-em-php/'>Como gerar uma senha aleatória em PHP</a></li>
<li><a href='http://brasilblog.com.br/2010/04/07/monstros-feitos-em-css/'>Monstros feitos em CSS</a></li>
<li><a href='http://brasilblog.com.br/2010/07/12/brincando-com-o-layout-do-youtube/'>Brincando com o layout do YouTube</a></li>
</ul>
<h3 class="bsuite_related">Related items</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/04/20/numero-randomico-no-asp/'>Número randômico no ASP</a></li>
<li><a href='http://brasilblog.com.br/2010/09/20/inserindo-o-divisor-de-milhares-num-numero/'>Inserindo o divisor de milhares num número</a></li>
<li><a href='http://brasilblog.com.br/2010/07/20/como-gerar-uma-senha-aleatoria-em-php/'>Como gerar uma senha aleatória em PHP</a></li>
<li><a href='http://brasilblog.com.br/2010/06/18/wordpress-3-0-instalado-mas-as-imagens-sumiram-leia-a-solucao/'>WordPress 3.0 instalado, mas as imagens sumiram &#8212; Leia a solução</a></li>
<li><a href='http://brasilblog.com.br/2010/04/07/monstros-feitos-em-css/'>Monstros feitos em CSS</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brasilblog.com.br/2010/07/29/como-utilizar-captcha-em-seus-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Truques com seu endereço de e-mail do Gmail</title>
		<link>http://brasilblog.com.br/2010/07/21/truques-com-seu-endereco-de-e-mail-do-gmail/</link>
		<comments>http://brasilblog.com.br/2010/07/21/truques-com-seu-endereco-de-e-mail-do-gmail/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 05:33:06 +0000</pubDate>
		<dc:creator>Feijão Costa</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://brasilblog.com.br/?p=123</guid>
		<description><![CDATA[Hoje conversando com o Daniel que trabalha comigo, descobri uma coisa muito interessante: os &#8220;.&#8221; num endereço de e-mail do gmail são facultativos. Isso mesmo. Tanto faz você mandar um e-mail para fulano.silva@gmail.com como para fulanosilva@gmail.com. Ambos irão para a mesma pessoa. Tenha seu e-mail &#8220;.&#8221; ou não, eles podem ser inseridos repetidas vezes no [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje conversando com o Daniel que trabalha comigo, descobri uma coisa muito interessante: os &#8220;.&#8221; num endereço de e-mail do gmail são facultativos. Isso mesmo. Tanto faz você mandar um e-mail para <strong>fulano.silva@gmail.com</strong> como para <strong>fulanosilva@gmail.com</strong>. Ambos irão para a mesma pessoa.</p>
<p>Tenha seu e-mail &#8220;.&#8221; ou não, eles podem ser inseridos repetidas vezes no seu endereço. E não é soh isso. Sua conta de e-mail pode ter diversos <em><strong>aliases </strong></em>(apelidos) sem muito trabalho. Explico: adicionando um &#8220;+&#8221; imediatamente antes do arroba, seguido por qualquer texto, também vai pra sua caixa de mensagens. Exemplo:<strong> fulanosilva+listas@gmail.com</strong> vai pra conta <strong>fulanosilva@gmail.com</strong>.</p>
<p>Pode parecer besteira, mas essa facilidade de criar <em><strong>alias</strong></em> pode te ajudar na organização da sua caixa de entrada, e na criação de regras pra gerenciar seus e-mails quando chegam. Como no exemplo acima, você pode usar pra todas as suas listas de e-mail o endereço com o +listas e criar uma regra pra sempre que vir e-mail pra esse endereço, cair direto numa pasta soh pra e-mails de listas, e assim por diante.</p>
<p>Legal né? Anote essa daí, porque eu achei muito interessante.<br />
<h3 class="bsuite_related_bypageviews">People who looked at this item also looked at&#8230;</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/06/28/calibre-sua-bateria-do-macbook/'>Calibre sua bateria do Macbook</a></li>
<li><a href='http://brasilblog.com.br/2010/07/13/resizemybrowser-guarde-esse-link/'>resizeMyBrowser &#8212; Guarde esse link!</a></li>
<li><a href='http://brasilblog.com.br/2010/04/07/monstros-feitos-em-css/'>Monstros feitos em CSS</a></li>
<li><a href='http://brasilblog.com.br/2010/07/20/como-gerar-uma-senha-aleatoria-em-php/'>Como gerar uma senha aleatória em PHP</a></li>
<li><a href='http://brasilblog.com.br/2010/09/30/google-street-view-ja-esta-disponivel-em-sao-paulo/'>Google street view já esta disponível em São Paulo</a></li>
</ul>
<h3 class="bsuite_related">Related items</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2011/07/30/z-index-inverso-via-css/'>Z-index inverso via css</a></li>
<li><a href='http://brasilblog.com.br/2010/09/30/google-street-view-ja-esta-disponivel-em-sao-paulo/'>Google street view já esta disponível em São Paulo</a></li>
<li><a href='http://brasilblog.com.br/2010/09/30/error-1063-argument-count-mismatch/'>Error #1063: Argument count mismatch</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brasilblog.com.br/2010/07/21/truques-com-seu-endereco-de-e-mail-do-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como gerar uma senha aleatória em PHP</title>
		<link>http://brasilblog.com.br/2010/07/20/como-gerar-uma-senha-aleatoria-em-php/</link>
		<comments>http://brasilblog.com.br/2010/07/20/como-gerar-uma-senha-aleatoria-em-php/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 23:56:52 +0000</pubDate>
		<dc:creator>Feijão Costa</dc:creator>
				<category><![CDATA[Códigos]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://brasilblog.com.br/?p=116</guid>
		<description><![CDATA[Se você precisa gerar um trecho de texto aleatório pra usar como uma senha automática, ou algo do tipo, escrevi um código bem simples para fazer isso. Nesso código uso o comando range do PHP, que gera um array com uma lista de valores incrementando do menor ao maior. Explico: range(1,9) vai gerar um array, [...]]]></description>
			<content:encoded><![CDATA[<p>Se você precisa gerar um trecho de texto aleatório pra usar como uma senha automática, ou algo do tipo, escrevi um código bem simples para fazer isso.</p>
<p>Nesso código uso o comando <em><strong>range</strong></em> do PHP, que gera um array com uma lista de valores incrementando do menor ao maior. Explico: <em><strong>range</strong></em><strong>(</strong>1,9) vai gerar um array, onde os valores vão de 1 a 9. Esse comando aceita letras também. Abaixo segue o código:</p>
<blockquote><p><strong>function</strong> geraSenha($ln=8){<br />
.    $chars = array_merge(range(&#8216;a&#8217;, &#8216;z&#8217;), range(0, 9));<br />
.    shuffle($chars);<br />
.    return(substr(implode($chars),0,$ln));<br />
}</p></blockquote>
<p>Nessa função você pode enviar o tamanho que quer da sua string, ou deixar que automaticamente ele gerará com tamanho de 8 caractere. Lembrando, a função vai retornar um texto mesmo, e não um array.</p>
<p>Faça bom proveito.<br />
<h3 class="bsuite_related_bypageviews">People who looked at this item also looked at&#8230;</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/04/07/monstros-feitos-em-css/'>Monstros feitos em CSS</a></li>
<li><a href='http://brasilblog.com.br/2010/07/13/resizemybrowser-guarde-esse-link/'>resizeMyBrowser &#8212; Guarde esse link!</a></li>
<li><a href='http://brasilblog.com.br/2010/06/28/calibre-sua-bateria-do-macbook/'>Calibre sua bateria do Macbook</a></li>
<li><a href='http://brasilblog.com.br/2009/04/01/erro-n%c2%ba-121-no-mysql/'>Erro nº 121 no MySql</a></li>
<li><a href='http://brasilblog.com.br/2010/09/16/paginas-protegidas-por-senha-no-wpr/'>Páginas protegidas por senha no WP</a></li>
</ul>
<h3 class="bsuite_related">Related items</h3>
<ul class="bsuite_related">
<li><a href='http://brasilblog.com.br/2010/09/20/inserindo-o-divisor-de-milhares-num-numero/'>Inserindo o divisor de milhares num número</a></li>
<li><a href='http://brasilblog.com.br/2010/07/29/como-utilizar-captcha-em-seus-sites/'>Como utilizar captcha em seus sites</a></li>
<li><a href='http://brasilblog.com.br/2010/06/18/wordpress-3-0-instalado-mas-as-imagens-sumiram-leia-a-solucao/'>WordPress 3.0 instalado, mas as imagens sumiram &#8212; Leia a solução</a></li>
<li><a href='http://brasilblog.com.br/2010/04/20/numero-randomico-no-asp/'>Número randômico no ASP</a></li>
<li><a href='http://brasilblog.com.br/2010/04/07/monstros-feitos-em-css/'>Monstros feitos em CSS</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brasilblog.com.br/2010/07/20/como-gerar-uma-senha-aleatoria-em-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

