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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Иван Ситкин, бэкенд-разработчик в Едадиле поделился историей поисков подходов и практик, которые ускоряют процесс написания простых админок.
Прошло больше полугода с момента выхода фреймворка для C++ 🐙 userver в open-source. За это время команда, которая занималась его разработкой, узнала много интересных вещей: что мешает людям пользоваться продуктом, что важно внутри и не важно open-source пользователям, в главное — что получилось хорошо, а что из идей не дало отклика.

Антон Полухин, разработчик-эксперт и руководитель рабочей группы в международном комитете С++, поделился своими наблюдениями в новой статье на Хабре. Они особенно будут полезны тем, кто ведёт или планирует вести свой open-source проект или занимается контрибьютами.
Сегодня мы обновили языковую модель YandexGPT: Алиса научилась писать ответы с учётом истории предыдущих сообщений.

В честь этого рассказали Хабру историю всего проекта, который уже в ближайшее время станет частью и других сервисов Яндекса.
Jetpack Compose — это декларативный UI фреймворк для Android. В нём приложение состоит из функциональных компонентов, которые могут по-разному изменяться и комбинироваться. Это называется рекомпозицией. Но если не знать тонкости работы этого процесса, есть риск создать ситуацию, когда Compose будет пытаться рекомпозировать даже те части, которые не изменились. А это может пагубно сказаться на производительности приложения.

Владислав Кипнис из команды разработки Android-приложений в Авто.ру рассказал, как избежать лишних рекомпозиций и на что стоит обращать особое внимание при работе с Jetpack Compose.
Быстрое приложение лучше медленного — это простая истина, которую понимают и пользователи, и разработчики. Если приложение достаточно объёмное, то базовой оптимизации будет недостаточно и нужно искать другие способы. Порой заветные миллисекунды экономии могут скрываться в самых неочевидных местах кода.

Александр Попсуенко собрал в своём посте полезные советы по замерам метрик скорости приложений на Android и способы ускорить их.
Почти все мобильные приложения требуют для своей работы бэкенд и не могут показать даже приветственный экран без подгрузки данных. Поэтому для UI-тестов очень важно уметь приводить бэкенд в нужное для каждого тестового сценария состояние.

Сегодня команда Авто.ру выпускает в open-source библиотеку MockWebServer DSL. Она помогает удобно писать обработчики запросов на бэкенд в Android-тестах. Более подробно о новом инструменте — в нашем блоге.
QA-метрики — это, прежде всего, инструмент для определения проблем и возможностей улучшения, а не абсолютные показатели успеха. Необходимость их внедрения и использования должна определяться каждой конкретной командой в каждом конкретном случае.

Екатерина Копцова, руководитель служб тестирования Музыки и Букмейта, рассказала про основные QA-метрики, которые используются в её команде, и поделилась опытом, как правильно с ними работать.
Бывают случаи, когда чем сложнее задача, тем интереснее её решать. Именно с такой ситуацией столкнулся Шико Мстоян из команды Android-разработки Маркета. При добавлении в мобильное приложение функции AR ему нужно было придумать способ перевести существующие 3D-модели в другой формат. Но как выяснилось, нужных конвертеров на тот момент не существовало.

В своей статье Шико рассказал, какие методы конвертации попробовал, почему они не подошли, с чем не смогли справиться Blender и Unreal Engine и как он в итоге написал собственный плагин.
Неделю назад на сайте 300.ya.ru мы продемонстрировали возможности языковой модели YandexGPT применительно к задаче суммаризации текстов. С тех пор многое изменилось: мы обучили новую, более качественную модель, в пересказах которой в 4 раза меньше ошибок. А сегодня мы внедрили её в Яндекс Браузер.

Сегодня мы делимся с Хабром не столько новостью, сколько нашим опытом и советами из области дообучения моделей и промпт-инжиниринга. Расскажем, через что пришлось пройти команде, чтобы модель начала делать то, что от неё ожидают.
Сейчас кажется, что все мыши одинаковые — две кнопки и колёсико посередине. Разве что в игровых моделях есть подсветка. Но так было не всегда: первые мыши были деревянными, квадратными, с неопределённым количеством кнопок, а устройства до середины восьмидесятых часто не шли в массовое производство.

Михаил Павлов десять лет коллекционирует компьютерные мыши и трекболы. В хабрапосте он коротко напомнил, какой путь они прошли, и показал свою коллекцию. Посмотреть на неё вживую можно в @yandexmuseum на выставке «Мышеловка». В ближайшие пару дней (до 12 июля включительно) ещё можно увидеть её в московском Музее на Павелецкой — познакомиться с большей частью экспонатов, а какие-то даже попробовать в действии.
Миграции БД — неотъемлемая часть любого развивающегося stateful-бэкенда. Если ваш сервис использует ORM, то для написания миграций у него есть специальная утилита. Но подходы, предлагаемые Django ORM, не всегда работают, а в некоторых ситуациях могут устроить вам очень неприятный даунтайм.

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

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