C++ Academy
13.2K subscribers
276 photos
98 videos
293 links
По всем вопросам- @workakkk
Download Telegram
🖥 Перехват данных на уровне ОС с помощью C++

Держите полезную статью, здесь мы рассматриваем две техники перехвата данных на уровне ОС. Они позволяют получить точную информацию о состоянии игровых объектов.
В то же время эти техники имеют несколько преимуществ над чтением данных из памяти процесса игры:

🟡Большинство антиотладочных приёмов не защищают от перехвата WinAPI-вызовов.

🟡Намного проще реализовать обработчик перехваченной функции, чем анализировать память игрового приложения.

🟡Системам защиты крайне сложно обнаружить факт перехвата вызовов.

Эти техники перехвата WinAPI-вызовов можно использовать не только в алгоритме какого-нибудь бота, но и для исследования памяти процесса игрового приложения. Да и вообще, применений масса)

▶️ Поехали

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Один из лучших онлайн-компилятор C++

https://github.com/16bit-ykiko/vscode-compiler-explorer

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Чем пустой конструктор по умолчанию отличается от =default;?

▶️Вопрос: чем пустое тело отличается от того, что получается с =default (для конструктора по умолчанию)
X::X() {}
// и
X::X() = default;



▶️Что ж, наличие конструктора по умолчанию с пустым телом автоматически делает класс нетривиальным. Со всеми вытекающими отсюда особенностями. Например делает тип не POD. А также исключает возможность использовать агрегатную инициализацию:
#include <iostream>
#include <type_traits>

struct X {
//X() {}
X() = default;
int a;
int b;
};

int main( ) {
X x { 1, 2 }; // ошибка, если X - не тривиальный класс.
std::cout << std::boolalpha <<
std::is_trivial<X>::value << "\n";
}


При определении конструктора как = default тривиальность класса сохраняется, если она была до этого. В данном случае, это равносильно отсутствию явного упоминания конструктора в определении класса.

Если конструктор по умолчанию определен как = default вне определения класса, всё равно будет считаться, что конструктор предоставлен пользователем, и это тоже делает класс нетривиальным.

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Whisper.cpp для перевода аудио в текст

🟡Высокопроизводительный интерфейс на C++ для модели Whisper от OpenAI, которая отлично распознаёт текст.
Простая реализация на C/C++ без зависимостей.

Особенности самой модели Whisper:
— Хорошо распознает русский текст (даже с вкраплениями английского)
— Хорошо распознает цифры

🖥 GitHub
🟡 Использование

Кстати, интересный факт: Whisper.cpp был написан Георгием Гергановым всего за 5 дней

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Воспроизводимая среда разработки с Nix

В разработке на C++ менеджер пакетов — незаменимая вещь.
Многие полагаются на FetchContent и скрипты сборки для установки зависимостей, а ведь есть замечательный инструмент — Nix, который является и пакетным менеджером, и позволяет настраивать детерминированное окружение одной командой.

Что ж, давайте поговорим, что такое Nix, что он предлагает и как с его помощью создать окружения разработки.

▶️ Погружение в Nix

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥Подборка лучших обучающих каналов для программистов.

➡️ Делитесь с коллегами и сохраняйте себе, чтобы не потерять

Машинное обучение

Machine Learning - запускаем лучшие ИИ модели, пишем код, погружаемся в нейросети
Ml Собеседование - подготовка к собесу по мл, алгоритмам, коду
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат

🏆 Golang
Golang
Golang собеседование - разбор задач и вопросов с собесов
Golang вакансии -работа для Go разработчика
Golang книги библиотека книг
Golang задачи и тесты
Golang чат
Golang news - новости из мира go
Golang дайджест

💥 Linux /Этичный хакинг
Linux Academy - гайды, секреты и лучшие материалы по Linux
Kali linux - погрузись в мир этичного хакинга и кибербезопасности
linux_kal - kali чат
Информационная безопасность

🚀 Data Science

Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data

🛢Базы данных
Sql базы данных - научим работе с базами данных профессионально
Библиотека баз данных
SQL чат
Вакансии Sql аналитик данных

#️⃣C#

С# академия - лучший канал по c#
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа

🐍 Python

Python/django - самый крупный обучающий канал по Python
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги

Java

Java академия - java от Senior разработчика
Java вакансии
Java чат
Java вопросы с собеседований
Java книги

💻 C++

C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии

⚡️ Frontend
Javascript академия - крупнейший js канал
React - лучшие гайды и советы по работе с react
Frontend - тутрориалы, уроки, гайды, код
PHP
Книги frontend
Задачи frontend

🦀 Rust
Rust программирование
Rust чат
Rust книги для программистов

📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки

🇬🇧 Английский для программистов

🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence

🔥 DevOPs
Devops для программистов
Книги Devops

🌟 Docker/Kubernets
Docker
Kubernets

📓 Книги
Библиотеки Книг для программситов

💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
Папка Frontend

💥 Бесплатный Chatgpt бот
🖥 gemma.cpp

gemma.cpp — это лёгкий движок на C++ для вывода моделей на основе Gemma от Google (в частности Gemma 2B и 7B)

gemma.cpp ориентирован на простоту и минималистичность, а не на полную универсальность.
Вдохновлён такими реализациями, как ggml, llama.c и llama.rs.

🖥 GitHub
🟡 Gemma

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Как собрать проект C++ с Github из исходников

🟡В этой статье мы рассмотрим ситуацию, когда у нас есть только ссылка на исходники проекта, скажем, на GitHub (возьмём для примера библиотеку для простых чисел primesieve) и нужно каким-то образом "вручную" скомпилировать внешний проект в своей Visual Studio, чтобы воспользоваться его возможностями в своём приложении.

▶️ Поехали

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 FTXUI — C++ библиотека для создания консольных UI

Фичи FTXUI:
— Функциональный стиль, вдохновлен React
— Простой и элегантный синтаксис
— Создаваемые консольные UI поддерживают навигацию с помощью клавиатуры и мыши
— Поддержка UTF8 и полноразмерных символов (типо → 测试)
— Поддержка анимации
— Поддержка рисования
— Нет зависимостей
— Кроссплатформенность: Linux/MacOS, WebAssembly, Windows
— К FTXUI прилагается: документация, тесты, фаззеры, тесты производительности, автоматизированный CI, автоматизированная упаковка и т.д.

🖥 GitHub

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Cppcheck — статический анализатор кода C/C++

sudo apt-get install cppcheck

Cppcheck — это инструмент статического анализа кода C/C++. Обеспечивает уникальный анализ кода для выявления ошибок и фокусируется на обнаружении неопределенного поведения и опасных конструкций в коде.
Cppcheck спроектирован, чтобы иметь очень мало ложных срабатываний; при этом Cppcheck способен анализировать ваш C/C++ код, даже если код имеет нестандартный синтаксис (распространенный во встраиваемых проектах).

Cppcheck доступен как open-source, так и в виде Cppcheck Premium с расширенной функциональностью и поддержкой.

🖥 GitHub
🟡 Онлайн демонстрация

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Многопоточность и Thread Pool в C++

🟡Пул потоков (Thread Pool) — это фиксированный набор потоков, одновременно выполняющих независимые друг от друга задачи, помещенные в некоторый массив. Массив задач обычно представляется в виде очереди (Task Queue).

🟡Основное назначение пула потоков — обратить "сырую" многопоточную обработку в удобный инструмент эффективного решения трудоемких задач, допускающих разбиение на независимые кусочки.

🔜 Освежить, как устроена многопоточность в C++

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🦎 Raptor - Высокоуровневая алгоритмическая библиотека шаблонов C++, предназначенная для облегчения разработки параллельных программ с использованием CUDA.

https://dma-neves.github.io/dma/raptor.html

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Infer — статический анализатор кода для C++ и не только

Статический анализатор кода для C++ и не только, помогает найти потенциальные ошибки
Можно использовать в Docker-контейнере

🖥 GitHub
🟡 Протестировать Infer онлайн

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 C++ библиотека с алгоритмами вычислительной геометрии

Цель библиотеки CGAL — обеспечить легкий доступ к эффективным и надежным алгоритмам вычислительной геометрии.

🖥 GitHub
🟡 Страничка CGAL

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM