UGC: Wowhead
Лучший сайт с UGC — это, конечно же, Wowhead.
Сам по себе сайт — поиск по всем сущностям WoW-а (World Of Warcraft, duh), которых ограниченное количество, которые нарыты автоматически и не являются UGC. Уже вокруг этих сущностей и существует жизнь.
Существует, опять-таки, по понятным мотивам: если есть квест или ачивмент, который надо сделать, есть предмет, который вы получили (или хотите получить), то вы наверняка найдете его карточку и уже сам сможете отметиться в комментариях. Опять-таки, создают UGC на сайте не все подряд, а как минимум те, кто умеет пользоваться поиском, — то есть уже, как минимум, верхние 5% населения.
Секретов успеха, таким образом, «всего» два:
1. «Костяк» из уникального не-пользовательского контента, который интересен весь, и который образует узлы.
2. Огромная вовлеченность пользователей. Это же WoW.
В результате имеем место, куда люди действительно ходят читать и писать осмысленные и полезные комментарии.
У огромного количества людей (не скажу, что у всех 11 миллионов подписчиков) объективно существовала информационная потребность, которую подобные сайты удовлетворяли, но ближайшие конкуренты с непроизносимыми именами alakhazam и thottbot были просто поделками на коленке.
Wowhead был банально лучше сделан, и весть о нем разнеслась в комьюнити почти мгновенно.
Идеальный пример мечты: 11 миллионов человек, среди которых сарафанное радио действительно работает, у которых есть потребность, которую достаточно было просто хорошо удовлетворить.
Проблема в том, что синтетический пример подобного проекта вот так «из головы» и не придумаешь: какие-нибудь «собачатники» или «юниксоиды» совсем не настолько сплочены «единым порывом», как кажется, и, что самое главное — совсем не понятно, вокруг чего их объединять.
Классичесий, но совершенно не работающий пример — «здесь собираются люди, которые любят собак!!1».
Собираются, собираются, а пожениться не могут.
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% страниц в Вики были написаны авторами в одиночку» — отражение вполне нормального и эффективого способа, с учетом внешней коммуникации.
Приплыли. Про облако тэгов хотелось бы понудеть.
Движки, которые выводят облако тэгов на каждой странице, не кэшируя его — ущербны. Например, Wordpress генерирует страницу «пост с комментариями» с помощью 28 (!) запросов к базе данных. Поэтому посещаемые сайты на wordpress-е (не будем показывать пальцем) тормозят безбожно.
Совершенно же логично, что для генерации поста с комментариями — например, в этом блоге — нужно максимум три MySql запроса: 1) вывод поста, 2) вывод комментариев, 3) вывод навигации «Вы сейчас здесь».
Облако тэгов, само по себе — идиотская идея и ненужная фигня, типа календарика. Основная ее «фишка» в том, чтобы вывести список и по алфавиту и по «важности» (выделив это размером).
Тут и кроется самый смешной нюанс — тэги у всех разные. Натурально, разные слова. Начинаются на разную букву. У кого-то ключевое слово «имбецилы», у кого-то — «идиоты», а тема-то одна и та же. Не говоря уже о том, что везде наблюдается смесь английского и русского, которая довольно нелепо сортируется по алфавиту.
От сайта к сайту «оно всё разное». Запоминать ваши тэги/ключслова ни один посетитель не будет, не обольщайтесь. Сортировка по алфавиту бессмысленна.
Сортировка по дате чуть более осмысленна, но а) интуитивно не понятна, б) часто пересекается с сортировкой по популярности (логично же, что чем больше постов по теме X, тем больше вероятность, что про эту тему недавно писалось, в) последние ключслова и так находятся под заметками на первой странице.
«Там решено было цветом выделять последнее, хорошая мысль» — мысль вовсе не хорошая. Цветом нужно выделять только посещенные ссылки. Это принятно, интуитивно понятно, и, что самое главное — это гораздо полезней. Разноцветные ссылки — никому не понятное уебище. Даже если и подписано «Bright Color = Newer» — я захожу на сайт читать, а не оттенки цвета угадывать.
То же самое и с размерами — размеры шрифта — показатель на самый точный. Сколько разных и различимых размеров можно запихать в одно облако? Десяток максимум. Сложнее всего быстро пробежать все «облако» глазами, ибо глаз в любом случае застревает на самых крупных элементах и дальше не идет. И это не плюс, это минус.
Никому никогда не интересны все ключслова. Потому что часто бывает ситуация, когда есть «случайные» ключслова, принадлежащие одному-двум документам.
Как надо
В своем личном блоге проще всего отобрать штук пять ключслов, которые «наиболее характеризуют». И разместить их любым удобным способом. Например, как у меня справа. Вам самому безо всякой «автоматизации» лучше знать, какие ключслова «круче», без привязки к их частоте.
На массовых «социальных сервисах» облако тэгов неинформативно, но нужно для того, чтобы круто выглядеть, и чтобы пальцем не показывали. И для того, чтобы направить леммингов по ими же протоптанной тропинке. В этом случае можно вместо «букав» просто использовать прямоугольники разных размеров и цветов, так как кликнут все равно на тот, который больше. А надписи никто не читает.
Bonus track
Хранить тэги в таблице надо так:
1. В таблице с постами. Отдельное поле «ключслова через запятую». Это не два способа, а один, то есть хранить надо и так и так одновременно. Ценой небольшой избыточности информации мы получаем гораздо больший простр для. Минус только один: при редактировании надо редактировать и то и то, разумеется.
пользователь не увидит. Самые умные уже догадались, как осуществляется контроль версий. Да, тоже поабзацно. (Он и сейчас так осуществляется, но только потому, что так проще).
Заголовок дня
Белогривые лошадки
2. В отдельной таблице связей, которая имеет вид «ID поста — ID тэга».