LibRusLib
Пятница, 29.03.2024, 10:23
Приветствую Вас Гость | RSS
 
Главная ФорумРегистрацияВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » MultiLib - Библиотекарь » Version 1.x » Обсуждение работы программы (Баги, проблемы, решения)
Обсуждение работы программы
drserjДата: Вторник, 06.10.2015, 20:44 | Сообщение # 676
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата vsv13579 ()
А зачем??? зачем сканировать папки с книгами при каждом обращении к базе, если все данные по книгам есть в базе?

Когда библиотека одна и лежит в одном месте - кажется, что незачем... Однако, только у меня их 3... И мест хранения несколько.... и меняется всё на ходу.... 
Нельзя всё держать в памяти... Тем более, динамически изменяемое в любой момент времени.
Нет, я понимаю, можно всё это попытаться ужать, ограничить... Но теряется универсальность, появляется привязанность к конкретным местам, а народ просил от этого избавить. За универсальность приходится расплачиваться.
Вот с форматом md5, действительно,  неувязочка... Не подумал... Но и там будут некоторые проблемы.... Вот, казалось бы, самая простая часть программы - частная коллекция... Ан нет, куча вопросов. И вся беда в том, что это самая мало восстребованная, а потому, самая непродуманная часть программы sad

Цитата vsv13579 ()
"база" это файл/ы в папке программы, так?

В какой-то степени. Если быть точнее, база - это файлы в каталоге data... Если еще точнее, там файлы базы.


drSerj
 
vsv13579Дата: Вторник, 06.10.2015, 20:58 | Сообщение # 677
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline

Цитата
Когда библиотека одна и лежит в одном месте - кажется, что незачем... Однако, только у меня их 3... И мест хранения несколько.... и меняется всё на ходу....
  
Мы все еще говорим про частную коллекцию.
Какая разница сколько библиотек?
Что меняется на ходу?
Если появились новые книги, появилось обновление или я решил перенести часть книг в другую папку. Соответственно необходимо заново просканировать то что изменилось.

Иначе зачем все сканировать опять?
Мне кажется это логичным.

Аналогия.
Есть playlist. Один раз отсканировали. Потом пользуемся ссылками. Если что-то в "хранилище" изменилось, то программа выдаст ошибку.
Есть autoplaylist. Сканирование идет постоянно. Изменения в "хранилище" постоянно обновляются.

Как я понимаю у Вас реализован второй вариант. Так?
Почему не добавить возможность использования первого варианта?
 
drserjДата: Среда, 07.10.2015, 08:20 | Сообщение # 678
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата vsv13579 ()
Мы все еще говорим про частную коллекцию. Какая разница сколько библиотек? Что меняется на ходу?

Мы всё еще говорим про программу, в которой частная коллекция - одна из не самых больших частей.
В программе одновременно могут быть много библиотек, причем, многие формы (такие как поиск, группы и т д) работают параллельно со всеми имеющимися библиотеками. Именно по этому каждый раз информация о книге ищется наново. Держать данные о всех библиотеках в памяти не по карману многим. Если данные программы свалятся в свап - будет еще значительно медленнее.

Цитата vsv13579 ()
Если появились новые книги, появилось обновление или я решил перенести часть книг в другую папку. Соответственно необходимо заново просканировать то что изменилось.


Стесняюсь спросить, как программа узнает сама об изменениях?

Цитата vsv13579 ()
Как я понимаю у Вас реализован второй вариант. Так?


практически да

Цитата vsv13579 ()
Почему не добавить возможность использования первого варианта?


см. выше

Для подобных проблем было предусмотрено отключение вывода обложки и аннотации. Получить эту информацию можно в окне "Информация о книге", которое вызывается горячей клавишей или из всплывающего меню. Кстати, опция показывать обложку и аннотацию автоматически в главном окне появилась значительно позже, именно для тех, у кого скорости позволяют.


drSerj
 
vsv13579Дата: Среда, 07.10.2015, 18:47 | Сообщение # 679
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline

Цитата
В программе одновременно могут быть много библиотек, причем, многие формы (такие как поиск, группы и т д) работают параллельно со всеми имеющимися библиотеками.

Не подскажите основные принципы работы с остальными библиотеками?
Или - где можно почитать про это?


Цитата
Держать данные о всех библиотеках в памяти не по карману многим. Если данные программы свалятся в свап - будет еще значительно медленнее.
 
Никто не говорит, что надо держать в памяти. Речь о том чтобы держать данные в папке data.
Вся папка data всегда находится в памяти?

Извините, но еще раз: при выборе книге в программе(указании на нее) вся информация(путь к файлу, автор, название, аннотация, обложка и т.д.) читается из data(она там есть, так?) и читается еще раз из файла=книги, так?

или берется вся информация из data(кроме пути?) и ищется во всех указанных папках эта книга и после нахождения, читается опять та жа инфа из файла=книги. 
Ну ведь не логично же. Хм, или я чего-то не понимаю (((


Цитата
Стесняюсь спросить, как программа узнает сама об изменениях?
 
Кто сказал, что сама?
Я говорил, что если что-то изменилось в папке, то надо эту папку еще раз просканировать "ручками".
В конце концов при выборе папок можно указать "тип" папки: содержимое этой папки может меняться и ее надо "отслеживать" автоматом, а содержимое этой папки всегда постоянно(если нужно - ее можно просканировать вручную).
 
drserjДата: Среда, 07.10.2015, 20:13 | Сообщение # 680
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Не подскажите основные принципы работы с остальными библиотеками?
Зачем? Чем это Вам поможет решить проблему? Только запутаетесь.

Цитата vsv13579 ()
Или - где можно почитать про это?

Что-то в хелпе, что-то в литературе по программированию...

Цитата vsv13579 ()
Никто не говорит, что надо держать в памяти. Речь о том чтобы держать данные в папке data.


Господи... но оно там и лежит... Что не так-то?

Цитата vsv13579 ()
Вся папка data всегда находится в памяти?


Я что, знаю как и где mysql сервер держит данные? Это к программистам Оракла, плз... 

Цитата vsv13579 ()
Извините, но еще раз: при выборе книге в программе(указании на нее) вся информация(путь к файлу, автор, название, аннотация, обложка и т.д.) читается из data(она там есть, так?) и читается еще раз из файла=книги, так?


Еще раз - нет. Есть всё перечисленное, кроме пути к файлу. Путём обсуждения выбрали структуру, в которой информация о файле (кроме названия) не  привязана к данным в базе. Люди предпочли "портейбл"-вариант.

Цитата vsv13579 ()
или берется вся информация из data(кроме пути?) и ищется во всех указанных папках эта книга и после нахождения, читается опять та жа инфа из файла=книги.  Ну ведь не логично же. Хм, или я чего-то не понимаю (((


скорее всего, чего-то не понимаете smile У вас мухи и котлеты вместе смешались. Вы пытаетесь объединить информацию о книге с информацией о файле. Это несколько разные понятия.

Последний раз объясняю ситуацию. В базе хранится имя файла и имя архива. В настройках указываются возможные пути, где могут находиться книги. В базе нет пути к книге.
Алгоритм работы программы следующий:

1. Получаем из базы имя архива и файла
2. Если в базе картинка и аннотация - гуд, выводим. 
3. Если нет - по очереди проходим по всем каталогам, где находятся книги (создается список всех файлов в каталоге с подкаталогами) и ищем файл.
4. Нашли - ок. распаковываем файл во временный каталог, загружаем текст книги, вычленяем оттуда картинку, аннотацию.

Это действие происходит каждый раз, как мы переходим с одной записи в таблице на другую. Именно по этому, при каждом переходе на другую книгу в таблице, мы ищем файл и работаем с ним.

Причина тормозов - именно сканирование (и передача инфы по сетке, но совсем цуть-цуть, если сетка тормозная). А сканировать приходится из-за того, что держать все списки файлов в памяти - не есть хорошо, это может вызвать значительно большие тормоза программы. Да и как я уже говорил, актуальность списка - до очередного изменения.

Цитата vsv13579 ()
Кто сказал, что сама? Я говорил, что если что-то изменилось в папке, то надо эту папку еще раз просканировать "ручками".


????? Я постесняюсь такое даже предложить пользователю... Ручками пересканивать? Увольте... Проще книжки на листочек переписать smile

Цитата vsv13579 ()
В конце концов при выборе папок можно указать "тип" папки: содержимое этой папки может меняться и ее надо "отслеживать" автоматом, а содержимое этой папки всегда постоянно(если нужно - ее можно просканировать вручную).

Зачем? Не проще ли решить проблему более цивилизованным путем? Нет, я не предлагаю купить нормальный НАС, это не всегда спасает. А вот с способом хранения, структурой библиотеки, структурой каталогов - да, можно поработать. Я понимаю, что упустив добавление возможности работы с мд5-структурой, я тем самым ограничил возможности программы, но, общаясь с людьми, которые использовали этот модуль для приватных библиотек, они не хотели изменять местоположение и имена файлов. Так что до сегодняшнего дня этой проблемы совсем не было. Если вопрос станет ребром - я постараюсь добавить работу с фиксированным форматом.

А Вы попробуйте, всё-таки, добавьте картинки и описание в базу. Возможно проблема сама исчезнет.

Есть еще одна идея. Указать не корневой каталог, где лежат подкаталоги с книгами, а именно все подкаталоги. По идее, не потребуется пересканирование всех подкаталогов... Ну, если книга лежит не в последних...


drSerj
 
PFNДата: Четверг, 08.10.2015, 11:10 | Сообщение # 681
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Цитата drserj ()
Я понимаю, что упустив добавление возможности работы с мд5-структурой, я тем самым ограничил возможности программы
Здравствуйте, drserj!

Один вопрос по MD5, в котором я почти полный ноль. Если я правильно понял из прочитанной литературы, этот код формируется путем обработки строки. Исходя из того, что МД5 при формировании и пополнении библиотеки участвует в отборе дубликатов книг, я предполагаю, что программа формирует этот код из всего текста книги.
Правильно ли я это понимаю?


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно
 
drserjДата: Четверг, 08.10.2015, 12:46 | Сообщение # 682
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата PFN ()
Здравствуйте, drserj!

И снова здравствуйте smile

Цитата PFN ()
программа формирует этот код из всего текста книги. Правильно ли я это понимаю?


абсолютно верно.


drSerj
 
PFNДата: Четверг, 08.10.2015, 15:54 | Сообщение # 683
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Цитата drserj ()
И снова здравствуйте

Я с большим удовольствием желаю Вам ЗДРАВИЯ! smile

Цитата drserj ()
абсолютно верно.

Спасибо!


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно
 
drserjДата: Четверг, 08.10.2015, 16:23 | Сообщение # 684
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата PFN ()
Спасибо!

Всегда пожалуйста smile


drSerj
 
1_абрамДата: Понедельник, 12.10.2015, 15:08 | Сообщение # 685
Генералиссимус
Группа: Друзья
Сообщений: 1207
Репутация: 0
Статус: Offline
Цитата drserj ()
Я понимаю, что упустив добавление возможности работы с мд5-структурой, я тем самым ограничил возможности программы, но, общаясь с людьми, которые использовали этот модуль для приватных библиотек, они не хотели изменять местоположение и имена файлов. Так что до сегодняшнего дня этой проблемы совсем не было. Если вопрос станет ребром - я постараюсь добавить работу с фиксированным форматом.


Думаю, что добавление %Z  для приватных библиотек  было бы логичным.    А имеет ли смысл  использовать форматы типа %a\%Z  ?  Будет ли при этом выигрыш в скорости?
 
drserjДата: Понедельник, 12.10.2015, 20:29 | Сообщение # 686
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата 1_абрам ()
А имеет ли смысл  использовать форматы типа %a\%Z  ?  Будет ли при этом выигрыш в скорости?

будет только потеря...


drSerj
 
mmcДата: Среда, 21.10.2015, 04:14 | Сообщение # 687
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Где Взять нормальных прокси?
 
drserjДата: Среда, 21.10.2015, 20:42 | Сообщение # 688
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата mmc ()
Где Взять нормальных прокси?

Явно не тут.


drSerj
 
sergtchДата: Суббота, 24.10.2015, 17:55 | Сообщение # 689
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Добрый вечер.

"Поигрался" я тут я md5 системой. Мои выводы (для меня): при моем размере локальной библиотеки (~ 5000) разница в скоростьи несущественна. Но появилось неудобство: в процессе чтения я исправляю замеченные ошибки, а значит файл каждый раз оказывается с разным именем и в другом каталоге и становится дубликатом, значит надо за всемэтим следить ну и т.д.

Но это так, к слову.

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


С уважением, Сергей.
 
drserjДата: Суббота, 24.10.2015, 18:23 | Сообщение # 690
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
при моем размере локальной библиотеки (~ 5000) разница в скоростьи несущественна

Абсолютно. Разница начнет ощущаться на десятках тысяч, и то, сильно зависит от мощности компа, скорости и фрагментации диска. Да и не работает это в приватной библиотеке, насколько я помню.

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


Ну я бы сначала обработал все те, которые без ошибок, а затем уже очистил сканы и наново просканерил и обработал.... Тут действительно, расчет на "правильные" файлы....

Цитата sergtch ()
А вопрос вот в чем, при обработке, некоторые книги недобавляются с пометкой "ошибка добавления в базу". Так вот как узнать, что-же в файле явилось этой ошибкой?


Смотреть конкретные случаи надо. Вероятнее всего либо информация о файле отсутствует, либо ее недостаточно. А может и с самим файлом проблема. Если очень важно - пришлите файл, я попробую проанализировать причину...


drSerj
 
Форум » MultiLib - Библиотекарь » Version 1.x » Обсуждение работы программы (Баги, проблемы, решения)
Поиск:

Copyright LibRusLib © 2024