Ru-Board.club
← Вернуться в раздел «Программы»

» HandyCache - локальный кеширующий прокси сервер

Автор: DenZzz
Дата сообщения: 15.04.2006 10:34
nickddd

Цитата:
Конкретное правило, о котором я писал (перестало работать не только оно) — в моем посте. Оно скопировано из "Черного списка". Пробелов, как ты видишь, там нет.

То, что я подозреваю, из твоего поста не видно! У меня твое правило работает нормально!
Поэтому и говорю, что надо выложить весь список или воспользуйся командой "Скопировать правило в буфер" и выложи в пост CTRL+V, как советовал автор HC, если хочешь, чтобы тебе здесь помогли!
Автор: nickddd
Дата сообщения: 15.04.2006 10:50
mai62

Цитата:
Цитата:После замены экзешника 0.95b1 на 0.95b3b правило перестает работать.

URL в студию. Давай конкратные примеры, буду разбираться.

http://hit8.hotlog.ru/cgi-bin/hotlog/count?0.3255225777751857&s=169714&im=131&r=&pg=http%3A//forum.netz.ru/showthread.php%3Fp%3D288724&c=Y&j=Y&wh=1280x1024&px=32&js=1.3&

DenZzz

Цитата:
...если хочешь, чтобы тебе здесь помогли!

Я не хочу, чтобы мне помогли. У меня и так все работает (0.95b1)
Просто решил сообщить о (возможном) баге.
Автор: cracklover
Дата сообщения: 15.04.2006 10:55
А что, на новом хостинге нет докачки?!
Размер дистрибутива, конечно, очень мал, но иногда без докачки и его не осилить!
Я сейчас на дурацком диалапе, и уже 4 раза пытался скачать новый дистрибутив. Где-то на 450-500 килобайтах закачка рвётся и всё начинается по-новому с удалением недокачанного файла

Что, так трудно на хостинге организовать докачку?
Автор: VideoHEAD
Дата сообщения: 15.04.2006 10:58
mai62

Цитата:
Я ведь обновил бибилиотеку не только от того, что хотел руки размять. Старая версия при работе с длинными строками вызывала переполнение стэка.


Ок, ок. Судя по всему, надо списки конкретно перерабатывать.

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

Либо, доверить построение списков знающим завсегдатаям ветки. Понятно, что все списки пишут "для себя", но ведь можно для общественности выложить урезанный вариант, который будет опробован здешними "гуру" и помещенным в шапку...
Автор: DenZzz
Дата сообщения: 15.04.2006 11:13
nickddd

Наконец-то, добился от тебя какой-то конкретики...

В общем, проблема ясна: правило (.)*hotlog\.ru(.)* не работает на длинных URL-ах (на коротких - работает)!
Перепиши правило так: .*hotlog\.ru.* и оно заработает на всех URL-ах!

Аналогично по всем остальным правилам, в которых есть сочетание: (.)*

P.S. Я ведь всега говорил, что (.)* надо писать так: .*


mai62

Баг на лицо! Надо бы поправить, чтобы людям не переписывать старые правила...
P.S. И кто только придумал ставить эти лишние скобки и зачем?...
Автор: nickddd
Дата сообщения: 15.04.2006 11:43
DenZzz
Молодец!

Цитата:
Я ведь всега говорил, что (.)* надо писать так: .*

По идее mai62 это вроде как одно и тоже. Мне, в принципе, начхать, но со скобками нагляднее. Редактировать списки не буду. Лень. Посижу на старой версии, подожду, чем все закончится.
Автор: faZZ
Дата сообщения: 15.04.2006 12:17
NothingAnother
12:29 15-04-2006
Цитата:
Просто потому, что имеет место дублирование (иногда многократное). Переставь в том же списке правила в другом порядке (не срабатывающие - наверх), и увидишь, что ранее как бы пассивные правила начнут работать (не все, ессно - зависит от серфинга)

так, добрался до дома. хотя бы раз срабатывали 38 правил. из них 10 по 1-2 разу. вот и я к тому же, что можно собрать статистику у людей, обитающих здесь и оставить правила, которые имеют частое повторение. этим мы можем наконец таки добиться универсального черного списка. может возьмемся за это дело?

Добавлено:
mai62
а что насчет моего вопроса?
Автор: arsvrn
Дата сообщения: 15.04.2006 12:23
Вчера из-за отсутствия докачки пришлось качать три раза. Хоть объем и небольшой, все-таки хотелось бы не влетать в такие сюрпризы...
Автор: unreal666
Дата сообщения: 15.04.2006 14:10
mai62

У меня HC вываливается с ошибкой при правке черного списка. Ошибка вида "List index out of bounds (-1)"
HandyCache.elf и черный список (запаковал в 7z) выслал тебе письмом.

P.S.
Возможно вываливается из-за строк вида
<<< Proxomitron: блок-лист AdList - Matches that disregard 1st sub-domain >>>
Создал их для разделения правил (типа комментарий).

