Задать вопрос
  • В чём конспектировать материал?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Бумага имеет хорошее преимущество. Полная свобода, независимость и что весьма немаловажно - моторику.
  • Создание папок при рекурсивном копирование командой cp в терминале?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Damian Lewis, А как вы через Drag&Drop смогли бы скопировать что-то в еще несуществующую папку? В какое место вы бы тянули мышкой?
    Правильно - в никакое. В GUI вам также прийдется ее сперва создать.

    Поэтому правильный вариант - mkdir а затем cp.
    Если хотите, сделайте скрипт из двух команд.
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Да даже копируя простой tail --lines=100 из ответа стаковерфлоу

    Покажите мне этот ответ из стек оверфлоу. Я очень удивлюсь, чтобы кто-то писал --lines=100 вместо -n 100 (а -n поддерживается в макос).

    Вы не правы, совсем. Языки прячут os-specific штуки за абстракциями. Добится неработоспособности какого-то кода на одной из платформ - очень и очень сложно. Нужно прямо хорошенько постаратся.

    Обратиться к c:\ ?
    Или вы так не делаете? А почему? А может потому что изначально пишете код платформонезависимо?
    Так а почему в баш не можете так делать и приводите платформозависимые примеры с --lines=100 ?

    .. нет, не можете. То, что вы хотите, называется не библиотека, а целое консольное приложение. Что бы у нее была точка входа, парсер аргументов, вывод exit code, stdout и stderr. Это в разы дольше и сложнее, чем просто библиотека, которую можно использовать только как зависимость к другому проекту и никак иначе.

    Мне как бы никто не мешает вызывать java метод из джарника, вызывая джаву из баша. Я собственно так и сделал - написал маленький код на java, который использует java driver и провожу тесты с разными версиями mongo драйвера. Чтобы тест был релевантным и я мог бы уверенно сказать разработчикам, какие версии java драйвера точно работают.

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

    Так если не можете привести пример, на чем основывается тогда уверенность, что баш давно пора заменить на другой более мощный и современный язык?
    У скриптовых языков у всех есть отличное применение, но баш в качестве универсального языка и оболочки - пока что самый удобный, и альтернативы у него, как я уже писал - ksh или zsh
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Alex Wells,

    Я поэтому и уточнил, что мы взяли этот кейс для примера.

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

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

    Ощущение, что у тебя 1+1=3. Баш универсален. Особенно для вызова внешних команд, таких как пакетный менеджер - он подходит лучше всего. Поэтому для любых обновлений - это лучший выбор.

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

    Ничего не нужно.

    Понятно, что простенькие баш скрипты скорее всего будут работать везде. Но даже у этого нет никаких гарантий! Если у ls на макоси или у ls на ubuntu 10 какого-то одного флажка нет, потому что там ls кастомный или старой версии, то даже с "популярными" gnu tools ваш скрипт завалится.

    У любого языка есть свои кастомные штуки при работе в разных ОС.
    И совершенно непонятно, почему наличие всего одного флажка вдруг вызывает завал скрипта. Этот флажок может и не использоваться, и в 99% неиспользуется, если ты пишешь скрипт с желанием сделать совместимо.
    На джаве легко написать код, который не запустится в 1.8, или не запустится в макос. Раунд.

    Условная котлин библиотека не компилируется в баш и, обьективно, никогда не будет. А использовать такую библиотеку как executable вы не сможете, так как это библиотека, а не executable :/

    Что значит "компилироваться в баш"? Если мне нужно сделать чекалку подключений к монго в джаве, то я могу написать библиотеку на джава именно с нужной версией джава драйвера, и из баша запускать ее с разными коннекшенами. И это будет проще и универсальнее, чем писать на джава все целиком.

    Я вел к тому, что решения типа докер компоуза подходят сюда намного лучше, чем любая полу-ручная автоматизация.

    докер компоуз сам все обновляет?
    Или вы про использование latest в докерфайле?
    Или можете привести адекватный пример технического решения проблемы путем замена на более современный скриптовый язык?

    Принимаем решение исходя из цены и выгоды обеих решений.

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

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

    Обьективно, уязвимости находятся довольно редко.

    Вне нашей текущей дискуссии, поменяйте ваш скан уязвимостей ;)
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Boobtschebeznika,
    Не знаю, первые три игры я разрабатывал не проходя эту карту вообще.
    Я просто писал код.
    Итого, онлайн в первой игре ~150, во второй ~600, в третьей ~100 000.
    И онлайн никак не связан со сложностью разработки.

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

    Что нужно узнать до того, как приступить к изучению английского?
    Историю Англии, историю языка, культуру современной британии, классификацию разных языковых групп или ПРОСТО ВЗЯТЬ И НАЧАТЬ УЧИТЬ АНГЛИЙСКИЙ?

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

    Вот скажи, у тебя достаточно в голове логики и математики, чтобы написать игру "морской бой"?
    Как ты думаешь насколько сложная математика, графика, аудио и искусственный интеллект нужен чтобы начать ее делать?
    Это даже не карта. Это даже не план, это просто какая-та чушь - без детализации что означает конкретный пункт, это можно просто выкинуть. Особенно там где game engine development - это вообще не всем нужно, можно взять готовый движок, можно без него.

    Тебе уже несколько раз говорят - программирование игр, в первую очередь это просто программирование. Учи язык программирования. Если ты думаешь что изучив один, ты не сможешь изучить другой и потратишь очень много времени на первый - я тебе скажу, что ИТ - СЛОЖНАЯ область. Потратить год на один язык - это далеко не всегда даже на джуниора хватит. Поэтому неважно какой язык учить сейчас, чтобы освоить базовые понятия программирования и принципы как это работает.
    Просто бери и программируй.
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    mkone112,
    Велосипед развивает синхронизацию движений (и следовательно полушарий) и равновесия, и в трехлетнем возрасте это очень полезно для дальнейшего развития человека в целом.
    В общем теперь понятно, почему ты такой ;D
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Alex Wells,

    Ну мы же для примера взяли базу и вообще процесс обновления) Явно не может быть такого, что всегда обойдется без зависимостей, это нонсенс.

    окей, база обновляется без зависимостей.
    Может быть джаве для обновления нужны зависимости?
    Может быть докеру для обновления нужны зависимости?
    ЧЕМУ кроме обновления OS нужны зависимости?
    Ну не несите чушь. подавляющее количество софта при обновлении новых зависимостей не требует.

    Для баша? Или для типичных (опять же, типичных в моем понимании) скриптов на нем? Первое - это понятно, а второе - отписал выше)

    Не понимаю что отписано выше. gnu tools - популярные утилиты. ls, top, grep, ps, kill - понятно что без них мало что можно сделать в системе. Не понимаю какие у вас с ними проблемы. Любой язык программирования без библиотек - практически ничего не может делать.

    Нет. Вы же спросили про "метод", я про него и ответил. Фронт и бэк априори не могут быть на одном фреймворке, но легко могут использовать библиотеку, написанную на одном языке.

    Баш тоже может использовать библиотеку, написанную на том же языке.

    Ну не прям руками. Но и не автоматически. Опять же: есть у вас 50 девов и в придачу еще 6-8 стейдж/прод енвов. На каждом будете вручную запускать скрипт, даже если допустить, что он универсально выполнится на linux/macos/docker разработчиков и условный ubuntu/docker стейджов? А если через день найдется бажок и нужно будет откатить? Опять все руками?

    Ну значит вы не понимаете, что баш это не оркестратор. Можно запускать не вручную, а через jenkins, можно использовать ansible/chef/puppet и другие вещи. Зачем тащить баш именно туда, где уже есть популярные инструменты, которые НЕ являются другими "более современными" языками программирования, а именно инструментами оркестрации???

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

    У меня ~10 только команд разработчиков и используется множество инструментов. И связующим клеем часто является или баш или питон, в зависимости от того, что нужно в данный момент.

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

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

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

    Автоматические секьюрити чеки всегда работают на отлично?
    Скажем в каком-нибудь фреймворке всегда есть куча 3rd party библиотек. И на одну из библиотек ругается секьюрити чек.
    Что вы делаете - обновляете руками эту библиотеку в фреймворке, или обновляете весь фреймворк?
    А если нет версии этой библиотеки без уязвимости (по словам вашего секьюрити чека), как вы обходите завалившийся чек?
    И самое интересное, как это у вас все выполняется полностью автоматически?
    Я уверен что регулярно приходится что-то делать руками.
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    mkone112, И на велосипед тоже сел только после того, как изучил как именно работает цепная передача со свободным ходом втулки?
    То есть не в 3 года, а уже к концу школы?
    :)
  • Как синхронизировать два репозитория Git между собой и с репозиторием SVN?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    поставить на сервере задачу в кроне, которая будет выполнять pull в локальный репозиторий?
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Boobtschebeznika,
    В интернете ПОЛНЫМ ПОЛНО планов для полных чайников. Просто если чайники хотят чтобы им разжевывали каким проводом клавиатура вставляется в компьютер - то это не план. Это настолько общие и примитивные знания, что для них не нужно читать подробную документацию.

    ИТ область - область с высокой квалификацией. И если какой-то план для новичков похож не на список из 10 пунктов а на статью с кучей терминов - то это оно и есть. И искать что-то попроще - нужно не в ИТ вообще.

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

    Вот простой пример, как ты пытался найти информацию. Но почему ты не нашел вот это?
    Как попасть в game-dev и с чего начать карьеру в э...
    Куда податься вчерашнему студенту-недопрограммисту...
    Хочу попасть в игровую индустрию. В какую магистр...
    Как попасть в game dev?
    Что нужно, чтобы стать разработчиком игр?
    С чего начать путь в Game Dev?
    С чего начать путь в Game Dev?
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Boobtschebeznika, Ну алгоритмы же еще в школе проходят. Для простых игр нужны простые алгоритмы, для сложных сложные.
  • Чем делать резервную копию Windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    northon ghost имхо сильно устарел, он рулил во времена win9x, но потом что-то уже не то.
    Acronis - странно, один из лидеров, и вроде хорошо умеет в разные файловые системы
    Veeam - сам агент жрал много места или бэкапы? вроде как прям тоже лидер.
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Boobtschebeznika,
    Ты был на курсах вождения? Точно изучил внутреннее строение автомобиля, и можешь рассказать без гугления чем карбюратор отличается от инжектора? И может ли быть нечетное количество цилиндров в двигателе?
    Или ты это себе придумал, основываясь на рассказах советских водителей, потому что 50 лет назад в каком-нить колхозе машины были такие, что не умея их чинить, ты бы просто никуда не доехал бы?
  • Будут ли проблемы с трудоустройством в IT если косить по психушке?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    В некоторых компаниях просто есть background чек, и независимо от того, насколько там хорошо работать, это бывает требование заказчика или аудита. Компании обязаны подчиняться требованиям регулятора.
  • Как проиндексировать dns сервер в глобальной сети?

    saboteur_kiev
    @saboteur_kiev
    ниндзя оп оп, Возможно и меньше - у промежуточных DNS серверов может быть насильно установлен меньший ТТЛ, но чтобы вы гарантировано сказали что весь мир видит новые - неделю.

    P.S. вроде по умолчанию стоит сутки?
  • Как объединять сервера?

    saboteur_kiev
    @saboteur_kiev
    Packetik, Простите, но программы это не волшебство и не магия.
    Это четкие алгоритмы.
    Вот надо тебе сложить 1 + 3 и получить три.
    И как ты это разложишь на два компьютера? Одному кинешь 1, второму 3, а как считать?

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

    НЕТУ. ВСЕ.
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Alex Wells,

    новые патч версии наоборот более стабильны. Возможно выше назвал их "минорными" - если так, то имел в виду именно патч. В них только багфиксы, они априори не могут быть менее стабильными)

    Никогда не говорите никогда ;)

    А ваши апгрейды базы не требуют доп. зависимостей? Вот прям никаких? На голом alpine все запустится? Не смешите.

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

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

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

    Одно, конечно же. Либо один микросервис, либо одна общая библиотека.

    То есть фронт и бек у вас всегда один микросервис? И написан на одном фреймворке?

    Это патч версии. Если сильно боитесь, можно поднимать снепшот, апгрейдить базу, запускать тесты и потом уже апгрейдится. И это спокойно можно делать на CI, автоматически по смене версии базы в каком-нибудь docker-compose.yml.

    Да не будет никаких проблем, поднимая патч версию. А остальное - о чем я и говорю. Поднимать версию руками так точно никто не станет чаще раза в год. Если оно обновляется по указанной где-то там версии само, одновременно на всех енвайронментах и у всех девов - та хоть раз в месяц.

    Я не понимаю. Почему для вас баш - это обновление руками? Почему баш не является автоматизатором рутины? Либо вы совершенно отвратительно готовите баш, либо ну я даже не знаю.

    Я не говорил про уязвимости) Я говорил про очевидные баги базы, вызывающие проблемы у конечных юзеров проекта.

    Если существуют очевидные баги базы, которые вызвают проблему аж у конечных юзеров, зачем вы юзаете такую плохую базу...
    Переходите на постгрес ;)

    Да, если в фреймворке есть таковые и оно решено в новых версиях - мы поднимаем версию, конечно.

    Зачастую смена версии фреймворка может потребовать неслабых изменений в коде.

    И обновляем мы его меняя циферки версии в одном файле, diff на одну строчку :)

    У вас очень, очень, очень простой проект.
    Вдобавок вероятно нет аудита и возможность ставить что хочется из инета напрямую.
  • Как объединять сервера?

    saboteur_kiev
    @saboteur_kiev
    Packetik, нет.
    Или программа изначально была задумана и приспособлена на многопоточность и параллельные вычисления или нет.
  • Работа с памятью и гибернация в linux как в windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Армянское Радио, а отключить - даст прирост производительности, если у меня SSD, например?