Hacker News new | ask | show | jobs
by grinich 4420 days ago
The reason this happens is that the link is actually a reference to a live closure[1] held in memory on the server. Notice how the URL has `fnid=...`? Well fnid is short for function ID.

There isn't an obvious way to fix this without dramatically changing the way pages are rendered. The reason the link expires is probably that the garbage collector picks them up after a timeout interval. I remember this was something on the order of 10-30 min.

Honestly though, HN is a free service built with an experimental programming language buy a guy who worked full-time as a seed-stage investor. That's a miracle in itself. You're not going to "shame" anyone into fixing it.

[1] http://en.wikipedia.org/wiki/Closure_(computer_programming)

5 comments

Here is the source code of a comment form: https://gist.github.com/Dorian/21c78ea7143ba0a50c3a

We can see that it's an hidden field. So maybe an extension can re-fetch the page and updates the hidden field every 5-10 minutes, that would fix it for the HN users complaining about it.

> HN is a free service

This is just a cop-out. HN gets massive amounts of traffic and obvious problems like this one should be fixed.

When I say it's "free" I mean it in a larger sense. HN has no advertisements, and up until fairly recently, no full-time developers. There wasn't much incentive to fix these bugs in the product, even though they seem quite glaring to users.

PG spent _lots_ of time creating tools to better moderate content and block spammers, which are features that users don't see but actually make a huge difference.

When you're building a house, painting the walls is the last thing you do.

Just making a redirect to the latest front page, or nth page of the latest rendering closure would already much better.

Is there any obvious reason why this isn't done?

Having a parameter for how many pages to skip (and purposely not care about changes between clicks) would not be dramatic at all.
There isn't an obvious way to fix this without dramatically changing the way pages are rendered.

Actually, it's easy to fix, because it's easy to turn dynamic urls ("fnid" urls) into regular URLs (something like "/submitreply?id=xxx").

They just haven't gotten around to it yet, which is fine.

I actually just grabbed a copy of the HN source a few days ago in pursuit of a potential side project I'm screwing around with on behalf of a community I frequent. I'm half tempted to dig into it and see what I can come up with in terms of a fix, but before doing so I'd want to know where I could submit a pull request or send a patch, and I'd want to know that such a pull request or patch would receive serious consideration from those responsible for HN, rather than a "thanks, we'll check it out never" sort of response.

(It's one thing if I end up with something that doesn't work in a test case I failed to consider beforehand, or doesn't fit in well with whatever plans exist on the part of HN's current maintainers; that's something I can understand, and I'm not about to get my nose out of joint over it. What would raise my ire would be to put in the effort and see it go zinging off into the ether, never to be heard from again.)

Another comment linked to some comments from dang:

"It's on our list. There are a lot of things on the list; we don't know yet when we'll get to it."

https://news.ycombinator.com/item?id=7651770

So I imagine that if you submitted a pull request, they would at least look at it when trying to fix it.