<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>André L. S.</title>
	
	<link>http://www.andrels.com/wp-pt_BR</link>
	<description>Desenvolvimento de Softwares, Tecnologia e Games</description>
	<lastBuildDate>Mon, 07 May 2012 13:23:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AndreLS-pt_BR" /><feedburner:info uri="andrels-pt_br" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Motorola Milestone A853 e Atrix – Resolvendo problema de queda de conexão 3G</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/tMAGmV0B_PM/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/05/motorola-milestone-a853-e-atrix-resolvendo-problema-de-queda-de-conexao-3g/#comments</comments>
		<pubDate>Mon, 07 May 2012 13:23:10 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Dispositivos]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[atrix]]></category>
		<category><![CDATA[conexão]]></category>
		<category><![CDATA[milestone]]></category>
		<category><![CDATA[motorola]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=642</guid>
		<description><![CDATA[Donos de Motorola Milestone (A853) reclamam muito da instabilidade do sinal 3G em locais específicos, geralmente perto do centro da<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/05/motorola-milestone-a853-e-atrix-resolvendo-problema-de-queda-de-conexao-3g/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Donos de Motorola Milestone (A853) reclamam muito da instabilidade do sinal 3G em locais específicos, geralmente perto do centro da cidade, onde existe uma concentração muito grande de antenas.</p>
<p>Para você ter uma ideia, trabalho próximo da Avenida Paulista, no centro novo de São Paulo, local onde sinal de 3G não é problema. Porém, o sinal do meu Milestone sempre cai, mas isso não é privilégio apenas de proprietários do Milestone, conheço algumas pessoas que possuem o Motorola Atrix e relaram o mesmo problema.</p>
<p>Para quem tem o Atrix, basta, apenas, selecionar a opção &#8220;Usar somente rede 3G&#8221; nas configurações de Redes Móveis. No Milestone não existe esta opção no menu de Configurações.</p>
<p>Então, como proceder?</p>
<p>Simples, na tela de discagem do número de telefone digite <strong>*#*#4636#*#*</strong>, irá abrir um menu configurações, selecione a opção &#8220;Informações do telefone&#8221;:</p>
<p><img class="aligncenter size-full wp-image-643" title="Menu Configurações" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/05/ss1.png" alt="" width="270" height="480" /></p>
<p>Role a próxima tela para cima e na opção &#8220;Definir tipo de rede preferido&#8221; escolha &#8220;WCDMA only&#8221;.</p>
<p><img class="aligncenter size-full wp-image-644" title="WCDMA Only" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/05/ss2.png" alt="" width="270" height="480" /></p>
<p>Repare que a conexão foi restaurada na hora. Pressione o botão home (&#8220;casinha&#8221;) para voltar a tela inicial e pronto!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "smartphone, motorola, lg, nokia, apple, iphone, eletronico, telefone, celular";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/FN_tIHZvNND4MWG39oHTgppXFjk/0/da"><img src="http://feedads.g.doubleclick.net/~a/FN_tIHZvNND4MWG39oHTgppXFjk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FN_tIHZvNND4MWG39oHTgppXFjk/1/da"><img src="http://feedads.g.doubleclick.net/~a/FN_tIHZvNND4MWG39oHTgppXFjk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/tMAGmV0B_PM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/05/motorola-milestone-a853-e-atrix-resolvendo-problema-de-queda-de-conexao-3g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/05/motorola-milestone-a853-e-atrix-resolvendo-problema-de-queda-de-conexao-3g/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Infográfico – Perfil dos desenvolvedores Android</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/OhVbPONzYdA/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/04/infografico-perfil-dos-desenvolvedores-para-android/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 11:43:43 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[infográfico]]></category>
		<category><![CDATA[noticia]]></category>
		<category><![CDATA[perfil]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=634</guid>
		<description><![CDATA[Você que tem um smartphone Android e frequenta muito o Google Play à procura de aplicativos para o dia-a-dia ou<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/04/infografico-perfil-dos-desenvolvedores-para-android/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Você que tem um smartphone Android e frequenta muito o Google Play à procura de aplicativos para o dia-a-dia ou joguinhos já parou para pensar como devem ser as pessoas que desenvolvem estes programas? Será que são jovens? O que fazem nas horas vagas?</p>
<p>A <a href="http://www.startapp.com" target="_blank">Startapp</a> publicou um infográfico sobre o perfil dos desenvolvedores para Android.</p>
<div class="wp-caption aligncenter" style="width: 537px"><a href="http://www.startapp.com/android-developer-infographic/"><img class="   " title="Tamanho completo" src="http://www.startapp.com/android-developer-infographic/android-developer-infographic.jpg" alt="Infrografico - Desenvolvedores Android" width="527" height="1583" /></a><p class="wp-caption-text">Retirado do site Startapp - http://www.startapp.com</p></div>
<p>&nbsp;</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "smartphone, google, eletronico, iphone, ipad, xoom, galaxy, samsung, motorola, lg";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/Fb2dqFq1bOjAMlTiyO1I5N08jU0/0/da"><img src="http://feedads.g.doubleclick.net/~a/Fb2dqFq1bOjAMlTiyO1I5N08jU0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Fb2dqFq1bOjAMlTiyO1I5N08jU0/1/da"><img src="http://feedads.g.doubleclick.net/~a/Fb2dqFq1bOjAMlTiyO1I5N08jU0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/OhVbPONzYdA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/04/infografico-perfil-dos-desenvolvedores-para-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/04/infografico-perfil-dos-desenvolvedores-para-android/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>RE6 – Capcom antecipa o lançamento de Resident Evil 6</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/OlkCiATCtsE/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/04/re6-capcom-antecipa-o-lancamento-de-resident-evil-6/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 16:13:57 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[capcom]]></category>
		<category><![CDATA[pc]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[re]]></category>
		<category><![CDATA[resident evil]]></category>
		<category><![CDATA[xbox360]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=627</guid>
		<description><![CDATA[Fãs da franquia Resident Evil só tem a comemorar. De acordo com o site internacional GameSpot, a Capcom resolveu antecipar a data<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/04/re6-capcom-antecipa-o-lancamento-de-resident-evil-6/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-630" title="R6_logo" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/04/original.jpg" alt="" width="450" height="301" /></p>
<p>Fãs da franquia Resident Evil só tem a comemorar. De acordo com o site internacional <a href="http://www.gamespot.com/" target="_blank">GameSpot</a>, a Capcom resolveu antecipar a data de lançamento do novo título da série Resident Evil para 2 de outubro, antecipado mais de um mês da data original (20 de novembro).</p>
<p>A nova data foi anunciada pelo produtor executivo Hiroyuki Kobayashi na Capcom&#8217;s Captivate, onde disse que a decisão foi motivada pela reação positiva dos jogadores e fãs da série ao lançamento do novo trailer em janeiro.</p>
<p>Assista o trailer:</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/sS_bGpe9qE8?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent' frameborder='0'></iframe></span></p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "video game, video, game, jogo, eletronico, entretenimento";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/wZpRAbUL4BpfcRhYnzvycid-hZk/0/da"><img src="http://feedads.g.doubleclick.net/~a/wZpRAbUL4BpfcRhYnzvycid-hZk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/wZpRAbUL4BpfcRhYnzvycid-hZk/1/da"><img src="http://feedads.g.doubleclick.net/~a/wZpRAbUL4BpfcRhYnzvycid-hZk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/OlkCiATCtsE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/04/re6-capcom-antecipa-o-lancamento-de-resident-evil-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/04/re6-capcom-antecipa-o-lancamento-de-resident-evil-6/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Battlefield 3 – ‘Kit shortcut’, para quem tem pressa em evoluir</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/lixM9AnLkxk/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/04/battlefield-3-kit-shortcut-para-quem-tem-pressa-em-evoluir/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 15:33:36 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[bf3]]></category>
		<category><![CDATA[dice]]></category>
		<category><![CDATA[ea]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[jogo]]></category>
		<category><![CDATA[pc]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=600</guid>
		<description><![CDATA[A Dice, produtora de Battlefield 3, encontrou uma forma de arrecadar com os jogadores que tem pressa em destravar armas<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/04/battlefield-3-kit-shortcut-para-quem-tem-pressa-em-evoluir/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://www.dice.se/" target="_blank">Dice</a>, produtora de Battlefield 3, encontrou uma forma de arrecadar com os jogadores que tem pressa em destravar armas e acessórios para as classes do jogo, chama-se &#8217;Kit Shortcut&#8217;.</p>
<p>São seis pacotes: <em>Assault Kit Pack</em>, <em>Engineer Kit Pack</em>, <em>Support Kit Pack</em>, <em>Recon Kit Pack</em>, <em>Co-op Kit Pack </em>e<em> Ultimate Shortcut Bundle.</em> Cada pacote contém o &#8216;set&#8217; completo de armas da respectiva classe.</p>
<p>Apesar de tentador, não é tão barato quanto parece. Cada pacote, com exceção do Co-op Kit Pack e do Ultimate Shortcut Bundle, custa US$ 6,99 (R$ 12,90) ou 660 MS Points, o Co-op Kit Pack custa US$ 4,99 (R$ 9,50) ou 400 MS Points e o pacote Ultimate Shortcut Bundle custa US$ 39,99 (R$ 71,90) ou 3200 MS Points.</p>
<p>Veja abaixo o que cada pacote oferece e veja se vale a pena investir para ter tudo desbloqueado ou se o melhor a fazer é galgar até alcançar essas conquistas com o seu próprio esforço.</p>
<p><img class="size-full wp-image-608 alignnone" title="banner_kit_shortcuts" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/04/banner_kit_shortcuts.jpg" alt="" width="320" height="107" /></p>
<h4><em>Assault Kit Pack</em></h4>
<ul>
<li>M416 RIFLE</li>
<li>AEK-971 RIFLE</li>
<li>M16A4 RIFLE</li>
<li>F2000 RIFLE</li>
<li>AN-94 RIFLE</li>
<li>M16A3 RIFLE (RUSSIAN)</li>
<li>AK-74M RIFLE (US)</li>
<li>M26 SHOTGUN SYSTEM</li>
<li>M320 GRENADE LAUNCHER</li>
<li>DEFIBRILLATOR</li>
</ul>
<h4><em> Engineer Kit Pack</em></h4>
<ul>
<li>M4 RIFLE</li>
<li>A-91 RIFLE</li>
<li>G36C RIFLE</li>
<li>SCAR-H RIFLE</li>
<li>AKS-74U RIFLE (RUSSIAN)</li>
<li>M14A1 RIFLE (US)</li>
<li>FGM-148 JAVELIN</li>
<li>FIM-92 STINGER</li>
<li>M15 AT MINES</li>
<li>SA-18 IGLA</li>
<li>EOD BOT</li>
</ul>
<h4><em></em> <em>Support Kit Pack</em></h4>
<ul>
<li>M249 LMG</li>
<li>M240B LMG</li>
<li>M60E4 LMG</li>
<li>PKP PECHENEG LMG</li>
<li>M27 IAR RIFLE (RUSSIAN)</li>
<li>RPK-74M RIFLE (US)</li>
<li>M224 MORTAR</li>
<li>CLAYMORE MINES</li>
<li>C4 EXPLOSIVES</li>
</ul>
<h4><em></em> <em>Recon Kit Pack</em></h4>
<ul>
<li>SV98 RIFLE</li>
<li>SKS RIFLE</li>
<li>M40A5 RIFLE</li>
<li>M98B RIFLE</li>
<li>MK11 RIFLE (RUSSIAN)</li>
<li>SVD RIFLE (US)</li>
<li>MAV</li>
<li>SOFLAM</li>
<li>T-UGS SENSOR</li>
</ul>
<div><span style="font-weight: normal;"><br />
</span></div>
<h4> <em>Co-Op Kit Pack (7 armas debloqueadas no modo Co-op)</em></h4>
<div>
<ul>
<li>REX PISTOL</li>
</ul>
<p><img class="alignright size-full wp-image-607" title="2-overlay" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/04/2-overlay.png" alt="" width="193" height="228" /></p>
<ul>
<li>KH2000 ASSAULT RIFLE</li>
<li>MP7 POW</li>
<li>M39 EBR</li>
<li>M93R PISTOL</li>
<li>SG553 POW</li>
<li>G3A3 ASSAULT RIFLE</li>
</ul>
<h4><em></em><em>Ultimate Shortcut Bundle</em></h4>
<ul>
<li>Todos os itens dos pacotes acima</li>
<li>Todos os acessórios e melhorias para veículos terrestres</li>
<li>Todos os acessórios e melhorias para veículos aéreos</li>
</ul>
<p>Eu, particularmente, prefiro desbloquear os recursos conforme minha experiência melhora no decorrer do jogo, o que é uma forma de recompensa!</p>
<p>O que você acha? Comente!</p>
</div>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "video, game, eletronico, jogo, pc, ps3, xbox, computador, entretenimento, diversao";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/jHAWO0qqAIQk7AqHfJWupjr35p0/0/da"><img src="http://feedads.g.doubleclick.net/~a/jHAWO0qqAIQk7AqHfJWupjr35p0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jHAWO0qqAIQk7AqHfJWupjr35p0/1/da"><img src="http://feedads.g.doubleclick.net/~a/jHAWO0qqAIQk7AqHfJWupjr35p0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/lixM9AnLkxk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/04/battlefield-3-kit-shortcut-para-quem-tem-pressa-em-evoluir/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/04/battlefield-3-kit-shortcut-para-quem-tem-pressa-em-evoluir/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Android – Manipulando arquivos entre o emulador e o computador</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/HijpvRoUmTw/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/03/android-manipulando-arquivos-entre-o-emulador-e-o-computador/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 01:08:45 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[adt]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[arquivo]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=542</guid>
		<description><![CDATA[Olá, pessoal! Aqui vai um tutorial bem interessante para quem precisa manipular arquivos entre seu computador e o emulador do<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/03/android-manipulando-arquivos-entre-o-emulador-e-o-computador/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Olá, pessoal!</p>
<p>Aqui vai um tutorial bem interessante para quem precisa manipular arquivos entre seu computador e o emulador do Android SDK.</p>
<p>Para quem não sabe, existem várias maneiras de copiar arquivos do seu computador para dentro do emulador e do emulador para o computador, aqui mostrarei duas formas de fazê-los.</p>
<h3>Usando o Eclipse &#8211; plugin ADT</h3>
<p>Será necessário executar o emulador, caso ainda não esteja rodando, para isso, clique no botão &#8220;Opens the Android Virtual Device Manager&#8221;, localizado na barra de ferramentas do Eclipse.</p>
<p style="text-align: center;"><img class="aligncenter  wp-image-556" title="Opens the Android Virtual Device Manager" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_1.png" alt="" width="352" height="114" /></p>
<p style="text-align: left;">Selecione o dispositivo na lista e clique em &#8220;Start&#8221;.</p>
<p style="text-align: center;"><img class="aligncenter  wp-image-557" title="Android Virtual Device Manager" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_2.png" alt="" width="504" height="360" /></p>
<p style="text-align: left;">Aguarde o emulador iniciar.</p>
<p style="text-align: left;">Volte ao Eclipse e abra a &#8220;view&#8221; &#8220;File Explorer&#8221; do ADT clicando no menu Window &gt; Show View &gt; Other&#8230;</p>
<p style="text-align: center;"><img class="aligncenter  wp-image-558" title="Window_other" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_3.png" alt="" width="374" height="315" /></p>
<p style="text-align: left;">Selecione a opção Android &gt; File Explorer.</p>
<p style="text-align: center;"><img class="aligncenter  wp-image-559" title="file_explorer" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_4.png" alt="" width="218" height="307" /></p>
<p>A aba &#8220;File Explorer&#8221; deverá aparecer no painel localizado na parte de baixo.</p>
<h4 style="padding-top: 20px;">Copiando arquivos do computador para o emulador</h4>
<p>Selecione o diretório na lista onde você gostaria de incluir o arquivo e clique no botão &#8220;Push a file onto the device&#8221; (<img class="alignnone size-full wp-image-564" title="Push a file onto device" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_btn_push.png" alt="" width="18" height="21" />).</p>
<p style="text-align: center;"><img class="wp-image-560 aligncenter" title="Push a file onto device" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_5.png" alt="" width="483" height="118" /></p>
<p>Selecione o arquivo e aguarde a inclusão.</p>
<p style="text-align: center;"><img class=" wp-image-561 aligncenter" title="Arquivo" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_6.png" alt="" width="275" height="104" /></p>
<h4 style="padding-top: 20px;">Copiando arquivo do emulador para o computador</h4>
<p>Com o emulador em execução e a aba &#8220;File Explorer&#8221; aberta (veja acima), selecione o arquivo que você deseja copiar para o computador e clique no botão &#8220;Pull a file from device&#8221; (<img class="alignnone size-full wp-image-563" title="Pull a file from device" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_btn_pull.png" alt="" width="22" height="20" />).</p>
<p style="text-align: center;"><img class="aligncenter  wp-image-562" title="Pull a file from device" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_7.png" alt="" width="484" height="127" /></p>
<p style="text-align: left;">Selecione o local onde deseja armazenar o arquivo.</p>
<h3 style="text-align: left; padding-top: 20px;">Usando o Prompt de Comando</h3>
<p>Neste caso não usaremos a IDE Eclipse, somente as ferramentas disponíveis no Android SDK e o prompt de comando.</p>
<p>Abra o  &#8221;Android Virtual Device Manager&#8221;. Para isso, execute o arquivo &#8220;AVD Manager.exe&#8221;, que deve estar no diretório de instalação do Android SDK.</p>
<p>Selecione o dispositivo na lista e clique em &#8220;Start&#8221;.</p>
<p style="text-align: center;"><img class="aligncenter  wp-image-557" title="Android Virtual Device Manager" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_2.png" alt="" width="504" height="360" /></p>
<p>Aguarde o emulador iniciar e, em seguida, abra o prompt de comando. Digite o comando:</p>
<pre class="brush:shell">&lt;DIRETÓRIO-ANDROID-SDK&gt;/platform-tools/adb devices</pre>
<h5>Substitua &#8220;&lt;DIRETÓRIO-ANDROID-SDK&gt;&#8221; pelo caminho de instalação do Android SDK.</h5>
<p>Uma lista de dispositivos deverá ser exibida, no nosso caso, o emulador:</p>
<pre class="brush:shell">List of devices attache
emulator-5554   device</pre>
<p>Conecte o adb ao emulador digitando o comando</p>
<pre class="brush:shell">&lt;DIRETÓRIO-ANDROID-SDK&gt;/platform-tools/adb connect localhost:5554</pre>
<h5>A porta &#8220;5554&#8243; é a mesma que aparece na descrição &#8220;emulator-5554&#8243; e no título do emulador <img class="alignnone  wp-image-581" title="5554" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_8.png" alt="" width="174" height="22" />.</h5>
<p>A instrução &#8220;connected to localhost:5554&#8243; será exibida.</p>
<h4 style="padding-top: 20px;">Copiando arquivos do computador para o emulador</h4>
<p>Para copiar um arquivo que está em um diretório no seu computador para o emulador, basta digitar o comando</p>
<pre class="brush:shell">&lt;DIRETÓRIO-ANDROID-SDK&gt;/platform-tools/adb push text.txt /sdcard</pre>
<h5>Você pode substituir a instrução &#8220;/sdcard&#8221; pelo caminho correto onde deseja armazenar o arquivo no emulador</h5>
<p style="text-align: left;"><span style="text-align: left;">Aguarde a cópia e pronto! O arquivo foi copiado para o emulador.</span></p>
<p style="text-align: left;"><img class="aligncenter" title="Arquivo terminal" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/03/post_542_9.png" alt="" width="451" height="95" /></p>
<h4 style="padding-top: 20px;">Copiando arquivos do emulador para o computador</h4>
<p>Caso queira recuperar um arquivo do emulador para o seu computador, utilize o comando</p>
<pre class="brush:shell">&lt;DIRETORIO-ANDROID-SDK&gt;/platform-tools/adbadb pull /sdcard/text.txt &lt;DIRETÓRIO-DESTINO&gt;</pre>
<h5>Substitua a instrução &#8220;&lt;DIRETÓRIO-DESTINO&gt;&#8221; pelo caminho completo onde deseja armazenar o arquivo</h5>
<p>Voilá! Arquivo copiado para o caminho que você definiu.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "eletronico, smartphone, iphone, android, celular, mobile, comunicacao, computador, programacao, curso";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/8JNdb_j8HTWuEGTaA8iy9TW7xeA/0/da"><img src="http://feedads.g.doubleclick.net/~a/8JNdb_j8HTWuEGTaA8iy9TW7xeA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8JNdb_j8HTWuEGTaA8iy9TW7xeA/1/da"><img src="http://feedads.g.doubleclick.net/~a/8JNdb_j8HTWuEGTaA8iy9TW7xeA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/HijpvRoUmTw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/03/android-manipulando-arquivos-entre-o-emulador-e-o-computador/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/03/android-manipulando-arquivos-entre-o-emulador-e-o-computador/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Novo patch de Battlefield 3 trará mudanças que prometem equilibrar o jogo</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/lRuMgHKb668/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/02/novo-patch-de-battlefield-3-trara-mudancas-que-prometem-equilibrar-o-jogo/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 16:50:24 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[battlefield 3]]></category>
		<category><![CDATA[jogos]]></category>
		<category><![CDATA[patch]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=525</guid>
		<description><![CDATA[Foi divulgado no blog oficial de Battlefield 3 a lista de possíveis alterações para o próximo patch. O patch, que<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/02/novo-patch-de-battlefield-3-trara-mudancas-que-prometem-equilibrar-o-jogo/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a class="bbli" href="http://sledge.boo-box.com/list/page/YmF0dGxlZmllbGQzJTJDK2JmMyUyQytlYV8jI19iYXJfIyNfdGFnZ2luZy10b29sLXdwXyMjXzE2NTIwMzU=-84"><img class="size-full wp-image-526 aligncenter" title="bf3_logo" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/02/images.jpg" alt="" width="183" height="275" /></a></p>
<p style="text-align: justify;">Foi divulgado no <a href="http://battlelog.battlefield.com/bf3/news/" target="_blank">blog</a> oficial de Battlefield 3 a lista de possíveis alterações para o próximo patch.</p>
<p style="text-align: justify;">O patch, que ainda não tem data definida para a publicação, além de correções de bugs, trará mudanças em algumas características do jogo, como alterações em armas, acessóris, veículos e nos modos Squad Deathmatch e Team Deathmatch.</p>
<p style="text-align: justify;">Entre as mudanças estão:</p>
<ul>
<li>MAV não poderá mais ser utilizado como elevador.</li>
<li>C4 não poderá ser detonada após o jogador morrer e renascer. Será possível ainda detoná-lo se o jogador for ressuscitado em menos de 5 segundos.</li>
<li>O mísseis guiados por laser poderão ser repelidos pelos sinalizadores (<em>Flares</em>).</li>
<li>Os danos causados por ataque anti-aéreo nos jatos serão diminuídos em 45%.</li>
<li>Armas semiautomáticas e disparos únicos (bolt), incluindo todas as shotguns acopladas à rifles, poderão atingir alvos com mais de 15 metros de distância com dano máximo.</li>
</ul>
<p style="text-align: justify;">Estas são algumas das possíveis alterações para o próximo <em>patch.</em> Acesse o <a href="http://battlelog.battlefield.com/bf3/news/view/2832654779195992365/">blog</a> oficial para conferir a lista completa (que não é pequena) em inglês.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "video, game, eletronico, jogo, pc, ps3, xbox, computador, entretenimento, diversao";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/p4pMXTI_qVAfkQaMEfeGQWDUmIM/0/da"><img src="http://feedads.g.doubleclick.net/~a/p4pMXTI_qVAfkQaMEfeGQWDUmIM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/p4pMXTI_qVAfkQaMEfeGQWDUmIM/1/da"><img src="http://feedads.g.doubleclick.net/~a/p4pMXTI_qVAfkQaMEfeGQWDUmIM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/lRuMgHKb668" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/02/novo-patch-de-battlefield-3-trara-mudancas-que-prometem-equilibrar-o-jogo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/02/novo-patch-de-battlefield-3-trara-mudancas-que-prometem-equilibrar-o-jogo/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Utter! – Comando de voz à altura do Android</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/vxcgZBd1vSk/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/02/utter-comando-de-voz-a-altura-do-android/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 12:01:01 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[comando]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[voz]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=502</guid>
		<description><![CDATA[O aplicativo que permite controlar seu Android através de comando de voz desde a versão 2.2(Froyo) e muito limitado em comparação<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/02/utter-comando-de-voz-a-altura-do-android/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-full wp-image-509" title="Voice-Search" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/02/Voice-Search.jpg" alt="" width="225" height="292" />O aplicativo que permite controlar seu Android através de comando de voz desde a versão 2.2(Froyo) e muito limitado em comparação ao Síri, assitente de voz da Apple.</p>
<p style="text-align: justify;">O Utter!, aplicativo que vem sendo desenvolvido por um membro da <a href="http://www.xda-developers.com/" target="_blank">XDA Developers</a>, promete desequilibrar a balança para o lado do robozinho verde.</p>
<p style="text-align: justify;">Aplicativos disponíveis no <a href="http://market.android.com" target="_blank">Android Market</a> permitem que você diga alguns comandos, como cálcular ou saber sobre condições do tempo. O Utter! permite que você consulte diversos serviços externos à ele, como consultar um aplicativo que informa horário do próximo trem ou fazer um cálculo, que ele executa os aplicativos que retorna com o resultado.</p>
<p style="text-align: justify;">O aplicativo ainda não está disponível, mas você pode ver como ele funciona no vídeo abaixo:</p>
<p><object width="560" height="315" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/MUI5MIMCTSI?version=3&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed width="560" height="315" type="application/x-shockwave-flash" src="http://www.youtube.com/v/MUI5MIMCTSI?version=3&amp;hl=en_US" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object><br />
[Via: <a href="http://phandroid.com/2012/02/14/utter-takes-android-speech-recognition-to-new-levels/" target="_blank">Phandroid</a>]</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "google, smartphone, android, celular, comunicacao, iphone, computador, apple, google, ipad";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/ey8ay8Lu-w8v-6Yrtg7VsKOLGcI/0/da"><img src="http://feedads.g.doubleclick.net/~a/ey8ay8Lu-w8v-6Yrtg7VsKOLGcI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ey8ay8Lu-w8v-6Yrtg7VsKOLGcI/1/da"><img src="http://feedads.g.doubleclick.net/~a/ey8ay8Lu-w8v-6Yrtg7VsKOLGcI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/vxcgZBd1vSk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/02/utter-comando-de-voz-a-altura-do-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/02/utter-comando-de-voz-a-altura-do-android/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Chrome para Android, finalmente!</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/oFeQUTy5q9g/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/02/chrome-para-android-finalmente/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 20:54:03 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Dispositivos]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[market]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=485</guid>
		<description><![CDATA[ Para quem não sabe, o navegador padrão do Android não é o Chrome, e sim uma implementação do Webkit. Surpreso?<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/02/chrome-para-android-finalmente/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-486" title="chrome_logo" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/02/chrome_logo.png" alt="" width="124" height="124" /> Para quem não sabe, o navegador padrão do Android não é o Chrome, e sim uma implementação do <a href="http://pt.wikipedia.org/wiki/WebKit" target="_blank">Webkit</a>. Surpreso?</p>
<p>As coisas estão mudando. Hoje (7), sorrateiramente, a Google colocou no Android Market a versão beta do seu navegador, o Chrome. Porém está disponível apenas para o ICS (Ice Cream Sandwich), ou versão superior. Espero que mudem isso ou, ao menos, tentem adapta-lo para uma versão mais &#8220;acessível&#8221;.</p>
<p>Abaixo o vídeo mostrando o funcionamento do browser.</p>
<h5 style="text-align: center;"><object style="height: 448px; width: 560px;" width="560" height="448" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="https://www.youtube.com/v/lVjw7n_U37A?version=3&amp;feature=player_embedded" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><embed style="height: 448px; width: 560px;" width="560" height="448" type="application/x-shockwave-flash" src="https://www.youtube.com/v/lVjw7n_U37A?version=3&amp;feature=player_embedded" allowFullScreen="true" allowScriptAccess="always" allowfullscreen="true" allowscriptaccess="always" /></object><br />
Android Market</h5>
<p>Infelizmente não possuo o Icecream Sandwich, então não poderei fazer um <em>review</em>, mas veja a descrição e os comentários de quem já baixo no <a href="https://market.android.com/details?id=com.android.chrome&amp;feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5hbmRyb2lkLmNocm9tZSJd" target="_blank">Android Market</a>.</p>
<p>Caso você já tenha experimentado, compartilhe sua experiência conosco. <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Valeu, galera!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "google, smartphone, android, celular, comunicacao, iphone, computador";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/SxgeHtY_zHa8KISq4yqRtQZXz3c/0/da"><img src="http://feedads.g.doubleclick.net/~a/SxgeHtY_zHa8KISq4yqRtQZXz3c/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/SxgeHtY_zHa8KISq4yqRtQZXz3c/1/da"><img src="http://feedads.g.doubleclick.net/~a/SxgeHtY_zHa8KISq4yqRtQZXz3c/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/oFeQUTy5q9g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/02/chrome-para-android-finalmente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/02/chrome-para-android-finalmente/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>iPhone – Assistente de voz permite fazer ligação, mesmo com o aparelho bloqueado com senha</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/mX4APMuGRxY/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/02/iphone-assistente-de-voz-permite-fazer-ligacao-mesmo-com-o-aparelho-bloqueado-com-senha/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 19:02:44 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Dispositivos]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[4g]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=471</guid>
		<description><![CDATA[Não sei se é um bug ou uma feature do assistente de voz dos iPhones 3G e 4G, mas, para<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/02/iphone-assistente-de-voz-permite-fazer-ligacao-mesmo-com-o-aparelho-bloqueado-com-senha/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/02/iphone4s.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="size-medium wp-image-475" title="iphone4s" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/02/iphone4s-300x237.jpg" alt="" width="300" height="237" /></a></p>
<p style="text-align: left;"><span style="text-align: center;">Não sei se é um </span><em style="text-align: center;">bug</em><span style="text-align: center;"> ou uma </span><em style="text-align: center;">feature</em><span style="text-align: center;"> do assistente de voz dos iPhones 3G e 4G, mas, para mim, é uma tremenda falha de segurança.</span></p>
<p>Para você que tem o iPhone 3G ou 4G bloqueado com senha e o assistente de voz habilitado, tente pressionar o botão <em>Home</em> na tela de desbloqueio por 5 segundos.</p>
<p>O assistente de voz é acionado, só falar o nome de alguém que está na sua lista que ele fará a ligação &#8220;normalmente&#8221;, também funciona com outros comandos.</p>
<p>Este é o comportamento padrão, usado pela maioria dos usuários, podendo ser desabilitado nas configurações do assistente de voz do aparelho.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "google, smartphone, android, celular, comunicacao, iphone, computador, telefonia, apple";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/wsts7nyvkLwG1mF93WjU-eay6v8/0/da"><img src="http://feedads.g.doubleclick.net/~a/wsts7nyvkLwG1mF93WjU-eay6v8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/wsts7nyvkLwG1mF93WjU-eay6v8/1/da"><img src="http://feedads.g.doubleclick.net/~a/wsts7nyvkLwG1mF93WjU-eay6v8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/mX4APMuGRxY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/02/iphone-assistente-de-voz-permite-fazer-ligacao-mesmo-com-o-aparelho-bloqueado-com-senha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/02/iphone-assistente-de-voz-permite-fazer-ligacao-mesmo-com-o-aparelho-bloqueado-com-senha/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Os 10 domínios brasileiros mais infectados segundo a Avast</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/FUu27MPWN5U/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/01/os-10-dominios-brasileiros-mais-infectados-segundo-a-avast/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 21:58:35 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[antivírus]]></category>
		<category><![CDATA[avast]]></category>
		<category><![CDATA[trojan]]></category>
		<category><![CDATA[vírus]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=462</guid>
		<description><![CDATA[A Avast, empresa de segurança desenvolvedora de antí-virus com o mesmo nome, mantém em seu site um relatório dos domínios mais<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/01/os-10-dominios-brasileiros-mais-infectados-segundo-a-avast/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-465 alignnone" title="Avast" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2012/01/avast_logo.gif" alt="" width="213" height="85" /></p>
<p>A <a href="http://www.avast.com" target="_blank">Avast</a>, empresa de segurança desenvolvedora de antí-virus com o mesmo nome, mantém em seu site um relatório dos domínios mais infectados de cada país, incluindo o Brasil.</p>
<p>Neste relatório é possível ver os top 10 de domínios disseminadores de vírus, trojans e outras pragas &#8220;computadorescas&#8221;.</p>
<p>10º futuroprofessor.com.br<br />
09º canalkids.com.br<br />
08º marmelada.com.br<br />
07º explorando.com.br<br />
06º bitscaverna.com.br<br />
05º hd1.com.br<br />
04º blogdocomputador.com.br<br />
03º podcats.com.br<br />
02º uol.com.br<br />
01º dowload.net.br</p>
<p>Você pode conferir o top 10 nacional e internacional de domínio infectados através do endereço <a href="http://www.avast.com/pt-br/maps" target="_blank">http://www.avast.com/pt-br/maps</a>.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "antivírus,anti-vírus, avast, computador, pc, segurança, ti";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/xwOPGzbaiBPxZTRll9nwLZLPTYg/0/da"><img src="http://feedads.g.doubleclick.net/~a/xwOPGzbaiBPxZTRll9nwLZLPTYg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/xwOPGzbaiBPxZTRll9nwLZLPTYg/1/da"><img src="http://feedads.g.doubleclick.net/~a/xwOPGzbaiBPxZTRll9nwLZLPTYg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/FUu27MPWN5U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/01/os-10-dominios-brasileiros-mais-infectados-segundo-a-avast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/01/os-10-dominios-brasileiros-mais-infectados-segundo-a-avast/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Compilando objetos inválidos do Oracle de maneira fácil</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/LGLBdhfG9bU/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2012/01/compilando-objetos-invalidos-do-oracle-de-maneira-facil/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 21:39:46 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[plsql]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=454</guid>
		<description><![CDATA[Quando se compila um objeto que é referenciado por vários outros objetos, estes ficam inválidos até que sejam recompilados novamente,<a href="http://www.andrels.com/wp-pt_BR/index.php/2012/01/compilando-objetos-invalidos-do-oracle-de-maneira-facil/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Quando se compila um objeto que é referenciado por vários outros objetos, estes ficam inválidos até que sejam recompilados novamente, coisa que o Oracle deveria fazer e, de alguma maneira, as vezes não faz.</p>
<p>Então aqui vai uma dica para quem tem de compilar várias <em>packages</em>, <em>procedures</em> e/ou <em>functions</em> inválidas diariamente devido à esta falha do Oracle.</p>
<p>Existe um comando que força o banco a compilar todos os objetos inválidos sob um determinado usuário, o comando é:</p>
<pre class="brush:sql">exec dbms_utility.compile_schema(&lt;USUARIO&gt;);</pre>
<p>Substitua por <em>user</em> onde está &lt;USUARIO&gt; se os objetos estiverem sob o usuário que está conectado, ou pelo nome de usuário correspondente.</p>
<p>O comando demora um pouco para ser executado e não compila todos os objetos que estão inválidos por erro de codificação, para descobrir quais objetos estão inválidos, você pode executar a seguinte <em>query</em>:</p>
<pre class="brush:sql">select object_name
from all_objects
where status = 'INVALID'</pre>
<p>Será listado os objetos que estão inválidos na base.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "oracle, banco de dados, computador";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/MHSESFQVu5nMwXPrTGxnJX1chKo/0/da"><img src="http://feedads.g.doubleclick.net/~a/MHSESFQVu5nMwXPrTGxnJX1chKo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MHSESFQVu5nMwXPrTGxnJX1chKo/1/da"><img src="http://feedads.g.doubleclick.net/~a/MHSESFQVu5nMwXPrTGxnJX1chKo/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/LGLBdhfG9bU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2012/01/compilando-objetos-invalidos-do-oracle-de-maneira-facil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2012/01/compilando-objetos-invalidos-do-oracle-de-maneira-facil/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Google Analytics – Novo relatório em tempo real</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/GQ3BfgGi6aU/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/12/google-analytics-novo-relatorio-em-tempo-real/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 16:01:55 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[relatorio]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=445</guid>
		<description><![CDATA[Há algumas semanas o Google liberou a versão beta do relatório em tempo real do Google Analytics. Com ele é<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/12/google-analytics-novo-relatorio-em-tempo-real/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-446" title="ganalytics1" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/12/ganalytics1.jpg" alt="" width="340" height="245" /></p>
<p>Há algumas semanas o Google liberou a versão beta do relatório em tempo real do Google Analytics. Com ele é possível ver quantas pessoas estão acessando seu site, quais páginas elas estão visitando, de onde são e como elas chegaram no seu site.</p>
<p>Porém, nem todas as contas do Analytics possuem esta opção de visualização.</p>
<p><img class="aligncenter size-full wp-image-448" title="ganalytics2" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/12/ganalytics2.jpg" alt="" width="550" height="280" /></p>
<p>Para acessar o relatório, ao se autenticar e escolher o perfil, clique no menu &#8220;Página Inicial&#8221; e selecione o relatório &#8220;Tempo Real(beta)&#8221; no menu à esquerda.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "relatorio, estatistica, pesquisa, google";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/mX_dA5niVRAi0xCyEUs2rPQtbxM/0/da"><img src="http://feedads.g.doubleclick.net/~a/mX_dA5niVRAi0xCyEUs2rPQtbxM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mX_dA5niVRAi0xCyEUs2rPQtbxM/1/da"><img src="http://feedads.g.doubleclick.net/~a/mX_dA5niVRAi0xCyEUs2rPQtbxM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/GQ3BfgGi6aU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/12/google-analytics-novo-relatorio-em-tempo-real/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/12/google-analytics-novo-relatorio-em-tempo-real/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Motorola Droid Razr – O super smarphone Android</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/kGVdnGM33iY/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/11/motorola-droid-razr-o-super-smarphone-android/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 15:41:13 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[gingerbread]]></category>
		<category><![CDATA[icecream sandwich]]></category>
		<category><![CDATA[motorola]]></category>
		<category><![CDATA[razr]]></category>
		<category><![CDATA[smartphone]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=429</guid>
		<description><![CDATA[Lançado recentement, o novo Motorola Droid Razr é o celular mais fino do mundo com conectividade 4G. Com espessura de<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/11/motorola-droid-razr-o-super-smarphone-android/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-431 aligncenter" title="droid-razr" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/11/droid-razr.jpg" alt="" width="500" height="376" /></p>
<p>Lançado recentement, o novo Motorola Droid Razr é o celular mais fino do mundo com conectividade 4G. Com espessura de 7,1mm, traz uma tela com 4,3 pol. de Super AMOLED, possui resolução de 540 x 960 pixels e é protegida pelo já conhecido Gorilla® Glass, resistente a poeira e riscos. Sua câmera traseira, de 8MP, consegue capturar vídeos em Full HD (1080p) e sua câmera frontal, de 1.3 MP, possui capacidade de gravação em HD (720p).</p>
<p>Muito mais leve e resistente, o Motorola Razr é revestido por <a href="http://pt.wikipedia.org/wiki/Kevlar" target="_blank">Kevlar®</a>, que lhe dá um acabamento muito mais atrativo.</p>
<p>O Android Gingerbread (posteriormente o Icecream Sandwich) é suportado por seu processador Dual-core de 1.2Ghz e 1GB de memória RAM. Também contará com 16GB de memória interna, 16 GB no cartão MicroSD que o acompanha (expansível até 32 GB), conexões de dados 3G e 4G, além do EDGE, GPRS e Wi-fi (b, g e n), GPS, protocolo <a title="Inglês" href="http://en.wikipedia.org/wiki/Digital_Living_Network_Alliance" target="_blank">DLNA (Digital Living Network Alliance)</a>.</p>
<p>Falando em conectividade, o smartphone vem com <a href="http://www.motorola.com/Consumers/BR-PT/Consumer-Product-Services/MOTOCAST/Motocast" target="_blank">MotoCast</a> pré-instalado. Este aplicativo permite você compartilhar seus arquivos, vídeos e músicas entre o aparelho e seu computador atravéz da rede Wi-fi, 3G ou 4G, sem a necessidade do cabo USB.</p>
<p>Assim como o Motorola Atrix, o Droid Razr também é compatível com o <em>gadget</em> <a href="http://www.motorola.com/Consumers/BR-PT/Consumer-Product-Services/WEBTOP/Meet-WEBTOP">Webtop</a>.</p>
<p>O <em>design</em> do Motorola Droid Razr lembra muito o de seu avó, Motorola Razr V3, que teve 110 milhões unidades vendidas em todo mundo.</p>
<table style="background-color: #fff;" width="100%" border="0">
<tbody>
<tr>
<td style="background-color: #fff; border: none;" align="center" width="50%">
<p><div id="attachment_430" class="wp-caption alignnone" style="width: 210px"><img class="size-full wp-image-430 " title="razr-v3x" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/11/razr-v3x.jpg" alt="Razr V3 X" width="200" height="284" /><p class="wp-caption-text">Motorola Razr V3x</p></div></td>
<td style="background-color: #fff; border: none;" align="center">
<p><div id="attachment_432" class="wp-caption alignnone" style="width: 210px"><img class="size-full wp-image-432 " title="razr-droid" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/11/razr-droid.jpg" alt="Droid Razr" width="200" height="284" /><p class="wp-caption-text">Motorola Droid Razr</p></div></td>
</tr>
</tbody>
</table>
<p>Apesar do lançamento ter sido no dia 16 de novembro, ainda não é possível encontrar o aparelho no Brasil, mas já sabemos que o preço sugerido pela Motorola é de R$ 1.999,00.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "motorola, razr, android, smartphone";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/y2Nro-5evRWz0SJyUjSlLxOLHTg/0/da"><img src="http://feedads.g.doubleclick.net/~a/y2Nro-5evRWz0SJyUjSlLxOLHTg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/y2Nro-5evRWz0SJyUjSlLxOLHTg/1/da"><img src="http://feedads.g.doubleclick.net/~a/y2Nro-5evRWz0SJyUjSlLxOLHTg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/kGVdnGM33iY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/11/motorola-droid-razr-o-super-smarphone-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/11/motorola-droid-razr-o-super-smarphone-android/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Aplicativos que seu Android precisa ter – Listen</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/6CumxYrhFI4/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/10/aplicativos-que-seu-android-precisa-ter-listen/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 17:06:23 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[aplicativos]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[market]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=412</guid>
		<description><![CDATA[Você, que acompanha diversos Podcasts pelo mundo à fora e nem sempre tem um computador à disposição para baixá-los e<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/10/aplicativos-que-seu-android-precisa-ter-listen/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignright size-full wp-image-415" style="margin-left: 10px; margin-right: 10px;" title="Listen" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/listen1.png" alt="" width="200" height="316" />Você, que acompanha diversos Podcasts pelo mundo à fora e nem sempre tem um computador à disposição para baixá-los e copiá-los para seu smartphone, pode contar com o <a href="https://market.android.com/details?id=com.google.android.apps.listen" target="_blank">Listen</a>.</p>
<p style="text-align: justify;">Este aplicativo, desenvolvido pela própria Google, lhe permite indexar vários podcasts disponível na Internet. Nem todos eles estão no índice do aplicativo, para estes casos, você pode adicioná-los manualmente no menu da opção &#8220;My subscriptions&#8221;.</p>
<p style="text-align: justify;">Lógico que, pela qualidade da banda 3G brasileira, você conseguirá ouvir os Podcasts continuamente (sem aquelas pausas de <em>buffer</em>) usando conexão Wi-fi ou abrindo mão da qualidade e se contentando com áudios de 96kbps ou menos.</p>
<p style="text-align: justify;">O <a href="https://market.android.com/details?id=com.google.android.apps.listen" target="_blank">Listen</a> lhe permite baixar os arquivos de áudio para ouví-los posteriormente, quando quiser, sem a necessidade de conexão com a internet.</p>
<p style="text-align: justify;"><strong>Link para o aplicativo</strong>: <a href="https://market.android.com/details?id=com.google.android.apps.listen" target="_blank">Listen</a><br />
<strong>Preço</strong>: Gratuito<br />
<strong>Propaganda</strong>: Não<br />
<strong>Avaliação</strong>*: 3,8/5</p>
<h5 style="text-align: justify;">* Avaliação feita até a publicação deste post</h5>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "aplicativos";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/rtBLji8sRpVU6nU6HLHqvRcufLw/0/da"><img src="http://feedads.g.doubleclick.net/~a/rtBLji8sRpVU6nU6HLHqvRcufLw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/rtBLji8sRpVU6nU6HLHqvRcufLw/1/da"><img src="http://feedads.g.doubleclick.net/~a/rtBLji8sRpVU6nU6HLHqvRcufLw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/6CumxYrhFI4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/10/aplicativos-que-seu-android-precisa-ter-listen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/10/aplicativos-que-seu-android-precisa-ter-listen/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Compartilhando conexão 3G do Android com PCs ou Notebooks via USB</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/Rbg_oV1gZZ0/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/10/compartilhando-conexao-3g-do-android-com-pc-ou-notebook-via-usb/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 21:43:50 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Dispositivos]]></category>
		<category><![CDATA[Sistemas Operacionais]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[conexão]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=389</guid>
		<description><![CDATA[O Froyo, versão 2.2 do Android, vem com um aplicativo padrão para compatilhamento da conexão 3G com outros dispositivos que<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/10/compartilhando-conexao-3g-do-android-com-pc-ou-notebook-via-usb/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">O Froyo, versão 2.2 do Android, vem com um aplicativo padrão para compatilhamento da conexão 3G com outros dispositivos que utilizem da tecnologia wi-fi. O problema surge quando você não dispõe de uma placa wi-fi, como é o caso da maioria esmagadores de desktops vendidos atualmente.</p>
<p style="text-align: justify;"><a href="https://market.android.com/details?id=com.proxoid&amp;feature=search_result" target="_blank">ProxoId</a>, aplicativo gratuito disponível no <a href="https://market.android.com/" target="_blank">Android Marketing</a>, lhe permite compartilhar a conexão 3G utilizando somente o cabo USB.</p>
<p style="text-align: justify;">O aplicativo precisa de um programa <em>stand alone</em> rodando no computador para funcionar e que os drivers para o Android estejam instalado neste mesmo equipamento.</p>
<p style="text-align: justify;">O driver, assim como o programa, pode ser encontrado em forma de arquivo ZIP para Windows 32bits <a href="http://www.baroukh.com/proxoid/proxoid-adb.zip" target="_blank">aqui</a> e para Windows 64 bits <a href="http://www.baroukh.com/proxoid/proxoid-adb64.zip">aqui</a>. Se você instalou os drivers que vêm no CD do fabricante, pule para o passo <strong>Reconhecendo o smartphone</strong>.</p>
<h2>Instalando os drivers</h2>
<p style="text-align: justify;">Descompacte o arquivo ZIP e conecte o aparelho ao computador. O assistente de novos dispositivos será aberto.</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-397" title="assistente" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/img1.png" alt="" width="503" height="390" /></p>
<p style="text-align: justify;">Escolha a opção &#8220;Não, não agora&#8221; e clique em &#8220;Avançar&#8221;. Na tela seguinte, escolha a opção &#8220;Instalar de uma lista ou local específico&#8221;.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-398" title="img2" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/img2.png" alt="" width="503" height="390" /></p>
<p style="text-align: justify;">Habilite as opções &#8220;Procurar o melhor driver nestes locais&#8221; e &#8220;Incluir este local na pesquisa&#8221;, então clique em procurar.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-399" title="img3" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/img3.png" alt="" width="503" height="390" /></p>
<p style="text-align: justify;">Na caixa de diálogo, selecione o diretório onde você descompactou o arquivo ZIP &gt; &#8220;usb_driver&#8221; &gt; &#8220;x86&#8243;, como na imagem.</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-400" title="img4" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/img4.png" alt="" width="325" height="318" /></p>
<p style="text-align: justify;">Clique em avançar e siga os passos até o fim da instalação.</p>
<h2>Reconhecendo o smartphone</h2>
<p style="text-align: justify;">Com o aparelho plugado, acesse o diretório &#8220;proxoid-adb&#8221; e execute o arquivo &#8220;check.bat&#8221;. Deverá aparecer a tela abaixo com o número do dispositivo.</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-401" title="img5" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/img5.png" alt="" width="500" height="206" /></p>
<p style="text-align: justify;">Caso não apareça, tente desconectar o aparelho e conectar novamente ou reinstalar os drivers.</p>
<h2>Configurando ProxoId</h2>
<p style="text-align: justify;">A tela de configuração é aberto quando o ProxoId é executado:<br />
&#8220;Start/Stop ProxoId&#8221; &#8211; Indica se o serviço está em execução (ticado) ou parado;<br />
&#8220;Port&#8221; &#8211; Número da porta para o proxy<br />
&#8220;User-Agent Filter&#8221; &#8211; Máscara do User-Agent (Browser).</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-402" title="proxoid" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/img6.png" alt="" width="235" height="350" /></p>
<h2>Configurando Browser</h2>
<h4>Internet Explorer e Google Chrome</h4>
<p style="text-align: justify;"><strong></strong>Clique no menu &#8220;Iniciar&#8221; &gt; &#8220;Painel de Controle&#8221; e &#8220;Opções da Internet&#8221;. Clique na aba &#8220;Conexões&#8221; e no botão &#8220;Configurações da LAN&#8221;.</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-403" title="img7" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/img7.png" alt="" width="363" height="450" /></p>
<p style="text-align: justify;">No campo &#8220;Endereço&#8221;, digite &#8220;localhost&#8221; e no campo &#8220;Porta&#8221; digite o mesmo valor que está nas configurações do &#8220;ProxoId&#8221;.</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-406" title="img10" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/img10.png" alt="" width="384" height="338" /></p>
<h4>FireFox</h4>
<p style="text-align: justify;"><strong></strong>Abra o Firefox, clique no menu &#8220;Opções&#8221;. Selecione a guia &#8220;Avançado&#8221; &gt; &#8220;Rede&#8221; e clique no botão &#8220;Configurar Conexão&#8221;. Habilite a opção &#8220;Configuração manual de proxy.</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-404" title="img8" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/img8.png" alt="" width="450" height="416" /></p>
<p style="text-align: justify;">No campo &#8220;HTTP&#8221;, digite &#8220;localhost&#8221; e no campo &#8220;Porta&#8221; digite o mesmo valor que está nas configurações do &#8220;ProxoId&#8221;.</p>
<p style="text-align: center;"><img class="aligncenter" title="img9" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/10/img9.png" alt="" width="376" height="400" /></p>
<h2>Compartilhando conexão</h2>
<p style="text-align: justify;">Habilite a opção &#8220;Start/Stop ProxoId&#8221; na aplicação do seu Android.<br />
No computador, abra o diretório &#8220;proxoid-adb&#8221; e execute o arquivo &#8220;start-tunnel.bat&#8221;.</p>
<p style="text-align: justify;">Pronto! Enquanto estiver usando estas configurações de proxy, todo o tráfego passa a ser disponibilizado pelo sinal 3G do seu aparelho!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "usb";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/sgs7xbSDXL_Qi40wOU22EhaKHak/0/da"><img src="http://feedads.g.doubleclick.net/~a/sgs7xbSDXL_Qi40wOU22EhaKHak/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sgs7xbSDXL_Qi40wOU22EhaKHak/1/da"><img src="http://feedads.g.doubleclick.net/~a/sgs7xbSDXL_Qi40wOU22EhaKHak/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/Rbg_oV1gZZ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/10/compartilhando-conexao-3g-do-android-com-pc-ou-notebook-via-usb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/10/compartilhando-conexao-3g-do-android-com-pc-ou-notebook-via-usb/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Como usar controle de Playstation 3 no PC via Bluetooth</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/eDn77fC8LfE/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/09/como-usar-controle-de-playstation-3-no-pc-via-bluetooth/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 02:16:22 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Dispositivos]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[joystick]]></category>
		<category><![CDATA[pc]]></category>
		<category><![CDATA[playstation 3]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=372</guid>
		<description><![CDATA[Por curiosidade, tentei parear o controle de PS3 (Playstation 3) com meu computador via Bluetooth, sem sucesso. Atrás de uma<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/09/como-usar-controle-de-playstation-3-no-pc-via-bluetooth/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Por curiosidade, tentei parear o controle de PS3 (Playstation 3) com meu computador via Bluetooth, sem sucesso. Atrás de uma forma de fazê-lo, encontrei um driver customizado que permite usar o joystick de PS3 no PC.</p>
<p>Abaixo descrevo o passo-a-passo de como  fazer.</p>
<h4>Requisitos:</h4>
<ul>
<li>Adaptador Bluetooth (caso seu computador/notebook não tenha) &#8211; Como <a href="http://lista.mercadolivre.com.br/dongle-bluetooth">estes</a>;</li>
<li>Cabo USB do controle;</li>
<li>.NET Framework 4 &#8211; Pode ser baixado <a href="http://www.microsoft.com/download/en/details.aspx?id=17851">aqui</a>;</li>
<li>Sistema operacional Windows XP, Vista ou 7 (seven).</li>
</ul>
<p>Os drivers padrão dos adaptadores e do Windows não reconhecem o controle do Playstation 3, para isso você precisará baixar o driver customizado do site <a href="http://www.motioninjoy.com" target="_blank">Motionin Joy</a> para <a href="http://www.xinputer.com/download/MotioninJoy_060004_x86_signed.zip">Windows XP, Windows Vista e Windows 7 (32 bits)</a> ou <a href="http://www.xinputer.com/download/MotioninJoy_060004_amd64_signed.zip">Windows XP, Windows Vista e Windows 7 (64 bits)</a>.</p>
<p>Após o download, extraia o arquivo e execute-o. Siga os passos para instalação até o final e execute o DS3 Tool, ou clique no menu Iniciar, Programas, MotioninJoy e DS3 Tool.</p>
<p>Aparecerá a tela abaixo: <img class="aligncenter size-full wp-image-373" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/09/tela1.jpg" alt="" width="500" height="398" /></p>
<p>Conecte o joystick no PC usando o cabo USB. Clique no menu &#8220;Driver Manager&#8221;, selecione o dispositivo encontrado e clique no botão &#8220;Install all&#8221;.</p>
<p><img class="aligncenter size-full wp-image-374" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/09/tela2.jpg" alt="" width="549" height="437" /></p>
<p>Após o término da instalação (demora cerca de um minuto), clique em &#8220;Profiles&#8221;.</p>
<p>O controle deve aparecer na lista (indicada pelo círculo). Selecione a opção  &#8221;Playstation 2 (POV, Joysticks, Analog Trigger)&#8221;, &#8220;Custom&#8221; e o número correspondente do controle (no nosso caso &#8220;1&#8243;).</p>
<p><img class="aligncenter size-full wp-image-375" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/09/tela3.jpg" alt="" width="549" height="437" /></p>
<p>Para finalizar, clique no menu &#8220;Bluetooth Pair&#8221;, selecione seu controle na lista &#8220;Dual Shock 3&#8243; e clique em &#8220;Pair Now&#8221;.</p>
<p><img class="aligncenter size-full wp-image-377" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/09/tela4.jpg" alt="" width="549" height="437" /></p>
<p>Pronto! Quando aparecer o número MAC onde está escrito &#8220;Have Paired to&#8221;, você poderá desconectar o cabo USB e utilizar o controle via Bluetooth normalmente, como um joystick comum de PC.</p>
<p>Enjoy! <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "bluetooth";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/J1cBJw0Th74W1PgEeAmtRWGANak/0/da"><img src="http://feedads.g.doubleclick.net/~a/J1cBJw0Th74W1PgEeAmtRWGANak/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/J1cBJw0Th74W1PgEeAmtRWGANak/1/da"><img src="http://feedads.g.doubleclick.net/~a/J1cBJw0Th74W1PgEeAmtRWGANak/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/eDn77fC8LfE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/09/como-usar-controle-de-playstation-3-no-pc-via-bluetooth/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/09/como-usar-controle-de-playstation-3-no-pc-via-bluetooth/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Android 2.2 – Instalando aplicativos direto no cartão SD</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/5Dm1cVZ1xEo/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/09/android-2-2-instalando-aplicativos-direto-no-cartao-sd/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 21:37:20 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[memoria]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=357</guid>
		<description><![CDATA[Quem tem smartphones Android com pouca memória interna e vive baixando aplicativos, sabe como é frustrante quando aparece o ícone<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/09/android-2-2-instalando-aplicativos-direto-no-cartao-sd/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-359" style="margin-top: 5px; margin-bottom: 5px;" title="android_full" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/09/android_full.png" alt="" width="233" height="265" />Quem tem smartphones Android com pouca memória interna e vive baixando aplicativos, sabe como é frustrante quando aparece o ícone de &#8220;Pouco Espaço&#8221;.</p>
<p>No Android 2.2 existe a possibilidade de migrar o local de instalação dos aplicativos já instalados, porém, alguns não lhe dão a possibilidade de movê-los para o SD.</p>
<p>Atrás de soluções para resolver este probleminha no meu Motorola Milestone, encontrei um excelente tutorial no <a href="http://www.mundozoom.com.br/android-instalar-aplicativos-no-cartao-sd.html" target="_blank">Mundo Zoom</a> que ensina como instalar aplicativos direto no cartão SD, mesmos aqueles aplicativos que não permitem movê-los, sem a necessidade de ser usuário <em>root</em>.</p>
<p>Primeiro baixe, de preferência, o ZIP de <a href="http://developer.android.com/sdk/index.html" target="_blank">Android SDK</a> e extraia-o e, navegue até o diretório &#8220;<strong>android-sdk-windows\platform-tools</strong>&#8220;.</p>
<p>Configure seu aparelho para o modo debug. Não sabe? Vá em <strong>&#8220;Configurações&#8221; &gt; &#8220;Aplicativos&#8221; &gt; &#8220;Desenvolvimento&#8221;</strong> e ative a opção <strong>&#8220;Depuração USB&#8221;</strong>.</p>
<p>Conecte seu smartphone à porta USB e ative a opção &#8220;Nenhum&#8221; (ou &#8220;Somente carregar bateria&#8221;) no Gerenciador de Conexão USB.</p>
<p>Agora Abra o prompt de comando clicando no menu Iniciar, executar. Digite &#8220;cmd&#8221; (sem aspas) e pressione Enter.</p>
<p>Com o prompt e a janela do Windows Explorer abertos, clique no arquivo &#8220;adb.exe&#8221; e arraste para o prompt, em seguida dê um espaço e digite &#8220;shell&#8221;. Pressione Enter.</p>
<p style="text-align: center;"><a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/09/ss1.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="size-full wp-image-364 aligncenter" title="ss1" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/09/ss1.jpg" alt="" width="540" height="386" /></a></p>
<p>Deverá aparecer o símbolo &#8220;$&#8221; e o cursor piscando. Agora digite o comando &#8220;<strong>pm setInstallLocation 2</strong>&#8221; e pressione Enter.</p>
<p>Este comando define a partição &#8220;2&#8243;, que é o cartão SD, como local padrão para a instalação dos aplicativos.</p>
<p>Pronto, isto é tudo que você precisa para que, a partir de agora, os aplicativos sejam instalados direto no cartão SD.</p>
<p>Caso o procedimento não tenha dado certo, no site <a href="http://www.mundozoom.com.br/android-instalar-aplicativos-no-cartao-sd.html" target="_blank">Mundo Zoom</a> existem algumas soluções de problemas que podem te ajudar.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "memoria";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/EfGlhleo-Ohdxw2f3iuOSISzZuU/0/da"><img src="http://feedads.g.doubleclick.net/~a/EfGlhleo-Ohdxw2f3iuOSISzZuU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/EfGlhleo-Ohdxw2f3iuOSISzZuU/1/da"><img src="http://feedads.g.doubleclick.net/~a/EfGlhleo-Ohdxw2f3iuOSISzZuU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/5Dm1cVZ1xEo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/09/android-2-2-instalando-aplicativos-direto-no-cartao-sd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/09/android-2-2-instalando-aplicativos-direto-no-cartao-sd/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>A importância de File.separator e File.pathSeparator</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/oFCIDtTsnvw/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/08/a-importancia-de-file-separator-e-file-pathseparator/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 16:35:07 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=352</guid>
		<description><![CDATA[Quase todos os programadores Java conhecem os métodos citados no título, mas muito poucos se preocupam em utiliza-los. Estes dois<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/08/a-importancia-de-file-separator-e-file-pathseparator/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Quase todos os programadores Java conhecem os métodos citados no título, mas muito poucos se preocupam em utiliza-los.</p>
<p>Estes dois métodos servem para que o programador não precise &#8220;adivinhar&#8221; qual é o separador de arquivos e qual é o separador de caminhos em cada sistema operacional.</p>
<p>No Linux/Unix, os métodos <b><a href="http://download.oracle.com/javase/1,5.0/docs/api/java/io/File.html#separator">File.separator</a></b> e <b><a href="http://download.oracle.com/javase/1,5.0/docs/api/java/io/File.html#pathSeparator">File.pathSeparator</a></b> retornam &#8220;/&#8221; e &#8220;.&#8221; respectivamente, enquanto que, no Windows, estes mesmos métodos retornam &#8220;\&#8221; (ou &#8220;\\&#8221; &#8211; escape) e &#8220;;&#8221;.</p>
<p>Passei por um caso recente, onde o código abaixo lançava a <i>exception</i> FileNotFoundException no Linux, mas funcionava perfeitamente no Windows:</p>
<pre class="brush:java">
String caminhoAp = ctx.getRealPath();
String caminhoArq = caminhoAp + "\\" + "WEB-INF/classes/pacotes/da/minha/aplicacao/";

File arquivo = new File(caminhoArq, "relatorio.pdf");
OutputStream out = new FileOutputStream(arquivo);
...
</pre>
<p>Então passou a funcionar nos dois sistemas operacionais após substituir &#8220;\\&#8221; por File.separator na linha 2, desta forma:</p>
<pre class="brush:java">
String caminhoAp = ctx.getRealPath();
String caminhoArq = caminhoAp + File.separator + "WEB-INF/classes/pacotes/da/minha/aplicacao/";

File arquivo = new File(caminhoArq, "relatorio.pdf");
OutputStream out = new FileOutputStream(arquivo);
...
</pre>
<p>A utilização destes métodos, além de ser uma boa prática, é muito útil quando se tem a mesma versão de um sistema feito em Java rodando de diferentes sistemas operacionais.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "programação";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/Bjo85CZd8fYt0mrbMttOsYuR5tQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/Bjo85CZd8fYt0mrbMttOsYuR5tQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Bjo85CZd8fYt0mrbMttOsYuR5tQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/Bjo85CZd8fYt0mrbMttOsYuR5tQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/oFCIDtTsnvw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/08/a-importancia-de-file-separator-e-file-pathseparator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/08/a-importancia-de-file-separator-e-file-pathseparator/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Aplicativos que seu Android precisa ter – RemoteControl for Earphones</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/-LOKsFW5Smg/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/08/aplicativos-que-seu-android-precisa-ter-remotecontrol-for-earphones/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 01:59:34 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[aplicativos]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[market]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=342</guid>
		<description><![CDATA[Resolvi iniciar uma seção no site chamada &#8220;Aplicativos que seu Android precisa ter&#8221;, nesta seção publicarei dicas e &#8220;reviews&#8221; de<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/08/aplicativos-que-seu-android-precisa-ter-remotecontrol-for-earphones/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Resolvi iniciar uma seção no site chamada &#8220;Aplicativos que seu Android precisa ter&#8221;, nesta seção publicarei dicas e &#8220;<em>reviews</em>&#8221; de aplicativos úteis que ajudarão a extrair todo o potencial de seu Smartphone Android.</p>
<p>Começarei com o <strong>RemoteControl for Earphones</strong>, pois ele simplesmente acaba com uma vantagem enorme que o iPhone possuía sobre o Android, que é o controle do player de música através de comandos no botão do fone de ouvido.</p>
<p>O comportamento padrão do botão de lapela da maioria dos Smartphones com Android é pausar e tocar músicas, além de atender ligações. O <strong>RemoteControl for Earphones</strong> possibilita que você use quase todos os comandos do player padrão apenas com este botão. Por exemplo, para dar <em>play</em> ou <em>pause</em> em uma música, basta apertar o botão uma vez, para ir para a próxima música, basta apertar duas vezes, para voltar, quatro vezes e por aí vai.</p>
<div class="wp-caption aligncenter" style="width: 212px"><a href="https://www.gstatic.com/android/market/jp.co.chobirich.tools.mediabutton/ss-480-1-6"><img src="https://www.gstatic.com/android/market/jp.co.chobirich.tools.mediabutton/ss-480-1-6" alt="RemoteControl for Earphones" width="202" height="336" /></a><p class="wp-caption-text">Tela do aplicativo (Android Market)</p></div>
<p>O aplicativo é gratuito e, ao contrário de quase todos os aplicativos gratuitos encontrados no Android Market, não possui aquelas propagandas chatas.</p>
<p>O único problema é que ele não é compatível com todos os players, funcionou perfeitamente no player padrão do Motorola Milestone e Songbird, porém não funcionou no Winamp, no player padrão do Motorola Atrix e do Samsung Galaxy S.</p>
<p><strong>Link para o aplicativo</strong>:  <a href="https://market.android.com/details?id=jp.co.chobirich.tools.mediabutton&amp;feature=search_result" target="_blank">RemoteControl for Earphones</a><br />
<strong>Preço</strong>: Gratuito<br />
<strong>Propaganda</strong>: Não</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "aplicativos";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/22UJz_c4cVt3ON6ft_vtooXNBNw/0/da"><img src="http://feedads.g.doubleclick.net/~a/22UJz_c4cVt3ON6ft_vtooXNBNw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/22UJz_c4cVt3ON6ft_vtooXNBNw/1/da"><img src="http://feedads.g.doubleclick.net/~a/22UJz_c4cVt3ON6ft_vtooXNBNw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/-LOKsFW5Smg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/08/aplicativos-que-seu-android-precisa-ter-remotecontrol-for-earphones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/08/aplicativos-que-seu-android-precisa-ter-remotecontrol-for-earphones/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Instalando multifuncional Epson Stylus CX5600 no Ubuntu 10.04</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/SaKgEXjs8m0/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/08/instalando-multifuncional-epson-stylus-cx5600-no-ubuntu-10-04/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 16:05:30 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Dispositivos]]></category>
		<category><![CDATA[Sistemas Operacionais]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=306</guid>
		<description><![CDATA[Procurando pela Web encontrei vários tutoriais que explicavam como instalar a multifuncional Epson Stylus CX5600 no Linux, todos sem sucesso.<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/08/instalando-multifuncional-epson-stylus-cx5600-no-ubuntu-10-04/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Procurando pela Web encontrei vários tutoriais que explicavam como instalar a multifuncional Epson Stylus CX5600 no Linux, todos sem sucesso. Após meses de procura, encontrei <a href="http://lgallardo.com/en/2009/12/05/escaner-multifuncional-epson-stylus-cx5600-en-linux/">este tutorial</a>, do Luis Gallardo, que explica como fazer.</p>
<p>Como o tutorial explica a instalação no Ubuntu 9.10 não foi preciso seguir alguns passos. Então mostrarei abaixo os passos que utilizei para a instalação na versão 10.04 do Ubuntu.</p>
<p>Será necessário baixar os drivers da Avasys, para isso acesse este <a href="http://www.avasys.jp/lx-bin2/linux_e/spc/DL1.do">link</a>, role a página para baixo, escolha a opção &#8220;<em>Epson Stylus CX4300/</em><wbr><em>CX4400/</em><wbr><em>CX4450/</em><wbr><em>CX5500/</em><wbr><em>CX5600/</em><wbr><em>DX4400/</em><wbr><em>DX4450</em>&#8220;, distribuição &#8220;<em>Ubuntu</em>&#8221; e versão &#8220;<em>10.04</em>&#8221; e clique em &#8220;<em>Next</em>&#8220;.</wbr></wbr></wbr></wbr></wbr></wbr></p>
<p>Na próxima página, baixe os arquivos &#8220;<strong>iscan-data_1.9.0-1_all.deb</strong>&#8220;, &#8220;<strong>iscan_2.26.4-2.ltdl7_i386.deb</strong>&#8221; e &#8220;<strong>iscan-plugin-cx4400_2.1.3-1_i386.deb</strong>&#8220;. Em seguida, execute os comandos abaixo:</p>
<pre class="brush:bash">sudo dpkg -i iscan-data_1.9.0-1_all.deb
sudo dpkg -i iscan_2.26.4-2.ltdl7_i386.deb
sudo dpkg -i iscan-plugin-cx4400_2.1.3-1_i386.deb</pre>
<p>Tudo certo, certifique-se que o scanner está ligado e execute o comando</p>
<pre class="brush:bash">lsusb</pre>
<p>Deverá aparecer uma lista de dispositivos conectados às portas USB, como esta:</p>
<pre class="brush:bash">Bus 003 Device 004: ID 04b8:083f Seiko Epson Corp. Stylus DX4450
Bus 003 Device 003: ID 04fc:05d8 Sunplus Technology Co., Ltd
Bus 003 Device 002: ID 04f3:0216 Elan Microelectronics Corp.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 18e3:9101 Fitipower Integrated Technology Inc
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</pre>
<p>A primeira linha &#8220;<em>Bus 003 Device 004: ID 04b8:083f Seiko Epson Corp. Stylus DX4450</em>&#8221; significa que a multifuncional foi detectada no endereço 003:004.</p>
<p>Este passos foram suficientes para que o scanner fosse detectado pelo XSane, mas só o usuário <b>root</b> conseguia usar o programa.</p>
<p>Para resolver este problema, edite o arquivo <em>/lib/udev/rules.d/40-libsane.rules</em> e acrescente as linhas abaixo:</p>
<pre class="brush:text"># Epson CX5600
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="083f", MODE="0664", GROUP="saned", ENV{libsane_matched}="yes"</pre>
<p>Desligue e ligue a impressora novamente. Para saber se deu certo, execute o comando <em>lsusb</em>. A saída deverá ser parecida com a saída abaixo:</p>
<pre class="brush:bash">Bus 003 Device 004: ID 04b8:083f Seiko Epson Corp. Stylus DX4450</pre>
<p>Repare no <em>Bus <strong>003</strong></em> e no <em>Device <strong>004</strong></em> (os números poderão ser diferentes). Com estes números execute o comando</p>
<pre class="brush:bash">ls -l /dev/bus/usb/&lt;BUS&gt;/&lt;DEVICE&gt;</pre>
<p>Substituia o &lt;BUS&gt; e &lt;DEVICE&gt; pelos respectivos números, neste caso:</p>
<pre class="brush:bash">ls -l /dev/bus/usb/003/004</pre>
<p>Você verá algo parecido com</p>
<pre class="brush:bash">crw-rw-r--+ 1 root saned 189, 129 2011-07-01 14:01 /dev/bus/usb/003/004</pre>
<p>Neste ponto é possível ver que todos os usuários pertencentes ao grupo <b>saned</b> estão aptos para usar o scanner.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/sC-pSupUarMOeWWZyjQGsURu9lA/0/da"><img src="http://feedads.g.doubleclick.net/~a/sC-pSupUarMOeWWZyjQGsURu9lA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sC-pSupUarMOeWWZyjQGsURu9lA/1/da"><img src="http://feedads.g.doubleclick.net/~a/sC-pSupUarMOeWWZyjQGsURu9lA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/SaKgEXjs8m0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/08/instalando-multifuncional-epson-stylus-cx5600-no-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/08/instalando-multifuncional-epson-stylus-cx5600-no-ubuntu-10-04/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Corrigindo o erro “Allowed memory size of…” do WordPress</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/fM1srh9Wg7A/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/07/corrigindo-o-erro-allowed-memory-size-of-do-wordpress/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 01:38:02 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Softwares]]></category>
		<category><![CDATA[correção]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[fatal]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=302</guid>
		<description><![CDATA[Acabei de atualizar meu WordPress para a versão 3.2, ao terminar a atualização o servidor retornada a página de erro<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/07/corrigindo-o-erro-allowed-memory-size-of-do-wordpress/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Acabei de atualizar meu WordPress para a versão 3.2, ao terminar a atualização o servidor retornada a página de erro 500. Vasculhando o arquivo de log do WP descubri que estava dando o erro <strong>Fatal error: Allowed memory size of 33554432 bytes exhausted</strong>, aliás, vários erros assim.</p>
<p>Para descobrir se este é o seu problema, acesse o arquivo <strong>error_log</strong> que está no diretório <strong>wp-admin</strong> do WordPress e cheque as últimas linhas.</p>
<p>O procedimento abaixo resolveu o problema, mas, dependendo do servidor de hospedagem, talvez as configurações do PHP não permita o redimensionamento de memória em tempo de execução.</p>
<p>Edite o arquivo <strong>wp-settings.php </strong>que está na raiz do WordPress e adicione a linha abaixo após &#8220;&lt;?php&#8221;</p>
<pre class="brush:php">define('WP_MEMORY_LIMIT', '64M');</pre>
<p>Aqui eu aloquei 64MB para o PHP, mas como saber quanto de espaço foi e deve ser alocado?</p>
<p>Na mensagem de erro ele mostra a quantidade que está sendo alocada, é o número comprido da mensagem &#8220;Fatal error: Allowed memory size of <span style="text-decoration: underline;">33554432</span>&#8230;&#8221;. Aqui ele diz que foi alocado 32MB (para converter bytes em megabytes faça o cálculo 33554432 / (1024^2) = 32).</p>
<p>Dependendo do resultado do cálculo, indique um valor superior.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "correção";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/KX1XVnyTEuUtKl8wWpEDN1cwpxY/0/da"><img src="http://feedads.g.doubleclick.net/~a/KX1XVnyTEuUtKl8wWpEDN1cwpxY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KX1XVnyTEuUtKl8wWpEDN1cwpxY/1/da"><img src="http://feedads.g.doubleclick.net/~a/KX1XVnyTEuUtKl8wWpEDN1cwpxY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/fM1srh9Wg7A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/07/corrigindo-o-erro-allowed-memory-size-of-do-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/07/corrigindo-o-erro-allowed-memory-size-of-do-wordpress/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Como está a briga entre Firefox, Internet Explorer e Google Chrome?</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/Tbv6kfC3Hl4/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/06/como-esta-a-briga-entre-firefox-internet-explorer-e-google-chrome/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 16:44:16 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Softwares]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=295</guid>
		<description><![CDATA[Vendo os gráficos de estatísticas de acesso do blog, resolvi analisar como anda a briga entre os browsers mais usados<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/06/como-esta-a-briga-entre-firefox-internet-explorer-e-google-chrome/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Vendo os gráficos de estatísticas de acesso do blog, resolvi analisar como anda a briga entre os browsers mais usados no mercado.</p>
<p>A briga entre o Firefox e Internet Explorer já é antiga e há pouco tempo, vimos a posição do browser na Microsoft cair de primeiro para o segundo lugar no ranking. Com o browser da gigante Google mais estável e acessível, as três primeiras posições poderão ser alteradas mais uma vez.</p>
<p>No período de um ano, o blog teve 35.738 acessos, onde o Firefox foi o browser mais utilizado, responsável por 14.705 (41,75%) acessos, seguido de longe pelo Internet Explorer (10.542 acessos, ou 29,5%) e Google Chrome (8.679 acessos, ou 24,29%). O Opera vem em 4º e Safari 5º.</p>
<p>Abaixo o gráfico obtido pelo Google Analytics com a lista completa dos browsers e quantidade de acessos de cada:</p>
<div id="attachment_296" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/06/grafFFIECR.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="size-medium wp-image-296  " title="grafFFIECR" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2011/06/grafFFIECR.jpg" alt="" width="400" height="172" /></a><p class="wp-caption-text">Gráfico extraído entre os dias 07/06/2010 e 07/06/2011 (clique para ampliar)</p></div>
<p>Pelo andar da carruagem, não demorará muito para o Internet Explorer perder a segunda posição para o Google Chrome.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "browser";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/0QgExvXYGpF-H9ufdSQc0VjQNXQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/0QgExvXYGpF-H9ufdSQc0VjQNXQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/0QgExvXYGpF-H9ufdSQc0VjQNXQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/0QgExvXYGpF-H9ufdSQc0VjQNXQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/Tbv6kfC3Hl4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/06/como-esta-a-briga-entre-firefox-internet-explorer-e-google-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/06/como-esta-a-briga-entre-firefox-internet-explorer-e-google-chrome/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Como recuperar e escrever campos CLOB</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/_bCtggyOPsk/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/05/como-recuperar-e-escrever-campos-clob/#comments</comments>
		<pubDate>Fri, 13 May 2011 17:01:25 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[blob]]></category>
		<category><![CDATA[clob]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=285</guid>
		<description><![CDATA[O Character Large Object (ou CLOB), como o próprio nome já diz, é um tipo de campo muito comum em<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/05/como-recuperar-e-escrever-campos-clob/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>O <em>Character Large Object</em> (ou CLOB), como o próprio nome já diz, é um tipo de campo muito comum em Bancos de Dados usado para armazenar textos com uma quantidade enorme de caracteres.</p>
<p>No MySQL, por exemplo, o tipo CLOB está descrito como MEMO, mas a função é a mesma.</p>
<p>Estes dias precisei recuperar um valor de um campo CLOB que era retornado por um <em>SELECT</em>, como nunca tinha utilizado este campo no Java, resolvi escrever este pequeno tutorial como um memorando e, também, ajudar a quem precisar.</p>
<h4>Escrevendo valores em campo CLOB</h4>
<p>O método do <em>PreparedStatement</em> utilizado para a gravação de um CLOB é o <em>setAsciiStream</em>, passando a posição do campo CLOB, o <em>InputStream </em>dos dados e o ponto final de leitura do <em>InputStream.</em></p>
<pre class="brush:sql">ps.setAsciiStream(posicaoClob, inputStream, tamanhoDoTexto);</pre>
<p><strong>Exemplo funcional:</strong></p>
<pre class="brush:java">String sql = "INSERT INTO TESTE (texto) VALUES(?)";
		try{
			String txt = leArquivoTxt();
			ByteArrayInputStream bais = new ByteArrayInputStream(txt.getBytes());

			PreparedStatement ps = conexao.prepareStatement(sql);
			//Campo CLOB é a '?' que está na posição 1 do INSERT
			ps.setAsciiStream(1, bais, txt.length());

			ps.execute();

			ps.close();
		}catch (Exception e) {
			e.printStackTrace();
		}</pre>
<h4>Recuperando valor de um campo CLOB</h4>
<p>Como executamos um <em>SELECT</em>, será necessário capturar o <em>ResultSet </em>, iterar as linhas e chamar o método para a recuperação de um CLOB é o <em>getClob</em>, passando a posição em que o campo se encontra na query ou, simplesmente, o nome da coluna.</p>
<pre class="brush:sql">rs.getClob("xml");</pre>
<p><strong>Exemplo funcional:</strong></p>
<pre class="brush:java">String sql = "SELECT xml FROM TESTE";
		try{
			PreparedStatement ps = conexao.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();

			while(rs.next()){
				Clob clob = rs.getClob("xml");
				BufferedReader reader = new BufferedReader(clob.getCharacterStream());
				StringBuffer strBuf = new StringBuffer();

				String linha = null;
				while((linha = reader.readLine()) != null){
					strBuf.append(linha);
//Character.LINE_SEPARATOR insere a quebra de linha
					strBuf.append((char)Character.LINE_SEPARATOR);
				}

				System.out.println("=========== CLOB ===========");
				System.out.println(strBuf.toString());
			}

			rs.close();
			ps.close();
		}catch (Exception e) {
			e.printStackTrace();
		}</pre>
<p>É isso aí. Simples, fácil e indolor. <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Caso queiram, podem baixar a aplicação de exemplo <a href="http://www.andrels.com/wp-pt_BR/wp-content/plugins/download-monitor/download.php?id=6" title="clicado 184 vezes">aqui</a></p>
<p>Para recuperar um campo BLOB veja este <a href="http://www.andrels.com/wp-pt_BR/index.php/2010/02/inserindo-arquivos-em-campos-blob-de-uma-base-de-dados/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">tópico</a>.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "tutorial";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/I9u4sKPn-aO2bWZKF50mV2KA4A4/0/da"><img src="http://feedads.g.doubleclick.net/~a/I9u4sKPn-aO2bWZKF50mV2KA4A4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/I9u4sKPn-aO2bWZKF50mV2KA4A4/1/da"><img src="http://feedads.g.doubleclick.net/~a/I9u4sKPn-aO2bWZKF50mV2KA4A4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/_bCtggyOPsk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/05/como-recuperar-e-escrever-campos-clob/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/05/como-recuperar-e-escrever-campos-clob/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Instalando aplicativos .apk no emulador do Android SDK</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/4Dv5qjYQ1Co/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2011/02/instalando-aplicativos-apk-no-emulador-do-android-sdk/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 15:30:44 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[apk]]></category>
		<category><![CDATA[emulador]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=277</guid>
		<description><![CDATA[Algumas vezes dependemos de aplicações de terceiros para testar se nossa aplicação está funcionando corretamente ou, simplesmente, acessar recursos do<a href="http://www.andrels.com/wp-pt_BR/index.php/2011/02/instalando-aplicativos-apk-no-emulador-do-android-sdk/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Algumas vezes dependemos de aplicações de terceiros para testar se nossa aplicação está funcionando corretamente ou, simplesmente, acessar recursos do emulador que não estão disponíveis nas ferramentas que o acompanham.</p>
<p>Nos diretórios de instalação do SDK, geralmente em <em>platform-tools</em>, existe um executável chamado <strong>adb</strong>, através dele instalaremos aplicações de terceiros.</p>
<p>Antes de mais nada, você precisará do pacote de instalação do aplicativo (.apk). Para isso, procure em sites de busca ou faça backup através de seu aparelho Android usando aplicativos com o <a title="AppSaver" href="https://market.android.com/details?id=com.IQBS.android.appSaver&amp;feature=search_result">AppSaver</a>.</p>
<p>- Inicie o emulador, podendo ser pelo SDK Manager ou pelo plugin do Android no Eclipse.</p>
<p>- Através do prompt do DOS (Windows) ou de um terminal (Linux), acesse o diretório <em>platform-tools</em>, e execute a linha de comando:</p>
<pre class="brush:bash">$ adb install &lt;caminho do arquivo .apk&gt;</pre>
<p>Você verá a mensagem:</p>
<pre class="brush:bash">$ adb install Aplicativo.apk
125 KB/s (1091937 bytes in 8.474s)
        pkg: /data/local/tmp/Aplicativo.apk
Success</pre>
<p>Agora o aplicativo estará disponível no menu do emulador, como se estivesse instalado no seu smartphone. <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "emulador";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/dFTTWgxf8r_tdn6dSLSlkErGQU0/0/da"><img src="http://feedads.g.doubleclick.net/~a/dFTTWgxf8r_tdn6dSLSlkErGQU0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/dFTTWgxf8r_tdn6dSLSlkErGQU0/1/da"><img src="http://feedads.g.doubleclick.net/~a/dFTTWgxf8r_tdn6dSLSlkErGQU0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/4Dv5qjYQ1Co" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2011/02/instalando-aplicativos-apk-no-emulador-do-android-sdk/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2011/02/instalando-aplicativos-apk-no-emulador-do-android-sdk/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Solução para “JDK não encontrado” instalando Android SDK no Windows 7 x64</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/PYGHu4QIokA/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/12/solucao-para-jdk-nao-encontrado-instalando-android-sdk-no-windows-7-x64/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 22:29:35 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[64 bits]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=271</guid>
		<description><![CDATA[Para aqueles que tentam instalar o SDk do Android em um computador com Windows 7 64 bits e estão enfrentando<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/12/solucao-para-jdk-nao-encontrado-instalando-android-sdk-no-windows-7-x64/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Para aqueles que tentam instalar o SDk do Android em um computador com Windows 7 64 bits e estão enfrentando o erro &#8220;JDK Not Found&#8221;, a solução encontrada no site <a href="http://www.eighthourlunch.com/node/161">http://www.eighthourlunch.com/node/161</a> foi de incluir algumas chaves no registro do Windows e, a partir daí, o instalador no Android SDK encontrará o JDK instalado.</p>
<p>O arquivo .REG está disponível para download <a href="http://www.andrels.com/wp-pt_BR/wp-content/plugins/download-monitor/download.php?id=5" title="clicado 2254 vezes">aqui</a>.</p>
<p>Antes de executar o arquivo, abra-o no bloco de notas e altere o caminho &#8220;C:\\Arquivos de Programas\\Java\\jdk1.6.0_23&#8243; para o diretório onde está instalado o JDK e o caminho &#8220;C:\\Arquivos de Programas\\Java\\jre6&#8243; para onde está o JRE.</p>
<p>Esta solução funcionou para mim. <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "java, oracle, sun, android, curso, programacao";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/jkVgyU0uLgBYkO1IhpNnP-o_MwE/0/da"><img src="http://feedads.g.doubleclick.net/~a/jkVgyU0uLgBYkO1IhpNnP-o_MwE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jkVgyU0uLgBYkO1IhpNnP-o_MwE/1/da"><img src="http://feedads.g.doubleclick.net/~a/jkVgyU0uLgBYkO1IhpNnP-o_MwE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/PYGHu4QIokA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/12/solucao-para-jdk-nao-encontrado-instalando-android-sdk-no-windows-7-x64/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/12/solucao-para-jdk-nao-encontrado-instalando-android-sdk-no-windows-7-x64/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Hard reset no Motorola Milestone</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/AQ6qCxbv9OE/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/12/hard-reset-no-motorola-milestone/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 21:23:14 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Dispositivos]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[celular]]></category>
		<category><![CDATA[configuracao]]></category>
		<category><![CDATA[milestone]]></category>
		<category><![CDATA[motorola]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=262</guid>
		<description><![CDATA[Poucas pessoas sabem, mas existem três formas de você executar o famoso &#8220;Factory Reset&#8221; (redefinição de fábrica) no Motorola Milestone,<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/12/hard-reset-no-motorola-milestone/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Poucas pessoas sabem, mas existem três formas de você executar o famoso &#8220;Factory Reset&#8221; (redefinição de fábrica) no Motorola Milestone, uma funciona somente com Milestones que vieram com o Android 2.0 de fábrica, a outra forma para Milestones com a versão 2.1 e a terceira em ambos.</p>
<p style="text-align: justify;"><strong>Antes de mais nada, todo o qualquer procedimento realizado com este tutorial é de inteira responsabilidade de quem o executou. Não me responsabilizo por eventuais danos que o tutorial abaixo possa causar em seu aparelho.</strong></p>
<p style="text-align: justify;">Se está de acordo, vamos aos procedimentos.</p>
<h4><span style="font-weight: normal;">Milestone com Android 2.0 de fábrica</span></h4>
<ul>
<li style="text-align: justify;">Desligue o aparelho.</li>
<li style="text-align: justify;">Com o aparelho desligado, aperte o botão da câmera e o botão de ligar ao mesmo tempo.</li>
<li style="text-align: justify;">Quando aparecer o logo da Motorola, solte o botão de ligar e mantenha o da câmera pressionado.</li>
<li style="text-align: justify;">Depois de um tempo (10 ~ 15 segundos) aparecerá um triângulo com um ponto de exclamação, como este:</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-267" title="motorola_milestone_hard" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/12/motorola_milestone_hard.jpg" alt="" width="350" height="343" /></p>
<li style="text-align: justify;">Com o triângulo aparecendo, solte o botão da câmera e pressione o botão de aumentar o volume e o botão da câmera novamente ao mesmo tempo.</li>
<li style="text-align: justify;">Utilize o direcional do teclado para selecionar a opção &#8220;Format options&#8221; (clique no centro do direcional para selecionar) e depois clique em &#8220;Wipe data/factory reset&#8221;.</li>
<li style="text-align: justify;">Selecione o slot onde está seus dados e mande ver!</li>
</ul>
<p><strong> </strong></p>
<h4><span style="font-weight: normal;">Milestone com Android 2.1 de fábrica</span></h4>
<ul>
<li style="text-align: justify;">Desligue o aparelho.</li>
<li style="text-align: justify;">Com o aparelho desligado, aperte a tecla &#8220;X&#8221; do teclado e o botão de ligar ao mesmo tempo.</li>
<li style="text-align: justify;">Quando aparecer o logo da Motorola, solte o botão de ligar e mantenha tecla &#8220;X&#8221; pressionada.</li>
<li style="text-align: justify;">Depois de um tempo (10 ~ 15 segundos) aparecerá um triângulo com um ponto de exclamação, como este:</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-267" title="motorola_milestone_hard" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/12/motorola_milestone_hard.jpg" alt="" width="350" height="343" /></p>
<li style="text-align: justify;">Com o triângulo aparecendo, solte a tecla &#8220;X&#8221; e pressione o botão de aumentar o volume e o botão da câmera novamente ao mesmo tempo.</li>
<li style="text-align: justify;">Utilize o direcional do teclado para selecionar a opção &#8220;Wipe data/factory reset&#8221; (clique no centro do direcional para selecionar).</li>
<li style="text-align: justify;">Selecione o slot onde está seus dados e mande ver!</li>
</ul>
<p><strong> </strong></p>
<h4><span style="font-weight: normal;">Ambos</span></h4>
<ul>
<li style="text-align: justify;">A tela principal no Milestone, clique no menu e selecione &#8220;Configurações&#8221;.</li>
<li style="text-align: justify;">Selecione a opção &#8220;Privacidade&#8221; e clique em &#8220;Configuração original&#8221;.</li>
<li style="text-align: justify;">Aparecerá um texto explicativo sobre o procedimento, então clique em &#8220;Redefinir telefone&#8221;.</li>
</ul>
<p><strong> </strong></p>
<p style="text-align: justify;">Após qualquer um dos procedimentos acima, seu telefone ficará igual quando tirado da caixa. Todos os aplicativos e configurações serão perdidas e terá de refazê-lo.</p>
<p> <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "celular";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/zwED0jAGD6kK04-gNKxxMnI0vKM/0/da"><img src="http://feedads.g.doubleclick.net/~a/zwED0jAGD6kK04-gNKxxMnI0vKM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zwED0jAGD6kK04-gNKxxMnI0vKM/1/da"><img src="http://feedads.g.doubleclick.net/~a/zwED0jAGD6kK04-gNKxxMnI0vKM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/AQ6qCxbv9OE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/12/hard-reset-no-motorola-milestone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/12/hard-reset-no-motorola-milestone/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Como anda a qualidade da “banda larga” no Brasil?</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/RzCndmMeoJc/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/08/como-anda-a-qualidade-da-banda-larga-no-brasil/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 00:06:47 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[banda larga]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[speedy]]></category>
		<category><![CDATA[telefonica]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=254</guid>
		<description><![CDATA[Você, que mora no Brasil, acha que  tem internet banda larga? Não tem! Temos uma conexão discada de alta velocidade.<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/08/como-anda-a-qualidade-da-banda-larga-no-brasil/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Você, que mora no Brasil, acha que  tem internet banda larga?</p>
<p style="text-align: justify;">Não tem! Temos uma conexão discada de alta velocidade. E é bem por aí mesmo.</p>
<p style="text-align: justify;">Enquanto aqui no Brasil se testam conexões de 100Mbps em algumas cidades, o japoneses testam a implantação de conexão na casa de 1Gbps, isso mesmo, 1 gigabite!</p>
<p style="text-align: justify;">Moro na capital de São Paulo e na minha casa não chega uma conexão decente. Tenho contratado um serviço de 1Mbps que muito raramente passa dos 600Kbps.</p>
<p style="text-align: justify;">O <a href="http://www.youtube.com/my_speed" target="_blank">Youtube</a> possui um gráfico comparando as velocidades de seu provedor, cidade, estado, país e mundo.</p>
<p style="text-align: justify;">
<div class="mceTemp mceIEcenter" style="text-align: justify;">
<dl id="attachment_255" class="wp-caption aligncenter" style="width: 420px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-255" title="grafico Youtube" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/08/chart.png" alt="grafico Youtube" width="410" height="300" /></dt>
<dd class="wp-caption-dd">Gráfico gerado pelo Youtube (http://www.youtube.com/my_speed)</dd>
</dl>
</div>
<p style="text-align: justify;">
<p style="text-align: justify;">Em amarelo meu provedor (Como uso Speedy, é Telefônica), em azul a cidade onde moro, em verde o estado, em rosa o país e cinza a média mundial.</p>
<p style="text-align: justify;">Aqui fica claro como nossos provedores e acesso rápido estão defasados.</p>
<p style="text-align: justify;">Se quiser comprar a sua velocidade também, acesse <a href="http://www.youtube.com/my_speed">http://www.youtube.com/my_speed</a>, <a href="http://www.testesuavelocidade.com.br">http://www.testesuavelocidade.com.br</a>. Na internet existem muitas outras ferramentas para esta finalidade.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "telefonica";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/JFnJNWnW1d9JKwYtNg3nDO0NI7E/0/da"><img src="http://feedads.g.doubleclick.net/~a/JFnJNWnW1d9JKwYtNg3nDO0NI7E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JFnJNWnW1d9JKwYtNg3nDO0NI7E/1/da"><img src="http://feedads.g.doubleclick.net/~a/JFnJNWnW1d9JKwYtNg3nDO0NI7E/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/RzCndmMeoJc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/08/como-anda-a-qualidade-da-banda-larga-no-brasil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/08/como-anda-a-qualidade-da-banda-larga-no-brasil/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>INNER JOIN e OUTER JOIN</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/yvpJcxALRhM/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/07/inner-join-e-outer-join/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 14:02:17 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[inner join]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[outer join]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=244</guid>
		<description><![CDATA[Se você é um DBA ou trabalha com programação e usa muito banco de dados SQL, este tópico não é<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/07/inner-join-e-outer-join/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Se você é um DBA ou trabalha com programação e usa muito banco de dados SQL, este tópico não é você, a menos que não conheça as cláusulas INNER JOIN e OUTER JOIN, muito comuns em SGBDs SQL.</p>
<p style="text-align: justify;">Não sabe o que é SGBD? Os <strong>S</strong>istemas de <strong>G</strong>erenciamento de <strong>B</strong>anco de <strong>D</strong>ados são programas que auxiliam na manipulação dos dados armazenados. O MySQL, PostgreSQL, MS SQL Server ou Oracle, que você tem em sua casa ou empresa, são SGBDs.</p>
<p style="text-align: justify;">Para este tutorial você precisa ter, pelo menos, o conhecimento básico de SQL.</p>
<p style="text-align: justify;">Chega de enrolação, vamos ao que interessa!</p>
<h4>INNER JOIN</h4>
<p style="text-align: justify;">A cláusula INNER JOIN é usada quando se quer recuperar dados em mais de uma tabela através da igualdade de suas <em>foreign keys</em>.</p>
<p style="text-align: justify;">Por exemplo, pense que você quer criar um programa que sirva como agenda telefônica. Você cadastra as pessoas e os contatos telefônicos, como uma pessoa poderá ter nenhum até N números de telefones, você separa em duas entidades como neste modelo:<br />
<img class="aligncenter size-full wp-image-247" title="post - ptg" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/07/post-ptg.jpg" alt="" width="197" height="249" /></p>
<p style="text-align: justify;">Olhando rapidamente você percebe que a entidade TELEFONE tem o atributo <strong>NUM_PESSOA</strong> que é o número de identificação do registro na entidade PESSOA.</p>
<p style="text-align: justify;">Vamos supor que as tabelas estejam preenchidas com os seguintes registros:</p>
<pre> +----------------------------+  +---------------------------+
 |           PESSOA           |  |         CONTATO           |
 +------------+---------------+  +------------+--------------+
 | NUM_PESSOA | NOME_PESSOA   |  | NUM_PESSOA | NUM_TELEFONE |
 | 1          | José          |  | 1          | 6589-3666    |
 | 2          | Arnaldo       |  | 3          | 9888-6699    |
 | 3          | Maria         |  | 3          | 8956-6666    |
 | 4          | Elverdelando  |  | 2          | 2888-9877    |
 +------------+---------------+  +------------+--------------+</pre>
<p style="text-align: justify;">Para recuperar os telefones de uma pessoa você deve usar INNER JOIN, implicitamente ou explicitamente. Vou explicar os dois casos.</p>
<p style="text-align: justify;">O método <strong>explícito</strong> é usar a cláusula explicitamente (duh!), que é formada por <strong>INNER JOIN </strong><em>&lt;tabela filha&gt;</em><strong> ON </strong><em>&lt;atributos de identificação&gt;</em>, no nosso exemplo:</p>
<pre class="brush:sql">SELECT nome_completo, num_telefone FROM pessoa INNER JOIN telefone <strong>ON</strong> pessoa.num_pessoa = telefone.num_pessoa</pre>
<p style="text-align: justify;">Estamos dizendo: &#8220;me traga o nome e os números dos telefones da pessoa onde o número da pessoa em TELEFONE seja igual ao número da pessoa em PESSOA&#8221;.</p>
<p style="text-align: justify;">Na forma <strong>implícita</strong> você não usa a cláusula INNER JOIN, o tratamento de igualdade é feito na cláusula <strong>WHERE</strong>. Usando o mesmo exemplo:</p>
<pre class="brush:sql">SELECT nome_completo, num_telefone FROM pessoa, telefone WHERE pessoa.num_pessoa = telefone.num_pessoa</pre>
<p style="text-align: justify;">Em ambos os casos o resultado será:</p>
<pre> +---------------------------+
 |         CONTATO           |
 +------------+--------------+
 | NOM_PESSOA | NUM_TELEFONE |
 | José       | 6589-3666    |
 | Maria      | 9888-6699    |
 | Maria      | 8956-6666    |
 | Arnaldo    | 2888-9877    |
 +------------+--------------+</pre>
<p style="text-align: justify;">&#8220;Que simples! Hummmm espera um pouco&#8230; Onde está o Elverdelando (que nominho, hein?!).&#8221;</p>
<p style="text-align: justify;">Lembra que dissemos ao banco &#8220;me traga o nome e os números dos telefones da pessoa onde o número da pessoa em TELEFONE seja igual ao número da pessoa em PESSOA&#8221;? Então! O Elverdelando não esta na tabela TELEFONE, por isso não foi retornado no resultado.</p>
<p style="text-align: justify;">Quando você precisar retornar os dados, mesmo não estando na tabela filha, usamos o <strong>OUTER JOIN</strong>.</p>
<h4>OUTER JOIN</h4>
<p style="text-align: justify;">A clásula OUTER JOIN tem duas variantes, <strong>LEFT OUTER JOIN</strong> e <strong>RIGHT OUTER JOIN</strong>, sendo que estas cláusula devem ser declaradas sempre de maneira explícita. Alguns SGBDs facilitam a utilização do OUTER JOIN te polpando de declarar toda a sintaxe, como é o caso do Oracle que utiliza o símbolo <strong>(+)</strong> na identificação fraca, mas <strong>NÃO É ANSI</strong>, ou seja, não funcionará em qualquer SGBD.</p>
<p style="text-align: justify;">Para que apareçam todas as pessoas, inclusive as que não têm número de telefone cadastrado usamos <strong>LEFT OUTER JOIN</strong> ou <strong>RIGHT OUTER JOIN</strong>.</p>
<p style="text-align: justify;">A sintaxe é parecida com a INNER JOIN, mudando apenas o nome da cláusula: <strong>LEFT[RIGHT] OUTER JOIN </strong><em>&lt;tabela filha&gt;</em><strong> ON </strong><em>&lt;atributos de identificação&gt;;</em></p>
<p style="text-align: justify;">Assim, faremos&#8230;</p>
<pre class="brush:sql">SELECT nome_completo, num_telefone FROM pessoa LEFT OUTER JOIN telefone ON pessoa.num_pessoa = telefone.num_pessoa</pre>
<p>ou então</p>
<pre class="brush:sql">SELECT nome_completo, num_telefone FROM telefone RIGHT OUTER JOIN pessoa ON pessoa.num_pessoa = telefone.num_pessoa</pre>
<p style="text-align: justify;">Em ambos os casos o resultado será:</p>
<pre> +-----------------------------+
 |         CONTATO             |
 +--------------+--------------+
 | NOM_PESSOA   | NUM_TELEFONE |
 | José         | 6589-3666    |
 | Maria        | 9888-6699    |
 | Maria        | 8956-6666    |
 | Arnaldo      | 2888-9877    |
 | Elverdelando |              |
 +--------------+--------------+</pre>
<p style="text-align: justify;">Como você pôde perceber, a única diferença entre o <strong>LEFT OUTER JOIN</strong> e o <strong>RIGHT OUTER JOIN</strong> é só a indicação de qual é o lado forte do relacionamento, ou seja, em qual lado da cláusula está a tabela que pode não ter valores na tabela filha. No nosso caso, ambos apontando para a tabela PESSOA.</p>
<p style="text-align: justify;"><em>INNER JOIN</em> é muito usado para consulta em banco de dados, quase que totalmente em seu método implícito. Já as cláusulas <em>OUTER JOIN</em> também são usadas, mas não com tanta frequência, posso dizer que é raro encontra-las por aí.</p>
<p style="text-align: justify;">Espero que este tutorial os ajude! <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "sql server";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/3EOvk8F5od3tnjeFMe5Jxpp4Tuk/0/da"><img src="http://feedads.g.doubleclick.net/~a/3EOvk8F5od3tnjeFMe5Jxpp4Tuk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3EOvk8F5od3tnjeFMe5Jxpp4Tuk/1/da"><img src="http://feedads.g.doubleclick.net/~a/3EOvk8F5od3tnjeFMe5Jxpp4Tuk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/yvpJcxALRhM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/07/inner-join-e-outer-join/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/07/inner-join-e-outer-join/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Novo sistema de busca de imagens da Google. Surpreendente!</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/oXKbM3nGi4g/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/07/o-novo-sistema-do-busca-de-imagens-do-google-esta-surpreendente/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 16:36:46 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[imagens]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=236</guid>
		<description><![CDATA[A Google procura sempre inovar em seus serviços. Com o sistema de busca por imagens não foi diferente. Para quem<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/07/o-novo-sistema-do-busca-de-imagens-do-google-esta-surpreendente/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>A Google procura sempre inovar em seus serviços. Com o sistema de busca por imagens não foi diferente.</p>
<p>Para quem está no Brasil e acessa o serviço o domínio usando <strong>.com.br</strong> pode não usufruir da nova interface. As imagens não mais aparecem em formato tabular, agora elas ficam &#8220;desorganizada&#8221; para facilitar a identificação visual e aproveitar o máximo de espaço disponível no monitor do usuário.</p>
<div id="attachment_237" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/07/ngoimg1.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" target="_blank"><img class="size-medium wp-image-237 " title="ngoimg1" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/07/ngoimg1-300x191.jpg" alt="" width="300" height="191" /></a><p class="wp-caption-text">Click para ampliar</p></div>
<p>Ao passar o mouse sobre a imagem ela se destaca, exibindo a origem e as dimensões. Também não há mais paginação. As imagens são exibidas e carregadas conforme o usuário vai descendo pela página.</p>
<p>A imagem, ao clicar, é exibida em sua página de origem, destacada por uma janela &#8220;modal&#8221; e com uma barra lateral contendo suas informações,  sem o uso de <em>frames</em> para delírio dos Web Designers.</p>
<div id="attachment_238" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/07/ngoimg2.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" target="_blank"><img class="size-medium wp-image-238 " src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/07/ngoimg2-300x189.jpg" alt="" width="300" height="189" /></a><p class="wp-caption-text">Clique para ampliar</p></div>
<p style="text-align: center;">
<p>Confira em <a href="http://www.google.com/imghp">http://www.google.com/imghp</a>. Enjoy! <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "imagens";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/1jrDbtr58cqptQxUH5NfXNVB0s4/0/da"><img src="http://feedads.g.doubleclick.net/~a/1jrDbtr58cqptQxUH5NfXNVB0s4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/1jrDbtr58cqptQxUH5NfXNVB0s4/1/da"><img src="http://feedads.g.doubleclick.net/~a/1jrDbtr58cqptQxUH5NfXNVB0s4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/oXKbM3nGi4g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/07/o-novo-sistema-do-busca-de-imagens-do-google-esta-surpreendente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/07/o-novo-sistema-do-busca-de-imagens-do-google-esta-surpreendente/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Half-Life 2 e Half-Life 2: Episode 1 agora com achievements</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/_MNiIDHm1uo/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/06/half-life-2-e-half-life-2-episode-1-agora-tem-achievements/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 16:23:42 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[half-life 2]]></category>
		<category><![CDATA[hl2]]></category>
		<category><![CDATA[steam]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=229</guid>
		<description><![CDATA[Com o Steam sendo suportado em Macs, alguns jogos também foram migrados para a plataforma e, inclusive, com melhorias que<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/06/half-life-2-e-half-life-2-episode-1-agora-tem-achievements/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-230" title="hl2" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/06/hl2.jpg" alt="" width="460" height="215" />Com o <a href="http://www.steampowered.com" target="_blank">Steam</a> sendo suportado em Macs, alguns jogos também foram migrados para a plataforma e, inclusive, com melhorias que também foram replicadas nas cópias para Windows.</p>
<p><a href="http://store.steampowered.com/app/220/">Half-Life 2</a> e <a href="http://store.steampowered.com/app/380/">Half-Life 2: Episode 1</a> são jogos que sofreram melhorias. Os <em>achievementes</em> (objetivos dentro do jogo), que antes eram exclusivos para o <a href="http://store.steampowered.com/app/420/">Half-Life 2: Episode 2</a>, também estão disponíveis no HL2 e HL2: Episode 1. São 46 achievements, 33 para o HL 2 e 13 para o HL 2: Episode 1.</p>
<p>Deu até vontade de &#8220;zerar&#8221; os jogos de novo! <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "steam";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/L8Zz7z16yIux5HIZD4G57lvTI4c/0/da"><img src="http://feedads.g.doubleclick.net/~a/L8Zz7z16yIux5HIZD4G57lvTI4c/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/L8Zz7z16yIux5HIZD4G57lvTI4c/1/da"><img src="http://feedads.g.doubleclick.net/~a/L8Zz7z16yIux5HIZD4G57lvTI4c/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/_MNiIDHm1uo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/06/half-life-2-e-half-life-2-episode-1-agora-tem-achievements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/06/half-life-2-e-half-life-2-episode-1-agora-tem-achievements/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Instalando suporte multi-idioma nos Windows 7 Professional e Home Premium</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/VXHeewmega0/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/05/instalando-suporte-multi-idioma-nos-windows-7-professional-e-home-premium/#comments</comments>
		<pubDate>Thu, 06 May 2010 17:01:19 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Sistemas Operacionais]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[idioma]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=215</guid>
		<description><![CDATA[O suporte multi-idioma é nativo nas edições Enterprise e Ultimate do Windows 7, porém, seguindo este tutorial, você também conseguirá<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/05/instalando-suporte-multi-idioma-nos-windows-7-professional-e-home-premium/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-221" title="wind" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/05/wind.jpg" alt="" width="431" height="286" /></p>
<p>O suporte multi-idioma é nativo nas edições <em>Enterprise</em> e <em>Ultimate do Windows 7</em>, porém, seguindo este tutorial, você também conseguirá alternar entre os idiomas nas edições <em>Professional</em> e <em>Home Premium</em>.</p>
<p>Primeiro você precisará do Vistalizator. Este aplicativo lhe permite instalar o suporte multi-idiomas em todas as versões do Windows 7 e, como ele é portável, não precisa de instalação. Você pode baixa-lo clicando <a href="http://www.froggie.sk/download.html" target="_blank">aqui</a>.</p>
<p>Depois baixe os idiomas para a arquitetura <a href="http://www.froggie.sk/7lp64rtm.html">x64 (64 bits)</a> ou <a href="http://www.froggie.sk/7lp32rtm.html">x86 (32 bits)</a>.</p>
<p>Agora execute o Vistalizator e clique em &#8220;Add languages&#8221;.</p>
<p><img class="aligncenter size-full wp-image-216" title="1" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/05/1.jpg" alt="" width="450" height="309" /></p>
<p>Localize o arquivo com o idioma que deseja e clique em &#8220;Open&#8221;.</p>
<p>Aparecerá a mensagem abaixo, então clique em OK para prosseguir.</p>
<p><img class="aligncenter size-full wp-image-217" title="2" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/05/2.jpg" alt="" width="376" height="199" /></p>
<p>Em seguida será aberta uma tela com os dados do arquivo e a descrição do idioma, então clique em &#8220;Install Language&#8221;.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-218" title="3" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/05/3.jpg" alt="" width="450" height="205" /></p>
<p>Aguarde e processo de extração e instalação.</p>
<p><img class="aligncenter size-full wp-image-219" title="4" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/05/41.jpg" alt="" width="450" height="103" /></p>
<p>O Vistalizator exibirá os idiomas instalados na sua máquina e, entre eles, estará o idioma que você escolheu. Selecione-o e clique em &#8220;Change language&#8221;.</p>
<p><img class="aligncenter size-full wp-image-220" title="5" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/05/5.jpg" alt="" width="450" height="309" /></p>
<p>Reinicie o sistema e <em>voilá</em>. <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Agora você tem um Windows 7 com suporte multi-idioma.</p>
<p>A única coisa ruim que pude perceber até agora é que toda vez que quiser alternar entre os idiomas você precisará usar o Vistalizator, devido as edições <em>Professional</em> e <em>Home Premium</em> não ter esta opção habilitada por padrão.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "idioma";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/8lEtQeadzbnQh50H_1APV-6lHfE/0/da"><img src="http://feedads.g.doubleclick.net/~a/8lEtQeadzbnQh50H_1APV-6lHfE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8lEtQeadzbnQh50H_1APV-6lHfE/1/da"><img src="http://feedads.g.doubleclick.net/~a/8lEtQeadzbnQh50H_1APV-6lHfE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/VXHeewmega0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/05/instalando-suporte-multi-idioma-nos-windows-7-professional-e-home-premium/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/05/instalando-suporte-multi-idioma-nos-windows-7-professional-e-home-premium/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Solucionando problemas com remoção de HD externo no Windows 7</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/aovRpgG4lks/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/05/slucionando-problemas-com-remocao-de-hd-externo-no-windows-7/#comments</comments>
		<pubDate>Mon, 03 May 2010 02:17:22 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Sistemas Operacionais]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[armazenamento]]></category>
		<category><![CDATA[hd]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=204</guid>
		<description><![CDATA[Algumas vezes tive problemas quando removia meu HD externo usando o Assistente de Remoção de Dispositivos do Windows 7, o<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/05/slucionando-problemas-com-remocao-de-hd-externo-no-windows-7/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Algumas vezes tive problemas quando removia meu HD externo usando o <em>Assistente de Remoção de Dispositivos</em> do <em>Windows 7</em>, o mais comum deles era o famoso &#8220;Este dispositivo está sendo usado no momento. Feche os programas ou janelas&#8230;&#8221;. Esta mensagem aparecia mesmo com todos os programas fechados.</p>
<p>Depois de checar as configurações do Windows, seus processos e serviços, constatei que o problema estava no serviço &#8220;Serviço de compartilhamento de Rede do Windows Media Player&#8221;, que me obrigava para-lo antes de remover o dispositivo.</p>
<p>Ainda sim, esta solução não me parecia correta, então encontrei a mais adequada. Segue:</p>
<p>O serviço &#8220;Serviço de compartilhamento de Rede do Windows Media Player&#8221; é responsável por compartilhar seus arquivos de mídia (músicas e vídeos) em sua rede ou internet (como seu próprio nome já diz). Esta configuração é padrão da instalação do Windows 7, então para desabilitar o recurso&#8230;</p>
<p style="text-align: left;">Clique em &#8220;Iniciar&#8221;, na caixa de pesquisa digite &#8220;Central de rede e Compartilhamento&#8221; e selecione o aplicativo, conforme é exibido na imagem acima</p>
<p style="text-align: left;"><img class="size-full wp-image-206   aligncenter" style="margin-top: 5px; margin-bottom: 5px;" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/05/1.gif" alt="" width="376" height="500" /></p>
<p style="text-align: left;">Clique na opção &#8220;Escolher opções de grupo doméstico e de compartilhamento&#8221;</p>
<p style="text-align: center;"><img class="size-full wp-image-207    aligncenter" style="margin-top: 5px; margin-bottom: 5px;" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/05/2.png" alt="" width="450" height="333" /></p>
<p style="text-align: left;">Agora clique em &#8220;Escolha opções de streaming de mídia&#8230;&#8221;</p>
<p style="text-align: center;"><img class="size-full wp-image-208  aligncenter" style="margin-top: 5px; margin-bottom: 5px;" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/05/3.gif" alt="" width="450" height="266" /></p>
<p style="text-align: left;">Altere a opção do item &#8220;Programas de mídia neste PC e conexões remotas&#8221; para &#8220;Bloqueado&#8221;</p>
<p style="text-align: center;"><img class="size-full wp-image-209  aligncenter" style="margin-top: 5px; margin-bottom: 5px;" title="4" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/05/4.jpg" alt="" width="450" height="159" /></p>
<p style="text-align: left;">Pronto, a partir de agora você poderá remover seu HD externo ou qualquer outro dispositivo de armazenamento removível sem problemas.</p>
<p style="text-align: left;"> <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "hd";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/_MF2hqn0p69aYzblngL9aRZ7i_c/0/da"><img src="http://feedads.g.doubleclick.net/~a/_MF2hqn0p69aYzblngL9aRZ7i_c/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_MF2hqn0p69aYzblngL9aRZ7i_c/1/da"><img src="http://feedads.g.doubleclick.net/~a/_MF2hqn0p69aYzblngL9aRZ7i_c/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/aovRpgG4lks" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/05/slucionando-problemas-com-remocao-de-hd-externo-no-windows-7/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/05/slucionando-problemas-com-remocao-de-hd-externo-no-windows-7/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Habilitando a barra do Windows Media Player na barra de tarefas do Windows 7</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/miUO-rKYbpE/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/04/habilitando-a-barra-do-windows-media-player-na-barra-de-tarefas-do-windows-7/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 15:34:33 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Sistemas Operacionais]]></category>
		<category><![CDATA[Softwares]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[barra de tarefas]]></category>
		<category><![CDATA[windows 7]]></category>
		<category><![CDATA[windows media player]]></category>
		<category><![CDATA[windows vista]]></category>
		<category><![CDATA[wmpband.dll]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=189</guid>
		<description><![CDATA[Infelizmente o Windows Media Player 12, que é instalado junto com o Windows 7, não tem suporte para minimizá-lo como<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/04/habilitando-a-barra-do-windows-media-player-na-barra-de-tarefas-do-windows-7/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Infelizmente o Windows Media Player 12, que é instalado junto com o Windows 7, não tem suporte para minimizá-lo como barra de ferramentas da barra de tarefas. Para habilitar a barra, apenas copie um aquivo do Windows Media Player que vem com o Windows Vista. Agora mostrarei como fazer:</p>
<p style="text-align: justify;"><strong>1. </strong>Você precisará da <em>dll</em> <strong>wmpband.dll</strong>, que vem com o Windows Vista. Se não tiver, faça o download <a href="http://www.andrels.com/wp-pt_BR/wp-content/plugins/download-monitor/download.php?id=4" title="clicado 1825 vezes">aqui</a> (contém a dll para 32 e 64 bits);</p>
<p style="text-align: justify;"><strong>2. </strong>Copie o arquivo (32 ou 64 bits, dependendo do seu Windows) para o diretório onde está instalado o Windows Media Player, no meu caso &#8220;<strong>C:\Program Files\Windows Media Player</strong>&#8220;;</p>
<p style="text-align: justify;"><strong>3. </strong>Agora verifique se o serviço &#8220;<strong>Serviço de Compartilhamento de rede do Windows Media Player</strong>&#8221; (&#8220;<strong>Windows Media Player Network Sharing Service</strong>&#8221; para Windows em inglês) está parado. Para isso clique no menu Iniciar e, na caixa de busca, digite &#8220;Serviços&#8221; (ou &#8220;Services&#8221; para Windows em Inglês) e clique no respectivo item da lista. Agora localize o serviço e pare-o, caso esteja rodando.<a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/04/Snap3.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="aligncenter size-full wp-image-193" style="margin-top: 5px; margin-bottom: 5px;" title="Snap3" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/04/Snap3.jpg" alt="" width="482" height="429" /></a></p>
<p style="text-align: justify;"><strong>4. </strong>Abra o prompt de comando em modo administrador. Iniciar &gt; Todos os Programas &gt; Acessórios &gt; clique com o botão direito em &#8220;Prompt de Comando&#8221; e clique em &#8220;Executar como Administrador&#8221;.</p>
<p style="text-align: justify;"><strong>5. </strong>Digite o comando <strong>regsvr32</strong> &#8220;<strong>C:\Program Files\Windows Media Player\wmpband.dll</strong>&#8220;, substituia o caminho para o local onde o arquivo foi copiado. Espere alguns segundos até aparecer a mensagem:<a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/04/5.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="aligncenter size-full wp-image-191" style="margin-top: 5px; margin-bottom: 5px;" title="5" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/04/5.jpg" alt="" width="365" height="138" /></a><strong> </strong></p>
<p><strong>6. </strong>Abra o Windows Media Player e então o minimize-o. Depois clique com o botão direito na barra de tarefas &gt; Barra de Ferramentas &gt; Windows Media Player.<a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/04/4545456.png#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="aligncenter size-full wp-image-194" title="4545456" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/04/4545456.png" alt="" width="509" height="218" /></a></p>
<p><strong>7.</strong> E <em>voilá</em>! <a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/04/45454561.png#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="size-full wp-image-195 alignnone" title="4545456" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/04/45454561.png" alt="" width="321" height="45" /></a></p>
<p>Esta característica a Microsoft devia ter mantido nativamente, muita gente que conheço usa este recurso. Só lamentos <em>uncle </em>Bill!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "wmpband.dll";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/-u4smCKHgun-BDkJZ93x_UTfrW4/0/da"><img src="http://feedads.g.doubleclick.net/~a/-u4smCKHgun-BDkJZ93x_UTfrW4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-u4smCKHgun-BDkJZ93x_UTfrW4/1/da"><img src="http://feedads.g.doubleclick.net/~a/-u4smCKHgun-BDkJZ93x_UTfrW4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/miUO-rKYbpE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/04/habilitando-a-barra-do-windows-media-player-na-barra-de-tarefas-do-windows-7/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/04/habilitando-a-barra-do-windows-media-player-na-barra-de-tarefas-do-windows-7/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Configurando acesso à internet via proxy em aplicações Java</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/mC_g40JzvQM/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/03/configurando-acesso-a-internet-via-proxy-em-aplicacoes-java/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 01:35:42 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[prompt]]></category>
		<category><![CDATA[proxy]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=186</guid>
		<description><![CDATA[Hoje tive um problema no meu trabalho onde um client, que roda via prompt de comando (Prompt do DOS), não<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/03/configurando-acesso-a-internet-via-proxy-em-aplicacoes-java/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Hoje tive um problema no meu trabalho onde um client, que roda via prompt de comando (Prompt do DOS), não conseguia acessar o servidor hospedado na internet, isso porque a empresa onde trabalho utiliza proxy.</p>
<p>Depois de algumas tentativas acabei achando duas soluções para resolver o problema de acesso: a primeira foi passar como parâmetros <em>Java</em> as configurações do proxy.</p>
<pre class="brush:shell">$ java -Dhttp.proxyHost=serv -Dhttp.proxyPort=porta -Dhttp.proxyUser=usu -Dhttp.proxyPassword=senha ClasseJava
</pre>
<p><strong>-Dhttp.proxyHost</strong> = IP ou nome do servidor proxy<br />
<strong>-Dhttp.proxyPort</strong> = Porta do proxy<br />
<strong>-Dhttp.proxyUser</strong> = Usuário<br />
<strong>-Dhttp.proxyPassword</strong> = Senha</p>
<p>Desta forma a classe <i>ClasseJava</i> terá acesso à internet através do proxy.</p>
<p>A outra forma foi inserir as configurações na própria classe:</p>
<pre class="brush:java">
public static void main(String[] args){
...
System.getProperties().put("proxySet", "true");
System.getProperties().put("http.proxyHost", "serv");
System.getProperties().put("http.proxyPort", "porta");
System.getProperties().put("http.proxyUser", "usuario");
System.getProperties().put("http.proxyPassword", "senha");
...
}
</pre>
<p><strong>proxySet</strong> = Define se passará ou não por um servidor proxy<br />
<strong>http.proxyHost</strong> = IP ou nome do servidor proxy<br />
<strong>http.proxyPortt</strong> = Porta do proxy<br />
<strong>http.proxyUse</strong> = Usuário<br />
<strong>http.proxyPassword</strong> = Senha</p>
<p>Usando um destes recursos você poderá configurar sua aplicação para acessar à internet através de um proxy.</p>
<p>Espero ter ajudado. Até +! <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "prompt";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/G94gpbvh887skCMbdymMoriXg2c/0/da"><img src="http://feedads.g.doubleclick.net/~a/G94gpbvh887skCMbdymMoriXg2c/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/G94gpbvh887skCMbdymMoriXg2c/1/da"><img src="http://feedads.g.doubleclick.net/~a/G94gpbvh887skCMbdymMoriXg2c/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/mC_g40JzvQM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/03/configurando-acesso-a-internet-via-proxy-em-aplicacoes-java/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/03/configurando-acesso-a-internet-via-proxy-em-aplicacoes-java/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Playlist do Amarok pára após tocar uma música</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/rn0AZ0sPK8s/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/03/playlist-do-amarok-para-apos-tocar-uma-musica/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 01:52:05 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Softwares]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[playlist]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=180</guid>
		<description><![CDATA[Recentemente enfrentei um problema que vários outros usuários do Amarok 2.1.1 vêm enfrentando: O Amarok só toca uma música do<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/03/playlist-do-amarok-para-apos-tocar-uma-musica/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Recentemente enfrentei um problema que vários outros usuários do Amarok 2.1.1 vêm enfrentando: O Amarok só toca uma música do playlist e depois pára.</p>
<p>Para resolver este problema: Feche o Amarok, delete o arquivo <strong> ~/.kde/share/apps/amarok/current.xspf </strong>e então reinicie o Amarok.</p>
<p>Pelo menos comigo funcionou e espero que funcione com todos! <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Até +.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "playlist";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/lsRh8saDffa5tCwS-zFoajU5FXs/0/da"><img src="http://feedads.g.doubleclick.net/~a/lsRh8saDffa5tCwS-zFoajU5FXs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/lsRh8saDffa5tCwS-zFoajU5FXs/1/da"><img src="http://feedads.g.doubleclick.net/~a/lsRh8saDffa5tCwS-zFoajU5FXs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/rn0AZ0sPK8s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/03/playlist-do-amarok-para-apos-tocar-uma-musica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/03/playlist-do-amarok-para-apos-tocar-uma-musica/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Criando janelas transparentes e com formas usando Java Swing/AWT</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/oaUIb9bs-oU/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/03/criando-janelas-transparentes-e-com-formas-usando-java-swingawt-2/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 22:40:50 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[awt]]></category>
		<category><![CDATA[janela]]></category>
		<category><![CDATA[jframe]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[transparencia]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=168</guid>
		<description><![CDATA[O AWT nos oferece uma gama de possibilidades quando falamos sobre manipulação de janelas. Hoje falarei sobre duas destas possibilidades<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/03/criando-janelas-transparentes-e-com-formas-usando-java-swingawt-2/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>O AWT nos oferece uma gama de possibilidades quando falamos sobre manipulação de janelas. Hoje falarei sobre duas destas possibilidades com a classe AWTUtilities.</p>
<h3></h3>
<h3><strong>Deixando a janela transparente</strong></h3>
<p>Para deixar uma <strong>Window</strong> (JFrame, JDialog e etc) transparente,  você deve usar o método <strong>AWTUtilities.setWindowOpacity</strong>. Este método recebe como parâmetro a janela que deve ser alterada e o grau de transparência, que varia entre 0 (zero) e 1, sendo 0 (zero) invisível e 1 totalmente visível.</p>
<pre class="brush:java">JFrame  window = new JFrame("Minha janela");

//70% de transparência
AWTUtilities.setWindowOpacity(window, .7f);
window.setSize(800,600);
window.setVisible(true);
</pre>
<p>O resultado será:<a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/03/2.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="aligncenter size-full wp-image-174" title="2" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/03/2.jpg" alt="" width="480" height="368" /></a></p>
<h3><strong>Alterando a forma da janela</strong></h3>
<p>Para alterar a forma da janela você deve usar o método <strong>AWTUtilities.setWindowShape</strong>. Este método recebe como parâmetro a janela que deve ser alterada e a forma (java.awt.Shape) que a janela deverá assumir.</p>
<p>A forma mais eficiente de usar este método é através do <em>componentResized()</em>, pois você poderá recalcular o tamanho da janela para não deforma-la ou não perder os componentes de vista.</p>
<p>Aqui deixaremos nossa janela com a forma de um triângulo com 70% de transparência.</p>
<pre class="brush:java">final JFrame  window = new JFrame("Minha janela");

try {
	//Adicionando o ComponentListener responsável pelo componentResized
	window.addComponentListener(new ComponentAdapter(){
		@Override
		//implementando o método componentResized
		public void componentResized(ComponentEvent e) {
			int[] x = {0,400,800}; //Pontos X do polígono
			int[] y = {600,0,600}; //Pontos Y do polígono

			//Criaremos um triângulo de 800 x 600
			Shape shape = new Polygon(x, y, 3);

			AWTUtilities.setWindowShape(window, shape);

			//com transparência de 70%
			AWTUtilities.setWindowOpacity(window, 0.7f);
		}
	});
} catch (SecurityException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
} catch (IllegalArgumentException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

window.setUndecorated(true); //removendo barra de título
window.setSize(800,600);
window.setVisible(true);
</pre>
<p>Repare que invoquei o método <strong><em>setUndecorated( )</em></strong> passando o valor <em>true</em>, este método é responsável por ocultar a barra de título (aquele com o ícone e os botões de maximizar, minimizar e fechar) que, se estiver visível, o método <em>AWTUtilities.setWindowShape( </em>) não surtirá efeito.</p>
<p>O resultado:<a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/03/1.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="aligncenter size-full wp-image-175" title="1" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2010/03/1.jpg" alt="" width="480" height="365" /></a></p>
<p>Espero que tenham gostado e até a próxima!</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 618px; width: 1px; height: 1px; overflow: hidden;">
<pre class="brush:java">//Pontos X do polígono</pre>
</div>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "jframe";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/907YmkmXY0sCCiRzKDBoxCAlTz0/0/da"><img src="http://feedads.g.doubleclick.net/~a/907YmkmXY0sCCiRzKDBoxCAlTz0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/907YmkmXY0sCCiRzKDBoxCAlTz0/1/da"><img src="http://feedads.g.doubleclick.net/~a/907YmkmXY0sCCiRzKDBoxCAlTz0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/oaUIb9bs-oU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/03/criando-janelas-transparentes-e-com-formas-usando-java-swingawt-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/03/criando-janelas-transparentes-e-com-formas-usando-java-swingawt-2/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Inserindo arquivos em campos BLOB de uma base de dados</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/cgN1L9Qsg10/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/02/inserindo-arquivos-em-campos-blob-de-uma-base-de-dados/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:39:03 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[arquivo]]></category>
		<category><![CDATA[blob]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=157</guid>
		<description><![CDATA[Para inserir um arquivo, seja ele de qualquer formato, é necessário utilizar o método setBinaryStream implementado pelo PreparedStatement. PreparedStatemente.setBinaryStream(int índice,<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/02/inserindo-arquivos-em-campos-blob-de-uma-base-de-dados/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Para inserir um arquivo, seja ele de qualquer formato, é necessário utilizar o método <em>setBinaryStream</em> implementado pelo PreparedStatement.</p>
<pre class="brush:java">
PreparedStatemente.setBinaryStream(int índice, Inputstream is, int tamanho);
</pre>
<p>Para o exemplo definimos uma tabela chamada <i>arquivo</i> que contém um campo <b>BLOB</b> chamado <i>ARQ</i>.</p>
<pre class="brush:java">
//Conexão normal, como qualquer JDBC
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@&lt;IP&gt;:&lt;PORTA&gt;:&lt;SID>","&lt;USUARIO&gt;","&lt;SENHA&gt;");

//Acessando o arquivo a ser enviado e recuperando um InputStream
File arquivo = new File("&lt;CAMINHO_COMPLETO_DO_ARQUIVO&gt;");
FileInputStream fis = new FileInputStream(arquivo);

//Preparando a chamada normalmente
PreparedStatement ps = conn.prepareStatement("INSERT INTO ARQUIVO (arq) VALUES(?)");

//Informando o inputstream e o tamanho do arquivo a ser enviado
ps.setBinaryStream(1, fis, (int)arquivo.length());

ps.execute();

ps.close();
conn.close();
</pre>
<p>No meu teste utilizei a base de dados Oracle 8i. Como não tenho à disposição uma base MySQL/PostgreSQL/MS SQL Server, deixo vocês encarregados de testar e me enviar os resultados, OK? <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>[]&#8216;s e até a próxima!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "arquivo";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/0g0DR49HYLyxoZqIqnTsRD_bToo/0/da"><img src="http://feedads.g.doubleclick.net/~a/0g0DR49HYLyxoZqIqnTsRD_bToo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/0g0DR49HYLyxoZqIqnTsRD_bToo/1/da"><img src="http://feedads.g.doubleclick.net/~a/0g0DR49HYLyxoZqIqnTsRD_bToo/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/cgN1L9Qsg10" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/02/inserindo-arquivos-em-campos-blob-de-uma-base-de-dados/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/02/inserindo-arquivos-em-campos-blob-de-uma-base-de-dados/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Recuperando cursor de uma procedure do Oracle no Java</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/Ph-t21mEXK0/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2010/01/recuperando-cursor-de-uma-procedure-do-oracle-no-java/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 01:07:32 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=145</guid>
		<description><![CDATA[Percebi que muitas pessoas acabam chegando aqui pesquisando uma forma de recuperar cursores através de procedures do Oracle, para estas<a href="http://www.andrels.com/wp-pt_BR/index.php/2010/01/recuperando-cursor-de-uma-procedure-do-oracle-no-java/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Percebi que muitas pessoas acabam chegando aqui pesquisando uma forma de recuperar cursores através de <em>procedures</em> do Oracle, para estas pessoas eu coloco à disposição uma maneira de fazê-lo.</p>
<p>Para que o cursor possa ser retornado é preciso declara-lo como <em>REF CURSOR</em> no <em>spec</em> da <em>Package</em>.</p>
<pre class="brush:sql">  --Criando o tipo REF CURSOR que será o cursor
  type g_cursor is ref cursor;</pre>
<p>Em ambos, <em>spec</em> e <em>body</em>, você precisa declarar uma variável <em>out</em> do tipo do <em>REF CURSOR</em> mencionado acima.</p>
<pre class="brush:sql">  procedure PRO_RETORNA_LISTA_CARROS(
    i_id     in     tbl_car.car_id%type,
    o_cursor in out g_cursor);</pre>
<p>Para devolver o cursor com os resultados (caso haja), é necessário abri-lo no <em>body</em> da <em>procedure</em>, desta forma:</p>
<pre class="brush:sql">open o_cursor for
          select car_id, company, model, color, hp, price
          from tbl_car
          where car_id = i_id;</pre>
<p>A <em>Package</em> completa ficará assim:</p>
<pre class="brush:sql">create or replace package PAC_CURSOR is
  --Criando o tipo REF CURSOR que será o cursor
  type g_cursor is ref cursor;

  --Procedure que retornará o cursor
  procedure PRO_RETORNA_LISTA_CARROS(
    i_id     in     tbl_car.car_id%type,
    o_cursor in out g_cursor); -- Nosso cursor

end PAC_CURSOR;
/

create or replace package body PAC_CURSOR is
  procedure PRO_RETORNA_LISTA_CARROS(
    i_id     in     tbl_car.car_id%type,
    o_cursor in out g_cursor) is

       begin
        --Abrindo o cursor para retornar os valores
        open o_cursor for
          select car_id, company, model, color, hp, price
          from tbl_car
          where car_id = i_id;

  end PRO_RETORNA_LISTA_CARROS;

end PAC_CURSOR;</pre>
<p>Temos o lado do Oracle pronto, agora precisamos tratar a chamada no Java.</p>
<p>Como o cursor está sendo retornado por uma <em>procedure</em>, usaremos um <em>java.sql.CallableStatement</em>.</p>
<pre class="brush:java">CallableStatement cs = conn.prepareCall("{call PAC_CURSOR.PRO_RETORNA_LISTA_CARROS(?,?)}");</pre>
<p>O <em>registerOutParameter</em> receberá o tipo <em>oracle.jdbc.OracleTypes.CURSOR</em> e retornará um <em>java.sql.ResultSet</em>. Iteraremos o ResultSet do mesmo modo que iteramos um Iterator.<br />
Cada coluna retornada pelo <em>SELECT</em> será representado como um mapa, usando o <em>getter</em> correpondente. Por exemplo, chamaremos o método <em>getString(&lt;nome coluna&gt;)</em> quando retornar um <em>varchar</em>, <em>getDate(&lt;nome coluna&gt;)</em> quando retornar um <em>date</em> e etc.</p>
<p>O código completo fica assim:</p>
<pre class="brush:java">//Chamando o procedure
CallableStatement cs = conn.prepareCall("{call PAC_CURSOR.PRO_RETORNA_LISTA_CARROS(?,?)}");

//Definindo o tipo do retorno, no caso o cursor
cs.registerOutParameter("o_cursor", OracleTypes.CURSOR);
cs.setLong("i_id", id);

cs.execute();//Executando a chamada

//Recuperando o cursor como um Resultset
ResultSet rs = (ResultSet)cs.getObject("o_cursor");

//Iterando as linhas retornadas
while(rs.next()){
	//Obtendo o valor das colunas
	System.out.println("ID: " + rs.getLong("car_id"));
	System.out.println("Marca: " + rs.getString("company"));
	System.out.println("Modelo: " + rs.getString("model"));
	System.out.println("Cor: " + rs.getString("color"));
	System.out.println("HP: " + rs.getString("hp"));
	System.out.println("Preco: " + rs.getFloat("price"));
}</pre>
<p>No final você conseguirá obter qualquer valor retornado em um <em>SELECT</em>.</p>
<p>Até a próxima!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "Oracle";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/rx1vrXAjUhYC-sI8swZJ7oIcYwQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/rx1vrXAjUhYC-sI8swZJ7oIcYwQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/rx1vrXAjUhYC-sI8swZJ7oIcYwQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/rx1vrXAjUhYC-sI8swZJ7oIcYwQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/Ph-t21mEXK0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2010/01/recuperando-cursor-de-uma-procedure-do-oracle-no-java/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2010/01/recuperando-cursor-de-uma-procedure-do-oracle-no-java/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Habilitando Telnet e TFTP no Windows 7</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/gb4kawx3GuE/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/12/habilitando-telnet-e-tftp-no-windows-7/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 13:18:50 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Sistemas Operacionais]]></category>
		<category><![CDATA[telnet]]></category>
		<category><![CDATA[tftp]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=141</guid>
		<description><![CDATA[Assim como o Windows Vista, o Windows 7 não vem com os clients do Telnet e do TFTP habilitado por<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/12/habilitando-telnet-e-tftp-no-windows-7/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Assim como o Windows Vista, o Windows 7 não vem com os <em>clients</em> do Telnet e do TFTP habilitado por padrão.</p>
<p>Para habilitá-lo clique em <em>Painel de Controle</em> ><em> Programas e Recursos</em> > na lateral esquerda clique em<em> Ativar ou desativar recursos do Windows</em> > habilite o Cliente Telnet e Cliente TFTP e então clique em OK.</p>
<p>Não testei no Windows Vista, mas o processo deve ser o mesmo.</p>
<p>Até mais!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "tftp";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/YKMKiO3KpDMhpkZw16FGfvP6nek/0/da"><img src="http://feedads.g.doubleclick.net/~a/YKMKiO3KpDMhpkZw16FGfvP6nek/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YKMKiO3KpDMhpkZw16FGfvP6nek/1/da"><img src="http://feedads.g.doubleclick.net/~a/YKMKiO3KpDMhpkZw16FGfvP6nek/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/gb4kawx3GuE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/12/habilitando-telnet-e-tftp-no-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/12/habilitando-telnet-e-tftp-no-windows-7/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Os comandos mais usados de Unix agora para Win32</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/9XhokjcIWYo/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/11/os-comandos-mais-usados-de-unix-agora-para-win32/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 21:11:30 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Sistemas Operacionais]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=138</guid>
		<description><![CDATA[Já pensou rodar comandos como grep, chown, tail e su no Windows e ainda poder substituir o dir pelo ls?<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/11/os-comandos-mais-usados-de-unix-agora-para-win32/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Já pensou rodar comandos como <em>grep</em>, <em>chown</em>, <em>tail</em> e <em>su</em> no Windows e ainda poder substituir o <em>dir</em> pelo <em>ls</em>?</p>
<p>Procurando na internet por uma alternativa <em>Win32</em> para o comando <em>tail</em>, encontrei o UnixUtils. Uma compilação para Windows dos comandos mais utilizados no Linux/Unix.</p>
<p>Você pode fazer o download do ZIP pelo SourceForge clicando <a title="UnixUtils" href="http://sourceforge.net/projects/unxutils/" target="_blank">aqui</a>.</p>
<p>Até a próxima!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "linux";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/V9sMmNQ6V2s3g6_R3C0dRciYkos/0/da"><img src="http://feedads.g.doubleclick.net/~a/V9sMmNQ6V2s3g6_R3C0dRciYkos/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/V9sMmNQ6V2s3g6_R3C0dRciYkos/1/da"><img src="http://feedads.g.doubleclick.net/~a/V9sMmNQ6V2s3g6_R3C0dRciYkos/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/9XhokjcIWYo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/11/os-comandos-mais-usados-de-unix-agora-para-win32/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/11/os-comandos-mais-usados-de-unix-agora-para-win32/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Gerando ‘EXE’ para iniciar suas aplicações Java</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/SpR0y5Pq3Uo/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/10/gerando-exe-para-iniciar-suas-aplicacoes-java/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 01:25:19 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[exe]]></category>
		<category><![CDATA[jsmooth]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=117</guid>
		<description><![CDATA[Percebi que muitos desenvolvedores precisam, ou já precisaram, distribuir suas aplicações Java de forma que os usuários de Windows pudessem<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/10/gerando-exe-para-iniciar-suas-aplicacoes-java/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Percebi que muitos desenvolvedores precisam, ou já precisaram, distribuir suas aplicações Java de forma que os usuários de Windows pudessem iniciá-las naturalmente, sem a necessidade de chamar o comando <em>java -jar &lt;arquivo jar&gt;</em> ou executar um arquivo .BAT.</p>
<p>Eu, que também já passei por isso, encontrei um solução fácil e com muitos recursos: <a href="http://jsmooth.sourceforge.net/" target="_blank">JSmooth</a>.</p>
<p>Este programinha possibilita que você &#8220;transforme&#8221; seu JAR em um executável (EXE), mas claro, ainda sim você precisará ter o JVM instalado no micro que rodará o executável.</p>
<p>Aqui só destacarei as configurações que considero relevantes, então vamos ao que interessa!</p>
<hr />Baixe o JSmooth em <a href="http://sourceforge.net/projects/jsmooth/files/" target="_blank">http://sourceforge.net/projects/jsmooth/files/</a>;</p>
<p>Após instalá-lo (ou descompactá-lo, depende do arquivo que você baixou) execute-o;</p>
<p>No menu lateral, clique em &#8220;<em>Skeleton</em>&#8220;;</p>
<p style="text-align: center;"><a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/1.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="size-full wp-image-119 aligncenter" title="1" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/1.jpg" alt="1" width="524" height="364" /></a></p>
<p>No &#8220;<em>Skeleton Selection</em>&#8221; você informa como a aplicação será executada, aqui selecionaremos <em>Window Wrapper</em>.</p>
<p>No &#8220;<em>Skeleton Properties</em>&#8221; você define uma mensagem caso o usuário não tenha o JVM instalador (<em>Message</em>) e onde ele poderá baixá-lo (<em>URL</em>).</p>
<p>&#8220;<em>Launch java app in the exe process</em>&#8221; indica se o JAR será executado no mesmo processo do EXE, aparecendo somente o executável no Gerenciador de Tarefas do Windows, caso contrário também será o processo <em>javaw.exe</em>.</p>
<p>&#8220;<em>Single Instance&#8221; </em>define se você ser aberto mais de uma instância.</p>
<p>&#8220;<em>Debug Console</em>&#8221; executa o EXE em uma janela do prompt de comando, exibindo os possíveis <em>Stacktraces </em>gerados pela aplicação.</p>
<p>Agora clique em &#8220;<em>Executable</em>&#8221;</p>
<p style="text-align: center;"><a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/2.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="aligncenter size-full wp-image-120" title="2" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/2.jpg" alt="2" width="524" height="364" /></a></p>
<p>Em &#8220;<em>Executable Settings</em>&#8221; você informa onde o EXE será gerado (&#8220;<em>Executable Binary</em>&#8220;), o ícone do EXE (&#8220;<em>Executable Icon</em>&#8220;) e qual será o diretório de execução da aplicação.</p>
<p>Clique em &#8220;<em>Application</em>&#8221;</p>
<p style="text-align: center;"><a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/3.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="aligncenter size-full wp-image-121" title="3" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/3.jpg" alt="3" width="524" height="364" /></a></p>
<p>Primeiro, clique no ícone <img class="size-full wp-image-125 alignnone" title="7" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/7.jpg" alt="7" width="50" height="27" /> e selecione o JAR que contém a classe principal (que contém o método <em>main</em>).</p>
<p>Em seguida, selecione a classe no campo &#8220;<em>Main Class</em>&#8221; clicando no botão <img class="alignnone size-full wp-image-126" title="8" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/8.jpg" alt="8" width="39" height="20" />.</p>
<p>O campo &#8220;<em>Application arguments</em>&#8221; você passa os parâmetros necessário para a sua classe.</p>
<p>&#8220;<em>Embedded JAR</em>&#8221; possibilita que você integre seu JAR no EXE, ou seja, não será necessário ter os dois arquivos, pois o EXE descompactará o JAR a cada execução.</p>
<p>Agora, clique em &#8220;<em>JVM Selection</em>&#8220;.</p>
<p style="text-align: center;"><a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/4.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="aligncenter size-full wp-image-122" title="4" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/4.jpg" alt="4" width="524" height="364" /></a></p>
<p>Aqui você pode definir qual versão, mínima (&#8220;<em>Minimum JVM Version</em>&#8220;) e máxima (&#8220;<em>Maximum JVM Version</em>&#8220;), da virtual machine  rodará sua aplicação.</p>
<p>O&#8221;<em>JVM Search Sequence</em>&#8221; indica a ordem de busca do arquivo <em>javaw</em>.<em>exe</em>, neste caso ele procurará primeiro no registro, depois no diretório informado na variável de ambiente &#8220;JAVA_HOME&#8221; e assim por diante.</p>
<p>E então clique em &#8220;<em>JVM Configuration</em>&#8221;</p>
<p style="text-align: center;"><a href="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/5.jpg#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img class="aligncenter size-full wp-image-123" title="5" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/5.jpg" alt="5" width="524" height="364" /></a></p>
<p>Aqui você informa a quantidade máxima de memória que sua aplicação poderá usar (&#8220;<em>Maximum Memory</em>&#8220;), quanta memória será alocada para sua aplicação assim que ela iniciar (&#8220;<em>Initial Memory Allocation</em>&#8220;) e os argumentos que será passado à JVM para sua aplicação.</p>
<p>Até este ponto você somente configurou o JSmooth, mas ainda não temos o EXE. Para isso, clique no botão <img class="size-full wp-image-124 alignnone" title="6" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/10/6.jpg" alt="6" width="32" height="30" />, caso você ainda não tenha salvo o projeto será aberta uma janela para escolher o local de salvamento do arquivo. Feito isso, o EXE será gerado no diretório indicado no campo &#8220;<em>Executable Binary</em>&#8221; da tela &#8220;<em>Executable</em>&#8220;.</p>
<p>Agora é só dar um duplo clique no arquivo EXE e aplicação iniciará!</p>
<p style="text-align: left;">
<p>Para mais informações acessem <a href="http://jsmooth.sourceforge.net/" target="_blank">http://jsmooth.sourceforge.net/</a></p>
<p style="text-align: left;">
<p style="text-align: left;">Espero que tenham gostado, comentem à vontade!</p>
<p style="text-align: left;">Até mais! <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "jsmooth";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/Wdg79sXBqNg-t5aCm-DzfboKbn8/0/da"><img src="http://feedads.g.doubleclick.net/~a/Wdg79sXBqNg-t5aCm-DzfboKbn8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Wdg79sXBqNg-t5aCm-DzfboKbn8/1/da"><img src="http://feedads.g.doubleclick.net/~a/Wdg79sXBqNg-t5aCm-DzfboKbn8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/SpR0y5Pq3Uo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/10/gerando-exe-para-iniciar-suas-aplicacoes-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/10/gerando-exe-para-iniciar-suas-aplicacoes-java/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Recuperando coleção de objetos de uma procedure Oracle</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/-80g-TNuoMQ/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/09/recuperando-colecao-de-objetos-de-uma-procedure-oracle/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 19:06:53 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[collection]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=109</guid>
		<description><![CDATA[Como prometido há muito tempo atrás (e bota tempo nisso) no tópico &#8220;Passando Objetos Java para uma Procedure do Oracle&#8220;,<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/09/recuperando-colecao-de-objetos-de-uma-procedure-oracle/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Como prometido há muito tempo atrás (e bota tempo nisso) no tópico &#8220;<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/05/passando-objetos-java-para-uma-procedure-do-oracle/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" target="_self">Passando Objetos Java para uma Procedure do Oracle</a>&#8220;, mostrarei como recuperar objetos <a href="http://java.sun.com/" target="_blank">Java</a> contendo uma coleção de outro objetos através de uma procedure do <a href="http://www.oracle.com/">Oracle</a>. Para quem não leu, é altamente recomendado ler o <a href="http://www.andrels.com/wp-pt_BR/index.php/2009/05/passando-objetos-java-para-uma-procedure-do-oracle/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" target="_self">post anterior</a>.</p>
<p>Para este tutorial, precisamos incluir a tabela TBL_CLASS e adicionar sua <em>primary key</em> como <em>foreign key</em> na TBL_USER.</p>
<pre class="brush:sql">--num class será a PK e o desc_class será a descrição
create table TBL_CLASS (num_class number, desc_class varchar(100));
alter table TBL_CLASS add primary key(num_class);

alter table TBL_USER add num_class number;
alter table TBL_USER add constraint FK_CLASS foreign key(num_class) references tbl_class(num_class);</pre>
<p>Agora precisamos incluir os novos tipos:</p>
<pre class="brush:sql">create or replace type class_type as object (num_class number, desc_class varchar2(100), users arr_users);
/
create or replace type arr_class as table of class_type;
/</pre>
<p>O tipo <em>class_type</em> será o objeto. Repare que na sua assinatura incluímos o tipo <em>arr_users</em>, que será nossa coleção de <em>user_type</em> (vide <a href="http://www.andrels.com/wp-pt_BR/index.php/2009/05/passando-objetos-java-para-uma-procedure-do-oracle/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" target="_self">post anterior</a>), o tipo <em>arr_class</em> será uma coleção de <em>class_type</em>.</p>
<p>Agora incluiremos a <em>procedure</em> responsável por retornar nossa coleção de <em>class_type</em>.</p>
<pre class="brush:sql">procedure pro_select_class(clas in class_type, class_return in out arr_class)is
  class_ref_cur ref_cur;
  --Coleção de classes
  classes arr_class := arr_class();

  begin
    open class_ref_cur for
      select cast(
                multiset(
                  select num_class,
                         desc_class,
                         (select cast(
                                  multiset(
                                    select user_name,
                                           height,
                                           b_date
                                    from tbl_user
                                    --Fazendo o JOIN com a TBL_USER
                                    where tbl_user.num_class = tbl_class.num_class
                                  ) as arr_users)
                          from dual) users
                  from tbl_class
                  --Usando o atributo num_class do parâmetro de entrada
                  where num_class = clas.num_class) as arr_class
      ) classes
    from dual;

    --incluindo ao retorno no array
    fetch class_ref_cur into classes;
    --passando o array para a variável out
    class_return := classes;
end pro_select_class;</pre>
<p>Repare que a <em>procedure</em> recebe o tipo <em>class_type</em> como parâmetro <em>in</em> e retorna o tipo <em>arr_class</em>.</p>
<p>Separando trecho responsável por resgatar e montar nossos objetos teremos:</p>
<pre class="brush:sql">
--Montará a coleção de retorno
select cast(
        multiset(

          --Retornará os objetos class_type e seus atributos
          select num_class,
                 desc_class,

                 --Populará a coleção com user_type
                 (select cast(
                          multiset(
                            select user_name,
                                   height,
                                   b_date
                            from tbl_user
                            where tbl_user.num_class = tbl_class.num_class
                          ) as arr_users)

                  from dual) users

          from tbl_class
          where num_class = clas.num_class) as arr_class
) classes
from dual;
</pre>
<p>Os objetos de banco estão prontos, agora para o Java!</p>
<p>Criaremos o objeto que será interpretado pelo Oracle. Vamos chamá-lo de TypeClass:</p>
<pre class="brush:java">
public class TypeClass implements SQLData{
	public static final String ORACLE_OBJECT_NAME = "CLASS_TYPE"; //Nome do tipo no Oracle
	public static final String ORACLE_CLASS_ARRAY_NAME = "ARR_CLASS"; //Nome do array no Oracle

        //campos criados na tabela TBL_CLASS
	private Long number;
	private String desc;
	private Array users; //Esta será a coleção de user_type (ou TypeUser no Java)

	public String getSQLTypeName() throws SQLException {
		return ORACLE_OBJECT_NAME;
	}

	public void readSQL(SQLInput stream, String typeName) throws SQLException {
		setNumber(stream.readLong());
		setDesc(stream.readString());
		setUsers(stream.readArray());//Usado pelo JDBC driver para ler a coleção
	}

	public void writeSQL(SQLOutput stream) throws SQLException {
		stream.writeLong(getNumber());
		stream.writeString(getDesc());
		stream.writeArray(getUsers());//Usado pelo JDBC driver para armazenar a coleção
	}
	//Getters e setters omitidos
}
</pre>
<p>Precisamos mapear os dois tipos já que ambos serão interpretados na requisição, desta forma:</p>
<pre class="brush:java">
Map<String, Class<?>> typeMaps = connection.getTypeMap();
typeMaps.put(TypeUser.ORACLE_OBJECT_NAME, TypeUser.class);
typeMaps.put(TypeClass.ORACLE_OBJECT_NAME, TypeClass.class);
</pre>
<p>Também precisaremos mapear os dois <em>arrays</em>:</p>
<pre class="brush:java">
typeMaps.put(TypeClass.ORACLE_CLASS_ARRAY_NAME, TypeClass[].class);//retornado pela procedure
typeMaps.put(TypeUser.ORACLE_USER_ARRAY_NAME, TypeUser[].class);//retornado pela coleção de class_type
</pre>
<p>Para a requisição faremos:</p>
<pre class="brush:java">
cs = conn.prepareCall("{call PAC_BEAN.PRO_SELECT_CLASS(?,?)}");
//registrando o tipo de saída, que será um array de TypeClass
cs.registerOutParameter("class_return", OracleTypes.ARRAY, TypeClass.ORACLE_CLASS_ARRAY_NAME);

//passando o objeto de parâmetros da query
cs.setObject("clas", classQry);

cs.execute();
//recuperando e iterando o array de TypeClass
Object[] array = (Object[])cs.getArray("class_return").getArray();

for(Object obj : array){
	TypeClass objClass = ((TypeClass)obj);

	System.out.println("Description: "+objClass.getDesc());

        //Aqui pegamos a coleção (ou array) de user_type(TypeUser) retornada pela query.
	Object[] userArray = (Object[])objClass.getUsers().getArray();
	for(Object user : userArray){
		System.out.println("\tName: " + ((TypeUser)user).getName());
		System.out.println("\tHeight: " + ((TypeUser)user).getHeight());
		System.out.println("\tBirth: " + sdf.format(((TypeUser)user).getBirth())+ "\r\n");
	}
}
</pre>
<p>O final você terá um TypeClass que contém um <a href="http://www.j2ee.me/j2se/1.4.2/docs/api/java/sql/class-use/Array.html" target="_blank">java.sql.Array</a> de TypeUser no atributo getUsers().</p>
<p>E aqui cumpro minha promessa. Baixe o código fonte com o exemplo contendo este e o post anterior <a href="http://www.andrels.com/wp-pt_BR/wp-content/plugins/download-monitor/download.php?id=3" title="clicado 201 vezes">aqui</a>.</p>
<p>Até a próxima!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "sql";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/UWmqP-liHcsggIpV-KTbltb9KDE/0/da"><img src="http://feedads.g.doubleclick.net/~a/UWmqP-liHcsggIpV-KTbltb9KDE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UWmqP-liHcsggIpV-KTbltb9KDE/1/da"><img src="http://feedads.g.doubleclick.net/~a/UWmqP-liHcsggIpV-KTbltb9KDE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/-80g-TNuoMQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/09/recuperando-colecao-de-objetos-de-uma-procedure-oracle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/09/recuperando-colecao-de-objetos-de-uma-procedure-oracle/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Tirando Screen Shots com Java</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/jZnIkD7ToJU/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/09/tirando-screen-shots-com-java/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 22:35:57 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[awt]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[image]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=101</guid>
		<description><![CDATA[Aqui mostrarei como fazer uma classe para tirar Screen shots . Estava pensando com quão complexo seria fazer uma classe<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/09/tirando-screen-shots-com-java/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Aqui mostrarei como fazer uma classe para tirar <em>Screen shots </em>.</p>
<p>Estava pensando com quão complexo seria fazer uma classe que tirasse <em>screen shots</em> do compulador local e o armazenasse em um arquivo. Perguntando ao tio &#8220;G&#8221; descobri a classe <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Robot.html" target="_blank">Robot</a>, que possui o método <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Robot.html#createScreenCapture(java.awt.Rectangle)" target="_blank">createScreenCapture</a>.</p>
<p>Agora mostrarei como implementar esta funcionalidade:</p>
<pre class="brush:java">Robot robot = new Robot();
//Definindo o retângulo que será a área de captura da tela que, neste caso, será a tela inteira.
Rectangle rect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());

BufferedImage img = robot.createScreenCapture(rect);</pre>
<p>Aqui definimos a área de captura e obtivemos um <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/awt/image/BufferedImage.html" target="_blank">BufferedImage</a>, que já é nossa imagem. Agora é só persisti-la no disco.</p>
<pre class="brush:java">//Capturando o ImageWriter e ImageWriterParam
ImageWriter writer = ImageIO.getImageWritersByFormatName("jpeg").next();
ImageWriteParam iwp = writer.getDefaultWriteParam();

//Definindo o modo de compressão e a qualidade
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality(1);

//Persistindo a imagem
writer.setOutput(new FileImageOutputStream(arquivo));

IIOImage iioimage = new IIOImage(img, null, null);

writer.write(null, iioimage, iwp);
writer.dispose();</pre>
<p>Aqui capturamos o <a href="http://java.sun.com/j2se/1.4.2/docs/api/javax/imageio/ImageWriter.html" target="_blank">ImageWriter</a> e <a href="http://java.sun.com/j2se/1.4.2/docs/api/javax/imageio/ImageWriteParam.html" target="_blank">ImageWriterParam</a> para configurar o método de compressão e a qualidade da imagem.</p>
<p>Na linha <strong>07</strong> definimos a qualidade como 1, onde o valor varia de 0 (zero), maior compressão e menor qualidade, até 1 (um), menor compressão e maior qualidade. Em seguida persistimos o arquivo no HD.</p>
<p>Pronto! Simples, não?!.</p>
<p>Faça o download do exemplo <a href="http://www.andrels.com/wp-pt_BR/wp-content/plugins/download-monitor/download.php?id=2" title="clicado 100 vezes">aqui</a>.</p>
<p>Até a próxima!</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 142px; width: 1px; height: 1px;">
<pre class="brush:java">Neste caso será a tela inteira.</pre>
</div>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "desktop";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/V5oNPqma8naMal-3wheY_XzHUrE/0/da"><img src="http://feedads.g.doubleclick.net/~a/V5oNPqma8naMal-3wheY_XzHUrE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/V5oNPqma8naMal-3wheY_XzHUrE/1/da"><img src="http://feedads.g.doubleclick.net/~a/V5oNPqma8naMal-3wheY_XzHUrE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/jZnIkD7ToJU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/09/tirando-screen-shots-com-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/09/tirando-screen-shots-com-java/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Limitando número máximo de caracteres em um JTextField</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/hPvkfWtMBVQ/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/08/limitando-numero-maximo-de-caracteres-em-um-jtextfield/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 16:28:34 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jtextfield]]></category>
		<category><![CDATA[swing]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=93</guid>
		<description><![CDATA[A implementação padrão do JTextField não permite definir um limite para inserção de caracteres. Para habilitar este recurso é necessário<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/08/limitando-numero-maximo-de-caracteres-em-um-jtextfield/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>A implementação padrão do <em>JTextField</em> não permite definir um limite para inserção de caracteres. Para habilitar este recurso é necessário implementar um <em>Document</em>, onde será necessário sobrescrever o método <em>insertString</em>.</p>
<pre class="brush:java">public class MaxLengthTextDocument extends PlainDocument {
	//Armazena o número máximo de caracteres para o texto.
	private int maxChars;

	@Override
	public void insertString(int offs, String str, AttributeSet a)
			throws BadLocationException {
		if(str != null &#038;&#038; (getLength() + str.length() < maxChars)){
            		super.insertString(offs, str, a);
        	}
	}

	//getter e setter omitidos
}</pre>
<p>Aqui definimos a classe <em>MaxLengthTextDocument</em> estendendo a <em>PlainDocument</em>. No atributo <em>insertString</em> inserimos uma regra onde só será inserido valor se comprimento não ultrapassar o valor máximo.</p>
<p>Depois é só inserir a implementação no JTextField, desta forma:</p>
<pre class="brush:java">	...
	MaxLengthTextDocument maxLength = new MaxLengthTextDocument();
	maxLength.setMaxChars(50);//Limitamos para 50 caracteres

	jTextField.setDocument(maxLength);
	...</pre>
<p>E voilá!</p>
<p>Até mais!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "jtextfield";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/PW3xKMIBLKpRma4MSK95DjGM7Jg/0/da"><img src="http://feedads.g.doubleclick.net/~a/PW3xKMIBLKpRma4MSK95DjGM7Jg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/PW3xKMIBLKpRma4MSK95DjGM7Jg/1/da"><img src="http://feedads.g.doubleclick.net/~a/PW3xKMIBLKpRma4MSK95DjGM7Jg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/hPvkfWtMBVQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/08/limitando-numero-maximo-de-caracteres-em-um-jtextfield/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/08/limitando-numero-maximo-de-caracteres-em-um-jtextfield/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>JLabel com preenchimento (Padding)</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/II_PnC6N-fg/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/08/jlabel-com-preenchimento-padding/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 21:29:45 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[swing]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=81</guid>
		<description><![CDATA[Para adicionar preenchimento (padding) à um JLabel podemos usar as próprias bordas. Colocamos um EmptyBorder com o espaçamento que precisamos.<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/08/jlabel-com-preenchimento-padding/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Para adicionar preenchimento (padding) à um JLabel podemos usar as próprias bordas. Colocamos um EmptyBorder com o espaçamento que precisamos. Desta forma:</p>
<pre class="brush:java">...
JLabel jLabel = new JLabel("Meu JLabel");
//Borda usada para o preenchimento
Border paddingBorder = BorderFactory.createEmptyBorder(10,10,10,10);

jLabel.setBorder(BorderFactory.createCompoundBorder(border,paddingBorder));
...</pre>
<p>Neste caso colocamos um espaçamento de 10 pixels no topo, à esquerda, à direita e em baixo do JLabel respectivamente.</p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="size-full wp-image-83 aligncenter" title="JLabel Padding" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/08/2.gif" alt="JLabel Padding" width="300" height="100" /></p>
<p>Se ainda quiser colocar uma borda envolta do JLabel, pode-se usar uma CompoundBorder, inserindo a borda e o preenchimento. Desta forma:</p>
<pre class="brush:java">...
JLabel jLabel = new JLabel("Meu JLabel");
//Borda usada para o preenchimento
Border paddingBorder = BorderFactory.createEmptyBorder(10,10,10,10);
//Borda que ficará envolta do JLabel
Border border = BorderFactory.createLineBorder(Color.BLUE);

jLabel.setBorder(BorderFactory.createCompoundBorder(border,paddingBorder));
...</pre>
<p style="text-align: center;"><img class="size-full wp-image-84 aligncenter" title="JLabel padding" src="http://www.andrels.com/wp-pt_BR/wp-content/uploads/2009/08/3.gif" alt="JLabel padding" width="300" height="100" /></p>
<p>Baixe o código fonte desta dica <a href="http://www.andrels.com/wp-pt_BR/wp-content/plugins/download-monitor/download.php?id=1" title="clicado 115 vezes">aqui</a>.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "component";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/tPU-tLJ-VKMRjDVXsiC5-k6fJxo/0/da"><img src="http://feedads.g.doubleclick.net/~a/tPU-tLJ-VKMRjDVXsiC5-k6fJxo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tPU-tLJ-VKMRjDVXsiC5-k6fJxo/1/da"><img src="http://feedads.g.doubleclick.net/~a/tPU-tLJ-VKMRjDVXsiC5-k6fJxo/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/II_PnC6N-fg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/08/jlabel-com-preenchimento-padding/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/08/jlabel-com-preenchimento-padding/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Tutorial iBatis, aprendendo o básico</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/4hlyfs-Nncc/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/07/tutoral-ibatis-aprendendo-o-basico/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 15:53:37 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[ibatis]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=54</guid>
		<description><![CDATA[Geralmente quando se fala sobre frameworks de persistência logo vem à cabeça Hibernate/JPA. Há pouco tempo fui apresentado ao iBatis,<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/07/tutoral-ibatis-aprendendo-o-basico/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Geralmente quando se fala sobre frameworks de persistência logo vem à cabeça Hibernate/JPA. Há pouco tempo fui apresentado ao iBatis, um framework que eu, particularmente, acho muito fácil de instalar, configurar e usar. Você pode baixa-lo através do site de sua mantenedora, a <a href="http://www.apache.org" target="_blank">Apache</a>, clicando <a href="http://ibatis.apache.org/java.cgi?Preferred=http%3A%2F%2Flinorg.usp.br%2Fapache">aqui</a>.</p>
<p>Neste tutorial usarei a versão 2.3.4 build 726.</p>
<p><em><strong>Configurando o iBatis</strong></em></p>
<p>Ao contrário dos demais frameworks, para configurar o iBatis você só precisa de um arquivo XML de configuração, chamado <em>SqlMapConfig</em><em>. </em></p>
<p>As principais seções do xml são:</p>
<pre class="brush: xml">&lt;properties resource="tuto/ibatis/config/SqlMap.properties"/&gt;</pre>
<p>Este código é opcional e serve para indicar o arquivo properties com as variável de configuração que serão usada no XML.</p>
<pre class="brush: xml">&lt;typeAlias alias="car" type="tuto.ibatis.beans.Car"/&gt;</pre>
<p>Indica o Bean utilizado e qual será seu aliás. Você pode configurar várias linhas, tudo depende da complexidade e necessidade da sua modelagem.<br />
No nosso exemplo, usaremos o <em>bean</em> Car abaixo:</p>
<pre class="brush:java">public class Car {
	private Long carId;
	private String company;
	private String model;
	private String color;
	private Integer	hp;
	private Float price;

	//Setters e getters omitidos
}</pre>
<pre class="brush: xml">&lt;transactionManager type="JDBC"&gt;
    &lt;dataSource type="SIMPLE"&gt;
        &lt;property name="JDBC.Driver" value="${driver}"/&gt;
        &lt;property name="JDBC.ConnectionURL" value="${url}"/&gt;
        &lt;property name="JDBC.Username" value="${username}"/&gt;
        &lt;property name="JDBC.Password" value="${password}"/&gt;
    &lt;/dataSource&gt;
&lt;/transactionManager&gt;</pre>
<p>Parâmetros usados na conexão com o banco. As variáveis ${driver}, ${url}, ${username} e ${password} estão definidas no arquivo .properties indicado na seção  <em>properties</em>. Se você preferir, também pode colocar os valores diretamente nos campos, sem precisar defini-los em outro local.</p>
<p>Veja como será arquivo completo:</p>
<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"&gt;

&lt;sqlMapConfig&gt;
    &lt;properties resource="tuto/ibatis/config/SqlMap.properties"/&gt;

    &lt;settings
        cacheModelsEnabled="true"
        enhancementEnabled="true"
        lazyLoadingEnabled="true"
        maxRequests="32"
        maxSessions="10"
        maxTransactions="5"
        useStatementNamespaces="false" /&gt;

    &lt;typeAlias alias="car" type="tuto.ibatis.beans.Car"/&gt;

    &lt;transactionManager type="JDBC"&gt;
        &lt;dataSource type="SIMPLE"&gt;
            &lt;property name="JDBC.Driver" value="${driver}"/&gt;
            &lt;property name="JDBC.ConnectionURL" value="${url}"/&gt;
            &lt;property name="JDBC.Username" value="${username}"/&gt;
            &lt;property name="JDBC.Password" value="${password}"/&gt;
        &lt;/dataSource&gt;
    &lt;/transactionManager&gt;

    &lt;sqlMap resource="tuto/ibatis/sqlmaps/CarSqlMap.xml"/&gt;
&lt;/sqlMapConfig&gt;</pre>
<p>O <em>properties</em> tem o seguinte conteúdo:</p>
<pre class="brush:plain">driver=oracle.jdbc.OracleDriver
url=jdbc:oracle:thin:@&lt;host&gt;:&lt;porta&gt;:&lt;sid&gt;
username=&lt;login&gt;
password=&lt;senha&gt;</pre>
<p>Em seguida devemos configurar nosso <em>SqlMap</em>. Este XML conterá as <em>querys </em> utilizadas na aplicação e deverá  ter o nome do descrito na seçao <em>sqlMap</em> do <em>SqlMapConfig</em>, no nosso caso será <em>CarSqlMap.xml</em>.</p>
<p>No nosso exemplo apenas veremos a utilização das <em>tags </em><em>select</em>, <em>insert, </em><em>update </em>e <em>delete</em>.</p>
<pre class="brush:xml">&lt;select id="getCars" resultClass="tuto.ibatis.beans.Car"
	parameterClass="java.lang.Long"&gt;
    SELECT COMPANY  as company,
           MODEL    as model,
           COLOR    as color,
           HP       as hp,
           PRICE    as price
    FROM TBL_CAR
    WHERE CAR_ID = #var#
&lt;/select&gt;</pre>
<p>Executa o <em>select </em>podendo retornar uma única linha ou uma coleção, o tipo retornado é o mesmo especificado no atributo <em>resultClass, o</em> <em>parameterClass</em> é o tipo passado para executar a <em>query</em> e o <em>id</em> é a identificação para chamada da <em>query</em>.</p>
<p>Usaremos o <em>SqlMap</em> abaixo:</p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
	"http://ibatis.apache.org/dtd/sql-map-2.dtd"&gt;

&lt;sqlMap namespace="Car"&gt;
    &lt;select id="getCars" resultClass="tuto.ibatis.beans.Car"
    parameterClass="java.lang.Long"&gt;
        SELECT COMPANY  as company,
               MODEL    as model,
               COLOR    as color,
               HP       as hp,
               PRICE    as price
        FROM TBL_CAR
        WHERE CAR_ID = #var#
    &lt;/select&gt;

    &lt;insert id="addCar" parameterClass="tuto.ibatis.beans.Car"&gt;
        INSERT INTO TBL_CAR (CAR_ID, COMPANY, MODEL, COLOR, HP, PRICE)
        VALUES (#carId#, #company#, #model#, #color#, #hp#, #price#)
    &lt;/insert&gt;

    &lt;delete id="delCar" parameterClass="java.lang.Long"&gt;
        DELETE FROM TBL_CAR WHERE CAR_ID = #var#
    &lt;/delete&gt;

    &lt;update id="updCar" parameterClass="tuto.ibatis.beans.Car"&gt;
        UPDATE TBL_CAR
          SET COMPANY = #company#,
              MODEL = #model#,
              COLOR = #color#,
              HP = #hp#,
              PRICE = #price#
        WHERE CAR_ID = #carId#
    &lt;/update&gt;
&lt;/sqlMap&gt;</pre>
<p>Agora que já configuramos o acesso ao banco de dados e o mapeamento dos objetos, vamos implementar a classe <em>singleton</em> que usaremos como <em>SqlMapClient</em>, aqui nós a chamaremos de OracleMapConfig.</p>
<pre class="brush:java">package tuto.ibatis.connection;

import java.io.Reader;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class OracleMapConfig {
	private static final SqlMapClient sqlMapClient;

	static{
		try{
			//Definindo o caminho para o SqlMapConfig e criando o reader
			String res = "tuto/ibatis/config/SqlMapConfig.xml";
			Reader reader = Resources.getResourceAsReader(res);

			//Recuperando o client para o SqlMap
			sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
		} catch(Exception e){
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}

	//Método usado para recuperar o client
	public static SqlMapClient getSqlMapClient(){
		return sqlMapClient;
	}
}</pre>
<p>O <em>client</em> é responsável por executar as <em>querys</em> configuradas no <em>SqlMap</em> e nos fornecer os resultados.</p>
<p><em><strong>Executando Querys e tratando retornos</strong></em></p>
<p>Para chamar uma das <em>querys</em> é muito simples, apenas chame o <em>cliente </em>e o método correspondente de cada uma.</p>
<p>O <em>select </em>pode ser chamado da seguinte forma:</p>
<pre class="brush:java">OracleMapConfig.getSqlMapClient().queryForObject("&lt;id&gt;", &lt;parâmetro&gt;);</pre>
<p>O <em><strong>id</strong></em>deve ser o <em>id</em> correspondente no <em>SqlMap</em></p>
<p>O código acima tráz apenas uma linha retornada pela <em>query</em>, para trazer todas apenas troque o método para o <em>queryForList</em>, desta forma:</p>
<pre class="brush:java">OracleMapConfig.getSqlMapClient().queryForList("&lt;id&gt;", &lt;parâmetro&gt;);</pre>
<p>Assim, será retornado uma <em>Collection</em> contendo os objetos.</p>
<p>Vamos aos exemplos:<br />
<strong>Select</strong></p>
<pre class="brush:java">try{
	Car car = (Car)OracleMapConfig.getSqlMapClient().queryForObject("getCars",
		new Long(readKeyboard()));

	System.out.println("Marca: "+car.getCompany());
	System.out.println("Modelo: "+car.getModel());
	System.out.println("Cor: "+car.getColor());
	System.out.println("HP: "+car.getHp());
	System.out.println("Preço: "+car.getPrice());
}catch (Exception e) {
	e.printStackTrace();
}</pre>
<p>O <em>id</em> &#8220;getCars&#8221; é o que definimos nos atributos do <em>select</em> do <em>SqlMap</em>, passando um <em>Long</em> e recuperando o tipo Car, ambos também definidos na linha &lt;select id=&#8221;<span style="color: #0000ff;">getCars</span>&#8221; resultClass=&#8221;<span style="color: #0000ff;">tuto.ibatis.beans.Car</span>&#8221; parameterClass=&#8221;<span style="color: #0000ff;">java.lang.Long</span>&#8220;&gt;.</p>
<p><strong>Insert</strong></p>
<pre class="brush:java">try{
	OracleMapConfig.getSqlMapClient().insert("addCar", newCar);
}catch (Exception e) {
	e.printStackTrace();
}</pre>
<p>Agora passamos como parâmetros o próprio tipo Car, &lt;insert id=&#8221;<span style="color: #0000ff;">addCar</span>&#8221; parameterClass=&#8221;<span style="color: #0000ff;">tuto.ibatis.beans.Car</span>&#8220;&gt; e chamamos os métodos usando cerquilha (#, ou jogo-da-velha se preferirem), desta forma:</p>
<pre class="brush:plain">INSERT INTO TBL_CAR (CAR_ID, COMPANY, MODEL, COLOR, HP, PRICE)
VALUES (#carId#, #company#, #model#, #color#, #hp#, #price#)</pre>
<p><strong>Delete</strong></p>
<pre class="brush:java">try{
	int lines = OracleMapConfig.getSqlMapClient().delete("delCar",
		new Long(readKeyboard()));

	System.out.println(lines + " linhas excluídas");
}catch (Exception e) {
	e.printStackTrace();
}</pre>
<p>O método <em>delete</em> do <em>client</em> retorna um tipo <em>int</em> que representa a quantidade de linhas excluídas.</p>
<p><strong>Update</strong></p>
<pre class="brush:java">try{
	int lines = OracleMapConfig.getSqlMapClient().update("updCar", car);

	System.out.println(lines + " carros incluídos");
}catch (Exception e) {
	e.printStackTrace();
}</pre>
<p>O Update retorna um tipo <em>int</em>, que informa a quantidade de linhas afetadas pelo update.</p>
<p>Como você pode ver, com apenas três arquivos XML e três classes conseguimos montar um sistema de manutenção de estoque de consulta de preço basico.</p>
<p>Você pode fazer o download com os fontes deste tutorial clicando <a href="../wordpress_external/downloads/TutoIbatis.zip#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">aqui</a>.</p>
<p>Até a próxima!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "ibatis";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/5Ew8OYmyAKrRM0LCCmYGoJB-3hQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/5Ew8OYmyAKrRM0LCCmYGoJB-3hQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/5Ew8OYmyAKrRM0LCCmYGoJB-3hQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/5Ew8OYmyAKrRM0LCCmYGoJB-3hQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/4hlyfs-Nncc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/07/tutoral-ibatis-aprendendo-o-basico/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/07/tutoral-ibatis-aprendendo-o-basico/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Erro “…faulting module php5ts.dll…” do Apache com PHP e MySQL rodando no Windows vista</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/9GWGt0p0mjw/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/06/erro-faulting-module-php5tsdll-do-apache-com-php-e-mysql-rodando-no-windows-vista/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 00:43:37 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Softwares]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[configuracao]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=48</guid>
		<description><![CDATA[Para quem, assim como eu, estava apanhando do Apache por causa do erro &#8220;Faulting application httpd.exe, version 2.2.11.0, time stamp<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/06/erro-faulting-module-php5tsdll-do-apache-com-php-e-mysql-rodando-no-windows-vista/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Para quem, assim como eu, estava apanhando do Apache por causa do erro <em>&#8220;Faulting application httpd.exe, version 2.2.11.0, time stamp 0x493f5d44, faulting module php5ts.dll&#8230;&#8221;</em>, experimente copiar o arquivo <em>libmysql.dll</em>, que está no diretório de instalação do PHP, para o diretório <strong>bin</strong> do Apache e reiniciar o serviço do Apache.</p>
<p>Até mais!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "apache";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/JlZuXmy7wijPqXq2YXuXcCCweZQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/JlZuXmy7wijPqXq2YXuXcCCweZQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JlZuXmy7wijPqXq2YXuXcCCweZQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/JlZuXmy7wijPqXq2YXuXcCCweZQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/9GWGt0p0mjw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/06/erro-faulting-module-php5tsdll-do-apache-com-php-e-mysql-rodando-no-windows-vista/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/06/erro-faulting-module-php5tsdll-do-apache-com-php-e-mysql-rodando-no-windows-vista/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Passando Objetos Java para uma procedure do Oracle</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/39w3SVv8gSU/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/05/passando-objetos-java-para-uma-procedure-do-oracle/#comments</comments>
		<pubDate>Sun, 31 May 2009 20:00:18 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[jdbc]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=31</guid>
		<description><![CDATA[Na empresa onde trabalho houve uma discussão sobre a possibilidade de passar um objeto Java para dentro de uma procedure<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/05/passando-objetos-java-para-uma-procedure-do-oracle/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Na empresa onde trabalho houve uma discussão sobre a possibilidade de passar um objeto <a href="http://java.sun.com/" target="_blank">Java</a> para dentro de uma <em>procedure </em>ou <em>function </em>do <a href="http://www.oracle.com" target="_blank">Oracle</a>, então resolvi pesquisar e aqui está uma forma bem simples de atingir este objetivo.</p>
<p><em>Este tutorial só funciona com a versão 9i do Oracle, ou superior, e usando o driver JDBC </em><em>ojdbc14g, ou superior.</em></p>
<p>Primeiro precisaremos criar as tabelas, objetos  e procedures. Lembrando que os tipos <em>tbl_users</em> e <em>user_type</em> deverão ser declarados como globais para funcionar, ou seja, fora de <em>packages</em>:</p>
<pre class="brush: sql">-- Criando a tabela
create table tbl_user(user_name varchar2(100), height number, b_date date);
/
--Criando o tipo user_type (nosso bean)
create or replace type user_type as object (user_name varchar2(100), height number, birth_date date);
/
--Criando o tipo arr_users, que é do tipo table of user_type (array de user_type)
create or replace type arr_users as table of user_type;
/</pre>
<p>Criando o <em>spec </em>e <em>body </em>da <em>package </em>que conterá as <em>procedures</em></p>
<pre class="brush: sql">--Spec
create or replace package PAC_BEAN is
  -- REF CURSOR deve ser declarado dentro da package
  type ref_cur is ref cursor;

  -- Procedure usada para o insert
  procedure pro_insert_user(usu in user_type);

  -- Procedure usada para o select
  procedure pro_select_user(usu in user_type, user_return in out arr_users);
end PAC_BEAN;
/</pre>
<pre class="brush: sql">--Body
create or replace package body PAC_BEAN is
  --A procedure de insert receberá o tipo user_type (nosso bean)
  --e o cadastrará na tabela tbl_user
  procedure pro_insert_user(usu in user_type) is
    begin
      insert into tbl_user (user_name, height, b_date)
      values (usu.user_name, usu.height, usu.birth_date);

      commit;
    exception
      when others then
        rollback;
  end pro_insert_user;

  --Procedure de select que receberá um user_type com a informação do nome
  --(cláusula where) e retornará o array arr_users (array de user_type)
  procedure pro_select_user(usu in user_type, user_return in out arr_users)is
    user_ref_cur ref_cur;

    --Instanciando o array
    users arr_users := arr_users();

    begin
      --Abrindo o cursor que retornará nosso array
      open user_ref_cur for
        select cast(
                 multiset(
                   select user_name,
                          height,
                          b_date
                   from tbl_user
                   where user_name like '%'||usu.user_name||'%'
                 ) as arr_users
              ) arr
        from dual;

      --Jogando o retorno do cursor dentro da instância de arr_users
      fetch user_ref_cur into users;

      --Retornando a instância através da variável OUT
      user_return := users;
  end pro_select_user;
end PAC_BEAN;
/</pre>
<p><em>Consulte sobre o funcionamento do <a href="http://download.oracle.com/docs/cd/B14117_01/server.101/b10759/functions015.htm#sthref1120" target="_blank">CAST</a> e <a href="http://download.oracle.com/docs/cd/B14117_01/server.101/b10759/operators006.htm" target="_blank">MULTISET</a>.</em></p>
<p>Construído os objetos de banco precisamos prepara o JavaBean. Ele será uma implementação de <em>java.sql.SQLData</em>, por isso será necessário implementar os métodos:</p>
<p><em>getSQLTypeName()</em> &#8211; É o <em>getter</em> usado para obter o nome do tipo.</p>
<p><em>readSQL(SQLInput, String)</em> &#8211; Usado para converter o objeto SQL em objeto Java.</p>
<p><em>writeSQL(SQLOutput stream)</em> &#8211; Usado para montar o objeto SQL, usado pelo <em>Driver </em>JDBC.</p>
<pre class="brush: java">public class TypeUser implements SQLData{
	//O nome do tipo declarado no Oracle
	public static final String ORACLE_OBJECT_NAME = "USER_TYPE";
	//O nome do array declarado no Oracle
	public static final String ORACLE_USER_ARRAY_NAME = "ARR_USERS";

	//Os atributos
	private String name;
	private Float height;
	private Date birth;

	public TypeUser() {
		height = 0F;
	}
	//Getter retorna o nome do tipo ao JDBC
	public String getSQLTypeName() throws SQLException {
		return ORACLE_OBJECT_NAME;
	}

	public void readSQL(SQLInput stream, String typeName) throws SQLException {
		setName(stream.readString());
		setHeight(stream.readFloat());
		setBirth(stream.readDate());
	}

	public void writeSQL(SQLOutput stream) throws SQLException {
		stream.writeString(getName());
		stream.writeFloat(getHeight());
		stream.writeDate(getBirth() != null ?
				new java.sql.Date(getBirth().getTime()) : null);
	}

        //getters e setters omitidos
}</pre>
<p>Para definir que um tipo poderá ser enviado à procedure é necessário adicioná-lo ao mapa de tipos através de <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Connection.html#getTypeMap()" target="_blank"><em>Connection.getTypeMap()</em></a>. Este método retorna um <em>Map&lt;String,Class&lt;?&gt;&gt;</em>, onde a chave é o nome do tipo e o valor será a classe <em>SQLData </em>implementada, no nosso caso a <em>TypeUser definida</em> acima. Exemplo:</p>
<pre class="brush: java">Map&gt; typeMaps = connection.getTypeMap();
typeMaps.put(TypeUser.ORACLE_OBJECT_NAME, TypeUser.class);</pre>
<p>A conexão ficará desta forma:</p>
<pre class="brush: java">//Fazendo a conexão
Class.forName("oracle.jdbc.driver.OracleDriver");
connection = DriverManager.getConnection("jdbc:oracle:thin:@&lt;host&gt;:&lt;porta&gt;:&lt;bd&gt;","&lt;usuario&gt;","&lt;senha&gt;");

//Mapeando o tipo necessário
Map&lt;String,Class&lt;?&gt;&gt; typeMaps = connection.getTypeMap();
typeMaps.put(TypeUser.ORACLE_OBJECT_NAME, TypeUser.class);</pre>
<p>Agora que temos a nossa conexão podemos fazer o método de <em>insert</em>, que receberá uma instância <em>TypeUser </em>e uma <em>Connection</em>:</p>
<pre class="brush: java">CallableStatement cs = null;
try {
	//chamando a procedure de insert
	cs = conn.prepareCall("{call PAC_BEAN.PRO_INSERT_USER(?)}");

	//definindo a instância de TypeUser como paramêtro "usu" da procedure
	cs.setObject("usu", typeUser);

	cs.execute();
} catch (SQLException e) {
	e.printStackTrace();
}</pre>
<p>Agora que temos o método de insert, partiremos para o método de <em>select</em>. Como este método retorna um <em>array </em>de objetos, é necessário inserir o tipo do array <em>TypeMap </em>da conexão. O nome passado como chave deve ser o nome do tipo do <em>array </em>no Oracle e o valor será a classe do <em>array</em> que esperamos, desta forma:</p>
<pre class="brush: java">connection.getTypeMap().put(TypeUser.ORACLE_USER_ARRAY_NAME, TypeUser[].class);</pre>
<p>Para a chamada da <em>procedure </em>e <em>registerOutParameter:</em></p>
<pre class="brush: java">cs = conn.prepareCall("{call PAC_BEAN.PRO_SELECT_USER(?,?)}");
cs.registerOutParameter("user_return", OracleTypes.ARRAY, TypeUser.ORACLE_USER_ARRAY_NAME);
cs.setObject("usu", typeUserQry);

cs.execute();</pre>
<p>O método para recuperar o <em>array</em> deverá ser chamado desta forma:</p>
<pre class="brush: java">//user_return é o nome da variável OUT da procedure
Object[] array = (Object[])cs.getArray("user_return").getArray();</pre>
<p>Se até aqui deu tudo certo fique contente, para resgatar os valores do <em>array</em> é só iterá-lo e fazer <em>cast</em> para a classe TypeUser.</p>
<pre class="brush: java">for(Object obj : array){
	System.out.println("Nome: " + ((TypeUser)obj).getName());
	System.out.println("Altura: " + ((TypeUser)obj).getHeight());
	System.out.println("Data de Nascimento: " + sdf.format(((TypeUser)obj).getBirth()));
}</pre>
<p>Desta forma poderemos passar e resgatar objetos simples de uma procedure/function do Oracle.</p>
<p>Próximo passo: <a href="http://www.andrels.com/wp-pt_BR/index.php/2009/09/recuperando-colecao-de-objetos-de-uma-procedure-oracle/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Recuperando coleção de objetos de uma procedure Oracle</a>.</p>
<p>Até lá!</p>
<p>Baixe o código fonte deste tutorial e da <a href="http://www.andrels.com/wp-pt_BR/index.php/2009/09/recuperando-colecao-de-objetos-de-uma-procedure-oracle/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">segunda parte</a> <a href="http://www.andrels.com/wp-pt_BR/wp-content/plugins/download-monitor/download.php?id=3" title="clicado 201 vezes">aqui</a></p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "jdbc";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/WZgCNmYaFr301Xo6qerocGPm6HM/0/da"><img src="http://feedads.g.doubleclick.net/~a/WZgCNmYaFr301Xo6qerocGPm6HM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/WZgCNmYaFr301Xo6qerocGPm6HM/1/da"><img src="http://feedads.g.doubleclick.net/~a/WZgCNmYaFr301Xo6qerocGPm6HM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/39w3SVv8gSU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/05/passando-objetos-java-para-uma-procedure-do-oracle/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/05/passando-objetos-java-para-uma-procedure-do-oracle/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Solução para o problema “Couldn’t load zayitlib.dll library” no emulador J2ME Sony Ericsson</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/pDBxzXm7KmI/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/05/solucao-para-o-problema-%e2%80%9ccouldn%e2%80%99t-load-zayitlibdll-library%e2%80%9d-no-emulador-j2me-sony-ericsson/#comments</comments>
		<pubDate>Sun, 24 May 2009 20:46:12 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[j2me]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[zayitlib.dll]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=22</guid>
		<description><![CDATA[Estou iniciando no mundo J2ME, mais especificamente em desenvolvimento de jogos para celulares e smartphones, uso o Eclipse com o<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/05/solucao-para-o-problema-%e2%80%9ccouldn%e2%80%99t-load-zayitlibdll-library%e2%80%9d-no-emulador-j2me-sony-ericsson/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Estou iniciando no mundo J2ME, mais especificamente em desenvolvimento de jogos para celulares e <em>smartphones</em>, uso o <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> com o <em>plug- in</em><a href="http://eclipseme.org/" target="_blank"> EclipseME</a>. Em minha primeira aplicação em J2ME fui apresentado à mensagem de erro <em>“Couldn’t load zayitlib.dll library”</em> quando tentei iniciar emulador J2ME Sony Ericsson W200.</p>
<p>A solução encontrada para resolver este problema foi:</p>
<p>No diretório <em>Arquivos de Programas\VoiceAge</em> você verá alguns arquivos, entre eles quatro específicas dlls chamadas <em>SPOTCorePlayer_51.dll</em>, <em>SPOTxdePlayerDLL.dll</em>, <em>VaAce.dll</em> <em>e VaMp_50.dll</em>.</p>
<p>Copie estes arquivos para <em>o diretório SonyEricsson\JavaME_SDK_CLDC\PC_Emulation\WTK2\bin</em>.</p>
<p>Tente iniciar o emulador novamente e <em>Voilá</em>.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "zayitlib.dll";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/xG_yGikU-AmT8SbgcUkawF1lG8E/0/da"><img src="http://feedads.g.doubleclick.net/~a/xG_yGikU-AmT8SbgcUkawF1lG8E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/xG_yGikU-AmT8SbgcUkawF1lG8E/1/da"><img src="http://feedads.g.doubleclick.net/~a/xG_yGikU-AmT8SbgcUkawF1lG8E/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/pDBxzXm7KmI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/05/solucao-para-o-problema-%e2%80%9ccouldn%e2%80%99t-load-zayitlibdll-library%e2%80%9d-no-emulador-j2me-sony-ericsson/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/05/solucao-para-o-problema-%e2%80%9ccouldn%e2%80%99t-load-zayitlibdll-library%e2%80%9d-no-emulador-j2me-sony-ericsson/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Collections, qual usar?</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/UrL-gGrp7vM/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/05/collections-qual-usar/#comments</comments>
		<pubDate>Sun, 24 May 2009 20:38:38 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[collection]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=19</guid>
		<description><![CDATA[A interface Collection possui várias implementações, como ArrayList, LinkedList, TreeSet e outras. Com tantas variações, algumas vezes você não sabe<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/05/collections-qual-usar/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>A interface <a href="http://java.sun.com/javase/6/docs/api/java/util/Collection.html" target="_blank">Collection</a> possui várias implementações, como <a href="http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html" target="_blank">ArrayList</a>, <a href="http://java.sun.com/javase/6/docs/api/java/util/LinkedList.html" target="_blank">LinkedList</a>, <a href="http://java.sun.com/javase/6/docs/api/java/util/TreeSet.html" target="_blank">TreeSet</a> e outras. Com tantas variações, algumas vezes você não sabe qual usar, isto depende de seu objetivo. Tentarei explicar algumas diferenças entre ArrayList, LinkedList e TreeSet.</p>
<p><strong>ArrayList</strong><br />
A Collection ArrayList permite armazenar objetos e valores nulos, mas seu acesso é desordenado, o primeiro objeto inserido pode ser o último retornado.</p>
<p><strong>LinkedList</strong><br />
Esta implementação de Collection é parecida com o ArrayList, mas a diferença está no acesso aos objetos armazenados, onde cada objeto é retornado na ordem de inserção.</p>
<p><strong>TreeSet</strong><br />
Se você quer recuperar os objetos de sua Collection em uma ordem específica, esta Collection pode fazer o trabalho! Inserir objetos em um Treeset é igual às classes anteriores, mas seu retorno depende da interface <a href="http://java.sun.com/javase/6/docs/api/java/lang/Comparable.html" target="_blank">Comparable</a> implementada no valores. Ele ordena seus objetos usando o resultado do método <a href="http://java.sun.com/javase/6/docs/api/java/lang/Comparable.html#compareTo(T)" target="_blank">compareTo</a>, herdado da interface Comparable.</p>
<p>Para mais informações visite o Javadoc da <a href="http://java.sun.com/javase/6/docs/api/java/util/Collection.html" target="_blank">Collection</a>.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "collection";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/BsBYLDeP9hDREkp0Ci_nl8sM_sw/0/da"><img src="http://feedads.g.doubleclick.net/~a/BsBYLDeP9hDREkp0Ci_nl8sM_sw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BsBYLDeP9hDREkp0Ci_nl8sM_sw/1/da"><img src="http://feedads.g.doubleclick.net/~a/BsBYLDeP9hDREkp0Ci_nl8sM_sw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/UrL-gGrp7vM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/05/collections-qual-usar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/05/collections-qual-usar/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Desabilitando a tecla “Hibernar” no Windows Vista</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/GWctNdW3pv4/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/05/desabilitando-a-tecla-hibernar-no-windows-vista/#comments</comments>
		<pubDate>Sun, 24 May 2009 20:28:40 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Sistemas Operacionais]]></category>
		<category><![CDATA[configuracao]]></category>
		<category><![CDATA[tecla]]></category>
		<category><![CDATA[window vista]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=16</guid>
		<description><![CDATA[Você, acidentalmente, já pressionou a tecla &#8220;hibernar&#8221; em seu teclado multimídia ao invés de outra tecla? Eu quero saber quem<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/05/desabilitando-a-tecla-hibernar-no-windows-vista/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">Você, acidentalmente, já pressionou a tecla &#8220;hibernar&#8221; em seu teclado multimídia ao invés de outra tecla? Eu quero saber quem desenhou esta &#8220;feliz&#8221; tecla para expressar minha total insatisfação.</p>
<p style="text-align: center;"><img class="size-full wp-image-20 aligncenter" title="sleep key" src="http://www.andrels.com/wp-en_US/wp-content/uploads/2009/05/7010941r_03.jpg" alt="sleep key" width="425" height="278" /></p>
<p>Agora  mostrarei como desabilitar esta tecla no Windows Vista.</p>
<p style="text-align: left;">Vá para <em>Painel de Controle</em>, duplo clique em <em>&#8220;Opções de Energia&#8221;</em>:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-21" title="control painel" src="http://www.andrels.com/wp-en_US/wp-content/uploads/2009/05/11.jpg" alt="11" width="499" height="376" /></p>
<p style="text-align: left;">Então clique em <em>&#8220;Escolha o que os botões de energia fazem&#8221;</em>:</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-22" title="Control Painel" src="http://www.andrels.com/wp-en_US/wp-content/uploads/2009/05/21.jpg" alt="Control Painel" width="499" height="308" /></p>
<p style="text-align: left;">Próximo e último passo, em<em> &#8220;Quando eu pressionar o botão hibernar&#8221;</em> escolha <em>&#8220;Fazer nada&#8221;</em>, salve!</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-23" title="Power Suply" src="http://www.andrels.com/wp-en_US/wp-content/uploads/2009/05/31.jpg" alt="Power Suply" width="500" height="41" /></p>
<p style="text-align: left;">Após este tutorial você poderá pressionar esta tecla a qualquer hora. <img src='http://www.andrels.com/wp-pt_BR/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "tecla";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/oLMDI4oUcYuhz4m142L3_GIvfEg/0/da"><img src="http://feedads.g.doubleclick.net/~a/oLMDI4oUcYuhz4m142L3_GIvfEg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/oLMDI4oUcYuhz4m142L3_GIvfEg/1/da"><img src="http://feedads.g.doubleclick.net/~a/oLMDI4oUcYuhz4m142L3_GIvfEg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/GWctNdW3pv4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/05/desabilitando-a-tecla-hibernar-no-windows-vista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/05/desabilitando-a-tecla-hibernar-no-windows-vista/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Aprenda JavaFX em 15 minutos</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/quFVFEa9EiA/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/05/aprenda-javafx-em-15-minutos/#comments</comments>
		<pubDate>Sun, 24 May 2009 20:19:31 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[javafx]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=13</guid>
		<description><![CDATA[Este vídeo mostra alguns comandos para JavaFX, de um simples “Hello World” até funções e modificadores de acesso. Agradecimento ã<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/05/aprenda-javafx-em-15-minutos/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Este <a href="http://tinyurl.com/bznwp5" target="_blank">vídeo</a> mostra alguns comandos para JavaFX, de um simples “Hello World” até funções e modificadores de acesso.</p>
<p>Agradecimento ã <a href="http://www.furutani.com.br">Roberto Furutani</a>!</p>
<p>Divirta-se!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "javafx";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/cJwzTyyNC6YYlrOMpczf_BdRZm0/0/da"><img src="http://feedads.g.doubleclick.net/~a/cJwzTyyNC6YYlrOMpczf_BdRZm0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cJwzTyyNC6YYlrOMpczf_BdRZm0/1/da"><img src="http://feedads.g.doubleclick.net/~a/cJwzTyyNC6YYlrOMpczf_BdRZm0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/quFVFEa9EiA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/05/aprenda-javafx-em-15-minutos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/05/aprenda-javafx-em-15-minutos/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Recuperando unidades de disco ou dipositivos removíveis</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/R9EffuQC1oA/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/05/recuperando-unidades-de-disco-ou-dipositivos-removiveis/#comments</comments>
		<pubDate>Sun, 24 May 2009 16:13:12 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[file]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=9</guid>
		<description><![CDATA[Você já tentou recuperar os dispositivos removíveis ou unidades de disco usando java.io.File e passando &#8220;/&#8221; como parâmetro do construtor?<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/05/recuperando-unidades-de-disco-ou-dipositivos-removiveis/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Você já tentou recuperar os dispositivos removíveis ou unidades de disco usando <em>java.io.File </em>e passando &#8220;/&#8221; como parâmetro do construtor? O resultado foi a raíz do Classpath, não é?</p>
<p>Para obter as unidades de disco ou dispositivos removíveis, use <strong>File.<em>listRoots()</em></strong>. Este código retorna um array de objetos File, onde cada índice do array é uma unidade de disco ou um dispositivo removível.</p>
<p>Siga este exemplo:</p>
<pre class="brush: java">File[] units = File.listRoots();

for(File unit : units){
    System.out.println(unit.getAbsolutePath());
}</pre>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "file";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/7eMiAYo-a8mCrvcccya84VPTknM/0/da"><img src="http://feedads.g.doubleclick.net/~a/7eMiAYo-a8mCrvcccya84VPTknM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7eMiAYo-a8mCrvcccya84VPTknM/1/da"><img src="http://feedads.g.doubleclick.net/~a/7eMiAYo-a8mCrvcccya84VPTknM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/R9EffuQC1oA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/05/recuperando-unidades-de-disco-ou-dipositivos-removiveis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/05/recuperando-unidades-de-disco-ou-dipositivos-removiveis/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
		<item>
		<title>Manipulando etiquetas ID3 de arquivos MP3</title>
		<link>http://feedproxy.google.com/~r/AndreLS-pt_BR/~3/nddgqG8TBHU/</link>
		<comments>http://www.andrels.com/wp-pt_BR/index.php/2009/05/boas-vindas/#comments</comments>
		<pubDate>Sat, 23 May 2009 15:46:07 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[Jid2Lib]]></category>
		<category><![CDATA[mp3]]></category>

		<guid isPermaLink="false">http://www.andrels.com/wp-pt_BR/?p=1</guid>
		<description><![CDATA[Este post lhe ensinará a manipular etiquetas (tags) ID3 de arquivos MP3 usando a biblioteca Java Jid2Lib. Primeiro, faça o<a href="http://www.andrels.com/wp-pt_BR/index.php/2009/05/boas-vindas/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Este post lhe ensinará a manipular etiquetas (tags) ID3 de arquivos MP3 usando a biblioteca Java Jid2Lib.</p>
<p>Primeiro, faça o download do arquivo jar em <a href="http://javamusictag.sourceforge.net/">http://javamusictag.sourceforge.net/</a>.</p>
<p>O código abaixo irá demonstrar como recuperar informações de arquivos MP3:</p>
<pre class="brush: java">try {
    MP3File mp3 = new MP3File("D:\\Musics\\MP3\\ACDC\\ACDC - Back In Black.mp3");
    System.out.println("Álbum:" + mp3.getID3v2Tag().getAlbumTitle());
    System.out.println("Banda:" + mp3.getID3v2Tag().getLeadArtist());
    System.out.println("Compositor:" + mp3.getID3v2Tag().getAuthorComposer());
    System.out.println("Year:" + mp3.getID3v2Tag().getYearReleased());
} catch (Exception e) {
	e.printStackTrace();
}</pre>
<p>O resultado:</p>
<blockquote><p>Álbum: Back in Black<br />
Banda: AC/DC<br />
Compositor: Angus Young/Brian Johnson/Malcolm Young<br />
Ano:</p></blockquote>
<p>Para mudar qualquer informação de qualquer etiqueta ID3, tenta o código abaixo:</p>
<pre class="brush: java">mp3.getID3v2Tag().setYearReleased("1980");
mp3.save();</pre>
<p>Esta biblioteca possui vários métodos que ajudarão à customizar qualquer arquivo MP3.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "file";
            bb_bid  = "1652035";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->
<p><a href="http://feedads.g.doubleclick.net/~a/fQarP47APhLskMkbPyry_9jRDvA/0/da"><img src="http://feedads.g.doubleclick.net/~a/fQarP47APhLskMkbPyry_9jRDvA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/fQarP47APhLskMkbPyry_9jRDvA/1/da"><img src="http://feedads.g.doubleclick.net/~a/fQarP47APhLskMkbPyry_9jRDvA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/AndreLS-pt_BR/~4/nddgqG8TBHU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrels.com/wp-pt_BR/index.php/2009/05/boas-vindas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.andrels.com/wp-pt_BR/index.php/2009/05/boas-vindas/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</feedburner:origLink></item>
	</channel>
</rss>

