FarNet.Vessel: (View/Edit/Save/SELect) file history tools
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
FarNet.Vessel: (View/Edit/Save/SELect) file history tools
Анонс
Модуль FarNet.Vessel ставит целью улучшить обычную историю файлов.
1) решить проблему затирания истории разными сессиями (Мантис 1169)
2) иметь быстрый фильтр в списке сразу по открытию, а не по CtrlAltF
3) иметь и продвинутый фильтр с сохраняемыми регулярными выражениями
4) всякие прочие мелочи, см. хелп списков.
Еще одна цель - улучшить порядок файлов в списке с точки зрения потенциальности
их последующего открытия. Недавно открытые файлы всегда сортируются по времени
последнего открытия, как обычно. 80-90% случаев и есть открытие таких файлов,
так что улучшить можно лишь небольшую часть открытий. Ну и пусть.
Искусственный интеллект, если это не сильно названо, применен бесхитростный.
Реализовано обучение умной истории. Оно основано на эмпирической модели с двумя
параметрами и оптимизации ее перебором вариантов. Если улучшить список не получается,
используется обычная история.
Не надо ожидать, что в умном списке файл, что мы хотим открыть из истории,
всякий раз будет прямо на виду. Идея в том, чтобы он был ближе в списке, если
ожидание его открытия выше, чем у других файлов. Но нужный файл может оказаться
и дальше в списке, чем он был бы в обычной истории, ухудшения допускаются.
Важно лишь, чтобы улучшений было потенциально больше, а гарантий никаких нет.
Тривиальный пример: специально открываем файлы всегда из конца списка, имеем
наихудший вариант, интеллект системы как бы не работает. Такой сценарий на
практике возможен, но маловероятен.
Чтобы тренировка истории имела практический смысл надо накопить некоторую
историю открытий сначала. Тренировку можно и сразу запускать, но она либо
ничего не даст (простой список), либо сделает не очень адекватный выбор.
P.S. Пара замечаний по исключениям
*) Файлы из %TEMP% и подпапок не включаются в историю даже если при открытии
не имели флага "не включать в историю".
*) После некоторых колебаний решено также не включать файлы открытые быстрым
просмотром (CtrlQ). Таким образом оставлена возможность массивного
предварительного просмотра кучи файлов без занесения их в историю.
Если кому-то нужно включение и этих файлов, можно добавить опцию.
Модуль FarNet.Vessel ставит целью улучшить обычную историю файлов.
1) решить проблему затирания истории разными сессиями (Мантис 1169)
2) иметь быстрый фильтр в списке сразу по открытию, а не по CtrlAltF
3) иметь и продвинутый фильтр с сохраняемыми регулярными выражениями
4) всякие прочие мелочи, см. хелп списков.
Еще одна цель - улучшить порядок файлов в списке с точки зрения потенциальности
их последующего открытия. Недавно открытые файлы всегда сортируются по времени
последнего открытия, как обычно. 80-90% случаев и есть открытие таких файлов,
так что улучшить можно лишь небольшую часть открытий. Ну и пусть.
Искусственный интеллект, если это не сильно названо, применен бесхитростный.
Реализовано обучение умной истории. Оно основано на эмпирической модели с двумя
параметрами и оптимизации ее перебором вариантов. Если улучшить список не получается,
используется обычная история.
Не надо ожидать, что в умном списке файл, что мы хотим открыть из истории,
всякий раз будет прямо на виду. Идея в том, чтобы он был ближе в списке, если
ожидание его открытия выше, чем у других файлов. Но нужный файл может оказаться
и дальше в списке, чем он был бы в обычной истории, ухудшения допускаются.
Важно лишь, чтобы улучшений было потенциально больше, а гарантий никаких нет.
Тривиальный пример: специально открываем файлы всегда из конца списка, имеем
наихудший вариант, интеллект системы как бы не работает. Такой сценарий на
практике возможен, но маловероятен.
Чтобы тренировка истории имела практический смысл надо накопить некоторую
историю открытий сначала. Тренировку можно и сразу запускать, но она либо
ничего не даст (простой список), либо сделает не очень адекватный выбор.
P.S. Пара замечаний по исключениям
*) Файлы из %TEMP% и подпапок не включаются в историю даже если при открытии
не имели флага "не включать в историю".
*) После некоторых колебаний решено также не включать файлы открытые быстрым
просмотром (CtrlQ). Таким образом оставлена возможность массивного
предварительного просмотра кучи файлов без занесения их в историю.
Если кому-то нужно включение и этих файлов, можно добавить опцию.
Last edited by NightRoman on Tue 28 Dec, 2010 09:50, edited 3 times in total.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: FarNet.Vessel: (View/Edit/Save/SELect) file history tool
Замечу что это легко делается макросом типа этого:NightRoman wrote: 2) иметь быстрый фильтр в списке сразу по открытию, а не по CtrlAltF
А в остальном очень интересно.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet.Vessel: (View/Edit/Save/SELect) file history tool
Да это понятно. И это мелочь, конечно. Но в модуле эта мелочь готова к использованию сразу.Замечу что это легко делается макросом типа этого
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet.Vessel: (View/Edit/Save/SELect) file history tool
Есть просьба к заинтересованным пользователям: если уже накопилось истории эдак за пару недель (а лучше бы вообще полных 30 дней, но вряд ли у кого есть пока), пришлите мне свой лог истории, включу его в тестовый набор. Конфиденциальность гарантирую, само собой. На худой конец, можно вообще переименовать "щекотливые" имена в логе, имена мне не важны, пусть будут любые, лишь бы данные по ним были те же. Только не удаляйте ничего из лога, от такого лога будет только вред.
Зачем это нужно? Предсказательную способность модели, думаю, можно еще улучшить. Она и так уже неплохая, но чисто из спортивного интереса хочется еще дальше немного шагнуть. Однако, есть вероятность что дальнейшие улучшения неявно будут затачиваться под мою личную историю. Хоть я использую ее с трех разных машин для анализа, все равно эти данные отражают мой личный способ работы с файлами. Может даже уже заточка алгоритма сделана с уклоном в пользу моих данных. Вот и хочется это проанализировать.
Зачем это нужно? Предсказательную способность модели, думаю, можно еще улучшить. Она и так уже неплохая, но чисто из спортивного интереса хочется еще дальше немного шагнуть. Однако, есть вероятность что дальнейшие улучшения неявно будут затачиваться под мою личную историю. Хоть я использую ее с трех разных машин для анализа, все равно эти данные отражают мой личный способ работы с файлами. Может даже уже заточка алгоритма сделана с уклоном в пользу моих данных. Вот и хочется это проанализировать.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet.Vessel: (View/Edit/Save/SELect) file history tool
Впрочем, конфиденциальности ради я напишу скрипт, который обфускацию имен сделает, так что это не будет проблемой. Щас будет.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet.Vessel: (View/Edit/Save/SELect) file history tool
Вот PowerShell скрипт, запускать все равно откуда. Он создает файл VesselHistory-Encoded.log из вашего лога в той же папке, где и лог. Все имена заменены на их MD5 хеши.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet.Vessel: (View/Edit/Save/SELect) file history tool
Слегка изменил скрипт предыдущего поста, чтобы захешировать отдельно имена папок от имен файлов. Возможно, в будущем папки тоже будут задействованы в алгоритме, если будет подмечена повышенная вероятность открытия из той же папки, что вроде вполне возможно, но пока это не анализировалось. (И убрал конвертацию в base64 формат тоже, незачем это).
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet.Vessel: (View/Edit/Save/SELect) file history tool
1.0.6 - Новогодняя и, вобщем, релизная версия, все первоначальные задумки реализованы.
Полная и медленная тренировка (ручной запуск из меню) теперь в принципе не нужен, все делается почти автоматически, быстро и в фоновом режиме. Автоматика, правда, не полная - быстрая тренировка запускается в двух случаях: после обновления лога истории из меню и после открытия слегка давнишних файлов из умного списка (точнее даже после закрытия их, когда запись об этом добавлена в лог). Иными словами, если ничего особенного не делается с умной историей, то и тренировка (наверняка холостая) не запускается вообще.
Полная и медленная тренировка (ручной запуск из меню) теперь в принципе не нужен, все делается почти автоматически, быстро и в фоновом режиме. Автоматика, правда, не полная - быстрая тренировка запускается в двух случаях: после обновления лога истории из меню и после открытия слегка давнишних файлов из умного списка (точнее даже после закрытия их, когда запись об этом добавлена в лог). Иными словами, если ничего особенного не делается с умной историей, то и тренировка (наверняка холостая) не запускается вообще.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
FarNet.Vessel: (View/Edit/Save/SELect) file history tools
На страничке вики (https://github.com/nightroman/FarNet-Wiki/wiki/Vessel) поместил визуальную картинку результатов полной тренировки истории на одной машине. Это довольно типичная картина, хорошо видно, что предсказательная способность умной истории существенно зависит от двух факторов. Но видно, что и с "плохими" факторами умная история все равно работает в заметный плюс.
Полная тренировка - это простой перебор всех факторов. Быстрая тренировка использует старые факторы как начальное приближение, проверяет их малую окрестность и, на всякий случай, несколько других узлов из очень разреженной сетки по всему диапазону, чтобы не пропустить появление новых лучших белых зон далеко от старых.
Довольно важное наблюдение: когда накоплено достаточное количество истории, подобная картинка с течением времени меняется плавно, то есть умная история как бы хорошо помнит определенные закономерности и обладает некоторой инерцией. Это впрочем не исключает возможные прыжки факторов в новые белые зоны, но происходит это сравнительно редко (и ничего плохого в этом нет).
Полная тренировка - это простой перебор всех факторов. Быстрая тренировка использует старые факторы как начальное приближение, проверяет их малую окрестность и, на всякий случай, несколько других узлов из очень разреженной сетки по всему диапазону, чтобы не пропустить появление новых лучших белых зон далеко от старых.
Довольно важное наблюдение: когда накоплено достаточное количество истории, подобная картинка с течением времени меняется плавно, то есть умная история как бы хорошо помнит определенные закономерности и обладает некоторой инерцией. Это впрочем не исключает возможные прыжки факторов в новые белые зоны, но происходит это сравнительно редко (и ничего плохого в этом нет).
Last edited by NightRoman on Fri 28 Nov, 2014 15:36, edited 1 time in total.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet.Vessel: (View/Edit/Save/SELect) file history tool
Похоже, предсказательная способность умной истории может быть улучшена еще эдак на 35% с учетом дополнительного полезного фактора сортировки "относительное количество фактов открытия при данном периоде бездействия" (проще говоря, подмечается и учитывается периодичность открытия определенных файлов).
Версию выкладывать не тороплюсь, пока наблюдаю, как это на практике выглядит хоть пару-тройку дней. А пишу, скорей, чтоб напомнить о том, что в общих интересах мне не помешали бы для тестирования дополнительные файлы истории с машин добровольцев (если накоплена история не менее пары недель). Текст скрипта для коверканья имен для секретности тут.
Версию выкладывать не тороплюсь, пока наблюдаю, как это на практике выглядит хоть пару-тройку дней. А пишу, скорей, чтоб напомнить о том, что в общих интересах мне не помешали бы для тестирования дополнительные файлы истории с машин добровольцев (если накоплена история не менее пары недель). Текст скрипта для коверканья имен для секретности тут.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
FarNet.Vessel: (View/Edit/Save/SELect) file history tools
Вещь интересная, но вот как жить без:
1.) Фильтрация-поиск (лучше как "full text", или по-крайней мере со "звездочками")
2.) Открывается долго, что логично, у всех длинная полная история долго открывается.
Хотя. насколько я понял,
этот скрипт прдназначен для "умных" и быстрых переходов,
а получается это как раз очень некстати медленно ...
Если будет возможность,
то может сделаете какой быстрый режим открытия,
без загруызки всего с начала времен?
1.) Фильтрация-поиск (лучше как "full text", или по-крайней мере со "звездочками")
2.) Открывается долго, что логично, у всех длинная полная история долго открывается.
Хотя. насколько я понял,
этот скрипт прдназначен для "умных" и быстрых переходов,
а получается это как раз очень некстати медленно ...
Если будет возможность,
то может сделаете какой быстрый режим открытия,
без загруызки всего с начала времен?
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
FarNet.Vessel: (View/Edit/Save/SELect) file history tools
Не понял, звездочки поддерживаются, вроде. Или что имеете в виду?
UPDATE: А вы пробовали просто начать "печатать" в списке?
Last edited by NightRoman on Sat 02 Jan, 2021 20:55, edited 1 time in total.