Задать вопрос
  • Использована неинициализированная переменная "а"?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    1. Используйте тег форматирование для вашего кода

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

    3. Переменную нужно сперва определить, а потом с ней работать. Вы же просто начинаете пользоваться переменной, нигде предварительно ее не инициализировав - текст ошибки об этом ПРЯМО говорит. Необходимо не только объявить, но и задать дефолтное значение перед тем как к нему обращаться.
    Ответ написан
    2 комментария
  • Как сжать папку .git?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    1. git хранит всю историю. Но встроенный garbage collector может удалять коммиты, которые не привязаны ни к какой ветке. Поэтому для начала:
    * Удалите ненужные бренчи.
    * Выполнте "git gc --aggressive --prune" после удаления бренчей.

    2. Затем нужно разобраться с тем, что у вас занимает место. Если вы напихали крупных файлов в ваш гит репо и они присутствуют в активном бренче, то никак их не удалить. Точнее можно попробовать удалить сами файлы вручную или при помощи bfg-repo-cleaner, но при этом надо синхронизировать это со всеми участниками. Если у вас гит репо локальный и никто им не пользуется, это проще. Но при этом вы ломаете коммиты - откатиться на них уже будет нельзя.

    3. Наконец следует потратить вечерок и почитать про git-flow, или даже посмотреть 3-4 ютуб ролика от разных авторов которые показывают разные флоу работы с гитом. Там вы поймете почему и зачем люди пользуются rebase, squash, зачем удаляют ненужные ветки и содержат dev/master в хорошем состоянии, когда там нет промежуточных коммитов с commit message типа "апечатка" "забыл" "еще" и подобного мусора. И гит репо занимает минимальный объем.
    Ответ написан
    Комментировать
  • Не работает команда в bash скрипте, где ошибка?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Смотреть PATH нужно не из вашей сессии, а прямо из cron.
    Когда юзер логинится интерактивно, выполняются его персональные профайлы - .profile, .bashrc, .login и др.

    Крон же просто запускает с правами указанного юзера, не читая его профайлы.

    Варианты как это чинить:
    1. Использовать в скриптах полные пути к файлам
    2. Задать PATH прямо в вашем скрипте
    3. Задать PATH в самом кронтаб вначале, например

    PATH=$PATH:/home/user/mypersonalbin/
    00 09 * * * /mnt/pve/backups/sensors.sh >> /root/myscript.log 2>&1


    crontab формат позволяет задавать переменные, которые будут работать для всех скриптов запускаемых из вашего кронтаба.
    Ответ написан
  • Как сочетать умную перезапись файла с правами доступа?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Как вариант - скопировать предыдущий документ во временный файл, а потом перезаписать текущий файл. Если операция успешна - то удалить временный файл. Если операция не успешна, то либо восстановить данные из временного файла, либо если программа крешнулась, на диске будет предыдущий документ в другом файле (да, с другими правами, но будет).
    Ответ написан
  • Как запустить уже остановленную программу в фоне не переходя в foreground?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Нужно понимать два момента

    команды jobs, bg и fg являются внутренними командами шелла, и работают с дочерними процессами именно этого шелла.
    Если вы приостановили дочерний процесс (Ctrl-Z) или запустили его сразу в бэкраунда (ping google.com &), то командой fg вы выводите его на передний план. Это все равно что в винде вы взяли и поставили мышкой фокус на окне блокнота, после чего нажимая клавиши вы будете писать в этом блокноте.

    А если вы приостановили процесс Ctrl-Z и продолжили его через bg, он будет продолжаться в фоне, а на переднем плане будет ваш шелл - вы можете писать другие команды. Все равно что мышкой в винде вы кликнули в рабочий стол рядом с блокнотом, и поэтому нажимая клавиши вы будете писать не в блокноте а на рабочем столе (стрелки по иконкам бегают, какие-то хоткеи могут работать, Enter запустит текущую иконку)

    Для понимания потренируйтесь так:

    sleep 100
    CTRL-Z
    jobs
    bg 1
    echo I am still in shell
    fg 1
    CTRL+C


    И второй момент - можно запустить программу в фоне, и отсоединить ее от текущего шелла вообще (запустить ее через nohup sleep 100 & и отключитья от сессии, или выполнить
    sleep 100 &
    jobs
    disown
    jobs
    ps aux | grep sleep

    в этом случае bg/fg уже не помогут, так как программа запущенная в фоне уже имеет другого родителя, и не подконтрольна внутренним bg/fg - вернуть ее как дочерний процесс под текущий шелл уже не выйдет.

    Поэтому Ctrl+C, Ctrl+Z - это просто сигнал который ты отправляешь в текущий "foreground" процесс, с которым ассоциирован stdin
    Ответ написан
  • Будет ли хорошим подспорьем сертификат DBA для бекенд-разработчика?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Те, кто работает именно как DBA, это не курсы.
    Там где DBA это действительно отдельная позиция, а не сисадмин, который бэкапы делает, там DBA это разработчик баз данных, раньше был в основном Oracle (SQL/PL), где логику бизнес приложений переносили в процедуры оракл базы, и считалось что Оракл такие расчеты будет выполнять лучше и быстрее, так как лучше знает как работать с собственными данными.
    Сейчас процедуры уже есть и в постгрес и в облачных базах.
    Обычно DBA-шник лучше понимает как должно работать приложение чем фронтендер или даже бэкендер - именно с точки зрения бизнес-флоу, точнее бизнес-данных флоу.

    И также есть разделение на высоконагруженные проекты.

    Правда в последнее время вести логику в базах выходит из тренда, и остается больше высоконагруженные приложения и облачные базы.

    Как это связано с бэкенд разработкой? Ну не знаю...
    Просто научитесь хорошо в SQL и nosql, а там решайте куда выхотите специализироваться.
    Ответ написан
    Комментировать
  • Для получения визы должно быть профильное образование?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Виза это вообще не про ИТ. Спрашивать и искать информацию нужно непосредственно в посольстве той страны, куда вы собрались.
    Политика получения визы может меняться из года в год, и то, что было 5 лет назад, на сегодня может вообще не работать.
    Визовый офицер вас может завернуть даже не объясняя причин и будет в своем праве.
    Опять же, смотря какую визу ты хочешь. Чтобы новичку без опыта получить визу, нужно быть исключительным и самостоятельным.
    Ответ написан
    Комментировать
  • Как начать понимать UML-схемы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    А может быть их и не нужно понимать, т.к. их редко используют?

    Именно так.
    Если часто будешь использовать, научишься понимать.
    Если редко - будешь разбираться, а потом забывать.

    Но UML это всего лишь один из вариантов, как фиксировать контракты. Может быть и достаточно удобный и стандартизированный, но не все им пользуются, ибо нарисовать UML это тоже время и задача.
    Ответ написан
    Комментировать
  • Почему Windows 10 не понимает символических ссылок Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    потому что windows умеет работать с NTFS, а не posix-файловыми системами.
    Чотбы понимал, надо юзать встроенный WSL или не юзать виндовс.
    Почитайте про то, как устроена файловая система Windows и Линукс, и поймете, что git не будет переносить сущности линукса на винду.
    Ответ написан
    Комментировать
  • Как быстро разобраться в чужом проекте?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    Доков особо нет. Что точно должно быть задокументировано?

    Все логины, пароли, хостинги, зависимости, версии использованного ПО и либ, структура БД, политика бэкапов.

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

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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Нет естественно. Никто не знает что у вас за структура и в каких таблицах что лежит.
    Нужно искать.
    Как вариант, админ мог удалить юзера, не удаляя его сообщения и заказы.
    Ну это нужно руками смотреть.
    Если у вас кастомный софт, то только самому лазить и искать все.
    Ответ написан
    Комментировать
  • Если я подниму свой DNS сервер, я смогу регистрировать домены бесплатно?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ну, допустим, я подниму свой DNS сервер дома. То я смогу сам добавить домены, чтобы получить их бесплатно? Смогут ли на такой домен зайти другие пользователи?


    В интернет существуют корневые DNS сервера и все домены первого уровня идут через них, дальше распределяются по зонам первого уровня и так далее. таким образом все DNS сервера иерархически связаны.
    С вашим же не будет связан никто.

    Ваши домены будут видеть только те, кто в своих настройках пропишет ваш DNS сервер напрямую.
    Ответ написан
    Комментировать
  • Как заархивировать папку в zip и сразу переместить в другую папку одной командой?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    а сразу делать в нужном каталоге?

    zip -r /MY/ANOTHER/DIRECTORY/danilkonev.zip /home/admin/web/danil-konev/
    Ответ написан
    Комментировать
  • На какой операционной системе развернуть машину под бекап?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Надежнее это делать на той системе, которую ты умеешь настраивать.
    В этом плане винда ничем не хуже линукса, если ты умеешь работать с виндой - она также может работать годами без перезагрузки и не глючить. Вопрос в прямых руках.
    Ответ написан
    4 комментария
  • Как в докер установить ubuntu?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    докер это контейнер для запуска конкретного приложения в определенной среде, а не для запуска операционной системы. Что система будет делать в контейнере? Какой конкретно процесс от системы вы хотите запустить в докере?

    Для запуска операционной системы есть виртуальные машины, а докер - в принципе суть заключается в том, что запускается конкретный процесс, в изолированной среде, в текущей ОС.
    Ответ написан
    Комментировать
  • Что можно получить ещё с помощью ping?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    С помощью ping получают время отклика по ICMP
    А вот у вас вопрос к ping никакого отношения не имеет.

    Вы просто считываете файл в строку, потом добавляете туда дату и сохраняете файл.
    Что изначально находится в файле - знаете только вы.
    Ответ написан
    2 комментария
  • Запуск js скрипта в фоновом режиме через команду nohup?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    потому что эотт js скрипт не является исполняемым файлом. Его нужно запускать чем-то, например nodejs
    как питон запускается
    python myscript.py
    так и js надо
    node myscript.js

    или nohup node myscript.js &

    ну или прописать через шебанг путь к ноде и сделать файл исполняемым.
    Ответ написан
    Комментировать
  • Как и на чем пишется социальная сеть?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    подучи базовые принципы как работают веб технологии и пиши.
    Я не уверен, что для C# существуют популярные веб фреймворки общего назначения, там все завязано на ASPX
    Поэтому бери любой другой язык, в идеале лучше выбрать фреймворк.
    А так - php/python наверное лучший выбор.
    Ну и понятноч то надо знать html/css/JS и работу с базами аднными.

    Для начала было бы неплохо сделать кусочек, а то не зная ничего сразу соцсеть..
    Ответ написан
    33 комментария
  • Как реализовать удаление файлов до достижения определённого количества свободного места?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Почему именно питон, когда для таких задач как раз подходит баш, или вообще find?

    Почему нужно удалять когда заканчивается места, а не настроить изначально ротейт файлов, которые растут - именно так делается в нормальных случаях
    Ответ написан
    Комментировать
  • Поясните пожалуйста bash скрипт?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    кода done < <(ls -1 "./my_temp_dir/")

    ls -1 выводит содержание каталога в одну строку по одному наименованию
    <(blabla) создает из команды поток, который передается как файловый десктриптор
    < перенаправление данных из файлового дескриптора в предыдущую команду
    done является частью цикла, поэтому перенаправление идет не в done а в весь блок цикла.
    Ответ написан
    Комментировать