Обновить
0
0

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

Отправить сообщение

Музыкальный движок для Денди: FamiTone

Уровень сложностиПростой
Время на прочтение25 мин
Охват и читатели16K

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

Речь пойдёт о некогда созданной мной библиотечкe, музыкальном «драйвере» или движке под названием «FamiTone», предназначенной для озвучки любительских (homebrew) игр для 8-битной игровой приставки Famicom, она же NES, она же «Денди». По пути разберёмся, что это, как устроено, кому и зачем вообще могло понадобиться, и пригодилось ли в итоге. Спойлер: да.

Читать далее

Я выполнил реверс-инжиниринг веб-обфускации Amazon, потому что приложением Kindle пользоваться невозможно

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели20K

TL;DR

• Я впервые купил на Amazon электронную книгу

• Android-приложение Kindle самой компании Amazon было очень забагованным и часто вылетало

• Попробовал скачать мою книгу, чтобы читать её в реально работающем приложении для чтения

• Осознал, что Amazon больше не позволяет этого делать

• Решил назло выполнить реверс-инжиниринг её системы обфускации

• Обнаружил множество слоёв защиты, в том числе рандомизированные алфавиты

• Победил их все при помощи колдунства с сопоставлением шрифтов

Читать далее

Про ультразвуковые ножи

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели55K

Картинка: pikisuperstar, freepik.com

Что мы делаем, когда пытаемся что-то разрезать ножом?

Верно — двигаем его по разрезаемой поверхности.

А что делаем, если хотим отрезать быстрее?

Снова верно: увеличиваем скорость перемещения режущей поверхности по объекту или самого объекта по режущей поверхности (или всё сразу).

А что будет, если скорость перемещения возрастёт до ультразвуковой? И зачем это вообще нужно?

Эти и другие подробности будут описаны ниже под катом ;-)

Читать далее

Тайна самой дешевой консоли с Ozon

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели57K

Наверняка многие читатели слышали о самой дешевой консоли на маркетплейсах — «Sup». На первый взгляд, это устройство — чудо чудное: цветной дисплей приличного разрешения, целых 500 игр в комплекте, аккумулятор и даже дополнительный геймпад, и всё это за какие-то 400 рублей в розницу.

Обычный человек просто подумает мол «очередной масс-маркет по типу Тетриса» и пройдет мимо. Однако моя гиковская душа очень хотела узнать, в чём же заключается тайна самой дешевой консоли на Озоне и я решил заглянуть «под капот»… Поверьте, внутри гораздо интереснее, чем кажется на первый взгляд!

Читать далее

Накопитель цифровой информации. Самый загадочный прибор на базе МК-85

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели15K

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

Так получилось, что ко мне в руки попал, пожалуй, самый редкий и самый малоизвестный экземпляр из них. Что внутри этого чемодана и как он вообще работает? Давайте разбираться...

Ввод данных

МК-85С. Оживляем шифровальный калькулятор

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели10K
Приветствую всех!
Уверен, каждый из тех, кто интересуется отечественной вычислительной техникой, слышал про этот прибор. Давным-давно на базе «гражданского» микрокомпьютера «Электроника МК-85» была выпущена специализированная версия — МК-85С. Предназначена она была для шифрования. Очень мало кто видел этот аппарат вживую, а тех, кто знает, как он работает, ещё меньше. Долгое время считалось, что таких девайсов остались считанные единицы, но вот не так давно мне повезло и я смог заполучить себе такой экземпляр. Так что сегодня у вас есть уникальный шанс узнать его тайну и даже попробовать что-то зашифровать или расшифровать.



Итак, в сегодняшней статье поговорим, наверное, о самом загадочном представителе отечественной портативной вычислительной техники. Заодно посмотрим на него в работе и узнаем, что у него внутри. Традиционно будет много интересного.
Читать дальше →

PEP-734: Субинтерпретаторы в Python 3.14

Уровень сложностиСложный
Время на прочтение16 мин
Охват и читатели5.9K

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

Я продолжаю свой цикл статей на хабре про детали реализации питона. Сегодня поговорим про субинтерпертаторы, их устройство, прошлое и, надеюсь, светлое будущее.

Под катом будет про: новые питоновские API для ускорение и паралеллизации ваших програм, про управление памятью, про дублирование данных. Ну и много C кода!

