C++ Academy
16.5K subscribers
679 photos
132 videos
1 file
627 links
По всем вопросам- @haarrp

@itchannels_telegram - 🔥 best it channels

РКН: clck.ru/3FmxJF
Download Telegram
🔥 Успех в IT = скорость + знания + окружение

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

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

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

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

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

Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
👍2
🧠 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 через буфер.
На выходе проверь, что последовательность непрерывна и без пропусков.
6🔥3🥰1
🚀 Arkime — open-source система для захвата, индексации и хранения сетевых пакетов в формате PCAP.

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

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

🔗 GitHub: https://github.com/arkime/arkime
👍5🔥53
This media is not supported in your browser
VIEW IN TELEGRAM
🧠 Инструмент визуализации памяти для C++

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

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

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

@cpluspluc
👍20🔥138
💾 Память в C без страха и ошибок
📅 15 сентября | 20:00 мск | бесплатно

На вебинаре разберём:
🆚 Стек vs куча и почему нельзя возвращать локальные массивы
🛠 malloc, calloc, realloc, free — правильное выделение и освобождение памяти
🔍 Как ловить утечки и избегать висячих указателей

Полезно для:
💡 Разработчиков, которые хотят уверенно управлять памятью в C и писать надёжный код

👉 Регистрируйтесь:
https://otus.pw/Gh5h/

Занятие приурочено к старту курса "Программист С", обучение на котором позволит не только глубоко погрузиться в возможности языка С, но и изучить низкоуровневые особенности устройства UNIX-совместимых ОС и ОС семейства Windows


Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963
👍3
🗺️ Интеграция MapLibre Native и Slint

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

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

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

#cpp
🔥10❤‍🔥54
🤖 Легковесный AI-агент на C для командной строки

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

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

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

#c
10👍5🔥3
🤖 Легковесный AI-агент на C для командной строки

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

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

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

#c
7🔥3👍2
⚠️ Сегодня — День программиста! 🎉

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

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

@cpluspluc
38🔥8👍6
🎨 Эффективная компрессия для пиксельного искусства

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

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

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

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

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

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

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

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

🟠 Проект

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2710👍6
Стань участником МТС True Tech Champ 2025 — масштабного ИТ-чемпионата по программированию с призовым фондом 10 250 000 рублей.

Соревнования пройдут в двух треках:

1. Алгоритмические задачи
Покажи индивидуальное мастерство в работе со структурами данных и написании алгоритмов. Чтобы успешно справиться с заданиями, пригодится опыт решения олимпиад.

2. Программирование роботов
Оживи робота с помощью кода, чтобы он прошел лабиринт быстрее всех. Трек будет интересен разработчикам: С++, Go, Python, JS, Java, C# и не только.

Участвовать могут школьники, студенты, начинающие ИТ-специалисты и опытные разработчики. Отборочные этапы пройдут онлайн, шоу-финал — 21 ноября в МТС Live Холл в Москве.

Ты можешь выйти на арену как участник или наблюдать за чемпионатом как зритель.

Регистрируйся до 20 октября по ссылке.
🧩 Умный текстовый анализатор для обработки данных

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

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

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

@cpluspluc
8👍7🥰2
🚀 Хотите писать более быстрый и эффективный код на C++? Понимание копирования и перемещения - обязательный шаг! Приглашаем на открытый вебинар: «Чем перемещение отличается от копирования в C++?»

📅 22 сентября в 20:00 (МСК)

В языке C++ один и тот же результат можно получить разными способами - но производительность и гибкость этих решений могут сильно отличаться. На вебинаре от курса «C++ Developer. Basic» вы разберётесь в тонкостях копирования и перемещения, узнаете, как они работают и когда стоит применять каждую из семантик.

- Разберёмся в синтаксисе move-семантики
- Узнаем, как отличить rvalue от lvalue
- Поймём, когда копирование избыточно и как этого избежать
- Разберём подводные камни семантики перемещения
- Поймём, где компилятор справится сам, а где ему нужно помочь

🎯 Упростите и ускорьте свой код, избегайте лишнего - и программируйте как профи.

📲 Участие бесплатно, регистрация по ссылке: https://otus.pw/RK8zx/?erid=2W5zFHuGsdz

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🔥3👍2😱1
🚀 Web-сервер на микроконтроллере через SWD

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

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

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

#c

@cpluspluc
8👍3🔥3
Мечтаете разрабатывать встраиваемые устройства?

Курс Embedded Developer от OTUS поможет освоить микроконтроллер ESP32 и прокачать навыки от программирования до проектирования PCB!

🚀 Почему наш курс?
- Живые вебинары с экспертами из топ-компаний.
- Практика: создайте своё устройство для портфолио.
- Гибкий график: 5 месяцев, ср/пт в 20:00 Мск.
- Сертификат или удостоверение о повышении квалификации.

Что вы освоите?
Архитектуру микроконтроллеров и оптимизацию кода.
Протоколы: I2C, SPI, WiFi, BLE.
Схемотехнику и проектирование PCB.
📅 Старт: 31 октября. Пройдите тест, чтобы попасть в группу!

👉 Пройдите тест и получите скидку на курс
. Подробности уточняйте у менеджера https://otus.pw/Tjwf/

Станьте экспертом в Embedded-разработке.


Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963
2🔥2👍1
🔍 Глубокое исследование проблем с ACPI на ноутбуках ASUS ROG

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

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

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

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

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

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

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍2🔥1
🖥 Большой обучающий плейлист с уроками по C для продолжающих! (40 видео)

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

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥12🕊3
Хотите начать свой путь в разработке устройств для Интернета вещей?

Присоединяйтесь к бесплатному вебинару от OTUS: “Разработка Embedded устройств для IoT”

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

О чём вебинар?
Погрузитесь в экосистему Интернета вещей и узнаете, какую роль играет Embedded-разработка в создании умных устройств.

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

- Как устроен Интернет вещей и где в нём место Embedded-разработки.
- Практические методы проектирования оконечных устройств для IoT.

🎓 После вебинара вы:
- Поймёте, как Embedded-устройства интегрируются в IoT-экосистему.
- Получите практические знания для старта собственных IoT-проектов.

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

👉 Зарегистрироваться https://otus.pw/q52m/

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


Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963
🖥 StructToTuple — библиотека C++ 20 для преобразования структур в кортежи и наоборот!

🔐 Лицензия: MIT

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥4👍2