Задать вопрос
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос одновременно дебильный и нормальный.
    Автор просто не может нормально словами написать, чего хочет.
    Для современного поколения, воспитанного ютубой, это нормально.
    Если бы вопрос можно было задать с помощью слов "гы-гы", "круто, чувак" и смайликов, то у него бы все получилось.
    А пока приходится использовать интеллект на принимающей стороне, чтобы понять, что он там мычит.

    А мычит он не про сам шелл, а про используемый в нем скриптовый язык.
    И ответ получается очень простой - для некоторых задач Bash scripting language тупо подходит лучше. Не говоря уже про интеграцию скриптового языка баш в командную оболочку баш, какой никогда не добиться с помощью "обёрток".

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

    Так что да - или легаси, или тупо адекватность задаче.

    Апд. В ходе этой дискуссии я сообразил одну очень важную вещь. Язык программирования по определению является вторичным по отношению к командной оболочке. Главное в баше - это все-таки возможность запускать команды и позволять им взаимодействовать друг с другом. А язык уже построен вокруг этой основной задачи. Если вы попытаетесь вкрячить этот функционал в какой-то из языков программирования общего назначения, вы испортите и оболочку, и язык.
    Ответ написан
    21 комментарий
  • Какую современную систему стейт-менеджмента лучше выбрать для React-проекта с "нуля"?

    Все сильно зависит от специфики вашего проекта, но по своему опыту могу сказать, что ФП хранилища в проекте с бизнес-логикой - зачастую хуже, чем ООП варианты.
    В своих проектах обычно использую стек из Mobx + tsyringe(DI). С недавних пор добавил в эту схему React-Query. Иногда бывает полезно использовать MST, если ваша бизнес логика требует каких-то сложных моделей данных с собственной логикой, а так же сложной связи между ними. В частности, MST дает немного больше возможностей для проектирования моделей данных, нежели обычные классы с Mobx.
    Поясню за ответственности:
    1. Mobx - отвечает именно за бизнес-логику frontend приложения. Не надо туда пихать геттеры данных с бэкенда, которые нужно просто визуализировать, для это есть React-Query. Поскольку Mobx базируется в первую очередь на классах, для работы с ним мы можем применять ООП и соответствующие паттерны, выстраивая интересно логику из хранилищ и сервисов прямо на frontend. Для лучшего понимания как это правильно варить, рекомендую глянуть на backend.
    2. React-Query - у них на сайте прекрасно описано, зачем они нужны, и этот инструмент в любом случае призван дополнять типичные хранилища состояний, будь то хоть Mobx, хоть Redux, хоть еще что-либо, рекомендую почитать. Отличный инструмент для работы с состоянием приложение в случае тех данных, которые просто нужно взять с бэка и отобразить.
    3. Tsyringe - для меня проверенный и неплохой инструмент для работы с DI на фронте. Это гораздо лучше, чем пробрасывать хранилища внутрь других хранилищ через конструкторы или через глобальные переменные. Аналогично с подключением в эту схему сервисов. Сразу скажу, что есть риск запутаться в конфигурациях сборщика, если используете CRA, ибо и Mobx, и Tsyringe используют в своей основе декораторы, а babel их переваривает с переменным успехом, но если разобраться, настроить можно)

    Опять таки, адепты Redux и ФП могут сказать, что я просто не умею готовить Redux. Действительно, не умею. Несколько раз пытался трогать Redux, но он не нравился ни до того, как узнал про Mobx, ни после. Верю, что разрабатывать на нем можно. Но и ухо можно чесать левой рукой через затылок. Чтобы Redux был производительным и эффективным, нужно понимать как устроены данные и как работает его реактивность. Он может неплохо подойти для менеджмента состояния каких-то простых моделей данных, например, форм. Но зачем нам центральное хранилище для форм?
    Mobx в этом плане сильно проще и при хорошей архитектуре проекта и самого приложения, джуниоры редко могут там что-то вытворить своеобразное, да и производительность там поломать куда сложнее. В общем, Mobx банально удобнее и проще, но при этом не только не ограничивает разработчиков в возможности создавать сложные и элегантные решения, а только помогает в этом.

    Вот такие мысли, надеюсь поможет)
    Ответ написан
    Комментировать
  • Как с помощью bash скрипта запустить несколько сессий tmux?

    kotomyava
    @kotomyava
    Системный администратор
    Зачем вообще запускать ботов в tmux?
    Надо запускать их с помощью системы инициализации своего дистрибутива. Вероятнее всего, у вас systemd, вот им и надо пользоваться. Создать для каждого бота unit файл и добавить в автозапуск.
    Ответ написан
    2 комментария
  • Какие заклинания надо знать, что бы запустить VirtualBox Guest Additions, в данном случае, на Ubuntu Server?

    @pfg21
    ex-турист
    а зачем он ??
    в репозитории лежат готовые утилиты под виртуалбокс virtualbox-guest-utils virtualbox-guest-x11
    драйвера уже вкомпилены в ядро.
    если есть желание компилить драйвера с утилитами то virtualbox-guest-dkms

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

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Написал скрипт который по отдельности сжимал папки и копировал на удалённый сервер там распаковывал

    Так сжимайте сразу на удаленный сервер

    tar cvfz - mydirectory|ssh user@remote_server "cd target_directory;tar xvfz -"


    Или даже проще будет запустить несколько экземпляров rsync в фоне через xargs или parallel
    Ответ написан
    7 комментариев
  • Можно ли организовать веб-интерфейс для sftp?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Окей, гугл.
    Браузерный файл-менеджер

    Только при чем тут sftp?
    Ответ написан
    4 комментария
  • Почему не получается перейти с авторизации по паролю на авторизацию по ключу?

    @cheeroque
    Смените для вашего проекта url ремоута:

    git remote set-url <remote_name> <remote_url>

    Где remote_name – скорее всего, origin.
    Новый remote_url смотрите на битбакете: нажимаете clone в вашем проекте, в заголовке модалки выбираете SSH и копируете получившуюся ссылку.
    Ответ написан
    1 комментарий
  • У какого десктопного Linux минимальные требования к RAM?

    ValdikSS
    @ValdikSS
    Linux для компьютера 2007 года

    Прежде всего определимся с понятием умеренно комфортной работы. В моём понимании это означает возможность взаимодействия с современными (нагруженными) веб-сайтами, не чувствуя себя стеснённым, и не раздражаясь ежеминутно от тормозов.
    Для этого минимально необходимы:

    * 64-битный процессор — более слабые 32-битные не подойдут для нынешних веб-сайтов не в силу своей архитектуры, а из-за производительности. 64-битные процессоры массово появились в 2006-2007 годах.
    * 1 ГБ RAM — абсолютный минимум для терпеливых. 2 ГБ и более значительно расширят возможности многозадачности и повысят общую скорость работы, поэтому настоятельно рекомендуются.


    Модифицированный Linux Mint XFCE для старых компьютеров доступен на этой же странице.
    Ответ написан
    Комментировать
  • Приложение для анализа диска Linux?

    deepblack
    @deepblack
    NCurses Disk Usage

    sudo apt install ncdu
    Ответ написан
    Комментировать
  • Ноутбук начал притормаживать, как устранить проблему?

    @cicatrix
    было бы большой ошибкой думать
    Судя по симптомам из-за перегрева машина начинает понижать частоту граф. процессора, это называется throttling.
    Лечить это надо разборкой ноутбука, чисткой вентиляторов и радиаторов от пыли, сменой термопасты.
    Ответ написан
    3 комментария
  • Как установить Arc-Welder в Linux на Chromium?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    а что ? есть какие-то отличия от винды в установке из хромого магазина ?
    заходите с хрома и ставите
    https://chrome.google.com/webstore/detail/arc-weld...
    Ответ написан
    Комментировать
  • Как запустить программу / команду в Linux, не выводя её на экран?

    Adamos
    @Adamos
    возможно вопросы необычные, но точно на них никто не ответил

    Обычно такая ситуация означает, что вы сами не понимаете, что вам нужно сделать, и упорно ломитесь даже не в закрытую дверь, а в стену рядом с дверью. Причем, возможно, открытой.
    Разбираясь с мало кому известной программой, бессмысленно выдумывать свои сценарии ее использования и приставать с ними к людям, которые эту программу в глаза не видели. Нужно искать, где общаются пользователи этой программы (возможно, с ее разработчиками), и читать про их опыт, приспосабливая его под свои нужды.
    Ответ написан
    Комментировать
  • Linux, ubuntu selenium как запустить на VDS сервере?

    dyuriev
    @dyuriev
    A posteriori
    options.add_argument('--headless')
    options.add_argument('--disable-gpu')
    где?
    Ответ написан
    Комментировать
  • Есть ли альтернатива подсистемы Linux для Windows, только наоборот?

    Adamos
    @Adamos
    Решения - чего? Для запуска виндовских программ есть Wine, а запускать виндовские утилиты или командную строку под Линуксами идиотов нет.
    "Более доработанный" Wine можно купить у CodeWeavers, но не факт, что их достижения совпадут с вашими хотелками.
    Ответ написан
    3 комментария
  • Как закодировать ответ в base64?

    Вам нужно переписать код так:
    $data = [
        'Hi' => 1,
        'D' => [
            'type' => 'xz',
            'anything' => $any2
        ],
        'Any' => [
            [
                'type' => 'xz',
                'anything' => $any2
            ]
        ],
        'Anything' => [],
        'Minus' => [
            'Content',
            'Content'
        ],
        'Block' => [
            'dog' => "Hello-$hello2",
            'cat' => '',
            'parrot' => ''
        ]
    ];
    
    if ($content != $content2) {
        $data['Anything'][] = [
            'block1' => $block2
        ];
    }
    
    $response = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
    // $response = base64_encode($response);
    
    echo $response;


    Тогда его можно будет закодировать в Base64
    Ответ написан
    Комментировать
  • Linux Manjaro. как установить yum?

    dyuriev
    @dyuriev
    A posteriori
    Если вас посещает такой вопрос, то никак

    Даже если поставите, то какие репозитории будете использовать? от centos?
    так ставьте сразу Centos
    Ответ написан
    6 комментариев
  • Есть ли ресурс со скриптами быстрой установки различных Linux-серверов?

    @q2digger
    никого не трогаю, починяю примус
    есть, называется ansible , ролей для установки всего на свете написано людьми добрый - сколько угодно.
    Ответ написан
    Комментировать
  • Как обойтись без крона?

    @forestcat
    Попробуйте покапать в сторону systemd timer.
    Ответ написан
    Комментировать