> Внимание

Внимание! Все вопросы по программам, отсутствующим в этом разделе, задавайте в теме Скорая помощь новичкам.

В ЭТОМ РАЗДЕЛЕ ТОЛЬКО КАТАЛОГ ПРОГРАММ! СОЗДАНИЕ ТЕМ С ВОПРОСАМИ ЗАПРЕЩЕНО! ПОИСК ПРОГРАММ.
Новые темы необходимо создавать только в корневом разделе! В дальнейшем они будут обработаны модераторами.



Booklet | Книжный каталог на PocketPC (и ББ)



Реп: (8)
Полноценный каталогизатор.
Работает на PocketPC, Windows, Lunix и др. - написан на Java.
Разрабатывался специально для PocketPC, поэтому интерфейс на ББ смотриться простенько.

Основные возможности:
- простой переход автор-произведения-книги- в любой последовательности
- просмотр серии-произведения, серии-книги
- мощная система поиска
- возможно хранить файлы непосредственно в БД и как ссылки
- мультиплатформенность, легкая переносимость БД копированием (по умолчанию использует встроенный hsqldb-сервер, но может подключаться к любой СУБД)
- создание профилей для работы с разными каталогами (разными БД)
- импорт fb2, cue по всем папкам и в zip архивах

Брать тут http://booklet.meryb.org , там же описание.

Прикрепленные изображения
Прикрепленное изображение


Сообщение отредактировал Serobit - 21.02.09, 21:31



Реп: (8)
sergei75 @ 21.2.2009, 12:10 *
Ждем faq. Разобраться не смог.


Есть такое дело, сейчас вот пишу в доках описание.
Там если кликнуть по "Книги" (или "Люди", "Произведения") откроется соответствующий список.
Фильтр по началу лучше сбрасывать (кнопками X). И нажимать в меню кнопку V (Установить). Позже опишу его использование.
По клику на позиции в списке открываеться карточка (там описания, вложения).
По стрелкам в меню переходим последовательно к произведения-книги-люди-... (и наоборот), связанные друг с другом: автор - его произведения - книги куда входит эти произведения - люди, которые создавали эту книгу.
Импорт в "Инструменты - Импорт": Выбираете файл или путь и жмете кнопку старт,
лучше сначала посмотреть на одном файле - что получаеться. Может быть долго, если решите грузить на КПК много файлов можно отключить загрузку обложек - на порядок ускориться. (настройки подробно буду описывать в доках)



Реп: (2)
Попробовал.
В целом впечатление хорошее. Интерфейс с первого раза не особо интуитивен, но зато полнофункциональная БД. Даже отчеты! (Хотя пока не представляю, как применить :) ) С учетом того, что это первая программа такого рода для КПК - большой респект!
Проблема:
На HTC3400 слетает при импорте на 4-й книге. Возможно, не хватает ресурсов и надо попробовать отключить загрузку обложек - но не нашел, где. Вообще к ресурсоемкости есть небольшая претензия - приходится выгружать из памяти все активные приложения..
Есть вопросы:
1. При импорте выбор каталога работает "не очень"... Открывается стандартный выбор файла. Приходится путь вбивать вручную. Может, добавить путь в настройки?
2. Планируется ли добавить возможность хранить путь к файлу и соответственно запускать файл через программу чтения, выбранную в настройках (опять путь к ней надо там хранить)?
3. Не нашел, есть ли возможность ставить оценки и пометки "к прочтению"? Планируется ли добавить? UPD: нашел. Надо создать нужный "Тип" в отношении к "Носителю".

UPD ещё вопрос: чем отличается "Обзор файлов" от "Импорта"?
И спасибо за переделанные под карту памяти настройки!!

Сообщение отредактировал krupp - 21.02.09, 23:04



Реп: (8)
Уф, описал в доках общую идеологию программы.

По ошибкам:
Если слетает без всяких сообщений - 99% не хватает памяти.
К сожелению из программы ее отследить не могу. Можно в ярлыке для запуска исправить запуск <j9w.exe> на <j9.exe>, при этом при запуске программы в фоне будет открываться окно консоли java машины, в нем при таких внезапных падениях будет выводиться сообщение об ошибке.
Очень удобно пользоваться прогой HaaliTS , установки не требует,
памяти занимает копейки и отображает оставшуюся память понятно циферками в заголовке.

