Задать вопрос
  • Как разделить БД дискорд бота под разные сервера?

    shurshur
    @shurshur
    Сделать базу (например, mysql) на одном из серверов, на других организовать доступ по сети в эту базу (и защитить от доступа из всего интернета).

    При наличии особых садо-мазо наклонностей можно попробовать поднять базу в режиме master-master репликации. И не забывать долго и усердно молиться 5 раз в день на восток.
  • Почему скрипт ругается на tar?

    shurshur
    @shurshur
    andro1995, в lost+found доступ имеет только root. Поэтому tar надо делать с sudo, ну или lost+found удалить заранее.

    Далее, по описанию кажется предполагалось, что паковать надо test_file, а не Mount_dir. И ещё надо не забывать Mount_dir размонтировать. В случае паковки test_file - до этой паковки.

    Далее, поскольку test_file всё равно один, то tar тут лишний, можно запаковать gzip или bzip2.

    Вообще, странная задача, для чего всё это делается? Может, имеет смысл придумать решение получше?
  • Почему Telegram Бот на aiogram на сервере потребляет много ОЗУ?

    shurshur
    @shurshur
    PVkolos, это было в качестве примера того, как бот может со временем расходовать больше памяти. Каждый конкретный случай надо внимательно изучать.
  • Почему Telegram Бот на aiogram на сервере потребляет много ОЗУ?

    shurshur
    @shurshur
    Сильно зависит от того, что бот делает. Если он на каждого пользователя создаёт большой объект и хранит его в памяти (например, если он берёт аватарку каждого обращающегося пользователя), то вполне может распухать. Без кода бота здесь трудно что-либо комментировать.
  • Как выровнять блок с информацией об авторах справа и добавить подписи под прочерки?

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

    \small{
         \vbox{
              \hfill
              \vbox{
                   \hbox{Научный руководитель:}
                   {\tiny\hbox{ }}
                   \hbox to 6cm{\strut\hrulefill}
                   {\tiny\it\hbox to 6cm{\hfill(степень, звание)\hfill}}
                   \hbox to 6cm{\strut\hrulefill\ \hrulefill}
                   {\tiny\it\hbox to 6cm{\hfill(подпись)\hfill\hfill(ФИО)\hfill}}
                   \hbox{<<\hbox to 1.5em{\hrulefill}>> \hbox to 5em{\hrulefill} 20\hbox to 1.5em{\hrulefill} г.}
                   {\tiny\hbox{ }}
                   \hbox to 6cm{Студент группы \hrulefill}
                   {\tiny\hbox{ }}
                   \hbox to 6cm{\strut\hrulefill\ \hrulefill}
                   {\tiny\it\hbox to 6cm{\hfill(подпись)\hfill\hfill(ФИО)\hfill}}
                   \hbox{<<\hbox to 1.5em{\hrulefill}>> \hbox to 5em{\hrulefill} 20\hbox to 1.5em{\hrulefill} г.}
              }
         }
    }
  • Как сделать Парсинг сообщений ОТ бота pyton?

    shurshur
    @shurshur
    С ботами можно взаимодействовать с помощью клиентского API
  • Как сделать проверку на подписку?

    shurshur
    @shurshur
    Это вопрос на элементарные навыки программирования. Которые приобретаются чтением учебника и решением простых задач.
  • Как получить содержимое запроса(hex код) для блокировки траффика c помощью iptables?

    shurshur
    @shurshur
    Запиши трафик в файл:

    tcpdump -i eth0 -w your_filename.pcap port XXXX

    Затем открой этот файл в wireshark и поизучай что там происходит.

    В сетевых пакетах начальные байты содержат не данные (полезную нагрузку), а протокол, IP-адреса, порты и прочую служебную информацию уровня IP.
  • Как сделать так чтобы фраза не повторялась?

    shurshur
    @shurshur
    MrHaska531, так при каждом запуске указанного фрагмента кода в переменную a сначала присваивается 0, что там было в прошлый раз при этом не сохраняется. Я уж не говорю о том, что переменная эта локальна в текущей функции (get_rept) и будет теряться при выходе из неё.

    Более того, я же по пунктам расписал, что делает этот кусок кода, и из него очевидно, что второе условие НЕ СРАБАТЫВАЕТ НИКОГДА, и поэтому странно удивляться, что ответ всегда одинаковый...

    А в "упрощённой версии" вообще бардак какой-то. В переменную a присваивается строка, потом она сравнивается со строкой, при удачном варианте к строке прибавляется число... Что? В этом месте скрипт упадёт, так как строку и число складывать нельзя. Ещё там есть переменная b, которой присваивается 0, а потом... А что потом? Потом переменная не используется никак.

    В общем, советую почитать учебник, освоить самые основы, тогда будет понятно, почему это не только не работает, но и никак не может работать. Для начала добиться работы той самой "упрощённой версии".
  • Стоит ли строить локальную сеть на базе коаксильного телевизионного кабеля?

    shurshur
    @shurshur
    graf_Alibert, пластиковый плинтус с кабель-каналом научились ставить повсеместно во второй половине нулевых. А в 90-е и нулевые в основном плинтусы были деревянными.
  • Как сделать так чтобы фраза не повторялась?

    shurshur
    @shurshur
    Ну, код надо оформлять кнопкой на панели, потому что питон без отступов абсолютно нечитаем.

    А так советую по пальца разобрать, что тут написано:

    1. Сначала присваиваем a=0

    2. Если текст сообщения '/get' - увеличиваем a на 1. То есть получается a=1

    3. Если текст '/get' и a больше или равно 2... Но ведь в предыдущем пункте a=1, так что условие ложно...

    И да, рекомендую также попробовать самому ЗАПУСТИТЬ "упрощённую версию", чтобы убедиться что она не просто не работает, а не работает совсем-совсем...
  • Как сделать скриншоты excel под linux и macos посредством python?

    shurshur
    @shurshur
    Ap2pGalar, я бы посмотрел в сторону интерфейса LibreOffice UNO. Есть штатная утилита unoconv, которая умеет через него конвертировать файлы, в справке не вижу никаких опций для фильтрации части документа, но там можно на python писать функционал, работающий с содержимым документа.
  • Это можно считать микросервисной архитектурой?

    shurshur
    @shurshur
    Popou, хорошо, показываю как это бывает.

    Допустим, у нас есть сайт, на котором есть фронт, бэк и целый ряд микросервисов.

    Фронт - это js, тут понятно, его отдаёт, например, nginx статикой.

    Бэк - приложение, которое запущено минимум в N+1 экземплярах, где N - минимальное количество для обеспечения обработки нагрузки.

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

    И каждый из них в нескольких экземплярах. При этом никакая часть инфраструктуры даже не задумывается о том, сколько каких сервисов и где они сейчас находятся. Они через discovery находят нужный сервис и его используют. При этом сервис может быть доступен как непосредственно (например, в DNS имя вроде auth-service.svc ведёт на N+1 разных IP), так и через прокси/балансер (nginx, envoy, haproxy...), который скрывает от других логику и практику выбора конкретного инстанса сервиса.

    При падении инстанса сервиса система оркестрации сама его перезапускает и возвращает в кластер. При обновлении постепенно запускаются новые инстансы сервиса, но старые гасятся только когда новые переходят в состояние ready to serve requests (что проверяется через healthcheck), и только в таком состоянии на них начинают идти новые запросы.

    Также если нужно поддерживать обратную совместимость, в сервисе могут быть микросервисы разных версий, в том числе и совсем старых, и на них распределяются запросы по каким-то правилам (например, как это принято, через передачу версии сервиса в URL, типа вызов /v1.17/method прокидывается в обработчик версии v1.17).

    Можно ли в монолитное приложение загрузить десятки dll разных и даже одинаковых версий и распределять по ним запросы? А зачем? А вдруг в одной из старых версий будет баг, который повалит вообще всё, а не только эту старую версию?
  • Enterprise решение для виртуальных сред выполнения, реально-ли?

    shurshur
    @shurshur
    Это можно сделать только с предоставлением пользователю хорошо защищённого и качественно опечатанного собственного оборудования. Помещать пользователю гонять предоставленное приложение в виртуалке/отладчике крайне сложно.

    С какой это вообще всё целью? Нужно понимать, что на по-настоящему критически важной инфраструктуре никто в здравом уме не будет ковырять чужое приложение без каких-то невероятно важных причин.
  • Почему в обычном питоне работает а с библиотекой TelegramBotApi нет?

    shurshur
    @shurshur
    Рекомендую сравнить:

    def foo():
        pass
    
    for i in range(10):
       print (id(foo))


    с вот таким:

    for i in range(10):
       def foo():
           pass
       print (id(foo))


    Если определение функции засунуть в цикл, то при каждой итерации цикла она будет определяться заново, и это будет новая функция. Зачем так делать?
  • Почему мой код приводит к ошибке?

    shurshur
    @shurshur
    mayton2019, gcc -Wall обычно на такое ругается, а в сочетании -Werror ещё и очень грязно...
  • Как показать видео на сайте из Телеграм?

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

    Я уж не говорю о том, что там может быть на деле нет никакого Телеграма...

    В любом случае, это решение не для чистого WordPress. Ну и Телеграм может легко начать с этим бороться, если слишком много умных будет. Лучше на такое не закладываться вообще.
  • Как сделать из int str?

    shurshur
    @shurshur
    Артём Смирнов, ещё раз, я же написал, почему "x is y == z" ни к чему хорошему не приведёт.
  • Как сделать из int str?

    shurshur
    @shurshur
    Артём Смирнов, потому что надо чётко понимать, что делает та или иная конструкция, что кладётся в какие переменные, какие вызовы что делают...

    Угадывать будет при if непонятно-что: не стоит. Угаданное может оказаться неправильным.
  • Можно ли получить телеграм id по номеру телефона?

    shurshur
    @shurshur
    vladimir_avshtolis, надо читать доку по клиентскому API (есть библиотеки типа tdlib, telethon), не путать с Bot API, это не на http-запросах.

    Но знание id пользователя всё равно бесполезно, потому что пока пользователь не нажмёт /start, бот ничего не сможет с этим id сделать.

    Для автоматизаций лучше использовать telegram web login или ещё какой-то механизм. Например, можно предложить пользователям из личного кабинета брать код, который посылать командой боту. Ещё можно, чтобы пользователь вводил боту телефон, бот посылал пользователю на этот телефон смс для верификации. В общем, варианты есть.