В этой статье мы сделаем небольшую попытку разработки символьных обозначений для не совсем обычной цели. Обозначения, которые мы хотим предложить, предназначены для упрощения описания дыхательных упражнений или техник релаксации. Сама система обозначений проста и скорее всего требует улучшений, также мы заранее предупреждаем о том, что наша система предназначена для ознакомительных целей и что мы не несем никакой ответственности за ее ненадлежащее применение.
Читать далееРубрика: Программирование
Тип Option в D
Иногда, находишь нечто довольно удобное, даже в том, что тебе кардинально не нравится. Так было и со мной, поскольку работая над некоторым проектом, я осознал, что мне нужно нечто такое чего нет в D, но встроено в Rust. Он мне по некоторым причинам не нравится, в частности, тем что из-за его прихода был уничтожен проект на D, но тем не менее в Rust есть здравые идеи.
Одной из такой идей, был тип, который позволяет в зависимости от ситуации или хранить некоторое значение, или показывать отсутствие этого значения. Называются такие типы обычно или Maybe, или в случае Rust, Option. Данные типы позволяют преодолеть некоторые концептуальные проблемы и могут в целом сделать код чище.
В этой статье мы реализуем свой вариант типа Option и я немного расскажу о том, чем это может быть полезно вам.
Читать далееПерцептивный хэш в ppmformats
В этой статье мы рассмотрим, как можно реализовать алгоритм перцептивного хэширования на языке программирования D, используя библиотеку ppmformats для работы с PPM изображениями. Также мы покажем каждый шаг алгоритма и объясним, как он работает и как можно использовать этот вид хэширования на практике.
Читать далееПростой пример использования inline assembler в D
Сегодня мы попробуем применить один из интересных инструментов, встроенных в D, а именно про встроенный (или как еще его называют inline) ассемблер. Поскольку D – системный язык программирования, то его создали встроили в него ассемблер для осуществления прямого взаимодействия с системой и оборудованием. Более того, ассемблер является частью спецификации самого D, что не может не радовать.
Читать далееПишем утилиту xd. Часть II
В первой части мы рассмотрели работу базового алгоритма xd и даже сделали большую часть ее реализации, но не сделали обработку аргументов утилиты и некоторый другой функционал. В этой части мы восполним пробелы и завершим создание утилиты, добавив ряд функций и некоторых улучшений.
Читать далееВзаимодействие между процессами: именованные каналы
Взаимодействие между процессами – ключевая часть многих современных приложений. Один из способов реализовать это взаимодействие – использование именованных каналов. В Windows именованные каналы представляют собой специализированный механизм IPC (Inter-Process Communication), который могут быть использованы для асинхронного или синхронного обмена данными между сервером и клиентами. В POSIX-совместимых системах аналогичная функциональность достигается через такие механизмы, как FIFO (first-in, first-out) файлы, которые предоставляют однонаправленный канал для передачи данных.
Читать далееИспользование утилиты redo со скриптами на D
Мы уже рассказывали про простую утилиту для сборки ваших проектов под названием redo. Также мы делали несколько версий данной утилиты – одна из которых написана на чистом D, а вторая – на BetterC. В этой статье покажем, как можно применять утилиту redo и писать для нее скрипты на D.
Данная статья предназначена для пользователей Linux, работа в Windows и WSL не гарантируется!
Читать далееПишем утилиту xd на D. Часть I.
В Plan 9, а также ее идейной наследнице Inferno OS, есть одна полезная утилита, которая называется xd. Наша команда подумала, что написание этой утилиты является довольно полезным и интересным упражнением. Давайте сделаем это на D!
Читать далееПоточный алгоритм шифрования ChaCha
В этой статье мы рассмотрим один из простых алгоритмов шифрования, алгоритм под названием ChaCha, о предшественнике которого, под названием Salsa20, мы уже упоминали. Алгоритм ChaCha очень известен и широко применяется, а также имеет за собой стандартизированное в RFC описание, которое в упрощенном виде будет показано далее.
Читать далееПо следам примера использования генетических алгоритмов от eax.me
В этой статье мы расскажем про один из интересных на наш взгляд экспериментов, которые мы давно планировали, но не могли реализовать, поскольку оригинальный код написан был на Perl, а разбираться с алгоритмом не было времени.
Автор оригинального кода довольно известен и для его блога eax.me, мы как-то делали гостевую статью про FPGA, и именно его идею мы и хотели воспроизвести в D.
Эксперимент, а именно так можно это назвать, который будет описываться здесь связан с генетическими алгоритмами…
Читать далее