cpluspluc | Unsorted

Telegram-канал cpluspluc - C++ Academy

16151

По всем вопросам- @haarrp @itchannels_telegram - 🔥 best it channels РКН: clck.ru/3FmxJF

Subscribe to a channel

C++ Academy

🧩 Компактная библиотека для сопоставления шаблонов в C++

Patternia — это заголовочная библиотека для C++, обеспечивающая сопоставление шаблонов на этапе компиляции с использованием возможностей C++20/23. Она предлагает богатый набор встроенных паттернов и удобный DSL для создания читаемых выражений сопоставления.

🚀Основные моменты:
- Заголовочная библиотека без зависимостей
- Поддержка компиляции на этапе времени
- Удобные паттерны для значений и отношений
- Читаемый синтаксис с автоматическим разрешением перегрузок

📌 GitHub: https://github.com/sentomk/patternia

#cpp

Читать полностью…

C++ Academy

🚀 BlazingMQ — очередь сообщений от Bloomberg с упором на скорость

BlazingMQ — это open-source система для обмена сообщениями, которую Bloomberg использует в продакшене уже больше 8 лет. Она справляется с миллиардами сообщений в день и при этом держит низкую задержку.

⚡ Что умеет:
- Скорость — сотни тысяч сообщений в секунду с задержкой всего ~1–2 мс.
- Надёжность — хранение и репликация данных, защита от «битых» сообщений.
- Гибкость — поддержка разных сценариев: очереди задач, приоритеты, fan-out, broadcast.
- Эффективность — multi-hop архитектура снижает нагрузку на сеть при массовой рассылке.
- Технологии под капотом — написана на C++ с нуля, использует Raft для репликации и оптимизирована под высокую производительность.

🛠 Есть SDK для C++, Java и Python.

👉 Для чего подходит: системы реального времени, финтех, распределённые сервисы с высокими требованиями к скорости и отказоустойчивости.

🔗 Репозиторий: https://github.com/bloomberg/blazingmq

#BlazingMQ #Messaging #Bloomberg #DistributedSystems

Читать полностью…

C++ Academy

Хотите освоить высокоскоростной обмен данными в Embedded-разработке? Присоединяйтесь к бесплатному вебинару от OTUS: “Тайный язык общения чипов. Подключаем всё к ESP32”

📅 Когда: 8 октября, 20:00 мск

О чём вебинар?

Погрузитесь в мир протокола SPI и научитесь использовать его для молниеносной передачи данных с микроконтроллером ESP32. Разберём, как работает самый быстрый интерфейс, как программировать SPI-контроллеры и как собрать «квази-компьютер» с SD-картой и LCD-дисплеем, не теряя в производительности.

Что вы узнаете:

- Как работает протокол SPI и где он применяется.
- Программирование встроенных SPI-контроллеров ESP32.
- Использование драйверов RTOS для высокой производительности.
- Практический пример: сборка устройства с диском и экраном.

🔧 Присоединяйтесь, чтобы раскрыть секреты SPI и вывести свои Embedded-проекты на новый уровень!

👉 Зарегистрироваться https://otus.pw/EIRG/?erid=2W5zFH4Yi6L

Вебинар приурочен к курсу Embedded Developer, где вы освоите разработку устройств на ESP32 — от программирования до проектирования PCB.

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

C++ Academy

🚀 Предложения по C++ 📜

Репозиторий содержит предложения и идеи для улучшения языка C++. Здесь собраны различные концепции, которые могут быть рассмотрены для будущих версий C++. Отличная площадка для обсуждения и обмена мнениями среди разработчиков.

🚀 Основные моменты:
- Сборник предложений по C++
- Обсуждение новых идей и улучшений
- Вклад сообщества в развитие языка
- Поддержка различных концепций

📌 GitHub: https://github.com/ZXShady/proposals

#cpp

Читать полностью…

C++ Academy

🎮 Command & Conquer Red Alert Source Code

Репозиторий содержит исходный код для классической игры Command & Conquer Red Alert. Он поддерживает интеграцию с Steam Workshop и предназначен для сохранения кода, хотя требует доработки для компиляции.

🚀Основные моменты:
- Исходный код для C&C Red Alert
- Поддержка Steam Workshop
- Требуется восстановление для компиляции
- Лицензия GPL v3
- Архивный статус без поддержки

📌 GitHub: https://github.com/electronicarts/CnC_Red_Alert

#c

Читать полностью…

C++ Academy

🖥 StructToTuple — библиотека C++ 20 для преобразования структур в кортежи и наоборот!

🔐 Лицензия: MIT

🖥 Github

@cpluspluc

Читать полностью…

C++ Academy

🔥 Полезный репозиторий, который представляет собой коллекцию популярных заблуждений, ложных утверждений и неправильных представлений о технологиях, которые часто встречаются в программировании и в области разработки программного обеспечения!

🔐 Лицензия: CC0-1.0

🔗 Ссылка: *клик*

@cpluspluc

Читать полностью…

C++ Academy

🚀 Web-сервер на микроконтроллере через SWD

Проект позволяет запускать веб-сервер на микроконтроллере, используя semihosting и TCP/IP. Он демонстрирует, как передавать данные через SWD, используя SLIP для сетевого взаимодействия, что делает его интересным решением для встраиваемых систем.

🚀Основные моменты:
- Запуск веб-сервера на ARM микроконтроллере через SWD.
- Использование SLIP для передачи данных по TCP/IP.
- Оптимизация производительности с минимальными затратами памяти.
- Поддержка различных ARM микроконтроллеров с pyOCD.

📌 GitHub: https://github.com/BogdanTheGeek/semihost-ip

#c

@cpluspluc

Читать полностью…

C++ Academy

Новый уровень хардкорных самоделок: энтузиаст запустил веб-сервер на… одноразовом вейпе.

Внутри устройства оказался микроконтроллер PUYA Cortex-M0+ с 24 КБ флеша и 3 КБ RAM. Автор подключил SLIP через semihosting, прикрутил uIP-стек и поднял минимальный HTTP-сервер.

Первые тесты выглядели как издевательство: пинг 1.5 секунды, страницы загружались по 20 секунд. Но после оптимизаций результаты впечатлили: около 20 мс на пинг и загрузка страницы за 160 мс.

Памяти хватает, чтобы держать небольшой блог и даже JSON-эндпоинт для статистики.

Получается, что одноразовый вейп может быть не только вредной привычкой, но и хостинг-решением — пусть и на 95% более «безопасным».

🟠 Проект

@cpluspluc

Читать полностью…

C++ Academy

⚠️ Сегодня — День программиста! 🎉

Этот праздник отмечается в России в 256-й день года.
Почему именно 256?
- Это число равно 2⁸ — количеству уникальных значений, которые можно закодировать в одном байте.
- Это наибольшая степень двойки, которая не превышает количество дней в году (365 или 366).

❤️ Поздравляем всех программистов! Пусть код всегда компилируется, баги обходят стороной, а проекты приносят радость.

@cpluspluc

Читать полностью…

C++ Academy

🤖 Легковесный AI-агент на C для командной строки

Agent-C — это ультралегкий AI-агент, который взаимодействует с OpenRouter API и выполняет команды оболочки. Он оптимизирован для работы на macOS и Linux, обеспечивая минимальный размер бинарников и эффективное управление памятью.

🚀Основные моменты:
- Выполнение команд оболочки через AI-ответы
- Минимальный размер: 4.4KB для macOS, ~16KB для Linux
- Эффективное управление памятью с помощью скользящего окна
- Кроссплатформенная поддержка

📌 GitHub: https://github.com/bravenewxyz/agent-c

#c

Читать полностью…

C++ Academy

🧠 Инструмент визуализации памяти для C++

MV — это инструмент для реального времени, который помогает понять управление памятью в C++. Он визуализирует стек и кучу, что делает его идеальным для изучения таких концепций, как указатели, утечки памяти и управление кучей.

🚀 Основные моменты:
- Визуализация работы указателей и ссылок
- Понимание различий между стеком и кучей
- Выявление и анализ утечек памяти
- Поддержка базовых концепций C++

📌 GitHub: https://github.com/humblepenguinn/mv

@cpluspluc

Читать полностью…

C++ Academy

🧠 C++ хитрая и интересная задача (lock-free)

Задача: реализуй однопоточный производитель / однопоточный потребитель (SPSC) кольцевой буфер без мьютексов — только на std::atomic и правильных порядках памяти.

Требования:
- push(const T&) и pop(T&)O(1), без блокировок; возвращают false, если буфер полон/пуст.
- Ёмкость — степень двойки; индексация — маской.
- Гарантируется ровно один поток-производитель и ровно один поток-потребитель.

Скелет:


#include <atomic>
#include <array>
#include <cstddef>
#include <optional>

template<typename T, std::size_t N>
class SpscRing {
static_assert((N & (N - 1)) == 0, "N must be power of two");
public:
bool push(const T& v) {
// твой код
return false;
}
bool pop(T& out) {
// твой код
return false;
}
private:
alignas(64) std::atomic<size_t> head{0}; // consumer reads
alignas(64) std::atomic<size_t> tail{0}; // producer writes
alignas(64) std::array<T, N> buf{};
static constexpr size_t mask = N - 1;
};


💡 Подсказки:
- Пиши в buf[tail & mask], затем публикуй запись:
tail.store(next, std::memory_order_release);
- Читай из buf[head & mask] после проверки наличия данных, затем:
head.store(next, std::memory_order_release);
- На чтение границ используйте std::memory_order_acquire:
- Producer: сначала head.load(memory_order_acquire) (чтобы не переписать не потреблённое).
- Consumer: сначала tail.load(memory_order_acquire) (чтобы увидеть свежие записи).
- Ни одного fetch_add не нужно: вычисляй next = idx + 1.
- Проверка переполнения: буфер полон, если next_tail == head.
- Чтобы избежать ложного шаринга — разнеси head, tail и buf (см. alignas(64)).
- Не забудь про TriviallyCopyable/Noexcept: для общего T лучше использовать std::is_nothrow_copy_assignable_v<T> и/или перемещение.

🎯 Бонус-тест

В двух потоках гоняй счётчик 0..1e7 через буфер.
На выходе проверь, что последовательность непрерывна и без пропусков.

Читать полностью…

C++ Academy

📌 Git Revert vs Git Reset: В чём разница? 🔄

Когда вы делаете ошибку в Git, важно понимать, как правильно её исправить. Два самых популярных способа — git revert и git reset. Но они работают по-разному!

### 🔹 Git Revert
- Создаёт новый коммит, который отменяет изменения из проблемного коммита.
- История сохраняется полностью — всё видно, даже ошибка.
- Безопасный вариант для публичных веток (например, `main`).
- Не удаляет коммиты — просто "откатывает" их эффект.

> 💡 Пример:
> C1 → C2 → C3 (ошибка) → C4: Revert C3
> Результат: ошибка отменена, но история остаётся полной.

🔹 Git Reset
- Удаляет коммит(ы) из истории.
- Изменяет историю репозитория — может быть опасно, если уже был пуш.
- Подходит только для локальных изменений или ещё не опубликованных коммитов.
- Есть три режима: soft, mixed, hard.

> 💡 Пример:
> C1 → C2 → C3 (ошибка) → C3 убрано
> Результат: история обрезана, как будто коммит никогда не был.

💡 Вывод:
revert — безопасный и прозрачный способ отменить изменения.
reset — мощный инструмент, но требует осторожности.

📌 Понимание этих команд — ключ к уверенной работе с Git!

#Git #DevOps #Programming #junior

Читать полностью…

C++ Academy

🛠️ Оптимизированные компиляторы с LLVM

LLVM — это мощный инструмент для создания высокоэффективных компиляторов и сред выполнения. Он включает в себя множество компонентов, таких как Clang для компиляции C и C++, а также библиотеки и утилиты для работы с промежуточными представлениями.

🚀 Основные моменты:
- Поддержка множества языков программирования.
- Включает стандартную библиотеку libc++.
- Инструменты для анализа и оптимизации биткода.
- Активное сообщество и поддержка.

📌 GitHub: https://github.com/llvm/llvm-project

#cpp

Читать полностью…

C++ Academy

Готовы с нуля создавать телекоммуникационные решения для беспроводных мобильных сетей и сопутствующих услуг? 🧑‍💻

Отправляйте резюме до 19 октября и присоединяйтесь к команде YADRO Телеком!

Как получить оффер за 3 дня? Листайте карточки выше — все подробности там!

💙 Оставляйте заявку — мы ждём именно вас!

Читать полностью…

C++ Academy

🧩 Минималистская библиотека для парсинга JSON

sj.h — это компактная библиотека для парсинга JSON на C, состоящая всего из ~150 строк кода. Она не использует выделение памяти и предоставляет сообщения об ошибках с указанием местоположения. Библиотека не включает парсинг чисел и строк, позволяя разработчикам самостоятельно обрабатывать эти аспекты.

🚀Основные моменты:
- Минимальный код и нулевое выделение памяти
- Удобные сообщения об ошибках
- Гибкость в обработке чисел и строк
- Легко интегрируется в существующие проекты

📌 GitHub: https://github.com/rxi/sj.h

#c

Читать полностью…

C++ Academy

🖥 Полный гайд по реальным SQL-вопросам с собеседований

Введение. Собеседования на позиции, связанные с данными (аналитики, инженеры, ученые данных), всё чаще включают нестандартные и продвинутые вопросы по SQL.

Большие технологические компании (Google, Amazon и др.) предъявляют высокие требования: важна не только правильность запроса, но и умение оптимизировать его и разбираться в реальных бизнес-данных.

В этом гайде мы разберем категории наиболее распространенных сложных SQL-задач с реальных собеседований – от платформ вроде DataLemur, LeetCode, StrataScratch – и подробно поясним решения.

Каждая задача сопровождена анализом: условие, оптимальный подход, используемые SQL-конструкции, возможные ошибки и финальное решение (для PostgreSQL и MySQL, с указанием различий где необходимо).

В конце добавлен отдельный раздел о современных базах данных, включая векторные БД (Pinecone, Weaviate, Milvus и др.), с примерами того, что могут спросить про них на собеседовании и как выглядят SQL-подобные запросы для работы с векторами.

📌 Читать гайд

Читать полностью…

C++ Academy

🛠️ Создание недорогого XYZ-манипулятора с высокой точностью

MicroManipulatorStepper — это открытый проект для сборки моторизованного XYZ-манипулятора, обеспечивающего субмикронную точность. Идеален для оптической настройки, пробирования электронных компонентов и микроскопии. Устройство управляется через G-Code и легко интегрируется в другие проекты.

🚀 Основные моменты:
- Высокая точность до 50 нм благодаря магнитному редуктору.
- Простая сборка с использованием доступных компонентов и FreeCAD.
- Поддержка 6DOF-планирования движения для сложных манипуляций.
- Легкий доступ к электронике без SMD-пайки.

📌 GitHub: https://github.com/0x23/MicroManipulatorStepper

#cpp

Читать полностью…

C++ Academy

💡 SQL: поиск уникальных значений с COUNT(DISTINCT)

Хотите посчитать количество уникальных элементов по каждому пользователю?
Не нужно подзапросов — используйте COUNT(DISTINCT ...) прямо в выборке.


SELECT
user_id,
COUNT(DISTINCT product_id) AS unique_products,
COUNT(DISTINCT category) AS unique_categories
FROM purchases
GROUP BY user_id;


🔎 В одном запросе можно узнать, сколько разных товаров и категорий купил каждый пользователь.
Это упрощает аналитику и заменяет сложные вложенные запросы.

@cpluspluc

Читать полностью…

C++ Academy

🖥 Большой обучающий плейлист с уроками по C для продолжающих! (40 видео)

🔗 Ссылка: *клик*

@cpluspluc

Читать полностью…

C++ Academy

🔍 Глубокое исследование проблем с ACPI на ноутбуках ASUS ROG

Этот репозиторий посвящен анализу проблем с производительностью на ноутбуках ASUS ROG, вызванным ошибками в прошивке ACPI. Исследуются причины задержек и прерываний, влияющих на работу системы, включая аудио и графику. Используются инструменты для диагностики и трассировки, чтобы выявить корень проблемы.

🚀Основные моменты:
- Анализ проблем с производительностью на ASUS ROG.
- Использование LatencyMon для выявления задержек.
- Трассировка ACPI с помощью ETW для детального анализа.
- Обнаружение системных ошибок и их влияние на работу GPU.

📌 GitHub: https://github.com/Zephkek/Asus-ROG-Aml-Deep-Dive

#c

Читать полностью…

C++ Academy

🧩 Умный текстовый анализатор для обработки данных

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

