{"id":4342,"date":"2017-12-11T12:51:22","date_gmt":"2017-12-11T02:51:22","guid":{"rendered":"https:\/\/www.flamingspork.com\/blog\/?p=4342"},"modified":"2017-12-11T12:51:22","modified_gmt":"2017-12-11T02:51:22","slug":"how-i-do-email-at-work","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2017\/12\/11\/how-i-do-email-at-work\/","title":{"rendered":"How I do email (at work)"},"content":{"rendered":"<p>Recently, I blogged on my <a href=\"https:\/\/www.flamingspork.com\/blog\/2017\/11\/28\/how-i-do-email-at-home\/\">home email setup <\/a>and\u00c2\u00a0in that post, I hinted that my work setup was rather different. I have entirely separate computing devices for work and personal, a setup I <strong>strongly<\/strong> recommend. This also lets me &#8220;go home&#8221; from work even when working from home, I use a different physical machine!<\/p>\n<p>Since I work for IBM I have (at least) two email accounts for work: a Lotus Notes one and a internet standards compliant one. It&#8217;s &#8220;easy&#8221; enough to get the Notes one to forward to the standards compliant one, from which I can just use fetchmail or similar to pull down mail.<\/p>\n<p>I run mail through a rather simple procmail script: it de-mangles some URL mangling that can happen in the current IBM email infrastructure, runs things through SpamAssassin and deliver to a date based Maildir (or one giant pile for spam).<\/p>\n<p>My <code>~\/.procmailrc<\/code> looks something like this:<\/p>\n<pre>LOGFILE=$HOME\/mail_log\r\nLOGABSTRACT=yes\r\n\r\nDATE=`date +\"%Y%m\"`\r\nMAILDIR=Maildir\/INBOX\r\nDEFAULT=$DATE\/\r\n\r\n:0fw\r\n| magic_script_to_unmangle_things\r\n\r\n:0fw\r\n| spamc\r\n\r\n:0\r\n* ^X-Spam-Status: Yes\r\n$HOME\/Maildir\/junkmail\/incoming\/<\/pre>\n<p>I use <code>tail -f mail_log<\/code> as a really dumb kind of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Biff\">biff<\/a> replacement.<\/p>\n<p>Now, what do I read and write mail with? <a href=\"http:\/\/notmuchmail.org\/\">Notmuch<\/a>! It is the only thing that even comes <strong>close<\/strong> to being able to deal with a decent flow of mail. I have a couple of saved searches just to track how much mail I pull in a day\/week. Today (on Monday), it says 442 today and 10,403 over the past week.<\/p>\n<p>For the most part, my workflow is kind of INBOX-ZERO like, except that I currently view victory as INBOX 2000. Most mail does go into my INBOX, the notable exceptions are two main mailing lists I&#8217;m subscribed to mostly as FYI and to search\/find things when needed. Those are the Linux Kernel Mailing List (LKML) and the buildroot mailing list. Why notmuch rather than just searching the web for mailing list archives? Notmuch can return the result of a query in less time it takes light to get to and from the United States in ideal conditions.<\/p>\n<p>For work, I don&#8217;t sync my mail anywhere. It&#8217;s just on my laptop. Not having it on my phone is a <strong>feature.<\/strong> I have a notmuch post-new hook that does some initial tagging of mail, and as such I have this in my <code>~\/.notmuch-config<\/code>:<\/p>\n<pre>[new]\r\ntags=new;<\/pre>\n<p>My <code>post-new<\/code> hook looks like this:<\/p>\n<pre>#!\/bin\/bash\r\n\r\n# immediately archive all messages from \"me\"\r\nnotmuch tag -new -- tag:new and from:stewart@linux.vnet.ibm.com\r\n\r\n# tag all message from lists\r\nnotmuch tag +devicetree +list -- tag:new and to:devicetree@vger.kernel.org\r\nnotmuch tag +inbox +unread -new -- tag:new and tag:devicetree and to:stewart@linux.vnet.ibm.com\r\nnotmuch tag +listinbox +unread +list -new -- tag:new and tag:devicetree and not to:stewart@linux.vnet.ibm.com\r\n\r\nnotmuch tag +linuxppc +list -- tag:new and to:linuxppc-dev@lists.ozlabs.org\r\nnotmuch tag +linuxppc +list -- tag:new and cc:linuxppc-dev@lists.ozlabs.org\r\nnotmuch tag +inbox +unread -new -- tag:new and tag:linuxppc\r\nnotmuch tag +openbmc +list -- tag:new and to:openbmc@lists.ozlabs.org\r\nnotmuch tag +inbox +unread -new -- tag:new and tag:openbmc\r\n\r\nnotmuch tag +lkml +list -- tag:new and to:linux-kernel@vger.kernel.org\r\nnotmuch tag +inbox +unread -new -- tag:new and tag:lkml and to:stewart@linux.vnet.ibm.com\r\nnotmuch tag +listinbox +unread -new -- tag:new and tag:lkml and not tag:linuxppc and not to:stewart@linux.vnet.ibm.com\r\n\r\nnotmuch tag +qemuppc +list -- tag:new and to:qemu-ppc@nongnu.org\r\nnotmuch tag +inbox +unread -new -- tag:new and tag:qemuppc and to:stewart@linux.vnet.ibm.com\r\nnotmuch tag +listinbox +unread -new -- tag:new and tag:qemuppc and not to:stewart@linux.vnet.ibm.com\r\n\r\nnotmuch tag +qemu +list -- tag:new and to:qemu-devel@nongnu.org\r\nnotmuch tag +inbox +unread -new -- tag:new and tag:qemu and to:stewart@linux.vnet.ibm.com\r\nnotmuch tag +listinbox +unread -new -- tag:new and tag:qemu and not to:stewart@linux.vnet.ibm.com\r\n\r\nnotmuch tag +buildroot +list -- tag:new and to:buildroot@buildroot.org\r\nnotmuch tag +buildroot +list -- tag:new and to:buildroot@busybox.net\r\nnotmuch tag +buildroot +list -- tag:newa nd to:buildroot@uclibc.org\r\nnotmuch tag +inbox +unread -new -- tag:new and tag:buildroot and to:stewart@linux.vnet.ibm.com\r\nnotmuch tag +listinbox +unread -new -- tag:new and tag:buildroot and not to:stewart@linux.vnet.ibm.com\r\n\r\nnotmuch tag +ibmbugzilla -- tag:new and from:bugzilla@us.ibm.com\r\n\r\n# finally, retag all \"new\" messages \"inbox\" and \"unread\"\r\nnotmuch tag +inbox +unread -new -- tag:new\r\n<\/pre>\n<p>This leaves me with both an inbox and a listinbox. I do <strong>not<\/strong> look at the overwhelming majority of mail that hits the listinbox &#8211; It&#8217;s mostly for following up on individual things. If I started to need to care more about specific topics, I&#8217;d probably add something in there for them so I could easily find them.<\/p>\n<p>My notmuch emacs setup has a bunch of saved searches, so my notmuch-hello screen looks something like this:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/Screenshot-from-2017-12-11-13-43-37.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4343\" data-permalink=\"https:\/\/www.flamingspork.com\/blog\/2017\/12\/11\/how-i-do-email-at-work\/screenshot-from-2017-12-11-13-43-37\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/Screenshot-from-2017-12-11-13-43-37.png?fit=594%2C218&amp;ssl=1\" data-orig-size=\"594,218\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot from 2017-12-11 13-43-37\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/Screenshot-from-2017-12-11-13-43-37.png?fit=300%2C110&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/Screenshot-from-2017-12-11-13-43-37.png?fit=584%2C214&amp;ssl=1\" class=\"alignnone size-full wp-image-4343\" src=\"https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/Screenshot-from-2017-12-11-13-43-37.png?resize=584%2C214&#038;ssl=1\" alt=\"\" width=\"584\" height=\"214\" srcset=\"https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/Screenshot-from-2017-12-11-13-43-37.png?w=594&amp;ssl=1 594w, https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/Screenshot-from-2017-12-11-13-43-37.png?resize=300%2C110&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/Screenshot-from-2017-12-11-13-43-37.png?resize=500%2C184&amp;ssl=1 500w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><\/p>\n<p>This gets me a bit of a state-of-the-world-of-email-to-look-at view for the day. I&#8217;ll often have meetings first thing in the morning that may reference email I haven&#8217;t looked at yet, and this generally lets me quickly find mail related to the problems of the day and start being productive.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, I blogged on my home email setup and\u00c2\u00a0in that post, I hinted that my work setup was rather different. I have entirely separate computing devices for work and personal, a setup I strongly recommend. This also lets me &#8220;go &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2017\/12\/11\/how-i-do-email-at-work\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[570],"tags":[728,724,729,560,434,730],"class_list":["post-4342","post","type-post","status-publish","format-standard","hentry","category-ibm-work-et-al","tag-emacs","tag-email","tag-fetchmail","tag-ibm","tag-notmuch","tag-work"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-182","jetpack-related-posts":[{"id":4166,"url":"https:\/\/www.flamingspork.com\/blog\/2016\/09\/12\/compiling-your-own-firmware-for-the-s822lc-for-hpc\/","url_meta":{"origin":4342,"position":0},"title":"Compiling your own firmware for the S822LC for HPC","author":"Stewart Smith","date":"2016-09-12","format":false,"excerpt":"IBM (my employer) recently announced\u00c2\u00a0 the new S822LC for HPC POWER8+NVLINK NVIDIA P100 GPUs server (press release, IBM Systems Blog, The Register). The \"For HPC\" suffix on the model number is significant, as the S822LC is a different machine. What makes the \"for HPC\" variant different is that the POWER8\u2026","rel":"","context":"In &quot;IBM&quot;","block_context":{"text":"IBM","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/ibm-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3659,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/01\/31\/and-now-for-something-completely-different\/","url_meta":{"origin":4342,"position":1},"title":"and now for something completely different&#8230;","author":"Stewart Smith","date":"2014-01-31","format":false,"excerpt":"As many of you know, I've been working in the MySQL world for quite a while now. IN fact, it was nearly 10 years ago when I first started hacking on MySQL Cluster at MySQL AB. Most recently, I was at Percona which was a wonderful journey where over my\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3752,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/06\/03\/mysql-5-6-on-power-patch-available\/","url_meta":{"origin":4342,"position":2},"title":"MySQL 5.6 on POWER (patch available)","author":"Stewart Smith","date":"2014-06-03","format":false,"excerpt":"The following sentence is brought to you by IBM Legal. The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. Okay, now that is out of the way.... If you're the kind of person who follows the MySQL bugs database closely or subscribes\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3965,"url":"https:\/\/www.flamingspork.com\/blog\/2015\/06\/12\/gcov-code-coverage-for-openpower-firmware\/","url_meta":{"origin":4342,"position":3},"title":"gcov code coverage for OpenPower firmware","author":"Stewart Smith","date":"2015-06-12","format":false,"excerpt":"For skiboot (which provides the OPAL boot and runtime firmware for OpenPower machines), I've been pretty interested at getting some automated code coverage data for booting on real hardware (as well as in a simulator). Why? Well, it's useful to see that various test suites are actually testing what you\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3901,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/11\/12\/preliminary-mysql-cluster-benchmark-results-on-power8\/","url_meta":{"origin":4342,"position":4},"title":"Preliminary MySQL Cluster benchmark results on POWER8","author":"Stewart Smith","date":"2014-11-12","format":false,"excerpt":"Yesterday, I got the basics going for MySQL Cluster on POWER. Today, I finished up a couple more patches to improve performance and ran some benchmarks. This is on a 3.7Ghz POWER8 machine with non-balanced memory (only 2 of the 4 NUMA nodes have memory, so we have less total\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4345,"url":"https:\/\/www.flamingspork.com\/blog\/2017\/12\/11\/a-simplified-view-of-openpower-firmware-development\/","url_meta":{"origin":4342,"position":5},"title":"A (simplified) view of OpenPOWER Firmware Development","author":"Stewart Smith","date":"2017-12-11","format":false,"excerpt":"I've been working on trying to better document the whole flow of code that goes into a build of firmware for an OpenPOWER machine. This is partially to help those not familiar with it get a better grasp of the sheer scale of what goes into that 32\/64MB of flash.\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/devflow-legend.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/devflow-legend.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/devflow-legend.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.flamingspork.com\/blog\/wp-content\/uploads\/2017\/12\/devflow-legend.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/4342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=4342"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/4342\/revisions"}],"predecessor-version":[{"id":4344,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/4342\/revisions\/4344"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=4342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=4342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=4342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}