Типобезопасная работа с регистрами без оверхеда на С++17: value-based метапрограммирование

С++, благодаря своей строгой типизации, может помочь программисту на этапе компиляции. На хабре уже довольно много статьей, описывающих как, используя типы, добиться этого, и это прекрасно. Но во всех, что я читал, есть один изъян. Сравним с++ подход и си подход с использованием CMSIS, привычный в мире программирования микроконтроллеров: some_stream.set (Direction::to_periph) SOME_STREAM->CR |= DMA_SxCR_DIR_0 .inc_memory() […]

На поверхности черной дыры

А разве у них есть поверхность? Ведь все привыкли к представлению о черной дыре как о сингулярности скрытой от нашего взора горизонтом события. Впрочем, исследуя термодинамику черных дыр, физики давно пришли к выводу, что они ведут себя не как трехмерные, а как двухмерные объекты. Например, количество составных частей черной дыры как термодинамической системы, пропорционально квадрату […]

Как обучить нейронную сеть DeepPavlov на ноутбуке с использованием GPU

В этой статье я хочу поделиться своим опытом использования данной open-source библиотеки на примере реализации одной задачи с парсингом файлов PDF/DOC/DOCX содержащих резюме специалистов. Здесь я также опишу этапы реализации инструмента для подготовки датасета. После чего можно будет обучить модель BERT на полученном датасете в рамках задачи распознавания сущностей из текстов (Named Entity Recognition – […]

Создание упаковщика x86_64 ELF файлов под linux

Введение В данном посте будет описано создание простого упаковщика исполняемых файлов под linux x86_64. Предполагается, что читатель знаком с языком программирования си, языком ассемблера для архитектуры x86_64 и с устройством ELF файлов. В целях обеспечения ясности из приведённого в статье кода была убрана обработка ошибок и не были показаны реализации некоторых функций, с полным кодом […]

Управление силовым электроприводом. Опыты дилетанта

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

БД мессенджера (ч.1): проектируем каркас базы

Как можно перевести бизнес-требования в конкретные структуры данных на примере проектирования «с нуля» базы для мессенджера. Часть 1: проектируем каркас базы Часть 2: секционируем «наживую» Наша база будет не такой масштабной и распределенной, как у ВКонтакте или Badoo, а «чтобы было», но было хорошо — функционально, быстро и умещалось на одном сервере PostgreSQL — чтобы […]

БД мессенджера (ч.2): секционируем «наживую»

Мы удачно спроектировали структуру нашей PostgreSQL-базы для хранения переписки, прошел год, пользователи активно ее наполняют, вот в ней уже миллионы записей, и… что-то все начало подтормаживать. Часть 1: проектируем каркас базы Часть 2: секционируем «наживую» Дело в том, что с ростом объема таблицы растет и «глубина» индексов — хоть и логарифмически. Но со временем это […]

Как делается косплей. Cоздание костюма Advanced Suit Aйзека Кларка из игры Dead Space 2

Зачем и о чем? На хабре мне не попадалось статей освещающих тему косплея с точки зрения того как делаются все эти костюмы, поэтому я решил это исправить и рассказать о том как я делал косплей на персонажа Айзека Кларка из игры Dead Space 2. Думаю о самом понятии косплея, его текущем статусе в России и […]

Проклятие второго месяца

У организационных изменений две ключевые проблемы – начать и не бросить. Причем, как ни странно, не бросить – сложнее, чем начать. Начать сложно, если изменения запланированы большие. Решается эта проблема просто – надо начать понемногу, кусками. Для знатоков напомню – это называется agile, а еще – fail fast, fail cheap. Сделал шажок, оценил, либо выкинул, […]

Пишем «калькулятор». Часть II. Решаем уравнения, рендерим в LaTeX, ускоряем функции до сверхсветовой

Привет! Итак, в первой части мы уже неплохо поработали, сделав производную, упрощение, и компиляцию. Так, а что еще должен уметь наш простенький калькулятор? Ну хотя бы уравнения вида точно должен решать. А еще красиво нарисовать это дело в латехе, и будет прямо хорошо! Погнали! Дисклеймер И хотя код приведен здесь на C#, здесь его так […]