C/C++
Общий опыт: 4 года
Поскольку я начинал программировать с микроконтроллеров, Си стал моим первым «серьёзным» языком. Но в какой-то момент я заинтересовался, как писать нативные десктопные GUI, и как мне могут помочь классы с шаблонами…
Примечание: в настоящий момент мне не интересен C/C++.
RTOS
На C++ я разрабатывал самописную RTOS жёсткого реального времени, использующуюся в системе управления винтокрылого БПЛА . Несмотря на распространённое мнение, что «у C++ слишком большое потребление ресурсов для микроконтроллеров, тем более для обеспечения жёсткого реального времени» как-то всё уместилось и обеспечилось на не самых передовых микроконтроллерах с одним CPU без сопроцессора с плавающей запятой.
До этого, уже на Си, я работал с FreeRTOS , которую использовал для разработки систем управления импульсными преобразователями и прошивки радиомодема для работы с группировкой спутников Iridium , предназначавшегося для установки на БПЛА.
DSP
Поскольку встроенные ОС, с которыми я работал, были написаны на C и C++, цифровая обработка сигналов ( DSP ) для нужд систем управления также писалась на соответствующих языках. В основном это были сильно упрощённые библиотеки по линейной алгебре и матанализу для реализации различных фильтров: Калмана , эллиптических , КИХ , БИХ .
Имитационная модель
В ходе работы над системой управления БПЛА я также разрабатывал имитационную модель вертолёта, которая должна была, в том числе, работать с полноценными «железными» версиями блоков управления ( HIL ). Работа делалась на основе adevs с использованием ODE солверов из SUNDIALS и линейноалгебраических функций из Blaze .
Qt
До того, как перейти на web-based решения (см. Python ), я некоторое время разрабатывал интерфейсы для испытательного оборудования на Qt. Безусловно, они работают быстро, но слишком уж много писанины для простого набора кнопок, переключателей и графиков…
Иллюстрация
-
Композиция в целом: обложки культовых книг издательства Addison-Wesley по C++ от Скотта Майерса и The “Gang of Four”: Design Patterns , Effective C++ , More Effective C++ , Effective STL .
-
It’s dangerous to go alone! Take this .
-
Пожалуй, каждый, кто бывал в краях C++ , захаживал на мельницу секретаря комитета стандартизации C++ .
-
«Elements of Overcomplicated Designs» — это личное 😄
-
Магический квадрат: поскольку на обложке «Design Patterns» изображены «Лебеди» Эшера , мне хотелось поместить на свою квазиобложку что-то близкое по духу. «Лебеди» почему-то напомнили мне магический квадрат из «Меланхолии I» Дюрера — вероятно, то же математическое очарование, тот же гравюрный стиль…