0intro — Введение в файловый протокол 9P в Inferno OS

Данной статьей мы начинаем серию переводов секции 5 страниц man из Inferno OS. Эта секция посвящена целиком описанию протокола 9P, который в Inferno ранее назывался Styx, и содержит описание разных типов сообщений протокола. К D серия переводов почти не имеет отношения, но мы решили опубликовать этот материал, так как он полезен для работы с нашей […]

Подробнее

Использование TCP-соединения для получения среднего времени ответа сервера

Недавно мы представили реализацию функции получения среднего времени ответа сервера с помощью команды ping. После публикации статьи нам поступило определенное количество справедливой критики по поводу ненадежности команды ping. По этой причине было решено опубликовать этот рецепт с реализацией того же функционала без использования ping.

Подробнее

Самый бесполезный шаблон

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

Подробнее

Реализация функции получения среднего времени ответа сервера с помощью команды ping

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

Подробнее

Новый год — новый порт. Портируем самый «крошечный» эмулятор RV32IMA в BetterC

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

Подробнее

Итоги 2022 года

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

Подробнее

Акварелизация изображения с помощью dlib

Сегодня мы покажем вам небольшой интересный эксперимент с нашей любимой тематикой — обработкой изображений своими руками. Целью нашего скромного эксперимента будет получить из картинки ее копию, но сделанную так, как будто сама картинка нарисована акварельной краской. Эксперимент хоть и простой, но не со всеми изображениями работает так, как ожидается, поскольку не во всех изображениях встречаются […]

Подробнее

Программирование алгоритма цифровой подписи на основе эллиптических кривых

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

Подробнее

Генерируем случайное «очень большое число» (big integer) в промежутке от 0 до n

В этом скромном рецепте мы покажем вам самописный алгоритм для работы с числами с BigInt из std.bigint, который тем не менее, может пригодиться вам при работе с некоторыми приложениями арифметики больших чисел.

Подробнее

Побеждаем ошибку линковки при использовании ldc в Termux

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

Подробнее