Autonomía digital y tecnológica

Código e ideas para una internet distribuida

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.

La propiedad scroll-margin de CSS

Imago voragine.net

La propiedad scroll-margin de CSS es una de esas en las que he pensado desde hace años como una que debería existir. Y no sé cómo no he dado con ella hasta ahora, a pesar de que está disponible desde el lanzamiento de CSS3. Gran descubrimiento, aunque sea tardío.

scroll-margin permite definir el margen de un elemento respecto a los límites relativos del elemento que los contiene. Quién no ha necesitado esto cuando se utilizan anchors y se crea un menú con enlaces que llevan a distintas secciones --distintas alturas en el scroll-- de la página actual.

Mis primeras impresiones usando Zutty, una terminal acelerada por GPU

Imago voragine.net
[actualizado el ]

En mis dos máquinas principales he empezado a usar Zutty, un emulador de terminal, lo que hoy día se llama terminal a secas, porque ya se usan muy poco las verdaderas terminales. Es una terminal acelerada por GPU. Estas terminales tienen tiempos de respuesta más reducidos que los emuladores de terminal no acelerados, sobre todo cuando la salida de un comando es extensa.

Usar terminales aceleradas por GPU se ha convertido en una de esas cuestiones que divide radicalmente a los usuarios avanzados.

Cómo añadir Windows o macOS a Grub si éste no lo ha detectado

Imago voragine.net

Hay veces que al instalar Linux o al actualizarlo, Grub se actualiza también, y puede ocurrir que desaparezca del menú de arranque de Grub Windows en caso de que se tengan varios sistemas operativos instalados.

Una de las posibles causas puede ser que OS_prober, el programa que usa Grub para detectar sistemas operativos instalados distintos a Linux, esté desactivado en las opciones de Grub. A partir de la versión 2.06 del gestor de arranque, OS_prober viene desactivado por defecto. En este caso para usar OS_prober hay que activarlo.

Cómo eliminar la configuración residual de un paquete en Debian

Imago voragine.net

Para desinstalar un paquete del sistema en Debian usando apt se puede usar apt remove. Sin embargo, este comando no elimina los archivos de configuración que se crearon cuando se instaló el paquete. Para eliminar los archivos de configuración, lo que apt llama configuración residual, se puede usar dpkg --purge.

Cómo subir archivos SVG al gestor de medios de WordPress

Imago voragine.net

Habilitar la subida de archivos SVG al gestor de medios de WordPress es tan fácil como añadir cinco líneas de código al theme o plugin que se esté desarrollando. Sin embargo, verificar que el SVG que se está subiendo es seguro es algo más complicado: hay que analizar el código XML que conforma el archivo SVG en busca de código malicioso que una vez en el servidor podría crear una vulnerabilidad. Por esta razón es una buena idea usar el plugin Safe SVG, desarrollado y mantenido por la empresa 10up, que comprueba los archivos antes de añadirlos al gestor de medios usando la biblioteca SVG-sanitizer. Este plugin además optimiza los archivo SVG usando la biblioteca svgo.