https://paquita.masto.host/polkillas

Nextcloud 14 en la Raspberry PI con PHP 7.2 (3). Servidor web, PHP 7.2 y base de datos

Raspbian Stretch es una versión de Debian 9 optimizada para el procesador de la Raspberry, que no es uno normal de ordenador (x86 o x86_64), sino más parecido a los de los móviles (arm). Al estar basada en Debian, nos vamos a encontrar versiones muy probadas de las aplicaciones, pero en versiones no muy modernas. Por ejemplo, a fecha de hoy (29 de noviembre de 2018) PHP sigue en la versión 7.0.

Por su parte, MariaDB es una bifurcación (fork) de MySQL que tiene todas las características de MySQL y alguna más, aparte de (según parece) ser más rápida.

Y, por último, Apache es el servidor web, el programa que recibe las peticiones de otros ordenadores y manda páginas web. Hay otros servidores más ligeros (Nginx, lighthttp) que seguramente harían que la Raspberry en general y nuestra nube de Nextcloud en particular funcionaran algo más rápido, pero en mi caso opto por Apache por dos motivos. En primer lugar, porque es el único que he manejado y que algo entiendo de su configuración (poco, realmente poco, en realidad) y en segundo lugar porque hay algunas apps de Nextcloud que piden Apache.

Vamos a ver cómo podemos conseguir instalar Apache2, PHP 7.2 y MariaDB 10 en nuestra flamante Raspbian.

Para entender lo que vamos a hacer, es interesante saber cómo funcional los repositorios en Linux. En Windows, cuando instalamos un programa, nos bajamos un archivo que tiene todo lo que necesita el programa. Es sencillo, pero si varios programas necesitan lo mismo, tendremos eso tres veces en lugar de solo una. En Linux el software se organiza en repositorios, servidores que contienen los programas organizados en paquetes, de tal manera que si tres aplicaciones necesitan PHP, por ejemplo, en lugar de que cada aplicación incluya PHP, las tres declaran que necesitan PHP y se instala una sola vez. Es una solución elegante, aunque puede dar problemas de dependencias (esas necesidades se llaman dependencias y

 

Instalación del servidor Apache y la base de datos  MariaDB

Este es el paso más sencillo. Consiste simplemente en ejecutar la orden sudo apt install apache2 mariadb-server. Podemos comprobar que ha funcionado así:

  • Apache: abrimos un navegador y en la barra de direcciones (no en Google, sino ahí arriba del todo, donde ahora mismo pone polkillas.net y un montón de cosas más) ponemos la dirección IP de nuestra Raspberry. Ya sabemos: 192.168.xx.xx. Debería aparecer la siguiente pantalla:
    Página por defecto de Apache2 en Debian
  • MariaDB: entramos en la Raspberry vía SSH  y escribimos sudo mysql --user=root mysql,  lo que debe hacer que el cursor cambie a los siguiente:
    Prompt de MariaDB en Raspbian

Ahora, lo siguiente no es la opción más segura, pero es la primera vez que me meto a crear tablas en línea de comandos, sin usar PhpMyAdmin, como hacía antes, así que si estás preocupado por la seguridad te recomiendo que busques un poco más que esto, que es un apaño. La cuestión es que con esto vamos a crear un usuario diferente al usuario root de MariaDB y le vamos a dar todos los permisos. Lo ideal sería crear este usuario con permisos solo en la tabla que va a manejar Nextcloud, pero no he sabido hacerlo. Veamos cómo, sabiendo que es importante que cada línea de de SQL en MariaDB acabe en punto y coma.

Creamos el usuario con la orden
create user 'USUARIO'@'localhost' identified by 'CONTRASEÑA;
cambiando las mayúsculas por el usuario y contraseña que queramos. Le concedemos derechos de uso con
grant all privileges on *.* to 'USUARIO'@'localhost';
Esto significa dar todos los privilegios en todas las bases de datos al usuario que hemos creado, y recargamos los privilegios de MariaDB con
flush privileges;
A continuación creamos la base de datos para Nextcloud con
create database NOMBREDELABASEDEDATOS;
y hemos terminado con esto.+

Instalación de PHP 7.2

Esta parte me ha costado sangre, sudor y lágrimas porque cada vez que llegaba aquí me daba un error, y resulta que la causa era tan sencilla como que me había quedado sin espacio libre en el disco duro de la Raspberry, así que fallaba. Así que es fácil.

Para instalar esta versión, la más moderna de PHP (ya existe 7.3, pero tengo entendido que no es estable), debemos añadir a nuestro servidor un repositorio nuevo, puesto que por defecto en Raspbian solo tenemos PHP 7.0. El desarrollador que se encarga de estos paquetes, Ondřej Surý,  es tan buena gente que mantiene un repositorio propio con paquetes mucho más actualizados. Lo hacemos siguiendo estas instrucciones.

sudo apt-get install apt-transport-https lsb-release ca-certificates (instalamos unos paquetes que nos permiten hacer el resto)
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg (descargamos y colocamos en su sitio la clave pública del repositorio, que firma los paquetes para identificarlos de forma confiable)
sudo echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list (añadimos la información del repositorio en el directorio que contiene la información que usa apt)
sudo apt update && sudo apt install php7.2 php-redis php7.2-cli php7.2-curl php7.2-gd php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-xml php7.2-xmlrpc php7.2-zip libapache2-mod-php7.2 (actualizamos e instalamos los paquetes necesarios)

Podemos comprobar que lo hemos hecho bien escribiendo php -v en el terminal y nos debe aparecer el númer oexacto de versión). También podemos crear un archivo de información para verlo en el navegador. Esta versión es más chula y da más información, lo cual puede ser peligroso si nos quieren atacar, así que la recomendación es borrar este archivo después de comprobar que lo hemos hecho bien.

creamos el archivo con sudo nano /etc/www/html/info.php y escribimos lo siguiente en su interior:

 

<?php
phpinfo();
?>

Guardamos con CTRL-X, s y lo vemos en el navegador en la direción http://192.168.xx.xx/info.php, que debe dar algo parecido a esto (se ve cómo estaba en la versión anterior de este tutorial, con PHP 7.0:

 

Resultado de phpinfo

 

Retoques y mejoras

De inicio, tanto MySQL como MariaDB vienen con ciertas configuraciones de prueba que es mejor eliminar. Para ello escribimos sudo mysql_secure_installation (truco sacado de aquí) y respondemos las preguntas:

mariadb

Se pide, lo primero la contraseña del usuario ‘root’. El error que aparece se debía a que no recordaba qué contraseña había puesto, y tuve que probar dos. Con la nueva versión no hay contraseña de root, así que te propone crear esa contraseña.

mariadb2

Después nos pide eliminar el acceso anónimo, que es una buena idea, y deshabilitar el acceso del usuario root desde otro ordenador que no sea la Raspberry. También sugiera eliminar una base de datos de prueba, que es innecesaria. Decimos que sí (y) a estas tres preguntas.

mariadb3

Por último, sugiere recargar las tablas de privilegios (lo que quiera que eso quiera decir), También aceptamos y listo.

Otros prerrequisitos de Nextcloud

Para poder ver vistas previas de las imágenes que subamos a nuestra nube, necesitamos instalar un programa como ffmpeg:

sudo apt-get install ffmpeg

Nextcloud 14 en la Raspberry. 2. Configuración de Raspberrry y acceso SSH

Una vez tenemos Rasbpian funcionando en la Raspberry, el siguiente paso es actualizar el sistema. Los comandos que tenemos que escribir son estos:

sudo apt-get update
Actualiza la información de actualizaciones

sudo apt-get dist-upgrade
Actualiza los paquetes, los programas.

Si tienes problemas para escribir el guion, puedes usar el signo menos del teclado numérico y, si no lo tienes, prueba con el apóstrofe, la tecla que hay a la derecha del 0. El teclado aparece por defecto en inglés, pero a continuación podremos cambiarlo.

Cuando hemos hecho esto, podemos cambiar la configuración de la Raspberry. Enviamos la orden sudo raspi-config y nos aparece este menú.

img_24112016_192644_hdr

Hay varias opciones que nos van a interesar. Vamos con ellas en el orden en que aparecen en el menú, por el que nos movemos con las flechas arriba ya abajo. Para saltar a los botones de Aceptar o Cancelar, usamos el tabulador (la tecla que está a la izquierda de la Q).

pipolkillas-pi-_024

1 Expand Filesystem

