- 1
- 2
- 3
- 4
- 5
- 6
foreach(mpql(mpqw("SHOW TABLES WHERE Tables_in_{$conf['db']['name']} LIKE \"{$conf['db']['prefix']}{$arg['modpath']}\_%\"")) as $k=>$v){
$t = implode("_", array_slice(explode("_", $v["Tables_in_{$conf['db']['name']}"]), 2));
if(!array_key_exists($t, (array)$tpl)){
$tpl[ $t ] = mpqn(mpqw("SELECT * FROM {$conf['db']['prefix']}{$arg['modpath']}_{$t}"));
}
}// mpre($tpl);
wvxvw 09.06.2013 18:30 # −6
inkanus-gray 09.06.2013 19:56 # −5
bormand 09.06.2013 20:10 # −10
ql - query list.
А вот почему исполнение запроса называется qw - х.б.з.
А что за CMS такая страшная?
inkanus-gray 09.06.2013 20:15 # −10
bormand 09.06.2013 20:46 # −7
inkanus-gray 09.06.2013 20:20 # −10
qwery же
bormand 09.06.2013 20:46 # −4
Stallman 09.06.2013 21:18 # −10
А вот и mpql() собственной персоной.
http://mpak.su/citation
inkanus-gray 09.06.2013 22:23 # −11
bormand 10.06.2013 05:43 # −8
wvxvw 10.06.2013 08:30 # −6
Кризисы синдрома случаются, когда обнаруживается несоответствие между прокси и результатом, который он должен гарантировать. Например, руки были выпачакны масляной краской, и мытье с мылом не помогло.
К чему я это говорю: "рейтинг" на говнокоде, каким бы примитивным он ни был, это выражение какого-то "коллективного бессознательного", с акцентом на коллективность. Это не говорит ничего о справедливости, только своего рода статистический параметр. Этот самый параметр не характеризует достоверно интересность или полезность сообщения. Попытка форсировать рейтинг в ту или другую сторону, хотя и, скорее всего вызвана другими обстоятельствами, очень во многом похожа на попытку OCD человека удержаться за неработающий прокси. Примерно как религиозный человек, перед лицом опасности, может начать молиться не смотря на то, что у него никогда не было индикации того, что молитвы вообще имеют какое-то значение. Он просто находит утешение в следовании формуляру, безосновательно предполагая положительный эффект.
defecate-plusplus 10.06.2013 09:36 # −7
просто этого рака слишком дохуя сердобольных кормит
перестаньте с ним разговаривать и отвечать на его сраные коменты, школоте самой станет скучно
ну и заодно стоит вычистить его дерьмо, совсем не сложно в базе обнулить эти голоса, а виртуалов забанить
roman-kashitsyn 10.06.2013 09:54 # −10
Пока в голове крутится только сеть доверия. Немного попахивает кармой, но не совсем то. Вкратце: оставлять комменарии и коды можно всем, но только после ввода капчи, голосовать нельзя. Чтобы голосовать и писать без капчи, нужен аппрув одного-двух других членов сообщества, обладающего такими правами (с правом отозвать это право, в том числе другими членами сообщества). Таким образом, при регистрации на ГК друга, имеющего аттестат об окончании школы, можно дать ему права полноценного члена сообщества, не заставляя его сидеть в бесполезном карантине. А боты-минусаторы идут лесом, каскады однотипных копипаст разбиваются об ввод нетривиальной капчи.
Плюсы-минусы комментов на права не влияют. Надо именно залезть в профиль юзера и поставить своё решительное "против", с обязательным обоснованием решения. Права могут восстановить другие члены сообщества.
Главных нет, саморегуляция.
Vindicar 10.06.2013 10:02 # −13
kyzi007 10.06.2013 10:15 # −9
roman-kashitsyn 10.06.2013 10:32 # −10
inkanus-gray 10.06.2013 10:20 # −13
1. С ботами, которые отправляют запросы не браузерами, можно бороться, выдавая на комментирование и на голосование анти-csrf-токены. Не каждый школьник додумается написать бота, который будет парсить html для извлечения токена.
2. Против мультов, отправляющих запросы с браузера, можно бороться с помощью зомби-кукис, разместив невидимую флэшку. Не каждый додумается чистить LSO перед вводом в бой очередного мульта.
3. Детектор однотипных постов. Сканировать всю базу занятие неблагодарное, поэтому можно тупо сравнивать отправляемый комментарий с предыдущим.
4. Трололо-режим: после детектирования бота его комментарии и голоса видны только ему и его мультам. Вопрос в том, как это реализовать, не прибегая к модераторам.
5. Режим ограничения частоты голосования и отправки комментариев. Вопрос: см. п. 4.
bormand 10.06.2013 11:04 # −12
Я когда-то начинал делать жабовский модуль govnoapi, на который, к сожалению, я давным давно забил. Так вот в нем перед отправкой делался запрос странички для отправки (аля http://govnokod.ru/comments/13065/post?replyTo=180079), откуда брались CSRF и капча.
> 5. Режим ограничения частоты голосования и отправки комментариев.
Обходится медленным голосованием без превышения скорости и количеством ботов.
wvxvw 10.06.2013 10:53 # −11
Социальная инженерия предпринимала попытки саморегуляции. Некоторые более успешные, но в целом далекие от идеала. Проблема в общем случае в том, что мы толком и не понимаем формальную сторону честностии справедливости. Мы лучше понимаем нормативную часть вопроса, но и тут есть много неразрешимых проблем.
В любом случае, "идеальным" решением было бы переубеждение. Т.е. человек, который не ведет себя адекватно нормам принятым на ресурсе делает так исходя из каких-то своих представлений о справедливости. По-настоящему исправить ситуацию можно только показав неадеквату, что его представление о справедливости некогерентно. Люди очень редко делают то, что считают несправедливым, и практически никогда - по своей воле.
eth0 10.06.2013 19:34 # −11
Я бы предположил что-то вроде Alter Kämpfer, когда несколько человек с таким статусом проголосуют за временное исключение из партии, суспенженный акк переводится в r/o, последние N (или M) постов скрываются, голоса убираются из статистики.
Сговор и дальнейшее наведение хаоса возможно, но, кмк, если мы уже все тут друг друга знаем, маловероятно, что кто-то просто сойдёт с ума и устроит такое.
Вообще, на самом деле, тема очень тонкая и недетерминированная.
Если вводить допуск, система набигания усложняется, но ничего не мешает, скажем, завести себе десять виртуалов и время от времени пописывать в более-менее разном стиле. Я ставил опыты, с вероятностью в 90% обычный человек не отличит такого. Затем, уже полноправные виртуалы будут аппрувить бесконечное количество новых. Если сделать такое усложнённым (типа, сотни постов, годы на форуме^Wчяти), то будет не особо лучше инвайтов.
3.14159265 10.06.2013 19:43 # −9
Наоборот забавно, терпила вайпает руками, старается, а его посты всё-равно никто не читает.
bormand 10.06.2013 20:01 # −10
Вот блин. Зачем он это делает руками? Написать на том же питоне скрипт, регистрирующий пачку ботов, и анально карающих всех неугодных ведь совсем несложно... Да и засирать треды аскии-версиями порванных жоп и чорных властелинов можно не вводя капчу - главное не торопить события и делать достаточно большой кулдаун между постами, а время и количество ботов сделают свое чорное дело.
Довести ГК до полностью неюзабельного состояния можно было бы за пару вечеров кодинга... Но почему-то так лень этим заниматься...
3.14159265 10.06.2013 20:03 # −12
Так всё говно на раз скрывается/раскрывается жс.
Только списки ботов пополняй.
> Написать на том же питоне скрипт
Наверное не знает как. Даже на питоне.
bormand 10.06.2013 20:11 # −12
Ну да, против скрипта игнорящего минусы и скрывающего посты по блеклисту не попрешь.
Но к сожалению есть еще и деструктивные меры - заминусовать на -20 все треды и дождаться пока сборщик мусора отправит их в небытие...
bormand 10.06.2013 20:17 # −13
3.14159265 11.06.2013 13:40 # +2
Помню как часто в утонувших тредах, происходило бурное обсуждение анрилейтед-тем.
anonimb84a2f6fd141 10.06.2013 22:17 # +8
eth0 10.06.2013 19:44 # −12
scriptin 10.06.2013 20:18 # −13
1. Можно голосовать только "за", минусов нет. Количество плюсов в день ограничено, определяется "стажем" пользователя.
2. Вместо минусов есть список игнорируемых пользователей, сообщения которых не отображаются. Это, кстати, ведет к тому, что комментарии должны быть плоские, а не деревом, поскольку скрытие поста должно вести за собой скрытие всего дерева под ним. К слову, http://www.codinghorror.com/blog/2012/12/web-discussions-flat-by-design.html
3. Вышеупомянутый стаж пользователя вычисляется на основании:
(а) времени пребывания на ресурсе
(б) количестве уникальных пользователей, поставивших плюсы данному пользователю за определенный период времени.
Оба компонента подчиняются логарифмическому закону.
Пример:
Я зарегистрирован 120 дней, мой стаж по времени log10(120) = 2,08
Мои сообщения за последний месяц получили положительные оценки от 12 пользователей, мой стаж по оценкам log10(12) = 1,08
Итого, я могу ставить плюсы другим пользователям floor(2,08 + 1,08) = 3 раза в день.
Масштабирования можно добиться, меняя основания логарифмов и время отсечения голосов от других пользователей, в остальном все крайне дешево и сердито. Дополнительно необходимо иметь возможность убрать свой голос или переместить на другое сообщение, но только в течение небольшого времени.
eth0 10.06.2013 20:58 # −13
Рейтинг в конкретном случае совершенно избыточен. Идея с только плюсами логична, но и минусы служат определённым показателем воли сообщества и регулятором. С таким же успехом можно запретить топить посты.
Я бы предпочёл вложить усилия в эвристику и детектор атак.
scriptin 11.06.2013 00:44 # +1
В моей схеме нет никакого рейтинга.
>минусы служат определённым показателем воли сообщества
Не воли, а мнения, и оно того не стоит. Если есть желание воевать со школьниками - пожалуйста, а я не хочу тратить время на сложные анализаторы, которые Вася П. из 6го "Б" класса обойдет старательной ручной регистрацией кучи виртуалов. Rocket science для травли тараканов получится.
>и регулятором
Минусы в данный момент ничего не регулируют, кроме скрытия постов по умолчанию.
>Я бы предпочёл вложить усилия в эвристику и детектор атак.
А я бы предпочел сделать так, чтобы не было условий для атак. Меня вообще уже в корень заебали сложные и глючные схемы, с которыми в итоге нихуя нельзя сделать.
Да и вообще меня все уже заебало. Нихуя не буду делать.
scriptin 11.06.2013 00:49 # +3
Свежо, не так ли?
eth0 11.06.2013 18:43 # +4
> стаж пользователя
Возможно, я выбрал немного неудачный термин. Просто всё равно мы делим людей на касты, при этом, больше "кармы" получит птеросня, нежели профессионал с непопулярным мнением.
> воевать со школьниками
В этом и состоит инженерная задача. Сделать лучше, чем есть сейчас, усложнив жизнь вандалам и недобросовестным пользователям, упростив добропорядочным.
> в данный момент ничего не регулируют
Ну, почему. Как мера общественного порицания. Отрицательная обратная связь должна быть. В конце концов, полезность в том, что я могу увидеть, сколько людей согласны с моим положительным или негативным отношением. Тут же получается как с покойниками.
На форумах часто бывает кнопка "сказать спасибо", но нет кнопки "автор мудила". Сплошная симпа, чмаффки и обожание.
Более того, если вандал-питушок считает, что моё мнение некошерно, он тоже должен иметь возможность поставить -1, главное - не дать ему этим сильно портить жизнь.
> А я бы предпочел сделать так, чтобы не было условий для атак.
Гостевая книга на нороте? Или ещё круче, премодерация комментариев и публикация в статическом html.
> мнение сообщества выражается текстом
Неидеально, иногда я проглядываю посты по диагонали, раздавая щедрой рукой направо и налево. Писать-отвечать лень, или особо нечего, если тема раскрыта. Скатимся до "+1", "аффтар жги ищо" и "многабукав ничитал".
guest 11.06.2013 19:30 # −2
scriptin 11.06.2013 20:42 # +3
Эта карма только для выставления плюсов, а разница будет всего лишь в единицы, и даже не на десятки. Профессионал с непопулярным мнением не пострадает от недостатка плюсов, которые он может ставить другим.
>В этом и состоит инженерная задача.
Лолнет, я лучше посмотрю видео про котят. Борьба со школьниками - это не инженерная задача, а пустая трата времени.
>Сделать лучше, чем есть сейчас, усложнив жизнь вандалам и недобросовестным пользователям, упростив добропорядочным.
Чем сложнее схема, тем выше вероятность, что все будет наоборот.
>Как мера общественного порицания.
Просто пишите "ай-ай-ай".
>Сплошная симпа, чмаффки и обожание.
Не вижу в этом ничего дурного. Гораздо лучше мышиной возни с троллями.
Кстати, я посещаю ГК, потому что тут интересно, а не из-за обратной связи. За обратной связью я ходу на stackexcheange/stackoverflow
eth0 11.06.2013 22:12 # +1
Vasiliy 10.06.2013 23:26 # +1
Я бы доверил уважаемому Люру кнопку нагибатор. Сей человек в полне в меняем. И если уж ион начнет набигать я окончательно разочаруюсь в этом мире. ( и создам новый :)
scriptin 11.06.2013 00:36 # +1
Заканчивается. Ровно там, где начинаются логирифмы - каждый шаг в стаже будет стоить в 10 раз больших усилий, и после пары шагов это станет совершенно нереальным.
bormand 11.06.2013 05:53 # +6
Скажите это корейским геймерам ;)
Vasiliy 10.06.2013 12:24 # −10
ГК очень интересный ресурс именно потому что он такой как есть. Не надо из него делать подобие хабра.
deep 10.06.2013 16:25 # −10
Загуглил - на php.ru еще с бородатого 2009 года в его коде цмс полная жопа.
Т.е. человек еще с тех времен нихуя не захотел исправлять.
3Doomer 11.06.2013 14:31 # +1
3.14159265 11.06.2013 14:32 # +3
3Doomer 11.06.2013 16:23 # +1
Vasiliy 11.06.2013 16:56 # +5
3Doomer 11.06.2013 16:57 # 0
inkanus-gray 11.06.2013 17:15 # +2
TarasB 10.06.2013 21:12 # −10
eth0 10.06.2013 22:10 # −11
guest 15.06.2013 08:23 # 0
$func = create_function('&$val, $key','$val = strtr(stripslashes($val), array("\\\\"=>"\", \'"\'=>""", "\'"=>"'"));');
array_walk ($get = $_GET, $func);
$post = $_POST; $post['pass'] = 'nopass';
array_walk ($post, $func);
array_walk ($files = $_FILES, $func);
array_walk ($server = $_SERVER, $func);
$request = serialize(array('$_POST'=>$post, '$_GET'=>$get, '$_FILES'=>$files, '$_SERVER'=>$server));
}
mysql_query("INSERT INTO {$conf['db']['prefix']}sess_post (sid, url, time, method, post) VALUE ({$sess[0]['id']}, '{$_SERVER['QUERY_STRING']}', ".time().", '{$_SERVER['REQUEST_METHOD']}', '$request')", 'Ложим данные в лог');