Русский
Русский
English
Статистика
Реклама

Комментарии

Перевод Можем ли мы привлечь общество к самостоятельному поддержанию интернет-культуры?

17.11.2020 08:20:28 | Автор: admin


С развитием социальных сетей и других онлайн-платформ люди получили беспрецедентную возможность для проведения публичных мероприятий. Но нередко эта способность по публикации и распространению информации используется не во благо. Здесь и распространение насилия, терроризма, фейка, популяризации запрещенных препаратов, спам, оскорбления и многое другое, что вызывает резонанс в обществе. И в таких случаях возможности онлайн-платформ по распространению информации начинают работать во вред людям.

При этом трудностей с выявлением информации, которую мы не хотели бы видеть, у онлайн-платформ хватает, так как объем распространяемого в интернете контента огромен, и он постоянно растет, а задача модерации контента при этом отнюдь не тривиальная. Поэтому, несмотря на успехи автоматических методов, число нанятых онлайн-платформами модераторов, вручную просматривающих контент, также непрерывно растет, как и волна критики со стороны общества в отношении процесса модерации.



И прежде всего в обществе все чаще разгораются споры кто и в каком объеме должен нести ответственность за контент.



В конце мая 2020 года Президент Дональд Трамп подписал исполнительное распоряжение, касающееся платформ социальных сетей, призвав привлечь их к ответственности за контент, размещенный на их сайтах, и приказав Федеральной торговой комиссии и генеральному прокурору начать расследование деятельности компаний. Причиной стало размещение в Twitter предупреждающего ярлыка о проверке фактов на некоторых твитах президента, которое президент воспринял как цензуру, применённой избирательно и не прозрачно.

Но чтобы мы хотели от интернет-компаний? Чтобы они были своеобразным глобальным цензором всего и вся на своих платформах, пускай даже дорогой ценой ручной модерации? Или все же не лезли в наше общение, во имя свободы слова? Где грань? Кто задает правила игры? Возможен ли компромисс в модерации информационного поля для всех участников сторон: интернет-компаний, пользователей, контролирующих органов? Может ли статься так, что поддержанию интернет-культуры это комплексная проблема, являющейся проблемой не только интернет-компаний, но и требующая участия самого общества в этом процессе и требующая принятие им на себя хотя бы части ответственности за публикуемый им же контент?

Подобные вопросы возникают все чаще и чаще




Но какими возможностями обладает общество для участия в процессе регулирования сетевой культуры?



В настоящее время компании пытаются привлечь пользователей к модерации путем использования кнопки пожаловаться, реализация применения которой имеет несколько основных подходов.

Так, по нажатию этой кнопки контент, выделенный пользователем, может быть отправлен на проверку назначенному заранее модератору. Плюс такого подхода это простота указания нарушения конечными пользователями. Минусом этого подхода является отсутствие доверия к оценке отдельного пользователя и, как следствие, необходимость подтверждения нарушения модератором, который нередко не успевает реагировать в следствии постоянного роста объема контента. И в этом случае, конечное слово, а значит и ответственность за отторжение неприемлемой информации полностью лежит на плечах интернет- компаний.

Другим основным подходом можно считать коллективную модерацию. Разновидностей такого подхода много, но в общем случае этот подход можно описать следующим образом. При нажатии кнопки пожаловаться определенным количеством пользователей на одном и том же контенте, компании могут считать, что нарушение было, и запустить автоматическую процедуру удаления неприемлемого контента или пометить его каким-либо образом, предупреждая тем самым своих пользователей. Плюс такого подхода состоит в том, что пользователи полностью самостоятельно могут влиять на информационную культуру. Принимая на себя таким образом групповую ответственность за отторжение неприемлемой информации. Минусом является то, что такая технология по-прежнему не доверяет оценке отдельного пользователя и, как следствие, она подразумевает некоторое, достаточное количество голосующих пользователей, которых может просто не набраться для организации голосования по конкретному контенту.

