Discussion:
Is there a way to respond to an expired article if you know the message ID?
(too old to reply)
Arlen Holder
2020-08-04 04:18:24 UTC
Permalink
Is there a way to respond to an expired article if you know the message ID?
(assuming only purposefully free newsservers are in use such as neodome)

This is an old Message-ID of my thread from 12/16/2018 about FreedomPop:
o OLD: Message-ID: <pv6ei5$bs0$***@news.mixmin.net>

This is a new Message-ID of my article from today about FreedomPop:
o NEW: Message-ID: <rgak4b$vll$***@news.mixmin.net>

All I want to do is UPDATE the old thread
o <https://groups.google.com/forum/#!original/comp.mobile.android/uZkl7ny85II/XGtsBWimCQAJ>
With the same information that is in the new article above.
o <https://groups.google.com/forum/#!original/comp.mobile.android/G6ZWN1SiJSs/53fw6vQNBAAJ>

When I check the free newsservers, the OLD article has expired in all.

{me} telnet news.neodome.net 119
Trying 95.216.243.224...
Connected to neodome.net.
Escape character is '^]'.
200 news.neodome.net InterNetNews NNRP server INN 2.6.3 ready (posting ok)

{me} help
200 news.neodome.net InterNetNews NNRP server INN 2.6.3 ready (posting ok)
100 Legal commands
ARTICLE [message-ID|number]
AUTHINFO USER name|PASS password|GENERIC program [argument ...]
BODY [message-ID|number]
CAPABILITIES [keyword]
COMPRESS DEFLATE
DATE
GROUP newsgroup
HDR header [message-ID|range]
HEAD [message-ID|number]
HELP
IHAVE message-ID
LAST
LIST [ACTIVE [wildmat]|ACTIVE.TIMES [wildmat]|COUNTS
[wildmat]|DISTRIB.PATS|DISTRIBUTIONS|HEADERS
[MSGID|RANGE]|MODERATORS|MOTD|NEWSGROUPS
[wildmat]|OVERVIEW.FMT|SUBSCRIPTIONS [wildmat]]
LISTGROUP [newsgroup [range]]
MODE READER
NEWGROUPS [yy]yymmdd hhmmss [GMT]
NEWNEWS wildmat [yy]yymmdd hhmmss [GMT]
NEXT
OVER [range]
POST
QUIT
STARTTLS
STAT [message-ID|number]
XGTITLE [wildmat]
XHDR header [message-ID|range]
XOVER [range]
XPAT header message-ID|range pattern [pattern ...]
Report problems to <***@neodome.net>.
.

{me} group comp.mobile.android
211 6888 1354 8251 comp.mobile.android

{me} article <rgak4b$vll$***@news.mixmin.net>
220 0 <rgak4b$vll$***@news.mixmin.net> article
Path: news.neodome.net!news.mixmin.net!.POSTED!not-for-mail
From: Arlen Holder <***@newmachine.com>
Newsgroups: misc.phone.mobile.iphone,comp.mobile.android
Subject: Re: T-Mobile Sprint Merger: Say goodbye to scam calls
Date: Tue, 4 Aug 2020 03:19:39 -0000 (UTC)
blah blah blah
.

{me} article <pv6ei5$bs0$***@news.mixmin.net>
430 No such article

This shows I can easily respond to the new article, but not the old.

In summary, given I simply want to add the new article to the old thread,
without creating a new thread, but just by updating the old thread...

Is there a way, using only the basic known purposefully free newsservers,
to respond to an old expired article via telnet?
n***@zzo38computer.org.invalid
2020-08-04 14:59:16 UTC
Permalink
[Newsgroups header changed; my server tells me it is a forbidden crosspost]
Post by Arlen Holder
Is there a way to respond to an expired article if you know the message ID?
Yes, if you also know the contents of the References header of the expired
article; you can add a References header containing the contents of the
old References header, followed by the message ID of the article that you
want to post a follow up message to. I would expect that to work (if I am
wrong, please tell me).

If that is not what you are trying to do, please mention better what it is
that you are trying to do, then. If it is what you are trying but what I
mentioned doesn't work, then mention that too, please.
--
This signature intentionally left blank.
(But if it has these words, then actually it isn't blank, isn't it?)
Adam H. Kerman
2020-08-04 16:36:09 UTC
Permalink
Post by n***@zzo38computer.org.invalid
[Newsgroups header changed; my server tells me it is a forbidden crosspost]
Post by Arlen Holder
Is there a way to respond to an expired article if you know the message ID?
Yes, if you also know the contents of the References header of the expired
article; you can add a References header containing the contents of the
old References header, followed by the message ID of the article that you
want to post a follow up message to. I would expect that to work (if I am
wrong, please tell me).
Yes, that would be a standard References header in a followup. The old
References header in the precursor article is retained with the Message-ID
of the precursor article appended to the end.

Also, the OP would still need to see the precursor article with its
References header in order to copy its contents into the followup
article he's writing. If he can find it on a server in which it's not
been expired, why not just inject the followup through that server?

But the OP would have to be in position to edit headers on the proto
article in order to do that, as it's a feature of no newsreader.

Funny, I can edit headers in the composer of my newsreader with its
ancient interface that I regularly get condemned for continuing to use.
Eli the Bearded
2020-08-04 17:26:15 UTC
Permalink
Post by Adam H. Kerman
Post by n***@zzo38computer.org.invalid
Post by Arlen Holder
Is there a way to respond to an expired article if you know the message ID?
Yes, if you also know the contents of the References header of the expired
article; you can add a References header containing the contents of the
Convention is that the References header has the message ID of the first
article in a thread, and (up to) the four most recent articles
previously. If you provide more or fewer message IDs different software
might have different success in threading messages. I find trn tries
very heroically to thread stuff, and can deal with just a single message
ID, but to use the thread tree selector it does help to have more.
Post by Adam H. Kerman
References header in the precursor article is retained with the Message-ID
of the precursor article appended to the end.
Also, the OP would still need to see the precursor article with its
References header in order to copy its contents into the followup
article he's writing. If he can find it on a server in which it's not
been expired, why not just inject the followup through that server?
It doesn't matter where he injects it, the NNTP servers don't care about
threading, that's a newsreader concern.
Post by Adam H. Kerman
But the OP would have to be in position to edit headers on the proto
article in order to do that, as it's a feature of no newsreader.
OP seemed capable enough using NNTP directly. It's just a matter of
connecting and POSTing. For simplicity, I'd probably precompose the
message and then use cut-n-paste. Or just use a dummy inews to do that:

https://qaz.wtf/src/inews.tgz

That's the one I've been using since my a.s.s.m moderator days in the
mid-1990s.

Elijah
------
still has a few mail-to-news gateways using that
Arlen Holder
2020-08-04 20:47:15 UTC
Permalink
Post by Eli the Bearded
Convention is that the References header has the message ID of the first
article in a thread, and (up to) the four most recent articles
previously. If you provide more or fewer message IDs different software
might have different success in threading messages. I find trn tries
very heroically to thread stuff, and can deal with just a single message
ID, but to use the thread tree selector it does help to have more.
Post by Adam H. Kerman
References header in the precursor article is retained with the Message-ID
of the precursor article appended to the end.
Thanks Eli the Bearded for patiently explaining the References header
convention of <original><fourth><third><second><first response>

Where I see exactly that in your headers just now:
Message-ID: <eli$***@qaz.wtf>
References: <rganif$m4h$***@neodome.net> <***@zzo38computer.org> <rgc2pp$11r$***@dont-email.me>

Where <rganif$m4h$***@neodome.net> is the original post, by me;
And <rganif$m4h$***@neodome.net> is the first response by ***@zzo38computer.org.invalid
And <***@zzo38computer.org> is a response to that by "Adam H. Kerman" <***@chinet.com>
And <rgc2pp$11r$***@dont-email.me> is your response to Adam Kerman.

I had never looked at threading before, mainly because my newsreader setup
uses LIFO for the most part, as it's an amalgam of scripts & dictionary and
vpn files and killswitches and header lines, etc., i.e., not a newsreader,
per se (although it works just fine "as" a newsreader, only it uses telnet
and vim & a bunch of dictionary scripts to randomize key headers for
privacy).
Post by Eli the Bearded
Post by Adam H. Kerman
Also, the OP would still need to see the precursor article with its
References header in order to copy its contents into the followup
article he's writing. If he can find it on a server in which it's not
been expired, why not just inject the followup through that server?
It doesn't matter where he injects it, the NNTP servers don't care about
threading, that's a newsreader concern.
Thanks for clarifying that all I need to know are two things to inject the
article seamlessly into any free newsserver (bearing in mind that free
newsservers are all that I use, e.g., dizum, netfront, albasani, etc.),
again, for basic privacy reasons.
Post by Eli the Bearded
Post by Adam H. Kerman
But the OP would have to be in position to edit headers on the proto
article in order to do that, as it's a feature of no newsreader.
OP seemed capable enough using NNTP directly. It's just a matter of
connecting and POSTing. For simplicity, I'd probably precompose the
https://qaz.wtf/src/inews.tgz
That's the one I've been using since my a.s.s.m moderator days in the
mid-1990s.
I happened to be on Windows when I tested this (although I could have been
on Linux) where I simply used the Windows Subsystem for Linux because
"telnet" and "bang bang" and "bang minus-1 global search & replace", etc.,
is easier when I'm experimenting with commands.

My sequence was pretty simple, although I had a slight problem on pasting
and a slight problem with "telnet" so I went to WSL instead, and then I had
a slight problem with neodome so I went to aioe instead, and then I had a
slight problem with pasting but I went with control+q instead, etc. :)

Pseudocode... (so that others can reproduce for themselves}
{me} Win+R > cmd {alt+ctrl+enter} <== optional, to get an admin cmd window
{it} C:\WINDOWS\system32> <== this is the admin $p$g prompt apparently
{me} C:\WINDOWS\system32> telnet
{it} 'telnet' is not recognized as an internal or external command,
{it} operable program or batch file. <== I could "enable" it but screw that
c:\> wsl <== optional, to get into the Windows subsystem for Linux
{it} ***@pcname:/mnt/c/WINDOWS/system32$ <== this is the wsl prompt
{me} ***@pcname:/mnt/c/WINDOWS/system32$ telnet nntp.aioe.org 119
{it} Trying 46.165.242.75...
{it} Connected to nntp.aioe.org.
{it} Escape character is '^]'.
{it} 200 nntp.aioe.org InterNetNews NNRP server INN 2.5.4 ready (posting ok)
{me} post
{it} 340 Ok, recommended message-ID <rgbtq6$blf$***@gioia.aioe.org>
{me} from: Arlen Holder <***@newmachine.com>
{me} newsgroups: comp.mobile.android
{me} subject: Re: Do you use FreedomPop in the USA? If so, what are the details?
{me} message-id: <rgbtq6$blf$***@gioia.aioe.org>
{me} references: <pv6ei5$bs0$***@news.mixmin.net>
{me} <blank line>
<I first tried control+V to paste but then went with control+q>
{me} .
{me} quit

In actuality, the screenshot below skips the failed Windows telnet step
(and yes, I could look up how to enable telnet, but wsl is so much better)
so I actually started it with wsl:
{me} Win+R > wsl {enter}
{it} ***@pcname:/mnt/c/{where you were}$ <== this is the wsl prompt

The advantage of WSL inside of Windows is you get nice Linux tools that
operate on the Windows files (e.g., locate, grep, sed, awk, ls, etc.).
--
For a five-minute tutorial on installing WSL from the command line, see:
o Tutorial for setting up Ubuntu as a Windows Subsystem for Linux WSL in Windows 10
<https://groups.google.com/forum/#!topic/alt.os.linux/PV4Shdb67iM>
Arlen Holder
2020-08-04 21:46:09 UTC
Permalink
Post by Arlen Holder
{me} Win+R > cmd {alt+ctrl+enter} <== optional, to get an admin cmd window
Oooooooops. Correction!

I put the wrong control characters, and since I'm always trying to help
others, just allow me to clarify the "cmd" control character difference
(since I always want others to just "cut and paste" from my posts):

Windows 10:
o Win+R > cmd {Enter} <== this opens a "user" command window
o Win+R > cmd {Ctrl+Shift+Enter} <== this opens an "admin" command window

Yet... paradoxically...
o Win+R > wsl {Enter} <== a "whoami" shows this to be a "user" window
o Win+R > wsl {Ctrl+Shift+Enter} <== this is _still_ a "user" window

However, strangely enough...
o Win+R > wsl {Enter} <== pwd shows the cwd is /mnt/c/Users/{user}$
o Win+R > wsl {Ctrl+Shift+Enter} <== cwd is set as /mnt/c/WINDOWS/system32

Hence, there is some "magic" in the control+shift+enter sequence.
o What Windows "magic" invokes a command window as an Administrator window simply by using Control+Shift+Enter versus Enter?
<https://groups.google.com/forum/#!topic/alt.msdos.batch/ee2rqSSOkS4>

Go figure.
--
The reason this is important is when you're entering telnet commands, the
Linux telnet has options not necessarily in the Windows telnet, and, more
importantly, the Linux (in this case, Ubuntu) shell also has nice options.
Eli the Bearded
2020-08-04 21:53:09 UTC
Permalink
Post by Arlen Holder
I had never looked at threading before, mainly because my newsreader setup
uses LIFO for the most part, as it's an amalgam of scripts & dictionary and
vpn files and killswitches and header lines, etc., i.e., not a newsreader,
per se (although it works just fine "as" a newsreader, only it uses telnet
and vim & a bunch of dictionary scripts to randomize key headers for
privacy).
trn is not the best newsreader with respect to newfangledness like
"UTF-8", but it is the best newsreader with respect to "can be compiled
on something that looks like Unix". You might want to give it a try. I
suspect compiling on the Windows Linux subsystem will be a breeze.

I got it to compile and run under Termux on my Android phone.
Post by Arlen Holder
My sequence was pretty simple, although I had a slight problem on pasting
and a slight problem with "telnet" so I went to WSL instead, and then I had
a slight problem with neodome so I went to aioe instead, and then I had a
slight problem with pasting but I went with control+q instead, etc. :)
There's an NNTP module for Perl at CPAN that could probably also be
pressed into service as an inews replacement. I use that module for
accessing raw articles from the server and raw overview headers for
post analysis. (Not that I do either often.)
Post by Arlen Holder
{it} Escape character is '^]'.
{it} 200 nntp.aioe.org InterNetNews NNRP server INN 2.5.4 ready (posting ok)
{me} post
The convention I've seen used is >>> and <<< lines to indicate the
back and forth, but that works. Does nntp.aioe.org not require a login
to post? Or is it whitelisting by some other metric? (The newsserver I
use white lists by IP address and requires a password for outside
sources.)
Post by Arlen Holder
The advantage of WSL inside of Windows is you get nice Linux tools that
operate on the Windows files (e.g., locate, grep, sed, awk, ls, etc.).
The advantage of Linux is you get nice Unix tools that operate without
paying for Unix licensing (e.g., find, grep, sed, awk, ls, etc.).

Elijah
------
sees no advantage to paying for Windows licensing to use Unix tools
Adam H. Kerman
2020-08-05 00:27:32 UTC
Permalink
Post by Eli the Bearded
trn is not the best newsreader with respect to newfangledness like
"UTF-8", but it is the best newsreader with respect to "can be compiled
on something that looks like Unix". You might want to give it a try. I
suspect compiling on the Windows Linux subsystem will be a breeze.
If I use UTF-8, trn expects me to add MIME headers, which I do. I don't
bother with ASCII.

Kids today are spoiled with newsreaders that do everything.
Post by Eli the Bearded
I got it to compile and run under Termux on my Android phone.
Hey, that's wonderful!
Eli the Bearded
2020-08-05 17:09:30 UTC
Permalink
Post by Adam H. Kerman
Post by Eli the Bearded
trn is not the best newsreader with respect to newfangledness like
"UTF-8", but it is the best newsreader with respect to "can be compiled
If I use UTF-8, trn expects me to add MIME headers, which I do. I don't
bother with ASCII.
Yeah, but that's not the real issue(s). You can set up a default set
of headers once and forget about it.

1. As distributed, it has a bug stripping highbit control characters
which munge UTF-8. The hack fix is use -j to disable all control
character filtering. Real fix is to disable highbit control
character filtering:

--- trn-4.0-test77/art.c.orig 2010-09-02 02:12:26.000000000 -0400
+++ trn-4.0-test77/art.c 2018-03-01 20:15:59.000000000 -0500
@ -468,7 +468,7 @@
outpos += 2;
}
else { /* other control char */
- if (dont_filter_control) {
+ if (dont_filter_control || (*bufptr & 0x80)) {
if (outputok)
putchar(*bufptr);
outpos++;

2. When reading articles not in US-ASCII or the local encoding, trn
makes no attempt to convert characters to the local encoding, but
just dumps them to the screen. Typically (for me) this means
ISO-8859-1 being sent raw to my UTF-8 system.

3. Anywhere trn does string length checks (subject and from in newsgroup
listings, headers and body lines in posts, warnings about lines too
long when posting), those checks are not UTF-8 aware.
Post by Adam H. Kerman
Kids today are spoiled with newsreaders that do everything.
That's why I read mail with mailx, too.

Elijah
------
https://github.com/Eli-the-Bearded/eli-mailx
Adam H. Kerman
2020-08-05 17:32:40 UTC
Permalink
I'm cutting alt.free.newsservers from crosspost
Post by Eli the Bearded
Post by Adam H. Kerman
Post by Eli the Bearded
trn is not the best newsreader with respect to newfangledness like
"UTF-8", but it is the best newsreader with respect to "can be compiled
If I use UTF-8, trn expects me to add MIME headers, which I do. I don't
bother with ASCII.
Yeah, but that's not the real issue(s). You can set up a default set
of headers once and forget about it.
1. As distributed, it has a bug stripping highbit control characters
which munge UTF-8. The hack fix is use -j to disable all control
character filtering. Real fix is to disable highbit control
--- trn-4.0-test77/art.c.orig 2010-09-02 02:12:26.000000000 -0400
+++ trn-4.0-test77/art.c 2018-03-01 20:15:59.000000000 -0500
@ -468,7 +468,7 @@
outpos += 2;
}
else { /* other control char */
- if (dont_filter_control) {
+ if (dont_filter_control || (*bufptr & 0x80)) {
if (outputok)
putchar(*bufptr);
outpos++;
I didn't know that. Thank you for bringing it to my attention.
Post by Eli the Bearded
2. When reading articles not in US-ASCII or the local encoding, trn
makes no attempt to convert characters to the local encoding, but
just dumps them to the screen. Typically (for me) this means
ISO-8859-1 being sent raw to my UTF-8 system.
I want this as a feature. I refuse to use UTF-8 to send typographical
punctuation characters and especially nonbreaking whitespace, neither of
which belong in plain text communication. As much as possible, I
substitute genuine ASCII for typographical punctuation characters, and a
genuine whitespace character for nonbreaking whitespace.

Given that the display is messed up, it makes it easy to spot them. Yes,
I know I'm weird.
Post by Eli the Bearded
3. Anywhere trn does string length checks (subject and from in newsgroup
listings, headers and body lines in posts, warnings about lines too
long when posting), those checks are not UTF-8 aware.
That's to be expected, but I'd hope I'm not coming anywhere close to the
998 character ceiling in which that would be an issue.

Here's something I don't know:

If I were complying with the standard, checking Subject for line length
as an example, is it against the encoded non-ASCII characters, or after
decoding? Now, that would make a substantial difference in the count.
Post by Eli the Bearded
Post by Adam H. Kerman
Kids today are spoiled with newsreaders that do everything.
That's why I read mail with mailx, too.
Hehehehehe
Eli the Bearded
2020-08-05 18:05:47 UTC
Permalink
Post by Adam H. Kerman
Post by Eli the Bearded
1. As distributed, it has a bug stripping highbit control characters
which munge UTF-8. The hack fix is use -j to disable all control
character filtering. Real fix is to disable highbit control
I didn't know that. Thank you for bringing it to my attention.
Not the first time I've posted that patch here because I think it needs
more attention.
Post by Adam H. Kerman
Post by Eli the Bearded
2. When reading articles not in US-ASCII or the local encoding, trn
makes no attempt to convert characters to the local encoding, but
just dumps them to the screen. Typically (for me) this means
ISO-8859-1 being sent raw to my UTF-8 system.
I want this as a feature. I refuse to use UTF-8 to send typographical
punctuation characters and especially nonbreaking whitespace, neither of
which belong in plain text communication. As much as possible, I
substitute genuine ASCII for typographical punctuation characters, and a
genuine whitespace character for nonbreaking whitespace.
I've modified my local copy of Pnews to check article encoding. I use
checkutf8, which is a program I wrote and have code with my mailx
package ( https://github.com/eli-the-bearded/eli-mailx ).

checkutf8="/usr/local/contrib/bin/checkutf8 -v"
check8859="/usr/local/contrib/bin/check8859 -v"
checkascii="/usr/local/contrib/bin/checkascii -v"
[...]
check)
# only check headers for charset declarations, and only if
# valid MIME (has a Mime-Version: header).
$sed -ne '1,/^[ ]*$/ p' $tmpart > $tmpart.head
result=
# with no declartion, assume ASCII
cstest=$checkascii
if $grep -i '^mime-version:.*1' > /dev/null $tmpart.head ; then
if $grep -Ei 'charset=[^a-z0-9]?utf-8' > /dev/null $tmpart.head ; then
cstest="$checkutf8"
fi
if $grep -Ei 'charset=[^a-z0-9]?iso-8859' > /dev/null $tmpart.head ; then
cstest="$check8859"
fi
if $grep -Ei 'charset=[^a-z0-9]?[us-]*ascii' > /dev/null $tmpart.head ; then
cstest="$checkascii"
fi
fi
result=`$cstest $tmpart`

if $test "X$result" != X ; then
$echo "Warning failed character set test $cstest:"
$echo "$result"
fi
$rm -f $tmpart.head

# wait for possible background nntplist
if $test -n "$cmdlist"; then
wait
cmdlist=''
fi

# warn about long lines, malformed headers, misspelled newsgroups
($artcheck $tmpart 79 /dev/null /dev/null) 2>/dev/null
state=pgptest
;;

(I learned so much about shell scripting when I first studied Rnmail /
Pnews.)
Post by Adam H. Kerman
Post by Eli the Bearded
3. Anywhere trn does string length checks (subject and from in newsgroup
listings, headers and body lines in posts, warnings about lines too
long when posting), those checks are not UTF-8 aware.
That's to be expected, but I'd hope I'm not coming anywhere close to the
998 character ceiling in which that would be an issue.
It's a lot of cosmetic problems. Columns don't line up, lines wrap too
soon, lines "over" 80 characters in post bodies trigger warnings.
Post by Adam H. Kerman
If I were complying with the standard, checking Subject for line length
as an example, is it against the encoded non-ASCII characters, or after
decoding? Now, that would make a substantial difference in the count.
The 998 line length rule applies to the encoding as used in NNTP. If you
use wrapped lines in headers:

Subject: This subject line spans two lines because it
is so very long

Then each line gets counted separately. If using MIME-encoded words to
put highbit characters in headers, you count the encoded length.
(RFC-2047 defines MIME-encoded words.) If your header, when unfolded,
is longer than 998 octets, I don't know what the overview functionality
does, but I'm guessing truncation. The newsreader will probably just
not unfold more than it needs to.
Post by Adam H. Kerman
Post by Eli the Bearded
Post by Adam H. Kerman
Kids today are spoiled with newsreaders that do everything.
That's why I read mail with mailx, too.
Hehehehehe
I also use nail, which understands IMAP, to read mail from my phone.

https://github.com/Eli-the-Bearded/heirloom-mailx

My modifications to that are more minor, mostly just getting it to
nicely coexist with my mailrc command changes. (I also only use a
special, more throwaway, domain for phone email reading, because I
don't like to store passwords on my phone.)

Elijah
------
composes MIME multipart messages by hand when needed
Adam H. Kerman
2020-08-05 18:44:08 UTC
Permalink
Post by Eli the Bearded
Post by Adam H. Kerman
Post by Eli the Bearded
1. As distributed, it has a bug stripping highbit control characters
which munge UTF-8. The hack fix is use -j to disable all control
character filtering. Real fix is to disable highbit control
I didn't know that. Thank you for bringing it to my attention.
Not the first time I've posted that patch here because I think it needs
more attention.
Could I request that you upload it to Github? I dunno if it's still
possible to bring things to Wayne's attention after all these years.
Post by Eli the Bearded
Post by Adam H. Kerman
Post by Eli the Bearded
2. When reading articles not in US-ASCII or the local encoding, trn
makes no attempt to convert characters to the local encoding, but
just dumps them to the screen. Typically (for me) this means
ISO-8859-1 being sent raw to my UTF-8 system.
I want this as a feature. I refuse to use UTF-8 to send typographical
punctuation characters and especially nonbreaking whitespace, neither of
which belong in plain text communication. As much as possible, I
substitute genuine ASCII for typographical punctuation characters, and a
genuine whitespace character for nonbreaking whitespace.
I've modified my local copy of Pnews to check article encoding.
What I really need to get around to doing is to write a macro for use
within the composer. I'm using vim as text editor. I want to catch it
before it's sent to Pnews.

There must be a process in trn that quotes the precursor article when
first starting the composer. That's the point at which I'd want parsing
for non-ASCII characters.
Post by Eli the Bearded
. . .
Thanks for the work you've done on those scripts.
Post by Eli the Bearded
Post by Adam H. Kerman
Post by Eli the Bearded
3. Anywhere trn does string length checks (subject and from in newsgroup
listings, headers and body lines in posts, warnings about lines too
long when posting), those checks are not UTF-8 aware.
That's to be expected, but I'd hope I'm not coming anywhere close to the
998 character ceiling in which that would be an issue.
It's a lot of cosmetic problems. Columns don't line up, lines wrap too
soon, lines "over" 80 characters in post bodies trigger warnings.
In the body of the article, of course.
Post by Eli the Bearded
Post by Adam H. Kerman
If I were complying with the standard, checking Subject for line length
as an example, is it against the encoded non-ASCII characters, or after
decoding? Now, that would make a substantial difference in the count.
The 998 line length rule applies to the encoding as used in NNTP. . . .
That's what I wondered. Thank you for explaining it.
Eli the Bearded
2020-08-05 19:13:39 UTC
Permalink
Post by Adam H. Kerman
Post by Eli the Bearded
Not the first time I've posted that patch here because I think it needs
more attention.
Could I request that you upload it to Github? I dunno if it's still
possible to bring things to Wayne's attention after all these years.
Is there a master version to fork there? Or should I just create a new
repo?
Post by Adam H. Kerman
Post by Eli the Bearded
I've modified my local copy of Pnews to check article encoding.
What I really need to get around to doing is to write a macro for use
within the composer. I'm using vim as text editor. I want to catch it
before it's sent to Pnews.
I have vi mapping to make F5 search for non-ASCII:

" use #5 instead of <F5> if not using vim
" character class is NOT (^) TAB SPACE to TILDE
map <F5> /[^ -~]<cr>
Post by Adam H. Kerman
There must be a process in trn that quotes the precursor article when
first starting the composer. That's the point at which I'd want parsing
for non-ASCII characters.
Those sorts of changes tend to be really tricky in rn/trn. The code is
heavily optimized for streaming characters through quickly, which makes
reading news at slow baud rates pleasant, but that also means the flow
of characters is not line or even screenful oriented. And some bits
of code use hidden side effects of other bits.
Post by Adam H. Kerman
Post by Eli the Bearded
It's a lot of cosmetic problems. Columns don't line up, lines wrap too
soon, lines "over" 80 characters in post bodies trigger warnings.
In the body of the article, of course.
The 80 characters warning is in Pnews when making a new post. Columns
don't line up I see often with UTF-8 From: lines while doing article
selection. I see it less often with the thread tree display during
article reading.

Elijah
------
gave up trying to configure the group count for "trn -c"
Adam H. Kerman
2020-08-05 19:46:39 UTC
Permalink
Post by Eli the Bearded
Post by Adam H. Kerman
Post by Eli the Bearded
Not the first time I've posted that patch here because I think it needs
more attention.
Could I request that you upload it to Github? I dunno if it's still
possible to bring things to Wayne's attention after all these years.
Is there a master version to fork there? Or should I just create a new
repo?
I apologize. It's at sourceforge.

https://sourceforge.net/projects/trn/

I have no idea how privileges work.

If you upload something post it to the trn-workers mailing list,
as the other two lists are dead. This one hasn't had any posts in two
years though.

https://sourceforge.net/p/trn/mailman/trn-workers/?viewmonth=201809
Post by Eli the Bearded
Post by Adam H. Kerman
Post by Eli the Bearded
I've modified my local copy of Pnews to check article encoding.
What I really need to get around to doing is to write a macro for use
within the composer. I'm using vim as text editor. I want to catch it
before it's sent to Pnews.
" use #5 instead of <F5> if not using vim
" character class is NOT (^) TAB SPACE to TILDE
map <F5> /[^ -~]<cr>
I'll try that! Thank you.
Post by Eli the Bearded
Post by Adam H. Kerman
. . .
Eli the Bearded
2020-08-06 05:42:06 UTC
Permalink
Post by Adam H. Kerman
Post by Eli the Bearded
Is there a master version to fork there? Or should I just create a new
repo?
I apologize. It's at sourceforge.
https://sourceforge.net/projects/trn/
I added a patch there as a ticket. (My account created in 2003 and not
logged into in 12? 15? years still worked. But Sourceforge made me
change the password.)
Post by Adam H. Kerman
If you upload something post it to the trn-workers mailing list,
as the other two lists are dead. This one hasn't had any posts in two
years though.
I used to be subscribed to trn-users. Don't remember if it had a "we're
closing" message or not.
Post by Adam H. Kerman
https://sourceforge.net/p/trn/mailman/trn-workers/?viewmonth=201809
Subscription process started.

Elijah
------
had to hunt for the sourceforge login
Adam H. Kerman
2020-08-06 06:02:40 UTC
Permalink
Post by Eli the Bearded
Post by Adam H. Kerman
Post by Eli the Bearded
Is there a master version to fork there? Or should I just create a new
repo?
I apologize. It's at sourceforge.
https://sourceforge.net/projects/trn/
I added a patch there as a ticket. (My account created in 2003 and not
logged into in 12? 15? years still worked. But Sourceforge made me
change the password.)
I'm impressed you knew where to find your credentials.

Thanks for breathing new life into this.
Post by Eli the Bearded
Post by Adam H. Kerman
If you upload something post it to the trn-workers mailing list,
as the other two lists are dead. This one hasn't had any posts in two
years though.
I used to be subscribed to trn-users. Don't remember if it had a "we're
closing" message or not.
Post by Adam H. Kerman
https://sourceforge.net/p/trn/mailman/trn-workers/?viewmonth=201809
Subscription process started.
The three mailing lists, announce, users, and workers, were set up as
nested lists. Everyone would receive announcements, and the workers list
would also receive questions from the users list. That didn't work as
the lists became inundated with spam so you may have to set it to nomail.
But at least your message would get posted to the Web page as well.
Ambrose
2020-08-11 15:57:16 UTC
Permalink
Post by Eli the Bearded
Post by Adam H. Kerman
Post by Eli the Bearded
Not the first time I've posted that patch here because I think it needs
more attention.
Could I request that you upload it to Github? I dunno if it's still
possible to bring things to Wayne's attention after all these years.
Is there a master version to fork there? Or should I just create a new
repo?
I've been working on a UTF-8 patch and it's on github. I'd welcome any feedback.

You can find it it at github.com/acli/trn
--
(*$insert_signature_here*)
Adam H. Kerman
2020-08-11 17:19:58 UTC
Permalink
Post by Ambrose
Post by Eli the Bearded
Post by Adam H. Kerman
Post by Eli the Bearded
Not the first time I've posted that patch here because I think it needs
more attention.
Could I request that you upload it to Github? I dunno if it's still
possible to bring things to Wayne's attention after all these years.
Is there a master version to fork there? Or should I just create a new
repo?
I've been working on a UTF-8 patch and it's on github. I'd welcome any feedback.
You can find it it at github.com/acli/trn
I made an error suggesting github. It's at sourceforge. Could you upload
it there please?

https://sourceforge.net/projects/trn/
Ambrose
2020-08-12 06:07:05 UTC
Permalink
Post by Adam H. Kerman
I made an error suggesting github. It's at sourceforge. Could you upload
it there please?
https://sourceforge.net/projects/trn/
I haven't used svn in years; git is all I use these days. After downloading trn
from sourceforge the first thing I did was import it into git and push it onto
github.

I emailed Debian's trn maintainer about whether he knew the sourceforge project
is still alive and he told me it is, but I don't think I should poke trn-workers
with a work-in-progress until it’s in a more decent shape. When it's ready I'll
file a large patch on sourceforge.
--
(*$insert_signature_here*)
Eli the Bearded
2020-08-12 17:28:19 UTC
Permalink
Post by Ambrose
I emailed Debian's trn maintainer about whether he knew the
sourceforge project is still alive and he told me it is, but I don't
think I should poke trn-workers with a work-in-progress until it's in
a more decent shape. When it's ready I'll file a large patch on
sourceforge.
I've looked at your code (and commented on a few issues), but I haven't
tried compiling it you. If you want a tester on a non-Linux system, I
read news on NetBSD and will happily compile and run it.

Additionally, this is a multi-user system and I can possibly persuade
others here to test my build.

Elijah
------
$(who | cut -f 1 -d ' ' | sort -u | wc -l) == 46
Ambrose
2020-08-12 17:50:48 UTC
Permalink
Post by Eli the Bearded
I've looked at your code (and commented on a few issues), but I haven't
tried compiling it you. If you want a tester on a non-Linux system, I
read news on NetBSD and will happily compile and run it.
Yes, please do. I haven’t tried figuring out how to do things (makefiles,
etc.) the proper way so some things are super kludgey right now but if it
can’t run on a non-Linux system my patch is no good.
Post by Eli the Bearded
Additionally, this is a multi-user system and I can possibly persuade
others here to test my build.
Maybe after you’ve tested it yourself. I really do appreciate the feedback.
Thank you.
--
(*$insert_signature_here*)
Eli the Bearded
2020-08-12 18:42:37 UTC
Permalink
Post by Eli the Bearded
I've looked at your code (and commented on a few issues), but I haven't
tried compiling it [yet]. If you want a tester on a non-Linux system, I
read news on NetBSD and will happily compile and run it.
Yes, please do. I haven't tried figuring out how to do things (makefiles,
etc.) the proper way so some things are super kludgey right now but if it
can't run on a non-Linux system my patch is no good.
$ make
[...]
cc -c -O -I/usr/local/include trn.c
trn.c:56:10: fatal error: patchlevel2.h: No such file or directory
#include "patchlevel2.h"
^~~~~~~~~~~~~~~
compilation terminated.
*** Error code 1

Stop.
make: stopped in ~eli/trn4/acli-trn4
$ find . -name patchle\*
./patchlevel.h
$ grep patch .gitignore
# Real generated files - for this patched version
patchlevel2.h
$ grep -l patchlevel2.h *
GNUmakefile
Pnews.SH
newsnews.SH
trn.c
$

Hmmm. Guess I should have started with `gmake -f GNUmakefile`

That gets me to here:

cc -c -O -I/usr/local/include filter.c
filter.c:28:22: error: 'pipe2' redeclared as different kind of symbol
static int pipe1[2], pipe2[2];
^~~~~
In file included from config2.h:11:0,
from common.h:12,
from filter.c:7:
/usr/include/unistd.h:364:6: note: previous declaration of 'pipe2' was here
int pipe2(int *, int);
^~~~~
*** Error code 1

It looks like you renamed "pipe_2" to "pipe2" to match "pipe1", but
there was a good reason for not using "pipe2". I copied in filter.c from
the test77 version of trn4 and the compile completed.

Elijah
------
now to try running it
Ambrose
2020-08-12 21:05:49 UTC
Permalink
Post by Eli the Bearded
Hmmm. Guess I should have started with `gmake -f GNUmakefile`
cc -c -O -I/usr/local/include filter.c
filter.c:28:22: error: 'pipe2' redeclared as different kind of symbol
static int pipe1[2], pipe2[2];
^~~~~
In file included from config2.h:11:0,
from common.h:12,
/usr/include/unistd.h:364:6: note: previous declaration of 'pipe2' was here
int pipe2(int *, int);
^~~~~
*** Error code 1
It looks like you renamed "pipe_2" to "pipe2" to match "pipe1", but
there was a good reason for not using "pipe2". I copied in filter.c from
the test77 version of trn4 and the compile completed.
Thank you. I guess I’ll have to learn how to edit the makefile the proper way.

I don’t remember renaming pipe_2, and nothing’s showing on git. I’ll try to
figure out what happened there. Thank you again.

(Update: I checked my copy of 4.0-test77 and it says pipe2. I’ll try to download
a fresh copy and see if I got a corrupted copy two weeks ago.)
--
(*$insert_signature_here*)
Eli the Bearded
2020-08-12 22:15:10 UTC
Permalink
Post by Eli the Bearded
It looks like you renamed "pipe_2" to "pipe2" to match "pipe1", but
there was a good reason for not using "pipe2". I copied in filter.c from
the test77 version of trn4 and the compile completed.
I don't remember renaming pipe_2, and nothing's showing on git.
In that case it's likely my source has that change and it wasn't you. I
don't recall the provenance of my test77 files.

Separately I've found an issue with AT_GREY_SPACE() and I'll have
a patch later.

Elijah
------
also at_norm_char() differs from AT_NORM_CHAR() for *s == 0
Eli the Bearded
2020-08-05 20:52:51 UTC
Permalink
Post by Eli the Bearded
Post by Eli the Bearded
2. When reading articles not in US-ASCII or the local encoding, trn
makes no attempt to convert characters to the local encoding, but
just dumps them to the screen. Typically (for me) this means
ISO-8859-1 being sent raw to my UTF-8 system.
...
Post by Eli the Bearded
It's a lot of cosmetic problems. Columns don't line up, lines wrap too
soon, lines "over" 80 characters in post bodies trigger warnings.
And an example just entered this thread:

a*Adam H. Kerman 1 >trn 4 and UTF-8
Michael Buerle 1 >Is there a way to respond to an expired ...message ID?

Michael Bäuerle posted using an ISO-8859-1 mime-encoded word for his
last name ("Michael =?ISO-8859-1?Q?B=E4uerle?="), which trn dumped raw
to screen, xterm ignored it as an invalid UTF-8 sequence and the columns
broke. Alignment also breaks when a valid multi-octet UTF-8 sequence
displays as a single character.

Elijah
------
has a killfile rule autoselecting trn posts, hence partial selection ("*")
Arlen Holder
2020-08-05 22:33:05 UTC
Permalink
Michael BÀuerle posted using an ISO-8859-1 mime-encoded word for his
last name ("Michael =?ISO-8859-1?Q?B=E4uerle?="), which trn dumped raw
to screen, xterm ignored it as an invalid UTF-8 sequence and the columns
broke. Alignment also breaks when a valid multi-octet UTF-8 sequence
displays as a single character.
I have what I think is that same problem with telnet/vim that the funky
diagraph characters don't show up, on your end, as being what they were
on my end.

I never knew why.
o <Loading Image...>

For example, this is a cut-and-paste of what you wrote:
"Michael BÀuerle posted using an ISO-8859-1 mime-encoded word"
(where the "a" in his last name is xxx in vim)

I just never knew shy smart quotes don't get sent properly.
<https://practicaltypography.com/straight-and-curly-quotes.html>

For example, here's a cut-and-paste verbatim from this web site:
<https://community.adobe.com/t5/dreamweaver/how-to-convert-straight-quotes-to-smart-quotes-or-set-as-default/td-p/9819629?page=1>
left single quote ‘ &lsquo;
right single quote (and apostrophe) ’ &rsquo;
left double quote “ &ldquo;
right double quote ” &rdquo;

Here's a cut and page from
<https://www.lifewire.com/typing-quotes-apostrophes-and-primes-1074104>
' Straight single apostrophe ' ' '
" Straight double quote " " "
‘ Opening single apostrophe alt+0145 option+] &lsquo;
’ Closing single apostrophe alt+0146 option+shift+] &rsquo;
“ Opening double quote alt+0147 option+[ &ldquo;
” Closing double quote alt+0148 option+shift+[ &rdquo;

Notice that, in vim, a "ga" (i.e., get ascii) shows the following:
The "a" in Bauerle is decimal 228.
An opening single apostrophe is decimal 145.
A closing single apostrophe is decimal 146.
A curly single opening doublequote is decimal 147.
A curly single closing double quote is decimal 148.

Same with bullets (decimal 149) and long dashes.

When I want to "fix" them in vim, I use the following sequence:
(1) Get the current diagraph of an unprintable ASCII character:
ga (remember this as 'get ascii')

(2) Find diagraph of bullet which is decimal 149:
:/\%d149<return>

(3) Replace it with something else:
:s/\%d149/:/g
--
Every post to Usenet archives should help someone now & in the future.
Adam H. Kerman
2020-08-05 23:08:23 UTC
Permalink
Post by Arlen Holder
Michael Bauerle posted using an ISO-8859-1 mime-encoded word for his
last name ("Michael =?ISO-8859-1?Q?B=E4uerle?="), which trn dumped raw
to screen, xterm ignored it as an invalid UTF-8 sequence and the columns
broke. Alignment also breaks when a valid multi-octet UTF-8 sequence
displays as a single character.
I have what I think is that same problem with telnet/vim that the funky
diagraph characters don't show up, on your end, as being what they were
on my end.
I never knew why. . . .
Characters are output to the screen. You are to change the translation
on your terminal emulation to get them to display as intended.
Eli the Bearded
2020-08-05 23:44:09 UTC
Permalink
Crosspost and follow-ups set to comp.editors.
Post by Arlen Holder
I have what I think is that same problem with telnet/vim that the funky
diagraph characters don't show up, on your end, as being what they were
on my end.
I never knew why.
o <https://i.postimg.cc/TP0dsDyX/smartquote01.jpg>
"Michael Bäuerle posted using an ISO-8859-1 mime-encoded word"
(where the "a" in his last name is xxx in vim)
The screenshot you show there has a proper U+E4 LATIN SMALL LETTER A
WITH DIAERESIS in Michael's name, not "xxx".
Post by Arlen Holder
I just never knew shy smart quotes don't get sent properly.
Newsreader software that properly understands character encoding (so
*not* trn) require the appropriate headers to make sense of non-ASCII
encodings in posts.

Vim does not have access to that metadata, and uses preferences and
heuristics to guess the encoding.

For me:
fileencodings=ucs-bom,utf-8,default,latin1

That indicates the encodings vim will attempt to guess for a document.

And this is what it has selected for this document:

fileencoding=utf-8

If it guesses wrong, or if I want to explicitly change it, I can
set fileencoding to a new value. When I follow-up to ISO-8859-1
("latin1") posts, I either edit out all highbits or change the encoding
with ":set fileencoding=utf-8". Doing so does not "dirty" the content,
and if I've made no other edits ":q" will not warn me about unsaved
changes, so I often explicitly ":w" after such a change.

Depending on compile time options in vim, these settings may not be
available or just won't work.
Post by Arlen Holder
The "a" in Bauerle is decimal 228.
I was unaware of that tool in vim. I see

<ä> 228, Hex 00e4, Oct 344, Digr a:

When I try it. Note that lowercase a with diaeresis is at the same
position (228 or 0xE4) in both the ISO-8859-1 and Unicode character
sets, but has a different encoding in the Unicode character encodings
(UTF-x, UCS-x, where "x" indicates a family of encodings). MIME uses one
word to indicate both character set and character encoding, "charset",
but properly they are two different things.

ISO-8859-1 only encodes a character in a single octet. UCS-4 only uses
four octets to encode. UTF-7 uses a series of seven bit safe octets to
encode any character in Unicode (using a form of inline base64), UTF-8
uses a series of one to four octets to encode an any character in
Unicode. Seven bit safe code points are encoded in one seven bit safe
octet, all other code points are encoded in a series of high-bit set
octets.

Critically, here, this means U+E4 must be encoded differently for UTF-8
and ISO-8859-1. And many UTF-8 encodings can be mistaken for a series of
high-bit set characters in a ISO-8859-1 encoding.
When I want to fix them in vim, I use a mappings to desmart quote
stuff on input or filter them with a Perl script.

#!/usr/local/bin/perl -w
# Use the .news_vimrc rules to turn high-bit content into ASCII text
# content. Note that .news_vimrc should be considered binary, not
# UTF-8, since it includes rules for bad encodings. And note that it
# doesn't attempt to remove all high-bit stuff.
#
# September 2018

use strict;
use vars qw( $infile %rules $all_re $hb $t $count );

$infile = $ENV{HOME} . '/.news_vimrc';

if(!open(RC, "< $infile")) {
# die "$0: $infile: $!\n";
# use fallback set of rules
*RC = *DATA;
}

while(<RC>) {
# map! (whitespace) (non-whitespace LHS) (whitespace) (RHS with embeded WS)
# but ignore rules like:
# map! <F6> Content-Type: text/plain; charset="UTF-8"<cr>MIME-Version: 1.0<cr>
if(($hb, $t) = /^\s*map!\s+([^<\s]\S*)\s+(\S.*)/) {
if ($hb =~ /[].*+|^\$\\()[{}]/) {
die "$0: Whoa. Rule on line $. has RE metacharacters\n";
}
$rules{$hb} = $t;
}
}
close RC;

$_ = join('|', keys(%rules));
die "$0: no rules!\n" unless length $_;

$all_re = qr/($_)/;

$count = 0;
while(<>) {
s/$all_re/$rules{$1}/eg;
if(/[^\t\n\r -~]/) {
$count ++;
}
print;
}
if($count) {
warn "$0: warning: $count line(s) still have highbits\n";
}
__END__
# simplified fallback set of mappings to use
" smart quotes
map! ’ '
map! ‘ '
map! “ "
map! ” "
map! ″ "
" ellipsis
map! … ...
" n-dash
map! – --
" m-dash
map! — --
" U+2212 minus
map! − -
" U+2010 hyphen
map! ‐ -


Elijah
------
notably does not have a subsitute for the bullet point example
Arlen Holder
2020-08-06 01:20:15 UTC
Permalink
Post by Arlen Holder
o <https://i.postimg.cc/TP0dsDyX/smartquote01.jpg>
"Michael BÀuerle posted using an ISO-8859-1 mime-encoded word"
(where the "a" in his last name is xxx in vim)
Oooooops. In this thread on <https://tinyurl.com/news-software-readers>
o Is there a way to respond to an expired article if you know the message ID?
<https://groups.google.com/forum/#!topic/comp.editors/e1dyaeVDquk>

On this post:
<https://groups.google.com/d/msg/news.software.readers/wCuH27s14eQ/qMgmj_Y1BAAJ>

Regarding what Eli the Bearded kindly reported:
<https://groups.google.com/forum/#!topic/comp.editors/e1dyaeVDquk>
<https://groups.google.com/d/msg/news.software.readers/wCuH27s14eQ/qzPMU9c5BAAJ>

My mistake...

I had initially typed "xxx" while I was hastily composing the response,
where I had meant to include the diagraph from a "get ascii" in VIM, which
I forgot to do before I sent that article.

Mea culpa.

The correction is that section with the "xxx" should have been as follows:

==== cut here ====

o <https://i.postimg.cc/TP0dsDyX/smartquote01.jpg>

For example, this is a cut-and-paste of what you wrote:
"Michael Bäuerle posted using an ISO-8859-1 mime-encoded word"
(where the "a" in his last name is "decimal 228" in vim)

==== cut here ====

As shown in this new screenshot:
o <Loading Image...>
--
Note: As per Eli, I added <https://tinyurl.com/comp-editors> to the ngs.
Michael Bäuerle
2020-08-08 09:58:25 UTC
Permalink
Post by Arlen Holder
Post by Arlen Holder
o <https://i.postimg.cc/TP0dsDyX/smartquote01.jpg>
"Michael B??uerle posted using an ISO-8859-1 mime-encoded word"
^^
This variant was UTF-8 encoded.
Post by Arlen Holder
Post by Arlen Holder
(where the "a" in his last name is xxx in vim)
[...]
==== cut here ====
o <https://i.postimg.cc/TP0dsDyX/smartquote01.jpg>
"Michael B?uerle posted using an ISO-8859-1 mime-encoded word"
^
This variant was ISO-8859-1 encoded.
Post by Arlen Holder
(where the "a" in his last name is "decimal 228" in vim)
==== cut here ====
o <https://i.postimg.cc/VkQ4Tx5p/smartquote02.jpg>
The question marks in my quotation above show that both variants
have not worked, because the default encoding for Usenet (and Mail)
is US-ASCII (it is not possible to encode 'ä' with US-ASCII).

MIME (RFC 2045 ... 2049) defines how to use a different encoding for
the message body. Example declaration from the header:
|
| Mime-Version: 1.0
| Content-Transfer-Encoding: 8bit
| Content-Type: text/plain; charset=ISO-8859-1

The first line declares that it was the intention of the sender to
create a message in MIME format (required for MIME conformance according
to RFC 2049).

The second line declares that *no* Transfer-Encoding (like Base64 or
Quoted-Printable) was used! It is only a declaraton that the used
encoding requires an 8-bit clean transport protocol. NNTP is 8-bit
clean, therefore a real Transfer-Encoding should only be required for
things like binary attachments (which are blocked by many news servers
anyway).

The third line is the one that declares what encoding was used for
the message body. MIME does not support multiple encodings for the
message body, therefore things like your examples quoted above are
not allowed. You (or your newsreader) have to:
1) Choose *one* encoding
2) Create, edit or convert the whole message body to use this encoding
3) Declare this encoding in the "charset" parameter of the
"Content-Type" header field

All MIME-conformant newsreaders will then correctly process your
article.


[Xpost reduced to <news:news.software.readers>]
Michael Bäuerle
2020-08-08 09:59:54 UTC
Permalink
Post by Arlen Holder
Post by Arlen Holder
o <https://i.postimg.cc/TP0dsDyX/smartquote01.jpg>
"Michael B??uerle posted using an ISO-8859-1 mime-encoded word"
^^
This variant was UTF-8 encoded.
Post by Arlen Holder
Post by Arlen Holder
(where the "a" in his last name is xxx in vim)
[...]
==== cut here ====
o <https://i.postimg.cc/TP0dsDyX/smartquote01.jpg>
"Michael B?uerle posted using an ISO-8859-1 mime-encoded word"
^
This variant was ISO-8859-1 encoded.
Post by Arlen Holder
(where the "a" in his last name is "decimal 228" in vim)
==== cut here ====
o <https://i.postimg.cc/VkQ4Tx5p/smartquote02.jpg>
The question marks in my quotation above show that both variants
have not worked, because the default encoding for Usenet (and Mail)
is US-ASCII (it is not possible to encode 'ä' with US-ASCII).

MIME (RFC 2045 ... 2049) defines how to use a different encoding for
the message body. Example declaration from the header:
|
| Mime-Version: 1.0
| Content-Transfer-Encoding: 8bit
| Content-Type: text/plain; charset=ISO-8859-1

The first line declares that it was the intention of the sender to
create a message in MIME format (required for MIME conformance according
to RFC 2049).

The second line declares that *no* Transfer-Encoding (like Base64 or
Quoted-Printable) was used! It is only a declaration that the used
encoding requires an 8-bit clean transport protocol. NNTP is 8-bit
clean, therefore a real Transfer-Encoding should only be required for
things like binary attachments (which are blocked by many news servers
anyway).

The third line is the one that declares what encoding was used for
the message body. MIME does not support multiple encodings for the
message body, therefore things like your examples quoted above are
not allowed. You (or your newsreader) have to:
1) Choose *one* encoding
2) Create, edit or convert the whole message body to use this encoding
3) Declare this encoding in the "charset" parameter of the
"Content-Type" header field

All MIME-conformant newsreaders will then correctly process your
article.


[Xpost reduced to <news:news.software.readers>]
--
Btw: wann kommt eigentlich das neue KDE-6 raus? KDE-5 läuft ja jetzt
schon einige Zeit stabil, da könnte man ja einer alten Tradition
folgend mal wieder von vorne anfangen.
Martin Schnitkemper in de.comp.os.unix.apps.kde
Eli the Bearded
2020-08-10 18:50:04 UTC
Permalink
Post by Michael Bäuerle
The third line is the one that declares what encoding was used for
the message body. MIME does not support multiple encodings for the
message body, therefore things like your examples quoted above are
1) Choose *one* encoding
2) Create, edit or convert the whole message body to use this encoding
3) Declare this encoding in the "charset" parameter of the
"Content-Type" header field
One caveat is that headers are generally limited to 7-bit encodings,
hence the use of MIME-encoded words (RFC-2047) for including
non-US-ASCII content in headers.

Elijah
------
RFC-6532 message/global type allows UTF-8 (with high bits) in headers
Michael Bäuerle
2020-08-11 09:47:28 UTC
Permalink
Post by Eli the Bearded
Post by Michael Bäuerle
The third line is the one that declares what encoding was used for
the message body. MIME does not support multiple encodings for the
message body, therefore things like your examples quoted above are
1) Choose *one* encoding
2) Create, edit or convert the whole message body to use this encoding
3) Declare this encoding in the "charset" parameter of the
"Content-Type" header field
One caveat is that headers are generally limited to 7-bit encodings,
hence the use of MIME-encoded words (RFC-2047) for including
non-US-ASCII content in headers.
Yes, what I wrote above is only for the message body.

In groups that use english language it is unlikely that one need to
use RFC 2047. An exception are names (like in my case).
Post by Eli the Bearded
[...]
RFC-6532 message/global type allows UTF-8 (with high bits) in headers
<https://tools.ietf.org/html/rfc6532#section-3.7>
|
| Internationalized messages in this format MUST only be transmitted as
| authorized by [RFC6531] or within a non-SMTP environment that
^^^^^^^^^^^^^^^^^^^^^^^^^
First, it is questionable whether Usenet really is a "non-SMTP
environment". Think of moderation via mail.

| supports these messages. [...]
^^^^^^^^^^^^^^^^^^^^^^^
There is currently no "support" for this in general. RFC 5536 forbids it
at the top level of articles:
<https://tools.ietf.org/html/rfc5536#section-2.2>
|
| o The character set for header fields is US-ASCII. Where the use of
| non-ASCII characters is required, they MUST be encoded using the
| MIME mechanisms defined in [RFC2047] and [RFC2231].

"message/global" directly or as entity of "multipart" also has problems,
because of the potential transfer encoding. That is allowed by RFC 6532,
but it is not backward compatible with the original MIME definition in
RFC 2045: <https://tools.ietf.org/html/rfc2045#section-6.4>
|
| Certain Content-Transfer-Encoding values may only be used on certain
| media types. In particular, it is EXPRESSLY FORBIDDEN to use any
| encodings other than "7bit", "8bit", or "binary" with any composite
| media type, i.e. one that recursively includes other Content-Type
| fields. Currently the only composite media types are "multipart" and
| "message".

