Desde hace un tiempo venía cuestionándome el método que he utilizado en los últimos años para tomar notas, apuntes y registrar ideas. Básicamente, consistía en escribir archivos de texto plano utilizando GNU Emacs y el glorioso Org Mode, almacenándolos en distintos directorios, clasificándolos según tema, fecha, autor y un sinfín de criterios nada consistentes entre sí. El resultado es que los archivos estaban dispersos por todos lados, muchos ya olvidados en algún rincón, otros repitiendo ideas anteriores y, lo peor de todo, es que estas notas no parecían tener conexión unas con otras.
Fue cuando descubrí el método Zettelkasten. No soy un experto en este método ya que sólo leí un par de introducciones breves y revisé algún video en cierta plataforma privativa, pero me ha bastado para comenzar a reorganizar todo lo que antes era caótico en un sistema coherente de conocimiento. No describiré el método aquí, pero la referencia obligada parece ser How to Take Smart Notes, de Sönke Ahrens.
Inmediatamente me pregunté cómo implementar algo así en Emacs, pero la respuesta llegó antes de terminar la pregunta: seguro que ya existe. Una simple búsqueda me llevó a Org Roam.
¿Qué es Org Roam? #
Org Roam es una extensión del modo Org que nos permite capturar notas al estilo Zettelkasten con mucha facilidad. En este ejemplo veremos una configuración básica que utiliza use-package (mi configuración completa de GNU Emacs se puede revisar en https://notabug.org/dlmayhem/terror-emacs):
(use-package org-roam
:ensure t
:init
(setq org-roam-v2-ack t)
:custom
(org-roam-directory (file-truename "~/Proyectos/org/roam"))
:bind (("C-c n l" . org-roam-buffer-toggle)
("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 c" . org-roam-capture)
("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-setup)
(require 'org-roam-protocol))
Esta es una configuración casi por defecto, tomada de la documentación oficial de Org Roam. Es importante señalar que en la línea (org-roam-directory (file-truename "~/Proyectos/org/roam"))
debemos colocar la ruta del directorio en el que almacenaremos nuestras notas. Sí, todas las notas que capturemos con Org Roam se guardan en el mismo directorio, lo que nos facilita enormemente llevarlas a todas partes con un simple git clone ...
El fragmento siguiente nos permite utilizar org-roam-ui, una extensión para visualizar nuestras notas y sus conexiones en un mapa, muy parecido a lo que se puede hacer con el software privativo Obsidian.
(use-package org-roam-ui
:defer t
:config
(setq org-roam-ui-sync-theme t))
¿Cómo se usa? #
Los atajos que utilizaremos son los siguientes:
C-c n f
busca entre nuestras notas. Si la nota no existe, entonces Roam nos permite crearla abriendo un buffer de org-capture con la plantilla y las instrucciones para aquello.C-c n i
inserta un enlace en la nota actual a una nota existente en nuestro directorio, o la crea en el caso de que no exista.C-c n j
añade una nueva nota y la almacena en un archivo con la fecha actual, que funciona a modo de diario. Esta característica está pensada para las fleeting notes del método Zettelkasten.C-c n l
abre un buffer con todos los backlinks de la nota actual, es decir, con todas las instancias en las que ha sido mencionada en otras notas.C-c n g
muestra en el navegador un diagrama con nuestras notas y sus conexiones.
Esta última característica resulta de mucha ayuda, ya que en ocasiones ver una representación gráfica de los enlaces entre notas nos permite encontrar nuevos nexos entre las mismas. Sin embargo, personalmente prefiero el gráfico que genera la extensión org-roam-ui (segundo fragmento de código de la sección anterior):
org-roam-ui-mode
abre una pestaña en el navegador en http://localhost:35901/ que nos muestra un gráfico interactivo de nuestro segundo cerebro.
Recomiendo el excelente video introductorio (en inglés) que hizo System Crafters sobre el tema, donde por supuesto se explica todo mucho mejor que acá.
Conclusión #
Como siempre, todo es mejor en texto plano. Y, como siempre, Emacs ya cuenta con la solución para nuestros problemas. De momento me encuentro traspasando todas mis notas anteriores al formato Zettelkasten y me ha resultado tan divertido como útil. Actualmente tomo mis notas más eficientemente y sin preocuparme de trivialidades como la clasificación, los nombres, etc, permitiéndome volver rápidamente a los textos mismos. Todo esto se agradece sobremanera cuando la atención no es una de tus virtudes.
Tal vez más adelante muestre lo que he comentado acá con ejemplos prácticos.
¡Salud!