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

Интернационализация от i до n: как мы переводим интерфейсы в Фантехе Яндекса

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

Привет! Меня зовут Александр Поляков, я руководитель команды i18n-разработки в Фантехе Яндекса. Мы помогаем сервисам компании выходить на международные рынки, а именно решаем задачи, связанные с интернационализацией и локализацией интерфейсов.

В этом посте расскажу:

какие именно решения для интернационализации фронтенда мы разрабатываем;

какие есть правила форматирования данных для разных локалей и как определять эти локали;

о проблемах переводов в современных реалиях.

Если вы в своем проекте тоже занимаетесь локализацией для новых рынков или вам просто интересно, как это работает, добро пожаловать под кат.

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

Станция Дуо Макс. Как мы создавали первую умную колонку Яндекса с экраном

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

Недавно на YaC 2023 мы показали нашу новую колонку — Станцию Дуо Макс. Это первая умная колонка Яндекса с сенсорным экраном и флагман в нашей новой категории устройств. Дуо Макс предложит пользователям как уже знакомые возможности других Станций, так и новые способы взаимодействия с Алисой. 

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

Читать далее
Всего голосов 66: ↑60 и ↓6 +54
Комментарии 76

Что ты такое, dhclient?

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

Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.

Чтобы лишний раз не дёргать ядро прерываниями, придумали DMA — Direct Memory Access. И это дало жизнь классу софта с режимом работы kernel bypass: например при DPDK (Intel Data Plane Development Kit). Потом был BPF. А за ним — eBPF. 

Но даже помимо хаков работы с ядром есть такие штуки, как sk_buff, в которой хранятся метаданные всех миллионов протоколов. Есть NAPI (New API), которая призвана уменьшить число прерываний. Есть 100500 вариантов разных tables.

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

Начать погружение
Всего голосов 217: ↑216 и ↓1 +215
Комментарии 61

Станция Миди и голосовое управление Zigbee-устройствами без интернета. История разработки

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

Недавно мы представили нашу новую умную колонку — Яндекс Станцию Миди. Она больше, чем Лайт или Мини, поэтому в ней уместились вуфер и два высокочастотных динамика с суммарной мощностью звука 24 Вт. Но при этом она легче и компактнее, чем Станция 2 или Макс. Кроме того, в Миди мы внедрили технологии, которые позволили Алисе научиться новому. В частности, благодаря более современному процессору и бо́льшему объёму оперативной памяти, Алиса в Станции Миди впервые стала понимать и выполнять голосовые команды умного дома локально, без интернета.

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

Что важно: это полезно не только при проблемах со связью. Теперь Zigbee-устройства будут реагировать на команды быстрее даже при наличии хорошего интернета (чуть подробнее — в блоке про замеры скорости в конце поста).

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

Читать далее
Всего голосов 53: ↑49 и ↓4 +45
Комментарии 76

Дизайн-система Gravity UI: как легко построить свой интерфейс

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

Всем привет, я Алексей Сизиков, руководитель отдела User Experience в Yandex Cloud. В этой статье я хочу поделиться новостью: мы выпустили нашу дизайн-систему и библиотеку компонентов Gravity UI в опенсорс. 

Под катом — рассказ, зачем мы сделали Gravity UI, как его используем, в чём особенности и преимущества нашего подхода и как мы планируем развивать его дальше. А ещё — как настроить разные цветовые схемы в своих проектах и почему у нас четыре темы вместо двух стандартных.

Читать далее
Всего голосов 71: ↑69 и ↓2 +67
Комментарии 24

Байт-код — это просто! Как сделать DI по-настоящему быстрым

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

Привет! Меня зовут Григорий Юрков, и я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Два года назад мы начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме.

Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения. В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout.

Ускоримся!
Всего голосов 31: ↑29 и ↓2 +27
Комментарии 41

Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти

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

Многим знаком подход Backend Driven UI. С его помощью можно создавать новые страницы, запускать А/B-тесты, легко менять флоу в любое время и сразу на всех платформах. И при этом не надо долго и мучительно перевыкатывать приложение.

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

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 1

Из микро в макро: как адаптировать мобильное приложение под ТВ-платформу

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

Рано или поздно Android-разработчику станет любопытно попробовать новые платформы. Устройств с этой ОС много — есть из чего выбрать. Например, сейчас набирает популярность разработка под умные телевизоры.

И вот здесь начинается самое интересное. Вроде бы и на смартфоне, и на телевизоре одинаковая ОС, но приложению понадобится глобальная адаптация, ведь там, например, нет привычного Touch Screen, чтобы управлять контентом и быстро набирать текст в поисковой строке.

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

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

Почему инфраструктура big tech обычно состоит из самописных решений

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

Привет! Предлагаю поговорить о том, почему крупные IT‑компании так любят создавать в своей инфраструктуре собственные решения. Казалось бы, напрашивается ответ: NIH‑синдром и ничего более. Но такой ответ вряд ли может считаться сколько-нибудь полным, а тем более претендующим на объективность.

Меня зовут Дмитрий, я CTO в команде Yandex Platform Engineering. Наша задача — помогать инженерам выстраивать весь цикл разработки от написания кода до эксплуатации сервисов и делать его эффективнее. Такая работа включает настройку процессов: мы не просто делаем нечто as a service, но и помогаем эти самые as a service внедрять внутри компании. И всё это работает на масштабах Яндекса: нашими сервисами пользуются тысячи разработчиков по всей компании.

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

Читать далее
Всего голосов 56: ↑55 и ↓1 +54
Комментарии 31

Diplodoc — открытый набор инструментов для создания документации

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

