• Какие советы может дать по тому как стать пентестером?

    @Vitsliputsli
    Сергей Горностаев, да не боги они, а в большинстве команий нет вообще никаких пентестеров. Расскажите, где вы видели этих мифических созданий, который знают все и вся, да еще и работают пентестерами?
    Разработчиков, админов с отличными знаниями найти огромная проблема, а вы толкуете про пентестеров, которые в одном лице и тот, и другой, и еще в других областях тоже отличный специалист.
  • Какие советы может дать по тому как стать пентестером?

    @Vitsliputsli
    Сергей Горностаев, пентестер - такой же человек, как и все остальные. И как любой человек он не может знать все и вся. Он просто проверяет известные уязвимости. Безусловно должно быть хорошая база, но ровна та, которая позволит ему эти уязвимости эксплуатировать, не более того. Нельзя быть специалистом во всем сразу, просто напросто жизни не хватит.
    Поэтому:
    Самое главное - чтобы сломать например Хабр, надо сначала уметь написать Хабр.

    Совсем не обязательно для взлома уметь писать сложный код. К примеру, я знаю, что некоторый неанглийский символ unicode после привидения к нижнему регистру превращается в английский символ в одном или многих языках программирования. Мне достаточно создать свой почтовый ящик, похожий на email жертвы с заменой 1 этого символа, а затем сбросить его пароль на каком-нибудь популярном ресурсе. И если разработчики накосячили (а они это делают очень часто), то ссылка на смену пароля придет мне, а не хозяину.
    И именно знания подобного рода в первую очередь важны для пентестера, а не, например, GRASP.
  • Как работает автосортировка в исходном коде в phpStorm?

    @Vitsliputsli
    Сергей delphinpro, у вас в настройках указано правило только для static методов, поэтому если для динамических чтото и работает, то не эта настройка.
    Т.е. уберете static, то будет "должны сначала идти методы public, потом protected и в конце private".
    По алфавиту он тоже не будет сортировать, т.к. включено keep ordering.
  • Можно ли хранить данные не в БД, а в JSON файле?

    @Vitsliputsli
    Алексей Уколов, спасибо большое, очень интересно.
    Да, внешние ключи первый кандидат на выброс при высокой нагрузке, я их вообще не использую, уж очень они замедляют работу.
    Похоже из-за 1 индекса и небольшой длины строки вам удается вытягивать такое огромное кол-во. У меня примерно те же полтерабайта, но треть миллиарда строк (и где-то полтора десятка индексов), при увеличении кол-ва уже не так все быстро, как хотелось бы, хотя данные партиционированы горизонтально (2 таблицы 1 к 1). Но у меня и требования другие, вставки - это несколько миллисекунд, больше 10мс уже слишком долго. Да и данные не могу отложенно складывать. А с шардированием все очень сложно, не получается выбрать оптимальный параметр по которому шардироваться, т.к. запросы на выборки очень разные.
  • Можно ли хранить данные не в БД, а в JSON файле?

    @Vitsliputsli
    Алексей Уколов,
    У меня на одном проекте есть таблица с ~6 000 000 000 строк, занимающая почти полтерабайта.

    Чисто для интереса, можете, пожалуйста, указать какая СУБД. И, если можно, число индексов.
    Сколько по времени занимает вставка 1 строки?
    Обычно ближе к 1млрд. идет достаточно сильная деградация. Хотя 80 байт на строчку не так много, неаверное благодаря этому нет особых проблем.
  • Почему один запущенный процесс php влияет на второй?

    @Vitsliputsli
    Миша, для демонов нужно использовать systemd unit, а не cron.
    24 в день? там на сервере вообще ничего не работает? а 30к не так уж и много.
    Если же рассматривать вариант с cron, то делайте mutex, если сервер один, то можно файловый. Тогда стартующий по крону скрипт проверяет блокировку на какой-нибудь временный файл и если не может ее установить, то завершается. Но лучше, конечно, через systemd unit.
  • Mysql Хранение в оперативной памяти?

    @Vitsliputsli
    nikolay22323, да без разницы как назвать. А то, что "медленно работает" этот вопрос и надо задавать. Надо искать причину тормозов, а не выдумывать решение на пустом месте. Анализировать запросы. Проверять частоту чтения с диска, проверять что размер buffer pool соответствует объёму оперативки.
  • Почему один запущенный процесс php влияет на второй?

    @Vitsliputsli
    Если в базе есть процесс с меньшим ID и статусом 1, то ждётся 1 секунда

    Это не будет работать, т.к. ID при переполнении начнут назначаться с 1.

    Зачем запускать новые процессы, если требуется постоянно что-то делать? Пусть 1 скрипт постоянно и работает.
  • Как корректно использовать exec() в PHP?

    @Vitsliputsli
    Ответ уже дан, к слову, && - оператор который позволяет выполнить следующую команду, если первая команда была выполнена успешно (успешность определяется по коду возврата). Поэтому, раз следующие не выполняются, значит предыдущие команды не отработали успешно.
  • Как отнять в php одно время от другого, если изначально значения времени являются строками?

    @Vitsliputsli
    Без разницы какой часовой пояс, в любом часовом поясе межу 14:30 и 15:00 полчаса.
    Даже если вдруг где-то в это время переход на летнее/зимнее время, все равно разница не 3:30
  • Как оптимизировать update postgresql?

    @Vitsliputsli
    Почему LEFT JOIN?
    А индекс для client_id?
    А id точно primary key?

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

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

    Не использовать "магические" числа, а использовать константы, и ошибиться не получится.

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

    Алексей Михайлов, в принципе, стоит подумать действительно ли нужны 2 флага. Что будет, если завтра нужно будет добавить еще групп. Удобно ли будет каждый раз выставлять соответствие флага и группы. Вероятно стоит рассмотреть вариант разделения на разные сообщения, для каждой группы отдельно, тогда в сообщении всегда будет только 1 флаг прочтения.
  • PHP Fatal error: Uncaught PDOException?

    @Vitsliputsli
    Судя по ошибке, скорее всего $uid пустой.
    Хотя бы prepared statements используйте.
  • Как правильно организовать работу 2 скриптов с 1 таблицей?

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

    Была идея ставить статус в БД, но что-то мне подсказывает что это не поможет

    не забудьте, что флаг должен выставлять атомарно - одним запросом, либо используйте блокировки select for update или чтото в этом роде, просто делать это в рамках транзакции недостаточно (а на такие заявления часто можно наткнуться).
  • Как правильно организовать работу 2 скриптов с 1 таблицей?

    @Vitsliputsli
    Добавлю, что вариант 1 требует атомарности выставления флага или блокировки записи между селектом и апдейтом. Это самый простой вариант, и проще всего использовать его. Разве что при высокой нагрузке он покажет плохие результаты.
    3 - отличный вариант по производительности, но требует введения механизма деления записей по потокам.
    2 - это по-сути разделение бизнесовых данных и данных обработки, применять можно как к 1, так и к 3 варианту.
  • Будет ли стабильно работать дамб базы данных с mariadb 10.4 в mariadb 10.5?

    @Vitsliputsli
    Обратная совместимость обычно поддерживается, тем более для минорных версий. Но если печетесь о стабильности, то разворачивайте дамп на новой версии и проверяйте.
  • Как же считается "коммерческий опыт"?

    @Vitsliputsli
    Фрилансер - сам себе бигбосс, менеджер проектов, тимлид, миддл и джун. Он привык тащить кучу всего, не относящегося к разработке. В офисе от этого придется отвыкать - а это бывает довольно болезненно - когда ты, весь такой опытный, прекрасно знаешь, что задача А решается способом B, а тимлид говорит, что она должна быть решена способом C - более медленным и затратным, но нужным по каким-то там непонятным соображениям.

    Это не отличие именно фрилансера. Любой специалист может столкнуться с ситуаций, когда тимлид будет требовать решать задачу провальным способом, и опытный пошлет его куда подальше, потому как знает, что получится говно и спрашивать будут с него. Невменяемый тимлид, который не слышит команду - это печально в любом случае.
    Другое дело, если фрилансер уверен, что именно он все знает лучше всех и никакие аргументы не работают, ибо он "звезда", который зашибал огромное бабло, пока неудачники из команды "работали на дядю". Тогда будут проблемы.
  • Не загружается Kali Linux после смены ориентации экрана в настройках?

    @Vitsliputsli
    Yunix,
    Пробовал через терминал поменять ориентацию командой "xrandr -o normal", но выдаёт "Can't open display".

    Разумеется, откуда ему знать какие вы иксы имеете ввиду. Укажите нужный через переменную DISPLAY, если, конечно, не грузится только DE, а не иксы падают.
    Или ищите в настройках DE, где это указывается.
  • Почему PL/SQL не популярен?

    @Vitsliputsli
    nevidimka110011, добавлю, что, там где используют Oracle, как правило активно пользуются PL. Но надо понимать, что это не язык общего назначения, он специализирован на базах данных. Безусловно в него что только не засунули, начиная от отправки почты заканчивая веб-разработкой (для этого потребуется отдельная система APEX - свой вебсервер и фреймворк). Сам Oracle очень дорогое удовольствие, но и специалисты дорогие.
  • Как отправить внешние данные через websocket в Ratchet?

    @Vitsliputsli
    Алексей Коновалов, вам нужно зарегистрировать свою функцию в loop. Читайте доку, там будет чтото вроде event loop.