aary 

Поставил TightBlog

by aary


Posted on суббота марта 28, 2026 at 01:40AM in ЖЖ


1. Технические достижения

  • Запуск TightBlog 4.2.0 на Java 25, PostgreSQL с SSL, исправлены проблемы:

    • Десериализация пароля: @JsonProperty перенесены на сеттеры в UserCredentials.java.

    • Схема БД: password_hash в weblogger_user снят NOT NULL (двухэтапное сохранение: INSERT с NULL → UPDATE с хешем). Также исправлены date_updated и publish_time в weblog_entry.

    • Фиды (Atom): исправлен шаблон entries-atom.html:37 (замена updateTime на dateUpdated).

    • Добавлен заголовок Content-Disposition: inline для отображения в браузере.

  • Роутинг работает: /aary/feed перенаправляется на /tb-ui/rendering/feed/aary через RequestMappingFilter.

  • Feedbro (расширение Firefox) успешно читает локальный фид, решая проблему внешней валидации.

2. Понимание архитектуры TightBlog

  • Таблица user_weblog_role была переименована из roller_permission в 2015 году, семантика изменена с «права» на «роль». Это наследие Roller, но TightBlog упростил модель.

  • Миграции БД перешли от Velocity-генерации к прямым SQL-файлам (Flyway). Это снизило универсальность (только PostgreSQL), но повысило прозрачность и управляемость.

  • В TightBlog несколько блогов на пользователя поддерживаются, хотя в UI Roller эта функция могла отсутствовать.

3. Ключевые концепции, выработанные в диалоге

  • Плоские категории vs теги: категории — рубрикация, теги — кросс-тематический поиск. В TightBlog категории не иерархичны.

  • Фиды: Atom 1.0 + JSON Feed + ActivityPub (последние — для гибкости). Обнаружение фидов через <link rel="alternate">.

  • Мультиязычность в фидах возможна через отдельные фиды по языкам или через атрибут xml:lang.

  • Поиск: без ИИ — использовать обратный индекс, ранжирование по доверенному кругу (организации, подписки), группировку по источникам, уточняющие вопросы.

  • Приватность и обнаружение: нужен баланс между «кругами доверия» и шлюзами наружу. Организация как единица доверия может сертифицировать ключи, управлять доступом, модерацией.

  • Теги как сообщества: теги становятся точками входа, имеют свои фиды, модерацию, могут быть scoped по организациям.

4. Уроки из истории

  • «Мой Круг» показал, что неявные круги друзей сложны в UX и не обеспечивают рост. Ваша модель «Планет» с явным членством и уставом может быть понятнее.

  • Провалы XMPP, Matrix, RetroShare связаны с тем, что они решали технические задачи, забывая о массовом пользователе: сложный старт, отсутствие обнаружения, привязка к серверу, метаданные открыты.

  • Успешные системы (Email, DNS) работают потому, что владельцы идентичностей заинтересованы поддерживать свои записи.

5. Предложения для будущего движка

  • Прогрессивная децентрализация: начать с централизованного приложения, затем добавить свой домен, федерацию, P2P.

  • Организация как КА (центр сертификации): выдаёт сертификаты участникам, публикует каталог, управляет модерацией.

  • Теги как службы: каждый тег может иметь правила модерации, фид, уровень доступа (публичный/только для участников).

  • Идентичность: did:web:org:user — портативная, с возможностью миграции.

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



No one has commented yet.

Leave a Comment

HTML Syntax: Отключен