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

Как сконфигуровать ссылку для скачивания файла в Vaadin Flow

Vaadin Flow предоставляет удобный механизм для скачивания файлов. Этот API работает с классом com.vaadin.flow.server.StreamResource, который пришел на смену классу com.vaadin.server.StreamResource. И если вы раньше работали с vaadin, то не ищите в vaadin flow класс StreamResource.StreamSource. Этот механизм позволяет инкапсулировать отдачу файла с бэкенда, который находится в защищенной сети — Vaadin flow назначит динамическую ссылку, которая […]

Как перекодировать заглавную букву И в юникод

При перекодировании текста с кириллицей из кодировки WIN1251 в UTF-8 буква И становится нечитаемой последовательностью символов, которая начинается ромбиком со знаком вопроса. Это проблема не джавы, насколько я понимаю, а именно совместимости кодировок. Т.к. остальные кириллические символы перекодируются нормально. Далее будет показан workaround.

Failsafe Apache Camel route

First of all I need to warn about the limitations. I’m going to tell how to prevent particular type of exceptions related to unreachable host:port. The approach allows for application to start up in case of this exception without the problematic route(s). Without the described below approach the entire application fails. It’s up to you […]

Как работает рекомендация друзей в социальных сетях

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

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

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

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 продолжает портить кусочки исходного кода в текстах заметок, добавляя закрывающие теги для того, что он считает тегами. Если знаете, как это победить, пишите в комментариях.