В итоге, участие общества в процессе регулирования сетевой культуры на практике является опосредованной или громоздкой процедурой, которую сложно использовать массово. И это несмотря на то, что пользователи заинтересованы в поддержании адекватной интернет-культуры и, как показывает практика использования кнопки пожаловаться, готовы в ней участвовать в случае нарушений! Однако их голоса воспринимаются очень условно, и все из-за того, что в интернете нет доверия к оценке, сделанной рядовым пользователем. Нет, по умолчанию.



Но можем ли мы научится доверять оценке отдельного пользователя?



Казалось бы, в интернет невозможно просто так взять и довериться оценке рядового пользователя. Но ведь можно создать условия, при которой этой оценке можно доверять. И такой успешный опыт уже есть. Такой метод использует широко известная и всем поднадоевшая reСaptcha. Точнее, одна из ее первых версий, в которой пользователю для авторизации на сайте предлагалось написать несколько слов. Одно из этих слов было проверочным и известно системе, а другое слово было неизвестно системе, и его требовалось распознать. Сами же пользователи не знали, какое слово известное, а какое нет, и для того, чтобы быстрее авторизоваться, вынуждены были стараться отвечать честно, а не гадать.

В итоге пользователи, которые отвечали честно и правильно вводили проверочное слово, считались объективными, и reCaptcha их пропускала дальше, а также принимала ранее не известное ей слово, как верный результат. И это оказалось эффективно. Таким несложным методом пользователи reCaptcha только за первые полгода работы успешно распознали около 150 миллионов не распознанных слов, которые не смогли распознать автоматические методы.


А что, если применить такой подход в области модерации?



Подобно reCaptcha можно дать отдельному пользователю возможность выполнить тест на модерацию, т.е. тест на оценку соответствие ряда публикаций неким заранее заданным правилам. При этом среди публикаций будет публикация, оценка которой нам не известна, а остальные публикации будут проверочными с заранее известными оценками. Далее, если пользователь успешно прошел тест, т.е. был честен в оценке проверочных публикаций, известных системе, то мы принимаем его оценку неизвестной публикации, то есть доверяем мнению этого пользователя. Причем, для получения оценки неизвестной нам публикации, таким образом, нам не нужно будет организовывать коллективное голосование. Достаточно будет одного пользователя.

Объединив этот тест с кнопкой пожаловаться, мы можем организовать среду, позволяющую пользователям полностью самостоятельно модерировать информацию. Для организации этого, после нажатия кнопки пожаловаться пользователю сначала будет предложено пройти тест. Затем, если он успешно прошел тест, публикация, на которую он хочет пожаловаться и которая, как он считает, нарушает некое заранее заданное правило, будет отправлена на проверку.

В процессе прохождения теста пользователь будет является невольным, непредвзятым модератором некой публикации, оценка которой еще не известна, среди остальных публикаций.А публикация, на которую пользователь пожаловался, будет в свою отправлена другому пользователю, который также использует кнопку пожаловаться, работающую подобным образом. И уже этот пользователь в свою очередь будет невольным, непредвзятым модератором, данной публикации.



Что может дать такой подход?


  • Этот подход позволит упростить процесс модерации, сделать его массовой процедурой, при которой каждый пользователь имеет возможность выявлять нарушающую правила информацию.
  • Этот подход позволяет четко ответить на вопрос о предвзятости модерации или на обвинения в цензуре: нет, такая модерация не является предвзятой оценивающий пользователь не знает, оценка какой публикации уже известна, а какую публикацию модерирует именно он.
  • Этот подход предлагает компромиссное решение для всех участников сторон: пользователей, интернет-компаний, контролирующих органов. Здесь сами пользователи являются непредвзятыми цензорами, компании создают условий пользовательской модерации, определяя вместе с контролирующими органами правила сетевого поведения.


Использование этого подхода видится прежде всего при модерировании интернет-обсуждений (комментариев). Так с его помощью его несложно организовать пользователей с разных сайтов в своеобразное сообщество модераторов. Сообщество, в котором адекватные, соблюдающие культуру пользователи имеют преимущество перед нарушающими и в котором используются простые правила. Небольшой пример возможной реализации такого подхода и правил сообщества приведен здесь.

