LINUX.ORG.RU

Сообщения dilmah

 

Как применять абстрактные правила к атрибутам на Скиматроне?

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

  <sch:rule abstract="true" id="float-number">
    <sch:assert test="matches(., '^(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|(\+|-)?INF|NaN$')">Element <sch:value-of select="name(.)"/> must be decimal numeral with or without a decimal point, numeral in scientific (exponential) notation, or one of INF, +INF,'-INF or NaN literals</sch:assert>
  </sch:rule>

И далее это правило можно применять к любому узлу:

    <sch:rule context="/*/opioid/content">
      <sch:extends rule="float-number"/>
      <sch:extends rule="be-high"/>
    </sch:rule>

Как можно красиво писать такие же правила для атрибутов??

Если писать напрямую:

    <sch:rule context="/*/opioid/@content">
      <sch:extends rule="float-number"/>
    </sch:rule>

то это не работает (причина понятна, если посмотреть XSL, в который этот скиматрон компилируется).

 schematron, ,

dilmah
()

«локальная» часть getaddrinfo

Есть необходимость сделать чисто локальную часть преобразования строки в адрес — то есть те преобразования которые не ведут к сетевым обращениям.

Скажем, у getaddrinfo есть флаг AI_NUMERICHOST — он делает только преобразование численных адресов. Хотелось бы примерно такого же по отношению к /etc/hosts. То есть нужно разрезолвить имя в адрес всеми возможными способами которые не приводят к сетевому трафику.

Для сетевого резолва используется libevent, но к сожалению он (в используемой версии 1.4) не умеет смотреть в /etc/hosts.

dilmah
()

нормальный почтовый клиент для андроида?

для ящиков на google mail я пользуюсь родным клиентом, все устраивает.

Еще есть ящик на рамблере, соответственно нужен IMAP клиент — я пробовал клиент, предустановленный на нексусе и K9 и везде я вижу один и тот же нетерпимый баг: они сортируют письма не по дате получения, а по какой-то дате из хедеров письма (видимо отправления). Это означает, что вновь пришедшее письмо может добавиться (и я это регулярно наблюдаю) не в самый верх, а куда-то между уже просмотренными письмами. Это абсолютно неприемлемое поведение. Есть ли нормальный IMAP клиент, который сортирует по дате получения?

dilmah
()

ликбез по git

допустим есть два клона (в 2 директориях на одной машине) одного репозитория. В каждом клоне есть свои бранчи. Теперь я хочу смержить бранч в одном клоне с бранчем в другом клоне. Это же должно как-то просто делаться? Как?

dilmah
()

багофича с опросом

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

dilmah
()

mmap и странный вывод strace

В коде делается mmap сразу на весь файл и дальше он читается. Оказалось что в выводе strace это выглядит как mmap на 1 страницу, а дальше серия read размером со страницу. Это такой всегда вывод strace или это особенность конкретной архитектуры/версии ОС?

dilmah
()

продемонстрируйте пожалуйста мощь шаблонов и STL

есть std::vector< std::pair <std::string, double> > vec;

нужно отсортировать его по числу (double). то есть написать:

std::sort( vec.begin(), vec.end(), XXX );

вот на место XXX нужно поставить компаратор. Написать отдельный тип для этого я и сам смогу, но хотелось бы обойтись без объявлений типов, а просто на место XXX забабахать какое-нибудь хитрое выражение ala bind1st. Можно такое сделать?

dilmah
()

где взять архивы форумов?

нужен большой корпус разнообразных русских текстов. Художественная литература и википедия уже есть, хотелось бы раздобыть архивы форумов -- там хорошая лексика близкая к разговорной.. Скачал архив форума talks.guns.ru.

Какие еще большие архивы форумов можно скачать? чтобы сразу в сжатом виде. Архив ЛОРа где-нибудь есть кстати?:)

dilmah
()

Баньтство

посмотрел -- klalafuda, mironov_ivan забанены. Это что за осенняя активизация такая?

dilmah
()

непропорциональное падение производительности форков

такая ситуация: есть сервер (2-ядерный), на котором сейчас постоянно
работают 5 процессов полностью жрущих процессор:

Cpu(s): 98.3% us, 1.5% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.2% hi, 0.0% si

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8849 root 25 0 78008 73m 2680 R 50 3.6 18:01.27 OPSTask_clone_r
8876 root 25 0 80044 75m 2404 R 42 3.7 20:12.03 OPSTask_clone_r
8854 root 25 0 80156 75m 2404 R 40 3.7 17:36.53 OPSTask_clone_r
27544 root 25 0 78240 73m 2684 R 32 3.6 17:01.54 OPSTask_clone_r
8922 root 25 0 79232 74m 2404 R 30 3.7 20:33.89 OPSTask_clone_r

логично предположить, что если я на нем запущу свой CPU-bound процесс, то его
производительность будет в 3-4 раза хуже, чем на ненагруженном
сервере. Ну хорошо, сделаем скидку -- допустим в 5 раз.

если процесс обычный, то так и есть. Но у меня шелловский скрипт,
который делает много форков. И его производительность (даже с renice -20)
упала в 20-40 раз по сравнению с ненагруженным сервером.
Это баг линукса? Пофиксили ли его в новых ядрах?

мое ядро: 2.6.20-vs2.2.0

dilmah
()

пацан, мобила есть?

Уже пару месяцев на ЛОР нельзя авторизироваться ни из оперы мини, ни из UCWeb -- там наворотили что-то слишком сложное. То есть фактически запостить комментарий нельзя.

dilmah
()

зачем HR?

Везде где я работал собеседование сразу идет с техническими людьми и менеджерами (все менеджеры компетентны технически). Иногда на собеседовании присутствует и HR, но он всегда в фоне.

Однако есть некоторые компании, в которых первое собеседование проходит лично с HR. Причем это вроде на первый взгляд не макдональдсы (Mail.Ru, mirantis). Более того, в некоторых кругах это, как я понял, считается нормальным. Зачем это делают и как себя вести? Стоит ли разворачиваться и уходить, узнав, что на собеседовании не будет никого кроме HR?

dilmah
()

что будет если в git закоммиттить 2 разных файла с одинаковым хэшем?

субж.

Понятно, что вероятность этого гораздо меньше, чем вероятность того что у тебя биты на диске перепутаются а чексумма сектора совпадет, но все-таки..

И общий вопрос -- как вы относитесь к коду, который by design имеет ненулевую вероятность некорректного поведения?

dilmah
()

2KRoN73 (простая математика)

> А 100-е число Фибоначи также можешь? :)

лови:)

$ echo 0010011 | sed 's/\(.\)/\1@/g' | tr @ \\n | awk -vc='1 0 1' -vm='0 1 1' '{ split(m,a); split(c,b) } $1>0 { $1="(" b[1] "*" a[1] "+" b[2] "*" a[2] ")"; $2="(" b[1] "*" a[2] "+" b[2] "*" a[3] ")"; $3="(" b[2] "*" a[2] "+" b[3] "*" a[3] ")"; c=$0 } { $1="(" a[1] "*" a[1] "+" a[2] "*" a[2] ")"; $2="(" a[1] "+" a[3] ")*" a[2]; $3="(" a[2] "*" a[2] "+" a[3] "*" a[3] ")"; m=$0 } END { split(c,b); print b[2] }' | bc

354224848179261915075

dilmah
()

печальная правда про гнутые утилиты

# export LC_ALL=C
# cat /var/GFE/tmp/cerrs40.tru | grep exit_group
16886 exit_group(0) = ?
grep: memory exhausted

То же самое awk:

# cat /var/GFE/tmp/cerrs40.txt | awk '/exit_group/'
16886 exit_group(0) = ?
awk: (FILENAME=- FNR=1248) fatal: grow_iop_buffer: iop->buf: can't allocate -2147483646 bytes of memory (Cannot allocate memory)

Файл конечно не маленький:

# ls -lh
/var/GFE/tmp/cerrs40.txt -rw-r--r-- 1 root root 1.3G Jan 25 17:36 /var/GFE/tmp/cerrs40.txt

это текстовый файл -- лог strace

Так какого хрена переполняется память, если это чисто потоковая построчная обработка.
То есть в каждый момент нужна только ОДНА ТЕКУЩАЯ строка.

dilmah
()

SATA и старый комп

есть старый комп. intel 440bx, pentium III.

Нужен новый диск, но IDE дисков нормальных уже нет. Соответственно, хочется купить SATA диск + PCI SATA контроллер.

Возникают вопросы, как все это будет работать. Смогу ли я с него загружаться, или можно только вторым диском. Ну это ладно, даже если вторым, меня устроит.

Но, оказывается, что у SATA дисков другое питание. А что с питанием делать??

dilmah
()

[perl] как поиметь «функцию-объект»

Нужно нечто вроде того что в С++ можно реализовать как объект класса с перегруженным operator()

Например — пишу функцию которая ищет минимум некой функции:

sub find_minimum_via_direct_search { my $objective_function = shift; ............... }

то есть find_minimum получает аргумент $objective_function которая может быть ссылкой на функцию. Потом чтобы получить значение функции в точке $point мы можем написать $objective_function->($point)

Проблема в том что я не могу написать objective_function прямо как функцию — мне нужно добавить туда некий стейт. Глобальные переменные понятно не годятся. Можно передавать дополнительный аргумент для этой функции, но это тоже несимпатично. Как завернуть в одну переменную функцию+стейт и чтобы ее было естественно вызывать?

 

dilmah
()

[нижний новгород] [мехмат] Помогите найти человека

Есть деликатная проблема.. Есть человек Марина (Игоревна) Малышева. Она закончила мехмат ННГУ в этом году, группа afair 506. Вроде бы она все еще в нижнем и где-то работает. Мне нужна любая информация о ней. Достаточной информацией будет текущее место ее работы.

На лоре ведь немало людей из Нижнего (я навскидку помню только CyberBr4in и anonymous), они работают в разных компаниях, у них есть коллеги с мехмата, может кто знает?

>>>

 

dilmah
()

как мне лучше парсить XML?

задача такая.

Есть набор XPATH выражений. Сейчас их 10, но в будущем возможно будет несколько сотен.

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

Сейчас это делается так: из этих выражений строится XSL преобразование, которое с помощью <xsl:value-of select= извлекает их в виде текста. Далбше это текст уже по быстрому обрабатывается.

Вроде это неплохо, но на 300 килобайтном xml это преобразование занимает уже около 20 миллисек на одном ядре intel core 2 -- это для извлечения всего 8 XPATH выражений.

Хотелось бы узнать какая альтернатива может быть чтобы это ускорить?

>>>

dilmah
()

машина времени?

раньше в A/B/C B означало кол-во постов за прошедшие сутки, а C за прошедший час. А что теперь?

>>>

dilmah
()

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