• Cisco Nat load balancing + VRF. Как заставить работать ip nat inside destination на VRF?

    @iddqda
    Pavel_Krotov, Допускаю, что этот LB никому не уперся и конкретно этот извращенный вариант NAT-а просто не стали реализовывать.
    Балансировать TCP умеет тот-же nginx, ha-proxy или даже iptables
  • Как правильно задать маршрут?

    @iddqda
    туннель этот соберите с адреса резервного канала и сделайте разные таблицы маршрутизации и PBR

    а затем заверните нужные маршруты (сетей телефонии) в этот тунель
  • Как правильно задать маршрут?

    @iddqda
    Да правильно. И в итоге вы пошли по маршруту default через одного из повайдеров (eth2)
    И 255/256 трафика будет уходить через него при маске /8
    если вы удлиняете маску, то соотношение получается еще ничтожней. И какой смысл в втором провайдере?
    Если только у вас есть магический скрипт, который следит за доступностью шлюзов и переписывает маршруты? Тогда норм. стандартный вариант active/standby прост и надежен.

    Так вот некоторые сервисы нужно пускать не в сети повайдеров а в сети сервисов

    т.е. адреса шлюзов провайдеров тут вообще ни при чем. Маску нужно указывать для тех сетей внешних сервисов в которые вы хотите отправить пакеты.

    т.е. предположим есть у вас сервис в сети A.A.A.0/24 и вы хотите отправить его через провайдера с адресом шлюза X.X.X.X.
    вот и пишите:
    ip route add A.A.A.0/24 via X.X.X.X dev ethY
  • Cisco Nat load balancing + VRF. Как заставить работать ip nat inside destination на VRF?

    @iddqda
    ну что могу сказать
    такого параметра нет и в последнем ios-xe 16.9.4 тоже
    а работает ли оно в железе проверять не буду.
    И я бы все же эту задачу поручил nginx-у
  • Как засунуть в генератор списка p += 1?

    @iddqda
    bimka, ну так методу enumerate можно указать число с которого итерировать

    In [12]: p=2                                                                                           
    In [13]: number='12345678'                                                                             
    In [14]: print([ int(n)**i for i,n in enumerate(number,p)])                                            
    [1, 8, 81, 1024, 15625, 279936, 5764801, 134217728]
  • Анализ текста на Python?

    @iddqda
    sim3x, Ну я тут тоже не пил ни с кем на брудершафт, но тут же понеслось на ты (я кстати не против), бред, чушь, не умею, должен итп. Ну я недавно на тостере. Подумал тут такое общество хипстерское с либеральными правилами поведениями и тут так заведено.
    короче, извиниТЕ меня
    Я совсем не троль и не пытаюсь и не пытался никого обидеть.
    А тут, надо признать, весело. Спасибо вам за это.
  • Анализ текста на Python?

    @iddqda
    sim3x, чувак, KISS ты применяешь не туда
    нельзя так задачи упрощать. есть условие:
    Нужно написать программу которая будет в текстовом файле искать конец предложений

    ты предложил сделать split('.')
    это просто неправильное решение. совсем неправильное. на двойку.

    Ivan Yakushenko, че то ты какой то дерзкий. и читать я по твоему не умею и фантазирую и бред несу и чушь. но в итоге ты согласен с моим решением. Какой то когнитивный диссонанс, не находишь?
    а главное почему ты с самого начала в меня вцепился и продолжаешь разжигать? кому это надо?
    насчет
    не можешь ни слова сказать почему сплит/реплейс - это халтура
    я все написал выше. И там целых 63 слова. Еще раз поцитирую:
    Я же просто назвал халтурой вариант с сплитами. Не твой конкретный вариант, я ж его не видел. Я можно сказать свой, гипотетический, вариант так называю. Ну т.е. мозг так работает. Мысленный эксперимент если хочешь. Я просто представил два гипотетических сценария как будто эту задачу нужно решить мне самому. Один вариант с регекспами, а другой с сплитами. Потом мысленно провел код-ревью и выбрал лучший
    Так кто из нас не умеет в буквы?
  • Анализ текста на Python?

    @iddqda
    Вань, спокойней
    т.е. в итоге ты признаешь что регекспы для этой задачи подходят лучше.
    и весь спор только о том являются ли функции, которые идут в некоторых модулях встроенными?
    тебе не кажется что предмет спора не стоит нашего времени?
    ТС-у мы судя по всему не помогли (списал наверно уже у кого нибудь) и наш спор тоже никому не поможет из-за беспредметности. давай заканчивать.
  • Анализ текста на Python?

    @iddqda
    Ivan Yakushenko, давай начнем с конца. как бы про негодование сначала, а потом снизим градус.
    В моем тексте нет ни капли агрессии, просто мне интересна почва твоего негодования в адрес использования сплит/реплейсов, пока что я вижу только порцию за порцией несуразной чепухи, так что не тебе говорить о бреде
    сначала ты назвал мои слова бредом, теперь чепухой. заметь, не я твои слова назвал бредом, а ты мои, и теперь ты заявляешь: "так что не тебе говорить о бреде". Но о нем говорил только ты. Правда теперь еще добавил чепуху. Чепуха звучит уже мягче, менее агрессивно. Молодец, исправляешься.
    Кстати где ты увидел мое негодование? Я же просто назвал халтурой вариант с сплитами. Не твой конкретный вариант, я ж его не видел. Я можно сказать свой, гипотетический, вариант так называю. Ну т.е. мозг так работает. Мысленный эксперимент если хочешь. Я просто представил два гипотетических сценария как будто эту задачу нужно решить мне самому. Один вариант с регекспами, а другой с сплитами. Потом мысленно провел код-ревью и выбрал лучший. Проведи такой эксперимент. Причем не обязательно мысленный. Давай напишем решение задачи я регэспами, а ты лапшой и отдадим на ревью, например, sim3x.

    Текст для задания пусть будет такой:
    This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

    The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.


    и вот мое решение:
    In [18]: text = """This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..",
        ...:  comes from a line in section 1.10.32. 
        ...:  
        ...: The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malo
        ...: rum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham. 
        ...: """                                                                                                                                                           
    
    In [19]: import re                                                                                                                                                     
    
    In [20]: pattern = r"(.*?)(?<=[.?!])\s+((?=[A-Z]\w+\s)|$)"                                                                                                             
    
    In [21]: for sentence in re.findall(pattern, text):  
        ...:     print (sentence[0]) 
        ...:                                                                                                                                                               
    This book is a treatise on the theory of ethics, very popular during the Renaissance.
    The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.
    The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested.
    Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.


    Признаюсь, мне пришлось потрудиться чтоб регекп нужный сочинить. Причем я считаю этот процесс вполне себе относится к программированию, что входит в противоречие с твоим 4-м аргументом. Но ты не печалься. Да я не согласен с тобой. И сдругими пунктами не согласен. Что тут такого? У меня отличная от твоей парадигма. Имею право. Я считаю что регекспы придумали умнейшие математики 60+ лет назад и много чего еще придумали другие математики и инженеры с тех пор: криптоалгоритмы, архиваторы, кодеки итп. Прямо сейчас куча мудрых дядек (и тетек) придумывают разные прикольные штуки для многопоточности и асинхронности. И для всего этого нет смысла строить собственный велосипед. Получится хреново и быстро сломается. Я это все к чему - использовать для решения своих задач готовые, специально под это созданные библиотеки - это и есть современное программирование.

    впрочем можешь называть это бредом и чушью, но это совсем не так интересно как код который ты на сплитах под задачу напишешь. Удачи.
    и эта ... код на регэспах отлично масштабируется: if match(pattern1) or match(pattern2) ...
  • Как работать с шаблонами?

    @iddqda
    1Tima1, а очень просто

    ваш регексп, например "\bc\w*" вбиваете в верхнее поле которое так и называется REGULAR EXPRESSION

    текст "cheese city of Toronto. cheek; then songs or glees could not sing o' Queen of Cheese."
    копируете в поле TEST STRING

    Справа посередине в поле MATCH INFORMATIOM смотрите что сматчилось
    а справа вверху в поле EXPLANATION почему сматчитлось именно так

    справа внизу есть шпаргалки по regexp
  • Анализ текста на Python?

    @iddqda
    потому что я пишу не тебе (ты беспорно все лучше всех знаешь), а ТС, который очевидно в самом начале пути и выполняет тестовые задачи по своему курсу. И гораздо более вероятно, что задачи на вделение фрагментов предложений относятся к теме рекгекспов чем к сплитам. А предложенный тобой вариант спагети-кода вообще при обучении использоваться не должен. Учить надо сразу хорошим практикам, а плохому потом сам научится.
    И последний твой комментарий выглядит на мой взгляд агрессивно и глупо. Бреда в моих словах не больше чем в твоих. И человеку назначенному на роль куратора так себя вести не стоит.
  • Как обработать столкновение двух элементов (персонажа и врага). Игра на JS??

    @iddqda
    Думаю, что сначала надо поймать координаты обоих объектов. Как это сделать???

    вот тут орнул, извините
    координаты объектов - это же одно из свойств объектов.
    x1, y1 = obj1.x, obj1.y

    а про основной вопрос сюда сходите https://habr.com/en/post/128438/
  • Как из строки сделать название массива?

    @iddqda
    а так не пойдет?
    block={}
    block[1]='68656c6c6f2c206d7920667269656e64'
    block[2]='212049742773206d6521202020202020'
    
    {1: '68656c6c6f2c206d7920667269656e64', 2: '212049742773206d6521202020202020'}


    в результате получишь и удобство индексирования и все методы для dict
  • Анализ текста на Python?

    @iddqda
    sim3x, не согласен. для тренировки на split задача была бы не про предложения, а про слова в тексте, а здесь ИМХО подразумеваются regexp-ы типа '.+?[.!?]'
  • Как работать с шаблонами?

    @iddqda
    1Tima1, по вопросу вам нужно научиться не в шаблоны, а в regexp-ы
    для чего порекомендую сходить сюда https://regex101.com/r/xUxRrZ/1
    там как раз ответы на ваши вопросы именно для вашего примера
  • Анализ текста на Python?

    @iddqda
    сплит/реплейс это халтура
    предложение может заканчиваться разными знаками.
    точка в предложении может использоваться в разделении десятичных знаков и инициалах.
    если такое и можно наколхозить сплитами то это точно не бестпрактис будет.

    И все же пользоваться re без import re не получится. Поэтому встроенность вопрос спорный.
    Но при этом особого смысла спорить нет. Только от безделья если.
  • Как изолировать директории одного сайта при помощи виртуальных машин?

    @iddqda
    насчет терраформ не знаю, но от того же автора давно есть vagrant, который оркестрирует виртуалки.
    по концепции очень похоже на докер-композ (т.е. для локалхоста) но для виртуалок.
    там можно запустить виртуалку (или несколько), выделить им адреса, другие ресурсы, и затем в уже запущенную виртуалку ансиблом развернуть все что угодно (сервисы с нужными конфгами, опенвпны, скрипты итд)
  • Анализ текста на Python?

    @iddqda
    чтоб матчить предложения встроенных функций недостаточно
    придется использовать модуль re и накостылить регексп (или нагуглить) определяющий предложение
    но в любом случае это несколько строк всего