Если свободной памяти много (~30Mb), в ярлык для запуска добавьте параметр "-Xmx30M" (255#"\Meryb\j9\bin\j9w.exe" "-jcl:Max" "-Xmx30M" ...) это увеличит размер памяти, выделяемой для программы, с ним у меня при загрузках ни разу не вылетало (но если памяти совсем мало может просто не запуститься программа).
Вообще по ресурсам - java машина берет ~ 3 Mb + sql-server ~ 5 Mb + база данных ~ 5 Mb (я так понял что маленькие БД - до 5Mb размер папки data - он целиком грузит в память и от размера мало зависит, правда подробно не разбирался). При загрузках еще xml-парсер отъедает то больше, то меньше ~ 3-10 Mb. (Парсер использую самый легкий, который нашел - kxml - если кто знает легче киньте ссылкой, свой писать не буду :)

Дальше по вопросам:

1. На КПК нет стандартного диалога выбора папки, поэтому используется диалог выбора файла. Если нужна папка, проще выбрать файл и стереть путь в поле до папки. В файле booklet.ini есть параметр imp_source, он указывает на папку загрузки по умолчанию (сразу показывается в пути для загрузки). Впишите там нужный вам путь, например:
imp_source=\\Storage Card\\books\\

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

3. Тип оценка, я как-то не вставил в стандартные, добавлю. И отметку к прочтению, ее наверно лучше добавить в список <Статус>?

4. "Обзор файлов" просто сохраняет всю иерархию дирректорий и файлов в текстовый файл (На ББ и с меткой диска, полезно для CD или DVD). Для коллекций разных по формату файлов, упорядоченных по названию папок в файловой системе. Пока просто сохранение в файл (при запусках он дописывается с сохранением предыдущего содержания), в нем уже можно искать файл поиском в текстовом редакторе, или в excel загрузить. Вообще планирую такие коллекции тоже в базу грузить импортом, но пока не до конца ясен алгоритм.

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

PPS. По импорту - файл настроек для импорта из fb2 - Booklet\imp\imp_fb2.ini . Исправте в нем
attach_foto=0
обложки грузиться не будут.

Сообщение отредактировал Serobit - 22.02.09, 02:19



Реп: (8)
Выложил новую версию 1.2.1
там же http://booklet.meryb.org

Изменения:
- Убрал мелкие баги.
- Убрал всплывание клавиатуры на PPC при переходе к новой форме.
- Доработал формы Импорт, Замены, Настройки.
- Переделал чтение\редактирование настроек.
- В файлы настроек добавил подробные описания в комментарии.
(программы- booklet.ini, базы данных- booklet.db, импорта- imp\imp_fb2.ini)
- Оптимизировал загрузку fb2.
- Переделал загрузку файлов соответствия при импорте.
- Добавил в стандартные классификаторы группы:
Оценка (не понравилось; более-менее; очень понравилось)
Закладки (дал почитать; надо купить; скоро появится)

Доки понемногу заполняются - описал структуру, работу фильтра и др.

PS. Хотел подредактировать шапку - не нашел как?

Сообщение отредактировал Serobit - 26.02.09, 00:28



Реп: (128)
Если свободной памяти много (~30Mb), в ярлык для запуска добавьте параметр "-Xmx30M" (255#"\Meryb\j9\bin\j9w.exe" "-jcl:Max" "-Xmx30M" ...) это увеличит размер памяти, выделяемой для программы, с ним у меня при загрузках ни разу не вылетало (но если памяти совсем мало может просто не запуститься программа).

Не совсем понятно как это сделать....



Реп: (1629)
Serobit @ 25.2.2009, 22:29 *
PS. Хотел подредактировать шапку - не нашел как?

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



Реп: (8)
NEJRO @ 26.2.2009, 1:33 *
Если свободной памяти много (~30Mb), в ярлык для запуска добавьте параметр "-Xmx30M" (255#"\Meryb\j9\bin\j9w.exe" "-jcl:Max" "-Xmx30M" ...) это увеличит размер памяти, выделяемой для программы, с ним у меня при загрузках ни разу не вылетало (но если памяти совсем мало может просто не запуститься программа).

Не совсем понятно как это сделать....


Удобней конечно на ББ открыть booklet.lnk в Блокноте и дописать, потом скопировать на КПК.
Если есть Resco Explorer - выбираем booklet.lnk, во всплывающем меню <Open - Open with>, в появившемся списке выбираем Word. Редактируем в нем и закрываем.



Реп: (2)
Так и слетает сканирование на третьей книге... Логгировать никак не получается. В каком порядке сканируются файлы? Хоть найти, на каком сбоит - мож в файле дело...



Реп: (8)
Сейчас заканчиваю версию с отловом ошибок нехватки памяти (и другими улучшениями в логах и т.д.). Завтра-послезавтра выложу.



Реп: (8)
Новая версия 1.2.2
там же http://booklet.meryb.org

Изменения:
- Обновил версии j9 и hsqldb - особых изменений не заметил.
- Добавил поддержку VGA экранов на PocketPC - обложки теперь нормально показываются.
- Добавил отлов и обработку ошибки 'Out Of Memory' во всех длительных операциях.
- Добавил проверку версии базы данных и ее обновление, если нужно.
- Доработал форму импорта.
- Поменял библиотеку обработки Zip архивов - при импорте требует меньше памяти,
корректно открывает архивы с русскими именами файлов.
- Доработал логи при импорте - теперь ошибки пишутся еще в отдельный файл и сразу открываются при нажатии Просмотр.



Реп: (2)
Да, изменения чувствуются. Импорт стал работать без проблем, за час импортировал >300 книг (без обложек) - ошибки если возникают, то на уровне самих архивов, логируются и импорт не прерывают. Но с базой в 300 книг мой зверёк работает с большим трудом.... Тяжело открываются списки, забываешь что ищешь... Жаль. Может есть возможность умерить аппетиты?
Ещё вопрос: при повторном импорте всё сканируется по полной программе? Может есть смысл добавить режим "обновлять всё" или "только добавлять новые"? (Если такое есть, я не нашел).
При попытке обмануть программу нашел одну вещь. Если настроить параметр atach_get_path равным каталогу библиотеки (хотел, чтобы при открытии файла он не копировался в новый каталог, а открывался приложением со своего места), файл в библиотеке удаляется (как описано в доках, если файл выгружается туда, где есть такой же, двойник удаляется), на его место пишется заново. Но поскольку удалился исходный файл, который теперь надо скопировать на то же место, то создается архив нулевой длины. Понятно, что файл надёжнее перезаписать, но может добавить условие, что если выгрузка по адресу точки монтирования, то не затирать и не копировать, а считать, что он уже выгрузился и открывать его приложением?



Реп: (8)
с базой в 300 книг мой зверёк работает с большим трудом.... Тяжело открываются списки, забываешь что ищешь... Жаль. Может есть возможность умерить аппетиты?

Hsqldb сервер считывает базу при запуске в память (кроме таблицы вложений - подгружает по мере надобности). Дальше он все запросы отрабатывает очень шустро.
Для ускорения показа списков попробуйте закомментировать в файле booklet.db последние строки, где заданы запросы для 2-го поля таблицы списков (person_list_name2=SELECT ... , product_list_name2=SELECT ... , storage_list_name2=SELECT ... ).

У меня часто дольше не получает данные, а отрисовывает таблицу. На больших списках при этом даже падает, не хватает ресурсов. Поэтому поставил ограничение списка. Потом просматривать большой список на КПК не очень удобно, все время прокручивать. Лучше все-таки предварительно в фильтре хотя бы по алфавиту выбирать. Потом нажать [Обновить] и в фильтре выбрать следующую букву. Или от автора идти.

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

Ещё вопрос: при повторном импорте всё сканируется по полной программе? Может есть смысл добавить режим "обновлять всё" или "только добавлять новые"? (Если такое есть, я не нашел).

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

При попытке обмануть программу нашел одну вещь. Если настроить параметр atach_get_path равным каталогу библиотеки (хотел, чтобы при открытии файла он не копировался в новый каталог, а открывался приложением со своего места), файл в библиотеке удаляется (как описано в доках, если файл выгружается туда, где есть такой же, двойник удаляется), на его место пишется заново. Но поскольку удалился исходный файл, который теперь надо скопировать на то же место, то создается архив нулевой длины. Понятно, что файл надёжнее перезаписать, но может добавить условие, что если выгрузка по адресу точки монтирования, то не затирать и не копировать, а считать, что он уже выгрузился и открывать его приложением?

Это я поправлю.

Сообщение отредактировал Serobit - 06.03.09, 17:57



Реп: (2)
Serobit @ 6.3.2009, 17:50 *
Для ускорения показа списков попробуйте закомментировать в файле booklet.db последние строки, где заданы запросы для 2-го поля таблицы списков...
У меня часто дольше не получает данные, а отрисовывает таблицу.

Да, верно, медленно отрисовывает. Спасибо, попробую закомментить.
Serobit @ 6.3.2009, 17:50 *
Добавлю проверку с уже загруженными файлами (имя, размер) - если такой уже грузился буду пропускать не открывая.

Хотел высказаться, что оба режима нужны (прямая замена тоже бывает нужна - например хочется синхронизировать ВСЁ), но увидел ключевое слово "Добавлю". :)



Реп: (8)
Новая версия 1.2.3
забирать там же http://booklet.meryb.org

Изменения:
- Ускорил загрузку и отображение данных. Добавил новые виды отображения списков:
- В моей таблице - отображается мгновенно.
- В виде списка с картинками-обложками (помедленее, памяти требует больше)
- Доработал импорт файлов. Уже импортированные файлы пропускаются (опционально).
- Поправил просмотр присоединенных файлов.
- На каждый тип файла (расширение, даже составное) теперь можно назначать свой просмоторщик.
- Добавил выбор профиля (базы) при логине. Добавил демо-профили для сетевой базы и web-базы. (web-база только для примера! - работает медленно, но работает :).

PS. В новой таблице-списке поддерживается управление мышкой-стилусом и кнопками (стрелки, ввод и т.д.). Но если будет глючить можно перейти к старому (стандартному системному) гриду указав в насторойках catalog_grid=0.
Если импорт прерывали, для корректного отображения списков надо на странице Инструменты-Замены нажать кнопку Пересчитать

Сообщение отредактировал Serobit - 17.03.09, 11:54



Реп: (8)
Новая версия 1.2.4
Изменения:

- Оптимизация кода, ускорение работы, кеширование данных (актуально с web-базами).
- Добавил получение присоединенных файлов с ftp и web серверов (указываются в точке монтирования).
- Добавил сообщение о любом обращении к базе (опционально).
- Доработка импорта данных fb2. Корректная обработка всех ошибок оформления файлов.
- Поправил алгоритм повторных загрузок. Поправил проверку вложений по контрольной сумме.
- Добавлена документация.

забирать там же http://booklet.meryb.org



Реп: (8)
Обновилась версия
Версия 1.3.1
- Переработан движок для поддержки многозадачности.
- Плавная отрисовка интерфейса во время обращения к данным.
- Добавлена возможность отмены любой длительной операции.
- Переделаны транзакции, чтобы не оставалось хвостов при отменах операций.
- Оптимизированы индексы и запросы к БД.

PS.
Загрузил в каталог библиотеку Traum-а 2.7
как это выглятит и работает через интернет можно посмотреть выбрав при запуске профиль
booklet_web.db.

Краткий отчет по загрузке:
SUM: files 77425; type 2132; pers 28549; prod 83125; stor 81822; attach 28561; errors 70; time 8ч.11м.54с.
на 4-х летнем P4-2400 скорость ~ 10т. книг в час

По ошибкам:
59 - ошибки xml синтаксиса (парсер ругался)
11 - книги без названия.

Объем получившейся БД:
35 Mb - все данные-описание
933 Mb - таблица с картинками-обложками



Реп: (8)
Выложена новая версия:

Версия 1.4.1
- Добавлена возможность поиска информации в интернете.
- Подключены плагины для поиска на ozon.ru, books.google.com, meryb.org
- Добавлено открытие большого окна редактирования, при двойном клике на любом текстовом поле.

забирать там же http://booklet.meryb.org



Реп: (8)
Появилась новая версия :yes2: :

Версия 1.4.2
- Добавлены плагины поиска на images.google.com и litres.ru
- Мелкие багфиксы поиска.
- Добавлен учет связей (синонимов) при просмотре каталога.
- Добавлены обработки каталога на странице Замены.
- Обновлена документация и английская локализация.



Реп: (0)
Во-первых, и прежде всего, спасибочки огромное.
Всегда мечтал о чем-нибудь подобном на КПК и даже мечтал как-то сам написать, но так и не написал. А тут вот уже готовое. :-)))

Но, во-вторых, все-таки парочка вопросов:

1. И на сайте у вас анонсировано и в общем просто логически размышляя - хочется сделать базу данных по фильмам/актерам.
Суть там наверное похоже на книжки, но структура базы будет чуть-чуть отличаться.

И, некий пункт для этого кажется уже присутсвует.

Если подключиться к базе
то в меню "Файл", обнаружится пункт "Сервис" и там внутри "Сзодание БД" а у него внутри есть шаблон "Фильмы".
Проблема в том, что если его выбрать и нажать на запуск (значок "молния" внизу), то он вылетает с ошибкой:
'java.sql.SQLException: Table already exists: APP_CONF in statement [CREATE TABLE app_conf]'

Что в общем-то логично... мы же к базе уже присоединились, значит табличка app_conf уже существует.

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

Была еще безумная идея не трогать скрипты. Создать базу, подсоединиться к ней, а потом, перед тем, как запускать "Создание БД" пойти сделать DROP всех табличек. ;-)
Не уверен, что это привело к чему-нибудь хорошему ;-), но в любом случае в "Отчетах" он бдительно следит за тем, чтобы мы использовали его только для выборки. ;-)

Вот такая вот проблемка.

2. Второй вопрос в общем-то немного оффтопичен.
Просто как-то не получается все это дело на ББ скомпилировать.

Что-то я не до конца врублися в то как у вас там все это организовано.

И... мне почему-то по каким-то признакам показалось, что вы Eclipse пользуетесь... нельзя ли там, ant-файлик сделать для компиляции.
Но, на самом деле вопрос этот возник от того, что под Linux-ом как-то не очень получается виновую версию запустить - хотя по идее должно запускаться бы.
Bat-ник в шелл переделал, но, что-то java ругается не очень понятно на что и еще смущает dll-ка в lib-ах. Надо бы "покопать" наверное, но подумалось что может проще самому все скомпилировать, однако, и вот тут как-то не очень срослось.

Вот...
Но в любом случае, еще раз спасибо большое.



Реп: (8)
paulz @ 25.7.09, 17:23 *
Если подключиться к базе
то в меню "Файл", обнаружится пункт "Сервис" и там внутри "Сзодание БД" а у него внутри есть шаблон "Фильмы".
Проблема в том, что если его выбрать и нажать на запуск (значок "молния" внизу), то он вылетает с ошибкой:
'java.sql.SQLException: Table already exists: APP_CONF in statement [CREATE TABLE app_conf]'


Для создания новой базы надо:
- удалить (переместить) файлы данных из папки Data
- при запуске программы после выбора файла профиля нажать `настрайка` (кнопка с замком) - программа запустится без соединения с базой данных
- Выбрать Файл-Сервис-Создание БД, отметить нужный шаблон и запустить.

Если в папке Data остались файлы от старой БД - как раз и выскочит такая ошибка.
Путь к файлам данных прописывается в профиле. Можно создать новый профиль с новым путем и выбирать при запуске, какой каталог нам нужен.

2. Компилируется действительно в Eclipse на ББ (или прямо на КПК при отлове ошибок). Ant-файлик выложу, руки как-то не доходили.

dll-ка - это eSwt библиотека пользовательского интерфейса.
На ББ можно использовать полную Swt версию.
Там и под Linux сборки есть.

3. Скрипты для изменения БД можно добавлять в файл res\scripts.ini как секцию [clearИмяСкрипта]
Тогда его можно будет запустить прямо из программы на страничке Инструменты-Замены-Обработки каталога.

Сообщение отредактировал Serobit - 27.07.09, 09:15


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 29.03.24, 10:05