Pull to refresh

Technotext

Как мы учимся решать одну из самых сложных задач в метеорологии — прогнозирование количества осадков по часам

Reading time14 min
Reach and readers17K

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

Если бы меня попросили назвать слово, которое лучше всего подходит для прогноза осадков, я бы с уверенностью выбрал «сложность». В осадках она подстерегает нас всюду: от способов прогнозирования до оценки качества полученного прогноза. Потому в научных статьях про нейросетевой прогноз погоды (GraphCast, Pangu Weather, Aurora и т. д.) осадки или совсем не участвуют, или прогнозируются раз в 6 часов без упоминания о метриках. Либо же создаётся локальная модель под регион (например, MetNet для США).

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

Меня зовут Стефеев Дмитрий, я разработчик группы ML и качества прогноза в Яндекс Погоде. Сегодня я и моя команда хотим представить новые модели для прогноза осадков и рассказать, почему мы на них перешли и как этот переход повлиял на качество.

Читать далее

ИИ‑помощник не понимает ваш UI Kit? Показываем, как это починить

Level of difficultyMedium
Reading time12 min
Reach and readers9.4K

Около 90% фронтенд‑разработчиков в нашей команде используют ИИ‑помощников для написания кода. Лично у меня — и как я могу заметить, у многих — был такой опыт: вы только начинаете пользоваться ИИ‑помощником, просите его сгенерировать какое‑нибудь классное MVP, получаете результат минут за пять и думаете: «Вау, неужели это возможно? Как это вообще работает и как это круто». 

А дальше вас ждёт сюрприз. 

Всем привет, меня зовут Валерий Баранов, я руковожу командой технологий фронтенда в Яндекс 360. Мы занимаемся тем, что сами называем «общим фронтендом»: общими техническими компонентами, общим CI/CD, платформами дистрибуции общих компонентов. Сегодня я хочу рассказать, как мы в Яндекс 360 сделали фронтенд‑проекты по‑настоящему AI‑ready: научили ассистентов понимать структуру наших репозиториев, работать с внутренними библиотеками и даже соблюдать паттерны дизайн‑системы. 

Читать далее

Как я нашёл уязвимость в JavaScript-движке, или Почему корень из нуля чуть не сломал браузеры

Reading time19 min
Reach and readers37K

Сколько будет корень из нуля? Даже школьник ответит не задумываясь: ноль. Но если задать этот вопрос JIT‑компилятору Maglev внутри движка V8, то при определённых обстоятельствах он сначала скажет: «ноль», а потом решит сэкономить на проверке безопасности и отдаст злоумышленнику доступ к памяти браузера.

Меня зовут Паша Кузьмин, я занимаюсь практической безопасностью Яндекс Браузера и проекта Chromium. В нашей команде мы регулярно разбираем уязвимости и исследуем методы атак — чтобы защищать пользователей до того, как их атакуют злоумышленники. Сегодня расскажу про CVE-2025-9864 — уязвимость, которую я нашёл в движке V8.

Это история о том, как безобидный Math.sqrt(0) превращается в use‑after‑free, а затем в произвольное чтение и запись памяти. Разберём проблему по шагам: от теории до работающего эксплойта.

Читать далее

Как мы организовали удалённую настройку корпоративных ноутбуков

Reading time8 min
Reach and readers16K

Привет! Меня зовут Виктор Пантелеев, я менеджер технических проектов в Яндексе. Компьютер — основной инструмент большинства наших сотрудников. А для того, чтобы этот инструмент работал как надо, его следует настроить — быстро для конечного пользователя, в соответствии с его рабочими нуждами и требованиями безопасности.

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

Читать далее

Как я научил Jetpack Compose показывать рекомпозиции в реальном времени

Reading time18 min
Reach and readers25K

Привет, Хабр! Меня зовут Иван Кузнецов, я Android‑разработчик в Кинопоиске. Сегодня расскажу историю разработки своего пет‑проекта, которая началась с код‑ревью очередного экрана на Jetpack Compose.

