Очередной пуск союза
чуть не пропустил
трансляция: http://www.tv-tsenki.com/live.php
чуть не пропустил
трансляция: http://www.tv-tsenki.com/live.php
Иногда на ЛОРе замечаю пользователей, которые уже не первый раз создают интересные мне топики:
И не всегда теги оказываются в избранных. Опять же невозможно читать форум в реалтайм и подряд. В результате, пропускаю топики, которые мне интересны. Приходится добавлять в rss ридер страницы из профиля пользователей.
Хотелось бы добавлять в избранное не только теги, но и пользователей, чтобы получать уведомления об их новых топиках. Можно в асоциальную ( «зафрендить»==«игнор» ) сеть лора добавить эту социальную функцию?
Доброго времени суток
Сабж. Есть около сотни длинных регекспов, каждый из которых начинается с '^'. У многих из них достаточно много общего
Хочется сгруппировать их по общему началу, и применять не весь плоский список, а древовидно, т.е. т.е. не
[
'^match1match2',
'^match1match3',
'^match4match5',
'^match4match6',
...
]а
[ '^match1' => [
'^match1match2',
'^match1match3',
],
'^match4' => [
'^match4match5',
'^match4match6',
],
...
]Есть идеи, как выбрать из начала регекспа синтаксически корректный регексп ?
Доброго времени суток
Сабж. Скрипт за 3..4 дня работы отжирается до oom killer'а.
Возможно ли снять кору и посмотреть, какие объекты она содержит?
Доброго времени суток. Сабж
http://www.federalspace.ru/21930/
трансляция. «Source for IPhone/IPad» отлично открывается в VLC
Доброго времени суток
Сабж. firefox прекратил работать с SSLv3 сайтами. Вообще, без возможности разрешить или добавить исключение. Очевидно, что авторы заботятся о простых пользователях, которых ежедневно обманывают злобные хакеры. Но как быть людям, которые по служебной необходимости должны работать с старым железом, которое TLS не умеет в принципе?
Остался ли ещё браузер, разработчики которого не считают себя умнее пользователя? Пока скачал старую версию seamonkey и запретил ей проверять обновления
Доброго времени суток
Сабж. Что лучше из reprap'ов - mendel или prusa? Или уже появились другие открытые проекты?
update. судя по тому, что я прочитал, prusa - потомок mendel. prusa проще в сборке и наладке, больше область печати. Но при этом на mendel можно напечатать гораздо больший процент деталей к самому mendel
Доброго времени суток
Требуется ли подписка redhat для использования коллекций с https://www.softwarecollections.org/en/ ?
Если нет, то зачем rhel и centos часть scl тащат в свои репозитории?
Доброго времени суток
Сабж. Интересуют именно хауту, документации и ликбезы
Мопед не мой, в ближайшее время постараюсь пинками загнать сюда планшетовладельца
Доброго времени суток
Сабж. Из fdupes давно убрали замену найденных дублей на хардлинки
Есть небольшая файлопомойка, хочется разгрести место для новых дистрибутивов :) Велосипед-обёртку над fdupes на perl в принципе написать могу, но это долго и чревато потерей данных при ошибке.
Доброго времени суток.
Есть результат запуска fio ( libaio, рандомное чтение, блок 4k, queue depth 32, process count 4 ) и одновременно сбор данных через
( date; iostat -x 2 ) > iostat.logfio выдал
При этом iostat в это же время показывает
svctm хорошо сходится с iops ( 4 fc пути, нагрузка раскидывается равномерно, и это подтверждается графиками await(t), kbps(t) для отдельных путей ), поэтому
$ echo '1/(29548/4) ' | bc -l
.00013537295248409367Но. судя по исходникам sysstat, svctm - синтетика, вычисляется исходя из загрузки диска, числа выполненных запросов и интервала измерения )
Потребитель видит 4.3 мс, это понятно. Но при этом может быть 4.16 мс запрос в ядре, потом один запрос улетает в fc и возвращается за 0.14 мс . А может быть и наоборот, в ядре время почти не тратится, пачка запросов улетает в fc и каждый в среднем выполняется 4.3, но выполняются одновременно.
Вопрос, возможно ли как-то оценить время, которое запрос ждёт в ядре?
Возможно ли снять статистику не с дисков, а с HBA?
Доброго времени суток.
Есть несколько файлов, в каждом - данные отдельного теста, список прочитанных блоков HDD
Нужно посчитать кратность чтения. Т.е. суммарно по всем тестам было прочитано X блоков, из них 1 раз N_1 блоков, 2 раза N_2 блоков и т.д. Всего прочитано Y уникальных блоков ( Y = sum N_i по всем i )
Всего уникальных номеров блоков допустим 100M ( объём тестового диска / размер блока ). Поэтому первая же идея - загнать всё в ассоциативный массив { номер_блока -> количество чтений } - оказалось неудачной, требуется слишком много памяти.
Есть идеи?
Доброго времени суток
Сабж
Что-то случайно нажал правым мизинцем внизу алфавитной клавиатуры. В результате 1 (steamcommunity.com), 2 (steamcommunity.com)
Как бы это повторить? В настройках и в гугле не нашёл.
Доброго времени суток
Тема время от времени вплывает, и вроде даже читал что у кого-то получилось, но найти не смог
Сабж. scp/sftp даже с "-o Ciphers=arcfour -o Compression=no" показывают скорость копирования 40 MB/s на гигабитном канале, упираясь в одно ядро. ftp на том же канале использует весь гигабит. Но мне не нравится идея ставить ftp сервер на кучу хостов.
Возможно ли без особых извращений отключить шифрование для передачи файлов в стандартном openssh?
Доброго времени суток
Сабж
Сразу уточню, моральный облик пользователей меня не интересует ( от слова «вообще» ). Что нужно, так это поиск активности, которая характерна для вирусов, червей и прочих зловредов. Т.е. IDS. Также интересно, если можно задать профиль устройства и искать отклонения ( вот это - принтер, ему веб без надобности. а это телевизор, для него характерен только ютуб )
Для сетевого трафика есть snort. Но хотелось бы что-то подобное для squid
Доброго времени
Сабж. Первый подход к гуглу дал pprint. Он удобен для словарей, но абсолютно бесполезен для объектов
Perl:
use Data::Dumper;
use WWW::Mechanize;
my $browser = WWW::Mechanize->new();
printf "%s\n", Dumper($browser);$VAR1 = bless( {
'headers' => {},
'ssl_opts' => {
'verify_hostname' => 1
},
'forms' => undef,
[...]
'cookie_jar' => bless( {
'COOKIES' => {}
}, 'HTTP::Cookies' ),
'proxy' => {},
'max_size' => undef
}, 'WWW::Mechanize' );
Python:
import pprint
import mechanize
browser = mechanize.Browser()
pprint.pprint(browser)вывод:
<mechanize._mechanize.Browser instance at 0x15e7c20>Допустим, я понимаю почему так происходит. В perl ООП сделан через одно место. self, в котором хранятся поля класса - по сути обычная структура данных. Как правило - хэш ( в терминах Python - словарь ). Плюс области видимости позволяют при необходимости залезть и вытащить что угодно. А в Python практически всё - объект. И у объекта определён метод __str__, который приводит его к строке. И если автор класса об этом не подумал, __str__ даст бесполезный текст «блаблабла instance at адрес»
Второй подход к гуглу дал vars(), dirs(), которые вполне годятся для нормального дампа:
pprint.pprint( vars( browser ) )вывод:
{'_any_request': {},
'_any_response': {},
'_client_cert_manager': <mechanize._auth.HTTPSClientCertMgr instance at 0x1807758>,
'_factory': <mechanize._html.DefaultFactory instance at 0x17a2f38>,
'_handle_referer': True,
'_handler_index_valid': False,
[...]
'request': None,
'request_class': <class mechanize._request.Request at 0x165fef0>}Именно то, что нужно, поля и их значения. Но в дампе опять видим издевательские «instance at». Если хочется идти глубже - нужно вручную их дампить через vars. Наверняка можно пройти по вложенным объектам, пусть даже рекурсивно, и сделать как perl.
Вопрос, есть ли в python готовый модуль, в котором это уже сделано, т.е. модуль, который является полноценной заменой перловому Data::Dumper ?
Доброго времени суток
Сабж. До сих пор мои скрипты работали ограниченное время, а теперь появилась необходимость выполнения скрипта в течение нескольких часов или даже дней. Поэтому хочу написать что-то интерактивное ( но по-прежнему консольное ), чьим процессом выполнения может управлять пользователь.
Думаю сделать так:
Норм? Или есть best practice / pattern, больше подходящий для данной задачи?
Update. Всем спасибо, остановился на варианте с отдельным потоком
Доброго времени суток
Сабж. Штатной возможности похоже нет.
Пытаюсь сделать через mod_security по аналогии с rate limit:
############################################################################
# modsecurity
############################################################################
SecRuleEngine On
SecAuditEngine RelevantOnly
SecAuditLog /var/cache/modsecurity/audit.log
SecDebugLog /var/cache/modsecurity/debug.log
SecDebugLogLevel 9
SecAction id:'12341',phase:1,initcol:ip=%{REMOTE_ADDR},pass,nolog
SecAction "id:'12342',phase:5,setvar:ip.somepathcounter=-1,pass,nolog"
SecRule IP:SOMEPATHCOUNTER "@gt 2" "id:'12343',phase:2,pause:300,deny,status:509,setenv:RATELIMITED,skip:1,nolog"
SecAction "id:'12344',phase:2,pass,setvar:ip.somepathcounter=+1,nolog"
Header always set Retry-After "10" env=RATELIMITED
############################################################################
Перезапускаю апач, проверяю через apache benchmark с другого хоста:
~$ ab -c 50 -n 150 <URL>
[...]
Concurrency Level: 50
Time taken for tests: 5.256 seconds
Complete requests: 150
Failed requests: 0
Write errors: 0
[...]
В логе apache тоже нет 509 кода, только 200. В /var/cache/modsecurity/debug.log видно, что счётчик ip.somepathcounter не превышает 1:
# grep -i somepathcounter /var/cache/modsecurity/debug.log | grep Relative | cut -d ' ' -f 4- | sort | uniq -c
26 Relative change: somepathcounter=0-1
150 Relative change: somepathcounter=0+1
150 Relative change: somepathcounter=1-1
Сижу и пытаюсь понять, где я ошибся
update. nginx не предлагайте, сейчас у меня цель - научиться ограничивать запросы в самом apache
| ← назад |