Кстати эта ошибка появляется не сразу после начала правки списка. Она появляется только после правки (правки, добавления, удаления) нескольких правил (может и не после нескольких правил, а после определенного времени - точно не определил).
Автор: DenZzz
Дата сообщения: 15.04.2006 15:45
unreal666

Цитата:
Создал их для разделения правил (типа комментарий).

Разве списки уже поддерживают комментарии?

Цитата:
Кстати эта ошибка появляется не сразу после начала правки списка.

Видимо, она появляется при попытке сохранить список...
Автор: NothingAnother
Дата сообщения: 15.04.2006 18:00
faZZ

Цитата:
можно собрать статистику у людей, обитающих здесь и оставить правила, которые имеют частое повторение

Думается, оптимальней было бы в качестве "статистики" собирать URI счётчиков и банерообменных сетей - всё это можно обработать парой правил (у меня именно так). А остальные "плохие" URI всё-таки очень индивидуальны. ИМХО...

DenZzz

Цитата:
Разве списки уже поддерживают комментарии?

Регекспы поддерживают
Автор: unreal666
Дата сообщения: 15.04.2006 23:16
DenZzz

Цитата:
Разве списки уже поддерживают комментарии?

У меня не правила с комментариями, а сами правила и есть комментарии. Для примера, я создал правило
30,False,<<< Proxomitron: блок-лист AdList - Matches that disregard 1st sub-domain >>>,,0

Никто ведь не заставляет включать это правило, да и при включенном все равно такой текст никогда не совпадет с URL.
Автор: mai62
Дата сообщения: 15.04.2006 23:42
nickddd

Цитата:
Я не хочу, чтобы мне помогли. У меня и так все работает (0.95b1)
Просто решил сообщить о (возможном) баге.

Спасибо, починю.
cracklover arsvrn

Цитата:
А что, на новом хостинге нет докачки?!

Разберусь.
DenZzz

Цитата:
P.S. Я ведь всега говорил, что (.)* надо писать так: .*

Получается, что первая конструкция требует больше ресурсов. Авторов списков прошу учесть это обстоятельство.
faZZ

Цитата:
а что насчет моего вопроса?

Если ты про кнопку, то она переехала на панель справа от списков.
unreal666

Цитата:
У меня HC вываливается с ошибкой при правке черного списка. Ошибка вида "List index out of bounds (-1)"

Спасибо, починю.

Автор: unreal666
Дата сообщения: 16.04.2006 00:21
mai62

Цитата:
faZZ

Цитата: Цитата:
а что насчет моего вопроса?
    
Если ты про кнопку, то она переехала на панель справа от списков.
Автор: mai62
Дата сообщения: 16.04.2006 00:23
unreal666

Цитата:
Назови эту кнопку как-нибудь по другому (например, "Сброс счетчиков").

ok
Автор: abz
Дата сообщения: 16.04.2006 00:58
unreal666

Цитата:
А то название "Очистить список" ассоциируется с удалением всех правил этого списка, а ни как не со сбросом счетчиков.

Я тоже из-за этого не решался на неё давить!
Автор: unreal666
Дата сообщения: 16.04.2006 01:26
DenZzz

Цитата:
Аналогично по всем остальным правилам, в которых есть сочетание: (.)*

P.S. Я ведь всега говорил, что (.)* надо писать так: .*

Необязательно .*, можно (.*). Да и вообще логичнее писать (.*), а не (.)*

Добавлено:
abz

Цитата:
Я тоже из-за этого не решался на неё давить!

Я сам только после фразы mai62 "Если ты про кнопку, то она переехала на панель справа от списков." решился надавить на эту кнопку. И то перед этим на всякий случай сохранил копию файла black.lst.
Автор: faZZ
Дата сообщения: 16.04.2006 05:32
unreal666
abz
та же ситуация я тоже думал, что это именно очистка списка, т.е. удаление правил

Добавлено:
NothingAnother
23:00 15-04-2006
Цитата:
Думается, оптимальней было бы в качестве "статистики" собирать URI счётчиков и банерообменных сетей - всё это можно обработать парой правил (у меня именно так). А остальные "плохие" URI всё-таки очень индивидуальны. ИМХО...

можеш мне скинуть в ПМ?
Автор: NothingAnother
Дата сообщения: 16.04.2006 06:28
unreal666

Цитата:
Необязательно .*, можно (.*). Да и вообще логичнее писать (.*), а не (.)*


В начале и конце выражения "чёрного" списка ставить такие поглотители так и вовсе ни к чему. Это имело бы смысл, если б части совпавшего выражения использовались бы далее для какой-нить обработки, замены (тогда и скобки могли б понадобиться),- а в "чёрном" (и не только) списке этого нет. В таких случаях вполне достаточно Bad_URI вместо .*Bad_URI.*
Автор: unreal666
Дата сообщения: 16.04.2006 08:00
NothingAnother

