Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Ср Май 30, 2007 17:29 Заголовок сообщения: |
|
|
Alan писал(а): | Cd_spb в приведенных тобой примерах - да, это одна книга и две книги. Вполне устраивает. имхо, конечно, но ведь именно про имхо и спрашивали?
|
Мое ИМХО - это должно быть две и две книги.
Что бы в первом случае можно было сравнить и сделать третью - с исправлениями из обоих. |
|
Вернуться к началу |
|
|
Mike Sinkovsky Зрелый участник форума
Зарегистрирован: 27.10.2005 Сообщения: 296 Откуда: Пермь
|
Добавлено: Ср Май 30, 2007 17:40 Заголовок сообщения: |
|
|
Cd_spb писал(а): | две и две книги. Что бы в первом случае можно было сравнить и сделать третью - с исправлениями из обоих. |
Тогда их будет три. Именно что в распределенной пиринговой библиотеке трудно что-то удалить, в отличие от локальной личной.
Да и не нужно это наверно, это скорее достоинство чем недостаток. |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Чт Май 31, 2007 11:46 Заголовок сообщения: |
|
|
Mike Sinkovsky
Пусть три. Но так как доступна версия - будет проще выбрать более вычитанную. |
|
Вернуться к началу |
|
|
Sergey Chernov Новенький участник форума
Зарегистрирован: 14.05.2007 Сообщения: 32
|
Добавлено: Чт Май 31, 2007 15:34 Заголовок сообщения: |
|
|
Kv писал(а): |
хочу поинтересоваться насчет "специального функционала". Это по обмену книгами - я правильно понял? Насколько он привязан к формату фб2?
только сразу ногами не бейте |
FB2 предполагался как основной стандарт хранения и обмена, другие - если кто напишет плагин.
Другой специальный функционал: оценка текста, поиск идентичных текстов, критерий вероятности авторства. Экспорт-импорт непосредственно с/на КПК, поддержка атрибута "прочитал" для книжек, читанных на КПК.
В перспективе: активное комментирование (добавление закладок-комментариев, отдельных документов, которыми можно обмениваться и мержить), соответственная читалка с таким функицоналом для десктопа и, если успею, для покета. Задел некий скоро будет.
Добавлено спустя 5 минут 22 секунды:
Про книги и авторов: парадигма такова - храним все версии. Показываем - последние *по умолчанию". Используем document-info.id.
Наприемр, сливаем из двух документов третий, можно использовать либо id одного из них и следующий номер версии (кста, версию то я забыл, но вставлю), либо новый докумнет.
Добавлено спустя 5 минут 29 секунд:
Cd_spb писал(а): | [
Sergey Chernov
я не вижу избыточности в Вашем описании.
Только не понятно назначение вот этих полей:
Код: | class Weblink(DataObject):
url = Col(key='uniqie')
class Email(DataObject):
email = Col(key='uniqie') |
Код: | class Shelf(DataObject):
name = Col()
guid = Col(key=1)
path = Col()
notes = ForeignKey('Notes') |
Код: | class Dupe(DataObject):
book1 = ForeignKey('Book')
book2 = ForeignKey('Book') |
|
- мейлы и линки: чтобы не копировать повторяющиеся. Не уверен, что это шибко эффективно, надо посмотреть.
Дупы: у меня на 15600 примерно книг получается 4773 дупы только по document-info.id. Часть из них вероятно разрешится через версию. Таблица нужна по задумке чтобы можно было их посмотреть и отредактировать информацию - удалить ненужные, смержить и т.д. |
|
Вернуться к началу |
|
|
Kv Новенький участник форума
Зарегистрирован: 30.05.2007 Сообщения: 23
|
Добавлено: Чт Май 31, 2007 16:28 Заголовок сообщения: |
|
|
Sergey Chernov писал(а): | Kv писал(а): |
хочу поинтересоваться насчет "специального функционала". Это по обмену книгами - я правильно понял? Насколько он привязан к формату фб2?
только сразу ногами не бейте |
FB2 предполагался как основной стандарт хранения | по хранению - понятно.
Sergey Chernov писал(а): | и обмена | не понятно. Ну в смысле, разве в fb2 какие-то средства особые возможности касаемые обмена уже заложены? Или что имеется в виду? Ну и как видится обмен - чем, с какой частотой, ну и т.д.
Sergey Chernov писал(а): | , другие - если кто напишет плагин. |
плагин - имеется в виду, преобразование чего-то в фб2? Ну а когда преобразовался - тогда поехало по стандартной схеме. Так?
Sergey Chernov писал(а): | Другой специальный функционал: оценка текста, поиск идентичных текстов, критерий вероятности авторства. Экспорт-импорт непосредственно с/на КПК, поддержка атрибута "прочитал" для книжек, читанных на КПК.
В перспективе: активное комментирование (добавление закладок-комментариев, отдельных документов, которыми можно обмениваться и мержить), соответственная читалка с таким функицоналом для десктопа и, если успею, для покета. Задел некий скоро будет. |
насколько понял, то все это - набор фишек, которые в том или ином виде присутствуют по-чуть-чуть в разных прогах/либах еще где-то около-книжном. Это все наворотить на одну базу - в принципе не проблема, было бы время. Ну и куда. А здесь это - ведение локального архива в фб2 (я правильно выразился?) и обмен. Дык именно по обмену мне и не понятно что и как. Потому и спрашиваю. |
|
Вернуться к началу |
|
|
Sergey Chernov Новенький участник форума
Зарегистрирован: 14.05.2007 Сообщения: 32
|
Добавлено: Чт Май 31, 2007 16:56 Заголовок сообщения: |
|
|
Локальная база - часть сетевой. Что есть в ней, то есть и в сетевой. А локальную делать все равно придется (да и делаю я ее так или иначе).
Обмен мы в данный момент и изобретаем. Предполагается использовать набор данных, предоставяемый стандартом, он вроде как достаточен. Грубо говоря, в качестве десриптора документа передается ветка FictionBook/description. Сжатая bz2, например.
Над алгоритмами я сейчас и думаю головой, пока руки клепают базу
Договоримся о терминах:
* Точка: компьютер в сети, на котором активен наш пиринговый библиотекарь.
* Линк: другая точка, с которой в данный момент есть связь.
Пока видится примерно так. Уровень 1 - минимальный. Точка периодически раскидывает своим линкам (у нас нет деления на ап- и даунлинки, система пиринговая) случайные выборки (либо полные каталоги) своих doc.id/version, и сама принимает такие выборки. Если точка видит, что в ее фондах что-либо из этого отсутствует, она запрашивает некоторое количество отсутствующего фонда.
Если локальное хранилище переполняется, некая опять же случайная его часть заменяется но новые поступления. При этом в первую очередь удаляются "старые" версии документов. При этом вероятность замены (удаления) документа не зависит от его популярности - чтобы фонд не вырождался.
Уровень 2. Аналогично 1, но также распространяется некий общий каталог. Каждая точка добавляет в него свои докумнеты, если их там нет, каталог циркулирует по системе, постоянно обновляясь. В каталоге для каждого документа указывается параметр индекс - если на точке документ есть, он инкрементируется. Иначе декрементируется. Докумнеты с низким индексом запрашиваются у линков и сохранются в локальном фонде. Если фонд переполняется, из него удаляются случайно документы с максимальным индексом хранения.
Уровень 3. Аналогично 2, но с выделенным сервером библиографии, который хранит общий каталог. Если сервер доступен, то обновляется каклог на нем. Если нет, то используется уровень 2. |
|
Вернуться к началу |
|
|
Mike Sinkovsky Зрелый участник форума
Зарегистрирован: 27.10.2005 Сообщения: 296 Откуда: Пермь
|
Добавлено: Чт Май 31, 2007 17:22 Заголовок сообщения: |
|
|
А как работает DNS например нельзя сделать, чтоб не изобретать велосипед без необходимости? То же самое ведь по сути, распределенная база... |
|
Вернуться к началу |
|
|
Alan Автор ридера Alreader и клона Haali
Зарегистрирован: 25.01.2005 Сообщения: 421
|
Добавлено: Чт Май 31, 2007 17:22 Заголовок сообщения: |
|
|
Sergey Chernov
Цитата: | сжатая bz2, например. |
а лучше всего еще и свой отдельный формат придумать... ни с чем не совместим, но зато в теории на 2 байта меньше итоговый размер...
Делать - так делать в зипе, чтобы клиента под любую систему можно было написать, взять ту же КПК... много раз уже предлагалось расширение fbz - вот его как fb2.zip и брать за основу без всяких дебильных извращений... |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Чт Май 31, 2007 17:33 Заголовок сообщения: |
|
|
Sergey Chernov
1.Предполагается реализовать все 3 уровня или один из них?
2.Какой механизм фиксации документа будет?
Думаю нужна фиксация не только конкретного документа, но и по автору/серии + исключения. |
|
Вернуться к началу |
|
|
Kv Новенький участник форума
Зарегистрирован: 30.05.2007 Сообщения: 23
|
Добавлено: Чт Май 31, 2007 17:46 Заголовок сообщения: |
|
|
Sergey Chernov писал(а): | Локальная база - часть сетевой. Что есть в ней, то есть и в сетевой. А локальную делать все равно придется (да и делаю я ее так или иначе). |
часть - значит не совпадает. А чем отличается.
Sergey Chernov писал(а): | Обмен мы в данный момент и изобретаем. Предполагается использовать набор данных, предоставяемый стандартом, он вроде как достаточен. Грубо говоря, в качестве десриптора документа передается ветка FictionBook/description. Сжатая bz2, например. |
какой там получается объем передаваемых данных - для одной книги. А сколько книг всего предполагается в локальной базе и в сети в целом. Какая интенсивность обмена.
Sergey Chernov писал(а): | Над алгоритмами я сейчас и думаю головой, пока руки клепают базу
Договоримся о терминах:
* Точка: компьютер в сети, на котором активен наш пиринговый библиотекарь.
* Линк: другая точка, с которой в данный момент есть связь.
Пока видится примерно так. Уровень 1 - минимальный. Точка периодически раскидывает своим линкам (у нас нет деления на ап- и даунлинки, система пиринговая) случайные выборки (либо полные каталоги) своих doc.id/version, и сама принимает такие выборки. Если точка видит, что в ее фондах что-либо из этого отсутствует, она запрашивает некоторое количество отсутствующего фонда.
Если локальное хранилище переполняется, некая опять же случайная его часть заменяется но новые поступления. При этом в первую очередь удаляются "старые" версии документов. При этом вероятность замены (удаления) документа не зависит от его популярности - чтобы фонд не вырождался. |
а в чем смысл случайности? Ну и снова таки - сколько книг предполагается поддерживать в базе и сколько файлов и т.д.
Sergey Chernov писал(а): | Уровень 2. Аналогично 1, но также распространяется некий общий каталог. Каждая точка добавляет в него свои докумнеты, если их там нет, каталог циркулирует по системе, постоянно обновляясь. В каталоге для каждого документа указывается параметр индекс - если на точке документ есть, он инкрементируется. Иначе декрементируется. Докумнеты с низким индексом запрашиваются у линков и сохранются в локальном фонде. Если фонд переполняется, из него удаляются случайно документы с максимальным индексом хранения. |
сколько в сети предполагается точек.
Sergey Chernov писал(а): |
Уровень 3. Аналогично 2, но с выделенным сервером библиографии, который хранит общий каталог. Если сервер доступен, то обновляется каклог на нем. Если нет, то используется уровень 2. |
если есть выделенный сервер, то какой же это пиринг?
Добавлено спустя 22 минуты 29 секунд:
Sergey Chernov
Кстати, Вы на вопрос не ответили
Sergey Chernov писал(а): |
, другие - если кто напишет плагин.
Kv писал(а): |
плагин - имеется в виду, преобразование чего-то в фб2? Ну а когда преобразовался - тогда поехало по стандартной схеме. Так? |
|
а спрашиваю потому, что если это так, то тогда подключать другие форматы - нереально. Потому как написать такой плагин, например для джву, ИМХО, невозможно.
А вот если речь идет только о ветке FictionBook/description, то ее, ИМХО, получить можно, если для этого использовать, например какую-то либу, где лежит инфа о книгах. А в каком там они формате - уже дело десятое. Что думаете? |
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Чт Май 31, 2007 18:23 Заголовок сообщения: |
|
|
Kv писал(а): |
Кстати, Вы на вопрос не ответили
Sergey Chernov писал(а): |
, другие - если кто напишет плагин.
Kv писал(а): |
плагин - имеется в виду, преобразование чего-то в фб2? Ну а когда преобразовался - тогда поехало по стандартной схеме. Так? |
|
а спрашиваю потому, что если это так, то тогда подключать другие форматы - нереально. Потому как написать такой плагин, например для джву, ИМХО, невозможно.
А вот если речь идет только о ветке FictionBook/description, то ее, ИМХО, получить можно, если для этого использовать, например какую-то либу, где лежит инфа о книгах. А в каком там они формате - уже дело десятое. Что думаете? |
Дежа преобразовывать бессмысленно.
Как я понимаю предполагаеться, что другие форматы тоже можно будет добавлять. Таким образом, что "оригинальный формат" можно было получить. Может быть это будет "обертка" из fb2 или еще что - обсуждалось выше.
Добавлено спустя 2 минуты 32 секунды:
Kv
Цитата: | использовать, например какую-то либу, где лежит инфа о книгах |
Это как раз и будет - "вариант с сервером". Если есть fb2 файл на винчестере, зачем тащить откуда-то из инета информацию? |
|
Вернуться к началу |
|
|
Kv Новенький участник форума
Зарегистрирован: 30.05.2007 Сообщения: 23
|
Добавлено: Чт Май 31, 2007 19:25 Заголовок сообщения: |
|
|
Cd_spb писал(а): | Kv писал(а): | Кстати, Вы на вопрос не ответили
Sergey Chernov писал(а): | , другие - если кто напишет плагин. Kv писал(а): | плагин - имеется в виду, преобразование чего-то в фб2? Ну а когда преобразовался - тогда поехало по стандартной схеме. Так? |
| а спрашиваю потому, что если это так, то тогда подключать другие форматы - нереально. Потому как написать такой плагин, например для джву, ИМХО, невозможно.
А вот если речь идет только о ветке FictionBook/description, то ее, ИМХО, получить можно, если для этого использовать, например какую-то либу, где лежит инфа о книгах. А в каком там они формате - уже дело десятое. Что думаете? |
Дежа преобразовывать бессмысленно. |
дык и я о том же.
Cd_spb писал(а): | Как я понимаю предполагаеться, что другие форматы тоже можно будет добавлять. Таким образом, что "оригинальный формат" можно было получить. Может быть это будет "обертка" из fb2 или еще что - обсуждалось выше. |
как хранить - это одно. Я спрашиваю об обмене. Т.е. формат обменных сообщений - это просто кусок Фб2 файла там где description? Или как?
Cd_spb писал(а): | Kv Цитата: | использовать, например какую-то либу, где лежит инфа о книгах |
Это как раз и будет - "вариант с сервером". Если есть fb2 файл на винчестере, зачем тащить откуда-то из инета информацию? |
а вот это - не факт. Смотрим сюда.
Sergey Chernov писал(а): | А локальную делать все равно придется (да и делаю я ее так или иначе). |
|
|
Вернуться к началу |
|
|
Cd_spb Зрелый участник форума
Зарегистрирован: 28.06.2006 Сообщения: 189
|
Добавлено: Пт Июн 01, 2007 11:15 Заголовок сообщения: |
|
|
Kv
Под локальной версией понимается библиотека у каждого пользователя на компьютере.
Цитата: | Т.е. формат обменных сообщений - это просто кусок Фб2 файла там где description? Или как |
Это сейчас обсуждается. Но в первом приближении - так. |
|
Вернуться к началу |
|
|
Sergey Chernov Новенький участник форума
Зарегистрирован: 14.05.2007 Сообщения: 32
|
Добавлено: Пт Июн 01, 2007 20:30 Заголовок сообщения: |
|
|
Ух сколько Буду отвечать потихонечку.
Формат обмена информацией.
bz2 существует на всех платформах, он бесплатный, есть в исходниках сколько угодно, и жмет лучше, что в нашем случае весьма существенно. Я полагал это известно любому программисту. zip кажется не бесплатный. И на мой вкус вполне дебильный и извращенный. Хотя не думаю что такая лексика хороша для обсуждения прости уж Алан. Таким образом, я надеюсь что использование этого сжатия позволит использовать для обмена уровня 2-3 существующий xml, хотя он крайне неэффективен по плотности упаковки.
Полагаю, информационный пакет на книгу будет до килобайта. В случае передачи каталога индекса копирования существенно ниже, байт 12-18 на книгу (id + собственно индекс в двоичном формате).
Использовать fb2 без расширения формата не получится, так как он не несет информации, необходимой для организации распределенной базы.
Тем не менее, для обмена собственно книгами с самого начала и предполагался fb2.zip. Речь шла о передаче каталогов и т.д.
Уровни
Сперва думаю надо реализовать 1, потом 2, потом 3. Вариант с сервером - если сервер содержит хранит _только_ библиографию, и не хранит собственно книг, то его накрыть непросто. Более того, в отличие от прикрытого сервера мп3 он даже не хранит никакую информацию об участниках сети. Но его можно убрать из системы в любой момент - она автоматом спустится на уровень 2 (если сервера-или серверов нет), и будет прекрасно пахать и без них.
Обмен
Смысл случайности: уменьшение вероятности пропажи некоторой книги из сетевой библиотеки. Рискну предположить, что если весь фонд текстов книг, который сейчас обретается, запихать в fb2.zip, то получится гигабайт 10-15. То есть не каждый пока согласится у себя держать копию всего фонда. Поскольку мы не в силах построить мгновенный срез всех кусочков, и понять, что именно требуется копировать, а что нет, мы делаем случайные выборки и надеемся на закон больших чисел Это слабая надежда, для этого есть уровень 2, который существенно улучшает качество оценки, на основе которой книга удаляется либо наоборот копируется.
Другие форматы
Парадигма такая: ежели кто то напишет внятный плагин для импорта-экспорта XXX <-> FB2, мы его включаем в общий пакет. Но только для импорта-экспорта, внутри системы формат один - fb2. Иначе будет худо. НО. Можно потом сделать расширение fb2: в ветке body ссылка на бинарник, который в хвосте, а в хвосте - картиночная книжка, типа djvu. Или еще как расширить формат для такой цели. Хотя мне он категорически не нравится - текст это текст. Я бы скорее предложил добавить туда формулы a la tex и т.д.
Локальная и сетевая библиотека
Имхо в принципе идентичны. Различия минимальны, предложения весьма спорны, приводятся только для примера.
Варианты расширений локальной библиотеки:
* пометка личных книг, и они не будут пересылаться в общий фонд (например, над которыми идет работа и они еще не закончены)
* пометка книг, которые не будут автоматически удаляться при ротации фонда
* Ведение списка книг, прочитанных участником )для его удобства), информация не будет пересылаться. Хотя можно пересылать анонимную статистику
Добавлено спустя 17 минут 35 секунд:
Забыл сказать - DNS не катит, там все крутится на выделенных серверах, да еще поддержка этого протокола конфигурируется админами повсеместно, а мы такого счастья пока не заслуживаем Нам надо прорываться сквозь файрволлы, и не надеяться на такие вкусные вещи, как мультикасты в сколь-нибудь серьезных размерностях сетей. Но это нас не пугает, мы профессионалы в конце концов
Дополнительные фичи, о которых можно подумать.
Оценки и рецензии.
Можно расширить информационный пакет книги возможностью циркулярной рассылки рецензий и оценок. Сделать обмен такой информацией опциональным. Есть вероятность, что такая информация не может представлять собой слабость, за счет которой каперы от юриспруденции смогут организовать преследование, тогда для оценок, библиографии и рецензий можно будет ставить выделенные сервера. Но не факт, эта шайка горазда на пакости.
Поиск книги.
Новые термины:
Пакет запроса. Совокупнсть SQL-like запроса на выборку книг, и маршуртного пакета.
Маршрутный пакет. Совокупность информации, позволяющая ответу на запрос вернуться к источнику (если надо), а запросу не путешествовать бесконечно и по кругу Воспользуемся опытом IP.
Уровень 1. Точка рассылает нечто вроде SQL-запроса исходя их общей для системы схемы данных, по своим линкам, и принимает такие запросы сама.
Если при обработке запроса получена непустая выборка по локальной базе, то инфопакет выборки немедленно отдается обратно на точку-инициатор запроса. В противном случае запрос рассылается дальше с модификацией маршрутного пакета (если дальнейший роутинг возожен). Если на транзитный запрос получет положительный ответ, возможно 2 сценария:
- точка - инициатор доступна в онлайне: выборка немедленно отдается.
- недоступна: выборка добавляется стандартным образом в локальную базу, и "блокируется" на некоторый период времени (скажем, 4 дня). Следует принять специальные меры, чтобы такие книги по истечении блокировки удалялись в первую очередь (если вообще необходимо удаление), чтобы избежать вырождения фонда из за бестсендеров
Наверное, пока достаточно для обусждения. Ваши комментарии? |
|
Вернуться к началу |
|
|
Alan Автор ридера Alreader и клона Haali
Зарегистрирован: 25.01.2005 Сообщения: 421
|
Добавлено: Пт Июн 01, 2007 22:39 Заголовок сообщения: |
|
|
Цитата: | bz2 существует на всех платформах, он бесплатный, есть в исходниках сколько угодно, и жмет лучше, что в нашем случае весьма существенно. Я полагал это известно любому программисту. |
причем тут исходники? Ты его требования к памяти знаешь? И к быстродействию? как раз форматик для кпк и смартов... Уж этото должно быть понятно любому программисту... А то распаковщик рара тоже можно сделать для любой платформы... вот только для словарика выделить 4 метра далеко не везде возможно...
Цитата: | zip кажется не бесплатный |
да ну... что ты там писал про известно любому? |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|