Que faisiez-vous le 14 février 2007 ? Sur quelles tâches travailliez-vous le jour même où vous avez rencontré votre petite amie ? À quand remonte les derniers rendez-vous avec votre dentiste ? Qui vous a appelé au téléphone lors de ce rendez-vous avec votre client le mois dernier ?
La plupart des gens ne peuvent pas répondre à de telles questions. Avec Memacs, c'est possible !
Memacs extrait les métadonnées (sujets, horodatages, informations de contact, …) de nombreuses sources de données existantes (noms de fichiers, e-mails, tweets, signets, …) sur votre ordinateur et génère des fichiers lisibles par GNU Emacs avec le mode Org.
Exemple:
e-mails -> memacs-maildir.py historique de Firefox -> memacs-firefox.py | SMS -> memacs-sms.py | Flux RSS -> memacs_rss.py | relevés bancaires -> memacs-easybank.py |> Memacs publications -> memacs-slrn.org | Journaux du référentiel git -> memacs_git.py | Journaux du référentiel svn -> memacs_svn.py / |_________________| |_________________| |______| vos données personnelles Modules Memacs Mode Org
Memacs - en tant que composant central du système - est une plaque tournante pour tous les connecteurs qui ajoutent des données provenant de sources de données individuelles. Ces connecteurs sont appelés modules Memacs ou module court .
Votre agenda est automatiquement rempli avec des entrées similaires à l'exemple présenté dans la capture d'écran du livre blanc :
Vous pouvez voir des données de démonstration en utilisant les modules pour SMS, filenamedatetestamps, Twitter, RSS, imap, phonecalls et git.
Le moyen le plus simple d'installer Memacs est d'utiliser `pip` :
pip install memacs[tous]
Cela vous permet d'obtenir l'ensemble des modules avec toutes les dépendances sur votre système.
Si vous souhaitez définir les dépendances de manière plus fine, vous pouvez utiliser un ou plusieurs extras : gps
, rss
, ical
, lastfm
, battery
ou twitter
comme dans l'exemple suivant :
pip install memacs[gps,rss]
Si vous préférez définir l'environnement « à l'ancienne », vous pouvez le faire manuellement :
PYTHONPATH
PYTHONPATH=/chemin/vers/memacs
pip install -r exigences.txt
Le concept de base de l'utilisation d'un module Memacs est le suivant :
docs
.bin
de Memacs avec l'argument --help
, par exemple bin/memacs_csv.py --help
dans votre ligne de commande afin d'avoir un aperçu des arguments de ce module.Cc mp
à votre configuration. ( defun mp-update-memacs-photos ()
" An extra (i.e., not cron-scheduled) run of Memacs' photo module. "
( interactive )
( shell-command
( format " ~/org/update-memacs-photos.sh " )
)
)
( global-set-key ( kbd " C-c m p " ) 'mp-update-memacs-photos )
Le script appelé nécessite la fourniture du bit exécutable. Des informations supplémentaires sur cette technique sont compilées par Mickey Petersen dans Mastering Key Bindings in Emacs.
Assurez-vous également de lire la FAQ et les meilleures pratiques, car elles contiennent de nombreux trucs et astuces sur la façon de répondre à vos besoins et sur la manière de choisir une configuration raisonnable.
Voici quelques flux de travail juste pour vous donner une première impression de la façon dont Memacs peut vous apporter beaucoup de plaisir numérique.
Lorsqu'un ou plusieurs modules Memacs sont configurés et que les données commencent à affluer vers vos fichiers en mode Memacs Org, vous disposez de nombreuses options pour utiliser Memacs pour vos flux de travail personnels.
La chose la plus fondamentale qui change avec Memacs est que vous souhaiterez peut-être voir les données traitées par Memacs dans votre agenda :
Soit vous générez (1) des fichiers en mode Org qui se trouvent dans vos fichiers d'agenda, soit vous générez (2) des fichiers d'archive dont le stub de fichier en mode Org plus ou moins vide se trouve dans vos fichiers d'agenda (comme décrit dans la FAQ).
De cette façon, les informations d'horodatage générées entrent dans votre agenda normal (1) ou dans le mode archives étendu (en appuyant sur v A
dans votre agenda) qui affiche également le contenu des fichiers d'archive (2).
Une fonctionnalité Memacs que j'utilise personnellement tout le temps fournit un flux de travail un peu plus complexe dont les données de base sont fournies par le module d'horodatage du nom de fichier. Le module indexe tous mes fichiers qui contiennent des horodatages ISO ou des horodatages ISO dans leurs noms de fichiers, tout comme le fait updateb pour « localiser ».
Le plaisir commence lorsque ce module est configuré et que l'index du fichier est généré (tous les soirs). Avec les extraits elisp mentionnés dans la documentation du module, je peux créer un lien vers n'importe lequel de ces fichiers en spécifiant simplement leur nom de fichier. Ces liens ne sont jamais rompus puisque le dossier dans lequel se trouvent les fichiers n’a plus d’importance.
Veuillez vous référer à ma configuration Emacs et recherchez toutes les occurrences de tsfile
(fichier d'horodatage) qui est mon lien personnalisé pour ces fichiers.
J'ai même étendu ce flux de travail de telle sorte que mon système de blog puisse être lié à tsfile:
des images indépendamment de leur emplacement. Des trucs géniaux.
Ce module est un exemple pour les développeurs : docs/memacs_csv.org
Ces modules ne sont pas encore adoptés dans le nouveau cadre unifié :
Les modules suivants n'existent qu'à titre d'idée approximative et pourraient être implémentés un jour (par vous ?) :
Imaginez que vous utilisez déjà Memacs.
En vous souvenant de ce jour, lorsque vous avez participé à une conférence intéressante sur « Getting Things Done » (GTD), vous démarrez votre GNU Emacs avec votre fichier principal du mode Org. Là, vous accédez à la vue Agenda et sélectionnez ce jour spécifique il y a quelques mois.
Voilà, de 14h à 15h vous avez programmé cette conférence dans votre agenda. Et puis vous vous rendez compte que dans ce laps de temps, certains fichiers JPEG contenant un horodatage ISO 8601[1] apparaissent et sont indexés par un module. (nom de fichiertimestamp-module)
Cette image contient une diapositive que vous avez trouvée intéressante et que vous avez photographiée à l'aide de votre élégant smartphone. Qui se souviendrait d’avoir pris une photo lors d’une conférence ?
Dix minutes après la conférence, vous avez écrit un court message sur Twitter dans lequel vous mentionniez des URL utiles pour vos abonnés. Cette fois, ces URL sont également utiles pour vous-même ! (module Twitter)
Le soir de ce jour, vous voyez une entrée d'un e-mail entrant de l'auteur de la conférence. Vous vous souvenez maintenant d'avoir eu une conversation sympa à la fin de l'exposé au cours de laquelle il vous avait promis des informations supplémentaires sur ce joli petit outil GTD sur son ordinateur. Super que vous ayez également reçu ce lien vers cet e-mail. Sans Memacs, vous ne vous souviendrez probablement plus jamais de cet e-mail. (module Maildir)
Et puis vous avez sauvegardé quelques signets ce jour-là, presque tous liés aux bonnes idées que vous avez reçues lors de la conférence GTD. (délicieux-module)
Cette petite histoire ne montre que quelques cas d'utilisation où différents modules combinent des sources de données données et leurs informations pour fournir une vue globale liée à un événement. Étant donné que le mode Org comporte des liens, aucune donnée réelle ne doit être dupliquée (à l'exception des métadonnées extraites par Memacs). Les e-mails, fichiers, signets, etc. sont liés plutôt que copiés.
[1] avec des points au lieu de deux-points - simplement à cause des anciennes limitations des systèmes de fichiers basés sur Microsoft ; comme «2011-02-14T14.35.42 idées.jpg»
En 1945, Vannevar Bush écrivit un article célèbre « As We May Think » dans lequel il développe l'idée d'avoir un « extension de mémoire » appelé Memex . Le memex peut stocker toutes les lettres, livres et autres informations liées à une personne.
En plus d'avoir prévu plusieurs technologies comme l'hypertexte, il a défini un dispositif qui contient toutes les métadonnées et données et fournit des pistes associatives pour accéder à l'information.
Au cours de la dernière décennie du siècle précédent, Microsoft Research avait un programme de recherche qui a abouti à MyLifeBits. Ce logiciel essayait de stocker chaque information de l'utilisateur comme les documents bureautiques, les captures d'écran, le nom des fenêtres actives sur l'ordinateur de bureau, et prenait même automatiquement des photos (SenseCam). Ce mot n’a donné naissance à aucun produit logiciel (ouvert). Bell et Gemmell ont écrit un livre intitulé « Total Recall ».
Le projet Memacs tente de mettre en œuvre les idées de la vision de Vannevar Bush avec l'open source et les standards ouverts. Par conséquent, son nom « Memacs » est la combinaison évidente de « GNU Emacs » et « Memex ».
Memacs utilise le mode GNU Emacs Org pour visualiser et accéder aux informations extraites par les modules Memacs : en utilisant des balises, des horodatages, une recherche en texte intégral, etc., GNU Emacs est capable de dériver différentes vues. La vue la plus importante est probablement la vue Agenda où vous pouvez voir tout ce qui s'est passé au cours d'un jour/semaine/mois spécifique en fonction de la période sélectionnée. Mais vous pouvez également en dériver d’autres vues. Par exemple, vous pouvez choisir de générer un résultat de recherche condensé à l'aide d'une combinaison booléenne de balises.
En lien avec Memacs, le fondateur du projet a développé un logiciel de recherche appelé tagstore . Ce système permet aux utilisateurs de stocker des fichiers (locaux) à l'aide de balises sans hiérarchie de dossiers. En tant qu'extension naturelle, tagstore cible l'accès associatif aux fichiers (locaux). Vous voudrez peut-être également consulter tagstore. Memacs et tagstore sont une combinaison très utile.
Si vous souhaitez savoir comment organiser efficacement des fichiers numériques de manière simple et indépendante du système d'exploitation, lisez cet article de blog de Karl. Cela pourrait également vous donner des idées pour vos flux de travail.
Karl a également écrit un livre blanc sur Memacs qui décrit Memacs d'un point de vue scientifique.
Si vous souhaitez contribuer à ce projet sympa, veuillez contribuer et contribuer ou écrire un module supplémentaire !
Voir docs/FAQs_and_Best_Practices.org pour plus d'informations sur le développement.
Nous sommes sûrs qu’il existe de nombreuses idées intéressantes pour d’autres modules ! Ce n'est que le début !
Memacs est conçu dans le respect d'un minimum d'effort pour les nouveaux modules.
Nous utilisons Python PEP8 et Test Driven Development (TDD).
Memacs est sous licence GPLv3.