Компьютерра - Журнал «Компьютерра» № 40 от 31 октября 2006 года
СОФТЕРРА: Википедия своими руками. WikiWikiWeb: от идеи до философии
Авторы: Илья Щуров Voyager, Борис Богданов
Очень сложно определить, что же такое вики — класс скриптов, технологическая концепция или даже философия. Первые вики-сайты появились в 1995 году, на основе этой технологии было создано несколько проектов, являющихся не просто масштабными, но уникальным. Тем не менее для широкого круга пользователей вики до сих пор остается загадкой.
Права и свободыДавайте вспомним, что мог сделать в Сети простой пользователь в середине девяностых, когда появились первые вики? Честно говоря, практически ничего. Создание собственного сайта требовало знания и опыта работы с ftp, html, cgi и прочими шаманскими практиками, недоступными простому смертному. Большинство же существующих проектов не могли похвастаться особой интерактивностью, и участие пользователей сводилось к гостевым книгам, форумам и попыткам уговорить администраторов наконец выложить присланную полгода назад статью (рассказ, фотографию). Воспитанные на суровых принципах ИТ-безопасности, создатели сайтов действовали так, как если бы все посетители поголовно были злобными хакерами и сетевыми вандалами и разрешали «самодеятельность» только в выделенных «вольерах», под чутким присмотром модераторов.
Вики была призвана решить простую и естественную задачу — дать возможность каждому посетителю участвовать в разработке контента. Участвовать не только в качестве комментатора, но и в качестве полноценного автора и редактора — наравне с администрацией и штатными сотрудниками проекта. Для этого требовались две вещи: во-первых, у пользователя должна быть техническая возможность внесения изменений в страницы сайта, а во-вторых — этот процесс не должен требовать специальных знаний и навыков.
Пример вики-разметки
== Биография ==
Михаил Булгаков родился 3 ([[15 мая|15]]) мая [[1891]] г. в [[Киев]]е в семье доцента Киевской духовной академии Афанасия Ивановича Булгакова и его жены Варвары Михайловны (в девичестве — Покровской).
Соответствующий HTML-код
<h2>Биография</h2>
Михаил Булгаков родился 3
(<a href= “/wiki/15_мая” title=”15 мая”>15</a>) мая <a href=”/wiki/1891” title=”1891”>1891</a> г. в
<a href=”/wiki/Киев” title=”Киев”>Киеве</a> в семье доцента Киевской духовной академии Афанасия Ивановича Булгакова и его жены Варвары Михайловны (в девичестве — Покровской).
Первый пункт стал краеугольным камнем вики-философии: возможность правки практически любой страницы любым (даже не зарегистрированным) посетителем сайта, полный отказ от «презумпции виновности» пользователя. Напротив, по умолчанию считается, что посетитель хочет принести проекту пользу, а не вред. Казалось бы, подобная «вседозволенность» должна приводить к полному уничтожению материалов и превращению любой вики в свалку спамерских ссылок. Тем не менее этого не происходит, причем далеко не только из-за совестливости посетителей. В вики сохраняются все изменения, произошедшие со всеми статьями с момента их создания. В любой момент можно сравнить две версии одной и той же статьи, увидеть, какие именно изменения были внесены, откорректировать страницу снова или просто вернуться к старой версии. Исправить нанесенный ущерб проще, чем его нанести. Здесь важна и психология вандалов — зачастую они пытаются привлечь к себе внимание, и молчаливый «откат» подействует значительно сильнее, чем грозные письма от модераторов и угрозы бана. Впрочем, у администраторов обычно все-таки есть возможность запретить изменение той или иной страницы или заблокировать конкретного пользователя. Однако технической возможности правки было недостаточно из-за сложности языков разметки, используемых в Вебе. С целью снижения порога вхождения была придумана так называемая «вики-разметка» — максимально простой и «человекочитаемый» способ структурирования текстов. Основные ее правила, достаточные для редактирования и создания новых материалов, можно узнать за считанные минуты. Впрочем, давайте посмотрим на живой пример (cм. скриншот и примеры кода). Как говорится, почувствуйте разницу.
Надо отметить, что у концепции вики-разметки есть один недостаток: будучи простой для восприятия человеком, она довольно трудна для формального описания. (Много труднее, чем, например, XML или распространенные языки программирования.) Отчасти из-за этого, отчасти по другим причинам отсутствуют и какие-либо стандарты на такую разметку, а каждый разработчик вики-ПО придумывает собственный язык. Как результат — несовместимости и проблемы с переводом с одного «диалекта» на другой.
Есть и другие особенности вики. Например, здесь в принципе нет проблемы «битых» ссылок. Ссылки ведут либо на существующие, либо на еще не созданные страницы. Что это значит? Предположим, что, редактируя страницу, например, в Википедии, вы выделили как ссылку термин, который не описан в энциклопедии. При клике на эту ссылку пользователь получит сообщение, что пока такой страницы нет, и ему будет предложено создать ее. (Постоянное приглашение к сотрудничеству — тоже элемент вики-философии.) При переименовании страниц ссылки также не пропадут — за это отвечает отдельный механизм поддержания целостности.
Вики и жизньВнедрить wiki мы решили два, а то и три года назад. Почему? Потому что скучно набивать тексты в тормозящем-на-любом-железе Word’е, где результаты сразу же, еще в процессе, не видны окружающим и, чтобы их показать, требуется этот ужасный вордовый файл куда-то пересылать, а потом ругаться, загружая его опять в эту программу.
В качестве движка выбрали WackoWiki, потому что его развитием некоторое время занимался очень авторитетный для меня человек — Рома Иванов, также известный как kukutz, — и это было и есть некоторым знаком качества и доступности.
Цели были просты — чтобы все сотрудники компании могли дописывать, редактируя друг за другом, различную сопроводительную документацию к проекту; в основном — руководства пользователей по всевозможным нашим сервисам. Большая часть вики доступна свободно, но есть и небольшой внутренний раздел только для разработчиков.
Сотрудники у нас молодые, поэтому проблемы взаимодействия с новыми технологиями (wiki) у них нет никаких. А большинство пользователей, ничего не поняли. Они заходят на страницу, читают ее, видят, что здесь можно сделать много чего еще, и, не понимая, что это и зачем, начинают создавать свои странички, закачивать странные картинки, редактировать тексты, которые не защищены от правки (их приходится потом восстанавливать, простота этого действия тоже заслуга wiki).
Валентин Любимов, руководитель проекта LiveInternet.ru
История и современностьПервый вики-движок, WikiWikiWeb, был разработан в 1994 году и в 1995 впервые появился в Интернете. Первым вики-сайтом стало Портлендское хранилище образцов, созданное Уордом Каннингемом (Ward Cunningham), где собирались фрагменты программного кода.
Вики в течение нескольких лет был удобным, но относительно малоизвестным типом приложений, заметная часть инсталляций которого была упрятана за файрволлами корпоративных сетей. Знаменитой эта технология стала после того, как была запущена Wikipedia, крупнейшая энциклопедия, бесплатная и открытая. Впрочем, о ней речь пойдет дальше. Вики прекрасно подходят для создания справочников, баз знаний, разработки документации, регламентов. В большинстве случаев, вики также может заменить систему управления контентом для обычного веб-сайта, даже не претендующего на особо активное участие пользователей — администраторы могут по старинке запретить правку страниц и оставить эту привилегию только себе.
На волне популярности Википедии появилось и множество не совсем обычных приложений. Скажем, в JotSpot вы можете работать не только с текстами, но и с электронными таблицами, календарями, фото-галереями, файлами и т. д. По wiki-принципу можно строить и картографические сервисы — посмотрите на wikimapia.org. Этот сайт делает достаточно простую и нужную вещь: позволяет пользователям добавлять описания любых объектов на карте. Cовместная работа над описаниями, хранение промежуточных версий, возможность отката к предыдущему состоянию записи — типичная вики. Аналогичными возможностями обзавелись и некоторые блоггерские движки (или наоборот, некоторые вики обзавелись возможностями блогов), породив множество терминов для обозначения такого комбайна: «блики», «блоки» (блог+вики) и т. д.
Появились компании, занимающиеся разработками вики-приложений для корпоративной среды — такие, как Confluence, Jot, CentralDesktop или Near-Time — их решения зачастую позиционируются как замена сложным системам документооборота. Вики занялись и в Microsoft — посмотрите на обзоры SharePoint Portal Server 2007. На основе JotSpot построен крупнейший коммерческий вики-сайт, принадлежащий eBay. Сегодня Wiki используется в таких компаниях, как Lockheed Martin, Telenor, Citigroup, Sony или Toshiba.