org-roam en modo servidor
Ya hablé en otro artículo sobre org-roam y hoy os lo traigo de nuevo.
Desde aquél artículo inicial han pasado algunos meses y el continuo
desarrollo que están poniendo en org-roam
hace que haya evolucionado
bastante, además de subsanar algunos problemas con los que me tropecé
cuando empecé a utilizarlo hace algunos meses.
Como digo, el paquete ha madurado y han aparecido nuevas
funcionalidades. Entre ellas tenemos un modo servidor que hace de
org-roam
una herramienta más visual y más moderna, si me permitís
esa expresión. Hace tiempo que no me guío por el aspecto de las
aplicaciones y todo lo he derivado hacia una existencia en texto
plano que me permite trabajar hasta con el más mínimo dispositivo al
que se le pueda enchufar un teclado decente. El aspecto moderno o
gráfico no es una de mis prioridades, sin embargo, ¿qué pasa si
trabajo con texto plano y tiene una interface gráfica agradable?
Eso me está pasando con org-mode
, con su modo de trabajo en texto
plano, pero además proveen una asistencia gráfica mediante el paquete
org-roam-server
.
Las imágenes las he tomado de uno de los directorios de notas que utilizo para un proyecto que se va haciendo cada vez más complejo. Es un cajón de notas real. Así me aseguro de que los ejemplos visuales sean reales y no forzarlos inventando notas vacías. Como se puede apreciar en la imagen, casi no se pueden seguir las relaciones entre las distintas anotaciones en ese modo gráfico. Lo bueno es que pinchando y arrastrando cada nodo dibujado hace que los demás se muevan y cambien de posición. De esa manera podemos conseguir que el gráfico sea un poco más claro del que dibuja por defecto la herramienta. Pero vamos por partes.
Configuración
Estoy partiendo del hecho de que no tienes ya instalado org-roam
. Si
llevas un tiempo utilizándolo, seguro que ya encontraste este paquete
adicional antes. También, quizá, debas enterarte un poco cómo va el
asunto de la toma de notas con el método zettelkasten1. Si
estás convencido de probarlo, primero tienes que instalar el paquete
org-roam
y después org-roam-server
como es habitual:
M-x package-install RET org-roam-server RET
He hecho algunos cambios en la configuración de org-roam
para
ajustar este paquete. Por ejemplo he añadido una combinación de teclas
para lanzar el servidor:
(global-set-key (kbd "C-c r b") 'org-roam) (global-set-key (kbd "C-c r c") 'org-roam-capture) (global-set-key (kbd "C-c r d") 'org-roam-doctor) (global-set-key (kbd "C-c r f") 'org-roam-find-file) (global-set-key (kbd "C-c r g") 'org-roam-graph) (global-set-key (kbd "C-c r i") 'org-roam-insert) (global-set-key (kbd "C-c r m") 'org-roam-mode) (global-set-key (kbd "C-c r r") 'org-roam-find-ref) (global-set-key (kbd "C-c r s") 'org-roam-server-mode) (global-set-key (kbd "C-c r t") 'org-roam-buffer-toggle-display)
En el listado puedes ver todas las combinaciones de teclas que utilizo
para tomar notas, y sólo cabe destacar desde el anterior artículo, la
aparición de C-c r s
para lanzar el servidor. Si volvemos a pulsar
esa combinación, veremos un mensaje de org-mode-server disabled
.
En la imagen se muestra, ─abajo en la lista de procesos─,
org-roam-server
lanzado como un proceso httpd
. Como ya me ha
pasado alguna vez, este proceso puede interferir con el habitual uso
del servidor web local que utilizo para probar la buena visualización
de los artículos del blog antes de publicarlos. Ambos procesos
intentan utilizar el mismo puerto 8080
. Para solucionarlo, he
añadido una configuración adicional tal que:
(setq org-roam-server-port 8000)
De esta manera, es posible levantar los dos procesos httpd
de forma
simultánea, org-roam-server
en el puerto 8000
y el web local en
8080
.
Como se puede observar, se mantiene nuestra querida interfaz de texto y podemos consultar las notas por su contenido, tener referencia de los enlaces que apuntan a ella y de aquellas notas a las que ésta apunta. Cualquier modificación que hagamos en ellas se refleja también de manera automágica en el servidor: la información en ambos modos es la misma, pero se presenta de manera diferente.
Saturados de notas
A poco complejo que sea el tema que estés trabajando2 la información mostrada de forma gráfica hace que nos perdamos en las múltiples conexiones, pero podemos filtrarlo de dos maneras.
Filtrado por nodos
Comenzaré por la botonera de la esquina superior derecha. El modo más
simple es pulsar el botón File Viewer
. Veremos que a la izquierda
nos aparece un selector para poder buscar la nota que queramos:
Como veis, la información es la misma que obtenemos en modo texto: el
espacio grande reservado para la anotación y a la derecha vemos una
lista de notas que enlazan a esa. Vale, para eso tenemos ya el modo
texto en Emacs. Además no he conseguido aún poder modificar una nota
desde este modo gráfico, ─aunque tenga un botón Edit
bien visible─,
pero eso es otro asunto.
El siguiente apartado en la botonera superior derecha es Buffer
Network
que lo que hace es mostrar los enlaces de un determinado
archivo que podemos seleccionar en la lista desplegable de abajo a la
izquierda:
A poco que seamos observadores veremos un selector numérico. Ese selector lo que hace es limitar las conexiones entre nuestro nodo seleccionado y otros. Por ejemplo, si incrementamos el selector para ver las etiquetas enlazadas de segundo nivel obtendríamos las siguientes conexiones:
Como podéis apreciar también, hay dos estilos de visualización:
Dark Mode
y Light Mode
. Se puede elegir el que más os guste
simplemente pinchando en el enlace que aparece en el centro de la
parte superior de la página.
Y también, a poco que observemos, podemos ver que el tamaño de los círculos cambia de un nodo a otro. Cuantos más enlaces recibe una nota, más grande es el círculo que la representa. También vemos que hay distintos colores según las etiquetas que hayamos empleado y esto nos lleva al siguiente apartado.
Filtrado por etiquetas
También vemos en la parte superior derecha el botón Database
Network
que es el modo que está activado por defecto cuando
arrancamos el servidor. Este modo nos muestra toda la base de datos,
por defecto, pero también podemos filtrar toda esa información.
En ese modo vemos el selector de la esquina inferior izquierda, que
mostrará el mensaje Filter
, y al lado hay un botón de color rojo que
muestra Exclude
. Si pinchamos en el botón veremos que cambiará a
color verde con el mensaje Include
. Con él podemos crearnos un
filtro que incluya sólo los nodos con unas determinadas etiquetas,
pero además que excluya otras. Cada etiqueta nos la mostrará en color
rojo o verde, según esté excluida o incluida en la búsqueda. Así
podemos establecer complejos filtros de información hasta tener en
pantalla sólo unas pocas notas o incluso una o ninguna. A veces es
interesante llegar a un filtro y que arroje una pantalla en blanco
porque te hace pensar: hay un vacío en todo este barullo de notas,
¿Qué esperaba encontrar? Quizá me falta algo. Así he encontrado
alguna laguna en la información, pero supongo que cada cual tendrá su
estilo.
Conclusiones
El paquete org-roam
se ha convertido en mi preferido para tomar
notas y además de su potente interface de texto, nos proporciona un
magnífico servidor gráfico para que visualicemos la información de
maneras muy atractivas.
El otro día, hablando con un colega de profesión sobre el trabajo que estamos haciendo en un grupo de trabajo (valga la rebuznancia) sobre abuso infantil del COPPA3, le mostré estas mismas notas. Como era sólo visualizarlas un poco por encima arranqué el servidor y lo estuve manejando mientras hablábamos. Su pregunta fue: ¿cuánto cuesta el programa este de notas? Y a ver... es gratis, al final es gratis, pero necesita un esfuerzo extra para la gente que no está acostumbrada al texto plano.
Una herramienta tan vistosa casi que descuadra nuestro austero mundo de texto y llama la atención a quien no lo conoce. Puede ser un acicate para que otras personas se metan en este mundo de independencia real de nuestros datos y de la información que nosotros mismos generamos, de conseguir que ninguna corporación se apropie de ellos y en un cambio de versión nos chantajee4 para que nos dejemos los dineros en programas más nuevos que no necesitamos.
Footnotes:
Puedes leer el artículo que enlazo en el primer párrafo de este artículo o buscar información por Internet. También puedes leer el artículo https://medium.com/voces-en-espa%C3%B1ol/zettelkasten-c%C3%B3mo-un-erudito-alem%C3%A1n-fue-tan-incre%C3%ADblemente-productivo-b16643e170cc
En las imágenes podéis ver que estoy utilizando las notas que necesito para un proyecto sobre abuso infantil.
Colegio Oficial de Profesionales de la Psicología de Aragón.
No deja de ser una forma admitida legalmente de un ataque ramsonware.
Comentarios