Pull to refresh
243
0
Дмитрий Притыкин @maisvendoo

Пользователь

Send message

Гайд регистрация программы в реестре российского ПО

Level of difficultyMedium
Reading time9 min
Views749
Читать далее
Total votes 5: ↑2 and ↓3+1
Comments0

Реализация подписчиков в c++ — пляшем от печки, но уже совсем далеко

Level of difficultyHard
Reading time12 min
Views891

В прошлой статье мы написали вполне себе разумный оповещатель (notifier) для рассылки уведомлений подписчикам (subscribers). Он достаточно удобен, там нет ничего лишнего - всего 130 строчек кода. Моменты, важные для клиентов этого кода, продуманы. Как например, многопоточный вызов доставки оповещений с минимальными взаимными блокировками и возможность отписывать прямо из обработчика подписчика.

На этом бы и остановиться, но мы шагнём дальше, добавив немного шаблонной магии и сделав код "академичнее".

Читать далее
Total votes 4: ↑4 and ↓0+9
Comments2

Python: как переменные работают на самом деле? Погружаемся в байткод и C

Level of difficultyHard
Reading time8 min
Views6.9K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

Сегодня я хочу рассказать, как на самом деле работают переменные в CPython.

Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).

Читать далее
Total votes 31: ↑31 and ↓0+44
Comments2

Цифровые двойники: от истока к будущему

Level of difficultyEasy
Reading time9 min
Views866

Не так давно термин «цифровой двойник» был передовой, меняющей парадигму, но лишь концепцией, которая обещала произвести революцию в отраслях, предоставив динамическое цифровое зеркало физических систем. Сегодня эта инновация вышла далеко за рамки своей первоначальной предпосылки. Она созрела и превратилась в тонкую экосистему.

Читать далее
Total votes 9: ↑5 and ↓4+7
Comments3

Ассемблер для программистов на языках высокого уровня: условные конструкции

Level of difficultyMedium
Reading time8 min
Views3.9K

В предыдущей статье мы познакомились с основами синтаксиса языка ассемблера и смогли создать программу на основе всего двух команд. Впечатляющий результат!

На этом уроке мы изучим новые команды и воспользуемся этими знаниями, чтобы перенести на язык ассемблера первую конструкцию высокого уровня: условные конструкции.
Читать дальше →
Total votes 17: ↑15 and ↓2+21
Comments3

Прогнозируем солнечные затмения с помощью ~100 строк кода Python

Reading time6 min
Views2K

8 апреля 2024 года автор статьи, основатель и СЕО компании Modal Labs, Эрик Бернхардссон планировал посмотреть свое первое полное солнечное затмение. За день до этого ему пришла в голову идея — что, если попробовать рассчитать периодичность этого явления в прошлом и будущем, используя Python? Несмотря на незначительные сложности с системой координат, автору удалось создать работоспособное решение всего за несколько часов.

Под катом читайте, как с помощью ~100 строк кода удалось вычислить и проследить путь каждого солнечного затмения в период с 2020 по 2030 год.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 12: ↑12 and ↓0+14
Comments1

Интеграция Стилистического Анализа в общий Make Скрипт Сборки Проекта

Level of difficultyEasy
Reading time6 min
Views1.2K

В некоторых компаниях есть внутренние требования к стилю оформления исходных кодов на Си.

В этом тексте я показал как можно интегрировать проверку стандарта оформления исходных кодов в общий процесс сборки программы, так чтобы вместе с бинарём получить и отчет с указанием мест нарушений.

Читать далее
Total votes 8: ↑4 and ↓4+3
Comments32

Реверс-инжиниринг ресурсов игры LHX. Часть 1

Level of difficultyEasy
Reading time7 min
Views3.3K

В этом цикле статей я расскажу о том, как занимался реверсом данных из DOS-игры LHX Attack Chopper - симулятора боевых вертолетов от EA и одной из самых любимых игр моего детства (как оказалось, не я один такой - вот современный оммаж играм такого жанра той эпохи).

