вебдев
33 заметки
терапия
Сейчас этот блог в основном про психотерапию.
как правильно
Слушайте меня, я вас научу правильно жить.
психология
Буржуазная лже-наука, пытающаяся выявить закономерности в людях.
практика
Случаи и выводы из психотерапевтической практики.
кино
Фильмы и сериалы.
книги
Это как кино, но только на бумаге.
nutshells
«В двух словах», обо всем.
дорогой дневник
Записи из жизни (скорее всего, не интересные).
беллетристика
Мои литературные произведения и идеи.
духовный рост
Когда физический рост кончается, начинается этот.
дивинация
Как предсказывать будущее.
половой вопрос
Про секс и сексуальность.
заяижопа
Творческий дуэт с моей женой.
магия
«Магическое — другое название психического».
Карл Юнг
игровой дизайн
Раньше я делал игры.
игры
Компьютерные игры.
язык
Слова там всякие.
людишки
Уменьшительно-ласкательно и с любовью.
культ личности
Про великих людей (то есть, в основном про меня).
hwyd
Уникальная Система Прививания Привычек.
буклет
я
идеи
блоги
spectator.ru
дети
wow
вебдев
музыка
контент
программирование
религия
дейтинг
диалоги
яндекс
кулинария
coub
fitness
символы
йога
шаманизм
tiny
ребенок

Метки, тэги и AJAX

16 лет назад в категории вебдев

На проекте появились тэги, возможность подписки на новые ролики выбранных пользователей, в проекте применены AJAX-технологии.

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

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

А еще там есть AJAX, метки и тэги. Тэги, метки и AJAX.

Тэги, метки и AJAX. Тэги, метки и AJAX.

И AJAX.

0

Тэги 2.0: сontribute or not!

16 лет назад в категории вебдев

В последнее время я работаю в Яндексе. Это такая интернет-компания, поэтому я время от времени думаю про всякие интернетовские вещи, типа вики, голосований или прочего.

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

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

Речь пойдет о тэгах на массовых сервисах.

Костя Коломеец придумал себе замечательный принцип — «сontribute or GTFO» и теперь носится с ним. Более емкую и понятную формулировку того же самого я видел у кого-то на сайте в виде disclaimer’а «Если ты нехороший человек, иди нахуй отсюда!».

Костя мечтатель, а принцип работает только в маленьких сплоченных группах («сектах»).

В реальности все не так. Все из вас наверняка видели онлайновые игрушки, типа «некое место, где все и каждый может составлять слова из букв». Этого зрелища хватает минут на пять, основные паттерны поведения понятны сразу. Даже если не брать случаи явного вандализма, коллективная работа и сontribute не выходит не только потому, что люди к ней не способны, но еще и потому, что способа договориться у них нет.

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

Наглядный пример, почему весь этот вебдваноль не работает. Не глядя могу сказать, что одним из самых популярных тегов на яндекс.фотках будет тэг «я».

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

(Смех в зале).

И если вдуматься, это не шутка.

/entry/3254

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

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

В этом, кстати, сакральная суть вебдваноля: взять много-много говна и снимать с него сливки. Все, что снизу, уже не найдет никто. Понятно, что тэг «кошки» на каком-нибудь фотохостинге будет мегапопулярен до такой степени, что «кошечками», «котятами» и «котами» можно вроде как и пренебречь.

На фотки.яндексе запрос «кошки минус коты» дает 88 тысяч фотографий, «коты минус кошки» — 18 тысяч. И пять тысяч «котят». Еще есть «cats» и «кошечки». Это всё одно и то же, но в Облаке Тэгов пользователю предлагают только «кошек». Процентов 30 теряется, но UGC — такая помойка, что все к подобному поведению привыкли.

Кто смог, тот всплыл, ага. При этом хорошо, что Яндекс ищет по тэгам с учетом форм слова, то есть «кошки» и «кошка» — это одно и то же. В других местах это совсем не так.

Но это детские примеры. Желающие могут угадать, какой тэг приписал автор своему посту «КАК ВЫТАСЧИТЬ КЛЕЩА».

Конечно же, «ПАРАЗИТЫ КЛЕЩ». Это один тэг.

Первые три мысли, которые возникают сразу:

1. Синонимы.
2. Поиск.
3. Конечно же, «паразиты / клещ».

Тэги против категорий.

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

Cовершенно очевидно, что игры должны быть и там и там, при этом это должны быть «одни и те же игры».

Продолжая мысль — те же «игры» могут быть и корнем (главной категорией) в одном случае, и подкатегорией — в другом. Очевидно, что нужна не древовидная структура, а скорей структура связей между категориями. Для умных — граф категорий с выделением корневых узлов. Очевидно, что категории должны отражать интересы пользователей, как тэги. Не на уровне «популярные категории выводятся жирным шрифтом», а на уровне «есть интерес — есть категория».

Что-то похожее сделано у меня на nudnik.ru: тэги+связи, важные тэги, аналог «корневой категории», выделяются руками.

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

Идеальная система тэгов на любом посещаемом сайте должна выглядеть так:

1. Пользователи вводят тэги в обычном порядке.

2. Модераторы берут существующие тэги и выстраивают между ними связи. Да-да, модераторы. Если вы считаете, что можно создать сайт с UGC без модераторов, то закройте эту страницу и всё забудьте.

При этом эта задача «модерации» тэгов гораздо более продуктивна, чем модерирование постов: новые тэги появляются не так часто, достаточно из связать один раз, и это будет работать надолго.

2.5. Одна из таких связей — несомненно, связь типа «синонимы». Достаточно один раз завязать всех «кошек» на одной слово — и всё, проблема с котами решена once and for all. При этом у синонимов должен быть один главный, вокруг которого растет гнездо. (Бесполезный факт: синонимы растут в гнездах).

Когда пользователь вводит неглавный синоним, этот синоним должен автоматически заменяться на главный. Да, это будет фрустировать пользователя, но окончательно решит проблему с двояким толкованием термина «киски».

3. После редактирования связей происходит автоматическая чистка тэгов в существующих «постах». Например, «cats, киски, кошки, животные» становятся просто «кошками». «Животные» убираются по понятным соображениям: «кошки / животные», то есть «кошки» входят в «животных», и при выборке по тэгу «животные» кошки будут показаны тоже.

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

После чистки же (в идеале) остаются только несвязанные между собой тэги, например, пост про ребенка и кошку будет иметь тэги, натурально, «ребенок» и «кошка».

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

Наиболее близка с идеалу вот эта реализация, только там это поле почему-то называется «Search Categories» и выбирать можно только одну категорию. Попробуйте ввести туда «cat».

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

Плюсы системы: модератору не надо заранее изобретать всеобъемлющие категории, всё делают пользователи сами. Модератору достаточно один раз связать и причесать уже готовые, введенные пользователями, тэги.

Тестирование: Я взял 10000+ популярных тэгов с fotki.yandex.ru и попробовал их классифицировать, используя мою систему c nudnik.ru.

Удалось разобрать 200 самых популярных тэгов, потом мне просто надоело. Самое главное, что мне не пришлось создавать ни одного нового тэга, пользователи действительно все сделали за меня, и все тэги уже имели привязанный к ним контент.

«Корневых» тэгов, из которых можно попасть в остальные, получилось всего 8 штук.

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

Итого: Для пользователей не меняется ничего (это важно), они все так же вводят тэги. Модераторы связывают тэги и указывают на ошибки («синонимы»). Эти ошибки больше не повторяются.

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

Интерфейс.

Очень сильно хотелось написать прототип модераторского интерфейса и выложить в публичный доступ, но это было бы все то же «некое место, где все и каждый может составлять слова из букв», и ни к чему хорошему бы не привело.

Так что опишу словами.

Идеальный интерфейс для работы со словами — это... текстовый редактор. В нашем случае — поле ввода, типа textarea.

В несвязанном виде тэги имеют такой вид:

люди
я
дети
ню
природа
животные
домашние животные
кошки
кошечки
котенок
лошадь

Модератор берет и, натурально, работает с этим, как с текстовым файлом, используя простые правила, типа «знак /“ является разделителем» и простые понятные механизмы, типа cut/paste.

После редактирования человеком текст выглядит примерно так:

люди / я
люди / дети
люди / ню
природа / животные
животные / домашние животные / кошки
кошки / котенок
животные / лошадь
кошечки

После нажатия на кнопку «ок» получаем уже связанные цепочки, отсортированные по алфавиту:

кошечки
люди / дети
люди / ню
люди / я
природа / животные / домашние животные / кошки / котенок
природа / животные / лошадь

Осталось придумать синтаксис для синонимов. Тут всё просто, главное слово — кошки:

кошки = кошечки = киски

Никто не мешает выводить синонимы в конце текста, понимать комментарии и прочие служебные символы. На выходе (в форме ввода) получаем текст, вида:

## категории

!люди / дети
!люди / ню
!люди / я
природа / животные / домашние животные / кошки / котенок
природа / животные / лошадь

## синонимы

кошки = кошечки = киски

## еще не имеют связи

динозавры

Ну и мелочи — например, «!» в начале строки означает, что тэг действительно корневой (это вместо checkbox-а, ага), к тому же с сортировкой по алфавиту корневые тэги выводятся первыми. (Иногда надо связать несколько тэгов, но корневой тэг, который «достоин» попасть на морду сайта, например, выделить не получается).

Этот интерфейс в разы быстрей в работе, чем интерфейс с кнопочками, стрелочками и даже drag’n’drop-ами. Не говоря уже о поиске (Ctrl+F) и даже возможности банально впечатать нужное слово в нужном месте.

Стоимость разработки этого интерфейса стремится к нулю. Обработка данных тоже простая: режем на слова, сравниваем их с текущими тэгами, если есть «/» — проставляем связи.

0

Голосование-2

16 лет назад в категории вебдев

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

Голосование меряет только человеческий интерес. И всё. Те, кто думают, что голосованием можно измерять качество — в лучшем случае заблуждаются. Если будет анонимно голосовать одна и та же группа экспертов по всем работам, при этом никак с этими работами не связанная, — тогда может быть.

Голосование измеряет популярность.

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

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

То есть всякие артхаус и прочее geekery — это не показательный пример вообще. Другое дело, что на основе все того же голосования можно сделать фичу, типа «люди, которые поставили этому фильму пять“, так же поставили пять“ следующим фильмам», — тогда это будет работать даже на примере артхауса.

Принцип, кстати, всё тот же: пользователю на входе дается N-балльная шкала, всё остальное — просто работа с данными.

0

OpenID и гики

16 лет назад в категориях вебдев usability

До меня дошла недавно одна очень смешная вещь. Прямо-таки откровение.

OpenID — это не технология для гиков. Для конечного пользователя весь интерфейс работы с OpenID сводится к одному полю, где надо ввести URL. Или к одному полю, где надо ввести логин и одному dropdown-у, где надо выбрать один популярный сервер из списка. И всё.

Такое поймет даже моя мама.

Если пара-тройка крупных порталов (вам имена назвать, или вы сами понимаете, о ком я?) возьмет и молча прикрутит OpenID себе (а потом начнет пиарить), то это тупо отоварит процентов 90% аудитории интернета OpenID.

Васе Пупкину везде будет достаточно указывать, грубо говоря, «я pupkin на mail.ru» (ну вот, имя назвал).

Просто так отдельно стоящий провайдер OpenID — действительно вещь для гиков. «Зарегистрируйся у нас и получишь OpenID» — это чё, зачем и кому?

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

Надо кому-то (и под «кому-то» я понимаю провайдеров) просто собраться, нарисовать кнопки «openid enabled», сделать нормальные OpenID’шные урлы, которые не ведут «в никуда», и начать потихоньку продвигать.

С RSS, кстати, отдающая сторона тоже начала первой.


Если кто пропустил: Голосуй сердцем @ spectator.ru

0
«Таро как инструмент самопознания», курс от создателя spectator.ru

Голосуй сердцем

Во всех голосованиях, типа +1/-1 должно быть на самом деле +N/-M, где N!=M (N не равно M). Так как почти никто не понял моей гениальной гипотезы, поясню. Но сначала — в чем смысл голосования вообще. Но это кто-то должен сказать все равно. Голосование — это выбор. Перед вами поставили пять президентов и под каждым повесили radiobutton. (еще 1233 слова)

Плюсодин

Гипотеза.

Во всех голосованиях, типа +1/-1 должно быть на самом деле +N/-M, где N!=M (N не равно M).

Да?

Wiki 2.0

Wiki – довольно странный нишевый продукт. Довольно странный потому, что этим старьем все еще пользуются. А пользуются им – что тоже довольно странно – потому, что ничего лучшего до сих пор и нет. А ничего лучшего до сих пор нет, потому что продукт нишевый, и совместная работа над текстами не такая уж и популярная вещь. (еще 1144 слова)

Баксокарма

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

Заголовки нужны

Заголовки нужны. Dixi. Расширенная версия: первая версия моего блога была без заголовков. Ух я потом заебался с этим, когда переходил на новые движки. Поверьте мне. Да и вообще, заголовок банально идентифицирует текст. Вплоть до того, что я помню некоторые заголовки и могу их найти в поиске. (еще 94 слова)

Белогривые лошадки

Про облако тэгов хотелось бы понудеть. Движки, которые выводят облако тэгов на каждой странице, не кэшируя его — ущербны. Например, Wordpress генерирует страницу «пост с комментариями» с помощью 28 (!) запросов к базе данных. Поэтому посещаемые сайты на wordpress-е (не будем показывать пальцем) тормозят безбожно. (еще 523 слова)

Изобретение вебдваноля

There was a second part of the dream, too, dependent on the Web being so generally used that it became a realistic mirror (or in fact the primary embodiment) of the ways in which we work and play and socialize. Вебдваноль изобрел — правильно! — Тим Бернес-Ли. Он же вел первый блог — сразу после основания интернета. (еще 96 слов)

Гипертекст, веб и html

Гипертекст — идея хорошая. Прочитать про нее можно (и нужно) в моем дипломе. Но конкретно так называемый «веб» и html — предельно кривая ее реализация. Вот только некоторые «родовые травмы»: 1. Односторонние ссылки. Абсолютный и полный бред. Если я связываю документ А с документом Б, то велика вероятность, что документ Б тоже как-то связан с документом А. (еще 915 слов)