• Как разделить строку по два символа?

    adugin
    @adugin Куратор тега Python
    chunks = list(map(''.join, zip(text[:-1], text[1:])))
    Ответ написан
    Комментировать
  • Kак разделить строку на слова по регистрам?

    adugin
    @adugin Куратор тега Python
    Отличное решение у Drill. Добавлю альтернативные варианты:
    text = 'ROMAlaPARIGIvendita'
    
    from itertools import groupby
    from string import ascii_lowercase
    
    # Вариант #1
    [''.join(group) for _, group in groupby(text, key=set(ascii_lowercase).issuperset)]
    
    # Вариант #2
    [''.join(group) for _, group in groupby(text, key=lambda c: c > 'Z')]
    Ответ написан
    Комментировать
  • Как сделать генерацию названий из согласных и гласных букв?

    0xD34F
    @0xD34F
    def id_generator(size=5, chars=[consonants, vowels]):
      return ''.join(random.choice(chars[i % len(chars)]) for i in range(size))
    
    
    print(id_generator())
    print(id_generator(8, ['abcde', '12345', '!?:.;']))
    Ответ написан
    Комментировать
  • Зачем присваивать переменную класса самой себе?

    @deliro
    Как вариант, потому что boo — это поле класса. В строке self.boo = self.boo происходит присваивание поля экземпляру. Не знаю, зачем это может быть нужно на практике, но вот пример для воспроизведения, когда это на что-то влияет:

    class A:
        factory = dict
        
        def method(self):
            return self.factory()
        
        
    a = A()
    A.factory = list
    print(a.method())  # []


    class B:
        factory = dict
        
        def __init__(self):
            self.factory = self.factory
        
        def method(self):
            return self.factory()
        
        
    b = B()
    B.factory = list
    print(b.method())  # всё равно словарь: {}
    Ответ написан
    Комментировать
  • Какой язык программирования изучать в свободное время?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Какой-то конкретной цели, объясняющей для чего мне это надо, пока что нет.

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

    Льюис Кэрролл
    Ответ написан
    1 комментарий
  • Возможно ли создать генератор словаря заполняя его введёнными произвольными значениями?

    adugin
    @adugin Куратор тега Python
    Проще и компактнее так:
    dict(enumerate(input().lower().split(), 1))
    Ответ написан
    Комментировать
  • Как сделать звонок сразу на несколько номеров в Asterisk?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Dial(SIP/101&SIP/102&SIP/103)
    Ответ написан
    Комментировать
  • Как выполнить сортировку через функцию среза строки?

    adugin
    @adugin Куратор тега Python
    ex.sort(key=float)
    Ответ написан
    Комментировать
  • Какая утилита используется для цветной консоли в Debian у Hetzner?

    Softer
    @Softer
    Где оно у них прописано - уже не помню, но тоже понравилось когда впервые увидел - теперь ездит за мной в bashrc :) :

    # echo $PS1
    \[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]
    Ответ написан
    2 комментария
  • Как можно сделать трансляцию аудио по квартире (дому)?

    Stalker_RED
    @Stalker_RED
    Если я правильно понял, вы хотите сделать так: в каждой комнате "крутилка" громкости которая при нуле выключает акустику полностью.

    Вариант "сделай сам":
    1. Покупаешь на али или на радиорынке, или в чип-дипе пучек энкодеров.
    Они бывают уже с красивой ручкой и панелькой, бывают без - тогда ручки сам подберешь. Выбор огромный. При желании можно найти энкодер сразу с числовым экранчиком, чтоб громкость показывал.

    2. Покупаешь усилителей по количеству комнат или больше, если комнаты большие и хочется отдельно управлять громкостью вооон в том углу. На основе tda, например или чего-то поновее-покруче-помощнее, в интернете есть обзоры-сравнения. Опять же, выбор очень широкий, возможно есть смысл договорится с местным продавцом и взять разных попробовать послушать.

    3. Покупаешь самых дешевых ардуинок (на данный момент это китайские клоны pro mini, кажется, меньше $2 за штуку).
    Можно еще дешевле все сделать, купив контроллеры еще попроще, но нужно будет больше скиллов.

    4. покупаешь твердотельных реле. (Если noname, то с хорошим запасом по мощности, х2, например)

    5. Ну и блоки питания исходя из параметров усилков. Контроллеру можно взять питание от тех-же БП через DC-DC преобразователь.

    Собираешь такую систему: на стене крутилка-энкодер, контроллер ждет сигналов с него, управляет громкостью усилка. При нулевой громкости вырубает питание усилка твердотельным реле.

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

    не знаю будут ли шумы, если расстояние от усилителя до динамиков будет 6м
    Вот совсем не влияет. Чтобы раскачать динамик помехи должны быть от чего-то типа электросварки или молнии. А вот помехи на провод которы ДО усилителя влияют намного сильнее, потому что усилитель их усилит. Решается экранированными проводами или брать усилки со встроенным ЦАП и передавать цифровой сигнал.
    Ответ написан
    1 комментарий
  • Как понять VLANы?

    athacker
    @athacker
    Влан -- это всего лишь идентификатор в ethernet фрейме. Который может принимать значения от 1 до 4094. Вланы не бывают тегированными или не-тегированными, они по определению тегированные. Бывает тегированным или не-тегированным трафик. Тегированный -- это тот, в ethernet фреймах которого соответствующее поле реально содержит VID -- VLAN ID, т. е. номер влана. Не-тегированный -- соответственно, такой фрейм, где номера влана нет.

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

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

    Может быть и обратная ситуация -- прилетит тегированный трафик в транковый порт (допустим, в 5-ом влане). Коммутатор определит, что получатель трафика находится на таком-то порту, и этот порт настроен для отправки не-тегированного трафика. Тогда коммутатор перед передачей пакета в этот порт уберёт трафик из фрейма и только потом отдаст фрейм в порт.

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

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

    Что касается микрота -- добейтесь сначала связи между роутером и компом в сети 192.168.1.0, без DHCP и тем более натов.

    IP 192.168.1.1 пингуется из сети 192.168.0.1 -- это понятно, так как адрес принадлежит вашему маршрутизатору. Вы можете ему на интерфейс 8.8.8.8 повесить, и он тоже будет пинговаться, даже при отсутствии интернета -- если между роутером и компом связь есть.

    Service tag ставить не надо -- это уже из области Q-in-Q, вложенных вланов (если на пальцах).

    Vlan1 -- какой vlad ID имеет?
    Ответ написан
    1 комментарий
  • Как настроить IAXMODEM на Asterisk11+FreeBPX?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    owner uucp:uucp
    Вы же сами указали, что надо запускаться от пользователя uucp в группе uucp.
    Ответ написан
    Комментировать