Writing — 104 posts · 2007–2026
Posts
Linux and sysadmin notes from the late 2000s, Ruby, PHP and Git from the years after, and lately code agents, team leadership and web performance.
Subscribe via RSS2010
A crontab workaround for automatic package upgrades on Ubuntu, for the case where unattended-upgrades won't cover your own repositories.
Using Grub2's basic authentication to lock individual boot entries behind a user and password, and the regression that made it necessary.
2009
Four months of fighting a MacBook 2,1 into running Ubuntu 9.10, written as a list of the issues and how each one was fixed.
Why a heavily used MySQL database stays fragmented even after you delete data, and how to optimise tables that are full of VARCHAR columns.
Using memcached through mod_cache as Apache's content cache, so several servers can share the same cached responses.
Clases CSS para rotar imágenes y cualquier elemento HTML en pasos de 90 grados, incluido cómo fijar el origen de la rotación.
Complementos para Fantasdic que permiten consultar dicionarios e fontes terminolóxicas galegas dende o escritorio de GNOME.
Segunda parte sobre XML en Ruby: usar StreamParser de REXML delegando la gestión de nodos en una clase propia.
Primera parte sobre análisis de XML en Ruby: la diferencia entre tree parsing y stream parsing, y cuándo conviene cada uno.
2008
De un Debian recién instalado a una máquina con Apache, MySQL, SSH endurecido e iptables, sin tocar el teclado del servidor. Capistrano no es sólo para desplegar aplicaciones.
find, locate y grep en la práctica: buscar archivos por nombre o por contenido desde el terminal y ejecutar comandos sobre los resultados.
Tercera entrega de la serie sobre Nginx: instalar PHP 5 y servir aplicaciones y scripts PHP desde el servidor.
Un script de Bash, con autocompletado, para abrir la documentación de cualquier gema de Ruby instalada sin salir del terminal.
Qué variables mirar en MySQL para saber si tus consultas se comportan como deberían, y qué ajustes de configuración mueven de verdad el rendimiento.
Cómo pasar los datos de SQLite3 a MySQL cuando la base de datos de juguete del desarrollo ya no sirve para medir rendimiento.