Resumen de 2015… y primer trimestre de 2016

Si, ha ocurrido: un año entero 16 meses sin escribir. Muchos lo pronosticaron y finalmente así ha sido. No será por falta de ideas, ni por falta de ganas… más bien por falta de tiempo y de no saber organizarme. La falta de tiempo, por una vez, ha sido causada por algo positivo: no he parado de aprender y de moverme, así que, para compensar estos meses de silencio, quería compartir mi resumen de 2015 y parte de 2016.

Empecé el año cambiando de trabajo, un cambio bastante positivo que me ha hecho poder tocar muchos palos dentro del desarrollo de software. Cambiar de trabajo me supuso un esfuerzo importante puesto que tuve que decir adiós a grandes compañeros… por no hablar de lo que me cuesta socializar con gente las primeras veces. Al final todo ha salido genial y estoy encantado 🙂Parte del elenco de Melodías en el desván

Poco después de empezar en la nueva oficina, empezó Senpai Devs, una iniciativa que surgió de Dani, Javi y Néstor para mejorar la programación y enseñar herramientas más convenientes que a las que la mayoría estábamos acostumbrados. Si queréis leer más sobre esto, misstechin escribió sobre esta iniciativa en MadeInZGZ. De todas las cosas que he aprendido durante estos meses, me gustaría ir escribiendo durante las próximas semanas (si, lo intentaré. ¡No se rían, hombre!)

Además también he participado en otros proyectos interesantes, como

  • El Musical “Melodías en el Desván”, iniciativa del proyecto 12Lunas del Ayuntamiento de Zaragoza, dirigido por Pato Badián (que, disclaimer, es mi profesora de canto 🙂 ). Cantar siempre ha sido mi otra gran pasión, pero siempre lo había hecho en bandas donde los directos solo se basaban en eso: tocar en directo. Cantar en un musical es otra historia: tuve que aprender a interpretar (un poco) y a moverme por el escenario de una forma muy concreta. Hicimos el show en Zaragoza y en Barbastro, y nos gustó tanto que en Abril empezamos ensayos para otro espectáculo nuevo.
  • La web del grupo zaragozano Sincopa, amigos de hace años que necesitaban crear su marca en Internet. Ha sido muy divertido desarrollar la web junto a ellos, entre cerveza y cerveza y siempre con buena música de fondo. Al final ha salido una pequeña web singlepage, desde la que acceder a todas sus redes, contenidos y discografía. En primavera comienza el desarrollo de la segunda parte… ¡así que estad atentos!
  • Éste mismo blog, que ha estado unos cuantos meses en el taller y gracias a los consejos de MissTechin, María, los Senpais, Jorge, Edurado y alguna que otra persona, ha podido ver la luz renovado y listo para seguir adelante. (¡Los del fondo, que oigo sus risillas! Esta vez escribo, de verdad)

 

 

 

Resumen de mi 2014

Retomo la actividad del blog (un año después) para hacer un breve resumen de lo que ha sido para mi 2014.

El gran cambio de éste año en mi vida es que entré a trabajar como junior en una consultora enorme a través de una beca de la Universidad. Estaba histérico porque no sabía si todo lo que yo había programado anteriormente me daba realmente una experiencia suficiente como para ponerme delante de un IDE y levantar cosas. Este miedo desapareció a las pocas semanas y ahora estoy encantado de tener una profesión que me gusta tantísimo.

El problema de estar en una oficina 10 horas al día es que ya no hay tiempo para nada más. Hace meses que no veo series, ni pico código por diversión ni prácticamente leo y mi vida social se ha visto sensiblemente afectada.

Pero no todo van a ser cambios “serios”. También he empezado a cantar en un grupo tributo a Red Hot Chilly Peppers. Un amigo de la oficina tocaba en el grupo y buscaban cantante. Dos cafés después me animé a ir una tarde al local y desde entonces una o dos tardes a la semana las paso desestresándome micro en mano. Qué ganas tenía.

Además, a principios de diciembre asistí a un curso de 3 semanas sobre desarrollo móvil con Phonegap, del que no se si aprendí mucho de Phonegap, pero de lo que si aprendí una barbaridad fue de Javascript, todo gracias al crack del profesor, que combina lo que muy pocos profesores: vastos conocimientos de la materia que está impartiendo y una capacidad didáctica enorme. Mantener la atención de 20 tíos que al salir de trabajar van a un curso de 4,5h por las tardes no es tarea fácil, y lo consiguió sobradamente.

También he tenido un par de cambios en el ámbito geek. A principios de año dije adiós a Apple, tras seis maravillosos años juntos. Necesitaba jubilar el MacBook y el hardware que yo quería me costaba más de 2500€ con la manzana y sencillamente me pareció demencial, ya que mi portátil lo uso para temas personales, no me renta en ningún aspecto. Así que me hice con un MSI GP60, al que le añadí 16Gb de memoria y un SSD donde antes estaba la lectora de dvd, y la verdad es que estoy encantadísimo. Vuela. El cambio más dramático fue el del sistema operativo pero he de decir que Windows 8.1 no está mal y me ha dado cero problemas durante estos meses. Además para desarrollar y frikear siempre he tirado de máquinas virtuales, terreno en el que Vagrant me ha conquistado el corazón.

Cuando digo que he abandonado a Apple también me refiero al campo de la telefonía. Me hice hará unos meses con el OnePlus One con el que estoy como un niño pequeño. Hacía tiempo que no estaba tan a gusto con un teléfono. ¿La pantalla? Si, enooorme pero una vez que te haces al cambio no puedes volver atrás 😛

Terminaré éste resumen de forma musical, con los 25 grupos que más he escuchado durante éste año.

Mis escuchas de 2014

 

Cómo importar nuestros marcadores en Evernote

Y aquí vamos con la tercera y última entrega de posts sobre marcadores en Evernote. Ya sabemos cómo exportar nuestros marcadores y también sabemos por qué estaría bien tenerlos en evernote. Ahora queda saber cómo los importamos en nuestra cuenta. Ya sabemos que hay dos pasos: importar los marcadores a una libreta de Evernote, y después descargar el contenido de cada uno de los marcadores para poder tener el contenido en las notas y poder leerlas sin conexión.

Cómo importar las notas en una libreta nueva de Evernote

Con este proceso se creará automágicamente una libreta nueva con una nota por cada marcador en su interior.

Exportando marcadores en Firefox

Para ello descargaremos el script bookmarks2evernote (ya sea descargando el zip, o clonando el respositorio) que escribió Thomas Shrädler y teclearemos en nuestra consola:

    perl genex_bookmarks.pl bookmarks.html

Siendo bookmarks.html el archivo generado por Firefox (o Readability) con nuestros marcadores. En ese mismo directorio aparecerá un archivo .enex en el que al hacer doble click nos creará en Evernote una libreta con todos nuestros marcadores.

Cómo descargar el contenido de nuestros marcadores a sus notas para poder consultarlos offline

Aquí llega la magia de Evernote, una de las razones con más peso por las cuales decidí empezar toda esta odisea.

Para esto utilizaremos el magnífico applescript que encontré en Nik’s crappy blog. Aquí va una mala noticia para todos aquellos que no tengan un Mac: ésto solo funciona con el Editor de Applescripts de OS X. De todas formas es fácilmente portable, así que seguramente se puedan encontrar alternativas similares en bash normal y corriente o si algún amigo tiene un mac, le podemos pedir 10 minutos de uso para hacer esto.

Sencillamente descargamos el script, lo ejecutamos con doble click y aparecerá el Editor de AppleScripts. Seleccionamos todas las notas de la libreta de Evernote y pulsamos el play. Al cabo de un rato (mayor o menor en función de las notas que tengamos) estará todo el contenido disponible.

Éste script tiene una propiedad property useIP : false que si ponemos a true utiliza el preprocesamiento HTML de Instapaper para que las notas queden mas sencillas y minimalistas. Yo lo hice y estoy muy contento.

 

Guardando los marcadores en Evernote

Si hay algo que han tenido en común todos los navegadores que he usado en los últimos años, es la ingente cantidad de marcadores que guardaba en ellos: una lista que ha ido creciendo desde mis primeros pasos con Firefox 1.7 hasta las últimas versiones de Safari, pasando por Opera, Chrome y Maxthon. Al principio solo eran accesos directos a páginas que visitaba cotidianamente (foros, webmail, redes sociales…) pero poco a poco fueron llegando artículos, tutoriales, vídeos, canciones, artículos de tiendas online, papers… cosas que consultaba de cuando en cuando y que no se podían perder.

Los problemas de guardar los marcadores en el navegador

Guardar tus marcadores en el navegador tiene tres inconvenientes que, mas o menos, pueden ser salvados de aquellas maneras. A saber:

  • Si la lista de marcadores es muy larga, su gestión se vuelve tediosa: Esto depende también del navegador que utilices, por ejemplo en Firefox 25 la gestión de marcadores es bastante buena y tiene buscador, pero aún así es un incordio. Hay servicios como Delicious o Pinboard que nos permiten almacenar enlaces en su web, pero sigue siendo mas o menos lo mismo, solo que en una pestaña del navegador.

  • Si la página destino deja de funcionar, ya no podremos ver el contenido. Estas cosas pasan mas a menudo de lo que parece y es muy molesto. Lo que solía hacer yo con artículos importantes que no quería que se perdieran era pasarlo a PDF y guardarlo en Dropbox, pero si quieres hacerlo con todos se convierte en algo muy tedioso tanto de hacer como de mantener.

  • Si usas un navegador distinto en cada ordenador, sincronizarlos puede ser complicado. Firefox, Safari y Chrome tienen sincronización en la nube de datos, incluídos los marcadores. ¿Pero qué pasa si en un ordenador usas Firefox y en el otro Safari? Pues que tienes que recurrir a herramientas externas como Xmarks y tener el servicio siempre funcionando en cada ordenador.

Almacena todo en Evernote

Evernote es una excelente aplicación que durante mucho tiempo tuve mal conceptuada ya que pensaba que símplemente era un gestor de notas en la nube. ¿Para qué quiero yo un gesteor de notas en la nube, si las pocas notas que tomo es con lápiz y papel? Total, que era algo que siempre tenía instalado en mis ordenadores pero nunca usaba realmente. Pero la clave está en que Evernote es una aplicación de nube igual que lo puede ser Dropbox. Tienes tus cosas allá donde estés, y no solo tienen que ser tus notas.

Evernote dispone de una extensión para los navegadores llamada Web Clipper, un botón que añadirá, en la libreta que nosotros le indiquemos, el contenido de la página que estemos visitando. Esto es mucho mejor que un simple marcador, porque el contenido lo podemos consultar incluso si no tenemos conexión a Internet, por ejemplo en un vuelo.

La forma en la que ahora gestiono mi colección de marcadores es precisamente esta. Tengo una “Pila” dentro de la cual tengo una libreta por tipo de marcador que quiero almacenar. Tengo bastantes, por ejemplo “Desarrollo”, “Música”, “Audio”, “Wish List”… y ahí voy almacenando mis marcadores. Igual que las carpetas que tenía en Firefox, pero centralizado, mas rápido y duradero. Aprovechando la coyuntura, también migré todos mis documentos de Dropbox a Evernote, no solo mi carpeta de “artículos interesantes”, sino también letras de canciones, currículums, copias del DNI, fotos de carnet, fichas de cursos, formularios… ¿Por qué? Pues porque siguen estando en la nube, pero ahora puedo buscar dentro de ellos usando la poderosa herramienta de OCR que incorpora Evernote en su buscador, que busca dentro de los PDF. Además, con una cuenta premium también busca dentro de PDF escaneados, archivos de Office y de iWork.

Todo esto suena muy bonito, pero ¿qué hago con los cientos y cientos de marcadores que ya tengo en Firefox? ¿No pretenderás que los añada uno a uno?

¡Claro que no! En el próximo post explicaré cómo importé todos mis marcadores tanto del Firefox como de Readability (usando el archivo html generado como expliqué en el post anterior) en mi cuenta de Evernote: ¡una nota por enlace y con el contenido descargado para poder consultarlo offline!

 

Cómo importar los marcadores de Readability en el navegador

Readability es una aplicación que nos permite guardar todos aquellos artículos que nos parecen interesantes para leer luego o para crear una lista y poder consultarlos cuando queramos. Además también nos sirve para compartir todo aquello que leamos con otras personas. Con el paso del tiempo se han ido juntando en mi cuenta de Readability tanto aquellos artículos que quiero compartir como los que quiero guardar en mi lista personal, y empezaba a ser un poco lioso. Por esto mismo decidí dejar Readability solo para publicar mis compartidos y empezar a almacenar mis lecturas en otro sitio, que contaré mas adelante.

Exportando los contenidos desde Readability

Exportar contenido de readability

Readability nos permite exportar todo nuestro contenido en un único archivo json, que incluirá la lista de lectura, los favoritos y los archivos que tengamos en la cuenta. No es algo inmediato, pasan unos minutos hasta que recibimos un email con el enlace de descarga del archivo. En mi caso tenía algo de más de ochenta artículos, supongo que a mas contenido haya que exportar, mas le costará al sistema entregarte el enlace de descarga. El archivo que nos descargamos tiene este aspecto:

    [
        {
            "article__excerpt": "Esta pregunta al menos me la hice unas cuu00e1ntas veces en mi vida y no recuerdo haberla descubierto. Pero esta semana me topu00e9 con una entrada de A List Apart en donde Jeffrey Zeldman indaga sobre el…",
            "favorite": false,
            "date_archived": null,
            "article__url": "http://minid.net/2013/01/29/por-que-los-enlaces-son-de-color-azul/",
            "date_added": "2013-03-17T14:40:18",
            "date_favorited": null,
            "article__title": "u00bfPor quu00e9 los enlaces son de color azul?",
            "archive": false
        },
        {
            "article__excerpt": "Imagino que ya andarán enterados de que Google cierra Reader, el mejor agregador / lector RSS que ha existido nunca y que tantos años de gran servicio nos ha prestado. Gratis. Sin…",
            "favorite": false,
            "date_archived": null,
            "article__url": "http://www.error500.net/el-modelo-google-reader-era-imposible-y-lo-seguira-siendo/?utm_source=rss&utm_medium=rss&utm_campaign=el-modelo-google-reader-era-imposible-y-lo-seguira-siendo",
            "date_added": "2013-03-16T22:31:07",
            "date_favorited": null,
            "article__title": "El modelo Google Reader era imposible (y lo seguiru00e1 siendo)",
            "archive": false
        }
    ]

El problema es que normalmente los navegadores no aceptan archivos json para importar marcadores, sino listas en html. Antes de pensar en cómo vamos a transformar este archivo en html tenemos que pensar qué campos necesitamos: simplemente necesitamos la url de la página que queremos enlazar y el título de la misma. Los campos que necesitaremos serán pues article__url y article__title.

Transformando el json

Para hacer esto utilicé una librería javascript llamada json2html. Lo bueno de esta librería es que al estar hecha en javascript podremos utilizarla ya sea creando un javascript puro y duro que ejecutar en el navegador, con jquery o con el maravilloso node.js. El script que escribí lo hice usando node porque es lo que estoy aprendiendo últimamente y además era lo más rápido. En la página de la librería están documentadas otras formas de utilizarla. Simplemente tenemos que instalar primero la librería node-json2html usando el gestor de paquetes de node: npm. En nuestra terminal escribimos:

npm install node-json2html

Y una vez que está instalado en nuestro sistema creamos un archivo javascript, por ejemplo readability2html.js en el que escribiremos lo siguiente:

    var json2html = require('node-json2html');

    var transform = {
                    'tag':'li',
                    'html':'<a href="${article__url}">${article__title}</a>'
    };

    var data = [
        {
            "article__excerpt": "Esta pregunta al menos me la hice unas cuu00e1ntas veces en mi vida y no recuerdo haberla descubierto. Pero esta semana me topu00e9 con una entrada de A List Apart en donde Jeffrey Zeldman indaga sobre el&hellip;",
            "favorite": false,
            "date_archived": null,
            "article__url": "http://minid.net/2013/01/29/por-que-los-enlaces-son-de-color-azul/",
            "date_added": "2013-03-17T14:40:18",
            "date_favorited": null,
            "article__title": "u00bfPor quu00e9 los enlaces son de color azul?",
            "archive": false
        },
        {
            "article__excerpt": "Imagino que ya andar&#xE1;n enterados de que Google cierra Reader, el mejor agregador / lector RSS que ha existido nunca y que tantos a&#xF1;os de gran servicio nos ha prestado. Gratis. Sin&hellip;",
            "favorite": false,
            "date_archived": null,
            "article__url": "http://www.error500.net/el-modelo-google-reader-era-imposible-y-lo-seguira-siendo/?utm_source=rss&utm_medium=rss&utm_campaign=el-modelo-google-reader-era-imposible-y-lo-seguira-siendo",
            "date_added": "2013-03-16T22:31:07",
            "date_favorited": null,
            "article__title": "El modelo Google Reader era imposible (y lo seguiru00e1 siendo)",
            "archive": false
        }
    ];

    console.log( json2html.transform(data,transform));

Vamos por partes:

  • La variable json2html es la instancia en si de la librería node-json2html, con la que podremos jugar.
  • La variable transform es en la que especificamos a la librería cómo queremos formatear nuestro contenido. En este caso le estoy diciendo que por cada artículo que haya en el json me cree una línea de lista ('tag' : 'li'). La librería también necesita saber cómo quiero que aparezca el html. La idea es que esta librería recorre cada bloque del json y por cada uno que encuentra crea una línea html usando el contenido de las etiquetas del json, que tendremos que indicarle siempre dentro del $(). Al decirle 'html' : '<a href="$(article__link)">$(article__title)</a>'la librería creará un hipervínculo por cada artículo que encuentre en el json.
  • La variable data es símplemente un copy-paste del json que nos hemos descargado, para que la librería pueda tener acceso a los datos.

  • La línea final (console.log( json2html.transform(data,transform) );) lo que hace es mostrar por consola el resultado del html obtenido. Simplemente le dice a la librería que transforme el json en html (json2html.transform), de dónde coger el json (la variable data) y cómo transformarlo (variable transform).

Para ejecutar este archivo símplemente tendremos que escribir en la consola:

node readability2html.js > articulosReadability.html

Y aparecerá en ese mismo directorio un archivo llamado artículosReadability.html que podremos importar en el navegador que queramos.