http://qs1969.pair.com?node_id=352655


in reply to More useful "best" and "worst" nodes display

I've spent a lot of time considering various ways of implimenting a "most poopular" list for various systems that involve user rankings of content. In my opinion there are two good solutions, one of which is much better then the other -- but much more complex. Both work equally well for votes with boolean value (ie: 1), perlmonks style +/- votes (a value of -1 or +1), or scale votes (ie: a value of 1..10).

Unfortunately both require recalculating the score of every piece of content on a regular basis (even if it has had no new votes).

The first method, with the linear weighting function I mentioned, leans towards promoting either recent items or older items (depending on the value of $FACTOR). The second however can be used to lean towards items which continue to earn votes long after they were orriginally written.

In both cases, changing the weight function to something that is not so linear can allow you to tune it to perfection -- including adding bias at certain dates when you know there were radical shifts in votig rules (ie: on this date, the number of votes per person was significantly increased, so add more bias to votes cast before that date)