Задать вопрос
  • Как установить русский язык в php:8.2-fpm-alpine?

    @Vitsliputsli
    А зачем? Просто интересно
    Написано
  • Какой можно поставить дистрибутив линукс на Thinkpad-e330?

    @Vitsliputsli
    Кот Абсолютный,

    Что я должен знать? Что бубунта лучше генты? Что systemd лучше чем sysv init? Или что-то еще, более сакральное?

    Вообще это был стеб и троллинг. Что ж, троллинг удался, да еще как! Заревом пылающего тухеса пожалуй дорогу можно вместо фораней освещать...

    Поздравляю вас дяденька, соврамши! Откуда такое сакральное знание? Брателло, ты уверен, что я никогда ничего не собирал? Как доказывать будешь?

    А чего ты так расходишься? Когда ты делал выводы ничего не зная обо мне, тебя ничего не смущало. А когда с тобой так обошлись, кричишь "а доказательства!". Так что, смотри на себя в первую очередь, и, научись не хамить людям.
    Троллинг? Да какой там, обычное хамство и тупые издевки, чтобы потешить свое чсв, профессионально самореализоваться чтоли не получается?
    Удачный? Тоже нет, удачный это когда жертва упорно доказывает, обычно какую-нибудь глупость, но не может осознать этого из-за психологических установок. Как-нибудь покажу.


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

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

    А мир откуда изначально взялся? Ты об этом не думал?
    Отличный аргумент. Зачем чтобы комп работал для тебя, это ты должен работать на него. Ну да ладно, так и зачем автору вопроса Gentoo? Ах да, "перформанс", он же прям увеличивается в разы производительность компа, когда комп постоянно чтото собирает. Гениально.


    Ой, правда? Статья написанная незнакомым мне чуваком (писал ее не я, еслиф че - меня на "большом" хабре нет и не будет до тех пор, пока там сборище... людей с определенными убеждениями) пять лет назад, в этом помогла? Ух ты... Что ж, спасибо, рекомендовать буду :DDD

    Я и не говорю, что ты. Ты опять ничего не понял и начал расходиться.


    Это проблемы автора :) Возможно он считает, что другие считают, что линуксоид = девственник. Я бы охотно поспорил с ним и доказал обратное (но себя хвалить неудобно). Это действительно слабый пассаж, уверенный в себе человек ничего никому не доказывает :)

    А вот про это я и говорил. Зачем-то, на пустом месте, он там доказывает, ты здесь... Что у вас за общая больная тема?
    "Себя хвалить неудобно", "доказал обратное"?! Тебе что 18 лет?


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

    Как я и писал, самый важный момент, что Gentoo здесь совсем не при чем.


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

    И вот к чему было все хамство выше, если потом соглашаешься? Ах, да, хамство с троллингом перепутал...
    Написано
  • Какой можно поставить дистрибутив линукс на Thinkpad-e330?

    @Vitsliputsli
    Кот Абсолютный, я сподвигся, прочитал стать по ссылке "некоторые" (https://habr.com/ru/articles/525154/). Спасибо большое, я стал лучше понимать кто ты.

    Дмитрий прочитайте статью, прям живой пример, когда Gentoo можно найти на домашней системе.

    Сперва шедевральная цитата:
    Я не чувствую себя задротистым красноглазиком. У меня есть Tinder и я встречаюсь с девочками. Им я стараюсь не рассказывать о своей любви. Система просто работает. Я чуть лучше разобрался в GNU/Linux.

    Это основной аргумент: "оно работает, я его люблю". А "я встречаюсь с девочками" меня прям умиляет, ему, кстати, было 30 годиков на момент написания. Ктото спросит ну какая разница какая у автора сексуальная жизнь? И я про тоже, какая разница? Что его сподвигло в описании работы с Gentoo доказывать кому-то, что он не девственник. Это провал, Штирлиц.
    По делу текста много, смысла мало. Перешел типа потому, что требуются прям новые-новые версии пакетов, но обновляется не чаще раз в месяц (из-за понятных проблем дистрибутива), и то с его слов. "Зачем мне Arch? Gentoo дает перформанс" - собрал свое ядро, стандартно вырезав из него лишнее, радуется что оно маленькое и быстрое (что значит маленькое неизвестно, по сравнению с Ubuntu понятное дело маленькое), ну а отключенные модули неиспользуемого оборудования на производительность не повлияют, они и так не будут загружены. Тайлинговый i3 вместо классической DE и т.д. Что мешало сделать тоже самое на другом дистрибутиве, том же упомянутом Arch - неизвестно. Скорее всего то, что автору неизвестно, что так можно.
    В общем, если у вас нет жены, детей, друзей и нечем заняться, можно установить Gentoo. А возможно и в обратном порядке.
    Написано
  • Какой можно поставить дистрибутив линукс на Thinkpad-e330?

    @Vitsliputsli
    Дмитрий, полезно, и очень интересно. Но не для автора. Его цель не в изучении дистрибутивов GNU Linux, а работать, и так, чтобы было лучше, чем в Windows. Из перечисленного только Slaсkware мог бы подойти, но явно автору нужно что-то более дружелюбное.
    И даже если бы автор был готов разобраться в каком-то дистрибутиве и тратить на это время, то все равно не Gentoo, и не LFS. Не LFS, просто потому что это не дистрибутив, тут вообще фокус смещается от понимания дистрибутива на то, как собирать дистрибутивы. Не Gentoo, потому что он не предназначен для домашнего использования в 2025. Для неизменяемых встраиваемых систем возможно, для академического интереса - да, но дома, постоянно собирать все из исходников - это бред, даже Gentoo это понимает и пытается выкручиваться, но тогда зачем он. А вера в то, что легко и непринужденно соберешь систему лучше дистрибутивной наивна. На современных машинах выигрыш от такой сборки минимален и это при учете, что ты очень хорошо понимаешь, что делаешь. Но, остаются понтовщики, с гопарскими замашками "ты просто не осилил", сами они, конечно, ничего не собирали, а только читали, иначе бы знали какой это бессмысленно длительный процесс. Спросите у гентушника сколько собирается мир и он обязательно соврет, т.к. это даже стыдно сказать. Кто не знает как это, но пользуется Arch, может помнить, как одно время в Arch qt собирался из исходников, это занимало несколько часов, и это только qt, и так каждое мелкое обновление.
    Написано
  • Какой можно поставить дистрибутив линукс на Thinkpad-e330?

    @Vitsliputsli
    Кот Абсолютный,

    Нравятся мне такие ответы... Чилавег ниасилил генту - и говорит, что он никому не нужен. Но некоторые считают, что чилавег неправ :) (я так считаю тоже, но обычно своего мнения не навязываю)

    Ну и ЕДА, конечно же :)

    "Неосилил" это потому что не согласен с твоими заявлениями? Т.е. ничего не зная ты тупо ляпнул, да еще и мнение не навязываешь? Хотя... тут каждый второй всех кругом дураками считает.
    Ну что ж, тогда потрудись объяснить, зачем автору вопроса Gentoo?
    Написано
  • Какой можно поставить дистрибутив линукс на Thinkpad-e330?

    @Vitsliputsli
    Дмитрий, а в чем польза то? обычное издевательство, автор пишет что не осилил установку Debian, а в Ubuntu проблемы, которые не может решить, а ему советуют, как схватить еще больше проблем. И, конечно, же советуют только на основе 2 слов "надежные" и "хорошие". Чем они надежнее вообще неизвестно. А хорошие... Gentoo, который практически никому не нужен, и уж точно для домашнего использования, ну разве что понтоваться. Slackware, который много лет не мог осилить контроль зависимостей и утверждал, что это фича. Ну а LFS вообще не дистрибутив.
    Написано
  • Как использовать docker secrets в bash скриптах?

    @Vitsliputsli
    Hardoman,
    Нет смысла защищать секреты внутри контейнеров, как уже было сказано, если есть доступ к контейнеру, их в любом случае раскроют

    А если установить пользователя в контейнере не root, а секрет лежит в директории root без доступа для чтения?
    Написано
  • Имеет ли смысл реализация REST API через RabbitMQ?

    @Vitsliputsli
    Borisawa, архитектура вещь сложная, любой архитектор всегда смотрит субъективно, поэтому хорошая практика обсуждение архитектуры между несколькими лицами. Мое мнение не важно, смотрите на саму информацию и на сколько она вам подходит. Ну т.е. для 1 небольшой очереди действительно может быть избыточным, но вдруг это только первый шаг и у вас там глобальные планы по расширению проекта, тогда разумеется стоит сразу закладываться на более сложное, но универсальное решение.
    Написано
  • Имеет ли смысл реализация REST API через RabbitMQ?

    @Vitsliputsli
    Borisawa,

    Vitsliputsli, в принципе, всё что вы сказали коррелирует с тем, как мы хотим организоваться. Тогда подитожу:
    1) Клиент шлёт запрос через API-шлюз, запрос попадает в FastAPI-приложение;
    2) Приложение назначает запросу id и размещает его как сообщение в заранее объявленной durable-очереди RabbitMQ и ждет по нему ответа;
    3) Сервис-обработчик прослушивает эту очередь, скачивает сообщение, работает с ним, а затем отправляет json с данными и кодом ответа;
    4) Приложение обнаруживает, что сообщение обработалось и возвращает клиенту его содержимое;
    5) Если всё завершилось ожидаемым сценарием, приложение закрывает сообщение с флагом "ack".
    Сейчас у меня такая картина шины данных с брокером. Надеюсь, у вас тоже.

    В принципе да, вы описали вариант простой очереди, т.е. у вас очередь заданий, и воркер(ы) которые эту очередь разбирают. Для такого варианта я скорее всего не стал бы подключать брокер (если его в архитектуре не было), а реализовал бы очередь в БД (по уже названным причинам, лишняя точка отказа и т.д.).
    Но, если в п.3 сервис-обработчик не один (не в смысле 1 масштабирован в несколько, а в смысле обработчики осуществляющие разную бизнес-работу), т.е. обработчик сделал свое и отправил следующему, следующий дальше и т.д. Т.е. когда не 1 очередь, а пересылка между разными сервисами, тогда нужен брокер.
    Написано
  • Имеет ли смысл реализация REST API через RabbitMQ?

    @Vitsliputsli
    Borisawa,
    сейчас почти все сервисы работают как прямые интеграции, т.е. креды прописаны в каждом сервисе и запись напрямую в боевые БД.

    А с шиной они будут общаться только с ней, соответственно конфигурировать проще, и независимость сервисов выше. А если все сервисы общаются со всеми, и их много, то это еще больше склоняет чашу в сторону общей шины.

    Правильно ли я вас понимаю - задача в том, чтобы назначить условный id (например либой uuid) сообщению (которое является post / get запросом клиента), а после этого "скачать" результат исполнения этой очереди и отдать его клиенту? В таком случае http-соединение не порвётся, так? Чувствуется, что время ожидания вырастет, но врядли это критично, если данные станут реально персистентны.

    Да, типа того. Прям подробно не скажу, нет сейчас под рукой такой системы, но логично что процесс, который принял запрос, размещая его в брокере указывает себя как отправителя. И когда сообщение будет обработано всеми необходимыми сервисами, конечное сообщение будет в адресате иметь этот адрес отправителя (да, какойто условный id).
    Т.е. пока идет обработка, процесс работающий с http висит на связи с брокером и ждет предназначенное ему сообщение. Нет никаких причин соединению отваливаться, разве что по таймауту, но это вопрос скорости работы сервисов.
    Время ожидания вырастет, но вряд ли критично, можете сами прикинуть, на основе кол-ва пересылок (т.е. кол-ва сервисов) и сетевого лага между ними. Если они в одном ДЦ, то это немного. Затраты накладные на брокер тоже будут небольшие. Другое дело, что брокер будет обрабатывать весь трафик, и там должна быть достаточная машина. Это может быть проблемой, если трафик очень большой.
    И еще, обратите внимание на момент, как будете управлять сообщениями, т.е. хореография или оркестрация. Этот выбор потом поменять очень сложно, поэтому выбирать нужно ответственно.
    Написано
  • Имеет ли смысл реализация REST API через RabbitMQ?

    @Vitsliputsli
    сергей кузьмин,
    Vitsliputsli, Это будет точкой отказа для всех сервисов
    it is common practice for an API Gateway to be load balanced, although the API Gateway itself can sometimes provide some basic load balancing capabilities for backend services.

    Можно подробнее. А то непонятно причем здесь балансировка API Gateway.
    Написано
  • Имеет ли смысл реализация REST API через RabbitMQ?

    @Vitsliputsli
    1) Это будет точкой отказа для всех сервисов;
    2) Нельзя реализовать ответ для http-запроса, ведь брокер разделяет процесс и не предназначен для синхронных запросов (так мне кажется).

    1) разумеется, но другие плюсы могут перевешивать этот минус.
    2) почему нет? типичная схема: клиент отправляет запрос по http и ждет, сервер валидирует запрос и кидает сообщение в брокер, оно там многократно крутится по разным сервисам, затем формируется сообщение для сервера работающего с http, он его забирает и формирует ответ по http.

    Мой вопрос: следует ли реализовывать передачу данных по REST API через RabbitMQ в данном случае?

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

    @Vitsliputsli
    nata32,
    неправильно потому что при таком варианте выдается количество правильно а дальше только один товар

    В sql обычно запрос кол-ва строк и запрос самих этих строк выполняется отдельно.
    Если данные забирает приложение, то можно просто забрать данные и посчитать кол-во строк уже в нем.
    Написано
  • Как подсчитать количество строк в sql запросе?

    @Vitsliputsli
    nata32,
    SELECT DISTINCT COUNT(p.text)

    SELECT COUNT(DISTINCT p.text)

    Лучше всего вопросы задавать как тейст-кейсы: делаю вот это, ожидаю получить вот это, а получаю вот это. Фраза "работает неправильно" бесполезна, без указания что есть правильно.
    Что касается "черновика" дело не только в sql-инъекциях, по запросу абсолютно непонятно что это, почему в полях с названием text лежат id, что такое id для координат, почему count это sum и т.д. А соответственно нельзя решить каким действительно должен быть запрос. Ну а если это неважно, то лучше убрать все лишнее и оставить только то, что касается вопроса.
    Написано
  • Почему opensearch создает кучу процессов?

    @Vitsliputsli
    Вроде и не критично, но непонятно зачем
    Можно это исправить?

    Не стоит "исправлять" что либо, что существует "непонятно зачем". Тем более, если нет объективных причин (некрасивая картинка - это не объективная причина).
    Если все равно хочется, то посмотрите настройки thread_pool, во всяком случае в Эластике там настраивается.
    Написано
  • Как обработать 2 одновременных запроса со стороннего сервера?

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

    Как оказалось что если отдать ему по второму запросу не 200 ОК, то сервер клиента обрубает оба соединения и не ждет когда я отдам по первому запросу данные

    Поэтому логичнее было бы сделать обычное кеширование - класть в redis (а можно вообще взять shared variables и не нужна тогда никакая БД) результат работы внутреннего запроса. Т.е. второй запрос видит, что ключ создан - значит запрос уже выполняется, но значение пустое, значит второй ждет пока значение не будет перезаписано. В итоге, на все дублирующие запросы будет отправлен валидный ответ, а внутренний запрос всего один.
    Написано
  • Как улучшить код?

    @Vitsliputsli
    pLavrenov,

    Vitsliputsli, надо не изменять исходные данные а подготавливать новые. и $data вообще не должен быть массивом а обьектом реквеста, сейчас data абсолютно не контролируемый массив

    Уж точно не объектом реквеста. Реквест и данные модели Post в бд вещи разные.
    Но здесь оперирование не объектами, и изменяются не данные реквеста или данные отправленные на сохранение, изменяются некие внутренние данные метода (у них даже название без смысла). Понятно когда нельзя изменять объект для какихто внутренних манипуляция приводя искомый объект в невалидное состояние. Но здесь то чисто внутренние данные, как раз для такого использования. Зачем здесь тратить память?
    Написано
  • Как улучшить код?

    @Vitsliputsli
    fasewyby,

    DbExeption пишет в логи и уведомляет юзера о проблемах с БД

    Тем более стоит подумать о single responsibility. Манипуляции с данными в бд и уведомление пользователя прям разные вещи, я бы держал их в разных местах.

    В $image либо путь к картинке либо null

    Понятно, что там чтото есть, но в сравнении этого не видно. Меньше неявных преобразований - проще читать и меньше ошибок. Т.е. фраза
    is_null($image)
    Однозначна, проверяем тип, null или нет.
    Фраза $image это сокращение от (bool)$image, т.е. чтобы ни было в переменной это кастанули в bool, т.е. null, пустая строка, 0 или может что еще, причем сразу ощущение что вероятно не все из этого подразумевалось.
    Написано
  • Как улучшить код?

    @Vitsliputsli
    5) Вместо unset -> Arr::only

    Почему нужно использовать этот хелпер? С учетом, что автору нужно удалить, а не забрать 1 ключ из массива.
    Написано
  • Как улучшить код?

    @Vitsliputsli
    tukreb,
    Да не показатель, ведь именно Ларавел хвастается тем, что может запустить сайт 1 строчкой, тем самым позволяя гавнокодить по полной.
    Симофни же отобьёт руки так, что гавнокодить придётся сломанными руками.

    Да без разницы, кто чем хвастается. Все прекрасно знают, что Симфони это другой уровень. Но, работают обычно с тем что есть и редко можно взять и все поменять, так что претензии к Ларе не в огород автора вопроса.
    Написано