Мое скромное «открытие»

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

И вот так я приступил к созданию своей функции перестановки элемента в массиве случайным образом…

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

Подробнее

Как выкачать свежие анонсы опубликованных статей блога «LightHouse Software»

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

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

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

Подробнее

Паттерн проектирования «Команда»

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

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

Подробнее

Когда Диофант встречается с генетикой

Как-то давно, когда я изучал Python, я делал одну забавную вещь, которая иллюстрирует одну замечательную идею, привнесенную в программирование из биологии. Но, к сожалению, я потерял исходный код этой небольшой программки да и не планировал когда-либо публиковать эксперимент, и поэтому как всегда, в этой статье я попытаюсь начать с нуля и показать результат в своем любимом языке программирования… Читать далее →

Подробнее

Паттерн проектирования «Фабричный метод»

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

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

Подробнее

Интерполяция по Лагранжу

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

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

Подробнее

Добавляем итерируемые системы функций в dlib

Сегодня я расскажу о том, как я осуществил перенос наработок из проекта нашей библиотеки для обработки изображений Raster and Image Processor (RIP) в библиотеку «швейцарский нож для D» dlib. В статье я немного расскажу о том, как при минимуме усилий и использованной инфраструктуре проекта rip, мне удалось подарить вторую жизнь старой идее реализации Итерируемой Системы Функций (ИФС) и перенести ее со старой dgui (об этом я уже как-то писал) в новую среду.

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

Подробнее

Соляризация изображения в dlib

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

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

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

Подробнее

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

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

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

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

Подробнее

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

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

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

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

Подробнее