company_banner
  • Приглашаем на about:cloud — первое мероприятие про облачные технологии от команды Яндекс.Облака



      Встреча about:сloud — первое крупное мероприятие для широкой аудитории от команды Яндекс.Облака. Если вы интересуетесь облачными технологиями, администрируете системы и сети или разрабатываете ПО, то приходите к нам в гости! Вы сможете пообщаться с техническими руководителями всех сервисов облака, многие из которых подготовили доклады о том, как они создают платформу, и о планах на ближайшее будущее.
      Читать дальше →
    • Динамическое ценообразование, или Как Яндекс.Такси прогнозирует высокий спрос



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

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

        Читать дальше →
      • Микроинтеракции в iOS. Лекция Яндекса

          Несколько недель назад в офисе Яндекса прошло специальное мероприятие сообщества CocoaHeads — более масштабное, чем традиционные митапы. Разработчик Антон Сергеев выступил на этой встрече и рассказал о модели микроинтеракций, которой обычно пользуются UX-дизайнеры, а также о том, как применить заложенные в ней идеи на практике. Больше всего внимания Антон уделил анимации.


          — Для меня очень важно, что именно мне выпала честь встречать гостей. Я вижу здесь тех, с кем я знаком очень давно, тех, с кем знаком совсем недавно, и тех, с кем еще не знаком. Добро пожаловать на CocoaHeads.
          Читать дальше →
          • +19
          • 1,6k
          • 1
        • Continuous integration в Яндексе

            Поддержка огромной кодовой базы с одновременным обеспечением высокой производительности большого числа разработчиков — это серьезный вызов. В течение последних 5 лет в Яндексе идет разработка особой системы непрерывной интеграции. В данной статье мы расскажем про масштаб кодовой базы Яндекса, про перенос разработки в единый репозиторий с trunk-based подходом к разработке, про то, какие задачи должна решать система непрерывной интеграции для эффективной работы в таких условиях.



            Много лет назад в Яндексе никаких особенных правил в разработке сервисов не было: каждый отдел мог использовать любые языки, любые технологии, любые системы деплоя. И как показала практика, такая свобода не всегда помогала двигаться вперед быстрее. В то время для решения одних и тех же задач часто существовало несколько собственных или open-source разработок. С ростом компании такая экосистема работала всё хуже. При этом мы хотели остаться одним большим Яндексом, а не разделиться на множество независимых компаний, потому что это дает массу преимуществ: много людей делают одни похожие задачи, результаты их труда можно использовать повторно. Начиная от разнообразных структур данных, типа распределённых хеш-таблиц и lock-free очередей, и заканчивая множеством разного специализированного кода, который мы написали за 20 лет.

            Читать дальше →
          • Мобильный Яндекс.Блиц: разбираем задачи

              В 2018 году мы провели три конкурса Яндекс.Блиц — по машинному обучению, мобильной разработке и фронтенду. Третий конкурс состоялся совсем недавно — поздравляем победителей! Мы тем временем хотим вернуться ко второму из них, где предлагались задачи на стыке алгоритмов и написания софта для Android/iOS. Кандидатам на позицию мобильного разработчика в Яндексе пригодится опыт решения таких задач. Почитайте подробные разборы некоторых из них.





              Задача «Газоснабжение»


              Ввод Вывод Ограничение времени Ограничение памяти
              стандартный ввод или input.txt стандартный вывод или output.txt 15 секунд 15 мегабайт

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

              Читать дальше →
              • +20
              • 6,6k
              • 7
            • Как машинное обучение в YouDo катится в продакшен. Лекция в Яндексе

                В крупных сервисах решить какую-нибудь задачу с помощью машинного обучения — означает выполнить только часть работы. Встраивать ML-модели не так уж просто, а налаживать вокруг них CI/CD-процессы еще сложнее. На конференции Яндекса «Data & Science: программа по заявкам» руководитель направления data science в компании YouDo Адам Елдаров рассказал о том, как управлять жизненным циклом моделей, настраивать процессы дообучения и переобучения, разрабатывать масштабируемые микросервисы, и о многом другом.


                — Начнем с вводных. Есть data scientist, он в Jupyter Notebook пишет какой-то код, делает фиче-инжениринг, кросс-валидацию, тренирует модельки. Скор растет.
                Читать дальше →
                • +21
                • 5,5k
                • 8
              • Бэкенд для фронтенда, или Как в Яндекс.Маркете создают API без костылей

                  Почему некоторыми API удобнее пользоваться, чем другими? Что мы как фронтендеры можем сделать на своей стороне, чтобы работать с API приемлемого качества? Сегодня я расскажу читателям Хабра как о технических вариантах, так и об организационных мерах, которые помогут фронтендерам и бэкендерам найти общий язык и наладить эффективную работу.



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


                  Читать дальше →
                • Новый взгляд на документирование API и SDK в Яндексе. Лекция на Гипербатоне

                    Меня зовут Андрей Поляков, я руководитель группы документирования API и SDK в Яндексе. Сегодня я хотел бы поделиться с вами докладом, который я и моя коллега, старший разработчик документации Юлия Пивоварова, прочитали несколько недель назад на шестом Гипербатоне.


                    Светлана Каюшина, руководитель отдела документирования и локализации:
                    — Объемы программного кода в мире в последние годы сильно выросли, продолжают расти, и это влияет на работу технических писателей, которым приходит все больше задач на разработку программной документации и документирования кода. Мы не могли обойти стороной эту тему, посвятили ей целую секцию. Это три взаимосвязанных доклада, посвященных унификации разработки программной документации. Я приглашаю наших специалистов по документированию программных интерфейсов и библиотек Андрея Полякова и Юлию Пивоварову. Передаю им слово.
                    Читать дальше →
                  • Как краудсорсинговая платформа Яндекса помогает обучать беспилотники и оценивать качество сервисов

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

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

                      Под катом – примеры того, как Толока помогает Яндексу и другим компаниям развивать свои продукты. Все заголовки кликабельны – ссылки ведут на записи докладов.



                      Читать дальше →
                      • +25
                      • 3,2k
                      • 2
                    • История и опыт использования машинного перевода. Лекция Яндекса

                        В сентябре прошёл шестой Гипербатон — конференция Яндекса обо всём, что связано с технической документацией. Мы опубликуем несколько лекций с Гипербатона, которые, на наш взгляд, могут быть наиболее интересны читателям Хабра.


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

                        Начнем с доклада наших коллег. Приглашаю Ирину Рыбникову и Анастасию Пономарёву — они расскажут об опыте Яндекса по внедрению машинного перевода в наши процессы локализации.
                        Читать дальше →
                      • Как участвовать в соревнованиях по машинному обучению. Лекция в Яндексе

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


                          — Всем привет. Меня зовут Артур Кузин, я lead data scientist компании Dbrain.
                          Читать дальше →
                        • Алгоритмические задачи во фронтенде. Примеры и конкурс Яндекса

                            Вчера стартовал новый Яндекс.Блиц — на этот раз конкурс будет интересен разработчикам интерфейсов. Обладателям мест с первого по пятое мы предложим устроиться к нам по упрощённой схеме: одна секция собеседования вместо четырёх. Тем самым Блиц остаётся наиболее быстрым способом попасть в Яндекс.

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



                            Блиц — хороший повод поговорить об истории алгоритмических задач, возникающих в промышленном фронтенде, и о том, как они отличаются от конкурсных.
                            Читать дальше →
                            • +19
                            • 9,2k
                            • 5
                          • Тестирование производительности веб-сервиса в рамках Continuous Integration. Опыт Яндекса

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


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



                              Читать дальше →
                              • +26
                              • 5,8k
                              • 6
                            • Как Яндекс создал глобальный прогноз осадков с использованием радаров и спутников

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

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


                                Снимки спутника Meteosat-8 из космоса (источник: EUMETSAT)
                                Читать дальше →
                              • Алиса выплатит более миллиона рублей до конца года. Новый конкурс и рекомендации Яндекса для разработчиков навыков

                                  Сегодня Алисе исполняется год. За прошедшие месяцы она обучилась множеству новых навыков, большая часть из которых была создана сторонними разработчиками с помощью платформы Диалоги. Более 28 тыс. навыков уже опубликованы и доступны всем пользователям Алисы.

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



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

                                  Читать дальше →
                                • Правила разработки в Яндекс.Здоровье

                                    Многим кажется, что Яндекс — это большая монолитная корпорация с жёсткими регламентированными процессами, однако это не так. Мы постоянно ищем новые направления, начинаем новые проекты и пробуем новые рынки. Сервис для онлайн-консультаций с врачом "Яндекс.Здоровье" — один из классических внутренних стартапов.

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

                                    Disclaimer:
                                    У стартапа есть свои особенности. Основная наша задача – делать максимальное количество экспериментов в единицу времени и выдавать продуктовые фичи с максимально возможной скоростью. При этом мы должны держать качество продукта на таком уровне, чтобы за него было не стыдно. [Место для флейма про отсутствующую у некоторых совесть]. Замечу, что высокая скорость доставки фич подразумевает в том числе поддержание достаточно высокого качества кода. Иначе продукт рано или поздно захлёбывается в багах.

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



                                    Качество кода и архитектура


                                    • Мы минимизируем время доведения фичи до продакшна при сохранении приемлемого качества.
                                    • Любая задача предполагает два решения: быстрое и правильное. Для любой фичи мы продумываем оба варианта так, чтобы была возможность апгрейдить быстрое решение до правильного, делая минимум ненужной работы «на выброс». Выкатив быстрое решение, некоторое время смотрим и понимаем, нужно ли правильное.
                                    • Критично. Зачастую, разница по времени между тем, чтобы «решить первым попавшимся способом, забив костыль» и «решить красиво и аккуратно» – десять минут. Поэтому мы всегда думаем, перед тем как писать.

                                    Читать дальше →
                                  • Верхнеуровневая архитектура фронтенда. Лекция Яндекса

                                      Выбор подходящей архитектуры — ключевая часть построения фронтенда сервиса. Разработчик Анна Карпелевич рассказала студентам Школы разработки интерфейсов, что такое архитектура, какие функции она выполняет и какие проблемы решает. Из лекции можно узнать о наиболее популярных архитектурных подходах во фронтенде: Model-View-* и Flux.


                                      — Добрый вечер. Меня зовут Аня Карпелевич. Мы сегодня с вами будем говорить про архитектуру фронтенда верхнего уровня.
                                      Читать дальше →
                                    • Алиса поможет разработчикам найти объекты в запросах пользователей. NER в Диалогах

                                        Весной мы запустили платформу Диалоги, которая позволяет создавать навыки для Алисы и распознавать голосовые запросы пользователей. Изначально разработчикам навыков приходилось разбирать запросы самостоятельно. К примеру, находить адрес в тексте. Теперь эту часть работы платформа берёт на себя.

                                        Сегодня мы расскажем читателям Хабра о распознавании именованных сущностей (Named-entity recognition; NER) и новых возможностях для разработчиков навыков.



                                        Мы верим, что будущее за голосовыми интерфейсами. Уже сейчас во многих случаях пользователи предпочитают использовать голос, а не экранную клавиатуру. Например, при управлении автомобилем. Или для поиска быстрых ответов на простые вопросы. Или для игры в «города» лёжа на диване. Но чтобы таких сценариев становилось всё больше, простого распознавания голоса в текст недостаточно.
                                        Читать дальше →
                                      • Доступность интерфейсов. Лекция Яндекса

                                        • Tutorial
                                        Меня зовут Дима, я работаю в офисе Яндекса в Санкт-Петербурге и занимаюсь внутренними сервисами в команде разработки интерфейсов Толоки. В этом году я подготовил лекцию для Школы разработки интерфейсов. Ниже — её расшифровка.

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


                                        — Что скрывается под модным нынче термином accessibility? Какие у вас есть варианты? Для слепых, чтение с экрана, с ограниченными возможностями, координация движений… Все верно. Доступность — возможность использования интерфейса всеми, независимо от физических или технических ограничений.
                                        Читать дальше →
                                      • Готовимся к С++20. Coroutines TS на реальном примере

                                          В C++20 вот-вот появится возможность работать с корутинами из коробки. Нам в Яндекс.Такси эта тема близка и интересна (под собственные нужды мы разрабатываем асинхронный фреймворк). Поэтому сегодня мы на реальном примере покажем читателям Хабра, как можно работать с C++ stackless корутинами.

                                          В качестве примера возьмём что-то простое: без работы с асинхронными сетевыми интерфейсами, асинхронными таймерами, состоящее из одной функции. Например, попробуем осознать и переписать вот такую «лапшу» из колбеков:


                                          void FuncToDealWith() {
                                              InCurrentThread();
                                          
                                              writerQueue.PushTask([=]() {
                                                  InWriterThread1();
                                          
                                                  const auto finally = [=]() {
                                                      InWriterThread2();
                                                      ShutdownAll();
                                                  };
                                          
                                                  if (NeedNetwork()) {
                                                      networkQueue.PushTask([=](){
                                                          auto v = InNetworkThread();
                                                          if (v) {
                                                              UIQueue.PushTask([=](){
                                                                  InUIThread();
                                                                  writerQueue.PushTask(finally);
                                                              });
                                                          } else {
                                                              writerQueue.PushTask(finally);
                                                          }
                                                      });
                                                  } else {
                                                      finally();
                                                  }
                                              });
                                          }
                                          

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

                                        Самое читаемое