
Assorted improvements to News.YC - pg
http://ycombinator.com/newsnews.html?2jul08
======
kylec
_Another is to gray down comments with negative scores to near invisibility,
in the hope that this will cause downvotes to tail off._

I'm not sure how long this has been going on but it's really annoying. I end
up having to highlight the text to read it. The methods of hiding unpopular
comments that Reddit and Digg use are much better because they provide the
option to view the comment unobstructed if desired.

~~~
jcl
_I end up having to highlight the text to read it._

Perhaps this is related to the gamma of your monitor? I understand that Macs
use a different gamma (1.8) than PCs (2.2), which would make bright tones
calibrated for a PC less distinguishable on a Mac. I'm using a PC, and I have
yet to see a comment I needed to highlight to read.

~~~
kylec
Perhaps - what about this comment:

<http://news.ycombinator.com/item?id=173351>

Granted I'm on a Macbook, but this is very hard to read for me.

~~~
jcl
Yeah, that's pretty unreadable for me as well. I guess I haven't seen posts
modded down that far; I must be fortunate in my choice of threads.

------
tx
I wonder why Paul cares so much about people being collectively downmodded
under the ground. Some of the stuff I said here scored way below -10 mark and
I didn't care, why would PG?

This is just a little game we're all playing: popularity in high school, karma
points on some Internet board, who knows, maybe someone is selling fake
Facebook friends... Paul, you're taking this too seriously! :-)

Why create a little democracy only to manipulate it slightly to his
understanding of "the right thing to do"? Although I'd love the idea of
printing McCain name nearly invisible on the ballot. That would do the trick.

~~~
pg
News.YC was "manipulated" from the beginning. There have always been customs
about how to behave, and software for enforcing some of them. For example,
there has always been protection against spam and sockpuppets.

The most important thing to me about this site is the community. In any
community you seem to have to have rules to prevent abuses.

------
mattmaroon
"Please don't downvote comments that are only mildly mistaken or disagreeable
to scores as low as -10. That kind of score should only be for spams and
trolls."

Why not just limit it to -5? There's already the flag for spam and trolls.
Just add that to comments as well as posts.

~~~
Alex3917
Alternatively, you could let people downvote as much as they want but cap the
karma hit at -10.

------
jakewolf
So once a non-spam/troll comment has been downvoted, a nonupvote is enough to
signal agreement?

~~~
pg
Once it's been downvoted to what seems a sufficiently low score, yes.

~~~
gojomo
The confusion over this issue springs from the overloading of voting as both
"promote/demote" (community appropriateness) and "agree/disagree" (personal
opinion).

It's easy to understand why a 'demote' should be withheld once the community
goal of deemphasizing a inappropriate comment has been reached.

It's harder to understand why someone should withhold their personal opinion,
simply because they were later to vote. To the extent the net score is an
opinion poll, more votes are more representative, no matter how late they
arrive.

These two sometimes-conflicting senses could be split into two axes of
community feedback, one promote(up)/demote(down), the other agree/disagree.
Agree/disagree would be shown as a different score, or tiny sparkline-like
bars reflecting not just the net value but the separate agree/disagrees
totals. Then people would have an outlet for 'piling on' with personal
opinions without unwanted karmic or order-of-display impact.

This might also serve to highlight some interesting classes of comments: those
respected (upvoted) but generally disagreed-with, or those with high
simultaneous levels of both agreement or disagreement. (Right now there's no
way to tell if a comment scored 1 has no votes, or 20 upvotes and 20
downvotes.)

(My previous comments suggesting the same can be found via
<http://news.ycombinator.com/item?id=214521> .)

~~~
pg
_It's harder to understand why someone should withhold their personal opinion,
simply because they were later to vote._

That's the way things already work in the real world. One is less likely to
complain about something when a lot of other people have already complained
about it. It's considered "beating a dead horse."

~~~
gojomo
If voting is _only_ a 'complaint', sure.

But in a poll or election, there's no general taboo against expressing your
redundant opinion. In fact, it's encouraged, to get a complete or
representative sample.

And especially when a comment provokes strong opinions, but is already well-
expressed, a simple click-vote-with-tally is almost irresistant to people as
an outlet. It's quick, it's easy, it doesn't bloat the thread with vertically-
expensive 'my thoughts exactly' or 'I couldn't disagree more' one-line
replies.

The one downside is that it also affects karma and display position, and thus
is likely to generate resentments and competitions. That's what makes it a bit
unseemly; 'beating a dead horse' or unneighborly 'piling-on'.

Hence the solution: give people a pure agree/disagree vote separate from mod-
up/mod-down.

~~~
pg
Don't be misled by the use of the word "vote." Upvotes are not like an
election or poll. They're really 1-bit comments.

~~~
gojomo
_I_ know that's your intent, but each wave of new users is only going to pick
that up slowly -- if ever.

And it's not just the word 'vote' that's a problem. The UI/functionality
doesn't completely support that intent: they're "comments" that can be erased
when the next person votes the other way. They're reported like a poll -- a
summary number. But downvotes sting more than respectful disagreement, because
they imply transgression.

The coarsening of discussion, the anguish over piling-on, the long threads
about proper voting, the karmic games -- they're all worsened because the
1-bit message 'this comment is _bad_ ' and the 1-bit message 'I disagree' are
forced into a single 1-bit channel.

(Forcing "this comment is good" and "I agree" in the same channel isn't
problematic the same way, because neither sentiment conveys opprobrium and
triggers defensiveness.)

------
adrianwaj
It would be too easy for users to collude and vote each other's comments up
regardless. Maybe algorithms to check that? Also, the 'pile up' effect can be
quite bad too. People should use their discretion.

~~~
pg
There is already software for discovering voting rings.

------
aston
Nice. Any comment on what was changed to keep comments from timing out for a
half hour?

~~~
pg

      (mac timed-arform (lasts f . body)
        (w/uniq (gl gf)
          `(withs (,gl ,lasts ,gf ,f)
             (tag (form method 'post action rfnurl*)
               (fnid-field (if ,gl (timed-fnid ,gl ,gf) (fnid ,gf)))
               ,@body))))

------
rplevy
My understanding of downvoting is that it is meant to tag/reinforce negatively
any behavior that is not in keeping with what is considered the ground rules
or standards of the community. This definition should promote keeping
signal/noise ratio high. The definition of downvoting that says
downvote=disagree seems to be a problem. There is also some grey area, for
example do you downvote claims that are known to be incorrect factually? This
is different from disagreeing on matters of opinion. I would say lay off the
downvote in that case and consider writing a reply to correct the error.

Maybe there should be a small color coded menu that opens for down votes, to
specify the reason for downvoting. That would serve two purposes. 1: it would
be slightly more difficult to downvote and 2: the color coded downvotes could
be used to paint the text, indicating in which way the comment is considered
off the mark. On second thought, painting the text would draw unwanted
attention to it, but use the colors somewhere on the heading maybe?

------
IsaacSchlueter
So, looks like this is the bit where all the users weigh in with their $0.02
about what should have been changed instead? ;)

I've always thought that a karma system where downvotes had a cost would be
pretty good. Ie, perhaps you could only submit as many downvotes as you have
karma yourself, and maybe downvotes would actually reduce your own karma as
well. That would mean that a user would be tempted to only downvote comments
that were really objectionable, and never downvote something that is already
negative (since it would be pointless.) Users who post good comments would be
more "powerful" in their ability to prune.

Or just do away with it altogether. Humans find it easier to criticize than
praise.

------
prakash
_user accounts are now lazily loaded, which has made server restarts more than
twice as fast._

PG: can you please explain more about this? What is lazily loading user
accounts? and, how are your measuring perf?

~~~
apgwoz
Lazily loaded would refer to the fact that it's only loaded when needed. In
other words, when he restarts the server, he doesn't load up any data for the
users. Instead he just creates a reference to the filename that contains all
the user info and creates a data structure to hold all that info in. Then,
when someone attempts to login, he searches through the file and finds the
credentials, and if successful pulls all of the users information into memory.

Before this change, he stored the information for all users in memory, even
the ones who no longer use the site, as soon as the server restarted.

~~~
pg
Almost, but it's not only at login that you need user data.

Basically I changed the code that looks up stuff about users (formerly just a
hash table in functional position) to call a function that loads a user from
disk first if necessary.

~~~
prakash
how about perf? how are your measuring that - # of connections?

~~~
pg
I usually just look at average time for generating the frontpage.

------
icey
I can vote again!

------
mojuba
Doesn't the _flag_ feature make downvoting superfluous and meaningless?

The automatic ranking systems (Google, Flickr, etc) usually only calculate
positive points, or otherwise they simply ban irrelevant/offensive content
manually. You're either good or irrelevant - that's the philosophy and it's
very positive in all respects.

------
tyn
Suggestion: give a max limit of downvotes per user per day/week/month, this
way they will think twice before they "spent" their downvotes.

------
gojomo
Will there be an updated ARC tarball drop with the latest News.YC code?

------
Mapou
I think the voting problem is a serious one. Apparently, only a minority of
readers and posters vote and they seem to have a gang mentality that works
like this: "If I don't like you, I'll vote you down regardless of what you
write." This sucks the big one.

The same problem is happening on every site where voting is allowed. There is
usually a loud, highly emotional and political minority with a lot of time on
their hands that invariably takes over and impose a fascist dictatorship on
the rest of the community. Digg, Slashdot and Wikipedia are cases in point. I
wish there was a way to motivate a greater percentage of readers to take part
in the voting process.

Another problem is that a lot of people receive updates via RSS news readers
and I suspect that most go directly to the link and rarely check the comments
or attempt to vote. YC needs a way to entice people to visit the site and
incorporate the number of times a link is clicked to the formula that computes
the popularity value of the story. Just one man's opinion.

~~~
plinkplonk
"I think the voting problem is a serious one. Apparently, only a minority of
readers and posters vote and they seem to have a gang mentality that works
like this: "If I don't like you, I'll vote you down regardless of what you
write." This sucks the big one."

Maybe fade the _commenter's_ name when a comment is posted and restore it to
full visibility, say 24 (or 48 or 100) hours later? This way you are forced to
focus on the content of the comment and not the commenter.

~~~
nadim
I agree, I posted the feature request here not too long ago:
<http://news.ycombinator.com/item?id=223238>

