Работайте, братья!

Как Мегамаркет сам создал себе проблемы в логистике

Рецепт такой. Мегамаркет раздает направо и налево промокоды на крупные суммы (на 7000 рублей и даже больше). Покупатели заказывают крупные по размерам вещи, которые не входят в ячейку постамата — клиент будет вынужден выбрать доставку курьером.
Read more »

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

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

Read more »

Как исправить ошибки докера с упоминанием EOF

Какое-то время назад у меня перестал работать докер: не работала авторизация через сайт hub.docker.com, не удавалось подтянуть образ hello-world. Страниц с такой ошибкой в сети очень много, на них винят разработчиков докера (плохо кодите, не реагируете на обращения с описанием ошибки). В моей ситуации виновником оказался Kaspersky Internet Security (KIS).

Read more »

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

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

Read more »

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 to decide if the failure in a route should stop the application.

Read more »

Cannot resolve org.olap4j:olap4j:0.9.7.309-JS-3

In this post you can find how to fix errors like in the subject as well as «Failure to find org.olap4j:olap4j:jar:0.9.7.309-JS-3». This artifact is no longer available in the official repository and you can download archive for maven: olap4j-0.9.7.309-JS-3
Most likely maven will be able to create the folder (user’s folder)/.m2/repository/org/olap4j/olap4j/0.9.7.309-JS-3, but it won’t contain necessary files. You need to unzip the downloaded archive in this folder.

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

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

Как с помощью линуксовой команды find найти файлы, которые никогда не менялись

Т.е. дата создания совпадает с датой последнего изменения. Но надо учитывать, что не все файловые системы хранят дату создания файла. Если ваша файловая система все-таки хранит дату создания файла, то можно использовать такую команду:
Read more »

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

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