Is HN designed for fast readers?

2 points by BrindsleyQuives ↗ HN
Can someone explain HN's weird 'next page' behaviour to me?

My usage of the site usually involves reading half a dozen or so articles on the front 'page', then maybe dipping nto the comments to see what others are saying. After I've exhausted the first page in this way, I'll click the "More" button to go to page two.

At this point I often get an unfriendly empty page with Unknown or expired link. and can see from the URL my browser is trying to load that HN seems to be using a session ID, which has presumably timed out while I was reading page one.

What exactly is happening here and why is it implemented in this [broken?] way? I realise that with dynamic content, it is necessary to force the browser to refresh the page, rather than load from cache, but this is usually done with some simple trick like appending a timestamp to the URL. Why does HN use a different [and seemingly less user-friendly] approach?

5 comments

[ 2.8 ms ] story [ 18.9 ms ] thread
Because HN is just the webmaster's hobby and has a few weird hacks like that. Although I'm not actually sure it's a session ID we're looking at in the URL.
it has to do with pagination of database results.

traditionally people used links like ?start=10, however if new items were added in between the time you loaded the page and the time you clicked the link you would see them on the second page if the result set were sorted by newest first DESC

so then ppl used things like ?afterID=10thID, however that doesnt really work with a site with a voting sort, that item will move around from first place to last place on the page and you could get a whole new batch.

hn uses some system, possibley the afterID system, but it knows that after N seconds or N changse to the table the list is no longer valid.

So, not to risk showing me a link again, they prefer to show me nothing at all? That's a pretty awful tradeoff.
It's not about showing you the link or not, it's the implementation leaking out. A bunch of different user actions generate new fnids (one place you see them is in the 'more' urls) and there is only space set aside on the server for some limited number of them.
^^ What s/he said.

I appreciate that the karma system and voting introduces a lot more complexity behind the scenes with regard to how the top stories are ordered than the simple "newest" stuff on top approach of most news or blog sites. But I don't see why that is allowed to 'break' the display. Irrespective of how you select your records from the database, it's fairly basic practice to paginate the results with some kind of begin=1&end=50 URL appending.

Also the 'expired link' page doesn't even display a link back to the homepage. So you have to either use your browser's back button [unless that link has also now expired], or manually edit the address bar URL, to get some content loading again.

My original question was of the type "Is this really badly designed, or am I missing something really clever?". I think I have the answer now.