Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
FTPinfo Forum > Техническая поддержка > FTPInfo 1.9.0 & ScanDepth


Автор: AL2 10.01.2006 - 22:19
Объясните мне глупому какой глубокий смысл в этой фишке:

QUOTE
[!] Глубина опроса сервера: значение "0" - опросить только корневой каталог.


Раньше если в опциях стояло ScanDepth=0, то сканировался весь ФТП на всю глубину, которая там есть (какая бы она там не была). После установки версии 1.9.0 поверх старой стал сканироваться только корень ФТП. От чего наработанные базы фактически обнуляются. ohmy.gif А если я не знаю реальную глубину вложенности каталогов на ФТП, но точно знаю, что там дофига... Как тогда быть? Я пока вышел из этой проблемы поставив ScanDepth=10000. Кстати, какой максимальный размер числа задаваемого в этой опции?

Автор: MAS 11.01.2006 - 19:30
QUOTE (AL2 @ Jan 10 2006, 22:19)
Объясните мне глупому какой глубокий смысл в этой фишке:

QUOTE
[!] Глубина опроса сервера: значение "0" - опросить только корневой каталог.


Есть случаи, когда нужно опрашивать только корень диска.
Сама же идея "глубины опроса" не вызывает непоняток?
А внедрение уровня "0" - заготовка под одну фичу.... Так, пока в планах.

QUOTE
После установки версии 1.9.0 поверх старой стал сканироваться только корень ФТП. От чего наработанные базы фактически обнуляются. ohmy.gif

Увы, но это так. Если указано граничение глубины, то все "глубже" игнорируется.

QUOTE
А если я не знаю реальную глубину вложенности каталогов на ФТП, но точно знаю, что там дофига... Как тогда быть?

Укажи значение "дофига" smile.gif
Мне пока что не встречались сервера с глубиной больше 100...200 каталогов.

QUOTE
Я пока вышел из этой проблемы поставив ScanDepth=10000. Кстати, какой максимальный размер числа задаваемого в этой опции?

32-х битное число, максимум 0xFFFFFFE, в десятичную лениво переводить, но МНОГО! smile.gif

А если нужен вариант "без учета глубины каталогов", то КАК это реализовать? Вариант "0" - без учета это было неплохо, но "0" потребовался.
Вводить какое-то "странное число", типа "-1"?

Автор: AL2 12.01.2006 - 20:17
QUOTE (MAS @ Jan 11 2006, 19:30)
Есть случаи, когда нужно опрашивать только корень диска.


Можно пример, если не сложно конечно?

QUOTE (MAS @ Jan 11 2006, 19:30)
Сама же идея "глубины опроса" не вызывает непоняток?


Естественно не вызывает.

QUOTE (MAS @ Jan 11 2006, 19:30)
А внедрение уровня "0" - заготовка под одну фичу.... Так, пока в планах.


Ага. Вот уже немного понятнее становится. smile.gif

QUOTE (MAS @ Jan 11 2006, 19:30)
32-х битное число, максимум 0xFFFFFFE, в десятичную лениво переводить, но МНОГО! smile.gif


ага. что-то типа 2 миллиона с копейками...

QUOTE (MAS @ Jan 11 2006, 19:30)
А если нужен вариант "без учета глубины каталогов", то КАК это реализовать? Вариант "0" - без учета это было неплохо, но "0" потребовался.
Вводить какое-то "странное число", типа "-1"?


Геморно получится. Ведь судя по ограничению это тип переменной, которая принимает значения от 0 и до максимального положительного числа. Может максимально возможное число взять за вариант "без учета глубины каталогов"? Хотя это и не обязательно - хрен найдешь (по крайней мере пока что, хотя у пользователей уже все чаще встречаются ФТПшники на 500 гиг и более) такой ФТП у которого так много вложенных каталогов.

Автор: Guest 13.01.2006 - 16:50
Тогда уж введите флажок что ли: "Сканировать на глубину", например. Тогда все будет понятно: кому надо сканировать все - снимает флажок, кому надо сканировать не все - ставит флажок и устанавливает нужное значение.
К тому же не плохо было бы, если уж вы меняете подобные функции, чтобы предусматривалась поддержка интерпретации старых значений. Полагаю, что у многих, если не у большинства, стоит 0, следовательно новая версия программы должна предоставлять новое значение для сканирования на всю глубину (можно было бы для начала использовать пустое значение, например) и конвертировать старое в новое с уведомлением пользователя, а то теперь придется идти по всем серверам и выставлять большое значение глубины (групповая операция здесь почему-то не работает).

Автор: AL2 13.01.2006 - 17:03
QUOTE (Guest @ Jan 13 2006, 16:50)
К тому же не плохо было бы, если уж вы меняете подобные функции, чтобы предусматривалась поддержка интерпретации старых значений. Полагаю, что у многих, если не у большинства, стоит 0, следовательно новая версия программы должна предоставлять новое значение для сканирования на всю глубину (можно было бы для начала использовать пустое значение, например) и конвертировать старое в новое с уведомлением пользователя,


Было бы неплохо на будущее, но теперь уже поздно - релиз-то состоялся. :-/

QUOTE (Guest @ Jan 13 2006, 16:50)
а то теперь придется идти по всем серверам и выставлять большое значение глубины (групповая операция здесь почему-то не работает).


Достаточно залезть в файл "Имя профиля/Application Data/FtpInfo/ServerList.cfg" и сделать в любом редакторе поиск и замену по ключу "ScanDepth=". А руками через саму программу везде менять значения действительно не очень удобно.

Автор: Guest 13.01.2006 - 19:12
По поводу замены в файле - именно так и поступил biggrin.gif

Но это, к сожалению, еще не все издержки данного "нововведения": после обнуления базы опрошенных (с нулевым значением глубины) серверов и повторного опроса с измененным значением, теперь все файлы числятся новыми. Так что информация о действительных изменениях на серверах утрачена безвозвратно. sad.gif
Это конечно не смертельно (для меня, во всяком случае), но вопрос о планировании изменений в программе программистом и об обработке старых версий настроек стоит на одном из первых мест. Я сам написал не один десяток программ и для меня не секрет, что "голый" сценарий работы программы зачастую занимает в коде меньше места, чем накрученные во круг него обработки ошибок, реакции на "глупого пользователя" и т. п. Но это не повод игнорировать данный вопрос. Пользователь имеет право быть "глупым" (как я в данном случае blink.gif ). Так что, еще раз прошу автора внимательнее относится к этим вещам и продумывать последствия своих действий чучь-чуть глубже и шире. Тогда программа станет еще лучше, а пользователь счастливее. rolleyes.gif

Автор: AL2 15.01.2006 - 09:53
Не обязательно обвешивать код обработчиками различных событий. Если уж совсем лень, то достаточно просто при установке на экран вывести окно с предупреждением, написанным красными буквами и многократно подчеркнутыми. biggrin.gif Новичка это не спасет, а кто уже пользовался программой хоть обратят внимание на эту фенечку.

ЗЫ еще вопрос к автору - куда пропал хоткей Home? Раньше было безумно удобно перемещаться по списку ФТП серверов с клавиатуры командуя клавишами Home, End, Page up, Page Down. Теперь нажатие на клавишу Home ничего не дает. Как теперь с клавиатуры переместиться в начало списка ФТП серверов? Многократно скроллить по списку честно говоря надоедает - список очень не маленький.

Автор: MAS 15.01.2006 - 18:25
QUOTE (AL2 @ Jan 12 2006, 20:17)
QUOTE (MAS @ Jan 11 2006, 19:30)
Есть случаи, когда нужно опрашивать только корень диска.

Можно пример, если не сложно конечно?

Например, по работе меня интересуют файлы только в корневом каталоге, глубже - пофиг.

QUOTE
QUOTE (MAS @ Jan 11 2006, 19:30)
32-х битное число, максимум 0xFFFFFFE, в десятичную лениво переводить, но МНОГО! smile.gif


ага. что-то типа 2 миллиона с копейками...


Вроде бы 4 миллиона с копейками.

QUOTE
QUOTE (MAS @ Jan 11 2006, 19:30)

Вводить какое-то "странное число", типа "-1"?

Геморно получится. Ведь судя по ограничению это тип переменной, которая принимает значения от 0 и до максимального положительного числа. Может максимально возможное число взять за вариант "без учета глубины каталогов"? Хотя это и не обязательно - хрен найдешь (по крайней мере пока что, хотя у пользователей уже все чаще встречаются ФТПшники на 500 гиг и более) такой ФТП у которого так много вложенных каталогов.

Можно ввести ещё переменную "без учета", но это лишная опция, а их и так много.

Автор: MAS 15.01.2006 - 18:32
QUOTE (AL2 @ Jan 15 2006, 09:53)
Если уж совсем лень, то достаточно просто при установке на экран вывести окно с предупреждением, написанным красными буквами и многократно подчеркнутыми. biggrin.gif Новичка это не спасет, а кто уже пользовался программой хоть обратят внимание на эту фенечку.

При какой установке? Ты же (имхо) "обновлял до версии", просто архив развернул и всё.

QUOTE
ЗЫ еще вопрос к автору - куда пропал хоткей Home? Раньше было безумно удобно перемещаться по списку ФТП серверов с клавиатуры командуя клавишами Home, End, Page up, Page Down. Теперь нажатие на клавишу Home ничего не дает.

Оп-а, непонятно откуда это взялось. Буду разбираться!

Автор: Oleg 17.01.2006 - 17:26
QUOTE
Можно ввести ещё переменную "без учета", но это лишная опция, а их и так много.


Эта опция как раз не лишняя, а очень даже полезная (см. обсуждение выше).
А если рассматривать все в таком ключе, то, вообще, можно обойтись командной строкой консольного приложения. Согласитесь, MAS, что это не решение.

Автор: MAS 18.01.2006 - 14:15
QUOTE (Oleg @ Jan 17 2006, 17:26)
Эта опция как раз не лишняя, а очень даже полезная (см. обсуждение выше).

Вот тут http://www.ftpinfo.ru/forum/index.php?showtopic=200&hl= я задал вопрос как лучше сделать. Пока оветов почти нет.
QUOTE
А если рассматривать все в таком ключе, то, вообще, можно обойтись командной строкой консольного приложения. Согласитесь, MAS, что это не решение.

Именно что решение! Хм, переделать что-ли FI под консиль? biggrin.gif
Кстати, командная строка в FI давно уже реализована и её пользуются. Причем, даже просят улучшений там.

Автор: Oleg 19.01.2006 - 16:12
QUOTE
Вот тут тут я задал вопрос как лучше сделать. Пока оветов почти нет.

Вы задали вопрос уже после того, как сделали (если верить дате). Конечно, вы получите такой ответ, который получили, и это справедливо, так как менять туда и обратно - не всякий захочет. Вот если бы Вы задали этот вопрос до изменения функции в программе (я запустил поиск по форуму на слова "гулубина опроса" - именно такого вопроса не нашел), тогда ответы были бы, думаю, другие. А, вообще, сразу логично предположить, что глубина опроса может быть разная от "отсутствия" оной до любого значения (ограничимся 4-х байтовым числом без знака), и никакие вопросы здесь не встают: сразу делаем возможность отключать или включать глубину и, если надо, устанавливаем ее значение. Вам же пришлось менять алгоритм из-за того, что в самом начале Вы запрограммировали для 0 - нет опроса, а для 1 - уже сразу и корневой и первый каталог, то есть пропустили "только корневой" каталог. Но это уже ошибка проектирования.
Теперь же, действительно, можно ни чего не менять. А можно все-таки реализовать какое-нибудь адекватное решение в интерфейсе, просто для качественности программы. Поскольку интерфейс должен быть адекватным, интуитивно понятным и обеспечивать удобство и полноту управления функциональностью программы. На данный момент это, к сожалению, не совсем так. sad.gif .
Когда я говорил, что это опция не лишняя и отсылал Вас к разговору выше, то я имел ввиду просто избегать в будущем подобных вещей. Только и всего.

Поймите правильно, MAS, я считаю вашу программу очень нужной и полезной вообще и для меня в частности, и говорю все это Вам не в упрек или чтобы уязвить, или для собственного выпендрежа. Просто хочется, чтобы FI была КАК МОЖНО ЛУЧШЕ. rolleyes.gif А подобные недоработки портят впечатление, словно неожаданный удар в поддых от лучшего друга smile.gif .

Кстати, вопрос на засыпку. А в какое значение ставится глубина опроса по умолчанию при первой инсталляции программы, если пользователь не делал ни каких настроек и сразу будет добавлять сервера без их персональных настроек (включена функция автоматического добавления сервера при поиске серверов)? wink.gif

Автор: MAS 20.01.2006 - 10:53
QUOTE (Oleg @ Jan 19 2006, 16:12)
Вы задали вопрос уже после того, как сделали (если верить дате). Конечно, вы получите такой ответ, который получили, и это справедливо, так как менять туда и обратно - не всякий захочет.

Да, вопрос был после релиза.
QUOTE
Теперь же, действительно, можно ни чего не менять. А можно все-таки реализовать какое-нибудь адекватное решение в интерфейсе, просто для качественности программы. Поскольку интерфейс должен быть адекватным, интуитивно понятным и обеспечивать удобство и полноту управления функциональностью программы. На данный момент это, к сожалению, не совсем так.  sad.gif .

Хм... Где-то в настройках есть свободные битики - можно опцию "без учета глубины" привинтить. Правда, придеться элементы настройки двигать. А в такой мороз лишний раз шевелиться не охота smile.gif
QUOTE
Кстати, вопрос на засыпку. А в какое значение ставится глубина опроса по умолчанию при первой инсталляции программы, если пользователь не делал ни каких настроек и сразу будет добавлять сервера без их персональных настроек

По умолчанию выставляется значение 500, имхо для начала хватит такого значение.

Автор: Oleg 20.01.2006 - 15:23
QUOTE
По умолчанию выставляется значение 500, имхо для начала хватит такого значение.


Ну и славненько. biggrin.gif

Автор: Oleg 20.01.2006 - 18:03
QUOTE
Хм... Где-то в настройках есть свободные битики - можно опцию "без учета глубины" привинтить.


Чего-то сложно, мне кажется.huh.gif
А разве Вы не добавляете просто новую переменную-член в класс, например, управляющего опросами или режимами опросов, для новой опции и добавляете ссылки на нее в функциях загрузки (в зависимости от версии файла) и сохранения в файл? Или Вы сразу выделили некоторый объем памяти под настройки и потом, по мере надобности занимаете нужные биты? Чего-то я не очень понял. sad.gif

Автор: MAS 23.01.2006 - 16:18
QUOTE (Oleg @ Jan 20 2006, 18:03)
А разве Вы не добавляете просто новую переменную-член в класс, например, управляющего опросами или режимами опросов, для новой опции и добавляете ссылки на нее в функциях загрузки (в зависимости от версии файла) и сохранения в файл? Или Вы сразу выделили некоторый объем памяти под настройки и потом, по мере надобности занимаете нужные биты? Чего-то я не очень понял.  sad.gif

Для числовых и строчных переменных "выделяется место", точнее объявляется переменная в классе настроек сервера.
А вот булевые переменные (пассивные режим, MODE Z, SSL, ....) "упаковываются" в одну UINT переменную. Ну не в одну, в несколько (по категориям). Так вот - свободные битики в этих "флаговых переменных" ещё остались.

Автор: Oleg 23.01.2006 - 20:15
QUOTE
А вот булевые переменные (пассивные режим, MODE Z, SSL, ....) "упаковываются" в одну UINT переменную. Ну не в одну, в несколько (по категориям).

А почему именно таким образом организовано, если не секрет, конечно? wink.gif (спрашиваю чисто из любопытства и стремления узнавать новое rolleyes.gif ).
Просто однажды может наступить момент, когда даже в UINT-переменной не хватит битов, и придется делать еще одну переменную той же категории или менять ее тип на больший.

Автор: MAS 24.01.2006 - 12:48
QUOTE (Oleg @ Jan 23 2006, 20:15)
QUOTE
А вот булевые переменные (пассивные режим, MODE Z, SSL, ....) "упаковываются" в одну UINT переменную. Ну не в одну, в несколько (по категориям).

А почему именно таким образом организовано, если не секрет, конечно? wink.gif (спрашиваю чисто из любопытства и стремления узнавать новое rolleyes.gif ).

Спектрумовская привычка экономить память. Так бы пришлось использовать на каждый флаг BOOL переменную, которая есть UINT, но принимает лишь значение 0 или 1.
Плюс BOOL переменную "неопределенное состояние" ("серые галки" при групповой настройке серверов).
А так: в одну UINT влезает 16 флагов и 16 "неопределённых" этих же флагов.
И всего 4 байта занимает. А если в BOOL: 4 * 16 * 2 = 128 байт. 128 или 4 - есть разница? smile.gif А если серверов под 1000 => 4Кб или 128Кб.
Хотя.... Если в мире ПЦ не принято экономить память и оптимизировать всё что можно - тока скажите, я тут же развернусь biggrin.gif

QUOTE
Просто однажды может наступить момент, когда даже в UINT-переменной не хватит битов, и придется делать еще одну переменную той же категории или менять ее тип на больший.

Ну переведу из 32-х битнрой в 64-х битную или добавлю новую переменную - и что из этого?
Опять же: я добавляю 4 байта, а получаю в итоге 16 битовых переменных.

Автор: Oleg 24.01.2006 - 15:18
QUOTE
А так: в одну UINT влезает 16 флагов и 16 "неопределённых" этих же флагов.  И всего 4 байта занимает. А если в BOOL: 4 * 16 * 2 = 128 байт. 128 или 4 - есть разница?  А если серверов под 1000 => 4Кб или 128Кб

Разумно! Надо будет иметь ввиду. smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)