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.

Semana 304

Semana movidita en cuanto a posibles nuevas colaboraciones a priori puntuales, tuve que invertir tiempo en un par de reuniones y en algún que otro mail de cara a preparar propuestas. Llevaba tiempo sin hacerlo y precisamente me rondaba en la cabeza el buscar algún proyecto o producto “no muy grande” en el que colaborar a partir de mayo, ni que me hubieran olido.

El martes me pasé por las Geek Talks tras un par de meses sin hacerlo, estuvimos hablando sobre las herramientas de gestión/organización que utilizamos. El miércoles me tuve que cruzar la ciudad tras jugar a fútbol sala para unirme a cenar con Jaume, Bea y una buena representación de los habituales de la comunidad local. El jueves me fui de concierto guitarrero, que me moló bastante: No Truck Truckers y Total Heels. El viernes publicaron un post mío, que terminé por fin esta misma semana, en el blog de CartoDB: Mapping food banks in Spain with CartoDB.

Sobre los proyectos en los que ando, mucha variedad:

  • En mhop estuve implementando en el frontend el poder buscar productos por etiqueta y en poder incrustar también vídeos de vimeo.
  • Para minchador estuve haciendo cambios en la landing, hay que darle vueltas aún al copywriting y hacer un rediseño en condiciones.
  • Arreglé un scraper de ShuttleCloud que se había roto.
  • Retomé cosas pendientes de proyectoSinNombre, básicamente algunos detalles relacionados con Refinery CMS.

Buena semana.

Semana 303

Mucho movimiento esta semana pasada que me pegué casi completa en Madrid, y por eso mismo la productividad no es que haya sido demasiada. Quería aprovechar el viaje de asistir al Greach 2014 y al final estuve de Martes hasta el Sábado, tengo que agradecer a Laura Lacarra que me dejara quedarme en su casa esos días, aunque hubiera algún problemilla logístico XD.

Aprovechando que están al lado de la estación de tren, el martes antes de salir para Madrid me pasé a visitar la nueva oficina donde trabajan Pablo y Francho (no sé si el nombre comercial de la empresa se puede usar ya públicamente :P), fijo que me pasaré muchas veces más, desde hace tiempo que conozco algunas cosas del proyecto y tengo ganas de ver qué van sacando.

Ya desde el AVE concreté tomar un café con Sergi Almar, aprovechando que él andaba de visita relámpago en Madrid y había algo de tiempo entre que llegaba yo y él se iba, hacía muchísimo que no nos veíamos. Por cierto, muy interesante la nueva aventura en el que se ha embarcado: Voz.io.

Luego me pasé un par de horas a conocer y trabajar en las oficinas de Vizzuality, una de esas empresas con las que a uno no le importaría colaborar en alguna ocasión. Pude conocer en persona a buena parte del equipo, que con unos cuantos de ellos “nos seguíamos” pero no habíamos coincidido nunca.

Y para rematar me pasé a visitar a Yeray y Jero en las oficinas de Otogami, no tenía pensado pasarme hasta el jueves, pero como tenía que hacer tiempo nada mejor que acercarse a visitar amigos :).

Ya el miércoles y jueves fui a trabajar a las oficinas de ShuttleCloud por fin, hace más de 1 año desde que empezamos a colaborar y nunca había estado ni conocía a casi nadie de su equipo. Todo este tiempo llevo tratando principalmente con Félix López vía mail y hangouts, al que no conocí en persona hasta el reciente Startup Open Space. En fin, para compensar al menos nos fuimos unos cuantos de cena y a tomar algo ;).

El jueves por la tarde aproveché para juntarme con Alberto Molpeceres, sentarte a charlar un rato con Molpe siempre aporta algo interesante y te deja dando vueltas a alguna idea, eso es así. Aunque ver a Mario me hizo recordar mi primer trabajo de freelance con Linking hace ya casi 5 años, y por ello sentirme un poco más viejo XD.

Para acabar el día me volví a pasar por Otogami, que al parecer el jueves es el día institucionalizado para las visitas y con la tontería nos juntamos un puñado en el FunPlex.

El viernes era el día en que comenzaba el Greach, pero eso casi que lo intento resumir en otro momento.

Y lo dicho, no es que fuera una semana demasiado productiva:

  • Para ShuttleCloud estuve implementando un scraper para un nuevo servicio. Aprovechando mi visita Félix me estuvo explicando cambios en la arquitectura de su plataforma, que aunque sólo me afecta mínimamente nunca está de más saber. Además me dejaron asistir a su Daily y su Sprint Planning.
  • En mhop nulo avance a nivel de desarrollo, pero sí de definición. Estuvimos conversando sobre cuestiones de la estrategia de marketing y de los cambios necesarios en la plataforma para que estar alineados.
  • Y también estuve resolviendo un bug de minchador que se me había pasado totalmente por alto.

Buena semana.

Semana 302

Se me ha retrasado lo del resumen semanal, que ayer domingo terminé tarde y agotado del fin de semana. La semana la empecé en el pueblo, que con la tontería hacía varias semanas que no iba, necesitaba un par de días de estar un poco desconectado (que no de vacaciones) y para eso irme al pueblo es perfecto para mi.