Это повествование не претендует ни на художественную, ни на, скорее всего, техническую ценность. Единственная изюминка описываемого мероприятия - это то, что я так до сих пор толком и не знаю ни ассемблера (гуглеж не в счет), ни архитектуры самого DOS (таблицы векторов прерываний, модели памяти - вот это вот все). То есть, это как нормальный реверс, только без реверса. 

Будет парочка картинок
Total votes 16: ↑16 and ↓0+21
Comments17

Самодельные суперконденсаторы (ионисторы)

Level of difficultyMedium
Reading time13 min
Views27K
Картинка Freepik

Среди источников электрической энергии особое место занимают так называемые суперконденсаторы — ионисторы.

Несмотря на загадочное название, их весьма просто изготовить самостоятельно, и оно того стоит: быстрая зарядка, возможность осуществления множества циклов заряд/разряд без какого-либо разрушения (вплоть до миллионов), большая ёмкость (до десятков и даже сотен Фарад).

Думается, что этого перечисления уже достаточно, чтобы всерьёз задуматься об изготовлении таких устройств, так как любой самодельщик сможет найти для них, даже навскидку, множество применений.
Читать дальше →
Total votes 63: ↑60 and ↓3+81
Comments92

Знакомимся с трансляторами ассемблера для ПК

Level of difficultyEasy
Reading time7 min
Views4.4K

Привет, Хабр! Сегодня я хочу поделиться своими наблюдениями и опытом по работе с различными ассемблерами. Я сам пишу на языке C и относительно редко касался темы ассемблера. Но недавно решил восполнить этот пробел в знаниях и посмотреть на различные ассемблеры. В данной статье мы не будем рассматривать ARM, AVR и другие микроконтроллерные архитектуры, а сосредоточимся исключительно на компьютерных ассемблерах. Давайте не будем судить строго, ведь это скорее исследовательский опыт, чем глубокое погружение.

Читать далее
Total votes 11: ↑7 and ↓4+6
Comments15

Systemd для начинающих: разбор юнитов и их функций

Reading time8 min
Views10K

На связи Егор из блока поддержки платформы F5, сегодня предлагаем вспомнить основы systemd. Поскольку утилит и возможностей в нем много, а новые функции добавляются регулярно, следить за всем этим может быть непросто, так что начнем с основ.

Systemd — это init процесс, который запускается при загрузке ядра операционной системы linux и его задачей является форкать другие процессы. Информацию о том, какие процессы необходимо исполнить он берет из, так называемых “юнитов” (systemd unit - https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html). Юниты бывают различных типов, каждый из которых выполняет определенную задачу.

Читать далее
Total votes 18: ↑15 and ↓3+14
Comments4

Руководство по межпроцессному взаимодействию (IPC) в Linux — Часть 2

Level of difficultyMedium
Reading time15 min
Views2.4K

Представляю вашему вниманию вторую часть перевода статьи A guide to inter-process communication in Linux.

Первая часть перевода была посвящена общему введению в курс дела и механизму разделяемого хранилища (shared storage). В этой части будут рассмотрены механизмы каналов (именованных и неименованных) и очереди сообщений.

Приятного чтения!

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments1

Дорогая, я уменьшил {fmt}: уменьшил размер до 14kB и избавился от рантайма C++

Level of difficultyMedium
Reading time11 min
Views13K

Библиотека форматирования {fmt} известна своим небольшим влиянием на размер бинарников. Чаще всего её код в несколько раз меньше по сравнению с такими библиотеками, как IOStreams, Boost Format или, что иронично, tinyformat.

Давайте разберем, как можно уменьшить размер бинарников еще больше!

Читать далее
Total votes 39: ↑37 and ↓2+46
Comments24

Создание Git-коммита: The Hard Way

Reading time6 min
Views9.1K

Мы постоянно используем высокоуровневые команды git, такие как git add и git commit. Однако также существует другая группа команд git, которые обрабатывают низкоуровневые операции.

В этой статье мы создадим git‑коммит, используя низкоуровневые операции, а не команду git commit.

Читать далее
Total votes 34: ↑34 and ↓0+43
Comments8

Компиляция математического выражения из строки динамически во время выполнения в C# (.NET)

Level of difficultyMedium
Reading time7 min
Views1.7K

