В комментариях к моему "About'у" Денис Зайцев дал ссылочку на сервис централизованного хранилища персональных данных - COPi.ru.
И у меня возникла идея, как этот сервис можно отлично улучшить.
Почему не COPi.ru
Сразу скажу, что лично мне этот сервис не подойдет. Уже просто потому, что мне больше нравится, когда свои данные я храню на своем сервере. Просто вот такой бзик :-). Хотя глобально технически это может быть и хуже, и лучше в разных ситуациях.
Что мне действительно не подходит - это то, что я не могу написать там только свой собственный свободный текст, в своем дизайне, да еще и с каким-нибудь прикольным скриптом, который будет периодически случайно менять мою фотографию :-).
Но не у всех сетян есть свое постоянное место в сети, многие просто "живут" по форумам и мысль о содержании какой-нибудь своей странички навевает на них скуку. Для них такой сервис - отличная штука. Постоянное место с коротким URL'ом, где можно все про себя написать.
Но у меня, как поборника веб-стандартов и законченного зануды, конечно не могло не появиться критики :-).
Проблема в том, что эта интернет-визитка не машиночитаемая, только человекочитамая. Это важно. Например это значит, что вы можете оставить в форуме только ссылку на свою интернет-визитку, и читатели форума должны будут на нее кликнуть, чтобы увидеть. Было бы удобней, если бы форумный движок сам мог выдрать из вашей визитки нужные данные (ФИО, дата рождения, профессия) и подставлять к вашему нику. Для этого формат должен быть машиночитаемым.
Вообще-то, прочитать визитку COPi можно, но только в формате VCF. Но VCF - старый очень формат, который не очень удобно парсить, и самое главное, в нем не предусмотрена такая штука, как кодировки. А это значит, что работать это будет только там, где администрация форума считает windows-1251 дефолтной кодировкой. А таких мест становится неуклонно меньше, и хорошо.
hCard
Несмотря на то, что моя страничка About имеет свой дизайн, вписана в структуру сайта, и написано скорее для людей, она машиночитаема. Внутри она размечена форматом hCard и полностью содержит все, что нужно для выборки из нее информации. Например, я пишу:
Родился 13 февраля 1978 года
... а в коде это выглядит так:
Родился <abbr class="bday" title="1978-02-13">13 февраля 1978 года</abbr>
Класс "bday" показывает, что это день рождения, а "title" содержит дату в формате ISO - все это регламентировано в hCard. Это означает, что одна и та же страница может использоваться и как машиночитаемая, и как человекочитаемая.
Предложение
Есть отличная идея, чтобы COPi.ru добавили hCard-разметку к своим визиткам. Возможно, они уже и сами думали над тем, как сделать эту штуку машиночитаемой, так вот hCard - идеальный вариант, потому что это уже довольно устоявшийся известный стандарт.
Реализовав эту штуку можно тут же получить поддержку в среде гиков, которым очень нравятся эти модные фенечки. Потом это все обрастет всяческими интересными тулзами, о которых сейчас никто и не помышляет. И COPi.ru станет одним из первопроходцев Web 2.0 в России :-)
И кроме того, это не должно быть трудно, хотя это, конечно, сильно зависит от внутреннего устройства их системы. Обычно самое "сложное" - это сделать из HTML'а XHTML. Причем, можно даже не валидный, а просто well-formed. То есть, если совсем по пунктам:
- все теги и атрибуты должны быть в нижнем регистре
- все атрибуты должны быть в кавычках
- в одиночные теги типа
<img ... >
и<br>
нужно перевести в XML'ный вид cо слешем:<img ... />
и<br/>
- спецсимволы (&, <, >, ") должны быть отэскейплены
Это можно даже делать автоматически с помощью тулзы HTML Tidy. Ну и дальше добавить классы и title'ы к нужным элементам. И все :-).
Что дальше
Чтобы появилась реальная выгода от использования машиночитаемого формата, одной поддержки со стороны COPi.ru недостаточно. Это типичная проблема "яйца и курицы": никому не интересно структурировать информацию, если этим никто не будет пользоваться, и никому не интересно писать сервисы, если нигде нет структурированной информации. Чтобы ее разрешить, кто-то должен быть первым. Отсюда и исходит мое предложение к COPi.ru, потому что информации у них уже много, а структурировать ее может быть достаточно просто.
Но дальше должен быть следующий шаг - появление сервисов. Нужно, чтобы программисты (это не кто-то, это вы, ребят, моя основная аудитория из веб-гиков) написали плагинчики к PhpBB, PunBB, VBulletin, Wordpress, Movable Type, Livejournal, позволяющие людям подписываться ссылками на свой hCard. То есть, в профиле форума будет висеть текстовое поле, куда человек напишет URL (на COPi.ru или свой собственный) и форум сам узнает, как его зовут и какой у него ник (поле nickname в hCard тоже есть).
По идее, это тоже не должно быть трудно. Брайан Суда переводит hCard в vCard вообще одним XSLT-файлом!
А дальше уже мы (опять веб-гики) разнесем эту весточку по миру.
Меня тут справедливо спросят, а что сам-то? Вынужден признать, что обременен самой стандартной отмазкой: слишком много проектов и слишком мало времени. Да и с PHP я знаком не особенно близко... Подхачить чужой код - это одно, а писать свой - совсем другое.
Комментарии: 8
btw, люди наоборот часто стараются скрыть реальное имя и прочие данные (мыло, аську и т.п.) да и ники в разных форумах и блогах часто разные. Надо это или нет, время покажет ессно.
Ну, никто же не мешает написать Руслану Курепину эти предложения
Я написал, конечно. Но статья все равно полезна. Вдруг я "придумал" что-то, что давно уже есть, меня и просветят :-)
Парсить vCard действительно не подарок (если нету правильной библиотеки для этого - Ruby в этом смысле повезло потому что есть vPim). Но он очень хорошо сопрягается с другими приложениями - например из-за нестандартного поля в vCard которые генерит AddressBook в MacOS X я могу в своем приложении обеспечить что-то вроде синхронизации карточек.
Я лично за то чтобы поддерживать все форматы, чем больше возможностей тем лучше. Кстати, стандартным "обменным" чарсетом для vCard является UTF-16 (о чем можно было бы и почитать). Который вполне себе работает :-) hCard же пока "маловат", но обрабатывать его легче - следовательно делаются просто модульные экспортеры и импортеры. Как минимум три - CSV, vCard и hCard.
Что же касается PHP - импортер vCard есть в Horde, уверен что его можно оттуда выдрать. А для рельсистов есть vPim (очень приличный).
С кодировкой все интересней :-). Я почитал внимательней RFCшку VCard. UTF-16 я там не нашел, зато нашел, что сам был в корне не прав относительно отсутствия там указания кодировки. Она там есть, точнее была:
То есть, советуют указывать кодировку за пределами самого файла, ну да и бог с ним. Главное, есть. Правда, тот самый сервис Брайна Суды, который генерит VCard, это не использует, поэтому кодировку действительно нельзя угадать.
И еще насчет того, что hCard "маловат", непонятно. Он ведь по функциональности полностью повторяет VCard, просто синтаксис в XHTML вписан, вот и все...
Теперь вспоминаем про OpenID и иже с ним и, наконец, формулируем словами базовую идею: у человека есть персональный УРЛ, который он может скормить любой системе и эта система пойдёт по нему и найдёт там всё, что ей надо.
Воткстати, раз уж Вы всё равно требуете e-mail с комментаторов, то почему бы не давать им возможность получать на него ответы?
по ссылке http://ptath.ru/2005/07/03/utf-8-i-kostnoe-myishlenie/ (и хорошо) уже нет материала.