Реализация хэш-функции SipHash на D

В этой статье мы покажем вам, как реализуется криптографическая хэш-функция SipHash, которая дает небольшой по размеру хэш и обладает очень высокой производительностью. Реализация данной функции есть на многих языках: C, C#, Rust и даже Haskell, но нет версии на D — и наша команда решила исправить это недоразумение…

Подробнее

Папоротник Барнсли для Rosetta Code

Данный пост практически не содержит ничего нового или того, что мы не делали раньше. Этот пост носит скорее агитационный характер и содержит весьма простой пример, про который мы рассказывали уже дважды. Команда блога настоятельно рекомендует ознакомится с данным постом всем, кого интересует дальнейшее распространение информации по D и кто обладает достаточным опытом для решения на […]

Подробнее

Сборочная утилита redo на D своими руками

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

Подробнее

Алгоритм Брезенхэма для рисования окружности в ppmformats

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

Подробнее

Реализация алгоритма SHA-256

SHA-256 一 криптографическая хэш-функция, разработанная Агенством национальной безопасности США. Алгоритм SHA-256 основан на структуре Меркля-Дамгарда, согласно которой начальный индекс делится на блоки сразу после внесения изменений, а те, в свою очередь, на 16 слов.

Подробнее

Вставка байтов с фиксированной избыточностью (COBS)

Вставка байтов с фиксированной избыточностью (COBS) — это один из алгоритмов кодирования байтов данных, который приводит к эффективному, надежному и однозначному кадрированию пакетов независимо от их содержимого, что упрощает для принимающих приложений восстановление искаженных пакетов. Он использует конкретное значение байта, обычно ноль, в качестве разделителя пакетов. Когда в качестве разделителя используется ноль, алгоритм заменяет каждый […]

Подробнее

Хеш-функция one_at_time

Хеш-функция one_at_time входит в семейство не криптографических хеш-функций общего назначения для ключей переменной длины разработанных Бобом Дженкинсом. Впервые описание функции было опубликовано в 1997 году.

Подробнее

Больше скрытых возможностей стандартной библиотеки D [перевод]

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

Подробнее

Топ 5 полезных утилит, написанных на D

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

Подробнее