В этой статье я продемонстрирую, как динамически компилировать математические выражения из строк в runtime в C#, исключительно просто и быстро. Это решение поддерживает различные математические контексты, включая логические выражения, научные вычисления и C#, а также позволяет расширять эти контексты пользовательскими переменными, операторами и функциями.

Читать далее
Total votes 7: ↑4 and ↓3+1
Comments17

Unix на работе. Часть первая:  Качая железо

Level of difficultyEasy
Reading time11 min
Views10K

Открываю серию статей про повседневное использование Linux и *BSD-систем в качестве основной ОС для работы. Начнем с общих принципов и выбора подходящего оборудования.

Читать далее
Total votes 23: ↑17 and ↓6+16
Comments97

Прекратил работу RomHacking — еще один сайт с образами игр для ретроконсолей. Почему они уходят?

Reading time5 min
Views7.9K

Привет, Хабр! Это Антон Комаров из МТС. Когда я был школьником, просто обожал Sega Mega Drive, Dendy и PS1. Правда, у меня была только Sega, в игры для других консолей я играл у друзей. Потом поступил в институт, приставки подзабросил: учеба поглощала почти все время. Чуть освоился, начал зарабатывать и приобрел свой первый компьютер. В один прекрасный день (помню как сейчас) мой друг рассказал, что на ПК можно играть в игры для практически всех консолей. Есть специальный софт — эмуляторы, воспроизводящие игры из их оригинальных образов, ROM.

Сначала я не поверил. А потом — вставил в привод CD с эмуляторами и огромной кучей игр. Открыл для себя целый новый мир, познакомился с играми для той же Sega, о которых даже не слышал раньше. Дальше подключил интернет и загружал образы и эмуляторы уже из сети: с разных сайтов вроде emu-land, EmuParadise и других. На этих ресурсах было буквально все, чего только можно пожелать геймеру. Ну а потом, спустя много лет, они начали закрываться. На днях прекратил работу еще один ветеран игрового мира — RomHacking. Почему? Об этом — под катом.

Читать далее
Total votes 13: ↑12 and ↓1+17
Comments7

Демосцена и FreeBSD

Level of difficultyMedium
Reading time10 min
Views7.9K

Решил вспомнить счастливое детство и полазить по сайтам демосценеров — с удивлением обнаружил, что многие выкладывают релизы под.. FreeBSD.

FreeBSD — мягко говоря не самая подходящая система для занятия оптимизированной графикой, поэтому наличие такого количества демо создаваемых под эту систему озадачило.

Поскольку я немного понимаю в компьютерах и использую FreeBSD в качестве одной из основных ОС, решил немедленно собрать и запустить самые интересные проекты.

Погрузиться в тему
Total votes 25: ↑24 and ↓1+33
Comments42

Создаём личный шрифт

Level of difficultyEasy
Reading time9 min
Views4.4K

Для иллюстраций, над которыми я работаю, часто необходим текст. Но я не хочу использовать готовые шрифты. При работе с иллюстрациями в браузере использование «веб‑безопасного» шрифта может привести к непредсказуемому результату, да и вообще использование внешних шрифтов порой сильно увеличивает размер файла с иллюстрацией.

Вместо использования готовых шрифтов я создала свой собственный, используя p5.js и JavaScript.

Читать далее
Total votes 36: ↑34 and ↓2+38
Comments7

Угломеры разные нужны, разбираем до винтика (часть 1)

Level of difficultyMedium
Reading time5 min
Views5.1K

Когда я был ребёнком, меня всегда тянуло к разборке различных устройств. Электроника, механика, электрика — всё это казалось мне удивительным миром, который требовал исследования. Всё, что попадалось под руку, будь то сломанные устройства или даже исправные 😊, подвергалось изучению. Именно тогда и началась моя страсть к разборке всего и вся. С годами интерес к устройствам не угас. Сегодня я решил вернуть это чувство и взяться за разборку угломеров — инклинометров, при этом постаравшись сделать это аккуратно, чтобы после сборки не оставалось лишних деталей 😊
Читать дальше →
Total votes 38: ↑38 and ↓0+58
Comments22
1
23 ...

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity