Semana 312

Otra vez en lunes mi resumen, desde luego que tras una despedida de soltero, ayer domingo no estaba para recopilar y escribir :P.

A partir de mitad de semana tuve bastante movimiento, en la reunión mensual de Zaragoza Ruby. En esta ocasión hicimos un taller práctico en el que estuvimos trabajando un poco en el proyecto Zagales DIY, de Zagales Hacklab (grupo que fomenta el aprendizaje de programación por parte de niños). No es que adelantáramos mucho, pero a mi al menos me sirvió para conocer un poco más el estado actual del proyecto, conocer las tripas y tirar un poco de código.

El viernes me pasé por el Betabeers Zaragoza, de donde tengo que hacer mención especial a la charla de Javier Uruen. Nos habló de cómo se están distribuyendo en Spotify la responsabilidad de monitorización dentro de los respectivos equipos responsables de cada proyecto, de las herramientas que están usando y de su proyecto Cavalieri.

Por cierto, que a raíz del Jacathon de Open Data anunciado para Septiembre, también salimos en el heraldo para dar una opinión desde el punto de vista como desarrollador/reutilizador.

Y en cuestiones de proyectos:

  • Además de alguna pequeña nueva funcionalidad, estuve haciendo un refactoring bastante majo en mhop. Parte de la lógica de negocio ha venido cambiando bastante, ya era el momento de pasar a hacer limpieza y extraer el exceso de responsabilidades de algunos modelos.
  • En Doc estuve viendo como hacer la importación de contenido a un wordpress, tras ver la necesidad de estructura de categorías y contenido y algunas pruebas lo que más me convenció fue hacerlo con XML-RPC.

Buena semana.

Semana 311

Aún estoy recuperándome de estos días en Granada por el UXSpain, donde he podido atender a un puñado de charlas relacionadas con el diseño y la experiencia de usuario, además de pasármelo genial y acabar totalmente agotado.

En las ediciones anteriores los compañeros del estudio me animaban a ir pero por fechas no me cuadró ninguna de las 2 ocasiones, al fin este año me pude estrenar y acompañarles.

image

Seguramente haya gente a la que le sorprenda que un tipo como yo, supuestamente dedicado más que nada cuestiones de programación backend, se cruce la península para asistir a un evento de diseñadores. Hace mucho tiempo que me interesan cuestiones de diseño y en algunos proyectos me ha resultado de mucha utilidad tener ciertos conocimientos. Además, pienso que todo desarrollador debería tener algunas nociones de diseño/UX, a nada que se involucre una interfaz de usuario en el software que se desarrolla.

En fin, que como tocaba salir el jueves de buena mañana, mi semana sólo tuvo 3 días productivos:

  • En mhop hice más pequeñas mejoras en la publicación de piezas por parte de los diseñadores, además de hacer algunos cambios en la zona de administración relacionados con la gestión de campañas.
  • Terminé el scraping de Doc, no sin problemas, generando un par de ficheros JSON con un puñado de decenas de miles de registros de datos.

Buena semana.

Semana 310

Esta semana tocó trabajar mucho en temas de web scraping, cosa que no es muy agradecido a nivel de resultados y en el que rara vez no encuentras impedimentos nuevos que te hagan la puñeta. Tengo pendiente ordenar ideas y escribir un poco sobre este tema.

El lunes/martes tocaba un nuevo viaje relámpago al pueblo, pasándome antes por el EINA de la Universidad de Zaragoza para ver la charla de iniciación a Agile organizada por Agile Aragón. Otra cosa para la que saqué tiempo fue para pedir el voto por correo para las europeas, aún estoy dudando entre el par de opciones que más me llaman la atención.

Por cierto, este jueves me pasé a ver The Coup en concierto. No los conocía hasta hace poco, pero muy recomendables.

Los proyectos en marcha:

  • Terminé los detalles del scraping del servicio que tenía pendiente para ShuttleCloud.
  • En mhop estuve mejorando algunas cosas de la UI para hacer más intuitivas un par de funcionalidades nuevas y analizando algunos procesos que hay que tratar de automatizar. También estuvimos hablando y estudiando un pequeño experimento que seguramente llevemos a cabo antes de verano.
  • Empecé a trabajar en Doc, el pequeño trabajo de scraping. Al final lo estoy haciendo con una combinación de requests, lxml y selenium.

Buena semana.

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.

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.