Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo evitar el error “Cannot modify header information – headers already sent” cuando se usa wp_redirect en WordPress

Imago voragine.net
• Por

Si se quiere redirigir a otra página en WordPress usando wp_redirect() suele ocurrir que no hay efecto alguno, que no se produce la redirección al incluir esta función en una función del archivo functions.php o en una plantilla de un tema.

WordPress devuelve un error del tipo "Cannot modify header information - headers already sent".

Servidor de webcam con Motion en una Raspberry Pi

Imago voragine.net
• Por

Para montar un servidor de webcam en una Raspberry Pi se puede usar Motion. Si ya se tiene un sistema raspbian corriendo en la rasp solo hace falta instalar y configurar Motion.

Motion está pensado para capturar y almacenar imágenes de una o varias cámaras, con la posibilidad de detectar eventos, y mostrar las imágenes capturadas en tiempo real vía HTTP, para poder acceder a ellas remotamente a través de una URL.

Espacios de encuentro diverso

Imago voragine.net
• Por

Publicación Civic Design Course

Domenico Di Siena lanzó la primera edición del Curso de Diseño Cívico en septiembre de 2015. Entonces nos pidió a Juan López-Aranguren y a mí que le ayudásemos a coordinar el curso. Desde entonces se han completado tres ediciones y ahora se está cursando la cuarta. Sin duda es uno de los proyectos más estimulantes en los que vengo participando en los últimos años. En 2018 se ha publicado el libro Civic Design que recoge teoría, metodología y proyectos desarrollados durante las tres primeras ediciones del curso. El libro está estupendamente coordinado por Cecilia Ciancio y Maje Reig Alberola. Cecilia y Maje me pidieron un texto corto de temática libre para la sección "Thoughts" del libro, que compila voces de personas que han formado parte de la comunidad del curso con la idea de dar una visión múltiple de lo que es el curso, más que una versión única. El enfoque me parece un acierto porque encaja mucho con el espíritu diverso del curso.

El texto lo acabé escribiendo en el último momento, el 15 de noviembre de 2018. Estaba tomando notas mientras veía el vídeo de la charla que había dado David Weinberger en Medialab-Prado unos días antes, y me di cuenta de que Weinberger estaba describiendo aspectos del curso a los que yo no había sido capaz de poner palabras. Las ventajas de la procrastinación.

La versión electrónica del libro Civic Design se puede descargar libremente (PDF, 140MB) desde la página de la Civic Innovation School.

Publico aquí el texto que escribí para el libro.

screen: ejecutar un comando en Linux y dejarlo corriendo tras cerrar la sesión

Imago voragine.net
• Por

GNU screen es un programa que permite gestionar varias sesiones en la línea de comandos en paralelo: permite crear terminales virtuales en la línea de comandos, visualizarlas al mismo tiempo en un mosaico, saltar de una a otra y crear varios mosaicos. Funciona como un gestor de ventanas en la línea de comandos. También sirve para lanzar un comando y dejarlo corriendo cuando se cierra la sesión.

Usar screen es muy fácil. Tiene muchas posibilidades. Aquí recojo únicamente las necesarias para abrir una sesión, desconectarse y reconectarse a ella, y finalizar la sesión.

Yo lo uso para lanzar procesos en máquinas remotas que tardan varias horas en ejecutarse. Hacer esto permite conectarse a una máquina remota, lanzar el proceso, desconectarse y dejarlo corriendo, y reconectarse más tarde para ver cómo va.

Instalar LineageOS en un Motorola Moto G desde Linux

Imago voragine.net
• Por

Estas navidades ha dejado de funcionar el teléfono de mi madre, un Wiko Rainbow que ha salido bastante malo. Mi hermana acaba de cambiar de teléfono porque su antiguo Motorola Moto G le daba algún problema con el micrófono y los altavoces. Antes de que mi madre se comprase un nuevo teléfono me apetecía ver si podía reutilizar el de mi hermana, si los problemas que tenía eran de hardware o de software: si con otro sistema operativo el teléfono volvía a funcionar y mi madre podía usarlo.

He probado a instalar LineageOS en el Moto G y por ahora el micrófono y los altavoces funcionan correctamente.

Cómo consultar la distribución de teclado activa y cómo cambiarla con línea de comandos

Conocer el comando para consultar y editar la distribución de teclado (keyboard layout) es útil para poder asociarlo a un atajo de teclado en cualquier escritorio o entorno de ventanas. Un comando bastante genérico que se encuentra en casi todas las distribuciones Linux es setxkbmap.

Para cambiar la distribución de teclado a una que ya tengamos instalada en el sistema:

Para consultar la distribución de teclado:

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.

Cómo hacer un contador en un loop (range) de Hugo

Esa operación básica en casi cualquier lenguaje que es poner en funcionamiento un contador en Go no lo es en absoluto. Estoy aprendiendo la sintaxis que usa Hugo para construir sus templates, Go templates, y pensé que definir una variable numérica, asignarle el valor 0, e incrementar su valor con cada iteración se haría igual que en cualquier otro lenguaje, pero no. De hecho hasta que ha salido la versión 0.48 de Hugo no se podía ni redefinir el valor de una variable. Para versiones anteriores hay que recurrir a Scratch, una serie de métodos que permiten salvar esta limitación en Go Template.

Usando Scratch hacer un counter vuelve a ser posible:

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.