LibRusLib
Четверг, 28.03.2024, 17:59
Приветствую Вас Гость | RSS
 
Главная ФорумРегистрацияВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Архив - только для чтения
Форум » Архив "MultiLib - Библиотекарь" » Бета-тестирование » Концепция Локальной коллекции (Все вопросы, связанные со структурой, обработкой, хранением)
Концепция Локальной коллекции
drserjДата: Пятница, 28.06.2013, 18:02 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Возник закономерный вопрос, что собой представляет локальная (private) коллекция.

Хочу услышать предложения по поводу правильной реализации, ибо вопрос достаточно сложен.

1. В каком виде хранить книги. Какой формат имени.
2. Сканировать книги в тех же каталогах, или из "левого", а потом 
 а) копировать в каталог, указанный в настройках как основной
 б) добавлять сканированный каталог в список
 в) пользователь сам скопирует/добавит
3) Приводить имена файлов к едиому формату или нет.

и т. д.

Хочу выслушать и обсудить все мнения, ибо это достаточно критично.


drSerj
 
Alex_nooДата: Пятница, 28.06.2013, 18:44 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Цитата (drserj)
Возник закономерный вопрос, что собой представляет локальная (private) коллекция.
    Да, это важно. :-)
Цитата (drserj)
1. В каком виде хранить книги. Какой формат имени.
    Книги должны храниться исключительно в том виде, как они были скачаны из сети, и в тех местах, куда были скачаны. Режимы работы, вроде, берём все найденные файлы, и переносим в одну папку - только как дополнительные, через мастер. Ничего прописываться в них, правиться, и писаться в те папки, где они лежат - не должно совсем. Каталогизатор потому и каталогизатор, что он разбросанное по разным папкам, разделам, винтам, должен удобно представлять в одном месте, в каталоге! Режимы импорта в одну папку, для других устройств - реализуются отдельно, и в последнюю очередь. :-)
Цитата (drserj)
2. Сканировать книги в тех же каталогах, или из "левого", а потом  б) добавлять сканированный каталог в список
    Если я правильно понял, то тут о проверке уже добавленных каталогов на вновь появившиеся книги? Конечно, должен быть режим актуализации коллекции. Причём, важно, что если юзер включил в проверку одну папку, то можно не хотеть, чтобы её вложенные папки проверялись. То есть, исключить чтобы можно было любую папку, и включить в проверку. Файлы, которые были ранее добавлены в коллекцию автоматически, а потом удалены юзером - должны помечаться тоже автоматически, как не добавляемые на будущее. Режим удаления физического для файла - только с предупреждением, команда удаления из базы должна сильно отличаться от удаления файла насовсем, чтобы не было возможности перепутать.
Цитата (drserj)
3) Приводить имена файлов к едиому формату или нет.
    Ни в коем случае. Только в явно задаваемом режиме через мастер, с двойным предупреждением юзера. :-) Ориентироваться надо на то, что у юзера большая часть файлов ценна сама по себе, и на то, что большая часть файлов сейчас у всех - это торренты, они не должны меняться даже на бит. То есть, fdb - тоже не юзабельно, при импорте надо всё сохранять в базу, и ориентироваться на неё.
    Очень бы было полезно иметь режим импорта из каталогов BookSeer-а, потому что у многих могут быть уже причёсанные каталоги в нём, и плюс, он очень из многих типов файлов вытягивает хоть какие-то имена автоматически, что потом удобно уже руками поправлять. Кстати, я предлагал Кандрашину в MyRuLib добавить возможность просмотра через Буксир (он удобен как читалка, хоть и не поддерживает картинки. :-) ), а он добавил в программу встроенный CoolReader - тоже очень удобно, особенно на перспективу, когда юзер открывает книгу в каталогизаторе, а потом выделяя название/автора клавиатурными сочитаниями автоматически добавляет их в поля каталога. Без встроенной читалки это не реализовать... :-(
   Это пока о основном. Если есть смысл - дальше буду высказываться. :-)
 
drserjДата: Пятница, 28.06.2013, 20:13 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Загвоздка в том, что меньше всего хочется привязывать книги к местоположению... А это, при раскладе описанном выше, приведет к постоянному возникновению дублей в базе. 
Вопрос: как, не привязывая книгу к каталогу, объяснить каталогизатору, что книга уже добавлена, если я снова просканирую уже сканированную ранее папку?

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

