Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Por qué usar nvm para configurar un entorno de desarrollo y ejecución Node.js en Linux Debian

Imago voragine.net
• Por
En Linux Debian, no se pueden instalar paquetes con npm globalmente en el sistema (npm install -g) sin usar sudo. Es una medida de seguridad necesaria que puede provocar problemas de permisos para usuarios sin permisos sudo cuando algún paquete se instala globalmente usando sudo, o que implica tener que instalar cada paquete como dependencia de cada repositorio. Esto puede tener sentido con dependencias del proyecto que se está desarrollando, pero no tanto con paquetes del entorno de desarrollo que se usan en todos los proyectos (linters, revisores de código, typescript...). Esto se soluciona usando nvm que permite crear un entorno Node.js específico para cada usuario del sistema, de manera que los paquetes instalados globalmente son globales para el usuario que los instala. nvm se puede instalar sin usar sudo, así que un usuario no necesita contactar al administrador del sistema.

Cómo instalar Virtualbox 7.2 y vagrant 2.4.9 en Debian 13 Trixie

Imago voragine.net
• Por
Actualmente en Debian 13, incluso con los repositorios unstable activos la versión más reciente de Virtualbox que se puede instalar es la 7.0. A mí me está dando muchos problemas ya que no se compila bien el kernel 6.16. La única manera que he conseguido de arreglarlo es instalar Virtualbox 7.2. Como uso Vagrant para gestionar las máquinas virtuales creadas con Virtualbox, he necesitado actualizar a Vagrant 2.4.9 ya que las versiones anteriores no son compatibles con Virtualbox 7.2. La versión más reciente en los repositorios de Debian es la 2.3.7, así que la versión 2.4.9 hay que instalarla desde otras fuentes.

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).