image
Всем привет.

Так получилось, что уже давно мучает вопрос: «Как следить за форумами по интересным тебе темам, но самое главное, как узнавать о появлении новых вопросов в момент их публикации». Конечно, можно сказать, что есть рассылки, RSS, но лично у меня получается так, что до почты я добираюсь, как правило, с мобильного во время передвижения. Вручную серфить ресурсы вообще не вариант. Вот поэтому, если бы я и мог ответить, компьютера под рукой нет. А после приезда голова уже забита совсем другим. Могу смело сформулировать свою проблему. Необходим канал, сообщающий и самое главное, привлекающий мое внимание в момент публикации нового вопроса.

До недавнего времени таким я рассматривал какой-нибудь IM, для работы Telegram я не пользуюсь, а с остальными все что-то не совсем так.

Почитав статьи ребят с PushAll, я нашел канал, который мне необходим — это пуш-сообщения. Выглядят они так:

image

А далее дело техники.

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

Мини техзадание — парсить хабровский тостер и русский стэковерфлоу. Технический стэк: .NET, MSSQL.

WinService постоянно смотрит на веб ресурсы и забирает все новые вопросы в базу, сортируя по тегам. Так как мне необходимы только некоторые теги, а остальные чтобы не были шумом, добавил веб приложение (ASP.NET MVC 5), в котором я могу быстро указать, какие тэги мне необходимы. А чтобы было приятнее смотреть на веб мордочку, с тостера я дополнительно тяну еще и картинки тегов. Получилось вот так:

image

У ребят с PushAll несложный API, поэтому сдружить полученные вопросы с каналом отправки было довольно просто.

А далее подписка на пуш канале, выбор необходимых тэгов — и спешу поделиться с вами этой новостью!

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

Update
PS ребята я, честно, даже не думал попытаться создать холивар RSS vs Push Notification. В самом начале я описал свою проблему, за все годы мне не удалось подружиться с RSS (да, возможно, я не умею просто правильно готовить), поэтому ищу для себя альтернативу. Если вы с RSS на ты и можете вытаскивать всю полезную информацию без лишнего шума, то как говориться: «респект вам и уважуха». Я лишь делюсь тем, что сделал для себя, с уверенностью, что такой, как я, не один, и значит, если это поможет еще кроме меня, значит день прожит не зря. Всем мира ;-)

Update
PPS Добавил сообщения с английского stackoverflow.com. Подписаться можно следующим образом:

image

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


  1. BupycNet
    30.12.2015 20:05

    Отличная реализация. Было приятно днём увидеть в новых каналах интересный сервис на push-уведомлениях, а не очередной канал от СМИ с подключенным RSS.


  1. VioletGiraffe
    30.12.2015 20:38

    Отличный сервис! Мне бы такой же, но с перламутровыми пуговицами — для stackoverflow.com c возможностью фильтровать мусорные вопросы по репутации спрашивающего. Ещё неделю назад мелькала мысль сделать для этого десктоп-приложение на WebKit.


    1. smarly_net
      30.12.2015 20:42

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


      1. VioletGiraffe
        30.12.2015 22:22

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


  1. Vintric
    30.12.2015 21:10

    Если была бы еще поддержка английского stackoverflow, то вообще цены бы не было.


    1. smarly_net
      31.12.2015 01:13
      +1

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


      1. Vintric
        31.12.2015 22:10

        Галочка на «Хотелось бы видеть и английские вопросы» не сохраняется о_О.


        1. smarly_net
          31.12.2015 22:27

          момент реализации чуть кривоват, скрипт начинает отрабатывать только после загрузки страницы, после НГ подправлю чтобы отклик был быстрее


  1. ivanych
    30.12.2015 21:15
    +4

    Я не понял, а RSS-то Вас чем не устроил? Ровно то же самое же, только велосипедить не надо.


    1. BupycNet
      30.12.2015 21:39
      -3

      Окей. Фактически можно создать каналы в PushAll для каждого сервиса. Потом пользователи будут подписываться и получать пуши по тегам через фильтры подписки.
      Но решение в статье более user-friendly. Подписался натыкал галочек и получаешь пуши куда хочешь.


      1. ivanych
        30.12.2015 21:43
        +1

        Ээ… Вы мне отвечали? Или промахнулись? Если мне — я не понял, как это отвечает на мой вопрос.


        1. BupycNet
          30.12.2015 21:48
          -4

          Сам по себе RSS это просто лента в XML формате. Она не умеет отображать оповещения, отправлять их на устройства и т.д.
          В PushAll можно указать RSS-ленту для канала и он будет иногда её проверять и делать пуш всем подписчикам о новых записях в ленте.
          Также в PushAll есть фильтры, т.е. можно например сделать такой канал, потом пользователь подписался и ввел с фильтр «jquery» и получает все пуши, где в тексте есть это ключевое слово. На деле выходит тоже самое.

          Но решение автора более удобное и простое. На выходе получаем четко то что выбрали в удобном ёмком формате в течении одной минуты. То есть можно ответить раньше всех на вопрос и получить ачивку.

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


          1. ivanych
            30.12.2015 22:19
            +3

            RSS сам по себе не умеет отображать уведомления? Што? Конечно, не умеет, это же текст, а не программа. Уведомления показывает программа, рсс-читалка.

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

            Скорость «уведомления» в рсс ровно та, которую вы настраиваете в читалке.

            Фильтры, разве что… Я как-то не задумывался о фильтрации, но наверняка рсс-читалки это умеют делать.


            1. BupycNet
              30.12.2015 22:27
              -2

              1. Я к тому и веду, что по сути все это инструмент позволяющий из RSS сделать user-friendly читалку этих ресурсов, а если точнее получать оповещения на разные платформы о новых вопросах с задержкой не более 1 минуты.
              2. Ну как не хранит… как то так (выбран канал, про который говорится в статье)


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


              1. ivanych
                30.12.2015 22:35
                +3

                Абсолютно всё описанное тут — делается через рсс и рсс-читалку. Полно ощущение, что автор пытается переизобрести рсс, но зачем? Загадка.


                1. BupycNet
                  30.12.2015 22:38

                  Ниже описал, киньте ка мне оповещение о новом личном сообщении через RSS. Или например на onliner.io пусть мне статусы летят через RSS. Или может дебаг на серваке? Логи с ошибками?
                  И чтобы приходило секунда в секунду.

                  И насчет переизобретения RSS. По сути тут основная разница в том, что RSS нужно получать и обновлять, а push-уведомления летят в сайта через сервис пользователю через сокет. То есть тут появляется свобода гибкости рассылок (неограниченное количество параметров выборки, личные оповещения) и экономия ресурсов.

                  К примеру проект автора сканирует ленту раз 1 минуту. На канал может быть подписано 10000 человек. Как итог в 10000 раз меньше запросов на RSS этих сервисов каждую минуту. Неплохая оптимизация?


                  1. ivanych
                    30.12.2015 22:58

                    > киньте ка мне оповещение о новом личном сообщении через RSS. Или например на onliner.io пусть мне статусы летят через RSS. Или может дебаг на серваке? Логи с ошибками?

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

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

                    Впрочем, я, кажется, потерял нить… Рсс не требует моментального обновления, почему вы говорите про какую-то проблему с мгновенным получением уведомления? Рсс он вообще не про уведомления. Ну, не в виде «а! что-то прилетело! срочно реагируй!».


                    1. BupycNet
                      30.12.2015 23:15
                      -1

                      Вот я о том и говорю. Инструменты нужно использовать по назначению. Да через RSS можно сделать все что угодно и подключить это к читалке. А теперь вопрос — как быстро у вас сядет аккумулятор телефона, если он будет хотя бы каждые 10 минут проверять RSS ленту? Или 30 RSS лент? Я сейчас в PushAll подписан на 90 каналов, многие из них подключены через RSS, от многих из них пушей нет больше недели (редко новые записи появляются или новые пуши) Но появиться они могут в любой момент. К слову RSS агрегаторы в облаке имеют достаточно более жесткие ограничения чем у нас. К примеру несколько человек говорили, что у Feedly лента обновляется иногда раз в 8 часов, поэтому они перешли к нам и создали просто открытый канал, сами на него подписались и т.д. После этого мы для каналов с подписчиками меньше 10 сделали ограничение в 1 проверку в 2 часа. Но и это лучше 10 часов. Так что в этом аспекте мы чем то похожи на Feedly.

                      Я вообще на самом деле удивляюсь, но многие просто используют наш сервис как RSS агрегатор. Т.е. создают канал, прописывают RSS (или группу вконтакте) и приглашают народ. А все по той причине, что 90% их аудитории не знают что такое RSS, но подписаться на пуши им куда проще. Но особенно радует когда подключаются какие нибудь интересные сервисы, которые отправляют таргетированные оповещения. Кстати у нас также много тех, кто отправляет оповещения вручную — у них даже сайта нет, например стриммеры.

                      Вот вы тут все пишите, зачем это все нужно если есть RSS, а у канала уже 24 подписчика.
                      «Впрочем, я, кажется, потерял нить… Рсс не требует моментального обновления, почему вы говорите про какую-то проблему с мгновенным получением уведомления? Рсс он вообще не про уведомления. Ну, не в виде «а! что-то прилетело! срочно реагируй!».»
                      Мы в общем то и подошли к тому, о чем я веду речь. Использовать RSS для уведомлений возможно — но это костыль. Для пушей, к слову, очень важна скорость доставки. К нам многие приходят например от OneSignal и других сервисов т.к. там очень сильно занижают скорость отправки до 200-300 получателей в секунду из за чего на большой базе выходит задержка в несколько минут. И им эта задержка достаточно сильно важна.
                      Тут тоже самое — если вы будете проверять это через RSS например раз в минуту. То вы будете мучать сервер непрофитным трафиком (рекламу то вы не смотрите) вы один то ладно, вот 10000 таких как вы. т.е. делаете в сутки например 1400 запросов, заходите на сайт один раз.
                      Скорее всего обычно эти RSS подключают с обновлением например раз в час — для RSS это нормальное время.

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


                      1. ivanych
                        30.12.2015 23:23

                        А все по той причине, что 90% их аудитории не знают что такое RSS, но подписаться на пуши им куда проще.


                        А что значит «подписаться на пуши»? Поставить какую-то читалку пушей?


                        1. BupycNet
                          30.12.2015 23:30

                          Можно даже ничего не ставить.

                          Подсказка:



                          Жмем на переключатель, и разрешаем.



                          После подписки на канал приходит первый пуш.



                          А можно поставить дополнение и будет еще вот такая штука



                          Это если брать компьютер. А так можно подключить и через телеграм бота и на телефон поставить приложение (ну или без приложений также в хроме работает) или даже email: можно указать как часто, например поставить время 10 минут и вам каждые 10 минут будут приходить письма с оповещениями, у меня стоит сутки, чтобы было как архив, например.
                          И это все на серваке работает, т.е. я подписан на 90 каналов, но мои устройства не ломятся в сеть, а принимают пуши через GCM со всех этих ресурсов.

                          PS не будем разводить тут, если есть какой то ответ — пишите мне в ЛС.


                      1. ragimovich
                        30.12.2015 23:52
                        +3

                        Простите за мой французский, но что за херню вы несете?

                        А теперь вопрос — как быстро у вас сядет аккумулятор телефона, если он будет хотя бы каждые 10 минут проверять RSS ленту? Или 30 RSS лент? Я сейчас в PushAll подписан на 90 каналов, многие из них подключены через RSS, от многих из них пушей нет больше недели (редко новые записи появляются или новые пуши) Но появиться они могут в любой момент.

                        После этого мы для каналов с подписчиками меньше 10 сделали ограничение в 1 проверку в 2 часа.

                        Т.е. даже если новость появится в любой момент, уведомление о ней я получу через два часа? Так насколько сядет аккумулятор моего телефона, если я буду проверять 90 фидов раз в два часа?

                        К примеру несколько человек говорили, что у Feedly лента обновляется иногда раз в 8 часов, поэтому они перешли к нам и создали просто открытый канал, сами на него подписались и т.д.

                        Когда у вас окажется столько же пользователей сколько у Feedly, вам тоже придется 2 часа превратить в 8 часов. Во всяком случае для ваших «бесплатных» клиентов.

                        Тут тоже самое — если вы будете проверять это через RSS например раз в минуту. То вы будете мучать сервер непрофитным трафиком (рекламу то вы не смотрите) вы один то ладно, вот 10000 таких как вы. т.е. делаете в сутки например 1400 запросов, заходите на сайт один раз.

                        Большая часть публичных RSS спокойно кэшируется и старая версия спокойно возвращает HTTP 304 Not Modified. Если оно гонит HTTP 200, то это проблема сервера, а не читателей.

                        Что касается 10000 подписчиков у сайта, это ведь уже не маленький такой сайт и 150 запросов статического файла в секунду ему ничего сделать не смогут даже теоретически, поскольку nginx даже на 5 баксовом дроплете тянет больше 1000 RPS.

                        Ну и о рекламе. Я вам ща секрет открою, только никому не рассказывайте — сайты не всегда отдают весь контент в RSS и мы таки переходим на сайт, если статья интересная.

                        Скорее всего обычно эти RSS подключают с обновлением например раз в час — для RSS это нормальное время.

                        Нормальные ресурсы обновляют 1 в 1. Единственный странный ресурс на моей памяти — Upwork, на котором задержка 5 минут, но он живет не с рекламы и ваши параноидальные идеи как-то мимо кассы.

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

                        Че, правда что ли? http://i.imgur.com/NjbvJid.png Попапы летят на рабочий стол. Не думаю, что вы обновляете с частотой раз в секунду.


                        1. BupycNet
                          31.12.2015 00:04
                          +1

                          Ок. Ваш подход имеет место. Пользуйтесь на здоровье. Есть те, кто уже сейчас использует решение в статье и их тоже устраивает.

                          «Т.е. даже если новость появится в любой момент, уведомление о ней я получу через два часа? Так насколько сядет аккумулятор моего телефона, если я буду проверять 90 фидов раз в два часа?»

                          До 10 подписчиков 2 часа, от 10 до 100 — 30 минут, от 100 до 500 — 1 минута. Больше 500 подписчиков — 30 секунд.
                          Когда мы добавили Wordpress плагин — многие каналы (официальные конечно) на него перешли. И там оповещение приходит секунда в секунду.

                          Большая часть каналов на которые я подписан обновляются каждые 1-10 минут. То есть таки телефон мой с полудохлым аккумулятором сядет еще до того как я выйду из дома утром…

                          «Когда у вас окажется столько же пользователей сколько у Feedly, вам тоже придется 2 часа превратить в 8 часов. Во всяком случае для ваших «бесплатных» клиентов.»
                          Когда у нас будет больше пользователей, скорее всего бесплатно мы не будем разрешать каналы с RSS если меньше 10 подписчиков. Изначально например приватные каналы бесплатно не могут использовать RSS.
                          Для 500 пользователей без проблем можно обновлять одну ленту раз в 30 секунд.

                          «поскольку nginx даже на 5 баксовом дроплете тянет больше 1000 RPS.»
                          Если только там не HTTPS, т.к. SSL Handshake реально так повышает нагрузку.


            1. Comedian
              30.12.2015 23:08
              +1

              Фильтры, разве что… Я как-то не задумывался о фильтрации, но наверняка рсс-читалки это умеют делать.

              В случае с проектами StackExchange можно подписаться сразу на отфильтрованную ленту


            1. Athari
              31.12.2015 12:16

              Фильтры, разве что… Я как-то не задумывался о фильтрации, но наверняка рсс-читалки это умеют делать.

              За Тостер не отвечаю, а на Stack Overflow внизу каждой страницы со списком вопросов есть ссылка на RSS с этими вопросами. Соответственно, достаточно подобрать нужный фильтр, и будет нужный RSS. Например, я подписан на ru.stackoverflow.com/feeds/tag?tagnames=.net%20or%20wpf%20or%20winforms%20or%20c%23%20or%20c%2b%2b%20or%20c&sort=newest


          1. ragimovich
            30.12.2015 22:22
            +1

            Простите, но чем ваши пуш уведомления удобнее и проще RSS? Берем QuiteRSS, пихаем в папку все нужные теги (на SO у каждого тега свой канал) и все.

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


            1. BupycNet
              30.12.2015 22:36
              -4

              90% нашей аудитории даже не знает что такое RSS. Про то, что наш сервис работает даже без установки чего либо в браузер — я уже написал. В случае с сафари (OSX) или андроид например, у вас это будет даже работать при закрытом браузере.

              «Не, я понимаю, что вам надо бизнес продвигать» Больше потратил чем заработал (пожертвования + 1.5 платные функции), и буду тратить дальше.

              «но объективно плюсов по сравнению с RSS у пушей нет вообще никаких. А нормальная RSS читалка может еще и серьезно поспорить с вашим сервисом в плане возможностей поиска, организации и хранения новостей.»
              Если брать множественные рассылки да. Но например возьмите канал FreeLoot — там оповещения о новых личных сообщениях, интересно вы будете делать ленту для личных сообщений и через читалку их получать?

              RSS не создан для оповещений. Это инструмент агрегации лент, чтобы можно было читать статьи или их заголовки не бегая по всем ресурсам. При этом тут не важна скорость доставки, ленты можно проверять прямо при открытии читалки.
              Тут же вам ничего не нужно открывать, делать и т.д. Например я мониторю статьи на ресурсах, они тоже мониторятся через RSS + фильтруются. За счет этого я часто захожу на ресурсы где еще 10-20 просмотров нет (через час уже несколько тысяч, да)
              В плане личных оповещений это мегаудобно, личные сообщения, ответы на комментарии, все что происходит сейчас и связано лично с вами. Например второй комментарий в этой статье — это рейтинг автора. Через RSS такое уже сложновато сделать тут уже возможно потребуются доп. запросы и это уже индивидуальное.


  1. AlanDenton
    30.12.2015 21:58

    Спасибо за столь интересный пост.

    Есть небольшое предложение… У Вас UserId NVARCHAR(128) — при росте данных в таблицах могут быть проблемы с перфомансом. Возможно имеет смысл сделать суррогатный ключ IDENTITY с типом SMALLINT или INT.


    1. smarly_net
      30.12.2015 22:23
      -3

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


  1. dkiyatkin
    30.12.2015 22:41
    +4

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


    1. smarly_net
      30.12.2015 23:12
      +1

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


      1. kloppspb
        31.12.2015 02:11
        -1

        >я долго тестил RSS и либо он идет через почтовик

        ССЗБ

        >либо через приложения которые не под рукой все время

        ССЗБ.

        Зато велосипедов поизобретать — это да :)


  1. dom1n1k
    31.12.2015 00:17
    +8

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


    1. BupycNet
      31.12.2015 00:22
      -1

      Такого это какого? Подписался на 10 тегов (это много как мне кажется), получилось с 15.00 всего 4 оповещения, причем подписался на так много, чтобы протестировать.
      Потом отпишусь от половины и будет 1 пуш в день или даже меньше.


    1. smarly_net
      31.12.2015 01:20

      Подписан исключительно на .NET и ASP.NET (там 5 тэгов собралось), периодичность получается около один пуш на пару часов, по заголовку сразу понятно насколько вопрос интересен. Так что, если в меру, то все выглядит довольно таки не плохо.


      1. matiouchkine
        31.12.2015 10:19
        +2

        Потому что русский SO — мертворожденная помойка для второсортных вопросов? Попробуйте повторить этот же эксперимент с нормальным SO и теми же тегами.

        Мне вот что интересно: вопрос получить спустя пару часов вы боитесь, а пропустить _все интересные вопросы_, потому что читаете форум для неспособных спросить у профессионалов всего мира — нет? Очень странный подход.


        1. Athari
          31.12.2015 12:38

          С помойками такой нюанс… Относительного большого СО русский СО — беспросветное дно. Но Тостер относительно русского СО — тоже беспросветное дно. :) Русский СО в вопросах контента ориентируется на старшего брата (впрочем, с заметным расширением тематики), а Тостер скорее ближе к традиционным форумам, где можно пофлудить на любую тему без особых ограничений (на Тостере очень популярны вопросы жанра «посоветуйте мне того, не знаю чего» — в сети Stack Exchange такое недопустимо).

          Для многих вопросов, кстати, нет разницы, где их задавать: ответы будут примерно одинаковыми на всех ресурсах. Ну, на большом СО ответят за 5 минут, а не за 15 — вот вся разница. К таким вопросам относятся задачи по популярным и распространнённым технологиям. Причём ответят и на относительно сложные вопросы: специалисты есть. Вот если что-то редкое или экзотическое — да, тогда только на забугорные ресурсы. Так что в целом вопрос комфорта, и у русскоязычных ресурсов ниша есть.


          1. matiouchkine
            31.12.2015 12:44
            +1

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

            Даже не так: я убежден, что таких вопросов не существует, кроме очень узкоспециальных тем, наподобие 1С. Грабли равномерно распределены по всему миру, поэтому если джуниор на них наступил — ответ _уже_ есть на большом SO. А если на грабли наступил сеньор — тут ни за какие 15 минут на русском SO ответ не получить.

            Так что ниша есть, но попадание в нее весьма чревато для попавшего очень негативными последствиями.


            1. Athari
              31.12.2015 13:09

              «Негативные последствия»? Вы так говорите, как будто программисты делятся на сеньоров и идиотов. :)

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


              1. matiouchkine
                31.12.2015 14:00

                Негативные последствия проявляются в необходимости учиться «всё равно по переведённым книгам», отсутствии знания терминологии и далее по списку.

                Программисты делятся на тех, кто хочет вырасти (не обязательно при этом становиться сеньором, хотя очень сложно откосить) — и тех, кто не хочет. Первым я бы анстоятельно рекомендовал забанить у себя русский SO на аппаратном уровне.


            1. BupycNet
              31.12.2015 15:49

              Вот например, я программирую под андроид хреново. Но в пушах заметил интересную багу связанную с хромом, которую гугл не хочет фиксить
              stackoverflow.com/questions/30415231/intent-chrome-browser-from-lockscreen-dont-work
              Если стоит блокировка паролем, или кодом, то открыв уведомление с локскрина — хром проигнорирует интенд.

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

              Но об этой проблеме не написал ни один «сеньор», а я по андроиду даже на джуниора не тяну на самом то деле.


              1. matiouchkine
                31.12.2015 17:35

                Вы, наверное, это хотели своему тимлиду отправить, а не мне? Очень рад за вас, очень сочувствую вашим пользователям.

                Промежуточное активити — это не решение, я бы никогда не подпустил его и близко к продакшену. Вам же написали прямо сразу в комментарии: проблема известна. Я очень далек от мобильной разработки, но склонен верить чуваку. Описать проблему так, чтобы я понял, в чем, собственно, проблема, вам не удалось (допускаю, что это мне не удалось понять).

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

                Какое это все имеет отношение в тому, что писал я?


                1. BupycNet
                  31.12.2015 17:48

                  Я и есть тимлид и основатель сервиса :) Из пары тысяч активных пользователей андроид приложения только пара человек возмутились в отзывах. Намного лучше то, что наше приложение до сих пор весит около 1.5 мегабайта, не жрет аккумулятор и достаточно стабильно работает (собственно только принимает оповещения)
                  Само приложение имеет рейтинг 4.6 что вполне неплохо при моих знаниях андроид разработки.

                  «Очень рад за вас, очень сочувствую вашим пользователям.» А пользователи рады, все работает шустро, проблема поправлена, скоро будет эта штука опциональной.

                  «Описать проблему так, чтобы я понял, в чем, собственно, проблема, вам не удалось (допускаю, что это мне не удалось понять). » Что не ясно: кликаешь ты на уведомление с экрана блокировки, а у тебя блокировка снимается, хром открывается, но зависает. Бага явно в хроме, тикет висит но всем пофиг. Просто мало кто вызывает ссылки с экрана блокировки, тут уже специфика сервиса пуш уведомлений.

                  «Какое это все имеет отношение в тому, что писал я?» Огромное отношение. Я даже не джуниор, а проблему не решил ни один сеньёор за несколько месяцев.
                  Там было несколько вариантов решения — либо ждать 2-3 секунды просто перед открытием хрома, что совсем ужасно. Либо там анимация идет переключения между активити. Пользователи за это снизили оценку с 5ки до 4ки, но терпимо. Когда будет опционально — вернут обратно.
                  У нас очень лояльная аудитория, я целыми днями общаюсь и обсуждаю с десятками пользователей из вопросы и параллельно разрабатываю все аспекты проекта.


                  1. matiouchkine
                    01.01.2016 10:20

                    > ждать 2-3 секунды просто перед открытием хрома, что совсем ужасно

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

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

                    И да, просто ради хохмы, логику еще никто не отменял, насколько мне известно. Опровержением моих слов была бы ссылка на русский SO, на котором был найден ответ. А то, знаете, теорема Ферма тоже не на каждом форуме освещена. И то, что студент-второкурсник думает, что доказал ее, не говорит о том, что все математики в мире дураки.


                    1. BupycNet
                      02.01.2016 15:24

                      Насчёт издевательства над пользователями. Сбербанк режет функционал если у тебя кастомная прошивка, даже если у тебя чистый AOSP на нексусе.
                      В то же самое время тинькофф работает под рутом, а вчера они ввели оплату через NFC


                      1. matiouchkine
                        03.01.2016 09:08

                        А сосед жену бьет, да.


                        1. BupycNet
                          03.01.2016 11:50

                          Это я о том, что все познается в сравнении. Огромный сбербанк, со штатом разработчиков не может отличить рут от чистого андроида (ну или им руководство сказало так сделать). У нас же например вообще как таковых средств не много, у нас в сервисе практически все бесплатно. Платные услуги только для каналов, и то они не сильно влияют на функционал, скорее немного упрощают жизнь.

                          В последнем апдейте я кстати фикс этот сломал — задержку сделал 25ms и убрал анимацию — теперь хром с экрана блокировки не открывается. но и активити это уже незаметно — более того, визуально кажется как будто хром стартует быстрее чем обычно т.к. нет анимации.
                          К слову мы еще как раз радуем пользователей быстрым исправлением ошибок. Например заметили ошибку -505 прямо за час до нового года, связался с пользователем и уже после НГ залили апдейт. Как итог — 2 негативные оценки в тот же день превратились в положительные. При этом крупные компании вообще не фиксят проблемы месяцами.


                          PS. первый оценку поправил, а вот отзыв не отправился, кстати замечали эту проблему с другими пользователями.



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


  1. sledopit
    31.12.2015 02:39

    Подождите, не совсем понятно.
    Оно просто показывает сообщение и висит пока вы его руками не закроете? (что в этом случае делать с фильтрами, по которым бывает 1000+ сообщений в сутки?)
    Или оно само закрывается через 5-10 секунд? (что тогда делать с сообщениями, которые показываются в момент, когда пользователь отошёл?)


    1. BupycNet
      31.12.2015 03:19

      В веб-пушах висят дальше. В дополнении они исчезают через 10 секунд. В андроиде висит в оповещениях как и везде. В телеграмме оно в чате оседает, на почте будет в письме, а количество писем зависит от настроенного времени, например можно сделать раз в сутки — будет одно письмо приходить.
      И то и другое можно будет смотреть в истории.

      «что в этом случае делать с фильтрами, по которым бывает 1000+ сообщений в сутки?» видимо по англоязычному stackoverflow много вопросов идет…
      Тут кстати видимо проще выбирать более узкие теги, а широкие проще вручную читать, если нужно.


  1. Lamaster
    31.12.2015 08:41

    RSS + IFTTT?