Всем привет, меня зовут Женя Колесников, я из команды Yandex Infrastructure. Сегодня я расскажу, как мы пришли к написанию документации в концепции Docs as Code, придумали для этого набор инструментов, назвали его красивым именем Diplodoc и выложили в опенсорс — теперь вы тоже можете им воспользоваться.

Если вкратце, Docs as Code — это подход к написанию технической документации, который рассматривает её не как набор текстов, а как код. Исходя из этой концепции, к документации могут применяться все те же принципы, инструменты и процессы, что и к самому коду. Расскажу, как это происходит на примере Diplodoc — и чем он может облегчить вам жизнь.

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

Нейронные сети для планирования движения беспилотных автомобилей

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

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

В диалоговых системах совсем недавно произошла революция из-за появления ChatGPT. В беспилотных автомобилях революции, к сожалению, пока не произошло, но если это случится, то как раз в той области, про которую будет мой рассказ.

Под катом — детальный разбор логики движения беспилотника, примеры свёрточных и трансформерных архитектур моделей для предсказания движения и много формул для расчёта вероятных траекторий других машин и пешеходов. А ещё я расскажу, в чём преимущества машинного обучения перед эвристиками и чем может помочь Reinforcement Learning.

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

Библиотека Scout — быстрый и безопасный DI на Kotlin

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

Привет! Меня зовут Александр Миронычев. Я занимаюсь инфраструктурой приложения Яндекс Маркет под Android. Около двух лет назад при работе над модульностью у меня появилось желание написать собственную библиотеку для внедрения зависимостей, которая позволила бы ускорить сборку приложения и упростить процесс модуляризации. Так появился Scout. Сегодня его код мы выложили в открытый доступ.

Эта статья — рассказ о том, как пройти путь от безумной идеи до конкурентоспособного опенсорс-фреймворка. Статья будет полезна тем, кто ищет замену DI-фреймворку в своем проекте, а также тем, кто мечтает написать свою библиотеку, но никак не может начать.

Читать далее
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 13

Яндекс Карты открывают крупнейший русскоязычный датасет отзывов на организации

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

Сегодня мы хотим поделиться новостью для всех, кто занимается анализом данных в области лингвистики и машинного обучения. Яндекс выкладывает в открытый доступ крупнейший русскоязычный датасет отзывов об организациях, опубликованных на Яндекс Картах. Это 500 тысяч отзывов со всей России с января по июль 2023 года.

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

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

Хороший ретрай, плохой ретрай, или История одного падения

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

Порой простое и очевидное решение может потянуть за собой хвост проблем в будущем. Например, добавление ретраев.

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

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

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

BI-инструмент от Яндекса DataLens — теперь в опенсорсе

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

Сегодня мы опубликовали на GitHub под открытой лицензией Apache 2.0 исходный код Yandex DataLens — сервиса для анализа и визуализации данных. Теперь использовать опенсорс-версию DataLens может любой желающий и в любой инфраструктуре. 

Меня зовут Павел Дубинин, вместе с Гаджи Гаджиевым мы в Yandex Cloud занимаемся развитием DataLens. Сегодня расскажем, какие задачи он помогает решать разным пользователям, какие возможности открываются с выходом в опенсорс и что можно развернуть у себя прямо сейчас.   

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

userver 1.0 — релиз фреймворка для IO-bound программ

Время на прочтение 7 мин
Количество просмотров 15K
С момента выхода 🐙 userver в опенсорс прошло чуть больше года. За это время мы успели реализовать множество запросов от наших новых пользователей и обросли внушительной аудиторией в каналах поддержки. При этом поток вопросов, как пользоваться различными частями userver, значительно сократился, а это значит, наши улучшения документации принесли свои плоды.

image

Поэтому мы вышли из беты и сделали релиз!

Что нового в релизе? Зачем вообще нужен userver и какие существуют технологии для обеспечения надёжной работы серверных приложений? Можно ли воспользоваться крутыми C++ классами из userver, не используя при этом корутины? Какие дальнейшие планы? Ответы на все эти вопросы ждут вас под катом.
Читать дальше →
Всего голосов 62: ↑61 и ↓1 +60
Комментарии 15

Перф-тесты VS аномалии. Вечная битва за производительность приложений на iOS

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

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

А ещё вас ждёт чек‑лист, на что обратить внимание и к каким инструментам присмотреться.

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

Создаём субтитры для любого видео в интернете с помощью нейросети в браузере

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

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

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

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

Читать далее
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 19

SDK AppMetrica — теперь в опенсорсе

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

AppMetrica — это инструмент для аналитики мобильных приложений. С помощью него можно формировать отчёты по источникам трафика, ключевым показателям мобильного приложения, аудитории и сценариям использования, а также собирать статистику по сбоям, проводить A/B-тесты и удалённо управлять конфигурацией приложения. 

Сегодня мы опубликовали исходный код SDK AppMetrica на GitHub. Любой желающий может провести аудит SDK, предложить улучшение, отправив пулл-реквест и переиспользовать полезные фрагменты кода.

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

YandexGPT 2 — большое обновление языковой модели Яндекса

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 38K
Сегодня на конференции Practical ML Conf была представлена новая версия нашей большой языковой модели YandexGPT 2. Она уже работает в навыке Алисы «Давай придумаем», где помогает структурировать информацию, генерировать идеи, писать тексты и многое другое. Новая модель отвечает лучше старой в 67% случаев, а в некоторых сценариях побеждает с ещё бо́льшим перевесом. Этого результата мы добились благодаря улучшениям на каждом этапе обучения модели, но ключевое изменение — новый pretrain.

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



Читать дальше →
Всего голосов 52: ↑48 и ↓4 +44
Комментарии 88

Информация

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