Архивы автора: kna

Пошагавая инструкция как настроить интернационализацию в приложении на Spring. Пишу эту статью потому что там много нюансов, чтобы их самому не забыть). Исходные данные: Пустой проект на Java 11, созданный при помощи https://start.spring.io/ с зависимостями Spring Web, Thymeleaf. Для запуска интернационализации на проекте Spring Boot достаточно создать бандлы (файлы .properties) и объявить Bean — MessageSource. Создадим пару файлов: 1src\main\resources\locale\messages\app.properties 1src\main\resources\locale\messages\app_ru.properties со следующим содержимым соответственно: 12registration.label = Sign Up<br /> login.label=Sign In 12registration.label = Регистрация<br /> login.label=Вход Чтобы быстренько увидить работающую интернационализацию, тупо создадим src\main\resources\templates\index.html и запихнем туда чё-нить интернациональное: Это не требует дополнительной настройки, т.к. согласно поставляемой автоконфигурации, thymeleaf будет искать свои шаблоны именно в этой директории. И index.html будет использоваться при открытии корня сайта. Теперь создадим класс с конфигурацией На этом базовая интернационализация будет работать. Самое время запустить проект и проверить чё там. Если у Вас есть англоязычный браузер, то в нём будет соответственно англоязычная локаль нашего приложения. Я…

Читать дальше

Статья разбита на 2 части: Установка Kafka на сервер и создание SpringBoot приложения. Если вы вообще не в курсе за брокеров сообщений, то советую посмотреть два видосика про Apache Kafka и Rabbit MQ. Они дадут понимание как там что работает и чем отличается: I. Установка Apache Kafka В качестве базовой системы у меня CentOS 7 x86_64 Minimal 1804. Для кафки рекомендуется иметь 4 Gb оперативки. Перед началом работы ставлю нужные мне программы: sudo yum install mc nano net-tools wget -y далее, согласно инструкции https://www.digitalocean.com/community/tutorials/how-to-install-apache-kafka-on-centos-7: 1 Установка OpenJDK8 1sudo yum install java-1.8.0-openjdk 2 Создание нового пользователя 1sudo useradd kafka -m флаг -m означает, что также будет создана домашняя папка этого пользователя (/home/kafka). Устанавливаем пароль: 1sudo passwd kafka Добовляем пользователя в группу wheel чтобы у него были права устанавливать зависимости Kafka: 1sudo usermod -aG wheel kafka Теперь войдем из-под этого пользователя: 1su -l kafka 3 Загрузка и установка Kafka Binaries Для начала…

Читать дальше

Файл application.properties Большой список всевозможных свойств и описаний к ним Получение значения параметра свойства Надо пометить переменную наподобие такого RestTemplate send PATCH request При попытке отправить PATCH запрос, возникает исключение ProtocolException: Invalid HTTP method: PATCH или ResourceAccessException: I/O error on PATCH request Для решения проблемы следует добавить зависимость: И создавать RestTemplate следующим образом: Spring инициализация Запуск своего кода при загрузке Spring i18n Internalization Поддержка языков при использовании Spring Boot. Достаточно определить бин: И разместить бандлы в указанном месте (locale/messages/app). Т.е.: src/main/resources/locale/messages/app.properties иsrc/main/resources/locale/messages/app_ru.properties В этом случае если браузер желает русскую локаль, то ему будет отдан app_ru.properties, в противном случае — app.properties Также можно переопределить логику определения текущей локали с помощют объявления бина : Если этого не сделать SpringBoot будет использовать org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.classв нём можно ставить брейкпоинты. Таким образом, если не переопределять LocaleResolver, то локаль будет определяться их хэдеров запроса. Более подробно написано тут https://blog.knasys.ru/spring-boot-i18n-thymeleaf/ Аннотации Как переиспользлвать настроенную аннотацию @Pattern Если Вы…

Читать дальше

Первая часть была здесь Спойлер: данная статья написана о первой версии программы. В настоящее время я развиваю данный проект: пофиксил баги, сделал UI, проработал документацию и собрал установщики! Добро пожаловать на сайт: netbackup.blog.knasys.ru В этой части расскажу как можно приготовить сервер для бакапов. Сразу прошу прощения за качество изображений — делал на скорую руку. Имеется: 4 HDD на 1 Tb Материнка ASUS H81M-R Процессор Intel Celeron (2,4 GHz вроде) DDR3 4Gb Чтобы не быть пиратом и не тратить лицензию на винду, использую Линукс. Так как материнка RAID не поддерживает, то буду использовать программный RAID. Да это и хорошо, т.к. не будет привязки к чипсету материнской платы. В качастве ОС буду использовать Fedora Workstation Live x86_64 31. Получилась вот такая сборка: У меня в системе будет два RAID1 массива по терабайту. Один я сделаю непосредственно перед установкой системы, а второй — после. Выбираю первые два жестких диска для массива: Нажимаю «Создать…

Читать дальше

Спойлер: данная статья написана о первой версии программы. В настоящее время я развиваю данный проект: пофиксил баги, сделал UI, проработал документацию и собрал установщики! Добро пожаловать на сайт: netbackup.blog.knasys.ru Давно вынашивал идею как-то бакапить данные пользовательских компьютеров в своей организации на случай внезапного отказа жесткого диска/нападения шифровальщиков/и т.п. Сначала думал сделать каждому пользователю сетевой диск для хранения важных данных, но как-то не зашло. Потом начал копать в сторону специализированных программ для резервного копирования: есть  множество решений, но либо они бесплатные и их нужно ставить на каждый комп и настраивать отдельно, либо платные. Так как ставить на каждый из 85-ти компов мне как-то не с руки, то искал серверный вариант, к тому же бесплатный. И крайне желательно чтобы под линукс. Нашел крутой оперсорсный проект Bareos — хорошо документированный развивающийся проект энтерпрайз уровня, поставил, настроил, но вот беда — уж очень медленно он тянул файлы через сеть. Чтобы бакапнуть 500 Gb —…

