Задать вопрос
  • Контейнер rabbitmq docker стартует раньше чем сервис nginx. Как указать согласованность запуска?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    depends_on + healthcheck в docker-compose. Просто depends_on недостаточно - нужно проверять работоспособность сервиса, а не просто что контейнер запустился.
    Ответ написан
    Комментировать
  • Контейнер rabbitmq docker стартует раньше чем сервис nginx. Как указать согласованность запуска?

    @Zerg89
    Насколько помню если нужно согласовать несколько контейееров то это docker-compose
    И в нем должно быть что-то типа такого
    celery:
       depends_on:
         - rabbitmq # старт после старта контейнера rabbitmq
       command: sh -c './wait-for host:5432 -- cmd' # ожидаем
    Ответ написан
    4 комментария
  • Как разместить приложение в Google Play?

    @AlexVWill
    Мне однажды рассматривали приложение два месяца. Интервалами по 1-2 недели, отклоняли его, потому что оно в чем то не соответствует, я исправлял и подавал снова. В итоге одобрили.
    Ответ написан
    2 комментария
  • Pycharm для старенького мака?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    Или есть другие простые варианты?
    Сам я просто не программист, пробую изучать Python на досуге, нравится как хобби ...


    Поставьте VSCode
    Ответ написан
    7 комментариев
  • Как анализировать рынок IT, чтобы помочь ребенку с выбором направления?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    В этом возрасте направление надо выбирать интересное, а не востребованное, и быть готовым к тому, что интерес может меняться каждые несколько месяцев.
    Ответ написан
    3 комментария
  • ChatGPT генерация естественных комментариев / как оживить сайт?

    100% бан поисковых систем за манипуляции с действиями пользователей
    Ответ написан
    Комментировать
  • Какие pet проекты востребованы в резюме?

    @Araya
    Какие pet проекты востребованы в резюме?

    Законченные
    Ответ написан
    Комментировать
  • Ретранслятор для управления дроном через интернет?

    @rPman
    Проблема у тебя возникнет гораздо раньше - на аппаратном уровне (до выбора протокола).

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

    Но если прямо очень очень надо и есть время и деньги на эту возню, то:

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

    - изменить методику управления, реализовав по максимуму автопилот
    дрон должен сам летать, держать курс, обходить (или хотя бы останавливаться) препятствия, справляться с длительной потерей сигнала и т.п.
    Т.е. ты не управляешь креном и высотой, а говоришь куда и с какой скоростью лететь и главное? что делать, если по таймауту не получит следующий сигнал.

    - подумать о легальности процесса, в россии (да я думаю так или иначе везде) кажется без разрешения такого типа дроны запрещены, детские игрушки пускать можно только в прямой видимости и только на небольшой высоте (есть карты разрешений, на каких высотах где можно а где нельзя, на сколько я помню там очень много мест 'нельзя')
    Ответ написан
    2 комментария
  • Как принять донат из Китая?

    вичат и тебе переоводит на вичат или алипей
    Ответ написан
    Комментировать
  • Как правильно спроектировать эту функцию?

    Vindicar
    @Vindicar
    RTFM!
    Ты неверно понимаешь, как работает overload. Это тупо подсказка для IDE - "эту функцию можно вызывать вот так, и она вернёт вот это, или же вот этак, и она вернёт вон то". Тело функции, завёрнутой в overload, игнорируется. А последнее объявление функции не должно иметь overload, и оно как раз и будет реализовывать все варианты. Так что итоговая реализация всё равно будет иметь if внутри. Да и в твоём случае overload никчему, так как другие-то параметры не отличаются.

    Ты мог бы, конечно, упороться, и сделать functools.singledispatch - при условии, что ты message переставишь первым параметром. Но, имхо, в этом нет практической необходимости, всё это делается в разы проще.

    async def show_cpanel(
        state: FSMContext,
        message_source: typing.Union[Message, CallbackQuery]  # значение одного из двух типов, но обязательное!
    ) -> None:
        '''
        Send control panel to current user
        '''
        this_user = message_source.from_user.id  # и Message, и CallbackQuery имеют from_user
        message = message if isinstance(message_source, Message) else message_source.message
    
        profile_is_visible = await req.check_profile_visible(this_user)
        message_id = (await message.answer(
            '<b>' + _('Панель управления') + '</b>',
            parse_mode='HTML',
            reply_markup=kb.control_panel(profile_visible=profile_is_visible)
        )).message_id
        await state.update_data(cpanel_message_id=message_id)
        logger.info(f'Admin #{this_user} opened control panel')

    Вот и всё. Твой вариант
    callback_query: Optional[CallbackQuery] = None,
        message: Optional[Message] = None,

    плох тем, что из него совершенно не очевидно, что хотя бы один из параметров не должен быть None.

    EDIT: Хотя я не вполне понял идею насчёт callback.message. Если я верно помню, этот атрибут хранит ссылку на сообщение от бота, содержащее кнопку, для которой был вызван callback. Поэтому его from_user по идее будет заведомо указывать на бота. Так что да, лучше последуй совету Everything_is_bad и переделай функцию так, чтобы она принимала пользователя и сообщение отдельными параметрами. А их значения определяй там, где ты функцию вызываешь.
    Ответ написан
    5 комментариев
  • Как правильно спроектировать эту функцию?

    @Everything_is_bad
    оба варианты неправильные (а второй вообще с тупой копипастой), а надо всего лишь вот это кусок
    if callback_query:
            this_user = callback_query.from_user.id
            message = message or callback_query.message
        else:
            this_user = message.from_user.id

    определять перед функцией, точнее выявлять message и передавать его в саму функцию, юзер же уже есть в этом message у CallbackQuery, да?
    Ответ написан
    1 комментарий
  • Как грамотно изначально сделать телеграмм бота на Python с помощью aiogram чтобы выдерживал как минимум 10к пользователи и можно было масштабировать?

    Daemon23RUS
    @Daemon23RUS
    Я знаю что нужно использовать библиотеку aiogram Для лучшей производительности. А также использовать для прода вебхуки, nginx, docker, redis ...... У меня есть vps сервер с 2 ядрами CPU, 2 GB RAM, 20gb

    1) Снять розовые очки.
    2) Посмотреть на задачу в свете отсутствия розовых очков.
    3) 10к пользователей в секунду ? - произвести расчет, а лучше обратится к документации Mistral api примет ли она от Вас 10к rps
    4) Произвести коррекцию своей хотелки.
    5) Имея на руках реальный план по RPS произвести предварительный расчет.

    P.S. И это я только подтолкнул Вас к правильной постановке вопроса, даже не рассматривая техническую сторону. Разобравшись в этом нюансе, у Вас будут другие (более технически правильные вопросы) на которые по возможности сообщество ответит.
    Ответ написан
    Комментировать
  • Как общаются микросервисы в реальных проектах?

    AleksejMsk
    @AleksejMsk
    Программирую от души за деньги
    Микросервисы ненужны.
    А если нужны (нужна аргументация их полезности игнорируя маркетинг коучей по микросервисам) то ненжны очереди так как и без них два процесса смогут общаться по любому удобному протоколу ... http grpc и т.д.
    Очереди нужны как удобный уровень абстракции от потребителя сообщения.
    На практике - rest как удобный и читаемый человеком протокол.
    Если просадки то переходим на уровень погеморойней grpc.
    В общем усложнять себе жизнь все предпочитают поэтапно, если такое позволительно.
    Ответ написан
  • Есть ли прога для фонового доступа к удаленному компьютеру?

    @Giperoglif
    это:
    1. нарушает закон;
    2. классифицируется как шпионское ПО;
    3. приводит к уголовной ответственности.
    Ответ написан
    9 комментариев
  • Какой ноутбук брать для разработки игр в 3D?

    @tukreb
    Если хотите, чтобы не умер через пару лет, то вам нужно искать переносимую станцию. Обычно их выпускает тайваньская фирма Clevo, но в Китае её маркируют как Hasee, в Европе Dream Machines, Saiger, XMG, а в Америке EUROCOM.
    Msi так же выпускает рабочие станции, линейка Titan называется (только не тонкая серия).
    Acer вроде раньше выпускал такие в линейке Predator, но вроде потом скатились в тонкий шлак с дохлым охлаждением.
    Такие машины стоят от 400к рублей минимум, весят до 5 кг, (вместе с блоками питания которые до 1-2 кг).
    Это единственный вариант, если вы хотите "ноутбук" и который не сгорит через пару лет из-за плохо охлаждения.
    В противном случае только ПК.

    P.S Так как Clevo - это OEM, то каждый маркирует их ноутбуки по своему, поэтому я не могу вам назвать что смотреть в Clevo. Смотрите по цене, премиальная линейка начинает от 350-400к, и чтобы были толстые.
    P.S2 Я тут глянул современные MSI Titan и все они тонкие, тогда вам остаётся искать только Clevo либо какие то очень лимитированные ноутбуки с крутым охлождением.
    Ответ написан
    1 комментарий
  • Как скачать видео с YouTube?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    yt-dlp?
    Ответ написан
    5 комментариев
  • В какой контейнер ставить сертификат Lent`Encrypt в NGINX-front или NGINX-backend?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Во первых для вашего определения того, что вы называете "фронт" есть официальный термин - реверс прокси.
    И конечно же сертификаты должны быть на нем.
    Ответ написан
    Комментировать
  • Расшифровать диск с Битлокером возможно ли?

    @xypharion
    DisLocker - если знаете ключ. Также ключ может быть в формате файла .BEK. Если ноутбук помер, то на другом компьютере он не расшифруется, если использовался TPM.

    Есть еще такие варианты, если не знаете ключ:

    Elcomsoft Forensic Disk Decryptor (платный, требует следов ключей в памяти).
    Passware Kit Forensic (анализирует дампы памяти).
    BitLocker Recovery Password Viewer (для поиска ключа в Active Directory).

    p.s. Первые 2 программы стоят как крыло от самолета. Проще ноутбук новый купить.

    Но без ключа или пароля расшифровка почти невозможна.

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

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

    @Refguser
    Решения для бизнеса: корп.сайты, ИМ, боты и пр.
    Скорее всего с ПК и был уведён.
    Вирусы, левый клиент и и тп.
    Ответ написан
  • Как определить свой уровень программирования?

    @Everything_is_bad
    твой уровень программирования "школьник 9го класса, изучающий полгода java"
    Ответ написан
    1 комментарий