Well, it doesn't update THAT often, so it's not like it's constantly moving :) But that's also the reason why I didn't make realtime conversations... It's too hard to make it not annoying.
Would be interesting if you could post the tech details about how you implemented it.
I've been experimenting with websockets in Clojure, Ruby and Node and so far I have found that in practice it's harder to do than the simple tutorials would have make it seem. For example, I realized that due to the same origin policy, the client and server involved have to run on the same ports (not just same machine) which makes it seem that the same server has to serve them.
> For example, I realized that due to the same origin policy, the client and server involved have to run on the same ports (not just same machine) which makes it seem that the same server has to serve them.
I just significantly improved caching to further reduce the necessity of hitting Hacker News. This should fix a lot of performance issues as well as blank pages.
As for duplicates, I have tried to make that much less likely by putting the status closer to the update query. There are lot of hits per second, which causes that. (Queries take around 0.005s to perform; if 2 hits within that time period, then it could update the cache twice (or more)).
True, but for many people, like me, we're refreshing HN every few minutes anyway. Why not have the 2 most common pages (for me anyway) on 1 screen powered by ajax to load all of the data. I also cache all of the data on my server in a database, so it actually lessens the load on HN's servers. It turns hundreds of requests into a handful. I also have everything tuned for automatic performance scaling, so if HN responds too slowly, I'll request pages less frequently, or if my server starts getting loaded, I'll increase the interval of the ajax requests.
It's getting quite a bit of users, and the average session length is 14 minutes. Quite interesting :) I love it. It's sort of like Gmail, minus the notifications through my phone (which is a good thing, because it would be way too spammy). I can rest assured that when I visit that tab, I see the latest stuff. No refreshing or checking both pages. I have them both, always up to date, and at a glance.
Apache handles dynamic content better than nginx in most cases. Nginx is usually only desirable when memory is a constraint or for serving static content. I've optimized apache, and it's handling the traffic quite well now with average response times of 20-60ms (including generation and network latency), which is quite nice :)