A maioria dos programadores que conheço curtem passar o tempo livre resolvendo desafios, então eu gostaria de propor um para quem se interessar.
É um desafio diferente, a complexidade não é a mesma dos problemas matemáticos e quebra-cabeças lógicos, mas não deixa de ser bem interessante.
O problema
1. Existe uma “lista negra” de empresas queimadas na praça. São as chamadas “inidôneas” e “suspensas”.
O Cadastro Nacional de Empresas Inidôneas e Suspensas (CEIS) é um banco de informações mantido pela Controladoria-Geral da União que tem como objetivo consolidar a relação das empresas que sofreram sanções pelos órgãos e entidades da Administração Pública das diversas esferas federativas.
Ele pode ser acessado aqui: http://www.portaltransparencia.gov.br/ceis/
Pra facilitar, já exportamos os dois bancos no formato CSV. Baixe-os aqui.
2. Existe um formulário do TSE na web que permite consultar se uma determinada empresa foi doadora de campanha para algum candidato. Ele traz também os detalhes dessa doação, e principalmente para quem foi o dinheiro.
Ele fica aqui: http://www4.tse.gov.br/spce2008ConsultaFinanciamento/consultaReceitaDespesaCandidatoServlet.do
Queremos encontrar a intersecção entre esses dois mundos, que nos traria um resultado muito revelador: quem são os políticos que recebem dinheiro de empresas inidôneas. A idéia é usar o CNPJ das listas na busca do TSE para descobrir se há conexões e quais são os seus detalhes.
A solução
Está dada a largada. Quem quiser debater o problema ou mandar tudo resolvido pode usar os comentários deste post. Você também pode perguntar no Twitter pra mim (@pedrovalente) ou para o Fabiano Angélico (@fangelico), da Transparência Brasil. Foi ele quem me propôs o desafio, que resolvi compartilhar com quem quiser ajudar.
Só existe uma condição para participar, 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.
O prêmio é apenas o reconhecimento público de um trabalho bem feito, e a satisfação de ter gasto seu tempo livre com um desafio que realmente pode ter algum impacto na vida real.
Se esta experiência der certo e alguém responder, quem sabe pode ser o início de uma série de cooperações independentes entre jornalistas e programadores na busca de menos sacanagem com o dinheiro público.
Atualização de domingo à noite (15/3):
Parece que já temos a resolução do problema. O Marcos Vinícius da Silva, de Ribeirão Preto, foi o primeiro a mandar uma solução que consegui rodar tranquilamente e pareceu funcionar direitinho. Com a palavra, o próprio Marcos:
Estou te mandando os fontes do que fiz até agora para o desafio.
Os fontes que estou te mandando assumem o Python instalado (o meu aqui é o 2.5.2), e que os arquivos Inidoneas.csv e Suspensas.csv estejam no mesmo diretorio dos fontes.
O programa irá gerar os arquivos saida_Suspensos.csv e saida_Inidoneos.csv, na mesma ordem que aparecem nos resultados das pesquisas realizadas no site.Para executar o programa, basta chamar “python pesquisar.py”. Eu testei no Linux (Ubuntu), mas creio que funcione no windows também, pois não utilizei nenhum recurso fora do que o Python oferece.
Espero que seja útil!
Empacotei o código do Marcos com os arquivos CSV junto para quem quiser testar também.
Depois de rodar o código, estes foram os resultados encontrados no cruzamento.
Não posso deixar de agradecer também o Julio Biason, por ter liberado seu código inicial e aos outros que tentaram resolver. Acabo de dar uma olhada (23h) no repositório compartilhado pelo Julio e parece que ele está bem perto de um resultado. Aguardo seu relato para publicar aqui.
Fiquem à vontade pra comentar sobre as soluções e ajudar a melhorá-las, se necessário.
Agora é digerir esses dados e tentar interpretar o que eles significam. Já vi alguns nomes bem interessantes ali dentro…
Atualização de segunda (16/3):
O Julio Biason também chegou à solução. Pontos pra ele por ter colocado o código num repositório compartilhado e feito uma visualização mais fácil do resultado. Parabéns!
Ok, resolvi “bite the bullet”, como costumam dizer por aqui. Ainda falta um bom resultado final (varios CNPJs nao tem nada e eu nao tive como ver como a pagina fica quando ha’ doacoes.)
Quem tiver interessado nos fontes: http://gitorious.org/projects/failburn
Assim que eu tiver dados solidos, eu melhoro o “output” do programa.
Pô ninguém respondeu ?
Parece ser simples, urllib2 parece resolver, se tiver tempo vou dar uma olhada.
Até mais.
Maravilha, Julio, vou ver se encontro um exemplo que traga resultado pra te ajudar.
Mantenha-nos atualizados
[...] Aqui. [...]
Um exemplo de doador válido é o seguinte CNPJ, da Votorantim Celulose e Papel, que doou para um candidato a prefeito em Pelotas/RS:
60643228018411
(Esse não está na lista negra, até onde eu sei)
Gostei do desafio, vou começar o meu projeto hoje
O desafio é de fato excepcional e estou postando aqui uma solução para ser usada com Broffice unicamente para os apressados. O Broffice calc tem uma função chamada PROCV, já usei esta função no tempo em que trabalhei no Detran-CE. Carros que estavam no depósito, apreendidos por não pagar impostos e tantas outras irregularidades, só poderiam ser leiloados se o dono fosse notificado. Eles tinham portanto as placas dos carros que estavam no depósito e precisavam pegar a interseção desta placa com um banco de dados de todos os proprietários.
A função procv funciona assim:
=procv(celula de procura, area a ser procurada, coluna que será exibida)
Aguardamos ansiosos não somente o programa mas a lista de todos os políticos envolvidos com sujeiras, tenho absoluta certeza que aparecerá em grande número nesta lista políticos de partidos que mudaram de nome várias vezes ao longo da história, alguém desconfiaria o nome?
Olá! Como vocês precisam que seja formatada a saída? Em formato CSV resolve?
Assim que eu der uma refatorada dou um jeito de publicar os fontes.
Até mais!
Marcos Vinícius, pode ser em CSV sim. Se quiser pode mandar par ao meu e-mail que publico aqui. O endereço é pedro.valente no gmail. Abs.
Resultados! http://gitorious.org/projects/failburn/pages/Sumario
Os fontes estao em http://gitorious.org/projects/failburn, eu so’ nao tenho muita certeza do que documentar agora
Parece que os resultados do Julio Biason foram os mesmos que o meu!
Agora só falta entrar em ação e investigar os caras hehe!!
Valeu pelo desafio Pedro!
[...] Pois a turminha é rápida. Fizeram o programinha e tem até um “vencedor” do desafio. [...]
ahhsadhasd..
eu sei um pokim de nada de programação…
mas lendo esse problema aqui, eu nao entendi bulhufas…hudahusduhasuda