C/C++ Development | YeaHub – Telegram
C/C++ Development | YeaHub
827 subscribers
228 photos
56 videos
1 file
378 links
Теория, подготовка к интервью и курсы для C/C++ разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤯 Собрал симуляцию обучения с подкреплением Q-learning на C с визуализацией в реальном времени с использованием Raylib. — минималистично, быстро и в кайф

Проект демонстрирует продвинутые техники RL, включая experience replay, приоритизацию посещённых состояний и оптимизированные операции с Q-таблицей для эффективного обучения в средах типа grid-world.

Репо: https://github.com/jorgevee/Raylib-RL-Simulation

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Ани из Grok4 объясняет выравнивание памяти для объединения на языке C.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #redis
🤔 Основные различия между RDB и AOF.

RDB (Redis Database): Создаёт периодические снимки данных. Подходит для быстрого восстановления, но может привести к потере данных, изменённых после последнего снимка.
AOF (Append Only File) : Логирует каждую операцию записи. Гарантирует минимальные потери данных, но работает медленнее и создаёт более крупные файлы.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Отображения памяти процесса в Linux, потоки и таблица дескрипторов файлов

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥1
#полезное
😴 Open Data Structures от Пэта Морина

Эта книга доступна в вариантах с псевдокодом, а также на Java и C++ — удобно, если ты ищешь реализацию на конкретном языке программирования.

https://opendatastructures.org

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵‍💫 Одна вещь, которую, как мне кажется, упускает большинство вводных материалов по C, — это то, что вы можете просто оборачивать отдельные значения в struct, чтобы сделать код понятнее.

Например, такие вещи, как int***, которые на первый взгляд выглядят запутанно, можно представить через структуры — без какого-либо дополнительного накладного расхода во время выполнения.

Я обнаружил, что такой подход действительно помогает в долгосрочной поддержке кода.
Он также даёт возможность внести дополнительные улучшения — например, добавить в каждую структуру поле length рядом с указателем на массив (настоятельно рекомендую!).

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #redis
🤔 Объясните концепцию транзакций в Redis.

Транзакции в Redis позволяют выполнять группу команд как единое целое. С помощью команд MULTI, EXEC, DISCARD И WATCH можно гарантировать, что все команды либо выполняются успешно, либо не выполняются вовсе. Это обеспечивает целостность данных без традиционных механизмов, таких как откаты операций.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
image_2025-07-23_09-19-41.png
1 MB
#полезное
👋 Обзор интерфейса std::vector

Источник: https://hackingcpp.com/

Также на этом сайте можно ознакомиться с начальным гидом для новичков, показывающим как создавать, наполнять, изменять размер, удалять и копировать std::vector, а также он предупреждает о некоторых ключевых подводных камнях — ссылка

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
👨‍💻 Эта программа удаляет себя после однократного запуска.

🟠 __FILE__ — это макрос, содержащий имя текущего файла

🟠 remove(__FILE__) удаляет файл с диска

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1🤔1
#полезное
📞 C++ под капотом: внутренние механизмы классов — Крис Райан

Очень рекомендую этот доклад, если вы только начинаете работать с C++ и хотите разобраться, как всё устроено внутри.

Даже для опытных разработчиков найдётся что-то новое.
Источник

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
#Собес #redis
🤔 Как обеспечить устойчивость данных в Redis?

Redis поддерживает два механизма сохранения данных: - RDB (Redis Database Backups): Создание моментальных снимков данных через определённые интервалы времени.
- AOF (Append Only File): Запись каждой операции изменения данных в лог, который может быть воспроизведён для восстановления.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Гибкая система рефлексии в C++

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Бит-хак для реверсирования битов

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3
#полезное
😜 TinyRequest отправляет запросы и показывает ответы

Ещё не до конца допилен, но автор активно работает над ним

На днях было несколько обновлений:

- Теперь TinyRequest умеет распознавать JSON в теле запроса и валидировать его в реальном времени.
- Добавлены быстрые шаблоны для пустых объектов и массивов.

