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

Китайский язык очень сложный. Мы сделали для него перевод видео

Время на прочтение6 мин
Количество просмотров23K


Привет, меня зовут Артур Яковлев, я делаю голосовой перевод видео в Яндекс Браузере. Примерно с лета я работаю над тем, чтобы научить Браузер переводить с китайского на русский. Почему мы посчитали это важной и интересной задачей? Дело в том, что китайская часть интернета содержит значительное количество видеоконтента, который за пределами страны почти не смотрят.

Множество диалектов, влияющие на смысл тоны и грамматические нюансы — ряд особенностей китайского усложняют разработку распознавания речи. Сейчас я коротко расскажу читателям Хабра о трудностях языка и объясню, как мы их преодолели.
Читать дальше →
Всего голосов 114: ↑107 и ↓7+100
Комментарии56

Как быстрее узнать, что сервису плохо, или Realtime-детекция разладок с помощью CatBoost

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров4.3K

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

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

Меня зовут Владимир Точилин, я работаю в группе развития рекламных продуктов и стабильности. Вместе со своим коллегой, Александром Самусенко, я расскажу, как мы создали новый инструмент realtime-детекции разладок в проде рекламных технологий. Мы работаем с системой, где на отдельные кластеры нагрузка превышает 1000000 RPS. 

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

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии5

Обещания — настоящие и не очень

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров15K

Хабр, привет! Меня зовут Настя Абрашитова, я руководитель службы инструментов репозитория в Яндексе. Однажды ко мне пришёл мой знакомый, назовём его Леонид. Он долгое время работал в небольшой компании. Он решил посоветоваться, стоит ли ему увольняться со своей работы или есть смысл остаться. 

С одной стороны, Леонид занимался одним и тем же годами, и ему было скучно. А ещё ему давно не повышали зарплату, которая была ниже рынка. С другой стороны, по его словам, у него были отличные карьерные перспективы. Когда он задумался о смене работы, его СTO сказала, что в ближайшее время собирается уйти на заслуженный отдых и видит в роли своего преемника именно Леонида.

Я решила уточнить, когда это должно случиться. Леонид немного погрустнел и сказал, что они не обсуждали конкретную дату. Более того, этот разговор проходил примерно за два года до того. Я спросила: было ли с тех пор что-то сделано, что приблизило Леонида к позиции СTO? Оказалось, что ничего.

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

Читать далее
Всего голосов 72: ↑68 и ↓4+64
Комментарии18

YTsaurus: основная система для хранения и обработки данных Яндекса теперь open source

Время на прочтение14 мин
Количество просмотров55K

Привет! Меня зовут Максим Бабенко, я руковожу отделом технологий распределённых вычислений в Яндексе. Сегодня мы выложили в опенсорс платформу YTsaurus — одну из основных инфраструктурных BigData-систем, разработанных в Яндексе.

YTsaurus — результат почти десятилетнего труда, которым нам хочется поделиться с миром. В этой статье мы расскажем историю возникновения YT,  ответим на вопрос, зачем нужен YTsaurus, опишем ключевые возможности системы и обозначим область её применения.

В Github-репозитории находится серверный код YTsaurus, инфраструктура развёртывания с использованием k8s, а также веб-интерфейс системы и клиентский SDK для распространённых языков программирования — C++, Java, Go и Python. Всё это — под лицензией Apache 2.0, что позволяет всем желающим загрузить его на свои серверы, а также дорабатывать его под свои нужды.

Читать далее
Всего голосов 219: ↑218 и ↓1+217
Комментарии33

Название имеет значение: как получить оптимизацию, переименовав браузер

Время на прочтение4 мин
Количество просмотров36K

Всем привет! Меня зовут Максим Смирнов, я руковожу командой, которая работает над производительностью Яндекс Браузера и отвечает за его графическую подсистему. В этой статье я расскажу об одном неочевидном улучшении, которое наша команда внедрила в Браузер для Windows. Если описать его в двух словах, то нам удалось улучшить стабильность и производительность браузера, убедив драйверы видеокарт, что наше приложение — это Google Chrome.

Читать далее
Всего голосов 175: ↑174 и ↓1+173
Комментарии78

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

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

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

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

Время на прочтение8 мин
Количество просмотров36K

С момента моей прошлой публикации состоялось уже две встречи международного комитета по стандартизации 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-корутины.

Подробности
Всего голосов 54: ↑53 и ↓1+52
Комментарии34

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

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров7K


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

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

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

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров14K


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

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

Время на прочтение6 мин
Количество просмотров83K
6 февраля пользователи могли заметить частичную недоступность сервисов Яндекса. Проблема возникла из-за каскадного сбоя в работе сетевого оборудования.

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

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



Читать дальше →
Всего голосов 234: ↑229 и ↓5+224
Комментарии74

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

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

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



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

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

Время на прочтение11 мин
Количество просмотров32K

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

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

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

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

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

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

Время на прочтение13 мин
Количество просмотров56K
Уже несколько лет я замечаю, что программисты и программистские инструменты делятся на две разные культуры:



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

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

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

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



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

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

Время на прочтение29 мин
Количество просмотров23K


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

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

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

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

Время на прочтение17 мин
Количество просмотров7.1K


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


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

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

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

Время на прочтение9 мин
Количество просмотров12K


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

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

Время на прочтение14 мин
Количество просмотров27K

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

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

Время на прочтение9 мин
Количество просмотров5.3K


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

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

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

Время на прочтение9 мин
Количество просмотров37K

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

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

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

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

Информация

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