From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Abrahamsen Subject: Re: [ANN] Gnorb: Glue code between Gnus, Org, and BBDB Date: Sat, 10 May 2014 18:32:01 +0800 Message-ID: <87iopdhqla.fsf@ericabrahamsen.net> References: <87r446bcut.fsf@ericabrahamsen.net> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50968) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wj4aZ-0000e9-41 for emacs-orgmode@gnu.org; Sat, 10 May 2014 06:33:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wj4aT-0006Kb-Es for emacs-orgmode@gnu.org; Sat, 10 May 2014 06:33:07 -0400 Received: from plane.gmane.org ([80.91.229.3]:56152) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wj4aT-0006KT-4U for emacs-orgmode@gnu.org; Sat, 10 May 2014 06:33:01 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1Wj4aR-0004HW-U1 for emacs-orgmode@gnu.org; Sat, 10 May 2014 12:32:59 +0200 Received: from 50.56.99.223 ([50.56.99.223]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 10 May 2014 12:32:59 +0200 Received: from eric by 50.56.99.223 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 10 May 2014 12:32:59 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Alan Schmitt writes: > I usually avoid putting links in my tasks. For instance, the task > I generated from your email to the list looks like this: > > **** TODO Reply to this when I will have tried gnorb :@fun: > [2014-05-07 Wed 11:25] > > [[gnus:lists.orgmode#87r446bcut.fsf@ericabrahamsen.net][Email from Eric Abrahamsen: {O} {ANN} Gnorb: Glue code bet (Wed, 07 May 2014 09:23:54 +0800)]] > > Would it be difficult to handle such emails when the link is inside the > TODO, instead of in the heading? Not at all! In fact, the next tweak for this is an option allowing you to expand the scope of the scan for links. I'll probably default it to checking the first paragraph of the entry text, but you'll be able to go all the way to 'subtree. > I can of course change my capture format. I'm just wondering why you > prefer to have the link in the mail. Heck no I don't want you to change your format! I'm very sensitive to issues of mental overhead and workflow/file-format lock-in with this package. The whole point is to help you think *less*, not more, and I don't want people having to write a bunch of code or change their files to make it work. Ideally everything would just happen by calling functions, and it will be the responsibility of those functions to look at your TODO structure and do the right thing. Actually, let me hijack this for a second and ask a more general question. I announced the package at this stage, and not when it was more complete, because the next thing to do is flesh out its email handling capabilities, and I'd love to get feedback on that first. I'm writing two more functions to complement `gnorb-org-handle-mail'. In the end there will be three: 1. A function that says "make an Org todo out of the email I'm sending now" (to keep track of conversations that need following-up). 2. A function that says "this email I just received is relevant to some Org heading, and should trigger a TODO state-change or a note on that heading". It will be able to suggest the correct heading. 3. A function that says "send an email by reading the current Org heading and doing what I what". That's `gnorb-org-handle-mail'. Everything else just depends on how you've set up your capture templates, and how you like to structure your mail-related TODOs. I don't want to enforce anything else, but I want those three functions to be good at guessing how you do things, and I'll provide user options to help them guess correctly. In particular, how `gnorb-org-handle-mail' interprets the heading under point is important. I just said I don't want to enforce anything, but one thing I want to strongly *encourage* is the use of the LOGBOOK drawer to keep track of email threads/conversations. By using `org-log-into-drawer', the "@" cookie for TODO keywords, and `org-add-note', you can keep track of all the important developments in an email conversation, using links to specific messages. I do a fair amount of business negotiation via email, and this is pretty crucial for me. I end up with headings looking like this: * WAIT Sort out copyright agreement with [[bbdb:johnbob]] :LOGBOOK: - State "WAIT" from "REPLY" [2014-05-08 Sat 09:45] \\ I told him that might work, but we'd need to limit the language zone - State "REPLY" from "WAIT" [2014-05-07 Sat 15:09] \\ He [[gnus:link][wrote back]] and proposed 14% royalties - Note taken on [2014-05-06 Sat 12:56] \\ Mattbob [[gnus:link][wrote]] and reminded me to ask about digital rights - State "WAIT" from "EMAIL" [2014-05-04 Fri 13:25] \\ Wrote to Johnbob and proposed terms. :END: :PROPERTIES :GNORB_MSG_IDS: 46bcut.fsf@ericabrahamsen.net jj8m.fsf@johnbob.fr :END: I'd like gnorb to do all the complicated bits for you. You should just be able to call whichever of the three functions is relevant, and then gnorb will put you in the right place, with a link loaded, to take a note or annotate a state-change. In the above example, `gnorb-org-handle-mail' should see that there are gnus links in the LOGBOOK, and start a reply to the most recent one. If you only ever use email TODOs as a one-off send-or-reply reminder, then everything is much simpler, of course. So that's what I'm thinking. The code is half-done. If anyone has any requests or objections or demands, let's have them! > Regarding your daily flow, it seems that bbdb is very central to how you > work. Do you simply use it as a backend linked to the agenda view, or do > you often navigate your bbdb records? If you ever have the time to write > or do a screencast of your work flow, I would be most interested in > learning more about it. That would be a very dull screencast :) I use the BBDB a lot because when I think "now I have to do XYZ", that often starts with thinking of the people involved with the task. So I go to the record in BBDB, and then call `gnorb-bbdb-mail-search' to see messages from them, or `gnorb-bbdb-tag-agenda' to see Org todos related to them. When I do a tags search in Org, `gnorb-org-popup-bbdb' shows me relevant contacts. I'm going to expand this so that org-occur also does a generalized BBDB search, and pops up the relevant buffer. The more information that's available using BBDB as a starting point, the more you'll use BBDB, of course! All this depends on you giving your BBDB records an "org-tag" field, which is pretty much the only file-format buy-in that Gnorb asks of you (I hope it remains the only one). Roland Winkler just made changes to the BBDB codebase that will allow us to store links to recently-received messages as an Xfield on each record, and I think that will be awesome (I happily stole this idea from org-contacts). It will also depend on people running the development version of BBDB, which will mean it will have a userbase of about four :) Sorry, this was a bit of a brain-dump. I think the issue of how people use email is fascinating, though, and I plan to look at software like Google Tasks or whatever, to collect some ideas. I'd love input from anyone with opinions! Eric