По всем вопросам- @haarrp @itchannels_telegram - 🔥 best it channels РКН: clck.ru/3FmxJF
🧠 Claude Opus решил баг, с которым я боролся почти 5 лет — личная история разработчика C++ и бывшего старший инженер FAANG с
💬 Один из пользователей на Reddit поделился настоящим инсайтом: после многолетней борьбы с трудноуловимым багом, ему наконец-то помог… Claude Opus.
Баг был из тех, что появляются раз в полгода, ведут себя нестабильно, и каждый раз ускользают от дебаггера. В отчаянии он просто описал проблему Claude-у — без стеков, логов, трейсинга. И внезапно получил абсолютно точный ответ: баг оказался связан с тем, как обрабатывались замыкания внутри лямбд, теряющих доступ к нужному контексту после асинхронного вызова.
🤯 **Результат**: 5 лет неуловимого бага ушли решились после диалога с ИИ.
📌 Это не просто красивая история. Она показывает, как LLM уровня Opus начинает конкурировать не только с поиском и документацией — но и с самим процессом инженерного мышления.
🔍 Что можно вынести:
• Не бойся формулировать даже "глупые" вопросы — хорошие модели часто угадывают суть
• Застрял на баге? Попробуй объяснить его как человеку — иногда именно это помогает найти решение
• Хороший ИИ не заменит опыт, но может стать отличным напарником по отладке
📎 Оригинальный пост на Reddit
@cpluspluc
🔍 C++ Задача для профи: кто вызовется?
У тебя есть следующий код:
#include <iostream>
#include <type_traits>
template<typename T>
typename std::enable_if<std::is_integral<T>::value, void>::type
process(T value) {
std::cout << "Integral: " << value << std::endl;
}
template<typename T>
typename std::enable_if<std::is_floating_point<T>::value, void>::type
process(T value) {
std::cout << "Floating-point: " << value << std::endl;
}
int main() {
process(42); // (1)
process(3.14); // (2)
process('A'); // (3)
}
process('A')
может удивить?true
?char
— это integral type, а не string
и не отдельный классtrue
— это тоже int`-подобный тип: `std::is_integral<bool>::value == true
🐧 Новый бэкдор Auto-Color атакует Linux: как он работает и почему это опасно
Исследователи из Unit 42 (Palo Alto Networks) сообщили об обнаружении нового Linux-бэкдора под названием Auto-Color, отличающегося продвинутыми методами сокрытия и устойчивостью в системе. Он нацелен на серверные инфраструктуры и контейнерные среды.
🛠 Что известно о Auto-Color:
• написан на C/C++, может работать в большинстве современных Linux-дистрибутивов
• использует спуфинг процесса — маскируется под безобидные системные процессы (`kworker`, `cron`)
• поддерживает удалённое выполнение команд и может скачивать/исполнять произвольные бинарники
• при старте внедряется в системные скрипты автозапуска (`~/.bashrc`, rc.local
, `systemd`)
• содержит self-delete механизм, чтобы удалить себя после выполнения задачи
• применяет встроенное шифрование конфигурации и команд управления (C2)
🔒 Вектор заражения:
• Auto-Color попадает в систему через:
- вредоносные скрипты в контейнерных образах
- эксплойты для уязвимых веб-приложений
- бэкдоры в CI/CD пайплайнах
💡 Интересные особенности:
• использует нестандартные порты и нестандартные протоколы поверх TCP/UDP
• шифрует коммуникации с C2-сервером с помощью RC4/ChaCha
• хранит свои конфигурации в скрытых файлах dotfiles или шифрованных секциях бинарника
📉 Почему это важно:
• многие системы мониторинга пропускают его из-за обфускации
• он способен действовать неделями незаметно
• наличие встроенной логики persistence делает его опасным в DevOps-среде
🔍 Что делать:
1. Анализировать подозрительные процессы, даже если они выглядят как kworker
2. Проверить наличие изменений в .bashrc
, .profile
, cron'ах и unit-файлах systemd
3. Изолировать подозрительные контейнеры и проверить их содержимое на вредоносные бинарники
4. Использовать инструменты типа rkhunter
, chkrootkit
, Falco
, AuditD
🧠 Вывод:
Auto-Color — пример того, насколько сложно может быть обнаружение современных Linux-бэкдоров. Его появление — ещё одно напоминание о необходимости непрерывного мониторинга, Zero Trust подхода и анализе поведения процессов, а не только сигнатур.
📌 Оригинальный анализ
@cpluspluc
Наша команда Mobile SDK сделала решение, которое позволяет из Flutter-приложения напрямую вызывать C++ код. Под капотом:
➡️ FFI для прямого взаимодействия с C++ кодом ядром;
➡️ Кодогенерируемое API почти полностью аналогично iOS и Android Mobile SDK;
➡️ TextureWidget вместо PlatformView для рендеринга карты;
➡️ Единые виджеты для отображения карты как для Android, так и для iOS.
Если тебе нравится разбираться в архитектуре SDK — заглядывай читать. Детально рассказываем про основу продукта — кодогенератор для генерации платформенного Dart-кода на основе C++ интерфейсов.
⚡️Готовы повысить квалификацию и стать востребованным профи в C++?
Курс «C++ Developer. Professional» — идеальный выбор для разработчиков, которые уже знакомы с языком и хотят выйти на новый уровень. Вы освоите принципы многопоточного программирования, работу с новыми стандартами C++ 20 и 23, а также научитесь эффективно взаимодействовать с сетью и обрабатывать большие объемы данных. Интересные кейсы и 14 практических работ помогут закрепить знания и подготовиться к реальным задачам.
С обучением от OTUS вы получите глубокое понимание C++, научитесь проектировать масштабируемые решения и писать чистый, эффективный код. После завершения курса у вас будет прочная база для роста и карьерного продвижения в крупнейших IT-компаниях.
👉Пройдите вступительное тестирование и получите скидку на обучение:https://otus.pw/jJ4O/?erid=2W5zFHRfeBS
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🧪 Jank — диалект Clojure, который вместо JVM использует LLVM и предлагает бесшовную интероперабельность с C++. Разработчики обещают сохранить всю прелесть Clojure: иммутабельные структуры данных, функциональный подход и REPL, но с перспективой нативной производительности.
Пока проект находится в активной разработке, но уже поддерживает базовый синтаксис Clojure и часть core-функций. Для фанатов Clojure, которые мечтают избавиться от JVM-оверхедов, jank может стать интересной альтернативой.
🤖 GitHub
@cpluspluc
🧵 Пишем свой сетевой стек с нуля: Ethernet и ARP на C
Хочешь разобраться, как работает TCP/IP на самом низком уровне?
В этой статье показано, как реализовать Ethernet и ARP в пользовательском пространстве Linux — на чистом C.
🔌 Что используется:
- TAP-устройство для приёма и отправки "сырых" Ethernet-кадров
- Структуры с __attribute__((packed))
для точного соответствия форматам
- Чтение и парсинг ARP-пакетов вручную
📦 Что реализуется:
- Создание ARP-запросов и обработка ответов
- Простейший ARP-кэш
- Парсинг и генерация Ethernet-фреймов
- Весь ввод-вывод — в user space
🧠 Зачем это нужно?
- Понимание, как работают сетевые интерфейсы на уровне байтов
- Практика системного программирования на C
- Основа для написания своего сетевого стека: IPv4, ICMP, UDP, TCP
📚 Статья:
https://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/
💻 Исходники на GitHub:
https://github.com/saminiir/level-ip
#Linux #Networking #C #TCPIP #ARP #Ethernet #DevLowLevel #СистемноеПрограммирование
Backend Talks от Яндекс 360
Смотрите записи докладов с митапа от Яндекс 360 для бэкенд-разработчиков, архитекторов и DevOps-инженеров.
На пути к 9999: Игорь Обручев, руководитель группы SRE, рассказал, какими принципами команда руководствуется при создании сервисов, как без паники чинят инциденты и как в этом помогают учения.
Эволюция проектирования общих решений в Яндекс 360: Евгений Ширанков, руководитель команды платформенных сервисов, рассказал про подходы и лайфхаки, которые помогли выдержать рост команды и оставаться в контексте создания общих решений, не переизобретая велосипеды.
Ценности и культура команды: Роман Акинфеев, руководитель бэкенд-разработки, рассказал, почему культура и ценности являются важнейшими активами команды, которые сложно создать и поддерживать, но легко потерять в период взрывного роста.
Больше материалов о технологиях в Яндекс 360
@yandex360team
🎮 UEVR — универсальный мод для погружения игр Unreal Engine в VR. С помощью UEVR можно превратить практически любой проект на Unreal Engine 4-5 в полноценный VR-эксперимент с поддержкой 6DOF, стереоскопическим 3D и даже эмуляцией motion-контроллеров.
Важно заметить, что разработчики вместо кропотливой адаптации каждой игры работают напрямую с движком. Это открывает путь к исследованию сотен проектов от инди-хорроров до AAA-хитов через шлем VR.
🤖 GitHub
@cpluspluc
🍊 JUCE — фреймворк для создания аудиоприложений на C++. Этот инструмент — must-have для разработчиков аудиоплагинов и музыкальных приложений. Проект предоставляет готовые компоненты для работы с аудио, MIDI и GUI, которые работают на всех платформах, от macOS до Android.
Фреймворк также имеет интеграцию с CMake: можно собрать проект одной командой, а встроенный генератор создаст настройки для Xcode, Visual Studio и Android Studio. Под капотом поддержка современных стандартов вроде C++17 и ARM-архитектур.
🤖 GitHub
@cpluspluc
💥 CLion теперь бесплатен для некоммерческих проектов! 😮
CLion — мощная IDE для разработки на C и C++, стала доступна бесплатно для:
• студентов и всех, кто изучает программирование
• разработчиков open source-проектов
• создателей обучающего и технического контента
Отличная возможность работать в профессиональной среде без затрат 💻
👉 Официальная шпаргалка по горячим клавишам для CLion: https://resources.jetbrains.com/storage/products/clion/docs/CLion_reference_card_all.pdf
@cpluspluc
🖥 Эта статья рассказывает о подходах к бенчмаркингу при тестировании C++ кода!
🌟 Автор делится методами, как проводить точные и надежные бенчмарки, используя высокоточные таймеры и разделяя бенчмарки на разные исполнимые файлы для минимизации ошибок. В статье также рассматриваются проблемы и трудности, с которыми можно столкнуться при измерении производительности, и даются рекомендации по улучшению точности результатов.
🔗 Ссылка: *клик*
@cpluspluc
МТС приглашает разработчиков на масштабную ИТ-конференцию True Tech Day 6 июня. Участие бесплатно
Ключевая тема конференции в этом году — искусственный интеллект. Тебя ждут доклады ученых, выступления зарубежных спикеров по AI и экспертов крупных ИТ-компаний.
В программе:
— 4 трека и больше 40 докладов.
— Выступления зарубежных спикеров с индексом Хирша более 50.
— Концентрация практических кейсов: как создаются большие ML-проекты.
— Доклады по архитектуре, бэкенд-разработке и построению ИТ-платформ.
— AI-интерактивы и технологические квесты.
— Пространство для нетворкинга,
…а еще after-party со звездным лайн-апом.
Когда: 6 июня
Где: Москва, МТС Live Холл и онлайн
Участие бесплатно. Регистрация по ссылке.
👾 Vita3K — экспериментальный эмулятор PlayStation Vita для Windows, Linux, macOS и Android. Проект уже демонстрирует впечатляющие результаты: часть коммерческих игр и множество homebrew-приложений запускаются, хотя разработчики предупреждают о возможных багах. Среди поддерживаемых игр — Persona 4 Golden, VA-11 HALL-A и другие культовые проекты.
Проект распространяется под лицензией GPLv2 и активно развивается благодаря поддержке сообщества. Важно отметить, что эмулятор не предназначен для пиратства — игры должны быть дампами с оригинальных носителей.
🤖 GitHub
@cpluspluc
🔒 Microsoft ограничила работу своего C/C++ расширения в форках VS Code
Пользователи альтернативных редакторов на базе VS Code столкнулись с блокировкой проприетарного расширения для C/C++ от Microsoft. После обновления до версии 1.24.5 плагин начал выдавать ошибку, сообщая о возможности работы только в официальных продуктах Microsoft — VS Code, Visual Studio и связанных сервисах.
Ситуация вновь поднимает вопрос о зависимости open-source проектов от проприетарных дополнений. Пока единственное решение для тех, кому критично расширение от Microsoft — откат на старую версию и отключение автообновлений.
🔗 Ссылка - *клик*
@cpluspluc
🚀 Drogon — современный веб-фреймворк на C++
Если ты разрабатываешь высокопроизводительные REST API, микросервисы или real-time backend на C++, обрати внимание на [Drogon](https://github.com/drogonframework/drogon) — один из самых быстрых и полноценных фреймворков на C++17/20.
🔧 Что умеет Drogon:
• ⚡ Асинхронный event loop (epoll/kqueue)
• 🧵 Поддержка std::future
, coroutines и background-задач
• 🛡 JWT, HTTPS, CORS, middleware
• 🔌 Плагины и фильтры для расширяемости
• 🧠 Встроенный ORM (PostgreSQL, MySQL, SQLite)
• 🌐 WebSocket и Server-Sent Events (SSE)
• 🧪 Встроенное тестирование
• 📄 Автогенерация кода для контроллеров и DTO
📦 Пример Hello World:
drogon::app().registerHandler("/hello", [](const HttpRequestPtr&, std::function<void (const HttpResponsePtr &)> &&callback) {
auto resp = HttpResponse::newHttpResponse();
resp->setBody("Hello, Drogon!");
callback(resp);
}).run();
git clone https://github.com/drogonframework/drogon.git
cd drogon && mkdir build && cd build
cmake .. && make && sudo make install
Хотите освоить C++ с нуля и стать востребованным разработчиком?
Пройдите курс от OTUS и получите знания, которые откроют перед вами новые карьерные горизонты!
⚡️ Этот курс идеально подходит для начинающих и тех, кто хочет углубить свои знания. С нуля до уровня Middle Developer — вы освоите создание собственных типов данных, работу с многопоточностью и современными стандартами C++. Изучите лучшие практики проектирования, работу с памятью и сетью, а также освоите принцип работы с базами данных и CI/CD.
🔥 На обучении вы разработаете 2 реальных проекта для портфолио, а диплом OTUS поможет вам уверенно проходить собеседования в крупнейших компаниях. Станьте частью индустрии с актуальными знаниями!
👉 Оставьте заявку: https://tglink.io/dab3db2405d6?erid=2W5zFHRZw52
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🧪 Vaev — легковесный HTML/CSS-движок на C++
Проект [Vaev](https://github.com/skift-org/vaev) от skift-org
— это минималистичный, быстрый и безопасный движок рендеринга HTML/CSS, написанный на современном C++.
🔧 Что умеет:
- Рендерит HTML и XHTML (работает даже с google.com — *почти полностью*)
- Поддерживает каскадные стили, calc()
, var()
, @page
и вывод в PDF
- Работает с file://
и HTTP-запросами (без HTTPS и JS)
- Идеален для генерации документов вместо wkhtmltopdf
🧑💻 Для кого:
- Для разработчиков, которым интересно, как устроен браузер
- Для тех, кто хочет встроить простой и быстрый движок CSS-рендеринга в своё ПО
- Для интеграции в системы типа Odoo и скриптов по генерации печатных версий сайтов
📦 Пример запуска:
pip install git+https://github.com/cute-engineering/cutekit
python -m ck run --release vaev-browser -- yourfile.html
skiftOS
или использовать отдельно🧠 Хитрая задача на C++: "Исчезающее число среди строк"
Условие
Дан список строк, представляющих числа от 1 до 100 включительно. Одного числа нет.
Твоя задача — найти, какого именно числа не хватает.
Нельзя использовать сортировку, std::accumulate
, std::unordered_map
, std::stoi
можно.
Пример:
Массив: ["1", "2", "3", ..., "98", "99"] (без "100")
Ответ: 100
Формат:
int findMissingNumber(const std::vector<std::string>& data);
#include <iostream>
#include <vector>
#include <string>
int findMissingNumber(const std::vector<std::string>& data) {
int xor_full = 0;
int xor_data = 0;
for (int i = 1; i <= 100; ++i) {
xor_full ^= i;
}
for (const auto& s : data) {
xor_data ^= std::stoi(s);
}
return xor_full ^ xor_data;
}
int main() {
std::vector<std::string> data;
for (int i = 1; i <= 100; ++i) {
if (i != 57) { // Удалим 57
data.push_back(std::to_string(i));
}
}
std::cout << "Пропущено: " << findMissingNumber(data) << std::endl;
return 0;
}
a ^ a = 0
, 0 ^ b = b
. Поэтому: 🧠 Задача с подвохом для продвинутых C++ разработчиков
🔹 Уровень: Advanced
🔹 Темы: std::vector
, управление памятью, конструкторы/деструкторы, reserve()
vs resize()
📌 Условие
Рассмотрим следующий код:
#include <iostream>
#include <vector>
struct Foo {
Foo() { std::cout << "Ctor\n"; }
~Foo() { std::cout << "Dtor\n"; }
Foo(const Foo&) { std::cout << "Copy\n"; }
Foo(Foo&&) noexcept { std::cout << "Move\n"; }
};
int main() {
std::vector<Foo> v;
v.reserve(3); // Резервируем место под 3 элемента
std::cout << "--- Pushing ---\n";
for (int i = 0; i < 3; ++i) {
v.push_back(Foo());
}
std::cout << "--- Done ---\n";
}
reserve()
не предотвращает конструкторы копирования/перемещения? reserve(3)
на resize(3)
?
--- Pushing ---
Ctor
Move
Dtor
Ctor
Move
Dtor
Ctor
Move
Dtor
--- Done ---
Dtor
Dtor
Dtor
Foo()
создаёт временный объект. push_back()
вызывает перемещающий конструктор Move
. reserve(3)
выделяет память, но не создаёт объектов.resize(3)
создаст 3 объекта Foo через конструктор по умолчанию. push_back(Foo())
добавит четвёртый, возможно вызовет realocation. reserve(n)
создаёт n
объектов. Но это не так — reserve()
только выделяет память, не вызывая конструкторы. Именно поэтому внутри push_back
всё равно происходит перемещение или копирование.reserve()
— экономия на реаллокациях, без создания объектов. resize()
— создаёт n
объектов, вызывает конструкторы.
// Резервирует память, не создаёт объекты
v.reserve(10);
// Создаёт 10 объектов Foo
v.resize(10);
emplace_back()
:
v.emplace_back(); // Вызывает конструктор Foo напрямую внутри вектора
Возможности Kotlin для создания DSL на примере JsonBuilder
Приглашаем на открытый урок.
🗓 22 мая в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».
Что вас ждёт:
✔️ рассмотрим общую теорию о DSL: назначение, особенности, практика;
✔️ попрактикуемся в создании DSL на примере JsonBuilder;
✔️ рассмотрим возможности Kotlin, полезные для создания DSL.
🎁 Всем участникам вебинара дарим промокод, который дает скидку на обучение - Kotlin5
👉 Регистрация на вебинар: https://otus.pw/d4A5/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚡️ Kubernetes устраняет проблему безопасности с приватными образами, которую не решали более 10 лет
Ранее, при использовании политики imagePullPolicy: IfNotPresent, kubelet мог запускать контейнеры из приватных образов, даже если pod не передавал нужные imagePullSecrets. Это означало, что уже загруженные образы могли использоваться без повторной проверки прав доступа.
Начиная с Kubernetes v1.33, kubelet теперь проверяет учетные данные pod-а даже для локально кэшированных образов. Если образ найден на узле, kubelet удостоверяется, что pod имеет соответствующие pull credentials, прежде чем разрешить его запуск.
Ожидается, что в v1.34 эта функция перейдёт в бета-стадию и получит дополнительные улучшения.
https://kubernetes.io/blog/2025/05/12/kubernetes-v1-33-ensure-secret-pulled-images-alpha/
📚 Librum — читалка с облачной библиотекой и 70 000+ бесплатных книг
С этим инструментом ваша библиотека станет по-настоящему мобильной — проект имеет синхронизацию между устройствами, теги, коллекции и даже статистика чтения — всё под рукой, будь то Windows, Linux или macOS.
Проект полностью открытый, а его команда живёт на донаты. При этом здесь уже есть поддержка редких форматов вроде CBZ (для комиксов) и TIFF, а в дорожной карте — TTS и AI-инструменты для заметок.
🤖 GitHub
@cpluspluc
📌 24 мая, System Level Meetup от YADRO, Санкт-Петербург и онлайн
Встретимся, чтобы поговорить об C++ в системной разработке: обсудим стандарты, подходы и реальные задачи, которые решаются на этом языке.
Участвовать можно офлайн или онлайн — регистрируйтесь, чтобы забронировать место или получить ссылку на стрим на одной из популярных платформ.
Классные бонусы для офлайн-участников: демозона с «железом» YADRO для ЦОД и телеком-операторов, технические интерактивы и подарки от компании.
В программе:
— Константин Владимиров и Илья Андреев расскажут о девиртуализации в C++, её основных проблемах и о том, как компиляторы эти проблемы решают.
— Леонид Меркин расскажет, как благодаря программированию на C++ в российской аэрокосмической индустрии растёт надёжность mission-critical-IT-решений.
— Илья Шишков прочитает доклад «C++ внутри PostgreSQL: удобство против традиций» и поделится тем, как смог вплести C++ в строго C-шную кодовую базу и каких результатов добился.
Вторая секция митапа — о Linux Kernel. Там обсудим эволюцию ядра Linux, использование Rust для написания драйверов устройств и другие темы. Можно выбрать одно направление или послушать доклады из разных секций.
📍Санкт-Петербург, Loft Hall, Арсенальная набережная, 1 или онлайн-трансляция.
Участие бесплатное, но нужна регистрация.
До встречи!
💡 Хотите перейти от копирования чужих схем к созданию своих устройств?
Старт курса 24 апреля, но вы еще успеваете присоединиться к группе до 12 мая. Промокод на скидку Electronics_5 до 12.05.25
На обучении «Электроника и электротехника» вы освоите базовую схемотехнику, научитесь проектировать принципиальные схемы, подбирать компоненты, создавать печатные платы и доводить идею до готового устройства — даже без физического оборудования.
👍 Программа разработана практикующими инженерами, включает симуляторы, живые лекции и практику на каждом этапе. Вы научитесь работать с Arduino, цифровыми и аналоговыми схемами, узнаете, как подобрать питание, спроектировать корпус и подготовить документацию для производства.
➡️ Получите скидку на обучение. Оставьте заявку прямо сейчас: https://otus.pw/0roB/
Курс так же доступен в рассрочку!
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963
🦾 Задача с подвохом: Виртуальные функции и конструкторы
Условие:
Что выведет следующий код и почему?
#include <iostream>
class Base {
public:
Base() {
std::cout << "Base constructor\n";
foo();
}
virtual void foo() {
std::cout << "Base foo\n";
}
};
class Derived : public Base {
public:
Derived() {
std::cout << "Derived constructor\n";
}
void foo() override {
std::cout << "Derived foo\n";
}
};
int main() {
Derived d;
return 0;
}
Derived d;
. Derived
, но сначала выполняется конструктор `Base` (по правилам иерархии).Base
есть вызов foo();
. Derived
, вызовется Derived::foo()
.foo()
объект всё ещё только Base, потому что Derived
ещё не инициализирован.Base
: foo()
внутри конструктора Base
: Derived::foo()
: Base
, вызывается конструктор Derived
: 🎯 ▪ Задача: "Числа-близнецы с кастомным компаратором" (C++ для продвинутых)
У вас есть массив N
целых чисел. Нужно найти все пары чисел (A, B), таких что:
1. |A - B|
минимально среди всех пар в массиве
2. A
— четное, а B
— нечетное
3. Если таких пар несколько, вернуть все, отсортированные по A, затем по B
▪ Ограничения:
- 1 <= N <= 10^5
- -10^9 <= A[i] <= 10^9
▪ Пример:
Вход:
arr = [4, 7, 9, 2, 8, 3]
(2,3)
(4,3)
(4,7)
(8,7)
(8,9)
🔧 OpenXRay — движок STALKER с открытым исходным кодом получает вторую жизнь.
Сообщество энтузиастов серии STALKER продолжает развивать OpenXRay — улучшенную версию оригинального движка X-Ray Engine. Проект не просто исправляет баги и добавляет 64-битную поддержку, но и открывает новые возможности для модификации игр.
Хотя разработчики подчеркивают стремление сохранить ванильный геймплей, проект уже включает оптимизации рендеринга, поддержку геймпадов и новые инструменты для модмейкеров.
🤖 GitHub
@cpluspluc
Лайфхаки визуального сторителлинга 😉
Рассказываем, почему это полезно и как его построить, чтобы было понятно всем: и менеджерам, и разработчикам, и дизайнерам ⬆
И да, вы справитесь, даже если не умеете рисовать! Александр Зинченко, СТО Яндекс 360, поделился инструментами для быстрых и удобных скетчей. А ещё рассказал про сложности передачи идей в проектных командах, которые можно решить с помощью визуального сторителлинга 😎
Больше интересной и полезной информации в канале от команды Яндекс 360
🧑🏻💻Хотите научиться писать нейросети на одном из самых быстрых и безопасных языков программирования?
На открытом уроке 6 мая в 20:00 МСК мы научим вас создавать простейшую нейросеть с нуля, используя минимальные библиотеки. Вы не только познакомитесь с Rust, но и узнаете, как оптимизировать вычисления для работы с нейронными сетями.
Вы сможете писать быстрые и эффективные нейросети на Rust — языке, который сегодня активно используется для решения высоконагруженных задач.
👉Присоединяйтесь к открытому уроку и получите скидку на программу обучения «Rust Developer. Basic»: https://otus.pw/417k/?erid=2W5zFFxssur
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.