В сообществе C++ разработчиков часто обсуждают внутреннее устройство стандартных STL контейнеров, но мало кто знает, что в библиотеке Boost есть их альтернативные версии с улучшенными характеристиками.
Илья Мещерин в своём докладе рассказал о малоизвестных, но мощных контейнерах из Boost:
• stable_vector: гибрид вектора и списка, не инвалидирующий указатели при расширении
• devector (double-ended vector): позволяет эффективно добавлять элементы с обоих концов
• bimap: двунаправленное отображение, индексируемое как по ключу, так и по значению
• intrusive_list/set/map: версии контейнеров, где объекты сами хранят служебные данные для связывания
👉 Видео
Илья Мещерин в своём докладе рассказал о малоизвестных, но мощных контейнерах из Boost:
• stable_vector: гибрид вектора и списка, не инвалидирующий указатели при расширении
• devector (double-ended vector): позволяет эффективно добавлять элементы с обоих концов
• bimap: двунаправленное отображение, индексируемое как по ключу, так и по значению
• intrusive_list/set/map: версии контейнеров, где объекты сами хранят служебные данные для связывания
👉 Видео
👍20❤3🔥3🥰2
👋 Всем привет! Ищем респондентов для интервью на тему «Обучение навыкам в IT»
Если это про вас, откликнитесь, пожалуйста:
✅ Вы проходили курсы по техническим специальностям или математике за последние 6 месяцев
✅ Вы разработчик, который хочет освоить Data Science или Machine Learning
Что нужно сделать?
📞 Участвовать в небольшом интервью по Zoom (не больше 45 минут).
💰 Вознаграждение:
1500 рублей на карту за участие + уникальный шанс пообщаться с нашим CEO!
Как откликнуться?
✉️ Напишите в личные сообщения @artem_ceo
Если это про вас, откликнитесь, пожалуйста:
✅ Вы проходили курсы по техническим специальностям или математике за последние 6 месяцев
✅ Вы разработчик, который хочет освоить Data Science или Machine Learning
Что нужно сделать?
📞 Участвовать в небольшом интервью по Zoom (не больше 45 минут).
💰 Вознаграждение:
1500 рублей на карту за участие + уникальный шанс пообщаться с нашим CEO!
Как откликнуться?
✉️ Напишите в личные сообщения @artem_ceo
👍4🔥1
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🌍💼 Чем отличается наем IT-специалистов в России и за рубежом: 5 ключевых отличий
Процессы найма могут сильно отличаться в зависимости от страны. Где-то акцент на практические навыки, где-то важны тестовые задания, а иногда решает просто культура общения.
Почему иностранные компании чаще спрашивают о ваших soft skills, а в России обращают внимание на знания теории? И как это влияет на карьеры разработчиков?
Узнайте, как адаптировать свои навыки и подход к поиску работы, чтобы оставаться востребованным в любой точке мира!
📎 Читать о различиях найма
Процессы найма могут сильно отличаться в зависимости от страны. Где-то акцент на практические навыки, где-то важны тестовые задания, а иногда решает просто культура общения.
Почему иностранные компании чаще спрашивают о ваших soft skills, а в России обращают внимание на знания теории? И как это влияет на карьеры разработчиков?
Узнайте, как адаптировать свои навыки и подход к поиску работы, чтобы оставаться востребованным в любой точке мира!
📎 Читать о различиях найма
👍1🔥1
В чем разница между static_cast и dynamic_cast?
Anonymous Quiz
1%
Нет разницы
8%
static_cast быстрее
86%
dynamic_cast проверяет типы во время выполнения
4%
static_cast работает только с указателями
🔥1
На Хабре появилось подробное руководство по настройке проекта на основе системы сборки CMake, в котором особое внимание подключению библиотек и настройке проектов с Vulkan.
📍Что внутри:
• Подключение библиотек через
• Настройка скомпилированных и header-only библиотек
• Оптимизация процесса загрузки зависимостей
• Автоматизация компиляции шейдеров
• Предварительная компиляция заголовков для ускорения сборки
Особое внимание в материале уделено интеграции Vulkan SDK в проекты на CMake, включая решение распространенных проблем с переменными окружения и настройкой путей.
В завершение автор затрагивает тему производительности, развенчивая распространенное заблуждение о накладных расходах при использовании исключений в C++.
📍Что внутри:
• Подключение библиотек через
FetchContent
, включая работу с библиотеками без CMakeLists.txt
• Настройка скомпилированных и header-only библиотек
• Оптимизация процесса загрузки зависимостей
• Автоматизация компиляции шейдеров
• Предварительная компиляция заголовков для ускорения сборки
Особое внимание в материале уделено интеграции Vulkan SDK в проекты на CMake, включая решение распространенных проблем с переменными окружения и настройкой путей.
В завершение автор затрагивает тему производительности, развенчивая распространенное заблуждение о накладных расходах при использовании исключений в C++.
🔥12👍4
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
Представьте, вы попали на собеседование мечты. Всё идёт гладко, но пара неудачных фраз могут свести на нет все ваши старания. Например, если вы слишком скромны или, наоборот, перегибаете с самоуверенностью, это может вызвать недоверие. Или фраза, которая должна показать вашу гибкость, внезапно делает акцент на недостатке опыта. Знакомо?
Есть проверенные подходы, которые помогут избежать таких ситуаций, выстроить грамотное общение и оставить положительное впечатление. Готовы узнать больше? 🌟
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
«Часами вручную создавать префабы в редакторе? В 2025 это уже не наш метод!»
Яркие примеры таких задач — Actor Blueprint и Data Asset. Здесь автор делится опытом создания утилит в Unreal Engine, которые автоматизируют процесс генерации последних.
❗Ключевые моменты:
• Создание Editor Utility Widget
• Работа с фабриками ассетов и Subobject Data Subsystem
• Реализация конвертации Data Asset в нужный формат через C++ и Blueprint
Основной фокус статьи — практическое применение Editor Scripting в Unreal Engine для автоматизации создания игровых ассетов. Автор показывает, как с помощью редакторных утилит можно значительно ускорить работу дизайнеров уровней и минимизировать ошибки при создании типовых объектов.
Вы узнаете, как решение автора помогло сократить время на создание префабов в несколько раз по сравнению с ручным процессом, что особенно важно при работе над крупными проектами.
Яркие примеры таких задач — Actor Blueprint и Data Asset. Здесь автор делится опытом создания утилит в Unreal Engine, которые автоматизируют процесс генерации последних.
❗Ключевые моменты:
• Создание Editor Utility Widget
• Работа с фабриками ассетов и Subobject Data Subsystem
• Реализация конвертации Data Asset в нужный формат через C++ и Blueprint
Основной фокус статьи — практическое применение Editor Scripting в Unreal Engine для автоматизации создания игровых ассетов. Автор показывает, как с помощью редакторных утилит можно значительно ускорить работу дизайнеров уровней и минимизировать ошибки при создании типовых объектов.
Вы узнаете, как решение автора помогло сократить время на создание префабов в несколько раз по сравнению с ручным процессом, что особенно важно при работе над крупными проектами.
🔥6👍1
Forwarded from Книги для C/C++ разработчиков
📚The Design and Implementation of the RT-Thread Operating System (2020)
✍️Автор: Qiu Yi, Xiong Puxiang, Tianlong Zhu
📃Страниц: 413
Цель разработки и внедрения RT-Thread RTOS - создать простую систему обучения для освоения RT-Thread, чтобы больше разработчиков могли участвовать в разработке RT-Thread и работать вместе над созданием компактной и красивой операционной системы Интернета вещей с открытым исходным кодом. Первая часть книги знакомит с ядром RT-Thread и начинается с обзора RT-Thread, а затем рассматриваются управление потоками, управление тактовой частотой, межпоточная синхронизация, взаимодействие между потоками, управление памятью и управление прерываниями
Скачать книгу
✍️Автор: Qiu Yi, Xiong Puxiang, Tianlong Zhu
📃Страниц: 413
Цель разработки и внедрения RT-Thread RTOS - создать простую систему обучения для освоения RT-Thread, чтобы больше разработчиков могли участвовать в разработке RT-Thread и работать вместе над созданием компактной и красивой операционной системы Интернета вещей с открытым исходным кодом. Первая часть книги знакомит с ядром RT-Thread и начинается с обзора RT-Thread, а затем рассматриваются управление потоками, управление тактовой частотой, межпоточная синхронизация, взаимодействие между потоками, управление памятью и управление прерываниями
Скачать книгу
👍5👏3
🌵🕵️♂️ Git-квест: 10 испытаний для повелителя репозиториев
Привет всем C++ разработчикам!
Думаю каждый сталкивался в своей практике с системами контроля версий, и наверняка среди них был Git.
Настало время, чтобы проверить полученные знания.
Ниже ссылка на тест, который покажет насколько ты хорош в использовании Git!
👉 Пройти тест
Привет всем C++ разработчикам!
Думаю каждый сталкивался в своей практике с системами контроля версий, и наверняка среди них был Git.
Настало время, чтобы проверить полученные знания.
Ниже ссылка на тест, который покажет насколько ты хорош в использовании Git!
👉 Пройти тест
Каждый раз, когда нужно добавить новую бизнес-логику в микросервис, приходится писать тонну бойлерплейта и инфраструктурного кода
— типичная проблема при разработке микросервисов, с которой сталкиваются многие C++ разработчики.
💡 Павел Сухов из Яндекс.Доставки делится решением.
🔧 Ключевые моменты:
• Создание универсального регистра типов с помощью вариативных шаблонов
• Использование концептов C++20 для статической проверки корректности бизнес-логики на этапе компиляции
• Разработка тулкитов для изоляции бизнес-логики от инфраструктурного кода
Основной фокус доклада — организация гибкого пайплайна обработки событий в микросервисной архитектуре с использованием современных возможностей C++. Решение актуально для команд, разрабатывающих высоконагруженные сервисы.
В завершение автор демонстрирует, как правильная организация кода позволила сократить время на внедрение новых бизнес-требований и значительно упростить поддержку существующей функциональности, сохранив высокую производительность.
С Новым годом и Годом Змеи! 🐍 Пусть этот год принесет вам успех, рост и меньше усилий для достижения больших целей. Мы в Proglib Academy пришли с хорошими новостями в начале года.
🌟 Обновления курсов!
Мы работаем над тем, чтобы ваше обучение было проще и эффективнее. Вот что мы уже улучшили:
📈 Data Science: улучшили блок «Геометрическая прогрессия и векторная алгебра» — ключевой этап курса, который идет сразу после теории множеств.
Он закладывает фундамент для работы с данными: от анализа роста и убывания величин (геометрическая прогрессия) до понимания многомерных пространств и операций с векторами. Знания которых пригодятся в машинном обучения и аналитики.
🐍 Python: обновили курс с учетом последней версии Python 3.9.5, добавив актуальные материалы и улучшив структуру. Чтобы вы могли лучше закрепить пройденный материал, мы добавили новые интересные задачи и практические примеры.
Учебный процесс стал еще удобнее и эффективнее, а вы сможете быстрее освоить современные инструменты и техники программирования
Общие обновления:
- Перезаписали демо-курсы и презентации. Чтобы вы точно одурели с этой прикормки.
- Сократили время проверки домашних заданий, ответы теперь приходят быстрее.
- Видео теперь без перекрытий, презентации стали четче, а задания логичнее.
Но главное — мы растем для вас и с вами. Ваша обратная связь помогает нам становиться лучше. Делитесь идеями, и вместе мы создадим лучший образовательный продукт для вас!
💡 С 27.01.25 цены изменятся на 10%.
Пример: Алгоритмы и структуры данных: 25,190 → 27,700 ₽. Это позволяет нам делать курсы еще круче.
Давайте сделаем 2025 год годом вашего профессионального успеха! 🚀
Выбрать курс
🌟 Обновления курсов!
Мы работаем над тем, чтобы ваше обучение было проще и эффективнее. Вот что мы уже улучшили:
📈 Data Science: улучшили блок «Геометрическая прогрессия и векторная алгебра» — ключевой этап курса, который идет сразу после теории множеств.
Он закладывает фундамент для работы с данными: от анализа роста и убывания величин (геометрическая прогрессия) до понимания многомерных пространств и операций с векторами. Знания которых пригодятся в машинном обучения и аналитики.
🐍 Python: обновили курс с учетом последней версии Python 3.9.5, добавив актуальные материалы и улучшив структуру. Чтобы вы могли лучше закрепить пройденный материал, мы добавили новые интересные задачи и практические примеры.
Учебный процесс стал еще удобнее и эффективнее, а вы сможете быстрее освоить современные инструменты и техники программирования
Общие обновления:
- Перезаписали демо-курсы и презентации. Чтобы вы точно одурели с этой прикормки.
- Сократили время проверки домашних заданий, ответы теперь приходят быстрее.
- Видео теперь без перекрытий, презентации стали четче, а задания логичнее.
Но главное — мы растем для вас и с вами. Ваша обратная связь помогает нам становиться лучше. Делитесь идеями, и вместе мы создадим лучший образовательный продукт для вас!
💡 С 27.01.25 цены изменятся на 10%.
Пример: Алгоритмы и структуры данных: 25,190 → 27,700 ₽. Это позволяет нам делать курсы еще круче.
Давайте сделаем 2025 год годом вашего профессионального успеха! 🚀
Выбрать курс
🥱3👍2
Физика в играх — это страшная вещь, куда не суются даже опытные разработчики
— распространённое заблуждение, которое отпугивает многих от создания собственных физических движков.
💡 На лекции UNIGINE Open Air 2024 Андрей Викторов рассказал о современном подходе к физическим симуляциям — Position Based Dynamics.
❗ Ключевые моменты:
• Движение тел через constraints вместо прямых вычислений сил и скоростей
• Использование алгоритма GJK для эффективного поиска столкновений между объектами без сложной полигональной геометрии
• Оптимизация производительности через итеративное решение позиционных ограничений вместо прямого расчёта физики
Основной фокус — практическая реализация физического движка с использованием Position Based Dynamics.
В завершение автор развенчивает миф о сложности физических движков: правильный выбор подхода (Position Based вместо Force Based) позволяет создать надёжную физическую симуляцию без погружения в сложную математику непрерывных систем.
🔥8❤2👍1
Я меня просто поменялstd::vector
наpmr::vector
и всё сломалось... А ведь говорили, что будет быстрее работать!
— такие комментарии часто встречаются при попытках оптимизировать проект с помощью полиморфных аллокаторов.
💡 Автор статьи погружается в эту тему и разбирает неочевидные подводные камни использования pmr-контейнеров в C++.
❗ Ключевые моменты статьи:
• нестандартное поведение конструкторов копирования;
• проблемы lifetime management;
• подводные камни при реализации операторов присваивания.
Основной фокус — практические проблемы внедрения полиморфных аллокаторов в существующий код и способы их решения через паттерн Resource Manager. Особенно актуально для проектов, где производительность критична и планируется использование pmr-контейнеров.
Вы узнаете, что простая замена
std::
на pmr::
без продуманной архитектуры управления ресурсами может привести к UB и падениям программы вместо ожидаемого прироста производительности.🔥6😁1
😎 Armadillo: матрицы, кубы и разреженные данные на C++
— знакомая боль? STL вообще не заточена под линейную алгебру, а писать и отлаживать собственные алгоритмы — то еще удовольствие.
💡 Но есть решение — библиотека Armadillo.
Ключевые моменты:
• Интуитивный синтаксис в стиле MATLAB/Python — работаете с матрицами как с обычными переменными
• Молниеносная скорость благодаря интеграции с OpenBLAS, MKL и LAPACK
• Поддержка разреженных матриц и многомерных массивов (кубов) из коробки
• Встроенные методы для PCA, кластеризации и машинного обучения
Каждый раз приходится писать 100500 строк кода, чтобы просто перемножить матрицы в C++
— знакомая боль? STL вообще не заточена под линейную алгебру, а писать и отлаживать собственные алгоритмы — то еще удовольствие.
💡 Но есть решение — библиотека Armadillo.
Ключевые моменты:
• Интуитивный синтаксис в стиле MATLAB/Python — работаете с матрицами как с обычными переменными
• Молниеносная скорость благодаря интеграции с OpenBLAS, MKL и LAPACK
• Поддержка разреженных матриц и многомерных массивов (кубов) из коробки
• Встроенные методы для PCA, кластеризации и машинного обучения
👍6
💡 Разбираем, как в Quake решали проблему избыточного рендеринга с помощью порталов и предварительных вычислений.
🔧 Ключевые моменты статьи:
• Автоматическое размещение порталов между игровыми зонами для эффективной отрисовки только видимых областей
•
• Использование
Основной фокус — оптимизация производительности рендеринга для компьютеров 90-х годов через предварительные вычисления. Особенно актуально это было для программного рендеринга, где каждый лишний пиксель существенно влиял на производительность.
В результате применения этих технологий Quake смог достичь впечатляющей производительности даже на относительно слабых компьютерах того времени. Интересно, что многие из этих подходов используются и в современном геймдеве, хотя и в модифицированном виде.
🔧 Ключевые моменты статьи:
• Автоматическое размещение порталов между игровыми зонами для эффективной отрисовки только видимых областей
•
Предварительный расчёт видимости
(PVS) для каждой области карты вместо проверок в реальном времени• Использование
BSP-деревьев
для разделения пространства на компактные выпуклые областиОсновной фокус — оптимизация производительности рендеринга для компьютеров 90-х годов через предварительные вычисления. Особенно актуально это было для программного рендеринга, где каждый лишний пиксель существенно влиял на производительность.
В результате применения этих технологий Quake смог достичь впечатляющей производительности даже на относительно слабых компьютерах того времени. Интересно, что многие из этих подходов используются и в современном геймдеве, хотя и в модифицированном виде.
🤔4👍2
Какие методы отслеживания здоровья вы используете?
Anonymous Poll
21%
🔄 Фитнес-трекер/умные часы
3%
📱 Приложения для трекинга здоровья
6%
📊 Регулярные анализы крови
2%
🌡️ Измерение температуры тела
18%
⚖️ Только вес на весах
49%
🤷♂️ Не отслеживаю показатели