Actualizando Gasto Público Bahiense como corresponde

September 30th, 2012 § 1 comment § permalink

Desde que está online, Gasto Público Bahiense se actualizaba mediante la infame técnica de screen scrapingque consiste en hacer que un programa acceda a interfaces pensadas para ser usadas por nosotros los seres humanos.

Los scrapers son programas frágiles, que no resisten la menor modificación de la “pantalla” de la que extraen información. Esto se vió el año pasado, cuando la Municipalidad rediseño su site e introdujo un CAPTCHA, causando que se rompa el scraper  y haciendo un ruido mediático que —a la distancia— fue muy divertido, ayudó a promocionar el proyecto y algunos conceptos sobre transparencia, rendición de cuentas y datos abiertos. Inclusive salimos en la home de La Nación, en Perfil.com, FOPEA manifestó su preocupación y el entonces secretario de hacienda Ramiro Villalba dijo que yo era un “tremendo mentiroso malintencionado o un ignorante tecnológico”.

Pero desde hace un par de días, la Municipalidad de Bahía Blanca, a instancias de su Secretario de Innovación y Gobierno Abierto, le dio a GPB acceso a un web service a través del que actualizar los datos de órdenes de compra es fácil y rápido. (comparar el scraper anterior  [compras.py] con el cliente actual [compras_ws.py]).

Hay que decirlo, nobleza obliga: hace un año nos obstaculizaban el laburo con CAPTCHAs, hoy nos lo hacen fácil con un web service.

 

Arreglando el sitio de AFIP

February 6th, 2012 § 2 comments § permalink

La Administración Federal de Ingresos Públicos es frecuentemente citada como uno de los mejores ejemplos de uso de tecnología en el estado.

Pero parece que andan flojos de web developers actualizados, porque hace años que la función de imprimir constancia de monotributo (que debe ser uno de los servicios más requeridos de todo el sitio) funciona solamente en Internet Explorer.

Este userscript para Firefox+Greasemonkey o Chrome soluciona el problemita.

En caso que algún programador voluntarioso de AFIP esté leyendo esto y tenga ganas de arreglarlo: no anda porque usan window.navigate. Agreguen esto en algún lado y todos contentos:

window.navigate = function(u) { window.location.href = u };

Es una línea de código, AFIP. Media pila.

Actualización
Felipe Lerena acaba de publicar una extensión para Firefox que usa este código: Modernizador de la AFIP

Elecciones para Gobernador de Córdoba

August 8th, 2011 § 2 comments § permalink

La justicia electoral de la provincia de Córdoba también publicó un sitio web con los escrutinios de la elección a gobernador.

Como en el caso de la Ciudad de Buenos Aires, el sitio cordobés provee una interfaz que se alimenta de datos estructurados (así, por ejemplo).

Como siempre, el proceso consistió en obtener los datos, procesarlos con un script para adecuarlos a un formato apropiado para subirlos a Google Fusion Tables.


Cuanto más oscuro el color, mayor el porcentaje obtenido por De La Sota.

Resultados de elecciones en Buenos Aires

August 3rd, 2011 § 1 comment § permalink

(Publicado originalmente en la lista de correo de GarageLab)

En lo que ya podría llamarse “el mapa de la semana”, hice una visualización con datos de la primera vuelta de la elección para jefe de gobierno en Capital Federal:


Resultados primera vuelta elección jefe de gobierno. Cuanto más oscuro el color, mayor la diferencia que sacó Macri frente a Filmus.

Un poco de background técnico

Los porcentajes de la elección salieron de la página que puso el GCBA. No publican CSVs como en Santa Fe, pero los grafiquitos los generan con un Javascript convenientemente copypasteable (ahorrándonos el scraping), que tiene esta forma:

candidatos_comuna_10 = {
   'label': ['Porcentaje de Votos'],
   'color': ['#9bc3d4','#547980','#45ada8','#9de0ad','#e5fcc2','#afb7e9'],
   'values': [{
      'label': 'PRO',
      'values': [40.23]
      },{
      'label': 'FPV',
      'values': [27.13]
      },
....
   ]
};

Esos objectos javascript los transformé en un CSV con Python y después
un poco de limpieza con Google Refine. De ahí, derecho a un Fusion Table.

El mapa de las comunas porteñas está construído a partir de dos fuentes de datos: el shapefile de Barrios que publicó el USIG del GCBA y la relación Barrios-Comunas que creó Juan Codagnone en Freebase . Este proceso se hizo a mano editando el mapa con Quantum GIS. Exporté eso a KML y también lo subí a Fusion Tables.

Finalmente, se combinan (merge) las dos Fusion Tables, se configura el
estilo de visualización para el mapa y listo: tabla final.

Quizás lo más aprovechable de todo esto sea el mapa de Comunas (en KML), que varios andaban necesitando .

Datos abiertos en elecciones de Santa Fé

July 26th, 2011 § 3 comments § permalink

La provincia de Santa Fé hizo un trabajo buenísimo con la publicación en la web de los resultados de las elecciones 24 de julio de 2011. También sorprendieron con la publicación de los datos crudos de los escrutinios. Con esto, no sólo permiten el acceso libre e irrestricto a la información sino que incentivan el análisis independiente y la combinación (mashup) con otras fuentes de datos.

Un ejemplo

Teniendo a disposición los datos en formato CSV, nos ahorramos el scraping (proceso largo, tedioso y cuya robustez depende de factores que están fuera del alcance del programador).
Combinando los resultados de votación por departamento con un mapa departamental de Santa Fe (extraído de GeoINTA), sale este mapa:

(Elección de Gobernador. Amarillo: victoria de Del Sel, Rojo: victoria de Bonfatti. Hacé click sobre el mapa para ver los porcentajes. Mapa en formato KML)

Este es el ejemplo de aplicación más simple que se me ocurrió. Con un poco más de trabajo, combinando con otras fuentes de información e introduciendo otras herramientas, podemos alcanzar perspectivas diferentes de esta información. Ese es el espíritu de la trasparencia y la publicación de información: poner los datos bajo otra luz, aprovechar las potentísimas herramientas que tenemos a disposición, aprender nuevas maneras de leerlos.

Algunas notas sobre el Captcha-gate

July 5th, 2011 § 10 comments § permalink

Hace un año hice público a Gasto Público Bahiense. El objetivo del proyecto es brindar otra manera de explorar los
datos de compras a proveedores que publica la Municipalidad de Bahía Blanca.
El día 4 de julio de 2011 la Municipalidad lanzó el rediseño de su site, introduciendo una restricción al acceso a los datos de compras, implementada mediante un CAPTCHA. El CAPTCHA es un mecanismo usado por los sistemas online para diferenciar a sus usuarios entre seres humanos y robots. Plantean un problema fácil de resolver para nosotros (tipear un texto que aparece deformado es el más frecuente), pero muy difícil o imposible para nuestros amigos los robots. Google Bot es el agente automático que usa Google para recorrer la Web e indexar su contenido. Más humildemente, Gasto Público Bahiense cuenta con un robot que periódicamente extraía los datos del sitio del gobierno municipal bahiense y los almacenaba en una base de datos para luego mostrarlos a través de una interfaz más clara y fácil de usar que la que provee el municipio.

Desde ayer, la Municipalidad obliga a los usuarios de su site a resolver un CAPTCHA para acceder a las órdenes de compra publicadas, en efecto impidiendo el acceso del robot de GPB a los datos de los que se alimenta.

Una pequeña crónica de los hechos

Me enteré de este rediseño ayer por la noche y ví que el acceso a la información de la sección “Transparencia” estaba protegida por un CAPTCHA. Me sorprendí: estos mecanismos no se utilizan en general para impedirle a un robot la lectura de información. Es más frecuente que estén ahí para impedir que, por ejemplo, un agente automático registre en un minuto mil cuentas de email gratuitas y luego las use para enviar spam.

A raíz de estos cambios, el robot original de GPB quedó obsoleto luego de un año de fiel servicio. Construir (programar) uno nuevo lleva unos días de trabajo; tiempo muerto en el que GPB no va a actualizar la información. Informé acerca de esto en un anuncio que puse en el encabezado del sitio, lo publiqué en Twitter y pedí difusión.

En el transcurso de la noche, muchos se hicieron eco del anuncio y propagaron la noticia. La difusión y discusión continuaron en Twitter durante todo el día de hoy. Eventualmente, la noticia fue levantada por el medio bahiense SoloLocal.info y un rato más tarde por La Nueva Provincia, el diario local. Esta última nota incluye la grabación de una entrevista hecha por la radio local LU2 a Ramiro Villalba, actual secretario de hacienda de Bahía Blanca, responsable de la publicación en la web de los datos de compras municipales.

Voy a responder a algunos de los conceptos vertidos por Villalba, empezando por lo bueno.

‘Ahora publicamos mucha más información que antes’

Es cierto y me alegra muchísimo. Ahora hay información de compras devengadas, un listado de proveedores actualizado, información más detallada sobre las operaciones. Con respecto a lo anterior, progresó mucho. Intuyo que la existencia de GPB influyó en estas decisiones.

“La municipalidad no esconde nada, los datos pueden ser vistos por cualquiera”

Cierto. Lo que critico es que se obstruyó adrede el acopio automático de los datos. La información (de toda clase) nos inunda: necesitamos ayuda para poder interpretarla. ¿Qué mejor que un robot que trabaje por nosotros?. Hacen muy rápido y a costo nulo, el trabajo que a un ser humano le llevaría días. Imposible, se les negó el acceso.

“se hizo para evitar a los robots que hacen más lento el sistema”

Existen maneras mucho más apropiadas de optimizar el consumo de recursos de un servidor ante la actividad intensa que podría ocasionar la visita de un robot. Para sitios de “sólo lectura”, como el caso de los datos publicados por la MBB, la solución a este potencial problema es muy sencilla. Un enorme porcentaje de los servidores conectados a la Web reciben las visitas simultáneas de decenas de robots sin que ocasionen problema alguno. En particular, el robot de GPB efectuaba alrededor de 300 pedidos cada 3 días, cifra insignificante incluso para un sitio de bajo tráfico.

“si Gasto Público Bahiense publica la información, es porque la Municipalidad la provee”

Poco que decir al respecto, es cierto. La ordenanza Nº 11.162 así lo requiere.

‘Los robots vulneran la seguridad de la información’

Alguien que “vulnera la seguridad de la información” almacenada en un sistema, está comprometiendo la integridad de los datos. No veo de qué manera la mera lectura de datos públicos está poniendo en peligro la seguridad del sistema de la Municipalidad. Vale aclarar que el robot de GPB no usa trucos ni subterfugios: hace lo que haría una persona que navega el sitio, pero varias veces más rápido.

“A fin del año pasado intentamos algun contacto con [el responsable de GPB], pero vive en Bariloche y no pudimos concretar la reunión”

Lamento que la discusión se desvíe hacia los detalles, pero Villalba no es preciso en su relato. Hubo dos intentos de coordinar encuentros, en octubre del año pasado y en marzo de este año. En octubre todavía vivía en Bahía Blanca, expresaron interés a través de un intermediario y hasta ahí llegamos, no supe más nada. En Marzo, cuando nuevamente manifestaron su interés de reunirse conmigo, yo ya estaba instalado en Bariloche. Propuse una reunión vía Skype, pero no se concretó porque preferían verme en persona. Luego, el mismo intermediario me dijo que Villalba iba a contactarme por email, todavía estoy esperando.

Redondeando

Confío en que la MBB revisará la decisión de restringir el acceso a medios automáticos: así como GPB está transitoriamente imposibilitado de acceder, se prohibió permanentemente la entrada a los robots de los buscadores de propósito general (Google, Yahoo, Bing, etc). Tratándose de información pública, es prioritario facilitar en lugar de entorpecer el acceso.

De Interés Municipal

November 30th, 2010 § 0 comments § permalink

El Concejo Deliberante de Bahía Blanca declaró de interés municipal a Gasto Público Bahiense. El proyecto de ordenanza, presentado en agosto por el concejal Julián Lemos, se aprobó por mayoría el 25 de noviembre.

Aquí el texto completo del proyecto de ordenanza.

Conductismo

November 19th, 2010 § 2 comments § permalink

Una cita breve de Adam Curtis, en su blog The Medium and the Message:

In our age of individualism we see computers as ways through which we can express our individuality. But the truth is that the computers are really good at spotting the very opposite.

The computers can see how similar we are, and they then have the ability to agglomerate us together into groups that have the same behaviours. And from that they can predict what choices and decisions we will make.

And they do it solely through our observed behaviour.

Nada nuevo, pero no es malo acordarse.

(Aquí la nota completa: From Pigeon to Superman and back again)

Ciertamente, Natalie Lawrence

September 20th, 2010 § 0 comments § permalink

He aquí un video de Natalie Lawrence, la banda en la que toco el bajo. El tema es “Certainly” de Erykah Badu

La grabación en vivo fue hecha por los fantásticos ingenieros del estudio Quntrá.

(paciencia, el video empieza a los 0:20)

Charla en Jornadas del Sur 2010

August 16th, 2010 § 1 comment § permalink

Aquí las slides de la charla sobre Gasto Público Bahiense en las Jornadas del Sur 2010

Bajar en PDF.