Задать вопрос
  • Как настроить ssh config файл для gitflic.ru?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    так а почему у вас https:// а не ssh:// ?
    Ответ написан
    Комментировать
  • Как происходит работа с Git в крупных проектах?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    В проекте имеются ветви: master, dev, release и features. Я создал feature от master и, при попытке слияния с dev, вижу, что моя ветка отстаёт от dev на 200 коммитов


    Тогда может надо было создавать feature от dev, а не от master?
    или выяснить почему ваш dev так отстает от master

    git flow в каждом проекте может быть немного свой, но он должен быть описан и установлен тимлидом/архитектором. Если в вашем проекте хаос бардак и никто не париться, то имеет смысл всем собраться и продумать как минимизировать конфликты.

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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Никак.

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

    в Windows у тебя процесс запускается без привилегий, и пускать тебя напрямую тебя к экранной памяти или устройству никто не будет.
    Поэтому варианта под виндовс строго два - или ты пользуешься стандартными библиотеками виндовс (GDI+) и вызываешь функции библиотеки из ассемблера.
    Или ты пишешь свой драйвер экрана с этими функциями, устанавливаешь его, и получаешь доступ к функционалу через драйвер, но второй путь явно не для новичков.
    Ответ написан
    Комментировать
  • Есть ли в РФ учебные заведения, которые выпускают сеньоров или мидлов?

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

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

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Ну логично же, просто почитать
    listen=NO
    listen_ipv6=YES

    при єтом оба интерфейса у тебя IPv4
    Ответ написан
  • Что такое 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% комментариев были бы полезны, остальные - практически никак не повлияли на работу в пролакшене. Сам сделаешь тогда выводы.
    Ответ написан
    Комментировать