Задать вопрос
  • Как понять-то хоть?

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

    hint000
    @hint000
    у админа три руки
    В принципе можно на виртуальной машине. Но в частности зависит от особенностей прикладного ПО.
    Можно предположить, что абоненты только прикладывают карточку к сканеру и получают информацию на своём мониторе. Тогда нужно пробросить сканер (как USB-устройство) внутрь виртуальной машины.

    А ещё успех зависит от персональных особенностей сотрудника, который будет работать за этим ПК. Ну вы знаете, одному человеку можно показать, как здесь всё устроено и он поймёт, а другому показывай хоть каждый день, и он всё равно загонит курсор мышки на второй монитор и (глядя на первый монитор) будет говорить "ой, у меня снова мышка не работает". Если рассчитывать на текучку кадров или на низкий уровень сотрудника, то проще за копейки купить отдельный старенький системный блок.
    Ответ написан
    1 комментарий
  • Как можно укоротить код в foreach?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    /**
     * Переделать массив объектов, добавив префикс названию каждого из свойств
     * @param array<object> $srcArray исходный массив объектов
     * @param string $prefix строка, которую добавить перед названием каждого из свойств
     */
    $remap = fn (array $srcArray, string $prefix) => array_map(
        function ($obj) use ($prefix) {
            $keyValues = get_object_vars($obj);
            $keys = array_keys($keyValues);
            $values = array_values($keyValues);
            return (object) array_combine(
                array_map(fn ($key) => $prefix . $key, $keys),
                $values
            );
        },
        $srcArray
    );


    Test
    // Test
    $babySitters = [
        (object) ['a'=>'A1', 'b'=>'B-1'],
        (object) ['a'=>'A2', 'b'=>'B-2'],
        (object) ['a'=>'A3', 'b'=>'B-3'],
        (object) ['a'=>'A4', 'b'=>'B-4', 'c'=>'C4'],
    ];
    
    $result = $remap($babySitters, 'babysitter_');
    
    echo json_encode($result);


    Результат:
    [
      {
        "babysitter_a": "A1",
        "babysitter_b": "B-1"
      },
      {
        "babysitter_a": "A2",
        "babysitter_b": "B-2"
      },
      {
        "babysitter_a": "A3",
        "babysitter_b": "B-3"
      },
      {
        "babysitter_a": "A4",
        "babysitter_b": "B-4",
        "babysitter_c": "C4"
      }
    ]

    Ответ написан
    Комментировать
  • Как взламывают БД (MongoDB)?

    mikes
    @mikes
    нарисуйте схему взаимодействия компонентов приложения и что именно торчит от него в публичной части. будут понятны векторы атак.

    вангую что ломают вас не через субд как таковую (хотя держать ее с доступом извне странно) а через приложение. где то там есть возможность проводить инъекции и тд
    Ответ написан
    Комментировать
  • Какая сложность у этого алгоритма?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Цикл while же выполняется пропорционально количеству цифр в числе..
    Да. А количество цифр в числе C это ⌊log10C⌋ + 1.
    Элемент суммы с меньшей степенью (1) отбрасываем, округление вниз убираем, основание логарифма неважно, получаем logC
    Ответ написан
    6 комментариев
  • Как с помощью обработчика форм PHP отправлять сообщения о новой созданной заявки в беседу от бота telegram?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Форма отправляется на сервер, далее либо курлом вызывается второй скрипт, либо (если скрипт отправки в тг находится в рамках одного приложения) второй скрипт подключается инклудом после обработчика и обрабатывает форму своим способом.
    Ответ написан
    8 комментариев
  • Как получить данные из Promise?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Значит плохо читали. Прочитайте еще раз и выполните упражнения: https://learn.javascript.ru/promise
    async function one() {fetch('https://api.github.com/repos/javascript-tutorial/en.javascript.info/commits')
    .then(res => res.json()) 
    .then(data => { console.log(data) });
    }
    console.log(one())
    Ответ написан
    Комментировать
  • Как удалить из таблицы первые два символа, если они начинаются на 00?

    @maksam07
    UPDATE имя_таблицы
    SET имя_поля = SUBSTRING(имя_поля, 3)
    WHERE имя_поля LIKE '00%';


    за любые ошибки и потерю данных я ответственности не несу
    Ответ написан
    Комментировать
  • Есть ли возможность удобной миграции(синхронизации) сайта wp бесплатно?

    @Refguser
    Решения для бизнеса: корп.сайты, ИМ и пр.
    Нужна возможность выбора что я конкретно хочу засинхронить (только бд , только файлы и тд)

    Это дупликатор и в бесплатной версии может.
    Только нет смысла для файлов использовать дупликатор (и вообще какой-либо плагин). Их можно хоть по FTP "засинхронизировать".
    Ответ написан
    Комментировать
  • Почему в функции MYSQL при присвоении в переменную значения из таблицы не учитывается условие WHERE?

    @Uncleruc1
    Проблема заключается в том, что в вашей функции условие WHERE \orderid` = 871жестко зафиксировано, и оно всегда будет брать строку с этимorderid, игнорируя переданное значение orderid` в параметр функции.

    Чтобы учитывать переданное значение в параметр функции, необходимо использовать сам параметр orderid вместо фиксированного значения. Вот исправленный код функции:
    DROP FUNCTION IF EXISTS YourFunction;
    DELIMITER $$
    CREATE FUNCTION YourFunction (qty INT, orderid INT) RETURNS TEXT
    
    BEGIN
    DECLARE text_t TEXT;
    SELECT `sum` INTO text_t FROM t_order_price_type WHERE `orderid` = orderid LIMIT 1;
    RETURN text_t;
    END$$
    
    DELIMITER ;


    Однако, в данном виде WHERE \orderid` = orderid` не сработает так, как вы ожидаете, потому что MySQL может спутать поле таблицы с параметром функции. Чтобы избежать этой путаницы, лучше использовать псевдонимы или уникальные имена для параметров. Например:
    DROP FUNCTION IF EXISTS YourFunction;
    DELIMITER $$
    CREATE FUNCTION YourFunction (p_qty INT, p_orderid INT) RETURNS TEXT
    
    BEGIN
    DECLARE text_t TEXT;
    SELECT `sum` INTO text_t FROM t_order_price_type WHERE `orderid` = p_orderid LIMIT 1;
    RETURN text_t;
    END$$
    
    DELIMITER ;

    Здесь параметр функции называется p_orderid, что предотвращает конфликт имен между полем таблицы и параметром функции.
    Ответ написан
    2 комментария
  • Почему не получается спарсить названия учебных заведений?

    Vindicar
    @Vindicar
    RTFM!
    Ты хотя бы в браузере пробовал открыть исходный код страницы (обычно Ctrl-U)?
    Это динамический сайт, там по умолчанию в body два с половиной скрипта, которые уже подтягивают остальной контент. Конечно, ты его не получишь одним запросом.
    Выясняй, какой запрос скрипты делают для получения контента, и имитируй уже его. Консоль разработчика в помощь.
    Ответ написан
    Комментировать
  • Как получить избражение корзины в битрикс 1с?

    @itauditmedia
    CSaleBasket::GetList - не отдает изображение
    вам надо самостоятельно "добрать" его по PRODUCT_ID
    примерно так

    while($elem = $basket->getNext()){
    $el = CIBlockElement::GetList( [], ["ID"=>$elem['PRODUCT_ID']], false, false, ["ID","DETAIL_PICTURE"])->fetch(); 
    if($el['DETAIL_PICTURE']>0) $file = CFile::ResizeImageGet($el['DETAIL_PICTURE'], array('width'=>150, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, true); 
    }

    в $file['src'] - будет путь к файлу
    Ответ написан
    1 комментарий
  • Как хранить списки в бд?

    Maksim_64
    @Maksim_64
    Data Analyst
    Если использовать реляционные базы данных то делить на таблицы и описывать связи, предварительно избавившись от списков, на уровне пандаса, переформатировав (распрямив) датафрейм, метод explode например поможет избавится от списков. В целом одна и та же информация, может быть представлена в разном виде и в реляционных бд предпочтительнее (но не обязательно) иметь простые типы данных.

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

    Если тебя все устраивает и тебе удобно работать с фреймом, но хочется иметь такое представление информации только не в памяти, а на диске. Можешь использовать например сериализацию, метод для фреймаto_pickle, и соответственно read_pickle для чтения.

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

    @Akina
    Сетевой и системный админ, SQL-программист.
    Вложенные списки организуют классическую связь 1:N (одному блоку данных соответствует несколько записей из списка).
    Если эти строки списка как-то обрабатываются (поиск, фильтрация и пр.), то наиболее разумна схема с 2 таблицами и внешним ключом.
    Если же списки только сохраняются и извлекаются, без вообще какой-либо обработки, то можно использовать предложенную mxelgin схему с хранением всего списка в одном поле TEXT либо JSON в сериализованном виде.
    Ответ написан
    Комментировать
  • Как экстренно удалить профиль текущего пользователя Windows 10?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Логофф текущего пользователя, можно и с помощью команды (logoff), главное полноценный выход, а не смена пользователя, тыкаем мышкой на вход другим пользователем, у которого при входе стоит автоматический запуск скрипта, который удаляет нужного пользователя + делает все остальные нужные действия.
    Ответ написан
    Комментировать
  • Как назвать классы заказа для паттерна "Состояние"?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Попробуйте вместо попыток натянуть сову на глобус, а задачу на паттерн, действовать от простого. Пусть заказ бывает бесплатным. У заказа есть флаг "является ли он бесплатным". Мы даже можем воспользоваться возможностями языка и прикрутить какой-то геттер для надежности, чтобы флаг менялся в зависимости от устанавливаемой цены (в примерах условно JS):
    class Order {
        get isFree() { return this.price === 0; }
    }

    Мы можем прям сюда присобачить и оплату, но допустим мы не хотим, чтобы заказ что-то знал об урлах для оплаты. Ему это не надо. Заказ - это список товаров, какой-то статус завершенности, адрес доставки и.т.д. Он про данные, не про процессы. Путь будет обработчик, который может провести заказ как кассир в пятерочке:
    class Order { /* --- */ }
    
    class Сashier {
        proceed(order) {
            const url = order.isFree ? "free url" : "paid url";
            // ...редиректим, проводим оплату, предлагаем пакетик и кофе по акции
        }
    }

    Допустим у нас есть много платежных систем, там все сложно. Инфраструктура - не кассира дело. Ок, дадим ему доступ к адаптеру, который скрывает все за собой и проводит непосредственно оплату.
    class Order { /* --- */ }
    
    class PaymentHandler {
        charge(price) {
            // ...редиректим куда надо, в зависимости от цены и привязанной карты
        }
    }
    
    class Cashier {
        proceed(order) {
            const isSuccess = PaymentHandler.charge(order.price);
            
            if (isSuccess) {
                // заказ прошел
            } else {
                throw new Error('ГААААААЛЯЯЯ ОТМЕЕЕЕНА!!!!');
            }
        }
    }

    Получается четкое разделение ролей. Заказ - про данные, кассир - про процесс, обработчик оплаты - про муть с платежными системами. Возможно, что даже флаг isFree не особо нужен у заказа. И, возможно, что к паттерну "состояние" мы не придем, потому что он в первую очередь решает проблему бесконечного количества комбинаций флагов, но если нет флагов, то нет и проблемы. И.т.д. Развивайте конструкции по мере их естественного появления. Тогда проблем с именованием будет на порядок меньше. Потому что каждое слово в коде отражает какую-то заранее сформированную сущность в алгоритмах в голове.
    Ответ написан
    2 комментария
  • Как на я.картах формируют процентный показатель на основе отзывов?

    Tkreks
    @Tkreks
    Системный инженер
    Честно говоря не писал отзывы на картах, но порой видел оценки. Яндекс сейчас продвигает свою ИИ, особенно ее видно на маркете, хотя как по мне даже жптпро, тупее чем chatgtp 4o. Думаю мое предположение не далеко от истины будет - скорее всего они прогоняют отзывы через свою ИИ, получают контекст каждого отзыва и на основании него выдают такие результаты. Т.е. если в отзыве есть упоминание о персонале, это пойдет в общий зачет и даст контекст, который потом так или иначе оценивается и выводится в статистику. Т.к. суммарная оценка 5 баллов, это значит что >95% пользователей поставили 5 баллов. А в контексте персонал - 92%, ремонт 92% и тд, следовательно они как то вычленяют через ИИ контекст отзывов, и выставляют по нему свою оценку. Более детально, могут рассказать сотрудники яндекса, но они это не сделают ибо nda
    Ответ написан
    1 комментарий
  • Как это сделать в smart.filter?

    Ge1i0N
    @Ge1i0N
    Нужно програмировать.
    Идёте в шаблон фильтра, вносите правки в код - вешаете readonly на остальные инпуты, если один выбран.
    Ответ написан
    1 комментарий