Чтобы разобраться в вопросе и рассказать вам, я сделал несколько важных шагов: прочитал почти весь код данной фичи, начал коммить в субинтерпретаторы и взял интервью у автора данного проекта. Интервью доступно с русскими и английскими субтитрами. А еще я добавил кучу контекста прямо в видео. Ставьте на паузу и читайте код.

Если вам такое интересно или целиком незнакомо – добро пожаловать!

Читать далее

l9ec: волшебный патч ядра Linux

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели11K

Если вам неудержимо хочется использовать оборудование из музея для современной разработки — статья специально для вас.

Читать далее

Дыра в щите Cloudflare: как атака на Jabber.ru вскрыла проблему, о которой молчат c 2023

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели21K

Многие помнят позапрошлогодний инцидент с Man-in-the-Middle атакой на XMPP-сервис jabber.ru. Эта история наделала много шума, но, как мне кажется, главный вывод из неё так и не был усвоен широкой аудиторией. А зря. Потому что эта атака вскрыла системную уязвимость в процессе выдачи TLS сертификатов, которая напрямую касается миллионов сайтов, особенно тех, кто доверяет свою безопасность Cloudflare.

В этой статье я расскажу вам о самой уязвимости и как вы можете быть ей подвержены.

В кроличью нору

Апгрейды для Денди: часть 2/2

Уровень сложностиПростой
Время на прочтение18 мин
Охват и читатели4.9K

Продолжаем разговор об исторических, практических и теоретических улучшениях восьмибитных игровых приставок типа «Денди», она же Famicom в Японии, Nintendo Entertainment System в США и Европе, и «любое-безумное-название» в Китае.

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

Сегодня узнаем, что ещё интересного смогли сотворить с классической 8-битной платформой разработки 1983 года китайские разработчики, радиолюбители прошлых лет и современные энтузиасты!
Читать дальше →

Нейропиксели для небогатых

Уровень сложностиПростой
Время на прочтение22 мин
Охват и читатели10K

В наше время только ленивый не пишет статей про ИИ, нейросети, ChatGPT, и вот это всё. Но вот незадача, я-то пишу про мало кому интересные старые компьютеры из далёкого прошлого, где никакими нейросетями отродясь не пахло. Как же с таким багажом влиться в модно-молодёжную струю и хайпануть немножечко на горячем тренде?

Не волнуйтесь, решение есть. Сегодня речь пойдёт про следующую ядрёную смесь: пиксельная графика и нейросети применительно к разработке инди-игр. Примитивные технологии древности, новейшие достижения прогресса и бедные свободные творцы. High tech, low life — киберпанк ещё никогда не был так близок!

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

Устройство «музыкалки» AY-3-8910 и эмулятор на Arduino

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели8.8K

Астрологи объявили месяц статей про ZX Spectrum, звук и Arduino. Количество публикаций увеличилось вдвое!

В прошлый раз я показывал, как можно перенести однобитные, они же «биперные», музыкальные «движки» с ZX Spectrum на Arduino. Но всё-таки это была максимально нишевая тема внутри нишевой темы, весьма узкоспециализированный проект.

Сегодня сделаю шаг ближе к народу. Расскажу, как работает легендарный звуковой чип AY-3-8910, как написать его простой эмулятор полностью с нуля, и как проиграть им музыкальный файл формата PT3 на обычной Arduino Nano.
Читать дальше →

Всё об устройстве и работе SSTV с примерами на Python

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели2.9K

SSTV (slow-scan television) — телевидение с медленной разверткой, узкополосный формат передачи данных, позволяющий передавать изображения через эфир. В этой статье будут рассмотрены подробности кодирования, декодирования SSTV-сигнала.
Статья может быть интересна радиолюбителям, желающим познакомиться с новым форматом связи, а также тем, кто хочет в подробностях понять как же работает эта технология.

Читать далее

Спутник — это очень просто

Время на прочтение19 мин
Охват и читатели68K
Мы быстро привыкаем к прогрессу. Вещи, которые нам несколько лет назад казались фантастикой, сегодня не замечаются и воспринимаются как всегда существовавшие. Достаточно покопаться в старых вещах, как вдруг найдется монохромный мобильный телефон, дискета, магнитофонная кассета или даже катушка. Не так давно это было. Не так давно и интернет был «по талонам» под скрип модема. А кто-то помнит 5,25" жесткие диски или даже магнитофонные кассеты с компьютерными играми. И обязательно найдется тот, кто скажет, что в его время были 8" дискеты и бобины для ЕС ЭВМ. И в тот момент ничего не было современнее, чем это.

В эти недели можно наблюдать традиционные мероприятия, посвященные запуску первого Спутника — началу Космической эры. Силой случая спутник, который должен быть первым, стал третьим. А первым полетел совсем другой аппарат.
Этот текст о том, как просто сейчас услышать спутники на околоземных орбитах и как это было в начале космической эры. Перефразируя известной когда-то книги Е. Айсберга: «Спутник — это очень просто!»

image

Читать дальше →

Псевдослучайный рандом в Python

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели3.7K

В этой статье хочу рассказать про нерандомность модуля random в стандартной библиотеке Python. С точки зрения криптографии и математики числа, генерируемые этим модулем, случайные лишь на вид — они порождаются детерминированным алгоритмом, что делает их псевдослучайными. Рассмотрим, как устроен генератор на основе алгоритма Mersenne Twister (MT19937), почему его выходы «нерандомны» в формальном смысле и какие практические следствия это имеет.

написано для новичков и плохо посвященных в тему людей…

Читать далее

Эволюция одноразовых кодов: от TAN к Passkeys

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели1.8K

От TAN-листов и SMS-кодов до Passkeys и FIDO2 — за 20 лет одноразовые коды прошли путь от бумажек до криптографии.

Почему TOTP стал стандартом? Чем push-уведомления лучше? И правда ли, что будущее — без паролей?

В статье — краткий и наглядный разбор всей эволюции OTP: алгоритмы, уязвимости, UX и рекомендации для современных систем.

Читать далее

OSF/1 в эмуляторе

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели1.1K

Еще один редкий UNIX из далекого прошлого, который вы врядли могли видеть в живую, был возвращен из небытия и выведен в интернет.

Читать далее

Deployer — удобный и гибкий деплой приложений

Время на прочтение5 мин
Охват и читатели54K

Несомненно, тема, думаю, многими заезжена до дыр — всё-таки, деплой надо делать для каждого проекта — но я всё же подниму её и расскажу об одном замечательном инструменте, о котором, по какой-то странной причине, до сих пор ничего не написали на Хабре, да и вообще в русскоязычном сегменте как-то о нём мало что написано. Исправим это недоразумение.


Deployer хорош во многих отношениях. Код скрипта для деплоя получается коротким. Написан на старом добром Пыхчанском — то бишь, скорее всего, ставить отдельно какие-то другие инструменты на сервер вам не придётся. Если же и придётся — то PHP обычно устанавливается одной командой на любом сервере. Почему-бы и не заюзать его в своих проектах?

Читать дальше →

FastExcelWriter — избавление от проклятия PhpSpreadsheet

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели4.6K

Наверняка каждый php-разработчик, хоть раз сталкивавшийся с чтением или записью Excel-файлов, знает про библиотеку PhpSpreadsheet (в прошлом - PHPExcel). Это мощная библиотека на чистом php, которая позволяет читать, а, главное, создавать Excel-таблицы. И все с ней хорошо, пока работаешь с небольшим набором данных. Но при работе с большими файлами PhpSpreadsheet начинает чудовищно отжирать память, да и производительность резко падает, и php-скрипт, использующий библиотеку, часто просто отваливается по таймауту. И проблема - в архитектуре библиотеки.

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

И вот однажды, когда ресурсы на генерацию большого Excel-файла превысили все разумные значения, я начал искать альтернативу известной библиотеке. Альтернатива нашлась. В отличие от PhpSpreadsheet, тут все было упаковано в один класс, возможности по форматированию и стилям - скромнее некуда, но зато XLSX-файл создавался в разы быстрее, а потребление памяти было вообще копеечное. А все потому, что тут был реализован совсем иной принцип - данные не накапливались в памяти, а построчно сразу выводились в файл. Вдохновившись этой идеей, я и создал свою библиотеку FastExcelWriter.

Читать далее

Поиск аномалий во временных рядах

Время на прочтение10 мин
Охват и читатели32K

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

Изучим этот процесс более подробно
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность