Концепция Локальной коллекции
| |
drserj | Дата: Пятница, 28.06.2013, 18:02 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Возник закономерный вопрос, что собой представляет локальная (private) коллекция.
Хочу услышать предложения по поводу правильной реализации, ибо вопрос достаточно сложен.
1. В каком виде хранить книги. Какой формат имени. 2. Сканировать книги в тех же каталогах, или из "левого", а потом а) копировать в каталог, указанный в настройках как основной б) добавлять сканированный каталог в список в) пользователь сам скопирует/добавит 3) Приводить имена файлов к едиому формату или нет.
и т. д.
Хочу выслушать и обсудить все мнения, ибо это достаточно критично.
drSerj
|
|
| |
Alex_noo | Дата: Пятница, 28.06.2013, 18:44 | Сообщение # 2 |
Рядовой
Группа: Пользователи
Сообщений: 14
Статус: Offline
| Цитата (drserj) Возник закономерный вопрос, что собой представляет локальная (private) коллекция. Да, это важно. :-) Цитата (drserj) 1. В каком виде хранить книги. Какой формат имени. Книги должны храниться исключительно в том виде, как они были скачаны из сети, и в тех местах, куда были скачаны. Режимы работы, вроде, берём все найденные файлы, и переносим в одну папку - только как дополнительные, через мастер. Ничего прописываться в них, правиться, и писаться в те папки, где они лежат - не должно совсем. Каталогизатор потому и каталогизатор, что он разбросанное по разным папкам, разделам, винтам, должен удобно представлять в одном месте, в каталоге! Режимы импорта в одну папку, для других устройств - реализуются отдельно, и в последнюю очередь. :-) Цитата (drserj) 2. Сканировать книги в тех же каталогах, или из "левого", а потом б) добавлять сканированный каталог в список Если я правильно понял, то тут о проверке уже добавленных каталогов на вновь появившиеся книги? Конечно, должен быть режим актуализации коллекции. Причём, важно, что если юзер включил в проверку одну папку, то можно не хотеть, чтобы её вложенные папки проверялись. То есть, исключить чтобы можно было любую папку, и включить в проверку. Файлы, которые были ранее добавлены в коллекцию автоматически, а потом удалены юзером - должны помечаться тоже автоматически, как не добавляемые на будущее. Режим удаления физического для файла - только с предупреждением, команда удаления из базы должна сильно отличаться от удаления файла насовсем, чтобы не было возможности перепутать. Цитата (drserj) 3) Приводить имена файлов к едиому формату или нет. Ни в коем случае. Только в явно задаваемом режиме через мастер, с двойным предупреждением юзера. :-) Ориентироваться надо на то, что у юзера большая часть файлов ценна сама по себе, и на то, что большая часть файлов сейчас у всех - это торренты, они не должны меняться даже на бит. То есть, fdb - тоже не юзабельно, при импорте надо всё сохранять в базу, и ориентироваться на неё. Очень бы было полезно иметь режим импорта из каталогов BookSeer-а, потому что у многих могут быть уже причёсанные каталоги в нём, и плюс, он очень из многих типов файлов вытягивает хоть какие-то имена автоматически, что потом удобно уже руками поправлять. Кстати, я предлагал Кандрашину в MyRuLib добавить возможность просмотра через Буксир (он удобен как читалка, хоть и не поддерживает картинки. :-) ), а он добавил в программу встроенный CoolReader - тоже очень удобно, особенно на перспективу, когда юзер открывает книгу в каталогизаторе, а потом выделяя название/автора клавиатурными сочитаниями автоматически добавляет их в поля каталога. Без встроенной читалки это не реализовать... :-( Это пока о основном. Если есть смысл - дальше буду высказываться. :-)
|
|
| |
drserj | Дата: Пятница, 28.06.2013, 20:13 | Сообщение # 3 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Загвоздка в том, что меньше всего хочется привязывать книги к местоположению... А это, при раскладе описанном выше, приведет к постоянному возникновению дублей в базе. Вопрос: как, не привязывая книгу к каталогу, объяснить каталогизатору, что книга уже добавлена, если я снова просканирую уже сканированную ранее папку?
То что писать в папки с книгами не стоит - это и ежу понятно... Попробуй запиши, если сетевая папка или папки на двд, где тупо рид онли
По поводу приведения к единому формату имен файлов... Очччень спорно. Еще на стадии начала работы либруса я писал Ларину, что нужно унифицировать имена, и лучше - по букид... Он долго это игнорировал... Пока не пришел к тому же выводу... Только пришлось переделывать потом гораздо больше, чем этого потребовалось бы в начале. Аналогично поступили и на флибусте... Да и на многих других библиотеках. Мне бы не хотелось повторять их ошибки. Приведу простой пример: имеется десяток файлов в разных каталогах, которые имеют одинаковое название. Как программе различить, какой из файлов я вызываю? Напомню, привязок к каталогам нет. Как вариант, я бы закатывал книги в архив с реальными именами, а вот уже имя архива - унифицировал. Но это как вариант. В идеале - сделать так, как на либгене - имя файла - значение контрольной суммы (хэша) МД5. Это гарантированно дает возможность нахождения книги. Боле того - на все сто отсеивает дубли.
В общем, думаем, предлагаем еще варианты
Цитата (Alex_noo) Если есть смысл - дальше буду высказываться. :-)
Да есть, конечно... Особенно, если по делу
drSerj
|
|
| |
Alex_noo | Дата: Пятница, 28.06.2013, 22:16 | Сообщение # 4 |
Рядовой
Группа: Пользователи
Сообщений: 14
Статус: Offline
| Цитата (drserj) Загвоздка в том, что меньше всего хочется привязывать книги к местоположению... А это, при раскладе описанном выше, приведет к постоянному возникновению дублей в базе. Наоборот же. Если для книги указан путь к ней и имя файла - откуда будут дубли? Цитата (drserj) Вопрос: как, не привязывая книгу к каталогу, объяснить каталогизатору, что книга уже добавлена, если я снова просканирую уже сканированную ранее папку? Сохранить и путь/имя файла и его контрольную сумму. Чтобы дубль если он окажется добавился как второй путь с возможностью выбора из них.Цитата (drserj) То что писать в папки с книгами не стоит - это и ежу понятно... Попробуй запиши, если сетевая папка или папки на двд, где тупо рид онли Тогда я не совсем понимаю, имена каких файлов вы хотите в одну систему приводить. Цитата (drserj) Как вариант, я бы закатывал книги в архив с реальными именами, а вот уже имя архива - унифицировал. Но это как вариант. В идеале - сделать так, как на либгене - имя файла - значение контрольной суммы (хэша) МД5. Это гарантированно дает возможность нахождения книги. Боле того - на все сто отсеивает дубли. Так это уже будет не библиотека пользователя, а какая-то новая.Цитата (drserj) Да есть, конечно... Особенно, если по делу Бывает, что не совпадает это ощущение - по делу, или нет.
|
|
| |
drserj | Дата: Пятница, 28.06.2013, 23:32 | Сообщение # 5 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата (Alex_noo) Наоборот же. Если для книги указан путь к ней и имя файла - откуда будут дубли? Угу... Теперь рассмотрим некоторые пункты, по которым этого делать ну никак не стоит Итак, привязали мы книжечки к путям, просканировали, добавили, в общем, всё круто! И тут... ой, переместить бы коллекцию на другой диск... упсь... А вот разрослась коллекция, разбить бы ее... ан нет, пути-то жестко прописаны... Так, коллекция на работе и дома, база одна...упсь... на работе нет диска F Храним в сети... да, ссылки на сетевой диск... проблемс, однако... На внешнем девайсе храним... Угу, буковку не ту присвоило? Не судьба И это только первые из сотен проблем, которые мы имеем. Т.е. при жестком прописывании путей мы лишаем себя возможностей переноса, разбиения, реструктуризации коллекции и т.д. Вопрос! Стоит ли это всё такого гемора? Цитата (Alex_noo) Сохранить и путь/имя файла и его контрольную сумму. Чтобы дубль если он окажется добавился как второй путь с возможностью выбора из них. Про первое я уже написал, МД5 и так есть
Цитата (Alex_noo) Тогда я не совсем понимаю, имена каких файлов вы хотите в одну систему приводить. Я привел частный вариант, который может иметь место. Имелось в виду, что писать туда нельзя.
Цитата (Alex_noo) Так это уже будет не библиотека пользователя, а какая-то новая.
Ну почему же? Это и будет библиотека пользователя. Просто структурированная. Ведь тут всё зависит от того, что понимать под библиотекой. Да, если ты ищешь книгу по файловой системе, глазками - это одно. Тут название файла - название книги. Но! Ты ведь хочешь переложить всё на плечи компьютера. А для него твое название - это набор байт. Ты должен понять, что книга в обычной библиотеке и в электронной - это не одно и то же. И способ хранения и поиска значительно отличается. А вот если ты потом из библиотеки захочешь эту книжечку скопировать - тут да, циферки не пройдут, но... в процессе копирования имя изменяется на нормальное. Так зачем нам писать парсеры, разборщики в поиске, что бы тратить время на поиск, если нам абсолютно всё равно, под каким именем книга лежит на диске?
drSerj
|
|
| |
1_абрам | Дата: Суббота, 29.06.2013, 14:27 | Сообщение # 6 |
Генералиссимус
Группа: Друзья
Сообщений: 1207
Статус: Offline
| Что собой представляет локальная (private) коллекция.
Для меня локальная коллекция (ЛК)– это подборка книг разного формата (аналог группы в либруслибе), с которыми предполагается часто работать . Например, подборка книг по линейной алгебре, отчеты по данной теме и.т.п.. Требования к ЛК – быстрота поиска, удобство пополнения, возможность передать ЛК товарищам. Хотелось бы чтобы была возможность добавления книги из флибусты, либгена, либо копированием в директорию ЛК.
Отсюда следуют ответы на вопросы
1) Md5
2) Сканировать каталог левый каталог add, затем автоматически копировать в каталог, указанный в настройках как основной преобразуя имена файлов.
3) Да
В новой версии у меня заработал импорт базы в ЛК, спасибо.
|
|
| |
andToxa | Дата: Суббота, 29.06.2013, 14:43 | Сообщение # 7 |
Подполковник
Группа: Проверенные
Сообщений: 148
Статус: Offline
| Пытался сформулировать свои пожелания к локально коллекции, но 1_абрам сделал это за меня Полностью присоединяюсь.
книга - лучший подарок!
|
|
| |
1_абрам | Дата: Суббота, 29.06.2013, 15:10 | Сообщение # 8 |
Генералиссимус
Группа: Друзья
Сообщений: 1207
Статус: Offline
| Кстати, м.б. имеет смысл хранить книжки всех ЛК в одном месте в каталоге "Размещение скачиваемых файлов библиотеки" по терминологии либруслиба. Это решит проблему дублирования и вроде бы логично. В этом случае ЛК это просто отдельная БД.
|
|
| |
drserj | Дата: Суббота, 29.06.2013, 19:07 | Сообщение # 9 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата (1_абрам) Кстати, м.б. имеет смысл хранить книжки всех ЛК в одном месте в каталоге Это неприемлемо по нескольким причинам: 1. При большом количестве файлов скорость поиска снижается чуть ли не в геометрической прогрессии 2. Коллекция может находится на различных носителях и т д
Каталог "Размещение скачиваемых файлов библиотеки" может быть основным, куда изначально перемещаются вновь добавляемые книги. Он же, естественно, может быть и единственным
drSerj
|
|
| |
1_абрам | Дата: Воскресенье, 30.06.2013, 11:39 | Сообщение # 10 |
Генералиссимус
Группа: Друзья
Сообщений: 1207
Статус: Offline
| Подумал еще в отношении пункта 2. М.б. лучше такое решение. Файлы сканируются в подкаталогах, затем их имена модифицируются и файлы копируются (в место обеспечивающее мах скорострельность) и удаляются (опционально). Я собираюсь использовать мультилиб для хранения подборок статей. Изначально они упорядочены в каталогах по годам, журналам и.т.п. На всякий пожарный хотелось иногда бы сохранить эту структуру и сами файлы в исходном виде. Иногда доступ к ним удобнее осуществлять минуя мультилиб. Дублирование в этом случае не столь важно.
|
|
| |
drserj | Дата: Понедельник, 01.07.2013, 23:31 | Сообщение # 11 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Скорее всего так... Ждем еще предложений
drSerj
|
|
| |
1_абрам | Дата: Вторник, 09.07.2013, 15:35 | Сообщение # 12 |
Генералиссимус
Группа: Друзья
Сообщений: 1207
Статус: Offline
| Цитата (drserj) Тут я не определился. С таким раскладом прийдется делать какую-то библиотеку дефолтной, делать проверки на наличие, отсутствие, тип... слишком много гемора... Причем, всё равно форма запроса будет, иначе как понять - в какую библиотеку, в какой раздел гнать... Боле того, надо как-то с файлами разбираться, особенно если учесть, что каталоги для разных библиотек - разные. Что делать, если у меня и либрус и флибуста (как минимум) и файлы в разных местах, а имена могут совпадать (хотя книги разные).
Думаю, проще будет сделать импорт/экспорт через файл. Можно и через буфер, но если какой извращенец попытается сразу сотню-другую тысяч за раз перекинуть (а такое уже не раз было) то винда может неадекватно себя повести... А почему бы не сделать дефолтную локальную библиотеку создающуюся при начале работы (подобно флибусте и либрусеку) с зарезервированым именем. Геморой в этом случае снимается. Насчет формы при горячая кнопка: "Отправить книжку в дефолттную библиотеку". А раздел должен опрделяться автоматически (по жанру).
При передачи книжек я бы сами книжки копировать не стал, а копировал бы только библиграфическую информацию и быть может помещал книжку в список загрузок. М.б. удобнее копирование делать операцией актуализировать базу (как в либгене).
База данных в ЛК должна быть наиболее широкой (флибуста, либрусек и либген должны быть ее подмножеством).
|
|
| |
drserj | Дата: Среда, 10.07.2013, 21:48 | Сообщение # 13 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата (1_абрам) А почему бы не сделать дефолтную локальную библиотеку создающуюся при начале работы (подобно флибусте и либрусеку) с зарезервированым именем. А зачем????
Цитата (1_абрам) Насчет формы при горячая кнопка: "Отправить книжку в дефолттную библиотеку". А раздел должен опрделяться автоматически (по жанру). Да нет смысла в такой дефолтности... Я не вижу особых проблем в самом добавлении в базу, но делать какие-то жесткие привязки - это не есть правильно. 99% юзеров будет пользовать именно либрус/флибусту. Зачем им дефолтная не нужная библиотека?
Цитата (1_абрам) При передачи книжек я бы сами книжки копировать не стал, а копировал бы только библиграфическую информацию и быть может помещал книжку в список загрузок. М.б. удобнее копирование делать операцией актуализировать базу (как в либгене).
А зачем информация без книг? Я по этому поводу на либрус матерюсь. Они тоже карточки без книг позаводили... А нах мне их карточки, если мне книги нужны? Не, я понимаю, народ находит типа книгу, лезет, качает тонну рекламы, получает хрен... Деньги либрус зарабатывает. Но мне-то такое делать зачем???
Цитата (1_абрам) База данных в ЛК должна быть наиболее широкой (флибуста, либрусек и либген должны быть ее подмножеством). База данных должна быть унифицирована вне зависимости от библиотек. Иначе я не смогу делать глобальный поиск и выборки по всем библиотекам, а без поиска - нафиг эта информация нужна? Да и какую информацию ты еще хотел бы туда заливать??? Есть поля ключевых слов, есть поле примечаий. Что-то особое надо - сунь туда.
drSerj
|
|
| |
1_абрам | Дата: Четверг, 11.07.2013, 11:33 | Сообщение # 14 |
Генералиссимус
Группа: Друзья
Сообщений: 1207
Статус: Offline
| Цитата (drserj) 99% юзеров будет пользовать именно либрус/флибусту
Да и плюс локальную библиотеку, которою я предлагаю сделать дефолтной, для того чтобы автоматизировать добавление в нее книжек с флибусты (по горячей кнопке). Думаю, что это операция для многих будет массовой. В случае с флибустой для меня такой (ключевой) операцией является добавить в группу "К прочтению". Отсутсвие горячей кнопки для этой операции заставляло бы меня материться и проклинать автора прогаммы (как водители Москвы проклинают Собянина, боясь выехать на пустую общественную полосу).
Добавлено (11.07.2013, 10:30) ---------------------------------------------
Цитата (drserj) А зачем информация без книг? Я по этому поводу на либрус матерюсь. Они тоже карточки без книг позаводили... А нах мне их карточки, если мне книги нужны? Не, я понимаю, народ находит типа книгу, лезет, качает тонну рекламы, получает хрен... Деньги либрус зарабатывает. Но мне-то такое делать зачем???
Ну деньги за твою замечательную прогамму до тебя рано или поздно, тем или иным образом, в той или иной степени до тебя должны дойти (награда должна найдет своего героя). А суть моего предложения в ускорение работы. Я предлагаю разнести дешевую операцию копирования информации из одной базы данных в другую и дорогую операцию копирование тяжелых книжек. Копировать операцией актуализировать данные.
Добавлено (11.07.2013, 10:33) ---------------------------------------------
Цитата (drserj) База данных должна быть унифицирована вне зависимости от библиотек.
Так это не противоречит моим предложением "флибуста, либрусек и либген должны быть ее подмножеством". Если А совпадает с В то она в частности является его подмножеством. Короче, конечно ты прав.:)
|
|
| |
drserj | Дата: Четверг, 11.07.2013, 15:33 | Сообщение # 15 |
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Статус: Offline
| Цитата (1_абрам) Ну деньги за твою замечательную прогамму до тебя рано или поздно, тем или иным образом, в той или иной степени до тебя должны дойти Ага... если за столько лет не дошли - то уже хрен дождесси Цитата (1_абрам) Я предлагаю разнести дешевую операцию копирования информации из одной базы данных в другую и дорогую операцию копирование тяжелых книжек. Копировать операцией актуализировать данные. А может не надо? Давай, я сделаю проще, дам тебе "рыбу" плагина, а ты себе туда напишешь всё, что угодно А актуализация - это совсем другое, не надо смешивать несовместимое.
Цитата (1_абрам) "флибуста, либрусек и либген должны быть ее подмножеством". Если А совпадает с В то она в частности является его подмножеством. Короче, конечно ты прав.:)
Угу, математика не мой конек, я больше по логике, но базу изменять не буду!
drSerj
|
|
| |
|