Обновить
18
Artyom Styazhkin@DoHelloWorld

Software Engineer

5
Подписчики
Отправить сообщение

Тихий перфоратор для соседа: как спроектировать тактовый генератор с распределенным спектром

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

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

Есть более элегантное решение — тактовый генератор с распределенным спектром (ТГРС). Мощность генератора остается прежней, а вот шум удается заметно снизить. Меня зовут Павел Кириченко, я автор курса «Схемотехника для начинающих» и ведущий инженер по разработке SoC в YADRO. В статье разберемся, как спроектировать ТГРС для последовательного интерфейса и рассмотрим два подхода к его архитектуре: с переменным коэффициентом деления и c фазовым интерполятором.

Читать далее

3 скрипта для диагностики Вашего Linux-сервера

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

Привет, Хабр! Уверен, многие сталкивались с тормозами сервера, долгой загрузкой страниц. Логи молчат, нужно искать виновника. Системный мониторинг демонстрирует, что CPU вроде не загружен, память не полностью израсходована, а отклик системы оставляет желать лучшего.

В такие моменты стандартных утилит вроде top или htop часто недостаточно, нужен более детальный анализ. С этим мне приходится периодически сталкиваться, из-за чего и были написаны 3 bash-скрипта. Они дают сбор ключевых метрик системы для дальнейшего разбора.

Читать далее

Что дал переход на zsh мне, как разработчику?

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

Когда я был еще джуном, старшие разработчики настоятельно советовали мне перейти на zsh. Я помню, что я так и не получил никакой аргументации, чем zsh лучше привычного bash, и какую конкретно пользу я получу от перехода.
Что ж, в этой статье я хочу ответить на эти вопросы тем, кто еще только задается этим вопросом, с небольшим уклоном к PHP разработке

Zsh это командная оболочка, то есть программа, которая получает от пользователя команду в текстовом виде и выполняет соответствующие исполняемые файлы, найденные по путям, указанным в переменной окружения PATH.
Zsh является дефолтной оболочкой для macOS, на linux дефолт - bash. Zsh лучше, чем bash в основном благодаря своей очень обширной системе плагинов, модулей, различных тем и т. д.

Например, установив вот такой плагин.

Читать далее

Call Stack Logger — инструментирование функций как способ отслеживания потока выполнения программы

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

Доводилось ли вам когда-нибудь работать над C++ проектом с такой огромной кодовой базой, что понимание того, что на самом деле происходит во время выполнения программы, требует кучи времени и сил? Откуда и какие функции вызываются? Вам когда-нибудь поручали исправить баг в таком проекте, прилагая лишь логи, которые приближают вас к нахождению первопричины проблемы так же, как Моисей к земле обетованной? А попытки воспроизведения бага не дают вам никакой полезной информации? Если ваш ответ да – пожалуйста, присаживайтесь поудобнее.

Читать далее

Атрибуты Хорошего С-кода (Хартия Си Программистов)

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

Это не академические атрибуты из учебников. Это скорее правила буравчика оформления сорцов из реального prod(а). Некоторые приемы совпали с MISRA, некоторые с CERT-C. А кое-что является результатом множества итераций инспекций программ и перестроек после реальных инцидентов. В общем тут представлен обогащенный концентрат полезных практик программирования на С(ях).

Читать далее

Программирование многоядерных DSP-процессоров TMS320C66x с использованием OpenMP

Время на прочтение24 мин
Охват и читатели21K
В статье описывается подход к программированию многоядерных сигнальных процессоров на основе OpenMP. Рассматриваются директивы OpenMP, разбирается их смысл и варианты использования. Делается акцент на цифровых сигнальных процессорах. Примеры применения директив OpenMP выбраны приближенными к задачам цифровой обработки сигналов. Реализация проводится на процессоре TMS320C6678 фирмы Texas Instruments, включающем 8 DSP-ядер. В части I статьи рассматриваются основные директивы OpenMP. Во II части статьи планируется дополнить список директив, а также рассмотреть вопросы внутренней организации работы OpenMP и вопросы оптимизации программного обеспечения.

Данная статья отражает лекционно-практический материал, предлагаемый слушателям в рамках курсов повышения квалификации по программе «Многоядерные процессоры цифровой обработки сигналов C66x фирмы Texas Instruments», проводимых ежегодно в Рязанском радиотехническом университете. Статья планировалась к публикации в одном из научно-технических журналов, но в силу специфики рассматриваемых вопросов было принято решение о накоплении материала для учебного пособия по многоядерным DSP-процессорам. А пока данный материал будет копиться, он вполне может полежать на страницах Интернета в свободном доступе. Отзывы и пожелания приветствуются.
Читать дальше →

Автоматизация релизов с помощью github-action и semantic-release. А так же использование Pre-commit в Github action

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

В этом посте будет описано практическое применение semantic-release для terraform модуля terraform-yandex-compute (Модуль Terraform, который создает вычислительные ресурсы в облаке Яндекса) c Github action.



А так же будет рассмотрено использование Pre-commit в Github action.


Читать дальше →

Сериализация в C++

Время на прочтение14 мин
Охват и читатели48K
В данной статье речь пойдет об автоматизации процесса сериализации в C++. В начале будут рассмотрены базовые механизмы, позволяющие упростить чтение/запись данных в потоки ввода-вывода, после чего будет дано описание примитивной системы генерации кода на основе libclang. Ссылка на репозиторий с демонстрационным вариантом библиотеки расположена в конце статьи.
Читать дальше →

Как создать микросервисное приложение за 15 минут. Часть 1

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

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

Меня зовут Виктор Бирюков, я главный руководитель IT-направления в СберТехе — компании, которая создаёт основные технологические решения для Сбера. В статье я расскажу, как с помощью PaaS-инструментов упростить и ускорить разработку микросервисов так, чтобы в конечном счёте на создание полноценного продукта у вас уходило не больше 15 минут.

У этой статьи будет продолжение. В этой части мы познакомимся с сервисом Platform V DataSpace и напишем frontend-приложение, используя DataSpace как сервис (Backend-as-a-Service3). Во второй статье разберём Platform V Functions, напишем backend-приложение как облачную функцию и разместим наше frontend-приложение также как функцию (Function-as-a-Services4).

Читать далее

Обнаружение наличия функциональности в C++ на этапе компиляции

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

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

Хорошо, если есть поддержка концептов или рефлексии. А что делать, если их ещё нет, или они не в полной мере поддерживаются?

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

Читать далее

Регулярные выражения (regexp) — основы

Время на прочтение21 мин
Охват и читатели1.5M

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!

Чем это лучше простого поиска? Тем, что позволяет задать шаблон.

Например, на вход приходит дата рождения в формате ДД.ММ.ГГГГГ. Вам надо передать ее дальше, но уже в формате ГГГГ-ММ-ДД. Как это сделать с помощью простого поиска? Вы же не знаете заранее, какая именно дата будет.

Читать далее

Время-деньги. Сколько стоит час инженера

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

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

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность