Обновить

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

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели11K

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели26K

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели20K

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

Читать далее

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

Уровень сложностиСложный
Время на прочтение32 мин
Охват и читатели9.5K

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели33K

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

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

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

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

Знакомо

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

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели73K

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.8K

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

Читать далее

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

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

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели114K

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

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

Читать далее

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

Время на прочтение15 мин
Охват и читатели13K

Салют, Хабр!

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение62 мин
Охват и читатели6.9K

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

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

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

Читать далее

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

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

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

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

Читать далее

Генетическое программирование: от теории к практике

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

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

Что будет, если поручить эволюционному алгоритму самому «придумать» формулу? Разбираем генетическое программирование на наглядных примерах: от восстановления тригонометрических функций и символьной регрессии на реальном датасете до оптимизации структуры нейросетей — все эксперименты воспроизводимы в Google Colab.

Читать далее

Ломать не строить: как устроено хардверное тестирование

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

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

Меня зовут Игорь Попов, я директор департамента верификации и контроля качества в YADRO. Далее я простыми словами расскажу, что такое hardware QA: где мы режем, замораживаем, зачем смотрим, загорается ли лампочка по команде BIOS — и что делаем, если нет. Если ты джун или только начинаешь разбираться в «железе», статья поможет понять, подходит ли тебе такая работа и в чем она на самом деле заключается.

Читать далее

Онбординг в графиках: как превратить адаптацию в измеримый и предсказуемый процесс

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели16K

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

Я Руслан Назаров, директор по разработке в TATLIN.FLEX. Первые задачи по онбордингу стали для меня школой, из которой вырос системный подход к адаптации новичков. В статье расскажу о метриках и чек-листе, которые помогут руководителю эффективно выстраивать процесс.

Читать далее

Как мы тестируем железо в радиочастотном центре — от платы до полноценного RU

Время на прочтение9 мин
Охват и читатели17K

Всем привет! Меня зовут Алексей Караванов, я руководитель отдела тестирования программного обеспечения в YADRO. В нашем радиочастотном центре (РЧЦ) мы с коллегами разрабатываем и тестируем ПО радиомодулей для базовых станций. И сегодня хочу показать, какой путь проходит оборудование до момента, когда базовая станция будет запущена и начнет создавать покрытие для нашей с вами надежной связи. 

Разбирать будем на примере радиомодуля RU B3 (B3 — это один из основных частотных диапазонов в России и мире, работающий на частотах 1800 МГц). Покажу, как выглядит процесс производства от платы до полноценного устройства и как мы тестируем аппаратные комплексы. Посмотрим архитектуру наших тестовых стендов и самих тестов — будет много фото и скринов.

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

Читать далее

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

Время на прочтение10 мин
Охват и читатели17K

Привет, Хабр! Меня зовут Антон, я руковожу направлением автоматизации тестирования BIOS/BMC в YADRO. Как-то раз я моргнул — и наша команда из 10 инженеров выросла до 35. Вместе с этим у нас появились направления и лиды, а значит, я больше не могу прийти в любую задачу и сам ее быстро закрыть.

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

Читать далее

DAC, AEC или оптика — какие ваши доказательства, господин трансивер?

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

Привет, Хабр! Меня зовут Андрей, я старший инженер по разработке ПО в YADRO. В прошлом квартале для коммутаторов KORNFELD мы разрабатывали функциональность Auto-Negotiation (автосогласование скорости, режима и других параметров передачи данных) и FEC (коррекцию битовых ошибок) из стандарта IEEE 802.3. Нам нужно было в реальном времени при горячей замене трансиверов определить их тип и тип среды передачи данных. Задача как будто простая: почему бы не заглянуть в EEPROM? Но есть нюансы.

С трансиверами от YADRO все просто: на них наш логотип и серийник, они совместимые, проходят многомесячную валидацию, поэтому в их EEPROM все четко. Вот только в реальной жизни клиент не всегда использует такие устройства — и что будет указано в их EEPROM, зависит от добросовестности и фантазии производителя.

Через нас прошло множество вариантов трансиверов, и мы научились быстро добывать из них нужную нам информацию (те еще сыщики!). В статье покажу способ, как определить тип трансивера и тип среды передачи данных при помощи одной теории и как получить воспроизводимый результат на Python. Материал будет полезен инженерам и программистам, которым нужно принимать решения на основе неполных и противоречивых входных данных. Приступим!

Читать далее