OE 5.0 relied on the servercount information and that's why it did a pretty
bad job.  Entourage actually asks for a list of all of the message ids of
messages on the server and compares this to an internal list (which is
basically how checking mail works as well).  As a result, it does a pretty
good job.  You can use Interarchy to see what's going on.

Dan

On 2/7/01 1:58 AM, "Michael W. Wellman" <[EMAIL PROTECTED]> wrote:

> On 02/04/2001 13:05, "Paul Berkowitz" <[EMAIL PROTECTED]> wrote:
>> I've been checking. Although occasionally command-L presents 1 or 2 brand
>> new headers from the server that have just been uploaded there, 95% of the
>> time nothing new arrives. When I click "More", I get the correct number of
>> headers (2 or 3 usually) from about 2 months ago: December 9 and 10, 2000,
>> appeared today. Since I have previously "Marked All as Read", those headers
>> should not be showing as Unread and annoying me this way, should they? If
>> this isn't a bug (albeit a different one than i first thought), what is it?
> 
> Would you accept "A potential annoyance in the underlying infrastructure of
> NNTP and the various transport agents implementing NNTP"?
> 
> On 02/04/2001 14:11, "Paul Berkowitz" <[EMAIL PROTECTED]> wrote:
>> Well, that could be. How do you think it would happen? Is it the server
>> rather than the news client that keeps track of "Read" and "Unread" for
>> everyone? That seems unlikely. I know that POP mail servers use something
>> called POPpers, which all work differently (one of my mail servers marks
>> "Read" correctly when I've downloaded once from that account and will obey a
>> Rule i have in place to mark as read when I download the same messages from
>> my other computer, but my regular ISP's mail server can't do this.) I don't
>> see how a news server could keep track of all its thousands and thousands of
>> users. 
>> 
>> Does anyone know how this works?
> 
> I could tell you, but then I'd have to kill you.
> 
> Oh...maybe I'll just mentally maim you...
> 
> 
> The news client software is responsible for tracking read/unread
> information.  It generally works something like this.
> 
> 1) The client connects to the server and requests information about a
> certain group.
> 
> 2) The server responds, telling the client an ID number (a number that only
> has meaning in the context of this particular server and this particular
> newsgroup...and it's most definitely *NOT* the message ID which actually
> uniquely identifies each news message and would be far too sensical) for the
> first message that it has (serverFirst) and the last message that it has
> (serverLast)...and perhaps the number of messages that the server has stored
> for that group (serverCount - which one might naively expect to have some
> relationship to the value (serverLast - serverFirst)...but one would most
> often be wrong).
> 
> 3) The client would have stored a ton of information from the last time it
> connected.  Exactly what it stores will be implementations specific, but
> it'll generally include something like:
>  prevServerFirst, prevServerLast
>  firstUnread - ID number of the first unread message on the server
>  lastUnread  - ID number of the last  unread message on the server
>  readmap     - usually a sparse bitmap containing no more than
>                (lastUnread - firstUnread) entries...but potentially
>                being larger or smaller depending upon the implementation
>  numUnread   - a count of unread entries in the aforementioned bitmap
> 
> 
> On good days, the new serverFirst and the new serverLast are monotonically
> increasing numbers.  On such days, the code is easy to write and you don't
> see strange numbers for the unread count.
> 
> On bad days, the new serverFirst may be smaller than the previous
> serverFirst...and the code is substantially more convoluted to write.
> 
> On really bad days, the new serverLast may be smaller than the previous
> serverFirst...and the code is really substantially more convoluted to write.
> 
> 4) Some implementations might actually ask how many new messages have been
> received since the last time the client and server connected.  This is
> typically done with a "time stamp" based command.
> 
> #####
> 
> Somehow I think I didn't clear anything up.
> 
> 
> It's not uncommon for certain NNTP servers to arbitrarily do stupid things
> that confuse NNTP clients that haven't encountered that particular idiom of
> stupidity before.
> 
> It's not uncommon for NNTP clients to incorrectly rely on serverCount.
> 
> It's not uncommon for NNTP servers to lie about the number of messages
> they've received since the last connection.  Especially if there is a
> disagreement between the clocks of the client and the server.
> 
> It's not uncommon for NNTP servers to change their minds about just how many
> messages that they have.
> 
> 
> All in all, dealing with "stupid" NNTP servers is an exercise in iterative
> debugging.  And if you write your NNTP client "to the spec", you'll find
> that the server screws up your lovely code.
> 
> Just one of the reasons to ensure that you implement a "Mark All Messages As
> Read" that really does...regardless of what the server has to say. ;-)
> 
> 
> Nope...still no real useful information...but I ain't trying no more
> tonight. 
> 
> mikel
> 


-- 
To unsubscribe:               <mailto:[EMAIL PROTECTED]>
To search the archives: 
          <http://www.mail-archive.com/entourage-talk%40lists.boingo.com/>

Reply via email to