Задать вопрос
  • Почему в ответе скрипта выводится 0?

    @laslolnko
    Call me Mico
    потому что срабатывает else
    Ответ написан
    4 комментария
  • Как реализовать функцию,принимающую неограниченное кол-во объектов и возвращает новый объект,содержащий все поля со всех объектов?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    раз хочется именно с reduce() – то можно редьюсить массив аргументов до одного результирующего объекта:
    const mergeObjects = (...args) => args.reduce((acc, c) => Object.assign(acc, c));

    Использование:
    mergeObjects({a: 'A'}, {b: 'B'}, {c: 'C', a: 'AAA'})
    // { a: "AAA", b: "B", c: "C" }


    Или так, чуть почище, чтобы не менять первый исходный объект:
    const mergeObjects = (...args) => args.reduce((acc, c) => ({...acc, ...c}), {});
    Ответ написан
    7 комментариев
  • Проверка, инвентаризация и аудит Linux машин, как можно узнать про установленный софт?

    Vindicar
    @Vindicar
    RTFM!
    Составить список популярных пакетных менеджеров и команд их вызова. Разные дистры используют разные менджеры (apt и yum встречаются чаще всего, ЕМНИП).
    Для каждого менеджера попытаться получить список установленных пакетов. Также иметь ввиду, что данного менеджера может и не быть на данной машине.
    Свести результаты в один список.

    Например, для дистров, которые используют apt (Debian и его потомки), это либо apt-mark showmanual, либо apt list --installed | grep -v 'automatic' (чтобы исключить пакеты, которые были поставлены как зависимости для других). Но и там будут пакеты, поставленные при установке ОС.

    Если хочется ну прямо супер детальный анализ... найти все файлы, помеченные как исполняемые. Потом узнать список установленных пакетов. Для каждого пакета узнать список установленных файлов. Исключить эти файлы из числа найденных. То, что останется, было установлено помимо менеджера пакетов и потому заслуживает более пристального внимания. Но сам понимаешь, это долго и жорко, ну и всё равно может не дать 100% покрытия. Грубо говоря, если некий файл script.sh не помечен как исполняемый, его всё равно можно запустить через bash script.sh.

    Я думаю, стоит обращать внимание, если в списке установленных пакетов есть wine, mono или виртуальные машины. В остальном... вряд ли что-то найдётся.
    Ответ написан
    Комментировать
  • Как добавлять товары в битриксе по 2 в корзину?

    Dima_So
    @Dima_So
    Experientia est optima magistra
    У товара во вкладке "Торговый каталог" -> Параметры
    Укажите нужное значение "Коэффициент единицы измерения"
    Ответ написан
    3 комментария
  • Почему метод match не работает RegExp включающий JS-переменную?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Потому что у вас в regex содержится обычная строка, а не объект регулярного выражения.
    Собирать этот объект из строки нужно так: new RegExp('[' + v + ']', 'g');
    https://developer.mozilla.org/en-US/docs/Web/JavaS...
    Ответ написан
    2 комментария
  • Как решить задачу с массивами на JS?

    NeiroNx
    @NeiroNx
    Программист
    все правила мне лень читать и описывать, но по быстрому - как то так:
    function updateRecords(id, prop, value) {
      if(collection.hasOwnProperty(id))if(prop!="tracks"){
        if(value!=""){collection[id][prop]=value;}else{delete(collection[id][prop])}
      }else{
        if(!collection[id].hasOwnProperty("tracks"))collection[id]["tracks"]=[];
        if(value!="")collection[id]["tracks"].push(value)
      }
      return collection;
    }
    Ответ написан
    1 комментарий
  • Как реализовать удаленный доступ к SSH, имея серый ip?

    akelsey
    @akelsey
    Копать в сторону "ssh reverse tunnel".
    Ответ написан
    Комментировать
  • Почему перестал работать сайт при смене php с 7.4 на 8.0.1?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Обновите модули, особенно сторонние aspro.optimus, видимо, сам битрикс, затем переходите на версию выше. И если переходить выше, то ставьте 8.2
    Ответ написан
    Комментировать
  • Как поменять формат вывода json?

    @alexalexes
    Попробуйте использовать опцию JSON_FORCE_OBJECT в функции json_encode.
    https://www.php.net/manual/ru/json.constants.php
    Добавлено:
    Ну, тогда item-ы кодируйте стандартной функцией, а сборку массива делайте кастомную:
    $imported_items[] = json_encode($product, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_FORCE_OBJECT);
    ...
    $preview_items[] =  json_encode($preview_product, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_FORCE_OBJECT);
    ...
    file_put_contents(sprintf(IMPORT_FILE, $id), '['.join(',', $imported_items).']');
    file_put_contents(sprintf(PREVIEW_FILE, $id), '['.join(',', $preview_items).']');
    Ответ написан
    1 комментарий
  • Как вычислить виновника из-за которого отваливается интернет с какой-то периодичностью в маленькой сети?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Такого рода проблемы все и всегда решаются однотипно.
    1. Необходимо сформулировать критерии наличия проблемы.
    Как именно пропадает интернет, насколько часто, как надолго. Это нужно для диагностики. поиска причины и определения ушла ли проблема после принятия каких либо мер.
    2. Делить проблему на части и проверять части по отдельности.
    Самый эффективный способ делить - это пополам. Отсекаем часть сети и проверяем наличие проблемы в обеих частях (если есть возможность) или в одной из частей.
    3. Когда найден минимальный проблемный участок, который уже нельзя или бессмысленно делить - заменяем его.
    4. Помним, что чаще всего сложные проблемы - это композиция нескольких более простых. которые по отдельности могут не проявляться. В вашем случае может быть проблема, связанная с нагрузкой на роутер, например, которую создает один из услов из-за плохого контакта обжима и большого объёма биттых пакетов. Устранив одну из причин, вы, может быть, сделаете проявления проблемы реже, но не устраните её полностью. К примеру, если замените ротуер, битые пакеты будут всё равно будут нагружать вашу сеть и портить ее производительность, но это будет не так очевидно. Переобжав коннектор вы избавитесь от части нагрузки, но еслив ваш ротуер работал на переделе, то лишний вафай-клиент или тяжелый видос в сети сможет его снова нагрузить до критического снижения производительности.

    Итак, пробежимся по перечисленным пунктам сначала.
    1. Критерии. Поиск критериев - это часть решения. Обычно в этом случае нуно сорать необходимую статистику. Есть куча софта, который это умеет делать, но пинг есть всегда под рукой.
    Для этой тулзы есть две полезных опции: ключ для бесконечного пинга и размер пакета.
    В разных ОС эти ключи немного разные, поэтому ищите их отдельно, у меня нет винды под рукой, поэтому не стану на этом заострять.
    Скаж лишь, что пинговать лучше большими пакетами, жалетально превышающими размер TTL, прописанный в роутере. Тогда такой пинг будет реже проскакивать в периоды хорошей связи, то есть выловит больше пролблем.
    Пинговать нужно в отдельных окнах сразу несколько хостов:
    - ya.ru - этот хост всегда отвечает на пинги и выявит проблемы с DNS
    - 8.8.8.8 - это гугловый DNS-сервер, тоже всегда отвечает на пинги, покажет, что связь с инетом есть даже если DNS, прописанныйна компе не правильно работает.
    - 192.168.0.1 - или какой там IP у вашего роутера. Нужно. чтбы отделить проблемы с инетом от проблем с внутренней связностью до роутера
    - 192.168.0.x - ip одного из компов в сети. Я обычно пингую несколько компов, доступных через баксимальное число потенциально проблемных узлов - ethernet-розеток, свичей, вайфай-соединений... Этот пинг поможет понять где проблема, во внутрисетевой связности или в последней миле.

    Учтите, что проблемы часто бывают комбинированные и каждое сочетание симптомов будет свидетельствовать о раных проблемах.
    Да, тревожным принаком может служить не только пропадание пакетов, но и скачки в длительности их возврата, особенно если такие длительности достигают 500мс и выше. Но и скачки от 3мс до 250мс тоже будут свидетельствовать о каких-то проблемах.

    Запускать пинг на всех компах лучше одновременно и на некоторое время. Например минут на 20. Потом по статистике будет видно сколько где пакетов пропало.

    2. Если критерии наличия проблемы позволяют, то можно попробовать отрубать части сети и смотреть наличие проблемы. Это я в том смысле, что если проблема происходит в среднем раз в пару-тройку часов, то отрубать на многие часы части сети при диагностикем ожет быть неприемлемым.
    Редкеи пробемы дольше отлавливать. Но напоминаю, что критерии можно детализировать, ведь если пакеты у вас пропадат относительно редко, то скачки времени их возврата могут случаться чаще и подсвечивать проблему. Также можно сделать рамер пакета близким к максимальному, это должно тоже в некоторых случаях участить проявление проблемы.
    Иногда не мешает нагрузить сеть комированием по локалке большого файла. В линуксе можнно с помощью утилиты tc послать большой поток рандомных байт на любой сокет..
    3. Плавающие проблемы случаются из-за плохого обжима, перебитого жверью кабеля, перегрызенного UTP в плинтусе, из-за умиращих конденсаторов в блоке питания роутера (БП может не выдавать необходимого при нагрузках тока, но вольтметром такая неисправность не будет различима без нагрузки). Вообще старые (да и не только) роутеры могут страдать поплывшими электролитическими конденсаторами не только в блоках питания.
    Хорошо, когда можно подменить роутер.
    4. ну с четвертым пунктом ничего не пососветуешь, только разделать и тестировать все по отедльности и в разных сочетания и да поможет нам ктулху.

    А для тех, кто дочитал этот опус до конйа - интересная задачка. Что пингуют эти команды, как и почему?
    ping 1.1
    ping 2130706433

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

    UPD. Простите за адское количество опечаток в тексте. Писал в спешке и с непривычной клавиатуры. Исправлю всё попозже. Не ожидал, что многим ответ придётся по душе. Вроде ж накапитанил как мог.
    Ответ написан
    5 комментариев
  • Можно ли сделать интерфейс адаптивным, не переписывая весь CSS через media query's?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Обычно нет других вариантов. Если верстка гавно (в эту категорию входит верстка с использованием пикселей), то придется все переопределять в медиазапросах.

    Но даже если размеры задаются в rem, то не всегда достаточно прописать только font-size для :root. Всё же приходится кое-что переопределять, хотя и значительно меньше.
    Ответ написан
  • Как убрать проверку на содержимое?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    this.textContent = this.textContent != "2" ? "2" : "1";
    Ответ написан
    4 комментария
  • Почему не роботает Slick?

    irtek
    @irtek
    Wordpress-addicted
    Так у вас опечатка. Вместо "type" "src" должно же быть в третьей строке, где подгружаете main.js
    У вас код запуска слайдера не грузится.

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
    <script src="js/slick.min.js"></script>
    <script src="js/main.js"></script>
    Ответ написан
    1 комментарий
  • Можно ли сделать дамп MySQL БД из консоли Linux, исключив из него определенные поля определенных таблиц?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    https://dba.stackexchange.com/questions/34887/mysq...

    советы примерно следующие:
    * сделать выборку по полям и сдампить в Csv
    * сделать выборку во временную таблицу и уже ее дампить
    Ответ написан
    5 комментариев
  • Как в php сравнить два огромных txt файла до 100гб, удалив дубликаты?

    2ord
    @2ord
    На POSIX системах можно использовать fgrep:
    $ cat /tmp/file1.txt
    aaa
    bbb
    ccc
    $ cat /tmp/file2.txt
    bbb
    123
    aaa
    $ fgrep -f /tmp/file1.txt /tmp/file2.txt
    bbb
    aaa


    Так что на PHP как-то так:
    $output = shell_exec('fgrep -f /tmp/file1.txt /tmp/file2.txt > /tmp/dups.txt');


    Однако, если требуется выполнять какие-то дополнительные манипуляции, тогда, возможно, лучше сразу импортировать в СУБД.

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

    $ sort -u /tmp/file1.txt /tmp/file2.txt
    123
    aaa
    bbb
    ccc


    $output = shell_exec('sort -u /tmp/file1.txt /tmp/file2.txt > /tmp/dups.txt');
    Ответ написан
    Комментировать
  • Почему у меня получается объект с неверными ключами?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    А почему Вы не использовали объект new FormData(form) ?
    https://learn.javascript.ru/formdata
    Ответ написан
    1 комментарий
  • Как вставить картинку по клику?

    Tim-A-2020
    @Tim-A-2020
    Ответ написан
    Комментировать