Primer artículo del año
No quería dejar pasar el mes sin publicar algo en el blog. He pasado unos meses de diciembre y enero llenos de sobresaltos y viajes sorpresivos debidos a la salud de mis padres, muy mayores ya y con la afectación típica de la edad. No es excusa para no haber escrito, he tenido también un montón de momentos muertos incluidas las largas noches de insomnio de hospital. Pero en ese momento la verdad es que no me apetecía ponerme a pensar y lo gastaba rellenando sudokus, una actividad intrascendente pero que me ayudaba a enfocar mi atención en algo lo suficiente interesante para distraer la realidad, pero no hacerme pensar demasiado. Por otro lado, el equipo con el contaba no era lo suficientemente adecuado, también por exceso de longevidad, como para aguantar el trabajo normal.
En este mes de enero me llegó una nueva tableta que, aunque no es la que a mí me gustaría, cumple mucho mejor con esas funciones. La tableta en cuestión es una TCL NXTpaper 14, y presenta algunos problemas que la hacen incómoda para el uso que yo le vengo dando a las tabletas:
- El tamaño: Una pantalla de 14" es muy aparatosa. Teniendo en cuenta que la suelo usar más para leer que para otras actividades, tirarme en el sofá con semejante mamotreto en las manos es bastante incómodo.
- La configuración: No se está dejando configurar tan mansamente como debiera. Pero esto necesita una explicación más larga.
Configuración de la tableta
Hay que contar que tengo bloqueadas (inhabilitadas) todas las aplicaciones de Google. Algunas sustituidas por otras libres descargadas de F-Droid y otras simplemente ignoradas, inhabilitadas (y bien que se queja el cacharro de que tengo aplicaciones importantes paradas... en fin).
Aplicaciones imprescindibles
Además de tener todas esas aplicaciones inhabilitadas hay algunas que instalo siempre y me ayudan a blindar un poco más las comunicaciones del dispositivo.
NetGuard
La aplicación NetGuard determina qué aplicaciones pueden conectarse a internet y por qué medio: Wifi o datos móviles. Con esto bien gestionado, ya te ahorras un montón de conexiones de aplicaciones que no lo necesitan. Por ejemplo, DAVx^5 tiene acceso a red, por ambos canales, Wifi y datos móviles, lo que permite que la aplicación de contactos o la de calendario, no lo necesiten, pero yo siga teniendo acceso a mis contactos y mi calendario de mi Nextcloud.
NextDNS
También utilizo un filtro VPN mediante DNS privado para la trasmisión de datos. La aplicación me permite establecer una lista negra (o una lista blanca) bloqueando o permitiendo conexiones a dominios particulares. No hace falta advertir que tengo bloqueados los principales de las GAFAM1, pero además otros dominios a los que, por ejemplo, el móvil chino, envía información en segundo plano sin que lo sepa el usuario.
NextCloud y KDE Connect
Para sincronizar dispositivos utilizo un servidor NextCloud unipersonal propio instalado en un servidor mío y que administro yo para mí, aunque algunas veces le ha dado servicio a algún amigo o compañero que ha necesitado un poco de espacio temporalmente. El sistema me habilita el uso de agenda secundaria2, la lista de contactos, o lo más importante, los datos de los repositorios de proyectos, notas y agenda que trabajo con Emacs. Los repositorios van en un servidor fossil más adelante explico cómo.
Para cuestiones más puntuales utilizo KDE Connect. Me permite enviar directamente archivos entre dispositivos: móvil, ordenador, tableta... además de otros servicios para compartir periféricos o utilizar el móvil como mando a distancia para presentaciones y varias fricadas más.
Bloqueo de sensores
Otra de las cosas que hago en mis dispositivos Android™ es desactivar todos los sensores del aparato. Una de las cosas que Google® descarga en nuestros perfiles3 cuándo coges el teléfono, cuándo andas con él en el bolsillo, cuánto tiempo está «abandonado» sobre una mesa, su localización, la velocidad a la que te mueves y extrapola con esos datos, datos de salud o de costumbres y hábitos.
Si nunca has bloqueado los sensores te recomiendo que lo hagas, cuanta menos información tengan sobre nosotros las multinacionales estadounidenses4 mejor.
Si no sabes cómo hacerlo te lo cuento en unos pocos pasos:
- Activa las opciones de desarrollador: Ajustes → Información del dispositivo y pulsa siete veces el número de versión.
- Ve a Sistema y actualización → Opciones de desarrollador → Recuadros para desarrolladores en ajustes rápidos
- Pulsa en Sensores desactivados. Éste switch mostrará un botón en los ajustes rápidos que nos permitirá desactivar y activar los sensores a voluntad
Es posible que en tu versión de Android® los menús sean diferentes, son cambiantes de una versión a otra o de un modelo de teléfono a otro, así que, buena suerte con la búsqueda. ¡Ah! Recuerda que cada vez que apagues el móvil, al encenderlo tendrás que bloquear manualmente los sensores.
La pena, es que la tableta nueva no muestra las opciones de desarrollador en ningún sitio. Se activan normalmente, incluso si lo vuelves a intentar te dice que ya estaban activadas, pero no se muestran en ningún lado. Supongo que estará supeditado a alguna mierda de aplicación del propio Android®, como por ejemplo los servicios de android que tengo deshabilitados que en el móvil protesta dos veces cuando arranca, pero la tableta protesta seis y repite esas protestas a lo largo del tiempo que la tengo encendida... muestra mensajes de aviso de que algunas aplicaciones o el sistema operativo pueden no funcionar y efectivamente es así, lo que ayuda a localizar qué aplicaciones hay que borrar o inhabilitar. En resumen, cuanto más moderno es un aparato más mierda lleva dentro.
Ventajas de la nueva tableta
No todo son inconvenientes, tiene también alguna cosa buena, por ejemplo:
El tamaño de la pantalla, que para leer es incómoda, se hace muy cómoda para otras tareas. Además cuenta con un sistema de configuración e iluminación que me permite utilizarla cómodamente en exteriores donde las pantallas normales son complicadas de leer.
Cuenta además con un lápiz como dispositivo de escritura manual, sensible a la presión y que es una delicia utilizar con Krita para dibujar. Aunque he de confesar que he perdido mucha mano para el dibujo, después de años sin coger un lápiz. Aunque está bien esto del dibujo digital, sigo encontrándome más cómodo con el papel y el lápiz analógicos.
Proyectos
Actualmente mantengo un servidor con varios servicios para esperantistas, para jugar en Luanti5 y además también se proporciona soporte de conexión de audio por un servicio de mumble. De vez en cuando, organizamos quedadas virtuales para encontrarnos allí y jugar y charlar entre personas repartidas por varios países y continentes. Además, estoy planteándome el crear una radio en línea y ofrecerla de manera gratuita a aquellos esperantistas que quieran tener su propio Podcast o programa de radio, con emisiones «en directo» y/o diferidas. Aunque de momento tampoco está teniendo mucha acogida entre los grupos donde lo he planteado, así que veré si termino haciéndolo o no.
Otro proyecto, en este caso personal, que acabo de poner en marcha es la confección de un libro-juego. Hablaré de él un poco más adelante. Para realizarlo pienso utilizar tanto el ordenador como la tableta. La potencia de la nueva me permite trabajar como si estuviera en el ordenador. Por ejemplo, si arranco Emacs en el ordenador aparece más o menos así:
Es decir, carga 127 paquetes que utilizo en poco más de 3 segundos.
En la nueva tableta, el equivalente es:
Es decir, tarda unos 7,5 segundos en cargar 121 paquetes, para trabajar de manera equiparable al ordenador en modo texto dentro de Termux. Lo que no es una velocidad destacable pero es mucho más rápida que los 30-40 segundos que tardaba en cargar la antigua tableta 103 paquetes. También hay diferencias en el desempeño: con el teclado bluetooth en la nueva no hay lag y en la antigua sí, a veces tecleaba con tres o cuatro letras de adelanto y si dudaba de alguna pulsación, al no aparecer de inmediato, tenía que parar de escribir. Lo que no es mucha pérdida de tiempo, pero sí de paciencia.
Flujo de trabajo
Como ya dije antes, la sincronización entre los dispositivos la realizo mediante una nube Nextcloud en un servidor propio y del que soy el único usuario. Concretamente, mantengo sincronizados dos directorios, uno contiene páginas TiddlyWiki, y que en Android® trabajo con Tiddloid, y otro que contiene repositorios fossil, que manejo desde dentro de Termux.
Para poder acceder a los datos de Nextcloud en Android® desde otras aplicaciones, recuerda que debes activar el switch de «Permitir acceso desde otras aplicaciones» en la configuración de la aplicación de Nextcloud instalada. Mira en Configuración → General → Ubicación del almacenamiento de datos y actívalo.
También debes habilitar en Termux el acceso a esos datos:
termux-setup-storage
Tras ese comando tendrás un directorio ~/storage y tendrás acceso al
resto de datos «públicos» del sistema. Por último, por comodidad,
también he creado un enlace simbólico a los repositorios, pues se
encuentran en el incómodo PATH:
storage/shared/Android/media/com.nextcloud.android.beta/nextcloud/Notxor@[url a mi nube]/repos
El crear el enlace también es opcional, pues puedes escribir todo el churro ese, en un script que levante el servidor de repositorios, pero queda más legible con el enlace. Además, si el nombre del directorio cambia, sólo hay que modificar el enlace y todo seguirá funcionando igual. El script que utilizo para levantarlo es:
#!/data/data/com.termux/files/usr/bin/sh termux-wake-lock fossil server --port 6969 ~/repos &
El termux-wake-lock hace que la sesión de Termux se mantenga activa
aunque la cierres de manera que siempre están disponibles las
interfaces gráficas de los repositorios, aún con la consola cerrada.
Éstos se pueden acceder escribiendo la dirección en la barra del
navegador, fennec en mi caso, o –si está la consola abierta–
lanzándolo desde la línea de comandos:
xdg-open http://localhost:6969/[nombre del repositorio]
automáticamente abrirá el navegador, que esté configurado por defecto, en el repositorio pedido:
La ventaja de fossil-scm, para proyectos pequeños, es que lleva incorporadas herramientas interesantes, como wiki para la documentación y permite la edición de archivos de texto plano con un simple editor si fuera necesario. También visualiza formateados los archivos MarkDown y cuenta con un editor de gráficos pikchr para realizar esquemas simples. Es todo un servicio de Forgejo pero dentro de una base de datos SQLite.
Como todo scm que se precie, procura no machacar el trabajo de nadie. Lo que es muy de agradecer porque al no contar con repositorio remoto activo 100% y constantemente actualizado, sino que depende de que me acuerde de activarlos o actualizarlos, a veces me encuentro con algún problemilla de descoordinación entre los repositorios locales y el «general». Afortunadamente basta hacer un merge cuando está el repositorio «activado« para poner todo en su sitio de nuevo:
Trabajando en el libro-juego
Dada mi afición a utilizar herramientas para usos para los que no
fueron diseñados, decidí utilizar org-roam para el proyecto del libro
juego. ¿Por qué? Pues básicamente porque un libro-juego está compuesto
de trozos de texto enlazados –algo para lo que sí fue diseñado
org-roam–, además proporciona un gráfico de cómo se relacionan unos
textos (notas) con otros mediante su UI. Para ello, he tenido que
hacer unos mínimos cambios a la configuración de mi
Emacs. Concretamente:
Se necesita habilitar, como dependencia de org-roam, el sqlite
(use-package emacsql :ensure t)
Y ahora cargar el paquete de notas y configurarlo:
(use-package org-roam :ensure t :custom (org-roam-directory (file-truename "~/Notas")) (define-key map (kbd "C-c n") 'org-roam-map) :bind (("C-c n c" . org-roam-capture) ("C-c n f" . org-roam-node-find) ("C-c n g" . org-roam-graph) ("C-c n i" . org-roam-node-insert) ("C-c n l" . org-roam-buffer-toggle) ("C-c n r" . org-roam-find-file-hook) ("C-c n u" . org-roam-ui-mode) :map org-mode-map ("C-M-i" . completion-at-point) ;; Dailies ("C-c n j" . org-roam-dailies-capture-today)) :config (setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag))) (org-roam-db-autosync-mode) (require 'org-roam-protocol))
También tengo una función que permita cambiar el conjunto de notas que se empleará, para no mezclar la base de datos de las anotaciones, con las entradas del proyecto y establecerle una tecla para hacerlo cómodamente:
;; Cambio de directorio org-roam (defun roam-cambio-dir (dir) "Cambiar de directorio de `org-roam' al `DIR' de forma interactiva." (interactive "DNuevo directorio de Notas: ") (message (format "Se cambia org-roam-directory a: %s" dir)) (setq org-roam-directory (expand-file-name dir)) (org-roam-db-sync)) (global-set-key (kbd "C-S-<f5>") #'roam-cambio-dir)
Por último, monto la interface gráfica para el paquete de org-roam,
que necesita websockets para sincronizarse con el navegador:
(use-package websocket :after org-roam) (use-package org-roam-ui :after org-roam :config (setq org-roam-ui-sync-theme t org-roam-ui-follow t org-roam-ui-update-on-save t org-roam-ui-open-on-start t))
y con estas cosas, ya puedes disfrutar de pichorros gráficos que se mueven e interactúan en una interface molona.
En Android®, desde Termux, al lanzar la interface con
org-roam-ui-mode no lanza automáticamente el navegador. Lo solvento
abriendo el puerto 35901 de localhost desde el navegador o desde la
línea de comandos lanzando el comando
xdg-open http://localhost:35901
También mantengo el paquete (para notas) Deft, que me las presenta en
formato de lista y filtra las notas de manera muy sencilla e
intuitiva. En fin, vamos al proyecto con el que ando trasteando
últimamente.
El tema del libro-juego
Aún no hay nada cerrado en cuanto al contenido del mismo. Sí me gustaría mantener un poco la cordura y no lanzarme a un proyecto tan amplio que quede abandonado, como en otros proyectos me ha pasado. Iré rellenando etapas, escribiendo algunos textos, montando algunas escenas, releyendo, corrigiendo y, cuando sea oportuno, ampliándolo con otro par de escenas o una nueva trama. La idea original era que sirviera de guión para una aventura conversacional multijugador, o para un MUD. Sin embargo, son cosas muy alejadas técnicamente en ciertos aspectos. En un libro-juego prima el texto y el desarrollo de una historia y queda en un segundo plano el aspecto lúdico de juego. Si quieres hacer el contenido para varios personajes, el número de textos se multiplica exponencialmente. En una conversacional, en cambio, prima la estructura y los puzles y siendo los textos, más allá de las descripciones de los personajes, compartidos.
El centro de la historia, como proyecto inicial, me planteé recorrer una parte (espero que interesante) de un mundo imaginario, donde la magia aún es posible pero donde está desapareciendo y/o haciéndose cada vez más difícil y enrevesada gracias a los sueños de dominación de algunos pocos poderosos que intentan acotarla para beneficio propio. Esto, desde el punto de vista de la ambientación. Desde el punto de vista del jugador, tendrá que iniciar una búsqueda para procurar que no lo consigan... cualquier analogía con la situación de la tecnología actual será pura coincidencia, ¡lo prometo! :-þ.
Conclusión
Espero que a estas alturas hayamos pasado la mala racha de viajes continuos y enfermedades varias, para poder dedicarme a otras cosas. De momento, como siempre, seguiré con mis trasteos e iré, poco a poco, avanzando en la realización de la historia o el libro-juego. No me he puesto plazo para publicar lo que será un epub con el contenido. Según cómo quede la historia, incluso me planteo gastarme algo de dinero en algún(a) ilustrador(a) que me haga unas pocas ilustraciones para acompañar al texto. Pero eso ya cuenta en el ámbito de los futuribles.
Notas al pie de página:
Google®, Amazon®, Facebook®, Apple® y Microsoft®.
Como agenda principal mantengo org-mode con Emacs, pero hay
ocasiones que con el teléfono es engorroso y es más sencillo utilizar
la aplicación de calendario.
Sí, aunque no tengas cuenta de Google®, como es mi caso, la gran G tiene un perfil tuyo.
Te recuerdo que se han perfilado por méritos propios como las mayores enemigas de la Democracia y perteneces a un Estado que se ha erigido, también por méritos propios, como el principal enemigo de El Mundo Libre.
Dos juegos habilitados: Mineclonia (un clon de Minecraft) y otro de «captura la bandera».
Comentarios