Semana 309

Empezaba a tener pinta de que se me volvían a juntar el resumen de 2 semanas, pero no! :P

Fue una semana un poco rara, empecé un tanto desconcentrado y un poco bajo de ánimos sin saber muy bien porqué, supongo que se juntan un puñado de pequeñas cosas y ya te despiertas con el pie cambiado. Tener un par de días así evidentemente afectan a la productividad de uno. Y no, estoy seguro que no tiene que ver con lo de que iba hacerme un poco más viejo :D

De saraos esta semana sólo me pasé por la quedad mensual de AgileAragón, donde estuvimos hablando acerca de la charla de Pedro y María del lunes (ya ayer) y dándoles feedback. Luego nos fuimos a tomar algo y unos pocos terminamos cenando algo ligero.

Al final me contrataron esta semana el presupuesto de web scraping, aunque como es bastante pequeño no sé ni si vale la pena poner nombre en clave. También se llevó algo de tiempo una pequeña gestión relacionada con proyectoSinNombre.

Y el finde jaranas, claro.

Los proyectos en marcha:

  • En mhop algunas mejoras de copy, puesta en producción la subida de piezas para los diseñadores, alguna pequeña mejora con vistas al SEO.
  • Darle caña a hacer scraping de un nuevo servicio para ShuttleCloud.
  • Con minchador estuve trabajando en automatizar los despliegues, que hasta ahora aún eran muy manuales, pero aún falta alguna cosa que mejorar. También una pequeña funcionalidad para permitir añadir el código de analytics a los restaurantes para no perder trazabilidad de sus visitas. Y acabar con el poder descargar un icalendar de las reservas tras haber sido confirmada.

Buena semana.

Semana 308

Otra semana con un festivo justo en medio, va a resultar hasta extraña esta semana sin ninguna fiesta que rompa en seco el ritmo, con cenas y aniversarios varios de por medio tampoco el fin de semana saqué tiempo para hacer gran cosa.

Durante la semana estuve trasteando con un pequeño experimento usando mini_magick para editar imágenes, pero nada medianamente serio. No es que sea la gran cosa, pero me puse por fin a donar a la Fundación Civio una pequeña aportación mensual, por dar un pequeño apoyo (sí, lo publico para ver si alguno más se anima :P). Tras una pequeña reunión que tuvimos cerca del CIEM, relacionada precisamente con Open Data, me pasé a trabajar una tarde por las oficinas de Spines.

También estuve preparando un presupuesto para un pequeño trabajo de web scraping del que estuve en conversaciones la semana anterior, aunque no tengo nada claro que vaya a salir.

Sobre los trabajos que hay en curso:

  • Esta semana el grueso del trabajo se lo llevó mhop. Varias reuniones por skype, solucionar algunas peticiones para mejorar la gestión del contenido, empezar a usar file upload para la subida de imágenes y terminar la versión inicial de creación de campañas por parte de los diseñadores.
  • También actualizar la versión de Grails en minchador y empezar a trabajar en generar ics en las confirmaciones de las reservas.
  • Cruzar algunos mails para preparar la puesta en producción de parte del proyectoSinNombre.

Buena semana.

Poniendo a los bancos de alimentos en el mapa con CartoDB

Hace cosa de un mes que escribí y me publicaron un guest post en el blog de CartoDB: Mapping food banks in Spain with CartoDB, en el que explicaba como hice mi pequeño proyecto sobre los Bancos de Alimentos.

Si ya me cuestan mis esfuerzos el escribir, mi inglés es bastante flojo, por lo que lo escribí antes en castellano para centrarme en lo que quería explicar y dejar para después la traducción y revisión. En fin, que lo dejo a continuación en castellano.


Hace ya cosa de un par de meses que me propuse buscar información de bancos de alimentos, tras navegar bastante por ahí tan sólo encontré un listado de los miembros de FESBAL (Federación Española de Bancos de Alimentos). Pero mi principal era tratar de recopilar el máximo, fueran de esa federación, de organizaciones religiosas o totalmente autogestionados.

No me gusta la caridad, una cita que leía hace poco de Eduardo Galeano decía: "A diferencia de la solidaridad, que es horizontal y se ejerce de igual a igual, la caridad se practica de arriba-abajo, humilla a quien la recibe y jamás altera ni un poquito las relaciones de poder". Estando de acuerdo y viendo que la solidaridad por parte del estado es más bien poca, más importante es que alguien pueda tener un plato en su mesa, aunque sea por caridad.

En fin, la cosa es que a esto se sumaba que hacía tiempo que conozco CartoDB y tenía pendiente probarlo en algún momento, y esto encajaba a la perfección. Debo decir que no pasarían de las 2 horas desde que tuve los datos en crudo hasta que tenía hecho el mapa y lo tenía integrado con la web hecha con Sinatrarb.

Obteniendo los datos

Para empezar estuve haciendo un web scraper de la web de FESBAL con python (usando Mechanize y BeautifulSoup) para generar un CSV con todos los datos[1] en crudo para poderlo importar a una tabla de CartoDB.

Importando los datos a CartoDB

Una vez en el dashboard de CartoDB, simplemente tuve que crear una nueva tabla importando datos desde ese CSV. Una vez procesados los datos utilizando la opción de georeferenciación automática de las direcciones de cada banco de alimentos (tuve que arreglar unas pocas a mano al ser direcciones un tanto extrañas).

Dándole estilo a la visualización

Y luego crear la visualización a partir de esa tabla, para jugar con el wizard de visualizaciones. Elegir el estilo de los marcadores, el contenido de los infowindow, los tiles del mapa...

Una vez teniendo la visualización la incrusté en una pequeña web hecha con sinatrarb y Foundation CSS para darle la estructura.

Usando el API de CartoDB

En esta web también hay una integración (bastante simple) con el SQL API para mostrar el forma de listado los banco de alimentos y el poder añadir más por parte de los visitantes. Desde luego que es un API para que el que teniendo tiene mucho potencial a nada que se tengan conocimientos de SQL y manejar mínimamente las respuestas en JSON.

Para el listado se muestran sólo los que estén georeferenciados, cosa que se hace desde la gestión de tablas de cartoDB, de este modo sirve también de moderación de contenidos: si no está georeferenciado no aparece en el mapa ni en el listado.

Aunque no se conozca mucho Ruby, el código es bastante explicativo:

El añadir nuevos bancos de alimentos, también resulta bastante evidente con unos mínimos conocimientos de SQL, como puede verse en este snippet de código:

El resultado se puede ver en http://bancosdealimentos.herokuapp.com/, mientras que tanto el código de scraping como de la aplicación Sinatra están disponibles para su libre consulta y uso en mi cuenta de Github.

 

Mapa de Bancos de Alimentos

Semana 306 y semana 307

Esta vez toca juntar las retros de 2 semanas diferentes, muy marcadas por la semana santa y el día de Aragón, con tantos festivos de por medio no han sido semanas que hayan dado demasiado de sí. Además se juntó a que por fin actualicé a Mavericks y se me desconfiguraron algunas herramientas y dependencias, tuve que perder tiempo en volver a dejarlo todo a punto.

Hacía mucho que había pendiente un asado argentino con Pablo como chef, y aprovechando el viernes santo hicimos un Asao de pecadores con un reducto de algunos sospechosos habituales. Desde luego que poder juntarte con esta gente siempre es un placer.

Asao Pecadores

También me escapé un par de días por el pueblo, que en esas fechas siempre hay ambiente. Además aproveché para hablar acerca de un posible proyectito que me apetece hacer desde hace mucho.

A falta de tener charla para la quedada de zaragozarb de los últimos jueves del mes, ejercí de parche y expliqué como está montada la integración continua en mhop. En resumen: es una aplicación rails, en un repositorio git hospedado en bitbucket, con un hook hacia un servidor de integración continua jenkins hospedado en cloudbees, configurado para hacer el pull y montar el entorno para finalmente ejecutar tests escritos con rspec (mis disculpas a los no técnicos que lean esto XD).

