Archive for the ‘Программирование’ Category

Разбор алгоритмической задачи про курьера

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

Find 7-letter word for a telephone number

In this post I will tell how to find all matches for a number like 400-9663626. A match in this case is a 7 letter word composed using specific rules. For this telephone number we’ll get 400-WOODMAN. I will use binary search. In the picture three letters are missing: O Q Z.

Проблема при записи в BAT знака равенства

Мне понадобилось вывести из BAT файла несколько строк в файл без перевода на новую строку. Все было нормально до тех пор, пока одна из строк не оказалось знаком равенства.

Калькулятор комплексных чисел на lex и yacc

Некоторое время назад мне попалась грамматика lex+yacc для калькулятора комплексных чисел https://github.com/chpoon92/complex-number-calculator-flex-bison Это пример того, как НЕ НАДО использовать эти программы. Достаточно взглянуть в грамматике лексера на правило {ws}*[-]*{ws}*{number}{ws}*[+|-]{ws}*{number}{ws}*{im}{ws}*

Как в Диадоке изобрели эпоху :)

Если покопаться в АПИ diadok sdk, то обнаружишь, что часть дат (пример: https://diadoc-sdk.readthedocs.io/ru/latest/proto/Message.html поля TimestampTicks и LastPatchTimestampTicks) представлена в виде timestamp. Но отсчитывется он вовсе не с 1970 года. Интересно, для чего это могло понадобиться? У них хранятся даты событий до общепринятого начала эпохи?

Как в цепочке документооборота Диадок найти неподписанные контрагентом документы

После того, как вы инициировали цепочку документооборота, вам нужно сохранить возвращенный messageId, к примеру «6c3a7be9-26aa-4327-bb10-6f4807739675». С помощью него можно запросить статус документов и подпись для уже подписанных. Примечание. Новый WordPress продолжает портить кусочки исходного кода в текстах заметок, добавляя закрывающие теги для того, что он считает тегами. Если знаете, как это победить, пишите в комментариях.

Примеры использования API Диадок SDK

В связи с тем, что для языка java Диадок не предоставляет примеров кода, привожу свои наработки. В заметке можно найти код для отправки неформализованного сообщения, поиска организации, поиска последнего события в ящике, листинг всех организаций и их сотрудников для своей учетки, создание департамента.

Как выбрать в гриде vaadin строчки с помощью фильтра

Сразу оговорюсь, что с помощью строкового фильтра (TextFilter), который я рассмотрю, не всегда можно подсветить несколько строк. В зависимости от параметров конструктора фильтра будет проверка на равенство строк или проверка с помощью beginsWith(). В случая, когда этих средств недостаточно, придется фильтровать коллекцию объектов как-то еще до того, как заполняется ContainerDataSource грида. Есть еще фильтры с […]

Полиморфизм применительно к json

Из-за весьма неудобных особенностей одной из внешних служб мне пришлось городить огород на своей стороне. А именно: поле с одним и тем же именем с двух разных ссылок передается в json в виде списка и в виде ассоциативного массива (LinkedHashMap).

Создание jar-расширений со шрифтами

Если в вашей печатной форме Jasper Reports в формате RTF/PDF пропали кириллические символы, которые, однако, выводятся в DOCX, то эта заметка для вас. В ней я расскажу про создание JAR расширений для шрифтов.