Image boards need a per-reader history feature. (9)

1 Name: John Galt : 2007-05-26 19:04 ID:SrRZiSIp [Del]

I'm a long time user of the alt.binaries.pictures.* groups
on Usenet. Usenet (which predates the WWW, and doesn't
use web browsers) has one feature which makes it immensely
more useful than the image boards I've tried: Your reader
keeps track of which posts (images) you've already seen, and
which ones you haven't. Thus, when you revisit a board, you
have a choice of just seeing new images, and don't have to
scroll through pages of old stuff to find them.

I'd really like to see some mechanism to allow this on imageboards, but I can't think of one short of
setting a bunch of cookies. Any thoughts?

just venting...

JG

2 Name: Eleo!EhVtXXdTd6 : 2007-05-26 20:43 ID:/GYKU7lu [Del]

I'm having trouble imagining this working on an imageboard. What happens when a thread you've already looked at has new content? Does they get ignored or..?

3 Name: Anonymous : 2007-05-26 20:46 ID:OkvBGtha [Del]

>>2 I'd assume that it'd hide the posts unless you specifically loaded them.

This sort of thing is what 2ch Readers are great for: they were developed to browse through the giant archives of places like 2ch, and have all sorts of useful features like this. None, to my knowledge, are translated.

4 Name: Eleo!EhVtXXdTd6 : 2007-05-26 22:01 ID:/GYKU7lu [Del]

Well hiding posts that are new but in old threads seems to kind of defeat the purpose.

This could work by throwing a bunch of post IDs into cookies. It could probably also work by session data which would make the list of threads seen local to the server instead of the user's browser.

5 Name: John Galt : 2007-05-27 06:50 ID:SrRZiSIp [Del]

To clarify:

Usenet has a unified group structure - the contents, of, say,
alt.binaries.pictures.automobiles is the same the world over,
regardless of what server you attach to. (There are hundreds of
image groups, and tens of thousands of non-image groups). Each
server assigns a monotonically increasing number to each post
which appears in each group, regardless of which thread within
the group it appears in.

Your client sw keeps track of these numbers, noting which ones
you've seen. Thus, the .newsrc file might contain a line like
this:

alt.binaries.pictures.automobiles: 1-1254, 1300-1765, 1845
(in reality, these numbers are generally in the hundreds of
thousands)

Note that it keeping track on a per-post basis, not a
per-thread or group one. Thus, new posts in old threads
are not hidden.

When the client connects to the server, it gets the number
of the most recent post in each group, and when you connect to
a given thread it gets the numbers of the articles in that
thread (most clients do this automatically when you connect
to a group) It thus knows which groups and threads have
unseen posts, and can skip over ones you've already
seen.

Another way to make image boards acquire some of this
functionality would be using a plugin to keep track of
post numbers. This would be much simpler if the boards
also supplied the per-board info to the plugin behind
the user's back.

Usenet has been dealing with these issues since the
early 1980s, and has developed some very powerful
tools for dealing with them I suggest you take a
look at the Wikipedia article.

John Galt

6 Name: Anonymous : 2007-05-27 21:08 ID:OPKDqRQZ [Del]

Since your client (newsreader) is what keeps track of this for you, it should be your client (browser or whatever) that does it in this case.

The first solution that comes to my mind is just sticking a link like this:
<a href="#<?php echo time(); ?>">##</a>
At the top of each post. Clicking it would lead nowhere, but it would remain marked as read in your browsser for as long as it was set to remember such things.

7 Name: Anonymous : 2007-05-28 03:45 ID:pMqouFe5 [Del]

>>6
Which will be only valid until browser cache expires. Sage (RSS reader extension for Firefox) uses the same trick to track readed articles, and this suck. Every once in a while I have to click 'mark read all' because FF forgot that. Quite annoying.

This is really should be a specific function of end-user software.

8 Name: John Galt : 2007-05-28 11:46 ID:SrRZiSIp [Del]

I'm trying to think of ways to do this without requiring
changes to board sw. It think it's possible.

One usenet, the hierarchy (for this purpose) goes
server -> groups -> thread in group
Threads can branch, but reference their 'parent', to which
they are replying. This allows the client to build a tree
of the thread and its branches. Each message in a given
group has an individual post number for that group and
server, and a universally unique (across all usenet)
'Message-ID'.

On the image boards (I may be wrong here, I'm not anywhere
as familiar with them), the hierarchy is similar:

server (eg 4chan) -> image board (eg wallpapers) -> thread.
Each message seems to have an individual post number, which
appears to be unique per server rather than per board (?).

Since pages presented show both the first and last few posts
of each thread, it should be possible for a
browser plugin to keep track which messages its seen on
given server, and know from the webpage which threads have
new content (ie, the last post isn't on the 'seen' list.
It could then modify the presented page to hide threads
and posts with no new content.

Any thoughts?

John Galt

9 Name: Anonymous : 2007-05-29 07:25 ID:pMqouFe5 [Del]

>>8
In case of 2ch.net-style text boards, post numbers are unique per thread, and thread numbers are unique per board, and there is a way to query server for a range of posts in any given thread.

If I understand properly, this is exactly the way 2ch.net readers behave.

In the case of futaba-like imageboards, post and thread numbers are unique per board, and there is no way to get latest posts to any given thread without loading it's whole HTML representation (which can go up to megabytes for longer discussions).

I believe there is no principal blockers to writing software in question. Except, perhaps, the only and the largest one: nobody cares enough.

Name: Link:
Leave these fields empty (spam trap):
More options...
Verification: