35 votes

Comment maintenir une base de connaissances basée sur emacs ?

J'utilise org-mode depuis un petit moment, je l'ai gardé vraiment simple pour l'instant, avec seulement deux fichiers :
un pour agir comme une boîte de réception, avec remember-mode
un autre où je mets à peu près tout ce qui a été traité de la boite de réception

C'est parfait pour gérer des éléments quelque peu 'actionnables', mais je continue d'ajouter des choses d'une nature plus générale, dont je n'aurai pas besoin au quotidien (how-tos, notes de lecture, etc), donc c'est lent et difficile à gérer.

Le contenu avec lequel je me préoccupe ne correspond pas aux paradigmes / projets / tâches / sous-tâches, ce sont plutôt des petits morceaux de connaissances sur des sujets sélectionnés, qui sont intrinsèquement plus complexes à classer et à gérer.

Je me demande quelle sorte de structure pourrait être utilisée pour gérer ce type d'informations (classification et récupération), et s'il existe peut-être d'autres modes qui pourraient aider dans cette tâche ?


Je suppose qu'il n'y a pas de réponse toute faite à cette question, car chacun peut avoir des besoins différents.
Noufal a donné de bons conseils conceptuels que je garderai à l'esprit, mais dans l'ensemble, la réponse acceptée a fourni des vues plus pragmatiques à ce sujet, la ressource liée était une excellente lecture.

0 votes

Il doit être le Nouvel An, mais je me pose les mêmes questions. Je suivrai les réponses avec intérêt. Je penche vers l'écriture d'un manuel LaTeX, mais j'utilise beaucoup LaTeX.

3 votes

BOK == Livre de Connaissances, comme dans SWEBOK (Livre de Connaissances en génie logiciel) et PMBOK (Livre de Connaissances en gestion de projet). Je pensais qu'ils étaient généralement connus. Désolé pour la confusion. Et bien sûr, je veux dire que je penche vers l'écriture de mon BOK en LaTeX, et non pas un BOK dont le sujet est LaTeX.

32voto

vedang Points 2057

Je pense que ce document excellent sur la façon d'utiliser org-mode à son plein potentiel vous sera très utile : "Org Mode: Organize Your Life In Plain Text". C'est une lecture longue, mais croyez-moi, ça vaut vraiment l'effort.

MISE À JOUR : Vous pouvez utiliser la section remember-mode mentionnée dans le document pour votre cas d'utilisation. (Je l'utilise pour le même cas d'utilisation) Le mode remember est extrêmement pratique pour prendre rapidement des notes. Je l'utilise lorsque je dois enregistrer des observations aléatoires ou des informations qui n'iront nulle part ailleurs. J'utilise les modèles suivants pour remember :

(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)
    ))

Comme vous pouvez le voir, les notes diverses et autres informations vont dans le fichier notes.org sous les titres Misc et Information. Si la note que je prends ne rentre dans aucune des catégories définies ci-dessus, elle est classée dans le fichier par défaut (remember-notes.org) et je peux toujours la réorganiser vers un autre endroit plus tard. Cela rend la prise de notes, le fait de noter des idées aléatoires, et des choses de ce genre extrêmement simple, sans détourner l'attention du travail que je suis en train de faire.

0 votes

On dirait que oui. Je vais vérifier cela et essayer de le comparer aux modes planner + muse, qui semblent être la seule alternative au mode org.

1 votes

Bonne idée, voir aussi emacs-fu.blogspot.com/2009/04/remember.html pour un exemple d'intégration globale du système

1 votes

FYI: org-remember a été remplacé par org-capture

9voto

Noufal Ibrahim Points 32200

Personnellement, je garde une liste des répertoires de projet avec une structure assez similaire. Chacun a un tasklist.org, un sous-répertoire de suivi (où je fais des estimations de projet et du suivi du temps et maintiens toujours un journal qui est la chose principale pour le projet - il aura des liens vers d'autres fichiers pour le projet), un sous-répertoire de documents qui consiste généralement en des choses que je vais publier (documents pour le projet, propositions etc.). J'ajoute mes fichiers d'agenda au tasklist.org dans chacun des sous-répertoires pour que mon agenda fonctionne correctement.


Je pense que l'organisation des données changerait un peu dans votre cas (peut-être des sujets comme la "programmation fonctionnelle" etc.). Je suis sceptique quant à savoir dans quelle mesure une structure hiérarchique aiderait, car cela vous confinerait dans un seul mode de visualisation des choses (tags vs. dossiers). Voici quelques choses qui me viennent à l'esprit.

  1. Conservez un fichier org 'master' qui comporte des liens vers tous les éléments de premier niveau 'intéressants' des autres contenus (similaire au journal mentionné ci-dessus).
  2. Taggez correctement tout votre matériel (vous vous fixerez sur un ensemble de tags utiles après un certain temps) et utilisez ensuite la fonction de recherche par tag pour parcourir rapidement les fichiers. Cela suppose que tous les fichiers sont dans vos agenda-files cependant.
  3. Enfin, si vos données sont trop exotiques pour être mises dans une structure, vous pouvez envisager d'utiliser un indexeur de texte intégral (comme xapian) et l'intégrer dans votre Emacs. Il y a eu une discussion à ce sujet ici.

Mise à jour : 26/Nov/2019

Récemment, j'ai découvert le package hyperbole qui prétend être un organisateur d'informations. Je ne l'ai pas utilisé mais j'ai très envie de le faire et je mettrai à jour ceci quand je le ferai.

0 votes

J'avais quelque chose de similaire en tête pour faire évoluer mon système actuel, bon de savoir que c'est en fait utilisable. Cependant, les éléments que j'essaie d'utiliser ne sont pas souvent liés directement à un projet particulier, et je dois encore trouver cela...

0 votes

Quel type de données essayez-vous de maintenir ? Des exemples ?

0 votes

Glad you asked. Je suis actuellement en train de me documenter sur la Programmation Fonctionnelle, et le Processus des Exigences Logicielles par exemple. Je suppose que vous pouvez voir comment les notes prises sur ces sujets (à travers la lecture de livres et la navigation sur le web), nécessitent une taxonomie légèrement différente de la gestion d'un projet réel ; bien que la différence soit plus conceptuelle qu'autre chose, car j'ai encore besoin de référencer des ressources dépendantes etc (c'est-à-dire le répertoire docs que vous avez mentionné).

9voto

Norman Ramsey Points 115730

[org-mode] est idéal pour gérer des éléments quelque peu "actionnables", mais je continue d'ajouter des choses d'une nature plus générale, dont je n'aurai pas besoin au quotidien (modes d'emploi, notes de lecture, etc.), donc c'est devenu lent et difficile à gérer.

Je suis adepte de David Allen et de sa méthodologie Getting Things Done. J'utilise Emacs pour trois des listes qu'il recommande :

  • Prochaines actions

  • Ressources du projet

  • La liste Un jour/Peut-être

Le matériel avec lequel je travaille ne correspond pas aux paradigmes /projets/tâches/sous-tâches, ce sont plutôt comme de petits "morceaux de connaissances" sur des sujets sélectionnés, qui sont intrinsèquement plus complexes à classer et à gérer.

Je me demande quel type de structure pourrait être utilisé pour gérer ce type d'informations (classification et récupération), et s'il existe peut-être d'autres modes qui pourraient aider dans cette tâche ?

Pour ce type d'informations, j'ai migré loin d'emacs. À la place, je garde un répertoire ~/etc/howto, et dans ce répertoire je mets des fichiers contenant des "petits morceaux de connaissances sur des sujets sélectionnés", où le critère clé est que l'information a une valeur à long terme.

Je pourrais rechercher ce répertoire avec Emacs, mais mon Lisp Emacs n'est pas si bon, donc j'ai écrit plutôt un script shell howto à la place (certains contrôles d'erreur omis pour plus de clarté) :

case $# in
  1) ;;
  *) echo "Usage: $0 " 1>&2; exit 2 ;;
esac

sujet="$1"

# Notez l'ordre : d'abord les correspondances exactes, puis les correspondances au début, puis toutes les correspondances

définir xxx `find $HOME/etc/howto/. -name "$sujet"     -not -type d -print` \
        `find $HOME/etc/howto/. -name "${sujet}?*" -not -type d -not -name '*~' -print` \
        `find $HOME/etc/howto/. -name "?*$sujet*"  -not -type d -not -name '*~' -print`
décaler

case $# in
  0) echo "Aucun fichier trouvé correspondant à *$sujet*" 1>&2 ; exit 1 ;;
  *) pour i
     faire
       moins "$i"
     fait
     ;;
esac

Des exemples incluent :

  • howto football affiche trois morceaux, dans cet ordre :

    • Instructions à donner à ma femme sur comment enregistrer un match de football sur l'ordinateur

    • Instructions pour moi sur ce qu'il faut prendre et comment s'habiller quand j'ai des billets pour un match de football

    • Instructions pour transcoder un match de football afin qu'il puisse être transmis sur le net et visionné en dehors de chez soi

  • howto filesystem affiche des instructions sur comment copier un système de fichiers

  • howto batteries affiche une liste de batteries rechargeables recommandées

Une des raisons pour lesquelles je n'utilise pas Emacs est que mon vrai script est un peu plus compliqué que ce que vous voyez ci-dessus : il gère également les fichiers PDF et djvu, donc par exemple howto razor affiche un document djvu du manuel livré avec mon rasoir électrique.

J'ai plus de 500 éléments dans le répertoire principal ou dans des sous-répertoires, et même à cette échelle, le système fonctionne très bien pour moi. J'espère que vous le trouverez utile également.

0 votes

Upvoté pour la superbe description du hack shell, et pour le côté ultra-geek des cas d'utilisation que vous avez mentionnés. Cependant, je souhaite conserver le mode d'édition org-mode pour les prétendus "nuggets", car il offre une sorte de structuration libre dont je suis devenu assez adepte.

6voto

Dave Paroulek Points 6033

J'ai essayé plusieurs façons de gérer une base de connaissances dans le passé. J'ai une poignée de "nuggets de connaissance" (au fait, merci, j'aime beaucoup ce terme) sur toutes sortes de sujets divers, allant de la façon de configurer un certificat SSL apache tomcat, aux listes de contrôle pour établir un budget familial mensuel, en passant par le maintien d'une liste de poids et de répétitions effectuées lors des entraînements.

J'ai essayé de les garder dans un blog Wordpress, sur un wiki personnel, en utilisant un stylo et du papier, etc.

En fin de compte, emacs et org-mode sont les grands gagnants pour moi. J'aime avoir la possibilité de commencer simplement et de développer une fonctionnalité plus complexe au besoin. J'ai utilisé beaucoup des conseils décrits par Sacha Chua.

Dans mon cas, je me retrouve toujours avec une poignée de notes (plus formelles et organisées) mélangées avec des tâches à accomplir (moins formelles). En général, je maintiens une liste principale de "tâches à accomplir" et crée ensuite un fichier séparé pour des notes sur chaque sujet. Jusqu'à présent, grep a bien fonctionné pour moi pour trouver rapidement le fichier contenant les notes. Je crée souvent un signet emacs C-x r m pour naviguer rapidement vers les fichiers de notes également.

Les blogs simples, les CMS et les wikis (comme Drupal et Wordpress) sont bons pour la classification et la récupération. Peut-être pourriez-vous exporter des fichiers org en html et les publier sur un blog, un CMS ou un wiki? Il pourrait ne pas être trop difficile de se connecter à la fonctionnalité de balisage du blog/wiki/CMS.

5voto

Tom Anderson Points 22456

Au travail, nous utilisons un wiki (en fait, plusieurs - un wiki global plus un wiki par projet) pour cela. C'est idéal pour les données non hiérarchiques, mais peut également être utilisé pour les données hiérarchiques. C'est formattable, hypertextuel, lié, recherchable, partageable mais aussi appropriable, il conserve l'historique et d'autres bonnes choses.

Personnellement, j'avais l'habitude d'utiliser un wiki pour cela. Mais de nos jours, j'oublie généralement juste les choses. Beaucoup plus facile.

3 votes

Je n'ai pas lu votre question comme demandant une solution basée sur emacs, d'où ma réponse. Cependant, il existe des plugins d'édition de wiki pour emacs, donc cela pourrait toujours être pertinent!

0 votes

"Personnellement, j'avais l'habitude d'utiliser un wiki pour cela aussi. Mais de nos jours, j'oublie simplement les choses. Beaucoup plus facile. " Une perle de sagesse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X