Это пока просто поток мыслей. Задача уже не первый год в голове крутится, многое обсуждалось в параллельных темах, частично механизмы понемногу реализуются, но концепция в деталях всё равно пока не ясна.
Программа максимум: устойчивый к внешним воздействиям (падения серверов, блокировки правительств и местных организаций и т.п.), простой в использовании, приносящий хотя бы минимальную прибыль социально-информационный ресурс.
— Устойчивость подразумевает децентрализацию. Пусть не полный p2p, хотя бы на уровне разных субпроектов. Типа, если проблемы с политической частью, работает хотя бы научно-техническая. Эта же децентрализация в какой-то степени позволит защищаться и от блокировок, если одни и те же материалы смогут быть доступными по разным местам. Однако, это же порождает и проблемы, например, с монетизацией. С одной стороны, это будет снижать поисковые рейтинги, что будет снижать появление новых пользователей, с другой — позволит кому-то легко использовать материалы для собственной выгоды (грубо говоря, крутить их со своей рекламой). Кроме того, хочется построить такую систему, чтобы она могла продолжать работать даже в случае, когда я уже не смогу этим заниматься (все мы смертны).
— Простой в использовании — значит, не требующий от пользователей особых знаний. Да, в том же FreeNet или хотя бы за i2p сейчас можно построить прекрасно защищённую систему, заблокировать которую на уровне нынешних законов будет сложно (хотя при сильном закручивании гаек в будущем — легко, конечно). То есть, желательно иметь возможность заходить простому пользователю через один только браузер.
— Про прибыль — понятно. Хочется иметь хоть какую-то отдачу от затрат на такой проект кроме моральной
Тем более, что моральной отдачи всё равно с каждым годом в Интернете всё меньше, одна ложка дёгтя недовольных сводит на нет весь позитив от молчаливой бочки мёда удовлетворённых.
Какие особенности и компоненты должны быть в системе.
— Единая база пользователей. Полная анонимность и безнаказанность губительна по целому ряду причин. Начиная от простого г***ометания, кончая спамерами. Даже во FreeNet пришлось вводить систему WebOfTrust, реализующую пусть и анонимную, но систему оценок/рейтингов. Иначе — никак.
— Проекты в рамках системы должны быть автономны, но при этом свободно обмениваться данными. Например, использовать рекомендательные алгоритмы для раскрутки материалов одних ресурсов на других.
— Вообще, нужно очень много внимания уделять data-mining'у, автоматизации поиска актуальных материалов.
— Данные в системе должны быть максимально неуязвимы. Это касается и вопросов вандализма, и вопросов требований по удалению тех или иных материалов.
Компоненты могут быть разных классов:
— Сайты. Пока фактически у нас реализована только сама Авиабаза. Из которой потенциально могут отпочковаться несколько разделов, в первую очередь — флотский. Со статической частью проблем нет. Уже вполне работает (хотя окончательно не допилен) вариант построения сайта через DVCS и Zim-Wiki:
Новый формат разработки сайтов. И airbase.ru в частности. Тут вообще всё просто. И писать материалы можно спокойно на локальной машине и репозитории могут быть сколь угодно распределёнными, даже в случае отказа/блокировки центрального сайта, и формат данных универсальный, поддерживаться сможет кем угодно даже без меня. Это пока самая «решённая» часть задачи.
— Форумы. Тут, с одной стороны всё понятно со логической структурой, с другой — масса концептуальных проблем с технической стороны. Понятно, что нынешний вариант с централизованной БД подходит для распределённой системы очень плохо. Можно, конечно, заниматься репликацией данных, но это сложно, капризно, уязвимо. Была у меня мысль делать форумы на DVCS. Даже на старом сервере начал эксперименты. То есть логика такая — основные данные (топики, сообщения) лежат в DVCS, откуда кешируются в базу данных, которая уже и отдаёт странички. Вопрос распределённости решается легко.
Увы, типичные объёмы наших форумов (условно — 6 млн. файлов, 10Гб данных) показали совершенную непригодность имеющихся DVCS и железа для эффективной работы (коммиты новых сообщений, отслеживания изменений).
Нарезка на мелкие категории по одной на репозиторий во-первых, спасает мало. Во-вторых — практически ставит крест на перемещении материалов (топиков) в другие категории («вынос политики с ракетомодельного»).
Теперь появилась мысль заводить по репозиторию на определённые временны́е интервалы, скажем — репозиторий на год. Или при росте объёмов — хоть на месяц. Это уже лучше, хотя и тут проблем потенциально может быть немало. Надо думать.
— Блоги. Это то, что делать надо обязательно. По сложности будет где-то между сайтами и форумами. Но вопрос совсем ещё не продуманный.
Ещё моменты. Приватность сообщений. От неё придётся отказываться полностью. Нынешние закрытые материалы придётся подвергнуть сортировке. Часть вывести снова в открытый доступ (эротика всякая, мусор/спам и т.п.), только скрыв от гостей на сайте (потому и скрывалось). Часть, реально приватное, оставить на старом движке без переноса в распределённую систему.
Кстати, система должна ещё и смешивать удобно и эффективно разнородные решения. Скажем, кроме упомянутых открытых чисто распределённых иметь ещё обычные форумы для приватного или аварийного общения, чаты, блог-системы, под которые есть приличные мобильные клиенты (тот же WordPress) и т.п.
Ну, ладно, пока хватит. Буду сюда понемногу пописывать по мере кристаллизации мыслей.