Как стать автором
Обновить
574.92
Яндекс
Как мы делаем Яндекс
Сначала показывать

Полное понимание асинхронности в браузере

Время на прочтение 24 мин
Количество просмотров 20K
Блог компании Яндекс JavaScript *Программирование *Интерфейсы *Браузеры
Про асинхронность JavaScript написано много статей, документации и книг. Но вся информация сильно распределена по интернету, поэтому сложно быстро и полностью разобраться, что к чему, и составить цельную картину в голове. Не хватает одного исчерпывающего гайда. Именно эту потребность я и хочу закрыть своей статьёй.

Читать дальше →
Всего голосов 65: ↑65 и ↓0 +65
Комментарии 13

Новости

C++23 — финал, C++26 — начало

Время на прочтение 8 мин
Количество просмотров 20K
Блог компании Яндекс Программирование *C++ *Компиляторы *

С момента моей прошлой публикации состоялось уже две встречи международного комитета по стандартизации C++.

Комитет занимался полировкой C++23:
  • static operator[];
  • static constexpr в constexpr-функциях;
  • безопасный range-based for;
  • взаимодействие std::print с другими консольными выводами;
  • монадический интерфейс для std::expected;
  • static_assert(false) и прочее.

И прорабатывал новые фичи C++26:
  • std::get и std::tuple_size для агрегатов;
  • #embed;
  • получение std::stacktrace из исключений;
  • stackful-корутины.

Подробности
Всего голосов 48: ↑47 и ↓1 +46
Комментарии 27

Ускоряем Cycle Time и растим счастье в команде

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 2.7K
Блог компании Яндекс Блог компании Конференции Олега Бунина (Онтико) Промышленное программирование *Управление разработкой *Управление проектами *


Куда и зачем смотреть, что поменять, чтобы в два раза ускорить командное время от взятия задачи в работу до её попадания в артефакты продакшена? Как при этом не мучить бесполезной рутиной команду, а сделать её счастливее? Для этого нужно автоматизировать подсчёты Cycle Time и научиться правильно читать графики. Посмотрим, как это сделать.

Меня зовут Никита Дубко, я беларус и мастер подземелий в D&D. А ещё — доброжелюбный бородач из подкаста «Веб-стандарты» и руководитель службы разработки HR Tech Яндекса. Моя задача — оптимизация процессов. О том, как я это делаю, и пойдёт речь в статье. Текст написан по мотивам моего доклада на TeamLead Conf 2022.
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 6

Как мы делали AEC для воспроизведения звука через HDMI на Станции Макс

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 7.6K
Блог компании Яндекс Производство и разработка электроники *Умный дом Звук Голосовые интерфейсы *


В недавнем апдейте прошивки для Яндекс Станции Макс мы добавили поддержку вывода звука по кабелю HDMI при просмотре фильмов. Если у вашего телевизора хорошая акустика (или к нему подключена качественная аудиосистема), теперь можно слушать аудиодорожку через неё. Это обновление мы выпустили только сейчас, потому что оно потребовало нетривиальных технических решений. Например, нужно было сделать эхоподавление для HDMI. Вот об этом и поговорим — сначала обсудим историю технологий и проблемы с подавлением собственного звука устройства, а затем перейдём к нашему решению.
Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Комментарии 12

О сетевой аварии в Яндексе

Время на прочтение 6 мин
Количество просмотров 75K
Блог компании Яндекс Высокая производительность *Сетевые технологии *Облачные сервисы *Сетевое оборудование
Ретроспектива
6 февраля пользователи могли заметить частичную недоступность сервисов Яндекса. Проблема возникла из-за каскадного сбоя в работе сетевого оборудования.

Основной пик пришёлся на период с 17:03 до 17:50, когда общие потери трафика достигали 40%. Кроме того, в период с 17:03 до 17:13 наблюдалась практически полная потеря IPv6 трафика. Инцидент удалось устранить к 21:30.

Как это произошло и какие выводы мы из этого извлекли — ответим на эти вопросы и поделимся нашим опытом.



Читать дальше →
Всего голосов 233: ↑228 и ↓5 +223
Комментарии 73

Устройства для цветомузыки: откуда они появились и как я собрал их в коллекцию

Время на прочтение 9 мин
Количество просмотров 9.1K
Блог компании Яндекс Производство и разработка электроники *Старое железо Звук
Ретроспектива
Если вбить в поисковик слово «цветомузыка», вы увидите многочисленные объявления о продаже советского дискотечного оборудования, которое наверняка помнят те, чьё детство пришлось на 80-е. Колонки с лампочками, вращающиеся ночники, цветные фонари были тогда почти в каждом доме.

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



Меня зовут Роман Крылов, я восстанавливаю и коллекционирую советские цветомузыкальные устройства. С декабря в Яндекс Музее в Москве и Санкт-Петербурге проходит выставка моей коллекции, она завершится 31 января. В этой статье я расскажу об экспонатах, но сначала немного поговорим об истории появления самой цветомузыки.
Читать дальше →
Всего голосов 66: ↑66 и ↓0 +66
Комментарии 79

Как Яндекс научился распознавать, что написано в рукописных архивах

Время на прочтение 11 мин
Количество просмотров 22K
Блог компании Яндекс Поисковые технологии *Обработка изображений *Машинное обучение *Искусственный интеллект

Привет, Хабр. Меня зовут Саша, в прошлый раз я рассказывал сообществу про поиск организаций в Яндексе. В этот раз мы вновь поговорим про поиск, но уже совершенно другого рода. Сегодня расскажем про «Поиск по архивам». Этот проект вырос из моего личного интереса к истокам семьи, но в итоге (хочется верить!) поможет тысячам других таких же пользователей чуть больше узнать о своих корнях.

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

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

Решению этой задачи мы и посвятим историю. А поможет мне с ней Таня @miryable из команды, которая уже много лет развивает в Яндексе технологию оптического распознавания символов (OCR).

Читать далее
Всего голосов 145: ↑144 и ↓1 +143
Комментарии 103

Две культуры программирования: почему обе из них важны?

Время на прочтение 13 мин
Количество просмотров 50K
Блог компании Яндекс Ненормальное программирование *Программирование *Промышленное программирование *
Мнение
Уже несколько лет я замечаю, что программисты и программистские инструменты делятся на две разные культуры:



Изначально я человек первой культуры и очень долгое время считал вторую несерьёзной. Пару-тройку лет назад я окончательно понял, что ошибался. Многие «старички» ошибаются в ту же сторону, а в последние годы ещё большее число людей ошибаются в обратную. Знакомство с соседней культурой и понимание, почему дела в ней делаются так, как там принято, превратит вас в лучшего разработчика.
Читать дальше →
Всего голосов 190: ↑172 и ↓18 +154
Комментарии 106

Мой диплом, или Как собрать вещи и переехать на YDB

Время на прочтение 13 мин
Количество просмотров 11K
Блог компании Яндекс Высокая производительность *Open source *PostgreSQL *Администрирование баз данных *
Меня зовут Арслан, в этом году я делал сервис для построения циклов заказа (например, заказа такси). Возможно, вы видели пост от другого разработчика в команде, Ильи Lol4t0. Всего сервис обрабатывает примерно 5000 RPS с задержкой 100 мс в 99 перцентиле. Раньше для хранения данных использовалась связка PostgreSQL с YT — MapReduce-системой Яндекса.

Обычно информация по заказу нужна в быстром доступе в течение пары часов. На эту парадигму хорошо ложилась архитектура с горячим и холодным хранилищем. Событие создавалось в PostgreSQL, асинхронно реплицировалось в YT, а спустя два часа удалялось из PostgreSQL, никаких проблем. Но со временем начали напрягать несколько вещей: сложность архитектуры, низкая доступность во время проведения работ на PostgreSQL и ограниченная возможность горизонтально масштабировать систему. Мы решили перейти на новую архитектуру с базой данных YDB. Хотели на примере тестового сервиса разобраться, как работать с базой, проверить всё под нагрузкой и реализовать хранение данных исходного сервиса.



