• Есть какой то сервер-брокер для моста с HTTP в MQTT?

    Stalker_RED
    @Stalker_RED
    Напишите в гугле "http mqtt bridge", и вот вам мост.
    Ответ написан
  • Спулил на свою ветку локальную изменения — как мне обновить это на внешнем сервере через PhpStom?

    Stalker_RED
    @Stalker_RED
    push
    и на сервере обновится ?

    смотря что вы называете сервером, как он настроен, и какие у вас права.

    Можно настроить так, чтобы при вашем пуше он сразу попадал в мастер, и сразу происходил автоматический деплой на прод. Но обычно так не делается.
    Похорошему ваш пуш сперва должен одобрить кто-то из более опытных коллег, потом эта ветка попадет на тестовый сервер (или сперва на тест, потом посмотреть код), и только если все сказали "ок", тогда уже "на сервере обновиться". В больших конторах этот путь может занимать дни, недели, или даже месяцы и годы. Если вы сам себе командир - можете настроить автодеплой и фигачить в продакшен за секунды.
    Ответ написан
    Комментировать
  • Как настроить автоматические сборку проекта и очереди перед загрузкой на Github?

    Stalker_RED
    @Stalker_RED
    Все js и css файлы проекта должны быть скомпилированы Vite
    не должны! В гите у вас исходники, скомилированные штуки не обязаны быть в исходниках (хотя иногда их и добавляют).
    Вы при желании можете скомпилировать их заранее, и залить в гит, либо выложить как релиз

    Некоторые процессы в проекте выполняются с помощью очередей и нужно как-то настроить
    приложение что бы команда
    Это нормальная история, к вашему приложению вполне может прилагаться перечень требований к инфраструктуре, инструкция по установке и настройке, либо скрипт-инсталлятор.
    Ответ написан
    3 комментария
  • Нужен ли маршрутизатор, если у границы стоит сетевой экран?

    Stalker_RED
    @Stalker_RED
    В обиходе когда говорят "роутер" большинство сразу представляет небольшую коробочку с несколькими светодиодиками, антеннкой и проводами.
    Зачастую в одном корпусе (и на одном процессоре) реализуются сразу несколько функций - и собственно роутера (маршрутизатора) и межсетевого экрана, и Wi-Fi точки доступа, DNS-сервера, и т.д..

    Когда-то давно, когда эти штуки только изобретались, они делались в виде отдельных компьютеров или отдельного софта. И сейчас можно взять обычный десктоп, воткнуть в него несколько сетевух, и поставить на него софт занимающийся всем тем, что упихивают в маленькую коробочку. И сейчас есть большие промышленные коробки, выполняющие какую-то одну функцию, но с большой пропускной способностью и скоростью.

    XXX не нужен, потому что YYY все это умеет. Плюс у него куча функционала сверху для защиты. (Знаю что дорого, но сейчас речь не про цены).

    Вот именно, что про цены, про скорость, и про надежность. В самых дешевых и слабеньких микротиках стоит точно такой-же софт (RouterOS) как и в старших моделях, и соответственно самые младшие микротики "все умеют", за что мы их и любим. Для дома, когда у вас пара телефонов, пара ноутов, и телевизор - все круто, и возможность что-то там поднастроить на низком уровне приятно греет душу.
    Но если вы через такого малыша попытаетесь завернуть траффик от большой сети с кучей юзеров - он начнет адово тупить, что не удивительно.
    Как в конкретно вашей сети будет справляться то или иное устройство - хз.

    Бизнес зачастую склонен ставить устройства с запасом на пару порядков по производительности, потому что если у вас из-за сэкономленных $500 на пол дня остановилось производство, или офис выпал из работы - какая-то не очень классная экономия выходит, правда?
    А еще бизнес склонен держать резервные железки, ИБП, резервные каналы, делать бекапы данных, и прочих важных штук. Ну как, по началу многие на это забивают, экономят средства. А вот после одного-двух факапов, когда все вырубилось в разгар рабочего дня - вот тогда вдруг внезапно появляются и деньги на админа, и на оборудование.

    И отвечая на ваш вопрос - используют и таки этак, и в хвост и в гриву. Нам отсюда не видно что у вас за ситуация, сколько трафика внутри сети, сколько наружу, Может "и так умеет" прокатит, а может станет бутылочным горлышком. Это можно приблизительно просчитывать в специализированном софте либо замерять экспериментально на уже купленном железе в реальной обстановке.
    Ответ написан
    1 комментарий
  • Почему обрезается изображение при указанной ширине и высоте?

    Stalker_RED
    @Stalker_RED
    img {
        overflow-clip-margin: content-box;
        overflow: clip;
    }
    стили хрома
    649d837de3e96263982935.png
    Ответ написан
    Комментировать
  • Как можно оптимизировать данное полотно из if?

    Stalker_RED
    @Stalker_RED
    Пара забавных фактов:
    1. isset() проверяет существование переменной и возвращает true или false.
    2. == - не строгое сравнение

    В результате условия
    if (isset($data['time']) == 2) {}
    и
    if (isset($data['time']) == 3) {}
    Выполнятся оба, независимо от того что там в переменной $data['time']. Или не выполнятся, если ее вообще нет.
    Проверим?

    То есть у вас вопрос не как сократить, а понять для начала чего вы хотите добиться, а потом уже писать код. С нуля.
    Возможно стоит один раз написать формулу расчета, и один массив с коэфициентами (множителями), которые подставляются в формулу в зависимости от выбранной длительности сеанса.
    Ответ написан
    1 комментарий
  • Где лучше размещать изображения товаров интернет-магазина?

    Stalker_RED
    @Stalker_RED
    Проще и дешевле хранить локально. Но чем больше посетителей, чем шире их география, тем выгоднее перебросить картинки в CDN.
    Неплохой вариант сделать сразу поддомен для статики, и пусть он изначально даже ведет на тот-же сервер где и основное приложение, но как только понадобится масштабирование вы сможете быстро перебросить его куда угодно.
    Единственный накладной расход - сразу придется делать простенькое API для аплоада картинок, а не хардкодить move_uploaded_file()
    Ответ написан
    Комментировать
  • Как удалить все блоки с одинаковым классом из DOM?

    Stalker_RED
    @Stalker_RED
    Вы ведь удаляете только один элемент, с индексом 0.
    Попробуйте удалять все
    tabsFilterLocation.forEach(el => el.remove())
    Ответ написан
    Комментировать
  • Как подключить два системных блока к 1 монитору?

    Stalker_RED
    @Stalker_RED
    Можно конечно. Большинство мониторов при включении автоматически определят на каком из входов есть сигнал. Если он будет на обоих, то переключиться придется через меню монитора, либо
    отдавая команды через DDC

    https://ru.wikipedia.org/wiki/Display_Data_Channel

    и есть софт
    https://clickmonitorddc.bplaced.net/
    (win, хоткеи + command line)
    https://freemonitormanager.com/index.html
    (win, не копался)
    ddccontrol.sourceforge.net
    (linux, все сложно, но есть гайды)
    https://www.entechtaiwan.com/lib/softmccs.shtm
    (не копался)
    Ответ написан
    Комментировать
  • Повредит ли импульс обратного напряжения блок питания?

    Stalker_RED
    @Stalker_RED
    Какая же мощность у катушки реле, что вы об этом переживаете?

    По хорошему глянуь бы схему этого блока питания, но вероятно там на выходе диодный мост, и возможно конденсатор. И ничего ему не сделается.
    Ответ написан
    5 комментариев
  • Как объединить ёмкость компьютерных бесперебойников?

    Stalker_RED
    @Stalker_RED
    Компьютерный ИБП не подойдет. Аккумулятор слишком маленький и работает на больших токах, при регулятрном использовании он очень быстро выйдет из строя. Включать несколько ИБП по очереди - тот-же недостаток.
    Если подключить к этом ИБП аккумулятор побольше 12В 100А*ч, например, то работать на разряд он будет, но заряжать его будет примерно вечность. И кроме того, компьютерный ИБП не расчитан на долгую работу, охлаждение в нем плохое. Придется либо дорабатывать охлаждение, либо он рискует сгореть от перегрева.

    Существуют промышленные ИБП, которые ставят на дата-центры, узлы связи, и прочие важные объекты, но они довольно дорогие.

    Подзарядка от зарядной станции или от солнечных/ветрянных/гидродождевых источников.
    есть готовые системы рассчитанные на работу от солнца и генераторов.
    автономный гибридный солнечный инвертор
    Останется докупить подходящие аккумуляторы.

    Для начала рекомендую померять какая вам мощность нужна. Возьмите ваттметр или умную розетку с мониторингом, и посчитайте потребление в час, и заодно посмотрите пиковое.

    Затем, поглядывая на бюждет, решите свинец или литий. Автомобильные (стартерные) свинцовые нельзя раряжать на 100%, тяговые AGM-аккумуляторы в разы дороже, а литий еще дороже, но служит намного дольше.
    Ответ написан
    2 комментария
  • Как реализовать бэкап сайта/бд посредством PHP?

    Stalker_RED
    @Stalker_RED
    Возможно, хотя непонятно зачем это делать на PHP.

    Достаточно одной команды архиватору - вот эту папку заархивируй, добавь в название дату, и помести вон в ту папку. Или отправь по почте, например.
    Ну и в планировщик задач это добавить.

    А вообще для бекапа есть специаллизированный софт, который не только позволит бекапить, но и разворачивать из бекапа обратно с минимальными усилиями.

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

    Stalker_RED
    @Stalker_RED
    Я бы не делал транслитерацию и проверку расширения. Вместо транслитерации генерировать название изображения на основе user_id, расширение вообще не проверять, - удалось прочитать картинку - отлично, конвертируем в единый для сайта формат. (конвертации у вас, кстати, нет, и вполне возможна загрузка rarjpeg или чего повеселее) Не удалось - неподдерживаемый формат. Проверка размера тоже не особо нужна.
    Половину ошибок текстовых можно спрятать от пользователя, незачем ему видеть что "Не удалось записать файл на диск", такие ошибки должны отправляться в мониторинг или админу на почту.
    Остальное вроде как стремно выбрасывать, вполне возможны случаи когда вместо картинки вам загрузят что-то другое.

    Какой-то сюр при записи в БД - вместо UPDATE USER почему-то вставка в таблицу wish(?), с прочерками в полях и цене(?!).

    Было даже интересно что там за навороченная загрузка фоточек на 46кб. Может там полновесный фоторедактор? Потому что кроме кропа и парочки фильтров при загрузке аватарки сложно что-то придумать. но мало-ли.
    Оказалось загрузчик занимает строчек 20, и в нем только jQuery.post и вывод парочки сообщений. Остальное место занято jQuery выпуска 2014 года. Вы вообще пытаетесь понять что вы делаете, или просто тащите всякий хлам из этих ваших интернетов в надежде, что оно как-то само заработает?
    Ответ написан
    1 комментарий
  • Как получить данных из одной базы и другой базы под одну переменную?

    Stalker_RED
    @Stalker_RED
    Если обе базы в одной СУБД вы можете это вообще одним запросом делать
    SELECT A.*, B.* FROM db1.table1 A LEFT JOIN db2.table1 B ON A.id = B.id

    Ну и у меня есть подозрение, что вы путаетесь в терминологии, и на самом деле все проще, и у вас одна база, но разные таблицы.
    Просто JOIN это для вас какой-то страшный зверь, а не один из основных инструментов СУБД.
    Ответ написан
    1 комментарий
  • Как запретить обновление страницы для скачивания?

    Stalker_RED
    @Stalker_RED
    Со стороны браузера действие "обновить страницу" почти ничем не отличается от "закрыть, а потом открыть эту-же страницу" или даже от "открыть этот же адрес в новой вкладке".

    Вам надо для начала решить как ваше приложение должно себя вести в таких случаях, и потом уже реализовать это в коде.
    • показывать ту-же ссылку? Запишите ее в сессию, например, и показывайте каждый раз.
    • менять ссылку каждый раз? Генерируйте новую при каждом запросе.
    • менять ссылку только если предыдущая была использована? Пишите проверку была ли использована.

    И т.д.

    Идеи типа "запрет на обновление страницы" не работают, вы можете сделать открытие страницы неудобным, но не можете запретить.
    "после скачивания все закрывалось" - можно, но не во всех случаях, и кто помешает пользователю посмотреть историю запросов и открыть страницу снова?

    "после окончания скрипта делался переход на другу страницу" - можно, но опять-же, это только мелкое неудобство, пользователь может вернуться через историю браузера.
    Ответ написан
    3 комментария
  • Как вывести только четные значения массива, не создавая новый массив?

    Stalker_RED
    @Stalker_RED
    при срабатывании return функця завершает работу, цикл не продолжается.
    Уточните что вы подразумеваете под "вывести" и что под "не создавая новый массив".
    Можно отфильтровать нативным Array.filter() но при этом создается новый массив.
    const result = arr.filter(n => !n%2);
    Если "вывести", это просто в консоль, то достаточно в вашем коде вместо return написатьconsole.log(arr[i])
    Ответ написан
    2 комментария
  • Нужен функциональный браузер со специфичной защитой от отслеживания, есть ли?

    Stalker_RED
    @Stalker_RED
    Если вам надо замаскироваться, то классический набор - tor, whonix, tails, kodachi, вот это все.

    Если вам "настройки" для сео накруток, чтобы прикидываться разными пользователями, то так сразу и писали бы. Для этого специальные инструменты есть, типа sphere browser.

    Или вот, что-то новенькое, сам в работе не видел https://ls.tenebris.cc/about

    Впрочем, вам быстро надоест делать это вручную, и следующим этапом будут автоматизированные комплексы. Они есть и в виде ПО и как сервис.
    Ответ написан
    Комментировать
  • Как объединить тома жесткого диска?

    Stalker_RED
    @Stalker_RED
    Надо сперва сдвинуть те два раздела, что на 30Гб и 500Мб.
    Можно использовать более удобный бесплатный Minitool Partition Wizard, или что-то подобное.
    Ответ написан
    2 комментария
  • Как разобраться в подключении реле для умного дома?

    Stalker_RED
    @Stalker_RED
    реле которые будут работать на разрыв ввода

    Это реле и так работает в разрыв.
    Подключите к L-In и N-In фазу и ноль из розетки, l-Out на один из проводов ведущих к лампочке (придется прозвонить или угадать). Недейтесь при этом, что фаза в розетке та-же самая, что и в лампочке.

    предупреждение о безопасности

    Выражаю надежду, что все эти манипуляции вы производите отключая питание в щитке. И что у вас есть хотя-бы самый простой тестер и индикаторная отвертка


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

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

    Возможно вам повезло, и провод приходит в какую-то расперделительную коробку, или точку крепления люстры, где его можно будет перекоммутировать так, чтобы по двум жилам в подрозетник приходили нормальные фаза и ноль, а по третьей уходила фаза на лампочку. Естественно, лампочку тоже надо будет перекоммутировать так, чтобы в нее приходил нормальный ноль и фаза, которая вышла из реле.
    Ответ написан
    1 комментарий
  • Как поставить винду на SSD?

    Stalker_RED
    @Stalker_RED
    1. Втыкаешь SSD в компуктер.
    2. Втыкаешь в него флешку или диск с инсталляхой винды (или запускаешь из-под уже установленной винды, не важно).
    3. Во время установки при выборе раздела для винды выбираешь свою SSD-шку, и жмешь продолжить. Еще язык, регион и раскладку клавиатуры выбираешь, да.

    На каком этапе проблема?
    Ответ написан
    1 комментарий