• Как ты реализуешь аутентификацию, приятель?

    • Перевод


    Все знают о стандартной аутентификации пользователя в приложении. Это олдскульная процедура регистрации — пользователь вводит адрес почты, пароль и т. д., — а затем при входе мы сравниваем почту и/или пароль с сохранёнными данными. Если совпадает, даём доступ. Но времена изменились, и сегодня появилось много других методов аутентификации. Если хотите оставаться востребованным программистом/разработчиком в этом меняющемся, словно калейдоскоп, мире разработки ПО, то вы должны знать обо всех этих новых методах.


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


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

    Читать дальше →
  • Tarantool: когда на сервис оповещения миллиона пользователей нужно 500 строк кода


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


      На написание данной статьи меня натолкнула эта статья.


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

      Читать дальше →
    • Как я научился напрямую перезагружаться в нужную ОС через UEFI

      • Tutorial

      Добрый вечер, Habrahabr!


      Сегодня мы научимся перезагружаться из Linux прямиком в Windows и обратно всего за один (двойной) клик.


      image

      Читать дальше →
    • Аутентификация OAuth2 в приложении посредством Google Sign-In. Непрерывный доступ к API Google

      «С 20 апреля 2017 года отправка запросов на авторизацию из встроенных браузеров будет блокироваться».
      Такое сообщение с 1 марта можно увидеть в некоторых приложениях, где необходима авторизация. Об этом Google написали в своём блоге еще в августе 2016, и это значит, что скоро во многих приложениях придется переписывать реализацию регистрации. Приятного мало, однако выход есть – использовать рекомендуемый способ авторизации Google Sign-in.

      Об этом способе и будет идти речь в уроке, а также как получить токены, необходимые для работы с API Google.
      Читать дальше →
      • +24
      • 16,4k
      • 3
    • Объясняем современный JavaScript динозавру

      • Перевод


      Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


      Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


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


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

      Читать дальше →
    • «Магическая константа» 0x5f3759df

      • Перевод
      В этой статье мы поговорим о «магической» константе 0x5f3759df, лежащей в основе элегантного алгоритмического трюка для быстрого вычисления обратного квадратного корня.

      Вот полная реализация этого алгоритма:

      float FastInvSqrt(float x) {
        float xhalf = 0.5f * x;
        int i = *(int*)&x;  // представим биты float в виде целого числа
        i = 0x5f3759df - (i >> 1);  // какого черта здесь происходит ?
        x = *(float*)&i;
        x = x*(1.5f-(xhalf*x*x));
        return x;
      }

      Этот код вычисляет некоторое (достаточно неплохое) приближение для формулы

      image

      Сегодня данная реализация уже хорошо известна, и стала она такой после появления в коде игры Quake III Arena в 2005 году. Её создание когда-то приписывали Джону Кармаку, но выяснилось, что корни уходят намного дальше – к Ardent Computer, где в середине 80-ых её написал Грег Уолш. Конкретно та версия кода, которая показана выше (с забавными комментариями), действительно из кода Quake.
      В этой статье мы попробуем разобраться с данным хаком, математически вывести эту самую константу и попробовать обобщить данный метод для вычисления произвольных степеней от -1 до 1.

      Да, понадобится немного математики, но школьного курса будет более, чем достаточно.
      Читать дальше →
    • У нас длинные руки: 7 зарубежных площадок, на которых можно найти удалённую работу

        Развитие телекоммуникационных технологий — это win-win для работодателей и работников: компании могут находить таланты по всему миру, а люди могут работать откуда угодно, лишь бы был Wi-Fi. И популярность удалённой работы лишь растёт. К примеру, согласно отчёту Gallup, в 2015 году 37% респондентов ответили, что работают удалённо частично или весь рабочий день. Это было на 7 процентных пунктов больше, чем в 2008. И нет причин считать, что эта тенденция сегодня изменилась.

        Чем больше людей обращаются к подработке, фрилансу или удалённой работе на полную ставку, тем чаще возникает вопрос: где именно мне найти работу, которая позволит отказаться от поездок в офис? Предлагаем вашему вниманию семь зарубежных площадок, на которых можно найти удалённую работу.
        Читать дальше →
      • Закон об онлайн-кассах: давайте ставить точки? Электронные деньги и агрегаторы

          Сегодня анализировал toster, несколько форумов и блогов, где обсуждаются вопросы ФЗ №54 об онлайн-кассах (как ККТ) и пришёл к выводу, что абсолютное большинство онлайн-предпринимателей до сих пор не сделало выводов о том, что именно предписывает данный акт.

          Ниже вы узнаете:

          нужна ли ККТ при приёме пластиковых карт и электронных денег?
          нужна ли ККТ при приёме платежей через агрегаторов?

          Дабы не повторяться — остальные аспекты можно посмотреть тут и тут, или даже вот здесь. И да — ещё ликбез.



          Итак, электронные деньги (Яндекс, Qiwi, PayPal, но — внимание! — не WebMoney).

          Начинаем, как учат всех юристов-первокурсников с названия: ФЗ называется «О контрольно-кассовой технике при осуществлении наличных денежных расчетов и (или) расчетов с использованием электронных средств платежа».

          Далее открываем мой «любимый» ФЗ №161 «О национальной платёжной системе», а именно — ст. 3 и читаем: «электронное средство платежа — средство и (или) способ, позволяющие клиенту оператора по переводу денежных средств составлять, удостоверять и передавать распоряжения в целях осуществления перевода денежных средств в рамках применяемых форм безналичных расчетов с использованием информационно-коммуникационных технологий, электронных носителей информации, в том числе платежных карт, а также иных технических устройств».

          Идём дальше и читаем ст. 1.2 ФЗ №54 (тот, что о ККТ): «Контрольно-кассовая техника применяется на территории Российской Федерации в обязательном порядке всеми организациями и индивидуальными предпринимателями при осуществлении ими расчетов, за исключением случаев, установленных настоящим Федеральным законом». О сроках и субъектах уже говорил, поэтому акцентируемся на другом.
          пояснение про исключения
        • Игры, в которых нужно писать код: Grid Garden, Elevator Saga и другие


            В детстве мы постигаем премудрости жизни через игру. Это важнейший элемент развития личности, социальных навыков, получения знаний об окружающем мире. Игры — хороший «контейнер» для донесения и закрепления каких-либо знаний. Яркий пример — игры, в которых нужно писать код. Наверняка все вы о них слышали, а в некоторые даже играли. Их первичная задача — развлечь людей, уже владеющих навыками программирования, но они могут использоваться и для обучения. Эти игры помогут освежить свои знания по тому или иному языку, отвлечься и заняться более простой алгоритмической задачей.

            Читать дальше →
          • Английский для собеседований в IT-компании: что нужно для старта карьеры?

              Собеседование на английском — дело непростое. Но хорошее планирование и подготовка ключевых моментов сделают этот процесс более приятным и безобидным.


              Читать дальше →