Вообще, изначально я написал про это диплом. Но потом подумал, что читателям здесь тоже будет интересно, и всё переделал под Хабр. Если тоже переезжаете на YDB (после выхода в опенсорс это стало проще) или адаптируете систему с базой — заглядывайте. Поговорим о большинстве возможных трудностей при переезде.
Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Комментарии 2

Яндекс выпускает Yatagan — опенсорс-фреймворк для внедрения зависимостей, позволяющий ускорить сборку

Время на прочтение 28 мин
Количество просмотров 18K
Блог компании Яндекс Open source *Разработка мобильных приложений *Разработка под Android *Kotlin *
✏️ Технотекст 2022


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

Как раз про свой опыт разработки я и хочу рассказать. Давайте попробуем разобраться, какие есть факторы замедления сборки, как Yatagan, совместимый с Dagger по API, с ними справляется и какие ещё задачи могут стоять перед DI-фреймворком — например, в части зависимостей под рантайм-условиями. Кстати, нативная поддержка этих зависимостей в Yatagan избавила нас от ручной обработки состояний A/B-экспериментов в DI.

Статья содержит много технических моментов, которые я открыл для себя по ходу исследований. В конце посмотрим, каким проектам Yatagan может быть полезен в качестве замены, а в каких польза от него будет невелика.
Читать дальше →
Всего голосов 70: ↑66 и ↓4 +62
Комментарии 13

Люди и интерфейсы. Рассказ незрячего тестировщика о том, как сервисы Яндекса становятся доступнее

Время на прочтение 17 мин
Количество просмотров 5.5K
Блог компании Яндекс Разработка веб-сайтов *Интерфейсы *Accessibility *Голосовые интерфейсы *
✏️ Технотекст 2022


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


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

Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Комментарии 13

Профайлер Бедного Человека: первое знакомство и (приятные) последствия

Время на прочтение 9 мин
Количество просмотров 9.7K
Блог компании Яндекс Высокая производительность *Программирование *Серверная оптимизация *Разработка под Linux *


Если вам приходилось оптимизировать работу программ, то вы могли слышать о Профайлере Бедного Человека. Этой идее даже посвящён целый сайт. ПБЧ собирает статистику времени выполнения отдельных функций программы, «подглядывая» в процесс её исполнения с помощью дебаггера. Концепт ПБЧ хорошо прижился у нас в движке баннерной крутилки — не буду в 100 500-й раз напоминать, что у Яндекса всё высоконагруженное, ресурсоёмкое и нуждающееся в профилировании. Статья будет полезна тем, кто пилит инфраструктуру, адаптирует какой-нибудь общеизвестный профайлер под себя или просто хочет больше знать про свои программы. Как мы пришли к необходимости в ПБЧ и что именно сделали? Сейчас постараюсь рассказать, местами буду закапывать глубоко в технологии (если переусердствую, пишите в комментариях). А начну со стандартного инструмента статистического профилирования в Linux — perf.
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 20

Как работает автозаполнение в браузерах и что важно учитывать веб-разработчику

Время на прочтение 14 мин
Количество просмотров 13K
Блог компании Яндекс Разработка веб-сайтов *Google Chrome Интерфейсы *Браузеры
✏️ Технотекст 2022

Если человек пользуется автозаполнением в браузере, он ждёт, что сможет быстро заполнять формы на любом сайте, где посчитает нужным. Наладить такой механизм на стороне сайта или веб-приложения несложно, но важно помнить пару вещей — я покажу кейсы, где подходы «в лоб» приводили к непредсказуемым результатам. Чтобы автозаполнение работало эффективно и не нарушало логику, стоит хотя бы примерно представлять, как оно устроено под капотом разных браузеров, которые могут быть у пользователей. Под катом распишу, каким образом движок подставляет данные в формы.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 3

Исследуем микроорганизмы Байкала. Открытый проект MaritimeAI и Yandex Cloud

