<?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>pedro valente &#187; python</title>
	<atom:link href="http://www.pedrovalente.com/category/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pedrovalente.com</link>
	<description>anotações, idéias, projetos...</description>
	<lastBuildDate>Wed, 24 Mar 2010 22:13:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Desafio #2 &#8211; Senadores caloteiros</title>
		<link>http://www.pedrovalente.com/2009/03/20/desafio-2-senadores-caloteiros/</link>
		<comments>http://www.pedrovalente.com/2009/03/20/desafio-2-senadores-caloteiros/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 23:01:20 +0000</pubDate>
		<dc:creator>Pedro Valente</dc:creator>
				<category><![CDATA[Jornalismo]]></category>
		<category><![CDATA[dados públicos]]></category>
		<category><![CDATA[jornalista-programador]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.pedrovalente.com/?p=172</guid>
		<description><![CDATA[Depois do sucesso do &#8220;Desafio #1 &#8211; A lista negra&#8220;, e de algumas repercussões publicadas por aí,  damos continuidade à série com mais um passatempo para o fim de semana.
Novamente a idéia veio do Fabiano Angélico, da Transparência Brasil. Vamos lá:
1. Nossos ilustres senadores
Temos aqui uma lista de todos os senadores atuais e seus respectivos [...]]]></description>
			<content:encoded><![CDATA[<p>Depois do sucesso do &#8220;<a href="http://www.pedrovalente.com/2009/03/13/desafio-de-programacao-com-resultado-pratico/">Desafio #1 &#8211; A lista negra</a>&#8220;, e de <a href="http://www.deolhonacapital.com.br/2009/03/16/o-resultado-do-desafio/">algumas</a> <a href="http://algumasnotassoltas.wordpress.com/2009/03/17/empresas-punidas-doaram-a-41-politicos-em-2008/">repercussões</a> <a href="http://algumasnotassoltas.wordpress.com/2009/03/19/41-politicos-receberam-grana-de-empresas-da-%e2%80%9clista-suja%e2%80%9d-%e2%80%94-parte-2/">publicadas</a> <a href="http://portal.rpc.com.br/gazetadopovo/vidapublica/conteudo.phtml?tl=1&amp;id=869129&amp;tit=Campanha-de-Beto-Richa-recebeu-recursos-de-empresa-considerada-inidonea">por aí</a>,  damos continuidade à série com mais um passatempo para o fim de semana.</p>
<p>Novamente a idéia veio do Fabiano Angélico, da Transparência Brasil. Vamos lá:</p>
<p><strong>1. Nossos ilustres senadores</strong></p>
<p>Temos aqui uma <a href="http://www.pedrovalente.com/wp-content/uploads/2009/03/cpfsenadores.csv">lista de todos os senadores atuais e seus respectivos números de CPF</a>.</p>
<p style="padding-left: 30px;"><strong>Bônus 1</strong> &#8211; Falta encontrar o CPF do senador Marco Maciel. Alguém se habilita?</p>
<p style="padding-left: 30px;">
<p><strong>2. A lista de devedores para o INSS</strong></p>
<p>O Ministério da Previdência, como bom credor, mantém uma lista de todos os caloteiros, com CPF, CNPJ, nomes e valores.</p>
<p>É possível fazer uma consulta à essa lista por este formulário:</p>
<pre style="padding-left: 30px;"><a href="http://www1.previdencia.gov.br/pg_secundarias/paginas_perfis/perfil_comPrevidencia_09_04-A.asp">http://www1.previdencia.gov.br/pg_secundarias/paginas_perfis/perfil_comPrevidencia_09_04-A.asp</a></pre>
<p>Também conseguimos navegar pelos nomes de pessoas e empresas, por aqui:</p>
<pre style="padding-left: 30px;"><a href="http://www1.previdencia.gov.br/devedores/consdeved.asp">http://www1.previdencia.gov.br/devedores/consdeved.asp</a></pre>
<p>Brincando com a URL da consulta, consegui mostrar um <a href="http://www1.previdencia.gov.br/devedores/consdeved.asp?limiteinf=0&amp;limitesup=9999999999">ranking dos maiores devedores</a>:</p>
<ol>
<li>
<pre>VARIG SA VIACAO AEREA RIO GRANDENSE EM RECUP
2.512.002.963,38</pre>
</li>
<li>
<pre>VIACAO AEREA SAO PAULO SA
1.445.447.625,87</pre>
</li>
<li>
<pre>TRANSBRASIL SA LINHAS AEREAS
664.431.406,21</pre>
</li>
<li>
<pre>COMUNIDADE EVANGELICA LUTERANA SAO PAULO
434.195.266,02</pre>
</li>
<li>
<pre>ESTADO DO RIO DE JANEIRO
405.208.783,42</pre>
</li>
<li>
<pre><strong>GAZETA MERCANTIL S/A</strong> (Já fui vítima dessa aqui)
380.652.586,65</pre>
</li>
<li>
<pre>PIRES SERVICOS DE SEGURANCA E TRANSP.VALORES
339.118.179,37</pre>
</li>
<li>
<pre>EMPRESA BRASILEIRA DE CORREIOS E TELEGRAFOS
320.305.796,06</pre>
</li>
<li>
<pre>ENCOL S A ENGENHARIA COMERCIAL E INDUSTRIA
319.362.278,18</pre>
</li>
<li>
<pre>FUND. EDUCAC. DO DISTRITO FEDERAL - EM EXTINC
315.305.102,76</pre>
</li>
<li>
<pre>EST.SANTA CATARINA-SECRETARIA DA EDUCACAO E D
313.380.862,29</pre>
</li>
<li>
<pre>EBID - EDITORA PAGINAS AMARELAS LTDA
307.021.193,79</pre>
</li>
<li>
<pre>CAIXA ECONOMICA FEDERAL
301.684.374,00</pre>
</li>
<li>
<pre>INSTITUTO DE PREVIDENCIA DO ESTADO DO RIO GRA
300.026.754,78</pre>
</li>
<li>
<pre>TELESP - TELECOMUNICACOES DE SAO PAULO S/A
299.645.695,76</pre>
</li>
</ol>
<p>Voltando ao assunto, queremos juntar A+B.</p>
<p><strong>Objetivo</strong> &#8211; Cruzar a lista de senadores com a de devedores e descobrir:</p>
<p style="padding-left: 30px;">a) Se existem senadores caloteiros,<br />
b) Se existirem, quem são eles<br />
c) Quanto devem nossos ilustres representantes</p>
<p>Quem conseguir nos responder a, b e c completa o desafio.  Não custa lembrar que a única condição é  que você  libere todo o código e explique como fez, para que outras pessoas também consigam reproduzir o seu resultado e aprender com ele. De preferência, use <a href="http://github.com/">algum</a> <a href="http://gitorious.com/">repositório</a> <a href="http://code.google.com/hosting/">público</a> <a href="http://bitbucket.org/">de código</a>. Dúvidas: <a href="http://twitter.com/pedrovalente">@pedrovalente</a> e <a href="http://twitter.com/fangelico">@fangelico</a>.</p>
<p><strong>Objetivos secundários</strong></p>
<p><strong>Bônus 2</strong> &#8211; Será agraciado com nossa eterna gratidão o desenvolvedor que conseguir extrair a TODA a base de devedores do INSS, incluindo valores devidos (os detalhes que aparecem quando se clica no nome). Aceitamos CSV, dump de SQL, JSON ou qualquer formato razoavelmente reaproveitável. A base é atualizada a cada 3 meses, então devemos poder rodar a coleta novamente quando isso ocorrer. Se não tiver onde hospedar, mande para mim, no endereço pedro.valente no gmail.</p>
<p><strong>Bônus 3 </strong>- A medalha de honra por serviços prestados à sociedade vai para quem, com a base acima em mãos, criar uma API pública para consulta desses dados. Algo como um serviço rodando no Google App Engine ou em algum servidor caridoso.</p>
<p><strong>Bônus 4 </strong>- Encontrar os CPFs dos deputados federais e rodar o cruzamento do calote com eles.</p>
<p>Qualquer um pode participar. Até agora todo mundo usou Python, mas você pode usar a linguagem de programação de que mais gosta, sem problema.</p>
<p>Atualizarei o post com novidades. Usem os comentários para colaborar ou discutir e bom passatempo.</p>
<p><strong>Atualização de 13 de abril</strong></p>
<p>Como disse nos comentários, o Felipe Zorzo mandou uma solução para o desafio, na qual não encontrou-se nenhum senador devedor do INSS.</p>
<p>Aqui vai mais uma lista fornecida pelo Fabiano Angélico, com <a href="http://www.pedrovalente.com/wp-content/uploads/2009/03/cpfexcelencias1.xls">CPF de 2.224 parlamentares</a> (deputados federais, vereadores das capitais e deputados estaduais).  Alguém se habilita a passá-la pela checagem e ver quem sai limpo do outro lado?</p>
<p>Sugiro também uma implementação bem simples e reutilizável, algo assim:</p>
<pre style="padding-left: 30px;">&gt;&gt;&gt; import inss
# Caso não haja dívida:
&gt;&gt;&gt; inss.divida('999.999.999-99')
None

# E se houver dívida:
&gt;&gt;&gt; inss.divida('111.111.111-11')
[{'descricao':'Divida 1', 'valor': 5000000, 'data': 'xx-xx-xxxx'},
 {'descricao':'Divida 2', 'valor': 1000000, 'data': 'xx-xx-xxxx'}]</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrovalente.com/2009/03/20/desafio-2-senadores-caloteiros/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Por quê usar Python e Django</title>
		<link>http://www.pedrovalente.com/2008/07/24/por-que-usar-python-e-django/</link>
		<comments>http://www.pedrovalente.com/2008/07/24/por-que-usar-python-e-django/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 14:15:45 +0000</pubDate>
		<dc:creator>Pedro Valente</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[jornalista-programador]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.pedrovalente.com/?p=115</guid>
		<description><![CDATA[Essa pergunta tem passado pela minha cabeça com uma certa freqüência ultimamente. Resolvi enumerar abaixo algumas razões.
1. Porque, segundo a Wired, é cool:
Expired: ASP.NET, Tired: PHP, Wired: Django
2. Porque, segundo o Bruce Eckel, guru do Java, é legal.
&#8220;I think I&#8217;ve been using Python for close to 12 years now, and it&#8217;s been my favorite language [...]]]></description>
			<content:encoded><![CDATA[<p>Essa pergunta tem passado pela minha cabeça com uma certa freqüência ultimamente. Resolvi enumerar abaixo algumas razões.</p>
<p>1. Porque, <a href="http://www.wired.com/culture/culturereviews/magazine/16-04/st_wte">segundo a Wired</a>, é cool:</p>
<blockquote><p>Expired: ASP.NET, Tired: PHP, Wired: Django</p></blockquote>
<p>2. Porque, <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=227496">segundo o Bruce Eckel</a>, guru do Java, é legal.</p>
<blockquote><p>&#8220;I think I&#8217;ve been using Python for close to 12 years now, and it&#8217;s been my favorite language for much of that time&#8230;&#8221; &#8220;I think the combination of choices offered by Django + TurboGears covers people&#8217;s needs better than a single monolithic approach, and Django appears to be the right solution for a large portion of the applications out there.&#8221;</p></blockquote>
<p>3. Porque, <a href="http://xkcd.com/353/">segundo o xkcd</a>, é sensacional:<br />
<img class="aligncenter size-full wp-image-116" title="xkcd-python" src="http://www.pedrovalente.com/wp-content/uploads/2008/07/python.png" alt="" /><br />
4. Porque, <a href="http://mattwaite.com/">segundo o Matt Waite</a>, jornalista que aprendeu a programar, é fácil:</p>
<blockquote><p>&#8220;But what makes Django an even greater work of art is that knuckle-dragging, mouth-breathing, not-very-good journalism graduates from small midwestern states (ahem) can learn just enough to <a href="http://www.politifact.com/truth-o-meter/">build something they can be proud of</a>.&#8221;</p></blockquote>
<p>5. Porque Guido van Rossum, criador do Python, <a href="http://www.djangoproject.com/weblog/2006/aug/07/guidointerview/">gosta do Django</a>:</p>
<blockquote><p>&#8220;My personal favorite &#8212; and I expect that that will remain a personal favorite for a long time &#8212; is something named Django. &#8230; I highly recommend it.&#8221;</p></blockquote>
<p>6. Porque o Google (onde o Guido trabalha) resolveu apostar pesado em Python+Django com o <a href="http://appengine.google.com">AppEngine</a>:</p>
<blockquote><p>&#8220;With Google&#8217;s employment of Python and Django as a first class citizen in its <span class="link-external">AppEngine</span> infrastructure [...] this development has the potential of trusting Python into the limelight.&#8221;[<a href="http://www.manageability.org/blog/python-wellspring-of-innovation">fonte</a>]</p></blockquote>
<p>7. Porque Python é uma das linguagens cuja adoção tem crescido constantemente pelo mundo:</p>
<blockquote><p>Ocupa a 7ª colocação no <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">ranking</a> do índice Tiobe de julho de 2008, com quase 5% do total de linhas de código escritas.</p></blockquote>
<p>8. Porque Django é um framework <a href="http://code.djangoproject.com/wiki/VersionOneRoadmap">cada vez mais estável e confiável</a>:</p>
<blockquote><p>&#8220;Django 1.0 will be released in <a class="reference internal" href="http://code.djangoproject.com/wiki/VersionOneRoadmap#dates">early September</a>.&#8221; (dia 2 para ser mais exato)</p></blockquote>
<p>9. Porque segundo o <a href="http://www.holovaty.com">Adrian Holovaty</a>, o Django tem <a href="http://42topics.com/blog/2008/06/an-interview-with-adrian-holovaty/">tudo a ver com jornalismo</a>:</p>
<blockquote><p>&#8220;Because journalism and computer science don’t normally go together, I’ve had some success in this silly little niche of employing Web development in news organizations — &#8216;journalism via computer programming.&#8217;&#8221;</p></blockquote>
<p>10. E finalmente, porque Django<a href="http://groups.google.com/group/dados-publicos/browse_thread/thread/b5b7555463191229"> ajuda a resolver as coisas rápido</a>:</p>
<blockquote><p>&#8220;<a href="http://media.b-list.org/presentations/2008/pycon/lightning.pdf">A apresentação</a> é um passo a passo de como a pesquisa de um repórter em tabelas do Word pode se tornar uma aplicação web interativa com mapas e gráficos em apenas dois dias. O James Bennett usa Python e Django pra isso.&#8221;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrovalente.com/2008/07/24/por-que-usar-python-e-django/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
