Was haben Sie am 14. Februar 2007 gemacht ? An welchen Aufgaben hast du an dem Tag gearbeitet, an dem du deine Freundin kennengelernt hast? Wann waren die letzten Termine bei Ihrem Zahnarzt? Wer hat Sie letzten Monat während des Treffens mit Ihrem Kunden angerufen ?
Die meisten Menschen können solche Fragen nicht beantworten. Mit Memacs können Sie!
Memacs extrahiert Metadaten (Betreffs, Zeitstempel, Kontaktinformationen, …) aus vielen verschiedenen vorhandenen Datenquellen (Dateinamen, E-Mails, Tweets, Lesezeichen, …) auf Ihrem Computer und generiert Dateien, die von GNU Emacs im Org-Modus gelesen werden können.
Beispiel:
E-Mails -> memacs-maildir.py Firefox-Verlauf -> memacs-firefox.py | SMS -> memacs-sms.py | RSS-Feeds -> memacs_rss.py | Kontoauszüge -> memacs-easybank.py |> Memacs Beiträge -> memacs-slrn.org | Git-Repository-Protokolle -> memacs_git.py | SVN-Repository-Protokolle -> memacs_svn.py / |_________________| |_________________| |______| Ihre persönlichen Daten Memacs-Module Org-Modus
Memacs – als zentrale Komponente des Systems – ist eine Drehscheibe für alle Konnektoren, die Daten aus einzelnen Datenquellen hinzufügen. Diese Anschlüsse werden Memacs-Module oder kurz Modul genannt.
Ihre Agenda wird automatisch mit Einträgen gefüllt, die dem im Screenshot aus dem Whitepaper gezeigten Beispiel ähneln:
Sie können einige Demodaten mit den Modulen für SMS, Dateinamensstempel, Twitter, RSS, IMAP, Telefonanrufe und Git sehen.
Der einfachste Weg, Memacs zu installieren, ist die Verwendung von „pip“:
pip install memacs[alle]
Dadurch erhalten Sie den gesamten Modulsatz mit allen Abhängigkeiten zu Ihrem System.
Wenn Sie die Abhängigkeiten detaillierter definieren möchten, können Sie eines oder mehrere der Extras verwenden: gps
, rss
, ical
, lastfm
, battery
oder twitter
wie im folgenden Beispiel:
pip install memacs[gps,rss]
Falls Sie die Umgebung lieber „auf die alte Art“ einrichten möchten, können Sie dies manuell tun:
PYTHONPATH
exportieren/festlegenPYTHONPATH=/path/to/memacs
pip install -r Anforderungen.txt
Das Grundkonzept der Verwendung eines Memacs-Moduls ist folgendes:
docs
.bin
Ordner von Memacs mit dem Argument --help
, z. B. bin/memacs_csv.py --help
in Ihrer Befehlszeile, um einen Überblick über die Argumente dieses Moduls zu erhalten.Cc mp
( 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 )
Das aufgerufene Skript erfordert die Bereitstellung des ausführbaren Bits. Weitere Hintergrundinformationen zu dieser Technik werden von Mickey Petersen in „Mastering Key Bindings in Emacs“ zusammengestellt.
Bitte lesen Sie unbedingt auch die FAQs und Best Practices, da diese viele Tipps und Tricks enthalten, wie Sie Ihren Anforderungen gerecht werden und wie Sie ein sinnvolles Setup auswählen.
Hier sind einige Arbeitsabläufe, um Ihnen einen ersten Eindruck zu vermitteln, wie Memacs Ihnen viel digitalen Spaß bieten kann.
Wenn ein oder mehrere Memacs-Module eingerichtet sind und Daten in Ihre Memacs-Org-Modus-Dateien einfließen, haben Sie viele Möglichkeiten, Memacs für Ihre persönlichen Arbeitsabläufe zu verwenden.
Die grundlegendste Sache, die sich mit Memacs ändert, ist, dass Sie möglicherweise von Memacs verarbeitete Daten in Ihrer Agenda sehen möchten:
Entweder generieren Sie (1) Org-Modus-Dateien, die sich in Ihren Agenda-Dateien befinden, oder Sie generieren (2) Archivdateien, deren mehr oder weniger leerer Org-Modus-Datei-Stub sich in Ihren Agenda-Dateien befindet (wie in den FAQs beschrieben).
Auf diese Weise gelangen die generierten Zeitstempelinformationen in Ihren normalen Kalender (1) oder in den erweiterten Archivmodus (durch Drücken von v A
in Ihrem Kalender), der auch den Inhalt der Archivdateien anzeigt (2).
Eine Memacs-Funktion, die ich persönlich ständig verwende, bietet einen etwas komplexeren Workflow, dessen Basisdaten vom Dateinamen-Zeitstempelmodul bereitgestellt werden. Das Modul indiziert alle meine Dateien, die ISO-Datumsstempel oder ISO-Zeitstempel in ihren Dateinamen enthalten, so wie es „updateb“ für „locate“ tut.
Der Spaß beginnt, wenn dieses Modul eingerichtet ist und der Dateiindex erstellt wird (nächtlich). Mit den in der Moduldokumentation erwähnten Elisp-Snippets kann ich auf jede dieser Dateien verlinken, indem ich einfach ihren Dateinamen spezifiziere. Diese Links werden nie unterbrochen, da es keine Rolle mehr spielt, in welchem Ordner sich die Dateien befinden.
Bitte sehen Sie sich meine Emacs-Konfiguration an und achten Sie auf alle Vorkommen von tsfile
(Zeitstempeldatei), die mein benutzerdefinierter Link für diese Dateien ist.
Ich habe diesen Workflow sogar so erweitert, dass mein Blog-System unabhängig von ihrem Speicherort auf tsfile:
-Bilder verlinken kann. Tolles Zeug.
Dieses Modul ist ein Beispiel für Entwickler: docs/memacs_csv.org
Diese Module sind noch nicht in das neue einheitliche Framework übernommen:
Die folgenden Module dienen nur als grobe Idee und werden möglicherweise eines Tages (von Ihnen?) implementiert:
Stellen Sie sich vor, Sie nutzen Memacs bereits.
Wenn Sie sich an diesen Tag erinnern, als Sie an einem interessanten Vortrag über „Getting Things Done“ (GTD) teilgenommen haben, starten Sie Ihren GNU Emacs mit Ihrer Hauptdatei im Org-Modus. Dort gehen Sie zur Agenda-Ansicht und wählen diesen bestimmten Tag vor ein paar Monaten aus.
Da haben Sie diesen Vortrag von 14:00 bis 15:00 Uhr in Ihrem Kalender eingeplant. Und dann stellen Sie fest, dass innerhalb dieses Zeitrahmens einige JPEG-Dateien mit einem ISO 8601-Zeitstempel[1] erscheinen, die von einem Modul indiziert sind. (DateinameZeitstempel-Modul)
Dieses Bild enthält eine Folie, die Sie interessant fanden und die Sie mit Ihrem schlanken Smartphone fotografiert haben. Wer würde sich erinnern, während eines Gesprächs ein Foto gemacht zu haben?
Zehn Minuten nach dem Vortrag haben Sie eine kurze Nachricht auf Twitter geschrieben, in der Sie nützliche URLs für Ihre Follower erwähnt haben. Diesmal sind diese URLs auch für Sie selbst praktisch! (Twitter-Modul)
Am Abend dieses Tages sehen Sie den Eintrag einer eingehenden E-Mail des Autors des Vortrags. Jetzt erinnern Sie sich, dass er am Ende des Vortrags ein cooles Gespräch geführt hat, in dem er Ihnen einige zusätzliche Informationen über dieses nette kleine GTD-Tool auf seinem Computer versprochen hat. Schön, dass Sie auch den Link zu dieser E-Mail erhalten haben. Ohne Memecs würden Sie sich wahrscheinlich nie wieder an diese E-Mail erinnern. (Maildir-Modul)
Und dann gab es noch einige Lesezeichen, die Sie an diesem Tag gespeichert haben und die sich fast alle auf großartige Ideen beziehen, die Sie beim GTD-Vortrag erhalten haben. (köstliches-Modul)
Diese kleine Geschichte zeigt nur einige Anwendungsfälle, in denen verschiedene Module bestimmte Datenquellen und deren Informationen kombinieren, um einen Gesamtüberblick über ein Ereignis zu liefern. Da der Organisationsmodus über Links verfügt, müssen keine tatsächlichen Daten dupliziert werden (außer den von Memacs extrahierten Metadaten). E-Mails, Dateien, Lesezeichen usw. werden verlinkt und nicht kopiert.
[1] mit Punkten statt Doppelpunkten – einfach wegen der alten Einschränkungen Microsoft-basierter Dateisysteme; wie «2011-02-14T14.35.42 ideas.jpg»
Im Jahr 1945 schrieb Vannevar Bush den berühmten Artikel „As We May Think“, in dem er die Idee eines „Memory Extenders“ namens Memex entwickelte. Im Memex können alle Briefe, Bücher und andere Informationen gespeichert werden, die sich auf eine Person beziehen.
Er hat nicht nur verschiedene Technologien wie Hypertext vorhergesehen, sondern auch ein Gerät definiert, das alle Metadaten und Daten speichert und assoziative Pfade für den Zugriff auf Informationen bereitstellt.
Im letzten Jahrzehnt des vorigen Jahrhunderts hatte Microsoft Research ein Forschungsprogramm, das zu MyLifeBits führte. Diese Software versuchte, alle Informationen des Benutzers wie Bürodokumente, Screenshots, Namen aktiver Fenster auf dem Desktop-Computer zu speichern und machte sogar automatisch Fotos (SenseCam). Dieses Wort führte zu keinem (offenen) Softwareprodukt. Bell und Gemmell haben ein Buch mit dem Titel „Total Recall“ geschrieben.
Das Memacs-Projekt versucht, die Ideen von Vannevar Bushs Vision mit Open Source und offenen Standards umzusetzen. Daher ist der Name „Memacs“ die offensichtliche Kombination aus „GNU Emacs“ und „Memex“.
Memacs verwendet den GNU Emacs Org-Modus, um von Memacs-Modulen extrahierte Informationen zu visualisieren und darauf zuzugreifen: Mithilfe von Tags, Zeitstempeln, Volltextsuche usw. ist GNU Emacs in der Lage, verschiedene Ansichten abzuleiten. Die wichtigste Ansicht ist wahrscheinlich die Agenda-Ansicht, in der Sie alles sehen können, was an einem bestimmten Tag/einer bestimmten Woche/einem bestimmten Monat entsprechend dem ausgewählten Zeitrahmen passiert ist. Sie können aber auch andere Ansichten ableiten. Beispielsweise können Sie ein komprimiertes Suchergebnis mithilfe einer booleschen Kombination von Tags generieren.
Im Zusammenhang mit Memacs entwickelte der Projektgründer eine Forschungssoftware namens tagstore . Dieses System ermöglicht es Benutzern, (lokale) Dateien mithilfe von Tags ohne Ordnerhierarchie zu speichern. Als natürliche Erweiterung zielt tagstore auf den assoziativen Zugriff auf (lokale) Dateien ab. Vielleicht möchten Sie auch Tagstore ausprobieren. Memacs und Tagstore sind eine sehr nützliche Kombination.
Wenn Sie wissen möchten, wie Sie digitale Dateien auf einfache und betriebssystemunabhängige Weise effizient organisieren können, lesen Sie diesen Blogbeitrag von Karl. Es könnte Ihnen auch Anregungen für Ihre Arbeitsabläufe geben.
Karl hat auch ein Whitepaper über Memacs geschrieben, das Memacs aus wissenschaftlicher Sicht beschreibt.
Wenn Sie zu diesem coolen Projekt beitragen möchten, teilen Sie es bitte mit und tragen Sie bei oder schreiben Sie ein zusätzliches Modul!
Weitere Entwicklungsinformationen finden Sie unter docs/FAQs_and_Best_Practices.org.
Wir sind sicher, dass es da draußen viele coole Ideen für andere Module gibt! Das ist erst der Anfang!
Memacs ist auf minimalen Aufwand für neue Module ausgelegt.
Wir verwenden Python PEP8 und Test Driven Development (TDD).
Memacs ist unter der GPLv3-Lizenz lizenziert.