Favors and factions will come later. Right now I'm just starting with the basics and solidifying a good foundation to work with - then we'll get to other variables if they're desired.

As far as favors go I see little actual functionality or purpose within a forum. The best application I can see is when called on for a favor you can respond to it by posting. This activity since it costs reputation will likely lead to earning something between the two like awards or whatnot. It's kind of hard to bring information into the forums w/o doing something very extensive. Cooperation based awards seem to be one of the best options possible. I am open to other ideas though.

Yeah, I'm just not seeing much need for favors on a forum. I suppose if we're worried about reputation build-up, there could be some decay over time or something.

—

"It's a poor sort of memory that only works backwards." --The White Queen, Through The Looking-Glass

That's a possibility I have considered, but with being able to vote up and down posts I'm not sure that expiration of points would be necessary. Simply being if you don't like a post or it's not helpful or you are just being competitive in reputation scores - vote against a post.

Pfft come on! Let it happen organically, putting rules and regs on it only makes it less intuitive and a more artificial. The rep and favor process will come on it's own as people will want to help others they trust make things happen. It's already happened behind the scenes don't worry.

No I get that the problem is it's coding. Those are rules and regulations. The program has to be told what to do. This is primarily why I'm waiting to work on things such as favors and factions later - because if they are to be versatile it's going to require A LOT of coding, and in the meantime it gives opportunity to talk things out and give people a chance to come up with ideas.

One thing I would like to see in a rep system is that it be only positive, as negative rep tends to make forums hostile to new members, and that it have an option of adding a message.

I would also like to see rep be listed on a distribution scale, so that say 100rep is average and every 15 points represents a standard deviation up or down.

that way new members aren't intimidated, or bullied, by members with 4000 rep points.

—

The Eclipse Phase Character sheet is downloadable here:

Not sure what you mean by standard deviations down. I presume everyone would start at 0 with a cap of about 100, so this is unlikely to be a bell curve.

However, I wouldn't mind if it got harder the more points you got. For instance, if every new point is divided by the total number of previous points (so it takes 2 bumps to get to 2, 4 to get to 3, 7 to get to 4 and so on, perhaps shifted slightly to make it a little easier). That means your guy with 4000 bumps has a measily 100, which doesn't seem so big when you're already at 10.

My interpretation of the proposed SD system was that the system keep track of the raw number of points behind the scenes, but adjusts them before showing them to the user. The number you'd actually see would be something like 100 + 15 * (x - μ) / σ, where μ and σ are the mean and standard deviations respectively.

Assuming an exponential distribution, where there are lot of lower-key users, and a few people with a lot of rep, normalized scores go from 84.83 (from a raw rep of 5), to 153 (raw rep of 2114). The mean is 470, and the SD 460. So many scores are clustered around 100 that it's almost useless. I'm wondering if a percentile score would be better. In this case, the median raw score is about 330, which would correspond to a normalized rep of 50. Normalized 90 would be 1252, and normalized 10 is raw 57.

All of this assumes that my use of an exponential distribution, and my choice of lambda were reasonable. Using other distributions with similar shapes yielded similar results, though.

I really think adding Rep to the forums shouldn't be that complicated. Just a simple Up-Rep and Down-Rep buttons/links and then a Rep Score Display. I think only one Rep is needed, but if the webmaster wants to track all the different Reps (and people can modify a specific type of Rep) then that would be cool as well. I don't think there should be any limits to how much you Up-Rep or Down-Rep someone.

—

Jovian Motto:
Your mind is original. Preserve it.
Your body is a temple. Maintain it.
Immortality is an illusion. Forget it.

I really think adding Rep to the forums shouldn't be that complicated. Just a simple Up-Rep and Down-Rep buttons/links and then a Rep Score Display. I think only one Rep is needed, but if the webmaster wants to track all the different Reps (and people can modify a specific type of Rep) then that would be cool as well. I don't think there should be any limits to how much you Up-Rep or Down-Rep someone.

For what it's worth, I second this idea. It makes the process more organic without making it overly-complex or intimidating to newcomers (like myself), as well as just encouraging forum participation overall. If it turns out to be insufficient, it's not like it can't just be changed later.

Rep is harder than you may think. I recently implemented a system for rating product reviews. The best system is using the Lower bound of Wilson score confidence interval for a Bernoulli parameter. You may have to write your own pnormaldist function. Shouldn't be too hard though. I did this in java by following a php example I believe (can't remember where). This method generates numbers between 0 and 1 so it should be really easy to adapt to a 0 to 100 system.

Have it so each post can have up/down votes. Generate scores on the posts according to the above method. The user's total rep is then based on some sort of weighted average of all their posts or the Wilson score of all the up/down votes of all their content combined. You can then experiment with other factors such as reducing rep if you detect the user trying to abuse down votes or something similar.

