Пользовательские атрибуты (UDA) [перевод]

Пользовательские атрибуты (User-Defined Attributes, UDA) — это выражения времени компиляции, которые можно добавить к объявлению чего-либо. Затем эти атрибуты можно запрашивать, извлекать и изменять во время компиляции.

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

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

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

Подробнее

Конвертация PNG в файлы Portable Any Map и Farbfeld

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

Подробнее

Статический сайт из репозиториев git с помощью stagit

Работая над предыдущей статьей, мы столкнулись с очень интересной программой. Эта программа называется stagit и предназначается для создания набора веб-страниц из существующего git-репозитория. Сам stagit — очень компактная программа в стиле suckless-tools, написанная на C, что делает её очень компактной и быстрой. Это обстоятельство позволяет собрать программу, к примеру, на Raspberry Pi и получить в свое распоряжение минималистичный статичный веб-интерфейс своих рабочих репозиториев. Сегодня мы расскажем как с помощью stagit и D получить в свое распоряжение такой интерфейс.

Подробнее

Изучаем формат изображений Farbfeld

В этой статье мы расскажем про самый простой бинарный формат изображений, который называется Farbfeld. Такой формат не очень известен широкому кругу пользователей, однако, многим наверняка известен проект в котором разработали Farbfeld – это проект suckless-tools. Этот проект славится разработкой интересных и компактных инструментов и старается создавать программы, которые следуют традициям UNIX. Команда suckless-tools пыталась разработать максимально простой формат для хранения изображений, который было бы легко обрабатывать в стиле UNIX (т.е. применять к нему стандартные утилиты UNIX в стиле поточной обработки) и который мог бы стать удобным промежуточным форматом. На наш взгляд разработчики достигли своих целей, и мы покажем как можно с минимальным усилиями реализовать компактную библиотеку для работы с Farbfeld в стиле ppmformats. Помимо этого, покажем как начать знакомство с этим форматом и подготовить минимальный набор инструментов для работы с изображениями Farbfeld.

Подробнее