• Как можно использовать одни порты для Nginx и Docker?

    SagePtr
    @SagePtr
    Еда - это святое
    Через proxy_pass в nginx пробросить на нужный порт внутри контейнера, таким образом, заодно можно переложить на nginx и прочую работу - по логгированию, получению сертификатов и т.п., не реализуя это отдельно внутри контейнера.
    Ответ написан
    Комментировать
  • Как можно использовать одни порты для Nginx и Docker?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Настройте nginx, чтобы он слушал не все интерфейсы, а только внешний на сервере. Docker имеет свою подсеть, он не доберется до 80 порта на внешнем интерфейсе.
    Если доберется-запретите ему и проксируйте запросы в докер через nginx
    Ответ написан
    Комментировать
  • Как можно использовать одни порты для Nginx и Docker?

    paran0id
    @paran0id
    Умный, но ленивый
    Перевесить докер на другой порт, запроксировать доступ к нему через nginx.
    Ответ написан
    2 комментария
  • FTP. Как подключиться через другую сеть?

    @rPman
    Логично, из чужой wifi сети не должно быть доступа к твоей.

    Если у тебя есть подключение к интернету (роутер в твоей сети где находится ftp сервер) то нужно на этом роутере настроить проброс портов (это может называться Виртуальные серверы и находятся в закладке NAT, нужно там указать свой ftp сервер в локальной сети и выбрать порт, по которому извне он будет доступен), в этом случае для доступа к серверу понадобится знать внешний ip адрес (если он динамический, нужно будет настроить доменное имя dyndns или каким либо другим способом получать информацию о текущем ip адресе, но он может меняться раз в сутки или даже несколько часов)

    Если речи об доступе через интернет нет а проблему нужно как то решать аппаратным способом, то нужно объединить твою и эту 'другую' сети, настроив роутер/ретранслятор (некоторые роутеры умеют одновременно подключаться к wifi сетям одновременно раздавая wifi своей), с высокой вероятностью эти настройки могут быть не доступны из GUI и придется углубиться в документацию.

    Кстати можно приобрести wifi адаптер (например usb) и подключиться одновременно к двум wifi сетям, тогда будет доступ одновременный в обе
    Ответ написан
    8 комментариев
  • Считывание ключа домофона через NFC?

    Vindicar
    @Vindicar
    RTFM!
    Бесконтактные ключи работают на 125 kHz RFID-метках, а не на NFC.
    Ответ написан
    Комментировать
  • Как правильно одновременно запустить двух Telegram ботов одной программой на Python?

    Vindicar
    @Vindicar
    RTFM!
    Ну потому что ты фигню написал.
    th_bot = Thread(target=pyrobot(), args=())
    th_userbot = Thread(target=aiobot(), args=())

    Ты пытаешься запустить в качестве потока значение, возвращаемое функцией pyrobot(). А так как она уходит в цикл и значения не возвращает, то далее ничего не происходит. До вызова конструктора Thread() дело не доходит. С aiobot() аналогично.

    Еще раз:
    pyrobot() - вызов функции
    pyrobot - ссылка на функцию

    EDIT:
    Оба бота - асинхронные на базе asyncio, им для работы нужен цикл-реактор (event loop). Вообще не факт, что хорошая идея запускать их в потоках.
    Тут есть два варианта, сразу даже не скажу, что проще.
    Вариант А, лобовой: каждый бот создаёт своё собственные реактор через asyncio.new_event_loop(), потом задаёт его как текущий для своего потока через asyncio.set_event_loop(loop). Если ботам не требуется взаимодействовать, то это может быть проще. Если требуется... будут проблемы. Два реактора в одной программе - это не хорошо.

    Вариант Б, адекватный:
    И вызов app.run(), и вызов executor.start_polling(dp, skip_updates=True) скорее всего под капотом создают асинхронную функцию (корутину), и запускают её в реакторе. Тогда ты можешь обойтись без потоков, заставив обоих ботов работать на одном реакторе. Нужно будет зарыться в доки, или даже глянуть исходники.

    Например, для пирограмма написано такое:
    When calling this method (app.run()) without any argument it acts as a convenience method that calls start(), idle() and stop() in sequence. It makes running a single client less verbose.

    Т.е. вместо вызова app.run() ты можешь изменить код так:
    async def pyrobot():  # обрати внимание, теперь функция асинхронная!
        print("pyro started")
        @app.on_message(filters.chat("some_chat"))
        async def print_pyrogram():
            print("Pyrogram")
        # это вместо вызова app.run(), как написано в доках.
        await app.start()
        try:
            await app.idle()
        finally:
            await app.end()

    Затем делаешь аналогичный трюк с aiobot(). Нужно посмотреть в доках на аиограм, как именно.

    И потом запускаешь обоих ботов кодом вида...
    asyncio.run(asyncio.gather(pyrobot(), aiobot()))
    Ответ написан
    3 комментария
  • Как можно подпитать жёсткий диск 2.5?

    @Drno
    От розетки можно. Через блок питания))
    Ответ написан
    Комментировать
  • Помощь с кодом. (discord.py/python)?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Помощь с кодом. (discord.py/python)?

    Нет, не помощь с кодом. Помощь с проблемой в коде.
    Ответ написан
    Комментировать
  • Почему при подключении второго монитора оба экрана поочерёдно выключаются и включаются?

    vabka
    @vabka
    Токсичный шарпист
    а второй (ноутбук в качестве второго монитора) по VGA

    Фатальная ошибка. Ноут невозможно использовать в качестве второго монитора. По крайней мере таким образом.
    Ответ написан
    Комментировать
  • Что делать если одинаковый фпс при разных графических настройках?

    vabka
    @vabka
    Токсичный шарпист
    как сделать что бы видеокарта на низких работала на 100%

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

    Если твой процессор не успевает просчитывать это всё - видеокарта будет простаивать.
    Ну и проверь банальное - может у тебя просто где-то включен лимит кадров?
    Ответ написан
    3 комментария
  • ValueError: too many values to unpack (expected 2) почему?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Значит в message.text больше элементов, чем вы ожидаете.
    Ответ написан
  • Проблема с варнинг системой discord.py?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Проблема с варнинг системой discord.py?

    Да проблема с варнинг системой.
    Точнее столько проблем, что лучше удалить весь этот код и переписать оба класса.
    Вернитесь к изучению основ языка и ООП прежде чем писать ботов.
    Ответ написан
    Комментировать
  • Что лучше поставить для backend`a?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Оптимальным выбором будет Debian как наиболее стабильная ось, что для бэка очень важно.
    Ответ написан
    8 комментариев
  • В чем отличие SQLAlchemy от Flask-SQLAlchemy?

    vabka
    @vabka
    Токсичный шарпист
    Flask-SQLAlchemy is an extension for Flask that adds support for SQLAlchemy to your application. It simplifies using SQLAlchemy with Flask by setting up common objects and patterns for using those objects, such as a session tied to each web request, models, and engines.

    Flask-SQLAlchemy does not change how SQLAlchemy works or is used.

    Вполне логично, что в проекте без Flask - следует использовать просто SqlAlchemy.
    В проекте с Flask - можно использовать Flask-SqlAlchemy. В теории, придётся писать чуть меньше кода, если верить словам из документации
    Ответ написан
    Комментировать
  • Какой максимальный диапазон чисел в for i in range?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Господи, ну нельзя заниматься программированием с такими представлениями о логике.
    Причем не о какой-то там хитрой математической логике, а о логике своих действий.

    Неужели так трудно проверить свое собственное утверждение?
    for i in range(200000, 500000):
        if (i < 200005):
            print(i)
        if (i == 200005):
            print('...')
        if (i > 499995):
            print(i)


    Где здесь 0? Где здесь 208?
    С чего вы взяли, что эти цифры вообще берутся из этого цикла, а не откуда-то еще?

    Программист всегда должен проверять свои догадки.
    И если они не подтвердились, то искать другое объяснение своим проблемам.
    Ответ написан
    1 комментарий
  • Как добавить embed к select menu?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Так же как и без селект меню. embed и view это 2 отдельных параметра для send или send_message не связанных между собой

    view = ExampleView()
    embed = Embed(<заполнить>)
    
    await ctx.send(embed=embed, view=view)
    Ответ написан
    2 комментария
  • Как выбрать значение в монгодб?

    dima9595
    @dima9595
    Junior PHP
    Для начала нужно:
    - Прочитать документацию по Python
    - Прочитать документацию по пакету (для работы с монго)
    - Прочитать документацию по бота ТГ
    И главное не просто почитать, а понять и уметь пользоваться.
    Потом вы в боте по какому-то событию считываете данные с базы (обязательна должна быть какая-то привязка пользователь-баланс). Далее, через Python, выводить эту информацию вашему пользователю от имени бота. Всё.
    Ответ написан
    Комментировать
  • Хочу написать программу, которая бы симулировала общение с пользователем, но не знаю как?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    В теории балабола (по ссылке - библиотека для работы с ним).
    Пример:

    from balaboba import Balaboba
    bb = Balaboba()
    intros = bb.intros(language="ru")
    intro = next(intros)
    response = bb.balaboba("Кто ты?", intro=intro.number)
    print(response)
    response = bb.balaboba("А я кто?", intro=intro.number)
    print(response)

    Ответ:

    Кто ты? — Не знаю.
    — Где твой дом, где твой город?
    Есть ли у тебя семья, друзья, любимый человек?
    Зачем ты пришел в этот мир?
    Что ты здесь делаешь?
    Почему ты не можешь найти ответ на эти вопросы?
    Ты — никто.
    Ты не знаешь, кто ты есть.
    Откуда ты взялся?
    Кем ты был до этого?
    Кто ты, почему ты здесь, куда ты идешь?
    Эти вопросы, наверное, волнуют многих людей.
    Но что ты на них можешь ответить?
    Вот так и мы — не знаем.
    Мы рождаемся, растем, взрослеем, стареем.
    И все это время спрашиваем себя: "Кто я?"
    А я кто? Я - человек!
    Не больше!
    И не меньше!
    Хотя, и не очень скромный...
    Но это не значит, что надо всех в одну кучу валить!
    Вот я - Человек!
    А Вы?
    Кто?
    Что?
    Почему?
    Зачем?
    А если бы Вы были Человеком...
    Вы бы на всё это смотрели по-другому
    В любом случае, каждый из нас — человек, а значит, он и есть тот самый бог, который не сделал ничего плохого по своей вине, но которого мы по-прежнему ненавидим.


    Не совсем то, но вот альтернатива.
    Из минусов - придется настраивать вручную, требует мощного железа и на английском.
    В остальном-же надо понимать:
    1.Генерация связного текста очень ресурсоемкий процесс и генерировать бесплатно большое количество текста никто не будет. Скорее всего - рано или поздно, в зависимости от того, насколько популярен будет бот, через балаболу будет достигнут лимит обращений.
    2.Нейросети еще довольно тупы и даже если реплики по отдельности кажутся осмысленными, то вот с диалогом могут быть проблемы. По примеру это видно.
    В частности, на полноценную имитацию связного диалога натаскана только AIDungeoun и тот пример по ссылки, но они на английском, а у первой нет api.
    Второй момент: у нейронок очень плохо с накоплением информации - последовательная генерация может выглядеть связно, но чем дальше генерить, тем выше шанс, что нейронка забудет о чем-то.
    Ответ написан
    5 комментариев
  • Как реализовать анимацию при открытии окна с видео?

    DanArst
    @DanArst Куратор тега CSS
    Гриффиндор в моде при любой погоде!
    2 комментария