Главная » Архив меток: C++

Архив меток: C++

Как мы отлаживаем в браузере самописный ECS на игровом сервере

Хочу поделиться механизмами, которые мы используем на сервере для визуальной отладки игровой логики и способами изменения состояний матча в реальном времени. Одним из таких решений был Entitas. В предыдущих статьях подробно рассказывали (список сразу под катом) о том, как устроена ECS в нашем новом проекте в разработке и как выбирали готовые решения. Он не устроил нас в первую очередь из-за ...

Читать далее »

OAuth Authorization Provider для asp net core

Начал изучать asp.net core и первое что пытался найти это некое подобие «OAuthAuthorizationServerProvider» для реализации генерации тикета и «IAuthenticationTokenProvider» для реализаций рефреш токена как в обычном asp.net, но не нашел. Не исключено, что плохо искал, и может появится коммент типа «вот обкатанная библиотека для этого дела». Хорошо, что можно довольно просто написать свой Middleware для обработки запросов, и связать его ...

Читать далее »

Пропихиваем параметры в небезопасные операции в безопасном коде

Всем привет. В этот раз продолжаем смеяться над нормальным вызовом методов. Предлагаю ознакомится с вызовом метода с параметрами без передачи параметров. Также попробуем преобразовать ссылочный тип в число — его адрес, без использования указателей и unsafe кода. Дисклеймер Прежде, чем приступить к повествованию, настоятельно рекомендую ознакомиться с предыдущим постом про StructLayout, т.к. вещи, оговоренные там, здесь повторяться не будут. Также ...

Читать далее »

Короткая заметочка про PVS Studio в CI (и чего не хватает)

На хабре уже немало статей ей посвящённых, но я хочу коснуться ещё одного аспекта — использование данного инструмента в системе непрерывной интеграции. Я думаю, нет смысла в очередной раз рекламировать замечательный инструмент для статического анализа — PVS Studio. В силу используемых инструментов сборка ведётся для проектов, созданных на C# (msbuild) и C++ (msbuild, CMake). Итак, есть некоторая организация, есть в ...

Читать далее »

В очередной раз анализатор PVS-Studio оказался внимательнее человека

Изучая предупреждения анализатора PVS-Studio в процессе проверки различных открытых проектов, мы вновь и вновь убеждаемся, сколь полезен может быть этот инструмент. Анализатор кода невероятно внимателен и никогда не устаёт. Он указывает на ошибки, которые ускользают даже при внимательном обзоре кода. Рассмотрим очередной такой случай.В предыдущий раз я написал аналогичную заметку, изучая исходный код проекта StarEngine: 2D Game Engine. Теперь анализатор ...

Читать далее »

[Из песочницы] Не уважаю инкапсуляцию, или использование таблицы методов другого типа для быстрого вызова приватных методов

Всем привет. Хотелось бы поделиться примером использования StructLayout для чего-то более интересного, чем примеры с байтами, интами и прочими цифрами, в которых все происходит чуть более, чем ожидаемо.Прежде, чем приступить к молниеносному нарушению инкапсуляции, стоит в двух словах напомнить, что такое StructLayout. Строго говоря, это даже StructLayoutAttribute, то бишь атрибут, который позволяет создавать структуры и классы, подобные union в С++. ...

Читать далее »

Job system и поиск пути

Карта В предыдущей статье я разобрал, что из себя представляет новая система задач Job system, как она работает, как создавать задачи, наполнять их данными и выполнять многопоточные вычисления и лишь в двух словах объяснил где можно использовать эту систему. В этой статье я попробую разобрать конкретный пример того где можно использовать эту систему, чтобы получить большую производительность.Так как система изначально ...

Читать далее »

[Перевод] Struct и readonly: как избежать падения производительности

Использование типа Struct и модификатора readonly иногда может порождать падения производительности. Сегодня мы расскажем о том, как этого избегать, используя один Open Source анализатор кода — ErrorProne.NET. Оставив в стороне вопрос изменяемости, замечу, что поведение структур с модификатором readonly (только для чтения) и без него в контекстах readonly сильно различается. Как вы, вероятно, знаете из моих предыдущих публикаций «The 'in'-modifier ...

Читать далее »

Что внутри XGBoost, и при чем здесь Go

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

Читать далее »

[recovery mode] DevBoy — как я создал проект устройства с открытым исходным кодом и запустил проект на Kickstarter

Привет друзья! Пора исправлять эту ситуацию, тем более что как раз имеется повод — только что я запустил компанию на Kickstarter для реализации устройства с открытым исходным кодом. Меня зовут Николай, читателем Хабра являюсь давно, а вот с написанием статей как-то не сложилось. Кому интересно — прошу под кат.Так уж сложилось, что с детства я имел доступ к прогрессивным технологиям ...

Читать далее »