Добавление своей языковой конструкции в D

Существует ряд языков программирования (ЯП), синтаксис которых либо допускает введение конструкций, определяемых пользователем; либо разрешает переопределение (доопределение) существующих элементов языка. Такого рода языки делают программирование еще более приятным и интересным, позволяя реализовывать идеи из любого ЯП.

Не знаю, как вам, а мне порой хочется иметь в своем любимом языке некоторые элементы, взятые из какого-то другого ЯП. Изучение других ЯП очень стимулирует, а к некоторым вещам просто возникает привычка, от которой никуда не денешься.

Хотелось бы, чтобы у D была расширяемость синтаксиса, но, к сожалению, ее нет… Читать далее

Создание своего виджета в QtE5

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

Дело в том, что несмотря на то, что в этой замечательной привязке к библиотеке Qt5, есть много элементов графического интерфейса, иногда этого набора не хватает… Хоть это и случается редко, но порой возникает задача, при которой требуется создать какой-то свой графический элемент.

Вот тут то, начинается самое интересное и при этом не трудное!

Читать далее

Паттерн «Стратегия» в D. Строим простое семейство алгоритмов для рисования графических примитивов

Довольно часто в своей практике я использую D Form Library 2 (DFL2) для своих экспериментов с математической графикой и рисованием, но бывает так, что приходиться пользоваться другими инструментами для тех же самых задач. Одним из таких инструментов является библиотека dlib, которая служит для работы с изображениям и которая способна работать в среде Linux, что делает ее одним из прекраснейших средств для математических экспериментов с графикой. Читать далее

Совсем простой просмотрщик PPM-файлов

Как наверное заметили многие темы в нашем блоге очень часто повторяются, встречаясь в наших заметках в самых различных вариантах, зачастую усовершенствованных. Иногда, мы не делаем никаких улучшений, а лишь слегка облагораживаем внешний вид, описывая таким образом результаты наших собственных экспериментов с различными GUI или инструментами. Также, очень и очень редко, в нашем блоге, авторы возвращаются к уже написанному, пытаясь реализовать то, что когда-то не получалось в силу различных причин: нашей неопытности, недостачи времени и некоторых других причин…

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

Читать далее

Как я писал калькулятор или мои опыты с QtE5

После того, как Геннадий Владимирович опубликовал у нас статью, я был весьма заинтригован этой графической библиотекой, однако, все равно несколько колебался перед ее использованием…

Проведя пару экспериментов, а также воспроизведя ряд примеров из статьи про QtE, я решил все-таки попробовать написать что-нибудь самостоятельно просто для того, чтобы заставить себя перейти на новый тулкит, а заодно пощупать его возможности.

Так мне пришла в голову мысль повторить «подвиг», написав калькулятор, но уже на D и Qt5!

Читать далее

Числа-градины, бесконечные диапазоны и немного форм

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

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

В ней я покажу пример создания Infinite Range, т.е. бесконечного диапазона, а также одну интересную библиотеку под Windows!

Читать далее

Убираем “лишние” цвета

Увлекшись цифровой обработкой изображений, неожиданно для себя, я открыл интересный графический эффект, который как выяснилось, делается весьма и весьма просто (даже без свертки и прочих математических диковинок), однако, если постараться его поискать, то поисковик выдает лишь то, как выполнить подобное в Photoshop и других монструозных графических программах…

Это решительно меня не устраивало, да и вообще, почему описания эффекта для программистов отсутствуют в рунете ?

Сейчас я это исправлю!

Читать далее

Сверточная “магия” или как я сам сделал цифровой фильтр

Шел один из зимних дней, а я сидел на работе и размышлял над математической задачей, которая мне волей-неволей досталась… Двойная сумма, двумерный массив, казалось бы, в чем тут может быть проблема?

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

Даже в одномерном варианте… Читать далее

Публикация своего пакета на D в реестре dub

Недавно, просматривая реестр библиотек и программ, с которым работает известная в кругах программистов на D утилита dub, я заметил, что кто-то выложил в реестр небольшое приложение, которое умеет вставлять файлы в виде массивов байтов внутрь некоторого программного проекта (а об этом в блоге уже писалось, в статье про создание своей валентинки на D).

Меня такая ситуация немного расстроила, так как кто-то меня уже опередил, хотя я уже давно написал нечто похожее, и даже вроде упоминал эту утилитку в одной из статей этого блога…

Но сдаваться и уступать у меня совершенно не было намерений и потому, я решился попробовать опубликовать свою версию утилитки в реестре dub, несмотря на существование аналога. По ходу работы, пришлось столкнуться с рядом некоторых сложностей, но все-таки мне удалось разместить свое приложения и именно в связи с этим, я подумал, а почему бы не рассказать о том, как поместить свой пакет на code.dlang.org и заодно сделать его доступным для быстрого скачивания и сборки практически на любом компьютере.

Читать далее