No debería hacer falta hacerlo al ser una instalación nueva, pero no pasa nada por hacerlo. Lo seleccionamos y nos avisa de que estará hecho después de reiniciar.

2 Change User Password

Muy importante, por seguridad, cambiar la contraseña por defecto, que es “raspberry”. Al seleccionarlo, nos avisa de que nos va a pedir la nueva contraseña y la tenemos que escribir 2 veces, para estar seguros de que la hemos escrito bien. Más adelante cambiaremos también el usuario para mayor seguridad.

3 Boot Options

Si hemos instalado Rasbpian Lite, no debería hacer falta cambiar nada, pero está bien comprobar la opción B1 Desktop-CLI y marcar B2 Console autologin, para que no haga falta meter la contraseña al reiniciar.

4 Internationalisation Options

Para poner la Raspberry en español este es el sitio adecuado. Las opciones que debemos seleccionar son estas:

I1 Change Locale

Buscamos la opción es_ES.UTF8 y la seleccionamos. Aceptamos y en la siguiente pantalla, en la que aparecen muchas menos opciones, la volvemos a seleccionar. Esperamos unos segundos a que se generen las locales.

I2 Change Timezone

Para no tener problemas, sobre todo, con el calendario de Nextcloud, tenemos que asegurarnos de que el servidor está en nuestra zona horaria. Escogemos nuestro continente y después la capital del país en el que estemos. En mi caso, Europa y Madrid.

I3 Change Keyboard Layout

El primer paso aquí no tan importante como el segundo. Si no encontramos nuestro modelo exacto de teclado o no lo sabemos, basta con dejar el Generic 105 Intl. Lo importante es lo segundo. Seguramente saldrá una serie de opciones del idioma inglés, así que bajamos a Other y buscamos el idioma español. Una vez lo hemos localizado, la primera opción suele bastar, a no ser que tengamos algún teclado específico.

I4 Change Wifi Country

Yo no tuve problemas con la wifi antes de configurar esto, pero no sobra busca ES Spain y seleccionarlo, si vamos a conectar la Raspberry vía Wifi.

7 Advanced Options

De todas las opciones que tenemos aquí, solo comento las que nos pueden ayudar a que vaya mejor. Son estas:

A3 Memory Split

Al no tener un escritorio instalado, la GPU (memoria gráfica) no necesita mucho, podemos reducir la cantidad que aparece a 16, que es el mínimo.

A4 SSH

Importantísimo. Sin más.

Según Wikipedia, SSH es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red.

Es decir, SSH sirve para “entrar” en un ordenador desde otro. Si está activado, podemos tener una línea de comandos en un ordenador diferente y trabajar en la Raspberry. Hasta ahora, SSH venía activado por defecto en Raspbian, pero leí en Raspberry para torpes que van a cambiar esto, al menos en la versión PIXEL, no estaba seguro sobre la Lite que estamos instalando nosotros, pero efectivamente es así, por lo que tendremos que seleccionar esta opción y activarla. Una vez que lo hemos hecho, podemos conectanos a la Raspberry desde otro ordenador.

En Windows se puede usar PuTTY para ello y en Linux no hace falta instalar nada. Veamos:

putty-configuration_018

No hace falta instalar PuTTY, al abrir el archivo descargado se abre directamente esta ventana. En el campo “Host Name (or IP address)” tenemos que escribir lo que aparece en la imagen, cambiando las  XX con unos números que estarán entre 0 y 255. Para saber exactamente qué número poner podríamos ir probando de uno en uno, pero hay una forma mucho más sencilla: cuando  hayamos acabado de configurar la raspberry,,podemos  escribir la orden ifconfig. Sale un montón de información pero lo que tenemos que buscar es la expresion inet address seguida de un número compuesto de cuatro cifras separadas por un punto y que sean las dos primeras esos 192.168. Si estamos conectados al router con un cable, estará en la sección eth0; si estamos usando wifi, estará seguramente en la sección wlan0.

Si lo hemos hecho bien, nos aparecerá una alerta. Es normal, solo nos avisa de que nos estamos conectando a un ordenador nuevo y nunca hemos dicho a PuTTY que se fíe. Pulsar en sí hace que PuTTY, en adelante, confíe en nuestra Raspberry.

putty-security-alert_019

