The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от opennews (??), 22-Фев-24, 21:48 
Состоялся релиз каталогизатора домашней библиотеки MyLibrary 3.0. Код программы написан на языке программирования С++ и доступен (GitHub, GitFlic) под лицензией GPLv3. Графический интерфейс пользователя реализован с помощью библиотеки GTK4. Программа адаптирована для работы в операционных системах семейства Linux и Windows. Для пользователей Arch Linux в AUR доступен готовый пакет. Для пользователей Windows доступен экспериментальный инсталлятор...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=60647

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  –5 +/
Сообщение от Аноним (1), 22-Фев-24, 21:48 
Эталонная программа для эталонных плюшкиных.

Нормальный человек не так много читает, чтобы держать для своего ебука отдельную "библиотеку".

Ответить | Правка | Наверх | Cообщить модератору

4. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +3 +/
Сообщение от Аноним (4), 22-Фев-24, 22:15 
«Ведь всё же есть в интернете», да.
Ответить | Правка | Наверх | Cообщить модератору

13. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +2 +/
Сообщение от Аноним (13), 22-Фев-24, 23:49 
И уже даже удалили почти всё из книг.
Ответить | Правка | Наверх | Cообщить модератору

21. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +2 +/
Сообщение от Аноним (4), 23-Фев-24, 00:29 
Согласно последним новостям, книги удаляют уже физически.
Ответить | Правка | Наверх | Cообщить модератору

5. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +5 +/
Сообщение от Аноним (5), 22-Фев-24, 22:35 
Угу, вообще не читает, только комиксы смотрит и пиво с футболом.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

34. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +1 +/
Сообщение от tty0 (?), 23-Фев-24, 10:21 
Смотреть пиво... Нужно попробовать!
Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +1 +/
Сообщение от kusb (?), 26-Фев-24, 15:52 
У вас пиво продают? Нет, только показывают...
Ответить | Правка | Наверх | Cообщить модератору

26. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (26), 23-Фев-24, 01:15 
И что здесь эталонного? В очередной раз сломали внутренний формат. Эталонное...
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

47. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Quad Romb (ok), 24-Фев-24, 15:14 
Лихо обобщаете
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

2. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +2 +/
Сообщение от Fracta1L (ok), 22-Фев-24, 21:49 
Автор даже старался сделать оригинальный GUI, за что ему респект. Выглядит, правда, смешно.
Ответить | Правка | Наверх | Cообщить модератору

6. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (5), 22-Фев-24, 22:48 
Сделано как бы под сайт, на gtkmm. Под венду собирается с помощью MSYS2.
Ответить | Правка | Наверх | Cообщить модератору

14. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  –1 +/
Сообщение от Аноним (13), 22-Фев-24, 23:51 
> Автор даже старался сделать оригинальный GUI, за что ему респект. Выглядит, правда, смешно.

Ни разу не смешно, если ты не планировал гоняться за новыми релизами GTK/Qt, ломающими твоё дело.

Скорее что - мудро. Не использовать экспериментальные, модные, нестабильные технологии.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

18. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +4 +/
Сообщение от Аноним (4), 23-Фев-24, 00:06 
> Ни разу не смешно, если ты не планировал гоняться за новыми релизами GTK/Qt, ломающими твоё дело.
> Скорее что - мудро. Не использовать экспериментальные, модные, нестабильные технологии.

GTK4, да

Ответить | Правка | Наверх | Cообщить модератору

55. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от kusb (?), 26-Фев-24, 15:55 
Можно было отрисовывать в sdl собственный интерфейс. Меньше зависимостей.
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

3. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +4 +/
Сообщение от nc (ok), 22-Фев-24, 21:58 
Либгеновская база свободно раздается, там всё есть уже готовое.
Ответить | Правка | Наверх | Cообщить модератору

7. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  –4 +/
Сообщение от Аноним (-), 22-Фев-24, 22:59 
Шикарная программа.
Ее дизайн, точнее Дизайн с большой буквы Ж можно преподавать в университетах.
Она должна существовать только для того, чтобы создатели Гимпа из соседней новости не так комплексовали по поводу своего продукта и всегда могли сказать "это у нас дизайн плохой, а ты вообще №№№ видел?"
Ответить | Правка | Наверх | Cообщить модератору

15. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +1 +/
Сообщение от Аноним (13), 22-Фев-24, 23:55 
Но это гораздо лучше, чем, глотая чужую пыль и газы, гоняться за обновлениями GTK/Qt, ломающими полезный софт.

Софт реально полезный, т.к. полезное делает. А современость Qt/GTK как-то не при деле и бесполезна. Вообще-то.

Ответить | Правка | Наверх | Cообщить модератору

19. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +2 +/
Сообщение от Аноним (4), 23-Фев-24, 00:07 
> А современость Qt/GTK как-то не при деле и бесполезна. Вообще-то.

«интерфейс пользователя реализован с помощью библиотеки GTK4»

Ответить | Правка | Наверх | Cообщить модератору

30. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (30), 23-Фев-24, 08:04 
> ... Ее дизайн ...

MLStyles.css подпилите, чё как маленький-то?

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

8. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +1 +/
Сообщение от Аноним (8), 22-Фев-24, 23:21 
Автор, спасибо за виндовый инсталлятор.
Ответить | Правка | Наверх | Cообщить модератору

22. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +3 +/
Сообщение от ProfessorNavigator (ok), 23-Фев-24, 00:32 
> Автор, спасибо за виндовый инсталлятор.

Стараюсь. Правда не знаю, как будет в будущем - знали бы вы, сколько матов было высказано в процессе отладки работы на винде... В Майкрософте наверно обикались все. Да ещё и перед самым релизом баг в MinGW вылез - в библиотеке <filesystem> игнорируется опция std::filesystem::copy_options::overwrite_existing (если вдруг кто будет использовать).

Ответить | Правка | Наверх | Cообщить модератору

9. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (4), 22-Фев-24, 23:26 
По интерфейсу уже прошлись, и в прошлый раз (и я тоже). Это ладно.
Натравил на хламничек с книгами (но там всякое, и txt, и txt в зипах, и djvu, и pdf) — всё как и раньше, только хуже: создаёт пустую коллекцию, только в конце ещё и молча падает. Создал папку с десятком fb2, на ней не падает. Коллекция создаётся, книг по-прежнему ноль.
Пока неюзабельно.
Ответить | Правка | Наверх | Cообщить модератору

20. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +4 +/
Сообщение от ProfessorNavigator (ok), 23-Фев-24, 00:26 
> всё как и раньше

И, как и раньше, никаких тех. данных - ни дитрибутива и его версии, ни вывода консоли... В общем - если есть проблемы, то пишите не здесь, а на Github/Gitflic. Очень желательно также прикладывать или сами проблемные файлы, или хотя бы ссылки на них. Ну и прочитать README не помешало бы - там есть пара замечаний касательно rar архивов. Что собственно скорее всего и является причиной падения программы в данном случае.

Ответить | Правка | Наверх | Cообщить модератору

11. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  –4 +/
Сообщение от Аноним (11), 22-Фев-24, 23:47 
С нуля переписан, но как был вырвиглазным, так и остался. Необучаемым невдомёк, что на Qt надо было переписывать.
Ответить | Правка | Наверх | Cообщить модератору

17. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +2 +/
Сообщение от Аноним (13), 22-Фев-24, 23:58 
Зачем Qt? Она обновлениями ломает. Ни в коем случае такие библиотеки нельзя тащить в малый проект.
Ответить | Правка | Наверх | Cообщить модератору

33. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (33), 23-Фев-24, 09:11 
Что именно Qt ломает обновлениями?
Ответить | Правка | Наверх | Cообщить модератору

12. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  –2 +/
Сообщение от Аноним (11), 22-Фев-24, 23:48 
И вообще, Calibre уже есть.
Ответить | Правка | Наверх | Cообщить модератору

16. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (13), 22-Фев-24, 23:57 
Чёт косорезно работают её viewer'ы. Но есть, но косорезит.
Ответить | Правка | Наверх | Cообщить модератору

23. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +1 +/
Сообщение от ProfessorNavigator (ok), 23-Фев-24, 00:40 
Нравится Calibre - пользуйтесь ей, без вопросов. MyLibrary для тех, кому не нужно, чтобы исходные файлы перемещались/изменялись/переименовывались.
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

24. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от vbcnthfkmnth123 (ok), 23-Фев-24, 00:43 
У автора программа поломается скорее всего после очередного обновления GTK4. Любят разрабы там интерфейс ломать и в минорные апдейты пихать мажорные изменения. Уж лучше бы завязался на что-то неподдерживаемое, как например MyRuLib. Оно точно после очередного обновления не сломается.
Ответить | Правка | Наверх | Cообщить модератору

25. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +3 +/
Сообщение от ProfessorNavigator (ok), 23-Фев-24, 00:54 
> У автора программа поломается скорее всего после очередного обновления GTK4.

Я под GTK4 пишу фактически с её выхода в 2020. Всё там нормально со стабильностью, не переживайте. В gtkmm даже компилятор предупреждений не выкидывает, хотя в версии 4.10 там много чего объявили устаревшим. Проявляется это пока только в документации, в коде всё работает. Единственная реальная боль - это файловые диалоги. Всё время что-то работает криво.

Ответить | Правка | Наверх | Cообщить модератору

29. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (-), 23-Фев-24, 07:19 
А есть аналогичный софт для аудиокниг?
Ответить | Правка | Наверх | Cообщить модератору

31. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +1 +/
Сообщение от Аноним (30), 23-Фев-24, 08:24 
> размеры некоторых окон и название текущей коллекции сохраняются в ~/.cache/MyLibrary).

В доках содержимое ~/.cache описывают как non-essential data, почему не в ~/.config/MyLibrary, где было бы логичнее?
Ну и если бэкап делать, то ~/.config уж точно забэкапят.
(К слову, вопрос очистки срдержимого ~/.cache достаточно популярен, легко похерить можно.)

Честно говоря, использование ~/.local/share для коллекций и закладок кажется несколько избыточным...
Collections и BookMarks - это подкаталоги, не файлы?

Ответить | Правка | Наверх | Cообщить модератору

36. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от ProfessorNavigator (ok), 23-Фев-24, 13:09 
> В доках содержимое ~/.cache описывают как non-essential data, почему не в ~/.config/MyLibrary, где было бы логичнее?

Так в ~/.cache и не лежит ничего важного. Там находятся только размеры главного окна и размеры окна закладок, а также имя последней выбранной коллекции. Можете удалять смело - при запуске программа просто вернётся к размерам окон по умолчанию, а в имени коллекции будет то, что первым прочитает библиотека <filesystem> в папке Collections.

> Collections и BookMarks - это подкаталоги, не файлы?

Да. В папке Collections соответственно находятся подкаталоги с названиями коллекций, в каждом из них - файл base. Это собственно и есть база данных коллекции. В папке BookMarks находится файл bookmarks - это файл закладок.

Формат файла базы:

- 2 байта - размер пути к директории с книгами коллекции.
- Путь к директории коллекции.

Затем идут записи о файлах коллекции (число не ограниченно).

Формат записи о файле:

- 8 байт - размер записи о файле
- 2 байта - размер относительного пути файла
- Относительный путь файла в директории коллекции (вида 'имя_файла' или например 'директория1/директория2/файл')
- 2 байта - размер хеш суммы файла
- Хеш сумма файла в бинарном виде. В данный момент для хеширования используется алгоритм BLAKE-256.

Затем в каждой записи о файле идут записи о книгах, содержащихся в файле (их размер включается в размер записи о файле).

Формат записи о книге:

- 8 байт - размер записи о книге.
- 2 байта - размер пути к книге в файле (для архивов, в противном случае - 0)
- Путь к книге (если файл - архив, в противном случае не указывается).
- 2 байта - размер поля "авторы".
- Авторы книги.
- 2 байта - размер названия книги.
- Название книги.
- 2 байта - размер поля "серия".
- Серия книги
- 2 байта - размер поля "жанры книги".
- Жанры книги.
- 2 байта - размер поля "дата".
- Дата создания книги (для fb2, epub и pdf книг берётся из файла, если доступна, для djvu - указывается дата создания файла).


Формат файла bookmarks.

Неограниченное число записей.

Формат записи:

- 8 байт - размер записи.
- 2 байта - размер пути к файлу с книгой.
- Полный путь к файлу с книгой.
- 2 байта - размер пути к книге (для архивов, в противном случае - 0).
- Путь к книге в файле (для архивов, в противном случае не указывается).
- 2 байта - размер поля "авторы".
- Авторы книги.
- 2 байта - размер названия книги.
- Название книги.
- 2 байта - размер поля "серия".
- Серия книги
- 2 байта - размер поля "жанры книги".
- Жанры книги.
- 2 байта - размер поля "дата".
- Дата создания книги.

Поля "авторы", "серия", "жанры книги", "дата", а также название книги берутся из базы коллекции при создании закладки.

И для базы, и для закладок : все числа - беззнаковые целые соответствующих типов (uint16_t, uint64_t). Порядок байт - little endian. Все текстовые поля в кодировке UTF-8.

