Blog de , aka skotperez

Autonomía digital y tecnológica

Código e ideas para una internet distribuida


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

• Por
Alfonso Sánchez Uzábal
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.

Función PHP para limpiar una cadena de texto y usarla como URL

La siguiente función, cuyo autor es Chyrp, prepara un string para ser usado como parte de una URL. Por ejemplo, permite crear el slug de un artículo a partir de su título.

Simplitt, generador de sitios estáticos a partir de una hoja de cálculo

• Por
Alfonso Sánchez Uzábal
Hace unos días Pablo y yo liberamos la versión 2.0 de simplitt. Simplitt permite construir webs sencillas y ligeras. En las versiones anteriores experimentamos con la idea de trabajar sin base de datos SQL para poder prescindir del servidor de base de datos, y así poder funcionar con un servidor sin muchos recursos de hardware. Como alternativa ligera a SQL, decidimos almacenar los datos en archivos de texto plano, para poder seguir disfrutando de la potencia de generar dinámicamente las webs. En esta nueva versión, hemos convertido simplitt en un generador de sitios estáticos que utiliza un archivo CSV como base de datos.

Cómo incluir un archivo en una variable: funciones de control de salida y bufers en PHP

• Por
Alfonso Sánchez Uzábal
Frecuentemente se usan en PHP las funciones include o require para incluir un archivo en otro. Esto se suele usar para fragmentos de código necesarios en múltiples lugares, para evitar así la repetición; también para estructurar el código y facilitar su edición. Ninguna de estas soluciones es válida si se quiere incluir el contenido de un archivo en una variable. Fundamentalmente porque esos archivos pueden contener código PHP que al ejecutarse produce una salida, en forma de código HTML, que es lo se quiere capturar con la variable. Es decir, en la variable no queremos el código "fuente", sino el código ya "procesado" por PHP.

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

[actualizado el ] • Por
Alfonso Sánchez Uzábal
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.

Botones de compartir en redes sociales personalizados y sin javascript

• Por
Alfonso Sánchez Uzábal
Cada botón de compartir en su red social no es otra cosa que una llamada a un programa en el servidor de la red social que permite publicar algo. Todo ello rodeado de un logo y un buen trozo de javascript, que hacen opaco el proceso, dificultando por ejemplo personalizar el aspecto del botón o modificar la petición. Por otro lado, los códigos ofrecidos por cada red social que construyen los botones de compartir, solicitan el logo y algo más de información a los servidores de la red social, así que muchas veces tardan en cargarse en exceso. La llamada al programa de la red social se realiza mediante URL, así que si conocemos la URL podemos ejecutarlo mediante un simple enlace, al que daremos el aspecto que queramos. Con parámetros en la URL podemos personalizar la petición como queramos.

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

• Por
Alfonso Sánchez Uzábal
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

[actualizado el ] • Por
Alfonso Sánchez Uzábal
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.

Diseño colaborativo: abriendo el proceso de diseño

• Por
Alfonso Sánchez Uzábal

El título de esta entrada es también el de un artículo que escribí por encargo de mi amigo Carlos Jiménez para el número 12 de la revista MasD, de la que es editor.

El artículo, Diseño colaborativo: abriendo el proceso de diseño, explica lo que desde nuestra práctica entendemos como proceso de diseño colaborativo, algunas nociones de cómo llevarlo a cabo y qué ventajas puede tener sobre modelos más tradicionales. El artículo es una destilación de lo que hemos aprendido investigando y experimentando en el estudio de diseño y desarrollo web montera34, desde que lo pusimos en marcha allá por 2004, Juan López-Aranguren, Ruben Lorenzo, Pablo Rey y yo.

Resumen: Frente a las formas tradicionales de organizar el proceso de diseño se pueden plantear nuevos esquemas más flexibles que desdibujan la separación entre cliente y diseñador. Los procesos de trabajo colaborativo facilitan la comunicación entre las distintas partes implicadas a cambio de debilitar las barreras de conocimiento de los distintos expertos, incluidos los diseñadores. Por otra parte, las nuevas tecnologías, al tiempo que facilitan la comunicación y el intercambio de conocimiento, también permiten al diseñador acceder a un amplio catálogo de soluciones disponibles, modificando por completo el entorno en el que desarrolla su trabajo y relativizando la importancia de la originalidad en el proceso de diseño. En este nuevo paradigma, la gestión del conocimiento creado colectivamente (procomún) y la comunicación con el cliente pasan a ser habilidades imprescindibles para llevar a buen fin cualquier proceso de diseño.