Библиотека ГПНТБ
В общем, история такая: в результате поисков недорогого /доступного/бесплатного семейного досуга, у супруги возникла идея посещения библиотеки. В детстве она проводила довольно много времени между стеллажей с книгами, а в студенчестве, можно сказать, была чуть ли не на ПМЖ в читательских залах. Плюс масса историю о том, как дед участвовал в проектировании здания (архитектор-строитель) и тому подобное вдохновили меня и сына на неизбежное "посмотреть своими глазами".
Я, по теме книг, человек с поехавшей крышей - это выливается в многочасовые шоппинги по книжным магазинам/развалам/ярмаркам, а когда литературу уже некуда было складировать и некому дарить - были открыты неиссякаемые ресурсы электронных книг.
И вот настал тот день, когда мы добрались до ГПНТБ - https://www.gpntb.ru/ - после чего я стал фанатом этого учреждения. Если не брать в расчет ресурсы художественного крыла, на одних только выставках и мероприятиях можно окультуриться любому, кто посетит желаемое мероприятие. Выставки художников, раритетных экспонатов, бесконечный архив литературы как художественной, так и научной, не считая газетных и журнальных подшивок за многие годы - все это , как минимум, стоит внимания.
Ниже я прилагаю некоторые фото книжных полок из художественного крыла. Меня поразило то, что десятки новинок появляются в каталоге библиотеки буквально месяц спустя после их появления в магазинах. На данный момент мы посетили две крупные библиотеки города Новосибирска - Областную и ГПНТБ. Я думаю, что и в менее крупных библиотеках моего и Ваших городов ассортимент ничуть не хуже того, что Вы можете увидеть на фото.
Ближайший год у меня просто отпала необходимость посещения книжного магазина - все желаемое я нашел здесь. Я просто в дичайшем восторге!
Прилагаю некоторые фото - это только капля в море:
















































Не менее поразительны выставки. Вот одна из впечатливших картин - автору 14 лет.
Как я сделал читалку книг для себя: открывается на любом утюге, работает без интернета и хранит всю библиотеку
Всем привет! На создание этого проекта меня подтолкнула банальная проблема: я читаю очень много (в среднем по книге каждые 2-3 дня) и со временем начал путаться в авторах, сериях и том, что уже прочитано, а что нет. Существующие решения либо обрастали лишним функционалом, либо не давали нормального контроля над личной библиотекой.
Поэтому было решено сделать свой инструмент для комфортного чтения с акцентом на каталогизацию, кроссплатформенность и статистику. Поделюсь тем, как это устроено под капотом, какую архитектуру я выбрал и с чем пришлось столкнуться при реализации.
Архитектура и стек: почему PWA и браузерные технологии?
Главное требование к читалке - полная независимость от платформы и доступность с любого устройства (ПК, смартфон, планшет, телевизор) без необходимости ставить отдельные нативные приложения под каждую ОС.
PWA (Progressive Web App): Приложение устанавливается в систему прямо из браузера и работает в отдельном окне.
Оффлайн-доступ: За кэширование статики и работу без подключения к сети отвечает Service Worker.
Хранилище данных: Все книги и файлы обрабатываются исключительно на стороне клиента.
Что под капотом: архитектура, оффлайн и хранение гигабайт в браузере
Когда я проектировал читалку, главным требованием было отказаться от хранения самих файлов книг на сервере в пользу Client-Side First архитектуры. Сервер не индексирует, не передает и не хранит ваши библиотеки.
Service Worker и PWA: Приложение упаковано как прогрессивное веб-приложение. За кэширование статики и мгновенную загрузку интерфейса отвечает Service Worker. Интернетом для самого процесса чтения пользоваться не нужно вообще - закачал базу и можно читать хоть в автономном режиме.
IndexedDB + OPFS (Origin Private File System): Забудьте про костыли с локальным хранилищем (localStorage с его убогим лимитом в 5 МБ). Для работы с файлами книг используется IndexedDB и современная файловая система браузера OPFS.
Математика проста: в Chromium-подобных браузерах лимит хранилища для одного домена составляет до 60% от свободного дискового пространства устройства. На современном смартфоне или ПК это десятки или сотни гигабайт. Учитывая, что средний файл .fb2 или .epub без иллюстраций весит около 1–2 мегабайт, в памяти браузера легко умещается полноценная библиотека из десятков тысяч книг.
Гибридная синхронизация метаданных: Так как вся тяжелая база книг живет локально на устройстве пользователя, по сети гоняются исключительно легкие метаданные (текущая позиция чтения, настройки, оценки и статистика для облачного профиля - если пользователь решил авторизоваться). Сами файлы книг на сервер не отправляются вообще. Для передачи конкретной книги между устройствами используется генерация временных хэш-ссылок с позицией чтения.
Основной функционал
OPDS-каталоги: «Из коробки» встроена поддержка легальных каталогов (например, Библиотека Мошкова), при этом пользователь может подключать любые сторонние OPDS-источники.
Учет и статистика: Проект создавался в первую очередь ради структурирования прочитанного. Реализована сортировка по жанрам, авторам, сериям, выставление оценок и ведение детальной истории чтения.
Синхронизация и шаринг: На текущем этапе реализована генерация уникальных ссылок с привязкой к конкретной позиции в тексте (через метаданные), что позволяет переносить прогресс или делиться книгой. В планах - полноценная фоновая автосинхронизация метаданных между девайсами.
Интегрированная озвучка (TTS): Реализован режим чтения вслух с помощью встроенных в браузер речевых движков с сохранением позиции воспроизведения.
Поддерживаемые форматы: Фокус сделан на .fb2 как на основной стандарт для текстовой русскоязычной литературы. В перспективе планируется расширение форматов (включая .epub).
Безопасность, приватность и серверная часть
Один из частых вопросов касается безопасности и хранения пользовательских данных.
Где лежат файлы книг? Серверная часть не хранит, не индексирует и не передает файлы пользовательских книг. Вся обработка и хранение текстовых файлов происходят изолированно в песочнице браузера на устройстве пользователя.
Зачем нужна авторизация? Регистрация полностью опциональна и используется исключительно для привязки облачного профиля, в котором хранятся легкие метаданные: настройки интерфейса, общий прогресс чтения и оценки. Читать книги с локального диска можно полностью без регистрации и создания аккаунтов.
Ссылки на проект
Потестировать демо-версию (доступна полностью готовая книга): libd.eu/share/...
Главная страница приложения: libd.eu
Проект развивается открыто и пишется под практические нужды. Буду рад конструктивной технической критике, идеям и пожеланиям в комментариях!
Стена из стеклоблоков на лестнице в Мурманской библиотеке
Стивен Эдвин Кинг. Собрание
Сти́вен Э́двин Кинг (англ. Stephen Edwin King; род. 21 сентября 1947, Портленд, штат Мэн, США) — американский писатель, работающий в разнообразных жанрах, включая ужасы, триллер, фантастику, фэнтези, мистику, драму, детектив, получил прозвище «Король ужасов» (King of Horror). Продано более 400 миллионов экземпляров его книг, по которым было снято множество художественных фильмов и сериалов, телевизионных постановок, а также нарисованы различные комиксы. Кинг опубликовал 65 романов, в том числе семь под псевдонимом Ричард Бахман, и 5 научно-популярных книг и 15 стихотворений. Он написал более 200 рассказов и 35 повестей, большинство из которых были собраны в авторских сборниках. Действие многих произведений Кинга происходит в его родном штате Мэн.
https://disk.yandex.ru/d/dWEnlU4gC4KS4Q - тапнуть по ссылке, чтобы было интересно.












