Задать вопрос
  • Как взять часть файла?

    DmZ
    @DmZ
    А зачем что-то искать если родные функции PHP отлично все найдут за вас.
    Делаете fseek в случайное место файла. Делаете первый fgets() или stream_get_line() c достаточным размером буфера — они гарантированно сами найдут конец строки. Далее делаете fseek от первоначального места + считанная длина строки — т.е. гарантированно попадаете на начало след. строки, которой делаете fgets() и используете.
    (Нужно добавить проверки на EOF конечно)
    Таким образом вы получите свою строку ценой памяти занятой буфером fgets/stream_get_line и все.
    Ответ написан
  • Поддержка DHCP Option 121 и 249 в Mac OS X?

    DmZ
    @DmZ
    DHCP Inform сам по себе поддерживается, вот кусок из man ipconfig:
    ipconfig set interface-name (MANUAL | INFORM) ip-address subnet-mask

    The INFORM service configures the IP address statically like MANUAL, but then broadcasts
    DHCP INFORM packets to retrieve DHCP option information. If the DHCP server responds and
    supplies a subnet mask, that subnet mask is used instead of the specified subnet-mask.


    Т.е. в тестовых целях можно попробовать руками отправить.
    Но на самом деле при коннекте к PPTP серверу все отправляется, вот скриншот Wireshark:



    Сейчас нет времени городить конфиг с лиссяры, но вечером или завтра подниму стенд с циской — проверю поддержку конкретных опций, но имхо должны поддерживаться :)
    Ответ написан
  • Можно ли прокинуть реальные айпи во внутреннюю сеть через маршрутизатор?

    DmZ
    @DmZ
    Можно попробовать через Setup -> Advanced routing. И там настроить роут на каждый из четырех адресов (да, это немного не корректно, но работать должно). Правда у каждого внутреннего устройства должен быть также и локальный адрес и нужно внимательно посмотреть как будет вести себя NAT — не будет ли исходящий трафик весь идти под одним адресом.
    Ответ написан
    Комментировать
  • Cisco VPN client за FreeBSD

    DmZ
    @DmZ
    Cisco VPN client может работать в трех режимах — обычный (используются протоколы AH/ESP, и UDP 500 по-моему), NAT-T (используются UDP порты 500/4500) и тунелирование (используется TCP 10000)
    Включите режим NAT-T на клиенте — должно нормально работать и без проброса портов.
    Ответ написан
    2 комментария
  • Как повторить схему питания ноутбука?

    DmZ
    @DmZ
    Чтобы ОС видела как батарею — посмотрите в сторону стандарта Smart Battery. У многих производителей (TI, Maxim, etc.) есть микросхемы для мониторинга аккумов по этому стандарту. Подключается обычно через I2C/SMBus (на некоторых матерях есть выводы для подключения). Так же некоторые UPS притворяются Smart Battery и при USB подключении.
    Ответ написан
    1 комментарий
  • Многопроектный Trac на MySQL. Каждый раз создавать новую базу?

    DmZ
    @DmZ
    Простой вариант:
    На данный момент невозможно, так как имена таблиц прописаны явно в некоторых местах (например SQL запросы в upgrade скриптах).

    Средней сложности:
    Дождаться когда будет поддержка в мейнстриме. Тикету #130 Multi-project support уже восемь лет, а воз и ныне там. Правда обсуждение продвинулось и начали реализовывать концепцию поддержки нескольких проектов одним энвом (немного не то что нужно вам).
    Если посмотреть в тикете, то есть отсылки к костылям на PostgreSQL. Можно попробовать реализовать такой же подход с view и в MySQL, но простоты добавления энва это не добавит… Просто избавит от кучи баз в ущерб скорости и удобству.

    Сложный вариант:
    Реализовать такую поддержку самостоятельно и сабмитить патч в мейнстрим.
    Ответ написан
    1 комментарий
  • NGINX и JMS, как?

    DmZ
    @DmZ
    Как связать теплое с мягким? Что ваш разработчик имел ввиду?
    Если балансировка нагрузки между JMS серверами (если это возможно, не пробовал) — то это уровень TCP. Nginx не умеет балансировать/проксировать TCP соединения, для этого лучше использовать HAProxy.
    Ответ написан
    Комментировать
  • libvirt через web

    DmZ
    @DmZ
    Есть API для Python, которое идет из коробки. Можно написать простенький сервис.
    Но есть уже virttool. Хотя он и не настолько простой как требуется (см. скриншоты) но зато выполняет функцию управления libvirt-доменами через веб.
    Ответ написан
  • На сколько надежен ардуино?

    DmZ
    @DmZ
    ATmega328/1280/2560 работают в индустриальном диапазоне температур -40..85 (характеристики ATmega328 например).
    Остальные компоненты именно на Arduino-плате используют обычный диапазон (от 0 градусов) — так что нужно быть внимательным. Платы расширения — также нужно смотреть, в большинстве своем используют микросхемы со стандартным диапазоном температур.
    Если герметизировать «вычислительный блок» — то проблем с влажностью быть не должно (оно не так сильно греется чтобы принудительно вентилировать, но заливать эпоксидкой тоже перебор). Разъемы подключения должны быть соответствующие.

    По-поводу стабильности работы и зависаний — все зависит от программиста :) как он напишет, так и будет работать.
    Ответ написан
    2 комментария
  • Управление ключами пользователей на среднем количестве серверов под управлением GNU/Linux

    DmZ
    @DmZ
    Кто мешает через puppet хранить ключ в ~/.ssh/authorized_keys?
    У нас так реализовано (правда через chef) — список пользователей, привязанный к ним список ключей и authorized_keys перезаписывается если список изменился.
    Проблем никаких — ключ поменялся, ты изменил его для пользователя, изменение разошлось по серверам. Старые ключи при этом потерлись, чтобы был контроль над доступом.
    Ответ написан
    1 комментарий
  • Обнаружение IP-пакетов внутри потока данных?

    DmZ
    @DmZ
    В общем случае не выйдет просто найти пакет IPv6.
    Если есть заголовки Ethernet, то можно смотреть на «тип» и версию внутреннего протокола. (В любом случае это позволит практически 100% определять IPv4/IPv6 пакеты)
    В случае с PPP — прийдется анализировать и установку соединения и конфигурацию (IPCP/IP6CP) — одним регеэкспом не отделаешься :(

    Может проще посмотреть на нормальные тулзы типа Wireshark?
    Ответ написан
  • nfs4 и kerberos: как оно вообще работает?

    DmZ
    @DmZ
    Может плохие how-to читали? Вот очень хорошо расписано: NFS4Howto

    Kerberos используется для аутентификации пользоваля (валидный или нет), а для авторизации (пермишины на файлах) используются стандартные средства nfs4 (idmapd).
    В случае без kerberos — аутентификацией пользователя занимается локальная система (PAM например). Т.е. использовать NFS шару может любой локальный пользователь у которого есть авторизация (пермишины на файлах). В случае с kerberos пользователю не достаточно иметь локальный вход — чтобы пользоваться шарой у него должен быть валидный тикет, ну и соответствующие пермишины на файлах.

    Как соотносятся «учетные записи» kerberos зависит от того КАК настроена система аутентификации. Керберос никак за авторизацию в данном случае не отвечает — только за аутентификацию.
    Например если Kerberos + LDAP + PAM — то uid/gid пользователя может передаваться из LDAP, соотв. он будет одинаковый везде.
    Если нет центрального хранения пользователей, то нужно разруливать через маппинг id в nfs.
    Ответ написан
    7 комментариев
  • Возможно ли использовать OER в Cisco 1812?

    DmZ
    @DmZ
    Можно не гуглить, а воспользоваться Cisco Feature Navigator, где говорится что OER доступен для 1812 с фичами Advanced IP Services и Advanced Enterprise Services.
    А так же документацией на саму фичу, где говорится что появилась она в 12.3(8)T.

    Так что ваш дивайс подходит под все условия, должно работать.
    Ответ написан
  • Python hex or binary data man

    DmZ
    @DmZ
    Выше сказали верно — упаковываете не то что распаковали.
    Если файл небольшой, то удобнее наверно сразу считать его в массив, обработать, а потом массив записать.
    Например так:

    data = file('ac.swf','rb').read()
    bytearr = unpack('<%db'%len(data), data)
    # Process array bytearr: enumerate(bytearr)...
    file('aaaa.swf','wb').write(pack('<%db'%len(bytearr), bytearr))
    Ответ написан
  • Обход роутера в Python Remote Objects возможен?

    DmZ
    @DmZ
    Pyro работает по tcp, поэтому «продырявить» файрвол автоматически не так просто. Если на роутере сделать проброс (NAT) порта, то дальше по документации Pyro behind NAT-router
    Ответ написан
  • Копирайт и ноутбук

    DmZ
    @DmZ
    Учитывая что официально с дистриба винды можно сделать одну бекап-копию (мало ли что) — «покупаете» вы наклейку по-сути. И практически во всех договорах есть пункт об одной бекап-копии… То слить на болванку копию оригинального диска — никто просто не скажет что это «не бекап-копия».
    По поводу других версий ПО — у Dell, к примеру, весь комплект поставки можно по серийнику проследить, не думаю что у Lenovo хуже. Так что если копнуть, то вполне можно сказать что копия не с оригинальной поставки. Вопрос в том будет ли необходимость/время/желание копать.
    Ответ написан
  • Софт для автоматического сравнения схем PostgreSQL?

    DmZ
    @DmZ
    Данные сравнивать/синкать можно rubyrep — отлично справляется с задачей перекинуть засинкать две базы. Правда схемы он не умеет сравнивать и для синка схемы уже должны быть одинаковые
    Ответ написан
    Комментировать
  • Как померять реальную нагрузку на блок питания?

    DmZ
    @DmZ
    Втыкаться никуда не нужно. Есть такое устройство токосъемные клещи (например) — при разобраном корпусе снимаете показания с каждой из линий (12/5В), складываете и получаете потребляемую мощность.
    Из реального просчета Quad + 2xWD 1Tb + 1Sams 250Gb + 4Gb mem + Video (int DQ45) работают с БП 180Вт и хватает с головой, планирую расширять еще на 2xWD 1Tb
    Ответ написан
    Комментировать
  • Очень долго перезапускается Apache?

    DmZ
    @DmZ
    Скрипт отрабатывает «без ожидания (не рисует точечки)» — потому что он криво написан.
    while kill -0 "${PID:-}" 2> /dev/null; do
    будет всегда FALSE когда процесс запущен, т.к. kill -0 возвращает 0 (т.е. false) если процессу можно послать сигнал.
    Если переписать скрипт на что-то типа такого, то оно будет ждать завершения процесса:
    kill -0 ${PID:-}
    while [ $? -eq 0 ]; do
    .....
    kill -0 ${PID:-}
    done;


    Далее следует проверить а кто именно занимает сокет и в каком он состоянии, например netstat -anptl | grep 127.0.0.1:80
    И дальше от этого плясать (ну и логи во время остановки никто не запрещал смотреть).
    Ответ написан
    2 комментария