As fun as multiple rep networks would be, I don't think it would be practical. Different Rep networks represent different communities. This forum is one community, so it doesn't really make sense to split up rep unless you do it by sub-forum or something. I guess each member could choose a single faction and the rep would show up as that faction, even though it's the same rep system.

Rep is harder than you may think. I recently implemented a system for rating product reviews. The best system is using the Lower bound of Wilson score confidence interval for a Bernoulli parameter. You may have to write your own pnormaldist function. Shouldn't be too hard though. I did this in java by following a php example I believe (can't remember where). This method generates numbers between 0 and 1 so it should be really easy to adapt to a 0 to 100 system.

Your statistics-fu is strong, and I think only in cartoons. Can you dumb it down and 'splain that thar h3at 'r w4ve equation and why it is preferable to a postmodern p-sample test or something?

bblonski wrote:

As fun as multiple rep networks would be, I don't think it would be practical. Different Rep networks represent different communities. This forum is one community, so it doesn't really make sense to split up rep unless you do it by sub-forum or something. I guess each member could choose a single faction and the rep would show up as that faction, even though it's the same rep system.

I agree, and I think we ended up using different rep networks as a weight vector to put another dimension of information in with the rep score. Do you trust someone with a 90+ r-rep score as a compatriot with a similar score and a 20+ g-rep to go with it? Maybe you do, but you'll want to change your password after they come to visit anyway, just in case.

Your statistics-fu is strong, and I think only in cartoons. Can you dumb it down and 'splain that thar h3at 'r w4ve equation and why it is preferable to a postmodern p-sample test or something?

Honestly my statistics-fu is pretty mediocre, I'm just good at steal... (cough) reusing what other people have done. The math itself is over my head, but basically, the problem is if someone gets 1 positive review and someone else gets 30 positive reviews and 1 negative review, they guy with only one positive review will have a higher average and better rep. Obviously this is wrong because we can't be very confident with only 1 vote. We also can't use a simple sum because someone with 200 positive and 100 negative votes will beat someone with 99 positive and 0 negative votes which also seems wrong. The algorithm presented incorporates "confidence" as a factor in determining the final score. You need both a high number of votes and a high average to get a high score.

Ok, here we have some Ruby code. I here it is a good language with many benefits. It seems to be a dirty functional language similar to Python?

require 'statistics2'

def ci_lower_bound(pos, n, power)
if n == 0
return 0
end
z = Statistics2.pnormaldist(1-power/2)
phat = 1.0*pos/n
(phat + z*z/(2*n) - z * Math.sqrt((phat*(1-phat)+z*z/(4*n))/n))/(1+z*z/n)
end

Anyone have the statistics-fu to translate this from Ruby->Derp?

This chunk of code should be relatively easy to port to any language really. The only problem is the Statistics2.pnormaldist function since that's a Ruby specific library. You can write your own function though. Here, I found the PHP conversion that I based my Java conversion on. http://www.derivante.com/2009/09/01/php-content-rating-confidence/

PHP code is good, understanding why the code engine does what it does is better. What does the Statistics2.pnormaldist library do? I'm guessing it gives a normal distribution, but since it starts with "p", that makes it seem likely that it is doing something else too.

z_alpha is the inverse to the cumulative distribution function for a normal distribution with a mean of 0 and a variance of 1. That is, if cdf( x ) = alpha, then z_alpha = x. Since the curve is centered around 0, we also have that if z_alpha = x, then z_(1 - alpha) = -x. It's the value x such that, if you pick a value from the normal distribution, alpha% of the time it will be less than x.

A couple of concrete examples: z_0.5 = 0, and z_0.975 ~= 1.96. That is, half the time a value picked from the distribution will be less than 0, and 97.5% of the time it will be less than 1.96.

I believe that the CDF for a normal distribution has no closed form, and I suspect that z_alpha doesn't have one either. Fortunately, once you pick a confidence value, you can just calculate/approximate the constants you need once and bake them into the function used to calculate the Wilson score.

My stats-fu isn't terribly strong either, but this PDF shows how the Wald and Wilson estimates are computed, and discusses their relatively strengths and weaknesses. It's less scary than a glance at the formula might indicate.

Favors and factions will come later. Right now I'm just starting with the basics and solidifying a good foundation to work with - then we'll get to other variables if they're desired.

Nathan W.

As far as favors go I see little actual functionality or purpose within a forum. The best application I can see is when called on for a favor you can respond to it by posting. This activity since it costs reputation will likely lead to earning something between the two like awards or whatnot. It's kind of hard to bring information into the forums w/o doing something very extensive. Cooperation based awards seem to be one of the best options possible. I am open to other ideas though.

Nathan W.

Yeah, I'm just not seeing much need for favors on a forum. I suppose if we're worried about reputation build-up, there could be some decay over time or something.

"It's a poor sort of memory that only works backwards." --The White Queen, Through The Looking-Glass

That's a possibility I have considered, but with being able to vote up and down posts I'm not sure that expiration of points would be necessary. Simply being if you don't like a post or it's not helpful or you are just being competitive in reputation scores - vote against a post.

Nathan W.

Pfft come on! Let it happen organically, putting rules and regs on it only makes it less intuitive and a more artificial. The rep and favor process will come on it's own as people will want to help others they trust make things happen. It's already happened behind the scenes don't worry.

[img]http://boxall.no-ip.org/img/A_Rep.jpg[/img] 2 [img]http://boxall.no-ip.org/img/R_Rep.jpg[/img] 7 [img]http://boxall.no-ip.org/img/C_Rep.jpg[/img] 2

[img]http://i.imgur.com/qtBZ9.jpg[/img]

[img]http://i.imgur.com/AT25J.jpg[/img]

No I get that the problem is it's coding. Those are rules and regulations. The program has to be told what to do. This is primarily why I'm waiting to work on things such as favors and factions later - because if they are to be versatile it's going to require A LOT of coding, and in the meantime it gives opportunity to talk things out and give people a chance to come up with ideas.

Nathan W.

I look forward to the programmatic implementation of this system. Superb idea!

Trentin C Bergeron (TreChriron)Bard, Dreamer, Computer Nerd, & RPG Enthusiast

October Northwest

@-rep: 0 | c-rep 0 | e-rep

One thing I would like to see in a rep system is that it be only positive, as negative rep tends to make forums hostile to new members, and that it have an option of adding a message.

I would also like to see rep be listed on a distribution scale, so that say 100rep is average and every 15 points represents a standard deviation up or down.

that way new members aren't intimidated, or bullied, by members with 4000 rep points.

The Eclipse Phase Character sheet is downloadable here:

Get it here!

Not sure what you mean by standard deviations down. I presume everyone would start at 0 with a cap of about 100, so this is unlikely to be a bell curve.

However, I wouldn't mind if it got harder the more points you got. For instance, if every new point is divided by the total number of previous points (so it takes 2 bumps to get to 2, 4 to get to 3, 7 to get to 4 and so on, perhaps shifted slightly to make it a little easier). That means your guy with 4000 bumps has a measily 100, which doesn't seem so big when you're already at 10.

Has anyone seen how they incorporate Rep into the new Shadowrun Forums. That may be an option.

Jovian Motto:

Your mind is original. Preserve it.

Your body is a temple. Maintain it.

Immortality is an illusion. Forget it.

My interpretation of the proposed SD system was that the system keep track of the raw number of points behind the scenes, but adjusts them before showing them to the user. The number you'd actually see would be something like 100 + 15 * (x - μ) / σ, where μ and σ are the mean and standard deviations respectively.

Assuming an exponential distribution, where there are lot of lower-key users, and a few people with a lot of rep, normalized scores go from 84.83 (from a raw rep of 5), to 153 (raw rep of 2114). The mean is 470, and the SD 460. So many scores are clustered around 100 that it's almost useless. I'm wondering if a percentile score would be better. In this case, the median raw score is about 330, which would correspond to a normalized rep of 50. Normalized 90 would be 1252, and normalized 10 is raw 57.

All of this assumes that my use of an exponential distribution, and my choice of lambda were reasonable. Using other distributions with similar shapes yielded similar results, though.

nezumi.hebereke wrote:What do they have to do with this?

=)

I really think adding Rep to the forums shouldn't be that complicated. Just a simple Up-Rep and Down-Rep buttons/links and then a Rep Score Display. I think only one Rep is needed, but if the webmaster wants to track all the different Reps (and people can modify a specific type of Rep) then that would be cool as well. I don't think there should be any limits to how much you Up-Rep or Down-Rep someone.

Jovian Motto:

Your mind is original. Preserve it.

Your body is a temple. Maintain it.

Immortality is an illusion. Forget it.

TBRMInsanity wrote:For what it's worth, I second this idea. It makes the process more organic without making it overly-complex or intimidating to newcomers (like myself), as well as just encouraging forum participation overall. If it turns out to be insufficient, it's not like it can't just be changed later.

And I third it :) I think it's more valuable than Post Count, and it drives people to provide GOOD content, not just empty posts.

If you wanted to 'cap' rep at 100 you can do that too. Rep = Addrep * 100 / Rep - 1. Make Rep float (and starts at 1). Addrep (by default) is 1.

nezumi.hebereke wrote:I really don't think there needs to be a cap. If you like a post your Up Rep it. If you don't like a post you Down Rep it. KISS.

Jovian Motto:

Your mind is original. Preserve it.

Your body is a temple. Maintain it.

Immortality is an illusion. Forget it.

http://www.evanmiller.org/how-not-to-sort-by-average-rating.html

Rep is harder than you may think. I recently implemented a system for rating product reviews. The best system is using the Lower bound of Wilson score confidence interval for a Bernoulli parameter. You may have to write your own pnormaldist function. Shouldn't be too hard though. I did this in java by following a php example I believe (can't remember where). This method generates numbers between 0 and 1 so it should be really easy to adapt to a 0 to 100 system.

Have it so each post can have up/down votes. Generate scores on the posts according to the above method. The user's total rep is then based on some sort of weighted average of all their posts or the Wilson score of all the up/down votes of all their content combined. You can then experiment with other factors such as reducing rep if you detect the user trying to abuse down votes or something similar.

As fun as multiple rep networks would be, I don't think it would be practical. Different Rep networks represent different communities. This forum is one community, so it doesn't really make sense to split up rep unless you do it by sub-forum or something. I guess each member could choose a single faction and the rep would show up as that faction, even though it's the same rep system.

Edit:

Here's a drupal resource: http://drupal.org/node/1127778

`root@rep engine`

bblonski wrote:Your statistics-fu is strong, and I think only in cartoons. Can you dumb it down and 'splain that thar h3at 'r w4ve equation and why it is preferable to a postmodern p-sample test or something?

bblonski wrote:I agree, and I think we ended up using different rep networks as a weight vector to put another dimension of information in with the rep score. Do you trust someone with a 90+ r-rep score as a compatriot with a similar score and a 20+ g-rep to go with it? Maybe you do, but you'll want to change your password after they come to visit anyway, just in case.

[

`@-rep +1`

|`c-rep +1`

|`g-rep +1`

|`r-rep +1`

]root wrote:Honestly my statistics-fu is pretty mediocre, I'm just good at steal... (cough) reusing what other people have done. The math itself is over my head, but basically, the problem is if someone gets 1 positive review and someone else gets 30 positive reviews and 1 negative review, they guy with only one positive review will have a higher average and better rep. Obviously this is wrong because we can't be very confident with only 1 vote. We also can't use a simple sum because someone with 200 positive and 100 negative votes will beat someone with 99 positive and 0 negative votes which also seems wrong. The algorithm presented incorporates "confidence" as a factor in determining the final score. You need both a high number of votes and a high average to get a high score.

How does one get one of the Faction posters?

Well if you expect me to come up with something this quickly you'll need to give me an idea.

`root@rep and factions`

Jame Rowe wrote:http://www.eclipsephase.com/userbars has the forum tags. Don't forget to tip.

Ok, here we have some Ruby code. I here it is a good language with many benefits. It seems to be a dirty functional language similar to Python?

`require 'statistics2'`

def ci_lower_bound(pos, n, power)

if n == 0

return 0

end

z = Statistics2.pnormaldist(1-power/2)

phat = 1.0*pos/n

(phat + z*z/(2*n) - z * Math.sqrt((phat*(1-phat)+z*z/(4*n))/n))/(1+z*z/n)

end

Anyone have the statistics-fu to translate this from Ruby->Derp?

[

`@-rep +1`

|`c-rep +1`

|`g-rep +1`

|`r-rep +1`

]This chunk of code should be relatively easy to port to any language really. The only problem is the Statistics2.pnormaldist function since that's a Ruby specific library. You can write your own function though. Here, I found the PHP conversion that I based my Java conversion on.

http://www.derivante.com/2009/09/01/php-content-rating-confidence/

`root@EP forum rep`

PHP code is good, understanding why the code engine does what it does is better. What does the Statistics2.pnormaldist library do? I'm guessing it gives a normal distribution, but since it starts with "p", that makes it seem likely that it is doing something else too.

[

`@-rep +1`

|`c-rep +1`

|`g-rep +1`

|`r-rep +1`

]The ruby Statistics2 documentation states that it find the P-value of a normal distribution.

z_alpha is the inverse to the cumulative distribution function for a normal distribution with a mean of 0 and a variance of 1. That is, if cdf( x ) = alpha, then z_alpha = x. Since the curve is centered around 0, we also have that if z_alpha = x, then z_(1 - alpha) = -x. It's the value x such that, if you pick a value from the normal distribution, alpha% of the time it will be less than x.

A couple of concrete examples: z_0.5 = 0, and z_0.975 ~= 1.96. That is, half the time a value picked from the distribution will be less than 0, and 97.5% of the time it will be less than 1.96.

I believe that the CDF for a normal distribution has no closed form, and I suspect that z_alpha doesn't have one either. Fortunately, once you pick a confidence value, you can just calculate/approximate the constants you need once and bake them into the function used to calculate the Wilson score.

My stats-fu isn't terribly strong either, but this PDF shows how the Wald and Wilson estimates are computed, and discusses their relatively strengths and weaknesses. It's less scary than a glance at the formula might indicate.

## Pages