badabumka

badabumka

Пикабушник
132К рейтинг 53 подписчика 28 подписок 199 постов 40 в горячем
Награды:
Пикабу 17 лет! Праздничный постер 10 лет на ПикабуЗа неравнодушие к судьбе Пикабу
3

Как я сделал читалку книг для себя: открывается на любом утюге, работает без интернета и хранит всю библиотеку

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

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

Архитектура и стек: почему PWA и браузерные технологии?

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

  • PWA (Progressive Web App): Приложение устанавливается в систему прямо из браузера и работает в отдельном окне.

  • Оффлайн-доступ: За кэширование статики и работу без подключения к сети отвечает Service Worker.

  • Хранилище данных: Все книги и файлы обрабатываются исключительно на стороне клиента.

Что под капотом: архитектура, оффлайн и хранение гигабайт в браузере

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

  1. Service Worker и PWA: Приложение упаковано как прогрессивное веб-приложение. За кэширование статики и мгновенную загрузку интерфейса отвечает Service Worker. Интернетом для самого процесса чтения пользоваться не нужно вообще - закачал базу и можно читать хоть в автономном режиме.

  2. IndexedDB + OPFS (Origin Private File System): Забудьте про костыли с локальным хранилищем (localStorage с его убогим лимитом в 5 МБ). Для работы с файлами книг используется IndexedDB и современная файловая система браузера OPFS.

    • Математика проста: в Chromium-подобных браузерах лимит хранилища для одного домена составляет до 60% от свободного дискового пространства устройства. На современном смартфоне или ПК это десятки или сотни гигабайт. Учитывая, что средний файл .fb2 или .epub без иллюстраций весит около 1–2 мегабайт, в памяти браузера легко умещается полноценная библиотека из десятков тысяч книг.

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

Основной функционал

  1. OPDS-каталоги: «Из коробки» встроена поддержка легальных каталогов (например, Библиотека Мошкова), при этом пользователь может подключать любые сторонние OPDS-источники.

  2. Учет и статистика: Проект создавался в первую очередь ради структурирования прочитанного. Реализована сортировка по жанрам, авторам, сериям, выставление оценок и ведение детальной истории чтения.

  3. Синхронизация и шаринг: На текущем этапе реализована генерация уникальных ссылок с привязкой к конкретной позиции в тексте (через метаданные), что позволяет переносить прогресс или делиться книгой. В планах - полноценная фоновая автосинхронизация метаданных между девайсами.

  4. Интегрированная озвучка (TTS): Реализован режим чтения вслух с помощью встроенных в браузер речевых движков с сохранением позиции воспроизведения.

  5. Поддерживаемые форматы: Фокус сделан на .fb2 как на основной стандарт для текстовой русскоязычной литературы. В перспективе планируется расширение форматов (включая .epub).

Безопасность, приватность и серверная часть

Один из частых вопросов касается безопасности и хранения пользовательских данных.

  • Где лежат файлы книг? Серверная часть не хранит, не индексирует и не передает файлы пользовательских книг. Вся обработка и хранение текстовых файлов происходят изолированно в песочнице браузера на устройстве пользователя.

  • Зачем нужна авторизация? Регистрация полностью опциональна и используется исключительно для привязки облачного профиля, в котором хранятся легкие метаданные: настройки интерфейса, общий прогресс чтения и оценки. Читать книги с локального диска можно полностью без регистрации и создания аккаунтов.

Ссылки на проект

  • Потестировать демо-версию (доступна полностью готовая книга): libd.eu/share/...

  • Главная страница приложения: libd.eu

Проект развивается открыто и пишется под практические нужды. Буду рад конструктивной технической критике, идеям и пожеланиям в комментариях!

Показать полностью 3
1533

Ответ на пост «Несравненное Гостеприимство!!!»25

Были на Урале проездом. И у нас сломалась машина. Остановилась машина, там семейная пара, спросили что случилось, сказали нам что ближайшее СТО в 20 километрах в их деревне. Предложили оттащить к себе, остаться на ночь, при этом не взяли ни копейки! Мы сами предлагали заплатить, но категорически отказались!

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

