• Как в notepad++ удалить повторяющиеся слова?

    @floydharmon6186 Автор вопроса
    Решение предоставил пользователь @AUser0
    Искать: ^([^;]+)(;[^\r\n]+)\r?\n\1;[^\r\n]+\r?\n
    Заменять: \1\2\n

    Огромная благодарность !
    Ответ написан
    Комментировать
  • Что такое кластерный индекс в mysql?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    6 комментариев
  • Повысится ли производительность системы при увеличении DDR5 6000 МГЦ с 64ГБ до 128ГБ при связке с i7-14700K?

    @rPman
    Единственная ситуация, из-за которой увеличение объема RAM (при условии что ее уже достаточно) может как то сказаться на производительности - это многоканальный режим (не серверные материнки обычно умеют только двухканальный, но вангую скоро на десктопы придут три и четыре), когда оперативная памяти подключается парами и при совпадении кучи условий (совпадающие тайминги и частоты, совпадающие типы памяти, чаще всего нужно даже одного и того же производителя и даже одинаковая партия, не зря такие планки памяти продают сразу набором - протестированным для работы в многоканальном режиме).

    Синтетические тесты дадут увеличение производительности до 2-ух крат (точнее от количества каналов) - недостижимый идеал в реальных задачах, мало того даже те реальные задачи где будет прирост производительности это там где активно используется память, например архиваторы (бонус 3-10%) 3d-игры с большим объемом текстур или сложной физикой... в остальных случаях этот прирост даже вооруженным взглядом будет не заметен.

    Самая большая проблема, что при добавлении планок памяти от 2 до 4 можно даже уменьшить производительность, например уже работающий многоканальный режим перестанет работать или к примеру не заведется высокоскоростной профиль памяти (у меня такое случилось, добавление двух планок памяти не давало запуститься профилю 18cl3400Mhz, причем это даже не память виновата а материнская плата)
    Ответ написан
    2 комментария
  • Как исправить запрос?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    WITH RECURSIVE `cte` AS (
      SELECT `id` AS `root`, `id`
        FROM `comments`
      UNION
      SELECT `cte`.`root`, `t`.`id`
        FROM `cte`
        JOIN `comments` AS `t` ON `t`.`parent_id` = `cte`.`id`
    )
    SELECT `root`, COUNT(*) AS `count`
      FROM `cte`
      GROUP BY `root`
    Ответ написан
    Комментировать
  • Как выбрать уникальные ip адреса или их количество из связанных таблиц?

    iMedved2009
    @iMedved2009
    Не люблю людей
    Почему вы используете idAccess для джойна?

    Количество уникальных ip
    SELECT p.txt, count(distinct ip.ip)
    FROM users u
    LEFT JOIN usersip ip
      ON u.id = ip.idUsers
    LEFT JOIN podrazd p
      ON u.podrazd = p.id
    group by p.txt
    order by p.txt;


    Список ip
    SELECT p.txt, ip.ip
    FROM users u
    LEFT JOIN usersip ip
      ON u.id = ip.idUsers
    LEFT JOIN podrazd p
      ON u.podrazd = p.id
    group by p.txt, ip.ip
    order by p.txt;


    Проверить
    Ответ написан
    1 комментарий
  • Как сохранить старое значение для input type file?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Никак.

    Причем в данном конкретном случае это еще и бессмысленно.
    Админу не нужна картинка, чтобы отредактировать пост. Она уже загружена, и заново ее загружать просто не имеет смысла.
    Ответ написан
    6 комментариев
  • Как используя php получить массив объектов из SOAP Response от почты России?

    @alexnikitis
    function soap_parser($response)
    {
    	$res = array();
    	$xml = simplexml_load_string($soap);
    	
    	$xml->registerXPathNamespace('nspost', 'http://russianpost.org/operationhistory/data');
    	foreach ($xml->xpath('//nspost:OperationHistoryData/nspost:historyRecord') as $item)
    	{
    		$item->registerXPathNamespace('nspost', 'http://russianpost.org/operationhistory/data');
    		$index_x = $item->xpath('.//nspost:OperationAddress/nspost:Index');
    		$address_x = $item->xpath('.//nspost:OperationAddress/nspost:Description');
    		$date_x = $item->xpath('.//nspost:OperationParameters/nspost:OperDate');
    		$type_id_x = $item->xpath('.//nspost:OperationParameters/nspost:OperType/nspost:Id');
    		$type_x = $item->xpath('.//nspost:OperationParameters/nspost:OperType/nspost:Name');
    		$attr_id_x = $item->xpath('.//nspost:OperationParameters/nspost:OperAttr/nspost:Id');
    		$attr_x = $item->xpath('.//nspost:OperationParameters/nspost:OperAttr/nspost:Name');
    		$res[] = array(
    			'index' => (int)$index_x[0],
    			'address' => (string)$address_x[0],
    			'type_id' => (int)$type_id_x[0],
    			'type' => (string)$type_x[0],
    			'attr_id' => (int)$attr_id_x[0],
    			'attr' => (string)$attr_x[0],
    			'datetime' => date("Y-m-d H:i:s", strtotime((string)$date_x[0])),
    			'date' => date("Y-m-d", strtotime((string)$date_x[0])),
    			'time' => date("H:i:s", strtotime((string)$date_x[0])),
    			);
    	}
    	return $res;
    }
    Ответ написан
    2 комментария
  • Зачем нужно разворачивать DHCP сервер на Windows Server если есть роутер?

    @tukreb
    Не нужен, если есть железка, которая умеет это.
    Для вас может быть шоком, но из любого компьютера можно сделать свич, роутер или ещё что-нибудь, всё зависит от ПО и вашего банковского баланса.

    П.С Хотя если вы соединяете ваш сервер без посредников в виде свичей/роутеров (например Сервер + НАС), то тогда DHCP сервер может помочь, с быстрой настройкой вместо вбивания адресов руками, но такое редко делают.
    Ответ написан
    Комментировать
  • Как конвертировать svg в png?

    Adamos
    @Adamos
    Проблема в том, что вы не читаете документацию. Функция понимает только растровые форматы.
    Используйте Imagick::readImageBlob
    Ответ написан
    Комментировать
  • Как выбрать норм SATA SSD до 2400р?

    @rPman
    Ты ограничил стоимость ценой чуть ли не самой низкой по рынку, ниже должен быть ну просто мусор

    Вот к примеру твои ссылки просто по характеристикам ресурс TBW 40Тб, какие у тебя задачи на такой низкий ресурс? Не надейся что 3 года гарантии позволят тебе выработать ресурс и поменять, это не гарантийный случай.

    Еще момент, как ты собираешься решать гарантийные проблемы с озоном? Покупая midend расходники (а ssd это именно расходник) нужно заранее готовиться к его выходу из строя.

    Поэтому критерии выбора - большой гарантийный срок и большой ресурс (выше 200Тб), хотя конечно если у тебя задачи редко писать и много читать, то почему нет.

    p.s. дешевые железки после определенной наработки могут выдать какой-нибудь сюрприз
    Например у меня ADATA SX6000PNP nvme, выработал всего 5% и я стал замечать, что при превышении внутреннего буфера на запись, может ронять скорость чуть ли не до 5мб/с (пока кеш не переполнен выдает сотни) и главное в это время может подвисать чтение.
    Ответ написан
    2 комментария
  • Вложенные массивы - как вытащить одно значение в цикле по самому низкому индексу?

    0xD34F
    @0xD34F
    $value = array_combine($data['value_index'], $data['value'])[min($data['value_index'])];

    или

    $value = $data['value'][array_search(min($data['value_index']), $data['value_index'])];

    или

    $index = 0;
    
    for ($i = 1; $i < count($data['value_index']); $i++) {
      if ($data['value_index'][$i] < $data['value_index'][$index]) {
        $index = $i;
      }
    }
    
    $value = $data['value'][$index];
    Ответ написан
    1 комментарий
  • Почему JSON pre печатает в одну строку?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Красиво отформатировать JSON можно вот так:
    json_encode(json_decode($response), JSON_PRETTY_PRINT);
    Ответ написан
    1 комментарий
  • Как понять какой из php-cli скриптов в Linux множит зомби?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Берём идентификатор "зомби" процесса (pid), узнаём идентификатор его родителского процесса (ppid), а по нему узнаём команду (и command arguments), которая запустила кривой скрипт.
    Ответ написан
    Комментировать
  • Как использовать ресурс другого ПК?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Не нужны тебе "мощностя" друга.
    Никаких "скоро" не появится.
    Для начала изучи джава, потом будешь понимать что такое мощностя, ибо на текущий момент по уровню твоего вопроса, ты не дотягиваешь даже до продвинутого пользователя ПК.
    Ответ написан
    Комментировать
  • Понимание PCI-ex линий?

    Melkij
    @Melkij
    PostgreSQL DBA
    Открываете мануал к материнке и внимательно ищете сведения о том, что куда подведено электрически, в каком количестве. Если в мануале не описано - то продолжаете упорно искать в интернетах, что куда подведено. Начните с блок-схемы чипсета.

    В частности, самый верхний M.2 вам недоступен вовсе. Потому что i7 10700k - это 10 поколение, мануал однозначно упоминает что верхний M.2 работает только при установке CPU 11 поколения (потому что слот подведён на линии PCI-E самого CPU)
    Средний M.2 отключит один из разъёмов SATA в случае использования SATA M.2. Для NVME диска нет примечаний, до 4 линий от чипсета.
    Нижний M.2 отключит два разъёма SATA при установке любого SSD в этот слот. Останутся ли у него 4 линии для PCI-E - не упомянуто, но скорей всего да.

    У чипсета линий PCI-E более чем достаточно, аж 24 штуки. К чипсету подключены два M.2, один слот PCI-E x4, один слот x1, итого на всякую прочую мелочёвку остаётся ещё 11 линий.

    учитывая количество линий на чипсете, я могу установить 1 видеокарту в режиме x16

    Верхний PCI-E подключен к CPU, а не к чипсету.
    Ответ написан
    1 комментарий
  • Как подключиться к VPN через VPN?

    @Drno
    Какой ВПН используется компания?
    Обычно в таких случаях я советую поднять на роутере домашнем ВПН клиент - через любой VPS в РФ и завернуть туда весь траф

    а дальше с рабочего ПК подключаться к рабочему ВПНу
    Ответ написан
    3 комментария
  • Как объединить два объекта с одинаковыми ключами?

    Seasle
    @Seasle Куратор тега JavaScript
    const keys = new Set(
      Object.values(data)
        .map((entry) => Object.keys(entry))
        .flat()
    );
    const properties = Object.keys(data).map((key) => [
      key.split("_").shift(),
      key,
    ]);
    
    const result = [...keys].reduce((acc, key) => {
      acc[key] = Object.fromEntries(
        properties.map(([property, type]) => [property, data[type][key] ?? 0])
      );
    
      return acc;
    }, {});

    Другие варианты

    const mappedData = Object.entries(data).reduce((acc, [type, entry]) => {
        const property = type.split('_').shift();
        for (const key in entry) {
            acc[key] = { ...acc[key], [property]: entry[key] };
        }
        return acc;
    }, {});
    console.log(mappedData);
    /* 
    {
        "Машины и оборудование прочие, не включенные в другие группировки": {
            "active": 1,
            "inactive": 2
        },
        "Насосное оборудование, комлектующие, сопутствующие": {
            "active": 1,
            "inactive": 2
        },
        "Электродвигатели, генераторы и трансформаторы силовые": {
            "active": 1,
            "inactive": 2
        },
        "Средства транспортные прочие, не включенные в другие группировки": {
            "active": 1
        }
    }
    */

    или
    const result = {};
    const propertyMap = Object.fromEntries(Object.keys(data).map((key) => [key.split('_').shift(), key]));
    for (const property in propertyMap) {
        for (const key in data[propertyMap[property]]) {
            result[key] ??= {};
            result[key][property] = data[propertyMap[property]][key];
        }
    }
    for (const key in result) {
        for (const property in propertyMap) {
            if (property in result[key] === false) {
                result[key][property] = null;
            }
        }
    }
    console.log(result);
    /*
    {
        "Машины и оборудование прочие, не включенные в другие группировки": {
            "active": 1,
            "inactive": 2
        },
        "Насосное оборудование, комлектующие, сопутствующие": {
            "active": 1,
            "inactive": 2
        },
        "Электродвигатели, генераторы и трансформаторы силовые": {
            "active": 1,
            "inactive": 2
        },
        "Средства транспортные прочие, не включенные в другие группировки": {
            "active": 1,
            "inactive": null
        }
    }
    */

    Ответ написан
    3 комментария
  • Как можно считывать все запросы отправленные в базу данных с момента её создания?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    А как получить ежедневные подробные фотографии строительства дома, в котором вы живёте? Ведь если его строили, и фото можно было делать - значит фото есть!

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