Ответить | Правка | Наверх | Cообщить модератору

44. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +1 +/
Сообщение от Аноним (30), 23-Фев-24, 17:38 
Спасибо за подробности, просто мне нравится, когда размеры главного окна и дочерних сохраняются и восстанавливаюься как мне удобно, и обычно они относятся к основным настройкам (справедливости ради: уже попадалась программа, использующая ~/.cache таким же образом).
В принципе, это не проблема.
Ответить | Правка | Наверх | Cообщить модератору

32. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (33), 23-Фев-24, 09:00 
А где Flatpak/Snap/AppImage, ну или deb на крайний случай?
Ответить | Правка | Наверх | Cообщить модератору

38. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +3 +/
Сообщение от ProfessorNavigator (ok), 23-Фев-24, 13:52 
> А где Flatpak/Snap/AppImage, ну или deb на крайний случай?

Касательно Flatpak/Snap/AppImage я уже свою позицию высказывал неоднократно, но на всякий случай повторю. Все три являются костылями, а также, что главное, поощрением лени и безграмотности пользователей. И косвенно - поощрение распространения проприетарного ПО. Потому что если у вас запустилось что-то из вышеуказанного списка, то и из исходников программа вполне соберётся. Если вы неспособны собрать программу из исходников, значит вам нужно учиться. Если нет желания учиться - не пользуйтесь Linux. Собственно дальше обсуждать особо нечего. Это и есть моя личная позиция - я не собираюсь поддерживать ни лень, ни безграмотность (не только в области IT, а вообще), ни проприетарное ПО и его распространение, ни тем более нежелание учиться. Соответственно официальных Flatpak/Snap/AppImage нет, не было, и не будет. По крайней мере, пока я так или иначе имею отношение к проекту.

Касательно deb - могу дать папку debian для самостоятельной сборки пакета (обращайтесь на почту). Или можете воспользоваться ссылками отсюда: https://github.com/ProfessorNavigator/mylibrary/issues/10 Но данный репозиторий пока не обновлён, видимо придётся подождать. Или можете задать вопрос его автору.

Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Анонимemail (39), 23-Фев-24, 13:59 
Способен. Умею. Хочу ли тратить время? Нет. А ваш Windows билд также способствует распространению проприетарного ПО если на то пошло. Собственно я уже запустил ваше приложение в wine и благополучно удалил
Ответить | Правка | Наверх | Cообщить модератору

42. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +2 +/
Сообщение от ProfessorNavigator (ok), 23-Фев-24, 14:37 
> Способен. Умею. Хочу ли тратить время? Нет.

Up to you.

> А ваш Windows билд также способствует распространению проприетарного ПО если на то пошло.

И да, и нет. Потому что я каждый раз повторяю - люди, если вам нужна данная программа, переходите на Linux. Потому что поддержка Windows может быть свёрнута в любой момент из-за слишком большой её трудоёмкости, и моих личных сомнений по поводу её необходимости. А также потому, что с юридической точки зрения по поводу инсталлятора там всё на тоненького. Формально вместе с ним я должен поставлять и все исходники используемых библиотек (исходники MyLibrary там есть, если что). А теперь загляните в папку bin после установки. Там даже curl присутствует, хотя так-то MyLibrary к сети никаким боком не относится - какая-то из библиотек (причём вторичных) использует его в качестве зависимости. И исходники всего этого дела, я честно говоря, искать не собираюсь - просто времени нет на такое. Так что как только последует хоть одна официальная претензия по этому поводу, инсталлятор будет просто удалён.

Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Прохожий (??), 24-Фев-24, 13:14 
>И исходники всего этого дела, я честно говоря, искать не собираюсь - просто времени нет на такое

Но пользователям вы предлагаете собирать ваше творчество из исходников самим. У них ведь есть время.🤦

Ответить | Правка | Наверх | Cообщить модератору

48. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +1 +/
Сообщение от ProfessorNavigator (ok), 24-Фев-24, 16:02 
> Но пользователям вы предлагаете собирать ваше творчество из исходников самим. У них ведь есть время.🤦

А с чего бы должно быть по-другому? Мои обязательства, как разработчика, заканчиваются на предоставлении вам исходного кода программы. И то, обязательства весьма условные. Даже не юридические, а скорее моральные. Я мог бы вообще не выкладывать ничего и пользоваться программой исключительно сам. Но я этого не делаю, потому что считаю это неправильным. И всё это: выкладывание исходного кода в публичный доступ, отладка на Windows и т.д. делается исключительно по моей доброй воле. Потому что я считаю это правильным и нужным.

Ответить | Правка | Наверх | Cообщить модератору

45. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Прохожий (??), 24-Фев-24, 13:10 
>Если вы неспособны собрать программу из исходников, значит вам нужно учиться

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

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

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

Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

49. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от ProfessorNavigator (ok), 24-Фев-24, 16:11 
> Если вы не способны собрать автомобиль из деталей, значит, вам нужно учиться.
> Если вы не способны сделать свой центральный процессор самостоятельно, значит, вам надо учиться.

Да. Или попросить того, кто умеет это делать. Вежливо.

> Вам, похоже, совсем невдомёк, что у людей могут быть другие, более полезные для них занятия. Да?

Ну так и занимайтесь ими, другие то тут причём? Программа-то нужна именно вам. И если у вас что-то не работает в случае программ с открытым исходным кодом, то это ваши и только ваши проблемы. Которые объясняются вашей же некомпетентностью. Потому что код открыт и любые ошибки и недочёты вы можете исправить сами в любой момент. Вам для этого дали все возможности.

Ответить | Правка | Наверх | Cообщить модератору

35. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от bicyclist56email (ok), 23-Фев-24, 11:43 
В Debian 12 LXDE удалил прежнюю версию, установленную из DEB пакета. Установил MyLibrary из исходников. Вновь создал библиотеку из архивов LibRusEc размером 326,2 ГиБ, за полтора часа (в 4 потока). Собрал DEB пакет. Откатил на снимок Timeshift. Удалил прежнюю версию и установил новую из DEB пакета. В поле Дата добавляю оценку прочитанной книге и комментарии. Добавленное видно в списке книг, но не в Информации о книге. Все работает, как мне и нужно. Спасибо.
Ответить | Правка | Наверх | Cообщить модератору

40. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от ProfessorNavigator (ok), 23-Фев-24, 14:15 
> В поле Дата добавляю оценку прочитанной книге и комментарии.

Будьте аккуратны, максимальный допустимый размер любых полей - 65535 байт (https://www.opennet.me/openforum/vsluhforumID3/132916.html#36). Любые символы записываются в кодировке UTF-8, и могут иметь размер, отличный от 1 байта.

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

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

Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от bicyclist56email (ok), 23-Фев-24, 14:20 
> допустимый размер любых полей - 65535 байт

Подозревал это :) Лишь несколько слов пишу, достаточно.

Ответить | Правка | Наверх | Cообщить модератору

37. Скрыто модератором  +/
Сообщение от Мощно (-), 23-Фев-24, 13:30 
Ответить | Правка | Наверх | Cообщить модератору

50. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (50), 25-Фев-24, 16:05 
Thanks for effort, как говориться, но автор, прикрутите к своему проекту какой-нибудь coderabbit (https://coderabbit.ai/) что ли. Живых ревьюверов для хоббийного опенсорса всегда найти трудно.

У вас проект, который по идее должен работать в среде адищенского бардака, а он вместо обработки ошибок делает, нпример, такое:

```
else
    {
      throw MLException(
      "PDFParser::pdf_annotation_n_cover: pdf file has not been opened");
    }
```

Ну не срослось с конкретной pdf-кой, какого ж черта это прям конец света-то?

Ответить | Правка | Наверх | Cообщить модератору

51. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от ProfessorNavigator (ok), 25-Фев-24, 17:13 
> Ну не срослось с конкретной pdf-кой, какого ж черта это прям конец света-то?

Почему - конец света? Это исключение по идее там же в коде и обрабатывается, без завершения программы. Если я нигде не ошибся.

Ответить | Правка | Наверх | Cообщить модератору

52. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (50), 25-Фев-24, 21:59 
Ну судя по логам в https://github.com/ProfessorNavigator/mylibrary/issues/11 - таки где-то ошиблись. Я конечно так-себе кассандра, на ваш почти глобальный указатель bie и то что вы его .reset по делу и не очень (https://github.com/ProfessorNavigator/mylibrary/blob/3982a8a...) - оставляет ощущение недодуманности всей этой кухни.

И да, "ваш КО" - где ваши юнит-тесты, сэр?

Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от ProfessorNavigator (ok), 25-Фев-24, 23:02 
> Ну судя по логам в https://github.com/ProfessorNavigator/mylibrary/issues/11 - таки где-то ошиблись.

Таки нет. Первая причина "цветастого" лога там была в использовании неродной для файловой системы кодировки имени файла. И тут как бы я мало что могу сделать. Потому что есть два способа определять тип файла - по расширению и по содержимому. Оба имеют свои плюсы и минусы. MyLibrary определяет по расширению. А для этого расширение сначала нужно корректно прочитать. Кое-что я подправлю, ошибок в логе будет меньше, но файлы при этом читаться лучше не станут. Вторая причина, по которой программа собственно падала - rar архивы. Об этом есть предупреждение в README, и опять же я в данном случае мало что могу сделать. Ибо формат проприетарный, поддержка его осуществляется через стороннюю библиотеку. А падает как раз именно она. Баг я у них подвесил, опциональное отключение поддержки rar архивов сделал - будет в следующем релизе. На этом мои возможности заканчиваются.

> Я конечно так-себе кассандра, на ваш почти глобальный указатель bie и то что вы его .reset по делу и не очень (https://github.com/ProfessorNavigator/mylibrary/blob/3982a8a...) - оставляет ощущение недодуманности всей этой кухни.

Таки разберитесь, что это вообще такое, и всё станет сразу понятно. bie - это указатель на класс, содержащий в себе прочитанные из книги данные - аннотацию, обложку и всё, что отображается в окне информации о книге. Соответственно, если пользователь переключил книгу, информация должна обнуляться. Чтобы например не висела на экране и в памяти обложка предыдущей книги или её аннотация.

> И да, "ваш КО" - где ваши юнит-тесты, сэр?

Я стесняюсь спросить - а зачем они тут? Каждую функцию я проверяю по мере написания/внесения изменений. С запуском всего этого дела через дебагер и проверкой конечного результат. Step by step. Что-то тестировалось отдельно от основного кода, например классы LibArchive и XMLParser. Ну так конечный результат тестирования собственно и попал в основной код программы, зачем там что-то ещё? А для тестов программы в целом у меня отдельно лежит специальный набор книг и архивов, особо замороченных. Теперь к ним добавится ещё один.

Ответить | Правка | Наверх | Cообщить модератору

56. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (50), 27-Фев-24, 15:20 
> На этом мои возможности заканчиваются.

Ну можно еще:
1. Обложить try-except-ом и аккуратно все ловить и обрабатывать
2. Если оно в core dump-ит, то вынести в отдельный процесс эти рарчики, и следить за ним снаружи

> Таки разберитесь, что это вообще такое, и всё станет сразу понятно.

Да, стало
1. bie указатель на _экземпляр_ класса BookInfoEntry, который возвращает get_book_info.
2. Вы в 277-й строке bie.reset() вызываете, и забываете, что там раньше было
3. В 280-й строке ваш get_book_info может raise MLException, правильно? Но это должно произойти _до_ того, как ваш bie получит новое значение, правильно?
4. Однако, в 285-й строке вы зачем-то снова делаете bie.reset. Значит, одно из двух - либо это копипаста (и вот как раз такие штуки ловят нормальные ревьюверы и иногда - ИИшечка), либо ваш bie может откуда-то получить значение параллельно всему этому, и вы его reset чтобы не разбираться и не заморачиваться с аккуратным параллельным программированием.

> Я стесняюсь спросить - а зачем они тут?

Плавали-знаем. Да, так технически можно разрабатывать хобби-проект и _технически_ - это ок.
Из опыта - с ростом кодовой базы и сложности - бегать по всему коду с дебаггером на каждый чих становится все более и более сложно. Стесняюсь спросить - а почему переписать с нуля это-вот-все оказалось проще, чем инкрементально развивать? Неужели сложность крышу проломила?

Выкладывать в опенсорс проект, в котором тестов нет никаких - очень _этически_ сомнительное действие. Потому что кроме прямого действия - "читалка библиотеки опенсорсная" - у проекта есть и косвенное действие, даже два:

1. Вы демонстрируете свой код другим разработчикам, и они впитывают (до какой-то степени, естественно) ваши паттерны поведения. И паттерн - "пройдусь дебаггером и так сойдет" - он вреден. Как и паттерн - "юзер сам виноват что мой код у него падает - это опенсорс, я сделаль, берите-что-дают-а-то-и-эти-кончатся"

2. Вы демонстрируете свой код потенциальным коллегам и работодателям (да, люди читают гитхабчики других людей!) И паттерны поведения, как технического так и личностного, могут ограничить ваши карьерные перспективы.

Кстати - пойти и зафайлить багу в библиотечке rar-чиков - это прям хорошо и правильно, keep doing!

Ответить | Правка | Наверх | Cообщить модератору

58. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от ProfessorNavigator (ok), 27-Фев-24, 18:29 
> Ну можно еще:
> 1. Обложить try-except-ом и аккуратно все ловить и обрабатывать
> 2. Если оно в core dump-ит, то вынести в отдельный процесс эти рарчики, и следить за ним снаружи

Там SIGILL вылазит. Можно сделать обработку сигнала, но она всё равно должна заканчиваться exit. По крайней мере, насколько я понял из чтения документации. Т.е. в лучшем случае можно перед носом пользователя подвесить на несколько секунд сообщение вида, "Хьюстон, у нас проблема", но не более того. Игнорировать же такой сигнал я бы не стал - неизвестно, чем это может закончится.

> параллельно всему этому, и вы его reset чтобы не разбираться и не заморачиваться с аккуратным параллельным программированием.

Нет, просто банальная перестраховка. Так-то да, если там вылетит исключение, то bie по идее должен остаться nullptr, и reset действительно лишний. Уберу потом.

> Стесняюсь спросить - а почему переписать с нуля это-вот-все оказалось проще, чем инкрементально развивать? Неужели сложность крышу проломила?

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

> 1. Вы демонстрируете свой код другим разработчикам, и они впитывают (до какой-то степени, естественно) ваши паттерны поведения. И паттерн - "пройдусь дебаггером и так сойдет" - он вреден. Как и паттерн - "юзер сам виноват что мой код у него падает - это опенсорс, я сделаль, берите-что-дают-а-то-и-эти-кончатся"

Я всё понимаю, ключевой вопрос тут во времени. Ну и в самой архитектуре проекта - я не очень вижу, где там можно всунуть серьёзные юнит-тесты. Те, что писал я, занимали максимум 10-20 строчек кода, и накидать их можно и так, на коленке за 10 минут в случае возникновения необходимости. Что называется "по месту".

> 2. Вы демонстрируете свой код потенциальным коллегам и работодателям (да, люди читают гитхабчики других людей!) И паттерны поведения, как технического так и личностного, могут ограничить ваши карьерные перспективы.

Расскажу коротко, кто я и что я, тогда может быть станет понятней, почему оно всё так, как есть. Образование моё - морская академия. После чего я работал сначала третьим, потом вторым помощником капитана. С морем, так получилось, завязал в 2017 году. Примерно в это же время занялся программированием. Но не с целью каких-то карьерных перспектив, а потому что понадобилось обрабатывать большое количество цифр. Что, скажем, в каком-нибудь офисном пакете делать в принципе можно, но, мягко говоря, не очень удобно. Курсов никаких не заканчивал, всё исключительно самообразованием. Данная программа появилась давно, гораздо раньше, чем попала в публичный доступ. Просто в один день перестала нормально работать штатная, которая прилагалась к одной библиотеке, и я на коленке за неделю сварганил замену. Под ту конкретную библиотеку. Ну и опять же, чтобы вы несколько представляли круг моих интересов: http://samlib.ru/editors/b/bobylew_j_w/society.shtml

Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (50), 27-Фев-24, 20:01 
> Там SIGILL вылазит. Можно сделать обработку сигнала, но она всё равно должна заканчиваться exit.
> По крайней мере, насколько я понял из чтения документации. Т.е. в лучшем случае можно перед
> носом пользователя подвесить на несколько секунд сообщение вида, "Хьюстон, у нас проблема",
> но не более того. Игнорировать же такой сигнал я бы не стал - неизвестно, чем это может закончится.

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

> Что, скажем, в каком-нибудь офисном пакете делать в принципе можно, но, мягко говоря, не очень удобно. Курсов никаких не заканчивал, всё исключительно самообразованием.

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

Ответить | Правка | Наверх | Cообщить модератору

62. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +1 +/
Сообщение от ProfessorNavigator (ok), 28-Фев-24, 13:37 
> Можно, например, все ошибки
> в отдельный списочек складывать, или даже в отдельный файлик писать и
> после всего выдавать сообщение - "Дорогой юзер, у нас тут возникло
> N проблем, тыкни сюда если интересен весь список"

Да, у меня была мысль сделать класс Logger, который будет заниматься выводом ошибок в консоль или сохранением их в файл, по выбору пользователя. С отметками времени. Пока просто руки не дошли.

> Это одна из траекторий по которым проходят люди. Программирование как скилл, даже
> если он не основная специальность - может быть очень полезным во
> всех смыслах.

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

Ответить | Правка | Наверх | Cообщить модератору

57. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (50), 27-Фев-24, 15:56 
> А для тестов программы в целом у меня отдельно лежит
> специальный набор книг и архивов, особо замороченных. Теперь к ним добавится
> ещё один.

Воот - этот набор и есть ваши тесты. Это конечно e2e, но это _сильно_ лучше чем ничего. А на гитхабе - ничего. Грубо говоря, если я у вас багу найду и на своих книжках проверю, а на ваших оно сломается - мы потратим кучу времени на разборки что-да-как-да-почему. А так - вы тесты выложили, кто угодно их взял и проверил, что не то что есть не сломалось - и вам хорошо и проекту

Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

59. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от ProfessorNavigator (ok), 27-Фев-24, 18:38 
> Воот - этот набор и есть ваши тесты. Это конечно e2e, но
> это _сильно_ лучше чем ничего. А на гитхабе - ничего. Грубо
> говоря, если я у вас багу найду и на своих книжках
> проверю, а на ваших оно сломается - мы потратим кучу времени
> на разборки что-да-как-да-почему. А так - вы тесты выложили, кто угодно
> их взял и проверил, что не то что есть не сломалось
> - и вам хорошо и проекту

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

Ответить | Правка | Наверх | Cообщить модератору

60. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от Аноним (50), 27-Фев-24, 19:41 
Ну вот, докопались до правообладателей. Они может и вымрут, но контроля над этим у нас с вами нет.

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

Ответить | Правка | Наверх | Cообщить модератору

63. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"  +/
Сообщение от ProfessorNavigator (ok), 28-Фев-24, 14:23 
> Ну вот, докопались до правообладателей. Они может и вымрут, но контроля над
> этим у нас с вами нет.

На самом деле есть, но это опять же отдельный разговор.

>[оверквотинг удален]
> напоролись вы в _реальной_ книжке на некую проблему - крокозябра в
> имени файла не читается, например. Вы ее сейчас, открыв дебагер, находите
> и фиксите - это занимает полчаса, к примеру. Если в этом
> месте (когда у вас все в голове, это важно!) добавить еще
> 5 минут на то, чтобы из ничего и _под своим копирайтом_
> создать тестовую _не книжку_ которая ведет себя по отношению к программе
> так же - вы получившийся тест можете спокойно публиковать. Со временем
> набор тестов будет расти, но прогонять код по ним каждый раз
> будет в разы быстрее, чем по реальной библиотеке. В итоге эти
> 5 минут инвестированного времени сейчас окупятся в вашем проекте вдолгую.

Мысль здравая. Но есть пара "но". Во-первых, никто не гарантирует, что вы сами при создании тестов ошибок в формате не наделаете. Скажем, fb2 - это ещё нормально (есть вполне читаемая xsd схема формата https://github.com/gribuser/fb2/tree/master). С epub же - там всё сложно. В плане документации. На первый взгляд она очень подробная, только вот пользоваться ей непросто. Потому что писали её, на мой взгляд, ... не очень умный человек. Или юрист. У которого цель была не формат описать, а отмазаться ото всех мыслимых и немыслимых претензий. Цели он достиг, только вот для реального использования результат мало подходит.

Во-вторых, сами пользователи и программисты. Моя фантазия пасует перед их "изобретательностью". MyLibrary например пытается определить кодировку текста тремя различными способами. Первый - прочитать из заголовка xml. Второй - определить средствами icu по содержимому всего текста. Третий - опять же средствами icu попытаться определить кодировку текста каждой читаемой строки (точнее - xml тега) индивидуально. Включаются они последовательно, если результат предыдущего - неудовлетворительный. И тем не менее, на 500000 книг нашлось штук двадцать, где кодировку определить так и не удалось. А ведь есть ещё Windows, где программисты любят использовать для нелатинских алфавитов wchar_t (и для этого пришлось отдельно извращаться, потому что бОльшая часть нормальных людей сохраняет всё через обычный char). Или есть вообще уникумы, которые в fb2 засовывают текст в т.н. формате "html". Это когда символы записываются в виде "&#<номер_символа_в_юникоде>". Хотя это вообще ни в каких стандартах толком не прописано. У меня целый день ушёл на то, чтобы понять что это вообще такое, и как его читать. А внятного описания этого формата я так нигде и не нашёл - просто догадался.

В-третьих, форматы со временем менялись, а в библиотеках до сих пор встречаются все варианты, в том числе устаревшие.

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


Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру