Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Gráfico sobre la vida útil de los objetos: influencia de la democratización de los medios de producción y la inteligencia colectiva

Imago voragine.net
[actualizado el ] • Por
El siguiente textito lo escribí a raíz de un encargo para definir "Mercado de obsoletos" como término a incluir en un glosario que hasta dónde yo sé nunca llegó a ver la luz. Originalmente fue publicado en el blog de Obsoletos. Gráfico sobre la vida útil de los objetos, y las fuerzas que infuyen en ella.

Historiografía digital: análisis y visualización de datos históricos

Imago voragine.net
[actualizado el ] • Por
Me encanta la idea del blog Sapping Atenttion. Como reza su tagline Digital, Humanities: Using tools from the 1990s to answer questions from the 1960s about 19th century America, es un blog de historia escrito por un historiador digital, como el propio autor denomina a los investigadores que analizan la historia utilizando herramientas digitales, generalmente de análisis y visualización de datos. La idea es saldar una cuenta pendiente con la historia: utilizar las herramientas de análisis y visualización de datos disponibles hoy día para responder preguntas que en su momento no podían ser respondidas, por falta de capacidad de análisis.

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.

/*
 * Parameters:
 *     $string - The string to sanitize.
 *     $force_lowercase - Force the string to lowercase?
 *     $anal - If set to *true*, will remove all non-alphanumeric characters.
 */
function string_sanitize($string, $force_lowercase = true, $anal = false) {
    $strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]",
                   "}", "\\", "|", ";", ":", "\"", "'", "‘", "’", "“", "”", "–", "—",
                   "—", "–", ",", "<", ".", ">", "/", "?");
    $clean = trim(str_replace($strip, "", strip_tags($string)));
    $clean = preg_replace('/\s+/', "-", $clean);
    $clean = ($anal) ? preg_replace("/[^a-zA-Z0-9]/", "", $clean) : $clean ;
    return ($force_lowercase) ?
        (function_exists('mb_strtolower')) ?
            mb_strtolower($clean, 'UTF-8') :
            strtolower($clean) :
        $clean;
}

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.