Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Sustituciones con expresiones regulares en una base de datos WordPress con WP-CLI

Imago voragine.net
• Por
Recientemente he tenido que desactivar y desinstalar en un sitio WordPress el plugin pdf-viewer, ya que está fuera de desarrollo y tiene vulnerabilidades que pueden ser explotadas para infectar el sitio WordPress. Lo he sustituido por el plugin PDF.js Viewer que hace exactamente lo mismo. El plugin con vulnerabiliades usaba el sortcode [pdfviwer] para incluir un visor PDF en el contenido de un post; el sustituto usa el shortcode [pdfjs-viewer]. La sintaxis de ambos plugins es ligeramente diferente. La sustitución del plugin implicaba sustituir todos los antiguos shortcodes por el nuevo. Para no hacer esto a mano he recurrido a la interfaz de línea de comandos de WordPress, WP-CLI. Se puede usar el comando search-replace con expresiones regulares. A continuación los pasos que he seguido.

Actualizar la BIOS en la placa base Gigabyte B550M DS3H

Imago voragine.net
• Por
La BIOS (Basic Input/Output System) es un tipo de software que se encarga de comprobar que el hardware de ordenadores PC está en buen estado y luego de arrancar el sistema operativo. La BIOS es diferente para cada fabricante y modelo de placa base. Como todo software, tiene que actualizarse a las nuevas versiones que vayan liberando los desarrolladores, para solucionar vulnerabilidades y hacer la placa base compatible con los nuevos modelos de otros componentes (procesadores CPU, memoria RAM, discos duros, tarjetas gráficas...) que se conectan a ella. Mi PC de sobremesa funciona usando una placa base Gigabyte B550M DS3H. No la había actualizado desde que monté joy, mi ordenador actual. Esta placa viene con una interfaz muy cómoda de usar. Para actualizar la BIOS hay una herramienta integrada en ella que permite cargar la nueva versión desde un disco USB.

Plegado de código (folding) en vim con fold

Imago voragine.net
• Por
He encontrado un poco de tiempo para configurar y probar fold, el sistema nativo de plegado de código de vim. Funciona muy bien cuando los archivos están formateados con sangrías. Si no lo están se puede configurar para que funcione por sintaxis y así detecte el lenguaje de programación del archivo. También dispone de un modo manual, para controlar los pliegues por líneas y adaptarlos al archivo concreto que se esté trabajando.

Instalar, configurar y usar vim-plug, gestor de extensiones de vim

Imago voragine.net
• Por

Hace un par de años que cambié de gestor de extensiones en vim a vim-plug. Antes usaba Vundle. Tenía estas notas que escribí entonces sobre cómo instalar, configurar y usar vim-plug y he encontrado algo el tiempo para publicarlas. Ya he olvidado por qué decidí cambiar. Tengo el recuerdo de luchar un poco con Vundle pero revisando mi archivo .vimrc veo que la sintaxis es muy similar.

Cómo saber con wp-cli en qué sitios de un WordPress Multisite está activo un plugin

Imago voragine.net
• Por

Hay veces que se notifica una vulnerabilidad en un plugin de WordPress y es muy recomendable ponerlo en cuarentena: eliminarlo, o al menos desactivarlo, hasta que se solucione el problema. Cuando esto ocurre en una instalación Multisite de WordPress con decenas o centenas de sitios antes de poder desactivarlo o eliminarlo conviene saber en qué sitios está activo.

Con wp-cli y un loop de bash se puede realizar esta tarea automáticamente.

Cómo cambiar un grupo de ubicaciones georreferenciadas de sistema de referencia de coordenadas geográficas (CRS)

Imago voragine.net
• Por

Los sistemas de referencia de coordenadas (CRS) o sistemas de referencia espacial (SRS) son complicados, al menos para mí que no soy geógrafo y tengo un conocimiento superficial de GIS: existen más de 13.000 sistemas diferentes y siempre me cuesta saber en qué sistema están las ubicaciones de un conjunto de datos georreferenciados. Siempre he tenido la intuición de que es algo complejísimo, sin saber exactamente a qué nivel. Solo cuando leí este maravilloso post de 2011 sobre el tema (que por supuesto no hace falta leer para conseguir cambiar de CRS un conjunto de datos), empecé a tomar consciencia de la magnitud de la complejidad: el post explica la incapacidad de las distintas herramientas de transformación para conseguir precisión en las conversiones, dando resultados que pueden diferir en torno a 20km. Apasionante lectura también para personas interesadas en saber curiosidades como de dónde vienen los códigos EPSG, hoy uno de los estándares para sistemas de referencia de coordenadas.

Pero voy a tema. A mí que trabajo casi siempre desarrollando para web me interesa en general que los datos geográficos usen latitud y longitud. Es el sistema de coordenadas que se suele usar en web: Google Maps, Bing Maps, OpenStreetMap usan latitud y longitud. Si los datos que recibo usan un sistema cartesiano, tengo que transformarlos.

Convertir imágenes PNG o JPG a WEBP, y viceversa, desde la línea de comandos

Imago voragine.net
• Por

WebP es el formato estándar abierto más utilizado para servir imágenes comprimidas en web. Está desarrollado por Google. Casi cualquier framework o CMS puede generar imágenes en este formato a partir de formatos comprimidos como PNG o JPG así que raramente hay que hacerlo manualmente. Sin embargo hay veces que aún me hace falta, por ejemplo cuando hay que optimizar un sitio web que tiene unos años. En estos casos merece la pena hacerlo desde la línea de comandos: es la manera más rápida y además, como siempre ocurre con la línea de comandos, permite automatizar el proceso con un script de bash.

Google dice que las imágenes WebP lossless pesan un 26% menos que la versión PNG. WebP permite compresión lossless (sin perdida de datos para una eventual reconversión al formato original) y lossy (con perdida de datos pero mayor nivel de compresión).

Solución al error VirtualBox can’t operate in VMX root mode

Imago voragine.net
[actualizado el ] • Por Enlace permanente

Tras la actualización en Debian Trixie a la versión 6.12.6 del kernel de Linux he ido a arrancar mis máquinas virtuales de Virtualbox, y Vagrant me ha devuelto el siguiente error:

VBoxManage: error: VirtualBox can't operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot (VERR_VMX_IN_VMX_ROOT_MODE)

La extensión KVM del kernel es la que conecta con el sistema de virtualización de Intel, el que usa mi Thinkpad. En un primer momento he intentado desactivar en la BIOS el sistema de virtualización de Intel y reconfigurar el kernel. Eso no ha funcionado, Virtualbox necesita el sistema de virtualización para funcionar.

Luego he probado a desactivar los módulos KVM del kernel:

sudo modprobe -r kvm_intel
sudo modprobe -r kvm

Tras la desactivación, Virtualbox vuelve a funcionar perfectamente.

En el caso de un procesador AMD, en lugar de Intel, los módulos a desactivar son los siguientes:

sudo modprobe -r kvm_amd
sudo modprobe -r kvm

Actualización 19 marzo 2025

Con la actualización de virtualbox a la versión 7.0.20 en Debian, el responsable del paquete notifica lo siguiente:

In kernel 6.12, KVM initializes virtualization on module loading by default.
This prevents VirtualBox VMs from starting. In order to avoid this, either add
«kvm.enable_virt_at_load=0» parameter into kernel command line or unload
the corresponding kvm_XXX module.

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

Imago voragine.net
• Por

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
• Por

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.