Ventanas (ep. 2)
jueves 18 septiembre 2025
La hora del conticinio se ha adelantado hoy. Ha estado nublado todo el día y hace poco comenzó una tormenta con relámpagos. Son las 7:46pm y no he dormido desde ayer.
Hoy abrí mi ventana. ¡Escribo con la ventana abierta! Es algo tan simple y común. Oye, hoy abrí la ventana, también comí y saqué a pasear al perro... ¿Qué tiene eso de especial? Ah, sencillo, es que en esta hermosa ciudad que los inocentes llaman «la ciudad del pecado» la temperatura rebasa los cuarenta grados. Pero hoy empezó a fresquear y al preguntarme cómo era posible que mi horario se descompusiera tanto una vez más, concluí que es porque al pasar tanto tiempo sin salir a la calle justo para evitar el sol, mi ritmo circadiano pierde su mecanismo de regulación y yo pierdo completamente la noción del tiempo.
Cuando abrí la ventana eran las cuatro de la mañana. Pasé la noche trabajando en Onyx, mi editor de textos. Se me fueron las horas familiarizándome con el proyecto (mi último commit había sido en abril) y escribiendo código.
Hospitalidad en el software
Parte de la labor de ayer fue implementar un sistema de organización dentro de mi archivo README. El sistema es sencillo y consiste en recopilar todas las dudas que tuve a la hora de reproducir una versión local del servidor de producción y documentarlas de manera clara, con un toque de simpatía para el futuro lector.
Mientras pensaba en quién sería la audiencia ideal para ese documento (porque pensar que el yo del futuro será el único lector es triste, pero eso solo lo piensa el yo del presente) se me ocurrió un concepto que seguramente ya exista con otro nombre y que yo ayer llamé «software hospitality». No he quedado satisfecho del todo con mi traducción al español. Consideré «software hospitalario» al principio pero la rechacé de inmediato —esa interpretación ha invertido el efecto que yo quiero darle a la palabra raíz hospitalidad. ¡Mi enfoque es en la actitud, no en el ámbito!
«Hospitalidad en el software» se acerca más a la idea, me refiero a adoptar una actitud personal y franca durante el proceso de desarrollo y entrega de software. A base de respeto mutuo, los miembros de un equipo y los clientes entablan una conversación.
Por ejemplo, he empezado mi implementación en Onyx con una bienvenida dirigida al usuario en la que describo el sistema, los lenguajes de programación en uso, librerías, dependencias, etcétera. También hay un changelog y una guía de instalación.
Esta primera implementación parcial del sistema de hospitalidad es un principio muy pobre porque todo lo anterior asume que el usuario va a interactuar con el código fuente, pero la realidad es que la mayoría de usuarios querrán sacarle provecho al software sin leer demasiado. En ese caso, el diseño del sistema también debe ser hospitalario, desde la interfaz gráfica hasta los procesos y mecanismos internos que lo ponen en marcha.
La hospitalidad en el software debe atender a las necesidades de todas las personas que dependen del mismo. Para los usuarios no técnicos, se les da la bienvenida a un entorno nuevo, como si fueran huéspedes en un hotel y recibieran descripciones, direcciones, actividades, trasfondos, historias, datos, lo necesario y lo ameno para disfrutar de su estancia. Del mismo modo, como desarrolladores tenemos la responsabilidad de ayudar al usuario a orientarse en el entorno digital que hemos creado. Y para cumplir con ello debemos diseñar entornos digitales en virtud de las necesidades de sus usarios.

Sin Internet
La tormenta ha afectado la conexión al internet y a mí me gusta escuchar música cuando escribo, pero como Spotify no carga estoy escuchando un mixtape digital de Konpeito Media. Esa es una historia para otra ocasión, pero llevo muchos meses pensando en escribir algo acerca de Konpeito y de la comunidad que encontré hace cinco años en el protocolo Gemini.
Marfil ❤️ Emacs
Y por último, un breve metacomentario.
He integrado Marfil a Emacs. Ahora cuando guardo mis cambios a un archivo dentro de la carpeta posts, el sitio se regenera automáticamente y espera con el servidor activo.
A continución una explicación más detallada.
Mi proceso de redacción para este blog requiere el constante uso de dos comandos de Marfil:
$ php marfil.php generar
y $ php marfil.php servir
El primero genera el sitio y crea una carpeta con todos los archivos, y el segundo activa un servidor local para ver el sitio en el navegador.
Eso significa que cada vez que hago un cambio en un archivo Markdown desde Emacs, debo cambiar de ventana a la terminal, terminar el proceso del servidor y ejecutar ambos comandos.
La repetición de todo esto corta la fluidez de mi proceso de escritura. Markdown no está al nivel de Org mode en Emacs para exportar a otros formatos (para ello recurro a pandoc) pero elegí Markdown porque la conversión a HTML es fácil de implementar con librerías de PHP.
Primero pensé en añadir una configuración a mi archivo init.el
, pero mejor decidí crear variables locales de directorio en un archivo llamado .dir-locals.el
dentro de la carpeta del blog.
Veamos qué tal...
¡Todo salió a la perfección! En cuanto guardo el archivo los cambios ya están listos en el navegador, solo es cuestión de refrescar la página y ya. Quizá eso también deba ser automatizado... creo que ya se entenderá porqué las veinticuatro horas del día se me hacen cortas.