Задать вопрос
  • Как удалить все паки с файлами на всех сайтах на сервере ubuntu Lunix?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    Так и пиши:
    rm -rf /var/www/html/*/temp/*

    Или удалить сами папки целиком:
    rm -rf /var/www/html/*/temp
    Ответ написан
    Комментировать
  • Как правильно отправлять ssl сертификаты?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    3.4 Форматы PKCS1 и PKCS8 это форматы только для ключей или для сертификата тоже?

    https://en.wikipedia.org/wiki/PKCS

    3.2 Отправить запрос получается только в том случае, если ключ указан в самом файле сертификата, то есть я их объединил в один файл и тогда запрос заработал. Почему по отдельности не работает?

    Ну потому что TSL делается не по ключам, а по сертификатам с ключами. Например пара ключей не содержит информации о сроках годности и нет цепочки доверенных сертификатов чтобы проверить валидацию.

    Но не успел я им ничего отправить, как они прислали мне новый сертификат. Как они его сгенерили без реквеста? Типа по старому реквесту? То есть реквест не имеет срока годности?

    Генерация сертификатов для общения двух сервисов договаривается между разработчиками этих сервисов. Если вы используете самоподписанные сертификаты, то любой может сгенерить. Если вы используете один и тот же CA, доступный обеим командам, любая команда может запросить новый сертификат. Если вы работаете в разных компаниях, у каждой есть свой внутренний CA и процедура получения сертификатов, тогда они бы не могли сгенерировать новый сертификат, но раз смогли то у час не этот случай.

    Но запросы при этом по этому сертификату отправляются с любого другого домена. Зачем тогда в сертификате вообще указывать домен, если можно отправлять запросы с любого?

    Обычно сертификат лежит на сервере, который соответствует домену, а не на клиенте.
    Вы же когда на google.com ходите по HTTPS, то можете это делать с любого компа, а не только с сервера гугла?

    Вам нужно просто разобраться зачем у вас используются сертификаты - для TLS, для двухстороннего TLS или для авторизации.
    Нужно разобраться как у вас проверяется валидация - может у вас просто стоит ignoreinvalidcert и все
    Никто кроме вас в вашем приложении не разберется. Поднимите кого-то из тех, кто принимал архитектурное решение и выясните как у вас надо делать, и так и делайте. А то вполне возможно что у вас даже так как планировали сейчас не работает.
    Ответ написан
    Комментировать
  • Как правильно переписать bash под windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Поставить git for windows, с которым идет баш, и ничего не переписывать.
    Ответ написан
    1 комментарий
  • Курс или полный гайдлайн по git?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    Посмотри пару видяшек в ютубе о git-flow и зачем он нужен.

    Буквально 2-3 примера разных флоу будет достаточно для ознакомления с преимуществами каждой. А дальше мутишь в своем проекте под свои нужды.

    Кому-то нужно CI/CD прямо в продакшен каждый раз как закоммитил. Кому-то нужны коробочные релизы раз в полгода. Кому-то нужны простые регулярные релизы, но при этом распределенная команда из 100 разработчиков 300 тестеров, которые работают в разные спринты, и пока один релиз тестят, другой уже разрабатывают.

    Но это не курс по git, а именно по git-flow (или другими словами настройка code-review/ci/cd процессов).

    Например, если у вас CI с автоматическими тестами не настроен, то мерж любой фича ветки может ломать develop/master ветку. А CI это уже вообще не гит.
    Ответ написан
    Комментировать
  • Перебор и изменение файлов bash скриптом?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    если файлы в одном каталоге, то
    sed -i 's/было/стало/g' /home/user/mydir/*.ini

    Комментируем строку:
    sed -i 's/Notify="notify/11111"/#Notify="notify/11111"/g' /home/user/mydir/*.ini
    Ответ написан
    4 комментария
  • Как расширить историю вывода в консоль для tmux?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Жми Ctrl+b и [, после чего можно поскроллить историю tmux

    или чтобы скроллить нормально мышкой, напиши
    tmux set -g mouse on

    P.S. Представь что будет, если я буду переключаться между разными терминалами и в каждом что-то выполнять, а потом захочу поскроллить - если все бы шло в обычный буфер была бы полная каша.
    Поэтому tmux как виртуальный терминал, хранит историю внутри своего буффера, отдельно для каждого окна, поэтому это не баг, а фича ;)
    Ответ написан
    1 комментарий
  • Как правильно выстроить логику кода с соблюдением принципов ООП?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Сейчас же я захотел переделать код, начав с соблюдения принципа «один класс - одна задача»

    Почему? Откуда взялся этот принцип?

    Следуйте следующим принципам:
    1) данные, которые находятся внутри класса обрабатывались методами этого класса
    2) Избегайте суперклассов (слишком больших классов, которые не помещаются в голову одного программиста, и вызывают много конфликтов при поддержке приложения)
    3) Соблюдайте баланс между первыми двумя пунктами.

    Учитывая, что вы единственный разработчик, то нет смысла делить класс на несколько, даже если он великоват.
    Если у вас есть визуализация этапов, можно было бы разве что в отдельный класс вывести эту визуализацию. А так - скорее всего у вас все хорошо. Может быть названия методов пересмотреть и все.
    Ответ написан
    Комментировать
  • Как в ubuntu запускать скрипт по крону через терминал?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Из крона программа запускается в терминале, но не в вашем, а в фоне.
    И это нормально, так и должно быть.
    Если хотите следить за ходом выполнения - ваш скрипт должен писать действия в лог файл, который вы можете просматривать в удобное время.
    Ответ написан
    Комментировать
  • Где производить вычисления для онлайн игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Когда-то слышал что для этого нужен VPS, хотел уже идти покупать, но прочёл что не только его можно оказывается. Но что можно ещё я так и не понял.

    А уже есть сама игра? Или что ты собрался вычислять?

    По твоему вопросу вообще непонятна твоя цель. Где-то что-то вычислять, но еще даже не начал писать саму игру? Или какие конкретно вычисления тебя интересуют?

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

    Можешь сервер игры запустить на домашнем ПК и вычислять.
    Ответ написан
    8 комментариев
  • Перезапуск скрипта после вылета?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    правильно юзать try
    Ответ написан
  • Правильно ли под каждый микросервис запускать сервер базы данных?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    База - сама по себе, микросервис - сам по себе.
    У базы может быть свой кластер с репликацией базы по своим нодам. У микросервиса - свой кластер, со своими контейнерами. В результате и база и сервис можно горизонтально масштабировать, в зависимости от того, что работает недостаточно быстро.

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

    А непосредственно балансировщик - это вообще часть функционала кластера или сетевой подсистемы, а не непосредственно контейнера.
    Ответ написан
    Комментировать
  • Как читать данные с диска в защищенном режиме x86?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    BIOS потихоньку уходит в небытие, и надо уже читать UEFI

    ну а для своей OS из защищенного режима надо делать драйвера для стандартных накопителей (штук 10) - базовый драйвер для стандартов ATA/ATAPI, AHCI, NVMe; потом еще OHCI, UHCI, eHCI и xHCI для USB контроллеров и наконец USB mass storage).
    Также еще не забывать что сейчас многие любят в рейды, и все еще живы всякие SCSI, FDD, ленточные накопители и CD/DVD/BR...
    Ответ написан
    Комментировать
  • Лучшие практики хранения логинов/паролей/токенов?

    saboteur_kiev
    @saboteur_kiev Куратор тега Информационная безопасность
    software engineer
    (поскольку пользователь — динамическая запись в БД)

    Так в базе и храните.
    шифруйте каким-нить AES256CBC и храните в виде base64 строки
    Ответ написан
    Комментировать
  • Clean code для любого яп?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    clean-code это не про синтаксис. Это про архитектуру, а она зависит от понимания как работают различные технологии.
    Ответ написан
    Комментировать
  • Как обрезать строку по "/"?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    String mylist[]=url.split("/");
    var1=mylist[0];
    var2=mylist[1];

    так?
    Ответ написан
    5 комментариев
  • Проблема с созданием репозитория на github?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    может быть вместо user нужно имя вашего юзера?
    И ключ для авторизации добавить?
    Ответ написан
  • Как лучше обучиться на специалиста по тестированию?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Базовые требования любого тестировщика - продвинутый пользователь windows/linux, и SQL.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Можно вот так почистить с сохранением последних 100 строк:
    LOG=$(tail -n100 file) && echo "$LOG">file

    а так по сути любое перенаправление ">" перезапишет содержимое файла не меняя его inode.
    echo "" > file

    Из команд -
    truncate -s BYTES file
    но оно обнуляет с начала файла, то есть -s 0 имеет смысл, остальные размеры обычно не имеют смысла для лог файлов.
    Ответ написан
    Комментировать
  • Стоит ли увеличивать размер сектора у sata SSD и у NVMe M2 до 4К (или даже до 64К)?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Производительность не увеличится потому что

    1) размер физического сектора ты не изменишь. Винчестеры с возможностью домашнего низкоуровневого форматирования последний раз видели лет 20 назад на IDE и до него.

    2) размер логического сектора может немного упростить работу с файловой системой, если у тебя огромные файлы за счет уменьшения количества секторов. Но в целом - линейная скорость видимо не поменяется, а рандомный аццесс замедлится. Ну и в любом случае на физическом уровне останется 512б.

    3) Physical Sector size: 512 bytes
    не доверяй этой инфе. Внутри может быть 4к, эмулирующие 512б. Найти винчестеры с 512б сектором производства 2011+ года довольно сложно. Правда это точная инфа для HDD. Может быть в SSD 512байтные сектора вполне еще норма.
    Ответ написан
  • Как присвоить значение элемента строкового массива в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    В вашем случае cat array | while запускает весь блок while в отдельном шелл процессе, и естественно результат в родительский процесс не вернется, умерев вместе с завершением цикла и дочерним процессом.
    Делай так:
    #!/bin/bash
    
    i=1
    while read str
    do
       array["$i"]="$str"
       i=$(($i+1))
    done <array.list 
    echo ${array[@]}
    Ответ написан
    Комментировать