Привет, Хабр! Этот пост — отчёт с митапа Moscow Python x YADRO. Мы обсуждали отличия языков Python и Go, подробно разобрали работу с протоколом syslog и почти написали свой Docker. Если вам интересны эти темы — заходите под кат, там вы найдёте видеозаписи докладов, презентации спикеров и небольшой фотоотчёт.
User
Ключевые характеристики материалов для производства печатных плат
В этой статье мы пройдемся по типовой технической спецификации — документу, в котором собраны требования к базовым материалам для печатной платы: фольга́м, препрегам и ко́рам. Поймём, как формируются эти требования. И что важно учитывать, чтобы плата не отправилась в утиль на этапе производства, монтажа или эксплуатации.
Go-митап для тех, кто переходит или недавно перешел на Go
Привет, Хабр!
25 мая в Петербурге и онлайн проведём митап для разработчиков любого уровня, тимлидов и целых команд, которые задумываются о переходе на Go или уже начали применять его в коммерческой разработке. У нас большой опыт в этом — в YADRO существует практика, когда разработчики переходят на Go с других языков программирования. В рамках митапа наши инженеры поделятся подходами, которые помогают быстро изучить нюансы и влиться в работу на новой технологии. Поговорим, как писать производительный и легко сопровождаемый код без «побочных эффектов». Внутри поста — подробные описания докладов, ссылки на регистрацию и трансляцию.
Программирование паяльником, пыльное железо и тонны легаси? Как на самом деле устроена разработка ПО в телекоме
Хабр, привет! Недавно я спросил нескольких коллег — вчерашних студентов, как они представляли себе разработку в телекоме до того как пришли в эту сферу. Их ответы были очень далеки от реальности. Многие считали, что разработка в телекоме — это возня со старым пыльным железом на чердаках и в подвалах. Внедрять новые и современные решения невозможно из-за тонн легаси, в сторону которого все боятся даже дышать. А большинство коллег — бородатые деды, которые программируют паяльником и строго следуют парадигме каскадной разработки. Да и задачки в целом довольно скучные: перекладываешь байты — и, в общем-то, больше ничего не происходит. Нечего будет рассказать внукам, когда сам станешь бородатым дедом.
Мой сегодняшний пост — рассказ о том, что на самом деле происходит в разработке телекоммуникационного оборудования для сотовых сетей с точки зрения программиста, и почему эта работа чертовски вдохновляет.
Системному администратору и нагрузочному тестировщику: статистика ввода-вывода в ядре Linux под капотом
Подсчет статистики — это не сильно затратный с точки зрения производительности способ получить информацию о нагруженности системы с активным вводом-выводом. Но он имеет недостатки: усреднение, отсутствие бакетов, малая гранулярность системного таймера.
Нам, как конечным пользователям, будет полезно понимать, как устроен механизм сбора и накопления статистики внутри ядра и как читает и интерпретирует данные популярная утилита iostat. Что именно значат aqu-sz, util и другие данные из режима расширенной статистики? Почему многие значения усреднены? Чтобы ответить на эти и другие вопросы, мы пройдем путь от системного вызова до момента, когда запрос ушел в диск и вернулся, — а счетчики обновились. Поехали!
Говорим про системное программирование и дизайн микропроцессоров простым языком
Системное программирование и разработка процессоров — область достаточно узкая, из-за чего её часто воспринимают как что-то непонятное и недоступное. Хотим поделиться новым подкастом «Битовые маски», который планирует исправить это впечатление. В каждом выпуске будем общаться с инженерами, причастными к созданию продуктов, которыми многие программисты пользуются ежедневно, и разбирать с ними интересные нюансы, мифы и задачи отрасли.
Гостем первого эпизода стал Дмитрий Петров, писавший компилятор для Kotlin. Под катом вы найдете запись, а для тех, кто не любит слушать — мы подготовили расшифровку ряда интересных фрагментов. Мы очень хотим фидбека: не стесняйтесь писать в комментарии или личные сообщения.
Что важно понимать студенту 2-3 курса технического вуза, который собирается искать работу
Мы в YADRO активно работаем со студентами и видим, что многих из них волнуют вопросы:
— какие навыки прокачивать ещё в университете,
— где взять опыт для первой версии резюме,
— как проходить первые собеседования,
— и как в целом задать своей карьере правильный вектор на самом старте.
Недавно мы провели серию мини-лекций в ведущих технических вузах с советами от уже состоявшихся инженеров, которые относительно недавно прошли путь от студента без опыта до ведущего специалиста или тимлида. Получилось интересно. Мы решили поделиться ключевыми выжимками из рассказов ребят в формате «вопрос‑ответ».
3 доклада для тех, кто недавно с Go: материалы митапа в Петербурге
«Что самое крутое вы сделали за год, что пишете на Go», — вопрос из зала после первого доклада.
«Записал новую машину на жену», — остроумный комментарий к этому моменту в трансляции.
В конце мая в очень дружелюбной атмосфере состоялся YADRO Go To митап — в этот раз для тех, кто только думает или недавно начал писать на Go в коммерческих проектах. В этом посте мы собрали ссылки на записи, презентации и добавили пару слов о каждом выступлении, чтобы было проще выбрать, что посмотреть детальнее, а что — на быстрой перемотке.
Простые правила, которые помогают мне писать на Go без побочных эффектов
Роб Пайк сказал, что простое лучше, чем сложное. Я бы добавил: простое лучше, чем прикольное. Ведь Go спроектирован, чтобы писать программы в простом стиле.
Сегодня я хочу поговорить про такие, казалось бы, очевидные вещи, как функции, интерфейсы и методы. Их особенности в Go. И правила, которые я выработал, чтобы писать их просто и понятно для коллег, для компьютера и для себя в недалеком будущем.
Seastar как платформа для опорной сети 5G и краткое сравнение с Boost.Asio, userver и другими
Я исследовал некоторые open-source фреймворки — кандидаты на платформу для опорной сети пятого поколения операторского уровня, и хочу поделиться своими выводами. Под катом я сравню Seastar, mTCP, Boost.Asio, userver и ACE, расскажу, почему примитивы синхронизации — это плохо, а затем погружу вас в глубины Seastar.
История печатных плат: от Эйслера до наших дней
Чтобы сегодня найти работающее от электричества устройство без печатной платы внутри, придется постараться. Они стали основой буквально всего, что сложнее выключателей. Да и в них уже печатные платы не редкость. Трудно представить, что начало такому разнообразию технологий положил талантливый инженер, бежавший от режима и поначалу стремившийся оптимизировать сборку радиоприемников в своей кустарной мастерской.
Как ограничить количество выполняющихся задач в Jenkins при вызове parallel: сравниваем решения
Недавно передо мной встала задача — есть 250 тестов, каждый из которых занимает от 5 до 30 минут, а иногда и часы. Надо запустить их в параллель на одной машине, но не больше 16 одновременно. Ограничение связано с некоторым лимитированным ресурсом, а также количеством ядер CPU. Реальное число одновременно запущенных задач нужно вычислять динамически, то есть пойти простым путем и зарегистрировать имя или лэйбл ресурса заранее с помощью плагина Lockable Resource не получится.
Митап по автоматизации тестирования на Python в Нижнем Новгороде и онлайн 26 сентября
Привет, Хабр!
Вместе с нижегородским сообществом PythoNN и инженерами компании-разработчика вычислительной техники YADRO мы обсудим правила, которые помогут сделать тесты понятнее, поговорим, как поддерживать одновременно автотесты в коммерческой и опенсорсной версиях ПО, и как использовать pytest plugins.
На митапе вас ждет общение с опытными спикерами из разных городов и возможность встретиться с коллегами в центре Нижнего Новгорода, в КУПНО на Почаинской.
Как всегда, для для онлайн-зрителей мы проведем трансляцию, где вы сможете задать вопросы спикерам!
Внутри поста — подробные описания докладов, ссылки на регистрацию и трансляцию.
Проектируем узлы печатной платы с учетом особенностей монтажа при массовом производстве. Подход DFA
Сегодня мы рассмотрим, что стоит учесть в конструкторской документации, чтобы защититься от проблем на этапе автоматизированного монтажа компонентов на плате. Я покажу, как можно организовать подбор элементов, их взаимное расположение и разводку для монтажа, чтобы увеличить коэффициент выхода годных плат и упростить их диагностику на производстве.
Подход, на который мы будем опираться, называется DFA — Design for Assembly (проектирование для сборки). Набор методов DFA гарантирует возможность сборки компонентов на плате, когда она поступит на монтажный участок, и позволяет отправлять плату в тираж без страха потерять деньги и время.
Пишем свой драйвер Molecule без костылей и боли
Привет, Хабр! Меня зовут Павел, я инженер по разработке инфраструктуры в компании YADRO. В апреле 2023 года разработчики Molecule представили мажорный релиз инструмента в версии 5.0.0. Помимо множества багфиксов и улучшений, пользователи получили возможность написать свой собственный драйвер, подключить его в уже существующие сценарии тестирования ролей и использовать как molecule.docker
или molecule.openstack
. Я не нашел или плохо искал статей об этом и решил написать поэтапное руководство по разработке собственного драйвера — от примитивного Hello world до работающего прототипа.
В статье вы найдете пример custom_docker
доработки оригинального драйвера molecule.docker
, описание базовых классов и методов из API Molecule, а также рассказ о нюансах разработки и эксплуатации.
Создаём компанию мечты: управление качеством данных
Ещё одной, возможно, самой курьёзной, стала ошибка в огромном заказе от французских железных дорог SNCF на 2 тыс. поездов в 2014 году. Команда, которая формировала технические требования, собственноручно провела замеры габаритов перронов на нескольких десятках станций. Желая увеличить комфорт, они задали ширину составов впритык к максимальной. Измерения они проводили в окрестностях Парижа — и о том, что в регионах на многих станциях перроны находятся ближе к путям, узнали уже при испытаниях. Цена ошибки — модернизация всей инфраструктуры на сотни миллионов евро. Им бы там MDM с характеристиками станций…
Python.org рекомендует: Программирование для НЕпрограммистов
Если Вы никогда не занимались программированием раньше, эти материалы для вас. Данные туториалы не предполагают, что у вас есть какой-то опыт. (Если у вас уже есть опыт программирования, посетите Beginners Guide).