[lj] Идеи по поводу организации френдов
Dec. 24th, 2002 06:53 pmВ ходе обсуждения идей Кукуца. Сохраняю текст своего коммента отдельно.
Сущность жопы в том, что в модели LJ френды и группы связаны как "многие-ко-многим" общего вида, а иногда хочется более сложных разбиений. В частности поэтому у меня не поднялась рука на чёткий feature spec для френд эксплорера. Мыслям было слишком просторно. А вообще-то хочется чего-то такого:
- Группы входят в гипергруппы, причём группа принадлежит не более чем одной гипергруппе.
- Френд не может входить в более чем одну группу, принадлежащую к одной и той же гипергруппе.
Таким образом, каждая гипергруппа является дизъюнктным (хотя, возможно, и не полным) разбиением множества френдов.
Безусловно, из-за политических ограничений информацию о гипергруппах придётся хранить локально, со всеми вытекающими неудобствами. Утешает то, что подобный механизм нужен только для удобной ручной работы по организации френдов, а все остальные механизмы LJ могут работать и без него.
Пример использования гипергрупп:
- Гипергруппа "Происхождение" включает группы "Работа", "Родственники", "Собутыльники", "Не пойми кто".
- Гипергруппа "Приоритет прочтения" включает группы "Читать всегда", "Читать часто", "Читать иногда", "Читать, если больше делать нечего".
- Гипергруппа "Степень доверия" включает группы "Абсолютно доверяю", "Доверяю, но проверяю", "Продадут обязательно".
- Ну, вот ещё пример… (Предупреждение: нецензурно!)
Update: вот куда лучше формулировка. Говорю же, хреновый я аналитик.
Disclaimer: У меня очень интересная жизнь!
no subject
Date: 2002-12-24 08:10 am (UTC)Существует такое множество различных и взаимоисключающих предложений по развитию LJ, что единственным выходом развития LJ я вижу создание клиентов-браузеров на базе какого-нибудь "LiveJournal API".
Хотя, в принципе, это можно начать делать и сегодня...
no subject
Date: 2002-12-24 08:14 am (UTC)Ценность ЖЖ – в его населении (банальность, да), поэтому некоторую умеренную уёжищность его с технической точки зрения я лично ему легко прощаю. Что касается реализации предложений, подобных описанному, я специально оговариваю, что дополнительная информация будет храниться на клиенте.
Универсальный блог-сервер с открытым API… Ещё и JXTA какое-нибудь добавить… Не в этой, похоже, жизни. Вот аська, кстати, тоже ещё то уёжище.
no subject
Date: 2002-12-24 08:16 am (UTC)no subject
Date: 2002-12-24 08:27 am (UTC)Именно. Поэтому, на мой взгляд, единственное, чего ему не хватает - это открытого API. И все были бы счастливы :)
дополнительная информация будет храниться на клиенте
Это уже детали. Ее можно хранить на специальном сервере, чтобы не было привязки к машине.
Не в этой, похоже, жизни.
Увы, согласен.
no subject
Date: 2002-12-24 08:28 am (UTC)А это, извините, что такое?
за нами никто не пойдёт
Я сам туда не пойду :)
no subject
Date: 2002-12-24 08:33 am (UTC)А это, извините, что такое?
Фидошное. Из-за каких-то забытых ныне проблем мятежники во главе с Завалишиным собирались организовывать зону 7 вместо региона 2:50. И то, и другое означало Россию. Типа автокефальная церковь и всё такое. Кончилось, естественно, ничем.
no subject
Date: 2002-12-24 08:35 am (UTC)no subject
Так, может, вперед?
Я как-то даже начал писать такой клиент, и он даже немного работал :)
no subject
Date: 2002-12-24 12:41 pm (UTC)прочитал "куда лучше формулировку". совсем ботва. из неё следует только, что у френдов есть свойства (surprise! surprise!).
а вот как надо
no subject
Date: 2002-12-24 10:24 pm (UTC)Я имел в виду, что какая-т поддержка сервера нужна. Типа HTTP cookies, только наоборот. Application-specific data associated with various LJ objects. То есть:
package com.livejournal.api; public interface DataHolder { public void setData(String dataURI, Object cargo) throws Exception; public Object getData(String dataURI) throws Exception; } public class User … implements DataHolder { … } public class Friend … implements DataHolder { … } public class FriendGroup … implements DataHolder { … } public class Post … implements DataHolder { … } public class Comment … implements DataHolder { … } public class MemorablePost … implements DataHolder { … }Если не хранить данные на сервере, невозможно обеспечить client location transparency.
no subject
Date: 2002-12-24 10:30 pm (UTC)Ты описываешь Общую Теорию Всего, а я пытаюсь понять, как нужно подпилить конкретный софт LJ, а ещё лучше – как, не подпиливая серверного софта, который всё равно Авва и Брэд хрен подпилят, приделать something helpful сбоку в качестве бантика. Данные, хранимые локально и отвязанные от всяческих кривых сервисов можно организовывать любыми outlinerами, метакаками и так далее. И фантазировать на эту тему. Кстати, интересно вы там перетираете. :)
Да, а в нынешнем LJ френды не имеют ни хера, поэтому всё это конечно же surprise, surprise. :)
no subject
Date: 2002-12-24 10:33 pm (UTC)no subject
Date: 2002-12-24 11:06 pm (UTC)Так что действительно можно начинать прямо сейчас.
Re:
Date: 2002-12-25 05:28 pm (UTC)тем более, что не только разница в трудозатратах ничтожна, а и сами трудозатраты целиком.
Re:
Date: 2002-12-25 05:34 pm (UTC)no subject
no subject
Date: 2002-12-25 10:14 pm (UTC)На самом деле я повёл себя, как поклонник сурового бога Yagni. Что мне прямо сейчас нужно – это атрибуты. Поэтому формулировка "через свойства" показалась мне более адекватной. На вопрос "supposing we want to move all LJ friends with trust level 0 to trust level 1…" я отвечу винни-пуховским "supposing we don't", потому что в моей реальной практике обращения с предметами операции типа
"update T set a=1 where a=0"не встречаются. Из программистского опыта я знаю, что такие операции означают обычно изменения в метамодели – но это уже форс-мажор.И вообще, я считаю, что аутлайнер общего вида – очень хорошая и нужная вещь, но для задач организации списка ЖЖ-френдов он чрезмерен. У тебя, скажем, 83 френда – какой уж тут yahoo.com?
Re:
Date: 2002-12-26 07:09 am (UTC)не, дело в том, что идея global directory, организованной так, как я изложил, давно витала в моей голове, и твой пост явился толчком к тому, чтобы изложить её письменно.
а дальше - идея не в применении аутлайнера к списку френдов, а применения способа организации - как к аутлайнеру, так и к списку френдов.
кстати, обрати внимание, что Чак так и не способен пока grasp the idea (если ты следишь за дискуссией). может, я слова неправильные употребляю? вот на твой взгляд, что я изложил неточно/непонятно?
Re:
Date: 2002-12-26 07:21 am (UTC)а аутлайнер и список френдов - конкретные приложения теории.