Я заметил, что в Пунктах Выдачи Заказов (ПВЗ) на полках есть номера от 0 до 99. Это значит, что сотрудники, возможно того не зная, используют хеширование: взятие остатка от деления номера заказа на 100 (простейшая хеш функция). Таким образом каждый заказ легко найти и можно добиться примерно равномерного распределения заказов по стеллажам. Такого примера мне […]
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 года. Интересно, для чего это могло понадобиться? У них хранятся даты событий до общепринятого начала эпохи?