Задать вопрос
  • Как организовать отправку сообщений в множество микросервисных нод?

    Берете какой-нибудь брокер сообщений.
    Например, Rabbitmq.
    Там создаёте exchange с типом fanout. Туда будете слать сообщения из сервиса-отправителя.
    Каждый сервис-получатель будет подключаться к этому exchange и для каждого будет создаваться своя очередь, куда будут попадать все сообщения. И каждый сервис спокойно сам вычитает свою очередь. И даже если он упадёт, то дочитает их после того, как подымется.
    https://youtu.be/P_EtQ-s-hiU?si=tavSDSzTnGpqQrAY
    Ответ написан
    2 комментария
  • Можно ли в одном микросервисе использовать Postgres и MongoDB?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Технически можно, но вряд ли нужно.
    Ответ написан
    5 комментариев
  • Как в linix manjaro сделать новую версию python основным?

    @Everything_is_bad
    Уже 100500 сказано, не нужно менять системный python, всегда можно поставить ставить кучу версий, и явно, при запуске указывать какую хочешь. Повторю еще раз, не трогай системный python и его библиотеки, почитай про venv
    Ответ написан
    6 комментариев
  • Как исправить ошибку sqlite3?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Ты создаешь таблицу со столбцами login и password, но потом зачем-то создаешь подготовленный select со столбцами q, w и name: во-первых их нет в таблице (ты их не создавал), во-вторых ты не проверяешь результат выполнения sqlite3_prepare_v2.
    Вот и получается, что во 2 sqlite3_exec (insert) ты получаешь ошибку не insert запроса, а prepare

    - Либо исправляй этот запрос + добавляй проверки на prepare
    - Либо удали этот prepare, т.к. нигде не используешь (в этом коде)
    Ответ написан
  • Какими системами управления, мониторинга кинооборудования пользуются кинотеатры?

    @dmshar
    Непонятно, кто вы такой (по должности), если сами решили "взять все в свои руки" в каком-то абстрактном кинотеатре, который есть в вашем городе. И непонятно кто те "они", которые "они отказываются говорить, каким именно ПО они пользуются". Поэтому предложения следующие:
    1. Пытать этих самых "они", с применением современных средств физического воздействия.
    2. Прочитать, что написано на сайте, адрес которого вы привели: "Впервые наша система мониторинга заработала в 2015 году. С тех пор она притерпела огромное количество изменений, приобрела множество нового функционал......
    Мы вложили в систему огромный опыт работы с кинооборудованием, ..... А также все знания сертифицированных инженеров цифрового кинопоказа.
    ." Подумать, где и как вы можете приобрести не просто аналогичные знания и умения, но и передать их тем разработчикам ПО, которые будут реализовать некоторый аналог для вас. Ситуация упрощается тем, что удаленный сетевой мониторинг вам делать вроде бы не надо - кинотеатр уже у вас в руках, на оборудование можно посмотреть и потрогать его руками - т.е. вполне сгодиться локальное решение.
    3. Внимательно прочитать информацию, которая приведена на сайте (и возможно в документации, которая сопровождала используемое решение), использовать ее в качестве подсказки при написании ТЗ на свою систему.
    4. Нанять разработчиков, заплатить им денег.
    5. Не забыть приковать их цепями к вашему проекционному оборудованию, а то и эти от вас сбегут - потом придется все начинать с начала.
    Ответ написан
    Комментировать
  • Как организовать виртуальное окружение внутри образа Docker для Python?

    bestuzheff
    @bestuzheff
    Программист 1С
    А зачем вообще внутри контейнера делать virtual environments?
    Ты взял образ python:3.9-alpine, т.е. у тебя внутри уже стоит python.
    Потом
    WORKDIR /app
    Копируем requirements.txt в папку /app
    COPY requirements.txt requirements.txt
    Устанавливаем пакеты
    RUN pip3 install -r requirements.txt

    Потом копируем все стальное что нужно в папку /app
    И потом запуск CMD
    Ответ написан
    2 комментария
  • Можно ли так решить задачу "камень-ножницы-бумага"?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1.Зачем вы два раза запрашиваете ввод числа? Просто сделайте бесконечный цикл а для выхода используйте проверку на соответствие данных.
    2.Проверку ввода можно свести к двум вариантам:
    а. Введенное число удовлетворяет требованием.
    б. Оно не удовлетворяет
    Для проверки можно использовать два подхода: конструкция match case и оператор in.
    Хотя, на мой взгляд, вариант с match тут чуть более уместен с точки зрения семантики.
    3.Зачем вы вводите название "жестов" и потом добавляете "прослойку" для сравнения чисел? Эти названия все-равно нигде не фигурируют, не лучше ли сравнивать сразу цифры?
    По поводу остального уже ответили.
    Ответ написан
    Комментировать
  • Существует ли тип данных List или Array в MySQL?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Разумеется, существует.
    Тип данных List или Array в реляционной базе данных - это связанная таблица.

    Соответственно, inventory - это просто таблица из двух полей, id игрока и id скина
    Ответ написан
    Комментировать
  • Как написать или найти скрипт для мониторинга серверов?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Zabbix.
    Бесплатен. Может мониторить вообще всё, и извещать о проблемах. Может выполнять нужные команды/скрипты на серверах. Слегка монструозен для 1-2-3-х серверов, но тут уж ничего не поделать. Активно разрабатывается и улучшается.
    Ответ написан
    Комментировать
  • Как сохранять файлы из репозитория на сервер?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Могу их изменять/удалять/редактировать

    Вы создаёте коммиты прямо в веб-интерфейсе гитлаба? Лучше конечно забрать репозиторий к себе на рабочий компьютер и работать с файлами локально.

    если я изменил главную ветку, то чтобы данные изменялись на сервере

    git pull заберет изменения с гитлаба и применит их к рабочему каталогу.

    Если нужно чтобы гитлаб сам автоматически публиковал изменения на сервер, то изучайте GitLab CI/CD. При этом разработку в любом случае желательно вести на рабочем компьютере, а не править файлы сразу на гитлабе.
    Ответ написан
    Комментировать
  • Как поставить условие, при невыполнении которого удаляется запись в бд через n-ое время?

    @rPman
    Попробуй переверни логику по другому:
    Не удалять 'по крону' запись, а при чтении из базы выводить только те записи, которые удовлетворяют условию - запись не старее 24h и email_status!=0
    Само же удаление производить когда-нибудь потом, время выбирать уже тебе и разово для всей базы а не для одной записи.
    Ответ написан
    9 комментариев
  • Как написать красивый и понятный код?

    snaiper04ek
    @snaiper04ek
    Не стреляйте в эникея, он админит как умеет
    Красивый и понятный код = читаемый код.
    Нагугли что такое самодокументирующийся код.

    Я сам начинающий, но с чего бы я начал это распутывать:
    area[0][0]["text"] - тут у тебя куча раз написано примерно одно и то же, меняется только 2 числа.
    Легчайшим образом переносится в функцию:
    def x_here(x,y):
        if area[x][y][text] == X:
            return True
        else:
            return False


    тогда одна строка в winner() уже будет вот так выглядеть:

    if x_here(0,0) and x_here(0,1) and x_here(0,2):
        return "X"


    тут у тебя снова есть повторяющиеся элементы
    во-первых, координаты для победы заранее известны
    win_condition_topleft_to_botright = ((0,0),(0,1),(0,2))

    у нас есть кортеж с кортежами. Если в этих координатах везде окажутся иксы - нужно вернуть X (победа). У этого кортежа понятное название (слева вверху к низу справа)

    далее нам нужна функция которая примет это условие победы и проверит его:
    def check_win_condition(first, second, third):  
        """на вход три кортежа, являющиеся координатами игрового поля"""
    
        if x_here(*first) and x_here(*second) and x_here(*third):
            return "X"
    
    def winner():
        check_win_condition(*win_condition_topleft_to_botright)
        check_win_condition(*win_condition_2)
        check_win_condition(*win_condition_3)
        check_win_condition(*win_condition_4)


    И... видишь повторяющиеся элементы? 4 одинаковые строки, в которых меняется только один параметр?
    Ah shit, here we go again

    Ты знаешь что делать. Действуй.
    Ответ написан
    1 комментарий
  • Какое железо лучше для нагруженного веб-сервера?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Для нагруженных сервисов железо не так важно, важна архитектура.
    Железо - это вертикальное масштабирование и оно всегда имеет ограничения, с которыми все сталкиваются через полгод-год-два. Впрочем, этот твой вопрос тому доказательство.
    Надо делать упор на горизонтальное масштабирование, чтобы не зависеть от характеристик железа.
    Другими словами, должно быть много недорогих (слабых) серверов, а не один дорогой и мощный.
    Лично мне такой подход позволяет держать нагрузку ~24000 запросов в секунду на десяти дешёвых серверах.
    Если нагрузка возрастёт, то я куплю ещё 2-5-10 дешёвых серверов вместо того, чтобы думать о характеристиках железа
    Ответ написан
    Комментировать
  • Как в новом потоке запустить асинхронную функцию?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Есть не предположение, а уверенность, что смешивать многопоточность с асинхронностью - плохая идея и не нужно почти никогда.
    Ответ написан
    3 комментария
  • SELECT если есть в стоблце?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега PostgreSQL
    Седой и строгий
    Вам нужно прочитать, почему реляционные базы называются реляционными, и что такое нормальные формы.
    Ответ написан
    4 комментария
  • Как правильно организовать техническую часть для реализации VoIP телефонии в организации?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    1. Можно и через астериск, можно и напрямую через виртуалку манго, в случае астера можно напрямую у разных провайдеров закупать транки для экономии.
    2. с телефонами на астере не принципиально
    3. POE свич полезен если по пое на нем используется более половины портов, также дает плюс централизованного питания и возможность подключения всего клубка к бесперебойнику. Телефоны с б/п обычно обходятся дешевле покупки poe свича, но есть и некоторые минусы
    4. к точкам телефоны лучше не подключать
    Ответ написан
    2 комментария
  • Как настроить автоподдомены в Kubernetes?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ну никак.
    На какое приложение будут смотреть эти домены?
    Ответ написан
    1 комментарий
  • Как расставить точки над i, по вопросу использованию Bash и Python для DevOps?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вы не годитесь в девопсы.
    Это очень частый ответ на этот очень частый вопрос.

    Девопс - это человек, который не задаёт вопросы. Он на них отвечает. Самостоятельность является для девопса одним из ключевых навыков. У вас он отсутствует.
    И это совершенно точно человек, которого НЕ пугает прочтение 326 страниц мануала.
    Девопсу приходится читать примерно в сто раз больше документации. В год. Подумайте хорошенько, а надо ли оно вам, если перспектива выучить даже самые примитивные основы вас пугает настолько, что вы пришли на тостер поторговаться?

    В девопс, как и в инфосек, очень редко можно войти с нуля.
    Надо начинать либо сисадмином (не эникейщиком), либо программистом (не вордпресс).
    И потом, уже развившись как программист/сисадмин, можно подумать о движении в сторону девопса.
    Ответ написан
    2 комментария
  • Какая альтернатива replace есть в python?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Это плохая идея.
    Такой подход будет вырезать нормальные слова типа "подстрахуй", "застрахуйся", "стебать", "выгребать" и пр
    Ответ написан
    Комментировать
  • Как получать уведомления RoundcubeWebmail?

    suffix_ixbt
    @suffix_ixbt
    https://www.babai.ru/
    А добавить к postfix dovecot и спокойно получать по IMAP почту в любом клиенте почтовом что в windows что в android не хотите ?
    Ответ написан
    6 комментариев