Последние посты

С/С++ Portal | Программирование
23 сент., 16:07
В MIT преподают операционные системы, давая студентам готовое Unix-подобное ядро и предлагая его доработать.Оно называется xv6. Это реализация примерно на 6000 строк, созданная по образцу Unix V6. В ней есть процессы, системные вызовы, виртуальная память и файловая система.https://mit-pdos.github.io/xv6-riscv-book/👉 @Cpportal


С/С++ Portal | Программирование
23 сент., 16:06
Разрабатываете обвязку для агента? Вот 53 ошибки, с которыми команды сталкиваются во время разработки, чтобы вы могли учиться на их опыте.• сбой посреди вызова инструмента оставлял зависший вызов без результата, который ломал все последующие запросы • восстановленный ход гонялся с запуском воркера и вызывал функцию, которая ещё не успела зарегистрироваться • не было надёжной очереди для ходов, поэтому зависшие навсегда оставались в running • оборванный поток парсился как null в аргументах и считался успешно завершённым пустым ходом • семь провайдеров считали любое закрытие соединения завершением • у шести провайдеров закэшированные токены тарифицировались дважды • чтение файлов считалось дважды, из-за чего появлялись ложные переполнения контекста • лимит повторных попыток в 1 убивал ходы за шаг до завершения • сжатие контекста возвращало пустой контекст • смерть дочернего агента по архитектуре никак не сигнализировалась • взаимная блокировка из-за порядка захвата блокировок между переназначением задачи дочернему агенту и завершением этого агента • CI избегал этой взаимной блокировки только благодаря удачному планированию • кнопку остановки перезаписывала устаревшая запись состояния от шага, который она пыталась остановить • один листинг директории на 18 МБ намертво подвешивал всю среду выполнения агента даже после перезапусков • проблемное сообщение снова отправлялось при каждом переподключении • очередь исправно доставляла это проблемное сообщение заново • уведомления пробуждения обрезали JSON на 600 символах прямо посреди массива • лог сессии на 10 МБ синхронно воспроизводился под мьютексом • хук подтверждения зарегистрировался 171 раз, потому что счётчик экземпляров отставал • восстановление проходило только первый дублирующийся хук, после чего зависало навсегда • очистка после ошибки уходила в тайм-аут, а логирование пропускалось — по сути как no-op • на каждый токен создавался отдельный span, плюс на каждое событие записывалось состояние • на 41% больше токенов, причём 95% из них — повторное чтение кэша контекста • крупные вызовы инструментов завершались с неполными аргументами, после чего отправлялись заново • регистрации терялись, когда среда выполнения перезагружала другого воркера • агент нельзя было удалить, потому что в графе зависимостей было 65 рёбер при лимите 64 • WebSocket уходил в цикл сброса каждые 2,8 секунды • команда остановки исчезала, потому что регистрации не восстанавливались после переподключения • стартовая проверка после каждой загрузки снова запускала один и тот же заведомо обречённый вызов • родительский агент навсегда зависал в ожидании дочернего, который умер вне основного канала • два параллельных подтверждения одновременно будили один ход, из-за чего команда оболочки выполнялась дважды • поток от провайдера зависал посреди delta, а keepalive-пинги считались активностью • защита по бездействию на 120 секунд никогда не срабатывала, а через 300 секунд происходило принудительное завершение с непонятной ошибкой • у клиентов к вышестоящему сервису не было тайм-аута чтения • агент перезапускал тот самый процесс, в котором выполнялся его собственный ход • «подтверди перед перезапуском» было лишь инструкцией в промпте, а не гарантией • сгенерированный код опрашивал состояние 140 раз в секунду — 29,7 тыс. span в одном трейсе • очистка кэша трейсов под общей блокировкой получила квадратичную сложность, зависли все потоки, пришлось делать kill -9
С/С++ Portal | Программирование
23 сент., 06:07
Системный вызов reboot в Linux отказывается работать, если не передать ему 0xfee1dead и дату рождения Линуса.В каком-то смысле даже красиво, что Линус подписал кусок ядра собственной семьёй.Если магические значения не совпадают, ядро возвращает EINVAL, и ничего не происходит.Помимо дня рождения самого Линуса, принимаются также дни рождения трёх его дочерей.👉 @Cpportal


С/С++ Portal | Программирование
22 сент., 16:07
Создание процессов и потоков в Linux: архитектура системных вызововРазбор единой модели задач в современных ядрах Linux.В статье рассматривается, как Linux создаёт процессы и потоки на уровне ядра, какие системные вызовы используются для этого и почему в современной архитектуре Linux оба понятия построены на одной модели задач.Материал разбирает внутреннее устройство создания процессов и потоков, работу системных вызовов и то, как ядро управляет выполнением задач.https://chessman7.substack.com/p/linux-process-and-thread-creation?r=l7k4t&utm_campaign=post&utm_medium=web👉 @Cpportal


С/С++ Portal | Программирование
22 сент., 14:07
⚡️5 фундаментальных курсов по ИБ по цене одногоЭто предложение для тех, кто готов войти в новую профессию прямо сейчас!🔥Пакет курсов за 50 000 ₽ вместо 250 000 ₽: ▪️ Linux CyberPunk - обычная цена 49 500 ₽ (+ Курс идет с официальным дипломом системного администратора!) ▪️ SQL для хакера - обычная цена 15 000 ₽ ▪️ HackerPoint - обычная цена ~70 000 ₽ ▪️ HackerPoint (Blue vs Red Team) - обычная цена 43 500 ₽ ▪️ AI-помощники на Python - обычная цена 71 500 ₽Вы экономите 200 000 ₽ и получаете полную базу: от работы с терминалом и базами данных до разработки ИИ-агентов и взлома систем.🔒 Квота: набор на программу ограничен по количеству мест.🦔Отправь промокод CPortal в чат с менеджером, чтобы закрепить за собой скидку и узнать подробности: 👉@cyacademy_support


С/С++ Portal | Программирование
22 сент., 06:07
Вот один из лучших материалов для начала, если хотите понять, что процессор на самом деле делает.https://youtu.be/GU8MnZI0snA👉 @Cpportal


С/С++ Portal | Программирование
21 сент., 18:13
Введение в кучу и динамическую памятьИсточник: смотреть👉 @Cpportal
С/С++ Portal | Программирование
21 сент., 14:07
Псс, хочешь перестать мониторить Telegram в поисках работы? 👀Ты листаешь каналы, видишь вакансию, сохраняешь и откладываешь отклик «на потом».Потому что на каждую нужно потратить минут 20. В итоге из десятков сохранённых вакансий до отклика доходят единицы.Софи забирает эту рутину на себя.Она сама находит подходящие вакансии в 350+ Telegram-каналах, изучает их, пишет персональное сопроводительное и отправляет отклик.А еще она умеет откликаться на:▫️ hh ru ▫️ карьерных сайтах компаний - Авито, Сбер, Т-Банк ▫️ Geekjob ▫️ youngjunior.ruТебе больше не нужно выбирать, где сегодня искать работу.Софи будет искать везде.


С/С++ Portal | Программирование
21 сент., 06:07
Отличный материал по современному программированию GPU для систем машинного обучения.MLC Community разбирает архитектуру GPU практически с нуля: потоки и варпы, иерархию памяти, CUDA Cores и Tensor Cores, TMA, устройство Blackwell, GEMM и Flash Attention 4. Отдельный упор сделан на то, как писать действительно быстрые ядра и эффективно загружать вычислительные блоки GPU.https://mlc.ai/modern-gpu-programming-for-mlsys/chapter_background/index.html👉 @Cpportal


С/С++ Portal | Программирование
21 сент., 06:07
Вышел практический курс Hands on C Programming для тех, кто хочет освоить C на уровне системной разработки.В программе управление памятью, указатели, неопределённое поведение и модель компиляции C.Курс сфокусирован не на базовом синтаксисе, а на том, как язык используют при низкоуровневой разработке.https://lowlevelcraft.com/tracks/language-foundations/c-programming👉 @Cpportal


С/С++ Portal | Программирование
20 сент., 16:07
Подробности о том, как устроен Compiler Explorer, невероятно интересные.https://xania.org/202506/how-compiler-explorer-works👉 @Cpportal


С/С++ Portal | Программирование
20 сент., 06:07
Современная веб-разработка:«Мне нужно добавить задержку на эту кнопку, чтобы состояние не сломалось во время согласования виртуального DOM».Разработчик на встраиваемом C:👉 @Cpportal


С/С++ Portal | Программирование
19 сент., 10:30
C — совершенно логичный язык.int p; // указатель на intint p[10]; // массив из 10 указателей на intint (p)[10]; // указатель на массив из 10 intint (p)(int); // указатель на функцию, которая принимает int и возвращает intДа, очень читаемо.👉 @Cpportal
С/С++ Portal | Программирование
19 сент., 06:07
Я бы одобрил такой обычный указатель на ревью C++ кода.Родитель владеет дочерними объектами. Ссылка на родителя только заимствуется, при этом родитель должен жить дольше дочернего объекта.Модель владения важнее, чем попытка сделать каждый указатель умным.👉 @Cpportal


С/С++ Portal | Программирование
18 сент., 16:07
В C оператор запятая позволяет творить преступления средь бела дня.👉 @Cpportal


С/С++ Portal | Программирование
18 сент., 13:07
Разработчики 3D-графики, все сюдаЕсли вы пишете рендер на C++ с отдельным RenderThread, то знаете эту боль: данные грузятся в фоне, а GPU-ресурсы всё равно создаются в потоке отрисовки. И пока RenderThread в длинном цикле создаёт буферы и текстуры, он не рисует — он стоит, пока не обработает список загруженных ресурсов.Мы это исправили! В новой статье на Хабре рассказываем, как пришли к новому подходу: 1. как вынесли создание буферов и текстур на потоки загрузки, 2. что сделали для Metal, а что для Vulkan, 3. и какие ограничения графических API пришлось учесть.Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD


С/С++ Portal | Программирование
18 сент., 06:07
Теперь Android-смартфон может запускать полноценный Linux.Не виртуальную машину. Не PRoot. А нативный Linux-контейнер с почти нулевыми накладными расходами.Droidspaces превращает Android-смартфоны с root-доступом в полноценные Linux-машины с systemd, ускорением на GPU и постоянными контейнерами.Что умеет:• запускает полноценные дистрибутивы Linux нативно • среда выполнения весит около 400 КБ и не требует зависимостей • поддерживает systemd и OpenRC • почти не влияет на производительность • поддерживает ускорение на GPU Adreno • автоматически запускает XFCE • позволяет создавать неограниченное число изолированных контейнеров • поддерживает NAT и сеть хоста • контейнеры сохраняются даже после удаления приложения • Termux не нуженНо есть ограничение: нужен root-доступ, а GrapheneOS не поддерживается, поскольку блокирует необходимые системные вызовы пространств имён.


С/С++ Portal | Программирование
17 сент., 16:07
Для C++23 выпустили новую библиотеку useful_abstractions, которая упрощает программирование на этапе компиляции.Она позволяет удобнее работать со строками в параметрах шаблонов, хешированием, именами типов, преобразованием UTF и другими вещами внутри constexpr и consteval.Идея простая: всё больше вычислений можно переносить на этап компиляции, но сам C++ делает это не всегда удобно. Библиотека пытается дать для этого более аккуратные абстракции.Один заголовочный файл, без зависимостей кроме стандартной библиотеки.Требуется GCC 14+ или Clang 19+.https://github.com/ConstexprCore/useful_abstractions👉 @Cpportal


С/С++ Portal | Программирование
17 сент., 14:12
Совет на ближайшие годы — идите в Data Science и MLПока ИИ забирает работу у одних специалистов, другие строят на нём карьеру и зарабатывают всё больше. И вопрос уже не в том, изменит ли ИИ рынок, а в том, по какую сторону этих изменений окажетесь вы. DS/ML – один из самых прямых способов оказаться среди тех, кто на этом выигрываетА чтобы не тратить годы на хаотичное обучение – держите в подписках Data Portal. Там практикующие ML-инженеры понятным языком разбирают главное: новые модели, библиотеки, исследования, датасеты, гайды, курсы и практические кейсы.Подписывайтесь: @LLMScience


С/С++ Portal | Программирование
17 сент., 06:07
😆😆😆👉 @Cpportal

