fa
Feedback
C++ Academy

C++ Academy

رفتن به کانال در Telegram

По всем вопросам- @workakkk РКН: clck.ru/3FmxJF #VRHSZ

نمایش بیشتر

📈 تحلیل کانال تلگرام C++ Academy

کانال C++ Academy (@cpluspluc) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 15 492 مشترک است و جایگاه 8 087 را در دسته فناوری و برنامه‌ها و رتبه 41 904 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 15 492 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 05 اکتبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -49 و در ۲۴ ساعت گذشته برابر 7 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 15.13% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 7.64% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 2 344 بازدید دریافت می‌کند. در اولین روز معمولاً 1 183 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 20 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند c++, github, linux, api, архитектура تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
“По всем вопросам- @workakkk РКН: clck.ru/3FmxJF #VRHSZ”

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 06 اکتبر, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

15 492
مشترکین
+724 ساعت
-147 روز
-4930 روز
جذب مشترکین
اکتبر '26
اکتبر '26
+18
در 0 کانال‌ها
سپتامبر '26
+112
در 31 کانال‌ها
Get PRO
اوت '26
+118
در 39 کانال‌ها
Get PRO
ژوئیه '26
+82
در 42 کانال‌ها
Get PRO
ژوئن '26
+56
در 1 کانال‌ها
Get PRO
مه '26
+130
در 3 کانال‌ها
Get PRO
آوریل '26
+49
در 0 کانال‌ها
Get PRO
مارس '26
+92
در 21 کانال‌ها
Get PRO
فوریه '26
+93
در 44 کانال‌ها
Get PRO
ژانویه '26
+437
در 110 کانال‌ها
Get PRO
دسامبر '25
+66
در 2 کانال‌ها
Get PRO
نوامبر '25
+217
در 44 کانال‌ها
Get PRO
اکتبر '25
+81
در 15 کانال‌ها
Get PRO
سپتامبر '25
+116
در 38 کانال‌ها
Get PRO
اوت '25
+291
در 9 کانال‌ها
Get PRO
ژوئیه '25
+518
در 77 کانال‌ها
Get PRO
ژوئن '25
+347
در 73 کانال‌ها
Get PRO
مه '25
+82
در 5 کانال‌ها
Get PRO
آوریل '25
+105
در 27 کانال‌ها
Get PRO
مارس '25
+120
در 1 کانال‌ها
Get PRO
فوریه '25
+175
در 40 کانال‌ها
Get PRO
ژانویه '25
+175
در 47 کانال‌ها
Get PRO
دسامبر '24
+585
در 58 کانال‌ها
Get PRO
نوامبر '24
+1 337
در 186 کانال‌ها
Get PRO
اکتبر '24
+2 234
در 75 کانال‌ها
Get PRO
سپتامبر '24
+848
در 203 کانال‌ها
Get PRO
اوت '24
+580
در 42 کانال‌ها
Get PRO
ژوئیه '24
+837
در 52 کانال‌ها
Get PRO
ژوئن '24
+2 266
در 64 کانال‌ها
Get PRO
مه '24
+498
در 39 کانال‌ها
Get PRO
آوریل '24
+571
در 47 کانال‌ها
Get PRO
مارس '24
+653
در 20 کانال‌ها
Get PRO
فوریه '24
+907
در 5 کانال‌ها
Get PRO
ژانویه '24
+705
در 42 کانال‌ها
Get PRO
دسامبر '23
+447
در 39 کانال‌ها
Get PRO
نوامبر '23
+162
در 31 کانال‌ها
Get PRO
اکتبر '23
+224
در 0 کانال‌ها
Get PRO
سپتامبر '23
+385
در 0 کانال‌ها
Get PRO
اوت '23
+2 329
در 0 کانال‌ها
Get PRO
ژوئیه '23
+498
در 1 کانال‌ها
Get PRO
ژوئن '23
+565
در 0 کانال‌ها
Get PRO
مه '23
+5 320
در 0 کانال‌ها
Get PRO
آوریل '23
+126
در 0 کانال‌ها
Get PRO
مارس '23
+422
در 0 کانال‌ها
Get PRO
فوریه '23
+707
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
06 اکتبر+6
05 اکتبر+8
04 اکتبر+3
03 اکتبر0
02 اکتبر0
01 اکتبر+1
پست‌های کانال
Яндекс выложил в опенсорс YTsaurus Flow YTsaurus Flow - фреймворк потоковой обработки данных с сохранением состояния между со
Яндекс выложил в опенсорс YTsaurus Flow YTsaurus Flow - фреймворк потоковой обработки данных с сохранением состояния между событиями, альтернатива зарубежным Spark Structured Streaming и Kafka Streams. Технологию совместно разработали команды Yandex Infrastructure и Яндекс Рекламы для работы с большими потоками данных. Flow изначально создавался для высоконагруженных real-time систем, прежде всего рекомендательных. Позволяет обрабатывать большие потоки событий с сохранением состояния, гарантией exactly-once и автоматическим распределением нагрузки. Это важно для сервисов, где задержка или потеря данных напрямую влияют на качество рекомендаций, антифрода и других ML-систем: свежие события быстрее доходят до моделей, а инфраструктура продолжает работать при сбоях и изменении нагрузки. https://github.com/ytsaurus/ytsaurus/tree/main/yt/yt/flow

2
🎮 Строка из Quake III, которая выглядит как колдовство i = 0x5f3759df - (i >> 1); // what the fuck? Комментарий настоящий. Э
🎮 Строка из Quake III, которая выглядит как колдовство i = 0x5f3759df - (i >> 1); // what the fuck? Комментарий настоящий. Эта строка помогает вычислить 1/√x, не извлекая квадратный корень. В графике такая операция нужна для нормализации векторов: привести их длину к единице, сохранив направление. Как работает трюк? У float внутри есть показатель степени и дробная часть. Если прочитать биты положительного нормализованного числа как целое, получится величина, которая примерно соответствует его логарифму с масштабом и смещением. А дальше используется свойство: log₂(1/√x) = −½ × log₂(x) Сдвиг >> 1 делит целое число на два. Вычитание из подобранной константы меняет знак и компенсирует смещение. Полученные биты снова читаются как float: это уже приближение к ответу. Один шаг метода Ньютона доводит относительную погрешность примерно до 0,18%. В историческом тесте Криса Ломонта функция работала примерно в четыре раза быстрее прямого вычисления 1.0 / sqrt(x). А закомментированная строка на картинке? Это второй шаг Ньютона: ещё больше точности за дополнительные вычисления. 💡 Красота алгоритма в том, что само представление числа в памяти становится частью вычисления. https://github.com/id-Software/Quake-III-Arena/blob/master/code/game/q_math.c
1 087
3
Бьярн Страуструп о своём же C++: «на C легко выстрелить себе в ногу» Создатель C++ однажды описал свой язык так: «На C легко
Бьярн Страуструп о своём же C++: «на C легко выстрелить себе в ногу» Создатель C++ однажды описал свой язык так: «На C легко выстрелить себе в ногу. На C++ это сделать сложнее, но если уж получится, оторвёт всю ногу целиком». В своём FAQ он объясняет: это верно для любого мощного языка. Чем лучше язык защищает от простых ошибок, тем менее очевидными становятся те, что остаются. C++ действительно закрыл многие дыры C: RAII, умные указатели, строгая типизация, а на слайде за его спиной видно, что код на C++20/23 бывает проще и безопаснее старого. Но шаблоны, неопределённое поведение и сложная модель памяти по-прежнему позволяют выстрелить так, что потом неделями ищешь, куда попало.
1 775
4
Полноценный Lisp можно уместить всего в 99 строк C. Внутри при этом: - 21 примитив - REPL - сборщик мусора Cheney GC - числа+1
Полноценный Lisp можно уместить всего в 99 строк C. Внутри при этом: - 21 примитив - REPL - сборщик мусора Cheney GC - числа с плавающей точкой - указатели - типы значений И всё это без `struct`-тегов, без внешних библиотек и без обычных динамических аллокаций для представления объектов. Главный трюк - NaN boxing. IEEE 754 оставляет много битов внутри специальных NaN-значений. Их можно использовать как скрытое хранилище: - часть битов кодирует тип - до 48 бит можно использовать под указатель - обычные double при этом остаются обычными числами В итоге одно 64-битное значение может представлять и число, и указатель, и другие типы данных. Очень красивый пример того, как устройство IEEE 754 можно использовать для построения компактного рантайма языка.
1 961
5
✔️ В C/C++ есть любопытный трюк с AVX-512: `_mm512_maskz_loadu_epi8`. Инструкция может выборочно загрузить до 64 байт по маск
✔️ В C/C++ есть любопытный трюк с AVX-512: `_mm512_maskz_loadu_epi8`. Инструкция может выборочно загрузить до 64 байт по маске. Каждый бит маски отвечает за один байт: - 1 - байт загружается - 0 - вместо него ставится ноль Самое интересное начинается, когда маска полностью нулевая: #include <x86intrin.h> void f(const char *p) { _mm512_maskz_loadu_epi8(0, p); } При нулевой маске память фактически не читается, а результатом становится 512-битный вектор из нулей. То есть значение p в таком случае не влияет на результат, а компилятор при оптимизации вообще может удалить весь вызов. Хороший пример того, насколько необычно работают masked-load инструкции в AVX-512.
2 249
6
C23 сделал enum в C заметно удобнее для низкоуровневого кода. Раньше базовый тип перечисления обычно выбирал компилятор, и en
C23 сделал enum в C заметно удобнее для низкоуровневого кода. Раньше базовый тип перечисления обычно выбирал компилятор, и enum часто занимал размер обычного int: enum status { OK = 0, ERROR = -1 }; На многих системах это 4 байта. В C23 можно явно указать базовый тип: enum status8 : int8_t { OK8 = 0, ERR8 = -1 }; Теперь такой enum занимает 1 байт. Можно и наоборот использовать большой тип: enum status64 : uint64_t { OK64 = 0, ERR64 = UINT64_C(0xFFFFFFFFFFFFFFFF) }; Это особенно полезно там, где важен точный layout структуры, ABI, сетевые протоколы, embedded и работа с бинарными форматами. В C23 размер enum теперь можно контролировать явно, а не полагаться на выбор компилятора.
2 779
7
Minimum-Cost Maximum-Flow всего в ~110 строках C++ Хороший компактный пример одного из самых полезных алгоритмов на графах. З+1
Minimum-Cost Maximum-Flow всего в ~110 строках C++ Хороший компактный пример одного из самых полезных алгоритмов на графах. Задача MCMF: провести через сеть максимально возможный поток и одновременно сделать его стоимость минимальной. В этой реализации: - residual graph хранит оставшиеся возможности для потока - SPFA каждый раз ищет самый дешёвый увеличивающий путь - после поиска определяется bottleneck - сколько потока реально можно протолкнуть по найденному пути - поток отправляется по пути - процесс повторяется, пока путь из источника в сток больше найти нельзя Особенно красивый трюк - обратные рёбра. Прямое и обратное ребро добавляются подряд, поэтому получить индекс пары можно через: id ^ 1 Если id чётный, id ^ 1 даст следующее нечётное ребро. Если нечётный - вернёт предыдущее чётное. MCMF пригодится там, где мало просто найти максимальный поток и у каждого решения есть цена: • назначение сотрудников на задачи • логистика • маршрутизация • matching с разной стоимостью • распределение ресурсов • расписания Компактный пример того, как residual network, shortest path и greedy augmentation собираются в один мощный алгоритм.
2 155
8
🐧 Linux Cheat Sheet - шпаргалка по командам Linux Самая удобная шпаргалка по Linux и Bash на русском: теория простым языком
🐧 Linux Cheat Sheet - шпаргалка по командам Linux Самая удобная шпаргалка по Linux и Bash на русском: теория простым языком (как устроены файлы, процессы, права, память, загрузка и сеть), команды терминала, права доступа, процессы, сеть, SSH, systemd, grep/sed/awk, Vim и готовые однострочники - с примерами. А для тех, кто идёт дальше, - продвинутый уровень: Bash для профи, LVM и RAID, трассировка и производительность, ядро, безопасность, контейнеры, восстановление системы и вопросы с собеседований. https://github.com/justxor/Linux-/
2 513
9
بدون متن...
2 226
10
`🤖 В SourceCraft появилась команда цифровых разработчиков Агентам можно назначать задачи прямо в GitLab. Они работают под собственными учётными записями, выполняют поручения и возвращают результат разработчику. Если по ходу работы чего-то не хватает, агент сам запрашивает данные или согласование у команды — то есть не останавливается на первом незаполненном месте. Ещё можно подключить собственного агента, в том числе созданного в Yandex AI Studio.
2 271
11
😂 Собеседование на C++ прошло успешно HR: у вас есть опыт с C++? Я: конечно, отлично знаю оператор `goes to`. int x = 10; wh
😂 Собеседование на C++ прошло успешно HR: у вас есть опыт с C++? Я: конечно, отлично знаю оператор `goes to`. int x = 10; while (x --> 0) { std::cout << x << '\n'; } Никакого специального --> оператора в C++ тут нет. Это просто: x-- > 0 Сначала берётся текущее значение x и сравнивается с 0, а затем x уменьшается на единицу. Поэтому код выведет: 9 8 7 6 5 4 3 2 1 0 Один из тех C++-трюков, который выглядит как отдельный оператор, хотя на самом деле это просто удачно поставленные -- и >.
2 344
12
Физически корректный ray tracer всего в 99 строках C++ smallpt от Kevin Beason - один из самых известных примеров того, наско+1
Физически корректный ray tracer всего в 99 строках C++ smallpt от Kevin Beason - один из самых известных примеров того, насколько компактным может быть настоящий path tracer. В этих 99 строках есть: * отражения * преломления * мягкие тени * color bleeding * зеркальные и стеклянные поверхности Основа при этом минимальная: векторы, лучи, сферы и одна рекурсивная функция radiance(). Если дать рендеру тысячи samples per pixel, он собирает полноценный Cornell Box с зеркальной и стеклянной сферами. Проект появился ещё в 2008 году и до сих пор отлично показывает базовую механику path tracing.
2 358
13
⚡️ Как спроектировать ИИ-агента над корпоративными данными 6 октября в 17:00 мск пройдёт новая встреча Архитектурного клуба Яндекс 360 — открытого сообщества для архитекторов и инженеров высоконагруженных систем. Даниил Смирнов, руководитель службы бэкенд-разработки Антиспама Яндекс 360 , разберёт архитектуру корпоративного агента: оркестратор, инструменты, память, EVAL и наблюдаемость. На эфире обсудят: - как сочетать полнотекстовый и векторный поиск, метаданные, фильтры и переранжирование; - как наследовать права исходных систем и изолировать данные разных пользователей и организаций; - как не выдавать из индекса и кеша данные тем, у кого нет доступа; - как ограничивать автономность агента; - как отдельно оценивать качество поиска, выбора инструментов и итогового ответа. 📅 6 октября, 17:00 мск 💻 Онлайн, участие бесплатное → Зарегистрироваться на встречу https://events.yandex.ru/events/yandex360/architechture_club?utm_source=telegram&utm_medium=social&utm_campaign=archclub&utm_content=cpluspluc
1 947
14
Лицо C++-разработчика, когда он написал 6000 строк кода, чтобы обогнать твои 4 строки на Python на 0,000438 секунды.
Лицо C++-разработчика, когда он написал 6000 строк кода, чтобы обогнать твои 4 строки на Python на 0,000438 секунды.
4 214
15
Как посчитать миллиарды уникальных значений, используя всего несколько килобайт памяти Для этого существует HyperLogLog - вер
Как посчитать миллиарды уникальных значений, используя всего несколько килобайт памяти Для этого существует HyperLogLog - вероятностный алгоритм оценки количества уникальных элементов. Вместо хранения каждого значения он: — хеширует элементы — распределяет их по buckets — отслеживает необычно длинные последовательности нулей в хэшах — по этой статистике оценивает cardinality Например, с 16384 регистрами можно оценивать даже огромные множества, занимая порядка десятков килобайт памяти. При этом ошибка может оставаться около 1%. Именно поэтому HyperLogLog любят в аналитике и больших данных: посчитать COUNT(DISTINCT ...) для миллиардов объектов можно без хранения миллиардов ID. Магия тут не в точности до последнего элемента, а в очень хорошем компромиссе между памятью и результатом.
2 920
16
Разработчики 3D-графики, все сюда Если вы пишете рендер на C++ с отдельным RenderThread, то знаете эту боль: данные грузятся
Разработчики 3D-графики, все сюда Если вы пишете рендер на C++ с отдельным RenderThread, то знаете эту боль: данные грузятся в фоне, а GPU-ресурсы всё равно создаются в потоке отрисовки. И пока RenderThread в длинном цикле создаёт буферы и текстуры, он не рисует — он стоит, пока не обработает список загруженных ресурсов. Мы это исправили! В новой статье на Хабре рассказываем, как пришли к новому подходу: 1. как вынесли создание буферов и текстур на потоки загрузки, 2. что сделали для Metal, а что для Vulkan, 3. и какие ограничения графических API пришлось учесть. Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD
1 193
17
⚙️ useful_abstractions - вычисления на этапе компиляции в C++23 Библиотека упрощает работу с constexpr и consteval. Один заголовочный файл, без зависимостей за пределами стандартной библиотеки. Что можно делать при компиляции: * Передавать строки в параметры шаблонов и собирать их из частей. * Вычислять хеши. * Получать имена типов без RTTI. * Экранировать строки для JSON, URL и HTML. * Проверять UTF-8 и преобразовывать его в UTF-16/UTF-32. * Останавливать сборку с понятным сообщением при ошибке в данных. Например, некорректный строковый литерал или недопустимое значение можно обнаружить ещё до запуска программы. Требуется C++23: GCC 14+, Clang 19+ или свежий AppleClang. Документация — https://constexprcore.github.io/useful_abstractions/
2 701
18
Разница между C++ и Python
Разница между C++ и Python
2 036
19
«Я про бэкенд»: как устроены AI-системы под капотом бигтеха 🗓 3 октября, Москва и онлайн О чём: как разработчики высоконагруженных рекомендательных и генеративных систем справляются с нетривиальными вызовами. Доклады в 6 направлениях — от архитектуры систем с AI/ML до MLOps и работы на стыке бэкенда с железом. Часть спикеров: 🎤 Михаил Цветков (Алиса AI и Умные устройства) — как устроен инференс генеративных ответов Алисы в Поиске 🎤 Алина Шестакова (Positive Technologies, Cloud SIEM) — вердикт за минуту: ML-фильтр и LLM на потоке более 40 тысяч событий в секунду 🎤 Андрей Аксёнов (Авито) — база векторных баз 🎤 Егор Хайруллин (Рекламные технологии Яндекса) — как распределённо обрабатывать более 100 ГБ/с в реальном времени без потерь и дублей с помощью YTsaurus Flow 🎤 Владислав Тюльбашев (Яндекс) — как надежно раздавать конфиги на 200к хостов при отказе [n-1] ДЦ 🎤 Алексей Логинов (Алиса AI и Умные устройства) — как сделать агентную платформу надёжной Кроме того, зрителей ждет традиционный лайв, где бэкенд-инженеры Яндекса спроектируют архитектуру сложного сервиса в реальном времени. В этот раз задачу для эфира можете задать вы: участвуйте в проекте «2718», отправляйте свои кейсы, а организаторы выберут среди них самый сложный для открытого разбора. Полная программа и регистрация
3 112
20
💡 Алгоритм Флойда находит цикл в связном списке всего с двумя указателями и `O(1)` дополнительной памяти. Идея простая: slow
💡 Алгоритм Флойда находит цикл в связном списке всего с двумя указателями и `O(1)` дополнительной памяти. Идея простая: slow двигается на 1 узел fast — на 2 Если цикл есть, они обязательно встретятся. После встречи один указатель возвращаем в head, а дальше оба двигаем по одному узлу. Следующая точка встречи — точное начало цикла. Node *detect_cycle(Node *head) { Node *slow = head, *fast = head; while (fast && fast->next) { slow = slow->next; fast = fast->next->next; if (slow == fast) { slow = head; while (slow != fast) { slow = slow->next; fast = fast->next; } return slow; } } return NULL; } Сложность: O(n) по времени O(1) по памяти Один из самых красивых примеров того, как простая математика по модулю превращается в очень практичный алгоритм.
2 142