Представьте, вы открываете пул‑реквест и взгляд цепляется за знакомые паттерны: нестабильный параметр в Composable‑функции, remember без ключа, применение трансформаций на Layout‑фазе. Сразу хочется написать комментарий‑лекцию о том, почему это ударит по производительности и почему лучше так не делать.

Вот только объяснения отнимают время и не всегда наглядно доносят суть проблемы. Особенно это актуально для новичков, которым сложно сопоставить абстракции с реальным поведением UI. А ведь для сложных асинхронных штук вроде RxJava или корутин есть визуализаторы — RxMarbles и FlowMarbles, а для самой частой головной боли в Compose до сих пор нет. Вот бы вместо стены текста просто кинуть ссылку со словами: «Смотри, вот что твой код делает на самом деле».

В этой статье я расскажу о разработке собственного приложения, которое в реальном времени визуализирует рекомпозиции. Чтобы заставить его работать, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.

Читать далее

Как мы встроили 32-битный Internet Explorer в 64-битный Яндекс Браузер для организаций

Reading time17 min
Reach and readers234K

Многие организации с богатой историей всё ещё завязаны на устаревшие внутренние системы Internet Explorer, включая ActiveX‑модули, работающие только в его окружении. Такие решения сложно и дорого переписать, особенно в финансовом секторе, поэтому компании вынуждены поддерживать несколько браузеров одновременно — для новых сервисов и старых критически важных систем.

В статье расскажем, как Яндекс Браузер для организаций позволяет запускать и современные веб‑приложения, и наследие эпохи IE в одном окне, помогает справляться с legacy‑наследием и облегчает переход к актуальным технологиям.

Читать далее

Как мы учим роботов ходить плавно, или Почему градиент градиента — это не опечатка, а ключ к безопасной робототехнике

Reading time8 min
Reach and readers16K

Привет, Хабр! Меня зовут Лёша Лещанкин, я руковожу проектом Humanoids в Яндексе. В начале 2025 года мы запустили это направление при поддержке фонда технологических инициатив компании — Yet Another Tech Fund, созданного специально для реализации новаторских идей сотрудников. Наша цель — создать гуманоидных роботов, которые смогут уверенно и безопасно работать рядом с людьми в самых разных условиях: от логистики и промышленности до сферы обслуживания.

В рамках нашего проекта мы тестируем разные RL‑модели. И сегодня расскажу об одном из методов, который позволил нам перейти от «робот дёргается и падает» к «робот ходит плавно 500 шагов подряд» — Lipschitz‑Constrained reinforcement learning.

Читать далее

ИИ, что же ты с нами сделал?! Собрали финальную картину 2025-го о привычках, эффективности и рисках

Level of difficultyEasy
Reading time10 min
Reach and readers11K

Привет! Я Кирилл Улитин, руковожу направлением UX и исследований в МойОфис. В этой статье расскажу о том, как ИИ, а конкретно — технология больших языковых моделей, меняет пользовательское поведение и опыт. Рассмотрю целый ряд исследований по разным вопросам: насколько часто люди используют ChatGPT и другие LLM на работе, что именно просят сделать, как взаимодействуют с большими языковыми моделями, насколько довольны результатами. В общем, если интересно увидеть в цифрах, как именно LLM уже изменили наши повседневные трудовые практики, заходите под кат: будет много графиков, процентов и ссылок на научные исследования.

Читать далее

Жизненный цикл фичи в коммутаторе: от идеи через QA до прода

Level of difficultyEasy
Reading time11 min
Reach and readers26K

Привет, Хабр! На связи Андрей Золотых, старший инженер по разработке ПО для коммутаторов YADRO KORNFELD. Сегодня я расскажу о пути, который проходит новая фича перед выходом в свет. Разберем весь процесс имплементации: начиная с идеи и заканчивая продакшеном. Особое внимание уделим тестированию, которое в случае сетевого оборудования имеет ряд особенностей. А еще поговорим о специалистах, которые участвуют в процессе: от бизнес-аналитиков до сетевых инженеров.

Читать далее

Как ускорить управление сетевой подсистемой Linux: пишем Netlink-обертку на C++

Level of difficultyMedium
Reading time16 min
Reach and readers12K

Привет, Хабр! Меня зовут Егор Карамышев, в YADRO я разрабатываю ПО для коммутаторов семейства KORNFELD. В статье расскажу о реализованной нами С++ обертке для управления сетевой подсистемой Linux на основе протокола Netlink и библиотеки libnl3. В некоторых случаях она позволила  на порядок ускорить работу функций конфигурирования. Разберемся, почему мы решили отказаться от подхода с системными вызовами, а также посмотрим на результаты временных тестов.

Читать далее

Как мы учили нейросеть разбираться в сложных документах: задача семантического поиска

Level of difficultyMedium
Reading time17 min
Reach and readers11K

Привет! Меня зовут Павел Яковлев, я инженер по разработке ПО искусственного интеллекта в YADRO. В команде GenAI мы занимаемся умными продуктами на основе корпоративных баз данных.

В проектах мы часто используем современные генеративные модели и энкодеры. В статье расскажу, как мы в компании разрабатываем и оптимизируем семантический поиск по сложным документам: PDF, HTML и DOCX.

Читать далее

Конформанс-тестирование: как мы сертифицировали базовую станцию YADRO

Level of difficultyEasy
Reading time9 min
Reach and readers24K

Привет, Хабр! Меня зовут Анна Курина, я старший инженер по тестированию в отделе бокс-тестирования базовой станции LTE в YADRO. Сегодня я расскажу, как мы проходили сертификацию базовой станции: проверяли соответствие российскому законодательству и спецификациям 3GPP. А еще мы разберемся с малознакомым для широкой аудитории QA-инженеров видом тестирования: тестированием на соответствие (conformance testing). Оно позволяет тестировщику окунуться в реальную эксплуатацию оборудования, а не просто провести тесты и забыть о «железе».

Читать далее

Библиотека JIT-компиляции Loops для оптимизации нейросетей, СУБД и не только

Level of difficultyHard
Reading time32 min
Reach and readers9.8K

Привет, Хабр! Меня зовут Пётр Чекмарёв, я старший инженер компании YADRO, занимаюсь компьютерным зрением на мобильных устройствах и низкоуровневой оптимизацией плотных вычислительных функций.

Оптимизация кода — вечная тема, особенно актуальная в дни триумфального шествия искусственного интеллекта. Оптимально написанные, но изолированные ядра сетей составляются в разные последовательности в зависимости от архитектуры модели. Но, если дать им информацию друг о друге во время компиляции, сеть удастся заметно ускорить. Выгружать программу для перекомпиляции, будь она движком инференса или СУБД ,— бессмысленно, поэтому компилировать надо во время работы, Just-In-Time. Я расскажу про свой пет-проект векторной JIT-кодогенерации и покажу, как она помогает в оптимизации.

Читать далее

Вы соревнуетесь не с умными людьми, а с их вниманием, и планка сейчас на дне

Level of difficultyEasy
Reading time6 min
Reach and readers35K

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

Мне нужно лишь сосредоточиться...поймать фокус...

Вот, кажется, сейчас... он близко, вот-вот придёт... ещё немного и...

Черт. Я не могу...

Знакомо

Мой первый контейнер без Docker

Level of difficultyMedium
Reading time6 min
Reach and readers73K

Технологии контейнеризации, возможно, как и у большинства из нас, плотно засели в моей голове. И казалось бы, просто пиши Dockerfile и не выпендривайся. Но всегда же хочется узнавать что‑то новое и углубляться в уже освоенные темы. По этой причине я решил разобраться в реализации контейнеров в ОС на базе ядра linux и в последствие создать свой «контейнер» через cmd.

