Если соединить ломовой инсайт из https://mokum.ru/squadette/34775 и тезисы @kukutz из Послания о Рилтайме, то возникает абсолютно контр-интуитивная идея: новые посты, появляющиеся в ленте, надо добавлять не вверх, а сразу после визуальной границы экрана. при этом возникает что-то типа бесконечного листания вниз, и за нижней границей экрана всегда есть новый контент (на активной ленте). #mokum-dev
при этом: опять же в соответствии с тезисами один раз появившийся на ленте пост уже больше никогда никуда не прыгает. контр-интуитивность идеи состоит в том, что при этом после нескольких десятков минут существования в браузере этой ленты она будет отсортирована в причудливом и фактически случайном порядке, который зависит только от того, где в момент появления поста была прокрутка. ‎- псы в рапиде
Упростив «волшебный аякс» от границы экрана до «Older Entries» мы придём к такому довольно простому тезису: новые посты добавляются на вторую страницу (pageno VS ts debate reappears) — представим себе, что клик на Older Entries обрабатывается как появление спрятанных за кликом постов. ‎- achteranker
при этом если ты хочешь вернуться к постам и посмотреть новые комменты и лайки, то тебе надо мотать вверх. при этом естественным образом возникает реализация еще одной идеи — "помечать новые комментарии цветом" — надо просто считать "новизну" начиная с момента, когда пост уехал за границы фолда, верхнего или нижнего. ‎- псы в рапиде
в «послании о рилтайме» мне не нравится то, что оно на моей памяти было self-deceptive: вроде власть пользователю, а сами без его действий контент на страницу пихаем. Этот парадокс разрешается сначала через создание полностью user-controlled logic, а затем тривиальной его автоматизацией. ‎- achteranker
при этом надо заметить, что turmoil никуда не делся, но смягчился — при начальной загрузке страницы у тебя посты отсортированы как "свежие сверху", но потом по мере жизни страницы они оказываются как бы снизу. ‎- псы в рапиде
@achteranker: власть пользователю обеспечивается кнопкой "Paused". ‎- псы в рапиде
давай договоримся как работает Paused по нажатию на older entries? если Live от Paused будет отличаться только тем, что робот вовремя нажимает на кнопку older entries — система будет выглядеть простой ‎- achteranker
также еще при этом сильно упрощается ситуация с визуальной стабильностью, потому что есть ощущение, что любые браузеры сильно надежнее обрабатывают ситуацию, когда новый контент добавился вниз, чем когда новый контент добавился вверх (речь про DOM-узлы, фактически) ‎- псы в рапиде
@achteranker: "Paused" означает, что изменения на странице возникают только по явным действиям пользователя — комментированию, добавлению постов, нажатию на кнопку "reload" и вот сейчас мы додумались до кнопки "older entries" ‎- псы в рапиде
отсутствие лайков у этой записи очень показательно. все шарят правой рукой по полу, пытаясь нащупать челюсть ‎- right wing hug squads
Я думаю хорошей эвристикой является то, что пост существует в ленте в единственном экземпляре. ‎- achteranker
при этом есть еще один момент — нужно ли нам сохранять взаимное положение постов в ленте после перезагрузки страницы? вообще говоря, мне кажется, что технически это сделать можно. тогда все будет вообще мягко для юзера, потому что он примерно помнит, в каком порядке посты находятся в текущей сессии. ‎- псы в рапиде
@bofh: нет, см первый и третий комментарии ‎- псы в рапиде
@squadette вопрос про сохранение после принудительного релоада для меня пока в тумане ‎- achteranker
@achteranker: ну вот собственно появившийся в каментах @screamager является заказчиком фичи сохранения порядка после релоада. ‎- псы в рапиде
А какая идея скрывается за этой фичей? В смысле, почему это представляется ценным? ‎- achteranker
@bofh: далеко не факт, что постоянное появление одного и того же поста, потому что в нем появились новые комментарии, будет тебя радовать. к тому же не забудь про ситуацию, когда у тебя пост раскрылся, и в нем 150 комментариев. как ты понимаешь, тебе придется постоянно пролистывать эти 150 комментариев вниз, а к моменту когда ты пролистаешь, он снова окажется "внизу". ‎- псы в рапиде
@bofh: логика предложенной @squadette идеи мне представляется следующей. У человека есть лента, в которую добавляются новые элементы. С этими элементами что-то происходит. Элементы добавляются всегда вниз ленты по запросу человека (live делает это чуть умнее, точнее иначе трактует слова «вниз ленты» и «запрос пользователя»). Человек обладает картой известных ему элементов, которая статична. Комментарии в этой картине не являются отдельными элементами, а являются как бы «правками» элемента. ‎- achteranker
Согласно этой идее, когда человек явным образом запрашивает «новую ленту», она строится из самых потенциально интересных ему элементов (т.е. недавно обновлённых). В такой трактовке hard reload приводит к перестройке порядка. ‎- achteranker
простите, за тупость. вся одесса добавляет новый контент вверх -- твиттер, фб, жж, все. листание вниз -- это движение назад по времени. так какого ж лешего надо делать наоборот? ‎- right wing hug squads
@screamager до появления френдфида никто не апал посты. мы исследуем способы развития базовой идеи frf ‎- achteranker
THREAD START: представим себе, что пользователь может не только добавлять посты, но и выбрасывать их из списка, который у него в браузере открыт. Не «хайдить», а выбрасывать; типа «они мне неинтересны». ‎- achteranker
^^ фигасе никто, все говнофорумы так работают со времён царя Гороха ‎- сосиски супремасиски
скажите, IRC вверх добавляет новый контент? (я из вашего списка предположил, что Одесса начиналась несколько позже царя Гороха, отсюда и моё неверное допущение) ‎- achteranker
@screamager: проблема состоит в том, что в фрф-прайм единицы контента а) сложно устроены структурно: пост + лайки + комменты просто/комменты свернутые. поэтому визуальная высота элемента ленты постоянно прыгает в обе стороны, и браузеры обрабатывают этот случай по-разному. если ты сидишь на десктопном хроме, то там все почти идеально, но уже на айпаде ситуация резко хуже, а на андроид-хроме, как сообщают, вообще неприятный визуальный flicker ‎- псы в рапиде
@screamager: твиты же всегда добавляются вверх, и имеют стабильную высоту, и эта высота небольшая. это принципиально легче переносится глазом. ‎- псы в рапиде
@screamager: что касается Фейсбука, то я не удивлюсь, если френдфидовцы собственно принесли туда тот инсайт, который делал Френдфид таким мягким для глаза, и именно поэтому тебе кажется, что в Фейсбуке все "ок". ну и заметим, что в фейсбуке посты не апаются. ‎- псы в рапиде
@squadette: я уже запутался в этих фрф-праймах, честно говоря. ты щас про мокум? ну не знаю, вон оригинальный френдфид как-то эту задачу решал, причём почти 10 лет назад, и решал очень хорошо. всё мягко работало на всех устройствах, как я понимаю. ‎- right wing hug squads
@screamager: ну да, я фактически про мокум :) так мы и не знаем, как Френдфид эту задачу решал! мы именно это ощущение пытаемся восстановить. и реально, я не знаю других систем, в которых была бы именно эта комбинация факторов: рилтайм + сложная внутренняя структура элемента + варьирующаяся визуальная высота. везде нет либо одного, либо другого, либо третьего. ‎- псы в рапиде
я честно говоря не понимаю... ничего. ну как будет выглядеть чтение мокума? открыл сайт, сразу нажал page down, чтобы увидеть свеженькое. начал скроллить наверх, доскроллил, вниз чего-то свежее приехало, пошёл обратно скролить вниз... не знаю, мне кажется что это как-то - - -. с IRC эта тема работает, потому что там ты принимаешь участие в общем диалоге, соотв ты зашёл, читаешь страницу текста, как принято у людей -- сверху вниз, а потом внизу, дочитав до последней (самой свежей) реплики, вставляешь свои два цента. Собственно, мы здесь, в этом треде, участвуя в общем диалоге, тоже добавляем реплики вниз, а не вверх. Но лента пользователя -- это не тред, к ней не применима тредовая логика ‎- right wing hug squads
Кстати о прокрутках и границах экрана - при перезагрузке страницы вьюпрт прыгает хрен знает куда. Firefox, винда. ‎- Кубинский щелезуб
@screamager: ты не "пошёл обратно скролить вниз" — новый пост появляется _сразу_ за следующим видимым на экране постом. то есть ты скроллишь минимально. ‎- псы в рапиде
@dma: в браузерах, похоже, есть некая эвристика, которая сохраняет позицию на странице после релоада, ориентируясь на содержимое dom-узлов. когда у тебя дом непрерывно перестраивается, я не удивлен, что файерфоксу рвет крышу. мы почти точно знаем, что именно в Firefox есть еще баг при прокрутке экрана PgDn при наличии live-изменений. ‎- псы в рапиде
@squadette: так, а вот что будет с этим постом например? щас мы тут трём и он постоянно апается. а в твоей модели он как себя будет вести? ‎- right wing hug squads
@screamager: вся эта логика — только про добавление новых постов. с уже попавшими в ленту постами, в комментирование которых ты включился, все будет именно так как ты говоришь и как ты привык. ‎- псы в рапиде
@screamager: я не очень понимаю про "апается" — сейчас же в лайве ничего больше не апается, один раз попав на страницу. Если ты релоадишь страницу, то взаимный порядок постов ломается, потому что как раз как бы срабатывают все бампы — и я этот (эфемерный) порядок я тоже хочу сохранять даже после релоадов, по твоему предложению. ‎- псы в рапиде
а что происходит в этой модели, когда у меня нет открытого окна, а посты обновляются? ‎- achteranker
@squadette: так блин. ну смотри, у меня закипел чайник. я щас отправлю тебе этот коммент и пойду заварю чаю, через 3 минуты вернусь за клавиатуру, кликну на лого мокума и увижу сверху: 1. пару новых постов своих подписчиков, которые наверху потому что они очень свежие. 2. этот тред, который бампнется твоим мне ответом. то есть всё мне нужное будет на верхнем экране мокума, может на полутора-двух. А в твоей схеме я что увижу, придя с чаем с кухни? ‎- right wing hug squads
@achteranker: обновляются или новые добавляются? прямо сейчас и новые и обновляемые посты бампаются наверх, потому что эфемерное состояние сейчас не сохраняется после релоада. если я буду сохранять эфемерное состояние, то обновленные посты останутся на месте (как ты их видел до последнего релоада или открытия страницы), а новые посты добавятся вверх (и ты увидишь их вверху после открытия страницы в браузере. ‎- псы в рапиде
@screamager: ты увидишь новые посты, прокрутив вниз. старые посты останутся на месте, как сейчас. ‎- псы в рапиде
@squadette Сейчас релоад (и повторный заход на сайт) мне гарантирует весь важный мне контент сверху: не только новые посты, а главное те дискуссии которые я уже веду или отслеживаю. Пока я не понимаю как сохранится порядок обновлений с постами снизу. ‎- big data in petite analysts
@squadette: то есть получается что два интересных мне куска контента -- 1. этот тред 2. новые посты тех, кого я читаю -- окажутся напополам разделены 15-20 постами, которые я уже читал? ‎- right wing hug squads
@screamager: если этот тред находится у тебя на экране, когда ты уходишь на кухню, то вернувшись, ты увидишь новые посты сразу под этим тредом. а те 15-20 постов которые ты уже читал, будут под новыми постами. ‎- псы в рапиде
не, если я приду и сразу кликну на лого, то как у меня лента построится? ‎- right wing hug squads
@squadette еще, сейчас мне гарантируется порядок постов между клиентами (телефон, комп) ‎- big data in petite analysts
@ayoshi: ну скажем так, если отслеживать видимость на экране новых постов (а это элементарно) и не форсировать позицию тех новых постов, которые ты еще не видел, то ты после релоада увидишь эти новые посты (которые уже приехали к тебе в ленту, но ты их еще физически не видел) — ты увидишь эти новые посты наверху. то есть эфемерный порядок сохраняется только для постов, которые ты уже видел. ‎- псы в рапиде
@screamager: а это открытый вопрос! прямо сейчас они будут пересортированы в порядке бампов, и тебе это не нравится. есть вторая, ортогональная идея — сохранять эфемерный порядок постов после релоада. ‎- псы в рапиде
@squadette В общем, нужен эксперимент. ‎- big data in petite analysts
@ayoshi: это кстати интересно — для меня лично норм, если на разных клиентах у меня разная ситуация на ленте. если сохранять эфемерный порядок, то он будет автоматом синхронизироваться после восстановления ривера после оффлайна ) ‎- псы в рапиде
@squadette: давай формулировку "тебе это не нравится" заменим на нейтральную "это ломает супер-популярный кейс, когда ты активно срёшь в комменты^W партисипируешь в одной дискуссии и в полглаза смотришь, что ещё новенького народ пишет". ортогональная идея сохранять порядок приведёт к тому, что народ будет вынужден вычитывать ленты по 5 раз, чтобы не пропустить ничего, и будет по этому поводу адски фрустрировать ‎- right wing hug squads
@screamager: про "тебе это не нравится" — я говорю только про поведение после релоада. на супер-популярный кейс эта идея вообще не повлияет (а точнее, имхо, повлияет в лучшую сторону). вообще конечно хочется, блин, провести user testing — похоже, на нас на всех сильно влияют собственные паттерны. ‎- псы в рапиде
@squadette: а это сильно сложно технически? с переключалкой в settings? попробовать прикольно, но если это нетривиальный объём changes, я бы не стал ‎- right wing hug squads
@screamager: что именно "это"? сохранять порядок или ставить новые посты вниз? сохранять порядок нетривиально довольно (но не рокет-сайенс). новые посты вниз вроде бы просто. ‎- псы в рапиде
второе. прозреваю что это будет эпический фейл, но попробовать можно =) ‎- right wing hug squads
@squadette Я прихожу к выводу что основная проблема в другом: многие новые посты не интересны пока их не прокомментировали достаточно, или не полайкало достаточно людей. Сейчас нет никакого способа убрать маловажный пост кроме хайда (см. слэк), и нет никакого механизма для поста подниматься если в нем активно "партисипируют" ‎- big data in petite analysts
Я например скроллю, чтобы не пропустить комментарии. Подозреваю что так все. В My discussions все посты равнозначны, в порядке очереди. Лайк кошки имеет столько же веса сколько клевый срач про мигрантов на 299 комментариев ‎- big data in petite analysts
Понятно, что они требуют разного уровня внимания при отслеживании ‎- big data in petite analysts
С другой стороны, их порядок предсказуемо гарантирован. То есть если после кошки были сиськи, то они там будут и при 3 и при десятом просмотре. Проблема может быть только в том, что до них надо будет долго добираться, в 3-4 страницы ‎- big data in petite analysts
^ так, игнор последнего предложения. Я не соображаю уже, есть же бампы, но стирать не буду, пусть мысль останется ‎- big data in petite analysts