Задать вопрос
  • Как запушить 2 ветки с изменением одного и того еже файла?

    @Vitsliputsli
    Т.е. создано 2 ветки от ветки develop, в каждой изменен один и тот же файл, так?
    Если так, то в чем вопрос-проблема? Пушить эти ветки можно как и все остальные там нет никаких проблем.
    Вопрос, наверное, в мерже этих веток в develop (хотя об этом не сказано)? Тогда: ветка смерженная первой не создаст проблем, ветка смерженная второй вызовет конфликт, который нужно будет решить.
    Написано
  • Запись только в конец файла?

    @Vitsliputsli
    jcmvbkbc,
    O_APPEND для open(), который гарантирует, что запись всегда происходит в конец файла

    так и есть, никто не спорит.
    Написано
  • Запись только в конец файла?

    @Vitsliputsli
    Но что будет, если после fopen, но до fwrite, другой процесс откроет и изменит файл? Вроде как, указатель в текущем процессе будет там же, где и был, не затрёт ли это запись другого процесса? Или ОС сама "разрулит" это положение?

    Другой процесс это совсем другая история. Указатель существует в рамках открытого потока stream.
    Написано
  • Как в mysql сделать regexp_replace?

    @Vitsliputsli
    Akina, может и так, может по-другому, но это не важно, если like находит, а replace не может заменить, то не важно какое оправдание, это некорректное поведение.
    Написано
  • Как в mysql сделать regexp_replace?

    @Vitsliputsli
    Akina, есть и начало и конец, REGEXP_LIKE("", "$") выдает вполне себе честное 1.
    Проблема именно в REGEXP_REPLACE().
    Написано
  • Как сделать отображение эмодзи в PHP?

    @Vitsliputsli
    Проверьте кодировку в подключении драйвера MySQL. А чтобы не гадать - дебажте.
    Написано
  • Как циклически пройтись по всем столбцам NEW?

    @Vitsliputsli
    Akina, без разницы как их называть, главное что права с повышенными привилегиями на такой машине присутствуют.
    Безопасность подразумевает продумывание всех ситуаций, вопрос только в соразмерности используемой защиты. С физическим доступом проще, можно шифровать раздел. А здесь шифруем все данные, но по отдельности каждую ячейку, это сильное усложнение архитектуры, и такое должно быть оправдано. Если мы не подразумеваем получение рутового доступа взломщиком, зачем вообще шифрование? Не проще ли тогда разделять доступ правами или мандатными метками?
    От какой ситуации все это нас защитит? Ктото получил креды на чтение из бд, но у него нет ключа? А такого скорее всего и не будет, потому что любая передача доступов всегда будет выполняться передачей этих 3х параметров вместо 2х, и если будет "утечка", то утечет все вместе.
    Как по мне, кроме проблем в работе, снижении производительности и чувства ложной безопасности особо ничего не получим.
    Написано
  • Как циклически пройтись по всем столбцам NEW?

    @Vitsliputsli
    Akina,
    вообще пользователю право на DDL незачем

    Если пользователь это машина деплоя, которая накатывает миграции, то нужно

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

    Да, стандартная защита для ключа, это спасет если ключ дискредитирован. Но так как он по прежнему присутствует гдето в БД, то дискредитация СУБД приводит к доступу ко всем данным системы.
    Т.е. привилегированный доступ к любой из 2х машин (СУБД или к клиенту) даст доступ ко всем данным, в отличие от системы где шифрование в сервисе клиенте СУБД, там доступ к СУБД ничего не даст.
    Я просто не вижу ситуации когда следует предпочесть эту схему вместо схемы с шифрованием вне СУБД.
    Написано
  • Как циклически пройтись по всем столбцам NEW?

    @Vitsliputsli
    Akina, поправьте, если я ошибаюсь. В текущей схеме, деплой машина (вернее ее роль) не сможет записать такой триггер (вернее ее процедуру), т.е. создание всех таких секретных объектов будет осуществляться суперпользователем вручную? Или нет?
    Допустим, но все это надо ведь както расшифровывать. Значит клиент будет запрашивать расшифровку и передавать ключ? А если клиент знает ключ, значит то, что мы усиленно оберегали выше бессмысленно и ключ все равно будет лежать гдето на 3ей машине. А раз так, то шифрование на клиенте БД выгоднее, т.к. даже дискредитация данных суперпользователя БД не даст доступа к данным, нет проблем с деплоем любых изменений и шифрование будет проходить в приложении, которое скорее всего проще масштабировать.
    Написано
  • Как убрать вложенный array merge?

    @Vitsliputsli
    redisdev, т.е. это место создает проблему для всего проекта? изза того что эти 3 строчки отрабатывают очень медленно наступает какая то беда? Я к тому, что не решаете проблему, если ее нет.
    Если она есть, то получайте из редиса сразу пачкой, а не отдельными запросами. Если это невозможно, то проверьте, почему array_merge, возможно там не нужно сравнение ключей и переиндексация, т.е. нужен оператор +, или вообще второй массив это массив из 1 значения и достаточно запушить только его. Т.е. нужно анализировать данные которые обрабатываются.
    Написано
  • Как убрать вложенный array merge?

    @Vitsliputsli
    redisdev,

    Код который нуэно улучшить

    А какая цель? Что нужно улучшить? Скорость работы? Использование памяти? Читаемость?
    Написано
  • Как циклически пройтись по всем столбцам NEW?

    @Vitsliputsli
    Akina, да, но несанкционный доступ это больше прав чем должно быть.
    А внедрить шифрование всех столбцов, что есть сильное усложнение и при этом надеяться что взламывать будут только так как планируется так себе идея.
    Написано
  • Как циклически пройтись по всем столбцам NEW?

    @Vitsliputsli
    А смысл такого шифрования? Я так понимаю, это попытка скрыть данные при несанкционированном доступе? Только вот если кто-то получил такой доступ, что мешает ему воспользоваться паролем хранимым в триггере в открытом виде?
    Написано
  • PHP и RabbitMQ ошибка 504 Gateway Time-out в консьюмере?

    @Vitsliputsli
    Виталий Артемьев, в 3ий раз, действительно вероятно автор неправильно использует очередь и скорее всего задача у него другая, но как бы то ни было, это не отменяет того, что написано выше.

    Потому что консьюмеры нужно запускать в режиме демона чтобы он постоянно слушал очередь и при поступлении задачи выполнял её, а если вы запускаете скрипт из веба, то веб сервер будет ждать ответ, и если не получит то сам принудительно завершит соединение. Это базовые вещи и я даже не понимаю почему мне приходится это объяснять.

    Почему обязательно демоном и постоянно слушать?
    А почему он не получит ответ? Дайте ему ответ, тогда все хорошо? А если даже вебсервер не получит ответ от php, скрипт както не так будет работать?
    А если как автор пытается, не постоянно слушать, а забрать только одно сообщение, если оно есть, что тогда?
    Написано
  • PHP и RabbitMQ ошибка 504 Gateway Time-out в консьюмере?

    @Vitsliputsli
    Виталий Артемьев, как уже сказал, вполне может автору не нужно так делать, все зависит от задачи. Но, как бы то ни было, технически работать будет как в cli, так и в fpm.

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

    Если положили и ее же сразу забрали одним и тем же скриптом одномоментно - это странно. Но причем здесь cli или fpm?
    Написано
  • PHP и RabbitMQ ошибка 504 Gateway Time-out в консьюмере?

    @Vitsliputsli
    Виталий Артемьев, кому должен? В большинстве случаев так и делают. Но, если задачи нужно обрабатывать только при обращении к странице, почему бы на странице не получать это задание? Хотя может я и выдумываю, а автор просто ошибся.
    Написано
  • PHP и RabbitMQ ошибка 504 Gateway Time-out в консьюмере?

    @Vitsliputsli
    JastaFly, cli или fpm - без разницы, но как вы сами правильно заметили, скрипт не выходит из цикла, собственно вы его починили, хоть и костыльно. Проверьте документацию, я точно не уверен, но там должно быть чтото вроде этого:
    while ($this->channel->is_consuming()) {
        $this->channel->wait();
    }

    для проверки есть ли активные задачи. И, наверное, также нужно будет у wait выставить timeout сколько ждать новую задачу, иначе при пустой очереди он будет ждать бесконечно.
    Написано
  • Я в РФ, если пройду собес в компанию из РБ, Казахстана и т.д. обязательно ехать туда?

    @Vitsliputsli
    GavriKos, под "разрешением на работу" подразумевается специальный документ, который нужно получить, а не нелегальная работа. Гдето он обязателен, гдето необязателен для иностранцев из определенных стран или с определенным статусом, или работодатель сам подает заявление, или еще по каким причинам.
    Написано
  • Не выходит прибавить нужное значение к переменной в C?

    @Vitsliputsli
    Когда вы прибавляете к указателю на int единицу, он увеличит адрес на длину int, т.е. на 4 байта. Соответственно 0x4400 * 4 = 0х11000
    Написано
  • Я в РФ, если пройду собес в компанию из РБ, Казахстана и т.д. обязательно ехать туда?

    @Vitsliputsli
    CityCat4,

    если под этим подразумеваются недружественные страны - я бы особо на оофер оттуда не рассчитывал


    я имел в виду совершенно четкий и абсолютно официальный перечень

    Т.е. коммерческая организация любой страны мира при выдаче оффера сверяется с российским перечнем "недружественных" стран?
    Написано