Пользователь
Реализация подписчиков в c++ — пляшем от печки, но уже совсем далеко
В прошлой статье мы написали вполне себе разумный оповещатель (notifier) для рассылки уведомлений подписчикам (subscribers). Он достаточно удобен, там нет ничего лишнего - всего 130 строчек кода. Моменты, важные для клиентов этого кода, продуманы. Как например, многопоточный вызов доставки оповещений с минимальными взаимными блокировками и возможность отписывать прямо из обработчика подписчика.
На этом бы и остановиться, но мы шагнём дальше, добавив немного шаблонной магии и сделав код "академичнее".
Python: как переменные работают на самом деле? Погружаемся в байткод и C
Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.
Сегодня я хочу рассказать, как на самом деле работают переменные в CPython.
Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).
Цифровые двойники: от истока к будущему
Не так давно термин «цифровой двойник» был передовой, меняющей парадигму, но лишь концепцией, которая обещала произвести революцию в отраслях, предоставив динамическое цифровое зеркало физических систем. Сегодня эта инновация вышла далеко за рамки своей первоначальной предпосылки. Она созрела и превратилась в тонкую экосистему.
Ассемблер для программистов на языках высокого уровня: условные конструкции
В предыдущей статье мы познакомились с основами синтаксиса языка ассемблера и смогли создать программу на основе всего двух команд. Впечатляющий результат!
На этом уроке мы изучим новые команды и воспользуемся этими знаниями, чтобы перенести на язык ассемблера первую конструкцию высокого уровня: условные конструкции.
Прогнозируем солнечные затмения с помощью ~100 строк кода Python
8 апреля 2024 года автор статьи, основатель и СЕО компании Modal Labs, Эрик Бернхардссон планировал посмотреть свое первое полное солнечное затмение. За день до этого ему пришла в голову идея — что, если попробовать рассчитать периодичность этого явления в прошлом и будущем, используя Python? Несмотря на незначительные сложности с системой координат, автору удалось создать работоспособное решение всего за несколько часов.
Под катом читайте, как с помощью ~100 строк кода удалось вычислить и проследить путь каждого солнечного затмения в период с 2020 по 2030 год.
*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.
Интеграция Стилистического Анализа в общий Make Скрипт Сборки Проекта
В некоторых компаниях есть внутренние требования к стилю оформления исходных кодов на Си.
В этом тексте я показал как можно интегрировать проверку стандарта оформления исходных кодов в общий процесс сборки программы, так чтобы вместе с бинарём получить и отчет с указанием мест нарушений.
Реверс-инжиниринг ресурсов игры LHX. Часть 1
В этом цикле статей я расскажу о том, как занимался реверсом данных из DOS-игры LHX Attack Chopper - симулятора боевых вертолетов от EA и одной из самых любимых игр моего детства (как оказалось, не я один такой - вот современный оммаж играм такого жанра той эпохи).
Это повествование не претендует ни на художественную, ни на, скорее всего, техническую ценность. Единственная изюминка описываемого мероприятия - это то, что я так до сих пор толком и не знаю ни ассемблера (гуглеж не в счет), ни архитектуры самого DOS (таблицы векторов прерываний, модели памяти - вот это вот все). То есть, это как нормальный реверс, только без реверса.
Самодельные суперконденсаторы (ионисторы)
Среди источников электрической энергии особое место занимают так называемые суперконденсаторы — ионисторы.
Несмотря на загадочное название, их весьма просто изготовить самостоятельно, и оно того стоит: быстрая зарядка, возможность осуществления множества циклов заряд/разряд без какого-либо разрушения (вплоть до миллионов), большая ёмкость (до десятков и даже сотен Фарад).
Думается, что этого перечисления уже достаточно, чтобы всерьёз задуматься об изготовлении таких устройств, так как любой самодельщик сможет найти для них, даже навскидку, множество применений.
Знакомимся с трансляторами ассемблера для ПК
Привет, Хабр! Сегодня я хочу поделиться своими наблюдениями и опытом по работе с различными ассемблерами. Я сам пишу на языке C и относительно редко касался темы ассемблера. Но недавно решил восполнить этот пробел в знаниях и посмотреть на различные ассемблеры. В данной статье мы не будем рассматривать ARM, AVR и другие микроконтроллерные архитектуры, а сосредоточимся исключительно на компьютерных ассемблерах. Давайте не будем судить строго, ведь это скорее исследовательский опыт, чем глубокое погружение.
Systemd для начинающих: разбор юнитов и их функций
На связи Егор из блока поддержки платформы F5, сегодня предлагаем вспомнить основы systemd. Поскольку утилит и возможностей в нем много, а новые функции добавляются регулярно, следить за всем этим может быть непросто, так что начнем с основ.
Systemd — это init процесс, который запускается при загрузке ядра операционной системы linux и его задачей является форкать другие процессы. Информацию о том, какие процессы необходимо исполнить он берет из, так называемых “юнитов” (systemd unit - https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html). Юниты бывают различных типов, каждый из которых выполняет определенную задачу.
Руководство по межпроцессному взаимодействию (IPC) в Linux — Часть 2
Представляю вашему вниманию вторую часть перевода статьи A guide to inter-process communication in Linux.
Первая часть перевода была посвящена общему введению в курс дела и механизму разделяемого хранилища (shared storage). В этой части будут рассмотрены механизмы каналов (именованных и неименованных) и очереди сообщений.
Приятного чтения!
Дорогая, я уменьшил {fmt}: уменьшил размер до 14kB и избавился от рантайма C++
Библиотека форматирования {fmt} известна своим небольшим влиянием на размер бинарников. Чаще всего её код в несколько раз меньше по сравнению с такими библиотеками, как IOStreams, Boost Format или, что иронично, tinyformat.
Давайте разберем, как можно уменьшить размер бинарников еще больше!
Создание Git-коммита: The Hard Way
Мы постоянно используем высокоуровневые команды git, такие как git add
и git commit
. Однако также существует другая группа команд git, которые обрабатывают низкоуровневые операции.
В этой статье мы создадим git‑коммит, используя низкоуровневые операции, а не команду git commit
.
Компиляция математического выражения из строки динамически во время выполнения в C# (.NET)
В этой статье я продемонстрирую, как динамически компилировать математические выражения из строк в runtime в C#, исключительно просто и быстро. Это решение поддерживает различные математические контексты, включая логические выражения, научные вычисления и C#, а также позволяет расширять эти контексты пользовательскими переменными, операторами и функциями.
Unix на работе. Часть первая: Качая железо
Открываю серию статей про повседневное использование Linux и *BSD-систем в качестве основной ОС для работы. Начнем с общих принципов и выбора подходящего оборудования.
Прекратил работу RomHacking — еще один сайт с образами игр для ретроконсолей. Почему они уходят?
Привет, Хабр! Это Антон Комаров из МТС. Когда я был школьником, просто обожал Sega Mega Drive, Dendy и PS1. Правда, у меня была только Sega, в игры для других консолей я играл у друзей. Потом поступил в институт, приставки подзабросил: учеба поглощала почти все время. Чуть освоился, начал зарабатывать и приобрел свой первый компьютер. В один прекрасный день (помню как сейчас) мой друг рассказал, что на ПК можно играть в игры для практически всех консолей. Есть специальный софт — эмуляторы, воспроизводящие игры из их оригинальных образов, ROM.
Сначала я не поверил. А потом — вставил в привод CD с эмуляторами и огромной кучей игр. Открыл для себя целый новый мир, познакомился с играми для той же Sega, о которых даже не слышал раньше. Дальше подключил интернет и загружал образы и эмуляторы уже из сети: с разных сайтов вроде emu-land, EmuParadise и других. На этих ресурсах было буквально все, чего только можно пожелать геймеру. Ну а потом, спустя много лет, они начали закрываться. На днях прекратил работу еще один ветеран игрового мира — RomHacking. Почему? Об этом — под катом.
Демосцена и FreeBSD
Решил вспомнить счастливое детство и полазить по сайтам демосценеров — с удивлением обнаружил, что многие выкладывают релизы под.. FreeBSD.
FreeBSD — мягко говоря не самая подходящая система для занятия оптимизированной графикой, поэтому наличие такого количества демо создаваемых под эту систему озадачило.
Поскольку я немного понимаю в компьютерах и использую FreeBSD в качестве одной из основных ОС, решил немедленно собрать и запустить самые интересные проекты.
Создаём личный шрифт
Для иллюстраций, над которыми я работаю, часто необходим текст. Но я не хочу использовать готовые шрифты. При работе с иллюстрациями в браузере использование «веб‑безопасного» шрифта может привести к непредсказуемому результату, да и вообще использование внешних шрифтов порой сильно увеличивает размер файла с иллюстрацией.
Вместо использования готовых шрифтов я создала свой собственный, используя p5.js и JavaScript.
Угломеры разные нужны, разбираем до винтика (часть 1)
Когда я был ребёнком, меня всегда тянуло к разборке различных устройств. Электроника, механика, электрика — всё это казалось мне удивительным миром, который требовал исследования. Всё, что попадалось под руку, будь то сломанные устройства или даже исправные 😊, подвергалось изучению. Именно тогда и началась моя страсть к разборке всего и вся. С годами интерес к устройствам не угас. Сегодня я решил вернуть это чувство и взяться за разборку угломеров — инклинометров, при этом постаравшись сделать это аккуратно, чтобы после сборки не оставалось лишних деталей 😊
Information
- Rating
- Does not participate
- Location
- Ростов-на-Дону, Ростовская обл., Россия
- Date of birth
- Registered
- Activity