Задать вопрос
  • Как корректно использовать 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.
  • Как отправить внешние данные через websocket в Ratchet?

    @Vitsliputsli
    А что не получается? Проверяйте, отправляйте.
    В ReactPHP есть возможность зарегистрировать функции для асинхронного выполнения с указанием интервала проверки. Используйте этот функционал.
  • Где правильнее в БД разместить статусы заказа?

    @Vitsliputsli
    weranda,
    о каких именно перекрестных ссылках вы пишите

    order_worker_statuses.order_id -> orders.id
    orders.order_worker_status_id -> order_worker_statuses.id
    Таблицы связаны перекрестно друг с другом. Непонятно зачем нужны такие связи.
  • Где правильнее в БД разместить статусы заказа?

    @Vitsliputsli
    weranda, первая схема выглядит ошибочной, перекрестные ссылки - это ужас. И зачем разбивать связь один к одному на 2 таблицы? Для этого должно быть какое-то обоснование, не вижу такой необходимости.
    Из вашего описания статусы должны выглядеть так:
    Новый
    В работе
    Проверка менеджером
    Проверка руководителем
    Готово
    По этим статусам заказ идет последовательно. Плюс статусы для нестандартных ситуаций, например "Брак".
    В этом случае у заказа всегда будет только 1 статус. В вашем варианте, для проверок нужно будет делать подстатусы, а значит дополнительные условия в коде, и усложнение всего workflow.
  • Что делать человеку, желающему связать жизнь с Информацинной Безопасностью?

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

    @Vitsliputsli
    Sinus_314, толстые контроллеры - это не антипатерн, это ошибка при использовании MVC. Просто потому, что это рушит весь смысл MVC. И да, вы можете не использовать MVC, и когда пользовательские запросы приходят одинаково, обработка их одинакова, а вывод тоже всегда один и тот же, то проблем не будет.
  • CICD - Jenkins pipeline. Как в случае фейла пайплайна - заблокировать возможность мержа feature ветки в основную ветку?

    @Vitsliputsli
    Yurii Diduk, я больше не про технологии, а про процесс CD, как он проходит, что и как делается, что автоматически, что нет. Что делает указанный пайплайн и т.п.
    Прочитать можно в доке GitHub. Сейчас глянул туда, вероятно лучше это реализовать через status checks. Вероятно - потому как все равно не понятно, что конкретно делает пайплайн и какое у него место в деплое.