Задать вопрос
  • Не могу вывести данные из бд по диапазону даты?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Логично.
    2024 - 09 - 01 = 2014
    2024 - 10 - 01 = 2013
    Не изучайте PHP по материалам позапрошлого десятилетия. Пишите нормально, с использованием подготовленных выражений и плейсхолдеров, и будет вам счастье.
    Ответ написан
    3 комментария
  • Как добавить префикс в экстеншен?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    - exten => _7[77]XXXXXXXXX,n,Dial(SIP/trunk_zebra/${EXTEN:0},60)
    + exten => _7[77]XXXXXXXXX,n,Dial(SIP/trunk_zebra/810${EXTEN},60)
    Ответ написан
    Комментировать
  • Почему выбрасывает ошибку о наличии какого-либо типа или о деструктуризации?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Не указано имя поля в новой структуре.
    - const test = { fn({ test: 'test '}) }
    + const test = { field: fn({ test: 'test '}) };
    Ответ написан
  • Как распознать кодировку даты?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Кто-то использовал таймстамп в микросекундах вместо таймстампа в секундах.
    056715-02-02T21:11:43.000Z => 1727588121103
    1727588121103 / 1000 = 1727588121.103
    1727588110.303 => 2024-09-29T13:54:49.103Z
    Ответ написан
  • Появился диск Z, откуда?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    EFI partition - это раздел, необходимый для загрузки системы в UEFI.
    Удалять его нельзя, но можно в управлении дисками убрать букву, на которой он отображается.
    Ответ написан
    Комментировать
  • Как получить координаты точки, зная координаты других 3-х, и расстояние между ними?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Первую тестовую точку берём (0, 0, 0)
    Получаем расстояние d0
    [1] (x - 0)2 + (y - 0)2 + (z - 0)2 = x2 + y2 + z2 = d02
    Возьмём вторую точку (1, 0, 0)
    Получаем расстояние d1
    [2] (x - 1)2 + (y - 0)2 + (z - 0)2 = x2 - 2x + 1 + y2 + z2 = d12
    2x - 1 = d02 - d12
    x = (d02 - d12 + 1) / 2
    Аналогично, по точкам (0, 1, 0) и (0, 0, 1) получаем координаты y и z.
    Ответ написан
    9 комментариев
  • Превышение таблица мак адреса свича?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В порт может быть подключен другой коммутатор, а в него третий, четвёртый и пятый, а в них ещё 20 и только где-нибудь на пятом уровне пойдут реальные устройства.
    Если превысить размер таблицы, то поведение зависит от разработчика прошивки. Простые коммутаторы сразу начнут слать броадкаст для MAC'ов, отсутствующих в таблице. Более продвинутые могут попробовать сначала перестроить таблицу, удалив самые старые записи.
    Ответ написан
    3 комментария
  • Что будет если владелец сайта умрет?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Закончится предоплаченное время хостинга, машину выключат, через некоторое время уберут в архив, ещё через какое-то время удалят. Если до выключения на сервере произойдёт какая-то критическая ошибка, то виртуалка будет работать, но сайт будет недоступен.
    Закончится срок аренды доменного имени, оно на 1-3 месяца будет заблокировано, затем станет доступно для новой аренды.
    P.S. В идеале - нужно переоформить хостинг и домен на нового владельца, иначе могут быть проблемы если понадобится подтвердить аренду документально.
    Ответ написан
    Комментировать
  • Как задать стили в зависимости от языка страницы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    html:lang(en) body {
      background-color: lightblue;
    }
    Ответ написан
    Комментировать
  • Какое есть сервисное решение для уведомления пользователей в закрытой Интранет сети?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Дык on-premise мессенджеров куча. Jabber, Zulip, Rocket.Chat, Compass и т.д.
    Ответ написан
    1 комментарий
  • Как создать уникальное событие?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вешаете на body MutationObserver, следящий за изменение атрибута style, смотрите, что именно изменилось. Если изменился цвет фона, то эмитите своё событие.
    Ответ написан
  • Почему последовательный вызов работает, а в одну строку нет?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для такой цепочки каждая функция должна возвращать $this.
    По неймингу - префиксы set и get, как правило используются для сеттеров и геттеров, то есть функций, устанавливающих и возвращающих значения свойств экземпляра. Использовать их для других целей, конечно, можно, но крайне не рекомендуется.
    Ответ написан
    1 комментарий
  • Как решить проблему подключения большого количества клиентов в одной WiFi сети (Keenetic)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    При разбиении на несколько зон с помощью дополнительных точек доступа надо разносить точки по разным каналам и снижать мощности передатчиков так, чтобы точки не глушили друг-друга, иначе будет только хуже. Тут нужно грамотное радиопланирование покрытия.
    Вот, например, инструкция от Eltex
    Ответ написан
    Комментировать
  • Как реализовать подписание оферты на сайте простой электронной подписью?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    N 63-ФЗ от 06.04.2011, ст. 2.2
    Простой электронной подписью является электронная подпись, которая посредством использования кодов, паролей или иных средств подтверждает факт формирования электронной подписи определенным лицом.

    Если ваш клиент регистрируется на сайте, то в качестве ПЭП может служить дополнительный ввод пароля при оформлении договора. Если у клиента есть подтверждённый номер телефона, то код, отправленный через SMS или голосовым информатором.
    Предварительно клиент должен согласиться с договором(-офертой), в котором будут прописаны "правила определения лица, подписывающего электронный документ, по его простой электронной подписи" и "обязанность лица, создающего и (или) использующего ключ простой электронной подписи, соблюдать его конфиденциальность" (то же ФЗ, ст. 9.2).
    Ответ написан
    Комментировать
  • Как сделать грамотный счетчик в питоне?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Как-то так
    def cameras_checker(self):
        cameras = [
            {'name': 'Купол 12', 'ip': IP12, 'rebootIp': RODOS12, 'fails': 0},
            {'name': 'Купол 13', 'ip': IP13, 'rebootIp': RODOS13, 'fails': 0},
        ]
        while True:
            for camera in cameras:
                cmd = f"ping {camera['ip']} -n 1 -w 100"
                response = subprocesscall(cmd, stdout=subprocess.DEVNUL)
                if not response:
                    print(f'Camera {camera['name']} ok')
                    camera['fails'] = 0
                else:
                    camera['fails'] += 1
                    print(f"Camera {camera['name']} died")
                    if camera['fails'] = 5:
                        self.cameras_reboot(camera['rebootIp'])
            sleep(5)
    Ответ написан
    4 комментария
  • Как обойти ошибку "Превышен лимит памяти"?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Чтобы найти максимум, не надо запоминать все значения, достаточно помнить максимальное.
    2. Эта задача решается гораздо проще со сложностью O(n), а не O(n2), как у вас.
    Берём два крайних отрезка (left = 0 и right = n-1), вычисляем площадь прямоугольника (right - left) * min(length[left], length[right]).
    Учитывая, что при сдвиге границ к центру расстояние (right - left) уменьшается, для увеличения площади необходимо увеличение min(length[left], length[right]). Поэтому берём ту границу left или right, длина отрезка для которой меньше, и начинаем двигать к центру, пока длина нового отрезка не станет больше предыдущей (length[left'] > length[left] или length[right'] > length[right]).
    Вычисляем новую площадь. Если она больше предыдущей, запоминаем положения отрезков. Повторяем процедуру сдвигания.
    Ответ написан
    Комментировать
  • Как написать SQL/DQL запрос при помощи библиотеки Doctrine?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Суть ORM - представление сущностей и связей БД в виде объектов. Соответственно и работать с ними, за исключением специфических случаев, надо как с объектами.
    В вашем случае код должен выглядеть как-то так:
    $taxAuthorities = $this->db->entityManager
        ->getRepository(TaxAuthority::class)
        ->findBy(['active' => true]);
    foreach ($taxAuthorities as $taxAuthority) {
        // здесь работа с объектом через геттеры
       // например, $taxAuthority->getTaxType()
    }

    Если всё-таки хотите построить запрос, то как-то так:
    $qb = $this->db->entityManager->createQueryBuilder();
    $query = $qb
        ->select('ta.taName', 'ta.taId', 'ta.taAmount', 'tam.tamColumnValue', 'tp.tpId', 'tp.tpName')
        ->from(TaxAuthority::class, 'ta')
        ->innerJoin(TaxType::class, 'tt', Join::WITH, $qb->expr()->eq('tt.ttId', 'ta.taTtId'))
        ->innerJoin(TaxAuthMatch::class, 'tam', Join::WITH, $qb->expr()->eq('tam.tamTaId', 'ta.taId'))
        ->innerJoin(TaxTypeMatch::class, 'ttm', Join::WITH, $qb->expr()->eq('ttm.ttmTtId', 'tt.ttId'))
        ->innerJoin(TaxProfileDefs::class, 'tpd', Join::WITH, $qb->expr()->eq('tpd.tpdTtId', 'tt.ttId'))
        ->innerJoin(TaxProfile::class, 'tp', Join::WITH, $qb->expr()->eq('tp.tpId', 'tpd.tpdTpId'))
        ->where($qb->expr()->eq('ta.taActive', 'Y'))
        ->orderBy('tam.tamColumnValue');
    // Посмотреть текст DQL
    // echo $query->getDQL();
    $result = $query->getQuery()->getResult();

    P.S. Нейминг полей, конечно, дичайший.
    Ответ написан
    Комментировать
  • Почему не верно монтируется каталог ubuntu server?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А вам точно нужно именно монтирование? Обычно достаточно симлинка
    ln -s /nvi /home/test/nvi
    Ответ написан
    1 комментарий