cpluspluc | Unsorted

Telegram-канал cpluspluc - C++ Academy

16151

По всем вопросам- @haarrp @itchannels_telegram - 🔥 best it channels РКН: clck.ru/3FmxJF

Subscribe to a channel

C++ Academy

🖥 Задача для собеседования: "Быстрая очередь с удалением элемента за O(1)"

🔖 Условие:

Реализуйте структуру данных — очередь (`queue`), поддерживающую три операции:

- enqueue(x) — добавить элемент в конец очереди (должно работать за O(1));
- dequeue() — удалить элемент из начала очереди и вернуть его (должно работать за O(1));
- remove(x) — удалить первое вхождение элемента x из очереди за O(1).

Ограничения:
- Элементы могут повторяться.
- Если элемент отсутствует, remove(x) не делает ничего.
- Операции должны оставаться эффективными на больших объемах данных (миллионы элементов).
- Можно использовать стандартные структуры данных STL (`list`, unordered_map, unordered_set и т.д.).

▪️ Дополнительные вопросы к кандидату:

- Как обеспечить O(1) удаление произвольного элемента из очереди?
- Как избежать утечек памяти или "битых" итераторов после удаления элементов?
- Что будет, если очередь будет содержать множество одинаковых элементов?
- Как бы вы изменили решение, если бы нужно было удалять все вхождения элемента, а не только первое?

---

▪️ Разбор возможного решения:


Основная архитектура:

- Используем std::list<int> data для хранения реальной очереди.
- Почему list? Потому что позволяет за O(1) удалять элементы по итератору.
- Используем std::unordered_map<int, std::list<std::list<int>::iterator>> index.
- Для каждого значения храним список итераторов на его вхождения в data.

Операции:

- enqueue(x):
- Добавляем x в конец data.
- Сохраняем итератор на него в index[x].
- Все действия — за O(1).

- dequeue():
- Удаляем элемент из начала data.
- Находим соответствующий итератор в index, удаляем его.
- Если в списке итераторов для этого значения больше нет элементов, удаляем ключ из index.

- remove(x):
- Если в index[x] есть итераторы:
- Берем первый итератор.
- Удаляем его из data и из списка итераторов.
- Если список стал пустым — удаляем запись x из index.
- Все действия — за O(1).

---

▪️ Возможные подводные камни:

- ❗ Не проверять, пустой ли index[x], перед удалением итератора.
- ❗ Не удалять ключи из unordered_map, что приводит к накоплению "пустых" списков в памяти.
- ❗ Использовать vector вместо list — тогда удаление из середины будет занимать O(n).

---

▪️ Мини-пример интерфейса класса:


#include <list>
#include <unordered_map>

class FastQueue {
private:
std::list<int> data;
std::unordered_map<int, std::list<std::list<int>::iterator>> index;

public:
void enqueue(int x) {
auto it = data.insert(data.end(), x);
index[x].push_back(it);
}

int dequeue() {
if (data.empty()) throw std::out_of_range("Queue is empty");
int val = data.front();
auto it = index[val].front();
index[val].pop_front();
if (index[val].empty()) {
index.erase(val);
}
data.pop_front();
return val;
}

void remove(int x) {
if (index.count(x) == 0) return;
auto it = index[x].front();
data.erase(it);
index[x].pop_front();
if (index[x].empty()) {
index.erase(x);
}
}
};


▪️ Дополнительные вопросы на усложнение:


- Что если нужно сделать removeAll(x) — удаление всех вхождений элемента?
- Как изменится решение, если в очереди будут сложные объекты вместо int?
- Как минимизировать использование памяти, если очередь очень большая?
- Как обеспечить безопасность потоков (thread-safety) для многопоточного варианта очереди?

@cpluspluc

Читать полностью…

C++ Academy

🌀 ZENO — node система для сложных 3D-симуляций. Этот фреймворк превращает алгоритмический код в визуальные ноды, позволяя создавать кинематографичные физические эффекты.

В отличие от коммерческих аналогов ZENO оптимизирован для работы с большими сценами и поддерживает GPU-ускорение через CUDA. Система включает готовые примеры симуляций, которые можно сразу загрузить и модифицировать.

🤖 GitHub

@cpluspluc

Читать полностью…

C++ Academy

🖥 В этой статье обсуждается ситуация, когда применение оптимизаций компилятора приводит к изменению поведения программы! Автор подчеркивает, что если поведение программы меняется при использовании определенного уровня оптимизации, это часто указывает на наличие неопределенного поведения в коде.

💡 Автор объясняет, что компиляторы, следуя правилу "as-if" (как если бы), могут применять любые преобразования кода, при условии, что они не изменяют его наблюдаемое поведение. Однако, если в программе присутствует неопределенное поведение, компилятор может производить оптимизации, которые изменяют поведение программы, поскольку исходное поведение не было строго определено

🔗 Ссылка: *клик*

@cpluspluc

Читать полностью…

C++ Academy

🐍 PocketPy — легковесный интерпретатор Python для встраивания в C++ проекты. Разработчики позиционируют его как альтернативу Lua для игровых движков, где важны простота интеграции и отсутствие зависимостей.

Проект поддерживает совместимость с pybind11 и мобильными платформами. При этом интерпретатор демонстрирует производительность на уровне CPython 3.9 в базовых тестах.

🤖 GitHub

@cpluspluc

Читать полностью…

C++ Academy

🖥 Dear ImGui — библиотека GUI на C++ для быстрого создания интерфейсов без внешних зависимостей.

Оптимизирована для экономии памяти и легкой интеграции в проекты.

Позволяет быстро настраивать UI, избегая проблем с синхронизацией, и поддерживает разные графические API и платформы.

🔗 https://github.com/ocornut/imgui

@cpluspluc

Читать полностью…

C++ Academy

✔️ ЗАДАЧА: Что выведет код?



#include <iostream>
#include <vector>

struct Tracer {
Tracer(const char* name) : name(name) {
std::cout << "Constructing " << name << "\n";
}
~Tracer() {
std::cout << "Destructing " << name << "\n";
}
const char* name;
};

struct Example {
Tracer t1{"t1"};
std::vector<Tracer> list;
Tracer t2{"t2"};

Example() : list{Tracer("temp1"), Tracer("temp2")} {
std::cout << "Inside constructor\n";
}
};

int main() {
Example e;
std::cout << "End of main\n";
return 0;
}


---

ОТВЕТ:

Constructing t1
Constructing temp1
Constructing temp2
Inside constructor
Constructing t2
End of main
Destructing t2
Destructing temp2
Destructing temp1
Destructing t1

---

Почему так:

• Поля инициализируются в порядке объявления в структуре, а не в списке инициализации
• std::initializer_list создаёт временные объекты, которые копируются в вектор
• t2 создаётся после строки Inside constructor
• Деструкторы вызываются в обратном порядке: t2 → temp2 → temp1 → t1

Хитрость — в порядке инициализации, временных объектах и destructuring-порядке!


@cpluspluc

Читать полностью…

C++ Academy

🖥 Gooey — нативный кроссплатформенный GUI-фреймворк на C

Если ты разрабатываешь под Windows или Linux и хочешь лёгкий и настраиваемый UI, присмотрись к Gooey — фреймворку с нативной производительностью и открытым кодом.

Почему стоит:
• 🔥 На C, без библиотек-монстров
• 🔴 Работает везде
• 🧩 Кастомный UI
• 💥 Лёгкий и быстрый
• 🧪 С GPL v2 и сообществом

🚀 GitHub

@cpluspluc

Читать полностью…

C++ Academy

👩‍💻 Docker - лучший обучающий канал по Devops.

С помощью картинок и коротких видео даже новички с легкостью смогут применять продвинутые инструменты разработки и использовать Docker.

Стоит подписаться: t.me/DevopsDocker

Читать полностью…

C++ Academy

📄 toml++ — библиотека, предлагающий удобный и производительный способ обработки TOML файлов в C++-проектах. Этот парсер полностью соответствует спецификации TOML 1.0.0, поддерживает UTF-8 и может преобразовывать данные в JSON/YAML. При этом он не требует RTTI и может работать без исключений.

Интеграция системы проста: можно использовать как single версию или подключить через CMake/Conan/Vcpkg. Поддерживаются все основные компиляторы и архитектуры (x64, x86, ARM).

🤖 GitHub

@cpluspluc

Читать полностью…

C++ Academy

📊 Bebop — свежий взгляд на бинарную сериализацию. Этот проект сочетает читаемость JSON с производительностью бинарных протоколов, обещая в 10-100 раз большую скорость работы по сравнению с традиционными решениями.