Такой подход можно использовать и в других местах информационного поля. Например, для разметки видеоконтента, для выявления в них грубости, жестокости, наркотиков и т.д. Это может быть разметка видео, которое вы встретите на YouTube или пересланное вам по Whatsapp, в одну из групп, в которой вы состоите. Тогда, если это видео вас шокировало, и вы хотите предупредить других людей, вы можете с помощью указанного подхода пометить его как видео, содержащее тот или иной тип неприемлемого контента. Разумеется, предварительно выполнив тест по модерации. Для упрощения модерацию видео можно оптимизировать и посылать на модерацию не все видео целиком, а только фрагмент видео, содержащий неприемлемый контент. В итоге, при дальнейшем распространении этого видео, оно будет распространятся с пометкой, которая может быть полезной другим пользователям, не желающим видеть такого рода контент.

Этот же подход можно применить и к нарушениям другого типа. Например, в случае фейка пользователи могут самостоятельно добавлять ярлык о проверке фактов или же добавлять ссылку на опровергающую информацию.

И в заключении следует отметить, что нарушающая информация, выявленная пользователями с помощью указанного подхода в том или ином месте информационного поля, может быть передана на вход автоматическим методам, с целью последующей автоматизации процесса выявления подобных нарушений. Это позволит пользователям совместно с интернет-компаниями решать трудную задачу по модерированию публикуемой и распространяемой нами же информации.

Подробнее..

Сравниваем четыре опенсорсные альтернативы Disqus

04.05.2021 12:13:46 | Автор: admin


Disqus всех задолбал. Из некогда удобной встраиваемой платформы для комментирования он превратился в многомегабайтного монстра с кучей сторонних скриптов и трекинга и совсем перестал устраивать технически подкованных блогеров и администраторов, причем положение дел всё хуже с каждым годом. Удивительно, что так и не появилось стопроцентного аналога, совместимого с Disqus, но опенсорс-сообщество всё же выкатило довольно крутые системы комментирования, ориентирующиеся на его замену. Рассмотрим самые интересные и жизнеспособные из них.

Всё плохо


Это раздел для тех, кто пропустил огромное количество срачей про Disqus.

Во-первых, виджет с комментариями весит как слон:


Графики из поста Victor Zhou, перевод есть на Хабре

Для небольших блогов на SSG вроде Jekyll или Hugo комментарии увеличивают количество запросов и загруженного кода в несколько раз, а на крупных сайтах суммарная нагрузка на сеть выходит вообще страшная. Можно оправдываться повсеместным распространением 4G/5G и увеличением мощностей пользовательского железа, но это прямая дорога в ад электрон. Не надо так, это убьёт веб.

Во-вторых, это нереальное, фантастическое количество телеметрии. Тут лучше привести цитату из этого перевода:

Среди сетевых запросов вы можете обнаружить такие:

  • disqus.com Очевидно!
  • google-analytics.com Многочисленные запросы; без понятия, кто следит за вами.
  • connect.facebook.net Если вы авторизованы на Facebook, то они знают о вашем посещении этого сайта.
  • accounts.google.com Google также отслеживает ваше посещение этого сайта через любой из ваших аккаунтов Google.
  • pippio.com Идентификация LiveRamp для сбора информации о вас с коммерческими целями.
  • bluekai.com Трекинг отдельного пользователя для маркетинговых кампаний.
  • crwdcntrl.net Довольно подозрительный сайт, который упоминается в связи с распространением вирусов и шпионского ПО.
  • exelator.com Ещё один сайт для слежки за пользователями, в честь него даже назван вирус!
  • doubleclick.net Этого мы все знаем: реклама и слежка за действиями пользователя, принадлежит Google.
  • tag.apxlv.net Очень подозрительно и выглядит хитростью, что владелец обфусцировал свой домен (я даже не знал, что такой приём работает!). Добавляет на ваш сайт пиксель для слежки.
  • adnxs.com Ещё больше следящего мусора, хотя немного более обильного.
  • adsymptotic.com Реклама и слежка, которая предположительно использует машинное обучение.
  • rlcdn.com Обфусцированная реклама/трекинг от Rapleaf.
  • adbrn.com Обеспечиваем пернализированное путешествие пользователя по устройствам, каналам и платформам с помощью технологии соответствия через пользовательский идентификатор Adbrain.
  • nexac.com Datalogix от Oracle, их собственная дрянь для слежки и поведенческого анализа.
  • tapad.com Всё, мне надоело искать про них информацию. // здесь и далее саркастические комментарии автора выражают усталость от тонны трекинга в каждом запросе
  • liadm.com Ещё? Ох, ладно, тогда
  • sohern.com Мда. Слежка.
  • demdex.net Слежка. От Adobe.
  • bidswitch.net Дам ещё одну подсказку
  • agkn.com
  • mathtag.com Забавное название, может быть, это нет. Оно следит за вами.



А ещё Disqus не поддерживает Markdown и кастомные стили.

В общем, это не просто плохо, это доходящая до абсурда жадность. Если вы вдруг забыли, Disqus это ещё и платный продукт, на бесплатном плане он обрежет вам внушительную часть функций и навесит чужой рекламы в подарок.

Альтернативы


Их буквально десятки, у всех свои сильные и слабые стороны. Мы разберём тройку лучших решений, исходя из списка самых популярных требований:

  • Небольшой вес
  • Никакого трекинга и рекламы
  • Бесплатное использование и, желательно, опенсорс
  • Анонимное комментирование
  • Возможность подогнать шрифты и стили под сайт
  • Markdown


Commento




Про переход с Disqus на Commento есть отдельная статья.

Самый раскрученный сервис с лучшим функционалом, ближе всех остальных подобрался к Disqus. Сервисное использование платное ($10/месяц), но код открыт (GitLab) и селф-хостинг вполне приветствуется.

Фичи:

  • Голосование (upvote/downvote) на карточке комментария
  • Закрепление комментариев в начале треда
  • Модерация с верификацией, удалением сообщений, банами и ограничением частоты комментирования, как на Хабре
  • Определение спама
  • Импорт из Disqus
  • Настраиваемые уведомления (почта)


Commento весит всего 15 килобайт и вмещает почти полный функционал Disqus. Заценить можно здесь.

Remarkbox




Ветеранский движок для комментирования. Интерфейс довольно минималистичный, но его можно украсить кастомными стилями. Код закрыт, селф-хоста нет, но использование бесплатное (при желании можно заплатить автору денег). Также он обещает открыть код, если не сможет дальше поддерживать сервис:



Дополнительных (к основным требованиям) фич здесь толком нет, только лайв-превьюшка комментария с использованием Markdown. В целом это просто минималистичный, лёгкий (<20kb) движок. Стоит выбрать, если лень париться с селф-хостингом и хочется просто пользоваться бесплатным сервисом. Демка прямо на главной странице.

Remark42




Изумительный опенсорсный движок от Евгения umputun. Весит копейки, выглядит прекрасно, куча фишек:

  • Голосование (upvote/downvote) на карточке комментария
  • Логин не только по OAuth, но и по почте
  • Модерация с верификацией, удалением сообщений и банами
  • Загрузка картиночек!
  • Сортировка комментариев (странно, но она вообще мало у кого есть)
  • Импорт из Disqus
  • Настраиваемые уведомления (телеграм, RSS)


Remark удовлетворяет большинству требований для личного блога, при этом разработка не прекращается и только за последний год движок оброс приличным набором новых фич. С ним (и над ним, привет контрибьюторам) очень приятно работать, зацените демку.

Заключение


Готовые системы комментирования подходят тем, кто хочет просто прикрутить комменты в бложик по принципу чтобы было. Но если хочется зарыться ещё глубже в автономию, почитайте про прикольный хак с использованием Github Issues для комментариев на сайте.
Ну а тем, кто ещё не убежал с Disqus (или Discourse, который тоже отвратителен, но это уже другая история), лучше поторопиться, пока испуганные пользователи не разбегутся от бесконечных загрузок, а их данные не сольют в ходе очередной утечки.



На правах рекламы


Эпичные серверы это VDS для размещения сайтов от маленького интернет-магазина на Opencart до серьёзных проектов с огромной аудиторией. Создавайте собственные конфигурации серверов в пару кликов!

Подробнее..

Комментарии ложь

16.04.2021 20:09:46 | Автор: admin

Если вы программист, то есть много практик, которые можно ненавидеть.

Жестко запрограммированные значения. Двойная логика. Сложные иерархии наследования. Но должны ли входить комментарии в этом списке?

Давным-давно, во времена доисторического программирования, писать комментарии считалось обязательной составляющей написания кода. Когда вы писали код, его наполняли короткие и точные комментарии. Затем чистый код и agile программирование стали править миром. Пуристы кричали о вреде комментариев, которые наполняли неструктурированный и уязвимый код. Внезапно комментарии стали ошибкой, антипаттерном, сборниками откровенной лжи.

Многие разработчики почувствовали себя загнанными в угол.

Ложный выборЛожный выбор

Но так ли очевиден выбор? Или же все-таки есть способ писать комментарии и при этом уважать себя, вставая утром? Чтобы узнать ответ, давайте рассмотрим, как комментируют ужасный код и как даже плохой комментарий может спасти жизни.

Ленивые комментарии

Самая частая ошибка, которую совершают разработчики, это комментирование кода вместо написания хорошего кода.

Например, возьмем этот фрагмент кода, взятый из реального приложения:

double delta = h*h-r1*r1;double r2 = Math.Sqrt(delta);

Несмотря на то, что кодовые операции в этом фрагменте легко понять, значение кода неясно. Но разработчик, который написал такой непонятный код, может быстро скрыть его низкое качество, добавив поясняющий комментарий:

// Calculate side length using the Pythagorean Theorem// and put the value into variable "r2"double delta = h*h-r1*r1;double r2 = Math.Sqrt(delta);

Это первая проблема с комментариями - они открывают дверь вредным привычкам. Они соблазняют вас сойти с дороги непрерывного рефакторинга на простой путь описания небрежного кода.

В этом примере есть много способов избежать комментария. Вот один из возможных вариантов, где все нужное говорят имена переменных:

double lengthSideB = Math.Sqrt(  Math.Pow(hypotenuse,2) - Math.Pow(lengthSideA,2);)

Или вы можете вынести операцию в отдельный метод и назвать метод должным образом:

double sideA = Pythagoras.GetLengthOfSide(hyptenuse, sideB);

Не перебор ли это для такого простого примера? Очевидно! Но этот пример иллюстрирует одну из основных стратегий чистого кодирования - извлечь смысл из комментария и вставить его в имена переменных, методов, классов и интерфейсов. Ленивые комментарии используются не только для того, чтобы избежать рефакторинга. Они также используются, чтобы не обдумывать проблему или не завершать работу. Особенно плохое использование комментария - это документирование странного поведения в программе кода без каких-либо попыток исправить это.

Ложные комментарии

Для многих сторонников чистого кодирования недостаточно просто избавиться от ленивых комментариев. Даже комментарии, которые кажутся невинными, представляют собой риск, потому что они могут противоречить реальности вашего кода. Другими словами, комментарии представляют собой тип дублирования - человеческое повторение компьютерно-языкового решения. Это означает, что они подвержены несогласованности, как и дублированный код в вашем приложении. Другой программист может изменить программный код, забыв изменить комментарии. Это особенно вероятно, когда комментарий применяется к длинным блокам кода или находится не рядом с реализацией. Разработчики особенно неаккуратны с таким случаем:

/**  * Constructor.  *   * @param name (required) brand name of the product. Must have  * content. Length must be in range 1..50.   * @param price (optional) purchase price of the product.  * @param units (required) number of units currently in stock.  * Can not be less than 0.*/public Product(string name, decimal price, integer units){   ...}

Некоторые компании поддерживают эти блоки комментариев, полагая, что больше информации означает меньше двусмысленности. Это верно - до тех пор, пока блок комментариев не будет скопирован и вставлен слишком много раз и не станет источником неверной информации. Ложные комментарии создают ловушку последующих за ними разработчиков. Поверьте ошибочному комментарию, и вы начнете цепочку неверных предположений, которые могут привести к игнорированию существующей ошибки или даже к новой.

Все врет

Комментарии не заслуживают доверия. Вы не найдете модульных тестов, которые могли бы гарантировать их истинность. Но это не уникальная проблема. На самом деле почти все может лгать. Типичный проект кодирования повторяется во многих различных областях. Есть требования к архитектуре, документация, схема данных - все это может противоречить друг другу. Рассмотрим документацию API. Вы можете создать его со всеми нужными типами, членами и сигнатурами методов, используя рефлексию. Здесь нет возможности солгать. Но после этого кто-то должен написать описания, которые придают смысл этим структурам кода. Тот факт, что документация API может лгать, является разочарованием для разработчиков, работающих с быстро меняющимися технологиями, но это вряд ли повод отказываться от них. С документацией проблемы не заканчиваются. Даже если вы замените каждый комментарий тщательно названными переменными и именами методов, эти имена также могут быть превращены в ложь из-за неосторожного редактирования. Другими словами, риск поверить в комментарий реален. Но не путайте риск использования ложного комментария с риском его написания.

Комментарии - ложь - говорит нам перестать доверять комментариям, а не писать их.

Комментарии не бесполезны

Даже неправильный комментарий не обязательно бесполезный. Рассмотрим следующий загадочный комментарий, который остался в открытом коде моей любимой ритм-игры более десяти лет назад:

// to match ITG1's late arrows.  -KGlobalOffsetSeconds=-0.006

Этот комментарий заслужил дурную репутацию, потому что он в точности не соответствует действительности - отрицательное смещение сдвигает синхронизацию песни раньше, а не позже. И все же этот явно неверный комментарий по-прежнему содержит информацию, раскрывающую проблему, которую разработчики игр пытались исправить, и ошибочное решение, которое они приняли. Что еще более важно, это дает вам представление о том, как вы можете исправить то, что пошло не так. Или представьте пример с регулярными выражениями. Если вы добавили его в свой код, надеюсь, вы добавили комментарий, объясняющий его назначение. Но что, если ваш комментарий лжет - другими словами, регулярное выражение не проверяет должным образом то, что, по вашему мнению, оно делает? В этом случае ваш комментарий по-прежнему имеет ценность, потому что он записывает ваше намерение, а это единственная информация, которую разработчик, исправляющий вашу ошибку, должен будет получить.

Очевидно, что комментарий, проливающий частичный свет на проблему, уступает чистому, идеальному коду. Но не все разработчики пишут чистый код, и большинство разработчиков, которым это удается, не всегда добиваются идеальных результатов. Трудно поставить себя на место другого человека, читающего вашу работу. Очевидное для одного человека - непонятное для другого, и этот человек - вы в следующем году.

I spent some time this weekend looking at very well-named, very clean, uncommented code implementing a research algorithm. Im high-level familiar with it, the guy sitting next to me was the inventor, and the code was written a few years ago by someone else. We couldbarelyfollow it. Paul Nathan

Меняются продукты, меняются стандарты, компании прогресирую. Контекст, в котором рассматривается старый код, будет отличаться от контекста, в котором он был написан. Комментарии могут привести к описанию проверенных и неудачных попыток и предостеречь от неожиданных проблем. Они могут подсказать, что пошло не так. Возможно, в них нет необходимости, а может и нет. Но они могут быть подарком на будущее.

Комментарии представляют собой страховой полис

Да, есть цена за привнесение двусмысленности и возможной лжи в ваш код. Но есть также расходы на страхование дома или автомобиля. Мы можем снизить затраты на комментарии следующим образом:

  • Помните о плохих методах работы (ленивых комментариях и небрежном коде)

  • Осторожно относиться ко лжи (никому не доверять)

  • Управление мусорным комментарием (с помощью инструментов в среде IDE)

Главный вопрос прост. Стоит ли платить за комментарии? Мнения расходятся, но если вы используете комментарии вдумчиво и разумно - если вы используете их для уменьшения когнитивной нагрузки кода, а не для противодействия плохим практикам - они могут повысить ценность даже самого чистого кода.

Вот совершенно ненаучный опрос людей, прочитавших эту статью. Выберите утверждение, которое больше всего тронет ваше сердце!

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru