Poll: Unknown or expired link on YC
I'm seeing this a lot more often these days, even when just pressing "More" at the bottom of the main page without being logged in.
It makes me think the current continuation-based session scheme isn't enough to guarantee a good experience.
What do you folks think?
36 comments
[ 6.0 ms ] story [ 93.0 ms ] threadI don't see any fundamental reason why continuations have to expire so fast.
Making continuations serializable may cost its implementation, so whether it scales well for yc.news is anothoer question. I don't know the answer for it.
Having my tabs open last for a couple of days instead of 30 minutes would make the site more pleasant for me.
If PHP can do it...
Are there elegant solutions to fix this? Could someone link the explanation to how the continuation sessions work, please?
The general idea is described here: http://dresese.thehyatts.net/archives/000253.html
pg's original patent on this scheme: http://www.freepatentsonline.com/6205469.html
A possible elegant solution is suggested in the paper: store the continuation on the client. I don't know what problems this presents in practice.
This isn't an issue with POST, but then you run into the normal POST issues with refreshability, bookmarkability, and portable URLs.
update: Including this time.
Maybe a heretical opinion, but why use continuations here at all? Their drawbacks aren't worth it in a simple app like news.yc. Use URL parameters, like /news?skip=30 for paging. Make the "reply" link lead to /item?id=12345 , it already has a reply box.
In my own apps I give a lot of thought to URL design. And yeah, don't explain, I do know about closure/cont-based web frameworks - used to be a contributor to Borges back in the day, then wrote my own one ;-)
(Why is this so?)
That said, I expect that continuations store more data than a hand-tuned serialization and thus need to be expired earlier. I'd be curious to know how much more space is used storing continuations versus the bare minimum.
The technique's flawed, trivial to exploit, and should be dumped.