← Timeline
Avatar placeholder
lamed
(updated )
Лента новостей (или не лента)

В ответ @tigra, @Ancap и вообще в порядке размышлений по поводу.

Для начала, мы не можем решить проблему пересыщенности информацией и желания еще раз и еще раз "нажать на кнопочку". Никакая система фильтрации, рекомендаций, приоритетов не поможет, если человек скажет ей: "Это, хочу, и это, и это тоже". По своему опыту знаю 😉 Тут уже нужны техники самодисциплины (zero inbox - одна из них). Мы можем дать ему в руки инструменты, но у нас нет возможности воспитывать человека и заставлять его ими пользоваться. То есть всякие списки отложенных мы реализовать можем. И напоминание, что есть там что-то, что ждет прочтения месяц или год. Но от заполнения этих списков всяким мусором и создания еще одного списка избранного из списка мы никак не избавим. (Кстати, когда у нас будет список отложенных, надо сделать в нем возможность добавлять не только посты из Moera, но и любые ссылки. Тогда всё можно будет хранить в одном месте, а не в куче списков в разных местах.)

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

Как я писал в overview (прочтите его уже, наконец), френдлента - это не единственная лента, которая может быть в Moera. Кнопка уведомлений в правом верхнем углу - это та же лента, просто с другого типа историями. Я специально говорю истории (stories), а не посты, потому что история может быть не только "такой-то пользователь написал пост", но и "вас отметили на картинке", "на ваш комментарий ответили" и так далее. И из этих историй можно составить множество лент для разных целей. Эти ленты могут быть внутренними, доступными только хозяину ноды, или быть открытыми для других, чтобы они могли подписываться на них, брать из них истории и составлять из этих историй свои ленты. Если вместо "подписки на пользователя" мы будем говорить "подписка на ленту", а вместо "перепост поста" - "копирование истории из ленты в свою" (с сохранением источника), архитектура становится гораздо проще.

Например, в ЖЖ есть у каждого юзера две ленты - собственная и френдлента. Френдлента составляется сбором всего из лент френдов. Если у френдов есть теги, по ним можно сделать фильтрацию - с этим тегом включать, а с этим - нет. И саму френдленту можно просматривать с фильтрацией: только личные, только сообщества, только френды из указанной группы и т.п. (По сути, нет четкой границы между "отдельной лентой" и "лентой с фильтром", так что ленту с фильтром по группе френдов можно рассматривать как отдельную ленту.) Френдлента, кстати, публична, ее могут читать и другие пользователи.

А вот отфильтровать френдленту по тегу нельзя. Потому что, за исключением вирусных хэштегов, никто не будет размечать свои посты с маниакальной аккуратностью по единой схеме. У кого-то посты про "Мстителей" будут с тегом #мстители, у кого-то #avengers, а у кого-то - #мы_мстим_и_мстя_наша_страшна. У кого-то все комиксы Marvel будут под общим тегом, а кто-то пометит отдельно фанарт и новости кино. И только живой человек сможет во всем этом разобраться.

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

С общей френдлентой все то же самое. Поскольку в Moera нет центральной базы всего контента, для общей френдленты нужно создать отдельную ноду, которая будет подписана на все ленты, будет собирать из них истории и копировать в свою ленту. Хорошо для раскрутки сети на начальном этапе, а потом можно прицепить туда какой-то умный алгоритм, который будет включать только новое/интересное/трендовое. Те же "новости ЖЖ", только без агрессивного навязывания всем. И реклама там непременно появится.

Аналогично любой пользователь может у себя на ноде создавать какие угодно публичные ленты, а другие могут на них подписываться. По типу каналов на YouTube, но, в отличие от каналов, в лентах могут быть не только свои истории, но и скопированные с других лент - как автоматически, так и вручную. Или автоматически, а потом вручную фильтроваться, или как угодно еще. Так, проходя через вторые-третьи-пятые руки, могут формироваться подборки, которые куда интереснее, чем любой индивидуальный журнал или френдлента. И такие подборки могут быть одной из killing features Moera. При этом все лайки и комменты будут идти на ноду, на которой изначально этот контент запостили, в отличие от обычных перепостов в соцсетях. (Обычные перепосты тоже будут, если вы хотите что-то к перепосту добавить, например, но сейчас не об этом.)

Но одна описанная @Ancap идея мне безумно нравится - это группы без групп.

Пусть, например, мы хотим создать ленту, посвященную Debian GNU/Linux. Просто искать по всем нодам Moera контент, помеченный тегом #debian бесполезно, как я уже говорил. Мало кто будет размечать свой контент специально этим тегом. Но если мы объявим по сарафанному радио, что создана такая лента, и туда попадет контент с любой ноды, отмеченный тегом #debian, то люди будут специально ставить этот тег, чтобы в эту ленту попасть (и сообщать о своей заинтересованности ноде-владельцу ленты). Интересующиеся Debian пользователи будут на эту ленту подписываться, и так сформируется сообщество пишущих и комментирующих по этой теме.

А дальше - самое интересное. Когда контента станет много, пойдет мусор, спам и срач. Админы ноды-владельца ленты начнут ленту модерировать. Но их возможности модерирования ограничены исключением из ленты отдельных историй или нод. Сам контент остается на той ноде, на которой он был создан. В отличие от контента в обычных группах, которые владеют всем, что в группу запощено, и удаление контента из группы означает его уничтожение. И модераторы ленты не имеют власти над комментами к постам. Они могут только пригрозить автору поста исключением из ленты, если он не будет держать в узде своих комментаторов. Читатели и комментаторы получают бОльшую свободу.

Далее, поскольку контент и лента независимы друг от друга, может существовать несколько лент с тем же самым контентом, по тому же самому тегу, но с разными правилами модерирования. То есть в Moera не будет не только власти "хозяев сети" над контентом пользователей, но и власти модераторов групп, они также будут конкурировать между собой, и это великолепно.

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

  1. Создание публичного списка людей, который разные ноды могут использовать для задания прав доступа. Такие списки я называю society, изначально я их придумал для борьбы со спамом, но их можно использовать для различных целей. Я не буду в это сейчас углубляться, но societies - это классная фича сама по себе.
  2. Копированием постов в закрытую ленту. Тогда автор поста открывает доступ только для ноды-владельца ленты, а дальше уже она решает, кому дать доступ. Получается почти классическая группа.

Технически замена групп тегами и лентами очень упрощает реализацию, что мне особенно приятно 😉 Для пользователя появляется порог вхождения: отдельные сущности (1) нода-хозяин ленты и (2) тег (и, возможно (3) society). Нужно организовать UI так, чтобы было понятно, как одно относится к другому, и вступление в "группу" было в один клик. Тут еще есть над чем подумать.

👍4
To react or comment  View in Web Client