Сайт airbase.ru у нас фактически заброшен уже года, эдак, с 2004-го. Я регулярно кладу в копилку материалы для него, откладывая на лучший день, но время этого дня так и не приходит.
Когда-то над некоторыми разделами сайта работали также несколько человек энтузиастов, но со временем энтузиазм угас, а то, что так и не была сделана полноценная Wiki-архитектура, не позволило особо пускать в его разработку всех желающих (даже если бы они были). Мало ли кто-то, даже без злого умысла запорет что-то, иди потом, поднимай с бэкапа…
При этом возник ещё и, так сказать, конфликт направлений. Работа над сайтом для всех желающих — это, как правило, web-интерфейс (работа из браузера) и база данных. Я же для простых страниц сайтов в других проектах (в том числе на
www.aviaport.ru) предпочитаю хранение данных в простом текстовом файле с разметкой, подобной форумной. Файл же контролируется системой контроля версий (когда-то CVS и SVN, теперь — Mercurial). Это позволяет и редактировать файл куда удобнее, чем через браузер, и историю версий вести.
С некоторых пор меня стала посещать мысль, а не попытаться ли объединить эти подходы. Зачем нужна БД обычно? Для поиска (разного рода, не только в смысле запроса пользователей), для ведения лога обновлений и т.п. Но никто не мешает индексировать в БД изменения, происходящие в файлах, используя БД просто как кеш. Зато сохраняется удобство работы с простым файлом. И версии контролируются проверенным стандартным решением, а не велосипедом.
А тут мне ещё попалось решение от
Bitbucket.org. Они Wiki проектов хранят именно в Mercurial. Хотя там нет никаких БД и т.п., но сам факт работы с удалённой Wiki с локальной машины мне понравился.
И решил я объединить эти два подхода в разработке/обновлении/оживлении Авиабазы.
В итоге сейчас состояние дел такое.
Авиабаза умеет показывать страницы прямо из простого каталога, из текстовых файлов.
Например, страница
БРЭО Су-27.
На сайте есть репозиторий, копия которого доступна в публичном проекте
sites-airbase на Bitbucket (система контроля версий — Mercurial). Скажем, файл, показывающий пример страницы выше
доступен тут. Со всей историей изменений. Можно даже
посмотреть кто и когда какие строки менял.
Сайт худо-бедно может дёргать данные с внешнего репозитория (по cron, периодически, вообще не проблема, но есть желание сделать его вообще почти мгновенным, как в Dropbox, это реально, но нужно поработать).
В принципе, этого уже достаточно, чтобы начать коллективную работу над сайтом.
Что требуется от энтузиастов?
— Установить у себя Mercurial. Для линуксоидов это вообще не вопрос, для пользователей Windows рекомендую решения, типа
TortoiseHG. Сам с ним не работал, но знаю, что под Windows это неплохой выбор. Если будет непонятно, куда копать и что с ним делать при желании поработать на сайтом, обсудим это позже.
— Скачать тестовую копию репозитория
— Делать в нём свои правки и отправлять их в репозиторий
После этого изменения окажутся на сайте.
В принципе, со временем можно, наверное, придумать даже работу через сайт/браузер, привычным видом. Много ещё нужно доработать в плане автоматизации. Ну и, понятно, нужно перетаскивать ещё старые страницы из БД в файлы. В репозитории пока пусто. Но делать всё это имеет смысл, только если будут желающие работать с сайтом. Ибо для работы в одиночку мне и имеющейся системы достаточно.
Что в плюсах:
— Работа со страницами локально, на своей машине, вне зависимости от падений браузеров и состояния коннекта.
— Вся информация будет лежать не только на Авиабазе, но и на множестве других машин, что очень повышает её живучесть. Вообще, люблю я за это распределённые системы контроля версий. Даже сейчас, на этапе тестирования, эти заготовки лежат уже в четырёх репозиториях на трёх компьютерах.
— Информация доступна всем желающим, не только через сайт. Для кого-то это минус, будут бояться утечки исходных данных в удобном виде, но на самом деле это, как показывает весь мой опыт последнего десятка лет, несомненный плюс. Для некоммерческих проектов открытие исходников сильно повышает их живучесть и активность.
— Можно легко обмениваться сырыми данными, закидывая их на дальнейшую обработку прямо в репозиторий, с тем, чтобы потом или кто-то другой занялся причёсыванием, или ты сам из другого места.
— Если весь сайт (или значительная его часть) будет переведёт в такую форму, то станет возможным изготовить десктопный софт для работы с локальной копией Авиабазы. Когда-то о таком многие просили. Но раньше это было сложно.
Что в минусах:
— Более высокий порог вхождения. Нужно разобраться не только с браузером, но и как получать/отправлять изменения. Тут, к сожалению, помочь ничем, кроме детальных инструкций нельзя. Но задача, на самом деле, не сложная.
— Отсутствие мгновенного контроля за результатом. После отсылки изменений на сайте они появятся через какое-то время. Сейчас — через минуты. Если получится довести до ума систему мгновенных изменений — то через секунды. Но это плохо подходит для быстрого цикла изменил/сохранил/посмотрел. Впрочем, если уровень автора будет чуть выше, то можно попробовать сделать локальный вариант сайта, чтобы смотреть изменения через браузер прямо на своём компьютере. Работать с упрощённой версией Авиабазы на локальном сервере. Что-то типа того же Денвера.
— Для кого-то, как писал выше, будет минусом открытость информации. Увы, она будет у меня открытой в любом варианте, даже если буду делать всё один
— Есть небольшой минус ещё в вопросе нарушения чужих авторских прав. Система контроля версий хранит все версии, в том числе удалённые файлы. И если кто-то потребует удалить фото, нарушающее его права, то с сайта убрать его легко, а вот из репозиториев — потребует серьёзного вмешательства (очевидно, моего
)
Ну что, есть желающие поколупаться?