emacs org-mode knowledge-management

¿Cómo mantener una base de conocimiento basada en emacs?



org-mode knowledge-management (8)

He estado usando org-mode por un tiempo, lo he mantenido realmente simple por ahora, con solo dos archivos:
uno para actuar como bandeja de entrada, con modo recordatorio
otro donde pego casi todo lo que ha sido procesado desde la bandeja de entrada

Esto es genial para administrar elementos algo ''procesables'', pero sigo agregando cosas de una naturaleza más general, que no necesitaré en el día a día (cómo hacer, leer notas, etc.), así que se está poniendo lento y difícil de manejar

El material con el que me estoy ocupando no se ajusta a los paradigmas / projects / tasks / sub-tasks, son más como pequeños nuggets de conocimiento sobre temas seleccionados, que son intrínsecamente más complejos de clasificar y gestionar.

Me he estado preguntando qué tipo de estructura se podría utilizar para manejar ese tipo de información (clasificación y recuperación), y si hay otros modos que podrían ayudar con el trabajo.

Supongo que no hay una respuesta preestablecida para esta pregunta, ya que todos pueden tener necesidades diferentes.
Noufal me dio buenos consejos conceptuales que tendré en cuenta, pero, en general, la respuesta aceptada proporcionó opiniones más pragmáticas sobre esto, el recurso vinculado fue una GRAN lectura.


[org-mode] es ideal para administrar elementos algo "procesables", pero sigo agregando cosas de una naturaleza más general, que no necesitaré en el día a día (cómo hacer, leer notas, etc.) , por lo que cada vez es más lento y difícil de administrar.

Soy un seguidor de David Allen y su metodología Getting Things Done . Estoy usando Emacs para tres de las listas que recomienda:

  • Acciones siguientes

  • Recursos del proyecto

  • La lista Someday / Maybe

El material con el que me estoy ocupando no se ajusta a los paradigmas / projects / tasks / sub-tasks, son más como pequeños nuggets de conocimiento sobre temas seleccionados, que son intrínsecamente más complejos de clasificar y gestionar.

Me he estado preguntando qué tipo de estructura se podría utilizar para manejar ese tipo de información (clasificación y recuperación), y si hay otros modos que podrían ayudar con el trabajo.

Para este tipo de información he migrado lejos de emacs. En cambio, conservo un directorio ~/etc/howto , y en ese directorio coloco archivos que contienen "pequeños nuggets de conocimiento sobre temas seleccionados", donde el criterio clave es que la información tiene un valor a largo plazo .

Pude buscar en este directorio con Emacs, pero mi Emacs Lisp no está tan caliente, así que escribí un script de howto shell en su lugar (algunos errores se omiten para mayor claridad):

case $# in 1) ;; *) echo "Usage: $0 <topic>" 1>&2; exit 2 ;; esac topic="$1" # Note the ordering: first exact matches, then beginning matches, then any matches set xxx `find $HOME/etc/howto/. -name "$topic" -not -type d -print` / `find $HOME/etc/howto/. -name "${topic}?*" -not -type d -not -name ''*~'' -print` / `find $HOME/etc/howto/. -name "?*$topic*" -not -type d -not -name ''*~'' -print` shift case $# in 0) echo "No file found matching *$topic*" 1>&2 ; exit 1 ;; *) for i do less "$i" done ;; esac

Ejemplos incluyen:

  • howto football trae tres nuggets, en este orden:

    • Instrucciones para dar a mi esposa sobre cómo grabar un partido de fútbol en la computadora

    • Instrucciones para mí, exactamente qué tomar y cómo vestirme cuando tengo entradas para un partido de fútbol.

    • Instrucciones para transcodificar un juego de fútbol para que pueda transmitirse a través de la red y verse fuera de casa

  • howto filesystem muestra instrucciones sobre cómo copiar un sistema de archivos.

  • howto batteries trae una lista de baterías recargables recomendadas

Una razón por la que no uso Emacs es que mi script real es un poco más complicado que lo que ves arriba: también maneja archivos PDF y djvu, así que por ejemplo howto razor muestra un documento djvu del manual que vino con mi electric maquinilla de afeitar.

Tengo más de 500 elementos en el directorio principal o en subdirectorios, e incluso a esta escala el sistema funciona bastante bien para mí. Espero que les resulte útil también.


Creo que este excelente documento sobre cómo utilizar org-mode a su máximo potencial será muy útil para usted: "Modo Org: Organice su vida en texto sin formato" . Es una lectura larga, pero confía en mí, vale la pena el esfuerzo.

ACTUALIZACIÓN: Puede usar la sección de modo de recordar que se menciona en el documento para su caso de uso. (Lo uso para el mismo caso de uso) El modo Recordar es extremadamente útil para hacer notas rápidas. Lo uso cuando tengo que almacenar observaciones aleatorias o información que no irá a ninguna otra parte. Yo uso las siguientes plantillas para recordar:

(setq org-default-notes-file (concat org-directory "/remember-notes.org")) (setq org-remember-templates `(("Todo" ?t "* TODO %?/n %i/n" ,(concat org-directory "/remember-notes.org") bottom) ("Misc" ?m "* %?/n %i/n" ,(concat org-directory "/Notes.org") "Misc") ("iNfo" ?n "* %?/n %i/n" ,(concat org-directory "/Notes.org") "Information") ("Idea" ?i "* %?/n %i/n" ,(concat org-directory "/Notes.org") "Ideas") ("Journal" ?j "* %T %?/n/n %i/n" ,(concat org-directory "/journal.org") bottom) ("Blog" ?b "* %T %? :BLOG:/n/n %i/n" ,(concat org-directory "/journal.org") bottom) ))

Como puede ver, varias notas y otra información van en el archivo notes.org bajo los encabezados Mis e Información. Si la nota que estoy escribiendo no corresponde a ninguna de las categorías definidas anteriormente, se archiva en el archivo predeterminado (remember-notes.org) y siempre puedo volver a enviarla a otra ubicación en un momento conveniente. Esto hace que tomar notas, anotar ideas al azar, y cosas así de extremadamente simples, sin quitar el enfoque del trabajo que estoy haciendo actualmente.


En el trabajo, usamos una wiki (en realidad, varias: una wiki global más una wiki por proyecto) para esto. Es ideal para datos no jerárquicos, pero también se puede usar para datos jerárquicos. Es formateable, hipertextual, enlazable, buscable, compartible pero también puede ser propiedad, mantiene la historia y otras cosas buenas.

Personalmente, solía usar también una wiki para esto. Pero en estos días, generalmente me olvido de cosas en su lugar. Mas facil.


He intentado varias formas de administrar una base de conocimiento en el pasado. Tengo un montón de "nuggets de conocimiento" (por cierto, gracias, me gusta mucho ese término) en todo tipo de temas diversos, que van desde cómo configurar apache tomcat ssl cert, a las listas de verificación para hacer un presupuesto familiar mensual, a mantener un lista de pesas y repeticiones completadas en entrenamientos.

Intenté mantener estos en un blog de WordPress, en una wiki personal, usando lápiz y papel, etc.

Al final, emacs y org-mode son el claro ganador para mí. Me encanta tener la capacidad de comenzar de manera simple y crear una funcionalidad más compleja cuando la necesito. He usado muchos de los consejos descritos por Sacha Chua .

En mi caso, siempre termino con un montón de notas (más formales y organizadas) mezcladas con elementos de acción (menos formales). En general, mantengo una lista maestra de "elementos de acción" y luego creo un archivo separado para notas sobre cada tema. Hasta ahora, grep me ha funcionado para encontrar rápidamente el archivo que contiene notas. A menudo crearé un marcador de emacs Cx rm para navegar rápidamente a los archivos de notas también.

Los blogs simples, CMS y wikis (como Drupal y Wordpress) son buenos para la clasificación y recuperación. ¿Tal vez podrías exportar archivos org a html y publicarlos en un blog, cms o wiki? Puede que no sea demasiado difícil conectarse a la capacidad de etiquetado blog / wiki / cms.


Personalmente mantengo una lista de directorios de proyectos con una estructura similar. Cada uno tiene tasklist.org, un subdirectorio de seguimiento (donde hago estimaciones de proyectos y seguimiento del tiempo y siempre mantengo un diario que es lo principal para el proyecto - tendrá enlaces a otros archivos para el proyecto), un subdirectorio de documentos que generalmente consiste en cosas que voy a publicar (documentos para el proyecto, propuestas, etc.). Obtengo mis archivos de agenda en tasklist.org en cada uno de los subdirectorios para que mi agenda funcione bien.

Creo que la organización de los datos cambiaría un poco en su caso (tal vez temas como "programación funcional", etc.). Soy escéptico sobre cuánto ayudaría una estructura jerárquica, ya que eso lo limitaría a una forma de ver las cosas (etiquetas contra carpetas de nuevo). Aquí hay algunas cosas que vienen a la mente.

  1. Mantenga un archivo org ''master'' que tenga enlaces a todas las partes ''interesantes'' de alto nivel del otro contenido (similar al diario que mencioné anteriormente).
  2. Etiquete todo su material correctamente (se establecerá en un conjunto de etiquetas útiles después de un tiempo) y luego use la función de búsqueda de etiquetas para buscar rápidamente los archivos. Sin embargo, esto supone que todos los archivos están en sus agenda-files .
  3. Finalmente, si sus datos son demasiado exóticos como para ponerlos en una estructura, puede considerar usar un indexador de texto completo (como xapian) e integrarlo en su Emacs. Hubo una discusión de esto here .

Puede acelerar el modo orgánico manteniendo sus notas en un archivo separado (o uno para cada tema amplio) que no está incluido en la lista habitual de archivos de la agenda. Personalice org-agenda-files para ver la lista.

Use org-remember para ingresar notas rápidamente sin interrumpir su flujo. Puede etiquetarlos en el momento o guardarlos en algún lugar para volver a enviarlos más tarde. Puede usar una etiqueta en la plantilla remember (personalizar org-remember-templates ) para marcar notas para volver a generar y usar una búsqueda de agenda personalizada ( org-agenda-custom-commands ) para listarlas.

Etiquete cada nota con temas relevantes y utilice las funciones de búsqueda de la vista de agenda para encontrarlas. Puede definir una búsqueda personalizada que sepa buscar en los archivos correctos, o puede visitar el archivo y restringir la búsqueda de la agenda a ese solo archivo.

Guardo un archivo de notas y su pregunta me acaba de inspirar para volver y comenzar a etiquetarlas todas. Funciona un placer!


Tengo sugerencias en archivos .prst (reStructuredText) en un solo directorio. Cada archivo tiene su propio tema.

Para la búsqueda utilizo Mx occur , o Mx lgrep , o Mx ack .

Ejemplo alojado en la web: http://tips.defun.work/frame.html y es fácil convertir esas páginas en una solución tipo blog.

Fuentes originales con script de compilación: http://hg.defun.work/tips/

Principal ventaja del formato reStructuredText :

  • Soporte TOC.
  • include sintaxis.
  • Capacidad para crear un índice de búsqueda sin conexión de texto completo basado en JavaScript en el sitio HTML con TOC, índice, referencia por Sphinx.
  • Recuerde que Markdown chupa en extensibilidad, RST tiene sintaxis regular para marcar datos por sus tokens e incluye cualquier formato de texto plano como en línea en su documento. Piensa en gráficos con dot , resaltado de sintaxis progresiva, etc.

  • El material con el que me estoy ocupando no se ajusta a los paradigmas / projects / tasks / sub-tasks, son más como pequeños nuggets de conocimiento sobre temas seleccionados, que son intrínsecamente más complejos de clasificar y gestionar.

Use marcadores y Bookmark+ . Puede crear marcadores para conjuntos de archivos y directorios, además de archivos individuales, y puede tag marcadores o archivos, a la delicious , para propósitos de organización y búsqueda.