pan-devel
[Top][All Lists]
Advanced

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

Re: [Pan-devel] My list of present problems with Pan.


From: Duncan
Subject: Re: [Pan-devel] My list of present problems with Pan.
Date: Tue, 18 Oct 2011 03:53:23 +0000 (UTC)
User-agent: Pan/0.135 (Tomorrow I'll Wake Up and Scald Myself with Tea; GIT 8e43cc5 branch-master)

SciFi posted on Mon, 17 Oct 2011 20:13:48 +0000 as excerpted:

> I should probably post the concerns I'm still having with Pan.  I sent
> this to imhotep82 (Heinrich Müller, before he became judgefudge), and to
> lostcoder (K. Haley) some months ago.

Cool.

> My current Pan build can be seen with this post's headers under
> User-Agent (I'll send judgefudge the patches that "enhance" that
> string, soonish).

Very cool! =:^)

(I'm sure many of us still remember when the git-commit patch was added.  
We thought that great.  But the problem of so many git trees and branches 
that we need to identify them in the about box and user-agent string is a 
good problem to have, indeed! =:^)

> 1.
> 
> a)  For Pan's HTML highlighting feature (View->Body_Pane->Highlight
> URLs) we need the Tilde character '~' to be accepted as part of the URL
> (sometimes I call this a 'squiggle' <g>).  Presently, Pan is stopping
> the highlighting/copying at just-before this character when it's part of
> the honest-to-goodness URL.  All unix-type servers use this character to
> denote a user's "home folder" no matter how it is structured on that
> server.  We see these kinds of URLs all over the developers lists at
> Gmane and in the world-wide Usenet.  For now, we must do the drag-copy
> of the URL and manually paste it into our browsers.  There are several
> more characters that ought to be acceptable -- look at the way Gmane
> scrambles the URLs and email-addys, such Pan-highlighting does not seem
> to include '+' and '-', either; but don't take this as a sole-missing
> list.  ;)

> b)  Some other characters are being accepted by Pan's Highlighting code,
> which should *not* be accepted.  For example, when someone uses
> parentheses for the URL such as (http://whatever.com/) , the trailing
> right-parens ')' is being highlighted as if it is part of the URL, and
> being passed to the browser as well (which likely gets a 404).
> (I know this logic could make one go crazy trying to code-around it, but
> that's why we have open URL/URI type libraries, isn't it?  <g>)

The ) inclusion is the one that hits me most, here, as I follow gmane's 
g.c.freedesktop.xorg.drivers.ati list, which is mostly bugzilla mail 
forwards, and all the file attachments end up with the ) included in the 
URL. =:^(

+ in email addys is a needed addition too, as is ~ in URLs.  I guess I 
don't run into the - ones so often here.  Interesting.

Meanwhile, drag-copy, yes, but on a "decent" platform (kde with klipper 
and I'd guess gnome, I'm surprised OSX doesn't have something, tho 
perhaps they think it too complicated for the simple-minded users... come 
to think of it, that might mean gnome misses it too, but I KNOW kde has 
it! =:^), the selection/clipboard assistant should be programmable to 
recognize such things, and popup a list of actions as desired (with pre-
populated recognition and action lists based on native link-recognition, 
etc, but the option to expand or replace the pre-populated list as 
desired).

Thus, once I select the /corrected/ link, I get an automatic popup with 
actions including opening in various browsers (firefox and konqueror as 
graphic browsers, links and lynx as text-mode browsers, here), my text 
editors of choice (mcedit as primary and text-mode, alternative kwrite), 
image viewers (gwenview), plus various net-info and debugging choices 
(ping, traceroute, tcptraceroute, tracepath, mtr, host, nslookup, whois).

So there's no need to open/activate a browser and paste the link.  All I 
have to do is select the appropriate action from the klipper popup. =:^)

But while that does dramatically lower the frustration level, that very 
fact may have something to do with the fact that the problem still exists 
in pan.  The "itch" hasn't been bad enough to be worth the trouble for a 
coder, generally exactly the type to make best use of clipboard helpers 
and the like, to be worth scratching.  If they didn't exist, that feature 
may well work better in pan now than it actually does, as the existing 
feature is "good enough".  Oh, well...

> 2.
> 
> Every time I start-up Pan, the Header pane itself is initially "too
> wide" with its scroll-bar opening to the right-side.  In my setup, it's
> the Bytes column's numbers are barely visible, it's been scrolled-off
> the view that far.

No clue.  I don't have the problem here, but that's as likely to be due 
to my layout (full width header pane, all columns shown, horizontally 
maximized 1920 px wide pan window, 22" monitor with not too huge fonts) 
as anything else.

I do seem to recall similar issues some time ago, tho, but they're far 
enough back in the past that it's only a vague memory.

> 3.  Some of the IP-Number Displays still don't show the Port Number,
> mainly in the pop-up "yellow boxes", but in other areas also such as in
> the Posting Profile preferences at "Post Articles via:" drop-down list.
> My explanation:
> I use stunnel going to/from every NNTP server anymore.  All network
> paths in Pan need to be set to '127.0.0.1:<port>' for the corresponding
> entry in my stunnel.conf file.  I had been adding several lines in my
> /etc/hosts file to give various pseudo-hostnames to 127.0.0.1, just so I
> could get Pan to show each choice in a different way.  I don't know why,
> but OSX seems to want to go outside the box, still, to try finding the
> route for those pseudo-hosts, or some crazy related notion (blame Apple
> again for messing-up the standard *ix methods).  So I've gone back to
> entering precisely '127.0.0.1' inside Pan, but now I've lost being able
> to discern which line mean which path thru stunnel.  See?  ;)

Here's another possible workaround.  Whether it'll actually work, I'm not 
sure as I've never tried it, but as someone pointed out to me, all of the 
127/8 (class A) numberspace is reserved for localhost.  And I believe 
most at least *ix family IP-stacks shouldn't have problems with it, but 
it's possible some apps won't like it.

So try 127.0.0.1, 127.0.0.2, ... 127.1.0.1, ... 127.100.50.246, ... 
127.255.255.254.  (As you probably realize, 127.1.0.0 and 127.0.0.255, 
etc, should work as well, since it's a full class A, but eh...)

If it works as the theory says it should (you may need /etc/hosts entries 
for them), that should give you the identification you need even if the 
port is truncated.

Oh, and if you try it, please post your results! =:^)

> 4.  I would love to see some visual indicators for some text-formatting
> settings being used.  I need to see whether word-wrap is in effect, for
> the main issue here -- there are posts that don't much give a clue,
> because they would look "ugly" either way.  ;)  Things like that.  I
> would pick the area on the main Pan window to put these
> indicators/selectors, after the various "Match" icons and a
> separator-line thingy.

There's a *BIG* caveat here.  Pan already has a history of minimum width 
window issues, when used on netbooks, etc.  For similar display-size 
reasons, a dual-row toolbar (does gtk even do that?) isn't particularly 
viable, tho if necessary (and the toolbars are flexible enough to allow 
it), a full-app scrollbar (including the toolbars) can be added, making 
the vertical thing a bit less of an issue than the horizontal thing.

So if additional toolbar buttons are added, they *MUST* be either 
configurable to hide if necessary, or must do so automatically, thus not 
increasing the minimum window size.  And if they do, then some 
consideration should be taken as to button priority, so it's the least 
important buttons that get hidden, not the most important.

Of course the entire problem would disappear if only pan's toolbars were 
as configurable as the typical kde application's toolbars (tho there are 
exceptions; it's incredibly frustrating to see low-use button choices 
like help and about, when seriously useful action button choices simply 
don't appear at all!).  Hint, hint. =:^)

> 5.  Before accepting a "version 1.0" of Pan, I have written requests
> over the years to have more "multi-threading" incorporated into the
> program.

What's more distressing for me, here, is that particularly when one 
decides to cache decades worth of pan list history, etc, on cold-system-
cache as when first opening pan, it'll freeze not only itself, but the 
whole of X, for noticeable periods!  I can move the mouse, and anything 
already in memory seems to work, but all four spindle lights are on, on 
the RAID-1, indicating the system is accessing four separate things in 
parallel, and nothing responds until whatever it is is finished (still 
some time before pan actually shows up, but the RAID indicators go back 
to their more normal pattern, 1-4 blinking, not all four on solid).

AFAIK that's a kernel and hardware platform I/O thing to some degree, not 
entirely pan's fault by any means (in reality, the hardware and kernel 
shouldn't even allow that sort of hogging), but I believe it should be 
possible to program pan not to hit the system that hard.  I don't believe 
I've seen anything else do that since I went dual-dual-cores and 4-
spindle md/RAID-1.

> a)  For example, when I open a newsgroup known to be huge with binary
> files, everything is IMMEDIATELY STOPPED from going forth, _including_
> the download decoding queue which I thought was already a separate
> thread -- I can see such stoppage by visual observation of my modem's
> lights: they stop blinking while a newsgroup is being opened.  When the
> newsgroup is finally opened, the other functions continue from where
> it/they were stopped.

AFAIK, my experience above may shed some light on that.  Is the rest of 
the system interactive?  In particular, can you start a new app or open a 
new file that hasn't been accessed yet this boot (or since you did drop-
caches or the equivalent on OSX), so it's not in system-cache yet?  

If not, then it's I/O starvation of the entire system, not simply pan-
threading, altho as I said, it should be possible to code pan not to hit 
the system so hard, tho this is rather far from a solved issue in system 
I/O circles, for sure.

It's worth mentioning, BTW, that such lockups are rather more common on 
single-disk/single-core systems, and at least Linux itself has gotten 
better about it over the years.  It's significantly harder to do on a 
quad-disk Linux md/RAID-1 running on quad cores, than on a single-core 
single-disk system.  (It's also worth noting that this is a benefit of 
kernel RAID-1 as well, for read-only and read-mostly loads at least, as 
opposed even to RAID-0.  I was quite surprised at how well the kernel 
actually does in parallelizing access on the RAID-1 as opposed to RAID-6 
and even RAID-0.  System read-contention went down DRAMATICALLY, with a 
corresponding increase in responsiveness and speed.  But part of that was 
very likely due to the defrag effect of copying the existing system over 
to the new layout.  Honestly, I haven't done a mkfs and recopy from 
backup on the appropriate md/RAID since I downloaded the full gmane 
archive for several lists, including pan.user, and I really should, and 
see how much difference /that/ makes, before I complain too loudly.)

The point is, it's not necessarily entirely pan, at least from the data 
you've presented.  Part of it is likely disk/hardware I/O and kernel I/O 
scheduling issues.

Meanwhile, it's also worth noting that the rewrite to make pan disk-based 
rather than memory based would very likely solve this problem as part of 
the package.  That came up on -user again, recently, connected as usual 
with the switch-to-sqlite-for-the-backend proposal.

Thus, in reality, we're back where we were before the C++ rewrite.  The 
efficiencies of the new format did indeed buy pan some scalability in 
terms of memory, and a few years of calendar time, but we're back with 
the same problem, and the same proposed sqlite-database based disk-based 
solution, as opposed to the huge-in-memory tree that pan has used to this 
point, that we were discussing back before the rewrite.

I guess the good thing is that sqlite is rather better and more robust 
now, what with firefox's sqlite adoption and usage in the mean time, and 
the experience with the pan rewrite probably means pan will avoid certain 
implementation mistakes, as well.

But it still needs done...

-- 
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]