Преамбула: в 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), но ему никто не отвечает. Что нужно еще сделать? Имя сервиса добавить? Какое?
Опубликована статья с анализом сегодняшнего положения OpenSource. Автор (с 10-летним опытом в индустрии) сравнивает GPL с большевизмом, размышляет о патентах, багах, стабильности etc.
например в нетбсд если карту приаттачить к бриджу, то все что через нее идет продолжит работать. В линуксе это не так. К примеру нужно перенести рутинг с карты на бридж -- тогда продолжит работать.
Хочется этот перенос автоматизировать. Чем проще чем лучше.
Просто взять список рутов на карте и перекинуть их на бридж не годится: потому что например если на карте сидит dhclient, то он может через какое-то время запросить новый лиз и поломать этот рутинг.
Может быть можно как-то через iptables перекинуть пакеты?
Или может быть вообще есть какой-то магический файл в /proc который заставляет линукс вести себя так же как нетбсд с бриджем?
в настройках стоит:
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?
ситуация такая. Есть сервер. По одному интерфейсу подключается в большую сеть. По другому в квартирную сеть. В квартирной сети есть другой комп, у него внутренний адрес, который прописан в /etc/hosts.
Нужно перенаправлять почту, которая приходит от демонов root'у этого сервера, на этот другой комп. Если другой комп в данный момент не подсоединен, то нужно queue'ить эту почту.
в /etc/mail/aliases записано что-то типа:
root: dilmah@chup
Раньше стоял сендмейл и это работало. Правда с горем пополам -- если на сервере поднят интернет, то работало, если нет (хотя связь с chup была), то почта queue'илась
Теперь постфикс, и это не работает вообще. Он не резолвит имя и даже не queue'ит, а удаляет почту.
Как это настроить, с учетом того что я пока не хочу поднимать свой dns-сервер, который бы резолвил имя chup. Нужно чтобы работало просто с /etc/hosts
запускается виртуальная машина, нужно определить момент когда она отмонтирует свой диск. Оказывается что в Федора Коре 4 у файловой системы ехт2 смонтированной read-write, dumpe2fs все равно репортит Filesystem state: clean