Задать вопрос
  • Как удалить все html теги в vim?

    shurshur
    @shurshur
    Сергей Бурдужа, ну, скажем, в vim регулярки немного не такие, как в Perl/PCRE, так что придётся их подрегулировать. Но есть ещё одна важная проблема, html не только позволяет быть не очень валидным, но может также содержать javascript, где соответствующие символы могут также присутствовать и быть непарными. Также не только эти скрипты, но и css могут представлять из себя содержимое тэгов, которые при этом как бы и не текст как таковой. Про html entities (всякие &quiot;) я уже молчу.

    Так что это очень плохая идея. Лучше обработать файлы отдельными скриптами, которые будут работать с html как с html, а не как с текстом из символов.
  • Создаю на Discord.py команду для бота Шар.. В чём тут проблема? Чёт ну не хочет работать(?

    shurshur
    @shurshur
    NeW_CodeR, потому что у тебя бот инстанс класса discord.Client, а не его потомка discord.ext.commands.Bot, который и поддерживает команды.
  • Не проигрывается музыка discord.py и youtube_dl? Что не так?

    shurshur
    @shurshur
    Для начала советую вместо youtube_dl поставить yt_dlp, это более новый и актуальный форк, и проверить не поможет ли это.
  • Requests python, почему не работает?

    shurshur
    @shurshur
    Он же пишет что ему не нравится: expected full iso with tz.
  • Как проверить iso образ винды 7 на наличие вирусов?

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

    shurshur
    @shurshur
    Алексей Арх, так документация есть. Для документации неважно, что имя сервера поменялось. Тем более, что часть имени при этом постоянна.

    Зачем фантазировать, если есть конкретные реалии?

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

    shurshur
    @shurshur
    Алексей Арх, а зачем мне знать, что это бывший m0823? Мне эта информация ничего особо не говорит. Его железобетонный уникальный ID это 823 - его инвентарный номер. У железячника в GLPI есть его история (с момента появления GLPI, конечно).

    У нас при миграции с Solaris на Linux некоторые сервера поменяли имена. Какие на какие - теперь уже только в старых тикетах искать. Но мы это даже не ищем, потому что эта информация никакого смысла не имеет. Что нам с ней делать? Повесить на стену в рамочку?
  • Пишет, что нету обьекта в списке readlines()?

    shurshur
    @shurshur
    А если так?

    f = open('file.vbd', 'r', encoding='utf-8')
  • Как разнести функционал бота по файлам?

    shurshur
    @shurshur
    realfreshman, перекидываем функцию get_data в data_functions.py (это пример, назвать можно и иначе). В основном файле пишем:

    from data_functions import get_data

    Если функций несколько, можно через запятую:

    from data_functions import get_data, get_last_error


    Или даже импортировать всё подряд (функции, классы, переменные...), но тут важно не нарваться на конфликт имён:

    from data_functions import *

    Конфликта имён можно избежать, если не импортировать имена из модуля в текущий контекст:

    import data_functions 
    
    def get_data():
      return ["some_data"]
    
    data1 = data_functions.get_data()
    data2 = get_data()


    Если длинное название data_functions не нравится, можно сделать так:

    import data_functions as df
    
    data = df.get_data()


    Можно и любое имя из файла импортировать с изменённым именем:

    from data_functions import get_data as df_get_data
    
    data = df_get_data()


    Можно комбинировать:

    import data_functions as df
    from data_functions import get_data as secret_data_load
    
    data = secret_data_load()
    last_error = df.get_last_error()


    В общем, можно много чего такого сделать по вкусу.

    В if __name__ ... ничего менять не надо. Это по большому счёту не очень важно, просто если файл вдруг подключить как модуль, то __name__ будет иметь другое значение и bot.polling не будет запущен. Если есть уверенность, что никогда такой import не сделаешь, то bot.polling можно вызывать без if.
  • Технический нейминг серверов. По какому принципу называть сервера?

    shurshur
    @shurshur
    Алексей Арх,
    Бюджет выделается, на него можно купить n серверов


    Когда мы выводим сервер из эксплуатации и отдаём его в какой-нить другой проект, то обычно полностью его перезаливаем. Имя у него при этом легко меняется. Например, мне недавно отдали под расширение сервер m0823, который раньше был нодой кластера mesos, при этом сервер был перезалит, в нём перебрали диски, воткнули другую сетевуху и назвали i0823. Кстати, его платформенное имя XXserver6, это третий сервер, первые два имеют номера 2 и 3.

    История такой нумерации длинная и затяжная. Сервер 0 был первым сервером проекта на арендованном у одного маленького датского хостера сервере proxy0.company.ru, Однажды у хостера в том датацентре случилась серьёзная авария, из-за которой более половины новых tcp-коннектов не устанавливались, и мы в аварийном режиме стянули всё это на proxy1.company.ru в другом датацентре. На всякий случай арендовали запасную виртуалку XXserver1.company.ru, на которую делались бэкапы (lsyncd, репликация базы), чтобы в случае повторения аварии можно было бы быстро восстановиться. Виртуалка так и не понадобилась, когда проект из экспериментального переехал на специально купленные два сервера XXserver2 (i1918) и XXserver3 (i1917) в разных датацентрах. Первоначально планировалось, что приложение будет запускаться в двухголовом режиме на двух серверах, реально всё было на XXserver2, вторую голову поднимать не стали (и дальнейшие изыскания показали, что это почти никогда не имеет смысла). Когда из-за аппаратных проблем сетевузи там померли обе ноги bonding, приложения срочно растащили пополам на два временных сервера новых (не введённых в эксплуатацию) нод mesos m2024 и m2025, они же XXserver4 и XXserver5. В дальнейшем в проблемном сервере и в его брате-близнеце поменяли сетевухи, приложения с 4 перетащили на 2, с 5 - на 3. Кстати, сервера m2024 и m2025 в итоге в mesos не включили, а решили использовать для кубера и они стали k2024 и k2025 с перезаливкой. Когда ресурсы двух серверов закончились (на самом деле не совсем, ресурсы ещё оставались, но мы упёрлись в bcqueuelen у macvlan, а в текущем ядре этот параметр нельзя было изменять без пересборки), добавили третий сервер, который получил номер 6. Нас совершенно не парит, что номера не переиспользуются, это вообще не проблема, и решать тут просто нечего.

    Я ещё раз повторю: у каждого своя специфика, свои традиции, свои возникающие проблемы. Всё это приводит к неодинаковым решениям одних и тех же (казалось бы) задач. Личный опыт и предпочтения объявлять единственно верными неправильно. Если бы мы меняли назначение серверов ежедневно, то всё у нас было бы совсем по-другому - но мы это делаем эпизодически, сервера работают годами и не требуют каких-то замысловатых манипуляций.
  • Как ускорить процесс загрузки медиафайлов в Amazon S3?

    shurshur
    @shurshur
    Вынести загрузку в отдельный тред или даже перейти на асинхронное взаимодействие.

    Ещё можно вынести загрузку в отдельный процесс, который будет выбирать задания из базы/кролика или ещё какого-то источника.
  • Технический нейминг серверов. По какому принципу называть сервера?

    shurshur
    @shurshur
    Алексей Арх,
    "Бред" потом у что это архитектурно чем то грозит


    Ничто не мешает готовить пищу в мастерской, но как это может повредить и еде, и продукции этой мастерской - сложно предсказать. А у нас критическая инфраструктура, серьёзный уровень SLA и высокие риски.

    просто вы радуетесь что есть бюджет и не приходится заниматься таким "бредом"?)


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

    shurshur
    @shurshur
    Хотя я посмотрел ещё раз на код... Зачем вообще использовать html2text? Правильнее перебрать элементы info, ведь html2text делает человекочитаемый, а не машиннообрабатываемый текст.
  • Как сделать чтобы бот discord.py получил число сообщений в канале?

    shurshur
    @shurshur
    Nolrox, так удалял или считал?

    А если канал существует 5 лет и в нём ежедневно по несколько тысяч сообщений оставляют? Сколько времени бот будет это всё выгружать?
  • Как отформатировать данные которые получены с помощью парсера?

    shurshur
    @shurshur
    Возвращённые данные, очевидно, имеют следы markdown-разметки.

    Что мешает проанализировать эти данные и использовать всё как надо?

    Например, перебираем строки:

    if line.startswith:'Повреждение: ':
        destruction = line.split(': ')[1]
  • Технический нейминг серверов. По какому принципу называть сервера?

    shurshur
    @shurshur
    Алексей Арх,
    А если говорить про dns поддомены? Есть технические?


    У нас сервера сами в Internet не выставлены (кроме балансеров - и то там есть нюансы), к ним доступ делается пробросами портов на маршрутизаторах (Cisco). Адреса серверов внутренние, DNS тоже внутренний со своей зоной, кроме того, есть всякие служебные зоны разного уровня типа dte, dev.flex.k8s итд итп.

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

    Разработчик не запускает "иногда скрипт из консоли". И по имени hello.site.com он никуда не пойдёт. Админ - если он не в курсе или не помнит наизусть - пойдёт посмотрит в вики, что такое hello.site.com (и вообще как этот проект устроен), узнает что это балансер из 6 нод, посмотрит конфиг этого балансера в git, поймёт что оно пробрасывается в пару, XXXsrv05:8085 и XXXsrv11:9216, далее будет смотреть логи уже на этих серверах. Дежурный админ посреди ночи у нас регулярно решает такие квесты.

    Такой бред, как пихать на сервера hello.site.com приложения проекта foobar.co.il у нас не делают в принципе. Выраженным исключением является запуск cassandra на куче серверов, потому что она давно перестала справляться с нагрузкой на 12 серверах того проекта, где используется (да-да, из-за GC), а переезд на scylla пока был неудачен из-за critical bug в scylla (очень хотелось, ведь по нагрузочным тестам scylla способна обойтись раз в 5 меньшим числом нод). У нас тут шутят, что на любом свежеустановленном сервере самозарождается ccassandra.
  • Как определить язык написанного сообщения на discord.js?

    shurshur
    @shurshur
    kopatych3756, делим текст на слова. По каждому слову пробегаемся и считаем число букв:

    входящие в А...Яа...я - русские
    входящие в A...Za...z - латинские

    % русских букв = число русских букв / число всех букв
    % латинских букв = число латинских букв / число всех букв

    Получаем по каждому слову % русских и латинских букв. Каких больше - такое и слово (ну, отдельно решить, как реагировать на крайние случаи, например, когда 50%/50%, или когда в "слове" есть символы, не относящиеся ни к русским, ник латинским).
  • Могу ли я как то сохранить python код в MySql?

    shurshur
    @shurshur
    Дархан Увалиханов, не вижу, чтобы в задании требовалось класть в базу код.
  • Могу ли я как то сохранить python код в MySql?

    shurshur
    @shurshur
    Дархан Увалиханов, заводим текстовое поле и пихаем. Потом достаём и делаем exec от извлечённой строки. Но лучше так не делать. Лучше пойти от задачи: зачем вообще понадобилось код в базу класть?
  • Как искать красивые по дизайну сайты по определенным сферам?

    shurshur
    @shurshur
    Ruslan Website, это ты подумай головой и пойми, что "красивый сайт" - вещь очень субъективная. Все эти авававарды - просто вручную составленные каталоги. А теперь подумай: кому и зачем будет интересно смотреть десятки говносайтов бюро переводов, чтобы кто-то бесплатно и без смс смог посмотреть один из них?