Por este orden o por cualquier otro, la suma o coincidencia de estos tres factores puede llegar a sorprenderte.
Porque como coleccionista, no hay límites. Ya sea por piezas en una temática, o por el número de temáticas. De esto último te das cuenta cuando «coleccionas colecciones».
Porque como freak o friki, en lugar de tener la cabeza del hombre elefante, lo que tienes son aficiones y gustos «alternativos» con los que te etiquetan como a un bicho raro.
Porque como programador, todo lo anterior se multiplica por diez, o por más – varía con la edad, o empeora con ella.
¿Y todo junto qué significa?
Nada. Que algunos nacimos para ser la Santísima Trinidad de los raritos, y lo disfrutamos el triple.
Si eres coleccionista, coleccionista, es decir, has sido capaz de recorrer 1.000 km para conseguir un autógrafo, has aprendido ruso para poder conseguir una pieza, has tirado una pared al suelo para tener más espacio, o cualquier otra «barbaridad» semejante, sólo por conseguir añadir un objeto más a tus colecciones, sabrás de sobra que tienes un problema.
Varios.
Pero uno de ellos es catalogar. Poner en orden tus cosas. Y me refiero al aspecto legal de la frase. Tienes que dejarlo todo bien documentado como legado. Eso, o quien venga detrás tuyo llenará un par de contenedores de basura con tus tesoros. Una lástima, ¿verdad?
Catalogar… bonita palabra para definir un proceso tedioso y aburrido, tomar nota de todo cuanto tienes, de todas sus características, del valor «sentimental», del real y del teórico para otro coleccionista. Inventariar, en suma, todo lo que has recopilado con los años. Te irá bien para evitar comprar por quinta vez ese ejemplar de la revista Tal que «debes» tener sí o sí y también para hacerte una idea de lo que tienes como patrimonio cultural freak. Al menos eso. Si tienes una base de datos bien documentada podrás también obtener muchos otros beneficios derivados de ella, pero eso lo dejo para otra divagación nocturna.

Primer binomio
Aquí es donde juntamos coleccionismo y programación. Hay montones, ¿montones? de aplicaciones para catalogar colecciones. La pena es que suelen ser de índole particular y concreta. Es decir, aplicaciones para catalogar libros o comics o videojuegos o música… pero no hay muchas opciones para catalogar DE TODO y junto. Apenas un par de intentos con nombres tales como MyStuff2 para iOS, un ingenioso programita para inventariar cualquier tipo de cosas diseñando uno mismo las fichas de cada tema o categoría. O bien Multicollector para OS X (no recuerdo si hay versión Windows), en el que se intenta tener todo junto, pero en realidad son diversas DB juntas bajo un mismo paraguas con libre definición por parte del usuario.
Yo me pregunto por qué hay tantos ejercicios de programación «Hola mundo» y similares, algoritmos clásicos resueltos, etc. que en realidad no son de utilidad práctica para nadie y en cambio no se proponen ejercicios tales como resolver la problemática anterior. ¿Qué solución se puede proponer para un hipercoleccionista? ¿Cómo unir la información diversa de varios intereses (o categorías) y obtener unos mínimos informes comunes de toda una hipercolección? ¿Cómo puede el propio usuario definir sus fichas de contenido y no tener que cargar con multitud de campos y atributos que no le interesan? La solución ya existe (es privada) así que os dejaré pensar en ello.

Segundo binomio
Mientras seguiremos con la vertiente friki. Friki de los datos, de coleccionarlos, de archivar cuanto nos llega a las manos (en estos tiempos eso quiere decir MUCHA información), de catalogarlo, de poder encontrarlo cuando nos hace falta. Esa es la parte crucial de todo lo anterior: poder recuperar esa información que sabemos que tenemos pero ¿dónde está? Tiempo atrás nos podíamos limitar a guardar direcciones Web en nuestra agenda de marcadores. Ahora yo diría que eso es imposible de mantener. Primero por la cantidad ingente de páginas existentes y segundo, porque sigue ocurriendo como al principio: muchas de ellas desaparecern.
Abordemos las dos problemáticas. La primera requiere un gestor de direcciones URL más sofisticado que lo que nos proponen los navegadores. Por bonito y rápido que sea nada puede servirnos cuando hay 100.000 enlaces en nuestra agenda… Si, 100.000 o más. A saber. Es como una inmensa bola de nieve como ocurre en Pinterest. A cada imagen que nos atrae se abre un nuevo árbol de decisiones y así nos podemos pasar horas y horas dispersos en la maraña de hiperenlaces. Volviendo a las URL que queremos tener organizadas y sobre todo ENCONTRAR la que queremos en el momento adecuado. ¿Cómo gestionar esa cantidad irreverente de datos? En su día lo intenté con URL Manager Pro. Falla, es lento, se queda sin memoria… vamos como gran parte de las apps que se ponen al límite crítico con…. 100.000 registros. Eso nos ocurre también con catalogadores de imágenes, vídeos, música… cuando vamos más allá al nivel de friki… ¡todas revientan! Así que… ¿cómo gestionar nuestras direcciones, marcadores, URL, llamemosle equis, sin que sea un tedio, sin tener que cambiar de ventana para poder editar la información y sin ralentizar nuestro ordenador hasta que sea inviable su uso?
Vamos a la segunda. Páginas que desaparecen. Esto sólo se puede tratar de una manera: salvaguardar toda página que nos interese. ¿Cómo? Exportando la página completa, lo que no siempre funciona a la perfección, menos aún con páginas muy dinámicas e interactivas, o bien imprimiéndola en formato PDF y guardarla en disco (ocurre lo mismo de antes pero al menos es un solo documento). Lo ideal sería poder tener un analizador del contenido de dicha página y conservar sólo la información relevante, sea texto o media.
¿No os parece que los ejemplos anteriores son más interesantes de resolver que cualquier algoritmo estándar? Los algoritmos, para eso están definidos y disponibles en publicaciones y online. Los problemas reales, esos hay que resolverlos con ingenio y técnica.

Siguiendo con la información que no queremos perder. ¿Qué hay de los archivos de media como imágenes, vídeos o música y los libros electrónicos o cualquier otro tipo de documento en formato digital?
Ahí es donde sí o sí entra el scraping. Eso o dejarse el dedo índice dormido a base de clics. Porque claro el friki encuentra una página con 150 libros gratis sobre programación, o sobre el arte del macramé en el siglo XX y los quiere todos. Cómo no. Sería más fácil seleccionar sin duda. Para el friki coleccionista digital… eso va contra las normas. Hay que tenerlo todo y lo más rápido posible, lo más fácil, lo más automático. ¿Opciones? Scraping.
Los gestores de descarga, como JDownloader, nos dan mucha flexibilidad, y son capaces de hacer muchas de las tareas aburridas, pero no todas. No todavía. Quizás el tiempo cambie la situación y aparezcan plugins o complementos que permitan ampliar sus funcionalidades. Mientras, es una herramienta más de la que yo llamo Batería del Aspirador Nocturno.

El Aspirador Nocturno: el trinomio
Personaje de no-ficción, cuya tarea básica es aspirar cualquier contenido digital que se interponga en su camino y más allá. Opera de noche en la quietud y soledad de su cuartel general, rodeado de pantallas, ordenadores y cables… Películas aparte, la tarea de descargar contenidos de forma masiva solía ser una práctica nocturna, cuando las comunicaciones en red se hacían por vía telefónica, con tarifas diversas, algunos usaban Blue Box, etc. y los equipos disponibles eran cuando menos, lentos. Por tanto descargar un documental de una hora de duración, por ejemplo, podía significar una noche entera. O la biblioteca completa del Proyecto Gutenberg, o el archivo entero de las ROMs de ZX-Spectrum, o…
Hoy día el Aspirador Nocturno lo tiene más fácil. Aparte de herramientas como JDownloader y muchas más, con conexiones peer-to-peer, etc. tenemos la posibilidad de programar nuestra propia herramienta de rastreo, localización y proceso de información. Da lo mismo si hablamos del último álbum de Pepito que de los documentos publicados por Wikileaks en las últimas horas. Es información. Es digital. Y está en la red. El reto está en su diseño, para que admita cualquier tipo de petición, de contenido, procese la búsqueda, encuentre resultados fiables y rechace los fakes y sobretodo, sea extensible en el tiempo de forma fácil y sencilla. curl, wget, aria y un largo etcétera de utilidades de línea de comandos, sumando una programación shell adecuada, puede darnos buenos resultados. Un nivel más allá, lenguajes de programación como C, Python, Go, PHP, Javascript, etc. nos harán la vida más fácil dentro de lo que cabe. Existen librerías dedicadas al scrap, como la obviamente llamada Scrapy o BeautifulSoup. Con éstas y algunas otras herramientas más, nos queda poner orden a las ideas, realizar un buen análisis y ponernos a trabajar.
¿Alguien se apunta al reto?