• Shake Detector для Android на RxJava



      Вступление


      Началось все с того, что была поставлена задача отменять последнее действие в приложении при встряхивании устройства. Но как понять, что случилось это самое встряхивание? Через пару минут изучения вопроса стало ясно, что надо подписываться на события от акселерометра и дальше пытаться как-то определить, что устройство встряхнули.
      Обнаружились и готовые решения. Все они были довольно похожи, но в чистом виде они меня не устраивали, и я написал собственный «велосипед». Это был класс, который подписывался на события от сенсора и менял свое состояние по мере их поступления. Потом пару раз я и мои коллеги подкручивали шестеренки этого велосипеда, и в результате он стал напоминать нечто из «Безумного Макса». Я пообещал, что, как выдастся свободное время, приведу это безобразие в порядок.

      И вот, читая недавно статьи по RxJava, я вспомнил про эту задачу. «Хм, — подумал я, — RxJava выглядит очень подходящим инструментом для такого рода проблем». Не откладывая в долгий ящик, взял и написал решение на RxJava. Результат меня поразил: вся логика заняла 8 (восемь!) строк! Я решил поделиться своим опытом с другим разработчикам. Так появилась на свет эта статья.

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

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

      Приступим!
      Читать дальше →
    • Реактивная обработка стрима логов с RxJava — Часть 1

      image
      Reactive log stream processing with RxJava — Part l


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


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

      Читать дальше →
    • Переход из SQL на NoSQL: опыт проекта СМЭВ 2.0

        В последние годы NoSQL и BigData стали очень популярными в ИТ-индустрии, и на базе NoSQL успешно реализованы тысячи проектов. Часто на разных конференциях и форумах слушатели задают вопрос о том, как модернизировать или перенести старые системы (legacy) в NoSQL. К счастью, у нас был опыт перехода из SQL на NoSQL в крупном проекте СМЭВ 2.0, о котором я и расскажу под катом.


        Читать дальше →
      • Интервью: Тим Мессершмидт, PayPal

          image
          Многие читатели Хабра слушали доклад Тима Мессершмидта, который отвечает за связи PayPal с разработчиками в странах Европы, Ближнего Востока и Африки на прошедшей недавно конференции MBLTDev. Речь шла об аутентификации и сложностях, с которыми сталкиваются специалисты, пытаясь защитить пользовательские данные. Технический директор Redmadrobot Артур Сахаров mc_murphy поймал Тима за кулисами мероприятия и поговорил с ним о безопасности, джейлбрейке и языках программирования.

          В своем выступлении вы много говорили о том, что качество UX зачастую вступает в противоречие с безопасностью — в особенности, когда речь идет о “чувствительной” информации, как например, в банковских приложениях. Расскажите об этом, пожалуйста, поподробнее.
          В PayPal мы применяем двухфакторную авторизацию: при подтверждении нового устройства используем его аппаратные идентификаторы и подтверждаем их одноразовыми кодами доступа, которые рассылаются через SMS. Когда пользователь регистрируется, ему по электронной почте также приходит письмо с просьбой подтвердить авторизацию. То есть мы предлагаем целый ряд решений в области безопасности помимо обычной регистрации и последующего входа по паролю.
          Читать дальше →