emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [ANN] Gnorb: Glue code between Gnus, Org, and BBDB


From: Eric Abrahamsen
Subject: Re: [O] [ANN] Gnorb: Glue code between Gnus, Org, and BBDB
Date: Sat, 10 May 2014 18:32:01 +0800
User-agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.4.50 (gnu/linux)

Alan Schmitt <address@hidden> 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:address@hidden 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: address@hidden address@hidden
  :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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]