В общем удивительно гостеприимные и добрые люди оказались! Спасибо им! Сколько лет прошло, до сих пор вспоминаю!

А ну по традиции надо же упомянуть как в старт посте - Нигде мне не попадалось такое искреннее русское гостеприимство!

4

Существуют ли сервисы чтения книг с хорошей статистикой?

Чтобы с любого устройства можно было загрузить свою книгу, или по ссылке fb2 и сразу читать ?

Главное чтобы был учет прочитанных книг. Статистика это главное! Чтобы все было отсортировано по жанрам, писателям, можно было посмотреть сколько прочитал и есть ли в серии новые книги.

Читаю много и приходится читать по очереди из разных серий и авторов (ждешь когда ленивый атвор разродится на очередную книгу 🤣) и тупо запариваешься что и где читал и где качал.

А так бы скачанные и прочитанные книжки уходили в статистику и было видно сколько книг закончил читать в каждой серии и авторе.

Еще бы рейтинг читателей по книге было бы неплохо )) но это уже не обязательно.

В общем нужен катологизатор прочитанных книг.

Посоветуйте кто чем пользуется!

7

Ответ на пост «Пирамида навоза»1

Считаем общий объем говна на планете

🌍 1. Кто вообще участвует

Основные “производители” фекалий:

🐄 скот (коровы, свиньи, овцы и т.д.)

🐓 птицы

🐟 рыбы и морская фауна

🐘 дикая наземная фауна

🐜 насекомые (очень много, но мелко)

🧍 люди (для масштаба)

🐄 2. Главный вклад — сельхозживотные

Уже считали коров:

🐄 ~1,5 млрд коров × 45 кг/день
👉 = 67,5 млрд кг/день

Добавим остальных сельхоз:

свиньи, овцы, козы, птица
👉 примерно ещё +30–50%

📦 Итого сельхоз:

👉 ~100 млрд кг/день

🐟 3. Океан (самый недооценённый игрок)

Морские животные + рыбы + планктон:

👉 оценки сильно плавают, но порядок:

~10¹²–10¹³ кг биомассы активно участвует в цикле

огромная часть перерабатывается внутри воды

Фекальная продукция:

👉 примерно 50–200 млрд кг/день

(да, океан буквально огромный “биореактор”)

🐜 4. Насекомые и мелочь

Муравьи, термиты, жуки и т.д.:

колоссальная биомасса

но очень мелкие индивидуально

👉 примерно:
5–20 млрд кг/день

🐘 5. Дикая наземная фауна

Слоны, олени, хищники и т.д.:

👉 ~1–5 млрд кг/день

🧍 6. Люди (для масштаба)

👉 ~0,4 млрд кг/день

🧮 7. ИТОГО ВСЕ ЖИВЫЕ

Складываем:

Группакг/деньСельхоз~100 млрдОкеан~100 млрдНасекомые~10 млрдДикая суша~3 млрдЛюди~0,4 млрд

🌍 ОБЩИЙ ИТОГ:

👉 ~200–220 млрд кг фекалий в день

📦 8. В объёме

Берём плотность ~800 кг/м³:

200e9 / 800 ≈

👉 ~250 млн м³/день

🏗 9. В “пирамидах Хеопса”

Пирамида:
2,6 млн м³

250e6 / 2,6e6 ≈

👉 ~96 пирамид Хеопса В ДЕНЬ 💀

🌍 10. В год

96 × 365 ≈

👉 ~35 000 пирамид Хеопса в год

Показать полностью
0

Изучай языки при открытии каждой новой вкладки в браузере

  • Расширение заменяет стандартную новую вкладку браузера

CHROME CEFR RPG

Контент на новой вкладке

  • слово на выбранном языке

  • варианты перевода на втором языке который вы изучаете

  • выбор правильного ответа

  • мгновенная проверка

Статистика и покрытие

  • 18 языков

  • 306 направлений перевода

Уровни сложности

  • A1

  • A2

  • B1

  • B2

  • C1

  • C2

После прохождения уровней А1-С2 открывается таблица рекордов с подсчетом стриков

Формат работы

  • микро-тесты при каждом открытии новой вкладки

  • длительность взаимодействия: несколько секунд

  • без отдельного режима обучения

Требования

  • не требуется регистрация

  • минималистичный интерфейс

  • работа через стандартную новую вкладку

Назначение

  • поддержание и расширение словарного запаса

  • регулярная микро-практика языка в фоновом режиме использования браузера

  • бесплатно, без рекламы итд итп

Показать полностью 2
8

Сделал расширение Chrome - перевод текста без копирования и открытия переводчика

Раньше нужно было постоянно делать:

Выделил текст → Ctrl+C → открыл переводчик → Ctrl+V → прочитал → вернулся на сайт.

Как-то многовато движений...

Поэтому сделал для себя небольшое расширение Chrome — All2All Translate.

Сделал расширение Chrome - перевод текста без копирования и открытия переводчика

Что умеет:

✅ Просто выделяете текст на странице

✅ Перевод появляется рядом автоматически

✅ Более 100 языков

✅ Автоопределение языка

✅ Режим автоматического перевода

✅ Режим перевода по кнопке

То есть не нужно открывать отдельные вкладки и постоянно прыгать между окнами.

Сейчас расширение опубликовано в Chrome Web Store:

🌐 https://chromewebstore.google.com/detail/all2all-translate/clnpmejpnimlelmonhpandkiiilfolbp

бесплатно и без рекламы

Показать полностью 1
4

CEFR RPG - Вышло расширение для браузера Chrome!

Серия CEFR RPG

Редактировать пост

CHROME CEFR RPG

Приветствую всех, кому интересно развитие игры! Надеюсь не замучал вас своими обновлениями )))

Как это работает

После установки расширение заменяет стандартную “новую вкладку”.

При каждом открытии новой вкладки показывается:

  • слово на русском

  • несколько вариантов перевода

  • выбор правильного ответа

На всё уходит буквально несколько секунд.

Идея

Основная мысль была в том, чтобы убрать необходимость “специально садиться учить язык”.

Вместо этого:

  • открываешь вкладки как обычно

  • и параллельно запоминаешь слова

Такой формат больше похож на микро-практику, встроенную в повседневное использование браузера.

Возможности

  • уровни сложности A1–C2

  • быстрые тесты без лишних шагов

  • не требует регистрации

  • минималистичный интерфейс

Зачем это может быть полезно

Подходит тем, кто:

  • хочет подтянуть словарный запас

  • не любит долгие занятия

  • ищет простой способ “поддерживать уровень”

Обратная связь

Расширение только опубликовано, поэтому буду благодарен за любой отзыв:

  • что удобно / неудобно

  • что стоит доработать

  • какие функции добавить

Если кому-то идея покажется интересной — буду рад, если попробуете.

Ну и буду благодарен за оценку  на странице хром магазина. Расширение только что вышло и еще совсем не имеет оценок и отзывов СТРАНИЦА

Показать полностью 2
2

CEFR RPG - Добавлен новый режим: изучение английских фраз!

Серия CEFR RPG

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

Вход в режим находится по центру Холла - SANCTUM

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

Пример:

  • I gives you money

  • I am give you money

  • I give you money ✅

За правильный ответ начисляются кристаллы 💎, что сохраняет игровую мотивацию и динамику.

🎯 Зачем это нужно:

  • переход от изолированных слов к реальному использованию языка

  • развитие языковой интуиции

  • закрепление грамматики в естественном контексте

⚙️ Особенности режима:

  • короткие, практичные фразы

  • уровни сложности от A1 до C1

  • случайная выдача заданий без привязки к спискам

🚀 Идея развития: режим фраз -  это логичное продолжение изучения слов.В дальнейшем планируется добавить ситуационные сценарии (магазин, аэропорт, диалоги), чтобы приблизить обучение к реальным условиям общения.

🔗 Попробовать можно здесь  https://cefrpg.eu/

Буду благодарен за обратную связь и предложения по развитию режима.

Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества