• Как правильно переписать 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[@]}
    Ответ написан
    Комментировать
  • Скажите, средствами винды можно реализовать самооочистку памяти от кэша(мрут приложения при сьеденой 6,9гб памяти)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    В java есть уборщик мусора, который выбрасывает из памяти все не ненужные значения и кэши, если те сто лет не использовались, при включенной программе.

    Это не совсем так работает. GC чистит память от значений, которые не используются, то есть нигде больше не определены. В java тоже можно засрать память, если программист рукожопы. Но в разы сложнее, чем в С++

    Такое можно реализовать с приложениями в виндовс? Допустим, у меня cad или игрушка сожрала тонну памяти и не использует ее(тупо кэш определен и хоть на голове стой). Взять и подчистить этот кэш, если начинаются галюны.

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

    Например. Вчера играл в игру, с открытым миром, и та умерла сьев почти 7 гб оперативной памяти. Такие ситуации у меня не первый раз, поэтому интересно посмотреть на решения с кэшем и борьбой с утечками.

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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Мозг человека имеет с рождения способность распознать цвета, звуки, образы, лица и кучу-кучу другой информации (физических сигналов, передаваемые колебаниями электромагнитного поля и колебаниями воздуха), каким-то образом ДНК у нас содержит всю эту информацию и позволяет развивать те или иные клетки, которые будут выполнять ту или иную функцию. ДНК нам передается от двух родителей.

    Видимо у тебя еще детей нет.
    Мозг человека с рождения этого всего не умеет, и начинает учиться. Что-то еще в утробе, что-то только после рождения. Умение сфокусировать взгляд это тоже время нужно, а без этого о каких образах может идти речь?

    Но ведь процессоры буквально куча куч одинаковых транзисторов изначально, процессоры имеют изначально выращенные разные области с такими одинаковыми транзисторами, как же их заставляют объединяться в такие цепочки, которые позволяют им специализироваться и становиться

    "Выращивание" процессора это не выращивание растений. Это формирование готовой схемы со всей логикой.
    Ответ написан
    4 комментария