De paseo

Con la vuelta a Zaragoza volví a mi “vida normal”, y con el ajetreo de unas cosas y otras terminé bastante agotado, como de costumbre :P

En fin, el trabajo en proyectos:

  • Terminé la migración de minchador de AppFog a Digital Ocean. Desplegué una versión con la integración con los pagos recurrentes de Stripe hecho, pero faltan un par de cosas gordas que solucionar.
  • Empezar el scraping de un nuevo servicio para ShuttleCloud.
  • En mhop cambiamos en producción de paypal a pagantis tras configurar el SSL y adaptar la plataforma para que las partes en las que se envían datos personales vaya por https. Tuve que resolver un bug bastante gordo que se me pasó por alto en un escenario de uso del formulario de creación de pedidos. Envío de confirmaciones de compra por email. Generar el sitemap para facilitar el crawling a los buscadores. Optimizar la carga de los .js y .css concatenando y “minificando” todas las dependencias.
  • Y a final de la semana tuvimos una reunión sobre el estado del arte de proyectoSinNombre.

Buena semana.

Semana 301

Esta semana ha sido la de finiquitar las integraciones con plataformas de pagos, las semanas previas ya había hecho mucho trabajo relacionado con esto y esta lo he dejado cerrado pero todavía sin subir a producción hasta cerrar algunos flecos.

Había un buen puñado de saraos interesantes a los que asistir, pero por curro o por otros compromisos que tenía terminé sin ir a nada por mucho que me hubiera gustado, que no da tiempo a todo. Eso sí, el viernes estuve disfrutando del concierto de Sharif en la Oasis.

Lo que es de proyectos, esta semana he estado muy centrado y se ha notado en el grado de avance:

  • En mhop terminé con la integración con Pagantis para la pasarela de pago, ya está en staging y a falta de configurar un certificado SSL (que en realidad debería haber estado hace un tiempo…) lo estará en breve en producción. Además de eso estuve haciendo cambios menores en la zona de administración y tuvimos una larga reunión para tratar temas relacionados con marketing y pasos a hacer a medio plazo.
  • Estuve haciendo algo de papeleo-documentación relacionado con proyectoSinNombre, a ver si podemos dar este proyecto por cerrado más pronto que tarde.
  • Dejé casi terminada la integración con Stripe en minchador. Además comencé a preparar la migración de AppFog a Digital Ocean visto los problemas de caídas que va dando ocasionalmente el primero, a ver si esta semana la termino por fin, mi experiencia con AppFog no ha sido nada buena.

Buena semana.

Semana 300

Esta semana estaba marcada por la cincomarzada justo a mitad de semana, una fiesta bastante reivindicativa y creo que la única local sin tintes religiosos.

Para terminar el lunes, me pasé a ver la charla/taller de Néstor Salceda en el grupo de Python Zaragoza sobre los principios SOLID. Hizo una charla introductoria y un ejemplo práctico con el que explicar los principios, me pareció una muy buena sesión sobre el tema.

La tarde del miércoles lo aproveché para pasarme por el parque a ver el concierto del Comando Cucaracha y disfrutar un rato de la fiesta, había ambientazo. Y el sábado me pasé a ver el concierto de Reincidentes, que llenaron la sala. Vamos, que también fue una semana muy musical.

Lo que son trabajos en proyectos:

  • Le di dedicación a DNDzgz, básicamente para poder consultar tiempos del tranvía y parkings para discapacitados en la versión web. Desde hoy también está disponible la actualización nativa iOS.
  • En mhop estuve combinando el trabajo de integrar la pasarela de pagos de pagantis y en iniciar la implementación del futuro carro de la compra, para soportar la compra de múltiples productos. Además estuve revisando algún que otro software que nos sirva de soporte para cosas no core.
  • También estuve haciendo algunos pequeños cambios y ajustes menores en minchador.

Buena semana.

Semana 299

Final de semana bastante movidita esta. Como todos los finales de mes había el jueves reunión de Zaragozarb, en esta ocasión Pablo Jimeno estuvo explicando RefineryCMS (CMS que estamos usando en proyectoSinNombre). El viernes para terminar la semana había BetaBeers, llegue tarde y sólo pude ver una parte de la charla de Rafa Ramos sobre web semántica y Linked Data.

Lo que es de productividad:

  • En mhop tuvimos reuniones para hablar sobre necesidades que se han venido viendo para ampliar algunas cosas y hacer bastantes cambios. También estuve trabajando en el proceso de pago y en el registro de los pedidos, parte del trabajo necesario para quitarnos de paypal.
  • Estuve optimizando algunas cosillas en proyectoSinNombre, además de importar la base de datos del entorno de staging a local tirando de la gema taps.
  • Le dediqué un poco de tiempo a DNDzgz, para en añadir el soporte a tiempos de espera del tranvía de Zaragoza en el API.
  • Y estuve haciendo un análisis previo de un par de webs para un posible trabajo de web scraping.

Buena semana.