A continuación nos sale una pantalla nueva que nos pedirá el usuario de Rasbpian (pi, si no lo cambiamos) y la contraseña (raspberry por defecto, lo cual tendremos que cambiar en seguida).  Al escribir la contraseña, como suele pasar en Linux, parece que no pasa nada, pero no es preocupante:

pipolkillas-pi-_022

Al pulsar Intro, nos aparece el mismo mensaje que aparece en el monitor de la Raspberry al arrancar, lo que nos confima que esa pantalla “es” la Raspberry.

En Ubuntu y otros Linux, abrimos un terminal (CTRL+ALT+T o abrimos el tablero y escribimos “terminal”). Para usar SSH, la forma es sencilla:

ssh pi@192.168.XX.XX

Igual que en PuTTY, cambiamos los dos últimos números por el resultado de ifconfig:

pipolkillas-pi-_023

¡Voilà! A partir de este momento no nos hace falta tener un monitor conectado a la raspberry mientras haya conexión a internet.

A0 Update

Sirve para actualizar el mismo programa raspi-config. Lo más probable es que no haya actualizaciones.


Con esto tenemos configurada nuestra Raspberry y podemos empezar a instalar los programas que vamos a necesitar para que funcione bien nuestro Nextcloud.

La penúltima cosa que podemos hacer es fijar la IP de la Raspberry para no tener problemas de conexión. En mi experiencia no me ha pasado porque no he desconectado nunca el cable de red que une la Raspberry con el router. Pero si este fuera el caso y hubiera algún problema con la conexión, podría ser porque se ha asignado una IP diferente a la Raspberry. En este caso, recomiendo acudir a Raspberry para torpes, donde manuti tiene 3 entradas que nos pueden ser útiles:

Por último, una cosa que me parece muy recomendable es cambiar el usuario por defecto, (pi), por otro diferente y la contraseña de root. Esto hace que sea más difícil que un posible atacante pueda entrar en la Raspberry, pues no solo tiene que adivinar la contraseña sino también el usuario. Para ello seguiremos algo de un tutorial de Juan Jose Ramirez Lama en su blog juaramir.com y una página vieja pero aún muy útil, Principiante Linux.

Para cambiar la contraseña del superadministrador, escribimos la siguiente orden:

sudo passwd

Nos pide que escribamos la nueva contraseña y que la repitamos, por si acaso nos hemos equivocado al escribirla. Después iniciamos sesión como administrador con el comando sudo su y metemos la contraseña que acabamos de cambiar si nos la pide.

Para cambiar el usuario “pi” debemos crear un usuario nuevo con la siguiente orden:

sudo  adduser USUARIONUEVO, sustituyendo las mayúsculas por el nombre que queramos darle al usuario.

Nos pide que escribamos dos veces la contraseña del nuevo usuario y nos hace una serie de preguntas que no hace falta responder, podemos pulsar Intro en cada una.

A continuación podemos modificar el usuario para darle derechos de administrador. Con la orden groups pi veremos los grupos a los que pertenece ese usuario, y podemos usar groups USUARIONUEVO para comprobarlo en el nuevo. Para darle permisos, hay que dar la siguiente orden:

sudo usermod -G adm,dialout,cdrom,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio,sudo USUARIONUEVO

De la ristra de palabras entre comas, lo más importante para nuestros objetivos es “sudo”. El resto da otros derechos que para otros usos de la Raspberry serán necesarios. Podemos comprobar que lo hemos hecho bien volviendo a ejecutar groups USUARIONUEVO, y veremos que ya tiene los mismos derechos que “pi”.

Cerramos la sesión de “pi” y volvemos a entrar, ahora con el nuevo usuario. Ahora ya podemos eliminar el usuario pi con la orden sudo userdel -r pi.

Nextcloud 14 en la Raspberry Pi con PHP 7.2 (1). Pasos previos

Cables y conexiones

La Raspberry necesita unas cuantas cosas para poder arrancar:

  • Cable miniUSB de carga de al menos 2V. Ojo, que no todos los cargadores de móviles valen, aunque sean miniUSB, por el voltaje. Hace poco se me estropeó este cable, merece la pena utilizar uno bueno, que dure.
  • Cable de red Ethernet o adaptador wifi USB para tener red.