🚀 Основные моменты:
- Извлечение ключевых слов из текста
- Анализ частоты слов и фраз
- Поддержка различных форматов входных данных
- Легкий в использовании интерфейс

📌 GitHub: https://github.com/conanhujinming/text_dedup

@cpluspluc

Читать полностью…

C++ Academy

🎨 Эффективная компрессия для пиксельного искусства

PEP (Prediction-Encoded Pixels) — это формат, оптимизированный для сжатия изображений с низким количеством цветов (до 16). Он использует алгоритм "Prediction by Partial Matching, Order-2", обеспечивая меньший размер файлов по сравнению с GIF и PNG, хотя и с некоторыми затратами по времени обработки. Идеален для игр и приложений, где важен размер изображения.

🚀 Основные моменты:
- Сжатие до 50% меньше, чем у GIF/PNG.
- Поддержка до 256 цветов.
- Быстрая декомпрессия для использования в играх.
- Экспериментальная версия, активно развивается.

📌 GitHub: https://github.com/ENDESGA/PEP

#c

Читать полностью…

C++ Academy

🤖 Легковесный AI-агент на C для командной строки

Agent-C — это ультралегкий AI-агент, который взаимодействует с OpenRouter API и выполняет команды оболочки. Он оптимизирован для работы на macOS и Linux, обеспечивая минимальный размер бинарников и эффективное управление памятью.

🚀Основные моменты:
- Выполнение команд оболочки через AI-ответы
- Минимальный размер: 4.4KB для macOS, ~16KB для Linux
- Эффективное управление памятью с помощью скользящего окна
- Кроссплатформенная поддержка

📌 GitHub: https://github.com/bravenewxyz/agent-c

#c

Читать полностью…

C++ Academy

🗺️ Интеграция MapLibre Native и Slint

Проект демонстрирует, как объединить библиотеку карт MapLibre Native с UI-фреймворком Slint для создания интерактивных картографических приложений. Поддерживает кроссплатформенность и различные графические бэкенды.

🚀Основные моменты:
- Гибридный рендеринг на GPU и CPU
- Интеграция карт в интерфейсы Slint
- Поддержка Linux, Windows и macOS
- Взаимодействие с картами (в процессе)
- Автоматическая загрузка зависимостей Slint

📌 GitHub: https://github.com/maplibre/maplibre-native-slint

#cpp

Читать полностью…

C++ Academy

🚀 Arkime — open-source система для захвата, индексации и хранения сетевых пакетов в формате PCAP.

Интегрируется с вашей инфраструктурой безопасности, обеспечивая быстрый доступ к данным через удобный веб-интерфейс для просмотра, поиска и экспорта PCAP.

Поддерживает API для загрузки и использования данных в форматах PCAP и JSON.

🔗 GitHub: https://github.com/arkime/arkime

Читать полностью…

C++ Academy

🔥 Успех в IT = скорость + знания + окружение

Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy

Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!

Читать полностью…

C++ Academy

🚀 Docker + C++ pro tip

Для C++ приложений используйте multi-stage build:
сначала соберите бинарь в большом окружении с компилятором, а затем перенесите его в минимальный образ (например, `alpine`).


# Этап сборки
FROM gcc:13 AS builder
WORKDIR /src
COPY . .
RUN g++ -O3 -static -o app main.cpp

# Финальный минимальный образ
FROM alpine:3.20
WORKDIR /app
COPY --from=builder /src/app .
CMD ["./app"]


💡 Такой подход:

- уменьшает размер образа с сотен МБ до десятков,
- убирает ненужные компиляторы и dev-библиотеки,
- даёт быстрый и чистый production-контейнер.

@cpluspluc

Читать полностью…

C++ Academy

🐘 Tarantool — необычная платформа, сочетающая in-memory базу данных с полноценным сервером приложений на Lua. Проект имеет два движка хранения: in-memory с WAL и LSM-дерево, поддерживает ANSI SQL и асинхронную репликацию.

Инструмент имеет встроенный JIT-компилятор LuaJIT, позволяющий исполнять бизнес-логику прямо рядом с данными. При этом сохраняется совместимость с внешними СУБД вроде PostgreSQL через коннекторы. Проект полезен для высоконагруженных веб-сервисов, кэширующих слоёв и систем обработки очередей сообщений.

🤖 GitHub

Читать полностью…
Subscribe to a channel