В современном мире важно быстро получать релевантные новости среди информационного шума, в том числе о работе, товарах и прочем. Однако, чтобы проверять обновления среди множества сайтов и приложений каждую минуту, нужно тратить слишком много времени. Можно делать это реже, например, раз в день, но тогда полученная информация становится более запоздалой. Хуже того, она может быть вообще уже неактуальна или потеряна.

С течением времени информация теряет свою ценность
С течением времени информация теряет свою ценность

Отсюда можно сделать вывод: важные сообщения должны быть доставлены как можно раньше, без задержки.

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

Никто не работает с RSS

Почему же это не работает? Поддержка RSS слабеет с каждым годом. Все больше популярных сервисов прекращают эту поддержку. Apple сделал это в 2019. Google прекратил обслуживать RSS в Google Groups в 2021.

Среди других причин важно также то, что RSS основан на опросе сервиса, что не масштабируется. Представим популярный сервис с 1 млн. подписчиков. Допустим, период обновления клиентом равен 15 минутам. Тогда сервис должен выдерживать нагрузку около 1000 запросов в секунду!

Теперь представим, что этот сервис публикует обновление примерно раз в день, в разное время. Тогда каждый день клиент будет делать 95 "холостых" запросов и лишь 1 будет приносить полезный результат. Таким образом, сервис должен выдерживать нагрузку, где почти 99% запросов - пустая трата. Здесь точные числа не так важны, так как, напомню, чем больше период обновления - тем более запоздалыми и менее ценными эти обновления будут.

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

Никто не хочет получать спам

Что же предлагают нам сервисы вместо RSS-лент? Они хотят, чтобы пользователь подписывался на обновления по почте и/или разрешил его уведомлять. Проблема в том, что пользователи терпеть не могут этого, как правило. Никто не хочет оставлять свой email или разрешать уведомления. Пользователи обычно избегают этого.

Кипучая действительность
Кипучая действительность

Разрешить сервисам уведомления - равно открыть портал в адъ получать спам. Мы тут же утрачиваем контроль над тем, что, где и когда мы получаем. И поэтому люди до сих пор предпочитают RSS. В их приложениях для чтения RSS всё доступно в одном месте и, как правило, удобно упорядочено. По сравнению с разного рода подписками, где сложно вообще помнить все эти сервисы, которые могут отвлечь в любое время, когда это удобно им.

То есть, при своей эффективности, уведомления имеют свой недостаток - клиент не контролирует их в общем случае. Что вызывет дискомфорт и отказ. Вывод следующий: клиент должен иметь возможность управлять как содержанием уведомлений, так и своими подписками на них.

Решение

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

Сервис позволяет получать сообщения из большого количества различных источников, список которых постоянно растет.

Если нужного источника не нашлось, можно добавить свой.
Если нужного источника не нашлось, можно добавить свой.

Реализация сервиса минималистична (всего около 100 тыс. строк кода ????), Awakari не хранит никаких данных пользователей, всё отдано на откуп сторонним сервисам. В качестве средства доставки на данный момент используется Телеграм:

Чтобы получать сообщения по подписке, нужно пригласить AwakariBot в группу и выбрать подписку.
Чтобы получать сообщения по подписке, нужно пригласить AwakariBot в группу и выбрать подписку.

Комментарии (108)


  1. bdgtw
    10.01.2024 10:19

    Дизайн сайта, конечно, ужасен, как будто тёмная тема, которая не до конца корректно применилась. Тёмное на тёмном, плохо читающийся текст и прочие прелести.


    1. akurilov Автор
      10.01.2024 10:19

      Спасибо, поправлю


  1. Mabu
    10.01.2024 10:19
    +12

    RSS не масштабируется

    RSS это просто XML‐файл на диске, он не может масштабироваться по определению.

    сервис должен выдерживать нагрузку около 1000 запросов в секунду!
    популярный сервис с 1 млн. подписчиков

    Ваш вебсервер не может держать 1000 соединений — смените вебсервер.

    Если на вас вебсервер зайдёт весь этот миллион подписчиков чтобы посмотреть страницу index.html, вы тоже обвините язык разметки гипертекста, что он не масштабируется?


    1. akurilov Автор
      10.01.2024 10:19
      -4

      RSS подразумевает поллинг. Не существует пуш реализаций

      Ваш вебсервер не может держать 1000 соединений — смените вебсервер.

      Ни яблоко, ни гугл менять веб сервер не стали. Факт остаётся - поддержку RSS просто прекращают


      1. BugM
        10.01.2024 10:19
        +3

        Ее прекратили не поэтому. 1000 рпс за простеньким текстовым контентом это смешно.


        1. akurilov Автор
          10.01.2024 10:19
          +2

          Да, не только поэтому. Также не позволяет неограниченно спамить, RSS лентами слишком легко управлять


      1. alexxisr
        10.01.2024 10:19

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


        1. akurilov Автор
          10.01.2024 10:19

          Есть различные протоколы websocket, sse и тп


          1. Akuma
            10.01.2024 10:19

            И это, внезапно, те самые 1 000 000 соединений с веб-сервером. Они, кстати, куда затратнее раздачи статики


            1. akurilov Автор
              10.01.2024 10:19
              +1

              а в чем проблема 1 млн соединений? пусть себе висят. это потянет даже один инстанс. лимит у ядра линукса - 1,048,576 файловых дескрипторов


              1. Akuma
                10.01.2024 10:19

                Эм. Ну это тяжелее раздачи статики вообще-то.

                Потому как этот млн соединений надо не только держать, но и отправлять по ним что-то. Вот только когда клиент запрашивает инфо - она ему нужна. А когда вы отправляете свою новость на весь миллион соединений - 90% нафиг оно не нужно и это, опа, лишняя нагрузка.

                Уведомления (веб-сокеты сюда же) - это не для рассылки "всем", это для отправки сообщений конкретным клиентам в реалтайме. И это вообще не замена RSS, это просто разные вещи.


                1. akurilov Автор
                  10.01.2024 10:19

                  Так здесь рассылается лишь то, что нужно конкретному клиенту. Поэтому если сообщение матчится с миллионом клиентов, значит оно интересно им всем


                  1. Akuma
                    10.01.2024 10:19

                    Я вам про нагрузку, вы мне про полезность. Ну вы уж определитесь.

                    Миллион запросов на статику можно раздать достаточно дешево, а то и вообще не за свой счет (CDN от Cloudflare бесплатен).

                    Миллион пушей - ну попробуйте, че уж. Не мнимый, а реальный миллион одновременных соединений. Вот вам реальный опыт: https://habr.com/ru/companies/vk/articles/331784/

                    Обратите внимание на подсчет памяти, например.


                1. mayorovp
                  10.01.2024 10:19

                  Вот только когда клиент запрашивает инфо - она ему нужна.

                  Если клиент запрашивает RSS-ленту, то он ещё сам не знает есть ли там нужная ему информация.

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


                  1. arokettu
                    10.01.2024 10:19

                    Да, протокол там HTTP в котором есть такая замечательная вещь как ETag


                    1. akurilov Автор
                      10.01.2024 10:19

                      Etag не поможет, уже здесь обсуждали. Не позволяет кэшировать на стороне CDN



                      1. akurilov Автор
                        10.01.2024 10:19

                        И что с того? Откуда CDN узнает, изменилась лента или нет у самого сервиса?



                      1. akurilov Автор
                        10.01.2024 10:19

                        Как правило, сервисы ничего не знают о CDN. И в общем, не должны.

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


                      1. arokettu
                        10.01.2024 10:19
                        +1

                        Если сервис использует CDN, то он конечно же о нем знает. Если нет, то я не понимаю кто, как и зачем в вашей картине мира использует CDN и как CDN по-вашему узнает об изменениях просто в вебе?


                      1. akurilov Автор
                        10.01.2024 10:19
                        -1

                        Кэш в принципе должен быть прозрачен как для клиента, так и для сервиса. Сброс кэша по вашей ссылке - скорее ручная операция при аварии. Тем более там лимит на частоту операций. Этот способ никак не может использоваться для нормального режима работы


                      1. arokettu
                        10.01.2024 10:19

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


                      1. akurilov Автор
                        10.01.2024 10:19

                        Если по ETag, то запрос доходит до сервиса и обрабатывается там. Сервис сам должен ответить 200 или 304, не важно.


                      1. arokettu
                        10.01.2024 10:19

                        Но там же CDN посередине


                      1. akurilov Автор
                        10.01.2024 10:19

                        CDN не знает, обновлена ли лента у сервиса или нет, пока сам не пойдёт и не спросит


                      1. arokettu
                        10.01.2024 10:19
                        +1

                        А почему вы /index.html и /feed.xml отдаете разными механизмами? В них буквально один и тот же контент. Если вы кешируете одно, то надо кешировать и другое, и тогда либо надо сбрасывать кеш на оба, или не сбрасывать ни на один


                    1. mayorovp
                      10.01.2024 10:19

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


                      1. akurilov Автор
                        10.01.2024 10:19

                        Если по ETag, то запрос доходит до сервиса и обрабатывается там. Сервис сам должен ответить 200 или 304, не важно.

                        Не туда ответил


      1. arokettu
        10.01.2024 10:19

        Не существует пуш реализаций

        WebSub


        1. akurilov Автор
          10.01.2024 10:19

          WebSub не присылает RSS файл, это принципиально другое.

          У меня есть план добавить поддержку подобного, но мне более перспективной кажется поддержка ActivityPub


          1. arokettu
            10.01.2024 10:19

            Он присылает уведомление что надо сходить за файлом и создавался специально как расширение для лент Atom

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


            1. akurilov Автор
              10.01.2024 10:19

              Activitypub доставляет постом на вебхук подписчика. Это исключает транспортные потери, по крайней мере


              1. arokettu
                10.01.2024 10:19

                Как? Поломалась сеть между 2 узлами и всё


                1. akurilov Автор
                  10.01.2024 10:19

                  То есть WebSub publisher должен надёжно хранить состояние каждого подписчика? Это уже совсем другое дело) теперь понятно, почему так мало публичных websub источников


                  1. arokettu
                    10.01.2024 10:19
                    +1

                    Нет, я выше объяснял почему ему это не надо. Есть конечно тоже риск что за время даунтайма напишут больше чем $rss_length постов, но на практике я с таким не сталкивался, а вот с потерей постов и распаданием тредов на ActivityPub серверах - постоянно


                    1. akurilov Автор
                      10.01.2024 10:19

                      Теперь понял. Потому что содержание не приходит вместе с пушем

                      Идите сами выгребайте, что уже читали, а что нет


                      1. arokettu
                        10.01.2024 10:19
                        +1

                        Потому что содержание не приходит вместе с пушем

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

                        Идите сами выгребайте, что уже читали, а что нет

                        Для этого у сообщений есть уникальные ID


            1. akurilov Автор
              10.01.2024 10:19

              И все же activitypub популярнее будет, чем websub

              https://trends.google.com/trends/explore?date=today 5-y&q=Wesub,Activitypub&hl=en

              Может, конечно, хайп на ровном месте


              1. arokettu
                10.01.2024 10:19
                +2

                Если исправить опечатку, то примерно на уровне до октября 2022, когда Маск купил Твиттер и завирусился Мастодонт как альтернатива

                Но ActivityPub безусловно более популярен, потому что это протокол соцсетей (и он очень плох именно в этом своем сегменте)

                А WebSub действительно довольно редок, из крупных площадок его использует на вскидку только Medium, но это потому что крупные площадки либо не поддерживают RSS, это факт, либо не обновляли его поддержку десятилетиями, когда WS еще не существовал. Большая часть контента который генерит RSS это статические блоги, они как раз поллингом неплохо обходятся


  1. Firsto
    10.01.2024 10:19
    +6

    В современном мире важно быстро получать новости

    Да кто все эти люди, откуда у вас столько времени, когда вы успеваете читать всё?

    Расскажите, сколько у вас каналов обновлений и какой объём новостей вы потребляете, мне правда интересно. :)


    1. akurilov Автор
      10.01.2024 10:19

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


    1. slivkarmy
      10.01.2024 10:19
      +3

      Да кто все эти люди, откуда у вас столько времени, когда вы успеваете читать всё?

      По работе - 194 каналов. Не так часто все они обновляется и часто практикую "отметить как прочитанное" не читая содержимое ленты. Если вкратце, в эти 194 ленты входят
      - Коммиты из github-а. С фильтрацией
      - твиты разных людей и компаний (nitter.privacydev.net)
      - лиды с хабра, weblancer или пикабу
      - инстрамы твиты телеграмы вк конкурентов (https://feed.eugenemolotov.ru - я там админю)
      - подкасты
      - прочее

      Пользуюсь не инструментом, который тут рекламируется, а Tiny Tiny RSS.


  1. mayorovp
    10.01.2024 10:19
    -2

    Разрешить сервисам уведомления - равно открыть портал в адъ получать спам. Мы тут же утрачиваем контроль над тем, что, где и когда мы получаем.

    Если что, разрешение на получение уведомлений отзывается парой кликов.


    1. Alex_v99
      10.01.2024 10:19
      +3

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


    1. akurilov Автор
      10.01.2024 10:19
      -1

      Нет, например, чтобы удалить половину своих подписок вам потребуется:

      1. Вспомнить их все

      2. Пройти по каждому и разобраться в уникальном способе отписки "парой кликов". Может быть. Ну если повезет. Ой, у нас отписка сломалась, позвоните в поддержку. Ваш звонок очень важен для нас.


      1. mayorovp
        10.01.2024 10:19
        -1

        Вы издеваетесь? "Настройки" - "Конфиденциальность и безопасность" - "Настройки сайтов" - "Уведомления" - и там виден список ВСЕХ сайтов, которым дано разрешение на уведомления. Что тут, блин, вспоминать-то?

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

        И вот тут разрешение на уведомления отзывается ровно в два клика (в три если считать открытие сайта):

        Картинка


        1. akurilov Автор
          10.01.2024 10:19

          Подписки бывают не только "разрешением сайту уведомлять". Есть ещё email, моб приложения и что-нибудь ещё, о чем так сразу и не вспомнить


          1. mayorovp
            10.01.2024 10:19

            Да, но я-то оспариваю тезис "Разрешить сервисам уведомления - равно открыть портал в адъ получать спам." При чём тут email-то?


            1. akurilov Автор
              10.01.2024 10:19

              Некоторые сервисы требуют email и потом невозбранно спамят, например. Email - это тоже уведомления. Есть разные способы навязать вам спам


              1. mayorovp
                10.01.2024 10:19
                -1

                У вас в посте этот тезис высказан сразу после скриншота с запросом уведомления в браузере.

                Вот не понимаю как можно смотреть на ту картинку и думать "ну, автор явно под уведомлениями подразумевал не то, что в браузере называют уведомлениями, а более широкое понятие".


  1. k12th
    10.01.2024 10:19
    +2

    Awakari не хранит никаких данных пользователей, всё отдано на откуп сторонним сервисам

    В наш век утечек, взломов и таргетированной рекламы "сторонние сервисы" звучит как ругательство...


    1. akurilov Автор
      10.01.2024 10:19

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


  1. ironcat
    10.01.2024 10:19

    Для любителей RSS есть RSS-Bridge
    https://github.com/RSS-Bridge/rss-bridge
    В котором есть и Телеграм и ВКонтакте и прочие новостные безRSSные сайты...


    1. akurilov Автор
      10.01.2024 10:19

      Буду говорить о себе - меня не устраивает такое решение.

      1. RSS интерфейс означает поллинг. Это означает, что придётся обрушивать весь поток информации с множества источников на клиента. Если я хочу выбирать из как можно большего числа источников, в пределе - со всего интернета? Это работать не будет.

      2. Нет фильтрации.

      3. Минимальная задержка примерно равна периоду поллинга. Это может быть слишком много для некоторых use case.

      Awakari - polling terminator, то есть работает наоборот.


      1. ironcat
        10.01.2024 10:19
        +1

        Буду говорить тоже о себе. Tiny Tyny RSS как раз в паре с RSS-Bridge и решают все Ваши вопросы и с даже фильтрацией со всего интернет, извините. Ну разве кроме 3-го пункта если для него есть use case...


        1. akurilov Автор
          10.01.2024 10:19

          1. Фильтрациии я не нашёл среди фич

          2. Придётся хостить самому и собирать все источники, невозможно использовать общую коллекцию источников. То есть выборка ограничена теми источниками, о которых вы итак уже знаете

          3. Проблема поллинга не столько задержка, сколько в вынужденном выборе между холостой нагрузкой и большей задержкой


          1. ironcat
            10.01.2024 10:19

            1. В TTRSS Кроме фильтрации ещё есть возможность самому создавать каналы на базе фильтров. И подписываться на них :) .Т.е. почти Ваш функционал...

            По вопросу self-hosting это большой плюс.

            Никому не должно быть интересно, что мне интересно.


            1. akurilov Автор
              10.01.2024 10:19
              -1

              Тогда вы теряете потенциально полезные сообщения из источников, которые вы ещё не знаете


              1. ironcat
                10.01.2024 10:19
                +1

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

                Вы правильно говорите, что каждому свой кейс....


                1. akurilov Автор
                  10.01.2024 10:19

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


          1. slivkarmy
            10.01.2024 10:19

            1. Фильтрациии я не нашёл среди фич

            Она есть.


            1. akurilov Автор
              10.01.2024 10:19
              +1

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

              2. Не нашёл способа группировать условия в более сложные с применением логики "и", "или" и тп

              3. Не нашёл численных условий. Например, матчить сообщения, где поле "цена" меньше 1000


    1. arokettu
      10.01.2024 10:19

      Инстаграм не работает, правда, для меня это стало поводом забить на Инстаграм


  1. GavriKos
    10.01.2024 10:19
    +4

    >В современном мире важно быстро получать новости
    Нет. Неважно. Это зачастую ведет как раз к стрессу, выгоранию и прочему - желание быть обо всем в курсе.

    Нужные новости вас сами найдут. А без остальных можно обойтись


    1. akurilov Автор
      10.01.2024 10:19

      Тут важно, чтобы новости были релевантными. Речь как раз об избавлении от шума при ожидании нужного сигнала. Допустим, вы захотели купить айфон 15 дешевле 100 рублей. Вы заходите на условное авито и делаете поиск по параметрам. Ничего не найдено. Чтобы позже проверить, не появился ли данный товар, вам нужно повторять поиск снова и снова. И вот, надоело. Тем временем товар появился и его уже купил тот, кто быстрее проверял наличие.

      Awakari позволяет задать критерии и ждать. Доставка релевантного сообщения занимает десятки миллисекунд.


      1. GavriKos
        10.01.2024 10:19

        А можно пример как сконфигурить этот ваш авакари, чтобы вот он мониторил авито на тему 15 айфонов дешевле какой то суммы?
        Мне чет кажется на формирование запроса который работает всегда и правильно я потрачу больше времени, чем на периодическое обновление страницы.

        Вообще если честно из статьи понятно ровынм счетом ничего. В чем преимущество сервиса? Он не поллит сервисы? Поллит же, иначе как он получит обновления? Тогда к чему это сравнение с РСС?


        1. akurilov Автор
          10.01.2024 10:19

          Вот так.

          1. Авито вам не нужен, вам нужен айфон 15.

          2. Если очень нужно именно Авито, то можно в продвинутом режиме указать условие "source: avito.ru"

          3. Численные условия поддерживаются, но на практике контент с Авито пока не парсится так, чтобы цена была отдельным атрибутом.

          4. Авакари не использует поллинг если на входе телеграм канал, но поллит ленты типа RSS и делает это "один раз для всех". И избавляет клиента от необходимости поллить.


          1. alexs963
            10.01.2024 10:19
            +1

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


            1. akurilov Автор
              10.01.2024 10:19

              Не совсем так. Файл ленты RSS меняется в произвольный момент времени и не может быть закэширован.

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


              1. BugM
                10.01.2024 10:19

                Вам бы познакомиться с базовыми свойствами http протокола перед так как новые сервисы писать.

                https://ru.m.wikipedia.org/wiki/HTTP_ETag


                1. akurilov Автор
                  10.01.2024 10:19

                  Я знаком. Это не кэширование на стороне CDN, а на стороне клиента. И необходимость обрабатывать запрос сервису и отвечать на него это никак не отменяет


            1. akurilov Автор
              10.01.2024 10:19

              Я думаю, что я могу доказать, что я не собираю никакой информации о пользователях. Код, отвечающий за аутентификацию открыт:

              https://github.com/awakari/webapp/blob/bb79dbc3cd7e43b87b5404b7012dbcbd9c30a3bd/web/login.js#L10

              В качестве юзер ид используется префикс identity provider и сторонний юзер id из которого я не могу понять, кто это.

              Например, для телеги юзер ид выглядит так:

              tg://user?id=34955377

              Этот юзер добавил какое то порно в источники. Как я могу узнать имя нашего первого героя?


          1. GavriKos
            10.01.2024 10:19

            Т.е. это все равно RSS, но перенесенный с моего клиента на ваш сервер? Почему вы тогда пишете о преимуществах для удаленного сервера, предоставляющего RSS? Ведь для него разницы нет. Ну и непонятно чем отличается это все от innoreader например.

            Ваш запрос по айфону ломается элементарно. Объявление 15 iphone и всЕ, ну и как выяснили - цены не парсятся. Мой вам совет - смените таргетирование своего сервиса. Пока ваш промоушн его не выдерживает совершенно.


            1. akurilov Автор
              10.01.2024 10:19

              1. Сервис читает RSS один раз сразу для всего множества пользователей. Кроме RSS поддерживаются и другие типы источников (пуш)

              2. Как минимум Innoreader платный и не делает пуш

              3. Объявление 15 iPhone найдёт указанную в примере подписку. Здесь вы не понимаете, о чем говорите


              1. ibnteo
                10.01.2024 10:19

                1. Но читает же его.

                  Похоже надо делать сервис по подписке на уведомления, но с учётом взаимных подписок, чтобы избавиться от спама.


                1. akurilov Автор
                  10.01.2024 10:19

                  Так пусть авакари поллит множество RSS источников, в чем проблема? Более того, опрос множества источников каждые N минут - теперь не проблема клиента.

                  Что значит взаимная подписка?


  1. Akuma
    10.01.2024 10:19
    +1

    Не понял, 1000 запросов в секунду для статического XML в, пусть, пару сотен Кб - это много чтоли? Купите еще один ВПС за 200 руб, раз уж у вас миллион подписчиков, не разоритесь.


    1. akurilov Автор
      10.01.2024 10:19
      +1

      Много или мало - но это лишняя нагрузка на сервис. К тому же и на клиент, который делает холостые запросы, которые не приносят нового результата. Это всё может быть мало, пока мало клиентов и они редко запрашивают обновления. И для клиента - пока у него мало лент.

      И это ещё не всё - добавьте лишнюю задержку


      1. pantsarny
        10.01.2024 10:19

        отдачи файла вообще может не происходить, если использовать подходящие хттп заголовки - last modified, etag, cache…


        1. akurilov Автор
          10.01.2024 10:19

          Кэш не может знать, есть ли обновление в ленте. В худшем случае он будет отдавать устаревший контент


    1. ibnteo
      10.01.2024 10:19
      +1

      По идее, это многовато, причём большая часть запросов бесполезная, надо делать обратную связь.


  1. raskal
    10.01.2024 10:19
    +3

    То чувство, когда прочитал полученную по rss статью о плохости rss. Про 1k rps - ну вы обновляйте фид чуть реже, да положите его в кэш, сделайте пагинацию. Можно подумать, что тысяча rps это нонсенс в век, когда системы автоматического мониторинга собирают десятки тысяч метрик в секунду, а добавить еще ядро на виртуалку стоит 50 центов в месяц и две минуты времени.


    1. akurilov Автор
      10.01.2024 10:19

      Выше уже отвечал

      Реже = больше задержка

      Чаще = больше холостой нагрузки

      Поддержка сервисами RSS слабеет с каждым годом


      1. alexs963
        10.01.2024 10:19

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


        1. akurilov Автор
          10.01.2024 10:19

          В том числе


      1. ibnteo
        10.01.2024 10:19

        А чем заменить? Один сервис это не вариант.


        1. akurilov Автор
          10.01.2024 10:19

          почему?


      1. raskal
        10.01.2024 10:19
        +2

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

        Что же касается "Поддержка слабеет" - она поэтому и слабеет, внимание пользователя так не удержишь. Но я вот искренне надеюсь, что рано или поздно мы зайдем на новый виток спирали и поддержка RSS на сайте-агрегаторе будет фичей удержания аудитории. По большому счету так оно и есть - я вот в RSS получаю заголовки и первых пару абзацев почти везде, а потом читать иду на сайт, если новость интересная. Сайт от этого только выигрывает - просто так на Хабр я не приду, мне интереснее условного Клеппмана перечитать - а из RSS-фида перехожу регулярно.


        1. akurilov Автор
          10.01.2024 10:19

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

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

          Не аргумент. Вы же телеграм не удалили с мобильного телефона из-за этого? Правильно, вы включаете заметные уведомления когда вам это удобно. Поэтому пуш ничем не хуже для клиента, чем поллинг RSS читалок. Мой сервис должен доставить клиенту сообщение, телеграм клиента его сохранить для прочтения потом. На доставке работа моего сервиса закончена. Когда вы прочитаете сообщение - это вам решать.

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

          Самое смешное, что в этом же треде критиковали RSS за одни лишь заголовки, что надо идти на сайт и читать полное содержание.


          1. alexs963
            10.01.2024 10:19

            Самое смешное, что в этом же треде критиковали RSS за одни лишь заголовки, что надо идти на сайт и читать полное содержание.

            Для этого есть rss2full, я для ленты с хабра его использую.


  1. qw1
    10.01.2024 10:19

    Awakari is Great!
    Does Facebook serve Awakari?
    OK, Awakari is dead.


    1. akurilov Автор
      10.01.2024 10:19

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


      1. qw1
        10.01.2024 10:19

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


        1. akurilov Автор
          10.01.2024 10:19

          1. Это не проблема клиента.

          2. В принципе решается путем партнерства в будущем.


          1. qw1
            10.01.2024 10:19

            1. Если вы не поддерживаете facebook, vk, instagram, twitter, discord и прочий зоопарк, то это проблема клиента - вы наобещали, что всё будет в одном месте, и обманули.

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


            1. akurilov Автор
              10.01.2024 10:19

              1. Если проблема решена, то это не проблема клиента. Пока что такой проблемы нет, так как нет и клиента, который бы просил что то, кроме того что есть. Будет запрос - будет сделано. И тогда это будет моей проблемой.

              2. Это в принципе легко решается, всевозможных способов достать контент из фэйсбука - тьма. В тч "официальных" https://developers.facebook.com/docs/


              1. qw1
                10.01.2024 10:19

                Куда ни ткни, там всё закрыто юридическими запретами.
                Например, Meta Platform Terms:

                a. Prohibited Practices. v. Placing Platform Data on, or otherwise making Platform Data available to, a search engine or directory without our prior express written consent

                Instagram Platform:

                Don't use the Instagram Platform to simply display User Content, import or backup content, or manage Instagram relationships, without our prior permission.

                Официальных способов транслировать контент меты в своё приложение - не существует.


  1. itmind
    10.01.2024 10:19

    Я получаю новые статьи с Хабра через RSS (из настроенной под себя ленты). Ваш сервис будет фильтровать статьи только с нужных хабов? Если же, например, ваш сервис просто по RSS берет данные с Хабра, тогда не понимаю почему в статье говорится, что RSS - это плохо.


    1. akurilov Автор
      10.01.2024 10:19

      1. Легко. Я таким образом получаю статьи с хабра не только по нужным хабам но и по ключевым словам.

      2. Авакари получает данные из RSS один раз для всех своих клиентов. На авакари поллинг заканчивается.


  1. AndrewBond
    10.01.2024 10:19

    Прочитал статью. Так и не понял, почему конкретно для меня это должно быть лучше RSS.

    Прочитал комменты - вероятно речь идет о том, что помогать это должно владельцам вебсайтов. Это сомнитлеьно. К примеру, flickr поддерживает RSS по каждому автору. Авторов, само собой over 100500. Значит нужно полагаться, что куча народа выберет одни и те же фиды (хотя бы с каким-то пересечением). Это сильное допущение.

    На всякий случай сходил, зарегистрировался, добавил пару фидов с опросом через 5 минут. Убедился, что в RSS появились новые записи. Полчаса прошло - где я их должен искать? В телеграмме? на вебстраничке?

    Вероятно, это какой-то демонстратор технологий без реального интерфейса. тогда сорри.


    1. akurilov Автор
      10.01.2024 10:19

      Тк это pub/sub сервис, то для получения чего либо надо создать соотв подписку. Возможно, сообщения с добавленных вами источников получил кто-то другой, если это соответствует его интересам


      1. AndrewBond
        10.01.2024 10:19

        Ладно. по отдельности все слова понятны, но в целом... что такое "создать подписку" и тп.

        Я дальше проверять не буду, сорри. Это для какой-то другой аудитории.


        1. akurilov Автор
          10.01.2024 10:19


          1. AndrewBond
            10.01.2024 10:19

            я на эту вкладку не переходил. Добавил пару своих RSS. Да ладно, неважно. уже разлогинился и прибил бота.


            1. akurilov Автор
              10.01.2024 10:19

              Ну пусть будут, для коллекции)


  1. enamchuk
    10.01.2024 10:19
    +1

    Много лет в качестве клиента RSS использую почтовый клиент The Bat! (и прямому назначению - почты, конечно, тоже).
    Настроек немного, но оно работает, вполне удобно.
    Подписки на Хабр, уведомления с каналов Youtube и т.д.


    1. ibnteo
      10.01.2024 10:19

      Про The Bat можно уже сказать, что используется ужеболее чем пару десятилетий. Похоже веб3 надо реализовывать по тому же принципу, чтобы люди могли пользоваться десятилетиями им.