Сборка проектов Си и Си++: от простого к сложному. Часть I. Библиотеки
Каждый раз, в течение многих лет, собирая пилотную версию мизерного проекта или простой утилиты, мне кажется, что уж в этот раз точно обойдусь обычным скриптом для сборки, и никакие сборщики проекта мне не понадобятся. Но суровая реальность приводит меня в чувство уже в течение первых нескольких минут работы. Сначала оказывается, что до невозможности простая программка нуждается в JSON-парсере, HTTP-запросах CURL и прочих библиотеках. А по мере возбуждения хотелок эти все зависимости нарастают как снежный ком. И все мечты быстро скомпилировать страничку кода встречают на каждом шаге всё новые и новые проблемы.
Вот сегодня и расскажу о том, какие бывают способы борьбы с зависимостями и сборки проекта из множества файлов на Си++. Заодно те, кто не любят Си++, смогут порадоваться «прелестям» этого процесса. И хоть тема очень важная для программистов, но я обратил внимание, что даже многолетний опыт не гарантирует понимания этих процессов. Но сразу предупреждаю — история длинная даже с учетом всех попыток не убегать на смежные темы.
https://habr.com/ru/companies/ruvds/articles/871940/
#cpp #programming
👉 @cpp_lib
Каждый раз, в течение многих лет, собирая пилотную версию мизерного проекта или простой утилиты, мне кажется, что уж в этот раз точно обойдусь обычным скриптом для сборки, и никакие сборщики проекта мне не понадобятся. Но суровая реальность приводит меня в чувство уже в течение первых нескольких минут работы. Сначала оказывается, что до невозможности простая программка нуждается в JSON-парсере, HTTP-запросах CURL и прочих библиотеках. А по мере возбуждения хотелок эти все зависимости нарастают как снежный ком. И все мечты быстро скомпилировать страничку кода встречают на каждом шаге всё новые и новые проблемы.
Вот сегодня и расскажу о том, какие бывают способы борьбы с зависимостями и сборки проекта из множества файлов на Си++. Заодно те, кто не любят Си++, смогут порадоваться «прелестям» этого процесса. И хоть тема очень важная для программистов, но я обратил внимание, что даже многолетний опыт не гарантирует понимания этих процессов. Но сразу предупреждаю — история длинная даже с учетом всех попыток не убегать на смежные темы.
https://habr.com/ru/companies/ruvds/articles/871940/
#cpp #programming
👉 @cpp_lib
Сборка проектов Си и Си++: от простого к сложному. Часть II. Сборщики
Продолжаю тему о сборке проектов на Си и Си++, первая часть которой размещена здесь.
Рецепты сборки по правилам хорошего тона должны поставляться с проектом и очень желательно, чтобы они не были привязаны к конкретной ОС или хотя бы к конкретному дистрибутиву Linux, используя специфические команды вроде apt-get, yum, emerge. Если это небольшой пет-проект выходного дня, то, конечно, в качестве рецепта сгодится и bash-скрипт. Пользователи адаптируют. Но если к проекту подключаются другие разработчики, то лучше потратить время на автоматизацию сборки, чтобы не терять его оптом в будущем. В этой части речь пойдёт об инструментах, которые используются для автоматизации процесса сборки программного обеспечения.
https://habr.com/ru/companies/ruvds/articles/875620/
#cpp #programming
👉 @cpp_lib
Продолжаю тему о сборке проектов на Си и Си++, первая часть которой размещена здесь.
Рецепты сборки по правилам хорошего тона должны поставляться с проектом и очень желательно, чтобы они не были привязаны к конкретной ОС или хотя бы к конкретному дистрибутиву Linux, используя специфические команды вроде apt-get, yum, emerge. Если это небольшой пет-проект выходного дня, то, конечно, в качестве рецепта сгодится и bash-скрипт. Пользователи адаптируют. Но если к проекту подключаются другие разработчики, то лучше потратить время на автоматизацию сборки, чтобы не терять его оптом в будущем. В этой части речь пойдёт об инструментах, которые используются для автоматизации процесса сборки программного обеспечения.
https://habr.com/ru/companies/ruvds/articles/875620/
#cpp #programming
👉 @cpp_lib
Эльбрус стал намного ближе
Недавно МЦСТ опубликовала кросскомпилятор для «Эльбрус». Это большой шаг в развитии платформы. Теперь любой человек может собрать программу под е2к на своем домашнем компьютере.
В этой статье вас ждет инструкция по ручному развертыванию всего окружения для разработки под е2к, скрипт для автоматического развертывания, а также Docker-контейнер с готовым окружением. Благодаря контейнеру процесс развертывания упрощается до вызова одной команды, а также он позволяет работать даже на Windows.
Если вы хотели попробовать собрать свой код или какой-нибудь другой код под «Эльбрус», то сейчас самое время.
https://habr.com/ru/articles/898040/
#cpp #programming
👉 @cpp_lib
Недавно МЦСТ опубликовала кросскомпилятор для «Эльбрус». Это большой шаг в развитии платформы. Теперь любой человек может собрать программу под е2к на своем домашнем компьютере.
В этой статье вас ждет инструкция по ручному развертыванию всего окружения для разработки под е2к, скрипт для автоматического развертывания, а также Docker-контейнер с готовым окружением. Благодаря контейнеру процесс развертывания упрощается до вызова одной команды, а также он позволяет работать даже на Windows.
Если вы хотели попробовать собрать свой код или какой-нибудь другой код под «Эльбрус», то сейчас самое время.
https://habr.com/ru/articles/898040/
#cpp #programming
👉 @cpp_lib
📕Открытый урок об оцифровке сигналов в микроконтроллере ESP32 для радиолюбителей, разработчиков встраемого ПО, инженеров, разработчиков электроники и инженеров-схемотехников.
На открытом уроке 10 апреля в 20:00 мск мы погрузимся в процессы и тонкости оцифровки сигнало на пример микроконтроллера ESP32.
📗 В результате вы:
- Узнаете всё об особенностях и нюансах схемотехники при проектировании тракта АЦП;
- Поймете, как работать с АЦП на примере ESP32: от расчета погрешностей и калибровки до различных методов фильтрации сигналов;
- Научитесь на практике использовать все основные параметры АЦП и увидите их влияние вживую.
Спикер Марат Боранбаев — эксперт в сфере Fullstack Embedding, 10+ лет в разработке и преподавании, занимается разработкой для системы бортового радиотехнического комплекса космического аппарата на базе МК STM32.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cKBBx8
📙 Все участники открытого урока получат скидку на курс "Embedded Developer"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке 10 апреля в 20:00 мск мы погрузимся в процессы и тонкости оцифровки сигнало на пример микроконтроллера ESP32.
📗 В результате вы:
- Узнаете всё об особенностях и нюансах схемотехники при проектировании тракта АЦП;
- Поймете, как работать с АЦП на примере ESP32: от расчета погрешностей и калибровки до различных методов фильтрации сигналов;
- Научитесь на практике использовать все основные параметры АЦП и увидите их влияние вживую.
Спикер Марат Боранбаев — эксперт в сфере Fullstack Embedding, 10+ лет в разработке и преподавании, занимается разработкой для системы бортового радиотехнического комплекса космического аппарата на базе МК STM32.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cKBBx8
📙 Все участники открытого урока получат скидку на курс "Embedded Developer"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
📦 cpp-sort — это коллекция высокоэффективных алгоритмов сортировки, написанная на C++. Она предоставляет как классические алгоритмы (например, quicksort, mergesort), так и более современные, такие как ska_sort и spreadsort.
🔧 Основные особенности:
- Простое подключение
- Упор на производительность: множество алгоритмов оптимизированы под современные CPU
- Совместимость с
- Некоторые алгоритмы устойчивы (stable), другие — нет (для повышения скорости)
- Поддержка сортировки по ключу (projection)
💡 Если ты работаешь с C++ и тебе нужна кастомная или быстрая сортировка — обязательно стоит взглянуть. Особенно если
https://github.com/Morwenn/cpp-sort
#cpp #programming
👉 @cpp_lib
🔧 Основные особенности:
- Простое подключение
- Упор на производительность: множество алгоритмов оптимизированы под современные CPU
- Совместимость с
std::sort
и пользовательскими компараторами- Некоторые алгоритмы устойчивы (stable), другие — нет (для повышения скорости)
- Поддержка сортировки по ключу (projection)
💡 Если ты работаешь с C++ и тебе нужна кастомная или быстрая сортировка — обязательно стоит взглянуть. Особенно если
std::sort
не даёт нужного эффекта.https://github.com/Morwenn/cpp-sort
#cpp #programming
👉 @cpp_lib
👨💻 Учебный репозиторий по указателям в C:
Минималистичный и очень понятный туториал, охватывающий ключевые аспекты работы с указателями:
- базовая работа с указателями
- арифметика указателей
- работа с массивами через указатели
- передача аргументов по ссылке
- указатели на функции
- двойные указатели
Каждый пример — это отдельный
Отличный ресурс как для начинающих, так и для практикующих C-программистов.
https://github.com/jflaherty/ptrtut13/tree/master
#cpp #programming
👉 @cpp_lib
Минималистичный и очень понятный туториал, охватывающий ключевые аспекты работы с указателями:
- базовая работа с указателями
- арифметика указателей
- работа с массивами через указатели
- передача аргументов по ссылке
- указатели на функции
- двойные указатели
Каждый пример — это отдельный
.c
-файл с подробными комментариями. Можно компилировать и запускать по порядку, чтобы получить последовательное понимание темы.Отличный ресурс как для начинающих, так и для практикующих C-программистов.
https://github.com/jflaherty/ptrtut13/tree/master
#cpp #programming
👉 @cpp_lib
📈Плоские контейнеры и C++: как оптимизировать производительность и память
Пытаетесь сделать код быстрее и экономичнее? Время научиться использовать плоские контейнеры в C++! На открытом уроке 15 апреля в 20:00 мск мы разберемся, что такое плоские контейнеры!
Что вас ждет:
- Описание плоских контейнеров в C++: какие они бывают и чем отличаются от стандартных.
- Реальные примеры, когда и почему плоские контейнеры — это ваша идеальная пара для эффективной работы с данными.
- Практическая часть: сравнение с традиционными контейнерами и примеры применения на реальных задачах.
Кому будет полезно:
• Программистам C++, работающим с большими объемами данных.
• Разработчикам высокопроизводительных приложений и игр.
• Инженерам, которым нужно минимизировать использование памяти и повысить эффективность.
👉Регистрируйтесь прямо сейчас и получите скидку на большое обучение «C++ Developer. Professional»: https://vk.cc/cKG7if
Пытаетесь сделать код быстрее и экономичнее? Время научиться использовать плоские контейнеры в C++! На открытом уроке 15 апреля в 20:00 мск мы разберемся, что такое плоские контейнеры!
- Описание плоских контейнеров в C++: какие они бывают и чем отличаются от стандартных.
- Реальные примеры, когда и почему плоские контейнеры — это ваша идеальная пара для эффективной работы с данными.
- Практическая часть: сравнение с традиционными контейнерами и примеры применения на реальных задачах.
Кому будет полезно:
• Программистам C++, работающим с большими объемами данных.
• Разработчикам высокопроизводительных приложений и игр.
• Инженерам, которым нужно минимизировать использование памяти и повысить эффективность.
👉Регистрируйтесь прямо сейчас и получите скидку на большое обучение «C++ Developer. Professional»: https://vk.cc/cKG7if
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔹 C++26: ошибочное поведение (Erroneous Behaviour)
В C++ мы обычно говорим о двух категориях поведения:
– определённое поведение (well-defined)
– неопределённое поведение (undefined behaviour, UB)
Второе — одно из самых пугающих понятий в языке. Это когда программа делает что угодно, и компилятор не обязан предупреждать о проблеме. Примеры UB: выход за границы массива, разыменование нулевого указателя и т.д.
Однако в будущем стандарте C++26 вводится новая категория: ошибочное поведение (erroneous behaviour).
❓ Что такое erroneous behaviour?
Это ситуация, когда программа ведёт себя неправильно, но компилятор обязан выдать ошибку или хотя бы предупреждение. Это промежуточный уровень между "всё хорошо" и "всё ужасно и не предсказуемо".
Erroneous behaviour позволяет:
- Сохранить производительность (в отличие от полного исключения или runtime-проверок)
- Сделать поведение программы более предсказуемым
- Упростить диагностику проблем
📌 Пример
Допустим, в constexpr-функции вызывается функция, не являющаяся
Такой код сейчас может пройти компиляцию при определённых условиях, но в будущем — нет.
🧩 Отличие от UB и других видов поведения
- UB — компилятор может делать что угодно (не выдавать ошибку, не предупреждать, и т.д.)
- Implementation-defined — конкретная реализация (компилятор) должна задокументировать поведение
- Erroneous behaviour — компилятор обязан ругаться
🤔 Почему это важно?
Эта категория позволяет более чётко определять границы корректного кода и помогает разработчикам избегать трудноуловимых багов. Это шаг к более строгой и безопасной разработке на C++ без жёстких ограничений на производительность.
https://www.sandordargo.com/blog/2025/02/05/cpp26-erroneous-behaviour
#cpp #programming
👉 @cpp_lib
В C++ мы обычно говорим о двух категориях поведения:
– определённое поведение (well-defined)
– неопределённое поведение (undefined behaviour, UB)
Второе — одно из самых пугающих понятий в языке. Это когда программа делает что угодно, и компилятор не обязан предупреждать о проблеме. Примеры UB: выход за границы массива, разыменование нулевого указателя и т.д.
Однако в будущем стандарте C++26 вводится новая категория: ошибочное поведение (erroneous behaviour).
❓ Что такое erroneous behaviour?
Это ситуация, когда программа ведёт себя неправильно, но компилятор обязан выдать ошибку или хотя бы предупреждение. Это промежуточный уровень между "всё хорошо" и "всё ужасно и не предсказуемо".
Erroneous behaviour позволяет:
- Сохранить производительность (в отличие от полного исключения или runtime-проверок)
- Сделать поведение программы более предсказуемым
- Упростить диагностику проблем
📌 Пример
Допустим, в constexpr-функции вызывается функция, не являющаяся
constexpr
. Сейчас это UB, но в C++26 это будет квалифицироваться как erroneous behaviour, и компилятор обязан будет выдать ошибку на этапе компиляции.
constexpr int foo() {
return std::time(nullptr); // std::time не является constexpr
}
Такой код сейчас может пройти компиляцию при определённых условиях, но в будущем — нет.
🧩 Отличие от UB и других видов поведения
- UB — компилятор может делать что угодно (не выдавать ошибку, не предупреждать, и т.д.)
- Implementation-defined — конкретная реализация (компилятор) должна задокументировать поведение
- Erroneous behaviour — компилятор обязан ругаться
🤔 Почему это важно?
Эта категория позволяет более чётко определять границы корректного кода и помогает разработчикам избегать трудноуловимых багов. Это шаг к более строгой и безопасной разработке на C++ без жёстких ограничений на производительность.
https://www.sandordargo.com/blog/2025/02/05/cpp26-erroneous-behaviour
#cpp #programming
👉 @cpp_lib
🚀 Подпишись и прокачай свои скилы: лучшие каналы для IT-специалистов 👨💻📲
Папка с каналами для DevOps, Linux - Windows СисАдминов👍
Папка с каналами для 1С программистов🧑💻
Папка с каналами для C++ программистов👩💻
Папка с каналами для Python программистов👩💻
Папка с каналами для Java программистов🖥
Папка с книгами для программистов 📚
Папка для программистов (frontend, backend, iOS, Android)💻
GitHub Сообщество🧑💻
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base)🖥
https://t.me/database_info Все про базы данных
Разработка игр📱
https://t.me/game_devv Все о разработке игр
БигДата, машинное обучение🖥
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
QA, тестирование🖥
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность💻
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_2 Хакер Free
Книги, статьи для дизайнеров🎨
https://t.me/ux_web Статьи, книги для дизайнеров
Математика🧮
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак🙃
https://t.me/Excel_lifehack
Технологии🖥
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии💰
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
https://t.me/rabota1C_rus Вакансии для программистов 1С
Папка с каналами для DevOps, Linux - Windows СисАдминов
Папка с каналами для 1С программистов
Папка с каналами для C++ программистов
Папка с каналами для Python программистов
Папка с каналами для Java программистов
Папка с книгами для программистов 📚
Папка для программистов (frontend, backend, iOS, Android)
GitHub Сообщество
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base)
https://t.me/database_info Все про базы данных
Разработка игр
https://t.me/game_devv Все о разработке игр
БигДата, машинное обучение
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
QA, тестирование
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_2 Хакер Free
Книги, статьи для дизайнеров
https://t.me/ux_web Статьи, книги для дизайнеров
Математика
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак
https://t.me/Excel_lifehack
Технологии
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
https://t.me/rabota1C_rus Вакансии для программистов 1С
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Админ Devops
You’ve been invited to add the folder “Админ Devops”, which includes 18 chats.
Пишем сканер штрихкодов на c++
Штрихкод и с чем его едят на плюсах. Сегодня я покажу вам как я писал простейший сканер штрихкодов EAN-8 и EAN-13. Конечно, я мог бы взять готовые и более функциональные сканеры из интернета, НО зачем? Зачем, если можно сделать самому, если можно развить свои навыки и расширить портфолио? Вот и я так подумал...
Если вы заинтересовались - я сейчас вам раскачаю про код...
https://habr.com/ru/articles/891238/
#cpp #programming
👉 @cpp_lib
Штрихкод и с чем его едят на плюсах. Сегодня я покажу вам как я писал простейший сканер штрихкодов EAN-8 и EAN-13. Конечно, я мог бы взять готовые и более функциональные сканеры из интернета, НО зачем? Зачем, если можно сделать самому, если можно развить свои навыки и расширить портфолио? Вот и я так подумал...
Если вы заинтересовались - я сейчас вам раскачаю про код...
https://habr.com/ru/articles/891238/
#cpp #programming
👉 @cpp_lib
Делаем собственный анализатор C++ кода в виде плагина для Clang
Есть много проектов, целью которых является превратить С++ более "безопасный" язык программирования. Но внесение изменений в синтаксис языка обычно нарушает обратную совместимость со старым кодом, который был написан до этого.
Недавно вышла новая версия библиотеки memsafe для языка С++, которая превращает его в Rust с помощью плагина Clang добавляет в С++ безопасное управление динамической памятью и контроль инвалидации ссылочных типов данных во время компиляции приложения.
Но данная статья не о библиотеке, а об особенностях разработки анализатора программы на С++ в виде плагина для Clang.
Можно считать, что это подведение итогов по результатам сравнения нескольких разных способов создания плагина для компилятора С++, а так же очередной Хабрахак для хранения результатов экспериментов и публикации итоговых выводов, которые я решил сохранить не только для себя, но и в виде статьи на Хабре, что бы результатами моего труда могли воспользоваться и другие хорошие люди :-), которым так же может потребоваться погрузиться в дебри парсинга исходного текста программ.
https://habr.com/ru/articles/900224/
#cpp #programming
👉 @cpp_lib
Есть много проектов, целью которых является превратить С++ более "безопасный" язык программирования. Но внесение изменений в синтаксис языка обычно нарушает обратную совместимость со старым кодом, который был написан до этого.
Недавно вышла новая версия библиотеки memsafe для языка С++, которая превращает его в Rust с помощью плагина Clang добавляет в С++ безопасное управление динамической памятью и контроль инвалидации ссылочных типов данных во время компиляции приложения.
Но данная статья не о библиотеке, а об особенностях разработки анализатора программы на С++ в виде плагина для Clang.
Можно считать, что это подведение итогов по результатам сравнения нескольких разных способов создания плагина для компилятора С++, а так же очередной Хабрахак для хранения результатов экспериментов и публикации итоговых выводов, которые я решил сохранить не только для себя, но и в виде статьи на Хабре, что бы результатами моего труда могли воспользоваться и другие хорошие люди :-), которым так же может потребоваться погрузиться в дебри парсинга исходного текста программ.
https://habr.com/ru/articles/900224/
#cpp #programming
👉 @cpp_lib
Как создать собственное расширение компилятора C++
Создание пользовательского расширения компилятора C++ подразумевает понимание базовых механизмов работы компиляторов, изменение или расширение их функциональности и бесшовную интеграцию этих изменений в существующую инфраструктуру компилятора. Это руководство проведет вас через весь процесс, от понимания основ до внедрения и тестирования вашего пользовательского расширения. Целевая аудитория этого руководства — разработчики, которые уже знакомы с C++ и имеют базовое понимание концепций компилятора.
https://habr.com/ru/articles/870840/
original https://www.w3computing.com/articles/how-to-create-a-custom-cpp-compiler-extension/
#cpp #programming
👉 @cpp_lib
Создание пользовательского расширения компилятора C++ подразумевает понимание базовых механизмов работы компиляторов, изменение или расширение их функциональности и бесшовную интеграцию этих изменений в существующую инфраструктуру компилятора. Это руководство проведет вас через весь процесс, от понимания основ до внедрения и тестирования вашего пользовательского расширения. Целевая аудитория этого руководства — разработчики, которые уже знакомы с C++ и имеют базовое понимание концепций компилятора.
https://habr.com/ru/articles/870840/
original https://www.w3computing.com/articles/how-to-create-a-custom-cpp-compiler-extension/
#cpp #programming
👉 @cpp_lib
🌌 Путешествие в мир Авроры: создаём приложения с Qt/QML 🚀
Российская мобильная ОС Аврора — перспективная платформа для разработчиков. Хотите узнать, как создавать для неё нативные приложения с помощью Qt/QML? Разбираем всё на открытом вебинаре!
📅 22 апреля в 20:00
🎓 Открытый вебинар с Ксенией Лагутиной
💡 Что разберём?
✅ Почему ОС Аврора — интересная среда для разработки
✅ Как работает Аврора SDK и чем поможет разработчику
✅ С чего начать разработку нативных приложений
✅ Как создать мини-приложение на QML, которое отправляет уведомления в систему
🎯 Что получите?
✔️ Понимание ключевых особенностей ОС Аврора
✔️ Навыки работы с Аврора SDK и Аврора IDE
✔️ Практический опыт создания приложения на QML
Присоединяйтесь и погружайтесь в разработку под Аврору!
👉 Регистрируйтесь по ссылке: https://vk.cc/cKVg3i
Бесплатное занятие приурочено к старту курса Разработка прикладного ПО на Qt и ОС «Аврора», обучение на котором позволит освоить кросс-платформенный фреймворк Qt.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Российская мобильная ОС Аврора — перспективная платформа для разработчиков. Хотите узнать, как создавать для неё нативные приложения с помощью Qt/QML? Разбираем всё на открытом вебинаре!
📅 22 апреля в 20:00
🎓 Открытый вебинар с Ксенией Лагутиной
💡 Что разберём?
✅ Почему ОС Аврора — интересная среда для разработки
✅ Как работает Аврора SDK и чем поможет разработчику
✅ С чего начать разработку нативных приложений
✅ Как создать мини-приложение на QML, которое отправляет уведомления в систему
🎯 Что получите?
✔️ Понимание ключевых особенностей ОС Аврора
✔️ Навыки работы с Аврора SDK и Аврора IDE
✔️ Практический опыт создания приложения на QML
Присоединяйтесь и погружайтесь в разработку под Аврору!
👉 Регистрируйтесь по ссылке: https://vk.cc/cKVg3i
Бесплатное занятие приурочено к старту курса Разработка прикладного ПО на Qt и ОС «Аврора», обучение на котором позволит освоить кросс-платформенный фреймворк Qt.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Media is too big
VIEW IN TELEGRAM
Практика языка C (МФТИ, 2023-2024). Допсеминар: системы сборки (make, cmake).
00:00 Зависимости и хедера
08:22 Build.sh
11:48 Makefiles и декларативная модель
19:51 Ленивые и переменные
30:52 Автоматические переменные
36:15 Первая версия makefile
41:33 Функции и wildcards
47:40 Вторая версия makefile и зависимости от хедеров
56:36 Третья итерация: почти идеальный makefile
01:06:26 Знакомство с cmake
01:19:35 Бонус. Немного больше про cmake.
01:30:40 Окончательные уроки.
источник
#cpp #programming
👉 @cpp_lib
00:00 Зависимости и хедера
08:22 Build.sh
11:48 Makefiles и декларативная модель
19:51 Ленивые и переменные
30:52 Автоматические переменные
36:15 Первая версия makefile
41:33 Функции и wildcards
47:40 Вторая версия makefile и зависимости от хедеров
56:36 Третья итерация: почти идеальный makefile
01:06:26 Знакомство с cmake
01:19:35 Бонус. Немного больше про cmake.
01:30:40 Окончательные уроки.
источник
#cpp #programming
👉 @cpp_lib
📕Открытый урок об управлении микроклиматом с помощью микроконтроллеров для радиолюбителей, разработчиков встраемого ПО, инженеров, разработчиков электроники и инженеров-схемотехников.
На открытом уроке 21 апреля в 20:00 мск мы погрузимся в тонкости подключения и программировании системы управления микроклиматом с помощью микроконтроллеров.
📗В результате вы:
- Узнаете, как подключить к микроконтроллеру и запрограммировать датчики температуры, влажности и исполнительное устройство;
- Разберетесь, как сделать прототип системы, которая управляет микроклиматом сама;
- Освоите на практике техники управления макетом по WiFi с мобильного телефона или компьютера с помощью создания простого web-сайта.
Спикер Игорь Морозов — эксперт в сфере Embedded Development, 15+ лет в разработке и управлении IT-проектами, технический директор стартапа по созданию робототехнических устройств с элементами машинного зрения.
👉Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cKX0zr
📙Все участники открытого урока получат скидку на курс "Embedded Developer"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке 21 апреля в 20:00 мск мы погрузимся в тонкости подключения и программировании системы управления микроклиматом с помощью микроконтроллеров.
📗В результате вы:
- Узнаете, как подключить к микроконтроллеру и запрограммировать датчики температуры, влажности и исполнительное устройство;
- Разберетесь, как сделать прототип системы, которая управляет микроклиматом сама;
- Освоите на практике техники управления макетом по WiFi с мобильного телефона или компьютера с помощью создания простого web-сайта.
Спикер Игорь Морозов — эксперт в сфере Embedded Development, 15+ лет в разработке и управлении IT-проектами, технический директор стартапа по созданию робототехнических устройств с элементами машинного зрения.
👉Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cKX0zr
📙Все участники открытого урока получат скидку на курс "Embedded Developer"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Линус Торвальдс: Критика C++ — Комплексный анализ
Линус Торвальдс, создатель (и великодушный диктатор) Linux, всегда с особой критикой относился к C++, объясняя почему он отвергает его в разработке ядра Linux. Но он не просто резко высказывается против использования C++, а приводит ряд аргументов, которые мы с вами сегодня и рассмотрим.
В чем причина неприятия C++? Давайте рассмотрим аргументы, которые Линус приводит против его использования.
C и C++ очень похожи друг на друга, но все‑таки это не одно и то же. C++ является объектно‑ориентированной версией C. Некоторые даже называют его преемником C. Однако C++ представляет из себя скорее расширение языка C, нежели его полноценную замену. Он добавляет такие функции, как объекты, конструкторы, деструкторы, шаблоны, обработка исключений, пространства имен и перегрузка операторов. Эти расширения приносят с собой свои собственные парадигмы и проблемы. Неудивительно, что все технические аргументы Линуса против C++ связаны именно с этими расширениями.
https://habr.com/ru/companies/otus/articles/902724/
original https://medium.com/@jankammerath/linus-torvalds-critique-of-c-a-comprehensive-review-ea8374084abf
#cpp #programming
👉 @cpp_lib
Линус Торвальдс, создатель (и великодушный диктатор) Linux, всегда с особой критикой относился к C++, объясняя почему он отвергает его в разработке ядра Linux. Но он не просто резко высказывается против использования C++, а приводит ряд аргументов, которые мы с вами сегодня и рассмотрим.
В чем причина неприятия C++? Давайте рассмотрим аргументы, которые Линус приводит против его использования.
C и C++ очень похожи друг на друга, но все‑таки это не одно и то же. C++ является объектно‑ориентированной версией C. Некоторые даже называют его преемником C. Однако C++ представляет из себя скорее расширение языка C, нежели его полноценную замену. Он добавляет такие функции, как объекты, конструкторы, деструкторы, шаблоны, обработка исключений, пространства имен и перегрузка операторов. Эти расширения приносят с собой свои собственные парадигмы и проблемы. Неудивительно, что все технические аргументы Линуса против C++ связаны именно с этими расширениями.
https://habr.com/ru/companies/otus/articles/902724/
original https://medium.com/@jankammerath/linus-torvalds-critique-of-c-a-comprehensive-review-ea8374084abf
#cpp #programming
👉 @cpp_lib
🚀 CUTE_HEADERS - Коллекция кроссплатформенных однофайловых библиотек на C/C++ без зависимостей, в основном используемых для разработки игр.
🔹 Математика (векторы, матрицы)
🔹 Системы частиц
🔹 Аудио и таймеры
🔹 Работа с файлами
🔹 Простая физика и коллизии
🔹 Анимация и графика
🔹 И многое другое!
Все библиотеки — в одном .h файле, без зависимостей. Отлично подходят для маленьких проектов, прототипов и учебных задач.
https://github.com/RandyGaul/cute_headers
#cpp #programming
👉 @cpp_lib
🔹 Математика (векторы, матрицы)
🔹 Системы частиц
🔹 Аудио и таймеры
🔹 Работа с файлами
🔹 Простая физика и коллизии
🔹 Анимация и графика
🔹 И многое другое!
Все библиотеки — в одном .h файле, без зависимостей. Отлично подходят для маленьких проектов, прототипов и учебных задач.
https://github.com/RandyGaul/cute_headers
#cpp #programming
👉 @cpp_lib
⚙️Уже работаете с Rust, но хотите эффективно интегрировать его с другими языками? Или интересуетесь, как устроен процесс сборки и линковки в этом языке?
🗓 На открытом вебинаре 24 апреля в 20:00 мск мы подробно разберем, как собирать и линковать библиотеки в Rust, как использовать Rust-библиотеки в других языках, а также реализуем Си ABI (Application Binary Interface). Вы получите знания, которые помогут вам повысить производительность ваших проектов и интегрировать Rust в существующие решения.
👨💻 Урок будет полезен всем, кто хочет углубить свои знания в Rust, повысить квалификацию и навыки работы с библиотеками и системами. Вы сможете применять полученные знания в реальных проектах.
👉 Присоединяйтесь к открытому вебинару и получите скидку на большое обучение «Rust Developer. Professional»: https://vk.cc/cL2YJr
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Три теоремы о сортировках
Я знаю многих программистов и руководителей в IT компаниях, которые недолюбливают математиков и в частности считают их далёкими от жизни идиотами из-за их утверждений в духе "нельзя отсортировать последовательность быстрее, чем за nlogn" -- ведь это очевидным образом неверно, есть же сортировка подсчетом и radix sort. Нюанс в том, что описанное выше -- это распространённая некорректная трактовка одной из ключевых теорем об алгоритмах сортировок, корректное утверждение выглядит так: "не существует алгоритма, который бы гарантированно находил перестановку n элементов, приводящую к возрастающему порядку, быстрее чем за nlogn используя только операции попарного сравнения". В этом утверждении больше слов, оно более сложно в плане когнитивного восприятия, ключевой момент обозначил жирным шрифтом, чувствуете разницу?
https://habr.com/ru/articles/893452/
#cpp #programming
👉 @cpp_lib
Я знаю многих программистов и руководителей в IT компаниях, которые недолюбливают математиков и в частности считают их далёкими от жизни идиотами из-за их утверждений в духе "нельзя отсортировать последовательность быстрее, чем за nlogn" -- ведь это очевидным образом неверно, есть же сортировка подсчетом и radix sort. Нюанс в том, что описанное выше -- это распространённая некорректная трактовка одной из ключевых теорем об алгоритмах сортировок, корректное утверждение выглядит так: "не существует алгоритма, который бы гарантированно находил перестановку n элементов, приводящую к возрастающему порядку, быстрее чем за nlogn используя только операции попарного сравнения". В этом утверждении больше слов, оно более сложно в плане когнитивного восприятия, ключевой момент обозначил жирным шрифтом, чувствуете разницу?
https://habr.com/ru/articles/893452/
#cpp #programming
👉 @cpp_lib
🔥 Готовы прокачать свои навыки на C++ до уровня эксперта? Освойте разработку на Qt и создавайте приложения для ОС «Аврора», используя лучшие практики и мощные инструменты! 🚀
Курс "Разработка прикладного ПО на Qt и ОС «Аврора»" — возможность для разработчиков на C++, которые хотят:
- изучить работу с кросс-платформенным фреймворком Qt.
- создавать высококачественные графические интерфейсы.
- развиваться в нише ОС «Аврора», которая только набирает популярность.
💥 до 27 апреля не упустите шанс получить скидку 15%! Только для вас скидка 10% + промокод QT_Avrora5 на дополнительные 5%!
Пройдите вступительное тестирование и успейте вступить в группу курса!
👉Пройти тест: https://vk.cc/cL4RhV
Курс "Разработка прикладного ПО на Qt и ОС «Аврора»" — возможность для разработчиков на C++, которые хотят:
- изучить работу с кросс-платформенным фреймворком Qt.
- создавать высококачественные графические интерфейсы.
- развиваться в нише ОС «Аврора», которая только набирает популярность.
💥 до 27 апреля не упустите шанс получить скидку 15%! Только для вас скидка 10% + промокод QT_Avrora5 на дополнительные 5%!
Пройдите вступительное тестирование и успейте вступить в группу курса!
👉Пройти тест: https://vk.cc/cL4RhV
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru