Subject: [sup-talk] Beginner questions

From: [email-masked] (Yang Zhang)
Date: Sun, 04 May 2008 20:47:50 -0400

Hi, I'm interested in getting started with sup.  For now, I just ran 
sup-config to use Gmail IMAP.  Things seem to have gone smoothly, though 
I have a few questions:

(1) sup did end up taking many, many hours to download my entire inbox 
of messages.  I'd rather it lazily download these messages.  Is there 
some way to achieve this?

(2) At some point, I was prompted:

Enter any labels to be automatically added to all messages from this 
source, separated by spaces (or 'none') (enter for "inbox"): none

When dealing with IMAP servers, does sup store its labels as IMAP 
keywords (i.e., are they stored on the server)?  (A bunch of IMAP 
servers support IMAP keywords.  Gmail's labels manifest themselves as 
folders, however, and not IMAP keywords. [1])

(3) How does sup group messages into the same thread?  Does it rely on 
References: header fields, subject-matching, 
body-substring-matching/overlap, or something else?

(4) yanghatespam at gmail.com is the account I use for mailing lists.  I 
use many lists, so I needed a way to cope with the large message volume. 
  Most of the time, I am only interested in the threads in which I have 
been a participant (e.g., I'm interested in replies to my posts).  I 
have Gmail filters that use simple heuristics like "If my name is in the 
email, leave it marked as unread; otherwise mark it read."  This, of 
course, leads to many false positives/negatives (Gmail's filterts are 
only so expressive).

If sup's thread-grouping is decent, then it would be neat/more accurate 
to extend sup somehow to instead use these groupings for the filtering. 
  I.e., if an incoming message is grouped with a thread in which I was a 
participant, then leave it marked unread; otherwise, mark it read.

Any thoughts on whether such an extension is possible, and if so, where 
to start with it?  Is sup at all extensible at the current time?  Is a 
feature such as this already in the works?

(5) I remember reading one archived list post on how others were using 
the "[Gmail]/All Mail" folder as their.  Should I have used that instead 
of "Inbox"?

If I were using a more conventional IMAP server, in which messages don't 
appear in multiple folders, does sup expect me to add all the folders, 
so that it can display complete threads (e.g. merging Sent and Inbox)? 
So is the difference with Gmail, then, that "[Gmail]/All Mail" is the 
one and only folder to use?

In general, does sup play nicely with Gmail?  Any experiences to be 
shared?  The only other quirk I'm aware of is that to truly delete a 
message requires moving it to the Gmail/Trash folder (otherwise only a 
label is removed).

Thanks in advance for any answers!

(6) Scrolling through the buffer that is immediately presented to me 
when starting sup, I only see about 3 pages of threads.  Is this 
correct?  How do I get to the rest?

(7) Does sup support Unicode?  The inbox display seems to be a bit 
screwy for me (extraneous floating characters, things changing when 
highlighted, etc.), though it could also be my terminal (I'm using 
putty, but I just verified that I'm running it in UTF-8 mode).

[1] 
http://weblog.timaltman.com/archive/2008/02/24/gmails-buggy-imap-implementation

-- 
Yang Zhang
http://www.mit.edu/~y_z/

---

From: [email-masked] (Daniel Wagner)
Date: Sun, 04 May 2008 18:02:49 -0700

> participant, then leave it marked unread; otherwise, mark it read.

Well, sup already has a pretty nice (and similar) feature for killing
entire threads.  The '&' key will archive a thread permanently; that is,
if new mails arrive in that thread, they will automatically be archived.
So, you can hit '&' once for each thread you don't want to read; the
rest will reappear in you inbox as new mails arrive in them.

It's a bit inverted from what you want, but maybe it will do?  In any
case, if you want to extend sup, you should look at how that key works.

> correct?  How do I get to the rest?

The 'M' key will load more threads.

Good luck!
~d

P.S. I'm running a slightly old version of sup, so the actual keys might
not be '&' and 'M' any more.  '?' should list the available commands at
any time.

---

From: [email-masked] (Yang Zhang)
Date: Sun, 04 May 2008 22:08:27 -0400

> case, if you want to extend sup, you should look at how that key works.

I do need to deal with a large volume of mail, so it's not really what 
I'm looking for, because (1) I'd be doing this all day long, and (2) 
it's error-prone - I can easily kill a relevant thread.  BTW, Gmail has 
had this feature in the form of the 'm' key (for "mute").

> The 'M' key will load more threads.

Thanks.

> _______________________________________________
> sup-talk mailing list
> sup-talk at rubyforge.org
> http://rubyforge.org/mailman/listinfo/sup-talk

-- 
Yang Zhang
http://www.mit.edu/~y_z/

---

From: [email-masked] (Marc Hartstein)
Date: Mon, 05 May 2008 14:09:41 -0400

Excerpts from yanghatespam's message of Sun May 04 20:47:50 -0400 2008:
> keywords (i.e., are they stored on the server)?

By default no modification is made to your mail source.  There are
recent discussions about the reason for this and what sorts of
write-back might/might not be accepted as patches in the future.

> body-substring-matching/overlap, or something else?

Default behavior seems (I haven't looked at that code) to be to use the
References and In-Reply-To headers.  There's an option you can turn on
in config.yaml thread_by_subject which seems to do what it says.

> participant, then leave it marked unread; otherwise, mark it read.

I believe what you are looking for is a custom before-add-message hook.
That gets passed a message object.  You might have to operate on the
References: header of that message to get to the information you're
looking for (I think threads only exist at the presentation level), but
it should be possible to get at least most of the way to what you're
looking for.

The power of hooks is that you have an entire programming language
available for this kind of computation if you want it.

See `sup --list-hooks` and http://sup.rubyforge.org/wiki/wiki.pl?Hooks
for more information.

> correct?  How do I get to the rest?

'M' to load more messages, or '!!' to load everything.  You can
interrupt the latter with ^G.  These work for any thread-index, not just
the inbox, so if a search returns a lot of results, you get the same
behavior.

> putty, but I just verified that I'm running it in UTF-8 mode).

Yes, it does.  However, the stock Ruby ncurses gem doesn't handle wide
characters well.  See http://sup.rubyforge.org/wiki/wiki.pl?UTF8 for
information on how to deal with this.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://rubyforge.org/pipermail/sup-talk/attachments/20080505/e324e364/attachment.bin>

---

From: [email-masked] (Yang Zhang)
Date: Mon, 05 May 2008 14:29:46 -0400

> write-back might/might not be accepted as patches in the future.

Does sup know how to "handle" IMAP keywords in a read-only fashion?  Do 
these appear as sup labels?  Is sup able to remove these labels from the 
local view?  As an aside, how would sup resolve conflicting label 
changes (e.g., I remove the label locally in sup, then add it back in on 
the IMAP server)?

Does the no-source-modification policy apply to: Starring messages? 
Moving files among folders?  Marking items as read?  How does it deal 
with consistency (resolve conflicts) in all these cases?

BTW, if the main debate is whether to allow modification to the mail 
source, then perhaps it would be sufficient to expose this as an option?

> in config.yaml thread_by_subject which seems to do what it says.

Good, thanks.

> See `sup --list-hooks` and http://sup.rubyforge.org/wiki/wiki.pl?Hooks

If the no-source-modification policy applies to marking items as 
read/unread (and starring them - I do star these threads), though, then 
it sounds like sup is not the right tool for this job.  Furthermore, if 
I can't leverage the threading (as it's only available on the 
presentation level), then that's moot as well.  It sounds like my 
original plan on writing my own stand-alone IMAP client is the way to 
go, here.

> the inbox, so if a search returns a lot of results, you get the same

Does anybody else find sup to be very slow at displaying these threads? 
  I can literally see the threads trickling into view.  And this is done 
on each startup.  Hitting !! takes forever.  sup feels sluggish overall 
(even moving the arrows around in inbox-mode has a slight delay, such 
that I can only move by about 30 lines per second).  Is something wrong 
with my configuration?  Or is this expected?  (I was mainly interested 
in sup as an ultra-responsive mail client.)

> information on how to deal with this.

That's unfortunate...

> 
> 
> ------------------------------------------------------------------------
> 

-- 
Yang Zhang
http://www.mit.edu/~y_z/

---

From: [email-masked] (Christopher Warrington)
Date: Mon, 5 May 2008 19:15:52 -0700

Marc Hartstein @ 2008-5-05 11:09:41 AM
"[sup-talk] Beginner questions" <mid:1210009778-sup-6833 at cabinet>

> I believe what you are looking for is a custom before-add-message
> hook. That gets passed a message object. You might have to operate
> on the References: header of that message to get to the information
> you're looking for (I think threads only exist at the presentation
> level), but it should be possible to get at least most of the way to
> what you're looking for.

Well, I guess I should get more code in good order and submit my
patch for the lack of threading in the before-add-message hook...

-- 
Christopher Warrington <chrisw at rice.edu>

How do I set my laser printer on stun?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
URL: <http://rubyforge.org/pipermail/sup-talk/attachments/20080505/7a11b64c/attachment.bin>

---

From: [email-masked] (William Morgan)
Date: Mon, 19 May 2008 16:38:40 -0700

Reformatted excerpts from yanghatespam's message of 2008-05-05:
> Does anybody else find sup to be very slow at displaying these
> threads?  I can literally see the threads trickling into view.

It's slower than it could be. I would like to cache the threading
(possibly directly in the index), as it's recomputed each time and even
though Ferret is fast, it could be faster.

> sup feels sluggish overall (even moving the arrows around in
> inbox-mode has a slight delay, such that I can only move by about 30
> lines per second).

Another thing I would love to fix. Profiling is the first step.
-- 
William <wmorgan-sup at masanjin.net>