OpenID и гики
До меня дошла недавно одна очень смешная вещь. Прямо-таки откровение.
OpenID — это не технология для гиков. Для конечного пользователя весь интерфейс работы с OpenID сводится к одному полю, где надо ввести URL. Или к одному полю, где надо ввести логин и одному dropdown-у, где надо выбрать один популярный сервер из списка. И всё.
Такое поймет даже моя мама.
Если пара-тройка крупных порталов (вам имена назвать, или вы сами понимаете, о ком я?) возьмет и молча прикрутит OpenID себе (а потом начнет пиарить), то это тупо отоварит процентов 90% аудитории интернета OpenID.
Васе Пупкину везде будет достаточно указывать, грубо говоря, «я pupkin на mail.ru» (ну вот, имя назвал).
Просто так отдельно стоящий провайдер OpenID — действительно вещь для гиков. «Зарегистрируйся у нас и получишь OpenID» — это чё, зачем и кому?
Однако ж, похоже, потенциальные провайдеры OpenID ждут, пока везде начнут поддерживать OpenID на принимающей стороне. Этого, естественно, не будет: зачем массово поддерживать вещь для гиков?
Надо кому-то (и под «кому-то» я понимаю провайдеров) просто собраться, нарисовать кнопки «openid enabled», сделать нормальные OpenID’шные урлы, которые не ведут «в никуда», и начать потихоньку продвигать.
С RSS, кстати, отдающая сторона тоже начала первой.
Если кто пропустил: Голосуй сердцем @ spectator.ru
Голосуй сердцем
Во всех голосованиях, типа +1/-1 должно быть на самом деле +N/-M, где N!=M (N не равно M).
Так как почти никто не понял моей гениальной гипотезы, поясню.
Но сначала — в чем смысл голосования вообще. Но это кто-то должен сказать все равно. Голосование — это выбор. Перед вами поставили пять президентов и под каждым повесили radiobutton. Выбери одного.
Понятно, что проголосовать одновременно за Жирика и за Зюгу нельза. А очень хочется.
Другое дело, когда у тебя есть много материала, и каждой твари можно проставить по паре оценку от 1 до 5. Конечная цель для голосования «на той стороне», то есть для сайта — всё тот же выбор, верней — отбор, отсеивание говна и составление более-менее адекватных топов.
Цель голосования для пользователя же совсем другая, ибо выбора нет. Пользователь может всем оцениваемым сущностям поставить 5 баллов. Полный аналог «я хочу, чтобы все были президентами одновременно». Понятно, что ценность этих голосов равна нулю, и в чистом виде такое почти не встречается, но возможность проголосовать так есть.
Ограниченного ресурса («выбери одного») нет, поэтому мотивов расходовать его экономно (или разумно) тоже нет. Но хоть какие-то мотивы нужны, поэтому и включаются эмоциональные механизмы, которые к тому же бинарны: «понравилось/не понравилось».
Разграничивать «понравилось, но не очень», то есть ставить «четверку» вместо «пятерки», смысла тоже нет: «вам что, жалко, что ли?». Нет, не жалко. Мы — добрые! А вот если нас, таких добрых, разозлить...
С точки зрения голосования, как выбора, дискретность шкалы имеет значение: чем больше шкала, тем выше точность. Наиболее подходящая шкала — стобалльная (при этом надо понимать, что голосование, типа 7.5 — это тоже стобалльная шкала, которая к тому же понятно для пользователя приводится в десятибалльной).
С точки зрения людей и особенно социально взаимодействия, наиболее удобна бинарная шкала: гавно/конфетка.
И 75-95% людей будут сводить любую шкалу к бинарной.
Отсюда промежуточный вывод: как ты шкалу ни назовешь, ее все равно будут использовать ровно одним способом, как только поймут, что в ней «хорошо», а что – «плохо».
Дискретная шкала просто имеет чуть больше смысла для 10% адекватных людей, которые будут использовать ее «идеологически верно». Еще один побочный эффект: чем больше делений у шкалы, тем больше шансов, что «щедрый» человек поставит 9.7/10 вместо 5/5: «это не так обидно».
Людей же, которые «голосуют сердцем», не пронять ничем, даже индивидуальной подписью к каждой оценке. У них все равно будет свой взгляд, «они так видят».
Налицо конфликт между авторами сайта и посетителями.
Наглядный пример: на картинке представлен результат разброса голосов на imdb.com по фильму «Крестный отец», который занимает первое место в top-250.
Видно, что 6% людей поставили фильму 1 из 10, то есть считают «Крестного отца» невероятным феерическим говном, после просмотра которого у них выпали глаза, случился самопроизвольный фимоз головного мозга и развилась патологическая боязнь кинематографа.
Очевидно, что это не так, даже чисто математически: далее график проседает аж до «семерки», и куда делись те люди, которые оценили фильм в промежутке от 1 до 7 — не понятно. Согласно математическим ожиданиям, их должно быть в разы больше.
Средний балл при этом у лучшего фильма всех времен и народов всего 8,7.
Конфликт «разруливается» элементарно: «one man, one vote» — принцип для наивных дураков, которого придерживаться не нужно.
То голосование, которое мы имеем на входе — это просто некие сырые статистические данные, которые нужно оценивать именно так — как данные. При этом вычисление среднего балла — наиболее нелепая вещь, которую можно сделать с этими данными. Средний балл не работает сразу (один проголосовавший), не работает и потом, потому что процент идиотов — величина постоянная, а бирки на них, увы, не развешены.
На imdb используется weighted vote averages:
IMDb publishes weighted vote averages rather than raw data averages. Various filters are applied to the raw data in order to eliminate and reduce attempts at ’vote stuffing’ by individuals more interested in changing the current rating of a movie than giving their true opinion of it.The exact methods we use will not be disclosed. This should ensure that the policy remains effective. The result is a more accurate vote average.
Простым языком это значит только одно: «не все голоса одинаково полезны».
Возвращаясь к «Во всех голосованиях, типа +1/-1 должно быть на самом деле +N/-M, где N!=M (N не равно M)» это значит только одно: «есть гипотеза, что люди „опускают“ с большей охотой, чем „поднимают“ (или наоборот), если эта гипотеза верна, то собранные статистические данные полезней считать не как тупую сумму, а с применением веса».
То есть, почти всё то же самое, что написано выше, но применительно к бинарной системе.
Проблема в том, что бинарную систему сложнее нормализировать. Совсем условно говоря, в стобалльной системе мы можем смело считать людей, поставивших «один», откровенными ретардами, в бинарной системе нам для этого просто недостаточно данных.
С другой стороны, «голосование», типа +1/-1 — практически идеальный инструмент для «опускания», поэтому использовать его нужно именно так: как массовое коллективное опускание. «Мне карму заминусовали». Еще один плюс такого голосования состоит в том, что влияние одного человека является понятной константой, и понятно, «как с этим бороться». В отличие от голосования по N-балльной шкале и подсчете среднего балла.
На skill.ru, кстати, я испробовал примерно четыре разных системы (с кучей вариаций), в конце концов пришел к формулам, согласно которой помимо всего прочего голоса некоторых людей в крайних случаях вообще не учитываются, причем на основе их всех предыдущих голосов. То, что вес каждого голоса учитывается индивидуально — тоже очевидно. Причем ручного «бана» там нет, все подчиняются одним и тем же математическим правилам. Теперь топы, по крайней мере, можно смотреть без содрагания.
(Не знаю, почему до сих пор никто не реализовал «спарринговую» систему голосования: пользователю дается три-пять случайных работ, но примерно одинаковых по рейтингу работ, а он должен выбрать одну).
Таким образом, идеальная система голосования:
1. Предлагает не бинарную шкалу, главным образом для себя, но еще и для маленького процента нормальных людей.
(Пользователи говорят, что им «привычна» пятибалльная, но они просто врут, ее просто проще привезти к бинарной. На «серьезных» проектах я бы делал 100 балльную и приводил всё к виду 7.5/10).
2. Не навязывает пользователям трактовку этой шкалы (!).
3. Не обязана и не должна учитывать каждый голос одинаково.
4. Имеет закрытые механизмы подсчета конечного рейтинга.
PS.
Самое главное, о чем забыл написать подробно — подумал, что это и так очевидно: для чего нужно голосование, и что оно меряет.
Голосование меряет только человеческий интерес. И всё. Те, кто думают, что голосованием можно измерять качество — в лучшем случае заблуждаются. Если будет анонимно голосовать одна и та же группа экспертов по всем работам, при этом никак с этими работами не связанная, — тогда может быть.
Голосование измеряет популярность.
В этом плане десять «четверок» гораздо ценней, чем одна «пятерка», да и вообще, количество оценок — тоже релевантный фактор.
Польза для сайта от голосования абсолютно та же: предлагать на выходе список чего-то, что может понравиться среднестатистическому посетителю.
То есть всякие артхаус и прочее geekery — это не показательный пример вообще. Другое дело, что на основе все того же голосования можно сделать фичу, типа «люди, которые поставили этому фильму „пять“, так же поставили „пять“ следующим фильмам», — тогда это будет работать даже на примере артхауса.
Принцип, кстати, всё тот же: пользователю на входе дается N-балльная шкала, всё остальное — просто работа с данными.
Плюсодин
Гипотеза.
Во всех голосованиях, типа +1/-1 должно быть на самом деле +N/-M, где N!=M (N не равно M).
Да?
Wiki 2.0
Wiki – довольно странный нишевый продукт. Довольно странный потому, что этим старьем все еще пользуются. А пользуются им – что тоже довольно странно – потому, что ничего лучшего до сих пор и нет.
А ничего лучшего до сих пор нет, потому что продукт нишевый, и совместная работа над текстами не такая уж и популярная вещь. Есть много продуктов из соседних ниш.
С другой стороны, я сейчас работаю с вики, время от времени у меня рождаются мысли, как всё исправить, но носят они в основном мирный характер «всё закопать и переделать».
На мой взгляд, человеческая система совместной работы с документами должна обладать следующими признаками:
1. WYSIWYG.
Да-да, именно оно. Вики-синтаксис – это полумера, half-assed решение для полугиков. Выделять наклон, как //а вот это наклон// якобы интуитивно понятней, чем тэги, но на самом же деле это такая очень странная реализация WYSIWYG для бедных: «палочки-то наклонные».
Другое дело, что почти все WYSIWYG системы делали тоже какие-то странные люди и почему-то с прицелом на хомячков.
Такая банальная вещь, как проставление ссылки, например, везде реализована одинаково неудобно: при редактировании ссылка должна выглядеть, как ссылка, но никто не говорит, что она должна вести себя так же.
Ибо оно все-таки WYSIWYG, а не WYGIWYGD (What you get is what you get, duh).
2. Отделение метаинформации от котлет.
HTML-тэги являются «невидимым» мета-слоем текста («разметкой»). Желающие могут взять любой несуществующий тэг, например, Другое дело, что так исторически сложилось, что правим мы документ сразу вместе со включенной в него разметкой, хотя самый первый html-редактор был, конечно же, WYSIWYG’ным. Если бы html был бинарным форматом, а не текстовым – всё могло бы сложиться хорошо.
Это было лирическое отступление.
Есть текст, к нему есть метаинформация, например, те же комментарии. Текст – отдельно, метаинформация – отдельно. Должным образом это реализовано, например, в MS Word’е в режиме правки текста: исходный текст, а к нему – правка. Их можно сливать, но это все равно разные слои.
Правка текста – это и есть дополнение текста актуальной метаинформацией.
В вики же популярный способ коллективной правки совсем варварский: включаем красненький текст и прямо по чужому тексту фигачим, вставляя свою подпись.
Да здравствует анти-семантика.
Минусы очевидны: когда нам вдруг понадобится «просто текст», пусть даже и не в самой утвержденной версии, придется отчищать текст от правок. Ну, или брать старую версию. (Механизм версий, кстати, — это единственная правильная вещь, которая есть в Вики).
«Комментарии к тексту» не работают: люди комментируют обычно какую-то одну конкретную мысль из текста; комментировать весь текст целиком можно только в виде «спасибо, прочитал».
Вполне очевидно, что доступ к созданию метаинформации и доступ к ее закреплению в документе – это два разных доступа. Как и доступ на чтение метаинформации и доступ на чтение документа вообще.
3. Работа с атомарными единицами.
Как правильно отделить метаинформацию от остального не понятно до тех пор, пока мы не решим, что является минимальной неделимой единицей текста.
Ей является абзац. А не документ.
Смотри Библию. До тех пор, пока не наступит просветление. После того, как мы осознали эту мысль и смирились с ней, всё становится совсем просто:
Ну и так далее. Перемещение, добавление, удаление абзацев отслеживается легко.
При этом у нас WYSIWYG (помните?), поэтому внутренности, типа На уровне дизайна реализовать это всё тоже легко: у каждого абзаца есть «плюсик», раскрывающий всю метаинформацию о нем и дающий доступ ко всем инструментам. Там же – индикатор, что крестик не пустой, «этот абзац имеет 4 новых комментария и статус КГ/AM».
Опять-таки, ajax и прочий вебдваноль.
Когда все плюсики закрыты, текст является нормальным «человеческим» текстом, который и людям показать не стыдно. Опция expand all тоже есть.
При этом – хаха – вики должна быть настраиваема для работы на двух мониторах: в первом текст, во втором (окне браузера) – содержание «плюсиков».
Главное, в чем стоит отдавать отчет: текст для совместной работы – совсем не художественный текст, а писать в формате «абзац = мысль» нормальный человек обучается быстро. А если не обучается – то атата по попе ему, по попе.
Деление на абзацы — не искусственное «ограничение» на уровне движка, оно должно поддерживаться авторами на уровне структуры текста и быть всегда в голове.
Правка же чужого текста в формате «если ты такой крутой, предложи абзац другой» гораздо более продуктивна.
4. Автоматизация связей и гипертекстовость.
Все мы не любим очень умные программы, так ведь? Однако же.
Создал я в Вики два документа: something/terrible и something/awful. Что должно быть по адресу something/, если там ничего не было? Правильно — список документов в something/*, с возможностью его перезаписать на что-то свое, а не «ой, тут ничего нет, хотите создать?». Раз уж мы имитируем папочную структуру.
Вообще, у возможности легко создавать страницу с любым адресом минусов больше, чем плюсов: это полный аналог вебдвальных тэгов на массовых сервисах, когда есть и «кошки» и «коты» и «котята» и всё это – разное.
Не могут люди нецентрализованно создать структурообразующую вещь. А она нужна, потому что иначе не навигация, а каша.
Выхода три: либо закреплять правила адресации на уровне договоренности, либо – на уровне «движка», либо нужен «модератор».
Из удобных «автоматизаторских» возможностей в Вики есть только автоматическое создание оглавления — {{TOC}}. Хотя по такому же принципу можно было сделать много полезного: список всех внешних/внутренних ссылок в тексте, например.
Ну и прочие мелочи. Например, при расстановке ссылок, если описание ссылки не задано, то надо считывать содержимое title указанной страницы и ставить его в описание. Title и есть заголовок страницы, алё!
Итого:
Есть текст. К тексту есть обновляемая метаинформация. Слияние текста и метаинформации и есть работа над текстом. У текста есть минимальная смысловая единица (абзац), все действия производятся, прежде всего, над ней.
Ну и в конце – почему это все не будет работать. Дело в том, что есть – увы – интерфейс в разы лучше. Называется он «говорить голосом». Ничего более эффективного, чем «человек пишет текст – мы собираемся и обсуждаем текст вслух – человек дорабатывает текст и потирает жопу» не придумать всё равно.
Поэтому «пугающие» цифры, типа «85% страниц в Вики были написаны авторами в одиночку» — отражение вполне нормального и эффективого способа, с учетом внешней коммуникации.
пользователь не увидит. Самые умные уже догадались, как осуществляется контроль версий. Да, тоже поабзацно. (Он и сейчас так осуществляется, но только потому, что так проще).