Como adelantaba hace un mes,
durante esta temporada se producen numerosos cambios en nuestra fauna.
Y es ahora en Octubre cuando se empieza a notar.
La mayoría de aves ya han escogido sus zonas de invernada, en las que pasarán los próximos 5 meses.
Las costas viguesas y alrededores parecen ser, una vez, más, localización idílica para todas estas emplumadas
criaturas, que encuentran en la geografía irregular un refugio perfecto.
Largas playas, amplias desembocaduras y frondosos bosques, junto a un clima moderado y vegetación y
alimento abundante.
En mi primera entrada hablaba, sin entrar en gran detalle,
sobre la importancia de la independencia tecnológica, la advocación de herramientas simples para solucionar
problemas sencillos y complejos, y el rechazo al software moderno, altamente sobrecargado, que desborda al
usuario con sus complejas interfaces e innecesarias opciones, al mismo tiempo que consume recursos de
manera excesiva.
Es difícil encontrar un mejor ejemplo que los editores de texto, tanto privativos como libres, pecan de una
sobrecarga de funciones, unido a unos resultados muchas veces impredecibles.
Es innegable que su interfaz gráfica y el hecho de poder observar tus avances en tiempo real (WYSIWYG) hacen
accesibles estas herramientas a los usuarios más inexpertos.
Sin embargo, estas herramientas rápidamente frustran a cualquier usuario avanzado tratando de redactar
documentos que incluyan elementos como tablas, imágenes, referencias o encabezados.
Errores y cambios en el formato, respuesta lenta y opciones inexistentes suelen complicar
un proceso tan trivial como es la redacción.
Es en la búsqueda de estas herramientas donde aparece primero LaTex, el estándar, podríamos decir,
de la composición académica, y posteriormente, groff,
utilizado de manera unánime para redactar los conocidos manuals de los sistemas Unix.
Y sin despreciar el poder casi infinito del primero, opción indiscutible a la hora de redactar complejos
documentos, aquí trataremos al segundo, pues es la herramienta perfecta para escribir pequeñas memorias
y entregas sin necesidad de salir de la terminal.
groff recuerda en su uso a otros lenguajes de Markdown, como los utilizados para escribir
la documentación técnica disponible en tantos repositorios, pues todos nuestros campos van marcados
por las llamadas macros , que indican al compilador como debe tratar al texto consiguiente.
Dejo una pequeña lista, y la
documentación oficial
, donde se puede profundizar.
.TL, .AU, .AI : Permite definir el Título, Autor, e Institución Académica
.SH [N] : Crea una nueva sección, indicando su profundidad mediante N
.PP, .LP : Crea un nuevo párrafo con o sin sangrado
.TS, .TE : Delimita el espacio sobre el que se define una tabla
.B, .I : Imprime el texto en negrita o cursiva
.BR, .BP : Salto a una nueva línea o a nueva página
Una vez redactado nuestro documento, es cuando aparece la magia de este formato.
Y es que a la hora de compilar el fichero no se ejecutan unas complejas y pesadas librerías,
si no que únicamente mediante manipulación de texto,
se transforma nuestro texto casi ilegible en un perfecto y formateado documento.
Y no solo es la compilación más rápida y directa, si no que además admite, mediante tuberías,
el uso de otros programas que podrán manipular los resultados intermedios,
añadiendo posibilidades de manera totalmente modular e ilimitada.
Como ejemplo práctica, incluyo la
memoria
realizada con motivo de unas prácticas del Máster que estoy realizando, así como su
código fuente.
Para compilar este documento, no tengo más que lanzar siguiente comando, que me permite utilizar
el alfabeto latino, tablas y formatear la salida a un PDF:
preconv $file.pdf | tbl | groff -ms -dpaper -Tpdf > $file.pdf && zathura $file.pdf
Cualquier usuario familiarizado con la terminal y la manipulación de texto habrá observado ya el poder en la
simpleza de esta herramienta.
Las posibilidades infinitas que aparecen a la hora de componer nuevos documentos, de añadir, eliminar,
modificar y trasladar texto, su perfecta armonía con el resto de sus herramientas favoritas.
Y es que lo bello de estos pequeños programas no radica simplemente en su simpleza y funcionamiento,
si no en la infinidad de opciones que cada usuario,
de manera casi única, encuentra para ella, adaptándola, perfectamente, a su ecosistema tecnológico.
Empieza septiembre, se acerca el fin del verano, comienza el otoño, los cielos se cierran y las temperaturas
bajan, y junto a ellos, múltiples especies de aves abandonan sus nidos para avanzar hacia climas más cálidos.
Algunas nos abandonan después de aumentar sus números satisfactoriamente, como golondrinas, aviones y vencejos.
Algunas nos visitan brevemente en su viaje a latitudes más tropicales.
Otras, simplemente, cambian los bosques por parques y jardines, donde la vida es más sencilla en los
duros meses de invierno.
Y muchas otras llegan a nuestras costas y estuarios a pasar el invierno.
Anátidas, garzas y limícolas de todo tipo se agrupan en busca de alimento en desembocaduras y playas,
moviéndose al ritmo de las mareas.
Sin duda todo un espectáculo de la naturaleza, un privilegio poder ver a todas estas pequeñas criaturas
ocupar espacios casi vacios en los meses de verano.
Correteando, volando, zambulléndose, nadando, alimentándose.
Solamente espero, que este año haya menos canes sueltos por las playas.
A veces la navegación sin rumbo trae sorpresas inesperadas, en este caso, el descubrimiento de un nuevo género
hasta ahora desconocido para mí.
Se trata de los llamados WarGames.
Y no, no tiene nada que ver con los juegos de mesa de esa misma temática, ni con ningún videojuego
o simulación de conflictos militares al estilo "Caza del Octubre del Rojo".
De hecho, no tiene ninguna relación con nada asociado a la guerra.
Estos wargames no son más que un conjunto de retos de ciberseguridad y/o administración de sistemas
en los cuales el jugador debe obtener información oculta a través de "trampas" o "exploits".
Por ahora únicamente he probado los retos presentados por
overthewire, en concreto su nivel "bandit",
el cual ya he completado satisfactoriamente, y cuyas soluciones se pueden consultar
aquí.
A riesgo de spoilers, claro.
*Aviso que no pretende ser una guía detallada, si no unos pequeños apuntes sobre como he superado cada prueba.
Sin duda esta es una gran manera de aprender no solo a trabajar en entornos Linux, sino a utilizar
sus herramientas básicas y familizarse con mútliples conceptos mientras resuelves entretenidos puzzles.
Importante además la corta duración de cada problema, que depende más de lo que tarde el jugador en
descubrir la clave, y no tanto en un número excesivo de pasos a realizar, eliminando toda sensación de
repetición.
Algunos conceptos aplicados en los problemas Bandit
Manipulación y búsqueda de ficheros y datos
Encriptación
Compresión
Networking
Crontab
Control de versiones
Ningún problema (bueno, casi ninguno) se hace pesado, y pocas veces son necesarios más de 5 comandos para
encontrar la siguiente contraseña.
Esto no significa que los problemas sean fáciles, todo lo contrario, pues contienen una solución directa
pero compleja que requiere de los conocimientos del jugador.
Un éxito rotundo de los diseñadores que convierten estos pequeños problemas en adictivos retos.
No me queda otra cosa que recomendar este tipo de juego a cualquier persona interesada en la ciberseguridad,
la administración de sistemas, o simplemente a cualquier usuario de sistemas Linux
con ganas de poner a prueba sus conocimientos o aprender nuevas herramientas.
Gracias a que el gestor de esta web no es más que un script de bash, es muy sencillo automatizar
ciertas tareas, como puede ser la subida de imágenes.
No necesito más que una línea en la crontab para ejecutar puntualmente un script que seleccione
una imagen de manera aleatoria, la suba, y finalmente publique en mi página web.
Esta selección se realiza sobre una lista en la cual he incluído todas las fotografías que deseo publicar.
Para generar dicha lista he usado el magnífico visor de imágenes
sxiv, que con su opción -o , devuelve como salida estándar la ruta de las imágenes marcadas.
Para ello es necesario lanzar este visor desde terminal.
En mi caso, utilizo a mayores las opciones -i y -t , que muestran las
imágenes pasadas como entrada estándar en una cuadrícula de "thumbnails".
ls -1 /path/images/* | sxiv -tio > selected
Como se puede observar, el proceso es trivial, sin necesidad de conocimientos extraordinarios en ninguna
materia, y con una gran escalabilidad y adaptación.
Podría, en cualquier momento, añadir títulos y descripciones a mis imágenes siguiendo patrones de color,
fechas, o cualquier otro tipo de metadato de la imagen.
Incluso utilizando datos obtenidos de cualquier servicio web que considerara interesante, aumentando o
disminuyendo la complejidad según conveniencia.
La modularidad del script lo permite.
De la misma manera, en cualquier momento puedo decidir la frecuencia de subida, o las horas concretas a las
que quiero publicar mis imágenes.
Simplemente tengo que editar la crontab.
Esto no es más que una simple prueba de como tareas aparentemente tediosas pueden ser rápidamente
automatizadas, y una demostración de por qué es preferible utilizar herramientas simples y modulares a
complejas pero monolíticas.
Hace algo más de un mes que este blog comenzó a funcionar, y aún ahora sigue sin tener una buena presentación.
No es algo que considere innecesario, pero sin duda es bloqueante a la hora de añadir contenido.
Esta entrada debe existir, pues explica el por qué de este blog, pero no puede aparecer entremezclado con
entradas posteriores.
Desgraciadamente, no encuentro las palabras adecuadas.
En un primer borrador, explicaba las razones por las cuales había decidido iniciar no el blog, así como
crear el programa que gestiona esta web.
Desgraciadamente, ese texto fue erróneamente eliminado por un poco cuidadoso admistrador (yo mismo).
Las razones son realmente simples, y no precisan extensa explicación más que en aras de la prosa.
No es necesario un Manifesto para hacer llegar al lector las ideas que pretendo transmitir.
Indepencia, Llibertad y Curiosidad Tecnológica, han sido los principales factores a la hora
de iniciar este proyecto.
Cosas que he aprendido desarrollando esta web
HTML/CSS
Bash scripting
Manipulación de texto con herramientas del sistema (sed, tr, cut, awk...)
Edición de imágenes desde terminal con Imagemagick
Administración y gestión de un Servidor Web
Son estas tres cualidades indispensables a la hora de tratar con la tecnología, pues uno debe de ser
independiente y tener el control directo sobre sus propios datos.
Debe de ser libre a la hora de decidir sobres sus propios datos.
Y debe de sentir curiosidad a la hora de utilizar nuevas tecnologías para manejar sus datos.
Y no hablo de datos personales únicamente, si no de todo tipo de contenido que uno quiera compartir o
guardar.
Esta es por lo tanto mi ventana personal hacia el mundo de Internet, sobre la cual posaré
mis pequeños proyectos, creaciones "artísticas", y quizás algún pensamiento, opinión o impresión que pueda creer
conveniente.
Temática libre, por supuesto.