Читать дальше

На некоторых дистрибутивах Linux после учтановки — приложение «Файлы» не видит сеть Windows. При попытке открыть её, либо молча открывается пустая директория с надписью типа папка пуста, либо показывается сообщение об ошибке типа: «Не удалось получить список доступных на сервере ресурсов», не удалось открыть «Сеть Windows» или что-нибудь подобное. Конечно можно обойтись прямым обращением к хосту как описано здесь http://programmingandnotonly.blogspot.com/2017/11/windows-linux-mint.html, но это «такое». Данное поведение я обнаружил на свежеустановленных Centos 8 Desktop и Fedora 31 Workstation, и очень расстроился, т.к. поиски по интернету причины этого заняли очень много времени и тщетных попыток. Однако, интересно что Ubuntu после установки всё открывает без проблем. Сейчас я покажу решение которое помогло мне и решение, которые, возможно, поможет кому-то ещё. Итак, в моём случае проблема была в файле конфигурации самбы: /etc/samba/smb.conf Его содержимое в Федоре было следующим: 12345 GNU nano 4.3 /etc/samba/smb-original.conf # See smb.conf.example for a more detailed config file or # read the…

Читать дальше

Информация основана на https://stackoverflow.com/questions/53705122/add-a-new-term-to-a-product-attribute-and-set-it-in-the-product-in-woocommerce В коде происходит следующее: Указан слаг заранее созданного атрибута, с которым будем работать. Указано значение атрибута, которое нужно добавить к товару. Получаем ID этого значения. Если Такого значения не было, то создаем его. Получаем все атрибуты текущего товара и ищим среди них наш атрибут. Если такого нет, то создаем и добавляем. Если есть — то добавляем в него наше значение. Как-то так $attribute_slug = ‘consist’;       // Слаг заранее созданного атрибута. В нем будем работать. В моём случае это состав.     $znacheniename_of_attribute = ‘Значение’;    // Имя одного из значений этого атрибута     $taxonomy = ‘pa_’ . $attribute_slug; // The taxonomy     $term_name = $znacheniename_of_attribute; // The term "NAME"     $term_slug = sanitize_title($term_name); // The term "slug" // Check if the term exist and if not it create it (and get the term ID).     if( ! term_exists( $term_name,…

Читать дальше

Я использую связку OpenServer + PHP Storm + Xdebug. Есть немало инструкций как настроить эту связку, но иногда с первого раза не работает. Здесь я расскажу на конкретном примере как это получилось у меня. Итак, я использую OpenServer 5.2.2 (https://ospanel.io/). Установка не вызывает трудностей, но есть некоторые моменты дальнейшей настройки. Это версии модулей: Я использую: Apache-PHP-7-x64 PHP-7.1-x64 MySQL-5.7 Если Вы используете другие версии – запомните их, они ещё понадобятся. Допустим, Ваш сайт будет расположен тут: D:\OSPanel\domains\beta.rollbox.su. Сразу в ней распакованы файлы wordpress.   PHP Storm. У меня стоит версия 2018.2.4. Открываем папку сайта D:\OSPanel\domains\beta.rollbox.su и видим примерно это Заходим в настройки File -> Settings… -> Languages & Frameworks -> PHP и выбираем соответствующую версию PHP ( такую же как в OpenServer ). Иначе дебаг не будет работать Теперь нужно установить расширение для браузера (я использую Firefox) — Xdebug helper от BrianGilbert_. Заходим в настройки Выбираем IDE key – PhpStorm ->…

Читать дальше

По запросу Win 10 не видит компьютеры в сети Вы найдете много огромных статей с кучей воды по этому поводу. Вам будут предлагать: включить сетевое обнаружение, включить доступ к файлам и принтерам, разрешить Windows управлять подключениями домашней группы, отключить фаервол, сбросить сеть, переименовать компьютер и так далее в этом духе. Я думаю, что если Вы полезли в интернет в поисках ответа, то Вы сделали всё логично-необходимое, и не нужно разжовывать элементарные вещи. На самом деле причина кроется, скорее всего, в отключенном компоненте SMB 1.0/CIFS File Sharing Support. Совершенно непонятно почему создатели Windows его отключили, видимо какие-то меры безопасности, итак: Изначально имеем вот такую картину: Как мы можем наблюдать, отсутствует подавляющее большинство компьютеров, причем, пинги идут, работает RDP, но при попытке открыть эти компьютеры в проводнике, выдает ошибку. Идём в Панель управления -> Программы -> Включение или отключение компонентов Windows. Находим компонент SMB 1.0/CIFS File Sharing Support и устанавливаем его полностью.…

Читать дальше

Вывод сведений о времени timedatectl  status Вывод доступных временных зон timedatectl list-timezones Поиск в выводе временных зон timedatectl list-timezones | egrep  -o «Asia/V.*» Установить зону sudo timedatectl set-timezone «Asia/Vladivostok» Установить время: sudo timedatectl set-time ‘2015-11-20 16:14:50’ sudo timedatectl set-time 20151120 sudo timedatectl set-time 15:58:30 Синхронизация с ntp-серверами https://serveradmin.ru/ustanovka-nastroyka-i-sinhronizatsiya-vremeni-v-centos/

40/132