pan-users
[Top][All Lists]
Advanced

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

Re: [Pan-users] Quirks with ignored authors or posts


From: Duncan
Subject: Re: [Pan-users] Quirks with ignored authors or posts
Date: Sun, 17 Jul 2011 08:37:28 +0000 (UTC)
User-agent: Pan/0.135 (Tomorrow I'll Wake Up and Scald Myself with Tea; GIT 9996aa7 branch-master)

Benjamin Esham posted on Sat, 16 Jul 2011 19:42:08 +0000 as excerpted:

> Pan has a built-in mechanism for ignoring an author, i.e. scoring all of
> their posts at -9999. I see two (related) problems with the current
> implementation: first, that the "blocked" posts are not actually marked
> as read,

This one's interesting.  Here's the situation.

Old-pan (the C version, thru 0.14.x) used to have a feature called rules, 
that could be setup to cause pan to perform various _actions_ based on 
various properties of a post, including not only scoring, but post size, 
age, etc.  These actions included auto-delete, auto-mark-read, and auto-
cache (download-to-cache, not save, tho save _might_ have been an option 
as well, IDR).

At the time, pan auto-expired posts based on when the server expired 
them, so paid servers would keep particularly text messages around for a 
long time, often six months to a year, if not more.  And of course 
there's servers like gmane.org (list2news servers, it's how I follow and 
reply to this list, among others) that function as archives and 
effectively /never/ expire posts (unless they have an x-no-archive header 
or first body line).  So one of the uses for an auto-delete rule was to 
allow a user to set their own expiration of messages, before they expired 
off the server.  Of course, new-pan (the C++ rewrite, starting with 0.90) 
has its own per-server expiration setting entirely separate from what a 
server's expiration policy may be, so that particular functionality has 
already been replaced.

But it also allowed a user to configure if they wished, as I did, for 
example, ignored messages to be auto-deleted, negative-scored but not 
ignored (-9998 to -1) to be auto-marked-read, and watched messages (I 
actually had it set to all messages for certain groups) to be auto-
downloaded.

That was great and it worked for its purpose! =:^)

But pan is a gnome-family application (required gnome for gnome-1, now 
only requires gtk, but bugzilla and the official git repo are still gnome 
hosted), and Charles (Kerr, for many years pan's lead/primary developer, 
since before I first became active with it in 2002), arguably 
unfortunately, had a bit of the gnome "don't confuse the dumb users with 
too many config options, they're too stupid to cope with them" idea, and 
rules as they were then implemented were rather complicated to setup.  In 
fact, one of the more frequent FAQs on this list back then was how to set 
them up to do <whatever action>, so indeed, it WAS complex enough that a 
certain segment of the pan userbase couldn't figure it out without help, 
so in that regard, it WAS arguably "too complicated".

So then the pan rewrite came, and Charles dropped a lot of features that 
old-pan had.  His idea was to only re-implement what people actually used 
enough to request.

Well, over time, pretty much all the old features EXCEPT RULES were re-
implemented, and of course new-pan had some pretty nifty new features as 
well, including fully transparent multi-server handling (with old-pan, 
you worked with one server at a time, you could setup downloads from 
multiple servers, but only by switching to the other servers one at a 
time and setting up downloads from each of them separately, tho pan /was/ 
smart enough not to download a message that was already in cache).  Also 
quite significantly, new-pan's memory scaling was *MUCH* better --
old-pan would choke when a group had more than a couple-hundred-thousand-
headers pretty much no matter *HOW* much memory you had, while new-pan 
works well with groups that have millions of headers -- if you have the 
memory.

But despite over a year of VERY heavy development (new pan beta versions 
nearly every week, pan went from 0.90 to 0.132 in less than a year and a 
half, so in about 70 weeks there were 42 releases!), and all the OTHER 
features being either re-implemented or replaced with alternative 
functionality doing the same thing, rules were not on the list.

At some point, it became apparent that they weren't happening, and there 
was a discussion as to why.  Charles explained that he thought basically 
what I said above, that the rules functionality as it was, was too 
complex and confusing for users (and given the times I or others had 
explained it, we couldn't really disagree), that one of the prime 
functions, expiration control, had been solved differently, and that he 
was looking for a simpler setup, but hadn't come up with one yet.

So then a discussion took place.  What the list regulars seemed to think 
would work, and Charles seemed to agree, tho somehow it never got 
implemented, was something like this:

* The new feature would be called _Actions_, and a new Actions tab would 
be added to pan's preference dialog to configure them.

* Since the scoring mechanism already allowed /scoring/ based on nearly 
all of the old rules factors, we'd implement actions based on scoring 
only, thus simplifying things.

* Further simplifying things, we'd use the same scoring zones that pan 
already uses for score-column color-coding and that the view menu has as 
matching options for the header-pane, ignored (<=-9999), low/negative 
(-9998 to -1), zero/normal (0), medium (+1 to +4999), high (+5000 to 
+9998), and watched (>=+9999).

* There would be three or four actions (with #3 depending on whether the 
cache size was user settable or not), auto-

** -delete

** -mark-read

** -download (to cache)

** -download-and-save (attachments).



The tab could then look something like this,
taking the idea from how the scoring UI works:

(As a tooltip:  Here you can configure pan to take certain
actions on your behalf automatically, based on a post's score.)

--------------------8><------------------

Autommatically:

Delete          posts scoring at or below       [dropdown menu]

Mark-read       posts scoring at or below       [dropdown menu]

Cache           posts scoring at least          [dropdown menu]

Save            attachments scoring at least    [dropdown menu]

--------------------><8------------------

The dropdown menu would then look like this:

(Disabled)
<=-9999         (Ignored)
-9998 to -1     (Low)
0               (Normal)
+1 to +4999     (Medium)
+5000 to +9998  (High)
>=+9999         (Watched)


Everybody, including Charles I believe, thought something like that was 
*MUCH* simpler than rules had been, and that it would be a good 
replacement for rules.

But, by the time this discussion happened, Charles was getting burned 
out, as it was probably about 10 months into his coding streak.  I guess 
the thought of coding that last major feature was more than he could 
handle at the time, but for that or whatever other reason, it didn't 
happen.

At about 16 months after 0.90 was released, Charles pretty much quit 
working on pan at all.

He had /always/ been someone who coded in fits and spurts.  He'd go great 
guns for awhile, then stop for some months, then go at it again.  Before 
the C++ rewrite, he had, seemingly, dropped off the face of the earth for 
over a year and a half, and hadn't done much for another year before 
that.  But then out of nowhere it seemed, he posted to the list saying he 
had a surprise coming up in a few weeks.  That surprise was the 0.90 C++ 
rewrite, released on April 1st, 2006 (the web site has it as April 2nd, 
but AFAIK it was the first, because it corresponded with April Fool's 
Day).  I remember the day well because it was April Fool's Day, but the 
year, and the dates below, are from pan's home page.

Then as I said, he went great guns for over a year, until about 0.131, 
with 0.132 coming out spaced a bit further toward the end, 16 months to 
the day after 0.90, on August 1, 2007.

Then he dropped off the face of the earth for another year, exactly.  
0.133, with only some minor maintenance updates and bugfixes, PLUS a 
security patch (which had all been submitted as patches by the various 
distros, etc), appeared exactly a year after that, on August 1, 2008.

After 0.133, off the face of the earth, again.  Sometime later, probably 
late 2009 or early 2010, Charles posted that he was no longer doing 
newsgroups regularly and if anyone was interested in taking over pan 
maintainership, drop him a line.  Charles' time as pan's head developer 
was over.

Some months later, KHaley became the new _unofficial_ pan head 
developer.  He (well, the handle's gender neutral but AFAIK traditionally 
in English, "he" has been used in singular person of unknown gender 
contexts, while "she" is most common AFAIK for personification of 
inanimate objects such as ships and hurricanes... until political 
correctness came along and turned that on its head) had cloned the 
official Gnome pan git repo to github (using the name "lostcoder" there), 
and began integrating various community patches that had been floating 
around, as well as making at first relatively small tweaks of his own, 
fixing bugs, etc.

That began pan's new era.

But KHaley for reasons never made public (it's a mystery to me, too) 
isn't interested in working with Gnome.  Whatever.  He stepped forward 
with the necessary developer skills (which BTW I don't have, I wish I 
did...) when pan was otherwise abandoned, and quickly became the defacto 
if unofficial lead dev, when there was no one else doing it.  But no 
gnome access meant no official releases so for some further months, 
people, mostly regulars to this list (group, as I use it on gmane) who 
wanted to use current sources, had to install git and pull from KHaley's 
repo on github, then build it themselves (tho a couple people have 
stepped up with binaries for MS Windows users, etc).

Around late December of last year, IIRC, Petr Kovar stepped up.  He's a 
gnome translator so already had an official gnome account, but AFAIK, not 
a coder.  However, his gnome git account access but no coding meshed very 
nicely with KHaley's coding but no interest in an official gnome git 
account, and the PKovar/KHaley team together are now the official gnome 
repo pan maintainers.  They contacted Charles, who was very happy someone 
was finally leading pan forward again, and thus happy to give his 
blessing, and worked out maintainer access to pan's home page at 
pan.rebelbase.com, as well. =:^)

KHaley created an upstream/release branch, and PKovar began pulling from 
it and committing to the official gnome repo.  On February 15, 2011, the 
first PKovar/KHaley release was announced, version 0.134, again 
containing mostly accumulated bugfixes and minor maintenance patches (to 
keep it working against current libraries and building with current gcc, 
for instance), but with a few very minor functionality tweaks.

That was the first /release/ of pan's new era. =:^)

There has been one release since then, 0.135, on June 5.  This one had a 
few more minor features, but they're still feeling their way, so nothing 
major yet.

But there is one more recent development.  I'm not actually sure on which 
side of that June 5 release it happened, but Heinrich Mueller has a pan 
git clone on github as well, and is presently working on another very 
often requested feature that somehow, Charles never got around to in the 
decade or so he worked on pan (tho there was one beta with a non-
functional GUI for it, back in the C version era, quickly pulled by the 
next beta when I guess he decided he wasn't satisfied with it), binary 
posting. =:^)  

There's still some warts in that, so it'll be awhile before that gets 
pulled into khaley's stable branch for PKovar to pull for an official 
release, but the *IMPORTANT* thing is that THIS IS THE FIRST MAJOR PAN 
FEATURE ADDITION IN **YEARS**, since 2007 *AT* *LEAST*!!  There's further 
important implications as well, since it means that for the first time 
since, AFAIK/IIRC, Chris Lambin, back in the C pan era, so 2004 or 
earlier, there's two developers taking a very active interest in pan.  
And even back then, I don't remember Chris being active on the list, so 
really, this is the first time since I became active on the pan lists 
back in 2002, that there have been two very real active pan developers on 
the list!

That actually makes four people heavily involved in the pan project, 
KHaley and HMueller as devs, PKovar as official repository and web site 
maintainer, and me on the lists, doing what I can since I can't code and 
don't have gnome access.  Plus there's a number of other people with some 
involvement on the lists, doing windows ports, submitting occasional 
patches, etc.  It's very possible that's more people both heavily pan 
project involved and with some lessor but still contributory involvement, 
then ever before in pan's history!

PAN HISTORY IS BEING MADE!

And here news is supposed to be dying!

OK, so I know that doesn't really address when or even really if this 
feature will ever make it.  But we have active developers now, while for 
quite some time pan looked to be a lumbering zombie, dead, but still 
carried until the few remaining users lost interest and went away, or 
until it would no longer compile on a modern distro, with no upstream, so 
the distros eventually abandoning patching it to try to keep it working, 
as well.

That's a **HUGE** difference from just a year ago.  It's hard to say what 
the future will bring, but it's certainly looking much brighter than it 
was back then!

And because this feature is a popular request (in some form or another, 
you want auto-mark-as-read, others want auto-save, I, noting that while 
the GUI doesn't have a setting for it because Charles didn't think one 
was needed, it's possible to set pan's cache size by directly editing the 
config file, would like auto-download-to-cache) *AND* has a reasonable 
configuration GUI already discussed and worked out, even tho neither of 
the currently active developers have specifically said anything about it, 
I'd say there's a reasonable chance it'll make it in eventually... for 
purposes of argument, say perhaps a year to make it into a git version 
for testing, maybe two to get it tested, the bugs worked out, and an 
official release with the feature.

Of course, if someone having the skills is sufficiently interested to 
create the patch, either KHaley or HMueller are very likely to 
incorporate it into their versions right away.  All it takes is getting 
someone sufficiently interested in it that has the skills to create and 
submit the patch!

Which, really, was all it would have taken back when we were discussing 
it in the Charles era, as well, but somehow it didn't happen.  But while 
I'm NOT a coder and thus can't make promises, given all the current 
activity, I'd say the chances of it happening within the two years I 
suggested for purposes of argument, is higher than it has ever been 
before. =:^)

And, your posting and my explanation of the proposed feature and config 
GUI could well get either one of them, or someone else, interested.  So 
together, we just increased the odds ourselves, even if neither of us can 
ourselves code it up.  =:^)  (I assume you can't, if you can, by all 
means...!)

> [...] and second, that replies to a blocked post are still shown.
> 
> The second issue is a little more serious, since in Pan's display it
> looks like replies to blocked posts are actually replies to the blocked
> post's parent. This could be taken care of by automatically ignoring the
> subthread started by any post with a score of -9999. (If I've specified
> that I *never* want to read posts by a certain user, you can bet that I
> don't want to read the replies to those posts either.)

Well, they /are/ in the downline thread of the blocked-post's parent, so 
the threading part is correct, given the blocked post isn't appearing.

Meanwhile, you /do/ know about the subthread-scoring feature, right?


Here, mainly because pan cannot auto-delete ignored and auto-mark-read 
low-scored posts, I choose NOT to actually hide these posts.  Instead, I 
make it a point to:

* Ensure that the score column is visible in the header pane.

* Have pan's color config setup so the score categories are clearly color-
identified, so I can see them in the score column as set in the first 
point.

* Set my view to match all scores (view menu, header pane flyout, bottom 
section).

This way, all posts are visible but I can immediately identify low-scored 
and ignored posts, deleting or marking-read as desired.

I generally do NOT want replies to ignored posts similarly ignored here, 
as in the groups I follow, the replies are often witty or insightful, and 
therefore continue to be of value to me.  As a result, I do NOT use 
ignore subthread functionality much if at all.  However, with the above 
setup, since you can immediately ID ignore-scored (base on author, etc) 
posts, you can take that opportunity to ignore-score the entire subthread, 
if you wish.

Another tip:  Depending on the group, for instance, where most of the 
ignore-scored posts are spam and there's enough of it to warrant the 
effort, I'll often unthread (I have a hotkey, alt-T, assigned to 
threading-toggle, so I can hit that instead of having to go thru the 
menu), click the label on the score column to sort by score, select the 
now nicely contiguous group of ignored posts, and delete.

You could try modifications of the same thing, tho unfortunately it's not 
possible to work with scores efficiently on a multiple selection like 
that, so scoring the subthread would have to be done one at a time.  And 
once the subthreads are ignored as well, you'd have a problem as each 
ignored subthread with active posts would create that many more to one-at-
a-time process the next time.

But wait.  I think I figured out something that should work.  For all 
ignored, use subthread scoring NOT to mark them ignored, but to set them 
to say -9998.  Then they'll sort right next to the ignored ones, while 
showing up color-coded as low-scored instead.  You can then use subthread-
scoring on all the new ignored, then mark-read or delete both the ignored 
and the -9998-scored subthreads right next to them.

Once the ignored posts (and almost ignored subthreads) are dealt with, 
hit the threading toggle again and go about your business.  You may want 
to click on the group again to "reenter" it, thus forcing a refresh and 
hiding any just-marked-read messages (assuming you have match only unread 
on), as well as forcing pan to store the current group state to disk so 
if it crashes, you don't have to redo it.  Of course, this works best if 
you don't have pan set to download new headers on group entry, because if 
you do, the reenter will trigger that, possibly bringing in new ignored 
articles to mark.  (FWIW, I have both the download new headers when pan 
starts and download new headers when entering a group options off, here.  
If I want new headers downloaded, I can hit the button or hotkey to 
download them.)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




reply via email to

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