Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Qué significa que el código de GitHub no esté en GitHub

Imago voragine.net
[actualizado el ] • Por
Hace unos días Jorge escribía en el blog de Ecosistema Urbano sobre las capacidades de GitHub como plataforma de colaboración que trasciende los proyectos de desarrollo de software. Como explica Jorge en el post, git es un sistema de control de versiones que fue inicialmente diseñado para el desarrollo colaborativo de software. Su potencial radica precisamente en que es distribuido, al contrario que otros sistemas de este tipo. Cuando se usa git para un desarrollo cada programador tiene en su máquina una copia completa de todo el código, que comparte con el resto mediante una serie de órdenes. Como cualquier sistema distribuido, en los desarrollos que usan git ninguno de los nodos implicados es imprescindible, no hay centro y periferia.

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

Imago voragine.net
• Por
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

Imago voragine.net
• Por
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

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 estructurar correctamente el archivo functions.php de un theme de WordPress: algunas buenas prácticas

Imago voragine.net
• Por
El archivo functions.php aloja fragmentos de código que queremos cargar en momentos y lugares diferentes, y para no repetirlos cada vez, convertimos en funciones que llamamos para que ejecuten su misión. funcions.php puede contener funciones a las que llamaremos en otras plantillas para construir el theme, otras a las que llamará un usuario desde el administrador (mediante shortcodes por ejemplo), y otras que cargarán funcionalidades adicionales a las que WordPress incluye de base (tipos de contenido personalizado, elementos extra en el administrador...). El archivo functions.php es el lugar para alojar la lógica del theme, las funciones. Y las plantillas alojarán el HTML y las llamadas a las funciones que sean necesarias. Así la edición del theme es más sencilla, porque todas las funciones están en el mismo sitio, y las plantillas permanecen limpias y ordenadas. A su vez las funciones dentro de functions.php deben seguir una estructura que permita llamarlas cuando son necesarias, modificaciones de otros programadores (por ejemplo en un )child theme, activarlas y desactivarlas de manera sencilla... Para tener un buen functions.php, conviene estructurarlo siguiendo una serie de buenas prácticas.

Canonical intenta cerrar Fixubuntu, sitio que critica Ubuntu por compartir datos de sus usuarios con otras empresas

Imago voragine.net
• Por
Hace unas semanas, Micah Lee, parte de la EFF lanzó el sitio fixubuntu, en el que advierte sobre la vulneración por parte de Canonical a la privacidad de los usuarios de Ubuntu. Además publicó un script que desactiva la búsqueda remota para recuperar la privacidad en el sistema. La respuesta de Canonical ha consistido en intentar cerrar fixubuntu, argumentando infracción a su propiedad intelectual, en vez de afrontar la crítica y solucionar el problema.

Documentación de open hardware abierta y a tiempo real

Los pads, Twitter y a otras herramientas de publicación inmediata y colectiva han permitido la documentación a tiempo real de eventos. En realidad, permiten hacer públicas inmediatamente esas notas que todos tomamos en cualquier evento con la idea de ordenarlas y publicarlas más tarde; cosa que nunca llegamos a hacer. Con la documentación de los procesos productivos (programar software o construir algo) pasa exactamente lo mismo.

En abril de 2013 se celebró el Open Source Hardware Documentation Jam, con el objetivo de encontrar maneras de documentar menos dolorosas. Las conclusiones y los modelos que se debatieron en el encuentro son parecidos a la documentación en tiempo real de eventos, a base de pads y Twitter, pero para los procesos de construcción: aplicaciones como Dozuki que permiten, mientras tienes el martillo en una mano, coger con la otra el móvil y hacer una foto o tomar una nota de voz, que se añadirá automáticamente a la documentación.

Más en Open Source Hardware Documentation Jam: A Report.

Contratos y licencias para obras de net.art que impiden su reproducción y su evolución

[El contrato] establece unas reglas básicas para ambas partes, determina asimismo los tiempos y las normas de translación [sic] de propiedad del dominio y ofrece un certificado de autenticidad. El artista conserva la propiedad intelectual de la obra, debe destacar el propietario de la obra y está autorizado a seguir exhibiendo la pieza, mientras que el comprador, además de no poder modificar bajo ningún concepto la obra original, debe garantizar que sea accesible al público y se mantenga online.

Este contrato, para obras de net.art, derivado del Art Website Sales Contract, muestra cómo tratar una obra de net.art como si fuera una obra de arte material, cómo no permitir su reproducción ni su modificación, cómo seguir basando el mercado del arte en la cantidad de copias de una obra.

Más en Un acuerdo que materializa lo virtual.

Entradas relacionados en WordPress sin necesidad de plugin

Imago voragine.net
• Por
Hace tiempo publiqué una manera de obtener un listado de posts relacionados en WordPress. Aquel método relacionaba contenido en base a las etiquetas comunes. Publico en esta entrada una receta que además añade las categorías: si no se encuentran etiquetas en común, se analizan las categorías. Además el código está estructurado en una función para incluirlo en functions.php, a la que podemos llamar desde cualquier plantilla, manteniendo el theme limpio y ordenado. El código ha sido desarrollado originalmente por Justin Tallant, que además acompaña el código de una buena reflexión sobre por qué es mejor un desarrollo propio que un plugin en este caso. La versión que publico aquí contiene algunas modificaciones que he añadido.

Instalar GNU/Linux desde un pendrive: cómo grabar una imagen en un USB con la línea de comandos

Imago voragine.net
[actualizado el ] • Por Enlace permanente

Hace tiempo que no utilizo CDs para instalar Linux, bien lo hago mediante arranque remoto PXE si el equipo no permite arrancar desde un dispositivo extraíble, bien desde un pendrive USB.

Esta última opción requiere preparar el dispositivo USB para que el equipo lo detecte como bootable y grabar en él una imagen del sistema que queremos instalar. Hay multitud de herramientas que hacen esto, pero todavía no he encontrado una tan fácil, rápida y eficaz como el programita cat de UNIX, disponible en todas las distribuciones GNU/Linux. Tan sencillo como ejecutar la siguiente orden como usuario root:

cat nombre.archivo.imagen.iso > /dev/sdX; sync

La X en /dev/sdX hay que sustituirla por la letra correspondiente a la unidad USB en la que se quiere grabar la imagen. Para saber cuál es la ubicación de la unidad USB se puede usar el comando df:

df -h