Читать далее

История о том, как ТехВилл сделал первый в России offline‑first PWA для курьерской доставки

Level of difficultyMedium
Reading time5 min
Reach and readers7K

Я, Алексей Борискин из команды ТехВилла, рассказываю, как мы сделали первый в России offline-first PWA для курьеров-партнеров. Теперь никакой зависимости от интернета — ваши заказы закрываются своевременно, и сотни курьеров-партнёров работают спокойно даже при полном отсутствии связи.Подробнее об этом проекте и других технических деталях — в моём канале: https://t.me/dostavka_bagov.

Читать далее

На самом деле я айтишник, а доставка — это для души

Level of difficultyEasy
Reading time8 min
Reach and readers25K

Привет, Хабр! Меня зовут Алексей Борискин, и на два дня я стал курьером.
Мой телеграм канал dostavka_bagov

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

Это история о том, как я погрузился в наш продукт, нашел баги, замерзал, боролся с ветром, но в итоге спас сотни заказов. Я применил философию гемба, чтобы увидеть мир глазами тех, для кого мы создаём свои решения.

Читать далее

Сначала лягте, потом читайте: как перестать уставать на работе

Level of difficultyEasy
Reading time13 min
Reach and readers116K

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

Меня зовут Валерия Зелёная, я старший менеджер по развитию образовательных программ в YADRO и автор Telegram-канала о ментальном здоровье канала «Рефлексант». Объясню, откуда берется усталость, как мозг реагирует на постоянную нагрузку, зачем нам нужны осознанные перерывы, что отличает качественный отдых от его имитации и как на самом деле работает тайм-менеджмент.

Читать далее

Откуда берутся выключатели. Как мы разработали умные электроустановочные изделия AtlasDesign Smart

Reading time15 min
Reach and readers14K

Салют, Хабр!

Я Иван, HW TPM Умного дома Sber — технический менеджер продукта в области хардвера. В этом году мы вместе с Systeme Electric (ex-Schneider Electric) выпустили линейку умных электроустановочных изделий AtlasDesign Smart: выключатели, розетки и термостаты тёплого пола. Это встраиваемые устройства с подключением по Zigbee-протоколу для тех, кто планирует масштабную автоматизацию своего дома.  

В этой статье хочу поделиться особенностями разработки и главными проблемами, с которыми пришлось столкнуться (всего мы насчитали 7). Расскажу, как мы уместили умную начинку в стандартный подрозетник, что даёт технология zero-crossing detection и почему дисплей умного термостата похож на бутерброд.

Читать далее

pg_dphyp: учим PostgreSQL соединять таблицы по-другому

Level of difficultyMedium
Reading time62 min
Reach and readers7.1K

Большая часть времени планировщика запросов в СУБД тратится на поиск оптимального способа соединения таблиц. В PostgreSQL используется два алгоритма: алгоритм динамического программирования, также называемый DPsize, и генетический — GEQO. В других СУБД реализовано еще множество других алгоритмов. DPhyp — алгоритм соединения на основе гиперграфов — уже используется такими СУБД как MySQL и YDB. Я задался вопросом: можно ли реализовать его в PostgreSQL? Оказывается, можно. Так и зародилось расширение pg_dphyp для PostgreSQL, реализующее альтернативный алгоритм соединения таблиц. В статье я не описываю подробно сам алгоритм, привожу только концептуальное описание его идеи, а рассказываю вот о чем:

-- Какие решения пришлось принять, чтобы добавить алгоритм DPhyp в существующую кодовую базу без изменения ядра;
-- Как GPLv2 помог найти эффективный алгоритм обхода соседей;
-- Как проиндексировали неиндексируемое гиперрёбра;
-- Планирование какого запроса смогли ускорить в 600 раз;
-- Какой изъян в работе существующего планировщика был найден.

Но главный сюжетный поворот — в конце...

Читать далее