- Портирование TinyRequest идёт отлично

- Переход с Raylib на ImGui — делать GUI стало в 10 раз быстрее. ImGui реально очень плавно работает для такого рода приложений.

- Теперь TinyRequest поддерживает отправку запросов POST, PUT и DELETE с JSON.


https://github.com/dexter-xD/tiny-request

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #redis
🤔 Что такое Pub/Sub в Redis?

Pub/Sub — это механизм обмена сообщениями в Redis, где издатели (publishers) отправляют сообщения в каналы, а подписчики (subscribers), подписанные на эти каналы, получают их. Этот механизм используется для реализации систем реального времени, таких как чаты, уведомления или системы трансляции данных.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🛞 Процесс компиляции GNU от исходного кода до исполняемого файла

Процесс начинается с исходного кода в текстовых файлах (например, программы на языке C) и запускается с препроцессора, который часто называют cpp.
Предположим, исходный код находится в файле prog.c.

Препроцессор расширяет макросы, подключает заголовочные файлы и обрабатывает директивы, преобразуя исходный код в очищенную версию, которая по-прежнему остаётся в текстовом формате. Например, после обработки препроцессором cpp файла prog.c может получиться файл prog.i.
Препроцессор важен для подготовки кода путём раннего разрешения зависимостей, чтобы все определения были на месте до фактической компиляции.

Далее собственно компилятор (например, cc1 или gcc) на основном этапе берёт предварительно обработанный текст и генерирует ассемблерный код.

На этом этапе высокоуровневые инструкции преобразуются в низкоуровневый ассемблер, часто с такими оптимизациями, как преобразование кода. Вы можете увидеть команду gcc -S -m32 prog.c для вывода prog.s в текстовом формате.

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

Ассемблер преобразует этот ассемблерный текст в перемещаемые объектные файлы в двоичном формате.

Эти файлы .o содержат машинный код, но с заполнителями для адресов, отмеченными в записях перемещения, таких как разделы .rel.data или .text. Таблицы символов (.symtab) отслеживают переменные и функции.

Выполнение команды gcc -c prog.c компилирует без компоновки, создавая файл prog.o, готовый к объединению с другими файлами.

Компоновка выполняется с помощью ld, который разрешает символы и перемещает код, подключая библиотечные файлы и другие объектные модули.

Он создаёт исполняемый двоичный файл, например prog из gcc -o prog prog.c, где всем ссылкам присваиваются фиксированные адреса. На этом этапе выполняется разрешение символов, чтобы вызовы внешних функций работали корректно.

Наконец, загрузчик помещает этот исполняемый файл в память как работающий процесс, сопоставляя разделы и настраивая выполнение.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 To-Do List на C

С использованием связного списка, работы с файлами и динамического выделения памяти.

По словам автора это не веб-разработка и не Python, поэтому здесь всё же есть пока что некоторые ошибки

Ссылка на исходный код - https://github.com/aadityansha06/TO-DO-C

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #redis
🤔 Может ли Redis использоваться в многопоточных приложениях, и как он обрабатывает конкурентность?

Redis является однопоточной системой, что упрощает архитектуру за счёт исключения проблем конкурентности, характерных для многопоточных приложений. Конкурентность в Redis обрабатывается с использованием неблокирующего мультиплексирования ввода/вывода и атомарных операций, что позволяет эффективно обслуживать несколько клиентов одновременно.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 LunaSVG — легковесная библиотека для рендеринга SVG на C++. Проект предлагает простое и эффективное решение для работы с векторной графикой — от базового рендеринга SVG до динамического изменения стилей через CSS.

Библиотека поддерживает большинство элементов SVG 1.1/1.2 Tiny и легко интегрируется в проекты через CMake или Meson. Она имеет минималистичный дизайн и портируемость. В комплекте идёт утилита noscript2png для конвертации файлов, а сами SVG можно программно модифицировать перед отрисовкой. Подходит для встраивания в движки игр и GUI-фреймворки.
GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM