• Время — деньги. Как мы учили Яндекс.Такси точно рассчитывать стоимость поездки


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

      До недавнего времени стоимость поездки в такси тоже была плавающей. Даже онлайн-сервисы рассчитывали сумму лишь примерно — окончательная стоимость формировалась только в конце пути. Тариф, как правило, включает три компонента: стоимость посадки (иногда с включенными километрами и/или минутами), стоимость километра и стоимость минуты. Конечно, можно было рассчитать примерную цену за поездку и раньше, но в конце она могла измениться из-за того, что, например, по пути водитель задержался в пробке. Понятно, что пассажирам это не всегда нравилось.

      Кажется, нет ничего проще, чем использовать данные маршрутизатора в Яндекс.Навигаторе и данные Пробок, чтобы Яндекс.Такси с самого начала рассчитало точную цену, которая не менялась бы по окончании поездки. Но на самом деле на стоимость влияет огромное число факторов, не только тариф. Важно не просто уметь её рассчитывать. С одной стороны, стоимость должна быть привлекательной для пользователя, причём с учётом не только текущей ситуации на дороге, но и, например, пробок, которых на маршруте пока нет, но которые скоро возникнут. С другой, цена должна быть такой, чтобы водители не потеряли в заработке, даже если путь из точки А в точку Б оказался длиннее или дольше, чем планировалось. В этой статье мы расскажем, как решали задачу и как искали сбалансированный алгоритм, выгодный всем участникам платформы Яндекс.Такси.
      Читать дальше →
    • Подключаем оплату через Apple Pay на сайте

        Сейчас, в том числе и у нас на сайте, и в приложениях ivi, есть явная тенденция роста аудитории на мобильных устройствах. Также растет и доля покупок, совершаемых в интернете с мобильных устройств. В отличие от десктопа, помимо традиционных вариантов оплаты, доступны системы мобильных платежей, например Apple Pay, Android Pay, Samsung Pay. Эти системы можно использовать не только для оплаты в терминалах, принимающих банковские карты, но и для оплаты в приложениях и на веб-сайтах.


        Внедрение мобильных платежей мы начали с веб-версии ivi и выбрали мобильный сайт и систему Apple Pay.
        Читать дальше →
        • +13
        • 1,7k
        • 2
      • Клонирует ли Ketchapp игры?

          image

          Старая добрая страшилка «Если вы выпустите успешную игру, то Ketchup скопирует её за неделю» уже давно ходит среди игровых разработчиков. Одни считают, что это правда; другие – что это глупые сплетни. На этот раз ей нашёлся свежий, с пылу с жару, пример, достойный обсуждения (сразу замечу, что в данной ситуации не всё однозначно).

          На выходных широкое внимание общественности привлёк Burak Kurkcu, разработчик из Турции. В своём Twitter он рассказал о том, что издатель Ketchup и разработчик Юрий Саначев склонировали его мобильную игру Stair Hops. Причём, в отличие от оригинальной игры, созданный за два месяца и выпущенный Ketchapp клон под названием Stairs попал в TOP-10 и приносит издателю неплохой заработок.

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

          Здесь можно поспорить, является ли игра жанра «infinite jumper» оригинальной в принципе — сам разработчик утверждает, что до выпуска его игры никаких аналогов в App Store не существовало.
          Читать дальше →
        • Как задавать вопросы в IRC

          • Перевод
          Опубликовал RurouniJones 17 марта 2009 года

          Приветствую. Если вы попали на эту страницу по собственному желанию и намерению, то имейте в виду, что это сокращённая, немного более современная версия статьи Эрика Рэймонда «Умный способ задавать вопросы» — отличного, но длинноватого текста.

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

          Как правильно задавать вопросы


          Вкратце:

          • Не спрашивайте разрешения
          • Расскажите подробности
          • Задавайте уместные вопросы
          • Будьте вежливым
          • Ждите
          Читать дальше →
        • Одних тестов недостаточно, нужна хорошая архитектура

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

            В статье я постарался описать одну из проблем, которую может решить хорошая архитектура: связанные участки кода могут разъезжаться между собой, это может приводить к багам, и тесты тут не спасут. А грамотный дизайн может помочь.
            Читать дальше →
          • Анализ резюме HH.RU: много графиков и немного сексизма и дискриминации

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

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


              Читать дальше →
            • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

              Подробнее
              Реклама
            • Multi-pattern matching на GPU миф или реальность

              image

              Немного лирики


              В те давние времена, когда трава была зеленее и деревья были выше, я твёрдо верил, что такие страшные слова, как дивергенция потоков, cache missing, coalescing global memory accesses и прочие не позволяют эффективно реализовать задачу множественного поиска на GPU. Годы шли, уверенность не исчезала, но в один прекрасный момент я наткнулся на библиотеку PFAC. Если интересно, на что она способна — добро пожаловать под кат.
              Читать дальше →
              • +18
              • 2,5k
              • 7
            • Понятие связи в проекционном моделировании

                Продолжаю рассказывать про проекционное моделирование.

                Следующая тема, которую я хочу затронуть, — это объяснение, почему мы определили связь в конструкции как 4-Д объект. Напомню, что в проекционном моделировании связь – это общая часть элементов конструкта. Поскольку элементы конструкта – это 4-Д объекты, то связи – тоже 4-Д объекты. То есть, для существования связи между двумя 4-Д объектами должен быть общий 4-Д объем, принадлежащий обоим этим объектам.

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

                Пространственные связи


                Начнем с простого: пусть объекты связаны общим положением в пространстве или во времени. Это связи типа «справа», «выше», «после», «вместе» и т.д. Для моделирования такого рода связей нам нужно рассмотреть 4-Д пространство, в котором помещены рассматриваемые нами 4-Д объекты. 4-Д пространство играет такую же роль, как и другие 4-Д объекты. Обычно моделирование начинается именно с того, что мы формируем границы модели, то есть, 4-Д пространство, в котором потом размещаем 4-Д объекты. Почему-то про этот самый первый 4-Д объект забывают сразу после его определения. Но именно его свойства позволяют нам описать указанные мной связи.
                Читать дальше →
              • Дайджест свежих материалов из мира фронтенда за последнюю неделю №293 (11 — 17 декабря 2017)

                  Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


                  Читать дальше →
                • Настройка Nginx + PHP-FPM и HTTPS от Let's Encrypt на AWS EC2 с Ubuntu Server 16.04 LTS

                  • Tutorial
                  Порядок действий для установки PHP 7.1 и разворачивания проекта на PHP на созданном Amazon AWS EC2 instance. Основано на этой статье, с дополнениями отсюда и из других источников. Используется более новая версия PHP, добавлены инструкции по установке HTTPS, и пример настройки проекта на Laravel. Подразумевается, что инстанс используется в режиме разработки.
                  Читать дальше →
                Самое читаемое