<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>/home/hugodoria/hdoria.archlinux-br.org/blog/wp-includes/classes.php</b> on line <b>255</b><br />
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hugo Doria &#187; Linux</title>
	<atom:link href="http://hdoria.archlinux-br.org/blog/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://hdoria.archlinux-br.org/blog</link>
	<description>Linux, música e nerdisses</description>
	<lastBuildDate>Thu, 07 May 2009 21:13:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Entrevista na Arch Linux Newsletter de maio</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/05/05/entrevista-na-arch-linux-newsletter-de-maio/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/05/05/entrevista-na-arch-linux-newsletter-de-maio/#comments</comments>
		<pubDate>Tue, 05 May 2009 18:16:52 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Pessoal]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=640</guid>
		<description><![CDATA[A Arch Linux Newsletter de maio acabou de sair do forno e está ótima. Como sempre, há os pontos altos da comunidade, o que está rolando no desenvolvimento da distribuição, dicas e a parte de diversão. Há, também, uma curta entrevista comigo onde falo sobre como encontrei o Arch, virei desenvolvedor e outras coisas mais.
Fica [...]]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://www.archlinux.org/static/newsletters/newsletter-2009-may.html">Arch Linux Newsletter de maio</a> acabou de sair do forno e está ótima. Como sempre, há os pontos altos da comunidade, o que está rolando no desenvolvimento da distribuição, dicas e a parte de diversão. Há, também, uma <a href="http://www.archlinux.org/static/newsletters/newsletter-2009-may.html#devland">curta entrevista comigo</a> onde falo sobre como encontrei o Arch, virei desenvolvedor e outras coisas mais.</p>
<p>Fica aí a dica.</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/05/05/entrevista-na-arch-linux-newsletter-de-maio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ARM &#8211; Arch Linux Rollback Machine</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/05/04/arm-arch-linux-rollback-machine/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/05/04/arm-arch-linux-rollback-machine/#comments</comments>
		<pubDate>Mon, 04 May 2009 12:23:35 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[arch linux]]></category>
		<category><![CDATA[pacman]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=636</guid>
		<description><![CDATA[ARM, Arch Linux Rollback Machine, é um mirror especializado em pacotes antigos do Arch. É ótimo para se fazer downgrades de pacotes, por exemplo.
Entrando no site do ARM você encontrará uma estrutura de diretórios do tipo "repositório::data", que armazena o sync de pacotes daquela data (duuh!?). Por exemplo:
Em core::2009-2-10 você encontrará todos os pacotes que [...]]]></description>
			<content:encoded><![CDATA[<p>ARM, <a href="http://arm.nrk.cc/">Arch Linux Rollback Machine</a>, é um mirror especializado em pacotes antigos do Arch. É ótimo para se fazer downgrades de pacotes, por exemplo.</p>
<p>Entrando no <a href="http://arm.nrk.cc/">site do ARM</a> você encontrará uma estrutura de diretórios do tipo "repositório::data", que armazena o sync de pacotes daquela data (duuh!?). Por exemplo:</p>
<p>Em <strong>core::2009-2-10</strong> você encontrará todos os pacotes que estavam no repositório <strong>core</strong> em <strong>10 de fevereiro de 2009</strong>. Simples, não?</p>
<p>Se preferir, você pode usar o mirror com seu pacman. É só adicionar uma entrada parecida com esta:</p>
<blockquote><p>[repositorio::data]<br />
Server = http://arm.nrk.cc/$repo/os/[i686,x86_64]</p></blockquote>
<p>Exemplo:</p>
<blockquote><p>[core::2009-2-10]<br />
Server = http://arm.nrk.cc/$repo/os/i686</p></blockquote>
<p>E usar o pacman normalmente:</p>
<blockquote><p># pacman -Sy pacote</p></blockquote>
<p>ou</p>
<blockquote><p># pacman -Sy repositorio/pacote</p></blockquote>
<p>Bacana, hein? Já vou atualizar aquele meu <a href="http://hdoria.archlinux-br.org/blog/2008/10/14/downgrade-de-pacotes-no-arch-linux/">script de downgrade de pacotes</a>. :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/05/04/arm-arch-linux-rollback-machine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Arch User Magazine &#8211; Issue 2</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/05/03/arch-user-magazine-issue-2/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/05/03/arch-user-magazine-issue-2/#comments</comments>
		<pubDate>Sun, 03 May 2009 18:19:47 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=633</guid>
		<description><![CDATA[Saiu a segunda edição da Arch User Magazine, uma revista sobre o Arch feita por seus usuários e escrita em inglês. Nesta edição você verá:

Replacing the Arch Initscripts
Disaster Preparation: How Paranoid Should You Be?
Living at The Command Line: Grep by Paragraph

A primeira edição também está disponível, para quem se interessar. Maiores informações no site da [...]]]></description>
			<content:encoded><![CDATA[<p>Saiu a<a href="http://archuser.com/downloads/Arch%20User%20Magazine%20-%20Issue%202"> segunda edição da Arch User Magazine</a>, uma revista sobre o Arch feita por seus usuários e escrita em inglês. Nesta edição você verá:</p>
<ul>
<li>Replacing the Arch Initscripts</li>
<li>Disaster Preparation: How Paranoid Should You Be?</li>
<li>Living at The Command Line: Grep by Paragraph</li>
</ul>
<p>A <a href="http://archuser.com/downloads/Arch%20User%20Magazine%20-%20Issue%201">primeira edição também está disponível</a>, para quem se interessar. Maiores informações no <a href="http://archuser.com/">site da revista</a>.</p>
<p>Recomendo!</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/05/03/arch-user-magazine-issue-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Muito trabalho e pouca farra</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/04/27/muito-trabalho-e-pouca-farra/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/04/27/muito-trabalho-e-pouca-farra/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 12:27:50 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Pessoal]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=621</guid>
		<description><![CDATA[Comecei a trabalhar em um projeto de migração de datacenter onde praticamente tudo está sendo virtualizado (usando uma ótima estrutura com vários blades e servidores parrudos) e esse é um dos motivos pelo qual ando meio sumido.
O projeto na verdade já começou há alguns meses com o planejamento, compra de switchs, hacks, blades, firewalls e [...]]]></description>
			<content:encoded><![CDATA[<p>Comecei a trabalhar em um projeto de migração de datacenter onde praticamente tudo está sendo virtualizado (usando uma ótima estrutura com vários blades e servidores parrudos) e esse é um dos motivos pelo qual ando meio sumido.</p>
<p>O projeto na verdade já começou há alguns meses com o planejamento, compra de switchs, hacks, blades, firewalls e criação de uma sala de monitoramento e sala cofre. Também tem rolado alguns cursos bastante interessantes (virtualização e google appliance, por exemplo).</p>
<p>Agora  vamos começar a montar os servidores de email, proxy, firewall, ldap, banco (oracle, cache, mysql e postgresql), monitoramento, detecção de intrusão e mais uma porrada de coisa. Algumas caixas do Red Hat Enterprise já chegaram e ele será a distro usada nos principais serviços. Oba!!</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/hdoria/3479894404/in/photostream/"><img class="aligncenter" title="RedHat Boxes" src="http://farm4.static.flickr.com/3614/3479894404_ed6f8654a4.jpg?v=0" alt="" width="500" height="375" /></a></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/hdoria/3479892946/in/photostream/"><img class="aligncenter" title="RedHat Boxes" src="http://farm4.static.flickr.com/3541/3479892946_b25aa3dbe8.jpg?v=0" alt="" width="500" height="375" /></a></p>
<p style="text-align: center;">
<p>Pelo jeito durante os próximos dois meses terei muito trabalho e pouca farra (ao menos vou me divertir com tudo). Desejem-me sorte. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/04/27/muito-trabalho-e-pouca-farra/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Novo Notify, do Ubuntu, no Arch Linux</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/03/14/novo-notify-do-ubuntu-no-arch-linux/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/03/14/novo-notify-do-ubuntu-no-arch-linux/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 01:16:40 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=587</guid>
		<description><![CDATA[Esta semana eu quis testar o tão comentado novo sistema de notificação do Ubuntu. Eu não tinha nenhuma máquina rodando a distro, então o jeito foi empacotar tudo no Arch Linux e testar nele, claro. Oba!
Empacotei o novo notify, testei e, de forma geral, gostei bastante. Ele é bem mais elegante e discreto, porém há [...]]]></description>
			<content:encoded><![CDATA[<p>Esta semana eu quis testar o tão comentado <a href="http://www.markshuttleworth.com/archives/253">novo sistema de notificação do Ubuntu</a>. Eu não tinha nenhuma máquina rodando a distro, então o jeito foi empacotar tudo no Arch Linux e testar nele, claro. Oba!</p>
<p>Empacotei o novo notify, testei e, de forma geral, gostei bastante. Ele é bem mais elegante e discreto, porém há alguns problemas que ainda precisam ser resolvidos. Nem todos os aplicativos funcionam com esta nova notificação, por exemplo.</p>
<p>Na verdade todas as notificações regulares funcionam normalmente (como as do <a href="http://code.google.com/p/pacupdate/">pacupdate</a>), mas as que possuem alguma forma de interação, não. É o caso do banshee, por exemplo. Todos os aplicativos que usam notificações desta forma precisarão ser "patcheados".</p>
<p style="text-align: center;"><a href="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2009/03/screenshot.png"><img class="size-medium wp-image-591 aligncenter" title="screenshot" src="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2009/03/screenshot-300x187.png" alt="screenshot" width="300" height="187" /></a></p>
<p>Enfim, se você quiser testar este novo notify no Arch e tirar suas próprias conclusões pode usar os pacotes que criei. Para isso é só adicionar o repositório do Arch Linux Brasil no seu<strong> /etc/pacman.conf</strong> :</p>
<blockquote><p>[archlinuxbr]<br />
Server = http://repo.archlinux-br.org/i686</p></blockquote>
<p>Agora remova o sistema de notificação antigo:</p>
<blockquote><p># pacman -Rd notification-daemon</p></blockquote>
<p>E instale o notify-osd:</p>
<blockquote><p># pacman -Sy notify-osd-bzr</p></blockquote>
<p>Provavelmente você terá que re-logar no sistema.</p>
<p>Para que o banshee e o pidgin funcionem corretamente com o novo sistema é preciso instalar os pacotes  <strong>banshee-notify-osd</strong> e <strong>pidgin-libnotify-notify-osd</strong>, respectivamente:</p>
<blockquote><p># pacman -S banshee-notify-osd</p>
<p># pacman -S pidgin-libnotify-notify-osd</p></blockquote>
<p style="text-align: center;"><a href="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2009/03/notifyosd.png"><img class="size-full wp-image-588 aligncenter" title="notifyosd" src="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2009/03/notifyosd.png" alt="notifyosd" width="393" height="225" /></a></p>
<p>Estes pacotes foram criados usando os pacthes fornecidos pelos desenvolvedores do novo notify. Era a única forma de fazê-los funcionar bem. Eu só criei pacotes para o banshee, pidgin e networkmanager, que são os aplicativos que uso regulramente. Se você usa algum outro aplicativo que não está funcionando com o novo notify me avise, que eu posso tentar criar um pacote funcional.</p>
<blockquote><p><strong>NOTA:</strong> Vale lembrar que os pacotes fornecidos no repositório brasileiro <strong>não</strong> são oficiais e, por isso, podem conter um ou outro patch. Eu também sou o mantenedor do pacote oficial do banshee  no Arch, mas ele não será patcheado. Se você quer testar o novo notify terá que usar a versão do repositório brasuca, ou esperar que o patch seja agregrado ao próprio banshee.</p></blockquote>
<p>Ah! Quando quiser voltar para o sistema antigo é só desinstalar o notify-osd e reinstalar o notification-daemon:</p>
<blockquote><p># pacman -Rd notify-osd-bzr</p>
<p># pacman -Sy notification-daemon</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/03/14/novo-notify-do-ubuntu-no-arch-linux/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Arch Linux Brasil no twitter</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/03/02/arch-linux-brasil-no-twitter/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/03/02/arch-linux-brasil-no-twitter/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 18:39:12 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=558</guid>
		<description><![CDATA[Agora você pode seguir todas as notícias do projeto Arch Linux Brasil, assim como os posts do planeta Arch-BR, através do twitter. Enjoy. :-)
]]></description>
			<content:encoded><![CDATA[<p>Agora você pode seguir todas as notícias do projeto Arch Linux Brasil, assim como os posts do planeta Arch-BR, <a href="http://twitter.com/ArchLinuxBrasil">através do twitter</a>. Enjoy. :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/03/02/arch-linux-brasil-no-twitter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Hotel bom e barato para o FISL</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/02/25/hotel-bom-e-barato-para-o-fisl/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/02/25/hotel-bom-e-barato-para-o-fisl/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 13:57:35 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Pessoal]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=551</guid>
		<description><![CDATA[Estou começando meus preparativos para o FISL deste ano e, no momento, preciso decidir em qual hotel ficar em Porto Alegre. Alguém mais experiente neste quesito, ou que more por lá, poderia me indicar um hotel bom, barato e com wireless? O que fiquei ano passado aumento o preço.
Pago dois chopp bem gelados para quem [...]]]></description>
			<content:encoded><![CDATA[<p>Estou começando meus preparativos para o FISL deste ano e, no momento, preciso decidir em qual hotel ficar em Porto Alegre. Alguém mais experiente neste quesito, ou que more por lá, poderia me indicar um hotel bom, barato e com wireless? O que fiquei ano passado aumento o preço.</p>
<p>Pago dois chopp bem gelados para quem me indicar o hotel que ficarei. :)</p>
<p><strong>UPDATE (26/02/2009):</strong></p>
<p>Algumas dicas de hoteis que o pessoal postou nos comentários:</p>
<p><a href="http://www.coraltower.com.br/queme.html">Coral Tower Express</a><br />
Apto executivo SGL R$ 200,00 + 5% de ISS<br />
Apto executivo DBL R$ 224,00 + 5% de ISS<br />
Apto executivo TPL R$ 269,00 + 5% de ISS</p>
<p>FONE: (51) 3226-5536</p>
<p><a href="http://www.duquecenter.com.br/">Duque Center</a><br />
apto single R$ 99,00<br />
apto duplo R$ 114,00<br />
apto triplo R$ 150,00</p>
<p>Distância da PUC: ~4km<br />
FONE: (51) 3212-3312</p>
<p><a href="http://unionhoteis.com.br/pergamon/">Pergamon</a><br />
Individual  	R$ 120,00<br />
Duplo 	        R$ 135,00<br />
Triplo 	        R$ 150,00<br />
Quádruplo 	R$ 165,00</p>
<p>FONE: (51) 3584-7700</p>
<p><a href="http://www.realph.com.br/">Real Palace</a><br />
Apartamento Single  	R$49.00<br />
Apartamento Double/Double Casal 	R$59.00<br />
Apartamento Triple 	R$89.00<br />
Apartamento Quadruple 	R$110.00</p>
<p>Distância da PUC: ~8km<br />
FONE: (51) 3224-0555 / 3224-0385</p>
<p><a href="http://www.hoteisrishon.com.br/">Rishon</a><br />
SINGLE      	R$ 95,00<br />
DOUBLE   	R$ 118,00<br />
TRIPLE     	R$ 145,00</p>
<p>FONE: (51) 3228.1387</p>
<p>Daqui para o FISL eu vou tentar sempre atualizar este post com novas informações. Se você está atrás de hotel, fique atento!</p>
<blockquote><p><strong>NOTA:</strong> Por enquanto eu devo uma SKOL e uma coxinha de galinha ao <a href="http://www.jorgepereira.com.br/">Jorge Pereira</a>.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/02/25/hotel-bom-e-barato-para-o-fisl/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Novos brinquedos no trabalho</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/02/18/novos-brinquedos-no-trabalho/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/02/18/novos-brinquedos-no-trabalho/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 13:09:32 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Pessoal]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=529</guid>
		<description><![CDATA[Como se os vários blades e N servidores daqui do trabalho não bastassem, hoje chegaram quatro novos brinquedinhos aqui:
Dell R900 com:

4 processadores hexa-core
128 GB de RAM
5 Discos 3.5" SAS (10k rpm): 300 GB

Além dos servidores chegaram dois Google Search Appliances:
É como diz aquele ditado:
The difference between men and boys is the price of their toys
]]></description>
			<content:encoded><![CDATA[<p>Como se os vários blades e N servidores daqui do trabalho não bastassem, hoje chegaram quatro novos brinquedinhos aqui:</p>
<p><strong>Dell R900</strong> com:</p>
<ul>
<li>4 processadores hexa-core</li>
<li>128 GB de RAM</li>
<li>5 Discos 3.5" SAS (10k rpm): 300 GB</li>
</ul>
<p>Além dos servidores chegaram dois Google Search Appliances:</p>

<a href='http://hdoria.archlinux-br.org/blog/2009/02/18/novos-brinquedos-no-trabalho/gsa/' title='gsa'><img width="150" height="150" src="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2009/02/gsa-150x150.jpg" class="attachment-thumbnail" alt="" title="gsa" /></a>
<a href='http://hdoria.archlinux-br.org/blog/2009/02/18/novos-brinquedos-no-trabalho/dsc00795/' title='dsc00795'><img width="150" height="150" src="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2009/02/dsc00795-150x150.jpg" class="attachment-thumbnail" alt="" title="dsc00795" /></a>
<a href='http://hdoria.archlinux-br.org/blog/2009/02/18/novos-brinquedos-no-trabalho/dsc00791/' title='dsc00791'><img width="150" height="150" src="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2009/02/dsc00791-150x150.jpg" class="attachment-thumbnail" alt="" title="dsc00791" /></a>
<a href='http://hdoria.archlinux-br.org/blog/2009/02/18/novos-brinquedos-no-trabalho/dell/' title='dell'><img width="150" height="150" src="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2009/02/dell-150x150.jpg" class="attachment-thumbnail" alt="" title="dell" /></a>

<p>É como diz aquele ditado:</p>
<blockquote><p>The difference between men and boys is the price of their toys</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/02/18/novos-brinquedos-no-trabalho/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ambiente de desenvolvimento Django</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/01/21/ambiente-de-desenvolvimento-django/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/01/21/ambiente-de-desenvolvimento-django/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 15:33:35 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[arch linux]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=462</guid>
		<description><![CDATA[Comecei a desenvolver usando Django e estou completamente viciado. É simplesmente fantástico. :-) Torna o desenvolvimento web bem mais ágil e divertido. Hoje eu montei um ambiente de desenvolvimento Django aqui no trabalho e resolvi criar este pequeno tutorial para mostrar como fiz.
Eu ainda sou novato nesta história, então se você tiver dicas de como [...]]]></description>
			<content:encoded><![CDATA[<p>Comecei a desenvolver usando Django e estou completamente viciado. É simplesmente fantástico. :-) Torna o desenvolvimento web bem mais ágil e divertido. Hoje eu montei um ambiente de desenvolvimento Django aqui no trabalho e resolvi criar este pequeno tutorial para mostrar como fiz.</p>
<p>Eu ainda sou novato nesta história, então se você tiver dicas de como melhorar este tutorial e/ou quiser postar um tutorial mostrando como você criou o seu ambiente, eu agradeço. :)</p>
<blockquote><p><strong>NOTA:</strong> Todo este ambiente foi feito usando Arch Linux. Se você usa outra distribuição provavelmente vai ter que adaptar alguns comandos (principalmente os de instalação).</p></blockquote>
<p>Vamos ao que interessa:</p>
<p><strong>Instalando o Django</strong></p>
<p>O primeiro passo é instalar o django, claro:</p>
<blockquote><p># pacman -Sy django</p></blockquote>
<p>Você pode conferir se a instalação deu certo rodando:</p>
<blockquote><p>$ python<br />
&gt;&gt;&gt; import django<br />
&gt;&gt;&gt; django.VERSION<br />
(1, 0, 2, 'final', 0)</p></blockquote>
<p>Se o "import django" não der erro, então o django está instalado corretamente. O "django.VERSION" mostra a versão do django instalada. Enquanto faço este post a versão do Django no Arch é a 1.0.2.</p>
<p><strong>Instalando um banco de dados</strong></p>
<p>Você vai precisar de um banco de dados para desenvolver seus projetos . Basicamente você poderá escolher entre o PostgreSQL, MySQL e Sqlite. Não tenho como dizer qual o ideal para você, pois tudo vai depender do projeto e suas necessidades.</p>
<p>De forma geral você pode usar o Sqlite tranquilamente em ambientes de desenvolvimento, mas quando for para produção é bom você considerar o uso de um dos outros dois bancos mencionados. Dependendo da sua escolha siga um dos passos abaixo:</p>
<p><strong>Instalando o sqlite</strong></p>
<blockquote><p># pacman -S sqlite3</p></blockquote>
<p>Sim, é só isso mesmo. :P</p>
<p><strong>Instalando o MySQL</strong></p>
<blockquote><p># pacman -Sy mysql</p></blockquote>
<p>Inicie o mysql com:</p>
<blockquote><p># /etc/rc.d/mysqld start</p></blockquote>
<p>Agora é só rodar o comando abaixo para configurar o mysql:</p>
<blockquote><p># /usr/bin/mysql_secure_installation</p></blockquote>
<p>O comando acima é um script que ajuda a melhorar a segurança do mysql. Com ele você vai poder mudar a senha do root (do banco), remover usuários anônimos, remover databases de teste e algumas outras coisas.</p>
<p>Depois disso o MySQL já estará pronto para uso. Se quiser você já pode criar uma base de dados para seu projeto:</p>
<blockquote><p># mysql -u root -p (coloque a senha que você modificou no script anterior)</p>
<p>&gt; create database meuprojeto;</p></blockquote>
<blockquote><p><strong>NOTA:</strong> Não esqueça de mudar "meuprojeto" para o nome da base de dados que você quer.</p></blockquote>
<p>Se você quiser que o MySQL possa ser acessado de fora da máquina do Arch ainda é preciso fazer um passo adicional:</p>
<p>Adicione no arquivo <strong>/etc/hosts.allow</strong>:</p>
<blockquote><p>mysqld: ALL</p></blockquote>
<p><strong>Instalando o PostgreSQL</strong></p>
<p>Instale com:</p>
<blockquote><p># pacman -Sy postgresql</p></blockquote>
<p>Agora inicie o banco com:</p>
<blockquote><p># /etc/rc.d/postgresql start</p></blockquote>
<p>Se quiser criar uma base de dados faça:</p>
<blockquote><p># su - postgres</p>
<p>&gt; createdb meuprojeto</p></blockquote>
<blockquote><p><strong>NOTA:</strong> Não esqueça de mudar "meuprojeto" para o nome da base de dados que você quer.</p></blockquote>
<p><strong>IDEs</strong></p>
<p>Para programar em Django você pode usar qualquer editor/IDE que serve para python. O ideal é usar a IDE com suporte às peculiaridades do Django, como o sistema de template, mas eu não encontrei nenhuma própria para isso.</p>
<p>Na verdade, o ideal mesmo é você ser independente de IDE. Não adianta nada ter a melhor ferramenta se você não sabe o que acontece por trás de verdade. IDEs são sim importantes e úteis em diversos sentidos, mas não do jeito que algumas pessoas pensam. Enfim, isto é apenas MHO e discussão para um outro dia. De qualquer forma vou colocar aqui as IDEs que testei e gostei.</p>
<p>Eu ainda estou começando neste mundo Django, então se você conhecer alguma outra IDE bacana me avise. Seguem as que experimentei e gostei, por enquanto:</p>
<p><a href="http://www.wingware.com/">WingIDE</a></p>
<div id="attachment_471" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-471" title="wingide" src="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2009/01/wingide-300x225.png" alt="wingide" width="300" height="225" /><p class="wp-caption-text">wingide</p></div>
<p>Esta é, IMHO, a melhor ide para python e só tem um pequeno "problema": é paga. Ao menos deveria ser.</p>
<blockquote><p>Como assim "deveria ser", gatinho? Vou ter que baixar nos torrents da vida é?</p>
<p style="text-align: right;">- Lolita 17, com cam</p>
</blockquote>
<p>Na verdade, não. Se você tiver algum projeto opensource em python é possível conseguir, <strong>gratuitamente</strong>, uma licença oficial. É só seguir as <a href="http://www.wingware.com/store/prices">instruções contidas nesta página</a>.</p>
<p>Alguns dos recursos:</p>
<ul>
<li>Syntax Highlighting</li>
<li>Code completion (ótimo)</li>
<li>Debugger</li>
<li>Project manager</li>
<li>Auto-complete</li>
<li>Integrated Documentation</li>
<li>E <a href="http://www.wingware.com/wingide/index">muitos outros</a></li>
</ul>
<p>Existe uma página mostrando <a href="http://www.wingware.com/doc/howtos/django">como usar o WingIde com o Django</a>.</p>
<p>Instalando:</p>
<p>Por motivos de licença, o wingide não está disponível nos repositórios oficiais do Arch. Se você não comprar, a solução é instalar <a href="http://aur.archlinux.org/packages.php?ID=15672">este pacote do AUR (versão trial de 30 dias)</a>. Se você ainda não sabe como instalar um pacote do AUR veja <a href="http://hdoria.archlinux-br.org/blog/2008/09/01/aur-arch-linux-user-repository/">este tutorial</a>.</p>
<p><a href="http://www.activestate.com/komodo_edit/">Komodo Edit</a></p>
<p>O Komodo Edit é a versão gratuita do Komodo IDE. É leve e suporta vários tipos de arquivos.</p>
<div id="attachment_475" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-475" title="komodo" src="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2009/01/komodo-300x226.png" alt="komodo" width="300" height="226" /><p class="wp-caption-text">komodo</p></div>
<p>Alguns dos recursos:</p>
<ul>
<li>Syntax Highlighting</li>
<li>Code completion</li>
<li>Serve para vários tipos de arquivos (não só python)</li>
<li>Project manager</li>
<li>Auto-complete</li>
<li>E <a href="http://www.activestate.com/komodo_edit/features/">muitos outros</a></li>
</ul>
<p>Há alguns tutoriais mostrando como integrar algumas coisas do Django com o Komodo Edit (eu ainda não testei):</p>
<ul>
<li><a href="http://community.activestate.com/tags/komodo-project-template-d">Template</a></li>
<li><a href="http://community.activestate.com/forum-topic/debugging-django-apps">Debug</a></li>
</ul>
<p>Instalando:</p>
<p>O Komodo Edit também se <a href="http://aur.archlinux.org/packages.php?ID=19634">encontra apenas no AUR</a>. Se você ainda não sabe como instalar um pacote do AUR veja <a href="http://hdoria.archlinux-br.org/blog/2008/09/01/aur-arch-linux-user-repository/">este tutorial</a>.</p>
<p>Como já falei, você usar praticamente todas <a href="http://www.pythonbrasil.com.br/moin.cgi/IdesPython">IDEs para python</a>. Pode usar, também, vim, gvim, kate, kwrite, nano e qualquer outro bom e velho editor. :)</p>
<p>É isso. Se você tiver alguma sugestão é só avisar. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/01/21/ambiente-de-desenvolvimento-django/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Comunidade &#8220;ArchLinux&#8221; no VOL</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/01/20/comunidade-archlinux-no-vol/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/01/20/comunidade-archlinux-no-vol/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 19:53:38 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[arch linux]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=457</guid>
		<description><![CDATA[Hoje eu percebi que sou o atual "dono" da comunidade "ArchLinux" no VivaoLinux. Eu não tenho tempo, nem interesse, para tomar conta desta comunidade e acredito que ela merece alguém que possa se envolver, cuidar e levá-la adiante melhor que eu (ela merece #). Por isso estou passando a comunidade adiante para alguém que tenha [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje eu percebi que sou o atual "dono" da <a href="http://www.vivaolinux.com.br/comunidade/ArchLinux">comunidade "ArchLinux" no VivaoLinux</a>. Eu não tenho tempo, nem interesse, para tomar conta desta comunidade e acredito que ela merece alguém que possa se envolver, cuidar e levá-la adiante melhor que eu (ela merece #). Por isso estou passando a comunidade adiante para alguém que tenha os seguintes pré-requisitos:</p>
<ul>
<li>Participação no Viva o Linux</li>
<li>Usuário do Arch, claro</li>
<li>Envolvimento com comunidades</li>
<li>Tempo disponível</li>
</ul>
<p>Se você preenche os requisitos e tem interesse em manter a comunidade é só deixar um comentário aqui.</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/01/20/comunidade-archlinux-no-vol/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Migrando do ext3 para o ext4</title>
		<link>http://hdoria.archlinux-br.org/blog/2009/01/16/migrando-do-ext3-para-o-ext4/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2009/01/16/migrando-do-ext3-para-o-ext4/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 18:40:22 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[arch linux]]></category>
		<category><![CDATA[ext3]]></category>
		<category><![CDATA[ext4]]></category>
		<category><![CDATA[filesystem]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br.org/blog/?p=440</guid>
		<description><![CDATA[O kernel 2.6.28 já chegou no repositório oficial do Arch e, junto com ele, o ext4. Novas instalações já podem ser feitas usando este filesystem e quem ainda usa ext3 pode migrar para o ext4 facilmente. Eu já migrei e recomendo. :) Tudo o que você precisa é do kernel 2.6.28 e rodar uns 3 [...]]]></description>
			<content:encoded><![CDATA[<p>O kernel 2.6.28 já chegou no repositório oficial do Arch e, junto com ele, o <strong>ext4</strong>. Novas instalações já podem ser feitas usando este filesystem e quem ainda usa ext3 pode migrar para o ext4 facilmente. Eu já migrei e recomendo. :) Tudo o que você precisa é do <strong>kernel 2.6.28 </strong>e rodar uns 3 comandos para sua partição, que deve estar desmontada. Vamos lá:</p>
<blockquote><p><strong>NOTA:</strong> Seguindo este post a migração é feita sem formatação e seus dados <strong>NÃO</strong> serão perdidos. Entretanto todos os seus arquivos antigos continuarão sendo mapeados do jeito antigo (ext3), apenas os novos usarão o novo método. Por causa disso seu ganho de performance, <strong>por enquanto</strong>, não será tão grande.</p>
<p>Mesmo com este pequeno "problema" vale a pena migrar para ext4. A próxima versão do kernel virá com o desfragmentador online do ext4 e ele será o responsável por migrar seus arquivos antigos para o novo método.</p></blockquote>
<p>Para migrar seu instalação  para ext4 faça, para cada partição que usa o ext3:</p>
<blockquote><p># umount /dev/particao</p>
<p># tune2fs -O extents,uninit_bg,dir_index /dev/particao</p>
<p># fsck -pf /dev/particao</p></blockquote>
<p><strong>Exemplo:</strong></p>
<blockquote><p># umount /dev/sda2</p>
<p># tune2fs -O extents,uninit_bg,dir_index /dev/sda2</p>
<p># fsck -pf /dev/sda2</p></blockquote>
<p><strong>UPDATE:</strong> Algumas pessoas perguntaram nos comentários como migrar a partição raiz, já que esta não pode ser desmontada enquanto se usa o sistema. Realmente isso gera uma certa dúvida, mas existe algumas maneiras de se fazer isso. A mais prática, talvez, seja iniciar o sistema em modo single e rodar os comandos a partir de lá. Para isso faça:</p>
<ol>
<li>Reinicie seu sistema.</li>
<li>Na tela do Grub aperte a tecla <strong>E</strong>, para editar a entrada que contém o kernel padrão do Arch (<strong>não</strong> use a fallback).</li>
<li>Procure a linha que começa com kernel. Exemplo:<br />
kernel /boot/vmlinuz26 root=/dev/sda2 ro</li>
<li>Aperte a tecla <strong>E</strong> novamente.</li>
<li>No final da linha adicione o número <strong>1</strong>. A entrada vai ficar assim:<br />
kernel /boot/vmlinuz26 root=/dev/sda2 ro 1</li>
<li>Aperte <strong>ENTER</strong> para salvar sua mudança</li>
<li>Aperte a tecla <strong>b</strong>, para dar boot</li>
</ol>
<p>O sistema vai começar a iniciar e em um determinado momento ele pedirá a senha de root. Algo como:</p>
<blockquote><p>Give the root password for maintenance.</p></blockquote>
<p>Digite sua senha. Agora você poderá desmontar sua partição raíz e executar a migração para ext4 normalmente (com os comandos que coloquei no inicio do post).</p>
<p>Depois de tudo edite o arquivo <strong>/etc/fstab</strong> e troque os campos "<strong>ext3</strong>" por "<strong>ext4</strong>" (sem as aspas, claro) nas partições que você migrou.</p>
<p>No Arch, ainda é preciso um passo adicional (não sei se precisa em outras distros):</p>
<blockquote><p># mkinitcpio -g /boot/kernel26.img</p></blockquote>
<p>O comando acima irá gerar a nova imagem do kernel com os devidos módulos. Agora é só reiniciar o seu sistema e curtir o novo filesystem. :-)</p>
<p>Depois de reiniciado você pode conferir se suas partições estão usando ext4 digitando:</p>
<blockquote><p># mount</p></blockquote>
<p>A saída será parecida com essa:</p>
<blockquote><p>/dev/sda2 on / type ext4 (rw)<br />
/dev/sda4 on /media/backup type ext4 (rw)<br />
/dev/sda3 on /home type ext4 (rw)</p></blockquote>
<p>É isso. Para maiores informações visite:</p>
<p><a href="http://andrem.wordpress.com/2008/12/26/ext4/">http://andrem.wordpress.com/2008/12/26/ext4/</a></p>
<p><a href="http://kernelnewbies.org/Ext4">http://kernelnewbies.org/Ext4</a></p>
<p><strong>UPDATE2:</strong> No meio bit há um <a href="http://meiobit.pop.com.br/meio-bit/software/benchmark-do-sistema-de-arquivos-ext4">resumo de um artigo comparando o ext4 com outros filesystems</a> (sim, às vezes aparecem bons artigos no meio bit. Nem tudo lá é {win,apple,free}tard).</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2009/01/16/migrando-do-ext3-para-o-ext4/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Gengo e wordpress 2.7</title>
		<link>http://hdoria.archlinux-br.org/blog/2008/12/15/gengo-e-wordpress-27/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2008/12/15/gengo-e-wordpress-27/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 15:30:33 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br/blog/?p=428</guid>
		<description><![CDATA[Hoje eu atualizei o wordpress para o 2.7 e percebi que o blog acabou entrando em um loop infinito, sempre tentando adicionar algo como "/pt/pt/pt/pt/pt/pt" no final da url. Logo de cara desconfiei que era o Gengo, mas para minha surpresa não era.
Para falar a verdade eu ainda continuo sem saber o que causou o [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje eu atualizei o wordpress para o 2.7 e percebi que o blog acabou entrando em um loop infinito, sempre tentando adicionar algo como "/pt/pt/pt/pt/pt/pt" no final da url. Logo de cara desconfiei que era o <a href="http://wordpress.org/extend/plugins/gengo/">Gengo</a>, mas para minha surpresa não era.</p>
<p>Para falar a verdade eu ainda continuo sem saber o que causou o problema (estou sem tempo de procurar algo). Só sei que para consertá-lo é só ir nas configurações dos <strong>Permanlinks</strong> do wordpress (não é no Gengo) e clicar em <strong>salvar</strong>. Não precisa modificar nada, é só salvar mesmo. Estranho, não?</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2008/12/15/gengo-e-wordpress-27/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8220;Olá, Mundo!&#8221; com Python no PSP</title>
		<link>http://hdoria.archlinux-br.org/blog/2008/12/10/ola-mundo-com-python-no-psp/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2008/12/10/ola-mundo-com-python-no-psp/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 22:45:44 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[psp]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br/blog/?p=405</guid>
		<description><![CDATA[Como falei no post anterior, comprei um PSP recentemente e entre uma jogatina e outra descobri várias coisas bacanas que se podia fazer nele, incluindo programar em python. Infelizmente só hoje tive tempo de fuçar um pouco sobre o assunto e escrever meu primeiro código em python psp: o famoso "olá, mundo!".
Para rodar python no [...]]]></description>
			<content:encoded><![CDATA[<p>Como falei no post anterior, <a href="http://hdoria.archlinux-br.org/blog/2008/12/06/meu-novo-brinquedo-psp/pt/">comprei um PSP recentemente</a> e entre uma jogatina e outra descobri várias coisas bacanas que se podia fazer nele, incluindo programar em python. Infelizmente só hoje tive tempo de fuçar um pouco sobre o assunto e escrever meu primeiro código em python psp: o famoso "olá, mundo!".</p>
<p>Para rodar python no PSP eu precisei do <a href="http://code.google.com/p/pspstacklesspython/">PSP Stackless Python</a>, um port da linguagem para o PSP feito por um brasileiro: <a href="http://themindcaster.blogspot.com/">Carlos Eduardo</a>. A última versão do port é  2.5.2, que já dá para fazer bastante coisa.</p>
<p>Infelizmente no site do projeto há pouca documentação disponível (pior ainda se você procurar em pt-br). Como me interessei no assunto, e até para ajudar o Carlos, resolvi criar um tutorial básico mostrando como fiz para escrever um "Olá, Mundo!" na tela do PSP. Obviamente, dá para fazer muito mais que isso. :P</p>
<p><strong>"Instalando" o python</strong></p>
<p>O primeiro passo é "instalar" o PSP Stackless Python no seu PSP. Baixe a versão mais atual no site do projeto. Procure por <a href="http://pspstacklesspython.googlecode.com/files/StacklessPSP-2.5.2_R1.zip">StacklessPSP-2.5.2_R1.zip</a>:</p>
<p>Descompactando o arquivo baixando você encontra: <strong>EBOOT.PBP</strong> e <strong>python.zip</strong>. Tudo o que você precisa fazer é copiar estes dois arquivos para o diretório <a id="Installation"><strong>PSP/GAME</strong>, que fica dentro do memory stick. </a><a id="Installation">Pronto, a "instalação" foi feita. :-)</a></p>
<blockquote><p><a id="Installation"><strong>NOTA:</strong> Recomendo que você crie um sub-diretório em <strong>PSP/GAME</strong> chamada "<strong>python</strong>", por exemplo, e coloque os dois arquivos dentro dele. Isso ajuda a manter uma melhor organização.<br />
</a></p></blockquote>
<p>Para verificar é só ligar seu PSP e ir em GAME -&gt; Memory Stick. Se tudo foi feito corretamente você verá o Stackless Python pronto para ser rodado:</p>
<p style="text-align: center;"><img class="size-medium wp-image-415 aligncenter" title="Stackless Python" src="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2008/12/snap000.bmp" alt="Stackless Python" /></p>
<p style="text-align: center;">
<p><strong>O "Olá, Mundo!"</strong></p>
<p>Sempre que o python for executado, ele procurará um arquivo chamado <strong>script.py</strong> dentro do mesmo diretório onde estão o <strong>EBOOT.PBP</strong> e <strong>o python.zip</strong>. É neste arquivo (script.py) que vamos colocar o nosso código.</p>
<p>Abra seu editor de texto preferido e cole o código abaixo:</p>
<pre class="python"><span style="color: #808080; font-style: italic;"># -*- encoding: utf-8 -*-</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> psp2d
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> main<span style="color: black;">&#40;</span>mensagem<span style="color: black;">&#41;</span>:
&nbsp;
    tela  = psp2d.<span style="color: black;">Screen</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    fundo = psp2d.<span style="color: black;">Image</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">480</span>, <span style="color: #ff4500;">272</span><span style="color: black;">&#41;</span>
    fonte = psp2d.<span style="color: black;">Font</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'font.png'</span><span style="color: black;">&#41;</span>
&nbsp;
    tela.<span style="color: black;">blit</span><span style="color: black;">&#40;</span>fundo<span style="color: black;">&#41;</span>
    fonte.<span style="color: black;">drawText</span><span style="color: black;">&#40;</span>tela, <span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">0</span>, mensagem<span style="color: black;">&#41;</span>
    tela.<span style="color: black;">swap</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:
        joystick = psp2d.<span style="color: black;">Controller</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> joystick.<span style="color: black;">circle</span>:
            <span style="color: #ff7700;font-weight:bold;">break</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
    <span style="color: #ff7700;font-weight:bold;">try</span>:
        main<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Ola, mundo! =)'</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">except</span>:
        <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">traceback</span>
        <span style="color: #dc143c;">traceback</span>.<span style="color: black;">print_exc</span><span style="color: black;">&#40;</span><span style="color: #008000;">file</span> = <span style="color: #008000;">file</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'erro.txt'</span>, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre>
<p>Depois é só copiar este arquivo para <strong>dentro do mesmo diretório</strong> onde está o <strong>python</strong> e o <strong>EBOOT.PBP</strong>. <strong>PSP/GAME</strong>, ou <strong>PSP/GAME/python</strong> se você criou um subdiretório como eu recomendei.</p>
<p>Agora é só ligar seu PSP novamente, rodar o python e tchã-dan:</p>
<p style="text-align: center;"><img class="size-medium wp-image-416 aligncenter" title="ola python" src="http://hdoria.archlinux-br.org/blog/wp-content/uploads/2008/12/snap001.bmp" alt="ola python" /></p>
<p>Seu primeiro script em python estará rodando. :-) Legal, né?</p>
<p><strong>Entendendo o código</strong></p>
<p>Vou explicar melhor o código. Como o foco aqui não é ensinar a linguagem em si não vou me prender a conceitos da mesma e vou explicar apenas a parte necessária para se imprimir o "Olá, mundo!".</p>
<p>Quem já programa em python já deve estar familiarizado com a estrutura do código (identação, definição de função e tratamento de erros). Se ainda não programa recomendo que entre <a href="http://www.pythonbrasil.com.br/">no site do python brasil</a> e dê uma olhada nos ótimos tutoriais que existem por lá.</p>
<p>Enfim, vamos lá:</p>
<pre class="python"><span style="color: #ff7700;font-weight:bold;">import</span> psp2d</pre>
<p>Aqui estamos importando o módulo <strong>psp2d</strong>. Com ele podemos fazer todo tipo de desenho 2d na tela, inclusive escrever o texto que queremos. :-)</p>
<p>Existem outros módulos que você usar como, por exemplo:</p>
<ul>
<li>pspnet - Módulo com classes e funções relacionadas à rede</li>
<li>pspsnd - Módulo que permite o controle de som e música</li>
<li>pspos - Módulo com funções específicas do PSP</li>
</ul>
<p>Se quiser uma referência completa destes módulos visite <a href="http://python-psp.net/pspdoc/">http://python-psp.net/pspdoc/</a> .</p>
<pre class="python">    tela  = psp2d.<span style="color: black;">Screen</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre>
<p>A classe "Screen" representa a tela do PSP e você sempre precisará de uma para poder fazer qualquer coisa.</p>
<pre class="python">    fundo = psp2d.<span style="color: black;">Image</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">480</span>, <span style="color: #ff4500;">272</span><span style="color: black;">&#41;</span></pre>
<p>Essa linha serve para criar o fundo da tela, com as mesmas dimensões dela. No caso, você está definindo 480 para a largura e 272 para altura.</p>
<pre class="python">    fonte = psp2d.<span style="color: black;">Font</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'font.png'</span><span style="color: black;">&#41;</span></pre>
<p>Aqui estamos instanciando uma Fonte. Precisamos de uma para poder mostrar um texto, claro. Infelizmente não existe nenhuma fonte embutida, então você precisará baixar uma. O tipo da fonte é SFonte.</p>
<p>A <strong>font.png</strong> que eu usei no exemplo pode ser <a href="http://python-psp.net/trac/chrome/site/doc/font.png">baixada aqui</a>. Você precisa colocá-la no <strong>mesmo diretório</strong> do python.</p>
<pre class="python">    tela.<span style="color: black;">blit</span><span style="color: black;">&#40;</span>fundo<span style="color: black;">&#41;</span></pre>
<p>O método blit serve para copiar um objeto para sua instância. No caso, estamos copiando o fundo para a tela.</p>
<pre class="python">    fonte.<span style="color: black;">drawText</span><span style="color: black;">&#40;</span>tela, <span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">0</span>, mensagem<span style="color: black;">&#41;</span></pre>
<p>O método drawText é usado para desenharmos o texto na tela. Seu uso é:</p>
<blockquote><p>fonte.drawText(tela, posicaoX, posicaoY, mensagem)</p></blockquote>
<p>No caso estamos desenhando na <strong>tela</strong>, na posição<strong> 0x 0y,</strong> o conteúdo da variável <strong>mensagem</strong>.</p>
<pre class="python">    tela.<span style="color: black;">swap</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre>
<p>Para se desenhar na tela são necessários dois buffers. Isso significa que ao invés de termos um buffer representando a tela, temos dois. Um é o buffer da visualização em si (display buffer), e o outro é o buffer do desenho (draw buffer).</p>
<p>Todas as opções de desenho são direcionadas ao buffer de desenho, que não é mostrado na tela. O método "swap" do objeto Screen troca o buffer de desenho e o buffer de visualização, fazendo com que o que desenhos na tela seja, de fato, mostrado nela.</p>
<p>O código mostrado aqui é o referente ao desenho do texto na tela.</p>
<pre class="python">  <span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:
        joystick = psp2d.<span style="color: black;">Controller</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> joystick.<span style="color: black;">circle</span>:
            <span style="color: #ff7700;font-weight:bold;">break</span></pre>
<p>Este trecho do código está instanciando a classe Controller, que serve para reconhecer os botões do PSP e, dessa forma, permitir que você possa definir ações. O código acima está basicamente dizendo que se o botão circulo for pressionado é para ele sair do programa. O <strong>while True</strong> garante que isso fique em loop até que o botão seja pressionado.</p>
<pre class="python"><span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
    <span style="color: #ff7700;font-weight:bold;">try</span>:
        main<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Ola, mundo! =)'</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">except</span>:
        <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">traceback</span>
        <span style="color: #dc143c;">traceback</span>.<span style="color: black;">print_exc</span><span style="color: black;">&#40;</span><span style="color: #008000;">file</span> = <span style="color: #008000;">file</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'erro.txt'</span>, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre>
<p>O código acima basicamente faz com que o programa, ao rodar, chame o método main, passando a frase "<strong>Ola, mundo! =</strong>)" como parâmetro. Caso aconteça algum erro o mesmo deve ser salvo em um arquivo chamado "erro.txt".</p>
<p>Bem, é isso. Vou continuar brincando com o python no PSP e fazer alguns joguinhos. Se você interessou pelo assunto recomendo entrar no sites abaixo para mais informações e tutoriais:</p>
<ul>
<li><a href="http://code.google.com/p/pspstacklesspython/">http://code.google.com/p/pspstacklesspython/</a></li>
<li><a href="http://python-psp.net/trac/wiki/Tutorial">http://python-psp.net/trac/wiki/Tutorial</a> (Este post é, basicamente, uma tradução deste artigo)</li>
<li><a href="http://python-psp.net/pspdoc/">http://python-psp.net/pspdoc/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2008/12/10/ola-mundo-com-python-no-psp/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Cadê o ENSL deste ano?</title>
		<link>http://hdoria.archlinux-br.org/blog/2008/11/25/cade-o-ensl-deste-ano/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2008/11/25/cade-o-ensl-deste-ano/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 19:02:31 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[encontros]]></category>
		<category><![CDATA[ensl]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br/blog/?p=371</guid>
		<description><![CDATA[Entre 28 e 30 de setembro do ano passado rolou o II Encontro Nordestino de Software Livre aqui em Aracaju-SE. O evento foi bem legal e, no final do mesmo, foi decidido que a edição deste ano (a terceira) seria em Salvador.
De setembro de 2007 para cá muita coisa rolou, mas até agora nenhuma notícia [...]]]></description>
			<content:encoded><![CDATA[<p>Entre 28 e 30 de setembro do ano passado rolou o <a href="http://www.ensl.org.br/">II Encontro Nordestino de Software Livre</a> aqui em <a href="http://hdoria.archlinux-br.org/blog/2008/09/24/aracaju-uma-cidade-para-todos/pt/">Aracaju-SE</a>. O evento foi bem legal e, no final do mesmo, foi decidido que a edição deste ano (a terceira) seria em Salvador.</p>
<p>De setembro de 2007 para cá muita coisa rolou, mas até agora nenhuma notícia da nova edição do ENSL. Já tentei entrar em contato com o pessoal da Bahia e até me inscrevi na lista do PSL-BA na tentativa de poder ajudar em algo do evento que, pelo jeito, não acontecerá.</p>
<p>Alguém tem alguma informação sobre a organização e planejamento do encontro? Acho muito importante continuar fazendo um evento de alto nível no nordeste, e o ENSL era o melhor representante disto. Não dá para viver indo para o sul e sudeste sempre. Precisamos de algo por aqui.</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2008/11/25/cade-o-ensl-deste-ano/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Script de backup do ExpressoMail</title>
		<link>http://hdoria.archlinux-br.org/blog/2008/11/13/script-de-backup-do-expressomail/</link>
		<comments>http://hdoria.archlinux-br.org/blog/2008/11/13/script-de-backup-do-expressomail/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 00:07:23 +0000</pubDate>
		<dc:creator>Hugo Doria</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://hdoria.archlinux-br/blog/?p=361</guid>
		<description><![CDATA[Hoje eu tive que fazer um script rápido para backup do ExpressoMail. Como sei que ele pode ser útil para muitos SysAdmins que conheço, aqui vai ele (é coisa boba mesmo):
#!/bin/bash
#
# bkp-expresso.sh
#
# Script para fazer backup do Expresso Mail
#
# Ele faz backup de:
# * Banco de dados
# * Base do LDAP
# * Cyrus
# * Emails
#
# [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje eu tive que fazer um script rápido para backup do ExpressoMail. Como sei que ele pode ser útil para muitos SysAdmins que conheço, aqui vai ele (é coisa boba mesmo):</p>
<pre class="bash"><span style="color: #808080; font-style: italic;">#!/bin/bash</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># bkp-expresso.sh</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Script para fazer backup <span style="color: #000000; font-weight: bold;">do</span> Expresso Mail</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Ele faz backup de:</span>
<span style="color: #808080; font-style: italic;"># * Banco de dados</span>
<span style="color: #808080; font-style: italic;"># * Base <span style="color: #000000; font-weight: bold;">do</span> LDAP</span>
<span style="color: #808080; font-style: italic;"># * Cyrus</span>
<span style="color: #808080; font-style: italic;"># * Emails</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Última modificação: <span style="color: #000000;">13</span>/<span style="color: #000000;">11</span>/<span style="color: #000000;">2008</span></span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Versão <span style="color: #000000;">1</span>: Versão Inicial</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Autor: Hugo Doria <span style="color: #7a0874; font-weight: bold;">&#40;</span>hugo@archlinux.org<span style="color: #7a0874; font-weight: bold;">&#41;</span></span>
<span style="color: #808080; font-style: italic;">#</span>
&nbsp;
<span style="color: #007800;">DIR_BACKUP=</span><span style="color: #ff0000;">&quot;/root/backups/&quot;</span>
<span style="color: #007800;">USUARIO_BANCO=</span><span style="color: #ff0000;">&quot;postgres&quot;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> ! -d <span style="color: #007800;">$<span style="color: #7a0874; font-weight: bold;">&#123;</span>DIR_BACKUP<span style="color: #7a0874; font-weight: bold;">&#125;</span></span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Criando o diretório de backup ...&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> -p <span style="color: #007800;">$<span style="color: #7a0874; font-weight: bold;">&#123;</span>DIR_BACKUP<span style="color: #7a0874; font-weight: bold;">&#125;</span></span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$<span style="color: #7a0874; font-weight: bold;">&#123;</span>DIR_BACKUP<span style="color: #7a0874; font-weight: bold;">&#125;</span></span> || <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Backup <span style="color: #000000; font-weight: bold;">do</span> postgres</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Fazendo o backup do banco ...&quot;</span>
pg_dump -o -U <span style="color: #007800;">$<span style="color: #7a0874; font-weight: bold;">&#123;</span>USUARIO_BANCO<span style="color: #7a0874; font-weight: bold;">&#125;</span></span> expresso &amp;gt; bkp-banco.dump
&nbsp;
<span style="color: #808080; font-style: italic;"># Backup <span style="color: #000000; font-weight: bold;">do</span> ldap</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Fazendo o backup do ldap ...&quot;</span>
slapcat &amp;gt; bkp-ldap.ldif
&nbsp;
<span style="color: #808080; font-style: italic;"># Backup <span style="color: #000000; font-weight: bold;">do</span> cyrus</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Fazendo o backup do cyrus ...&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Parando o cyrus ...&quot;</span>
/etc/init.d/cyrus2<span style="color: #000000;">.2</span> stop
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> -d /var/spool/cyrus <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Fazendo o dump da estrutura do cyrus ...&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">su</span> - cyrus -c <span style="color: #ff0000;">&quot;/usr/sbin/ctl_mboxlist -d &amp;gt; bkp-cyrus.dump&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">mv</span> /var/spool/cyrus/bkp-cyrus.dump <span style="color: #007800;">$<span style="color: #7a0874; font-weight: bold;">&#123;</span>DIR_BACKUP<span style="color: #7a0874; font-weight: bold;">&#125;</span></span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Compactando as mensagens ...&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">tar</span> cvf bkp-mail.<span style="color: #c20cb9; font-weight: bold;">tar</span>.gz /var/spool/cyrus
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> -d /var/lib/cyrus <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Compactando o /var/lib/cyrus ...&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">tar</span> cvf bkp-cyrusvarlib.<span style="color: #c20cb9; font-weight: bold;">tar</span>.gz /var/lib/cyrus
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Iniciando o cyrus ...&quot;</span>
/etc/init.d/cyrus2<span style="color: #000000;">.2</span> start
&nbsp;
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Backup finalizado e salvo em ${DIR_BACKUP}&quot;</span></pre>
<p>Se preferir, é só <a href="http://hdoria.archlinux-br.org/scripts/bkp-expresso.sh">baixar o script</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://hdoria.archlinux-br.org/blog/2008/11/13/script-de-backup-do-expressomail/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
