Ask HN/PG : Why are comments ordered like this?
See http://news.ycombinator.com/item?id=1162965
pg's comment, with just 17 points, is placed above brh's comment, which has 110 points. Both the comments are from 262 days ago.
Why is this so? Looking at the arc 3.1 source, I'm not sure why that's the case. The real work here is done by * frontpage-rank* . It's implemented as follows: The first few lines here won't change too much here for either comment. Obviously, the 110 point comment will have a higher base score than the 17 point comment. They're about the same age, so (expt (/ (+ (item-age s) timebase* ) 60) gravity) will be about the same for each of them. So the division will come up with a number that's a few times higher for brh's comment. The interesting part is the multiplication here. I don't think either would be considered a story, so neither is being multiplied by .5; neither has a blank url, so they're not getting hit by nourl-factor. It comes down to the final part, whether one is considered "lightweight", and what the contro-factor* of each is. It takes into account the number of children of the comment (the visible-family call). It shouldn't make a difference, though -- neither of the posts has more than 20 children, so contro-factor for both should be 1. I think I'm missing something, as what I've said wouldn't explain the ordering. Notably, though, it doesn't take into either account karma or average karma of the poster to determine rank. Edit: as ChaosMachine pointed out, it does take into account users' average karma: http://news.ycombinator.com/item?id=1923716 . Ey pointed out that pg's post is here: http://news.ycombinator.com/item?id=1398764 HN uses a modified algorithm to calculate the ranking. PG posted it on a story somewhere, but I can't seem to find it right now. It takes the user's karma score into account in the ranking. I want to point out that I have never looked at arc the language before, and yet the snippet above is very easy to quickly understand. Interestingly, the author of the 110 point comment has no submissions and only one comment - that one. That reminds me so much of the article about the guy who fluked the highest ever recorded Scrabble score. Oddly enough, I THINK (I'm not looking it up, and if I'm wrong, let me believe the lie) the first word he dropped in that game was 110 points as well. Here's the article: http://www.slate.com/id/2152255/ Fun stuff. Made me smile. Average comment karma of the poster plays a significant role in determining comment order. Yuck. I hope it's a rolling average (i.e. the average from the last 30 days). My account is 1368 days old! How the heck am I supposed to change my average in any significant way? The average is calculated by taking your most recent 50 comments, dropping the first five, dropping the max, and averaging the rest. Yours is currently 7.14 (it's in your profile), a very high average. For comparison, of the 100 people on the leaderboard, there are only nine with a higher average. Slightly off topic, but do you have any idea how often the average is recalculated? I only ask because I've noticed that my average hasn't changed since it appeared in the top bar, yet I've doubled my total karma in the last two weeks. Based on the formula you just gave, my average should be 3.27, but it still shows 2.55. I realize it's a bit of a meaningless metric, but it's something I've been idly pondering for a few days. A search at searchyc.com turned up: "There's a background process that runs every 45 seconds and picks a random loaded user to update the average of. Empirically, not more than every couple days, at best." I must be really unlucky, mine has been the same for a few weeks. mine too ah, that explains why a few days ago mine dropped from 8.x to 5.07 overnight. I just assumed the algorithm had been tweaked. I can't find anything in the arc source to support that. Can you point me to something? Ah, good. Arc 3.1 was released sometime before 2009-08-04, since those are the timestamps of my unpacked .jar file. The post you linked is about six months old. Maybe I wasn't as confused as I thought I was. Possibly still due to the time decay function. I don't know exactly when each comment was created, but pg's comment may have been more recent (within 24 hours). I haven't looked at the inner workings, but I imagine that upvotes might also be weighted more for how recent they are. Example: pg's comment may have received 17 upvotes within a minute of posting, and his post was 4 hours after brh's, and brh's upvotes happened slower, or before pg's comment. This is all speculation. Maybe someone who has looked at the code could confirm or debunk this. I not certain, I am under the belief that the function that is applied to the comments pages is very closely related to the function that is applied to the main page. I.e. a bit of time decay, overall karma activity (Karma score + comment karma score), number of sub threads, etc. Link for easy clicking : http://news.ycombinator.com/item?id=1162965 The karma points are probably weighted by user, so that users with higher karma carry more weight per point. Note that pg can do whatever he wants in the REPL. I haven't noticed any thread ordering tomfoolery before, but he's definitely hidden posts from the index pages before without [dead]-ing them. And comments were occasionally altered in the early days. Is it because pg's comment has a more developed (and karmaful) subthread? sum(pg's thread) = 80 points sum(brh's thread) = 130 points More comments on pg's thread. As an experiment; let's upvote chaosmachines comment to 5 add 1 comment, leave mine get mine to 3 & add 3 comments. First comment
realscore subtracts any votes that are noted as "sockvotes" from the item's raw score. (def frontpage-rank (s (o scorefn realscore) (o gravity gravity* ))
(* (/ (let base (- (scorefn s) 1)
(if (> base 0) (expt base .8) base))
(expt (/ (+ (item-age s) timebase* ) 60) gravity))
(if (no (in s!type 'story 'poll)) .5
(blank s!url) nourl-factor*
(lightweight s) (min lightweight-factor*
(contro-factor s))
(contro-factor s))))