Puesto que vamos a usar la Raspberry como servidor Nextcloud, necesitamos mucho espacio de disco duro. Aunque ya hay tarjetas SD de por lo menos 128 Gb, es preferible tener un disco duro externo y conectarlo. Si tienes un disco externo que no necesite carga, sería ideal, pero como no suele ser el caso también viene bien un concentrador (hub) USB que dé carga y, a ser posible, con USB 3.0 para que vaya más rápido. Yo uso uno de Amazon Basics.

También es recomendable tener un teclado y ratón USB, no valen los antiguos PS2, y un cable HDMI para conectarla a un monitor. Los usaremos solo la primera vez que arranquemos la Raspberry, pero sin ellos no podremos continuar.

Preparación de Raspbian

Si queremos empezar desde cero nuestro servidor, la opción más sencilla es descargar el sistema operativo de la web de la fundación Raspberry. Después de haber probado varias opciones, no veo muchas ventajas a NOOBS, que es teóricamente el sistema más sencillo, así que recomiendo instalar Raspbian directamente. Si te asusta que no haya un escritorio, puedes instalar la versión completa pero es preferible la versión lite porque gasta menos memoria, que queda libre para el resto de cosas que queramos instalar: servidor web, base de datos, servidor de búsqueda, reconocimiento óptico de caracteres, etc.

La forma más fácil para descargar cualquiera de las dos versiones es ir a la web que he enlazado antes, seleccionar Raspbian (o ir directamente aquí) y pulsar en “Download ZIP”. Puede ser incluso más rápido bajarlo por vía torrent pero para ello necesitamos un cliente como uTorrent en Windows o Transmission en Linux.

Una vez descargado, hay que descomprimir el archivo .zip: hacemos doble clic sobre él y, se abra lo que se abra, buscamos la opción “Descomprimir”; lo más sencillo, en el escritorio.

Una vez tenemos un archivo con extensión .img, hay que grabar esa imagen en una tarjeta SD de, al menos, 4 Gb. Se puede usar SDFormatter en Windows y Mac; y Etcher en Windows, Mac y Linux.

Es fácil: abrimos SDFormatter, metemos nuestra contraseña si nos lo pide o pulsamos Sí y, en la ventana, seleccionamos “Option”. Ahí cambiamos FORMAT SIZE ADJUSTMENT a ON por si acaso la tarjeta tuviera varias particiones. Varias letras (F:, G:), para entendernos. De esta forma las eliminamos y la tarjeta queda como nueva.

sdformatter

La letra (G: en este caso) puede variar

Luego con el Win32DiskImager, algo parecido: metemos nuestra contraseña si nos lo pide o pulsamos Sí y, en la ventana, seleccionamos la tarjeta en la casilla Device (se puede comprobar la letra en el Explorador de Windows si no estamos seguros) y el archivo .img pulsando el icono de la carpeta.

win32

Por cierto, que si no tienes un portátil con adaptador SD, se puede comprar un adaptador USB por menos de un euro en Deal Extreme.

En Etcher, el proceso es todavía más sencillo.  En el primer paso, seleccionamos el archivo que nos hemos descargado (en este caso, no hace falta descomprimirlo, Etcher funciona con el zip) y en el segundo probablemente no tengamos que hacer nada si solo tenemos una unidad extraíble insertada. En caso contrario, selecciona la unidad que sea pulsando en “Change”. Y pulsamos “Flash”. Pedirá confirmación y/o la contraseña de administrador y se pondrá a la tarea.

ventana principal de EtcherUna vez ha concluido con éxito la copia del archivo .img a la tarjeta SD, llega el momento de insertarla en la Raspberry apagada y solo después de asegurarnos de que ha quedado bien insertada la arrancamos enchufando el cargador miniUSB y conectando con un cable HDMI la Raspberry a un monitor.

El sistema ya está instalado y, si hemos optado por la versión Lite, veremos esto.

arranque de Raspbian Lite

Puede asustar o, si tienes una edad, recordarte a los viejos ordenadores Amstrad, Spectrum o Commodore. La ventaja de no tener un escritorio es que se gasta mucha menos memoria. Pero si te decidiste por la versión con escritorio, lo único que tendrás que hacer en posteriores entradas es abrir la aplicación terminal y escribir ahí los comandos.

«Huelga» de taxis

