Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » HandyCache ( Часть III )

Модерирует : gyra, Maz

Nep (18-08-2006 09:31): http://forum.ru-board.com/topic.cgi?forum=5&topic=20528  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HandyCache


  HC - это кеширующий HTTP прокси сервер. Главное назначение программы заключается в ускорении загрузки WEB-страниц и сокращении расходов на оплату трафика. Экономия только за счет испрользования кеша может достигать 70 и более процентов. Блокирование рекламы с помощью черного списка делает экономию еще большей.
   Программа ориентирована в основном на обслуживание запросов пользователя компьютера, на котором она установлена. Однако, она также может быть использована для 'раздачи интернета' на компьютеры небольшой домашней сети.
   Автор:  mai62  
( ПМ )

Окна программы (скрин-шоты):
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20

Сайт программы:
Сайт программы переехал на новый хостинг. Место под проект предоставленно TurboMent`ом.
Новый адрес http://handycache.e-voice.ru.
Версия сайта по адресу http://handycache.narod.ru скоро перестанет обновлятся.
Народная Wiki-книга о HC:
Здесь вы можете прочесть описание настроек и списков, FAQ, ToDo и многое другое
Если у вас есть, что добавить о HC - просто допишите...
Статья в журнале InZone:  
Бережем трафик, время и деньги. Кэширующий HTTP прокси-сервер HandyCache (578 КБайт)
Последняя версия (при первой установке используйте это):
HandyCache095b3b.zip
Последняя бета (только exe, скопируйте в папку HandyCache):
HandyCache096b1cexe.zip
 
Версия HCie с исправленным HCCmd.exe
HCie.zip
Поддержать проект можно отправив sms-сообщение. Подробности на сайте программы.
Программа hc.Historian (автор rs)
hc.Historian v1.0
update 1.0 to 1.71 (14.07.06)
hcHistorianupdate10to171.zip
       
Обсуждение hc.Historian на Ru-Board теперь ЗДЕСЬ         ( Что такое hcHistorian )



Прежде чем задать свой вопрос о программе, пожалуйста ознакомьтесь с FAQ. Может там уже есть ответ на ваш вопрос



Здесь вы можете посмотреть, какие фичи будут реализованы в следующих версиях, или предложить что-то свое


- Черный список для HandyCache - тут или тут (распаковать в папку с HC) на 26.02.05 - 181 правило (7 отключены) Описание...
- Списки фильтров от NapA [смотреть]

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:30 27-04-2006 | Исправлено: DenZzz, 09:50 15-08-2006
Palma

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mai62
Красиво.
А что именно ?
 
Как вы думайте не пара ли добавить плаггеную архитектуру ?
Аргументы:
1.    написание фильтра “Черный список” на С с вставками Ассемблера (у меня готовый на 75%, черный список размером в 1,5мб,  я использую hh как кеш сервер для 15 машин, обработка 1,5мб RegExp фильтров загружает процессор на 70-80%, у  RegExp есть 1 жирный минус, это отсутствие оптимизации, и т.д. )
2.    непосредственно, фильтры трафика  
3.    открытая  архитектура всегда в полюс проекту
4.    инновационное решение для Freeware продуктов (squid не в счет, nix-based)
5.    и т.д.  
 
наброски архитектуры опубликую ближе к вечеру (чтобы облегчить вам задачу)  
 
 
Добавлено:
Черный список 0.45 (для 096b1)
Оптимизация на 5-7% Оптимизация на 5-7% (WORD и FILE фильтры)
 
Подробнее...

Всего записей: 65 | Зарегистр. 02-06-2001 | Отправлено: 17:43 21-06-2006 | Исправлено: Palma, 17:49 21-06-2006
forever

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mai62
Теперь, когда дата файлов в кэше будет обновляться, нельзя ли для очистки кэша добавить опцию "удалять старше <дней/часов>"?
Вторая просьба автоматизировать очистку кэша: добавить "очищать каждые <дней/часов>" - чтобы очистка производилась без дополнительных команд пользователя.
 

Цитата:
"Обновлять дату неизменившихся файлов c просроченным критерием свежести"

Имхо достаточно "Обновлять дату у неизменившихся файлов" - при соседстве двух опций "обновлять дату" и "не обновлять свежие" будет вполне понятно что имеется в виду.

Всего записей: 1397 | Зарегистр. 16-12-2001 | Отправлено: 18:05 21-06-2006
mai62



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Palma

Цитата:
Красиво.  
А что именно ?  

Разложено все по полочкам, откомментировано.

Цитата:
Как вы думайте не пара ли добавить плаггеную архитектуру ?

Дело нужное, давай обсудим.
 
Добавлено:
forever

Цитата:
Теперь, когда дата файлов в кэше будет обновляться, нельзя ли для очистки кэша добавить опцию "удалять старше <дней/часов>"?  

Такое предложение уже было, руки не доходят сделать.

Цитата:
Вторая просьба автоматизировать очистку кэша: добавить "очищать каждые <дней/часов>" - чтобы очистка производилась без дополнительных команд пользователя.

Из любого планировщика можно организовать запуск команды
HCCmd.exe ClearCache

Цитата:
Имхо достаточно "Обновлять дату у неизменившихся файлов" - при соседстве двух опций "обновлять дату" и "не обновлять свежие" будет вполне понятно что имеется в виду.

Согласен. Мое "c просроченным критерием свежести" было неудавшейся попыткой избавиться от 'неизменившихся'.

Всего записей: 1717 | Зарегистр. 06-12-2002 | Отправлено: 18:15 21-06-2006
forever

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mai62

Цитата:
Из любого планировщика можно организовать запуск команды  
HCCmd.exe ClearCache

Ради этого "всего-лишь" придется держать запущенным "любой планировщик", что не радует.
Кстати где мона почитать про параметры командной строки?
 
А как насчет ограничения размера кэша? И как HC обрабатывает переполнения диска где хранится кэш?

Всего записей: 1397 | Зарегистр. 16-12-2001 | Отправлено: 18:50 21-06-2006
abz



Хулиган
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mai62
 
Сделай подсказку:

Код:
HCCmd.exe /?

Всего записей: 14975 | Зарегистр. 04-11-2002 | Отправлено: 19:07 21-06-2006
forever

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abz

Цитата:
HCCmd.exe /?

Прежде чем спрашивать я пробовал "HandyCache.exe /?" - безрезультатно разумеется. А HCCmd.exe - это ж для интеграции с IE? У меня его не было. В Hcie.txt нашел описание параметров командной строки.

Всего записей: 1397 | Зарегистр. 16-12-2001 | Отправлено: 19:15 21-06-2006 | Исправлено: forever, 19:17 21-06-2006
GregoryPek



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hc.Historian  --- Версия 0.9.9.2,  
 
Нормально!  
Только заметил страничка http://operafan.net/ если просматривать через hc.Historian кривая.

Всего записей: 402 | Зарегистр. 31-10-2004 | Отправлено: 19:31 21-06-2006
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
forever

Цитата:
А HCCmd.exe - это ж для интеграции с IE?

HCCmd.exe - это для интеграции в браузеры, которые не поддерживают ActiveX, т.е. через командую строку с помощью HCCmd.exe передается команда в память HC.
Для IE идет файл hcie.dll , 4-е html файла и 1 файл iecmd.lst.

----------
MSI PRO B650-P WIFI / Ryzen 5 7600X / RAM 32Gib / 4 HDD = 10Tib + 1 NVME 2Tib / Radeon RX 560 2Gib / Win 10 x64 // POB, PVD

Всего записей: 6678 | Зарегистр. 14-02-2005 | Отправлено: 19:38 21-06-2006
abz



Хулиган
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
forever

Цитата:
Прежде чем спрашивать я пробовал "HandyCache.exe /?" - безрезультатно разумеется.

Вот я и попросил mai62 сделать подсказку! Что не логичного?  

Всего записей: 14975 | Зарегистр. 04-11-2002 | Отправлено: 20:00 21-06-2006
rs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GregoryPek

Цитата:
Только заметил страничка http://operafan.net/ если просматривать через hc.Historian кривая.

ну так это заслуга IE, движка для встроенного браузера...
сам IE тоже не фонтан кажет эту страницу... как впрочем и другие...

Всего записей: 1344 | Зарегистр. 19-04-2003 | Отправлено: 20:08 21-06-2006
forever

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abz

Цитата:
Что не логичного?

Тебя кто-то в чем то упрекал?

Всего записей: 1397 | Зарегистр. 16-12-2001 | Отправлено: 20:23 21-06-2006
abz



Хулиган
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
forever

Цитата:
Тебя кто-то в чем то упрекал?

Извини, мне показалось, что моё обращение к mai62 ты принял за ответ тебе.  

Всего записей: 14975 | Зарегистр. 04-11-2002 | Отправлено: 21:14 21-06-2006
Palma

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mai62

Код:
 
Архитектура:
Plug-in manager -> Plug-in Registry -> Plug-in interface (multiple Plug-ins)
                   
 
1.    Plug-in manager
1.1.    Библиотека (отдельная DLL) для обработки плагинов (DLL для облегчения процесса обновления менеджера,  простота в отладке, разные сборки для совместимости со старым версиями интерфейса)
1.2.    Функций  
1.2.1.    Инициализация интерфейса Plug-in-а
1.2.2.    Загрузка и выгрузка функций интерфейса Plug-in-а
1.2.3.    Обработка ошибок интерфейса Plug-in-а
1.2.4.    Управление настройками (Property pages) интерфейса Plug-in-а
1.2.5.    Деструкция интерфейса Plug-in-а
1.2.6.    Сортировка и обработка фильтров по приоритетной системе  
2.    Plug-in Registry
2.1.    Библиотека (отдельная DLL) для первичной загрузки Plug-in-а (DLL для разделения обязанностей с Plug-in manager-ом, см. выше)
2.2.    Функций
2.2.1.    Поиск Plug-ins в заданной директории (и/или заданных)
2.2.2.    Проверка на Plug-in interface
2.2.3.    Проверка совместимости
2.2.4.    Выбор сборки (для разных версий одного плагина),
2.2.5.    Загрузки и выгрузка DLL
2.2.6.    Создание учетной записи
2.2.7.    Передача дескриптора Plug-in manager-у  
2.2.8.    Загрузка языкового файла
2.2.9.    Опционально: кэширование найденных  Plug-in-ов  
3.    Plug-in interface
3.1.    Библиотека (DLL) с интерфейсом Plug-in-а, я предлагаю остановиться на native function (простой экспорт функций, мое объяснение ниже). Главной задачей интерфейса передача фильтров (обработчиков)
3.2.    Интерфейс
3.2.1.    Функция инициализаций (получение и передача первичных данных)
3.2.2.    Функция деструкций (сборка мусора и т.д.)
3.2.3.    Функция передачи настроек в Plug-in manager-а
3.2.4.    Функция получение настроек из Plug-in manager-а
3.2.5.    Функция установки фильтров (обработчиков)
3.2.6.    Далее расширение интерфейса по мере необходимости
 
*** по поводу native function, “Если размер вещего exe-шника меньше одного мегабайта, то пора вам изучать новые технологий”, по этому обойдемся без COM, ATL, отдельных сервисов, готовых Framework,  для простоты и во избежание захламление кода, и наращивание размеров.
 
 
Структура каталога Plugins
/Plugins/
/Plugins/Plugin Dir/
/Plugins/Plugin Dir/Plugin.dll
/Plugins/Plugin Dir/Plugin.cfg
/Plugins/Plugin Dir/Plugin.state (Статистика работы фильтра)
/Plugins/Plugin Dir/Lang Dir/
/Plugins/Plugin Dir/Lang Dir/lang_code.langfile
/Plugins/Plugin Dir/Lang Dir/lang_code2.langfile
/Plugins/Plugin Dir/Lang Dir/lang_code_etc.langfile
 
 
 
Наброски интерфейса
 
 
LN_ID    :    INT32, Идентификатор в языковом файле
BYTE    :    INT8
STRING    :    Array of BYTE
BOOL    :     Boolean (BYTE)
Pointer :   Указатель (32 или 64 bit)
 
 
Function Initialization->
Parameters:
InterfaceInfo    OUT Structure Pointer
ResultInfo        OUT Structure Pointer
 
######
Function Destructor->
Parameters: None
 
######
Function GetPropertys->
Parameters:
PropertItems        IN OUT  Pointer Array of Pointers
PropertItemsCount    IN OUT  Pointer INT32
ResultInfo            OUT Structure Pointer
 
######
Function SetPropertys->
Parameters:
PropertItem            IN  Pointer Array of Structures
PropertItemsCount    IN  INT32
ResultInfo            OUT Structure Pointer
 
######
Function GetFilters->
Parameters:
FilterItem            IN OUT  Pointer Array of Structures
FilterItemsCount    IN OUT  INT32
ResultInfo            OUT Structure Pointer
 
######
Structure InterfaceInfo->
Members:
 
{Обязательный заголовок для всех версий интерфейса}
Id                    STRING[4]
Version                INT32
VersionRequirement    INT32
Name                LN_ID
Description            LN_ID
.....
 
######
Structure PropertItem->
Members:
ID                 INT32
Type             BYTE (Тип Number, String, Radio, CheckBox, Для формирования GUI настроек)
LabelID            LN_ID
DescriptionID    LN_ID
Value            Pointer (В зависимости от типа)
ValueSize        Pointer INT32
Handler            Pointer to Fucntion (Обработчик правильности  вводимых данных)
 
######
Structure ResultInfo->
Members:
IsOK            BOOL
IsCritical        BOOL (завершить работу плагина, критическая ошибка)
ErrorCode        INT32
ErrorStringId    LN_ID
Parameters        Pointer Structure of String[256] (Параметры для заполнения форматированного кода ошибки (sprintf, %s) )
 
######
Structure FilterItem->
Members:
ID                 INT32
Direction        BYTE (0=IN, 1=OUT)
Type            BYTE (0=Header, 1=Content, 2=URL, 3=FILE NAME, 4=Clean Cache, etc, с возможностью комбинации этих значений )
NameId            LN_ID
Description        LN_ID
Priority        BYTE
Access            BYTE (0=WRITE, 1=READ, 2=READ-WRITE)
Handler            Pointer to Function
 
######
Function FilterItem Handler->
Parameters:
Data            INT OUT Pointer (Гибкая структура в зависимости от типа фильтров)
DataSize        INT OUT INT32
FilterResult    OUT Structure Pointer
 
 
Structure FilterResult->
Members:
Status            INT32 (Результат работы фильтра)
ToDo            INT32 (Дальнейшие действие системы в ответ на результат работы фильтра)
ToDoStringID    LN_ID  
ErrorCode        INT32
ErrorStringId    LN_ID
Parameters        Pointer Structure of String[256] (Параметры для заполнения форматированного кода ошибки или положительного действия(sprintf, %s) )
 
 
######
 
 
Так сказать ООчень  черный черновик для обсуждение  
 
Некоторые мои взгляды на логику работы
 
1.    находим плагины
2.    проверяем
3.    загружаем (плагин, языковый файл)
4.    создаем файл настроек
5.    инициализация настроек
6.    загрузка фильтров (выставляем приоритет по типу фильтра, по типу доступа, и далее по приоритету фильтра)
7.    запускаем фильтры (при определенных действиях)
8.    обрабатываем результаты фильтра
9.    записываем статистику
10.    etc  
 
А еще, нужно будить добавить библиотеки для работы с HTTP headers, HTML parser  и т.д., для разгрузки кода плагинов
 
 

 
--
DiGiTaL
ChAuS

Всего записей: 65 | Зарегистр. 02-06-2001 | Отправлено: 22:34 21-06-2006 | Исправлено: Palma, 22:38 21-06-2006
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Palma
 
А нафига в твоем черном списке конструкции вида  (?: ... )
 
 
mai62
Сделай, плиз, еще 2 вещи:
1. Чтоб в правилах игнорировались пробелы (в URL их все равно не может быть), т.е. правило сначала подается функции, которая убирает с него все пробелы, а потом уже подается обработчику регеспов. Так будет нагляднее писать правила, разделяя длинные правила на блоки с пробелами.
2. И чтоб при загрузке из монитора игнорировалась опция "Работать автономно".
 
И еще. Это гюк или фича? Если в файле списка после HandyCache_list_Format_1 стоит проблел, то все списки в HC становятся пустыми.


----------
MSI PRO B650-P WIFI / Ryzen 5 7600X / RAM 32Gib / 4 HDD = 10Tib + 1 NVME 2Tib / Radeon RX 560 2Gib / Win 10 x64 // POB, PVD

Всего записей: 6678 | Зарегистр. 14-02-2005 | Отправлено: 23:14 21-06-2006
jlmurat

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mai62
Как же насчет Списка исключений для Очистки кэша?  
 
Добавлено:
И еще, насколько я понял, функция "Не обновлять свежих файлов" не работает при выключеннной галке "Не обновлять".  
 
Если так, то нужно сделать, чтобы при снятии галки с функции "Не обновлять" автоматически снималась галка с "Не обновлять свежих файлов".  
 
Или даже при отключенной первой (приоритетной) блокировалась утановка галки на вторую (зависимую).
 
 
Добавлено:
То же касается и прокси. Сделай, плиз, как в трее проксомитрона. Если выключена галка "Использовать внешний прокси", то нижние в иерархии пункты должны блокитроться ( быть недоступными)

Всего записей: 1314 | Зарегистр. 17-02-2006 | Отправлено: 05:13 22-06-2006
Palma

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
А нафига в твоем черном списке конструкции вида  (?: ... )
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость.(С) Мигель де Сервантес
 
 
Это “фигня” (вашими словами) для разделения ‘clustering’, а не для захвата ‘capturing’ (не копирует совпавшее выражение во всякие переменные типа $1..$N и д.др), что выгодно сказывается на  оптимизаций. (RTFM )
--
DiGiTaL
ChAuS
 
Добавлено:
jlmurat
Как же насчет Списка исключений для Очистки кэша?  
Если нужно, могу дать скрипт (Perl) который обрабатывает ‘black.lst‘, и по нему проводить очистку  кэша
 
--
DiGiTaL
ChAuS
 
 
 
Добавлено:
Черный список 0.5 (для 096b1)  
Оптимизация #DOMAIN на 190%  
Подробнее...
 
--
DiGiTaL
ChAuS

Всего записей: 65 | Зарегистр. 02-06-2001 | Отправлено: 06:04 22-06-2006
NothingAnother

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
Цитата:
правило сначала подается функции, которая убирает с него все пробелы, а потом уже подается обработчику регеспов

Никаких доп. ф-ий для этого не требуется. Управление regex-engine в части учитывания/неучитывания пробелов производится через опцию-модификатор x. И правда, mai62, сделай - вроде как вполне разумно...

Всего записей: 2322 | Зарегистр. 06-09-2003 | Отправлено: 07:25 22-06-2006
andj25



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
такой вопрос
пользовался HC на старом компьютере (винда 2000)
после покупки нового компьютера (винда ХР) просто скопировал на диск весь каталог НС
 
теперь наблюдается следующай проблема:
на некоторых сайтах к примеру на яндексе при попутке поиска эксплоер выдает предложение сохранить файл (как будто я что то скачиваю)
 
при работе напрямую (минуя НС) все работает нормально .. возможно мне надо было "установить" НС? а не просто копировать? что бы программа записала себя в реестр и все такое?
 
или это не имеет значения?
 
Добавлено:
такс
сори нашел в тут (FAQ ( Часто задаваемые вопросы ))

Всего записей: 141 | Зарегистр. 14-12-2005 | Отправлено: 07:32 22-06-2006
forever

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mai62

Цитата:
Из любого планировщика можно организовать запуск команды  
HCCmd.exe ClearCache

Без опции "удалять старше <дней/часов>" запуск HCCmd.exe ClearCache с помощью планировщика практически лишен смысла.

Всего записей: 1397 | Зарегистр. 16-12-2001 | Отправлено: 07:47 22-06-2006
Spine

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Palma
Цитата:
Черный список 0.5 (для 096b1)  

чёт форум в этот список смайликов насовал, а сними работать не будет
 

Всего записей: 102 | Зарегистр. 22-10-2003 | Отправлено: 10:17 22-06-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Программы » HandyCache ( Часть III )
Nep (18-08-2006 09:31): http://forum.ru-board.com/topic.cgi?forum=5&topic=20528


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru