• Возможно ли изменить звуковое сообщение при подключении беспроводных наушников?

    @alexalexes
    Если документацией не предусмотрена такая функция, то нереально.
    Ответ написан
  • Запись RFID-меток 125 кГц на болванки?

    @alexalexes
    Вариант на USB:
    На алике:
    rfid reader writer usb
    Цена вопроса ~1000руб (не путать с ридерами за 300руб). Через софт можно вручную забить любые произвольные значения.
    Вариант на Arduino:
    Arduino rfid card reader writer
    Цена вопроса ~100руб, при наличии usb модуля Ардуино. Можно запрограммировать любую запись. Нужны базовые знания работы с Ардуино.
    Ответ написан
    Комментировать
  • Как правильно объединить две таблицы?

    @alexalexes
    в гугле решения найти не смог

    sql join

    redbeanphp

    Научитесь сначала использовать базовый набор функций работы с СУБД:
    либо mysqli, либо PDO. Не нужно использовать ORM-ки на начальном этапе обучения.
    Ответ написан
    1 комментарий
  • Как экранировать # в пути к файлу html?

    @alexalexes
    Так же как и кириллицу, и пробелы.
    # это %23
    Есть один нюанс, если вы кодируете полный путь к файлу, то нужно:
    1) строку url разбить на составляющие пути по разделителю слеш;
    2) каждую составляющую перекодировать функцией rawurlencode;
    3) собрать обратно путь.
    $in_str = 'files/test/Test! symbol # and % and & and (=-,.).pdf';
    $out_str = implode('/', array_map('rawurlencode', explode('/', $in_str)));
    file_put_contents('test_url.txt', $out_str);
    // test_url.txt
    // files/test/Test%21%20symbol%20%23%20and%20%25%20and%20%26%20and%20%28%3D-%2C.%29.pdf
    Ответ написан
    8 комментариев
  • Как оптимизировать запрос один ко многим в MySQL?

    @alexalexes
    В вашем случае для подзапроса цен нужно использовать оконную функцию ранжирования списка, чтобы получить последнюю актуальную цену:
    SELECT * FROM `products`
    LEFT JOIN (SELECT `product`, `price`,
                      row_number() over (partition by `product` order by `id` desc) as price_rank
                          from `prices`) as prc on `products`.`id` = prc.`product`
                                                  and prc.price_rank = 1
     limit 10

    Но у вас, наверняка, версия mySQL не 8.x, а 5.x. В ней есть пользовательские переменные, которые позволяют создать патерн запроса, эмулирующий оконные функции.
    SELECT * FROM `products`
    LEFT JOIN (SELECT `product`, `price`,
                      IF(@prev_id <> `product`, @p_rank := 0, @p_rank),
                      @prev_id := `product`,
                      @p_rank := @p_rank + 1 as price_rank -- определяем partition
                from `prices`,
                      (SELECT @p_rank := 0) p_rank, -- начальное значение ранга
                      (SELECT @prev_id := -1) prev_id -- начальное значение товара (не должен быть в диапазоне сущ. id)
                    order by `product` asc,
                             `id` desc -- устанавливаем сортировку partition
                           ) as prc on `products`.`id` = prc.`product`
                                                  and prc.price_rank = 1
     limit 10

    PS: За точность воспроизведения аналога не ручаюсь, возможно, придется шаманить с order by в подзапросе.
    Ответ написан
    Комментировать
  • Как проверить подходит ли оперативка под материнку?

    @alexalexes
    https://www.asus.com/ru/supportonly/h110m-r/helpde...
    Посмотрите документ H110M-R DRAM Report.
    Попробуйте установить тайминги в БИОС по планкам, которые были проверены производителем на 16G.
    14-14-14-34
    15-18-18-35
    Ответ написан
    Комментировать
  • Внешний или внутренний ssd?

    @alexalexes
    Различия только в разъемах.
    Внешний диск - это просто футляр-переходник с USB3 на SATA или NVMe. Хотя встречаются диски, где USB3 распаян на самой плате.
    Там, где вы видите скорость больше +-500мб, в этом варианте внутри диск работает не на SATA, а на NVMe (это не отменяет фактора быть впаянным USB3 напрямую), плюс, чипы памяти позволяют работать с такой скоростью.
    Там, где USB3 не напрямую распаян, вы можете разобрать футляр и сделать диск внутренним.
    Ответ написан
  • Как добавить ещё одну выборку SQL JOIN?

    @alexalexes
    Нужно подзапросом пройтись опять по той же структуре таблиц, и сгруппировать теги относительно категории.
    Атрибут category_tagname покажет все теги, используемые в изображениях той же категории.
    SELECT images.name,
     GROUP_CONCAT(tags.tagname SEPARATOR ", ") AS tagname,
     category.title,
     a.category_tagname
    FROM images
    INNER JOIN images_tags ON images.id = images_tags.images_id
    INNER JOIN tags ON images_tags.tags_id = tags.id
    INNER JOIN category ON images.category_id = category.category_id
    ---------------------
    join (SELECT category.category_id,
                        GROUP_CONCAT(tags.tagname SEPARATOR ", ") AS category_tagname
              FROM images
                  INNER JOIN images_tags ON images.id = images_tags.images_id
                  INNER JOIN tags ON images_tags.tags_id = tags.id
                  INNER JOIN category ON images.category_id = category.category_id
                   GROUP BY category.category_id
    ) a on a.category_id = images.category_id
    ----------------------
    WHERE images.category_id = 1
    GROUP BY images.name, category.title, a.category_tagname

    Или взять полученный массив $arrTable вытащить оттуда $arrTable[tagname], пересобрать, почистить от дубликатов и выводить уже его?

    Можно и на стороне php дообработать выборку. На практике, обычно, смотрят что либо быстрее выполняется, либо меньше по памяти.
    Ответ написан
  • Нормально ли хранить JSON в базе данных?

    @alexalexes
    Если потребуется делать join с одним из параметров внутри JSON, то это и будет показывать, что в данном варианте так делать не нужно.
    Если ни при каких обстоятельствах не возникнет ситуации, что потребуется разбирать JSON, чтобы связать данные таблиц, то храните JSON.
    Ответ написан
    1 комментарий
  • Как подключить 2 монитора к ноутбуку Lenovo Z500?

    @alexalexes
    В ноутбуках в 99% случаях внешние разъемы видео ведут на одну голову. Они сделаны так, чтобы повысить вероятность того, что в походных условиях вы каким-либо способом подключитесь к проектору.
    Ответ написан
    2 комментария
  • Как сформировать json из двух запросов SQL?

    @alexalexes
    Вся проблема в том, что таблица clients_groups не нормализована до третьей нормальной формы. У вас атрибут id_clients пытается вобрать несколько значений, что неприменимо при по пытках построить запросы, где будет фигурировать связка с id_client к другим таблицам.
    Чтобы данной структурой можно было пользоваться, нужно провести такую нормализацию:
    Таблица groups:
    id_group - идентификатор группы
    name_group - наименование группы
    Таблица clients_groups - предназначена для формирования связи многим-ко-многим (связывает множественными связями справочник клиентов со справочником групп):
    id - идентификатор связи
    id_group - идентификатор группы
    id_client - идентификатор клиента
    Тогда такая структура будет иметь следующее содержание:
    Таблица groups:
    id_group, name_group
    1, 'Головна'
    2, 'Менеджер'
    Таблица clients_groups:
    id, id_group, id_client
    1, 1, 2
    2, 2, 2
    3, 2, 3
    Построение запроса:
    select g.id_group, cg.id_client, g.group_name
    from groups as g
    join clients_groups as cg on g.id_group = cg.id_group

    Далее собрать выборку в NodeJS, объединив по группам клиентов и перекодировать результат в JSON.
    Ответ написан
    Комментировать
  • Возможен ли одинаковый МАК адрес на двух устройствах?

    @alexalexes
    Чтобы обходить такое ограничение провайдеров, для этого в роутерах предусмотрена функция клонирования мака с того устройства, на котором первоначально был настроен интернет на wan порт роутера, куда подключается кабель провайдера. Практически любой современный роутер имеет эту функцию, и с его установкой расшарить интернет на домашние устройства проблем не представляет.
    Ответ написан
    2 комментария
  • Как кешировать rss на php?

    @alexalexes
    Вариант 1.
    Использовать cron с настроенным расписанием, чтобы каждые 30 мин выполнял ваш php скрипт, который будет делать запрос rss данных и сохранять локальный файл. Любые другие приложения читают только этот файл, но не делают запросы на его обновление.
    Вариант 2.
    Использовать этот скрипт в качестве подключаемого скрипта на вашем сайте с типичной конструкцией кеша:
    if(существует файл кеша и его время изменения меньше 30 мин)
    {
    // читать кеш
    }
    else
    {
     // запросить новые данные и записать файл
    }
    Ответ написан
    Комментировать
  • Как обрезать картинку только сверху?

    @alexalexes
    Добавьте к картинке свойство object-position: bottom.
    Ответ написан
    Комментировать
  • Как исправить обводку текста css?

    @alexalexes
    Попробуйте шрифт из этого источника:
    https://fonts-online.ru/fonts/montserrat
    На пробной странице стили обводки текста от этого источника отрабатывают корректно.
    Ответ написан
    Комментировать
  • Как работали городские локальные сети?

    @alexalexes
    Городские локальные сети существовали лишь благодаря особенности первых тарифных сеток провайдера.
    Как правило, тарифы были сильно лимитированы по скорости, либо по объему трафика, но это касалось только тех случаев, когда трафик абонента шел из IP адреса, не принадлежащего провайдеру. Для обмена с внутренними IP адресами провайдер, как правило, не учитывал лимиты тарифа, и позволял практически свободно пользоваться этим преимуществом.
    Второй особенностью было то, что провайдер не только мог предоставлять услуги подключения к Интернету, но и предоставлять услуги хостинга, предоставления доменного имени третьего уровня, других внутренних сервисов, например, облачный диск.
    Два этих фактора давало возможность создать сайт в пределах локальной сети провайдера и разместить на нем каталог торрентов, а отсутствие тарифных ограничений внутри сети позволяло выгодно гонять peer-to-peer трафик. Таким образом это позволило жить и процветать торрентам в таких сетях.
    Еще одной особенностью такого сайта торрента - был свой белый список диапазонов IP адресов в аккурат соответствующий провайдеру. Его полагалось указывать в торрент-клиенте, чтобы не хватануть тарифный трафик, если кто-то чужой зарегистрируется на сайте, и начнет что-то скачивать и отдавать.
    Еще у учетной записи каталога торрента был рейтинг - соотношение отданного к скаченному, чтобы стимулировать пользователей оставаться на раздаче и создавать свои раздачи.
    Сейчас такие ресурсы создавать не имеет смысла - потому, что не каждый провайдер имеет услуги хостинга, ужесточилось законодательство в отношении выкладываемого в сеть материала, тарифные планы дешевы, чтобы купить себе скорость близкую к технологической скорости канала, и нет различий какой трафик поступает.
    Ответ написан
    6 комментариев
  • Как декодировать JSON содержащий кириллицу?

    @alexalexes
    В JSON-е текст с большой вероятностью закодирован в кодировке utf-8 в его экранируемом виде через \u.
    После перекодирования средство просмотра ресурса пытается отобразить результат в однобайтовой кодировке, предположительно в win-1252. Нужно настроить средство просмотра, чтобы оно тоже выводило результат в utf-8. Содержание JSON корректно, некорректен порядок работы с текстом после декодирования.
    Ответ написан
    Комментировать
  • Как подключить один принтер к двум компьютерам, через usb-кабель?

    @alexalexes
    Если в хозяйстве есть роутер с usb гнездом, то можно исследовать его настройки на предмет наличия принт-сервера.
    Если есть такой, то можно подключить принтер к нему. Если в роутере нет принт-сервера, но все же есть usb, то если его не жалко, то можно попробовать поставить прошивку openWRT для установки принт-сервера.

    В этом случае, компьютеры будут подключаться к роутеру по сети или wi-fi, а принтер превратится в сетевой.

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

    @alexalexes
    Вариант 1.
    Провести отдельную толстую линию для вашего теплового насоса - от щитка до него. Чтобы на этой линии не находилось ничего, кроме насоса и других силовых устройств. Обеспечить фильтрующими элементами электрику насоса.
    Вариант 2 (или совместно к варианту 1).
    Завести от щитка отдельную фазу 220В или хотя бы отдельную линию на той же фазе, на которой сидят только приборы с тонкой цифровой начинкой (телевизоры, компьютеры и другая цифровая электроника).
    Ответ написан
    5 комментариев