16151
По всем вопросам- @haarrp @itchannels_telegram - 🔥 best it channels РКН: clck.ru/3FmxJF
🎮⚓ Консольная игра "Морской бой" на C++
Классическая игра "Морской бой" в консольном формате. Реализована на C++ с использованием ООП. Игроки могут размещать свои корабли на 10x10 поле и сражаться с компьютерным противником.
🚀Основные моменты:
- 10 кораблей разных размеров
- Редактор размещения кораблей
- Игра против бота
- Интуитивно понятный интерфейс
📌 GitHub: https://github.com/Savvas200/BattleShip-Console-Game
@cpluspluc
🧩 Умный текстовый анализатор для обработки данных
Этот репозиторий предлагает инструменты для анализа и обработки текстовой информации. Он включает в себя функции для извлечения ключевых слов, анализа частоты слов и других полезных методов, которые помогут в работе с текстовыми данными.
🚀 Основные моменты:
- Извлечение ключевых слов из текста
- Анализ частоты слов и фраз
- Поддержка различных форматов входных данных
- Легкий в использовании интерфейс
📌 GitHub: https://github.com/conanhujinming/text_dedup
@cpluspluc
🧠 C++ хитрая задача — SPSC-кольцевая очередь без блокировок (lock-free), корректная по memory ordering
Задача.
Реализуйте обобщённую кольцевую очередь single-producer / single-consumer (один писатель, один читатель), которая:
- не использует мьютексы;
- корректна по отношению к перезагрузкам CPU/компиляторным переупорядочиваниям (правильные `memory_order`);
- не падает на гонках при чтении/записи индексов;
- работает на произвольных типах T (в том числе не `trivially copyable`);
- имеет фиксированную ёмкость N, лучше степенью двойки для дешёвого модуля через маску.
Требования:
1) try_push(T) — помещает элемент, если не переполнено; возвращает false иначе.
2) try_pop(T&) — извлекает элемент, если не пусто; возвращает false иначе.
3) Между продюсером и консюмером ровно по одному потоку.
4) Без UB: корректно управлять временем жизни T (placement new / явный деструктор).
5) Отсутствие ложных срабатываний на гонки: индексы — std::atomic<size_t> с правильными порядками.
Решение
Ключевая идея: у нас **отдельные** атомики для `head` (читатель продвигает) и `tail` (писатель продвигает).
- Писатель смотрит `head` только с `memory_order_acquire` (наблюдать продвинутые позиции),
обновляет `tail` с `memory_order_release`.
- Читатель зеркально: читает `tail` с `acquire`, продвигает `head` с `release`.
Так мы гарантируем, что **запись объекта** произойдёт до публикации индекса, а **чтение** — после наблюдения индекса.
Частые ошибки (и почему это «хитро»):
- Неверные порядки памяти. seq_cst «вылечит», но дорого; relaxed везде — сломает HB-отношения. Нужны именно пары release/acquire на публикации индексов.
- Забыли разрушить объект в слоте. Утечки и нарушение инвариантов времени жизни.
- Модуль через % и N не степень 2. Работает, но медленнее; очень заметно на горячих путях.
- Многопоточность не SPSC. Даже два продюсера ломают модель: нужны дополнительные атомики/барьеры (или MPMC структура).
- false sharing на head_/tail_. Без выравнивания производительность деградирует на нагрузке.
⚡️ Dependabot теперь поддерживает vcpkg
GitHub объявил о расширении возможностей Dependabot — теперь система автоматических обновлений работает с vcpkg, менеджером зависимостей для C/C++ от Microsoft. Это позволит поддерживать актуальность native-библиотек без ручного вмешательства.
Теперь Dependabot отслеживает изменения в vcpkg.json и автоматически создает pull-request'ы для обновления builtin-baseline. Для подключения достаточно добавить конфигурацию vcpkg в файл .github/dependabot.yml.
🔗 Ссылка - *клик*
@cpluspluc
🔥 Полезны и удобный инструмент для работы с данными в JSON
Расширение для VSCode превращает JSON-файлы в наглядные диаграммы, позволяя быстро исследовать структуру и понимать взаимосвязи в данных.
Поддерживаются также YAML, XML и CSV. Все визуализации можно экспортировать в виде изображений.
Полностью бесплатно и с открытым исходным кодом.
https://github.com/ManuelGil/vscode-json-flow
@cpluspluc
🖥 Vicinae — высокопроизводительный нативный лаунчер для Linux
- Что это: Лаунчер, вдохновлённый Raycast, написан на C++ с использованием Qt. Ориентирован на разработчиков и power-users, он обеспечивает быстрый, преимущественно клавиатурный доступ к действиям в системе без лишнего «тяжёлого» UI.
- Особенности:
- Запуск и поиск установленных приложений
- Индексация файлов с полнотекстовым поиском по миллионам файлов
- Умный эмодзи-пикер с пользовательскими ключевыми словами
- Калькулятор с конвертацией единиц и валют + история
- Защищённая история буфера обмена с поиском по всем копируемым данным
- Быстрые ссылки (shortcuts) для мгновенного доступа
- Интеграция с оконным менеджером (например, копирование данных в активное окно)
- Теминг (светлые и тёмные темы, кастомные темы через конфиг)
- Совместимость с расширениями Raycast — доступ к его стору и установка «в один клик» (не все расширения пока работают)
- Лицензия: GPL-3.0, опен-сорс.
https://github.com/vicinaehq/vicinae
🎯 C++ Задача для опытных разработчиков: «Хитрый итератор»
У вас есть следующая структура:
std::vector<int> data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
data следующим образом:left и right, с шагом +1 и -1 соответственно, и внутри итератора отслеживать, с какой стороны взять следующий элемент.ZigZagIterator, внутри которого:operator++() переключает сторону (`left` / `right`),operator*() возвращает нужный элемент в текущем шаге,operator!=() сравнивает позиции указателей.
class ZigZagIterator {
public:
ZigZagIterator(const std::vector<int>& vec, bool end = false)
: data(vec), left(0), right(vec.size() - 1), useLeft(true), done(end) {}
int operator*() const {
return useLeft ? data[left] : data[right];
}
ZigZagIterator& operator++() {
if (useLeft) ++left;
else --right;
if (left > right) done = true;
useLeft = !useLeft;
return *this;
}
bool operator!=(const ZigZagIterator& other) const {
return done != other.done;
}
private:
const std::vector<int>& data;
size_t left, right;
bool useLeft;
bool done;
};
class ZigZagRange {
public:
ZigZagRange(const std::vector<int>& vec) : data(vec) {}
ZigZagIterator begin() const { return ZigZagIterator(data); }
ZigZagIterator end() const { return ZigZagIterator(data, true); }
private:
const std::vector<int>& data;
};
for (int val : ZigZagRange(data)) {
std::cout << val << " ";
}
// Output: 1 10 2 9 3 8 4 7 5 6
range-based for без копирования данных.operator--() и реализовать двунаправленный итератор.
Читать полностью…
🗄️ MyDumper — параллельный бэкап MySQL без головной боли. Этот инструмент делает логические дампы MySQL в 5-10 раз быстрее стандартного mysqldump за счёт многопоточной работы. Данные сохраняются в отдельных файлах для каждой таблицы, а встроенная поддержка регулярных выражений позволяет гибко выбирать, какие базы или таблицы включать в бэкап.
Разработчики интересно реализовали согласованность данных: инструмент сначала блокирует таблицы глобальным read-lock, затем создаёт транзакционные снимки для каждого потока и только потом отпускает блокировки. Для восстановления есть параллельный загрузчик myloader
🤖 GitHub
@cpluspluc
📥 Palanteer — инструмент для глубокого анализа производительности C++ и Python-приложений. Этот проект предлагает детальную телеметрию: от временных меток выполнения функций до отслеживания потребления памяти и переключений контекста.
Инструмент обладает минималистичной интеграцией: в C++ достаточно подключить один заголовочный файл, а Python-код анализируется автоматически. Визуализация в реальном времени включает временные графики, flame graphs и логи с наносекундным разрешением.
🤖 GitHub
@cpluspluc
🚀 Хотите мониторить загрузку вашей NVIDIA GPU прямо из C++?
Вот минимальный пример на C++, который использует nvidia-smi через системный вызов для получения текущей загрузки GPU и использованной памяти.
🛠 Требования:
• Установленный драйвер NVIDIA и утилита nvidia-smi
• C++17 или выше
📄 Код:
#include <iostream>
#include <cstdlib>
#include <memory>
#include <array>
void get_gpu_utilization() {
std::array<char, 128> buffer;
std::string result;
std::unique_ptr<FILE, decltype(&pclose)> pipe(
popen("nvidia-smi --query-gpu=utilization.gpu,memory.used,memory.total --format=csv,nounits,noheader", "r"),
pclose
);
if (!pipe) {
std::cerr << "❌ Ошибка при вызове nvidia-smi" << std::endl;
return;
}
int gpu_id = 0;
while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) {
std::string line(buffer.data());
size_t pos1 = line.find(',');
size_t pos2 = line.rfind(',');
std::string util = line.substr(0, pos1);
std::string mem_used = line.substr(pos1 + 1, pos2 - pos1 - 1);
std::string mem_total = line.substr(pos2 + 1);
std::cout << "🖥 GPU " << gpu_id++ << ": " << util << "% load | "
<< mem_used << " MiB / " << mem_total << " MiB";
}
}
int main() {
get_gpu_utilization();
return 0;
}
🖥 GPU 0: 17% load | 512 MiB / 8192 MiB
🧠 Топ языков от евангелиста функционального программирования
Один из известных проповедников Haskell выложил свою субъективную классификацию языков программирования — от «святых граалей» до «цифровых окаменелостей».
Вот кратко по категориям:
Евангелист функционального программирования выложил свой рейтинг языков — и, как всегда, без компромиссов:
S: OCaml, C++
A: Haskell, Python, Rust, Kotlin
B: Scala, Go, Ruby, Swift, C#, TypeScript
C: PHP, Clojure, Java, C, Ассемблер
D: JavaScript, Bash
E: Fortran, Objective-C, COBOL, Perl
🍿 Комментарии уже взрываются — кто-то радуется за Kotlin в A, кто-то негодует за Java в C, кто-то вообще считает, что JS заслуживает отдельной категории «F».
А вот философский вопрос на подумать:
👉 Разработчики, которые всё ещё пишут на категории E — это уверенные мастера или уже цифровые археологи?
(Спойлер: COBOL-разработчики зарабатывают больше нас всех вместе взятых.)
#языкипрограммирования #fp #разработка #devюмор #tirlist
@cpluspluc
🎮 Cemu — эмулятор Wii U, который оживляет забытые игры.
Этот проект предлагает современное решение для запуска классических тайтлов Nintendo вроде Mario Kart 8 или Breath of the Wild. При этом он не просто запускает игры Wii U — он делает это с поддержкой 4K, модами и улучшенной производительностью.
При этом эмулятор пытается сохранять простоту: portable-версия для Windows не требует установки, а сообщество активно создает графические моды. Хотя macOS-сборка пока экспериментальна, на Linux и Windows большинство игр работают почти идеально.
🤖 GitHub
@cpluspluc
🛰️ ip-nose — геолокация IP в стиле «Матрицы» прямо в терминалеip-nose — это кроссплатформенный CLI-инструмент на C++ для определения геопозиции IP-адресов с эффектной визуализацией в стиле «Matrix». Работает на Linux и Termux.
🔹 Определение вашего IP и локации в один клик
🔹 Информация: страна, город, провайдер, координаты
🔹 Цветной интерфейс с ASCII-анимацией
🔹 Сохраняет историю запросов
🔹 Поддержка кастомной конфигурации через config.json
📦 Установка:
git clone https://github.com/Karim93160/ip-nose.git
cd ip-nose
make
sudo make install
ip-nose
💽 KDiskMark — удобный бенчмарк дисков с графическим интерфейсом. Этот инструмент на Qt упрощает тестирование скорости HDD и SSD, скрывая сложность fio за дружелюбным интерфейсом.
Здесь есть готовые пресеты для разных сценариев — от последовательного чтения до случайных операций с мелкими файлами. Интересно, что программа умеет генерировать детальные отчёты в читаемом формате с показателями IOPS и задержек. Поддержка 20+ языков и сборка через Flatpak/Snap делают её доступной для большинства дистрибутивов Linux.
🤖 GitHub
@cpluspluc
🎮 REFramework — мощный моддинг-фреймворк для игр на движке RE Engine от Capcom. Этот инструмент открывает новые возможности для кастомизации Resident Evil, Monster Hunter, Devil May Cry и других популярных тайтлов.
Проект предлагает готовые моды (VR-режим, изменение FOV, отключение виньетирования) и гибкую систему скриптов на Lua. Особый интерес представляет поддержка 6DOF VR с motion-контроллерами для RE2/RE3/RE7/RE8, что полностью меняет игровой опыт.
🤖 GitHub
@cpluspluc
🖥 Высокопроизводительная P2P библиотека на C++17
librats — это современная библиотека для пиринговых сетей, обеспечивающая высокую производительность и простоту использования. Она предлагает кроссплатформенные решения с поддержкой автоматического обнаружения узлов, NAT-траверсала и безопасной передачи данных.
🚀 Основные моменты:
- Высокая производительность с использованием C++17
- Поддержка DHT, mDNS и STUN для обнаружения узлов
- Безопасная передача данных с шифрованием и проверкой целостности
- Удобный API для работы с событиями и сообщениями
- Кроссплатформенность: Windows, Linux, macOS
📌 GitHub: https://github.com/DEgitx/librats
#cpp
@cpluspluc
📦 C++ обертка для SQLite с расширенными возможностями ⚙️
Библиотека boost_sqlite предоставляет удобный интерфейс для работы с SQLite в C++. Она поддерживает типизированные запросы, подготовленные выражения, функции на основе JSON и пользовательские функции. Библиотека не скрывает C-API SQLite, а дополняет его.
🚀Основные моменты:
- Типизированные запросы и подготовленные выражения
- Поддержка JSON и пользовательских функций
- Виртуальные таблицы и хуки событий
- Легкая интеграция с существующими проектами
📌 GitHub: https://github.com/klemens-morgenstern/sqlite
@cpluspluc
📌Анатомии GPU и TPU: 12 глава пособия "How to Scale Your Model"
Группа инженеров из Google DeepMind опубликовали 12-ю главу своего он-лайн учебника "How to Scale Your Model: A Systems View of LLMs on TPUs"
How to Scale Your Model - практико-ориентированное руководство по масштабированию LLM из 12 разделов для разработчиков и исследователей. Оно объясняет, как анализировать и оптимизировать производительность модели, учитывая системные ресурсы: вычисления, память и пропускную способность.
Пособие научит выбирать оптимальные стратегии параллелизма, оценивать стоимость и время обучения и инференса, а также глубже понять взаимодействие между TPU/GPU и алгоритмами масштабирования как на одном, так и на тысячах ускорителей.
🆕 Анонс: Proxy 4 — новый шаг в C++-полиморфизме
🟢 Что такое Proxy 4?
Proxy — это header-only, кроссплатформенная библиотека C++20, позволяющая писать полиморфный код без наследования и традиционных виртуальных функций.
Используется в кодовой базе Windows с 2022 года и теперь выходит как зрелая, готовая к продакшену технология.
**Что нового в версии 4?**
- Навыки (Skills): простое подключение возможностей (format, fmt_format, rtti, as_view, slim и др.) через композицию фасадов.
- proxy_view и weak_proxy: удобные типы для нефламентируемых и слабых ссылок.
- Совместное владение: новые API make_proxy_shared и allocate_proxy_shared обеспечивают эффективное разделенное владение без overhead std::shared_ptr.
- Умный диспетчинг и конверсии: возможности weak_dispatch, explicit_conversion_dispatch, улучшенные сообщения об ошибках, понятные концепты proxiable_target, inplace_proxiable_target.
- Рекурсивные фасады: facade_aware_overload_t позволяет строить рекурсивные операторы (например, арифметику, конкатенацию) без преждевременной инстанциации.
Документация теперь размещена на обновлённом сайте — удобная навигация, FAQ, API-справочник, примеры.
Также доступен экспериментальный запуск в Compiler Explorer: попробуйте Proxy прямо в браузере без настройки среды.
Почему это важно?
- Полиморфизм без наследования и виртуалок: менее навязчиво, гибче и возможно производительнее.
- Эффективное управление временем жизни объектов: поддержка владения, заимствования и слабых ссылок.
- Высокая производительность сравнима или превосходит ручной код.
- Расширяемость и гибкость: полиморфизм поверх функций, операторов, конверсий и даже кастомных абстракций.
Что говорят разработчики (reddit-комментарии):
> “Proxy library is like std::any … but adds runtime polymorphism without needing inheritance.”
> — TheFreestyler83
> “It's like doing &something as &dyn Display in Rust… you can do type erasure like virtual interfaces, but without editing types.”
> — qalmakka
> “They claim it's both easier and faster, but … ownership seems very unclear …”
> — Bart_V
Резюме
- Proxy 4 — новый стандарт для полиморфизма в C++.
- Богатая модульная архитектура — расширение навыков через фасады.
- Инструменты: документация, примеры в Compiler Explorer, нативные C++20 возможности.
- Признание от сообщества и множество способов применения, включая заимствование идей из Rust.
🟠 Автор: Mingxin Wang, старший инженер Microsoft: devblogs.microsoft.com/cppblog/announcing-proxy-4-the-next-leap-in-c-polymorphism
@cpluspluc
🚨 Вышла новая версия Boost 1.89.0 — значительное обновление популярной библиотеки для C++. Этот релиз приносит как важные исправления, так и новые возможности для современных проектов.
Среди ключевых изменений — улучшенная поддержка современных стандартов: Asio получил новые функции для работы с аллокаторами, Atomic теперь включает TSAN-инструментацию для анализа многопоточного кода, а Geometry был существенно переработан для повышения точности вычислений. Также появилась новая библиотека Bloom для работы с фильтрами и улучшена поддержка модулей C++20.
🔗 Ссылка - *клик*
@cpluspluc
🎓 Комьюнити Cursor собрало огромную библиотеку гайдов и инструментов для вайбкодеров. Тут есть всё, чтобы работать с ИИ было проще и эффективнее:
— Готовые промты под разные задачи
— MCP-серверы для общения с внешними приложениями
— И самое крутое: генератор уникальных промт-правил под ваш проект
Налетай — всё это бесплатно и уже доступно.
🔗 https://cursor.directory/
⚡️ Почему лучшие разработчики всегда на шаг впереди?
Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.
ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Физика: t.me/fizmat
SQL: t.me/databases_tg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🖥 Chatgpt для кода в тг: @Chatgpturbobot
📕Ит-книги: /channel/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi
Подпишись, чтобы всегда знать, куда двигаться дальше!
⭐️ Техножурнал Яндекс 360: рассказываем о технологиях
В Яндекс 360 мы создаём технологии, которые работают в основе более чем 13 сервисов, включая Диск, Почту, Телемост, Мессенджер и другие.
Открывайте Техножурнал, чтобы узнать:
— Как мы балансируем нагрузку в 300k RPS в Яндекс Мессенджере,
— Как подружили MongoDB и PostgreSQL в Диске,
— Какие в команде культура и ценности.
А ещё — как мы внедряли DDD, кто такой Technical Owner, как управляем 650+ шардами PostgreSQL и как подходим к проектированию архитектуры наших сервисов.
⭐️ Всё это — в Техножурнале Яндекс 360.
@yandex360team
Sane C++ Libraries — обновление за июнь 2025
🔧 Библиотека продолжает закрывать боль C++-разработчиков: теперь ещё больше асинхронщины и удобных обёрток без лишнего шаблонного ада.
Новое:
✅ Асинхронные операции с файлами и папками
- copy/remove/rename {file|folder}
- open/close/read/write file
✅ Асинхронный UDP:
- SendTo, ReceiveFrom
✅ Улучшения в файловой системе:
- Iterator, Watcher
- Убраны лишние зависимости от памяти
🔗 https://pagghiu.github.io/site/blog/2025-06-30-SaneCppLibrariesUpdate.html
🔗 https://github.com/Pagghiu/SaneCppLibraries/releases/tag/release%2F2025%2F06
@cpluspluc
⚡️ DOSBox Staging — современная эволюция легендарного эмулятора DOS с поддержкой новых технологий и активным развитием. Этот форк сохраняет совместимость с классической версией, но добавляет улучшенную обработку звука, поддержку современных кодеков и удобные функции вроде записи игрового процесса.
Проект использует SDL2, предлагает кроссплатформенные сборки для Windows, Linux и macOS, а также поддерживает динамическую загрузку библиотек вроде FluidSynth. Для разработчиков есть интеграция с Tracy Profiler и система CI.
🤖 GitHub
@cpluspluc
🧠 C++ Задача для продвинутых: загадка с `std::move` и `const`
❓ Задача: что выведет этот код и почему?
#include <iostream>
#include <string>
#include <utility>
std::string identity(std::string&& s) {
std::cout << "rvalue reference\n";
return std::move(s);
}
std::string identity(const std::string& s) {
std::cout << "const lvalue reference\n";
return s;
}
int main() {
const std::string a = "hello";
std::string b = identity(std::move(a));
std::cout << "Result: " << b << std::endl;
}
rvalue reference const lvalue reference a объявлена как const std::string. Даже после std::move(a) она остаётся const, потому что std::move не снимает константность, он лишь преобразует к rvalue:
std::move(const std::string&) → const std::string&&
identity:identity(std::string&&) — принимает неконстантный rvalue identity(const std::string&) — принимает константный lvalueconst std::string&& не подходит к std::string&&, потому что нельзя привязать rvalue-ссылку к `const`-объекту без соответствия типов.const std::string&std::move не делает объект мутабельным. Если объект const, он остаётся const, и rvalue-перегрузки не срабатывают.std::move всегда учитывайте `const`-квалификатор. Он может "сломать" ожидаемую семантику перемещения.
Читать полностью…
Научный журнал конференции AI Journey 2025: гонка за миллионом и публикацией в авторитетном журнале началась!
Рассказать о своем исследовании миру, получить миллион и бонус к научной карьере!
В рамках международной конференции AI Journey запущен научный батл с призовым фондом 1 000 000 ₽ за лучшую работу в области искусственного интеллекта. Но это не просто конкурс!
Твоё исследование может попасть в спецвыпуск «Доклады Российской академии наук. Математика, информатика, процессы управления» и его англоязычной версии Doklady Mathematics.
Условия:
— Полная оригинальность — никакого рерайта чужих статей и переизбытка цитат
— Дедлайн — 20 августа (отсчёт уже идёт!)
— Языки: русский/английский
Узнать правила и подать статью на отбор -> AI Journey
🚀 Разработчик показал движок на C, который работает в 14 раз быстрее Unity в браузере — и теперь доступна онлайн-демо.
Многие не поверили в заявленную разницу в производительности, поэтому он выложил демо в открытый доступ. Сравнение проводится с реальным Unity-проектом, выложенным на GitHub.
🛠️ C-движок демонстрирует:
• Существенно более высокую FPS в браузере
• Минимальную просадку при рендеринге
• Низкий overhead по сравнению с WebAssembly-сборкой Unity
💬 Автор пока не решил, выкладывать ли исходники C-версии — рассматривает вариант лицензии CC (non-commercial).
🔗 Демо: https://cgamedev.com/
🔗 Код: https://github.com/gabrieldechichi/unity_webglperftest
@cpluspluc
🌟 Kimi-Dev-72B: открытая модель для багфикса и тестирования кода.
Moonshot AI пополнил свое семейство Kimi моделью Kimi-Dev-72B, специализированной для программирования и разработанной для решения задач инженерии ПО. Она, как заявляют разработчики, особо эффективна в исправлении ошибок и написании тестов.
Ее сила в том, что она не просто пишет код, а имитирует мышление программиста, учитывая последствия изменений и проверяя их в автоматизированных тестах.
🧑💻 Apache NetBeans 26: новая версия классической IDE с поддержкой современных технологий.
Несмотря на растущую популярность VS Code, среда разработки NetBeans продолжает эволюционировать, представив свежий релиз с улучшенной поддержкой Java 24, Jakarta EE 11 и даже экспериментальными фичами для будущего Java SE 25.
Особого внимания заслуживает обновлённый LSP-клиент для C++ и JavaScript — теперь IDE лучше работает с языковыми серверами, постепенно догоняя по функционалу современные редакторы кода. А 150 новых SVG-иконок и исправления для HiDPI-экранов делают интерфейс приятнее для глаз.
🔗 Ссылка - *клик*
@cpluspluc