Задать вопрос
  • Как реализовать контроль версий xml-файлов?

    @alexalexes
    Только сторонний скриптинг.
    Всё, что умеет следить за файловой системой и генерировать событие на изменение файлов в ОС. При возникновении события нужно выполнить команду от определенного пользователя git commit в консольном режиме и записать комментарий.
    Если нет следящего механизма под рукой, тогда выкручиваться периодическим запуском скрипта типа cron.

    PS: Я бы не стал бы это реализовывать. Копаться в таком репозитории еще то удовольствие. Удобнее, когда коммиты осознано сделаны, и все изменения в файлах по делу. Еще лучше, когда они снабжены содержательным комментарием.
    Ответ написан
    3 комментария
  • Как сделать плавную анимацию dots?

    @alexalexes
    Добавите больше ключевых кадров css в shrinkWidth, чтобы ширина изменялась не 30 -> 10, а, например, 10 -> 30 -> 10.
    Ответ написан
  • Какая функция y=f(x) может описывать подобный график с ассиметричным распределением?

    @alexalexes
    У функции 3 точки перегиба - значит эквивалент этой функции с некоторой погрешностью - полином 3 порядка.
    У вас есть реперные точки. Берете любой вычислительный метод интерполяции и подбираете коэффициенты этого полинома.
    Ответ написан
    2 комментария
  • Какая хорошая замена мессенджерам?

    @alexalexes
    https://delta.chat/
    Может работать на собственном почтовом сервере. Будет жить, пока можно отправлять письма на произвольный почтовый сервер.
    Ответ написан
    3 комментария
  • Хочу подключить роутер к вузовской сети, но в ней есть фильтр ip адресов. Доступа к административному профилю нет. Сис админы отказывают. Что делать?

    @alexalexes
    Пока вуз не родит положение, где можно настроить WPA-Enterprise и официально не купит нужные роутеры и не развернет их с подключением ваших студенческих профилей, считайте что вузовской беспроводной сети нет для вас ни в каком виде.
    Ответ написан
    Комментировать
  • Как прозвонить механическую клавиатуру?

    @alexalexes
    Не включайте больше, пока не будет доступа к внутренности корпуса.
    Когда разберете - увидите наглядно, что окислилось, что вышло из строя, где остались лужи и подтеки.
    Ветошь без ворса, изопропиловый спирт, старая зубная щетка и паяльник вам в помощь после разборки.
    PS: Если клава имеет автономное питание, то я бы не медлил с разборкой.
    Ответ написан
    Комментировать
  • Почему вложеность запроса так сильно меняет скорость?

    @alexalexes
    1. Отсутствие индексов на всех выводимых, группируемых, участвующих в условиях выборки полях.
    2. t_report_detail не таблица, а вью. Не каждая вью адекватно приготовлена, чтобы над ней можно было легко делать еще какую-либо агрегацию. Пишите другую вью на основе ее текста запроса или изменяйте принцип получения агрегированных данных, чтобы не было узских мест.
    PS: explain analyze - это ваши очки. Администратор СУБД слеп без него.
    PPS: Если работаете в Toad, то простой запуск запроса в редакторе не всегда адекватен при измерении времени. Так как он получает только первые 500 записей. Поэтому, если запрос усложнить, то план выполнения может резко поменяться с учетом получения 500 записей на конечном этапе.
    Ответ написан
    Комментировать
  • Как подсчитать количество строк в sql запросе?

    @alexalexes
    10.3.36-MariaDB
    объясняю раскладывая все по буквам.
    есть товар, который имеет несколько атрибутов, для примера возьмем 5 шт., они лежат все в одной таблице и имеют разные attribute_id, в запрос приходят 3 параметра, к примеру 200, 80, 15, пример записи в таблице
    spoiler
    product_id attribute_id text
    1 10 200
    2 10 230
    3 10 200
    1 12 80
    2 12 80
    3 12 80
    1 15 15
    2 15 13
    3 15 15
    1 80 Сони
    2 80 Сони
    3 80 Сони
    1 90 66
    2 90 60
    3 90 71

    по запросу нужно получить значение атрибута с attribute_id = 80 и с теми значениями которые еще пришли
    то есть результат должен быть Сони и total = 2 так как всем условиям соответствует 2 товара, то есть товары с product_id 1 и 3

    Вообще, в вашей задаче первым делом нужно правильно избавиться от distinct, чтобы правильно трактовать выбранные записи.
    Как это сделать?
    Считаем, что товарные item-ы имеют атрибут с id = 80 - по ним проходимся как по товарным записям. Все остальные id атрибутов используем как свойства записей - 10 - ширина, 12 - высота, 15 - диагональ.
    Тогда запрос будет таким:
    -- Тестовая выборка
    with product_attribute as (select 1 product_id, 10 attribute_id, '200' text from dual union all
    select 2, 10, '230' from dual union all
    select 3, 10, '200' from dual union all
    select 1, 12, '80' from dual union all
    select 2, 12, '80' from dual union all
    select 3, 12, '80' from dual union all
    select 1, 15, '15' from dual union all
    select 2, 15, '13' from dual union all
    select 3, 15, '15' from dual union all
    select 1, 80, 'Сони' from dual union all
    select 2, 80, 'Сони' from dual union all
    select 3, 80, 'Сони' from dual union all
    select 1, 90, '66' from dual union all
    select 2, 90, '60' from dual union all
    select 3, 90, '71' from dual),
    product as (select 1 product_id from dual union all
    select 2 from dual union all
    select 3 from dual
    )
    
    -- Сам запрос поиска
    Select A.*,
           count(*) over () cnt -- количество товаров в результате поиска
    from (SELECT p.product_id,
                 -- далее, его свойства
                 (select pp.text from product_attribute pp where p.product_id = pp.product_id and pp.attribute_id = 80) product_name, -- наименование item-а
                 (select pp.text from product_attribute pp where p.product_id = pp.product_id and pp.attribute_id = 10) wdt,
                 (select pp.text from product_attribute pp where p.product_id = pp.product_id and pp.attribute_id = 12) hgt,
                 (select pp.text from product_attribute pp where p.product_id = pp.product_id and pp.attribute_id = 15) dia
            FROM product p
          ) A
    where 1 = 1
      -- тут пишем поисковой довесок условий
      and A.wdt = 200
      and A.hgt = 80
      and A.dia = 15

    Результат будет:
    product_id product_name wdt hgt dia cnt
    1	Сони	200	80	15 	2
    3	Сони	200	80	15	2

    2 строки, считайте их как угодно, например, через count(*) over ().
    Ответ написан
    4 комментария
  • Возможно ли, защитить файлы на флешке от копирования, но с возможностью чтения и перезаписи?

    @alexalexes
    Тут бы хорошо, если станок имеет Ethernet порт и в его мозгах можно было бы поставить и включить ftp/samba клиент. Собственно, файлы хранить на сетевом диске, недоступный для операторов ЧПУ.
    Но, если операторы занимаются подгонкой файлов проекта в редакторе на компе, то вы никак не избежите утечек, если не ограничите доступ к портам компа и не отключите его от Интернета.
    Ответ написан
    Комментировать
  • Актуальны ли диски Blu Ray сейчас?

    @alexalexes
    Какой из внешних дисководов лучший?
    При условии, что у вас всегда будет под рукой рабочий привод.
    А так, надежней просто по компам родственников раскидать фотки, чтобы всегда существовало 2 и более копии в разных местах.
    Если не доверяете никому. То пишите несколько HDD копий и на полочку диски в разные помещения/квартиры.
    Ответ написан
  • Как перетащить отзывы с другого сайта на сайт на WP?

    @alexalexes
    1. Сделать скрипт, который будет эспортировать отзывы с API/парсинга других сайтов в базу данных WP. Запускать скрипт по cron раз в n минут.
    2. Если сторонняя площадка предоставляет виджет для отзывов, то использовать его, насколько можно его гибко настраивать.
    Ответ написан
    Комментировать
  • Как исправить проблему в домашней сети?

    @alexalexes
    Подключите кабель от провайдера напрямую к компу (проще всего взять ноут), сделайте все необходимые замеры, и обращайтесь к провайдеру.
    Ответ написан
    Комментировать
  • Как в выборке sql обратиться к предыдущей записи?

    @alexalexes
    Устройство | Серийный | Дата получения | Местоположение
    Ноутбук | 12349647 | 21.03.25 | Склад
    Ноутбук | 12349647 | 15.01.25 | Сотрудник_1
    Ноутбук | 12349647 | 30.08.24 | Склад
    Ноутбук | 12349647 | 22.05.24 | Сотрудник_2

    Такой способ записи с опорой на дату для построения исторической цепочки архитектурно не устройчив.
    Чтобы историческая цепочка стала устойчивой, нужно вводить указатель на следующую или предыдущую запись.
    ID | Устройство | Серийный | Дата получения | Местоположение | Следующий ID
    11 | Ноутбук | 12349647 | 21.03.25 | Склад | null
    8 | Ноутбук | 12349647 | 15.01.25 | Сотрудник_1 | 11
    5 | Ноутбук | 12349647 | 30.08.24 | Склад | 8
    1 | Ноутбук | 12349647 | 22.05.24 | Сотрудник_2 | 5

    При всех CRUD операциях работы с историческим списком нужно корректно записывать next_id в предыдущей записи.
    Можно произвольно перезаписывать все не служебные поля (кроме id и next_id), вплоть до серийника, и это не разрушит историческую цепочку.
    Последняя запись в исторической цепочке всегда будет next_id is null.
    Чтобы действительно корректно получать историческую цепочку, нужен рекурсивный запрос, но в простейших случаях достаточно сортировать цепочку по next_id.
    Ответ написан
    2 комментария
  • Как добавить в HTML страницу воспроизведение музыки?

    @alexalexes
    Это заблокировано на уровне политик браузера - аудио не должно включаться, если пользователь явно не нажал воспроизведение.
    Ответ написан
    1 комментарий
  • Почему роутер не выдает скорость?

    @alexalexes
    Воткните в комп напрямую кабель провайдера, настройте подключение, понаблюдайте сутки за скоростью на порту сетевой карты.
    PS: Возможно, кабель обжат не по парам. Если приборчиком проверяли этот момент мастера, то это не оно.
    Ответ написан
    2 комментария
  • Почему не включается отдельная видеокарта на ам4 материнке с Athlon 200g?

    @alexalexes
    Посмотрите настройки CSM Configuration, как там видео определено для ROM.
    68824157f3cac551531967.jpeg
    Ответ написан
  • Некачественный процессор Ryzen 5 5500?

    @alexalexes
    Нужно проверить процессор на рабочей сборке.
    Сходите в ремонтную мастерсткую с процем, вам его в тестовый стенд воткнут за небольшую оплату.
    Если он также ведет, значит это брак процессора - под крышку термопасты для охлаждения чипа не доложили.
    Ответ написан
    Комментировать
  • Как проверить множество mp3-файлов на целостность?

    @alexalexes
    Вы можете воспользоваться утилитой ffmpeg. Ее необходимо скачать и установить.
    Базовая команда в командной строке, чтобы проверить один файл input.mp3 выглядит так:
    ffmpeg -v error -f null - -i input.mp3 -f null - -
    Если все файлы положить в один каталог input (чтобы лежали без вложенности), а рядом создать такой скрипт в виде bat-файла, то можно проверить файлы пакетно:
    @echo off
    setlocal enabledelayedexpansion
    
    REM Указываем каталог с MP3 файлами
    set "INPUT_DIR=input"
    
    REM Проверяем, существует ли каталог
    if not exist "%INPUT_DIR%" (
        echo Каталог "%INPUT_DIR%" не найден.
        goto :eof
    )
    
    REM Объявляем переменную для подсчёта файлов
    set "total=0"
    set "passed=0"
    set "failed=0"
    
    for %%F in ("%INPUT_DIR%\*.mp3") do (
        set /a total+=1
        echo Проверка файла: %%~nxF
    
        REM Создаём временный файл для проверки
        set "tempfile=%%~dpnxf_temp.mp3"
    
        REM Пытаемся перекодировать файл в временный файл
        ffmpeg -v error -i "%%F" -f mp3 -y "%tempfile%" >nul 2>&1
    
        if errorlevel 1 (
            echo Ошибка при проверке файла: %%~nxF
            set /a failed+=1
        ) else (
            echo Файл %%~nxF прошёл проверку.
            set /a passed+=1
            del "%tempfile%"
        )
    )
    
    echo.
    echo Итог:
    echo Всего файлов: %total%
    echo Пройдено успешно: %passed%
    echo С ошибками: %failed%
    Ответ написан
    3 комментария
  • Напряжение на разомкнутом выключателе при отсутствии потребителей?

    @alexalexes
    Берете длинный удлинитель, чтобы хватило длины от розетки проектора до щитка, куда линия подключается.
    Выключаете автомат этой линии.
    Берете отвертку-пробник - убеждаетесь, что выключили фазу на этой линии - что всё безопасно.
    Вставляете удлинитель в розетку проектора.
    Ставите мультиметр на режим прозвонки.
    С помощью удлинителя вы теперь можете прозвонить любой участок цепи.
    Убедиться что целы участки:
    - от автомата щитка до розетки;
    - от розетки до выключателя.
    - включив выключатель можете подойти к щитку и проверить линию от выключателя до автомата.
    Так найдете в каком месте накосячили.
    PS: Если нет такого удлинителя, то подойдет любой длинный провод, в котором не жалко ободрать концы и также использовать для прозвонки.
    Ответ написан
    Комментировать
  • Как включить разъем usb 3 на моноблоке KVADRA 20?

    @alexalexes
    Отключите автоматическое обновление системы.
    Потом зайдите на https://support.kvadra.tech/business/download-center и найдите драйвер для USB контроллера или на чипсет целиком и установите его (возможно, придется снести предыдущую установку того же самого драйвера).
    Ответ написан
    Комментировать