Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo actualizar la biblioteca de música en cmus

Imago voragine.net

cmus es el reproductor de música que uso. Funciona en la línea de comandos. Es ligero, tiene un buscador rápido y una manera eficaz de gestionar una biblioteca de música. Se puede controlar con atajos de teclado e interactuar con él desde otros programas o desde el gestor de ventanas es muy fácil ya que tiene una api para comunicarse con él, por ejemplo, usando scripts de bash.

Configurar atajos de teclado en Linux con xbindkeys

Imago voragine.net

xbindkeys es un programa, independiente del gestor de ventanas utilizado, que permite asociar acciones (comandos) a combinaciones de teclas, para crear así atajos de teclado para gestionar acciones como subir y bajar el volumen, atenuar o incrementar el brillo de la pantalla,k o controlar el reproductor de música. Funciona con teclas multimedia.

Cómo descargar un archivo con wget a través de una conexión HTTPS

Imago voragine.net

Por omisión wget da error si se usa con una URL a través de conexión segura HTTPS. Esto se debe a que no le estamos diciendo qué certificado tiene que usar para comunicarse con el servidor al que se está conectando. Ésta es una operación que cualquier navegador web hace hoy en día automáticamente, sin que nos tengamos que preocupar por ello. No es el caso de wget.

Para evitar este error y poder descargar una URL a través de conexión segura HTTPS cuando no conocemos el certificado se puede usar el modificador --no-check-certificate.

Cómo evitar que xss-lock bloquee la pantalla cuando una aplicación está a pantalla completa

Imago voragine.net

xss-lock es un programa que gestiona el bloqueo de pantalla cuando el equipo está inactivo. xss-lock cumple esta tarea llamando a un bloqueador de pantalla externo, y comunicándose con el login manager que define el tiempo de inactividad antes de bloquear la pantalla y conecta con la sesión para salir del bloqueo.

Yo uso xss-lock para gestionar el bloqueo de pantalla en i3wm. xss-lock funciona estupendamente sin mucha configuración excepto cuando hay una aplicación a pantalla completa. En este caso bloquea la pantalla considerando que hay inactividad. Esto es especialmente molesto cuando estoy viendo una película: cada 5 minutos tengo que mover el ratón o se activa el bloqueo.

Para evitarlo he añadido un pequeño script de bash que monitoriza con wmctrl si hay alguna aplicación corriendo a pantalla completa. Si es así, pausa xss-lock con pkill. Cuando se sale del modo pantalla completa, el script reactiva xss-lock.

Cómo solucionar ModuleNotFoundError: No module named ‘pip’ en un entorno virtual de Python

Imago voragine.net

Hay veces que tras una actualización del sistema, tras actualizar Debian, todos los entornos virtuales de Python dejan de funcionar y devuelven el error ModuleNotFoundError: No module named 'pip'. Para solucionar el error, desde el entorno virtual se puede usar el módulo ensurepip.

Configurar un router Linksys 3200ACM con OpenWRT como punto de acceso (bridge access point)

Imago voragine.net

Los routers Linksys 3200ACM vienen preparados para poder instalar un firmware libre, y es uno de los routers compatibles con OpenWRT. Para instalar OpenWRT en el Linksys 3200ACM hay que descargar la última versión del firmware compatible con el router del repositorio de OpenWRT. En la página oficial de OpenWRT hay documentación detallada sobre cómo instalar OpenWRT, y cómo actualizar a la última versión compatible.

Cómo filtrar las funciones previous_post_link y next_post_link de WordPress usando un custom field

Imago voragine.net

En WordPress previous_post_link() y next_post_link() permiten enlazar, en la plantilla de una entrada, la anterior y la siguiente entrada respectivamente. Estas entradas vienen definidas por unos parámetros por omisión que definen una petición a la base de datos que hace la función get_adjacent_post(). Estos parámetros definen que el criterio para seleccionar la entrada anterior y posterior sea la fecha de publicación.

Afortunadamente get_adjacent_post() dispone de tres hooks donde añadir filtros para modificar los parámetros de la petición a la base de datos para modificar las entradas previa y siguiente: get_{$adjacent}_post_join, get_{$adjacent}_post_sort y get_{$adjacent}_post_where. $adjacent puede tomar los valores previous y next.

Escribo a continuación el código necesario para cambiar el criterio para obtener la entrada previa y siguiente en base a un campo (custom field) numérico que haya servido para ordenar ascendentemente las entradas en la plantilla de archivo.

Cómo convertir archivos .eps a .svg desde la línea de comandos con Inkscape

Imago voragine.net

Inkscape se puede utilizar en modo no interactivo desde la línea de comandos. Esta funcionalidad es muy útil para automatizar tareas como el cambio de formato de un grupo de imágenes.

Para generar un archivo .svg a partir de un .eps se puede invocar inkscape de la siguiente manera:

inkscape -o archivo.svg archivo.eps

Para aplicar este comando a un grupo de archivos .eps que están en la misma ubicación se puede usar un loop de bash:

for i in *.eps; do inkscape -o $i.svg $i; done

Instalar una impresora Ricoh SP112SU en Linux Debian

Imago voragine.net

La impresora Ricoh SP112SU es algo caprichosa pero puede instalarse en Linux gracias a un programita desarrollado por una persona que lo necesitó en su momento, como ocurre muchas veces en Linux, y que tiene ya casi diez años pero sigue funcionando. El programita se puede descargar de un repositorio de github.

Los pasos que se pueden encontrar en el archivo Readme del repositorio no me han funcionado, así que recojo aquí el proceso completo para instalar la impresora Ricoh SP112 SU en un sistema Debian, Ubuntu o derivados.

Cómo cerrar los comentarios para todas las entradas en WordPress usando wp-cli

Imago voragine.net

La gestión de los comentarios en un wordpress que ya no está muy activo, que se queda sin moderación, puede llevar un buen rato si no se toman las medidas para prevenir que nuestra base de datos crezca desmesuradamente a causa de los comentarios spam o los que se quedan en espera de ser aprobados, que casi en su totalidad serán spam también.

Hace un tiempo publiqué cómo borrar masivamente comentarios de la base de datos usando wp-cli. Si no se tiene más remedio, es una buena manera de adelgazar la base de datos. Aunque siempre es mejor atajar el problema antes de que se produzca. Para ello se pueden tomar dos medidas: cerrar los comentarios para las nuevas publicaciones y también para todas las que se publicaron en el pasado.