❓Хотите стать C#-разработчиком, но боитесь, что будет сложно?
Подготовьтесь заранее и освойте Git — ключевой инструмент командной разработки!
На открытом вебинаре 31 марта в 20:00 мск разберем:
◽️ Систему контроля версий
◽️ Основные команды
◽️ Принципы работы с репозиториями
◽️ Эти знания помогут вам уверенно работать в команде и подготовиться к следующему этапу.
С Git вы сможете эффективно управлять кодом, вести проекты и двигаться к позиции Junior и Middle.
🔗 Регистрируйтесь на вебинар и 🎁 получите скидку на большое обучение «C# Developer»: https://vk.cc/cKgE7g
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Подготовьтесь заранее и освойте Git — ключевой инструмент командной разработки!
На открытом вебинаре 31 марта в 20:00 мск разберем:
◽️ Систему контроля версий
◽️ Основные команды
◽️ Принципы работы с репозиториями
◽️ Эти знания помогут вам уверенно работать в команде и подготовиться к следующему этапу.
С Git вы сможете эффективно управлять кодом, вести проекты и двигаться к позиции Junior и Middle.
🔗 Регистрируйтесь на вебинар и 🎁 получите скидку на большое обучение «C# Developer»: https://vk.cc/cKgE7g
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🧵 STL Renderer — это простой рендерер STL-файлов, написанный с использованием C++, OpenGL и Dear ImGui.
🔹 Функции:
- Загрузка и визуализация STL-файлов (как ASCII, так и бинарных)
- Управление камерой: вращение, масштабирование, перемещение
- Интеграция с Dear ImGui для графического интерфейса
📦 Сборка:
Проект использует CMake и требует следующих зависимостей:
- OpenGL
- GLFW
- GLAD
- Dear ImGui
🚀 Отличный старт для тех, кто хочет разобраться, как визуализировать 3D-модели в формате STL с помощью OpenGL и создать минимальный интерфейс управления сценой.
https://github.com/SynrgStudio/STL-Renderer
#cpp #programming
👉 @cpp_lib
🔹 Функции:
- Загрузка и визуализация STL-файлов (как ASCII, так и бинарных)
- Управление камерой: вращение, масштабирование, перемещение
- Интеграция с Dear ImGui для графического интерфейса
📦 Сборка:
Проект использует CMake и требует следующих зависимостей:
- OpenGL
- GLFW
- GLAD
- Dear ImGui
🚀 Отличный старт для тех, кто хочет разобраться, как визуализировать 3D-модели в формате STL с помощью OpenGL и создать минимальный интерфейс управления сценой.
https://github.com/SynrgStudio/STL-Renderer
#cpp #programming
👉 @cpp_lib
Сортировка слиянием на CUDA
Я решил изучить, как повысится производительность алгоритмов сортировки при их реализации на CUDA. Моя цель — понять, как можно использовать мощь параллельных вычислений для ускорения алгоритмов сортировки.
В качестве тестового я возьму алгоритм сортировки слиянием (merge sort), потому что он удобно разбивает задачу на меньшие подзадачи с двумя равными половинами, что хорошо подходит для параллельных вычислений.
https://ashwanirathee.com/blog/2025/sort2/
#cpp #programming
👉 @cpp_lib
Я решил изучить, как повысится производительность алгоритмов сортировки при их реализации на CUDA. Моя цель — понять, как можно использовать мощь параллельных вычислений для ускорения алгоритмов сортировки.
В качестве тестового я возьму алгоритм сортировки слиянием (merge sort), потому что он удобно разбивает задачу на меньшие подзадачи с двумя равными половинами, что хорошо подходит для параллельных вычислений.
https://ashwanirathee.com/blog/2025/sort2/
#cpp #programming
👉 @cpp_lib
Магия ИИ в разработке приложений на Qt – попробуйте сами!
ИИ – это не просто тренд, а мощный инструмент, который может упростить разработку, автоматизировать рутину и даже помогать создавать ассеты для приложений. Хотите узнать, как это работает на Qt?
📅 3 апреля в 20:00 (мск) приглашаем на открытый вебинар, на котором разберёмся, как LLM-модели могут:
✅ Упрощать работу с Qt, автоматизируя рутинные задачи
✅ Помогать писать тесты при помощи QtTest
✅ Создавать ассеты и взаимодействовать с кодом
🚀 Что получите?
✔️ Инструменты для работы с ИИ в Qt
✔️ Практический опыт использования LLM в разработке
✔️ Видение того, где и как ИИ может вам помочь
Присоединяйтесь и попробуйте магию ИИ в деле! 🧑💻🔥
👉 Регистрируйтесь по ссылке: https://vk.cc/cKhmuP
Бесплатное занятие приурочено к старту курса Разработка прикладного ПО на Qt и ОС «Аврора», обучение на котором позволит освоить кросс-платформенный фреймворк Qt.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
ИИ – это не просто тренд, а мощный инструмент, который может упростить разработку, автоматизировать рутину и даже помогать создавать ассеты для приложений. Хотите узнать, как это работает на Qt?
📅 3 апреля в 20:00 (мск) приглашаем на открытый вебинар, на котором разберёмся, как LLM-модели могут:
✅ Упрощать работу с Qt, автоматизируя рутинные задачи
✅ Помогать писать тесты при помощи QtTest
✅ Создавать ассеты и взаимодействовать с кодом
🚀 Что получите?
✔️ Инструменты для работы с ИИ в Qt
✔️ Практический опыт использования LLM в разработке
✔️ Видение того, где и как ИИ может вам помочь
Присоединяйтесь и попробуйте магию ИИ в деле! 🧑💻🔥
👉 Регистрируйтесь по ссылке: https://vk.cc/cKhmuP
Бесплатное занятие приурочено к старту курса Разработка прикладного ПО на Qt и ОС «Аврора», обучение на котором позволит освоить кросс-платформенный фреймворк Qt.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Безопасная работа с массивами? Нет, не слышали
Рано или поздно любому разработчику на С-подобном языке приходит в голову идея использовать двумерный массив как одномерный. Причины для этого всегда разные, а вот результат чаще всего один. В этой небольшой заметке разберём эту сомнительную технику и какие проблемы она может привнести в вашу программу.
https://habr.com/ru/companies/pvs-studio/articles/895208/
#cpp #programming
👉 @cpp_lib
Рано или поздно любому разработчику на С-подобном языке приходит в голову идея использовать двумерный массив как одномерный. Причины для этого всегда разные, а вот результат чаще всего один. В этой небольшой заметке разберём эту сомнительную технику и какие проблемы она может привнести в вашу программу.
https://habr.com/ru/companies/pvs-studio/articles/895208/
#cpp #programming
👉 @cpp_lib
Подборка Telegram каналов для программистов
https://t.me/bash_srv Bash Советы
https://t.me/win_sysadmin Системный Администратор Windows
https://t.me/lifeproger Жизнь программиста. Авторский канал.
https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.me/rabota1C_rus Вакансии для программистов 1С
Системное администрирование 📌
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин
https://t.me/linux_odmin Linux: Системный администратор
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.me/DevLab1C 1С:Предприятие 8
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
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/bash_srv Bash Советы
https://t.me/win_sysadmin Системный Администратор Windows
https://t.me/lifeproger Жизнь программиста. Авторский канал.
https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.me/rabota1C_rus Вакансии для программистов 1С
Системное администрирование 📌
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин
https://t.me/linux_odmin Linux: Системный администратор
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.me/DevLab1C 1С:Предприятие 8
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
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
Telegram
Bash Советы
🚀 Секреты и советы по Bash
🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале.
🔹 Автоматизация, скрипты и оптимизация работы в Linux.
🔹 Стать мастером Bash легко – просто подпишись!
💻 Прокачивай терминал вместе с нами! 👇
🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале.
🔹 Автоматизация, скрипты и оптимизация работы в Linux.
🔹 Стать мастером Bash легко – просто подпишись!
💻 Прокачивай терминал вместе с нами! 👇
Почему игродев остается на С++17
Последние пару-тройку лет на конференциях все чаще я слышу жалобы знакомых в игрострое о том, что текущий вектор развития "современного C++" не соответствует потребностям игровой разработки. Реальные полезные нововведения фактически закончились с выходом C++17, а попытки внедрить C++20 часто заканчиваются обнаружением множества "гейзенбагов" и существенным снижением производительности - критичные для нас на 10-15% от сборки к сборке. Пошатавшись по разным игровым студиям, блин, скоро будет 15 лет как я тут, у меня таки немножечко есть, что вам рассказать.
Все современные студии, что крупнее двух с половиной землекопов, пишущие игры на плюсах, шарпе или чем-то близком - используют Visual Studio или переходят со своих поделок на Unreal/Unity, который так-то тоже плюсы, хоть и со странностями. Так исторически сложилось, что винда и майки были, есть и в ближайшем будущем горизонта лет десяти останутся самым крупным рынком ПК-консольных игр, а сами консоли давно стали "ну совсем ПК", но чтобы не терять эксклюзивы (и шекели) вендоры в этом не признаются никогда.
Мобилки, как-бы отдельно, и там свои свои покемоны Mac с Android, но в Visual Studio в том или ином виде создаются, дебажатся и оптимайзятся 95% игр, остальное - погрешность. С момента начала золотой эры игростроя (где-то в конце 90-х), большинство игр писались с учетом того, что они будут выпущены на ПК, под ПК понимается - под винду. И наследие многих A+-студий так или иначе связано с Microsoft, даже для не-Microsoft консолей и мобилок.
https://habr.com/ru/articles/894736/
#cpp #programming
👉 @cpp_lib
Последние пару-тройку лет на конференциях все чаще я слышу жалобы знакомых в игрострое о том, что текущий вектор развития "современного C++" не соответствует потребностям игровой разработки. Реальные полезные нововведения фактически закончились с выходом C++17, а попытки внедрить C++20 часто заканчиваются обнаружением множества "гейзенбагов" и существенным снижением производительности - критичные для нас на 10-15% от сборки к сборке. Пошатавшись по разным игровым студиям, блин, скоро будет 15 лет как я тут, у меня таки немножечко есть, что вам рассказать.
Все современные студии, что крупнее двух с половиной землекопов, пишущие игры на плюсах, шарпе или чем-то близком - используют Visual Studio или переходят со своих поделок на Unreal/Unity, который так-то тоже плюсы, хоть и со странностями. Так исторически сложилось, что винда и майки были, есть и в ближайшем будущем горизонта лет десяти останутся самым крупным рынком ПК-консольных игр, а сами консоли давно стали "ну совсем ПК", но чтобы не терять эксклюзивы (и шекели) вендоры в этом не признаются никогда.
Мобилки, как-бы отдельно, и там свои свои покемоны Mac с Android, но в Visual Studio в том или ином виде создаются, дебажатся и оптимайзятся 95% игр, остальное - погрешность. С момента начала золотой эры игростроя (где-то в конце 90-х), большинство игр писались с учетом того, что они будут выпущены на ПК, под ПК понимается - под винду. И наследие многих A+-студий так или иначе связано с Microsoft, даже для не-Microsoft консолей и мобилок.
https://habr.com/ru/articles/894736/
#cpp #programming
👉 @cpp_lib
В C++23
https://en.cppreference.com/w/cpp/utility/basic_stacktrace
#cpp #programming
👉 @cpp_lib
std::stacktrace
упрощает вывод стека вызовов, избавляя от необходимости использовать платформозависимые API и снижая дублирование работы между различными платформами.https://en.cppreference.com/w/cpp/utility/basic_stacktrace
#cpp #programming
👉 @cpp_lib
📕Открытый урок о работе со звуком в микроконтроллерах для разработчиков, инженеров, любителей электроники, радиолюбителей и инженеров-схемотехников.
На открытом уроке 2 апреля в 20:00 мск мы погрузимся в работу со звуковой магией микроконтроллеров.
📗 В результате вы:
- Узнаете всё об основных правилах оцифровки сигналов, ЦАП и усилителе класса D;
- Поймете, как работают микроконтроллеры на примере ESP32: от интерфейса I2S до временных диаграмм и их применения;
- Научитесь на практике обработке звука, цифровой фильтрации, записи AAC или MP3 из памяти микроконтроллера и созданию простого mp3-плеера из ESP32 и sd-карточки.
Спикер Игорь Морозов — эксперт в сфере Embedded Development, 15+ лет в разработке и управлении IT-проектами, технический директор стартапа по созданию робототехнических устройств с элементами машинного зрения.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cKoeK2
📙 Все участники открытого урока получат скидку на курс "Embedded Developer"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке 2 апреля в 20:00 мск мы погрузимся в работу со звуковой магией микроконтроллеров.
📗 В результате вы:
- Узнаете всё об основных правилах оцифровки сигналов, ЦАП и усилителе класса D;
- Поймете, как работают микроконтроллеры на примере ESP32: от интерфейса I2S до временных диаграмм и их применения;
- Научитесь на практике обработке звука, цифровой фильтрации, записи AAC или MP3 из памяти микроконтроллера и созданию простого mp3-плеера из ESP32 и sd-карточки.
Спикер Игорь Морозов — эксперт в сфере Embedded Development, 15+ лет в разработке и управлении IT-проектами, технический директор стартапа по созданию робототехнических устройств с элементами машинного зрения.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cKoeK2
📙 Все участники открытого урока получат скидку на курс "Embedded Developer"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Media is too big
VIEW IN TELEGRAM
Как работает профилирование
Виктор Шампаров
Профилировщики — важная часть тулинга, которая помогает программистам или компиляторам делать код быстрее.
Известны два подхода к профилированию: инструментирование и сэмплирование. В докладе кратко рассмотрели инструментирование на примере PGO, а на примере perf и иных подобных профилировщиков — сэмплирование. Также обсудили аппаратную поддержку профилирования в некоторых процессорах.
источник
#cpp #programming
👉 @cpp_lib
Виктор Шампаров
Профилировщики — важная часть тулинга, которая помогает программистам или компиляторам делать код быстрее.
Известны два подхода к профилированию: инструментирование и сэмплирование. В докладе кратко рассмотрели инструментирование на примере PGO, а на примере perf и иных подобных профилировщиков — сэмплирование. Также обсудили аппаратную поддержку профилирования в некоторых процессорах.
источник
#cpp #programming
👉 @cpp_lib
Можно ли навсегда избавиться от утечек памяти из-за циклических ссылок?
В комментариях к статье в очередной раз услышал мнение, что поскольку невозможно в принципе гарантировать отсутствие циклических ссылок при статическом анализе кода, то в языке Rust утечки памяти из-за циклических ссылок считаются безопасными, так это не влияет на безопасное управление памятью.
При работе с памятью существует много типов ошибок, но единственные ошибки, которые до сих пор не имеют нормального способа решения, это утечки памяти из-за циклических ссылок, когда два или более объектов напрямую или косвенно ссылаются друг на друга, в результате чего доступная приложению оперативная память постепенно уменьшается, так как ее невозможно освободить автоматически.
Утечки памяти из-за циклических ссылок являются наиболее сложными для анализа. В то время как для всех остальных типов ошибок при работе с памятью уже найдены и используются различные решения, например на уровне языка программирования, с помощью сборщиков мусора, проверки заимствований или шаблонов библиотек, то проблема утечек памяти из-за циклических ссылок остается нерешенной и по сей день.
Но мне кажется, что есть очень простой способ устранить циклические ссылки в программе, который можно реализовать практически в любом типизированном языке программирования, конечно, если при этом не использовать все разрешающее ключевое слово unsafe для Rust или оператор reinterpret_cast в случае С++.
https://habr.com/ru/users/rsashka/articles/
#cpp #programming
👉 @cpp_lib
В комментариях к статье в очередной раз услышал мнение, что поскольку невозможно в принципе гарантировать отсутствие циклических ссылок при статическом анализе кода, то в языке Rust утечки памяти из-за циклических ссылок считаются безопасными, так это не влияет на безопасное управление памятью.
При работе с памятью существует много типов ошибок, но единственные ошибки, которые до сих пор не имеют нормального способа решения, это утечки памяти из-за циклических ссылок, когда два или более объектов напрямую или косвенно ссылаются друг на друга, в результате чего доступная приложению оперативная память постепенно уменьшается, так как ее невозможно освободить автоматически.
Утечки памяти из-за циклических ссылок являются наиболее сложными для анализа. В то время как для всех остальных типов ошибок при работе с памятью уже найдены и используются различные решения, например на уровне языка программирования, с помощью сборщиков мусора, проверки заимствований или шаблонов библиотек, то проблема утечек памяти из-за циклических ссылок остается нерешенной и по сей день.
Но мне кажется, что есть очень простой способ устранить циклические ссылки в программе, который можно реализовать практически в любом типизированном языке программирования, конечно, если при этом не использовать все разрешающее ключевое слово unsafe для Rust или оператор reinterpret_cast в случае С++.
https://habr.com/ru/users/rsashka/articles/
#cpp #programming
👉 @cpp_lib
❓ Знали, что разработчики на С++ тоже могут эффективно автоматизировать инфраструктуру с помощью Terraform и GitLab?
⏰ 3 апреля в 20:00 мск на открытом уроке Вячеслав Федосеев объяснит, как разработчикам на С++ настроить CI/CD-пайплайны, управлять конфигурациями и легко разграничивать окружения.
Вячеслав — эксперт в IT с 2006 года, прошёл путь от первых Linux-серверов до масштабных DevOps-решений. Автор и ментор курсов по CI/CD и DevOps-практикам.
Если вы С++ разработчик, хотите упростить инфраструктуру ваших проектов и ускорить процессы — урок точно для вас. Освойте актуальные практики IaC и получите навыки, которые повысят вашу востребованность.
🎁 Участникам вебинара дарим скидку на полный курс по CI/CD на основе GitLab.
👉 Для участия зарегистрируйтесь
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
⏰ 3 апреля в 20:00 мск на открытом уроке Вячеслав Федосеев объяснит, как разработчикам на С++ настроить CI/CD-пайплайны, управлять конфигурациями и легко разграничивать окружения.
Вячеслав — эксперт в IT с 2006 года, прошёл путь от первых Linux-серверов до масштабных DevOps-решений. Автор и ментор курсов по CI/CD и DevOps-практикам.
Если вы С++ разработчик, хотите упростить инфраструктуру ваших проектов и ускорить процессы — урок точно для вас. Освойте актуальные практики IaC и получите навыки, которые повысят вашу востребованность.
🎁 Участникам вебинара дарим скидку на полный курс по CI/CD на основе GitLab.
👉 Для участия зарегистрируйтесь
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Сборка проектов Си и Си++: от простого к сложному. Часть 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