C++
-
Хабрахабр
Добавляем деструкторы в C
В данной статье будет описано создание кастомного аллокатора на си c регистрацией колбеков, которые будут вызваны при освобождении памяти. Нужен для того, чтобы при создании записать туда деструктор, а в конце просто вызвать free, не погружаясь в детали его работы. Основная идея Задумка весьма простая — аллокатор кастомный, так давайте просто выделим немного больше памяти, в её начало положим callback‑информацию и вернём смещённый указатель. Диаграммой выглядит это всё примерно так: В callback…
Читать далее » -
Хабрахабр
К 8 марта — 8 женских докладов c наших конференций
Мы попросили нейросети изобразить ситуации «женщина-спикер на конференции разработчиков» и «Ада Лавлейс выкидывает подаренную сковородку, чтобы сосредоточиться на программировании». В середине XIX века, когда Чарльз Бэббидж изобрел свою аналитическую машину, исследовала ее возможности Ада Лавлейс. Она составила первую в мире программу (для этой машины), ввела в употребление термины «цикл» и «рабочая ячейка». Во время Второй мировой войны женщины сыграли решающую…
Читать далее » -
Хабрахабр
Понимаем обычное дерево отрезков
Всем привет! Изучив несколько статей по этой теме, у меня остались вопросы, и некоторые моменты по-прежнему были не понятны, поэтому я решил написать свою, которая, как мне кажется, была бы понятна тем, кто не силен в спортивном программировании. В ней я объясняю, как устроено дерево отрезков. Примеры с кодом будут приведены на языке C++, однако на объяснение это не влияет.…
Читать далее » -
Хабрахабр
Нужен ли ConfigureAwait?
Мне никогда не нравилась многословность . NET-кода. Длинные и подробные названия упрощают работу с бизнес-логикой, но технические детали кода хочется держать краткими, чтобы они отвлекали на себя минимум внимания. Одна из многословных конструкций . NET связана с деталями реализации асинхронности и обросла кучей мифов. Про неё спрашивают на собеседованиях, код-ревью, делают обязательной, добавляя в правила линтера. Это . ConfigureAwait(false), сопровождающий…
Читать далее » -
Хабрахабр
Swagger и полиморфные контракты в .NET 7
Не так давно состоялся релиз седьмой версии платформы .NET. Он привнёс множество изменений и интересных нововведений, по которым уже успели пробежаться в рамках новостного обзора. В этой статье мы рассмотрим развитие сериализации платформы (System. Text. Json) вместе с возможностями, которые она открывает. ▍ До релиза .NET 7 Платформа взяла плотный курс на «импортозамещение», так сказать. Множество NuGet-пакетов, ранее популярных среди…
Читать далее » -
Хабрахабр
True RND или что делать с обученной моделью (опыт чайника)
Когда то давно на просторах интернета читал статью о генерации по настоящему случайного пароля. Суть сводилась к тому что для реализации рандома нужно натурально бросать игральные кости. Отличная идея, для небольшого pet проекта и для того чтобы проникнуть в основы ML. Попробуем научить компьютер бросать настоящие кости, находить их на изображении с веб камеры и понимать что на них выпало.…
Читать далее » -
Хабрахабр
Высоконагруженный IPC между C++ и Python
Предыстория Несколько лет назад Аурига по заданию известного медицинского стартапа разрабатывала решение, связанное с параллельной обработкой нескольких потоков видеоданных. Данные имели критическое значение для успеха малоинвазивной хирургической операции и являлись единственным источником информации для хирурга. Результатом обработки каждого кадра была полоска шириной в один пиксель. Требовалось добиться следующих характеристик передачи данных: синхронная обработка параллельных потоков данных с общей частотой 30 кадров в секунду, 400 мс на прохождение кадра от драйвера устройства до дисплея…
Читать далее » -
Хабрахабр
Один день из жизни JVM-инженера
Можно разрабатывать на Java, а можно разрабатывать Java. Есть люди, чей код исполняет виртуальная машина — а есть люди, чей код и есть виртуальная машина. Вроде бы те и другие существуют в одной Java-экосистеме, но задачи совершенно разные. Поэтому редкое место, где они пересекаются и могут что-то поведать друг другу — Java-конференции. Мы проводим их регулярно (уже в апреле будет…
Читать далее » -
Хабрахабр
О вреде GOTO-фобии (с примерами на C)
Готофобия – это боязнь использовать инструкции goto. Обычно возникает из-за непонимания и незнания контекста этой проблемы, а также из-за историй о незапамятных временах в истории программировании. Разработчики, страдающие готофобией, готовы жертвовать удобочитаемостью своего кода, только бы не прибегать к goto. Каждая собака знает (уже мемородный) заголовок статьи Дейкстры Letters to the editor: go to statement considered harmful («О вреде оператора Go To») (изначально…
Читать далее » -
Хабрахабр
Еще раз про интеграционное тестирование ASP.NET Core c testserver и testcontainers
Хабр, привет! Сегодня я предлагаю совершить небольшое исследование на тему "как нам обустроить интеграционное тестирование и встроить его в сиайку".Написать эту заметку меня сподвигла дискуссия, случившаяся недавно на работе. Инициативная группа "четырехглазых в свитерах" пыталась родить меры по улучшению качества нашего изделия и снижения трудозатрат QA-инженеров на проведение рутинного регрессионного тестирования. Как это часто бывает, разработчики если и писали тесты,…
Читать далее »