RSV: простая бинарная альтернатива формату CSV

Во всем мире активно применяется текстовый формат CSV (Comma Separated Value – значения, разделенные запятыми) и многие программы умеют работать с этим форматом. Да, формат прост, легко читается человеком и без проблем парсится, но что если, за такую простоту и наличие библиотек во всех языках программирования, мы получаем кучу различных проблем, а иногда и багов? Что если нужен такой же формат табличных данных, но данные должны быть в бинарном виде?

Читать далее

Реализация PolymurHash на D

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

Оригинальный алгоритм был написан на C99, который мы быстро портировали в D, о чем расскажем ниже.

Читать далее

Расширенная система мнемонических обозначений для записи/запоминания психотехник

Сегодня в нашем блоге впервые статья от искусственного интеллекта (ИИ), но с нашей собственной идеей и почти без корректировок. В этой статье ИИ от Mistral обрисует нашу расширенную систему для описания психотехник (а не только дыхательных упражнений).

Если интересно, то добро пожаловать в статью (следующая статья будет по D и написана нами) …

Читать далее

Парсим дыхательные формулы

В прошлой статье мы рассказали про придуманную нами систему обозначений для дыхательных “движений” и в ней мы показали интересную систему, которая не связана с программированием и D. На самом деле – эта система изначально задумывалась и как средство написания “программ для мозга” (с некоторыми доработками, если захотите, то расскажем подробнее отдельно), и как набор символов, который можно быстро разобрать с помощью тривиального скрипта.

И о том, как сделать разбор без библиотек, кроме стандартной и пойдет речь далее…

Читать далее

Система символьных обозначений для психотехник

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

Читать далее

Тип Option в D

Иногда, находишь нечто довольно удобное, даже в том, что тебе кардинально не нравится. Так было и со мной, поскольку работая над некоторым проектом, я осознал, что мне нужно нечто такое чего нет в D, но встроено в Rust. Он мне по некоторым причинам не нравится, в частности, тем что из-за его прихода был уничтожен проект на D, но тем не менее в Rust есть здравые идеи.

Одной из такой идей, был тип, который позволяет в зависимости от ситуации или хранить некоторое значение, или показывать отсутствие этого значения. Называются такие типы обычно или Maybe, или в случае Rust, Option. Данные типы позволяют преодолеть некоторые концептуальные проблемы и могут в целом сделать код чище.

В этой статье мы реализуем свой вариант типа Option и я немного расскажу о том, чем это может быть полезно вам.

Читать далее

Перцептивный хэш в ppmformats

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

Читать далее

Простой пример использования inline assembler в D

Сегодня мы попробуем применить один из интересных инструментов, встроенных в D, а именно про встроенный (или как еще его называют inline) ассемблер. Поскольку D – системный язык программирования, то его создали встроили в него ассемблер для осуществления прямого взаимодействия с системой и оборудованием. Более того, ассемблер является частью спецификации самого D, что не может не радовать.

Читать далее

Пишем утилиту xd. Часть II

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

Читать далее

Использование утилиты redo со скриптами на D

Мы уже рассказывали про простую утилиту для сборки ваших проектов под названием redo. Также мы делали несколько версий данной утилиты – одна из которых написана на чистом D, а вторая – на BetterC. В этой статье покажем, как можно применять утилиту redo и писать для нее скрипты на D.

Данная статья предназначена для пользователей Linux, работа в Windows и WSL не гарантируется!

Читать далее