Время на прочтение 9 мин
Количество просмотров 4.2K
Блог компании Яндекс Open source *Открытые данные *Машинное обучение *Экология


Всем привет! Я работаю в MaritimeAI, и вместе с Yandex Cloud мы строим систему, которая позволяет учёным в НИИ биологии Иркутского государственного университета мониторить экологию озера Байкал.

Ещё недавно подсчёт и определение разнообразных видов планктона сотрудники выполняли вручную: с помощью микроскопа, глаз и бланка, в котором отмечали наличие того или иного организма. Мы решили это автоматизировать — а заодно поделиться датасетом с сообществом на Гитхабе. В конце поста поясню, кому может быть полезен датасет, как он будет обновляться и что ещё появится в репозитории. Но давайте обо всём по порядку.
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 13

Как Яндекс перепридумал поиск для разработчиков

Время на прочтение 9 мин
Количество просмотров 34K
Блог компании Яндекс Поисковые технологии *Программирование *Алгоритмы *Машинное обучение *
✏️ Технотекст 2022

У вас бывало, что открываешь поиск, ищешь что-то по программированию и не находишь ответ? Тогда эта история для вас. 

Меня зовут Алексей Степанов, я руковожу службой исследований машинного обучения поиска Яндекса. Сегодня я расскажу непростую историю. Она про проблему, до решения которой у нас слишком долго не доходили руки. Из поста вы узнаете, почему стандартная метрика качества поиска не учитывала интересы разработчиков и как мы её улучшили. Расскажу про новую нейросеть CS YATI, обученную понимать таких же айтишников, как и мы. Ну и про грабли на нашем пути тоже расскажу, куда без них.

Этот пост основан на моём докладе с Data Fest 2022, но не во всём (мой коллега Максим Хурсанов @Maxim2207 существенно расширил историю).

Читать далее
Всего голосов 89: ↑87 и ↓2 +85
Комментарии 68

Самая большая BERT-подобная модель на русском, которая поместится на ваш компьютер

Время на прочтение 7 мин
Количество просмотров 13K
Блог компании Яндекс Open source *Машинное обучение *Распределённые системы *Искусственный интеллект
✏️ Технотекст 2022
Привет, это снова Максим Рябинин, исследователь в Yandex Research. В прошлом году я рассказывал на Хабре о том, как вместе с Hugging Face, Университетом Торонто и волонтёрами мы обучили state-of-the-art модель для бенгальского языка и написали об этом статью на конференцию NeurIPS. Теперь хотим поделиться новым результатом: оказывается, технологии для обучения на нестабильном железе находят приложение и внутри привычных всем кластеров.

Используя вычислительную платформу Яндекса, мы обучили RuLeanALBERT — нейросеть, показывающую сравнимые с другими открытыми моделями и где-то даже близкие к state-of-the-art результаты на бенчмарках по пониманию русского языка — Russian SuperGLUE и RuCoLA. Наша модель хотя и имеет миллиарды параметров, но вполне способна вместиться в одну домашнюю GPU: вы можете использовать её в своих проектах для классификации предложений, представления текстов и других языковых задач, не требующих генерации. В статье можно прочитать о подробностях обучения, которые мы реализовали в открытом коде, а чекпоинт теперь тоже доступен всем желающим.


Примерно так выглядит процесс обучения на множестве независимых серверов
Читать дальше →
Всего голосов 52: ↑52 и ↓0 +52
Комментарии 8

Колхоз. Большая история фермы устройств Яндекса

Время на прочтение 20 мин
Количество просмотров 27K
Блог компании Яндекс Разработка мобильных приложений *Тестирование мобильных приложений *Компьютерное железо DIY или Сделай сам
✏️ Технотекст 2022
Все новые сервисы Яндекса, а также апдейты к существующим приложениям и сайтам нужно тестировать: на айфонах, андроидах, десктопах, умных колонках, телевизорах. Раньше часть тестировщиков работали на личных телефонах и компьютерах, а часть — использовали для тестов корпоративные девайсы. Процесс не был гибким и с трудом масштабировался. Поэтому мы сделали свою клауд-ферму устройств. Сначала ей пользовались только отдельные команды тестирования, но со временем ферма стала особенно популярна и среди разработчиков. В итоге мы собрали почти 800 разных девайсов, которые теперь доступны 24/7.