Estoy leyendo muchas noticias y muchos comentarios en Twitter sobre la «huelga» de taxistas de Barcelona, que se ha extendido a otras partes de España, Madrid incluida. Pongo huelga entre comillas porque técnicamente se trata de un cierre patronal, al ser autónomos son empresarios, no asalariados como sería en el caso de una verdadera huelga.

Y estoy leyendo muchas críticas a cómo han aprovechado la legislación vigente en su propio beneficio, y cómo van en contra del libre mercado, y muchas críticas más. Nos yo un defensor de los taxistas, un servicio que no uso nunca, pero me chirrían varias cosas.

En primer lugar, eso de que van contra el libre mercado. Es cierto, el taxi es una concesión administrativa y no se debería permitir especular con ella. Sin embargo, la solución no es entregar el servicio público a un par de empresas como Uber o Cabify para crear un oligopolio que seguro concertaría precios, sino ampliar el número de licencias y prohibir la cesión entre particulares. Si te jubilas, la licencia vuelve al ayuntamiento. También prohibiría que una sola persona pueda tener varias licencias, para evitar la creación de flotas privadas. ¿Esto haría que se incrementaran los precios? Claro, pero a la administración no le costaría nada llegar a acuerdos globales con proveedores para ofrecer a todos los taxis un precio de reparación menor, habida cuenta del volumen de negocio que implicarían tales acuerdos, una central de compras centralizada desde lo público.

Hablando de flotas y de taxistas empresarios, he leído varias veces que pagan sueldos de mierda a los conductores que contratan. Es curioso haberselo leído muchas más veces esto de las pymes del taxi que de Uber o Cabify, que no es que lo hagan habitualmente, es que es su modelo de negocio. Si inicias una hilo de Twitter diciendo «Uber es el mal», pero te tiras 15 tuits hablando de los taxistas, está claro qué te interesa. Es el equivalente al «Yo no soy racista, pero…» en el sector del transporte privado de viajeros.

Está claro que el taxi es un sistema anticuado, que debería renovarse y empezar a poner énfasis en cosas como el confort del pasajero. Es sintomático que se hable con asombro y admiración de que los conductores de Uber te pregunten qué estación de radio quieres escuchar, cuando debería ser un mínimo. Pero la solución no es tirarse a los brazos de una multinacional, porque ya sabemos que pasaría. Recordemos las alzas de precios de Uber siempre que hay algún evento. De hecho, leí una vez (pero no recuerdo dónde y no lo encuentro) que los precios de Uber tendían a ser muy similares, porque compensaban una mayoría de viajes más baratos con otros más caros debido a cómo interpretan ellos la demanda, que es una caja negra que solo conocen ellos.

Está claro que no hay una solución fácil, pero los taxistas no son los malos de esta película, la sociedad no va a mejorar si los sustituimos por Cabify. Y la labor de los políticos es ofrecer soluciones, y no he oído a ningún partido proponer nada concreto, la verdad.

 

Cómo colaborar con el software libre si no eres informático

Hoy he conseguido unos de los hitos que llevaba años anhelando sin atreverme nunca: junto con Leo, hemos hecho el Anillo ciclista enterito, de punta a punta y vuelta por el otro lado.

Ahora mismo soy una patata casada asada, o así me siento del cansancio acumulado, pero estoy contento. La adrenalina ha fluido con fuerza durante la gran mayoría de los 75 kilómetros que hemos acumulado (récord personal con gran diferencia) y ha sido una experiencia bonita.

Ha sido también una aventura. A la altura de la A-3 nos hemos despistado y hemos seguido rectos por el Parque Lineal de Palomeras en lugar de torcer para seguir por el Anillo y nos hemos equivocado un par de veces hasta que hemos recuperado el camino correcto .Y lo hemos hecho con la ayuda de Osmand, una app de mapas y navegación GPS que llevo años utilizando.  He decidido dejarla puesta y un poco más adelante, pasada la M-23, nos hemos vuelto a pasar y Osmand nos ha mostrado el camino. También es verdad que en medio de estos dos momentos ha habido un punto en el que me he pasado de listo y Leo ha sido quien me ha corregido, pero esto no interesa (cara de «si cuela, cuela»).

A Leandro le ha gustado la idea de Osmand, y esto me ha llevado a pensar en que el software libre, aparte de serios problemas de márquetin por no gastar un duro (que deberían), es algo en lo que a veces participamos solo cuatro friquis, aunque haya millones de personas usándolo, desde el núcleo Linux de Android a la inmensa mayoría de los servidores web. Claro, la pregunta es clara: si yo no soy informática y no solo no sé programar sino que no tengo ni la más remota idea de cómo se hace una aplicación, ¿cómo puedo colaborar? Se me ocurren varias maneras.

La primera es económica. Después de años de uso, hoy he donado algo de dinero a los desarrolladores de DAVdroid, una app que uso cada día en el móvil para sincronizar calendarios y contactos. Es software libre, no hace falta pagar por ella, pero se puede donar. No estoy seguro de si este modelo de negocio (forma pija de llamar al ganarse la vida) es sostenible, e incluso tengo ciertas dudas sobre la ética asociada, pero esta es la forma más sencilla: si uso software libre (Firefox, WordPress, yo qué sé, y pongo ejemplos muy grandes e incluso uno controlado por una empresa), se puede dar algo de dinero.

La segunda es informar de errores. Una vez tuve un problema con Osmand: quería descargarme una actualización del mapa de España (sale una vez al mes con todas las novedades: radares, carreteras, edificios, direcciones, cambios de nombres en calles franquistas…) y no me dejaba. Osmand decía que se necesitaban unos 600 Mb y yo tenía prácticamente un giga, más de un 50% más, pero me daba un error de falta de espacio.  Y decidí decirlo, por si podían arreglarlo y ayudarme a mí y a cualquiera a quien le pasara lo mismo.

En aquel momento era más complicado, ahora se puede hacer en Github, siempre que estés registrado. Pulsas en New Issue y rellenas todos los datos que puedas. Yo lo hice y tras un par de días resultó que el problema era muy tonto: el mapa se descarga como un archivo comprimido en .zip que se descomprime y luego se borra. Pero en el intervalo entre la descompresión y el borrado hace falta aproximadamente el doble de espacio. En mi caso, los 600 Mb del zip se convertían en 1300, con lo que no me quedaba espacio. Y gracias a que yo avisé, ahora la app te avisa de que necesitas el doble del espacio libre.

Otra opción es ayudar a traducir la aplicación a tu idioma. En español suele ser más fácil, pero a mí me asombra la cantidad de software libro traducido no a lenguas con menos hablantes como el gallego o el catalán, sino a lenguas con números diminutos como el asturiano. Esto es una gran idea para potenciar el uso de un idioma, y las grandes empresas se mueven solo por rentabilidad. En cambio, un voluntario dentro del software libre lo hace porque le apetece y aunque, lógicamente, menos gente a a usar Nextcloud en asturiano que quienes lo usamos en español, la tarea es otra y mucho más admirable, me parece.  Cada aplicación usa sistemas de traducción diferentes, desde traducciones arcanas con archivos .po y .mo (como las extensiones de WordPress) a sistemas muy intrincados (el Pootle de Libreoffice, que me parece un horror) a sistemas muy sencillos de usar como Transifex, que usan Nextcloud y Owncloud.

Traducir software tiene bastante de maldición de Sísifo, nunca se acaba a no ser que deje de desarrollarse el programa, pero puedo decir por mi experiencia que es una forma muy buena de descubrir las posibilidades que tiene la aplicación que estás traduciendo. A mí me ha servido para convertirme en todo un experto en Nextcloud y descubrir nuevas y creativas maneras de cargarme mi nube…

La última forma que se me ocurre de colaborar con el software libre es esto que estoy haciendo ahora mismo: hablar de él, hacer publicidad, darlo a conocer. Y esta última forma es gratis y muy sencilla.

Y tú —como decían en Barrapunto en tiempos más sencillos—, ¿ya has colaborado hoy con el software libre?

Te echo de menos

Te echo de menos en mi vida
y soy feliz.
Me siento hipócrita
¿o lo era antes?

Oigo a Javi,
oigo a Félix,
leo a Jesús,
me acuerdo de cómo era

mi vida.
De cómo era

yo.

Me irrita mi incapacidad
de explicar y de explicarme
que no soy quién fui
y sin arrepentirme,
lo echo de menos.

No soy el mismo que era.
No soy quien otrora quise ser.
No estoy donde quise llegar
y no me cambiaría por nadie.

Qué tontería.
Intentar explicar
lo que no entiendo.
Qué soberbia.
Y sin embargo…

¿Me entiendes?

La ducha

En la ducha repaso el día
o pienso en lo que debo hacer
y lo que debí haber hecho.
Suena bien pero es falso
Mi ducha es mi placer,
ese placer de no pensar,
ese placer de solo sentir.
El chorro dividido se encarniza
en mi frente y el agua
recorre mi cuerpo caliente
desde la nuca hasta los talones.
Y me siento en paz con mi cuerpo,
con mi vida, con mi mundo.

Y apagar el grifo es lo que
más me cuesta del día
(no cuento despedirme de ti),
me cuesta más que encenderlo
porque me deja sin agua
para saciar mi sed de paz.

Escribid

Ahora que hemos perdido la costumbre
y las palabras no aparecen
ni en nuestras notas ni nuestras palabras,
escribir vuelve a ser un lujo que nadie parece permitirse.
Y quienes se aprovechan de nuestro cansancio,
de nuestra ausencia,
respiran satisfechos porque se saben a salvo.
Por eso,
escribid, escribid como si vuestras palabras provocaran el viento
que respiramos, que nos mueve.

Ahora que las palabras nos engañan
porque queremos dejarnos enganar
y que las falacias vuelan más alto, más lejos, más grandes
que la simple, humilde, blanca verdad,
sentimos que escribir vuelve a ser un lujo
para ociosos, desocupados, ¡vagos!
Quienes nos roban hasta el aliento
y nos hurtan nuestra alegría, nuestro derecho
respiran aliviados porque no los revelamos
y ya nunca nos rebelamos.
Por eso,
escribid, escribid, como si la poesía siguiera siendo
un arma cargada de esperanza.

Ahora que ya todo es precario
y los jóvenes se desmayan sobre sus pupitres,
ahora que la policía es el enemigo
y no persigue a los cuatreros en que tú y yo pensamos…
Ahora que el mercado nos oprime con su mano
invisible y homicida de psicópata
y los parlamentos son incómodos teatros
donde malos actores con malos libretos
representan malas farsas que nadie quiere ver,
y pensáis que el nihilismo
es lo único que tiene sentido
porque el sentido de vuestra vida
nunca es hacia arriba,
escribid.
Pero escribid, demonios, escribid.
Escribid como si os fuera la vida en ello
porque la vida nos va en ello.

Banda sonora: Viajando al fin de la noche de Los Suaves

https://www.youtube.com/watch?v=_yWAnJBjMrs

¿Sabes?

Te has levantado de la cama
con la risa temblando en las caderas
y mis ojos han seguido a tu melena
hasta que la puerta te ha ocultado.

¿Y sabes una cosa?
Con tu cintura llena de vida
me has devuelto
lo que no sabía
que echaba de menos.
Y ahora entiendo esa fuerza
que me abre el pecho tras besarte
y me exprime el diafragma
y me quiere sacar un hálito de voz.

Ahora vuelves a mi lado
pero ¿sabes?:
siento que nunca te habías ido
después de haberte reencontrado.

Autopista de peaje

A Luis Alberto de Cuenca, cuya charla en el Príncipe Felipe lo inspiró

El volante en las manos.
La congoja en el pecho.
El salpicadero devora las líneas discontinuas.
El arcén sin quitamiedos.
La autopista sin carteles.
Un sol que agoniza entre mis pestañas.
Conduzco desde la mañana, no me preguntes a dónde,
Junto a mí una mujer blanca, pálida y muda,
Con los ojos fijos en el horizonte
por no mirarme.
No puedo recordar cuándo entré
a la autopista, ni dónde.
Solo sé que he pagado el peaje.
Y lo sigo pagando.
La autopista sin carteles,
el arcén con cruces siniestras.
Ni una curva en el trayecto,
mi compañera aún en silencio.
Una nube en el horizonte,
o quizás en mi estómago.
Una chimenea de ladrillo
se erguía en el oeste
y ya me estoy alejando
sin haber llegado a ella.
Un milano que nos sobrevuela
con ojos ciegos y pico ensangrentado.
Ya cae la noche, ya me va a mirar la pálida dama.
No hay salida en esta autopista
y  quizás todavía no he pagado el peaje.

Cargar más