Интро в админке

Иногда, чтобы не писать «руководство пользователя», проще сделать небольшое «интро», своеобразный «путеводитель» по сайту. Поможет в этом хороший скрипт Intro.js

Текст для тура отображается в тегах вида:

				<div class="form-group w-100 mb-2" data-step="7" data-intro='Сменить пароль для входа в личный кабинет'>
				   <label for="user_password" class="mb-1 fw-bold">Пароль</label>
				   <input id="user_password" type="password" class="form-control" autocomplete="off" onkeyup="confirmNewPass();">
				</div>

Запуск тура можно сделать например так:

function GlobalTourStart(){    
    introJs().onbeforechange(function(targetElement) {
            slider=$(".sidebar")[0].getBoundingClientRect().left;
            if (slider<0) {
                if (targetElement.id=="logout_div"){
                    document.getElementById('sidebar_btn').click();
                };
            };
        }).setOptions({ 
        "showBullets": true,
        "showStepNumbers": false,
        "prevLabel":"Назад",
        "nextLabel":"Дальше",
        'doneLabel': 'Закончить', 
        'tooltipPosition': 'right',
        "onbeforechange": function(targetElement) {
            console.log(targetElement);
        }
    }).start();
};

В моём случае, я предусмотрел что «если следующий слайд в меню-гамбургере, и оно скрыто, то открываем его»

Проверка корректности сертификата из консоли

Бывает так, что стандартная ошибка скрипта не очень понятно отображает, в чём же собственно проблема. Например:

ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1123)

Помочь возможно может утилита openssl. Она выводит расширенную информацию:

 openssl s_client -showcerts -servername xn--90acbu5aj5f.xn--p1ai -connect xn--90acbu5aj5f.xn--p1ai:443 </dev/null

Вывод будет вида:

Firefox открывает сайт по не по тому IP который прописан в hosts

В силу специфики своей работы, иногда бывает необходимо чтобы страница по DNS имени открывалась не по тому IP по которому ресолвится DNS сервером. Ну например есть два сервера: dev и prod, и что-бы переключиться между ними можно поправить запись в файле host. Годами всё работало корректно, и тут вдруг неожиданно перестало. Ларчик открывается просто: Firefox с очередным обновлением стал включать сервис DNS over HTTPS по умолчанию. Отключив её, всё встало на свои места

pgsql: функция генерации пароля

Задача: сбросить у всех пользователей пароль

Решение: воспользуемся функцией генерации пароля:

DECLARE
   vPassword text;
   chars text;
BEGIN
   vPassword := ''; 
   chars := 
'@#$%*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  WHILE((select COALESCE(substring(vPassword from '.*[a-z]+.*'),'')) = '' OR (select COALESCE(substring(vPassword from '.*[A-Z]+.*'),'')) = '' OR (select COALESCE(substring(vPassword from '.*[0-9]+.*'),'')) = '') LOOP
  vPassword := '';
   FOR i IN 1..12 LOOP
     vPassword := vPassword || SUBSTRING(chars, ceil(random()*LENGTH(chars))::integer, 1);
  END LOOP;
   END LOOP;
   return vPassword;
END;

NetBeans 14 и поддержка Python

Начиная с версии 8.1, python плагины не поддерживаются официально и установить из самой IDE их нельзя, однако неофициальные плагины таки существуют.

Скачать пакет с плагинами можно здесь

Установка: Tools -> Plugins -> Downloaded -> Add Plugins

1 10 11 12 13 14 56