@codinghorror I’ve got a request for a new “feature” that doesn’t exist as far as I know. I think it would be widely well-received.
Problem: When I get a notification that someone has responded to my post or quoted it, and I click on that, it takes me to the very post in question. But this could be far past my “last visit” point in that thread.
So after reading the post, and while I am still viewing that thread, I would like to jump to my last visit point and read the rest of the thread from there. There ought to be a button (along with the “Back” button) to do that.
ETA: Does one of the “g” Jump-to commands do that?
Well, there is the concept of ‘reading holes’, where you have only read posts 1-5 and 30-40 of a 100 reply topic, for example. In this case your last read position is
reply 40
but then someone @name mentions you in reply 60, so you click on it, and now your last read position in that topic is:
reply 60
The topic is like swiss cheese, with holes in it. The cheese is the parts of the topic you have read; the holes are the parts you have not.
We do know which posts you’ve read, but we only store one “last read position”. Thus, the best I can think of is a “take me to the end of the nearest upstream reading hole” function or hotkey. That would usually work in the scenario you are describing, but it might be difficult to explain to people.
I’ve asked for this, too, and have a suggestion based on the info you say you have.
It sounds like you could have the following information: A poster scrolled through posts 1-25 in a Topic. They then came back on post 30, and read a few more, so their “last read position” is on post 35. So you know they read 1-25, and 30-35. So the goal would be to have some way to jump back to post 25 or post 26.
I would propose a button entitled “Previous unread” that could appear in the scroll bar. It would look something like this
|
|
previous unread
|
|
That gap gives the idea of the “hole,” and the “previous unread” being at the top communicates that it will take you back to the top of that hole.
If you think “previous unread” is too long, you could have it collapse to a symbol until the mouse hovers over it.
If you’re interested, I could try to mock up a better image version of what I mean.
@codinghorror , your post makes clear that you understand exactly, or nearly so, what I am suggesting. One difference, though: Any reader could have multiple “reading holes” (swiss cheese lacunae) in any given thread. The option I’m looking for is to go to the first post in the first such hole, not to the first, last, or any post in the latest hole. ETA: In other, simpler, words: Jump to the first unread post.
I think it should be possible to keep track of this with just one extra field in your (user x thread) matrix, maintaining the post number of that. With just a bit of flowchart logic, it should be possible to keep that field updated, as needed, with each post the user reads.
Logically, what I’m asking for is this: Scan the entire thread in chronological order, starting with the first post, until you find the first unread post, and jump there. Only it shouldn’t actually require a linear search (ugh!) of the thread, if you can maintain the post-number each time the reader reads a post.
ETA: I guess there is a case where you would have to do a partial linear search of a thread: Suppose you have a “first_unread” field than gives the number of a user’s earliest unread post. As long as the user doesn’t read that post, that field remains as-is. But as soon as the user reads that particular post, you need to search for the next post that the user hasn’t read and put that post number there. This will most often be a brief search, as the most common “next unread” post will often simply be the immediately following post. But when the user reads the last post of a swiss cheese hole, then you have to search an unpredictable number of already-read posts to find the first unread post of the next hole.