<?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:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Blog do Lameiro</title>
	
	<link>http://lameiro.wordpress.com</link>
	<description />
	<lastBuildDate>Sat, 05 Sep 2009 16:40:43 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain="lameiro.wordpress.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image>
		<url>http://www.gravatar.com/blavatar/2d6b6d0d6fb2ab42c87b4146305d4a32?s=96&amp;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Blog do Lameiro</title>
		<link>http://lameiro.wordpress.com</link>
	</image>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/BlogDoLameiro" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Corrida de vetores, agora mais nerd</title>
		<link>http://feedproxy.google.com/~r/BlogDoLameiro/~3/BR84JXciCF8/</link>
		<comments>http://lameiro.wordpress.com/2009/09/05/corrida-de-vetores-ainda-mais-nerd/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 03:45:59 +0000</pubDate>
		<dc:creator>Leandro Lameiro</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://lameiro.wordpress.com/?p=121</guid>
		<description><![CDATA[Quando eu estava no colegial, adorava jogar com meus colegas  um joguinho meio matemático, entre nós conhecido como Corrida de Vetor.  É um jogo bastante popular, simples e divertido, bom para o tempo passar mais rápido naquelas aulas de chatas de Geografia. Tem uma versão online aqui.
Esses dias apareceu no meu Google Reader (share [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=121&subd=lameiro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Quando eu estava no colegial, adorava jogar com meus colegas  um joguinho meio matemático, entre nós conhecido como <a href="http://en.wikipedia.org/wiki/Racetrack_%28game%29">Corrida de Vetor</a>.  É um jogo bastante popular, simples e divertido, bom para o tempo passar mais rápido naquelas aulas de chatas de Geografia. Tem uma versão online <a href="http://vectorracer.boschloo.net/">aqui</a>.</p>
<p>Esses dias apareceu no meu Google Reader (share do <a href="http://www.ricbit.com/">ricbit</a>) <a href="http://3dpancakes.typepad.com/ernie/2009/06/how-hard-is-optimal-racing.html">um post</a> explicando um algoritmo para encontrar o caminho mínimo, dada a pista. Resumindo o post, o algoritmo é bem simples, usa apenas um grafo com todos os estados possíveis e uma busca em largura.</p>
<p>Cada vértice do grafo representará a posição na pista em x em y, e a velocidade em x e em y. Pra montar o grafo com todos os estados, é assim:</p>
<ul>
<li>Começar o grafo com um vértice, que é a posição de largada com velocidade zero e colocá-lo na fila de vértices a processar.</li>
<li>Enquanto ainda tiver vértices na fila a processar:
<ul>
<li>Processar o próximo vértice na fila de vértices a processar. Colocar os novos vértices resultantes no fim da fila.</li>
</ul>
</li>
</ul>
<p>OK, mas o que significa este &#8220;processar o vértice&#8221; ? Significa gerar todos os vértices alcançaveis a partir do atual, ou seja, os vértices que são atingidos partindo do vértice atual com a velocidade que ele tem e todas as possíveis variações na velocidade (combinação de +1, 0 ou -1 na horizontal com +1, 0 ou -1 na vertical).</p>
<p>Tendo o grafo com todos os possíveis estados do jogo, o caminho mais curto tem que estar no grafo. Como todas as arestas tem o mesmo peso, nem precisamos usar o <a href="http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm">algoritmo de Dijkstra</a> para achar o caminho mais curto. Ele será o primeiro a ser encontrado usando uma busca em largura. Na verdade, nem precisamos gerar todos os estados, podemos parar ao achar o fim da corrida, que é como eu implementei.</p>
<p>Como eu gostava muito do joguinho, fiz um programinha que lê uma pista em um arquivo texto, calcula o caminho mais curto e gera um gráfico com o caminho e uma representação das velocidades. O gráfico (tosquinho, eu sei), é assim:</p>
<div id="attachment_137" class="wp-caption aligncenter" style="width: 727px"><img class="size-full wp-image-137 " title="Resultado do programa" src="http://lameiro.files.wordpress.com/2009/07/track.png?w=717&#038;h=358" alt="Resultado do programa" width="717" height="358" /><p class="wp-caption-text">Os quadrados vermelhos representam os pontos onde o jogador decide o que fazer e o tom de vermelho representa a velocidade, quanto mais escuro mais rápido.</p></div>
<p>Podemos ver que até o algoritmo &#8220;rouba&#8221; no jogo, passando pela grama pra evitar algumas curvas muito fechadas. Acho que isso até era permitido na regra sim.</p>
<p><a href="http://github.com/lameiro/vector_race/tree/master">Código-fonte e arquivo de pista</a></p>
<p>Dependências: <a href="http://www.pythonware.com/products/pil/">PIL</a>, <a href="http://pypi.python.org/pypi/python-graph/1.6.1">python-graph</a></p>
Posted in Misc, Python Tagged: Python <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lameiro.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lameiro.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lameiro.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lameiro.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lameiro.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lameiro.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lameiro.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lameiro.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lameiro.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lameiro.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=121&subd=lameiro&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lameiro.wordpress.com/2009/09/05/corrida-de-vetores-ainda-mais-nerd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b91d903f166dd804e17338a06f32bbe7?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">lameiro</media:title>
		</media:content>

		<media:content url="http://lameiro.files.wordpress.com/2009/07/track.png" medium="image">
			<media:title type="html">Resultado do programa</media:title>
		</media:content>
	<feedburner:origLink>http://lameiro.wordpress.com/2009/09/05/corrida-de-vetores-ainda-mais-nerd/</feedburner:origLink></item>
		<item>
		<title>Yahoo! Open Hack Day Brazil 2008</title>
		<link>http://feedproxy.google.com/~r/BlogDoLameiro/~3/3x2xFQhvr2I/</link>
		<comments>http://lameiro.wordpress.com/2008/11/11/yahoo-open-hack-day-brazil-2008/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 06:37:54 +0000</pubDate>
		<dc:creator>Leandro Lameiro</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[brhackday]]></category>
		<category><![CDATA[brhackday08]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://lameiro.wordpress.com/?p=100</guid>
		<description><![CDATA[Neste fim de semana eu participei do Yahoo! Open Hack Day Brazil. O evento foi feito pelo Yahoo! no Senac de Santo Amaro e as pessoas se divertiram com as APIs abertas do Yahoo!, fazendo mashups e algumas outras maluquices. Durou das 08:00 de sábado até as 20:00 de domingo, 36 horas ininterruptas de hacking.
Só [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=100&subd=lameiro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Neste fim de semana eu participei do <a href="http://developer.yahoo.net/hackday/">Yahoo! Open Hack Day Brazil</a>. O evento foi feito pelo <a href="http://www.yahoo.com/">Yahoo!</a> no <a href="http://www.sp.senac.br/jsp/default.jsp?newsID=a3663.htm&amp;testeira=727&amp;unit=CAS&amp;sub=0">Senac de Santo Amaro</a> e as pessoas se divertiram com as APIs abertas do Yahoo!, fazendo <a href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)">mashups</a> e algumas outras maluquices. Durou das 08:00 de sábado até as 20:00 de domingo, 36 horas ininterruptas de hacking.</p>
<p>Só tenho coisas boas a dizer sobre o evento. O ambiente era muito confortável, a comida estava muito boa e fomos atendidos 100% do tempo, os hacks estavam muito legais, eles nos pegaram e levaram até estações de metrô e trem. Enfim, a organização do Yahoo! está de parabéns.</p>
<p>Eu como todo bom engenheiro eletricista fui ao HackDay munido de uma <a href="http://en.wikipedia.org/wiki/Breadboard">protoboard</a>, muito fio, vários <a href="http://en.wikipedia.org/wiki/LED">LEDs</a> e mais alguns componentes, ainda sem uma idéia mas com a certeza que seria útil.</p>
<p>O pessoal do <a href="http://www.pythonbrasil.com.br/moin.cgi/GrupySP">GruPy-SP</a> devidamente uniformizado formou um time e aos poucos várias pessoas foram se juntando ao time. Éramos um time enorme, com 11 pessoas. Tivemos várias idéias, como pode ser visto no brainstorm abaixo:</p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://farm4.static.flickr.com/3140/3014775172_5fe3f74c34_d.jpg"><img src="http://farm4.static.flickr.com/3140/3014775172_5fe3f74c34_d.jpg" alt="Brainstorm do projeto" width="500" height="375" /></a><p class="wp-caption-text">Brainstorm do projeto</p></div>
<p>O projeto era um eventômetro: um medidor de quanto burburinho um evento está gerando no Twitter e Flicker. Várias idéias foram dadas no brainstorm: um algoritmo de <a href="http://en.wikipedia.org/wiki/Cluster_analysis">clustering</a> para posts no <a href="http://www.twitter.com/">Twitter</a> e <a href="http://www.flickr.com/">Flickr</a>, usar o <a href="http://en.wikipedia.org/wiki/Quartz_Composer">Quartz Composer</a> e o <a href="http://cocos2d.org/">Cocos2D</a> para gerar uns efeitos legais, <a href="http://mobile.yahoo.com/developers/roadmap">Yahoo! Blueprint</a> para fazer uma aplicação para celular, eletrônica para sair do comum e mais um monte de outras coisas.</p>
<p>Eu fiquei com o hardware do nosso hack, junto com o <a href="http://rubz.org/">Luiz Vitor Martinez Cardoso</a>. Depois que terminamos o hardware eu fui para o script que baixava as informações do Twitter e Flickr.</p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://farm4.static.flickr.com/3159/3013937173_5c37a8d40d_d.jpg"><img src="http://farm4.static.flickr.com/3159/3013937173_5c37a8d40d_d.jpg" alt="Eu mostrando a protoboard" width="500" height="375" /></a><p class="wp-caption-text">Eu mostrando a protoboard</p></div>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://farm4.static.flickr.com/3145/3016354018_d286815241_d.jpg"><img src="http://farm4.static.flickr.com/3145/3016354018_d286815241_d.jpg" alt="Hardware do projeto" width="500" height="375" /></a><p class="wp-caption-text">Hardware do projeto</p></div>
<p>A maluquice acima é um <a href="http://en.wikipedia.org/wiki/Arduino">Arduino</a> controlando os LEDs e o <a href="http://en.wikipedia.org/wiki/Buzzer">buzzer</a> na protoboard. Os LEDs formam a palavra Yahoo! e piscam com uma frequência determinada pela quantidade de posts sobre o evento no Flickr na última hora. A quantidade de letras acesas do Yahoo! depende da quantidade de posts sobre o evento no Twitter na última hora. O buzzer tocava uma musiquinha cuja velocidade era a mesma com que os leds piscavam. Tudo era controlado pelo Arduino, uma plataforma aberta de hardware muito fácil de começar a fuçar, que recebia os dados do computador pela USB.</p>
<p>Usar os LEDs chamou muita atenção no evento, o tempo todo tinhamos jornalistas e outros participantes curiosos em saber o que era aquilo tão diferente.</p>
<p>Também tinhamos uma aplicação feita com Cocos2D que mostrava os últimos posts no Twitter e Flickr.</p>
<p>No final, não ganhamos os prêmios originalmente propostos, mas ganhamos outro prêmio. E a razão é bem simples: nosso projeto era bastante inútil, usava só uma API do Yahoo! (a do Flickr) e tinha um time muito maior que os outros. Mas ele era muito legal e diferente, então eles criaram mais 4 categorias e aí sim ganhamos um prêmio. A categoria foi chamada &#8220;What the hack was that?&#8221;, que reflete bem a surpresa com o nosso hack.</p>
<p>Concluindo, foi um fim de semana muito divertido, fiquei feliz com o nosso hack, com as pessoas que conheci, com os hacks legais apresentados e claro, com o prêmio.</p>
<div id="attachment_116" class="wp-caption aligncenter" style="width: 235px"><a href="http://lameiro.files.wordpress.com/2008/11/imag01032.jpg"><img class="size-medium wp-image-116" title="imag01032" src="http://lameiro.files.wordpress.com/2008/11/imag01032.jpg?w=225&#038;h=300" alt="Lameiro feliz com o prêmio" width="225" height="300" /></a><p class="wp-caption-text">Lameiro feliz com o prêmio</p></div>
Posted in hack, Python Tagged: arduino, brhackday, brhackday08, Python, yahoo <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lameiro.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lameiro.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lameiro.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lameiro.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lameiro.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lameiro.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lameiro.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lameiro.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lameiro.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lameiro.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=100&subd=lameiro&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lameiro.wordpress.com/2008/11/11/yahoo-open-hack-day-brazil-2008/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b91d903f166dd804e17338a06f32bbe7?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">lameiro</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3140/3014775172_5fe3f74c34_d.jpg" medium="image">
			<media:title type="html">Brainstorm do projeto</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3159/3013937173_5c37a8d40d_d.jpg" medium="image">
			<media:title type="html">Eu mostrando a protoboard</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3145/3016354018_d286815241_d.jpg" medium="image">
			<media:title type="html">Hardware do projeto</media:title>
		</media:content>

		<media:content url="http://lameiro.files.wordpress.com/2008/11/imag01032.jpg?w=225" medium="image">
			<media:title type="html">imag01032</media:title>
		</media:content>
	<feedburner:origLink>http://lameiro.wordpress.com/2008/11/11/yahoo-open-hack-day-brazil-2008/</feedburner:origLink></item>
		<item>
		<title>“import antigravity” vai funcionar no Python 3</title>
		<link>http://feedproxy.google.com/~r/BlogDoLameiro/~3/yzOg3W38ASo/</link>
		<comments>http://lameiro.wordpress.com/2008/10/22/import-antigravity-vai-funcionar-no-python-3/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 17:30:30 +0000</pubDate>
		<dc:creator>Leandro Lameiro</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[xkcd]]></category>

		<guid isPermaLink="false">http://lameiro.wordpress.com/?p=95</guid>
		<description><![CDATA[O Python 3 ganhou um novo easter egg: import antigravity
O novo easter egg (commitado semana passada) é uma referência a uma tirinha do famoso XKCD, em que o personagem consegue voar apenas digitando &#8220;import antigravity&#8221;, se remetendo à facilidade de uso da linguagem. O novo módulo quando importado fará com que um browser seja aberto [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=95&subd=lameiro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>O Python 3 ganhou um novo easter egg: <code>import antigravity</code></p>
<p>O novo easter egg (<a href="http://svn.python.org/view/python/trunk/Lib/antigravity.py?rev=66902&amp;view=markup">commitado semana passada</a>) é uma referência a <a href="http://xkcd.com/353/">uma tirinha do famoso XKCD</a>, em que o personagem consegue voar apenas digitando &#8220;import antigravity&#8221;, se remetendo à facilidade de uso da linguagem. O novo módulo quando importado fará com que um browser seja aberto e a tirinha carregada da web.</p>
<p>O easter egg se junta aos já famosos <code>from __future__ import braces</code> e <code>import this</code>.</p>
Posted in Python Tagged: Python, xkcd <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lameiro.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lameiro.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lameiro.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lameiro.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lameiro.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lameiro.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lameiro.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lameiro.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lameiro.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lameiro.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=95&subd=lameiro&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lameiro.wordpress.com/2008/10/22/import-antigravity-vai-funcionar-no-python-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b91d903f166dd804e17338a06f32bbe7?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">lameiro</media:title>
		</media:content>
	<feedburner:origLink>http://lameiro.wordpress.com/2008/10/22/import-antigravity-vai-funcionar-no-python-3/</feedburner:origLink></item>
		<item>
		<title>Gerando apresentações beamer for dummies</title>
		<link>http://feedproxy.google.com/~r/BlogDoLameiro/~3/aQW7OTnTn0s/</link>
		<comments>http://lameiro.wordpress.com/2008/10/16/gerando-apresentacoes-beamer-for-dummies/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 02:09:28 +0000</pubDate>
		<dc:creator>Leandro Lameiro</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[beamer]]></category>
		<category><![CDATA[latex]]></category>

		<guid isPermaLink="false">http://lameiro.wordpress.com/?p=89</guid>
		<description><![CDATA[O beamer gera apresentações muito legais, não há como duvidar. Se você ainda não o conhece, gaste um pouquinho do seu tempo e você fará apresentações muito mais bonitas e estruturadas do que as que você está acostumado a fazer no PowerPoint, OpenOffice ou Keynote.
Mas ele tem um problema: o LaTeX. Eu até gosto do [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=89&subd=lameiro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>O <a href="http://latex-beamer.sourceforge.net/">beamer</a> gera apresentações muito legais, não há como duvidar. Se você ainda não o conhece, gaste um pouquinho do seu tempo e você fará apresentações muito mais bonitas e estruturadas do que as que você está acostumado a fazer no PowerPoint, OpenOffice ou Keynote.</p>
<p>Mas ele tem um problema: o <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a>. Eu até gosto do LaTeX e concordo que ele gera documentos com formatação bonita e consistente, já escrevi alguns documentos grandes com ele, mas pra fazer qualquer coisa eu preciso lembrar um markup muito chato e comandos mal-documentados.</p>
<p>Hoje eu descobri uma ferramentinha que resolve boa parte do problema: <a href="http://code.google.com/p/yml2tex/">yml2tex</a>. É um programa muito simples que converte um arquivo texto em <a href="http://en.wikipedia.org/wiki/YAML">notação YAML</a> para um arquivo TeX, quase pronto para ser &#8220;compilado&#8221; pelo pdflatex (o quase é porque a versão atual deixa o nome do autor hardcoded no &#8220;template&#8221; então você vai precisar editar).</p>
<p>Claro que com um YAML não dá pra aproveitar nem metade do poder do beamer, mas já fica bom. Ele faz 3 coisas e só isso: Gera o índice da apresentação, slides com &#8220;bullets&#8221; seguindo a hierarquia do YAML, inclui fotos e código-fonte (lindamente colorizado pelo <a href="http://pypi.python.org/pypi/Pygments">pygments</a>). Isso é suficiente para muitos casos. Para quem precisar personalizar mais alguma coisa, pode abrir o arquivo TeX e mandar bala.</p>
<p>Você pode ver um <a href="http://yml2tex.googlecode.com/files/release_idio.pdf">exemplo de apresentação gerada</a> de um <a href="http://yml2tex.googlecode.com/files/release_idio_source.zip">arquivo YAML</a>. O <a href="http://arthurkoziel.com/2008/06/23/latex-beamer-presentations-from-yaml-files/">blog do autor</a> tem mais detalhes de uso.</p>
<div class="wp-caption aligncenter" style="width: 510px"><img src="http://media.arthurkoziel.com/img/yml2tex_highlight_preview.png" alt="Exemplo de slide gerado pelo yml2tex" width="500" height="344" /><p class="wp-caption-text">Exemplo de slide gerado pelo yml2tex</p></div>
Posted in Python Tagged: beamer, latex, Python <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lameiro.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lameiro.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lameiro.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lameiro.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lameiro.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lameiro.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lameiro.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lameiro.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lameiro.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lameiro.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=89&subd=lameiro&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lameiro.wordpress.com/2008/10/16/gerando-apresentacoes-beamer-for-dummies/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b91d903f166dd804e17338a06f32bbe7?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">lameiro</media:title>
		</media:content>

		<media:content url="http://media.arthurkoziel.com/img/yml2tex_highlight_preview.png" medium="image">
			<media:title type="html">Exemplo de slide gerado pelo yml2tex</media:title>
		</media:content>
	<feedburner:origLink>http://lameiro.wordpress.com/2008/10/16/gerando-apresentacoes-beamer-for-dummies/</feedburner:origLink></item>
		<item>
		<title>Os podcasts que eu ouço</title>
		<link>http://feedproxy.google.com/~r/BlogDoLameiro/~3/DeK5J6C5CPw/</link>
		<comments>http://lameiro.wordpress.com/2008/10/09/os-podcasts-que-eu-ouco/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 09:25:43 +0000</pubDate>
		<dc:creator>Leandro Lameiro</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[podcast]]></category>

		<guid isPermaLink="false">http://lameiro.wordpress.com/?p=74</guid>
		<description><![CDATA[Quando o Bruce Eckel veio pro Brasil para a PyConBrasil 2008 e para o workshop de design patterns, ele perguntou quem escutava podcasts regularmente e bem menos gente do que eu esperava levantou a mão. Então ele recomendou alguns podcasts e enfatizou que ouvir podcasts era quase como ir a conferências, mas ainda mais prático [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=74&subd=lameiro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Quando o <a href="http://en.wikipedia.org/wiki/Bruce_Eckel">Bruce Eckel</a> veio pro Brasil para a <a href="http://pyconbrasil.com.br/">PyConBrasil 2008</a> e para o workshop de design patterns, ele perguntou quem escutava podcasts regularmente e bem menos gente do que eu esperava levantou a mão. Então ele recomendou <a href="http://www.javaposse.com/">alguns</a> <a href="http://www.se-radio.net/">podcasts</a> e enfatizou que ouvir podcasts era quase como ir a conferências, mas ainda mais prático você ouve quando puder. O <a href="http://humberto.digi.com.br/">Humberto Diógenes</a> então fez <a href="http://humberto.digi.com.br/blog/2008/10/09/escute-podcasts/">um post legal indicando os podcasts que ele ouve</a> e eu decidi fazer o mesmo. Os podcasts abaixo não estão em ordem de preferência:</p>
<p><a href="http://twit.tv/twit">This Week in Tech</a> &#8211; Muito bom. Conta com a presença regular do polêmico <a href="http://en.wikipedia.org/wiki/John_C._Dvorak">John C. Dvorak</a>. Normalmente são longos (mais de 1 hora). As edições que eu mais gostei foram sobre o <a href="http://twit.tv/144">The Internet Archive</a>, o <a href="http://twit.tv/140">lançamento do Microsoft Live Mesh</a> e <a href="http://twit.tv/138">sobre como a internet, blogs e twitter estão influenciando o jornalismo</a>. Periodicidade: Semanal.</p>
<div class="wp-caption aligncenter" style="width: 210px"><a href="http://twit.tv/twit"><img title="This Week in Tech" src="http://twit.tv/files/imagecache/coverart/coverart/podcast_1_3.jpg" alt="Capa TWiT" width="200" height="200" /></a><p class="wp-caption-text">This Week in Tech</p></div>
<p><a href="http://twit.tv/FLOSS">FLOSS Weekly</a> &#8211; Mais um podcast com o <a href="http://en.wikipedia.org/wiki/Leo_Laporte">Leo Laporte</a>. Neste podcast ele e <a href="http://en.wikipedia.org/wiki/Randal_L._Schwartz">Randal Schwartz</a> (sim, o cara do <a href="http://en.wikipedia.org/wiki/Perl">Perl</a> e agora <a href="http://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a>) entrevistam personalidades do software livre, normalmente core developers de projetos grandes como o Drupal, Python, Audacity, mas também pessoas não tão ligadas a projetos como o <a href="http://en.wikipedia.org/wiki/Maddog">Maddog</a>, <a href="http://en.wikipedia.org/wiki/Larry_Augustin">Larry Augustin</a> e <a href="http://en.wikipedia.org/wiki/Ward_Cunningham">Ward Cunningham</a>. Os episódios que eu recomendo são: <a href="http://twit.tv/floss27">Ward Cunningham</a> (muito bom!), <a href="http://twit.tv/floss6">Larry Augustin</a>, <a href="http://twit.tv/floss17">Maddog</a>, <a href="http://twit.tv/floww14">Jeremy Allison</a>. Periodicidade: Deveria ser semanal, mas de vez em quando demora mais, de vez em quando menos. Nos últimos meses eles tem conseguido manter a regularidade.</p>
<div class="wp-caption aligncenter" style="width: 210px"><a href="http://www.twit.tv/floss"><img src="http://www.twit.tv/files/imagecache/coverart/coverart/podcast_5_3.jpg" alt="FLOSS Weekly" width="200" height="200" /></a><p class="wp-caption-text">FLOSS Weekly</p></div>
<p><a href="http://www.se-radio.net/">Software Engineering Radio</a> &#8211; Podcast já tradicional (mais de 3 anos e 100 episódios) que sempre conta com entrevistas interessantes normalmente com acadêmicos de várias áreas ligadas a software, por exemplo, linguagens funcionais, arquitetura de software, métodos ágeis, SOA, sistemas embarcados, sistemas distribuídos etc. Meus episódios preferidos: <a href="http://www.se-radio.net/podcast/2007-06/episode-59-static-code-analysis">Static Code Analysis</a>, <a href="http://www.se-radio.net/podcast/2007-09/episode-68-dan-grossman-garbage-collection-and-transactional-memory">Garbage Collection and Transactional Memory</a>, <a href="http://www.se-radio.net/podcast/2008-05/episode-97-interview-anders-hejlsberg">Anders Hejlsberg</a> (o cara do C#, Delphi e Turbo Pascal), <a href="http://www.se-radio.net/podcast/2008-01/episode-84-dick-gabriel-lisp">LISP</a>, <a href="http://www.se-radio.net/podcast/2007-12/episode-79-small-memory-software-weir-and-noble">Small Memory Software</a>. Periodicidade: De dez em dez dias.</p>
<div class="wp-caption aligncenter" style="width: 477px"><a href="http://www.se-radio.net/"><img src="http://www.se-radio.net/files/garland_logo.gif" alt="Software Engineering Radio" width="467" height="80" /></a><p class="wp-caption-text">Software Engineering Radio</p></div>
<p><a href="http://thisweekindjango.com/">This Week in Django</a> &#8211; Este podcast comenta os últimos desenvolvimento do <a href="http://en.wikipedia.org/wiki/Django_(web_framework)">Django</a> no SVN, aplicações interessantes feitas com o Django e entrevista pessoas ligadas a comunidade do framework. Periodicidade: Semanal.</p>
<div class="wp-caption aligncenter" style="width: 160px"><a href="http://thisweekindjango.com/"><img src="http://blog.michaeltrier.com/assets/2007/12/14/twid_small.png" alt="This Week in Django" width="150" height="150" /></a><p class="wp-caption-text">This Week in Django</p></div>
Posted in Python, Web Tagged: django, podcast, Python <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lameiro.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lameiro.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lameiro.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lameiro.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lameiro.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lameiro.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lameiro.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lameiro.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lameiro.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lameiro.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=74&subd=lameiro&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lameiro.wordpress.com/2008/10/09/os-podcasts-que-eu-ouco/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b91d903f166dd804e17338a06f32bbe7?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">lameiro</media:title>
		</media:content>

		<media:content url="http://twit.tv/files/imagecache/coverart/coverart/podcast_1_3.jpg" medium="image">
			<media:title type="html">This Week in Tech</media:title>
		</media:content>

		<media:content url="http://www.twit.tv/files/imagecache/coverart/coverart/podcast_5_3.jpg" medium="image">
			<media:title type="html">FLOSS Weekly</media:title>
		</media:content>

		<media:content url="http://www.se-radio.net/files/garland_logo.gif" medium="image">
			<media:title type="html">Software Engineering Radio</media:title>
		</media:content>

		<media:content url="http://blog.michaeltrier.com/assets/2007/12/14/twid_small.png" medium="image">
			<media:title type="html">This Week in Django</media:title>
		</media:content>
	<feedburner:origLink>http://lameiro.wordpress.com/2008/10/09/os-podcasts-que-eu-ouco/</feedburner:origLink></item>
		<item>
		<title>Saiu o Python 2.6!</title>
		<link>http://feedproxy.google.com/~r/BlogDoLameiro/~3/HgoMNqETIYk/</link>
		<comments>http://lameiro.wordpress.com/2008/10/02/saiu-o-python-26/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 06:21:11 +0000</pubDate>
		<dc:creator>Leandro Lameiro</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://lameiro.wordpress.com/?p=63</guid>
		<description><![CDATA[Hoje saiu a primeira versão estável do Python 2.6. O principal objetivo deste release é começar a trilhar o caminho para o Python 3.0, que corrigirá problemas de design das versões anteriores.
Algumas destas correções tornam o código escrito para versões anteriores incompatíveis com o novo Python 3.0. A versão 2.6 é uma versão intermediária que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=63&subd=lameiro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hoje saiu a <a href="http://www.python.org/download/releases/2.6/">primeira versão estável do Python 2.6</a>. O principal objetivo deste release é começar a trilhar o caminho para o <a href="http://www.python.org/download/releases/3.0/">Python 3.0</a>, que corrigirá problemas de design das versões anteriores.</p>
<p>Algumas destas correções tornam o código escrito para versões anteriores incompatíveis com o novo Python 3.0. A versão 2.6 é uma versão intermediária que contém tanto funcionalidades das versões anteriores do Python quanto novidades do Python 3.0. Com esta versão intermediária os desenvolvedores podem começar a verificar a compatibilidade de suas aplicações com a futura versão 3.0 do Python e já começar as adaptações, garantindo uma transição suave entre as versões.</p>
<p>A versão 2.6 é compatível com as versões anteriores, mas auxiliará na migração <a href="http://docs.python.org/dev/whatsnew/2.6.html#python-3-0">emitindo avisos</a> caso haja construções incompatíveis com a versão 3.0. Além desta versão intermediária, a ferramenta <a href="http://svn.python.org/view/sandbox/trunk/2to3/">2to3</a> é capaz de realizar automaticamente muitas conversões (mas não todas).</p>
<p>As novidades da 3.0 já incorporadas na 2.6 são muitas: novos módulos para <a href="http://docs.python.org/dev/library/multiprocessing.html#module-multiprocessing">processamento paralelo</a> e <a href="http://docs.python.org/dev/library/json.html">codificação/decodificação JSON</a>, <a href="http://docs.python.org/dev/library/fractions.html">tratamento de frações</a>, correção de mais de 600 bugs, <a href="http://docs.python.org/dev/whatsnew/2.6.html#optimizations">otimizações</a>, <a href="http://docs.python.org/dev/whatsnew/2.6.html#pep-370-per-user-site-packages-directory">um diretório de pacotes por usuário</a> (o que facilitará a instalação em ambientes compartilhados), o novo <a href="http://docs.python.org/dev/whatsnew/2.6.html#pep-3101-advanced-string-formatting">método str.format</a> em substituição ao operador % das strings, <a href="http://docs.python.org/dev/whatsnew/2.6.html#pep-3129-class-decorators">decorators para classes</a>, melhorias na documentação (que ficou muito mais bonita usando o <a href="http://sphinx.pocoo.org/">Sphinx</a>). Enfim, são muitas novidades interessantes e eu não falei nem da metade!</p>
<p>Agora você pode <a href="http://www.python.org/download/releases/2.6/">fazer o download</a>, <a href="http://docs.python.org/dev/whatsnew/2.6.html">ler o changelog</a> e ver a <a href="http://www.youtube.com/watch?v=Zfq-gX0l_r8">apresentação do Guido</a>. Boas migrações!</p>
Posted in Python  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lameiro.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lameiro.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lameiro.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lameiro.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lameiro.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lameiro.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lameiro.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lameiro.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lameiro.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lameiro.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=63&subd=lameiro&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lameiro.wordpress.com/2008/10/02/saiu-o-python-26/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b91d903f166dd804e17338a06f32bbe7?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">lameiro</media:title>
		</media:content>
	<feedburner:origLink>http://lameiro.wordpress.com/2008/10/02/saiu-o-python-26/</feedburner:origLink></item>
		<item>
		<title>PyConBrasil 2008</title>
		<link>http://feedproxy.google.com/~r/BlogDoLameiro/~3/JSdpyAUNWX8/</link>
		<comments>http://lameiro.wordpress.com/2008/09/26/pyconbrasil2008/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 23:08:23 +0000</pubDate>
		<dc:creator>Leandro Lameiro</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[pyconbrasil2008]]></category>

		<guid isPermaLink="false">http://lameiro.wordpress.com/?p=58</guid>
		<description><![CDATA[Para os que perderam a PyConBrasil 2008, segue o link da minha lightning talk sobre extensões para o Elixir/SQLAlchemy. Várias outras palestras legais estão no SlideShare com a tag pyconbrasil2008. Confiram!
Destaque especial para a palestra do Daniel Baggio, sobre reconhecimento de imagens com demonstrações ao vivo, na minha opinião a melhor do evento.
Posted in Eventos, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=58&subd=lameiro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Para os que perderam a <a href="http://pyconbrasil.com.br/">PyConBrasil 2008</a>, segue o link da <a href="http://www.slideshare.net/lameiro/leandro-lameiro-extenses-para-o-elixir-apresentao-na-pyconbrasil-2008-presentation/">minha lightning talk</a> sobre extensões para o <a href="http://elixir.ematia.de/trac/wiki">Elixir</a>/<a href="http://www.sqlalchemy.org/">SQLAlchemy</a>. Várias outras palestras legais estão no SlideShare com a <a href="http://www.slideshare.net/tag/pyconbrasil2008">tag pyconbrasil2008</a>. Confiram!</p>
<p>Destaque especial para a <a href="http://www.slideshare.net/dannyxyz22/ehci-interao-com-computador-atravs-de-webcam-presentation">palestra</a> do <a href="http://danielbaggio.blogspot.com/">Daniel Baggio</a>, sobre reconhecimento de imagens com demonstrações ao vivo, na minha opinião a melhor do evento.</p>
Posted in Eventos, Python Tagged: pyconbrasil2008 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lameiro.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lameiro.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lameiro.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lameiro.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lameiro.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lameiro.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lameiro.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lameiro.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lameiro.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lameiro.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=58&subd=lameiro&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lameiro.wordpress.com/2008/09/26/pyconbrasil2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b91d903f166dd804e17338a06f32bbe7?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">lameiro</media:title>
		</media:content>
	<feedburner:origLink>http://lameiro.wordpress.com/2008/09/26/pyconbrasil2008/</feedburner:origLink></item>
		<item>
		<title>Uma crítica construtiva às traduções do Ubuntu</title>
		<link>http://feedproxy.google.com/~r/BlogDoLameiro/~3/L1DPIW0Rya0/</link>
		<comments>http://lameiro.wordpress.com/2008/04/28/uma-critica-construtiva-as-traducoes-do-ubuntu/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 07:46:46 +0000</pubDate>
		<dc:creator>Leandro Lameiro</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://lameiro.wordpress.com/?p=50</guid>
		<description><![CDATA[A notícia quente da semana foi o lançamento do novo Ubuntu versão 8.04, que eu fiz questão de instalar.
Tudo funcionando bem: reconhecimento de hardware, particionamento, redimensionamento de NTFS e tudo mais. Era de se esperar, funcionava na versão anterior, não havia motivo para deixar de funcionar agora.
Mas com as traduções por alguma razão é diferente. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=50&subd=lameiro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A notícia quente da semana foi o lançamento do novo Ubuntu versão 8.04, que eu fiz questão de instalar.</p>
<p>Tudo funcionando bem: reconhecimento de hardware, particionamento, redimensionamento de NTFS e tudo mais. Era de se esperar, funcionava na versão anterior, não havia motivo para deixar de funcionar agora.</p>
<p>Mas com as traduções por alguma razão é diferente. O painel superior do GNOME conta com novos erros de tradução onde estava tudo certo nas versões anteriores. Alguns pequenos erros de tradução passarem é tolerável mas errar no painel principal do GNOME?! É simplesmente o principal programa do Ubuntu!</p>
<p>Em Aplicações-&gt;Acessórios temos o item &#8220;Consola&#8221; (provavelmente vindo do pt-PT), que antes era corretamente chamado &#8220;Terminal&#8221;.</p>
<p>Em Sistema-&gt;Preferências temos o item &#8220;Rato&#8221; (certamente vindo do pt-PT). A palavra mais usada no pt-BR para &#8220;Mouse&#8221; é &#8220;Mouse&#8221; mesmo.</p>
<p>Em Sistema-&gt;Administração temos o item &#8220;Testando hardware&#8221;, provavelmente vindo do inglês &#8220;Hardware testing&#8221;, que deveria ser traduzido como &#8220;Teste de hardware&#8221; ou &#8220;Testar hardware&#8221;.</p>
<p>E porque eu não vou lá e traduzo no Rosetta ao invés de reclamar? <a href="https://bugs.launchpad.net/rosetta/+bug/44">O Rosetta não conta com uma ferramenta de busca</a>, que é requisitada desde 2005. Eu não vou achar essas strings na mão no meio de mais de outras 600 para o painel do GNOME.</p>
<p>Fiquei bastante feliz com a <a href="http://br-linux.org/2008/brasileiro-e-destaque-no-indice-de-contribuicoes-a-traducao-do-ubuntu/">notícia que o brasileiro André Gondim é destaque nas traduções do Ubuntu</a>, mas fica a crítica construtiva ao atual sistema de tradução: Não existe um processo de revisão da tradução, principalmente para os programas mais usados? Como é que uma tradução adequada foi perdida?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lameiro.wordpress.com/50/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lameiro.wordpress.com/50/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lameiro.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lameiro.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lameiro.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lameiro.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lameiro.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lameiro.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lameiro.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lameiro.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lameiro.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lameiro.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=50&subd=lameiro&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lameiro.wordpress.com/2008/04/28/uma-critica-construtiva-as-traducoes-do-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b91d903f166dd804e17338a06f32bbe7?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">lameiro</media:title>
		</media:content>
	<feedburner:origLink>http://lameiro.wordpress.com/2008/04/28/uma-critica-construtiva-as-traducoes-do-ubuntu/</feedburner:origLink></item>
		<item>
		<title>Slashdot e o sensacionalismo</title>
		<link>http://feedproxy.google.com/~r/BlogDoLameiro/~3/L_valFBFkeE/</link>
		<comments>http://lameiro.wordpress.com/2008/02/02/slashdot-e-o-sensacionalismo/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 03:26:15 +0000</pubDate>
		<dc:creator>Leandro Lameiro</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[slashdot]]></category>

		<guid isPermaLink="false">http://lameiro.wordpress.com/?p=49</guid>
		<description><![CDATA[Estou cansado do sensacionalismo da Slashdot.
A última foi com relação ao Python 3.0, reproduzido na íntegra abaixo:
&#8220;Organizations using Python will be affected in a major way by changes in store for the language over the course of the next twelve months, Linux.conf.au attendees were told this morning. The Python development community is working towards a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=49&subd=lameiro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Estou cansado do sensacionalismo da <a href="http://slashdot.org/">Slashdot</a>.</p>
<p><a href="http://it.slashdot.org/it/08/02/01/1624247.shtml">A última</a> foi com relação ao Python 3.0, reproduzido na íntegra abaixo:</p>
<blockquote><p><i>&#8220;Organizations using Python will be affected in a major way by changes in store for the language over the course of the next twelve months, Linux.conf.au attendees were told this morning. The Python development community is working towards a new, backwards-<i>incompatible</i> version of the language, version 3.0, which is slated for release in early 2009. Anthony Baxter, the release manager for Python and a senior software engineer at Google Australia, said &#8220;We are going to break pretty much all the code. Pretty much <a href="http://www.itnews.com.au/News/69326,breaking-the-python-code.aspx">every program will need changes</a>.&#8221; Baxter also added another tidbit for attendees, saying that Python accounts for around 15 percent of Google&#8217;s code base.&#8221;</i></p></blockquote>
<p>A notícia não é falsa (apesar de ser bem velha), o Python 3.0 vai realmente quebrar muito código. Mas ela não diz que praticamente todas as mudanças necessárias podem ser feitas por <a href="http://svn.python.org/view/sandbox/trunk/2to3/"><b>um script</b></a>. Também não diz que o Python 2.6 vai continuar a ser <b>desenvolvido e mantido</b> por mais alguns anos, nem que talvez exista um 2.7. Também não diz que o Python 2.6 além de rodar código atual, avisará de quebras de compatibilidade com a versão 3.0. Se não bastasse todo o esforço feito, a instalação paralela de Python 2.6 e 3.0 será possível, o que garante que as aplicações continuarão rodando.</p>
<p>Fora que isso é pratica completamente normal. Perl 6, VB.NET, C# 2.0, PHP5, não faltam exemplos de linguagens que quebraram compatibilidade com seus antecessores em algum momento.</p>
<p>Porque tanto exagero? Será que é porque traz visitantes e receita com as propagandas? Ou será apenas incompetência editorial?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lameiro.wordpress.com/49/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lameiro.wordpress.com/49/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lameiro.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lameiro.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lameiro.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lameiro.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lameiro.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lameiro.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lameiro.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lameiro.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lameiro.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lameiro.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=49&subd=lameiro&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lameiro.wordpress.com/2008/02/02/slashdot-e-o-sensacionalismo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b91d903f166dd804e17338a06f32bbe7?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">lameiro</media:title>
		</media:content>
	<feedburner:origLink>http://lameiro.wordpress.com/2008/02/02/slashdot-e-o-sensacionalismo/</feedburner:origLink></item>
		<item>
		<title>sqlalchemy-validations 0.1</title>
		<link>http://feedproxy.google.com/~r/BlogDoLameiro/~3/EjkS2B1gGds/</link>
		<comments>http://lameiro.wordpress.com/2008/01/26/48/#comments</comments>
		<pubDate>Sat, 26 Jan 2008 20:52:23 +0000</pubDate>
		<dc:creator>Leandro Lameiro</dc:creator>
				<category><![CDATA[Elixir]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[SQLAlchemy]]></category>

		<guid isPermaLink="false">http://lameiro.wordpress.com/2008/01/26/48/</guid>
		<description><![CDATA[sqlalchemy-validations 0.1 is out!
SQLAlchemy validations is an easy way to be sure that no inconsistent data will be saved to your database. It is a new extension for SQLAlchemy/Elixir that checks if an object is consistent according to a customizable set of rules just before being saved.
This is the first release. Opinions/criticisms/suggestions are appreciated and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=48&subd=lameiro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>sqlalchemy-validations 0.1 is out!</p>
<p>SQLAlchemy validations is an easy way to be sure that no inconsistent data will be saved to your database. It is a new extension for <a href="http://www.sqlalchemy.org">SQLAlchemy</a>/<a href="http://elixir.ematia.de">Elixir</a> that checks if an object is consistent according to a customizable set of rules just before being saved.</p>
<p>This is the first release. Opinions/criticisms/suggestions are appreciated and should be sent to lameiro at gmail.</p>
<div class="ArwC7c ckChnd">Project page: <a href="http://code.google.com/p/sqlalchemy-validations/" target="_blank">http://code.google.com/p/sqlalchemy-validations/</a><br />
Direct download: <a href="http://sqlalchemy-validations.googlecode.com/files/sqlalchemy-validations-0.1.tar.gz" target="_blank">http://sqlalchemy-validations.googlecode.com/files/sqlalchemy-validations-0.1.tar.gz</a></div>
<div class="ArwC7c ckChnd">
<p>&nbsp;</p>
</div>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lameiro.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lameiro.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lameiro.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lameiro.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lameiro.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lameiro.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lameiro.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lameiro.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lameiro.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lameiro.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lameiro.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lameiro.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lameiro.wordpress.com&blog=493420&post=48&subd=lameiro&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lameiro.wordpress.com/2008/01/26/48/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b91d903f166dd804e17338a06f32bbe7?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">lameiro</media:title>
		</media:content>
	<feedburner:origLink>http://lameiro.wordpress.com/2008/01/26/48/</feedburner:origLink></item>
	</channel>
</rss>
