?

Log in

No account? Create an account

Мысли о распределённом блогинге. - Узором созвездий по мантии ночи

29.07.2011, Пятница

13:42:00 - Мысли о распределённом блогинге.

Previous Entry Поделиться Next Entry

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

Пожалуй, главное, чего сейчас не хватает, это появления достаточного количества и разнообразия (или распространения информации, если их и так хватает) легкодоступных агрегаторов френдлент. Чтобы не пол разным блогосервисам лазить, читая на одном одного друга, на другом другого. И не париться трансляцией своего блога во все места, где есть друзья. А просто сказать: "Мой блог брать вот здесь. А твой где? Меня авторизовать вот по таким реквизитам. А тебя как?". И дальше каждый сам добавляет на используемом им агрегаторе адрес ещё одного блога, который хочет читать. И даёт доступ другу в своём блоге. В общем, не сложнее, чем обменяться email'ами или авторизовать друг друга в системе мгновенных сообщений (аська, джабер, скайп...).

Только начинать надо, я думаю, не с софтины для индивидуального пользования на своём личном сервачке, а с создания площадки-агрегатора. Чтобы на ней можно было воссоздать свою ленту друзей из того же ЖЖ (и видеть в ней все подзамки, которые видишь под своим аккаунтом в самом ЖЖ), и добавить туда друзей из dreamwidth.org и lj.rossia.org. Т.е. нужно решить главную болезненность перехода на другой сервис -- разрыв накопившихся связей и/или необходимость "жить на два дома".

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

Comments:

[User Picture]
From:vitus_wagner
Date:29.07.2011 09:57:01
(Link)
По опыту полугода жизни на dreamwidth сейчас основная проблема заключается в том, что крупные блог-площадки считают пользователей других площадок неполноценными, почти анонимами. При этом нет никакой возможности указать что вот этой конкретной identity я доверяю. Ну и что что я grant access arilou.livejournal.com? От этого тебе все равно не дадут возможности делать нормальные ссылки в комментариях в моем блоге на DW.

А так в общем-то любой сайт, базирующайся на коде ЖЖ проблему интеграции блогов с разных сайтов (с точностью до подзамков) решает. И гугль-ридер ее тоже решает.

Еще одна проблема заключается в том, что OpenID-аутентификация требует наличия в сети исходного openid-сервера. Хотя, по-моему lj.rossia.org аутентификацию кэширует и позволяет чуть ли не месяц прожить без повторных запросов к openid-серверу ЖЖ.

(Ответить) (Thread)
[User Picture]
From:arilou
Date:29.07.2011 10:15:42
(Link)
Первая проблема, возможно, начнёт решаться, когда станет ещё более распространённой, когда о ней станут много и возмущённо говорить "простые пользователи".

А вот как решает проблему "любой сайт, базирующайся на коде ЖЖ"? Да, я знаю, что, будучи платником на ЖЖ, могу сам настраивать трансляцию внешнего RSS в псевдо-акканут ЖЖ, так, чтобы видеть его в своей френдленте. Правда, все "подзамки" там я при этом пропускаю. Что существенно. Заметь, вопрос чтения блога с другого ресурса должен решаться читающим, а не хозяином блога. И быть не особо сложнее подписки на чей-то блог на том же ресурсе, где обитаешь сам.

С OpenID -- да, есть такая буква. Решение, думаю, придумать можно. Скажем, 2-3 разных OpenID, объединённых в один псевдо-аккаунт. Не пускают с одного - зайду с друого, лишь бы при этом система поняла, что это всё тот же я.

Но, в целом, идти, по-моему, нужно именно через создание общедоступных агрегаторов, желательно работающих по общему стандарту. Чтобы склонять ситуацию к тому, что "если твой блогохостинг не поддерживает стандарт -- тебя не могут нормально читать твои друзья не с этого блогохостинга, тебе это не нравится и ты пинаешь разработчиков блогохостинга на доработки до соответствия стандарту, ну либо уходишь в другое место, где этот стандарт чтут и блюдут".
(Ответить) (Parent) (Thread)
[User Picture]
From:vitus_wagner
Date:29.07.2011 10:24:48
(Link)
В DW для того, чтобы создавать RSS-фиды не обязательно быть платником.
Насчет тифаретника - не знаю, спроси у тех, кто там тусуется.

Кстати всех юзеров тифаретника, которых я читаю, я читаю именно через DW и через созданные там фиды.

Поэтому код ЖЖ задачу решает. Другой вопрос в том, что конкретно ЖЖ за это решение денежек хочет.

То есть, если мы не считаем что существуют подзамки, то все ОК. Существующих прооколов RSS и Atom хватает. И все блогохостинги их поддерживают.

История с подзамками гораздо более интересная. Допустим юзер arilou в ЖЖ зафрендил юзера vitus_wagner с того же ресурса и дал ему право читать свои подзамки. Может ли юзер vitus_wagner c сайта dreamwidth.org каким-то образом доказать сайту ЖЖ свою идентичность с юзером vitus_wagner из ЖЖ и таким образом получить право получать по RSS подзамочные посты юзера arilou, не ставя про то в известность последнего?

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

Ну либо качать один пост множество раз.

А что будет если через пять минут после выкачивания поста, его владелец поменяет список тех, кому он позволяет этот пост читать?
(Ответить) (Parent) (Thread)
[User Picture]
From:arilou
Date:29.07.2011 10:51:03
(Link)
Да, ровно с подзамками всё очень интересно.

Доступ, я думаю, проверять придётся динамически с кэшированием на некоорое разумное время. Поскольку всё равно надо проверять время изменения, можно просто предложить изменение прав на запись считать изменением самой записи, и тогда право будет проверяться вместе с перезапросом содержимого записи. А у кого хостинг такое не поддержит -- те будут на эту тему очень сильно пинаемы своими пользователями ("А-а-а! Я написал то, что нужно было скрыть от многих, но забыл повесить замок. Я повесил его через 5 минут, но многие, кому не надо, всё равно видели мой пост даже через неделю! Из-за вас я поругался с друзьями! А-а-а!").

При этом права для каждого отдельного пользователя выяснять только по факту запроса от него.

Да, а доверие исходного сайта агрегатору -- либо есть, либо агрегатор должен уметь пробросить аутентификационную информацию пользователя, которому, конечно, придётся зарегистрироваться на исходном "недоверчивом" сайте, но по крайней мере не потребуется туда вручную ходить. Да, пользователю при этом придётся доверять агрегатору свою аутентификационную информацию от другого сайта.
(Ответить) (Parent) (Thread)
[User Picture]
From:vitus_wagner
Date:29.07.2011 12:55:59
(Link)
Что такое "права отдельного пользователя выясянть по факту запроса от него"?
Запрос-то от пользователя приходит когда исходный сайт третий день лежит, а пользователь хочет в кэше агрегатора прочитать доступные ему записиси.

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

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

(Ответить) (Parent) (Thread)
[User Picture]
From:arilou
Date:29.07.2011 13:50:51
(Link)
У нас с тобой, кажется, есть одно существенное расхождение в базовых принципах.
Ты хочешь построить систему, правильную с твоей точки зрения об обмене информацией и общении в сети.
Я же рассуждаю о том, что могло бы быть реальными пользователями при реально сложившейся практике общения.

Практика такова, что разговоры "не для всех" в сети ведутся. Просто потому, что такие разговоры бывают вне сети, и никто не запретит людям переносить и такое общение в сеть. И ничьи религиозные убеждения им не указ. Причин для таких разговоров "не для всех" бывает много разных. Какие-то из них чисто практические (скажем, обсуждения в мастерской группе готовящейся игры не должны быть открыты для игроков -- есть ли у тебя серьёзные доводы против этого?), какие-то лично-эмоциональные. Все люди разные.

И меня интересует повышение удобства общения со всеми этими разными людьми, а не построение идеальной системы для общения идеальных людей -- я не идеальный и не человек. И для решения моей задачи каждое "нехрен", отличное от уже привычных -- серьёзный удар по жизнеспособности затеи.
(Ответить) (Parent) (Thread)
[User Picture]
From:vitus_wagner
Date:29.07.2011 14:33:42
(Link)
У меня есть желание решить частную задачу - задачу публичного общения.
Поскольку очевидно, что если с самого начала включать в постановку задачи приватное общение, задача усложняется до необъятности.

В качестве компромиссного решения можно предложить сделать отдельную ленту постов ограниченного доступа (видимых данному юзеру). Это позволит более-менее аккуратно разнести непубличные разговоры от публичных. В этом случае ограничение непубличных разговоров одним сервером уже не кажется таким серьезным.
(Ответить) (Parent) (Thread)
[User Picture]
From:arilou
Date:29.07.2011 21:08:13
(Link)
По-моему, две разных ленты -- публичная и неочень -- это тот же гемор, вид с другого боку.

Есть принципиальная разница -- у меня одна основная лента (в которой собраны все, с кем я хочу общаться регулярно и желательно не пропустить что-то важное) или у меня их N (где N > 1). Во втором случае зачастую основной остаётся всё-таки одна лента, а вторая -- дополнительно. т.е. задача агрегирования оказывается нерешена. Особенно если важное сообщение от близкого друга может появиться в любой из лент. Да, ещё и хронологичность нарушается.

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

Хотя, конечно, поскольку у нас с тобой разные постановки задачи, бодаться нам не за что тут. И обсуждать можно обе. Главное не забывать, в контексте какой из задач пишется тот или иной ответ. ;)
(Ответить) (Parent) (Thread)
[User Picture]
From:vitus_wagner
Date:30.07.2011 05:38:37
(Link)
По-моему, агрегатор на домашнем компе будет маргинальным явлением минимум 2 года. IPv4 адреса кончились, IPv6 можно сказать, не начинались. Поэтому домашник компы доступные из интернета - редкость (в отличие, кстати, от 2005-2006 годов, когда я разрабатывал идею distributed-blog).

У меня основная идея заключалась в защите от DDoS-ов. В том, что количество общедоступных агрегаторов, несущих копию чьего-либо блога, примерно равно количеству постоянных читателей этого блога. Ответить на распределенную атаку распределенной защитой.
(Ответить) (Parent) (Thread)
[User Picture]
From:arilou
Date:31.07.2011 14:10:03
(Link)
О, да!

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

Хе... подумалось тут об ещё одном статусе для записей: "окончательная редакция" -- означало бы, что сверяться с оригиналом (в т.ч. и проверять доступность) необходимости больше нет, что ускорило бы получение записи читателями. Эдакая "сдача на архивное хранение в сеть". ;)

Кстати, а что там с IP-адресами сейчас, если, говоришь, IPv6 так толком и не родились? Можешь кратко описать или дать ссылку на _толковую_ и краткую статейку?
(Ответить) (Parent) (Thread)
[User Picture]
From:cats_shadow
Date:29.07.2011 12:35:47
(Link)
С подзамками получилось только если авторизуешься из агрегатора только как юзер соответствующего сервиса. Вот жж авторизацию по openID починит -- попробую пароль своему OpenID аккаунту прописать и проверить возможность парольной авторизации. Но это "через ..." получается, т.е. все-равно при авторизации OpenID запрашиваться не будет.

(Ответить) (Parent) (Thread)
[User Picture]
From:vitus_wagner
Date:29.07.2011 12:50:24
(Link)
Решение, когда для того, чтобы у тебя агрегировались в ленту подзамки, нужно доверять агрегатору свой пароль, который дает право не только читать, но и писать, оно какое-то по построению кривое. Надо думать над более другим протоколом, позволяющим делегировать только часть прав на блог. Кросспостеру одну часть, агрегатору другую etc.

(Ответить) (Parent) (Thread)
[User Picture]
From:cats_shadow
Date:29.07.2011 12:54:50
(Link)
В данном случае агрегатор стоит на моем же компе, сервис не публичный, хотя взломать могут всё. :)

Более другой протокол -- да, но в составе другого движка. ЖЖ (и ему подобные) чесаться не будут, IMHO, а взаимодействовать -- с ними.
(Ответить) (Parent) (Thread)
[User Picture]
From:vitus_wagner
Date:29.07.2011 12:57:24
(Link)
Мы тут обсуждаем случай, когда агрегатор многопользовательский и в web-е.
dreamwidth или тифарет может и почешутся. А ЖЖ - все равно сдохнет.
(Ответить) (Parent) (Thread)
[User Picture]
From:cats_shadow
Date:29.07.2011 13:03:16
(Link)
Агрегатор как раз многопользовательский и в вебе. rss-reader.spb.ru (движок -- tt-rss.org).

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

(Ответить) (Parent) (Thread)
[User Picture]
From:arilou
Date:29.07.2011 21:12:33
(Link)
Кстати, а в самом деле, не проще ли написать агрегатор, который, как постоянный фоновый сервис, можно будет поставить и на свой домашний комп (либо мощный ноут)? Вопрос недоверяния своих паролей решится автоматически.
(Ответить) (Parent) (Thread)
[User Picture]
From:vitus_wagner
Date:30.07.2011 05:39:36
(Link)
И чем это (с точки зрения нагрузки на originating site) лучше просто браузеров?
(Ответить) (Parent) (Thread)
[User Picture]
From:arilou
Date:31.07.2011 14:20:22
(Link)
снижение нагрузки первоочередной задачей я не ставил. Однако:

Браузер запрашивает готовую страницу, со всеми прибамбасами, которые порой превышают объём содержательной части, не говоря уж о том, что и собираются на ходу из разных кусочков. Агрегатор запросит только контент. А перед этим (если исходный сайт это поддерживает) запросит дату последнего обновления.

При этом агрегатор кэширует данные. Так что как бы там ни упал сайт -- заново почитать уже читанное я смогу. Плюс его можно настроить, чтобы не стучался с каждым запросом, если исходный сайт выглядит упавшим. Или даже если выглядит перегруженным. Например, появление в ленте одного нового сообщения "сдвигает" всю ленту и закэшированная страница этой ленты (а также все страницы со сдвигом в N записей) становится невалидной. Агрегатор же просто вытаскивает с исходного сайта новый пост и запрашивает даты изменения старых. Заметим, поддержка такого протокола оказывается в интересах хозяев исходного сайта, если их волнует вопрос нагрузки.
(Ответить) (Parent) (Thread)