Как стать автором
Обновить
86
79

Компания YADRO

Отправить сообщение

5 способов писать эффективный код на Go: от названий переменных до архитектуры

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

Если вы задумывались, какие практики использовать, чтобы писать код на Go быстро и качественно, этот материал для вас. Руководитель группы разработки подсистем Геннадий Ковалев и эксперт по разработке ПО Даниил Подольский обсуждают пять способов повысить эффективность разработки в команде Go-программистов: они расскажут, как называть переменные, составлять документацию и продумывать архитектуру так, чтобы специалистам в команде и смежных отделах было легко работать с написанным кодом. 

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

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

Будьте в курсе развития RISC-V: обсуждаем обновления в разработке и изучаем бенчмарки серверов на открытой архитектуре

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

Если вы интересуетесь развитием открытой архитектуры или занимаетесь разработкой систем под нее, не пропустите бесплатный митап российского Альянса RISC-V. Он объединяет независимых разработчиков вычислительной техники и программного обеспечения на основе свободной архитектуры. 

15 апреля в 19:00 представители альянса соберутся, чтобы обсудить последние разработки и опыт работы с RISC-V-системами. Регистрируйтесь на митап, чтобы подключиться онлайн и быть в курсе развития экосистемы RISC-V в России. Узнаете о поддержке RISC-V в Linux и результатах анализа производительности доступных на рынке RISC-V-серверов. Подробнее о программе — под катом.

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

Уравнение с тремя неизвестными: как отлавливать баги в системах хранения данных

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

Привет! Меня зовут Никита Гуцалов, я инженер в компании YADRO и занимаюсь разработкой ПО для системы хранения данных TATLIN.UNIFIED. Вообще с системами хранения данных (СХД) я работаю уже много лет и люблю эту тему, поскольку она постоянно бросает новые вызовы, заставляя решать довольно сложные и нестандартные проблемы, что очень увлекательно само по себе, а удачные решения приносят огромное удовлетворение.


В статье я попытаюсь погрузить читателя в проблемы, с которыми нам, инженерам YADRO, приходится сталкиваться при отладке программного обеспечения СХД. Также покажу особенности работы с такими системами. Расскажу, какие инструменты, а иногда и решения, которые мы пишем сами, приходится для этого применять. А еще постараюсь сформулировать условия, которые необходимы для нахождения причин возникновения ошибок обработки данных в системе.

Текст про особенности поиска багов был бы пустым без конкретных примеров, поэтому под катом вас ждет разбор случая, который как-то произошел в нашей лаборатории при тестировании производительности СХД.  

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

Материалы для разработчиков систем на кристалле: функциональная верификация, итеративная сборка, свой ПЛИС-кластер

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

Привет, Хабр! Принесли материалы с недавнего митапа для FPGA/ASIC/RTL-инженеров — добавляйте в закладки, чтобы посмотреть в свободное время. В докладах вас ждут:

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

Обзор плюсов и минусов существующих систем для автоматизации тестирования на FPGA-стендах.

Способ оценки производительности коммерческого ПЛИС-кластера и собственного решения.

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

Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++

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

Привет, Хабр! Меня зовут Кирилл Колодяжный, я ведущий инженер-программист в YADRO. Помимо основных рабочих задач, включающих исследование проблем производительности СХД, я увлекаюсь машинным обучением. Участвовал в коммерческих проектах, связанных с техническим зрением, 3D-сканерами и обработкой фотографий. В задачах часто использовал С++, хотя машинное обучение традиционно ассоциируется с Python. Этот язык программирования буквально захватил сферу, его используют повсюду — от обучающих курсов до серьезных ML-проектов.

Однако Python — не единственный язык, на котором можно решать задачи машинного обучения. Так, альтернативой может стать С++. Если последний вам ближе, вам будет интересен и полезен этот текст.

Под катом разберемся:

как организовать работу с данными и загрузку обучающего датасета, 

как описать структуру нейронной сети, 

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

как организовать конвейер обучения сети, 

как использовать предобученные глубокие сети для решения задач. 

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

«Код-ревью — это когда твои комментарии в интернете действительно читают»: дискуссия с разработчиками на C++

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

Заходят как-то на Хабр С++ разработчики из крупных компаний, а у них спрашивают: что такое код-ревью и используют ли они спецификатор final. Эти и другие вопросы с подвохом мы задали инженерам из YADRO, VK, Kaspersky, Syntacore и PVS-Studio. В итоге обсудили инструменты для работы со сторонними зависимостями, интерфейсы «плюсовых» библиотек и отказ (или нет) от exceptions.  

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

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

Укрощение примитивов синхронизации: сравниваем решения задачи с построением пула потоков на С и Go

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

Эта статья основана на истории об одном личном челлендже. Задача звучала так: помочь с реализацией взаимодействия компонентов в программном комплексе заказчика. Иными словами, понадобилось IPC для дальнейшего развития продукта. Вызов заключался в том, что в обязательных требованиях стояло использование чистого С. Другие языки, включая С++ и Go, не рассматривались. 

В итоге я получил интересный опыт в рамках системного и параллельного программирования. Меня зовут Алексей Буреев, я работаю старшим инженером по разработке ПО в YADRO, сейчас мой основной рабочий язык программирования — Golang. В этой статье я проведу небольшой эксперимент: покажу, как можно решить одну задачу с помощью разных языков программирования. Языку С я противопоставлю Go, в основе которого есть исторические наработки проектирования языка С. Для этого немного заглянем «под капот» стандартных типов данных, которые уже были заботливо созданы для нас разработчиками языка.

Всех заинтересованных прошу под кат.

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

Go на митап: обсудим sync.Pool, свой mini-k8s, паттерны и сообщения об ошибках

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

28 марта встречаемся на митапе по Go-разработке с инженерами из команд систем хранения данных и телекома YADRO, а также разработчиками из VK и AvitoTech. Эксперты расскажут, как: 

снизить нагрузку на сборщик мусора,

сделать свой mini‑k8s,

написать библиотеку для обработки ошибок,

использовать горутины грамотно и безопасно.

Митап пройдет в Нижнем Новгороде и онлайн. Регистрируйтесь на встречу и выбирайте удобный формат участия. А под катом читайте программу и знакомьтесь со спикерами.

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

Железные люди Хабра: лига лучших железячных статей

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

Внимание! Конкурс «Технотекст» открывает железную номинацию. 

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

Читать далее
Всего голосов 42: ↑39 и ↓3+62
Комментарии16

Опыт автоматизации управления FPGA-стендами для распределенной команды: отказ от готового решения и работа над ошибками

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

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

Меня зовут Игорь Большевиков, я инженер по системному программированию систем на кристалле в YADRO В статье я расскажу о нашем опыте автоматизации процессов, связанных с разработкой на FPGA-стенде: удаленной загрузке плат, бронировании аппаратных ресурсов и решении вопросов по координации для распределенной команды. Я опишу ключевые этапы задачи без лишних технических деталей. Возможно, статья будет полезна тем, кто занимается или кому предстоит заняться автоматизацией работ с FPGA.

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

Митап для FPGA-инженеров и разработчиков систем на кристалле в Минске и онлайн: от верификации до запуска тестов

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

Привет, Хабр! 2 марта собираемся в Минске и онлайн на бесплатном митапе по FPGA, ASIC и RTL. Обсудим итеративную сборку проектов и имплементацию больших дизайнов на ПЛИС, подходы к верификации, а также систему бронирования и запуска тестов на сотнях стендов за раз.

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

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

Расширяем тестовый фреймворк с помощью Pytest-плагинов. Часть 2: практика

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

В первой части статьи мы разбирались с теорией, которую нужно знать для создания собственных Pytest-плагинов: фикстурами, маркерами и хуками. А теперь перейдем к практике. 

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

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

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

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

Привет, Хабр! Я Оксана Нечитайлова, руковожу отделом сервисного дизайна в YADRO. В разработке продуктов я уже более 16 лет и за свою карьеру сменила несколько компаний, сфер бизнеса и рабочих ролей. В общем, не раз «обнулялась» и проходила периоды адаптации в новой команде или направлениях, где много неизвестного. С этим опытом (на собственных шишках) я стала замечать, какие ошибки на старте работы в компании и в новой роли мы обычно совершаем. Интересно, что в обсуждении этого вопроса с коллегами-тимлидами мы обнаружили, что они делали те же самые ошибки и вели себя похожим образом. Есть общий паттерн поведения, характерный для многих и на который можно повлиять.  

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

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

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

Расширяем тестовый фреймворк с помощью Pytest-плагинов. Часть 1: теория

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

Всем привет! Меня зовут Александр Волков, я занимаюсь интеграционным и компонентным тестированием в YADRO. В числе продуктов компании есть системы хранения данных и, говоря о тестировании, я буду иметь в виду в первую очередь работу с СХД. Однако описанные подходы пригодятся всем, кто ищет инструменты для создания тестового фреймворка и расширения его возможностей под свои задачи. 

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

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

Обзор подходов к проблеме шероховатости фольги при проектировании высокоскоростных плат

Уровень сложностиСложный
Время на прочтение24 мин
Количество просмотров6.5K

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

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

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

Документация как сервис: как мы генерируем документы независимо от стека разработки

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

Привет, Хабр. Меня зовут Наталья Павликова, в YADRO я работаю в команде DocOps. У нас обширная инфраструктура вокруг задач документирования, которая немного напоминает ходячий замок Хаула. Сегодня я расскажу о небольшой ее части — процессе автоматической генерации и публикации документов из исходников кода.

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

Читать далее
Всего голосов 17: ↑15 и ↓2+16
Комментарии4

Пишем Ansible-модули для управления разными системами хранения данных через Swordfish

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

Большинство современных систем хранения данных (СХД) предоставляют REST API для управления ими, включая настройку, конфигурирование, выполнение различных команд, получение логов, работу с пользователями и т.д. В зависимости от производителя СХД REST API могут отличаться друг от друга. Если вы используете несколько разных систем, их одновременная поддержка становится проблемой: нужно учитывать многообразие протоколов, интерфейсов, команд и способов взаимодействия с API.

Меня зовут Александр Пономарев, вместе с группой студентов СПбПУ Петра Великого на базе Лаборатории YADRO мы изучали способы сделать управление разными СХД менее трудоемким. Вариант, на котором мы остановились, — использовать системы, которые удовлетворяют спецификации Swordfish, в связке с Ansible. Подробнее о проекте, который мы выполняли с инженерами компании и преподавателями университета, рассказываю под катом.

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

Разработка тензорного компилятора под RISC-V CPU с помощью OpenVINO и MLIR

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

Привет, Хабр! Меня зовут Владислав Виноградов, я инженер группы исследований и разработки ПО глубокого обучения в YADRO. Моя команда создает и оптимизирует связанное с искусственным интеллектом программное обеспечение. Сегодня я расскажу, как можно разработать тензорный компилятор для процессора на базе открытой архитектуры RISC-V. 

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

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

TMS на замену TestRail: писали для себя, а выложили в open source

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

В прошлом году TestRail прекратил предоставлять и продлевать лицензии компаниям из России, поэтому мы в YADRO решили разработать собственную тест-менеджмент систему TestY. Опирались на опыт работы с другими сервисами, чтобы добавить тот функционал, которого не хватало нашим командам тестирования. За несколько месяцев написали core-часть системы и выложили ее в open source, чтобы другие компании и разработчики, для которых актуален вопрос лицензионной чистоты используемого софтай, пользовались решением и развивали его.

В этой статье рассказываем об отличиях TestY от других TMS и преимуществах нашей системы для команд любого размера. Спойлер: в TestY могут одновременно работать 300 тестировщиков — система справляется. Для тех, кто хочет опробовать TestY в своей команде, в конце статьи есть короткая инструкция, как ее развернуть.

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

От астролябии до MIMO: как необходимость определять местоположение привела к развитию систем спутниковой и сотовой связи

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

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

Все это было бы невозможно без эволюции технологий, систем спутниковой и сотовой связи, а также методов, которые вычисляют местоположение мобильных объектов. О них и поговорим под катом. Я Надежда Никулина, ведущий системный аналитик в телеком-команде YADRO. Давно работаю в сфере телекоммуникаций, участвовала в развитии сетей 2G и 3G в России, обеспечивала разработку узлов связи. В статье расскажу, как развивались методы определения позиционирования объектов и почему будущее за гибридными методами и технологиями 5G. 

Узнать больше
Всего голосов 18: ↑17 и ↓1+20
Комментарии8

Информация

В рейтинге
62-й
Откуда
Россия
Работает в
Зарегистрирован
Активность