Простой ГПСЧ на базе XorShift256

В этой статье, я покажу простой рецепт для того, чтобы создать собственный генератор псевдослучайных чисел (ГПСЧ) на базе известного алгоритма XorShift256. Данный генератор потребует минимального набора операций, а также задания нескольких констант, инициализирующих ГПСЧ (параметры называются по четырем первым буквам латинского алфавита, и хранятся в виде статического массива ulong[4]). Константы для генератора надо либо подбирать […]

Подробнее

Idiomatic D. Юнит-тестирование с включенной оптимизацией в dub

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

Подробнее

Генерирование массива псевдослучайных чисел

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

Отображение шкалы для диапазона значений в консоли

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

Подробнее

QtE5EntryPoint

Относительно недавно (пару месяцев назад) я разработал небольшой шаблон, который упрощает жизнь тем нашим читателям, кто после ряда публикаций в нашем блоге активно начал работу с замечательной библиотекой QtE5. Данный шаблон упрощает создание основной процедуры main, автоматически создавая ее со всеми нужными вспомогательными процедурами и нужным активным классом основного виджета, который принимается шаблоном в качестве […]

Подробнее