Всем привет!
Вернувшись вчера с отдыха (да-да несколько дней плотной работы над Codeforces я называю именно так), я с увлечением прочитал посты, комментарии и снова посты, посвященные произошедшему инциденту. Я очень рад, что это происшествие не оставило равнодушным сообщество и нашлись люди, готовые конструктивно обсуждать произошедшее и предлагать свои варианты исправления. Отмечу, что в самом деле, текущий способ учета вклада оставляет желать лучшего. В свое время (ровно год назад!) он был написан за короткое время и имел своей целью с одной стороны подсчет вклада некоторым простым образом (для того чтобы "было" и накопления статистики), а с другой стороны, от него требовалась расширяемость - то есть такой способ организации хранения, при котором позже можно изменить формулы, принципы подсчета и пересчитать исторические данные.
В настоящий момент, когда сообщество выросло и немного окрепло вклад стали видны его слабые места и проблемы. Значит, самое время исправить ситуацию.
Поразмыслив над ситуацией, почитав мнения сообщества, я думаю, что разумно будет поступить следующим образом.
- Вклад, как явление, надо оставить, но модифицировать способы его подсчета.
- Делать каких-то больших вложений в усложнение системы мне не хочется - есть большое количество других направлений, которые более ценны и востребованы.
- Не хочется делать систему излишне управляемой некоторой диктаторской волей и т.п. Я против введения модераторов, способный решать все и вся. С другой стороны предоставлять повышенные права к управлению сообществом авторитетным пользователям - логичный и правильный шаг.
- С мнением natalia "Все члены сообщества Codeforces важны ему и должны иметь равные права при голосовании." я не согласен. Я за то, чтобы мнение профессионалов в профессиональном сообществе ценились/учитывались больше. Сообщество у нас профессиональное. Я считаю, что на симпозиуме врачей те, кто добился больших успехов на профессиональном поприще, кто более опытен, имели больший вес, чтобы к их мнению прислушивались больше. Аналогично и здесь. Если новичок высказывает правильные, логичные и справедливые мнения, то те же авторитеты поставят ему плюсы, что поднимет авторитет первого. Авторитет надо заслуживать некоторое время и прикладывать к этому определенные усилия. Другой момент, что вес голоса авторитета не должен быть сверхбольшим (некоторые цифры идут ниже по тексту).
- Давайте перейдем к предполагаемым принципам работы.
- Ограничить число голосований в сутки. Разделять голосования за посты и комментарии. Люди, имеющие серый рейтинг или не участвующие в контестах голосовать не могут (читайте выше про профессиональность сообщества). Далее ограничения растут в зависимости от авторитета (т.е. зависят от вклада и рейтинга). Можно сделать как-то так (квоты на сутки):
Положение по вкладу Голоса Добавка к авторитету В top10 3 за топик, 9 за комментарии 3 В top50 2 за топик, 6 за комментарии 2 Остальные 1 за топик, 3 за комментарии 1 Положение по рейтингу Голоса Добавка к авторитету Красный 3 за топик, 9 за комментарии 3 Желтый 2 за топик, 6 за комментарии 2 Синий, зеленый 1 за топик, 3 за комментарии 1 Серый, не-участник контестов или не участвовал слишком долго (четыре месяца?) не голосует 0 - Не более половины дневной квоты (считать отдельно по топикам/комментариям) можно отдавать одному автору.
- Не изменять рейтинг автора на основании оценок его комментария или топика, если за них слишком мало голосовали. Например, надо более одной оценки за комментарий, более трех за топик.
- Сделать у топиков параметр соответствия тематике сайта (реклама/бред, явный оффтопик, просто топик, разбор/учебный материал/умный анализ работы Codeforces/отчет о контесте/тематическое другое). Дать возможность админу или авторитетам устанавливать этот параметр. Численно этот параметр может быть (0, 1, 2, 3).
- Считать авторитет автора как сумму по третьим столбцам в табличках выше и учитывать голоса с такими весами.
- Считать вклад автора как сумму оценок по его комментариям (учитывать веса) + утроенных оценок по топикам (учитывать веса). Во втором слагаемом надо учитывать как-то параметр соответствия тематике. Например, умножать сумму по топику на этот параметр (если она положительна).
- Отображать вклад участника как некоторую функцию от накопленной сумму (конечно, монотонную). Функция должна сначала достаточно быстро расти, потом медленней. Возможно, квадратный корень подойдет.
- Ограничить число голосований в сутки. Разделять голосования за посты и комментарии. Люди, имеющие серый рейтинг или не участвующие в контестах голосовать не могут (читайте выше про профессиональность сообщества). Далее ограничения растут в зависимости от авторитета (т.е. зависят от вклада и рейтинга). Можно сделать как-то так (квоты на сутки):
Я думаю, что эти изменения значительно усложнят жизнь тем, кто хочет вывести кого-то на верх вклада нечистыми способами.
Спасибо за внимание, жду комментариев.
MikeMirzayanov