Простые эксперименты по процедурной генерации

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

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

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

Подробнее

Вывод всех символов ASCII из исполняемого файла

При частой работе с различными шестнадцатеричными и бинарными файлами требуется выделить некие особые последовательности символов (сигнатуры, подписи, блоки данных), которые представлены в виде ASCII символов.

В этом рецепте я покажу код, который покажет все ASCII последовательности в некотором исполняемом файле. Этот код вы можете использовать для изучения исполняемых файлов на предмет наличия разных интересных вещей и закономерностей, а также как очень ценный инструмент по выделению plain-данных из самого файла.

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

Подробнее

Первое возвращение в «мир проводов»

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

Но сегодня, я приглашаю вас, дорогой мой читатель, в первое возвращение в «мир проводов», в котором мы постараемся загладить нашу вину и немного усовершенствовать WireWorld.

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

Подробнее

Наблюдаем спектр сигнала при помощи D/QtE5 и Arduino

В этой статье мы покажем как сделать простой «анализатор спектра» почти в реальном времени своими руками и даже попробуем посмотреть некий сигнал, который запросто можно поймать на один медный провод (или даже самодельную антенну), присоединенный к плате Arduino.

И да, нечто подобное мы уже делали, но в этот раз будет уже иной уровень, и кроме того, можно вместо Arduino использовать даже iCEStick!

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

Подробнее

Воспроизведение звука: D + FPGA = ?

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

Если вас заинтересовало что мы придумали на этот раз, то добро пожаловать в эту статью.

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

Подробнее

Паттерн проектирования «Наблюдатель»

В этом небольшом рецепте мы покажем, как легко и просто приготовить паттерн проектирования «Наблюдатель» (или в английском варианте, паттерн «Observer»), а чтобы не городить огород из надуманных примеров, мы возьмем простой и доступный пример из книги Э.Фримен «Паттерны проектирования» и создадим свою погодную станцию.

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

Подробнее

D на твоем смартфоне

Сегодня, в этой небольшой статье я покажу вам нечто: как можно компилировать программы на D прямо на своем смартфоне под управлением операционной системы Android.

Внимание: все то, будет описано далее, было с успехом проведено на моем мобильном устройстве Xiaomi Redmi 4A (наличие доступа root не является необходимым и даже может быть опасным!), соответственно, повторяя описанное, вы и только вы сами отвечаете за получившийся результат  — все делается на ваш страх и риск!

Однако, в ходе эксперимента ни один телефон не пострадал…

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

Подробнее

Исследуем энтропию файлов

Недавно разбираясь с очередным алгоритмом шифрования и попутно знакомясь с миром FPGA, я случайно нашел одну маленькую утилитку, написанную на Python, которая в буквальном смысле позволяет посмотреть распределение информации в файле.

Данная утилитка (не буду говорить, как называется) была разработана для просмотра и изучения различного рода файлов прошивок устройств, но не это меня заинтересовало…

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

Подробнее

Алгоритм шифрования XTEA

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

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

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

Подробнее

Создаем свой ассемблер

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

В этот раз попробуем упростить написание программ для J1, используя предложение из той самой статьи о написании собственного ассемблера…

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

Подробнее