e.motion
Featured, Статьи

Занимательная арахнология

Автор: Дмитрий Смирнов
Опубликовано в журнале «Домашний компьютер» №1 от 9 января 2008 года.

В поэме Овидия «Метаморфозы» есть миф о дочери Идмона, красильщика одежд из города Колофон, Арахне. Она была искуснейшей ткачихой своего времени, а время было непростое: нельзя было выйти на улицу, чтобы не встретить там олимпийского бога или богиню. И вот, однажды, мастерица заявила, что в своем ремесле превзошла саму Афину, покровительницу ткачей. Богиня не могла не ответить на вызов. Был устроен турнир, и в результате Афина превратила Арахну в паука (следует отметить — из лучших побуждений…). Но и в этом образе Арахна продолжила заниматься любимым делом — ткать, если не пряжу, то — паутину. А по-гречески «арахна» и значит «паук». Ну, а по-нашему паутина называется «веб». Рассказами о первом и втором вебе мы испещрили уже не один десяток страниц и порядком вам надоели. Что ж, двинемся дальше. На повестке дня — третий и четвертый слои Повсеместно Протянутой Паутины.

Сегодня модно, будучи интернет-снобом, ругать Веб 2.0: дескать, Интернет стоит вовсе не на блогах и социальных сетях, что это все лишь тонкая, далекая от народа прослойка веб-бездельников с их надуманными суетными проблемками; до хрипоты доказывать, что самая соль Сети заложена в веб-форумах, фэн-сайтах и домашних страничках, до которых не только не добрался Веб 2.0 с его XML и RSS, но куда и поисковики заглядывают не каждый день. Вскинув бровь, спрашивать: «ЖЖ? Это что?»

Потратив на объяснение глубоко теоретической идеи второго веба и присущих ему технологий массу времени, мы в результате более-менее разобрались в сути явления. Конечно, в рамках этой темы можно рассказать еще очень о многом: о социальных сервисах (закладках, музыке, географии и прочем), о новых протоколах, об амбициях империи Google и прогрессивных поисковых интерфейсах; наконец, о концепции Интернета как платформы и новых сетевых бизнес-моделях. Но отложим эти увлекательные беседы до лучших времен и будем считать, что на данном этапе представление о Вебе 2.0 получено (если нет — читайте подшивку ДК за последнюю пару лет.)

Кратко, второй веб — это окружающая нас реальность (если можно так назвать чисто онлайновое явление). Но неторопливое созерцание содеянного — черта, уже давно не свойственная нашей эпохе. Поэтому если некая технология уже внедрена и существует, это верный признак того, что ее следующее поколение находится в активной разработке, а следующее после следующего — как минимум в виде концепта. Воодушевленные такой перспективой, мы решили расспросить поисковики и знающих людей о вебах 3.0 и 4.0. И действительность оказалась покруче «Фауста» Гете. Друзья, эти вебы уже существуют. Кроме того, в Сети нашлись упоминания вебов вплоть до 9, 10, а кое-где и до 451 (привет старине Брэдбери).

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

Коротко об авторах

Тимоти Джон Бернерс-ЛиАвтором (а точнее, идеологом) вебов 1.0 и 3.0 является один и тот же человек. Это Тимоти Джон Бернерс-Ли, и родился он в Лондоне в 1955 году.

Исходные данные Бернерса-Ли были неплохими: родители-математики работали над созданием одного из первых компьютеров, сам Тим получил приличное образование (Оксфордский колледж и университет) и вскоре после защиты диплома начал работать в CERN (Conseil Européen pour la Recherche Nucléaire, то есть Европейском совете по ядерным исследованиям). Помните «Ангелов и демонов» Дэна Брауна? Именно об этом CERN — речь. Язык не поворачивается назвать это научно-исследовательским институтом, скорее это — научная империя, расположенная на границе Швейцарии и Франции (см. сайт).

В 1989 году Бернерс-Ли работал над созданием компьютерной сети, которая должна была увязать не только бесчисленные хранилища данных самого CERN, но и других научных организаций по всему миру. По сути, стояла задача создания системы электронного документирования и публикации научных разработок. Требовалось представить документы в виде гипертекстового массива, элементы которого ссылались бы друг на друга. Из-за этого каждый отдельный документ должен был стать легче — можно избежать излишнего цитирования, а также добавить интерактивные оглавления и ссылки внутри самих документов.

А если проще — всего-то и требовалось создать гипертекстовую сеть, с той лишь поправкой, что подобного понятия на тот момент еще толком не существовало.

И Бернерс-Ли с коллегами ее создали. Они разработали несколько протоколов и механизмов, которые легли в основу будущей паутины. Первый из них — URL (Universal Resource Locator, универсальный определитель местонахождения ресурса), придуманный в 1990 году. В нашем случае URL — это адрес, который мы пишем в браузере, чтобы попасть на ту или иную веб-страницу. Впоследствии понятие URL было расширено до URI (Universal Resource Identifier, универсальный идентификатор ресурса), а еще чуть позже слово universal в обеих аббревиатурах заменено на uniform (единый, единообразный). Без этой системы идентификаторов представить себе Интернет, прямо скажем, трудно.

Второй ключевой разработкой Бернерса-Ли стал язык HTML. Его «миссией» было структурирование документов, наполнение их гиперссылками и возможностью удобного форматирования. Еще одной задачей HTML была абсолютная платформенная независимость: HTML-документ должен был читаться на любом компьютере. Надо сказать, впоследствии эту идею испортили, а точнее, принесли в жертву визуально-мультимедийным необходимостям. Сегодняшний HTML сложен и далеко не универсален. Но у первой версии HTML, опубликованной в 1991–1992 году, таких печалей еще не было.

Третьим элементом, позволившим родиться Паутине, стал HTTP (протокол передачи гипертекста). Он также был создан Бернерсом-Ли в 1991 (а опубликован в 1992) году. Это клиент-серверный механизм, регламентирующий общение сторон: запрашивающей — клиента, и отвечающей — сервера. Он разделяет их функции, определяет синтаксис и семантику.

Идея, ради которой разрабатывались эти механизмы, возникла у Тима Бернерса-Ли еще в 1989, и зачастую именно этот год считают годом рождения Паутины. Однако первые реализации URL, HTTP и HTML соединились лишь 6 августа 1991 года. В этот день Тим выложил в Интернете первый в истории нашей планеты веб-сайт. Серверная часть состояла из веб-сервера httpd, а в качестве клиента выступил первобраузер, названный... WorldWideWeb! Он же и был первым WYSIWYG (то есть визуальным) HTML-редактором.

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

Задумайтесь на минуточку: тогда, в августе 1991, Паутина — это всего один единственный сайт! А время–то было какое: в СССР — путч; Шумахер впервые вышел на трассу «Формулы-1»; в Польше рухнула Варшавская радиомачта, самое высокое на тот момент в мире сооружение. Но что там мачта, что там СССР, когда рушился старый мир офлайна, и наступала цифровая эпоха!

«Два — движет, трется — три…»

Так сказал поэт Хлебников. Ну а мы продолжим рассказ в прозе. Второй веб никем толком не был изобретен. Он «завелся» в Интернете как-то сам по себе, незаметно вырос из первого веба в период кибердепрессии, на границе тысячелетий, когда Интернет и вообще IT-индустрию охватил крах доткомов и инвестиций. Маркетологи и менеджеры на год-другой оставили программистов в относительном покое, и у тех появилось время все осмыслить и переписать правильно. Тогда же появились AJAX, RSS, DHTML и прочие механизмы, определившие лицо второй версии «Паутины». Выросли сервисы-«кирпичики», из которых сегодня складываются сайты Веба 2.0.

Не изобрел, но благословил (как тот старик Державин) новое явление еще один известный Тим — О’Рейли, американский издатель и пропагандист движения ПО с открытым кодом. В 2005 году он опубликовал статью «Что такое Веб 2.0», где подробно описал соображения, родившиеся в результате совместного мозгового штурма в его издательстве O’Reilly Media и компании MediaLive International. Статья эта принесла Тиму известность, сравнимую по масштабу со всей остальной его деятельностью — попадание было тысячепроцентным.

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

Итак, вкратце: отличия второго веба от первого заключаются в отношениях авторов и «посетителей». Если в Веб 1.0 хозяева сайтов определяют весь их контент, то в 2.0 — лишь предоставляют посетителям чистый сервис, наполнять который информацией должен сам пользователь. Произошла «смена полюсов»: Интернет встал с ног на голову (или наоборот…). Статическим сайтам пришли на смену динамические, хранение информации у себя на сайте под замком потеряло смысл — контент растекается по Сети с помощью RSS (и ценностью стало именно его распространение), отдельным домашним страницам на смену приходят блоги, многие офлайновые сервисы перемещаются в Сеть и превращаются в социальные (например, «закладки»). Произошла еще большая децентрализация пиринговых механизмов. Napster’у пришел на смену BitTorrent, «Британнике» — «Википедия». Появились звуковые и видеоблоги. Отпала необходимость в почтовых клиентах — Google со своим GMail изменил представление о почте. Коммуникативные сервисы — мессенджеры, email, голосовая и видеотелефония — перестали быть разрозненными и стали объединяться в единые коммуникативные среды (на этом рынке сегодня действуют и Google, и Microsoft, и многие другие). Изменилось само представление данных, древовидную иерархию заменили «облака» тэгов, а поиск из обычного «плоского» сервиса стал многослойным — то есть раздельным поиском по вебу, блогам, видео, картинкам, картографическим сервисам и т. д. Таковы реалии Веб 2.0.

Сказка о тройке

Название Веб 3.0, родившееся совсем недавно, — это дань моде на нумерацию вебов. Однако сама идея этого появилась у того же Тима Бернерса-Ли еще в 1990-х. В 1994 году он оставил работу в CERN и возглавил Консорциум World Wide Web (W3C) — организацию, ставшую неформальным министерством веб-технологий. Веб-протоколы не разрабатывает только ленивый, и зачастую одни разработки дублируют другие. World Wide Web Consortium рассматривает их все и некоторые утверждает в статусе «рекомендаций», являющиеся де-факто стандартами Сети. Без этой организации в стане интернет-программистов воцарилась бы анархия.

Во второй половине 1990-х Бернерс-Ли предложил концепцию «семантической сети» на рассмотрение сообщества. Еще тогда он обратил внимание, что паутина сайтов в ее существующем виде катастрофически непонятна самим компьютерам. У содержимого Сети не было какого-то внятно структурированного описания, опираясь на которое машины смогли бы понять и упорядочить (для себя и для нас) то, что мы пишем в Интернете. Текстовый поиск был лишь методом индексирования страниц; компьютеры довольно прямолинейно сохраняли найденное, но их интеллект не мог осмыслить текст страницы так же, как это делает человеческий мозг — разница между «процессорами» все еще остается несоизмеримой.

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

Концепция семантической паутины была опубликована и принята W3C в 2001 году.

Зачем на практике нужен семантический веб

Тим О’РейлиВеб 3.0 называют семантической паутиной, то есть «паутиной информации».

Ежедневно мы используем самые разные данные, которые, даже будучи электронными, не являются частью одной паутины, то есть не связаны между собой, тогда как могли бы. Классический пример — вы можете просматривать на сайте банка состояние счета и историю платежей по карточке, делать пометки в электронном органайзере или, например, листать фотографии у себя на компьютере или на сайте. Но попробовать вот так запросто, без лишних усилий, увидеть, что вы делали в тот день, когда была сделана фотография? Без ручной работы не обойтись: придется изучать свойства снимка и вручную отматывать календарь. Также и в органайзере вы не увидите и банковских выписок — эти данные не связаны между собой. Почему? Потому что мы их не увязали, а сама машина еще не обладает ни соответствующим ПО, ни должной компетенцией для сопоставления между собой вообще всех данных, до которых она может «дотянуться». Привязки возможны не только по дате, но и по множеству самых разнообразных критериев (то есть измерений). Сейчас же эти данные хранятся в различных программах или базах данных: файлы и их свойства — в файловой системе, банковская информация — на сайте банка или в присылаемых вам по почте отчетах (хорошо, если XLS, но чаще — PDF). В роли органайзера обычно выступает Outlook или Lotus, новости поступают через RSS-читалку или через браузер, общение происходит по ICQ или другому мессенджеру, большая часть телефонных номеров хранится в вашем телефоне, а карты города зашиты в GPS-приемнике вашего автомобиля. И все, все, ВСЕ эти данные — раз-роз-не-ны. Хотя они — об одном: о вашей жизни в окружающем мире, который един. Не правда ли, было бы здорово увидеть карту, на которой отображалась бы география ваших финансовых трат? Карту встреч с теми или иными контактами? Сводную таблицу денежных расходов и контактов — кто из ваших друзей вам дороже всего? Продолжите на досуге размышления о том, какие данные можно было бы красиво соотнести с другими.

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

Таким образом, каждый объект станет источником (читай: базой) данных. Эта база должна быть подключена к Cети и связана с мириадами других сетевых баз (объектов) не физически, но логически — самим лишь фактом того, что эти базы говорят об одном и том же.

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

Это — Веб 3.0, слой паутины, хранящий объяснение нашего мира для машин. Что же в этом случае будет представлять собой номер 4? Давайте поразмыслим.

Веб 1.0 — это базис, фундамент. В его основе лежит просто гипертекст и скрипты.

Веб 2.0 — паутина объединения. Она позволила данным свободно перетекать из пустого в порожнее (читай — из одной площадки, самой по себе не содержащей информации, в другую). Данные стали структурированными и отформатированными, сайты научились взаимодействовать друг с другом.

Веб 3.0 — перенос идеи второго веба из «плоскости» Интернета в «трехмерную реальность». С помощью XML-подобных диалектов будет описан весь мир — как цифровой (тексты, картинки, звук, видео — то есть любые существующие цифровые ценности), так и аналоговый. Понятный нам мир станет понятнее машинам; связи между сущностями — теснее.

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

Паутина 4.0 будет таким же пользователем Интернета, как мы с вами; приложением, но мыслящим. А ее неотъемлемой частью должны стать сенсорные сети — автономные самоорганизующиеся цепи датчиков, что будут разбросаны по всей планете и внедрены буквально повсеместно. Эти датчики на физическом уровне «подключат» планету к Сети (или наоборот). Сеть станет действительно трехмерной и повсеместной. И, возможно, термин «паутина» к тому времени будет заменен на что-то более объемное. Точите ваше образное мышление!

Технические подробности

Пока четвертый веб еще только появляется на горизонте, попробуем все же разобраться в третьем. Как и любой уважающий себя «номерной» веб, он основан на трех китах: URI, RDF и OWL. А теперь по порядку.

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

RDF (Resource Description Framework) — это модель описания метаданных ресурсов. Основной внутренний формат RDF — так называемый триплет «субъект-предикат-объект». Проще говоря, это — формат утверждений. Представьте себе, что требуется описать в RDF вашего ленивого кота. «Субъект-предикат-объект» в этом случае будут выглядеть как «кот — имеет характер — ленивый», или «кот — имеет состояние — сон», или «кот — имеет координаты — подоконник», — так примерно. Каждый из трех элементов выражения будет идентифицирован своим собственным URI. Мы не будем приводить образцы реального кода, иначе статья станет излишне специальной, однако Интернет полон примеров RDF-разметки; интересующиеся без труда найдут и простые, и сложные RDF-документы с комментариями.

Третий кит семантического веба — онтология (не путайте с аналогичным философским термином). Онтология в данном контексте — это попытка увязать все существующие схемы описания данных в единую концептуальную схему, единую иерархию. Для описания онтологий создан специальный язык OWL (Ontology Web Language, чаще он называется Web Ontology Language), основанный на XML. Кардинальное отличие OWL от XML в том, что это не просто формат описания предметов, но и инструмент, который позволяет осмысливать описываемые предметы, рассуждать о них. По адресу www.w3.org/TR/2004/REC-owl-guide-20040210/wine.rdf можно, например, увидеть онтологию вина. Подробные комментарии к этому документу на русском языке читайте на странице sherdim.rsu.ru/pts/semantic_web/REC-owl-guide-20040210_ru.html — здесь нам, увы, негде развернуться.

Другим примером такой машинно-читаемой онтологии, основанной на RDF и OWL, можно считать проект FOAF (Friend of a Friend, «друзья друзей»). Она описывает людей, их деятельность, а также отношения к другим людям и объектам. Можно описать с помощью FOAF любого человека; так как FOAF-описания существуют в едином логическом пространстве, они логически объединены в социальную сеть без необходимости создания и поддержки централизованного сервера для хранения информации. Когда кто-то открывает вашу страницу и находит там FOAF-документ, он автоматически получает информацию о вас в FOAF-пространстве. У каждого FOAF-профиля должен быть уникальный идентификатор (например, e-mail или URI вашей домашней страницы или блога).

В этом месте полагается разместить традиционный вопрос: «А что говорят критики?» О, у них есть, что сказать о семантическом вебе… Они полагают, что эта идея ставит перед собой две цели: одну — бесполезную, но реальную, другую — дерзкую, но недостижимую. Бесполезной им видится задача добавления метаданных всюду, куда только возможно. Однако почти невозможно описать предмет во всей его полноте, ибо сколько контекстов, столько и описаний, а контекстов может быть много, и описания (а за ними и машины) будут путаться.

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

Описание данных для людей и для машин — это дублирование информации. Эта проблема решается с помощью так называемых «микроформатов». Так называют хитрый подход к форматированию данных с использованием лишь классов и атрибутов XHTML и HTML, описывающий семантику объектов. Так, например, микроформат HTML vCard (hCard) с помощью HTML-атрибутов class, rel и rev позволяет создать HTML-фрагмент, который можно вставить в (X) HTML, Atom, RSS или XML-код, и который будет являться семантически корректной визитной карточкой (контактной информацией).

Существуют и другие микроформаты (например, hCalendar, hResume) — их описания коллекционируются в «вики микроформатов» microformats.org/wiki.

Гы-гы-гы, отставить семантический веб!

Совсем недавно в своем блоге Тим Бернерс-Ли ввел понятие GGG (Giant Global Graph, гигантский глобальный граф). Этим термином он обозначил Социальную Сеть, складывающуюся внутри и между отдельными социальными сайтами типа Facebook или, скажем, «Одноклассники.ру». Бернерс-Ли высказался в том духе, что то, что он раньше называл семантической паутиной, пожалуй, следовало назвать именно «ГГГ».

Гигантский Глобальный Граф — развитие Повсеместно Протянутой Паутины. Если последняя состояла из контента и указателей (читай: ссылок), то GGG — это контент, указатели, отношения между объектами и описания этих объектов и отношений. GGG — следующее поколение WWW. Поколение G?

Вообще, следить за ходом мысли Тима Бернерса-Ли в его блоге и в новостях — чрезвычайно увлекательное занятие. Заслуги этого человека оценили не только жители созданной им паутины, но и крайне «офлайновые» персоны. Так, в 2004 году Елизавета II, королева Великобритании, посвятила Бернерса-Ли в рыцарское звание за службу во благо глобального развития Интернета. С тех пор создателя WWW следует называть Сэр Тим Бернерс-Ли.

И вот еще что: мы вдруг припомнили удачный термин, которых подходит к многоуровневой паутине будущего: Matrix. GGG.

Интернет vs WWW

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

Итак, Интернет и Паутина — вещи принципиально разные. Читавшие тех же «Ангелов и демонов» помнят пассаж о том, что WWW был изобретен именно там, в Швейцарии, в CERN, то есть в Европе. Тогда как сам Интернет, как известно, — изобретение американское.

Примерно в 1982–1983 годах Интернет вырос из военной сети США ARPANet; по сути, Интернет — это TCP/IP. Когда последний заменил собой протокол NCP, ARPANet превратился в Internet.

Эта сеть стала средой обитания множества технологий и протоколов, этакой планетой, на которой возможны самые разные формы жизни. Сначала появились служебные протоколы — простейшие обитатели. Физический уровень упоминать не будем; на канальном же — это Ethernet, Token Ring, Frame Relay, PPP, SLIP… На сетевом — IP, ICMP (по-нашему, ping), IPX, NetBEUI, ARP… На транспортном — TCP, UDP, на сеансовом — SSL, NetBIOS, RPC, а на уровне приложений — DNS, SSH, Telnet, POP3, SMTP, IMAP, LDAP, HTTP, FTP… Но кажется, мы увлеклись аббревиатурами.

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

Итак, не стоит путать эти два понятия: «Сеть» (Internet) и «Паутина» (WWW, то есть сайты). Они говорят совершенно о разном.

Пользуясь случаем, хочется обратиться к читателям с воззванием. Товарищи! Перестаньте перед каждым веб-адресом в браузере набирать www! Сайты www.microsoft.com и microsoft.com — это синонимы. В очень редких случаях в рамках одного домена по адресу с приставкой www и без нее сконфигурированы разные сайты — в 98% случаев они идентичны. Домен третьего уровня www — дань прошлому, анахронизм, слово-паразит, наконец! Сохраним планету, экономя трафик, место и краску на клавише W!
  • WordPress

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

e.motion