Тестирование регекспов на совместимость
такая задача -- есть два регекспа, для начала basic regexps. Нужно уметь проверять совместны ли они, то есть существует ли строка которая удовлетворяет им обоим. Есть какие-то стандартные алгоритмы?
такая задача -- есть два регекспа, для начала basic regexps. Нужно уметь проверять совместны ли они, то есть существует ли строка которая удовлетворяет им обоим. Есть какие-то стандартные алгоритмы?
Сейчас на верхнем уровне есть 2 шаблона для одного и того же узла:
<xsl:template match="/shim/hardware">
... code 1
<xsl:template match="/shim/hardware">
... code 2
Если любой из них закомментировать, то оставшийся успешно отрабатывает. Если же они присутствуют оба, то срабатывает только один (последний). Как сделать чтобы срабатывали оба?
Я конечно могу слить их в один, но они концептуально отделены, поэтому хочу иметь их раздельно.
тестирую новый подфорум..
допустим апаче принимает сжатый запрос POST. Потом апаче расжимает его и передает скрипту. Если злоумышленник берет 500 мегабайт нулей, сжимает его в 500 кбайт и дает апачу. И так несколько запросов. Апач накроется расжимая их? Можно как-то настроить апач, чтобы он отвергал такие запросы?
Есть некое базовое множество, кол-во элементов в нем измеряется в сотнях. Оно фиксировано.
Есть набор подмножеств этого базового мн-ва. их могут быть тысячи. Этот набор тоже фиксирован.
Теперь нам предъявляют еще одно подмножество базового мн-ва и просят список всех подмн-в из набора, которые содержатся в нем. Это можно как-то реализовать эффективнее чем пройдя по всему набору и посчитав битовые маски?
народ, что такое SetMappings? Вроде распространенное понятие, не могу въехать в его смысл? Вкратце так?
нужно срочно выучить перл.. Шелл использовать не могу из-за производительности..
Я не понимаю внутренней логики того как работает:
substr($string,9,2) = 'some_string'
Что именно возвращает substr, что оно работает как ожидается??
из любопытства возник вопрос что нужно поставить в #! перлового скрипта, чтобы он нашел путь к перлу производя поиск в PATH.
Есть рецепт: #/usr/bin/env perl
Это работает. Но нет гарантии что сам env будет в /usr/bin Собственно, единственную более-менее гарантию что я знаю это /bin/sh
Соответственно попытался поставить: #!/bin/sh -c perl
Это не работает. Потому что вызывается /bin/sh -c perl prog, а нужно /bin/sh -c 'perl prog'
Ну я парень не промах, и сделал #!/bin/sh -c 'perl $1'
Но это тоже не работает. Потому что sh -с command ожидает сперва имя процесса, и только потом аргументы.
Отлично. Делаю #!/bin/sh -c 'perl $1' xxx
Но это тоже не работает, уже по непонятным причинам. То что я хочу как-то можно вообще сделать?:)
я сегодня обнаружил одну вещь от которой прифигел. Эта вещь пошла в мою копилку доказательств что линукс пионерская поделка.. Итак имеем 2-процессорный сервер с обычным генту: $ uname -a Linux some_srv 2.6.16.19 #1 SMP Sat Jun 23 19:35:24 MSD 2007 x86_64 Intel(R) Core(TM)2 CPU 6700 @ 2.66GHz GenuineIntel GNU/Linux Запускаю 3 процесса тупо жрущих CPU. Имеем: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 13081 user 25 0 6992 868 740 R 100 0.0 4:48.62 a.out 13080 user 25 0 6988 868 740 R 50 0.0 2:24.87 a.out 13082 user 25 0 6992 868 740 R 50 0.0 2:24.73 a.out мы видим что одному из процессов тупо отдано в 2 раза больше CPU.
Преамбула: в xml разбираюсь слабо.
такая задача: есть описание чего-то в формате xml. Из этого описания
нужно извлечь вектор переменных. Набор переменных фиксирован.
Переменные бывают двух типов: float и discrete.
Как правило извлечение переменной -- это отыскание значения некого
атрибута в каком-то теге.
Например, отсюда:
<shim>
<hardware>
<item type ='Processor' id='0'>
<attribute name='Name' value='T5600'/>
<attribute name='CPUID' value='000006f2'/>
<attribute name='Manufacturer' value='Intel'/>
<attribute name='BusSpeed' value='166'/>
<attribute name='MaxFrequency' value='1833'/>
извлекается переменная CPU_CLOCK равная 1833
Бывают переменные которые сводятся к подсчету количества каких-то
тэгов. (Например -- количество процессоров).
Хочется написать описание всех этих переменных и способа их извлечения
на каком-то подходящем для этого дела языке. И потом иметь, например,
шелл скрипт который его распарсит и сгенерирует С/С++ код с коллбэками
для libexpat.
Пока получается что-то типа такого:
FLOAT_VAL_EXTRACTOR CPU_CLOCK MATCH="shim"/MATCH="hardware"/\
MATCH="item":"type","Processor"/MATCH="attribute":"name","MaxFrequency"-VALUE="
\
value"
(это строка описывающая как извлечь CPU_CLOCK)
Хотелось бы узнать нет ли какого-то общепринятого языка для такого
типа описания? И нет ли готовых кодогенераторов?Есть модем ZTE ZXDSL 831 AII Он нормально работает в режиме гейтвея. Нужно настроить в режиме моста. Дело происходит в нетбсд. Ставлю адрес на сетевой карте подключенной к модему: # ifconfig ex0 inet 192.168.1.2 netmask 255.255.255.0 Далее: # ifconfig pppoe0 create # pppoectl -e ex0 pppoe0 # pppoectl pppoe0 myauthproto=chap myauthname=NAME myauthkey=PWD callin # ifconfig pppoe0 up После этого видно что сервер посылает PADI пакеты (как я понимаю -- service discovery), но ему никто не отвечает. Что нужно еще сделать? Имя сервиса добавить? Какое?
во первых, вопрос: субж жизнеспособен? он будет поддерживаться далее?
Вторая просьба: я хочу найти кого-нибудь у кого этот ROUTE extension установлен и попросить провести эксперимент.
такая фишка.
например в нетбсд если карту приаттачить к бриджу, то все что через нее идет продолжит работать. В линуксе это не так. К примеру нужно перенести рутинг с карты на бридж -- тогда продолжит работать.
Хочется этот перенос автоматизировать. Чем проще чем лучше.
Просто взять список рутов на карте и перекинуть их на бридж не годится: потому что например если на карте сидит dhclient, то он может через какое-то время запросить новый лиз и поломать этот рутинг.
Может быть можно как-то через iptables перекинуть пакеты? Или может быть вообще есть какой-то магический файл в /proc который заставляет линукс вести себя так же как нетбсд с бриджем?
Допустим пишется библиотека. Если она вся в одной единице трансляции, то просто неэкспортируемые функции объявляются static
Но нужно разбить на несколько единиц. И при этом получается что экспортируются некоторые символы, которые не должны. Как их можно загасить?
есть fd. Хочется воспользоваться комфортом ф-ций fgets, fscanf. Как это можно сделать?
пока додумался только до dup2(fd, 0), а потом fscanf(stdin, ...) но это по некоторым причинам не подходит
нужно получить ioctl'ами все адреса интерфейса, если адрес не один. Как это примерно можно сделать? (к исходникам /sbin/ip не отсылать)
в настройках стоит: 1. Status: POP is enabled for all mail that has arrived since Sep 4 в конфиге fetchmail'a: poll pop.gmail.com proto pop3 user "xxxxx" password "xxxxxxxx" запускаю: $ fetchmail -vv -a --tracepolls fetchmail: 6.2.5 querying pop.gmail.com (protocol POP3) at Thu, 26 Oct 2006 19:37:29 +0400 (MSD): poll started дальше затык на 5 минут и: fetchmail: 6.2.5 querying pop.gmail.com (protocol POP3) at Thu, 26 Oct 2006 19:40:00 +0400 (MSD): poll completed fetchmail: Query status=2 (SOCKET) fetchmail: Deleting fetchids file. fetchmail: normal termination, status 2 fetchmail: Deleting fetchids file.
у меня голова пухнет: $ cat bigfile | dd bs=64k count=1 > /tmp/yyy 1+0 records in 1+0 records out $ ll /tmp/yyy -rw-rw-r-- 1 xxxxxx xxxxxx 65536 Sep 18 20:40 /tmp/yyy $ cat bigfile | dd bs=65536 count=1 > /tmp/yyy 0+1 records in 0+1 records out $ ll /tmp/yyy -rw-rw-r-- 1 xxxxxx xxxxxx 8192 Sep 18 20:41 /tmp/yyy это баг в dd?
последнее время у меня в логах появляются странные вещи.
Первый тип:
Aug 25 21:38:09 flam /netbsd: arp info overwritten for 10.239.0.17 by 00:50:ba:f8:f4:04
Aug 25 21:38:09 flam /netbsd: arp info overwritten for 10.239.0.17 by 00:14:1c:d7:bc:4c
Aug 25 21:38:12 flam /netbsd: arp info overwritten for 10.239.0.17 by 00:50:ba:f8:f4:04
Aug 25 21:38:13 flam /netbsd: arp info overwritten for 10.239.0.17 by 00:14:1c:d7:bc:4c
Второй тип:
Aug 24 16:42:53 flam /netbsd: 00:0f:ea:e1:75:dc on ex0 tried to overwrite arp info for 192.168.0.11 on lo0
Aug 24 16:42:53 flam /netbsd: 00:0f:ea:e1:75:dc on ex0 tried to overwrite arp info for 192.168.0.11 on lo0
Первый тип я могу объяснить: кто-то пытается поставить себе ip-адрес моего шлюза 10.239.0.17 -- скорее всего это мисконфигурация провайдерского обрудования.
Но второй ставит меня в тупик -- ex0 это интерфейс в сетку провайдера. А адрес 192.168.0.11 установлен на ex1 -- мой внутренний адрес в квартирной сети. Что это за сообщение? Как люди на ex0 вообще узнали про этот адрес? И при чем тут lo0?
| ← назад | следующие → |