Цитата:
В таких случаях вполне достаточно Bad_URI вместо .*Bad_URI.*

Для обработки - достаточно.
Но, если правил много, то с (.*) быстрее понять к какому куску URL относится это правило. У меня, для примера, все правила начинаются или с (.*) или с ^.
Т.е. так эргономичнее (или визуабельнее - не знаю как это правильно описать).
Да и так удобнее проверять такие правила в тренажере.
Автор: DenZzz
Дата сообщения: 16.04.2006 09:14
unreal666

Цитата:
Т.е. так эргономичнее (или визуабельнее - не знаю как это правильно описать).

Правило со скобками всегда требует больше ресурсов, чем правило без скобок! На предыдущей странице был наглядный пример...

А визуализацией в начале и конце правила можно и пожертвовать, т.к. и так понятно, что если нет ^ или + , то это любая часть URL... ИМХО
Автор: unreal666
Дата сообщения: 16.04.2006 09:19
DenZzz

Цитата:
Правило со скобками всегда требует больше ресурсов, чем правило без скобок! На предыдущей странице был наглядный пример...

Это скорее всего глюк самого компонента, т.к. (.*) работает нормально в отличие от (.)* .
Автор: DenZzz
Дата сообщения: 16.04.2006 09:53
unreal666
Возможно, т.к. (.)* в правиле каждый символ рассматривает как подвыражение и когда в URL много символов библиотеку "клинит" от переполнения.
Автор: mai62
Дата сообщения: 16.04.2006 10:19
unreal666

Цитата:
Это скорее всего глюк самого компонента, т.к. (.*) работает нормально в отличие от (.)*

Это не глюк, это сработало ограничение.
Библиотека устроена так, что использует рекурсивные функции. Это означает, что функция в процессе своей работы вызывает сама себя. Получается, что функция не закончив свое выполнение (не освободив ресурсы) вызывает себя, та в свою очередь опять вызывает себя и так много раз (как матрешки). Это дело сопровождается большим расходом ресурсов. Один из этих ресурсов - место в стэке. В стэке, кроме локальных переменных, хранятся адреса возврата из функций. Поэтому переполнение стэка может привести к непредсказуемому поведению программы.
Глубина вложенности рекурсии (количество вложенных матрешек) зависит от входной строки и регулярного выражения. В последней версии библиотеки появилась возможность ограничить глубину вложенности рекурсии. В версии 095b2b я установил ограничение равным 500. В версии 095b3b сделал 300 (чтобы уменьшить расход памяти). Такое ограничение оказалось слишком жестким. Когда я поставил 500, то правило с предыдущей страницы стало работать. Видимо остановлюсь пока на значении 1000. К сожалению, предсказать или рассчитать достаточно ли этого не могу.
Автор: unreal666
Дата сообщения: 16.04.2006 13:07
Удалено.
Автор: DenZzz
Дата сообщения: 16.04.2006 15:37
unreal666

Вот цитата про скобки внутри RegExp:

Цитата:
Символы круглых скобок '(' и ')'. Эти символы позволяют получить из искомой строки дополнительную информацию. Обычно, если парсер регулярных выражений ищет в тексте информацию по заданному выражению и находит ее - он просто возвращает найденную строку. Однако, если он встречает внутри регулярного выражения круглые скобки, то он рассматривает содержимое этих скобок как еще одно регулярное выражение, по которому необходимо произвести поиск. Парсер рекурсивно вызывает сам себя для поиска по новому регулярному выражению и использует результаты поиска для дальнейшей обработки основного регулярного выражения.

Это я к тому, что обработка лишних скобок требует больших затрат ресурсов системы.
Автор: unreal666
Дата сообщения: 16.04.2006 16:41
DenZzz

Если судить по тому, что написал mai62, то он выставлял ограничение в 300 рекурсий и этого не хватило. Т.е. рекурсия вызывается не только при наличии скобок -> одной скобкой больше, одной меньше - один хрен. Главное что в скобках или около них.
В проге "The Regex Coach" пошагово смотрел обработку выражений (.)* и (.*) : (.)* по сравнению с (.*) на каждом цикле делает на 2 шага больше.
Автор: faZZ
Дата сообщения: 16.04.2006 16:45
совместил свои часто употребляемые правила с правилами NothingAnother. положил тут. DenZzz,
unreal666 можете посмотреть на предмет правильности правил? я несильно в этом пока разбираюсь. может еще чего подкинете
Автор: DenZzz
Дата сообщения: 16.04.2006 17:15
unreal666

Цитата:
В проге "The Regex Coach" пошагово смотрел обработку выражений (.)* и (.*) : (.)* по сравнению с (.*) на каждом цикле делает на 2 шага больше.

Теперь сравни: .* и (.*)
Автор: Say26
Дата сообщения: 16.04.2006 20:05
А вот мне интересно, у кого какая экономия (в процентах) ? У меня в среднем 15%, а на скриншоте в шапке 76%

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: грабилка экрана под OpenGL


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.