Меня зовут Кирилл Коргов, я отвечаю за то, чтобы ферма устройств работала и развивалась. Кстати, называть её просто фермой было бы скучно, поэтому где-то на заре проекта мы по-доброму назвали её близким по смыслу словом «Колхоз». Если интересно, с чего Колхоз начинался, как пандемия привела к неожиданному росту его популярности и что общего у макбуков с лотками для офисной бумаги, прошу под кат.
Читать дальше →
Всего голосов 106: ↑106 и ↓0 +106
Комментарии 52

Яндекс выпускает DivKit — фреймворк для server-driven UI с открытым кодом

Время на прочтение 12 мин
Количество просмотров 39K
Блог компании Яндекс Open source *Разработка мобильных приложений *Интерфейсы *GitHub *
✏️ Технотекст 2022
Привет! Сегодня Яндекс выкладывает в опенсорс DivKit — фреймворк для отрисовки интерфейсов из ответа сервера. Серверная вёрстка поможет ускорить разработку: наладить отправку апдейтов от сервера разным версиям приложения, создать прототип или просто написать интерфейс один раз для нескольких платформ.


Фреймворк включает в себя несколько библиотек: клиентскую часть по отрисовке интерфейсов для Android, iOS и веба, а также DSL для формирования ответа сервера на Kotlin, TypeScript и Python. Исходный код опубликован на Гитхабе под лицензией Apache 2.0.

Сейчас DivKit используется в приложении Яндекс, Алисе, Едадиле, Маркете, ТВ и других приложениях. В этом посте я постараюсь вспомнить историю фреймворка, затем мы напишем с его помощью небольшой просмотрщик ленты Хабра, а в конце я покажу ещё несколько простых примеров интеграции.
Читать дальше →
Всего голосов 124: ↑117 и ↓7 +110
Комментарии 48

Персональное ранжирование на Авто.ру: как не потерять главный смысл поиска по параметрам

Время на прочтение 9 мин
Количество просмотров 3.5K
Блог компании Яндекс Поисковые технологии *Алгоритмы *Машинное обучение *


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

В параметрическом поиске Авто.ру действует правило: незачем строить за пользователя предположения о том, что он имел в виду. Мы в любом случае покажем все объявления, соответствующие поисковым фильтрам в запросе. Роль движка ранжирования — отсортировать карточки так, чтобы наиболее релевантные для конкретного пользователя оказались выше, не более. Я работаю над этим уже несколько месяцев, сейчас расскажу об устройстве движка и первых результатах.
Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Комментарии 6

Голосовой перевод трансляций в Яндекс Браузере: как он устроен и чем отличается от перевода обычных видео

Время на прочтение 6 мин
Количество просмотров 24K
Блог компании Яндекс Браузеры Машинное обучение *Софт Искусственный интеллект
Осенью прошлого года мы рассказали читателям Хабра, как работает голосовой перевод видео в Яндекс Браузере. За первые десять месяцев пользователи посмотрели видеоролики с закадровым переводом 81 миллион раз. Механизм действует по запросу: нейросеть получает аудиодорожку целиком, а звук на понятном пользователю языке появляется с задержкой в пару минут.

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

Чтобы всё заработало, перезапустите Яндекс Браузер. Анонсы новых устройств, спортивные соревнования, вдохновляющие космические запуски — этот и другой контент теперь можно смотреть сразу на родном языке. Закадровый голосовой перевод сейчас доступен для некоторых каналов на YouTube, а в будущем, конечно, включить дубляж можно будет в любой YouTube-трансляции. Чтобы адаптировать механизм перевода для стримов, потребовалось переработать всю архитектуру.
Читать дальше →
Всего голосов 47: ↑46 и ↓1 +45
Комментарии 16

Информация

Сайт
www.ya.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель