• Microsoft хочет денег за бесплатную подписку

    DmZ
    @DmZ
    Кстати, в коментариях к статье о биткоинах этот вопрос тоже вылез После 3 дней использования от Azure меня отключили (но кто осилит прочесть все коментарии? :) )
  • Возможно ли скачать эти видео с INE?

    DmZ
    @DmZ
    Они вроде еще весной начали выкладывать курс CCNA, а вот остальное только тизеры — полный курс за денюжку :)
  • А есть ли что либо более приятное для написания кода, чем Arduino IDE?

    DmZ
    @DmZ
    Не скажу что у меня настройка Eclipse заняла много времени. Там в примере кроме настройки еще и введение в использование и прочая документация. Настройка заключается в установке avr-eclipse и подключению либ из установленной arduino ide — не так много буков за нормальную IDE :)
  • Вывод логов Apache, который работает в VirtualBox?

    DmZ
    @DmZ
    «Вы не любите кошек? ...» (с)
    В данном случае это не продакшн и не что-то сверх критичное. У меня постоянно крутится несколько виртуалок поднятых через vagrant (он автоматом шаред подключает), и в shared folder лежит git репо, с которым активно работаешь как в хост так и в гест окружении — пока проблем не замечено. Правда у меня host/guest всегда различные Linux, может под Windows оно более глючное.

    Можно тупо ходить на виртуалку по SSH и смотреть логи :) Вопрос в том что привычнее/удобнее будет ТС
  • Как на Python распарсить большой XML файл (>500Мб) содержаший ошибки?

    DmZ
    @DmZ
    Например перенесем наш инвалидный пример в файл text.xml и скажем что tag21 не должен парсится вообще:
    <?xml version="1.0"?>
    <!DOCTYPE tag1 [
    <!ELEMENT tag1 (tag21, tag22)>
    <!ELEMENT tag21 (CDATA)>
    <!ELEMENT tag22 (#PCDATA)>
    ]>
    <tag1>
      <tag21>
        <p>text
        <p>text2</p>
        <p>text3
      </tag21>
      <tag22>
        <br/>
      </tag22>
    </tag1>
    

    А теперь заставим lxml прочитать уже с учетом структуры:
    >>> from lxml import etree
    >>> parser = etree.XMLParser(recover=True, huge_tree=True, load_dtd=True)
    >>> tree = etree.parse("test.xml", parser)
    >>> print etree.tostring(tree, pretty_print=True)
    <!DOCTYPE tag1 [
    <!ELEMENT tag1 (tag21 , tag22)>
    <!ELEMENT tag21 (CDATA)>
    <!ELEMENT tag22 (#PCDATA)>
    ]>
    <tag1>
      <tag21>
        <p>text
        <p>text2</p>
        <p>text3
      </p>
      <tag22>
        <br/>
      </tag22>
    </p>
    </tag21></tag1>
    

    Согласитесь что уже гораздо лучше.

    Но так как структуру документа знаете только вы, то только вы сами должны разобрать поломанный XML пусть и с помощью сторонних программ. Никакие программы не будут обладать достаточной эвристикой чтобы распарсить поломанный XML так как хочется именно вам.
  • Как на Python распарсить большой XML файл (>500Мб) содержаший ошибки?

    DmZ
    @DmZ
    Он парсит все, просто остальной документ находится внутри этого самого тега — будет каша, так как XML изначально не валидный.
    Пример:
    >>> from StringIO import StringIO
    >>> from lxml import etree
    >>> xml = "<tag1><tag21><p></tag21><tag22></tag22></tag1>"
    >>> parser = etree.XMLParser(recover=True, huge_tree=True)
    >>> tree = etree.parse(StringIO(xml), parser)
    >>> print etree.tostring(tree, pretty_print=True)
    <tag1>
      <tag21>
        <p/>
        <tag22/>
      </tag21>
    </tag1>
    

    Парсер пытается сделать все что может чтобы получить хоть какой-то XML.
    Или если добавить текста, то многое уйдет «под» первый не закрытый тег:
    >>> xml = "<tag1><tag21><p>text<p>text2</p><p>text3</tag21><tag22></tag22></tag1>"
    >>> tree = etree.parse(StringIO(xml), parser)
    >>> print etree.tostring(tree, pretty_print=True)
    <tag1>
      <tag21>
        <p>text<p>text2</p><p>text3</p><tag22/></p>
      </tag21>
    </tag1>
    


    Чтобы этого не происходило, можно к документу написать DTD — структуру документа.
  • Как на Python распарсить большой XML файл (>500Мб) содержаший ошибки?

    DmZ
    @DmZ
    from lxml import etree
    
    parser = etree.XMLParser(recover=True, huge_tree=True)
    tree = etree.parse("file.xml", parser)
    
  • Аналоги GNS3. Кто какие знает?

    DmZ
    @DmZ
    JDima, за IOU-WEB спасибо, почему-то упустил из виду что есть такая замечательная штука!
  • Какие способы нумерации версий существуют?

    DmZ
    @DmZ
    Обычно Z увеличивается при хотфиксе, Y — следующая версия с неким функционалом, X — обратно не совместимые изменения или много функционала.
    Но, все зависит от договоренностей :) Например OpenBSD использует X.Y и увеличивает на 0.1 каждые полгода, соотвественно между версией 4.9 и 5.0 просто прошло полгода, а не какие-то фиксы/баги/фичи.
    Многие нумеруют как Ubuntu — X.Y.Z где X — год выпуска, Y — месяц, Z — появляется только если >0 и означает секьюрити апдейт X.Y версии.
    Ну и есть те кто нумеруют просто датой 20121009.1

    Применяйте тот способ, который больше подходит под ваши задачи.
  • Как сделать "Gaikai"?

    DmZ
    @DmZ
    RDP клиенты (а под Linux только один вменяемый — это freerdp) заточены под работу, а не под стриминг видео :)

    Опция ffmpeg -tune zerolatency
    А по поводу количества звеньев — тут сильно уменьшить не выйдет — RDP клиента нужно где-то запустить, а ffmpeg нужно откуда-то грабить видео, так что без промежуточного X сервера врядли. Разве что убрать стример и стримить по UDP самим ffmpeg

    Или ставить граббер в самой виртуалке (если возможно) и отказываться от RDP/Xvfb/RDP-client скопом…
  • Сетевая карта не подключается на скорости выше 10 Мбит/с

    DmZ
    @DmZ
    Тестировать все равно нужно с каким-то дивайсом, чтобы проверить что линк поднимается.
    Можно попробовать обжать loopback для гигабита (посмотреть загорится линк на карте или нет), но у вас как я понял нет такой возможности.

    Еще вариант взять прямой кабель и на одной из карт выключить Auto MDI/MDI-X а на другой наоборот — включить. Тогда одна из сторон должна попытаться определить что нужно переключиться в кросовый режим…
  • Использование левого контроллера ATMEGA328P-PU в плате Arduino UNO

    DmZ
    @DmZ
    Чтобы не покупать программатор, вот есть инструкция как самой ардуиной перепрошить другой кристалл: Arduino ISP
  • MikroTik. Домашная сеть 192.168.1.0/24 и рабочая сеть 192.168.1.0/24 через VPN

    DmZ
    @DmZ
    Чтобы трасерт показывал правильно, попробуйте добавить еще srcnat для обратного мапинга сети c in-interface=pptp. (chain=srcnat action=netmap to-addresses=192.168.2.0/24 src-address=192.168.1.0/24 in-interface=pptp). Не уверен что оно сработает раньше чем сохраненное состояние dstnat, но попробовать стоит.

    Для проверки чего не хватает — нужно сначала проверить есть ли лаги при нормальном подключении, т.е. с другого диапазона IP. Поднимите отдельный интерфейс с другим диапазоном адресов для проверки. Оставьте только маскарадинг на pptp. Подключитесь и проверьте — если будет так же плохо, то дело в самом соединении.
  • Литература по AVR?

    DmZ
    @DmZ
    По поводу ассемблера там же можно почитать: C vs Assembler
  • Как использовать UPnP на Python?

    DmZ
    @DmZ
    По ссылкам объясняется что можно сделать. Эффект будет перманентный, так как через UPnP можно управлять устройством, ролик нужно «запустить» один раз, все настройки что он сделал остануться до перезагрузки роутера. Например у вас на машине включен RDP (SSH, FTP, подставьте свое) чтобы из кухни в комнату не ходить… Флеш может сделать проброс 3389 (22, 21, любого) порта и ваш «RDP» окажется выставленный в мир, и можно будет произвести брутфорс и получить доступ на внутреннюю машину. (Хотя вы уверены что за файрволом роутера ей ничего не угрожает).

    Из второй ссылки (перевел для удобства):
    Следующее возможно с помощью UPnP:
    • портмап внутренних сервисов на внешнем интерфейсе (проброс портов)
    • портмап веб-интерфейса роутера на внешнем интерфейсе (позволяет брутфорсить вебку роутера из инета)
    • портмап на любой внешний адрес (помогает злоумышленнику скрыть свой IP при аттаках на внешний адрес. Он посылает пакеты на ваш роутер и промапленный порт, а ваш роутер от своего IP уже пересылает пакеты на хост жертвы)
    • подмена DNS серверов (актуально если роутер одновременно DHCP-сервер, позволяет перенаправить запросы какого-нить bank.com на сервер злоумышленника).
    • изменить административные пароли на роутер
    • изменить настройки подключения PPP
    • изменить настройки IP на всех интерфейсах
    • изменить настройки WiFi
    • разорвать соединение


    Это конечно больше для параноиков, но лучше знать что потенциально можно сделать с помощью этого протокола.
    И нужно выбирать между «да кому я нафиг нужен» и безопасностью :)
  • Как использовать UPnP на Python?

    DmZ
    @DmZ
    Но я надеюсь что включая (вернее не выключая) UPnP на роутере вы в курсе уязвимости, которой уже более четырех лет (пример 1, 2) и которая может просто открыть вашу сеть злоумышленнику простым посещением сайта с флешем?
  • Как взять часть файла?

    DmZ
    @DmZ
    Поэтому и было предложено две разных функции — у fgets() автодетект (см. документацию), а в stream_get_line() можно передать символ конца строки.
  • Как взять часть файла?

    DmZ
    @DmZ
    По-моему даже второй fseek не нужно делать, так как fgets/stream_get_line выйдут когда найдут конец строки, а значит указатель файла будет на начале след. строки.
  • Поддержка DHCP Option 121 и 249 в Mac OS X?

    DmZ
    @DmZ
    На заборе тоже написано :) Но снимал я не с PPP, а с en0, так как PPTP все равно через него идет. А чтобы увидеть что внутри просто явно отключил шифрование туннеля.
    Если посмотреть на DHCP Inform пакет — то wireshark покажет заголовки PPP/PPTP, просто он сам стрипает заголовки до «нужного» уровня.
  • Cisco VPN client за FreeBSD

    DmZ
    @DmZ
    Вот прямо сейчас работает три впн клиента (и вин и линух) за фрей. Никакой специфической настройки/пробросов — на фре pf, клиенты в nat-t режиме.