From: dawson@willard.UUCP
Newsgroups: comp.bbs.waffle
Subject: Re: News/mail reader
Date: Mon, 23 Nov 92 08:50:27 EST
Organization: Willard's House BBS, Atlanta, GA -- +1 (404) 664 8814

chorn@eastwind.mcds.com (Christopher Horn) writes:

> dawson@willard.UUCP writes:
> 
> [initial argument deleted]
> 
> > Ok, let's have a counter example.  Supposing files are sorted by creation
> > date/time (as would apparently be the case with your technique).  Suppose
> > there were no new articles, and one was expired.  The users' join files
> > are now out of sync:
> > 
> >     Before unbatching : 1, 2, 3, 4, 5
> >     After unbatching  : 1, 2, 3, 4
> 
> Suppose that the files are not sorted by time/date, only resequenced.
> (Renumbered might be a better term)

But, if you're resequencing them as they come in, they ARE sorted by creation
date/time... as a side-effect.

> 
>       Before resequence : 1, 2, 3, 4, 5
>       Dupes killed      : 1, 2, 4, 5
>       After resequence  : 1, 2, 3, 4

If { 1, 2, 4, 5 } are dupes and are erased, then only { 3 } is left?  Which
would get resequenced to 1, as that's the highest unused number in your
example...

> 
> No join files are out of sync. I think this is what Kevin meant.
> 
> > -----
> > Suppose there was one new article, and one was expired.  No change to the
> > users' join files, but it now points one too high:
> > 
> >     Before unbatching : 1, 2, 3, 4, 5
> >     After unbatching  : 1, 2, 3, 4, 5
> 
> You seem to be thinking they are numbered from 1 up, which is not really
> the case. Take the lowest numbered file in the directory as the base.

Yes, I admit (again) that my arguments were based on inferences from previous
discussion, and that I have not looked at the actual implementation of DupWeed.

> 
>      Before unbatching : 1, 2, 3, 4, 5
>      After resequence  : 2, 3, 4, 5, 6   (as per the expire one, add one)
> 
> This works because the lowest numbered files are also the oldest and should
> be the first removed by an expire program (assuming my understanding of how
> expire programs expire news...)

As I just pointed out.. sorted by d/t as a side-effect.

> 
> > > Sounds rather simple to me.
> > 
> > Too simple, maybe?  I think I'll just avoid re-sequencing my articles.
> 
> Yes and no. Simple to do, and users don't wonder why articles jump from
> 1856 to 1858, etc.. But, bad because :
> 
>    1. The INITIAL kill dupes, resequence will screw up the pointers
>       no matter what you do. So the first time penalty is high if you
>       have many users.
>    2. You have to kill dupes, batch for downstream sites, and then
>       do the resequence seperately for it to work right.
> 
> Also note for it to work right when getting news from multiple sites,
> you have to search the article list from the oldest to the newest. If
> you kill the dupe that is older, a user may have read it, and when
> resequencing will mess up their join file.

True.  My own code kills the newer copy for each dupe found.  Otherwise,
you just wind up reading the same messages again and again.. and when you
go back to see why, the message you thought you had read is no longer
there!  Talk about confusing to the avg user...

> 
> > How does re-sequencing enhance the general operation of Waffle?
> 
> Aesthetic reasons?
> 
>  ---
>  Christopher Horn           |  "We're all caught in a state of decay..."
>  chorn@eastwind.mcds.com    |  The East Wind  +1 201 875 7063


-- 
dawson@willard.UUCP (Willard Dawson)
gatech!vdbsan!willard!dawson
emory!slammer!willard!dawson
Willard's House BBS, Atlanta, GA -- +1 (404) 664 8814