Собственный язык схем позволяет генерировать типобезопасный код для C++, С#, TypeScript, Rust и других языков, сохраняя при этом кросс-платформенную совместимость. При этом проект уже сейчас демонстрирует высокую производительность в бенчмарках, особенно в сценариях, критичных к задержкам.

🤖 GitHub

@cpluscpluc

Читать полностью…

C++ Academy

🔎 rwkv.cpp — проект, адаптирующий архитектуру RWKV для эффективной работы на обычных процессорах.

В отличие от традиционных LLM, RWKV требует лишь немного памяти на токен — это позволяет запускать модели с большими контекстами даже на слабом железе.

Инструмент реализован на C/C++ с поддержкой квантования и CUDA через cuBLAS.

Особенно интересна совместимость с LoRA-адаптерами, что позволяет дообучать модели без полного экспорта весов. Тесты показывают стабильную работу даже на 4-ядерных CPU с контекстом в 8K токенов.

🤖 GitHub

@cpluspluc

Читать полностью…

C++ Academy

👽 bdwgc — сборщик мусора для C/C++ с 30-летней историей

Проект представляет собой консервативный мусорный сборщик, разработанный еще в 1988 году, но до сих пор востребованный в системном программировании. Вdwgc может работать в "враждебной среде", сканируя стек и память, пытаясь угадать, какие данные являются указателями.

Проект может быть полезен для:
▪️ Долгоживущих сервисов, где утечки памяти критичны
▪️Встраиваемых систем с ограниченными ресурсами
▪️Научных вычислений на C/C++

🤖GitHub

@cplucplus

Читать полностью…

C++ Academy

👴 Возрождение старичка — Clipper2

💎 Проект представляет собой переработку классической библиотеки Clipper, которая долгое время оставалась стандартом для операций с многоугольниками.

📈 В отличие от предшественника, Clipper2 предлагает не только базовые логические операции, но и поддержку сложных сценариев работы с полигональными сетками. Из приятного: ядро работает на C++ 17, с интерфейсами для С# и Delphi. Также есть возможность интеграции в другие языки с помощью динамических библиотек.

🤖 GitHub

@cpluspluc

Читать полностью…

C++ Academy

🔥 Best FREE Blender Hand Topology Tutorial

Один из лучших уроков по Blender

В этом туториале демонстрируется процесс моделирования руки в Blender с использованием аддона Camera Shakify для придания динамичности презентации. ​

📌 BlenderHub
📌 Видео

#b3d #geometrynodes #proceduralart #3dart #blender質 #3d #3Danimation #geonodes #B3D #Blender #Blender3D

Читать полностью…

C++ Academy

🖥Hexi — это лёгкая, заголовочная библиотека на C++23, предназначенная для безопасной обработки бинарных данных из различных источников, особенно сетевых.

Библиотека предоставляет два ключевых класса: buffer_adaptor и binary_stream.

buffer_adaptor служит обёрткой для контейнеров, обеспечивая низкоуровневые операции чтения и записи, а binary_stream использует этот адаптер для выполнения операций сериализации и десериализации.

Hexi поддерживает работу с различными стандартными контейнерами, такими как std::array, std::span, std::string_view, std::string и std::vector, при условии, что их типы значений являются байтовыми (например, char, std::byte, uint8_t). ​


Для обеспечения безопасности при работе с недоверенными данными, binary_stream выполняет проверку границ, предотвращая чтение за пределами доступных данных.

По умолчанию, при возникновении ошибки выбрасываются исключения, однако их можно отключить, указав шаблонный аргумент no_throw. Состояние потока можно проверить с помощью метода state() или оператором приведения к bool. ​
Безопасность: Hexi выполняет проверку границ при чтении данных, предотвращая выход за пределы буфера. По умолчанию при ошибках выбрасываются исключения (hexi::buffer_underrun, hexi::stream_read_limit), но их можно отключить, указав шаблонный аргумент no_throw

🔗 Github

Читать полностью…

C++ Academy

⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
Нерйросети t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: 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
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy

Читать полностью…

C++ Academy

🧑‍💻 frugally-deep — легковесная библиотека, позволяющая использовать обученные модели без зависимости от TensorFlow, что особенно ценно для embedded-систем и проектов с ограниченными ресурсами.

Рабочий процесс выглядит просто: после обучения модели в Keras её можно конвертировать в специальный JSON-формат и загрузить в C++-приложение. При этом frugally-deep автоматически проверяет корректность конвертации, сравнивая результаты предсказаний с оригиналом.
Библиотека поддерживает даже сложные графы вычислений, созданные через functional API.

🤖 GitHub

@cpluspluc

Читать полностью…

C++ Academy

Примите участие в исследовании и выиграйте iPhone 16 Pro Max

Online Market Intelligence (OMI) проводит опрос среди IT-специалистов и студентов о текущем использовании платформ разработки и ИИ-ассистентов.

Исследование направлено на выяснение влияния ИИ на рынок труда и его роль в процессах разработки. Участвуя, вы можете помочь нам в этих вопросах и получить шанс выиграть iPhone 16 Pro Max.

Ссылка на опрос — здесь*

*Принимая участие в опросе Вы становитесь участником розыгрыша под наименованием «Если ты работаешь в IT, пройди опрос и выиграй iPhone 16 Рro Мax». Информация об организаторе розыгрыша, сроках проведения, правилах проведения розыгрыша, количестве призов, сроках, месте, порядке получения призов размещена по ссылке

Читать полностью…

C++ Academy

🧑🏻‍💻Как эффективно управлять ошибками в коде и избегать багов?

На открытом вебинаре 23 апреля в 20:00 МСК вы познакомитесь с мощной системой обработки ошибок в Rust и узнаете, почему этот подход считается одним из самых безопасных и надёжных. Вместе с экспертом вы освоите оператор «?» и работу с типами Result и Option.

Вы получите практические навыки и сможете легко писать код без неожиданных сбоев и исключений, повысив надежность ваших приложений.

👉Регистрируйтесь на вебинар и получите специальную скидку на полный курс «Rust Developer. Basic»: https://otus.pw/stgNn/?erid=2W5zFJ7QW6t 

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

C++ Academy

🖥 less_slow.cpp — это образовательный репозиторий, который демонстрирует практики написания высокоэффективного кода на C++, C, CUDA, PTX и ассемблере.

Цель проекта — помочь разработчикам развить интуицию и мышление, ориентированные на производительность.​

🔍 Основные темы проекта:
- Микробенчмарки: Измерение производительности базовых операций, таких как сложение целых чисел, с использованием различных подходов, включая inline-ассемблер.

- Параллелизм и сложность вычислений: Анализ производительности стандартных алгоритмов сортировки и их оптимизация с использованием различных техник.

- Рекурсия: Сравнение рекурсивных и итеративных реализаций алгоритмов, таких как QuickSort, с акцентом на производительность и использование стека.

- Оптимизация стандартных функций: Примеры ускорения стандартных функций, таких как std::sin, с использованием приближений и SIMD-инструкций.

- Работа с JSON: Эффективный парсинг JSON без лишних аллокаций памяти, использование альтернатив стандартным библиотекам.​
GitHub
Hacker News

🛠️ Инструменты и технологии:
- Использование C++20 и современных компиляторов (GCC, Clang) для демонстрации новых возможностей языка.

- Интеграция с Google Benchmark для проведения точных измерений производительности.

- Примеры кода на CUDA, PTX и ассемблере для демонстрации низкоуровневой оптимизации.

- Использование сторонних библиотек, таких как fmt, range-v3, libunifex, cppcoro, liburing, oneTBB, ASIO, CUTLASS, CTRE, yyjson, Abseil, StringZilla и другие, для расширения функциональности и повышения производительности.​

📚 Дополнительные ресурсы:
Проект является частью серии "Less Slow", которая также включает реализации на Rust и Python.

Блог автора содержит подробные статьи по темам, затронутым в проекте: ashvardanian.com/tags/less-slow.​

Если вы хотите глубже понять, как писать эффективный код и избегать распространённых ошибок, less_slow.cpp станет отличным практическим пособием.

Github
Rust
Python.


@cpluspluc

Читать полностью…

C++ Academy

⚡️Хотите стать востребованным разработчиком и освоить один из самых перспективных языков программирования?

Курс «Rust Developer. Basic» от OTUS создан для тех, кто уже знаком с программированием и хочет уверенно развиваться в современной разработке. Rust гарантирует безопасность, высокую производительность и востребован в веб-разработке, блокчейне, анализе данных и даже в создании встроенных систем.

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

👉Оставьте заявку прямо сейчас и получите скидку на обучение: https://otus.pw/5MYd/?erid=2W5zFGhrBA8 

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

C++ Academy

🔓Что выведет следующий код?


#include <iostream>
using namespace std;

class Base {
public:
Base() {
cout << "Base constructor: ";
call();
}
virtual void call() { cout << "Base::call\n"; }
};

class Derived : public Base {
int x = init();

int init() {
cout << "Derived::init\n";
return 42;
}

public:
Derived() {
cout << "Derived constructor\n";
}

void call() override {
cout << "Derived::call, x = " << x << "\n";
}
};

int main() {
Derived d;
return 0;
}


🔢Варианты ответа:

A)

Derived::init
Derived constructor


B)

Derived::init
Derived constructor


C)

Base constructor: Derived::call, x = 42
Derived constructor


D)

Derived::call, x = <undefined>
Derived::init
Derived constructor


Правильный ответ: B

💡Почему?
В момент вызова конструктора Base, объект ещё не стал Derived. Виртуальная функция вызывается в контексте Base.

Читать полностью…

C++ Academy

📖 asmbook — мягкое введение в программирование на ассемблере для ARM. Для разработчиков, пишущих на C/C++, но желающих разобраться в низкоуровневых особенностях процессоров, проект предлагает практическое руководство по ассемблеру ARMv8.

В руководстве есть множество практических примеров: от работы с базовыми командами до анимации частиц в терминале. Проект подойдёт как для самостоятельного изучения, так и для академических курсов по компьютерной архитектуре.

🔗 GitHub

@cpluspluc

Читать полностью…

C++ Academy

❓ Что выведет этот код? (C++23)


import std;

constexpr auto make_checker() {
return [](int x) consteval {
return x % 3 == 0 || x % 5 == 0;
};
}

int main() {
auto checker = make_checker();

std::vector numbers{1, 3, 5, 9, 10, 14, 15};

auto filtered = numbers | std::views::filter([&](int x) {
if (std::is_constant_evaluated()) {
std::print("constexpr\n");
}
return checker(x);
});

std::print("Filtered numbers: ");
for (int x : filtered) {
std::print("{} ", x);
}

std::println("");
}


🧠 Подсказка:
consteval делает checker доступным только в compile-time, но мы вызываем его в runtime через лямбду — что произойдёт?

std::is_constant_evaluated() — интересный механизм проверки, вызывается ли код во время компиляции.

Как отреагирует компилятор на попытку вызвать consteval функцию в runtime?


📌 Ответ
Этот код на C++23 не скомпилируется, и что именно здесь происходит.

🔍 Напоминаем ключевой фрагмент кода:

```cpp
constexpr auto make_checker() {
return [](int x) consteval {
return x % 3 == 0 || x % 5 == 0;
};
} ```

- Здесь создаётся лямбда-функция, помеченная как consteval.

- Ключевое слово consteval означает: функция обязана быть вызвана во время компиляции.

🧨 Где ошибка?


auto filtered = numbers | std::views::filter([&](int x) {
return checker(x); // ← ошибка тут
});


checker — это consteval-лямбда.

Но ты вызываешь её внутри лямбды, которая будет работать во время выполнения программы — т.е. в runtime.

Это нарушение правила consteval → нельзя вызывать такие функции в runtime-коде.

❌ Что скажет компилятор?
Компилятор выдаст ошибку компиляции, такую или похожую:

error: call to consteval function '<lambda>(int)' is not a constant expression



📘 Объяснение
consteval ≠ constexpr

constexpr — это могут быть вызваны в runtime, если нужно.

consteval — это всегда и только compile-time.

Когда ты вызываешь checker(x) в main(), ты нарушаешь это правило.

✅ Как можно исправить?
Если ты заменишь consteval на constexpr, код скомпилируется и выполнится:


constexpr auto make_checker() {
return [](int x) constexpr {
return x % 3 == 0 || x % 5 == 0;
};
}

И тогда результат будет:

Filtered numbers: 3 5 9 10 15

Потому что:
- 3 делится на 3
- 5 делится на 5
- 9 делится на 3
- 10 делится на 5
- 15 делится на 3 и 5

Читать полностью…

C++ Academy

Менеджер, который получает зарплату в 10 раз больше твоей 😂

@cpluspluc

Читать полностью…

C++ Academy

☕️ Научись разрабатывать приложения и сервисы на SafeBoard от «Лаборатории Касперского»

Каждое решение, каждая строка кода — это новое движение вперед. Возможно, именно стажировка SafeBoard станет решающим шагом к твоему старту в IT! Если ты учишься в вузе в Москве/МО или в Школе 21 и готов(а) работать от 20 часов в неделю — присоединяйся к нам и начинай карьеру еще до окончания учебы 😎

Чему ты научишься:


Проектировать, разрабатывать и портировать приложения и сервисы на базе KasperskyOS;
Дорабатывать сетевой стек и файловые системы;
Писать эффективный и современный код на с++;
Выполнять рефакторинг кода.

Что ты получишь:

Реальный опыт работы в крупной IT-компании;
Возможность развить свои навыки программирования и работы с современными технологиями;
Зарплату, доступ к спортзалу, сауне и игровым комнатам в нашем офисе ☕️

Расти и становись круче — подавай заявку сегодня https://kas.pr/d6b8?erid=2W5zFGAUfC4

Реклама. Рекламодатель АО «Лаборатория Касперского» ИНН 7713140469

Читать полностью…

C++ Academy

Как получилась онлайн-магистратура «Фронтенд- и бэкенд-разработчик»
от Яндекс Практикума и ИТМО?

Мы взяли всё лучшее от классического образования, перевели в онлайн, добавили практики и выкрутили актуальность на максимум.

Приходите на день открытых дверей, чтобы узнать больше:

— Расскажем про разные траектории обучения на программе: как после выпуска стать фронтенд- или бэкенд-разработчиком.

— Обсудим уровни программы — базовый и продвинутый: чему научится студент без опыта в IT и зачем магистратура разработчику с опытом.

— Поделимся, как устроено обучение на очной онлайн-программе Яндекса и ИТМО.

— Поговорим про поступление: сроки, экзамены, документы, оплата.

Ждём вас 16 апреля в 19:00 мск.

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

Читать полностью…

C++ Academy

🎮 Microsoft представила нейро-версию Quake II на базе Muse и WHAMM.

Microsoft Research представила WHAMM — новую систему или технологию, предназначенную для моделирования окружающего мира в реальном времени, с особым акцентом на интерактивные среды.

Это означает, что WHAMM способна быстро создавать и постоянно обновлять цифровую 3D-модель физического пространства, учитывая изменения, которые происходят в нем, в том числе в результате взаимодействия пользователя или других динамических событий.

▪ ИИ генерирует кадры в реальном времени, анализируя действия игрока.

▪Старая WHAMM — 1 fps, новая — 10 fps при 640×360, почти играбельно.

Модель помнит последние 0,9 секунды, что добавляет случайности.

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

🔗 Играть в ИИ-версию Quake II можно здесь.

@cpluspluc

#microsoft #ai #quake #muse

Читать полностью…

C++ Academy

25-26 апреля пройдет ивент для всех, кто любит железо и микросхемы

Желание экспериментировать, пробовать и создавать — суть инженерной культуры Яндекса. И для тех, кто разделяет такой подход, компания проводит Repair Cafe.

Сердцем ивента станет мастерская, где под присмотром наставников можно припаять контакты, починить наушники или разобрать проигрыватель. Обещают даже меню паяльников!

Еще на мероприятии будут доклады и воркшопы, выступления, вечеринка, техносвоп и даже передвижная выставка с интерактивными объектами из прошлого и будущего. А любители ретро смогут починить легендарный компьютер «Ленинград» (выпускался в конце 80-х годов) и запустить на нем ретро-игры.

Зарегистрироваться и посмотреть программу можно на сайте.

@cpluspluc

Читать полностью…

C++ Academy

🖥 memsafe — это библиотека для C++, предназначенная для повышения безопасности работы с памятью!

🌟 Она использует пользовательские атрибуты для маркировки объектов и выполняет лексический анализ с помощью плагина компилятора (Clang). Проект предлагает решение, не нарушающее обратную совместимость, и позволяет добавлять проверки работы с памятью на основе строгих синтаксических правил.

🔐 Лицензия: LGPL-2.1

🖥 Github

@cpluspluc

Читать полностью…
Subscribe to a channel