Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Usando submodules en git

Imago voragine.net
• Por

Los submodules de git permiten incluir un repositorio en otro en cualquier ubicación. Incluir por ejemplo una librería de javascript en un proyecto web como un módulo permite funcionar con su última versión fácilmente, sin necesidad de preocuparse por sustituir versiones manualmente: basta actualizar el repositorio.

Yo he usado los módulos de git por primera vez para hacer una web con Hugo. En el repositorio del sitio web he incluido el theme Learn de Hugo como módulo.

Entorno de desarrollo para R RStudio y RStudio server en Debian

Imago voragine.net
• Por

RStudio es el entorno de desarrollo más extendido para programar con R. Me cuesta usar un entorno de desarrollo que no sea vim pero parece ser que en el caso de R merece la pena, así que lo he instalado en mi Debian Buster.

He aprovechado para instalar y probar RStudio Server, así que en este pequeño manual lo cuento también, y cómo hacer las configuraciones básicas. RStudio Server permite usar RStudio desde cualquier máquina cliente a través de un navegador.

Script para monitorizar y reiniciar automáticamente el servidor de base de datos mysql en caso de fallo

Imago voragine.net
• Por
Hay programas que permiten monitorizar todo un sistema y reiniciar los servicios que se paran o fallan de manera inesperada, todo esto automáticamente. Es el caso de monit, un programa que se ejecuta en segundo plano (daemon) eficaz y que no consume muchos recursos. Sin embargo hay veces que es más rápido y ligero hacer un pequeño script de bash y ejecutarlo periódicamente con cron. Esto es exactamente lo que he hecho para monitorizar el servidor de base de datos de uno de mis servidores web y reiniciarlo en caso de que se pare.

Expresiones regulares de vi y Perl para sustituir comas por puntos en números decimales, y cómo aplicarlo en PHP

Imago voragine.net
• Por

Los lenguajes de programación fueron inventados por gente que hablaba y escribía en inglés, así que están pensados para funcionar con las convenciones lingüisticas y matemáticas inglesas. Cuando cualquier lenguaje de programación tiene que relacionarse con bases de datos en idiomas diferentes siempre hay problemas.

Uno típico se da cuando se utiliza una base de datos en español que contiene números racionales en su expresión decimal. Para notar los decimales en inglés se utiliza el punto (0.45) y en español la coma (0,45). Así que antes de operar con estos números hay que convertir esas comas en puntos para que el lenguaje de programación entienda los números como decimales.

Este problema lo encontramos por ejemplo cuando queremos insertar datos que tenemos en un CSV a una base de datos SQL, utilizando PHP. Pondré como ejemplo el CSV de un proyecto en el que estoy trabajando, una herramienta para medir las emisiones de dióxido de carbono en los procesos constructivos.

Podemos transformar los números fácilmente usando expresiones regulares de vi en el editor vim, o expresiones regulares Perl en PHP mediante la función preg_replace.

Cómo hacer copias de seguridad de bases de datos con PHP y mysqldump

Imago voragine.net
• Por
Los siguientes scripts de PHP llaman al programa mysqldump para hacer una copia de seguridad de una base de datos. La primera versión, básica, genera un archivo comprimido con gzip que aloja en la ubicación desde donde se ejecute el script. La segunda versión incorpora una salida para cada comando utilizado, para saber en el caso de que haya fallo dónde se ha producido; además utiliza bzip2 como compresor, más eficiente. Realizar copias de bases de datos mediante un script de PHP puede ser útil si no tenemos acceso SSH al servidor.

Migrar grandes (y pequeñas) bases de datos, fácilmente y sin limitaciones, usando la línea de comandos

Imago voragine.net
[actualizado el ] • Por
Si se tiene acceso SSH al servidor donde queremos migrar la base de datos, recomiendo hacerlo usando únicamente comandos. La línea de comandos nos evita lidiar con las limitaciones de PHPMyAdmin, el servidor web o el navegador. Por mi experiencia, tras probar otros métodos para migrar grandes bases de datos, he comprobado que hacerlo en la línea de comandos es la manera más segura y rápida.

Cómo interactuar con el servidor de base de datos sql mediante comandos, desde un script de bash

Imago voragine.net
• Por
Aunque generalmente nos comuniquemos con el servidor de base de datos SQL mediante PHP u otro lenguaje para generar una salida HTML, hay veces que es muy útil hacerlo usando un script de bash. Por ejemplo cuando queremos automatizar en nuestro servidor la creación de bases de datos, o ejecutar una búsqueda con reemplazo (search and replace) de un registro completo o de un cadena concreta. Para ejecutar consultas al servidor SQL en modo no interactivo, cosa que necesitamos para hacerlo desde un script, debemos acompañar la orden mysql con el modificador -e, al que daremos como valor la consulta en cuestión.

Usando bash y cron para automatizar la copia de seguridad de una base de datos

Imago voragine.net
[actualizado el ] • Por
Este post explica cómo programar un pequeño script en bash que hace copia de seguridad de una base de datos usando mysqldump, y envía el archivo sql generado a una dirección de correo usando el cliente de línea de comandos mutt. Así que hay que tener instalados estos dos paquetes en la máquina donde se vaya a hacer correr el script. El script se ejecutará con la frecuencia deseada usando cron.

Cómo configurar y usar googlecl en tu servidor, sin instalarlo

Imago voragine.net
[actualizado el ] • Por
Googlecl es una aplicación de Google que permite interactuar con sus servicios desde la línea de comandos. Es muy útil para automatizar comunicaciones con los servidores de Google, e integrar en scripts consultas a datos alojados en cuentas Google. Googlecl es un script de Python, así que depende de este paquete. Además utiliza otro paquete de Google llamado gdata, también escrito en Python, lo cual nos permite ejecutar googlecl sin necesidad de instalar estos dos paquetes. Esta posibilidad nos puede venir muy bien si necesitamos googlecl en un servidor donde no tenemos permisos para instalar paquetes. En este caso lo único que necesitamos es que el servidor tenga Python instalado.

Cómo actualizar una cuenta de Twitter mediante PHP y OAuth: aplicación para publicar en el timeline de un usuario

Imago voragine.net
• Por
Para actualizar una cuenta de Twitter desde una web externa hay crear una aplicación que utilice el sistema de autentificación OAuth. Para ello hay que registrarla en la página de desarrolladores de Twitter. Para comunicarse con Twitter a través de OAuth se pueden usar varias librerías ya preparadas; en este caso usaremos twitteroauth de Abraham, que consiste en dos archivos: OAuth.php y twitteroauth.php.