"message/global" with non-identity transfer encoding may break existing
MIME implementations. Therefore the part "supports these messages" above
is important.
Arlen Holder
2020-08-05 01:49:24 UTC
Permalink
Does nntp.aioe.org not require a login to post?
Hi Eli the Bearded,

Yes. You are correct. I use no-login apps for privacy, where, even on
Android and Windows, I ensure there is almost never any login to any server
ever in order to get the app to work (e.g., neither Windows nor and Android
phone requires a login to a server to be effective, but iOS does).

A more detailed answer to your question is that there are a handful of
purposefully free news servers which do not require a login/password to
post, such as aioe, mixmin, netfront, neodome, etc., which assists you in
your privacy (especially when on VPN & when using Stunnel or encryption).

Other purposefully free news servers publicize a default login/password
(e.g., guest/guest), where you can find out about all the purposefully free
news servers and their login credentials on the cc'd news group a.f.n:
o <http://tinyurl.com/alt-free-newsservers>
o <http://alt.free.newsservers.narkive.com>

With VPN, you get added privacy, where thousands of free openvpn config
files are available which we've discussed at length on the Linux & Windows
newsgroups many times in the past <http://tinyurl.com/alt-os-linux>:
o For example, <http://vpngate.net>

And, with telnet, you get added control over your time zone stamp,
newsreader line, etc., where I use the telnet scripts that Marek Novotny
kindly wrote up for us years ago, which make use of dictionary-style
lookups for the headers and for the newsservers, etc.
Or is it whitelisting by some other metric? (The newsserver I
use white lists by IP address and requires a password for outside
sources.)
No. Any IP address (practically) can post to the purposefully free news
servers which I've tested since I have over six thousand free VPN servers
to choose from (see long threads on this topic in alt.os.linux).

Each news server admin does control spam though, so, while it has never
happened to me, they do block people, manually, when they spam or when they
get complaints.

In addition, each purposefully free news server uses various algorithms to
control spam (e.g., aioe doesn't allow more than three crossposted
newsgroups, as I recall).

But anyone can post to them, where I have a thread on all of the free news
servers and their login credentials on
<http://tinyurl.com/alt-free-newssservers>.

Bear in mind that newsgroup is filled with trolls though, so, you have to
wade through the childish crap - where at least most people there are
pretty good with NNTP protocol (so just ignore the childish trolls).
Post by Arlen Holder
The advantage of WSL inside of Windows is you get nice Linux tools that
operate on the Windows files (e.g., locate, grep, sed, awk, ls, etc.).
The advantage of Linux is you get nice Unix tools that operate without
paying for Unix licensing (e.g., find, grep, sed, awk, ls, etc.).
Don't get me wrong; I love Linux (I cut my teeth on the DEC & on the PDP 11
before Masscomp, SunOS and Solaris and then Centos/Redhat before Ubuntu).

Linux is great, where I have _plenty_ of tutorials on dual booting Linux
with Windows, since Linux gives you special privileges, such as being able
to turn an iOS device into a read/write device for free:
o How to read/write access iOS file systems on Ubuntu/Windows over USB cable
<https://groups.google.com/forum/#!topic/alt.os.linux/z_KXY4IHLe0>

The beauty of dual boot Windows & Linux is that the Linux gives you
complete access to the entire visible iOS file system _and_ Windows, at the
same time (yes, simultaneously!), where you can't get that with Windows or
the Mac alone (AFAIK).
o Simultaneously slide Windows Linux iOS Android files back and forth over USB at 7GB per minute speeds using 100% native devices (no proprietary software needed)
<https://groups.google.com/forum/#!topic/alt.os.linux/WqIDiVbawRs>

In fact, I strive to make _all_ the operating systems access files from
each other, including iOS which is the most brain dead of them all, IMHO:
o How do we most easily set up a freeware network of Windows + Linux + iOS + Android file systems
<https://groups.google.com/forum/#!topic/alt.os.linux/tKhwlZyOhf0>

While a dual boot Linux is preferable to a straight linux because it
accesses the Windows and Linux file systems simultaneously, and while VMs
and emulation and porting of Linux commands to Windows has been around
forever, I prefer, lately, the huge advantage of adding WSL to Windows.

It only takes about five minutes, and it allows me to run Linux commands
directly on the Windows file system without needing to bother to reboot.
o Tutorial for setting up Ubuntu as a Windows Subsystem for Linux WSL in Windows 10
<https://groups.google.com/forum/#!topic/alt.os.linux/PV4Shdb67iM>

However, dual booting Windows & Linux isn't without its pitfalls. :)
o How to reset dual boot Linux:Win GRUB after "inaccessible boot device"
<https://groups.google.com/forum/#!topic/alt.os.linux/DWccp5p47Vo>

o Proactive setup instructions for dual boot with Windows & Ubuntu via Grub using legacy keyboards
<https://groups.google.com/forum/#!topic/alt.os.linux/WltumTFjzU8>

o Why doesn't Ubuntu 18.04 ask to install next to Windows 10 Pro single HDD as a dual boot?
<https://groups.google.com/forum/#!topic/alt.os.linux/D7E7FQ1NLNk>

To more fully answer your question, notice in the last three cites above,
dual booting to Linux with Windows isn't always a cakewalk (although
usually it is); which is why I _love_ that it only takes minutes to add
Ubuntu to Windows as a windows subsystem for linux (WSL).

In short, it was easier to run the telnet suggestions in wsl than it would
have been to boot to Linux to run the exact same commands. :)
--
Usenet is valuable when everyone us purposefully helpful & polite.
Michael Bäuerle
2020-08-05 08:44:04 UTC
Permalink
Post by Eli the Bearded
Post by n***@zzo38computer.org.invalid
Post by Arlen Holder
Is there a way to respond to an expired article if you know the message ID?
Yes, if you also know the contents of the References header of the expired
article; you can add a References header containing the contents of the
Convention is that the References header has the message ID of the first
article in a thread, and (up to) the four most recent articles
previously. If you provide more or fewer message IDs different software
might have different success in threading messages. I find trn tries
very heroically to thread stuff, and can deal with just a single message
ID, but to use the thread tree selector it does help to have more.
RFC 5537 defines how the References header field must be created:
<https://tools.ietf.org/html/rfc5537#section-3.4.4>
|
| The following procedure is to be used whenever some previous article
| (the "parent") is to be referred to in the References header field of
| a new article, whether because the new article is a followup and the
| parent is its precursor or for some other reason.
|
| The content of the new article's References header field MUST be
| formed from the content of the parent's References header field if
| present, followed by the content of the Message-ID header field of
| the parent. If the parent had a References header, FWS as defined in
| [RFC5536] MUST be added between its content and the Message-ID header
| field content.
|
| If the resulting References header field would, after unfolding,
| exceed 998 characters in length (including its field name but not the
| final CRLF), it MUST be trimmed (and otherwise MAY be trimmed).
| Trimming means removing any number of message identifiers from its
| content, except that the first message identifier and the last two
| MUST NOT be removed.
|
| [...]
Adam H. Kerman
2020-08-05 15:56:05 UTC
Permalink
Post by Michael Bäuerle
Post by Eli the Bearded
Post by n***@zzo38computer.org.invalid
Post by Arlen Holder
Is there a way to respond to an expired article if you know the message ID?
Yes, if you also know the contents of the References header of the expired
article; you can add a References header containing the contents of the
Convention is that the References header has the message ID of the first
article in a thread, and (up to) the four most recent articles
previously. If you provide more or fewer message IDs different software
might have different success in threading messages. I find trn tries
very heroically to thread stuff, and can deal with just a single message
ID, but to use the thread tree selector it does help to have more.
<https://tools.ietf.org/html/rfc5537#section-3.4.4>
| The following procedure is to be used whenever some previous article
| (the "parent") is to be referred to in the References header field of
| a new article, whether because the new article is a followup and the
| parent is its precursor or for some other reason.
| The content of the new article's References header field MUST be
| formed from the content of the parent's References header field if
| present, followed by the content of the Message-ID header field of
| the parent. If the parent had a References header, FWS as defined in
| [RFC5536] MUST be added between its content and the Message-ID header
| field content.
| If the resulting References header field would, after unfolding,
| exceed 998 characters in length (including its field name but not the
| final CRLF), it MUST be trimmed (and otherwise MAY be trimmed).
| Trimming means removing any number of message identifiers from its
| content, except that the first message identifier and the last two
| MUST NOT be removed.
| [...]
I think the conventional trimming of Message-IDs has been a mistake, and
yes, I do know that trn trims in followup. Precursor articles referenced
in the string of Message-IDs may have expired at different times. It can
happen that the root article will have expired but some of the articles
in the thread tree referred to will not have expired, but if their
Message-IDs weren't quoted, the newsreader won't be able to thread. No,
it cannot be assumed that the immediate precursor article won't have
expired. What if it wasn't received in the first place, or if crossposts
were changed, which has happened throughout this thread?

Where it doesn't violate the 998 character threshold, this one should
have been a MUST NOT.
Michael Bäuerle
2020-08-05 16:36:54 UTC
Permalink
Post by Adam H. Kerman
Post by Michael Bäuerle
<https://tools.ietf.org/html/rfc5537#section-3.4.4>
| The following procedure is to be used whenever some previous article
| (the "parent") is to be referred to in the References header field of
| a new article, whether because the new article is a followup and the
| parent is its precursor or for some other reason.
| The content of the new article's References header field MUST be
| formed from the content of the parent's References header field if
| present, followed by the content of the Message-ID header field of
| the parent. If the parent had a References header, FWS as defined in
| [RFC5536] MUST be added between its content and the Message-ID header
| field content.
| If the resulting References header field would, after unfolding,
| exceed 998 characters in length (including its field name but not the
| final CRLF), it MUST be trimmed (and otherwise MAY be trimmed).
| Trimming means removing any number of message identifiers from its
| content, except that the first message identifier and the last two
| MUST NOT be removed.
| [...]
I think the conventional trimming of Message-IDs has been a mistake, and
yes, I do know that trn trims in followup. Precursor articles referenced
in the string of Message-IDs may have expired at different times. It can
happen that the root article will have expired but some of the articles
in the thread tree referred to will not have expired, but if their
Message-IDs weren't quoted, the newsreader won't be able to thread. No,
it cannot be assumed that the immediate precursor article won't have
expired. What if it wasn't received in the first place, or if crossposts
were changed, which has happened throughout this thread?
Where it doesn't violate the 998 character threshold, this one should
have been a MUST NOT.
The trim algorithm used by flnews reserves space for the field name and
the first MID, then inserts the other MIDs at the beginning in reverse
order (starting with the last one) until the length limit is reached
(or no more MIDs left to add). The field name and first MID are
prepended at the end.

This preserves as many of the most recent MIDs of the thread as possible
(or all, if there is enough space).
Adam H. Kerman
2020-08-05 17:13:03 UTC
Permalink
Post by Michael Bäuerle
Post by Adam H. Kerman
Post by Michael Bäuerle
<https://tools.ietf.org/html/rfc5537#section-3.4.4>
| The following procedure is to be used whenever some previous article
| (the "parent") is to be referred to in the References header field of
| a new article, whether because the new article is a followup and the
| parent is its precursor or for some other reason.
| The content of the new article's References header field MUST be
| formed from the content of the parent's References header field if
| present, followed by the content of the Message-ID header field of
| the parent. If the parent had a References header, FWS as defined in
| [RFC5536] MUST be added between its content and the Message-ID header
| field content.
| If the resulting References header field would, after unfolding,
| exceed 998 characters in length (including its field name but not the
| final CRLF), it MUST be trimmed (and otherwise MAY be trimmed).
| Trimming means removing any number of message identifiers from its
| content, except that the first message identifier and the last two
| MUST NOT be removed.
| [...]
I think the conventional trimming of Message-IDs has been a mistake, and
yes, I do know that trn trims in followup. Precursor articles referenced
in the string of Message-IDs may have expired at different times. It can
happen that the root article will have expired but some of the articles
in the thread tree referred to will not have expired, but if their
Message-IDs weren't quoted, the newsreader won't be able to thread. No,
it cannot be assumed that the immediate precursor article won't have
expired. What if it wasn't received in the first place, or if crossposts
were changed, which has happened throughout this thread?
Where it doesn't violate the 998 character threshold, this one should
have been a MUST NOT.
Ceiling, not threshold
Post by Michael Bäuerle
The trim algorithm used by flnews reserves space for the field name and
the first MID, then inserts the other MIDs at the beginning in reverse
order (starting with the last one) until the length limit is reached
(or no more MIDs left to add). The field name and first MID are
prepended at the end.
This preserves as many of the most recent MIDs of the thread as possible
(or all, if there is enough space).
That's better than how trn trims, actually. That's rather clever.
Eli the Bearded
2020-08-05 17:41:13 UTC
Permalink
Post by Adam H. Kerman
Post by Michael Bäuerle
| [...]
I think the conventional trimming of Message-IDs has been a mistake, and
yes, I do know that trn trims in followup. Precursor articles referenced
in the string of Message-IDs may have expired at different times. It can
happen that the root article will have expired but some of the articles
in the thread tree referred to will not have expired, but if their
Message-IDs weren't quoted, the newsreader won't be able to thread.
The inclusion of the root message-id (or a subject line indicating it is
the same thread) is enough for trn to find and group them as the same
thread. It seems like any newsreader should be able to use the presence
of the same root message-id for grouping. If there are no other common
message-ids, then yes, you can't easily know how they relate to each
other, but I can see good reasons not to let References grow without
bounds.

Most notably, it makes the overview files more reasonable. An example
using a post of my in this topic. In this example I use nntplist,
standard software, by Stan Barber, to show the server specification for
local overview; and I use xover-nntp, a script I have using Perl's
News::NNTPClient (it's basically right out of the docs).

$ nntplist overview.fmt
Subject:
From:
Date:
Message-ID:
References:
Bytes:
Lines:
Xref:full
NNTP-Posting-Host:full
$ xover-nntp news.software.readers:311257
311257
Re: Is there a way to respond to an expired article if you know the message ID?
Eli the Bearded <*@eli.users.panix.com>
Tue, 4 Aug 2020 17:26:15 +0000 (UTC)
<eli$***@qaz.wtf>
<rganif$m4h$***@neodome.net> <***@zzo38computer.org> <rgc2pp$11r$***@dont-email.me>
2993
42
Xref: panix news.software.readers:311257
NNTP-Posting-Host: panix5.panix.com
$

There is no provision or guidance for a value too long to fit on a
single line in the overview functionality:

https://tools.ietf.org/html/rfc3977#section-8.3

By making articles conform to limits that prevent overview from
overflowing, it prevents breakage of that. (And it makes that terse
summary of headers stay terse.)

(Having NNTP-Posting-Host: in overview is a non-standard local thing at
panix. It's there because overview headers are *fast* to fetch, and
NNTP-Posting-Host: is useful for killfiling.)

Elijah
------
pretty sure 3977 is most recent, but open to correction
Michael Bäuerle
2020-08-05 20:09:01 UTC
Permalink
Post by Eli the Bearded
[...]
pretty sure 3977 is most recent, but open to correction
Yes. On the IETF HTML-Pages there is normally a note in the header,
if an old RFC was obsoleted by a newer one.

Like here for the former RFC 977: <https://tools.ietf.org/html/rfc977>
Arlen Holder
2020-08-04 19:41:00 UTC
Permalink
Post by Adam H. Kerman
But the OP would have to be in position to edit headers on the proto
article in order to do that, as it's a feature of no newsreader.
Thanks to all who purposefully helpfully posted the solution to the given
problem set of updating an expired thread with new information, without
creating a disjoint new thread, and which is then permanently archived
by dejagoogle and any other permanent Usenet archive that is out there.

My goal was to UPDATE the permanent archives, without creating a new
thread, where the permanent archives, in this case, is an Android ng:
o <http://tinyurl.com/comp-mobile-android>
o <http://comp.mobile.android.narkive.com>

The suggestion of using the nntp "reference header" seems to have worked
the first time I tried it as shown in this screenshot just before sending:
o <Loading Image...>

It seems to have worked in that typical permanent archives were updated:
o <https://groups.google.com/forum/#!msg/comp.mobile.android/uZkl7ny85II/XGtsBWimCQAJ>
o <https://comp.mobile.android.narkive.com/c6M64Wr0/do-you-use-freedompop-in-the-usa-if-so-what-are-the-details>

Where I didn't know what would happen if I used multiple message-id's in
the reference header, so I used only the one message-id from the original
post.
o <https://groups.google.com/d/msg/comp.mobile.android/uZkl7ny85II/b-W2UAM1BAAJ>
o <https://comp.mobile.android.narkive.com/c6M64Wr0/do-you-use-freedompop-in-the-usa-if-so-what-are-the-details#post8>

Where a simple search will find the thread, including the belated update:
o <https://groups.google.com/forum/#!searchin/comp.mobile.android/freedompop>
o <https://narkive.com/search?q=freedompop> (I don't know how to do a ng-only search)

This is a good general purpose solution, using telnet, to update an old
thread which has been expired from our current news servers, as it could
just as well have been the Usenet newsreader newsgroup:
o <http://tinyurl.com/news-software-readers>
o <http://news.software.readers.narkive.com>

Or the free newsserver newsgroup (or any permanently archived newsgroup):
o <http://tinyurl.com/alt-free-newsservers>
o <http://alt.free.newsservers.narkive.com>

So that others always benefit from every action, here's pseudocode:
{me} telnet nntp.aioe.net 119
{me} group comp.mobile.android
{me} post
{it} 340 Ok, recommended message-ID <rgbtq6$blf$***@gioia.aioe.org>
{me} from: Arlen Holder <***@newmachine.com>
{me} newsgroups: comp.mobile.android
{me} subject: Re: Do you use FreedomPop in the USA? If so, what are the details?
{me} message-id: <rgbtq6$blf$***@gioia.aioe.org>
{me} references: <pv6ei5$bs0$***@news.mixmin.net>
{me} <blank line>
<I include the desired update message body here>
{me} .
{me} quit

BTW, it didn't actually go that smoothly simply due to the cut-and-paste
into the Windows Subsystem for Linux isn't necessarily intuitive, and, for
whatever reason, today, the neodome server was down, but nonetheless, the
purposefully helpful advice of using the reference header worked great!
o <https://i.postimg.cc/kGG8W31b/telnetnntp01.jpg>

The reason why it matters is that my goal on Usenet is to create useful
permanent archives of (tons of) tutorials and answers to questions and
freeware reviews, etc., so what I want is to APPEND to a thread (however
old) whatever new information is found to SOLVE the problem set (i.e., I
didn't want to create a new thread).

Now, when someone searches the permanent archives, they can find the new
update inside the old thread, and, since the new article isn't expired,
others can add more information (which they already did!).
o <https://groups.google.com/forum/#!searchin/comp.mobile.android/freedompop>

Thanks for being purposefully helpful in answering the given question.
--
2 kinds of people post to Usenet: Those who add value; and those who chat.
Arlen Holder
2020-08-04 20:10:45 UTC
Permalink
Post by Adam H. Kerman
Yes, that would be a standard References header in a followup. The old
References header in the precursor article is retained with the Message-ID
of the precursor article appended to the end.
Given Adam H. Kerman was purposefully helpful, I'm posting another response
as I realized, belatedly, in my haste to show that it worked, I forgot to
answer _all_ his questions!

Let me know if my response below needs further clarification.
Post by Adam H. Kerman
Also, the OP would still need to see the precursor article with its
References header in order to copy its contents into the followup
article he's writing. If he can find it on a server in which it's not
been expired, why not just inject the followup through that server?
That's a perfectly valid question, where I do things differently than many
of you in that I only use free newsservers (e.g., mixmin, neodome, aioe,
etc.), for privacy reasons... where EVERY ONE I checked had expired the
thread I wanted to UPDATE.

Of course, I can always find the article in the permanent archives:
o <http://tinyurl.com/comp-mobile-android>
o <http://comp.mobile.android.narkive.com>
But I can't post from narkive, and I wouldn't want to post from the
dejagoogle archives (for privacy reasons which are obvious to all).

Do you know of any other way to respond to an expired article than telnet?
(or your ancient newsreader which you get reamed for using! :)
Post by Adam H. Kerman
But the OP would have to be in position to edit headers on the proto
article in order to do that, as it's a feature of no newsreader.
My "newsreader" is an amalgam of scripts written originally by Marek
Novotny on the Linux newsgroup <http://tinyurl.com/alt-os-linux>, where the
end result is that it randomly chooses any one of six thousand free vpn
servers, and it uses a random time clock (if I want to privatize my date
stamp) and random identifying headers, etc..

The actual interface to the article is vi (on Linux) & vim (on Windows).

It doesn't do killfiles all that well, as I have to manually add the person
to plonk them, so I've only plonked two people in my entire life (Snit and
Alan Baker), but it works well for my purposes, which are privacy for the
headers and editing functionality for the body.
Post by Adam H. Kerman
Funny, I can edit headers in the composer of my newsreader with its
ancient interface that I regularly get condemned for continuing to use.
hehhehheh... I started with rn and then went to tin way back when I was on
Solaris machines, where I know what you mean in that sometimes, the old
stuff has key functionality that the new stuff doesn't have.

The only thing I'm a bit confused about is how the "threading" works when I
want to insert the last article into a current article that has a bunch of
message-id's in the References header, where you explained it well.

I only used a _single_ message-id in my references header on this 1st test:
o <https://i.postimg.cc/kGG8W31b/telnetnntp01.jpg>

But in the future, I'll test how the "threading" works when I add multiple
message-id's to the References header (I admit, I really don't know how
threading works because my system has a rudimentary LIFO sorting output).

Thanks for your purposefully helpful advice!
--
Two kinds of people are on Usenet - those who add value & those who chat.
Eli the Bearded
2020-08-04 20:39:54 UTC
Permalink
Post by Arlen Holder
Given Adam H. Kerman was purposefully helpful, I'm posting another response
as I realized, belatedly, in my haste to show that it worked, I forgot to
answer _all_ his questions!
Let me know if my response below needs further clarification.
Learn to use the Supersedes: header when you are replacing a post with a
revised version. Those of us using news servers that honor cancels and
supersedes will only need to see one of your replies.

Also, using Google Groups URLs is fraught. They do not seem to care if
they break links when they make changes. Message-IDs are more stable.
Non-Usenet / Google Groups repositories of knowledge are even better at
being longterm useful.

Elijah
------
consider a wiki, for example
Tebentedor
2020-08-05 06:11:54 UTC
Permalink
Post by Arlen Holder
Do you know of any other way to respond to an expired article than telnet?
Pan can do it. Begin composing an article; save it as a draft; the draft is
a plain text file in ~/.pan2/article-drafts which can be edited externally
to add the References: header; then reopen the draft in Pan, finish
composing if there's any composing left to do, and send.

Check out the References: header of this article. :)
Arlen Holder
2020-08-05 14:06:18 UTC
Permalink
Post by Tebentedor
Pan can do it. Begin composing an article; save it as a draft; the draft is
a plain text file in ~/.pan2/article-drafts which can be edited externally
to add the References: header; then reopen the draft in Pan, finish
composing if there's any composing left to do, and send.
Check out the References: header of this article. :)
Hi Tebentedor,

Thank you for that useful purposefully helpful advice, where that makes two
bona fide newsreaders which can properly edit the headers in the proto
article.
o <http://pan.rebelbase.com/>
"It runs on Linux, BSD systems, Mac OS X, and Windows."

While I loved that Pan was cross platform (I always try to make all five
operating systems coexist, iOS, Android, Windows, Linux, and well, if I had
one, the Mac - where I used to use CAP (Columbia Appletalk Protocol) to
make the Mac work with Linux & Windows long ago)...

The fact is I had dropped Pan long ago due to the need of adding Stunnel
for encryption, but I'm sure they've fixed that in the later releases.

I think the last Pan I used was 0.138, which, according to their web page,
was circa 2012, so maybe it's time to add it back to my arsenal of tools!

Thanks for that purposefully helpful hint, which not only helps me, the OP,
but also, as all good threads should, it helps everyone who needs to
respond to an expired article.
--
Usenet is a public helpdesk where people purposefully assist each other.
Arlen Holder
2020-08-05 14:29:50 UTC
Permalink
Post by Adam H. Kerman
But the OP would have to be in position to edit headers on the proto
article in order to do that, as it's a feature of no newsreader.
SUMMARY:

Based on these two posts in this thread, the good news is that, apparently,
both pan and trn can manually edit the headers of the proto article.
o Tebentedor (Pan/0.142)
o Adam H. Kerman (trn 4.0-test77)

The two post with that header-editing information in this thread are:
o pan <https://groups.google.com/d/msg/news.software.readers/wCuH27s14eQ/9Q_HyBJNBQAJ>
o trn <https://groups.google.com/d/msg/news.software.readers/wCuH27s14eQ/kqIQB48gBQAJ>

Cross platform download so that others can just click for the solution:
o pan <http://pan.rebelbase.com/>
o trn <https://sourceforge.net/projects/trn/>
--
Yes, I know, we all extensively used rn, tin & trn in the olden days...
s|b
2020-08-05 20:41:22 UTC
Permalink
Post by Arlen Holder
When I check the free newsservers, the OLD article has expired in all.
Forté Agent can retrieve the old message-id without a problem. Not with
a free newsserver though, I'm using news.individual.net.
--
s|b
Arlen Holder
2020-08-06 14:23:36 UTC
Permalink
Post by s|b
Post by Arlen Holder
When I check the free newsservers, the OLD article has expired in all.
Forté Agent can retrieve the old message-id without a problem. Not with
a free newsserver though, I'm using news.individual.net.
Hi S|b,
You're always purposefully helpful, which is appreciated, where I generally
see you on the OS ngs, e.g., <http://tinyurl.com/comp.mobile.android).

Just to gently clarify, the article being expired has nothing to do with
the newsreader, but with the newsserver, while posting to the expired
article has nothing to do with the newsserver, but with the newsreader.

That's why both newsgroups were added, and they solved the problem set!
o <http://tinyurl.com/alt-free-newsservers>
o <http://tinyurl.com/news-software-readers>

In summary, three "newsreaders" are known to solve the problem set:
1. trn (manually edit the header in the trn composer window)
2. pan (manually edit the header in the draft ~/.pan2/article-drafts)
3. telnet (manually include the header while typing the proto article)

Where all of which make use of the Message-ID in the References header:
References: <***@id> <***@id> <***@id> <***@id> <***@id>

Given RFC 5537 defines how the References header field must be created:
o <https://tools.ietf.org/html/rfc5537#section-3.4.4>

The use model is:
a. Find the expired article's reference id (e.g., via dejagoogle)
b. Construct a message that updates the desired thread with new details
c. Add that Message-ID as one of the IDs in the nntp References header

The result is that in all permanent Usenet archives, the update will be
shown as part of the thread, which is a solution to the given problem set.
--
Note: In culled archives, the article will show up standalone as "Re:".
Grant Taylor
2020-08-06 16:15:40 UTC
Permalink
You can probably get Thunderbird to do what you want too.

Add the References: header as one of the optional headers and then
choose it in the message composition window.
--
Grant. . . .
unix || die
Robert Marshall
2020-08-07 08:11:59 UTC
Permalink
Post by Grant Taylor
You can probably get Thunderbird to do what you want too.
Add the References: header as one of the optional headers and then
choose it in the message composition window.
And in (emacs)gnus by removing "^References" from message-hidden-headers
you can edit the references.

Robert
--
Robert Marshall twitter: @rajm
Ted Heise
2020-08-07 11:32:48 UTC
Permalink
On Thu, 6 Aug 2020 10:15:40 -0600,
Post by Grant Taylor
You can probably get Thunderbird to do what you want too.
Add the References: header as one of the optional headers and
then choose it in the message composition window.
And I'll just add that slrn brings up the References header in the
editing window by default.
--
Ted Heise <***@panix.com> West Lafayette, IN, USA
Frank Slootweg
2020-08-14 14:28:07 UTC
Permalink
Post by Ted Heise
On Thu, 6 Aug 2020 10:15:40 -0600,
Post by Grant Taylor
You can probably get Thunderbird to do what you want too.
Add the References: header as one of the optional headers and
then choose it in the message composition window.
And I'll just add that slrn brings up the References header in the
editing window by default.
And tin does the same and ...

Perhaps the question should be: Which newsreader can *not* do this!?
:-)

n***@zzo38computer.org.invalid
2020-08-06 18:47:33 UTC
Permalink
Post by Arlen Holder
1. trn (manually edit the header in the trn composer window)
2. pan (manually edit the header in the draft ~/.pan2/article-drafts)
3. telnet (manually include the header while typing the proto article)
I know of at least one more newsreader which supports this, which is
bystand (my own newsreader). When a new proto article is created, it will
fill in the headers (except the "Date" header, which is added when it is
ready to send), quotation, and signature, automatically, and then allows
you to edit it arbitrarily (I use Vim, although you can use any text
editor to edit the proto article).

A table of comparison of NNTP software can be made up, and this could be
one of the features included in the table. (Footnotes can also be added
in cases such as pan where it would be done in a separate file)
--
This signature intentionally left blank.
(But if it has these words, then actually it isn't blank, isn't it?)
Rob
2020-08-06 20:00:26 UTC
Permalink
Post by n***@zzo38computer.org.invalid
Post by Arlen Holder
1. trn (manually edit the header in the trn composer window)
2. pan (manually edit the header in the draft ~/.pan2/article-drafts)
3. telnet (manually include the header while typing the proto article)
I know of at least one more newsreader which supports this, which is
bystand (my own newsreader). When a new proto article is created, it will
fill in the headers (except the "Date" header, which is added when it is
ready to send), quotation, and signature, automatically, and then allows
you to edit it arbitrarily (I use Vim, although you can use any text
editor to edit the proto article).
A table of comparison of NNTP software can be made up, and this could be
one of the features included in the table. (Footnotes can also be added
in cases such as pan where it would be done in a separate file)
slrn can do it too!
Benjamin Esham
2020-08-06 22:45:06 UTC
Permalink
Post by Rob
Post by n***@zzo38computer.org.invalid
Post by Arlen Holder
1. trn (manually edit the header in the trn composer window)
2. pan (manually edit the header in the draft ~/.pan2/article-drafts)
3. telnet (manually include the header while typing the proto article)
I know of at least one more newsreader which supports this, which is
bystand (my own newsreader). [snip]
slrn can do it too!
Gnus, too. When you're editing a followup you need to type "C-x n w" first
to "widen" the buffer so you can see the References header, which starts off
hidden. You may also need to scroll upward after that.

Benjamin
Arlen Holder
2020-08-08 05:17:14 UTC
Permalink
SOLVED (Note: All questions on Usenet should have answers updated!)
(It's a common courtesy, and payback for all the help provided.)
(At least one ng should be dejagoogled, for efficient re-use.)

These "newsreaders" are said by others to solve the problem set:
1. trn (manually edit the header in the trn composer window)
2. slrn (brings up the References header in the editing window by default)
3. pan (manually edit the header in the draft ~/.pan2/article-drafts)
4. Thunderbird (add as optional header & choose it in message composition)
5. (emacs)gnus (remove References from message-hidden-headers to edit)
6. bystand (allows arbitrary creation of any desired header line)
7. telnet (manually include the header while typing the proto article)

Where all of which make use of the Message-ID in the References header:
References: <***@id> <***@id> <***@id> <***@id> <***@id>

Pseudocode:
telnet nntp.aior.org 119
post
from: Arlen Holder <***@newmachine.com>
newsgroups: comp.mobile.android
subject: Re: Do you use FreedomPop in the USA? If so, what are the details?
message-id: <rgbtq6$blf$***@gioia.aioe.org>
references: <pv6ei5$bs0$***@news.mixmin.net>
<insert a blank line>
The message body goes here.
.
quit

Where the threading should work just fine in any decent newsreader, and, if
the original article has expired in your newsserver, the threading will
still work just fine in the permanent Usenet archives.

To obtain the Message-ID of the expired root article, or the Message-ID in
the article you're responding to, you'll need a long-term archive, which,
luckily, for some newsgroups, dejagoogle does, and, for almost all
newsgroups, narkive also does (while some news servers also archive well).

For an example of a dejagoogle permanent web-searchable no-login archive:
o <http://tinyurl.com/alt-free-newsservers>
o <http://tinyurl.com/news-software-readers>

And for an example of an arbitrary web-searchable Usenet newsgroup archive:
o <http://alt.free.newsservers.narkive.com>
o <http://news.software.readers.narkive.com>

See also:
o Question about telnet commands using nntp protocol on Linux/Windows
<https://groups.google.com/forum/#!topic/alt.os.linux/xvlu-DdVFWI>
--
The beauty of Usenet is we learn from the practices & experiences of all.
Loading...