CloudFlare WARP + WireGuard на роутере Keenetic

По аналогии с настройкой доступа к Cloudflare WARP через WireGuard в Linux – решил, заодно уж, поднять VPN и на роутере.

В наличии – Keenetic Omni KN-1410 с KeeneticOS версии 3.7.4 (WireGuard есть и в более ранних версиях). Насколько я понимаю, политика Keenetic такова, что функциональность прошивок у них идентична для разных моделей роутеров (не зависит от “класса” устройства). Так что – должно работать не только на Omni.

Читать далее CloudFlare WARP + WireGuard на роутере Keenetic

CloudFlare WARP + WireGuard = простой способ разблокировки сайтов

Долгое время пользовался ssh-туннелем для “разблокировки” некоторых сетевых ресурсов, доступ к которым был ограничен для IP Российского диапазона (ну, драйверы там скачать с сайта производителя, и т.п.).

Но – всему приходит конец. Моему терпению – тоже. Надоело постоянно переключать потребителей на работу через прокси (privoxy), чтобы завернуть трафик в socks-прокси туннеля. TOR стали прикручивать, что привело к очень долгому поиску мостов. И лень моя победила (в очередной раз).

Очевидно – нужен был способ попроще, да ещё – без особых затрат. Ставить VPN сервер (в том или ином виде) на VPS – хотелось ещё меньше, чем кидать туннель. Всякие платные прокси (типа Mullvad) – они удобны, позволяют выбрать “точку выхода”, но – надо изыскивать возможность их оплатить. Бесплатные – обычно, работают так себе.

Читать далее CloudFlare WARP + WireGuard = простой способ разблокировки сайтов

Advent of Code 2022

Собрался в этом году поиграть-таки в Advent of Code (сомневаюсь, конечно, что до католического Рождества уложусь, но до НГ – шансы есть).

Чем он интересен – так это подходом. Собственно, сам код там и не нужен, требуется только ответ. Никому не важно, насколько эффективным, красивым и т.д. было решение, позволившее этот ответ получить.

Хоть на бумажке делай, хоть в электронных таблицах, хоть прямо в консоли браузера. Есть только задачка и окошка для ввода ответа.

Я решил делать в консоли jshell преимущественно. До тех пор, пока это получается удобно и быстро.

Читать далее Advent of Code 2022

Huginn, Yahoo Pipes, Habr и фид ленты комментариев

Huginn Agent event flow

Понадобилось мне получать с Хабра ленту комментариев пользователя в каком-то удобном виде, чтобы не заходить периодически на сайт для проверки её обновления. Очевидное решение – RSS.

В базе Хабр позволяет подписаться на профиль пользователя, или, по RSS, на ленту его публикаций. А вот для комментариев подобной возможности не предусмотрено (сама лента комментариев имеет вид https://habr.com/ru/users/user-name/comments/).

Первая мысль – воспользоваться Yahoo Pipes, ведь когда-то уже использовал его для решения подобных задач. Увы – оказалось, что сервис давно закрыт. Помолчим минуту (он был хорош!) и рассмотрим доступные альтернативы.

Читать далее Huginn, Yahoo Pipes, Habr и фид ленты комментариев

Midnight Commander

Решил собрать в одном месте (для памяти и удобства использования) некоторые нужные настройки и возможности MC, ранее валявшиеся разрозненно по разным заметкам.

Даже при ежедневном использовании MC в качестве файлового менеджера – некоторые горячие клавиши забываются и приходится перелистывать справку. Доступ к ним в табличном виде оказывается быстрей и удобней. По мере необходимости – буду пополнять заметку.

Читать далее Midnight Commander

Idea – подключение к Docker в Windows WSL2

Небольшая памятка для себя. Понадобилось воспользоваться докером в Windows 10. При этом – уже установлена Ubuntu внутри WSL2. То есть – ставить сверху ещё и графический Docker Desktop, поднимающий свои контейнеры в отдельных виртуалках WSL, особой необходимости нет. Управлять контейнерами можно прямо из Idea.
Небольшое неудобство возникло с тем, что Docker плагин в idea (под Win) поддерживает Docker for Windows, но не умеет напрямую работать с докером внутри WSL. Вариантов несколько, среди них – подключение через tcp socket или через ssh.
Против tcp socket возникли два аргумента – сложнее настроить (чтобы просто пара настроек – и заработало – такого не произошло, пришлось повозиться); кроме того – руководство Docker не рекомендует пользоваться им из-за наличия потенциальной уязвимости.
Остановился на ssh – это проще, и в целом удовлетворяет моим потребностям.
Читать далее Idea – подключение к Docker в Windows WSL2

Hybris: поиск Solr по составному полю

Понадобилось как-то в SAP Hybris настроить поиск по составному полю (состоящему из нескольких атрибутов продукта). Так, чтобы при запросе вида “желтый ботинок” в листинге товаров сначала выдавались не просто товары желтого цвета, а именно желтые ботинки (а затем – остальные ботинки). Решить это регулировкой коэффициентов усиления поиска по отдельным свойствам (boost) не удалось, пришлось городить огород с созданием и индексацией составного поля.

Модель товара ProductModel

Итак, в предлагаемом примере товар (Product) имеет два атрибута (помимо прочих), по которым надо искать в связке:

  • Name – название товара
  • Color – его цвет
Читать далее Hybris: поиск Solr по составному полю

Добавление Inspections Replace Template в idea

В IntelliJ IDEA существует довольно удобный механизм для автоматической проверки (при необходимости – и преобразования) кода, под название Code inspections. Сложилось так, что мне понадобилось добавить к нему собственное поведение, служащее для замены способа преобразования непустого Optional в его значение внутри стрима (из стиля Java 8 в стиль Java 9+).

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

Читать далее Добавление Inspections Replace Template в idea

Bshellz shell autorenew – IRC-perl-скрипт для обновления аккаунта в Bshellz

Как-то я писал про бесплатный linux shell от провайдера Bshellz в заметке Бесплатный Linux-shell с Tmux на борту. Там же был приведён способ автоматического продления аккаунта – путём отправки (по расписанию) служебного сообщения боту Beschbot с помощью имеющегося на самом хостинге IRC-клиента irssi. Время показало, что способ, как и следовало ожидать, не лишён недостатков. А именно – периодически сервер Bshellz перезагружается, после чего настройка расписания в irssi слетает. Также – несколько раз наблюдались проблемы с подключением клиента к сети Freenode IRC. В результате возникло решение зарезервировать автообновление аккаунта в Bshellz путём использования дополнительного внешнего скрипта, также запускающегося по расписанию (раз в день в произвольное время, на домашней машине).
Читать далее Bshellz shell autorenew – IRC-perl-скрипт для обновления аккаунта в Bshellz

Массовое добавление и удаление друзей в LiveJournal через XML-RPC

Так как пользоваться консолью ЖЖ для добавления или удаления друзей стало невозможно (эти команды отключили) – сделал небольшой скрипт lj-edit-friends, который позволяет редактировать список друзей для указанного аккаунта через XML-RPC интерфейс ЖЖ. Пользоваться несложно – получить список друзей для добавления/удаления с помощью LJ Add/Remove Friends, сохранить его в файл и обработать через lj-edit-friends. Подробности – ниже.
Читать далее Массовое добавление и удаление друзей в LiveJournal через XML-RPC

Perl, Linux, программирование, настройка и что-нибудь ещё…