С/С++ Portal | Программирование
Присоединяйтесь к нашему каналу и погрузитесь в мир для C/C++-разработчика Сотрудничество, реклама: @devmangx Работаем с @Spiral_Yuri РКН: https://clck.ru/3Foc4d
نمایش بیشتر📈 تحلیل کانال تلگرام С/С++ Portal | Программирование
کانال С/С++ Portal | Программирование (@cpportal) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 14 822 مشترک است و جایگاه 8 405 را در دسته فناوری و برنامهها و رتبه 43 843 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 14 822 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 15 سپتامبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -138 و در ۲۴ ساعت گذشته برابر -10 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 14.16% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 7.89% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 2 099 بازدید دریافت میکند. در اولین روز معمولاً 1 170 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 28 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند linux, ядро, c++, процессор, указатель تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Присоединяйтесь к нашему каналу и погрузитесь в мир для C/C++-разработчика
Сотрудничество, реклама: @devmangx
Работаем с @Spiral_Yuri
РКН: https://clck.ru/3Foc4d”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 16 سپتامبر, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
در حال بارگیری داده...
| تاریخ | رشد مشترکین | اشارات | کانالها | |
| 16 سپتامبر | 0 | |||
| 15 سپتامبر | 0 | |||
| 14 سپتامبر | 0 | |||
| 13 سپتامبر | 0 | |||
| 12 سپتامبر | 0 | |||
| 11 سپتامبر | 0 | |||
| 10 سپتامبر | +5 | |||
| 09 سپتامبر | 0 | |||
| 08 سپتامبر | +3 | |||
| 07 سپتامبر | 0 | |||
| 06 سپتامبر | 0 | |||
| 05 سپتامبر | 0 | |||
| 04 سپتامبر | 0 | |||
| 03 سپتامبر | 0 | |||
| 02 سپتامبر | 0 | |||
| 01 سپتامبر | 0 |
| 2 | Хакатон на космических данных. Санкт-Петербург, Красноярск или онлайн из любой точки страны.
Стартуем 18 сентября.
За выходные участники доводят одну из задач до рабочего решения.
Санкт-Петербург. К 2035 году над Землёй должен работать топливный узел, у которого заправляются корабли, и откуда он будет получать топливо - с Земли, с Луны или из резерва - пока не решил никто. Команде предстоит собрать схему поставок, посчитать резервы и решить, во что вкладываться сразу. Призовой фонд 1,2 млн ₽.
Красноярск. Спутник видит горящий лес раньше любого наземного поста, но вместе с пожаром ловит нагретые крыши, факелы на месторождениях и блики на воде. Команде предстоит научить сервис отличать настоящий очаг от шума, обвести гарь и выдать площадь в гектарах. Призовой фонд 600 тыс. ₽.
Лучшие забирают приз на площадке и билет в московский финал 25–27 сентября, где разыграют ещё 2,4 млн рублей.
Команда 3–5 человек, недостающих можно найти на платформе.
Регистрация по ссылке космохакатон.рф | 1 069 |
| 3 | Парень, который хотел делать игры, теперь целыми днями чинит вебхуки платежей.
Тот, кто мечтал написать свою операционную систему, выбирает между библиотеками для выбора даты.
Человек, который выучил C, чтобы понять, как работают компьютеры, теперь живёт в тикетах и созвонах.
Мы все начинали программировать, потому что хотели что-то создавать.
А потом каким-то образом работа превратилась в обслуживание того, что мы уже создали.
👉 @Cpportal | 1 248 |
| 4 | Отличное изложение того, как ветвления влияют на производительность процессора, какие приёмы помогают ускорить выполнение программ и какие эксперименты это подтверждают — отличное чтиво.
Всегда поражаюсь этой потрясающей книге
👉 @Cpportal | 1 372 |
| 5 | От исходного кода до процессора: разберись, как работает программа 💻
Стартует практический курс YADRO «Системное программирование с использованием языка С» для тех, кто уже знаком с синтаксисом C и хочет разобраться, как программа работает изнутри.
Формат: курс пройдет онлайн с октября 2026 по май 2027 года. Занятия — раз в неделю, где 80% времени будет посвящено практике.
Этот курс для тебя, если ты:
🔵 учишься в вузе;
🔵 уверенно владеешь базовыми конструкциями C;
🔵 понимаешь, как работают указатели, структуры данных и динамическая память;
🔵 знаешь основные алгоритмы и структуры данных.
*️⃣ Будет плюсом опыт разработки под Linux.
Материалы для подготовки и форму регистрации можно найти — по ссылке 🔗
18 сентября — приходи на онлайн-трансляцию, где мы расскажем подробнее о практических курсах и ответим на все вопросы. После вебинара пройдет обзорная лекция про системное программирование и роль языка С. Регистрация — здесь. | 1 361 |
| 6 | 127.0.0.1 изначально не назывался localhost.
В RFC 790 от 1981 года сеть 127 была просто помечена как «зарезервированная».
Так она и оставалась на протяжении нескольких следующих RFC.
Только RFC 990 в 1986 году наконец закрепил за ней конкретное назначение — loopback.
А сам адрес 127.0.0.1 впервые появился в RFC только в 1993 году.
Это реальный кусок истории интернета, который начался с одного неиспользуемого числа.
👉 @Cpportal | 1 377 |
| 7 | 🔥 Приглашаем на бесплатный открытый вебинар курса «Программист С»: «Указатели в Си — от адреса к управлению памятью»
🗓 Когда: 24 сентября, 20:00 (мск)
Указатели — это не просто синтаксис, а ключ к пониманию того, как Си общается с памятью. Без них невозможно осознанно работать с массивами, строками, структурами и динамическими данными. На вебинаре разберём указатели от самого основания — адресов и операторов — до передачи параметров по ссылке, чтобы вы перестали бояться звёздочек и начали управлять памятью уверенно.
Что будет на вебинаре:
• Разбор ключевых понятий: адрес переменной, операторы & и *, объявление и разыменовывание указателей — разберём, как Си работает с памятью напрямую;
• Пошаговый анализ связи указателей, массивов и функций — выясним, как передавать параметры по ссылке и заставлять функции изменять переменные вызывающего кода.
👉 Зарегистрируйтесь https://otus.pw/X08Z/?erid=2W5zFHyhWhX
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. | 1 344 |
| 8 | Язык C.
Отличная статья: https://faultlore.com/blah/c-isnt-a-language/
Faultlore — «C больше не язык программирования»
Aria Desires, 2022
👉 @Cpportal | 1 505 |
| 9 | Для каждого поиска в C++ map со строковыми ключами не обязательно создавать временный std::string.
Прозрачный компаратор позволяет искать напрямую через string_view. Это особенно полезно, когда парсер уже хранит представление части входных данных.
👉 @Cpportal | 1 503 |
| 10 | Если функция checkout в C++ возвращает false, вызывающему коду остаётся только гадать, что именно пошло не так.
С появившимся в C++23 std::expected сигнатура функции может описывать и результат резервирования, и ожидаемые варианты ошибок. Это делает API проще в использовании.
👉 @Cpportal | 1 572 |
| 11 | Можно написать собственное CUDA-ядро на C++ и вызывать его из PyTorch как обычную функцию.
Цепочка выполнения будет такой:
Python → PyTorch → C++ Extension → CUDA Kernel → GPU
Что для этого нужно:
* C++-обёртка через PyTorch C++ API
* файл .cu с CUDA-ядром
* связать всё через pybind11
Допустим, вы написали своё ядро сложения:
#include <torch/extension.h>
__global__ void add_kernel(
const float* a,
const float* b,
float* out,
int n) {
int idx = blockIdx.x * blockDim.x + threadIdx.x;
if (idx < n)
out[idx] = a[idx] + b[idx];
}
Теперь его нужно запускать так:
void add_cuda(torch::Tensor a,
torch::Tensor b,
torch::Tensor out) {
int n = a.numel();
int threads = 256;
int blocks = (n + threads - 1) / threads;
add_kernel<<<blocks, threads>>>(
a.data_ptr<float>(),
b.data_ptr<float>(),
out.data_ptr<float>(),
n);
}
Затем экспортируем функцию через pybind11:
PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
m.def("add_cuda", &add_cuda);
}
После этого собираем расширение:
from torch.utils.cpp_extension import load
ext = load(
name="my_extension",
sources=[
"my_extension.cpp",
"my_kernel.cu"
]
)
Теперь его можно использовать прямо из PyTorch:
out = torch.empty_like(a)
ext.add_cuda(a, b, out)
Подробнее это разобрано в руководстве PyTorch.
👉 @Cpportal | 1 493 |
| 12 | Можно оставить библиотеку на C и при этом использовать C++ для управления её ресурсами.
Небольшая обёртка вокруг FILE* избавляет от необходимости вручную закрывать файл как при обычном выходе из функции, так и при возникновении исключения.
Именно такие абстракции C++ мне проще всего оправдать.
А ещё лучше — использовать defer.
👉 @Cpportal | 1 746 |
| 13 | Redis Cluster использует ровно 16 384 хеш-слота, и это число выбрано не случайно.
Главный трюк здесь — хеш-теги.
{user100}:cart и {user100}:orders хешируют только байты внутри {}.
Поэтому оба ключа попадают на один и тот же узел, что позволяет выполнять операции сразу над несколькими ключами в кластерном режиме.
👉 @Cpportal | 1 779 |
| 14 | Руководство, которое стоит всегда держать под рукой при выполнении заданий по программированию.
https://agner.org/optimize/optimizing_cpp.pdf
👉 @Cpportal | 1 819 |
| 15 | Сегодня узнал, что SQLite преобразует целые числа в текст сразу по две цифры.
Обычно преобразование числа в строку делают циклом с делением на 10 и взятием остатка от деления на 10.
SQLite избегает большей части этих операций: внутри хранится строка длиной 200 байт со всеми двузначными комбинациями от 00 до 99.
Затем SQLite просто берёт по две цифры за раз по нужному индексу, вместо того чтобы вычислять каждую цифру отдельно.
👉 @Cpportal | 2 107 |
| 16 | В Linux есть код ошибки, который означает, что вы получили блокировку, но предыдущий владелец умер, удерживая её: EOWNERDEAD.
Теперь мьютекс принадлежит вам, и нужно разобраться, не оставил ли другой поток общие данные в состоянии незавершённого обновления.
👉 @Cpportal | 1 966 |
| 17 | Директор Google по исследованиям написал корректор орфографии всего в 21 строку на Python.
Питер Норвиг сделал его как простую демонстрацию того, как работает вероятностное исправление опечаток.
Он генерирует слова, отличающиеся на одну или две правки, а затем выбирает наиболее вероятный вариант на основе корпуса текстов.
👉 @Cpportal | 2 101 |
| 18 | Любой эмодзи, любой символ CJK, любая некорректная последовательность байтов.
UTF-8-декодер Бьёрна Хёрмана обрабатывает всё это с помощью конечного автомата, упакованного в таблицу поиска, и небольшой функции декодирования.
type = utf8d[byte]
state = utf8d[256 + state*16 + type]
Некорректный ввод переводит автомат в состояние REJECT, а валидная последовательность возвращает его в ACCEPT.
👉 @Cpportal | 2 153 |
| 19 | Синтаксис рефлексии в C++26 выглядит отвратительно.
👉 @Cpportal | 2 233 |
| 20 | C++26 добавляет в язык контракты. С их помощью можно задавать предусловия и постусловия, а также другие ограничения.
Уже сейчас это работает в GCC 16.
Возьмём функцию, которая возвращает остаток от деления, как на изображении. Можно проверить, что делитель не равен нулю и является степенью двойки.
По умолчанию, если передать делитель, который нарушает контракт, вызывается обработчик и программа завершается.
Это означает, что функция вообще не должна выполняться, если параметры некорректны.
Поэтому я ожидал, что GCC сможет полностью избавиться от операции деления при оптимизации. Если n является степенью двойки, то i % n можно заменить на более дешёвое i & (n - 1).
Но пока GCC эту оптимизацию не выполняет, как, возможно, и некоторые другие оптимизации, связанные с контрактами.
Добиться нужного результата можно с помощью конструкции [[assume ...]], появившейся в C++23.
👉 @Cpportal | 2 512 |
