Задать вопрос
  • Как из четвертичной системы перевести в двоичную?

    @throughtheether
    human after all
    В данном случае (4 - степень двойки) можно заменить каждый символ на его бинарное (двухбитное) представление:
    0 -> 00
    1 -> 01
    2 -> 10
    3 -> 11
    Получим 01101101. Ноль в старшем разряде можно отбросить.
    Ответ написан
    Комментировать
  • Сгорел конденсатор, идентифицируйте?

    @throughtheether
    human after all
    Судя по всему, это танталовый конденсатор.
    106 - это номинальная емкость, 10 * 10^6 пФ = 10 мкФ.
    25K - видимо, напряжение и допуск параметров.
    UPD:
    вот такие могут подойти (хотя цена могла бы быть пониже): ссылка.
    Ответ написан
    4 комментария
  • Нужны ли вам обучающие ролики по Mikrotik?

    @throughtheether
    human after all
    да, особенно на тему QoS/полисинга/шейпинга.
    Ответ написан
    5 комментариев
  • Где посмотреть хронологию развития роутеров CISCO?

    @throughtheether
    human after all
    Есть такая статья, но там только модели "офисных" (branch) линеек рассмотрены, и то не все.
    Ответ написан
    Комментировать
  • Передача списка в объект класса по ссылке, как сделать?

    @throughtheether
    human after all
    Код покажите, скорее всего вы что-то неправильно делаете.
    Вот пример.
    >>> def f1(l):
    	l=l+[0]
    	
    >>> def f2(l):
    	l+=[0]
    	
    >>> def f3(l):
    	l.append(0)
    
    >>> mylist=[1,2,3]
    >>> f1(mylist)
    >>> mylist
    [1, 2, 3]
    >>> f2(mylist)
    >>> mylist
    [1, 2, 3, 0]
    >>> f3(mylist)
    >>> mylist
    [1, 2, 3, 0, 0]

    В первой функции выражение l=l+[0] создает локальную переменную l, которая ссылается на некий новый список, состоящий из элементов списка, переданного в функцию, с добавленным элементом (0). То есть l слева и l справа - это разные переменные.

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

    Хотел бы отметить, специалистом по CS (в части теории языков программирования) не являюсь, мог напутать с терминологией.

    Есть на эту тему хорошая статья.

    UPD:
    Первый пример подробнее:
    >>> def f1(l):
    	print "Value at function start: {}, id: {}".format(l,id(l))
    	l=l+[0]
    	print "Value at function end: {}, id: {}".format(l,id(l))
    
    	
    >>> mylist=[1,2,3]
    >>> f1(mylist)
    Value at function start: [1, 2, 3], id: 44215272
    Value at function end: [1, 2, 3, 0], id: 5440176
    >>> mylist
    [1, 2, 3]

    Видно по разным id, что происходит обращение к разным переменным.
    Ответ написан
    2 комментария
  • Какую можно взять интересную и необычную тему для диплома?

    @throughtheether
    human after all
    Реализация Tor-релея на модном языке (статья на тему).
    Ответ написан
    Комментировать
  • Как сформировать такой regexp?

    @throughtheether
    human after all
    Используйте модификатор жадности (?). Пример.
    Ответ написан
    Комментировать
  • Зачем нужно скремблирование?

    @throughtheether
    human after all
    Хороший вопрос.

    Насколько помню, манчестерский код в мире Ethernet (речь, как я понял, именно об этой технологии) используется только в 10BASE-T реализации. В 100BASE-TX, если не путаю, используется расширительное кодирование 4B/5B, затем скремблирование (т.е. замена символов на другие), затем MLT-3. Предположу, что от манчестерского кодирования отказались по соображениям компактности спектра и других ВЧ-параметров (при использовании NRZI или MLT-3 наблюдается меньше фронтов). Кроме того, расширительное кодирование (4B/5B) позволяет использовать до 16 символов в качестве служебных (JK, TR в случае Ethernet 100BASE-TX). 100BASE-TX интерфейс, например, при отсутствии пользовательских данных постоянно шлет служебные символы, что позволяет быстро обнаружить потерю линка.

    Скремблирование (100BASE-TX и выше), т.е. замена символов на другие, насколько мне известно, производится в случае использования витой пары для нормализации таких характеристик, как cross-talk.

    Кстати, нашел интересную картинку. И статью.
    Ответ написан
    Комментировать
  • Где найти информацию о распараллеливании вычислений в питоне?

    @throughtheether
    human after all
    Посоветуйте интересный проект/хороший пример или блог, где затронута эта тема.
    IPython, MPI

    З.ы можно ли для этих целей использовать гринлеты?
    Можно, но не нужно. Гринлеты, насколько мне известно, более эффективны при конкурентной обработке задач, касающихся IO.
    Ответ написан
    Комментировать
  • Как правильно переписать часть кода с Python на Си?

    @throughtheether
    human after all
    primary_list = tuple([line.strip() for line in open('file1.txt', 'r')])
    secondary_list = tuple([line.strip() for line in open('file2.txt', 'r')])
    Квадратные скобки, на мой взгляд, необязательны.

    for item in primary_list:
        if item is None:
          continue
    Не уверен, что эта ветвь выполнится хотя бы раз.

    Если стоит задача ускорить работу скрипта, то, на мой взгляд, проще переписать так:
    primary_set = frozenset(line.strip() for line in open('file1.txt', 'r'))
    secondary_set = frozenset(line.strip() for line in open('file2.txt', 'r'))
    with open('test.txt', 'w') as f:
        for item in primary_set&secondary_set:
            if item:
                f.write(item+'\n')
    print 'Complete'

    Можете добавить сортировку по вкусу.
    Ответ написан
    Комментировать
  • Пытаюсь обновить прошивку на Extreme x150, можете подсказать что не так?

    @throughtheether
    human after all
    Такая ситуация при каждом запуске наблюдается?
    UDP, в частности, порт 69, нигде по пути не фильтруется?
    Ответ написан
  • Передача трафика двух подсетей по одному кабелю (VLAN)?

    @throughtheether
    human after all
    Первый коммутатор:
    create vlan 10 tag 10
    create vlan 20 tag 20
    !ввод 10 влана:
    config vlan 10 add untagged 1:1
    !ввод 20 влана:
    config vlan 20 add untagged 1:2
    !транк до другого коммутатора
    config vlan 10 add tagged 1:48
    config vlan 20 add tagged 1:48

    Второй коммутатор (то же самое):
    create vlan 10 tag 10
    create vlan 20 tag 20
    !ввод 10 влана:
    config vlan 10 add untagged 1:1
    !ввод 20 влана:
    config vlan 20 add untagged 1:2
    !транк до другого коммутатора
    config vlan 10 add tagged 1:48
    config vlan 20 add tagged 1:48
    Коммутаторы соединить 48 портами. Порты 1 - ввод и вывод влана 10, порты 2 - влана 20.

    Вы говорите, что в теории вам все понятно, я вам не верю. Изучите, когда и как на фрейм ставится или снимается тег, вам многое станет ясно.

    В данном случае, трафик входит через access-порт (untagged в мире d-link), в случае направления (форвардинга) через транк (tagged), к нему добавляется тег. На втором коммутаторе приходит тегированный фрейм, перенаправляется в соответствующий влану порт. Так как данный влан в данном порту не тегируется, тег снимается.
    Ответ написан
    6 комментариев
  • Что сделать с wifi-роутером, если периодически "проседает" ping?

    @throughtheether
    human after all
    У вас через Wi-Fi (WLAN) еще кто-то подключен к этой точке доступа? Через LAN? Между LAN и WLAN какие отношения (бриджинг, маршрутизация)?

    Попробуйте проанализировать входящий на ваш компьютер через Wi-Fi интерфейс трафик при помощи wireshark, ищите повторяющиеся паттерны. Есть подозрение, проблема может быть связана с многоадресным (мультикастовым) трафиком. Насколько помню, в Wi-Fi-окружении доставка такого трафика организована менее тривиально, чем в Ethernet-мире.
    Ответ написан
    3 комментария
  • Какая информация отправляется в TCP посылке?

    @throughtheether
    human after all
    Есть ли в отправляемом пакете информация о количестве отправленных байт?
    Если есть TCP-сегмент, инкапсулированный в IP-пакет, то длину полезной нагрузки (payload) TCP можно узнать так - из длины полезной нагрузки IP (вычисляется как разница полной длины IP пакета, Total Length, и длины заголовка, Internet Header Length) вычитаем длину заголовка TCP (поле Data Offset).

    Если задача другая - узнать, сколько байт получилось отправить, то эту информацию (количество переданных байт), насколько помню, возвращает вызов send/write.
    Ответ написан
  • Как расширить протокол "покер по телефону" на троих?

    @throughtheether
    human after all
    Эта задача иногда именуется "mental poker". Я такую статью нашел, может быть, вам поможет. Сам протокол описан на 5й по счету странице (стр. 88), начиная со слов Proof of Theorem 1.
    Ответ написан
    Комментировать
  • Где взять базу IP адресов крупнейших провайдеров Казахстана?

    @throughtheether
    human after all
    где можно брать актуальную базу стеков IP адресов
    К сожалению, не знаю, что такое стеки IP адресов.

    Если вам нужны выделенные казахстанским организациям префиксы, можете здесь посмотреть (кликните на каждую/любую AS, затем на вкладку [prefixes v4]).

    Первоисточник таких данных (быть может, менее удобный) здесь.
    Ответ написан
  • Как улучшить скорость функции?

    @throughtheether
    human after all
    Что можете посоветовать?

    sum(range(n+1)) - константа (в дальнейшем, C) для заданного n, можно вынести ее вычисление за цикл.
    Далее, ваше уравнение можно переписать: b = (C-a)/(a+1). Можно перейти от квадратичного времени к линейному, итерируя по a и проверяя делимость (C-a) на (а+1)

    Навскидку:
    def get_ab(n):
    	C=sum(xrange(1,n+1))
    	return [(a, (C-a)/(a+1)) for a in xrange(1,n+1) if (C-a)%(a+1)==0 and (C-a)/(a+1)<n]


    In [10]: % timeit removNb(10)
    1000 loops, best of 3: 185 us per loop
    In [11]: %timeit get_ab(10)
    100000 loops, best of 3: 6.74 us per loop
    Ответ написан
    3 комментария
  • Как решить задача связанную с такой арифметической прогрессией?

    @throughtheether
    human after all
    Значение на i-том месте (начиная счет с единицы) равно 2i(i-1). Если надо найти индекс значения, то необходимо решить квадратное уравнение вида 2i(i-1)=A, где i-переменная.
    Ответ написан
    1 комментарий
  • Какой оптимальный размер MTU для скорости 1 Гбит/с?

    @throughtheether
    human after all
    Если вопрос теоретический (ну мало ли, преподаватель проверяет ваши знания), то есть такая формула Матиса (Mathis), которая оценивает верхнюю границу производительности TCP в зависимости от MSS (т.е. и MTU), RTT и вероятности потери пакета. Подробнее здесь

    Если вопрос прикладной, то я попросил бы вас прояснить, что за "скорость 1 Гбит/c" имеется в виду. Какова топология сети, между какими ее нодами нужна такая скорость, через какие устройства идет интересующий вас трафик, как именно эта скорость задается (т.е. или это просто гигабитный ethernet-интерфейс, или нужно устойчиво передавать пользовательские данные с этой скоростью).

    На мой взгляд, когда есть отдельная компактная SAN-сеть, соединяющая сервера и дисковые полки, увеличение MTU имеет смысл. Если же предполагается, например, генерировать трафик в интернет, конечным пользователям, то, думаю, эффекта вы не заметите (MTU где-то на пользовательском доступе наверняка будет меньше вашего)
    Ответ написан
    Комментировать