LINUX.ORG.RU

Сообщения dilmah

 

Тестирование регекспов на совместимость

такая задача -- есть два регекспа, для начала basic regexps. Нужно уметь проверять совместны ли они, то есть существует ли строка которая удовлетворяет им обоим. Есть какие-то стандартные алгоритмы?

dilmah
()

Простой вопрос по XSLT

Сейчас на верхнем уровне есть 2 шаблона для одного и того же узла:

  <xsl:template match="/shim/hardware">
    ... code 1


  <xsl:template match="/shim/hardware">
    ... code 2

Если любой из них закомментировать, то оставшийся успешно отрабатывает.  Если же они присутствуют оба, то срабатывает только один (последний).  Как сделать чтобы срабатывали оба?

Я конечно могу слить их в один, но они концептуально отделены, поэтому хочу иметь их раздельно.
dilmah
()

апаче, компрессия и безопасность

тестирую новый подфорум..

допустим апаче принимает сжатый запрос POST. Потом апаче расжимает его и передает скрипту. Если злоумышленник берет 500 мегабайт нулей, сжимает его в 500 кбайт и дает апачу. И так несколько запросов. Апач накроется расжимая их? Можно как-то настроить апач, чтобы он отвергал такие запросы?

dilmah
()

задачка по алгоритмам: про подмножества

Есть некое базовое множество, кол-во элементов в нем измеряется в сотнях. Оно фиксировано.

Есть набор подмножеств этого базового мн-ва. их могут быть тысячи. Этот набор тоже фиксирован.

Теперь нам предъявляют еще одно подмножество базового мн-ва и просят список всех подмн-в из набора, которые содержатся в нем. Это можно как-то реализовать эффективнее чем пройдя по всему набору и посчитав битовые маски?

dilmah
()

SetMappings

народ, что такое SetMappings? Вроде распространенное понятие, не могу въехать в его смысл? Вкратце так?

dilmah
()

вопрос по перл: присваивание substr

нужно срочно выучить перл.. Шелл использовать не могу из-за производительности..

Я не понимаю внутренней логики того как работает:

substr($string,9,2) = 'some_string'

Что именно возвращает substr, что оно работает как ожидается??

dilmah
()

вопрос про шибэнг

из любопытства возник вопрос что нужно поставить в #! перлового скрипта, чтобы он нашел путь к перлу производя поиск в 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

Но это тоже не работает, уже по непонятным причинам. То что я хочу как-то можно вообще сделать?:)

dilmah
()

про шедулер линукса

я сегодня обнаружил одну вещь от которой прифигел.  Эта вещь пошла в
мою копилку доказательств что линукс пионерская поделка..

Итак имеем 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.
dilmah
()

DSL для парсинга XML

Преамбула: в 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)

Хотелось бы узнать нет ли какого-то общепринятого языка для такого
типа описания? И нет ли готовых кодогенераторов?
dilmah
()

Помогите настроить Стрим

Есть модем 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), но ему никто не отвечает.  Что нужно еще сделать?  Имя сервиса добавить?  Какое?
dilmah
()

iptables ROUTE extension

во первых, вопрос: субж жизнеспособен? он будет поддерживаться далее?

Вторая просьба: я хочу найти кого-нибудь у кого этот ROUTE extension установлен и попросить провести эксперимент.

dilmah
()

по бриджам и рутингу

такая фишка.

например в нетбсд если карту приаттачить к бриджу, то все что через нее идет продолжит работать. В линуксе это не так. К примеру нужно перенести рутинг с карты на бридж -- тогда продолжит работать.

Хочется этот перенос автоматизировать. Чем проще чем лучше.

Просто взять список рутов на карте и перекинуть их на бридж не годится: потому что например если на карте сидит dhclient, то он может через какое-то время запросить новый лиз и поломать этот рутинг.

Может быть можно как-то через iptables перекинуть пакеты? Или может быть вообще есть какой-то магический файл в /proc который заставляет линукс вести себя так же как нетбсд с бриджем?

dilmah
()

binutils: как разэкспортировать символ?

Допустим пишется библиотека. Если она вся в одной единице трансляции, то просто неэкспортируемые функции объявляются static

Но нужно разбить на несколько единиц. И при этом получается что экспортируются некоторые символы, которые не должны. Как их можно загасить?

dilmah
()

Где в Москве купить HHKB?

dilmah
()

fd -> FILE*

есть fd. Хочется воспользоваться комфортом ф-ций fgets, fscanf. Как это можно сделать?

пока додумался только до dup2(fd, 0), а потом fscanf(stdin, ...) но это по некоторым причинам не подходит

dilmah
()

получить ioctl'aми все адреса интерфейса

нужно получить ioctl'ами все адреса интерфейса, если адрес не один. Как это примерно можно сделать? (к исходникам /sbin/ip не отсылать)

dilmah
()

Корбина жжот

dilmah
()

почему я нифига не могу скачать по POP3 с гмейла?

в настройках стоит:
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.
dilmah
()

объясните про dd

у меня голова пухнет:

$ 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?
dilmah
()

tried to overwrite arp info — объясните плиз

последнее время у меня в логах появляются странные вещи.

Первый тип:

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?

dilmah
()

RSS подписка на новые темы