Как мы делаем Яндекс
3.15K subscribers
421 photos
5 videos
516 links
Сотрудники Яндекса каждый день решают технологические задачки.

В нашем блоге они делятся с сообществом опытом и знаниями.
Download Telegram
Руководитель разработки в Яндексе Андрей Плахов опубликовал на Хабре статью-размышление о двух культурах программирования.

Вы скорее отдаёте предпочтение большим проектам или коротким, но насыщенным фрагментам кода? Что важнее — скорость работы программы или программиста? Эти и другие вопросы давно вызывают споры.

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

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

В посте рассказали о том, как мы обучали нейросеть быстро читать старые рукописи, которые иногда сложно понять обычному человеку.
This media is not supported in your browser
VIEW IN TELEGRAM
До 31 января в @yandexmuseum проходит выставка советских цветомузыкальных устройств из коллекции Романа Крылова. Сегодня он рассказывает историю этих приборов.

Концепцию цветомузыки ещё в конце XIX века предложил композитор Александр Скрябин. Спустя десятки лет советские инженеры смогли воплотить его идеи и построить целую индустрию — среди молодёжи 80-х зародилась мода на самодельную цветомузыкальную аппаратуру.

Роман около десяти лет собирал единственную и самую полную коллекцию таких устройств — всего в ней около 70 экспонатов.
6 февраля 2022 года в работе ряда сервисов Яндекса возникли перебои. Например, у некоторых пользователей могла не открываться главная страница Яндекса; были частично недоступны Почта, Диск, Такси и ещё несколько сервисов.

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

Сегодня мы делимся результатами расследования этого инцидента.
Недавно Яндекс Станция Макс научилась выводить звук по HDMI при просмотре фильмов. Рассказываем на Хабре, что мешало выпустить такой апдейт раньше.

С появлением умных колонок мы начали развивать комплекс технологий для улучшения качества и чёткости речи. В него входят разные решения, но ключевым из них стало эхоподавление, или Acoustic Echo Cancellation (AEC).

Если у вашего телевизора хорошая акустика (или к нему подключена качественная аудиосистема), теперь можно слушать аудиодорожку в фильмах через неё.
Ведущий подкаста «Веб-стандарты» и руководитель службы разработки в Яндексе Никита Дубко написал для Хабра статью о том, как ускорить Cycle Time.

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

Для этого нужно автоматизировать подсчёты Cycle Time и научиться правильно читать графики.
Яндекс выкладывает в опенсорс код счётчика — ключевого компонента Метрики. Это JS-бандл, который загружается вместе со страницей сайта и фиксирует различные события.
 
Вот ссылка на репозиторий в Гитхаб. Теперь вы можете подробно изучить код счётчика и пересобрать его в той конфигурации, которая необходима для вашего проекта.  

Разработчик Метрики Евгений Новиков поделился краткой историей счётчика и тем, как с ним работать в небольшой статье на Хабре.
Сегодня Антон Полухин делится итогами двух встреч международного комитета по стандартизации 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-корутины.
Преподаватель и разработчик в Яндексе Григорий Бизюкин делится своим исчерпывающим гайдом по асинхронности в браузере.

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

Статья посвящена четырём большим темам: циклу событий, функциям обратного вызова, обещаниям и паттерну async/await.
Иногда в поисках способа улучшить продукт можно наткнуться на интересные и неочевидные решения. О таком случае рассказал Максим Смирнов, руководитель команды, которая работает над производительностью Яндекс Браузера и отвечает за его графическую подсистему.

Любое ПО взаимодействует с ОС, драйверами и другими программами, поэтому его работу всегда стоит оценивать в связке с ними. Именно так команде разработчиков удалось улучшить стабильность и производительность браузера: они убедили драйверы видеокарт, что он — это Google Chrome.
Яндекс выкладывает в опенсорс одну из основных инфраструктурных BigData-систем собственной разработки — YTsaurus. Это платформа, предназначенная для распределённого хранения и обработки больших данных.

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

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

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

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

Владимир Точилин и Александр Самусенко из группы развития рекламных продуктов и стабильности рассказали, как они создали инструмент realtime-детекции разладок на основе CatBoost. Благодаря ему были выявлены десятки инцидентов разных масштабов с минимальным лагом по времени.
Посты в блоге Яндекса на Хабре победили в конкурсе «Технотекст 2022» сразу в пяти номинациях!

🏅В номинации «Железо» победил пост про апериодическую решётку Яндекс Станции 2.

🏅В «Мобильной разработке» победа досталась посту про наш опенсорсный фреймворк Yatagan.

🏅Номинация «ML и AI» — тоже за нами благодаря проекту RuLeanALBERT.

🏅В номинации «Тестирование» победила история про нашу ферму устройств Колхоз.

🏅В «Бэкенде» победил технический гайд про работу с памятью в Node.js.

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

Чтобы стереть этот серьёзный языковой барьер, Яндекс научил нейросети Браузера переводить видео с китайского языка и автоматически накладывать русскую озвучку. О том, какие особенности языка пришлось учитывать при обучении модели, рассказал Артур Яковлев из команды перевода видео.
Раньше все сценарии умного дома хранились в облаке. Даже те, в которых устройства взаимодействовали друг с другом напрямую по протоколу Zigbee. Теперь такие сценарии будут работать локально, прямо на колонке или хабе. Это важное изменение, которое позволит добиться большей автономности и быстродействия.

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

В посте — длинная история поисков ошибки, которая всё же закончилась хеппи-эндом.
Когда спешишь на работу или стоишь на остановке в другом городе очень важно знать, когда придет нужный автобус. А для точного времени прибытия нужно учитывать множество факторов: загруженность дорог, маршрут, среднюю скорость самого автобуса. В этом помогает раздел «Транспорт» в Яндекс Картах.

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

Юля Долгун, фронтенд-разработчик из Поиска, выделила пять самых распространённых багов доступности и поделась советами, как сделать сервисы более удобными для людей с нарушениями зрения.
Недавно в Яндекс Go появилась возможность найти попутчика, чтобы разделить цену поездки на такси — тариф «Вместе». Однако такая простая задача, как объединение двух заказов, потребовала много исследований и экспериментов. Например, изначально роль второго пассажира выполняла посылка, которую нужно было доставить в попутном направлении.

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

Иван Ситкин, бэкенд-разработчик в Едадиле поделился историей поисков подходов и практик, которые ускоряют процесс написания простых админок.