[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Pan-devel] My list of present problems with Pan.
Re: [Pan-devel] My list of present problems with Pan.
Tue, 18 Oct 2011 03:53:23 +0000 (UTC)
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.
> 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! =:^)
> 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
+ 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
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...
> 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
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-
> 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
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