Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Entorno de desarrollo en local para WordPress con Varying Vagrant Vagrants

Imago voragine.net

Varying Vagrant Vagrants (VVV) es una de las maneras recomendadas por la comunidad que desarrolla WordPress para poner en marcha un servidor de desarrollo en local.

VVV es un entorno de desarrollo para WordPress que usa Vagrant, una herramienta pensada para montar entornos de desarrollo. Vagrant usa máquinas virtuales para ello. Al usar Vagrant se puede elegir el sistema de virtualización. VVV recomienda Virtualbox. Vagrant añade al sistema de virtualización, por ejemplo Virtualbox, una capa que facilita la automatización a la hora de crear y gestionar las máquinas virtuales usadas en el entorno de desarrollo.

VVV viene listo para comenzar inmediatamente el desarrollo, equipado con todo lo necesario en un entorno de desarrollo incluyendo herramientas específicas de WordPress como wp-cli.

Cómo cambiar el nombre de usuario (username) en WordPress usando wp-cli

Imago voragine.net
Enlace permanente

El nombre de usuario en WordPress está protegido por diseño, de manera que no se puede cambiar desde el panel de administración ni usando las funciones PHP para actualizar los datos de un usuario. La orden wp user update de WP-CLI tampoco permite cambiar el username. Esta protección tiene su lógica, pero hay veces que necesitamos cambiar algún username. Una manera de hacerlo es modificándolo directamente en base de datos.

Con WP-CLI podemos lanzar una query a la base de datos para cambiar el username:

wp db query "UPDATE wp_users u, 
    ( SELECT 
          COUNT(*) as number_of_same_login_users
          FROM wp_users u 
          WHERE user_login = 'mary_new' 
    ) tmp 
    SET u.user_login = 'mary_new' 
    WHERE 
            u.user_login = 'mary_old' 
        AND tmp.number_of_same_login_users = 0"

En una línea:

wp db query "UPDATE wp_users u, ( SELECT COUNT(*) as number_of_same_login_users FROM wp_users WHERE user_login = 'mary_new' ) tmp SET u.user_login = 'mary_new' WHERE u.user_login = 'mary_old' AND tmp.number_of_same_login_users = 0"

Visto en este hilo de wordpress.stackexchange.com.

Cómo obtener el propietario de una carpeta o archivo en Bash para usarlo en un script

Imago voragine.net
Enlace permanente

Para obtener el propietario de un archivo o carpeta en Linux se puede usar el comando stat, y de la siguiente manera se puede almacenar en una variable y usarlo cuando se quiera dentro de un script de bash:

owner=${stat -c '%U' /path/to/your/file}

Y para obtener de manera análoga el grupo de una carpeta o un archivo:

group=${stat -c '%G' /path/to/your/file}

Visto en el blog de Mattias Geniar.

Borrar masivamente entradas u otros contenidos en WordPress con wp-cli

Imago voragine.net
Enlace permanente

Recientemente he sufrido ataques en algunas webs gestionadas con WordPress. Una de las consecuencias es que cientos de artículos sobre casinos en línea y juegos de azar son creados. Borrar estos contenidos desde el panel de administración puede llevar un buen rato. Con wp-cli se puede hacer con un comando.

Normalmente estas infecciones crean los contenidos automáticamente y de una vez, así que la fecha es la misma para todos los contenidos. Podemos por tanto obtener un listado de entradas filtrado por fecha y luego borrarlas. Algo así:

wp post delete $(wp post list --year=2022 --month=06 --day=01 --format=ids) --force

Sobre la viabilidad de las infraestructuras digitales libres

Imago voragine.net
La infraestructura para servir tiles (las imágenes que conforman el donde de los mapas digitales) de OpenStreetMap en Estados Unidos es un único servidor, que está sobrecargado y empieza a ser insuficiente. Es un nuevo caso que nos impele a pensar cómo mantener las infraestructuras libres para que sean viables.

Instalar composer 2 en Debian Buster

Imago voragine.net
Enlace permanente

En Debian Buster la versión disponible de composer es la 1.8.4, en el momento de escribir este artículo:

skotperez@debian-buster:~$ sudo apt-cache policy composer
composer:
  Instalados: 1.8.4-1+deb10u1
  Candidato:  1.8.4-1+deb10u1
 Tabla de versión:
 *** 1.8.4-1+deb10u1 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        500 http://security.debian.org/debian-security buster/updates/main amd64 Packages
        100 /var/lib/dpkg/status

Cada vez más aplicaciones PHP que funcionan por ejemplo con Symfony, necesitan composer versión 2. Aunque composer 2 no está disponible en los repositorios oficiales de Debian se puede instalar fácilmente. En realidad basta con descargarlo y moverlo a una ubicación apropiada:

skotperez@debian-buster:~$ curl -sS https://getcomposer.org/installer | php
skotperez@debian-buster:~$ sudo mv composer.phar /usr/local/bin/composer2

Visto en DeveLike.

Probar el micrófono y grabar audio en Linux desde la línea de comandos

Imago voragine.net

Audio Linux Sound Architecture (ALSA) es la parte del núcleo de Linux que se encarga de gestionar el sonido en el sistema. Para facilitar la conexión con el hardware de sonido, ALSA tiene varios comandos.

Para obtener información sobre los dispositivos de captura de audio disponibles en el sistema se puede usar arecord.

Contexto

Cómo cambiar la zona horaria en Linux desde la línea de comandos

Imago voragine.net

Para consultar y configurar la zona horaria en Linux desde la línea de comandos se puede usar timedatectl.

Configurar en Linux el editor de línea de comandos por omisión

Imago voragine.net
Enlace permanente

Hay muchos programas que al ejecutarse en la línea de comandos usan un editor externo. Eligen el editor externo que esté configurado para ser llamado por omisión.

Para saber cuál es el editor por defecto y cambiarlo se puede usar update-alternatives:

skotperez@joy:~$ sudo update-alternatives --config editor
Existen 3 opciones para la alternativa editor (que provee /usr/bin/editor).

  Selección   Ruta                Prioridad  Estado
------------------------------------------------------------
  0            /bin/nano            40        modo automático
  1            /bin/nano            40        modo manual
* 2            /usr/bin/vim.basic   30        modo manual
  3            /usr/bin/vim.tiny    15        modo manual

Pulse  para mantener el valor por omisión [*] o pulse un número de selección: