• Можно ли джуну тратить рабочее время на обучение?

    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 мегабайт, что для современного компьютера немного.
    Ты точно в КАЖДОЙ клетке хочешь разместить нечто активное?
    Ответ написан
  • Чем заниматься после обучения по Python?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    А зачем вы это делаете?

    Если вы собираетесь в айти, то должны видеть обычные бытовые задачи, которые бы захотелось решить через айти технологии.
    Если не видите, нет желания, нет понимания - может не стоит идти в айти, будете заниматься всю жизнь непонятными задачами через силу, перегорите?
    Ответ написан
    Комментировать
  • Будет ли справляться кулер "Thermalright Silver Arrow T8" (заявленная рассеиваемая мощность 320 Вт) с процом i9-13900K?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    software engineer
    Водяное охлаждение вообще не про мощность. И я не помню, чтобы водяное было лучше воздушного. Просто "иногда" оно может быть удобнее в маленьких корпусах, где проблематично прогонять воздух через корпус и выгонять его через предусмотренные в корпусе выходы.
    То есть это больше о том, через что мы выводим тепло наружу, а не про эффективность охлаждения.

    В нормальном корпусе данный кулер вполне справится.
    Ответ написан
    Комментировать
  • Конфиденциальность при удаленном подключении к ubuntu?

    saboteur_kiev
    @saboteur_kiev Куратор тега SSH
    software engineer
    суперпользователь в линуксе один, это тот у которого UID=0

    то есть ваши два суперпользователя не имеют суперюзерских прав. они видимо просто имеют доступ к sudo чтобы стать рутом.
    А рут может просто выполнить su и стать другим юзером даже без пароля.
    Ответ написан
  • Как сервера взаимодействуют с клиентом если IP адреса не уникальные?

    saboteur_kiev
    @saboteur_kiev Куратор тега Компьютерные сети
    software engineer
    На устройство с серым айпи нельзя отправить первый пакет.

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

    Либо на маршрутизаторе можно настроить проброс порта (port forwarding) - это статичное резервирование определенного порта на маршрутизаторе для того, чтобы все что идет на этот порт перенаправлялось на нужный порт нужного устройство в подсети маршрутизатора.
    Ответ написан
  • Как подключить физический диск как папку home?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    много вариантов.

    1. Вам наверное будет проще перенести все файлы на другой диск, переразбить /dev/sda с нуля сразу на один большой раздел, отформатировать, примаунтить и скопировать файлы назад.

    2. Можно попробовать загрузиться в какой-нить gparted, сменить размер существующего раздела и затем поправить размер файловой системы через resize2fs

    3. У вас там уже используется LVM, можно заморочиться и сделать там разные варианты.
    Увеличить общий размер текущего logical volume, или сделать отдельную volume group с отдельным logical volume.. но там надо подумать как устройства распределить.
    Ответ написан
    Комментировать
  • Почему boolean использует больше памяти чем byte?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    boolean вообще принципиально может использовать 1 бит.
    Но архитектура PC сделана таким образом, что минимальный размер, который мы можем адресовать, это байт.
    Поэтому в языках программирования boolean может иметь разный размер, и скорее всего как минимум 1 байт.

    Можно сделать кастомную реализацию с побитовыми операциями, тогда можно будет засунуть восемь boolean переменных в один байт, но вряд ли есть хоть один язык программирование, где такое будет сделано штатно, ибо это неудобно.
    Читайте доку про ваш язык программирования
    Ответ написан
    2 комментария