Para terminar la semana me pasé por el Coding Dojo organizado por Agile Aragón. Pero sólo pude estar en la primera parte haciendo la kata FizzBuzz en formato randori, donde (en horario lectivo y llevados por sus profesores) había un grupo de universitarios con los que algunos nos fuimos mezclando haciendo pair programming. Me parecen más que interesantes este tipo de iniciativas de intentar acercar a gente que ya andamos un tiempo en esto con los estudiantes, espero que se llevaran algo de provecho.

Durante la semana también preparé una propuesta para ayudar a una startup para echarles una mano en el desarrollo de su MVP y estuve en conversaciones de un posible pequeño trabajo de web scraping.

En cuanto a los proyectos en marcha:

  • En mhop retomé el implementar que los diseñadores puedan crear y editar sus campañas para ahorrar trabajo de gestión de contenido y facilitar la comunicación entre diseñadores y gestores.
  • Arreglé un scraper para ShuttleCloud, dependiendo de la IP de la que se hiciera la llamada el renderizado del HTML se modificaba ligeramente.
  • Tocó darle una vuelta a Minchador con Lucas, durante la sesión salieron muchas cosas relacionadas con la estrategia y el roadmap de producto, fue una reunión realmente fructífera. Dediqué algo de tiempo a trabajar algunas de las cosas que salieron.

Buena semana

Semana 305

Bastante variada la semana que acaba de pasar, desde una visita relámpago por mi pueblo hasta ejercer de facilitador en el hackathon Space Apps Challenge celebrado en Zaragoza, pasando por impartir una charla en el Betabeers Zaragoza o quedarme colgado en mitad de una portabilidad de proveedor de ADSL en mi casa.

Quedarme sin ADSL a mitad de semana ha trastocado mis rutinas. Aún pudiendo ir tirando de tethering para algunas cosas, ha provocado que pase más horas en el estudio de lo que para mi es habitual. A ver si esta semana se hace efectiva mi portabilidad y vuelvo a mi "normalidad".

Dediqué bastante tiempo en preparar mi charla A falta de APIs buenas son tortas para la edición especial de Betabeers Zaragoza, a modo de introducción al web scraping.

Aunque tenía claro en mi cabeza qué es lo que quería contar, a mi siempre me cuesta mucho definir cómo hacerlo y además intentar que sea lo más ameno posible. Al ser una edición especial me había hecho a la idea de que apenas pasaría de la veintena de asistentes, pero resultó que estaba bastante equivocado, menudo susto XD.

Ya durante el finde, ejercí de "facilitador" del Space Apps Challenge, era el primer hackathon en el que asumía un rol diferente al de participante. A nivel técnico no es que hiciera gran cosa, echar una mano en momentos puntuales de atasco en un par de equipos, lo demás fue ayudar a la organización en algunas cosillas y andar dando apoyo moral a los participantes.

Además de ver lo mucho que se lo curraron los equipos y los resultados del hackathon, me gustó ver que hay cantera; había un buen puñado de jóvenes participando muchos de ellos aún estudiando. Por poner un par de peros, eché de menos que hubieran más variedad de perfiles, especialmente encontré mucho a faltar la presencia diseñadores; y cómo no, que más chicas se hubieran animado a participar tal y como lo hizo Sandra.

Y lo que en mis proyectos se refiere, la semana fue algo así:

  • Tras un par de pequeños arreglos en mhop, empecé a dedicarme a implementar el alta de productos por parte de los diseñadores. Ahora mismo sólo pueden hacerlo los administradores y se consume mucho esfuerzo en la comunicación con los diseñadores industriales.
  • Tuvimos una reunión de proyectoSinNombre de la que surgieron detalles que cerrar, y a ello le dedicamos algunas horas semana.
  • Prepararé y envié una propuesta para un proyecto relacionado con eventos y ticketing.
  • Recopilé las facturas para el IVA trimestral.
  • Hice algunas tareas de mantenimiento minchador.

Buena semana.