• Как реогранизовать процесс разработки в IT-продукте?

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

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

    Разделить разработку и поддержку.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    рейд массив создает раздел, который ты затем форматируешь в нужную файловую систему и монтируешь как тот же диск C:

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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Динамические бибилиотеки это обычно те, которые уже есть в системе, и они могут быть расшарены между разными процессами.
    Плюс: жрут меньше оперативки, так как библиотека загружается один раз, после чего разные процессоры могут ее юзать
    Минус - какая версия библиотеки установлена в систему - той и пользуйся. Следовательно нужно учитывать совместимость.

    Статические - обычно идут вместе с твоим софтом, интегрируются в исполняемый файл.
    Плюс - можно юзать любую версию.
    Минус - каждая программа будет грузить в память свой экземпляр всей библиотеки, и если библиотека большая (а зачастую код print(stdout,"hello world) гораздо меньше, чем библиотека которая собственно выводит строку), то расходуется лишняя память и лишнее место на диске.

    Отношения к блокировкам процессов ни те ни другие не имеют
    Ответ написан
    1 комментарий
  • Существуют ли open-source скрипты для Linux для сбора информации о сервере?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    базовую информацию о железе собрать несложно, и это умеет практически любая система мониторинга в штатном режиме (экспортеры стандартных линукс метрик у всех систем, это обычно скрипты на баш/перл/питон/го)

    А вот про установленный софт, такое врядли возможно в принципе, ибо что-то может ставиться через пакет менеджер, что-то просто распаковываться, что-то копироваться, что-то ставиться из файла другим менеджером.
    Общего и единственного реестра среди разных линуксов нет. Путь установки может зависеть от организации.
    Поэтому тут нужно взять hand.sys и стандартизировать свою инфраструктуру, скрипт писать под нее.
    Ответ написан
    Комментировать
  • Как запустить .sh на ubuntu server?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    Ну в вашем случае проблема не в .sh а в строчках с java
    Явно же пишет что auth и game сервер не могут найти главный класс, то есть что-то с джавой и либами.

    Попробуйте сравнить версии джавы.
    Попробуйте указать -cp ./libs/* как -cp ./libs, поскольку линукс и виндовс по-разному могут это обрабатывать

    И вообще можно просто потренироваться запускать без скриптов, пока не разберетесь что не так:

    java -server -Dfile.encoding=UTF-8 -Xmx256m -cp ./libs/* studio.lineage2.authserver.AuthServer
    
    java -server -Dfile.encoding=UTF-8 -Xmx256m -cp ./libs/ studio.lineage2.authserver.AuthServer
    
    java -server -Dfile.encoding=UTF-8 -Xmx256m -cp ./libs studio.lineage2.authserver.AuthServer

    Можно попробовать указать конкретный джар файл в конце
    Ответ написан
    5 комментариев
  • Как сделать взаимодействие между несколькими процессами?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    слать данные из одного процесса в другой процесс можно разными способами.

    Можно сокеты - удобный способ, когда вы можете сами придумать что и в каком виде слать, при этом можно связать процессы запущенные на разных хостах.
    Можно файловые сокеты - тоже самое, только на одном хосте
    Можно через http api, нынче очень популярный из-за простоты реализации
    Можно через сторонний сервер (базы данных, брокеры очередей)

    Все зависит от того, что за данные, как много, как часто. Из этого смотреть чем будет проще или надежнее реализовать
    Ответ написан
    Комментировать
  • Джун QA - это про потенциал и обучаемость, или - когда нужен Мидл с низким окладом?

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

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

    Насколько быстро найти первую работу - СУГУБО индивидуально. Кто-то с первого раза, кто-то за 2 года не может. Нет никаких сроков, есть рекомендации что учить и как готовиться.

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

    Оформляют на работу по разному, что оф. оформление, что самозанятость - дело не в этом, а в том, что за компания, и преференции у них могут быть разные
    Пенсия вас реально интересует прямо сейчас? Или вы считаете что от того, что вас сейчас оформят официально, у вас как-то изменится пенсия?
    Стаж у ИП также само идет, вы работаете на себя, платите пенсионный. За свою жизнь еще успеете поработать в разных вариантах, с разной зарплатой. Это вообще неважный вопрос.

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

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

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

    Простите, но вы перечислили настолько базовые вещи...
    SQL базовый это маст хев
    топология сетей - ну это же блин база
    DNS кешируется - ну просто все
    веб и бэкенд мало чем отличается в 90% современных приложениях

    Ну то есть как-то ощущение, что вы хотите не на джуна, а в первый класс.

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

    Вы бы пошли делать простую хирургическую операцию, типа удаление аппендикса к такому специалисту, как вы в ИТ? Если нет, то думайте.
    Разница между хирургом и ИТ в первую очередь заключается в том, что практика и знания ИТ реально получить дома, сидя у монитора, без общения с реальными пациентами и наработки практики в моргах. Но сами знания все равно должны быть.
    Ответ написан
    Комментировать
  • Какую отрасль ИТ выбрать если интересуешься разработкой?

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

    Например "обслуживание и поддержка" уже имеющегося софта - чем не разработка?
    Или вы не видите разницы между условным MS office 1.0 и MS Office XP и современной версией?

    Все зависит от проекта.
    Ответ написан
    Комментировать
  • Где стоит получать образование computer science?

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

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

    ОБразование - любое, относящееся к IT, там все равно будет кусочек базы.
    Если есть вариант за границей - наверное вполне имеет смысл чисто по причине того, что это заграница.
    Ответ написан
    Комментировать
  • Почему не запускается приложение на linux alpine?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    пиши ldd seeker

    Скорее всего он не может найти необходимые динамические библиотеки, что покажет ldd (именно поэтому ругается на not found).
    Либо не подходит архитектура, либо не хватает каких-либо зависимостей, которые следует доустановить.
    Ответ написан
    Комментировать
  • Какой вид должен иметь профиль github?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Хорошие проекты делаете публичными, остальные приватными, чтобы их кроме вас никто не видел.
    Все.
    Ответ написан
    Комментировать
  • Как получить цепочку кластеров занимаемых файлом?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    первый кластер лежит в directory entry (вроде 20й байт для FAT32)

    остальные кластера вычисляются через FAT (в соответствующем поле будет либо номер следующего кластера этого файла либо FFFFFFFF, который показывает что это последний кластер файла.
    Там же в directory entry лежит точный размер файла в байтах, чтобы понять сколько байт нужно дочитать из последнего кластера

    Как это делать в дельфи не знаю, но можно почитать датащит по FAT16/FAT32 что именно где лежит в directory entry
    Ответ написан
    Комментировать
  • Есть ли реальный профит от использования актуальных фронтенд-технологий?

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

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

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

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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Рассматривали вариант репозиторий с CI/CD куда аналитик кладет свой SQL-запрос.


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

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

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

    P.S. Для обычных то есть рид-онли запросах, обычно просто пишется маленькое веб-приложение прямо для аналитиков, в котором шаблонизируются необходимые запросы и выдается результат в удобном для аналитике виде (html/csv/excel...), как часть обычного процесса разработки, интегрируется с вашей же системой авторизации и раздаются права какой репорт (запрос) кто может выполнять и смотреть результат.
    Ответ написан
    Комментировать
  • Скомпилировать Bash программу в exe?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Какая цель такой "компиляции", поскольку баш изначально не предназначался для компиляции, это скриптовый язык, и штатных средств для такого нет.
    Кроме того, баш собственно хорошо заточен на вызов внешних утилит, поэтому их все "вкомпилировать" в баш врядли возможно
    Ответ написан
    3 комментария
  • Можно ли тестировать чужие сайты на наличие уязвимостей?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В России были случаи, когда наказывали, даже если ты делал багрепорт в существующую bug bounty, поэтому это довольно опасная штука, и всегда следует предохраняться, если совершаешь нелегальные действия.
    Разница в white hat и black hat только в том, что белые продают взломы в баг баунти, черные - на черный рынок. Но оба действия подпадают под преступные.

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Обманывают обычно в краткосрочной перспективе, потому что обманывать сотрудника месяцами - это должен быть слишком лох.
    А так - как и на ЛЮБОЙ другой работе или любом другом магазине - смотрите на репутацию и известность компании. Читаете договор. Смотрите за выполнением условий с их стороны.

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

    Даже если вас обманут с разовой ЗП, всегда можно уйти, набрав опыта. Но схемы существуют далеко не только в ИТ.

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

    Ну и юридическая защита.
    Ответ написан
  • Как добавить в существующий со значением столбец текст в sqlite?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    ну если тип у столбца текст, то можно добавить туда такую текстовую строку.
    Но это бессмысленно, так как выборка стандартным select будет идти по столбцу а не под суб-столбцам.
    Правильнее добавить еще одну колонку в таблицу.
    Ответ написан
    Комментировать
  • Скрытие первой части архива в многотомном архиве, как дополнительный способ безопасности данных. Реально ли?

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

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

    encrypt file names - иногда полезная опция, особенно в связке с solid archive. Позволяет укрыть метаданные, чтобы потенциальный злоумышленник, ну например не мог увидеть в списке файлов знакомый маленький .ico или дефолтный конфиг файл, содержимое которого предсказуемо или точно известно и не воспользовался этими данными чтобы упростить подбор пароля. Иногда даже достаточно знать расширение, чтобы считать первые 3-10 байт файла, в которых обычно сигнатура или метаданные.

    Опции вместе - дают достаточную защиту, чтобы без пароля нельзя было взломать архив.
    Ответ написан
    Комментировать
  • Как перехватить ввод extra-button в Zenity?

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