⚙️ Новый релиз OpenMW 0.50.0: улучшенная поддержка геймпадов и интерфейс
Разработчики игрового движка
❗ Основные изменения:
• Значительное улучшение навигации с геймпадом
• Исправления интерфейса и механики игры
• Оптимизация для портативных устройств и современных разрешений
• Продолжение работы над совместимостью и стабильностью
Это обновление открывает новые возможности для тех, кто любит играть в Morrowind на современном оборудовании, делая процесс более комфортным и интуитивным.
👉 Gitlab
👉 Заметки по релизу
Библиотека C/C++ разработчика
#буст
Разработчики игрового движка
OpenMW, реимплементированного движка для Morrowind с открытым исходным кодом, выпустили долгожданную версию 0.50.0. Это масштабное обновление, ориентированное на повышение удобства игры на современных платформах, включая портативные устройства вроде Steam Deck. Особое внимание уделено улучшенной поддержке геймпадов и новому интерфейсу, специально адаптированному под управление контроллерами.❗ Основные изменения:
• Значительное улучшение навигации с геймпадом
• Исправления интерфейса и механики игры
• Оптимизация для портативных устройств и современных разрешений
• Продолжение работы над совместимостью и стабильностью
Это обновление открывает новые возможности для тех, кто любит играть в Morrowind на современном оборудовании, делая процесс более комфортным и интуитивным.
👉 Gitlab
👉 Заметки по релизу
Библиотека C/C++ разработчика
#буст
❤4😁1
🛒 Black Friday от Proglib.academy!
Только до 30 ноября — скидка 40% на ВСЕ курсы.
Пора добавить в корзину не носки, а новые скиллы: Python, математика для Data Science, AI, алгоритмы и структуры данных, ML.
🎓 Выбирай курс, который реально двинет тебя в карьере, и учись со скидкой.
👉 Учиться со скидкой
Только до 30 ноября — скидка 40% на ВСЕ курсы.
Пора добавить в корзину не носки, а новые скиллы: Python, математика для Data Science, AI, алгоритмы и структуры данных, ML.
🎓 Выбирай курс, который реально двинет тебя в карьере, и учись со скидкой.
👉 Учиться со скидкой
😁1
Forwarded from Proglib.academy | IT-курсы
«Стартап-атмосфера» = хаос и переработки, «возможность профессионального роста» = будете работать за четверых. Составили словарь корпоративного новояза и список неудобных вопросов, которые стоит задать на собеседовании, чтобы не попасть в ловушку.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👍4
🔥 Опасная ловушка в C++ модулях
Работаете с модулями в C++20/23? Осторожно: один символ может превратить ваш код в некорректный, но компилятор может об этом промолчать.
Представьте: вы создаёте
В чём подвох? При использовании
GCC 15 честно выдаст ошибку: «redeclaring in global module conflicts with import». А вот MSVC спокойно пропустит такой код, оставляя вас с программой, которая работает, но формально нарушает стандарт. Это классический пример того, как тонкости модулей могут стать источником неочевидных багов при переносе кода между компиляторами.
Сталкивались ли вы с неожиданным поведением модулей? Какие компиляторы используете для работы с C++20/23?
👉 Заметка
Библиотека C/C++ разработчика
#буст
Работаете с модулями в C++20/23? Осторожно: один символ может превратить ваш код в некорректный, но компилятор может об этом промолчать.
Представьте: вы создаёте
module unit для модуля A и случайно пишете import A; вместо module A;. Казалось бы, очевидная ошибка. Но если вы используете MSVC — код скомпилируется, слинкуется и запустится без единого предупреждения.В чём подвох? При использовании
module A; ваша реализация функции корректно прикрепляется к модулю A. Но когда вы пишете import A;, функция попадает в глобальный модуль, который содержит все имена, не привязанные к конкретным модулям. Технически это конфликт: функция уже экспортирована из модуля A, а вы пытаетесь определить её заново в глобальном пространстве.GCC 15 честно выдаст ошибку: «redeclaring in global module conflicts with import». А вот MSVC спокойно пропустит такой код, оставляя вас с программой, которая работает, но формально нарушает стандарт. Это классический пример того, как тонкости модулей могут стать источником неочевидных багов при переносе кода между компиляторами.
Сталкивались ли вы с неожиданным поведением модулей? Какие компиляторы используете для работы с C++20/23?
👉 Заметка
Библиотека C/C++ разработчика
#буст
👍5😢3❤1
🎲 Ueli: лаунчер для продуктивных разработчиков
• Ueli — это инструмент быстрого запуска приложений, файлов, папок и веб‑сайтов с помощью клавиатурных сокращений. По сути, это «умный поиск» по вашей системе с массой полезных фишек для разработчиков.
😎 Ключевые возможности:
• Мгновенный запуск приложений: наберите пару букв — и нужное ПО уже открыто
• Поиск файлов и папок: быстро находите любые документы по имени
• Веб‑поиск: введите запрос — и Ueli откроет его в браузере
• Калькулятор: встроенные вычисления прямо в строке поиска
• Поддержка плагинов: расширяйте функционал под свои нужды
• Настройка внешнего вида: меняйте темы, шрифты, прозрачность
👉 Сайт
Есть опыт работы с Ueli? Как вы ускоряете свою работу?
#буст
Библиотека C/C++ разработчика
• Ueli — это инструмент быстрого запуска приложений, файлов, папок и веб‑сайтов с помощью клавиатурных сокращений. По сути, это «умный поиск» по вашей системе с массой полезных фишек для разработчиков.
😎 Ключевые возможности:
• Мгновенный запуск приложений: наберите пару букв — и нужное ПО уже открыто
• Поиск файлов и папок: быстро находите любые документы по имени
• Веб‑поиск: введите запрос — и Ueli откроет его в браузере
• Калькулятор: встроенные вычисления прямо в строке поиска
• Поддержка плагинов: расширяйте функционал под свои нужды
• Настройка внешнего вида: меняйте темы, шрифты, прозрачность
👉 Сайт
Есть опыт работы с Ueli? Как вы ускоряете свою работу?
#буст
Библиотека C/C++ разработчика
👍3
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
Читать вакансии нужно внимательно, иначе можно не заметить, что под модными словосочетаниями скрываются нестандартные условия труда или неожиданные обязательства.
Например, если описана свобода выбора графика, это почти всегда значит, что появятся поздние звонки или потребуется работать когда угодно. Формулировки про перспективы развития часто переводятся на постоянную работу в режиме форсированного многозадачия, где на поддержку рассчитывать не придется.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1😁1
🐸 Подборка вакансий для C++-разработчиков за неделю
Ведущий разработчик, С++ — от 230 000 ₽ Гибрид (Москва)
C++ Team lead в 3D Карту — Удалёнка
Senior Программист C/С++ — от 400 000 и до 600 000 ₽ Гибрид (Москва)
Разработчик C++ (Middle/Junior+) — до 200 000 ₽ Гибрид (Москва)
Разработчик C++ (Поиск) — от 5 000 € Офис (Лимасол)
Библиотека C/C++ разработчика
Ведущий разработчик, С++ — от 230 000 ₽ Гибрид (Москва)
C++ Team lead в 3D Карту — Удалёнка
Senior Программист C/С++ — от 400 000 и до 600 000 ₽ Гибрид (Москва)
Разработчик C++ (Middle/Junior+) — до 200 000 ₽ Гибрид (Москва)
Разработчик C++ (Поиск) — от 5 000 € Офис (Лимасол)
Библиотека C/C++ разработчика
❤1😁1
📘 Хочешь в Data Science, но есть пробелы в знаниях математики?
Мы сделали экспресс-курс «Математика для Data Science», который за 2 месяца даст тебе фундамент, без которого ни одна ML-модель не взлетит 🚀
Что тебя ждёт:
🔹 живые вебинары с экспертами (НИУ ВШЭ, SberAI, Wildberries&Russ);
🔹 практика в Python, квизы и проверка заданий экспертами;
🔹 матрицы, регрессии, вероятности и статистика: всё на примерах из реальных задач;
🔹 старт — 4 декабря.
🔥 Не упусти халяву: сейчас 40% до 30 ноября
👉 Записаться на курс
Мы сделали экспресс-курс «Математика для Data Science», который за 2 месяца даст тебе фундамент, без которого ни одна ML-модель не взлетит 🚀
Что тебя ждёт:
🔹 живые вебинары с экспертами (НИУ ВШЭ, SberAI, Wildberries&Russ);
🔹 практика в Python, квизы и проверка заданий экспертами;
🔹 матрицы, регрессии, вероятности и статистика: всё на примерах из реальных задач;
🔹 старт — 4 декабря.
🔥 Не упусти халяву: сейчас 40% до 30 ноября
👉 Записаться на курс
😁1
🏢➰ Булевый поиск: как находить «спрятанные» вакансии в LinkedIn, GitHub и Google
В этой статье мы расскажем, как с помощью булевого поиска можно искать
вакансии на
компании и эйчары выкладывают позиции в репозиториях и issues; а также
через Google, находя карьерные страницы компаний, которые плохо
индексируются.
Библиотека C/C++ разработчика
#буст
В этой статье мы расскажем, как с помощью булевого поиска можно искать
вакансии на
LinkedIn и hh.ru (обходя кривые фильтры); на GitHub, где компании и эйчары выкладывают позиции в репозиториях и issues; а также
через Google, находя карьерные страницы компаний, которые плохо
индексируются.
Библиотека C/C++ разработчика
#буст
👍1🔥1
XTML — утилита написанная на C++, предназначенная для обработки шаблонных файлов и генерации динамического HTML.
•
Переменные и плейсхолдеры: определяйте переменные и вставляйте их через {{@varName}}•
Условная логика и циклы: поддерживаются if, else, while для динамической генерации•
Вычисление выражений: математика, строковые операции, работа с массивами•
Функции и модули: определяйте функции в шаблонах или расширяйте через C++ DLLHTML в выражениях: можно генерировать HTML прямо из вычисляемых выражений
Шаблон:
<xtml>
var title = "XTML Example Page";
var a = 15;
var b = 7;
var comparison = expr {
if (a > b) {
print("a is greater than b");
}
else {
print("a is not greater than b");
}
};
</xtml>
<html>
<head>
<title>{{@title}}</title>
</head>
<body>
<p>{{@comparison}}</p>
</body>
</html>
Сборка и вывод:
xtml build template.xtml
<html>
<head>
<title>XTML Example Page</title>
</head>
<body>
<p>a is greater than b</p>
</body>
</html>
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что выведет программа?
Anonymous Quiz
48%
2 3
16%
3 2
10%
6 1
13%
Ошибка компиляции
13%
Неопределенное поведение
😁2🔥1
Надоело писать if-else лесенки для обработки событий? Лямбды превращают это в изящную цепочку.
Паттерн
Chain of Responsibility через лямбды позволяет регистрировать обработчики, которые выполняются последовательно, пока кто-то не обработает событие:#include <vector>
#include <functional>
#include <algorithm>
template<typename Event>
class CallbackChain {
using Handler = std::function<bool(const Event&)>;
std::vector<Handler> handlers_;
public:
// Добавить обработчик в конец цепочки
void add_handler(Handler handler) {
handlers_.push_back(std::move(handler));
}
// Добавить обработчик в начало (высокий приоритет)
void add_handler_front(Handler handler) {
handlers_.insert(handlers_.begin(), std::move(handler));
}
// Обработать событие (возвращает true, если кто-то обработал)
bool handle(const Event& event) const {
for (const auto& handler : handlers_) {
if (handler(event)) {
return true; // Обработчик вернул true - останавливаемся
}
}
return false; // Никто не обработал
}
// Уведомить всех обработчиков (не останавливаясь)
void notify_all(const Event& event) const {
for (const auto& handler : handlers_) {
handler(event); // Игнорируем возвращаемое значение
}
}
// Очистить все обработчики
void clear() { handlers_.clear(); }
size_t size() const { return handlers_.size(); }
};
Использование для обработки HTTP-запросов:
struct HttpRequest {
std::string path;
std::string method;
std::map<std::string, std::string> params;
};
CallbackChain<HttpRequest> router;
// Регистрируем обработчики
router.add_handler([](const HttpRequest& req) {
if (req.path == "/api/users" && req.method == "GET") {
handle_get_users();
return true; // Обработали
}
return false; // Не наш запрос
});
router.add_handler([](const HttpRequest& req) {
if (req.path.starts_with("/api/")) {
return handle_api_request(req);
}
return false;
});
// В главном цикле
void process_request(const HttpRequest& req) {
if (!router.handle(req)) {
send_404_error();
}
}Библиотека C/C++ разработчика
#шаблонный_код
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👏2🎉2❤1🌚1
🚀 В IT ценится не перфекционизм, а движение вперёд, и если вы давно откладывали обучение — самое время начать.
❤️ Proglib Academy продлевает розыгрыш MacBook Pro 14 до 30 ноября!
Что нужно:
⚡️ выбрать курс;
⚡️ пройти минимум две недели обучения (можно за два вечера);
⚡️ написать куратору #розыгрыш;
⚡️ забрать макбук.
🎓 Курсы, которые участвуют
👉 Участвовать
❤️ Proglib Academy продлевает розыгрыш MacBook Pro 14 до 30 ноября!
Что нужно:
⚡️ выбрать курс;
⚡️ пройти минимум две недели обучения (можно за два вечера);
⚡️ написать куратору #розыгрыш;
⚡️ забрать макбук.
🎓 Курсы, которые участвуют
👉 Участвовать
STL-алгоритмы — основное применение лямбд в C++. Они превратили императивные циклы в декларативные выражения, делающие код выразительнее и безопаснее.
Классика —
std::transform: std::transform(vec.begin(), vec.end(), vec.begin(), [](int x) { return x * 2; });умножает все элементы на два. Или
std::sort с кастомным компаратором: std::sort(vec.begin(), vec.end(), [](const auto& a, const auto& b) { return a.priority > b.priority; });Предикатные алгоритмы особенно элегантны:
std::count_if, std::find_if, std::remove_if
Вместо циклов с условиями — одна строка:
auto count = std::count_if(vec.begin(), vec.end(), [](int x) { return x > 0; });Логика фильтрации инкапсулирована и переиспользуема.
C++20 ranges делают это ещё лучше:
auto result = vec | std::views::filter([](int x) { return x % 2 == 0; }) | std::views::transform([](int x) { return x * x; });— цепочка трансформаций без промежуточных контейнеров.
Лямбды с алгоритмами — это функциональное программирование в C++. Код становится декларативным, меньше ручного управления итераторами, меньше ошибок off-by-one. Оптимизатор видит больше возможностей для векторизации.
Как часто вы заменяете циклы на STL-алгоритмы с лямбдами?
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😢4😁2🌚1
Представьте: вы профилируете код и видите, что std::map тормозит. Cache misses, фрагментация памяти, медленный поиск.
C++23 представляет
std::flat_map и std::flat_set — адаптеры контейнеров, которые хранят элементы в непрерывной памяти. Вместо узлов дерева — два плоских массива (ключи + значения).#include <flat_map>
std::flat_map<int, std::string> cache{
{1, "one"}, {2, "two"}, {3, "three"}
};
// Все элементы рядом в памяти — процессор доволен
auto it = cache.find(2); // Бинарный поиск по упорядоченному массиву
• Меньше cache misses → быстрее на реальных данных
• Меньше аллокаций памяти
• Лучше для read-heavy сценариев
flat_map будет более производительным чем классический map.Библиотека C/C++ разработчика
#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4👍3
🎓 Экспресс-курс «Математика для Data Science» стартует 4 декабря
Этот курс для вас, если вы:
🧑💻 Программист
Когда нужно понять, что происходит «под капотом» ML-алгоритмов.
📊 Начинающий DS / аналитик / студент
Чтобы закрыть теорию, подтянуть фундамент и собрать портфолио.
📈 Смежный специалист
Чтобы уверенно работать с моделями, статистикой и гипотезами.
🎁 Сейчас лучший момент стартовать:
— скидка 40% на курс до конца ноября
— можно пройти бесплатный тест на знание основ математики
👉 Записаться на курс
Этот курс для вас, если вы:
🧑💻 Программист
Когда нужно понять, что происходит «под капотом» ML-алгоритмов.
📊 Начинающий DS / аналитик / студент
Чтобы закрыть теорию, подтянуть фундамент и собрать портфолио.
📈 Смежный специалист
Чтобы уверенно работать с моделями, статистикой и гипотезами.
🎁 Сейчас лучший момент стартовать:
— скидка 40% на курс до конца ноября
— можно пройти бесплатный тест на знание основ математики
👉 Записаться на курс
😁1🥱1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17👍2🌚1