summaryrefslogtreecommitdiffstats
path: root/2019/transcripts/10.md
diff options
context:
space:
mode:
Diffstat (limited to '2019/transcripts/10.md')
-rw-r--r--2019/transcripts/10.md180
1 files changed, 180 insertions, 0 deletions
diff --git a/2019/transcripts/10.md b/2019/transcripts/10.md
new file mode 100644
index 00000000..862d71df
--- /dev/null
+++ b/2019/transcripts/10.md
@@ -0,0 +1,180 @@
+[[!meta title="Notmuch New(s) - David Bremner"]]
+
+```
+#+TITLE: Notmuch New(s)
+#+AUTHOR: David Bremner
+#+PROPERTY: header-args:sh :results output :session demo :output session
+
+* What is notmuch?
+** A tool(kit) for indexing and searching mail
+#+begin_src dot :file ecosystem.pdf
+digraph ecosystem {
+ size = "4,3"
+ margin=0
+ graph [fontsize=20]
+ node [fontsize=20]
+ edge [fontsize=20]
+
+ gmime
+ xapian
+ notmuch_cli [shape=record,style=filled, color=yellow,label="notmuch CLI"]
+ libnotmuch [style=filled,color=gold]
+
+ subgraph cluster_clients {
+ style=filled;
+ color=cadetblue3;
+ label="Mail user agents";
+ node [shape=record, style=filled, color=white];
+ notmuch_emacs [label="notmuch-emacs",color=yellow]
+ alot
+ bower
+ astroid
+ notmuch_web [label="notmuch-web"]
+ noservice
+ neomutt
+ notmuch_vim [label="notmuch-vim", color=lightyellow]
+ notmuch_mutt [label="notmuch-mutt", color=lightyellow]
+ }
+
+
+ subgraph cluster_tools {
+ style=filled;
+ color=darkolivegreen2;
+ label="tools";
+ node [shape=record, style=filled, color=white];
+ afew
+ nmbug [color=yellow]
+ notmuch_report [label="notmuch-report"] [color=yellow]
+ }
+
+ subgraph cluster_bindings {
+ label="Bindings"
+ style=filled;
+ color=lightyellow;
+ node [shape=record, style=filled, color=white];
+ ruby_notmuch [label="ruby", color=yellow]
+ python_notmuch [label="python", color=yellow]
+ notmuch_go [label="go"]
+ notmuch_rust [label="rust"]
+ }
+
+ neomutt -> libnotmuch
+ astroid -> libnotmuch
+ alot->python_notmuch
+ notmuch_emacs->notmuch_cli
+ notmuch_mutt->notmuch_cli
+ notmuch_vim->ruby_notmuch
+ bower -> notmuch_cli
+
+ noservice->notmuch_cli
+ nmbug->notmuch_cli
+ notmuch_report-> python_notmuch
+
+ python_notmuch->libnotmuch
+ ruby_notmuch->libnotmuch
+ notmuch_go ->libnotmuch
+ notmuch_rust ->libnotmuch
+
+ notmuch_web->notmuch_cli
+ notmuch_cli->libnotmuch
+
+ afew->python_notmuch
+
+ libnotmuch->xapian
+ libnotmuch->gmime
+ {
+ edge [style="invisible",arrowhead="none"]
+ notmuch_emacs->astroid
+ notmuch_emacs->neomutt
+ notmuch_emacs->notmuch_vim
+ notmuch_emacs->alot
+ notmuch_emacs->bower
+ bower->notmuch_vim
+ bower->astroid
+ notmuch_web->noservice
+ }
+
+}
+#+end_src
+
+** Emacs interface(s) to notmuch
+(notmuch-search "from:floris subject:cffi")
+(notmuch-tree "from:floris subject:cffi")
+
+#+RESULTS:
+
+* What is new?
+** Search Improvements
+*** separate message body indexing
+(notmuch-search "body:emacsconf and not subject:emacsconf")
+*** user defined headers, e.g. =List-Id=
+#+begin_src sh
+notmuch config set header.List List-Id
+notmuch reindex date:1month..
+#+end_src
+
+(notmuch-search "List:notmuch date:1month..")
+** Cryptography Support
+- (optional) indexing cleartext of encrypted e-mails
+- (optional) caching of session keys
+#+begin_example
+ ┌───────────────┬───────┬──────┬─────────┬──────┐
+ │ │ false │ auto │ nostash │ true │
+ ├───────────────┼───────┼──────┼─────────┼──────┤
+ │Index cleart‐ │ │ X │ X │ X │
+ │ext using │ │ │ │ │
+ │stashed ses‐ │ │ │ │ │
+ │sion keys │ │ │ │ │
+ ├───────────────┼───────┼──────┼─────────┼──────┤
+ │Index cleart‐ │ │ │ X │ X │
+ │ext using se‐ │ │ │ │ │
+ │cret keys │ │ │ │ │
+ ├───────────────┼───────┼──────┼─────────┼──────┤
+ │Stash session │ │ │ │ X │
+ │keys │ │ │ │ │
+ ├───────────────┼───────┼──────┼─────────┼──────┤
+ │Delete stashed │ X │ │ │ │
+ │session keys │ │ │ │ │
+ │on reindex │ │ │ │ │
+ └───────────────┴───────┴──────┴─────────┴──────┘
+#+end_example
+- indexing, searching, rendering /protected Subjects/
+ - sent by Enigmail and K-9 mail
+
+** Support for gzipped mail files
+(notmuch-show "id:1319286098.13821.57.camel@pc-jirka")
+#+begin_src sh
+bigfile=$(notmuch search --output=files id:1319286098.13821.57.camel@pc-jirka)
+ls -lh ${bigfile}
+gzip -9 ${bigfile}
+notmuch new
+#+end_src
+
+#+begin_src sh
+gunzip ${bigfile}
+notmuch new
+#+end_src
+
+* What is next?
+** notmuch-emacs improvements
+- better docs?
+- more asynch things
+- convenience features, e.g. jump to parent messages
+** Updating python bindings
+- based on CFFI
+- more /Pythonic/
+- less broken with Python >= 3.6
+
+** Protected Headers Support
+- authoring protected headers
+
+* Cleanup this buffer
+#+begin_src elisp
+(org-babel-remove-result-one-or-many 't)
+#+end_src
+
+* Configuration
+# Local Variables:
+# org-confirm-babel-evaluate: nil
+# End:
+```