По поводу приведения к единому формату имен файлов... Очччень спорно. Еще на стадии начала работы либруса я писал Ларину, что нужно унифицировать имена, и лучше - по букид... Он долго это игнорировал... Пока не пришел к тому же выводу... Только пришлось переделывать потом гораздо больше, чем этого потребовалось бы в начале. Аналогично поступили и на флибусте... Да и на многих других библиотеках. Мне бы не хотелось повторять их ошибки. Приведу простой пример: имеется десяток файлов в разных каталогах, которые имеют одинаковое название. Как программе различить, какой из файлов я вызываю? Напомню, привязок к каталогам нет.
Как вариант, я бы закатывал книги в архив с реальными именами, а вот уже имя архива - унифицировал. Но это как вариант. В идеале - сделать так, как на либгене - имя файла - значение контрольной суммы (хэша) МД5. Это гарантированно дает возможность нахождения книги. Боле того - на все сто отсеивает дубли.

В общем, думаем, предлагаем еще варианты smile

Цитата (Alex_noo)
Если есть смысл - дальше буду высказываться. :-)


Да есть, конечно... Особенно, если по делу smile


drSerj
 
Alex_nooДата: Пятница, 28.06.2013, 22:16 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Цитата (drserj)
Загвоздка в том, что меньше всего хочется привязывать книги к местоположению... А это, при раскладе описанном выше, приведет к постоянному возникновению дублей в базе.
     Наоборот же. Если для книги указан путь к ней и имя файла - откуда будут дубли?  smile
Цитата (drserj)
Вопрос: как, не привязывая книгу к каталогу, объяснить каталогизатору, что книга уже добавлена, если я снова просканирую уже сканированную ранее папку?

    Сохранить и путь/имя файла и его контрольную сумму. Чтобы дубль если он окажется добавился как второй путь с возможностью выбора из них.
Цитата (drserj)
То что писать в папки с книгами не стоит - это и ежу понятно... Попробуй запиши, если сетевая папка или папки на двд, где тупо рид онли
    Тогда я не совсем понимаю, имена каких файлов вы хотите в одну систему приводить.  wink
Цитата (drserj)
Как вариант, я бы закатывал книги в архив с реальными именами, а вот уже имя архива - унифицировал. Но это как вариант. В идеале - сделать так, как на либгене - имя файла - значение контрольной суммы (хэша) МД5. Это гарантированно дает возможность нахождения книги. Боле того - на все сто отсеивает дубли.

    Так это уже будет не библиотека пользователя, а какая-то новая.
Цитата (drserj)
Да есть, конечно... Особенно, если по делу
    Бывает, что не совпадает это ощущение - по делу, или нет.  wink
 
drserjДата: Пятница, 28.06.2013, 23:32 | Сообщение # 5
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата (Alex_noo)
Наоборот же. Если для книги указан путь к ней и имя файла - откуда будут дубли?
 
Угу... Теперь рассмотрим некоторые пункты, по которым этого делать ну никак не стоит smile
Итак, привязали мы книжечки к путям, просканировали, добавили, в общем, всё круто!
И тут... ой, переместить бы коллекцию на другой диск... упсь...
А вот разрослась коллекция, разбить бы ее... ан нет, пути-то жестко прописаны...
Так, коллекция на работе и дома, база одна...упсь... на работе нет диска F smile
Храним в сети... да, ссылки на сетевой диск... проблемс, однако...
На внешнем девайсе храним... Угу, буковку не ту присвоило? Не судьба smile
И это только первые из сотен проблем, которые мы имеем.
Т.е. при жестком прописывании путей мы лишаем себя возможностей переноса, разбиения, реструктуризации коллекции и т.д.
Вопрос! Стоит ли это всё такого гемора? smile
 
Цитата (Alex_noo)
Сохранить и путь/имя файла и его контрольную сумму. Чтобы дубль если он окажется добавился как второй путь с возможностью выбора из них.

Про первое я уже написал, МД5 и так есть smile

Цитата (Alex_noo)
Тогда я не совсем понимаю, имена каких файлов вы хотите в одну систему приводить.
  Я привел частный вариант, который может иметь место. Имелось в виду, что писать туда нельзя.

 
Цитата (Alex_noo)
Так это уже будет не библиотека пользователя, а какая-то новая.


Ну почему же? Это и будет библиотека пользователя. Просто структурированная. Ведь тут всё зависит от того, что понимать под библиотекой. Да, если ты ищешь книгу по файловой системе, глазками - это одно. Тут название файла - название книги. Но! Ты ведь хочешь переложить всё на плечи компьютера. А для него твое название - это набор байт. Ты должен понять, что книга в обычной библиотеке и в электронной - это не одно и то же. И способ хранения и поиска значительно отличается. А вот если ты потом из библиотеки захочешь эту книжечку скопировать - тут да, циферки не пройдут, но... в процессе копирования имя изменяется на нормальное. Так зачем нам писать парсеры, разборщики в поиске, что бы тратить время на поиск, если нам абсолютно всё равно, под каким именем книга лежит на диске?


drSerj
 
1_абрамДата: Суббота, 29.06.2013, 14:27 | Сообщение # 6
Генералиссимус
Группа: Друзья
Сообщений: 1207
Репутация: 0
Статус: Offline
Что собой представляет локальная (private) коллекция.

 

Для меня локальная коллекция   (ЛК)– это подборка книг  разного формата  (аналог группы в либруслибе), с которыми предполагается часто работать . Например, подборка книг по линейной алгебре, отчеты по данной  теме  и.т.п..   Требования к ЛК – быстрота поиска,  удобство пополнения, возможность передать ЛК  товарищам.  Хотелось бы  чтобы была возможность добавления книги  из флибусты, либгена,  либо копированием в директорию ЛК.

 

Отсюда следуют ответы на вопросы

 

1)          Md5

2)    Сканировать каталог левый каталог add,  затем  автоматически копировать в каталог, указанный в настройках как основной  преобразуя имена файлов.

3)    Да

 
В новой версии у меня заработал импорт базы в ЛК, спасибо.
 
andToxaДата: Суббота, 29.06.2013, 14:43 | Сообщение # 7
Подполковник
Группа: Проверенные
Сообщений: 148
Репутация: 0
Статус: Offline
Пытался сформулировать свои пожелания к локально коллекции, но 1_абрам сделал это за меня smile
Полностью присоединяюсь.


книга - лучший подарок!
 
1_абрамДата: Суббота, 29.06.2013, 15:10 | Сообщение # 8
Генералиссимус
Группа: Друзья
Сообщений: 1207
Репутация: 0
Статус: Offline
Кстати, м.б. имеет смысл хранить книжки всех ЛК в одном месте   в каталоге "Размещение скачиваемых файлов библиотеки"  по терминологии либруслиба.  Это решит проблему дублирования  и вроде бы логично.  В этом случае ЛК это просто отдельная БД.
 
drserjДата: Суббота, 29.06.2013, 19:07 | Сообщение # 9
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата (1_абрам)
Кстати, м.б. имеет смысл хранить книжки всех ЛК в одном месте   в каталоге

Это неприемлемо по нескольким причинам: 
1. При большом количестве файлов скорость поиска снижается чуть ли не в геометрической прогрессии
2. Коллекция может находится на различных носителях
и т д

Каталог "Размещение скачиваемых файлов библиотеки" может быть основным, куда изначально перемещаются вновь добавляемые книги.
Он же, естественно, может быть и единственным smile


drSerj
 
1_абрамДата: Воскресенье, 30.06.2013, 11:39 | Сообщение # 10
Генералиссимус
Группа: Друзья
Сообщений: 1207
Репутация: 0
Статус: Offline
Подумал еще в отношении пункта 2.  М.б.  лучше такое решение.  Файлы сканируются в подкаталогах, затем    их имена  модифицируются и  файлы копируются (в место обеспечивающее мах скорострельность) и удаляются (опционально).
 
 
Я собираюсь использовать  мультилиб для хранения подборок статей.  Изначально они упорядочены в каталогах по годам, журналам и.т.п.  На всякий пожарный хотелось иногда бы сохранить   эту структуру и сами файлы в исходном виде.  Иногда доступ к ним удобнее осуществлять минуя мультилиб.  Дублирование в этом случае не столь важно.
 
drserjДата: Понедельник, 01.07.2013, 23:31 | Сообщение # 11
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Скорее всего так... Ждем еще предложений

drSerj
 
1_абрамДата: Вторник, 09.07.2013, 15:35 | Сообщение # 12
Генералиссимус
Группа: Друзья
Сообщений: 1207
Репутация: 0
Статус: Offline
Цитата (drserj)
Тут я не определился. С таким раскладом прийдется делать какую-то библиотеку дефолтной, делать проверки на наличие, отсутствие, тип... слишком много гемора...
Причем, всё равно форма запроса будет, иначе как понять - в какую библиотеку, в какой раздел гнать...
Боле того, надо как-то с файлами разбираться, особенно если учесть, что каталоги для разных библиотек - разные. Что делать, если у меня и либрус и флибуста (как минимум) и файлы в разных местах, а имена могут совпадать (хотя книги разные).

Думаю, проще будет сделать импорт/экспорт через файл. Можно и через буфер, но если какой извращенец попытается сразу сотню-другую тысяч за раз перекинуть (а такое уже не раз было) то винда может неадекватно себя повести...
 
А почему бы не сделать дефолтную локальную библиотеку создающуюся при начале работы  (подобно флибусте и либрусеку)  с зарезервированым именем.  Геморой в этом случае снимается.  Насчет формы  при горячая кнопка:  "Отправить книжку в дефолттную библиотеку".  А раздел должен опрделяться автоматически (по жанру).  

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

База данных в ЛК должна быть наиболее широкой  (флибуста, либрусек и либген должны быть ее подмножеством).
 
drserjДата: Среда, 10.07.2013, 21:48 | Сообщение # 13
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата (1_абрам)
А почему бы не сделать дефолтную локальную библиотеку создающуюся при начале работы  (подобно флибусте и либрусеку)  с зарезервированым именем.

А зачем????

Цитата (1_абрам)
Насчет формы  при горячая кнопка:  "Отправить книжку в дефолттную библиотеку".  А раздел должен опрделяться автоматически (по жанру).
 
Да нет смысла в такой дефолтности... Я не вижу особых проблем в самом добавлении в базу, но делать какие-то жесткие привязки - это не есть правильно. 99% юзеров будет пользовать именно либрус/флибусту. Зачем им дефолтная не нужная библиотека?

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


А зачем информация без книг? Я по этому поводу на либрус матерюсь. Они тоже карточки без книг позаводили... А нах мне их карточки, если мне книги нужны? Не, я понимаю, народ находит типа книгу, лезет, качает тонну рекламы, получает хрен... Деньги либрус зарабатывает. Но мне-то такое делать зачем???

Цитата (1_абрам)
База данных в ЛК должна быть наиболее широкой  (флибуста, либрусек и либген должны быть ее подмножеством).

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


drSerj
 
1_абрамДата: Четверг, 11.07.2013, 11:33 | Сообщение # 14
Генералиссимус
Группа: Друзья
Сообщений: 1207
Репутация: 0
Статус: Offline
Цитата (drserj)
99% юзеров будет пользовать именно либрус/флибусту


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

Добавлено (11.07.2013, 10:30)
---------------------------------------------

Цитата (drserj)
А зачем информация без книг? Я по этому поводу на либрус матерюсь. Они тоже карточки без книг позаводили... А нах мне их карточки, если мне книги нужны? Не, я понимаю, народ находит типа книгу, лезет, качает тонну рекламы, получает хрен... Деньги либрус зарабатывает. Но мне-то такое делать зачем???


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

Добавлено (11.07.2013, 10:33)
---------------------------------------------

Цитата (drserj)
База данных должна быть унифицирована вне зависимости от библиотек.


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

Цитата (1_абрам)
"флибуста, либрусек и либген должны быть ее подмножеством".  Если А совпадает с В то она в частности является его подмножеством.  Короче,  конечно ты прав.:)


Угу, математика не мой конек, я больше по логике, но базу изменять не буду! smile


drSerj
 
Форум » Архив "MultiLib - Библиотекарь" » Бета-тестирование » Концепция Локальной коллекции (Все вопросы, связанные со структурой, обработкой, хранением)
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

Copyright LibRusLib © 2024