Generar libro en varios formatos con Pandoc

Un libro hoy en día puede estar disponible en varios formatos: HTML, PDF, EPUB, libro impreso, etc. Lo ideal es que esté disponible en la mayoría de formatos posibles para llegar al mayor número de personas posible. Sin embargo, no es cómodo editar varios archivos cuando solo queremos realizar un cambio. Para evitar ese trabajo tedioso podemos usar un formato base y convertir de este a otros formatos con Pandoc.

Podemos escribir el libro con LibreOffice Writer o con un editor de texto plano en formatos como HTML, LaTeX, Markdown, etc. Para convertir ese archivo a otro formato bastaría con ejecutar un comando.

Para ilustrar como hacerlo todo te enseñaré cómo genero este libro. Como sistema de control de versiones decidí usar Git y crear un repositorio público. Puedes clonar el repositorio ejecutando los siguientes comandos:

sudo apt install git
git clone https://notabug.org/jorgesumle/la-cultura-es-libre-una-historia-de-la-resistencia-antipropiedad

Una vez clonado verás una carpeta llamada markdown, allí es donde se encuentra el texto del libro en formato Markdown. Instala Pandoc y Make ejecutando sudo apt install make pandoc. Basta con ejecutar make html en la carpeta raíz del repositorio para generar el HTML; con el formato EPUB hay que ejecutar make epub.

Hay pocas líneas de código para generar los formatos HTML y EPUB. Sin embargo, para generar el PDF necesito instalar más dependencias y usar más código para generar y editar un archivo LaTeX que luzca bien cuando se convierta a PDF. Para ello yo he añadido código LaTeX personalizado (se encuentra en la carpeta latex_personalizado) al archivo LaTeX con el que genero el PDF. También es posible generar un archivo PDF bonito usando CSS, pues se puede elegir un generador de PDF basado en HTML con la opción --pdf-engine.

La documentación de Pandoc es un buen punto de partida para ver cómo añadir metadatos y generar archivos de salida cómo necesites. Si, como yo, optas por usar LaTeX para generar el PDF, en Internet encontrarás documentación y personas que proponen soluciones a problemas comunes.

Recortar archivo multimedia con FFmpeg

Si solo quieres editar un archivo multimedia para recortar su principio, su final o ambos, lo más rápido es usar FFmpeg. FFmpeg se puede instalar en distribuciones basadas en Debian con sudo apt install ffmpeg.

Si queremos quitar los 10 primeros segundos de un archivo multimedia, basta con ejecutar FFmpeg así:

ffmpeg -i cancion.mp3 -ss 10 cancion2.mp3

Después de -i se especifica el archivo que queremos editar (cancion.mp3); -ss seguido de 10 indica los segundos que queremos quitar; finalmente, se especifica el nombre del nuevo archivo, cancion2.mp3.

Si queremos quitar tanto el principio como el final, podemos añadir el argumento -to:

ffmpeg -i cancion.mp3 -ss 15 -to 04:10 cancion2.mp3

Después de -to debe haber una posición, en este caso el minuto 4 y el segundo 10 (04:10). También existe la posibilidad de usar -t, que para obtener el mismo resultado se usaría así:

ffmpeg -i cancion.mp3 -ss 15 -t 235 cancion2.mp3

-t indica que se grabará hasta pasados 235 segundos en el nuevo archivo. En este caso, esos 235 nuevos segundos se grabarán después de saltarse los 15 primeros.

Instalar servidor Nginx con PHP en Debian 11

En este artículo enseño cómo instalar un servidor Nginx que pueda ejecutar programas de PHP en Debian 11.

Primero hay que instalar los siguientes paquetes:

sudo apt install nginx php php-fpm

A continuación, hay que descomentar las siguientes líneas del archivo de configuración predeterminado de Nginx (/etc/nginx/sites-available/default):

#location ~ \.php$ {
#   include snippets/fastcgi-php.conf;
#
#   # With php-fpm (or other unix sockets):
#   fastcgi_pass unix:/run/php/php7.4-fpm.sock;
#   # With php-cgi (or other tcp sockets):
#   fastcgi_pass 127.0.0.1:9000;
#}

Quedando así1:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php-fpm (or other unix sockets):
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    # With php-cgi (or other tcp sockets):
    #fastcgi_pass 127.0.0.1:9000;
}

Luego hay que comprobar si la sintaxis del archivo de configuración es correcta con sudo nginx -t. Si no da error, iniciamos el servicio de Continúa leyendo Instalar servidor Nginx con PHP en Debian 11

Snaps en Ubuntu: menos seguridad y actualizaciones automáticas

Con su nueva versión 22.04, que será publicada el 21 de abril, Ubuntu hará que más programas usen paquetes Snap en vez de los .deb. Estos paquetes se actualizan de forma automática sin pasar por una fase de prueba como sucede con los paquetes de Debian y otras distribuciones. En el caso del paquete de Firefox, es el equipo de Mozilla (no Ubuntu) quien decide cómo y cuándo se actualiza el navegador.

Firefox es software libre, pero incluye componentes privativos como Pocket. Mozilla puede mediante Snap añadir otros componentes parecidos y funcionalidades desagradables.

Los Snaps tienen algunas ventajas: permiten empaquetar un programa con todas sus dependencias, funcionan en cualquier distribución, etc. Sin embargo, ralentizan el proceso de arranque, son mucho más lentos cuando se ejecutan por primera vez, ocupan más espacio (pues contienen en ellos bibliotecas que podrían usarse por varios programas), su repositorio predeterminado («tienda») es privativo, requiere el uso de systemd, etc.

Si el uso de los Snaps fuera opcional en Ubuntu, no habría tanta controversia, pero Ubuntu los ha impuesto para varios paquetes, para los que ya no existe una alternativa .deb.

Bloquear sitios web: archivo hosts

Para bloquear páginas web puedes usar una extensión para el navegador (como Block Site), un servidor proxy (como Squid), pero también existe la opción de editar el archivo hosts, método que apenas consume RAM y nos servirá, a diferencia de la extensión del navegador, para cualquier navegador o programa Continúa leyendo Bloquear sitios web: archivo hosts