Scrapping de PDF con IPython y pdftotext
Pocos días después de mi análisis de datos del escrutinio provisorio en las últimas elecciones de Córdoba me llegó un correo que empezaba así:
Hola Martín, soy Franco Luque, profesor e investigador en Computación de la FaMAF. Con Jorge Sánchez, otro investigador de acá que trabaja en procesamiento de imágenes, vimos tu iniciativa, muy buena por cierto, y nos pareció muy interesante la posibilidad de procesar las imágenes de las actas para reconocer los números manuscritos. Tan interesante nos pareció que pensamos en la posibilidad de organizar una jornada de programación (lo que algunos llaman hackatón muy a nuestro pesar :P), posiblemente para sábado de la semana que viene.
Así fue que, en tiempo record, junto a Franco, Jorge, Jairo Trad, Andrés Vazquez y Marysol Farneda organizamos el evento Democracia con códigos en el que participaron 35 personas! Ese evento fue éxito en todo sentido y dio el puntapie inicial para armar el grupo Open Data Córdoba.
Abriendo datos para la democracia¶
Uno de los requisitos fundamentales para investigar datos es tenerlos. Si bien el sitio oficial datospublicos.gob.ar ya había publicado datasets oficiales de las elecciones, en el sitio resultados.gob.ar, donde se publicaron los telegramas en tiempo real, había más información.
En particular, hay una sección que muestra resúmemes los resultados provisorios por distrito que incluye un dato muy interesante: la hora en que fue computado cada centro de votación en el escrutinio provisorio. Lamentablemente, esa info atrapada en PDFs no es muy útil.
Si bien no alcazamos a utilizarlos en el evento (mi idea era agregar una línea de tiempo al mapa para ver cómo fue evolucionando), el dia anterior del hackatón dediqué un ratito a extraer esos datos para poder computarlos.
Lo publico ahora porque me parece útil no sólo como ejemplo de extracción de datos desde un PDF sino sobre las posibilidades de IPython Notebook (de paso, este artículo es un notebook) como entorno de "hackeo", pudiendo utilizar Python, muchísimos otros lenguajes y cualquier herramienta que tengamos en el sistema, de una manera integrada y fácil.
Lo siento por vos
A fines de enero, apenas volvimos de Ushuaia, en la góndola de los fideos del Vea de mi barrio decidí que iba a retomar Preciosa. Hice un aviso en la lista de correo y lo tuiteé, sin esperar mucha respuesta.
Cuando salieron las primeras aplicaciones para "Precios Cuidados", Luciano Ferrer me preguntó si eran lo mismo que lo que yo quería hacer. Le respondí que Preciosa era mucho más que eso, pero todavía tenía dudas sobre cómo concretarlo:
@luuuciano todo eso. pero soy vago, pobre y mal reclutador de voluntarios. veremos si algun dia ve la luz... y a qué precio (cuac!)
— Martín Gaitán (@tin_nqn_) enero 30, 2014
Tres meses después Preciosa tiene una primera versión con casi 2000 descargas, 400 usuarios activos, múltiples aparaciones en radio y TV y muchísimas ideas y ganas para seguir creciendo.
La Pythonicidad al palo
http://mgaitan.github.io/pythonicidad/html/index.html
Nuevo análisis #NoAlFraudeEnCordoba
La repecursión que causó el análisis de datos para filtrar mesas estadísticamente sospechosas me sorprendió totalmente.
Se registraron más de 200 reportes de irregularidades a través del formulario y otros tantos en los comentarios de los articulo previos a que pusiera ese sistema de aviso.
Además, no sólo salió en los medios (para algunos con mala leche soy "kirchnerista pero democrático") , sino que Liliana Olivero se comunicó conmigo para agradecerme y preguntarme si podíamos obtener más información. Hoy me reuní con integrantes del Frente de Izquierda para hacer nuevos reportes.
#NoAlFraudeEnCórdoba. Ayudanos
#NoAlFraudeEnCórdoba. Ayudanos!
Consejo
Hay un nuevo artículo relacionado acá
Mi nombre es Martín Gaitán y soy ingeniero en computación. Quienes me conocen saben que soy kirchnerista y fui fiscal de Carolina Scotto, pero antes de eso soy ciudadano y como tal, mi deber cívico es defender la democracia. En este caso, exigiendo un escrutinio transparente.
El domingo pasado, todas las boca de urna daban a Liliana Olivero, candidata del Frente de Izquierda y los Trabajadores (FIT), como la 9na diputada por Córdoba. Ese pronóstico se iba confirmando a lo largo del escrutinio hasta alrededor de las 23hs, cuando la tendencia empezó a cambiar en favor del tercer candidato de la UCR, Diego Mestre.
Al ser el margen tan estrecho (calculé que son menos de 1600, 0.06%) el partido de Olivero exige el recuento de los votos y la justicia electoral se niega.
Aún sin el recuento voto a voto, se han encontrado mesas con votos al FIT mal computados. Algunos ejemplos
Mesa 2669, Cba Capital: no se computaron 33 votos del FIT (inferido)
Mesa 611, Cba Capita: no se computaron 23 votos del FIT (inferido)
Mesa 1064: se computaron 10 en vez de 40 votos del Frente de Izquierda.
Un procesador de reStructuredText
Fortran + Windows = pesadilla^2
Hace bastante que no escribo en este blog y no es porque tengo otro, sino, principalmente, porque estoy con muchísimo trabajo.
Hace casi un mes dejé 1 de trabajar en Machinalis, una de las empresas más pythónicamente grosas del mundo mundial 2, en la que inevitablemente aprendí muchísimo (y eso que me esforcé ;-)), hice amigos y laburé en proyectos de una escala y complejidad a la que nunca podría haber aspirado como un "freelance che pibe programador".
Ahora laburo fulltime (o sea: el triple) en Phasety, el proyecto que estamos creando junto a Martín Cismondi, director de mi proyecto integrador de grado hace algunos años ("ingeniero en computación", dice el pelpa) y hoy socio. Cismondi es doctor en ingeniería química y uno de los especialistas más reputados a nivel mundial en el área "equilibro de fases", que es, básicamente, modelar el comportamiento termodinámico de un fluido mediante algoritmos numéricos.
Apuntes pa'mejorar el chamuio (escrito)
Finde largo y el emprendorismo autóctono meta que meta, dale que dale, laburando en sus proyectos.
A veces programando, otras barriendo la oficina o atornillando estanterías y otras veces, quizás las más, corrigiendo documentos (plan, cof, de negocios, cof, cof) que tienen que quedar facherazos. No sólo por lo que dicen sino por cómo lo dicen.
Es que así como el "chamuyo de ascensor" es algo que se aprende y se entrena, no menor debería ser la importancia de la redacción de nuestros proyectos escritos. Que son, despues de todo, el gran sostén de esta etapa de nuestros emprendimientos.
Hola Preciosa
Mi propuesta sobre una aplicación para teléfonos inteligentes que facilite el relevamiento de precios y ayude a encontrar mejores ofertas generó muchísimo debate en PyAr, en la lista de Ingeniería y en Twitter .
Hubo quienes desmerecieron la idea por "politizada", otros que me invitaron a no generar polémica y llevar la discusión a otro lado 1, un par que no les gustó porque le quita "la responsabilidad al gobierno que es el que genera inflación por su irresponsable emisión monetaria" y otros que directamente se ofendieron feo y dijeron que era fascista.