Обновить
128K+

C++ *

Типизированный язык программирования

203,7
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Oblivion Mind: как я строю когнитивно‑символьный ИИ с проверяемым знанием

Время на прочтение20 мин
Охват и читатели7.8K

Я начал делать Oblivion не потому, что мне хотелось написать ещё один чат. Меня всё время беспокоил другой вопрос: что вообще остаётся внутри системы после того, как она дала ответ? Допустим, она прочитала книгу. Потом вторую. Потом тысячу документов. Мне мало того, что через месяц она сможет уверенно пересказать прочитанное. Я хочу открыть её состояние и увидеть: этот факт появился отсюда, вот здесь другой источник ему противоречит, здесь данных пока недостаточно, а этот старый вывод после появления новых данных нужно пересмотреть.

Из этого постепенно и вырос Oblivion Mind. Я строю его как когнитивно‑символьную систему. Для меня важен не сам ответ, а то, что система успела построить, связать и проверить до того, как этот ответ появился. Позже этот вопрос пришлось проверять уже не на условном примере: один из больших прогонов прошёл по 3000 книг. Ниже я отдельно покажу, что именно этот тест проверил — и чего он не доказывает.

Читать далее

Новости

Кроссплатформенный мониторинг аппаратных ресурсов на C++ и Python: библиотека hardware_monitor_cpp

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.4K

После того как мой пет-проект случайно «выстрелил» на Reddit, я решил, что пора поделиться так же и своей кроссплатформенной библиотекой на C++20 для мониторинга железа, с нативной поддержкой Python.

Рассказываю историю создания hardware_monitor_cpp: как избавиться от лишних зависимостей, получить адекватную статистику swap-файла под Windows и macOS, упаковать все в удобное C++ API, а заодно получить готовую консольную утилиту с визуализацией графиков прямо в терминале.

Читать далее

Ускоряем eMMC в 5 раз для процессора AllWinner H6 на примере Repka Pi 4

Уровень сложностиСложный
Время на прочтение40 мин
Охват и читатели8.4K

Когда речь заходит о производительности одноплатных компьютеров, чаще всего внимание уделяют процессору, объему оперативной памяти или системе охлаждения. Однако в реальных сценариях использования скорость работы системы очень сильно зависит от накопителя. Именно накопитель влияет на время загрузки ОС, скорость установки пакетов, работу Docker-контейнеров, баз данных, браузера и общую отзывчивость системы.

Читать далее

Комплексный GEMM: четыре вещественных внешних произведения в одном флаконе

Время на прочтение8 мин
Охват и читатели6.1K

В этой части мы сначала отделим прямой комплексный путь от готового метода 1m; затем покажем конфликт между чередующимся форматом памяти и раздельной арифметикой внешних произведений; после этого разберём четыре вещественных внешних произведения, расслоение через svuzp, эпилог с комплексными alpha и beta, а в конце — почему сопряжение остаётся работой упаковщика. Следующая часть вернёт нас к упаковке и к тому месту, где эта граница ответственности особенно важна.

Читать далее

Как я писал сервер и нечаянно пробил 1М RPS

Уровень сложностиСложный
Время на прочтение4 мин
Охват и читатели6.7K

История об асинхронном серверном EAV‑движке, epoll'е, битовых полях и шардинге, который не смог.

Это должен был быть очередной вялотекущий рутинный проект TCP сервера, listen socket, пул потоков, пул соединений, СУБД и синхронизация всего этого добра. Сказать, что скучно — ничего не сказать.

Но у меня было несколько интересных мыслей и желание реализовать что‑то достойное. Писать чистый и изящный код, чтобы каждая деталь была на своём месте, все структурировано и ничего лишнего. Ресурсы позволяли писать код для удовольствия.

Этот сервер не стоит миллион рублей. Это обычная облачная виртуалка: 4 vCPU, 4.5 ГБ RAM, AlmaLinux 8. И она выдала 1М+ RPS на пакетах по 4 байта. Сервер стоял на 40% CPU.

Я прогнал тесты ещё несколько раз — результат не менялся. Сравнил счетчик сервера со счетчиками эмуляторов. Сервер стабильно держал 1М с копейками. Запросил информацию по производительности NGINX. Да ладно!?

Читать далее

Долго запускается qt creator, долго переходит между вкладками (проект, отладка, редактор), не работает масштабирование

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели12K

В этой статье рассматривается одна из причин такого поведения IDE Qt Creator и приводится решение этой проблемы. Актуальность:

1. В интернете нет описания и решения данной проблемы (я искал).

2. Некоторые решения данной проблемы, которые может выполнить пользователь, вредоносны.

3. ИИ не предлагает верного решения.

4. У ide Qt Creator нет лога ошибки данной проблемы (QT_DEBUG_PLUGINS=1 и gdb бесполезны).

Читать далее

Я написал программу для записи экрана, которой не нужен мощный ПК

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели9.7K

Представьте что вы — индус на отшибе мира у которого старенький ноутбук 2016-2017 года. Вам захотелось записать на YouTube видео с вашего компа, но вот незадача — OBS заставляет ваш ноутбук задыхаться. Bandicam платный, а бесплатной версией себя долго не помучаешь. Как насчет других аналогов? а вот фигушки! Если брать тот же ShareX то он не идёт с играми и жрёт кадры.

Принципе любой рекордер жрёт кадры, это неизбежно, в любом случае мораль проста - OBS идеален, если у тебя стоит хороший ПК. а если нет то... ну, тут ничего не поделаешь. Это не вина OBS — он решает другие задачи. Но для слабого железа нужен другой инструмент

И после одной такой мысли я подумал - а как решить эту проблему? Я живу по принципу "Критикуешь - предлагай" и я предлагаю свою программу - HomRec, которая решила мою проблему с OBS. Она полностью опенсурсна, есть на GitHub и бесплатна для каждого. Я написал её полностью на C++, она работает с помощью ffmpeg и, как мне кажется, вообще ничем не уступает по записи. А вот интерфейс знатно хромает.

Настройки помогают указать то как запись будет вестись, оверлеи исполняют базовые потребности по типу прикрепления картинки на экран или действий на клавиатуре. Так же я вошел в азарт и заделал туда свой терминал для различных задач (например — там есть свой пакетный менеджер для плагинов, а точнее их установки). подробнее я позже напишу в документации.

Кстати по поводу плагинов — они тоже присутствуют (как вы, скорее всего, уже поняли). Пишутся они на Lua 5.4, изначально я планировал сделать для этого Python но решил, что Lua больше подходит для этого.

Читать далее

После сборки на Tauri затрещал голос и почернел стрим: разбираем три ошибки одного теста

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5.9K

После сборки на Tauri голос начал трещать, автокалибровка почти минуту вмешивалась в разговор, а демонстрация экрана через минуту становилась чёрной. Разбираем запись и логи, находим усиление до ×4 без лимитера, резкие разрывы 20-мс аудиопакетов и зависший видеотрек при живом соединении LiveKit — и показываем, как исправили каждый сбой в версии 0.0.26.

Разобраться в причинах

Анатомия HurriCache

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.1K

HurriCache это распределенная key-value база данных с поддерожкой как простых типов ключ значение так и конейнеров, блокировок, работы с atomics и многое другое. HurriCache может работать как standalone так и в кластере. В данной статье не буду сравнивать ее ни с каким либо продуктом, просто расскажу о том что умеет решение а остальные выводы пускай сделают пользователи.

Читать далее

Программисты еще нужны… пока что

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.9K

Как я оптимизировал мультиплеер в Unreal Engine 5 вместе с Claude и Codex, а потом исправлял за ними ошибки.

Читать далее

Как я оптимизировал AlphaZero для Connect4: 1600 симуляций в минуту на GTX 1650 и 95% точности за полчаса обучения

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели6.6K

Давненько хотел написать бота, который играет в какую‑то сложную игру. Негамакс с альфа‑бета отсечением, конечно, работает неплохо, но на достаточно сложных играх тонет. В связи с этим, хотелось бы как‑то это ограничение обойти, что и привело меня к обучению с подкреплением. Стандартные Q‑Table, опять же, неприменимы для чего‑то сложнее крестиков‑ноликов, так что переходим к нейронным сетям. А точнее, к одному конкретному алгоритму: AlphaZero.

Читать далее

Vulkan API. GPU‑Driven Renderer (Bindless, BDA) на примере моего проекта Shuttle Engine

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели5.1K

Зачем писать свой 3D-движок в 2026 году? Чтобы заглянуть «под капот» современной графики. В этой публикации делюсь практическим опытом разработки Shuttle Engine: от прямого обращения к VRAM по 64-битным GPU-указателям и оптимизации на Vulkan 1.3 до создания гибкого кастомного окна на Win32 API и систем отладки кадра.

Читать далее

Расширение возможностей моделирования: от диагностики до улучшенного драггинга в C3D Solver

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.6K

Ксения Носулько, старший математик-программист, C3D Labs, рассказывает о новых функциях 3D-моделирования в решателе C3D Solver.

Модуль С3D Solver предназначен для управления взаимосвязями между геометрическими объектами. Он состоит из двумерного и трехмерного решателей, которые обеспечивают автоматическое обновление геометрии при изменениях с сохранением всех ранее наложенных взаимосвязей. Эти взаимосвязи могут быть как размерными (например, расстояния или углы между объектами), так и логическими — совпадение точек, фиксация радиусов, параллельность, перпендикулярность и прочее.

В 2D-решателе появилась поддержка нового объекта — вспомогательной оси. Он задается точкой и направляющим вектором. Ось не является кривой, однако, подобно любому линейному объекту, подчиняется наложенным на нее ограничениям.

Пример кода:

Читать далее

Ближайшие события

Сегодня ночью ShadPS4 присоединится к охоте: проверяем самый популярный эмулятор PS4

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели8.6K

Добро пожаловать на ПК, добрый охотник. Желаешь проверить на баги эмулятор ShadPS4?

20 августа исполнилось 136 лет Говарду Филлипсу Лавкрафту, мифы которого вдохновили множество игроделов. Одним из самых известным примером стала игра Bloodborne, и сегодня мы проверим долгожданный работоспособный эмулятор ShadPS4, благодаря которому игроки на ПК наконец смогли присоединиться к охоте.

Читать далее

Когда Chisel уже недостаточно: создаем свой фреймворк аппаратного тестирования на Verilator

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели10K

Привет! В этой статье я разберу, почему возможностей Chiseltest может не хватать для сложного аппаратного тестирования и как мы пришли к собственному фреймворку на базе Verilator и C++. Поговорим об архитектуре тестового окружения, BFM-агентах, автогенерации обвязки и интеграции с RTL и программными моделями. А заодно обсудим, какие задачи с таким подходом решаются лучше, чем с Chisel, и где все-таки остаются ограничения.

Читать далее

2,2 МБ против 128 МБ: честный бенчмарк Win32 и Tauri на живом голосовом клиенте

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.5K

После статьи о выборе Tauri нас спросили, сколько памяти будет занимать программа, которая живёт в трее рядом с игрой. Мы запустили старый БОЛТУН на Win32 и новый на Tauri в одинаковом пустом лобби. Получилось 2,2 МБ против 128 МБ. Разбираемся, откуда взялись девять процессов WebView2, что показал замер и почему это не стало автоматическим отказом от нового интерфейса.

Читать бенчмарк

Замерщик под Wayland — экранная линейка, скриншотер и пипетка на C++ и GTK4

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.6K

Переписал с Perl/GTK3 на C++/GTK4 ds-measurer — утилиту для измерений поверх живого экрана, снятия скриншотов (в буфер обмена и/или на диск) и цветов в различных CSS-нотациях (в буфер обмена и/или c выводом на экран).

Есть поддержка цветовых схем с переключением по ним, направляющих с прилипанием к ним, выделение из центра и/или с фиксированным соотношением сторон, настраиваемые сетки и хоткеи.

Читать далее

Разработчики в вашей компании уже тратят много токенов. Как проверить реальную пользу ИИ для бизнеса?

Время на прочтение20 мин
Охват и читатели6K

За час ИИ-агент может изменить десятки файлов, написать тесты и потратить большой объём токенов. Польза для команды зависит от результата. Если разработчик долго восстанавливает ход изменений, переписывает половину патча или обнаруживает пропущенный сценарий после слияния, работа агента только увеличивает нагрузку.

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

Для оценки каждой задачи нужны три параметра:

Читать далее

OpenIDE Pro в деле: Java, Spring, базы данных и AI-агенты в одной IDE

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.3K

За последние несколько лет часть привычных инструментов разработки стала для российских компаний ограничена или недоступна: возникли сложности с закупкой лицензий, обновлениями и официальной поддержкой. При этом разработчикам по-прежнему нужны знакомые инструменты: навигация по коду, рефакторинг, работа с фреймворками, базами данных и другими компонентами привычной IDE.

27 августа в 11:00 покажем OpenIDE Pro вживую: от разработки на Java и Spring до работы с базами данных и AI-агентами прямо в IDE.

👉 Зарегистрироваться на вебинар

Читать далее

Двойная точность: в основном «найти и заменить», плюс два настоящих сюрприза

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели7.3K

В этой части мы используем sgemm как шаблон и проверим, что действительно меняется при переходе к dgemm: сначала пройдём скучную часть с удвоенными ширинами, затем разберём прямоугольный тайл 16×32, после этого — отдельный бит возможностей FEAT_SME_F64F64 и динамическую регистрацию ядра. Следующая часть будет устроена иначе: там меняется не только ширина элемента, но и сама форма данных.

Читать далее
1
23 ...