Задать вопрос
  • Что такое Docker простыми словами?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Надо тебе запустить три-четыре процесса (веб сервер, базу, какой-нить бот, какой-нить брокер и логер). Они могут требовать разные зависимости.

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

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Пробовалecho -e "1\n5\n" | bash script.sh но не сработало, как такое можно реализовать?


    Должно было сработать.
    Попробуй следующие варианты
    1.
    echo "1
    5
    "|bash script.sh


    2.
    echo "1
    5
    " > answer.txt
    bash script.sh <answer.txt


    Ну и вообще дебаг бы добавить в свой скрипт, ибо если внутри именно read, то все должно работать правильно и expect в данном случае перебор. Может количество read недостаточно, или разделитель там другой поставил.
    Ответ написан
    3 комментария
  • Можно ли заставить терминал Windows понимать спец символы терминала?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Терминалы винды и линукса изначально поддерживают разный набор контрольных символов.
    https://en.wikipedia.org/wiki/Escape_sequence

    Стандартный виндовый терминал так научить нельзя, надо использовать нестандартный
    Ответ написан
    2 комментария
  • Домен покупают или арендуют?

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

    Поэтому технически ты его покупаешь, фактически - арендуешь.
    Ответ написан
    Комментировать
  • Virtual box по умолчанию сохранял скриншоты?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Какой такой скриншот?
    Где там скриншот виртуалбокс создает?
    Ответ написан
  • Что можно смотреть/слушать во время учёбы?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    в выходной но сложно себя заставить начать или читать продолжительное время потому что выходной.


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

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Мне бы хотелось выделять час или два рабочего времени на чтение документации, прохождение курсов и создание учебных проектов.

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

    Так же есть проблема с дебагом кода. На работе мы используем Android Studio с виртуальными устройствами, и я пока не могу ковыряться в ней дома, так как мой ноутбук ее не тянет.

    Спроси выдает ли компания корпоративный ноутбук для работы.

    Как вы думаете можно ли так делать и нормальная ли это практика? Как вы сами организовываете свое время, занимаясь самообразованием?

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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Я думаю, проще взять виртуалку в каком-нить hetzner/digitalocean

    Облачные сервисы больше заточены на предоставление различных saas/paas и хороши для быстрого/автоматического масштабирования различных сервисов.
    И мне кажется, что для маленьких вещей минимальная плата там выше чем, скажем, минимальная виртуалка у более "стандартных" хостеров, где нужно будет руками поставить докер, настроить и запустить.
    Ответ написан
    Комментировать
  • Как вынести папку с сайтом?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Может надо в sites-enabled, а не sited-available?

    точнее сделать симлинк
    Ответ написан
    Комментировать
  • Где можно прочитать про всю суть ЯПов под капотом?

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

    Что вы вообще спрашиваете? Какой смысл?
    у вас надерганы термины из разных источников, и видимо из источников описывающих разные языки программирования, отсюда и каша.
    Выберите конкретный язык и прочитайте про его терминологию. Потом про другой.
    Прошло уже 100+ лет с начала программирования, появились новые сущности, которые не подпадают под старую классификацию.
    Ответ написан
    Комментировать
  • Как ограничить вывод результатов команды find?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. можно увеличить буфер скроллинга, чтобы не затиралось,

    2. перенаправить в файл, который потом прочитать более удобным просмотрщиком
    find > result.txt

    3. Перенаправить в head или tail или more или less через пайп |
    find | head -n 500
    find | less
    Ответ написан
    Комментировать
  • Нужна концепция, часто ли используете блок схемы скриптов и чем пользуетесь?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Блок-схемы для скриптов не нужны. Скрипты обычно не слишком сложная вещь, а если большой, то должны использоваться функции.

    В современном ИТ блок-схемы используются в основном для таких вещей
    1. Презентации, для наглядности разных вещей.
    2. Описание бизнес логики, юзер кейсов, интерфейсов
    3. Для документации и нагляности, например описание инфраструктуры или архитектуры всего проекта

    Рядовые девелоперы могут использовать блок-схемы (часто UML) для описания контрактов между компонентами. Это вполне себе встречающееся явление, если компоненты пишут разные команды. Но блок-схемы тут не единственный вариант.
    Ответ написан
    1 комментарий
  • Возможно ли получить белый IP бесплатно?

    saboteur_kiev
    @saboteur_kiev Куратор тега SSH
    software engineer
    Одни провайдеры все айпишники выдают белые, другие выдают серые и белый за отдельные деньги.

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

    DDNS это не про то. DDNS помогает если у тебя УЖЕ белый айпи, но не статический, а выдается рандомный, и может меняться хоть пару раз в день, или не меняться месяцами.

    Вычислить какой у тебя IP довольно легко - либо почитать википедию "специальные IP адреса", и научиться распознавать локальные сетки ( это 10.x или 192.168.x и еще пара диапазонов). Либо проверить что твой локальный айпи совпадает с тем, что ты видишь на каком-нить myip.ru - если не совпадает, значит серый.

    Если айпи серый, бесплатно никак.
    Ответ написан
    Комментировать
  • Как правильно передать данные?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Данные в баш скрипт можно передавать тем же json-ом и парсить через jq
    Или фронтом писать в файл, скриптом читать из файла по строкам, убрав проблемы с разными символами
    Можно вообще заворачивать все base64 и передавать аргументы в скрипт уже закодировав - тоже все проблемы с символами пропадают.
    Вариантов много.

    Просто stdout я не могу забирать там много мусора.

    Ну можно же правильный stdout сделать. В самом скрипте писать в лог файлы, а в stdout только то, что нужно для ответа серверу в том формате, который нужен серверу.
    Можно в stderr писать, если нужно в терминал, а не в файл. И соответсвенно контролировать что пошло в stderr а что в stdout. Тут вообще не проблема.
    Ответ написан
  • Как в неопытной команде найти баланс в code rewiew между требуемым качеством кода и объемом исправлений?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer

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

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

    Мне неудобно читать их код. У них часто нарушается инкапсуляция, не соблюдается SOLID, именование не соответствует конвенциям и договоренностям, бывает дубляж, просто странные решения; в общем, мне категорически не нравится, как они пишут.

    За именование не по конвенциям - бить по рукам. Это однозначно. Конвенции описать в документе и просто режектить скидывая ссылку на документ с конвенциями. Без подробного разжевывания. Через небольшое время все выучат конвенции. Убедить менеджмент что нужно поддержать идею о конвенции легко, ибо не только общеизвестные практики, но еще и очень легко объяснимые с точки зрения удешевления последующей поддержки этого кода.
    Ну и если конвенции соблюдены, то читать код должно быть удобно.
    В конвенциях - правила именования функций, переменных, файлов, переноса строк, оформление комментариев и коммитов (например хорошее именование коммитов в мастере - возможность автоматизации отчетов, релиз ноутс, а также интеграция CI с код ревью по заголовкам коммитов). Также необходимо контролировать использование библиотек. Если кому-то для реализации задачи нужно подключить еще одну библиотеку, это надо согласовать - какую, где, краткий инвестигейшн кто эту библиотеку делает. Вдруг она уже устарела, никто ее не саппортит и через год-два придется ее менять на что-то новое. В идеале иметь внутренний репозиторий куда подтягивать то, чем пользуетесь в проекте и регулярно но контролируемо его обновлять.

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

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

    Например в процессе эксплуатации выявлялись проблемы, которые были исправлены. Но по статистике 90% этих проблемы ты комментировал еще в момент реализации, и если бы изначально тебя послушались, то проблем бы не возникло, и не надо было бы переписывать - это прямая экономия времени и денег.
    Или наоборот, 5% комментариев были бы полезны, остальные - практически никак не повлияли на работу в пролакшене. Сам сделаешь тогда выводы.
    Ответ написан
    Комментировать
  • Почему парсинг с сервера не работает, а через свой компьютер работает?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Никто не скажет. Борьба с ботоводами у всех реализована по-разному, и если код работает (с твоего компа), то дело не в коде.
    Банально на сервере повесили антиспам на подсети популярных хостеров и клауд провайдеров.
    Ответ написан
    Комментировать
  • Наставник-разработчик отказался от junior-специалиста. Что делать?

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

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    На обучение денег не жалко, главное, чтобы был результат.


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

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

    Лучше за то же время прочитать два любых из гугловского топ-10 и написать кучу кода своими руками.
    Ответ написан
    Комментировать
  • Kubernetes, десятки configmap и как это готовить?

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

    В глаза кидаются мелочи типа

    В каждом сервисе подключен бутстрап конфиг, в котором подключены 4-5 конфигмапов дополнительно

    А почему у вас несколько конфигмапов на одно приложение, а не один конфигмап?

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

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

    По итогу можно провтыкать изменить на каком-то окружении параметр, и всё..окружения уже не одинаково настроены.

    Делать статические параметры, и в конфигмапы выносить исключительно environment-related опции.

    По вашему вопросу никто не скажет решения. Это нужно сесть и переделать.
    У меня свыше 100 компонентов, десяток енвайрнментов. Конфигмап один на неймспейс, секрета два на неймспейс, в принципе достаточно.
    Ответ написан
    2 комментария
  • Как создать 2д мир?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    1 млн байт, это например всего лишь 1 мегабайт, что для современного компьютера немного.
    Ты точно в КАЖДОЙ клетке хочешь разместить нечто активное?
    Ответ написан