13 521
правка
Изменения
Массовая правка: замена Категория:Разработка на Категория:Архив, замена Category:Разработка на Категория:Архив
[[Vitaphoto]] — система управления фотогалереями, обладающая некоторыми уникальными отличительными особенностями, самая главная из которых — заливка фотографий в галерею не через веб-интерфейс, а ''обычным копированием файла в заданную директорию на сервере''. Т.е.То есть, ФС-ориентированность.
На данной странице вы можете узнать об истории и преимуществах системы Vitaphoto над прочими аналогичными. Среди них — удобство использования, гибкость, безопасность и возможность управления множеством галерей на одном сервере.
Посмотреть на [[Vitaphoto]] '''V3 / 1.4''' в лице моей фотогалереи можно по следующей ссылке: [http://vmx.yourcmc.ru/vitaphoto vitaphotov3 http://vmx.yourcmc.ru/vitaphotovitaphotov3].Гламурная… Ух!
Старая версия (1.3 / V2) находится по адресу [http://vmx.yourcmc.ru/vitaphoto-legacy http://vmx.yourcmc.ru/vitaphoto-legacy]. Посмотреть исходные коды [[Vitaphoto]] и выросшего из [[Vitaphoto]] фреймворка [[Sway Solstice]] можно здесь: [{{SVN|vitaphoto/headsolstice/lib-vitaphoto}} (oldV3) lib-vitaphoto], [{{SVN|vitaphoto/headsolstice/lib-sway}} (oldV3) lib-swaySolstice] . Исходники старой версии: [{{SVN|vitaphoto/branch/solsticehead/lib-vitaphoto}} (unstablelegacy) lib-vitaphoto], [{{SVN|vitaphoto/branch/solsticehead/lib-sway}} (unstablelegacy) lib-sway Solstice].
== История создания [[Vitaphoto]] ==
* некоторые сервисы стараются даже запретить выкладывать фотографии в блог без вставки ссылки на сам сервис.
И наоборот, на преимущества вроде кластеризатора фотографий (Flickr), или возможности «отправить ссылку на этот альбом» (Picasa), или возможности онлайн-заказа печати фото (ФотоФайл, НетПринт) мне откровенно наплевать. Иногда, возможно, и было бы интересно поиграться, но не более того. «Социальные сети… Облачность… Интеграция с тем… Интеграция с этим… Интеграция с интеграцией… Теперь другу можно отправить фотку одним кликом сидя в туалете, но нельзя выключить компьютер!» (лор).
Возможно, вы и сами уже прочувствовали на себе некоторые из этих недостатков. Обо мне и говорить нечего, меня они просто достали :-)
Потому я и создал [[Vitaphoto]]. Преимущества [[Vitaphoto]] с моей точки зрения:
* добавление Добавление фотографий и альбомов видеороликов представляет собой обычное копирование файлов, которое можно осуществлять по FTP и в любых объёмах, пока не закончится место на диске. Все скопированные фотографии добавляются в базу данных автоматически. Кстати, это будет легко и для непродвинутых пользователей, ибо даже виндовый Проводник может работать с FTP серверами;.* все метаданные Название и теги фотографии (название, теги) сохраняются в именах файлов, при этом, благодаря созданию символических ссылок на файлы, отсутствуют проблемы при запросе файлов с именами в русских кодировках;время создания извлекается из EXIF-метаданных и метаданных видео.* резервное Резервное копирование просто до безумия — достаточно зайти на сервер по FTP и слить к себе все файлы;.* точно Точно так же просто дать доступ на скачивание всех фотографий кому-либо, заведя отдельную учётную запись FTP;.* и И точно так же просто дать доступ на добавление фотографий кому-либо, не ставя под угрозу собственную безопасность — необходимо завести отдельную учётную запись FTP для подкаталога домашней директории фотогалереи, а в название самой директории включить теги, которыми будет автоматически помечено всё содержимое, и положить в него недоступный на запись через FTP файл «dirinfo» с заданием (по желанию) название кодировки имён файлов и/или автоматически проставляемых на все фотографии подкаталога тегов;* фотографии Фотографии масштабируются по алгоритму Lanczos с использованием программы ImageMagick — это означает качество;* система рассчитана на любое количество галерейImageMagick / GraphicsMagick — иными словами, управляемых одним приложением;* в описании альбома можно пользоваться простым wikiобразным синтаксисом для форматирования текста;«качественные миниатюры»!* Лично мне гораздо удобнее держать мою фотогалерею расположена расположенной на моём сайтесвоём сервере, а не на некотором неизвестном стороннем фотохостинге.* Стабильное по датам разбиение всей фотогалереи на страницы, идентификация фотографий по именам, гламурненький дизайн, несколько размеров фото на выбор.
Система управления фотогалереями [[Vitaphoto]] написана на языке [[Perl]] 5 с использованием 5 и может запускаться в разных конфигурациях — как простой отдельный HTTP-сервер, под CGI/FastCGI, под управлением запатченного модуля [http://nginx.ru/ nginx] ngx_http_perl_module и модулей Apache 2 .x [[http://perl.apache.org/ mod_perl]] 2.x] или Apache 1.x [http://perl.apache.org/docs/1.0/guide/index.html mod_perl 1.x]. Я старался создать простую и удобную систему со вменяемым исходным кодом. Вменяемым, кстати, исходный код стал не сразу, а только в версии 1.2, написанной в районе конца февраля — начале марта 2008 года. <s>И то не сталА может, только в 1.</s> 4 (2010 год). :-) Кроме того, мне очень близки идеи Лэрри Уолла, в частности TMTOWTDI (There’s More Than One Way To Do It — «Это можно сделать по-разному»), а также «приятно быть важным, но куда важнее быть приятным». Возможно, они тоже наложили свой отпечаток на систему.
<tab sep=tab class=simpletable head=top>
Описания альбомов и выражения в файлах. {{handy|no}} Брать их из статей [[{{SITENAME}}]].
Статические страницы лежат отдельными HTML’ками. {{handy|no}} Брать их из статей [[{{SITENAME}}]].
… С другой стороны, это будет завязка на MediaWiki. {{handy|no}} Хранить все «завязки» в файлах или базе. Из MediaWiki просто экспорт. Причём тут даже никакой демон не нужен — из медиавики экспорт по таким же ссылкам в отдельную папочку, а дальше подключение шаблонизатором.
При скачивании фото название теряется. {{handy|no}} {{ok}} Не париться никакими симлинками и выводить ссылкой на сохранение полноразмерного изображения '''настоящее''' имя файла.Создаваемые кучи симлинков усложняют код. {{handy|no}} {{ok}} Пошли они в жопу, эти симлинки! Делать всё кодом, брать из базы и отдавать перенаправление на нужный файл.Все миниатюры хранятся в одном каталоге (direntry кончатся!) {{handy|no}} {{ok}} Хранить миниатюры во вложенных каталогах по '''n''' первым буквам хеша /scaled/WxH/a/a5/a54/a54xxxxx…xxx.jpgВозможность сменить кодировку имён файлов для подпапки. {{handy}} {{ok}}Возможность автоматического теггирования файлов в подпапке. {{handy}} {{ok}}Необходимость задавать эти 2 свойства в файле <tt>dirinfo</tt>. {{handy|no}} {{ok}} Брать их из имени папки: «Имя_Папки (АвтоТеги, KOI8-R)».Невозможность жестоко ликвидировать файл из базы — при удалении только ставится флаг. {{handy|no}} {{ok}} Учитывая, что симлинки — в жопу, флаг «удалён» — тоже в жопу. Просто удалять и всё…… Но тогда придётся заново масштабировать переименованные файлы. {{handy|no}} {{ok}} Ждать окончания очередной цепочки событий, и удалять только в её конце, так как при переименовании гарантированно придёт два события, а не одно.'''Невозможность скачать сразу набор файлов {{handy|no}} Можно предоставить интерфейс для скачивания сразу тучи файлов, НО по паролю!<big/tab> ==== Веб-морда:==== </bigtab sep=tab class=simpletable head=top>''' V2 Удобно? А как удобно?Независимые ссылки на фотографии по началу имени до первой точки. {{handy}} {{ok}}Ссылки на альбомы содержат синтетический ключ и «нечеловекопонятны». {{handy|no}} {{ok}} Убрать сущность «альбом» вообще к чёртовой матери. Оставить теги + наборы тегов. Как можно меньше синтетических ключейСкажи синтетическим ключам «нет»! '''[[Vitaphoto: Ссылки]]'''.
Есть комменты. {{handy}}
… В них есть разметка-"виласипет" (самодельная), можно сказать её нет. {{handy|no}} Использовать Wiki-разметку, опять-таки, из MediaWiki.
… Комменты хранятся отдельно, сбоку, в базе. {{handy|no}} Неплохо бы как-то приспособить к этому страницы обсуждения [[{{SITENAME}}]].
Текстовые части дизайна выглядят очень грустно, «нетипографично». {{handy|no}} Тексты форматировать через [[{{SITENAME}}]].
Голосование («+» и «-» отдельно). {{handy}} {{ok}}Лог голосования хранится в базе. {{handy|no}} Хранить его в файле. Это будет и бэкап.{{ok}}Отдельная база пользователей, и нет регистрации. {{handy|no}} {{ok}} Авторизоваться по базе [[{{SITENAME}}]]. Для прозрачной глобальной аутентификации также можно создать расширение MediaWiki.Нет сортировки по дате, извлекаемой из EXIF. {{handy|no}} {{ok}} Добавить её.
Нет RSS-лент. {{handy|no}} Добавить их — на все альбомы, желательно также на обсуждения фотографий.
Нет выборки по дате. {{handy|no}} {{ok}} Добавить её. Как для отдельной фотографии, так и для множества.Нет ссылок на предыдущую/следующую страницу в альбоме. {{handy|no}} {{ok}} Добавить их, а текущие <nowiki>"<" и ">" переименовать в "<<" и ">>"</nowiki>.Есть «альбомы», нет «облаков тегов». {{handy|no}} {{ok}} Сделать удобную навигацию по тегам и вложенным тегам, про отдельные «альбомы» забыть: '''[[Vitaphoto: Облака тегов]]'''.Навигация в альбомах по страницам; при обновлении меняются ВСЕ страницы, так как разбиение — по числу фотографий. {{handy|no}} {{ok}} Следуя общей идеологии («как можно меньше синтетических ключей»«скажи синтетическим ключам НЕТ») — лучше по дате <font color="#a0a0a0">[и если внутри даты очень много фотографий — по времени?]</font>. В модном виде — такой скроллер, типа. Важный момент: в ссылке на диапазон дат (если на страницу влезают несколько дат) должна присутствовать минимальная из этих дат, чтобы при возможном добавлении новых дат на ту же страницу ссылка не менялась. Ещё важный момент: на главной странице чуть другой механизм выбора фотографий (не от начала по датам, а от конца по датам).
Статистика просмотров собирается, но не отображается. {{handy|no}} Отображать (по фотографии, по тегу)!
Размер миниатюр в альбомах фиксирован. {{handy|no}} {{ok}} Сделать кнопочки +/- для переключения размеров — «маленький», «средний», «большой».Некрасиво выглядят «вертикальные» фотографии в общем потоке… {{handy|no}} Эту проблему решать сложнее… Можно сделать любопытную штуку: JS-слайдер, регулирующий случайные сдвиги фотографий относительно изначальной схемы — расположения {{ok}} Просто располагать все фотографии в «плавающем» порядке с равными '''интервалами :) получится, что их как бы немножко раскидывает, и можно управлять степенью этого'''.Описания альбомов находятся где-то сильно в жопе, внизу. {{handy|no}} Несколько переделать дизайн — пусть баннер будет тянуться {{ok}} Переделать дизайн на всю ширинуфлоаты, центральная белая часть — в процентах от шириныописания альбомов минимизировать, слева '''только''' фотографии, справа описание альбома, потом список (список, а не облако!) тегов по убыванию популярности на страницеибо нет от них толку.
Есть диафильмы. {{handy}}
… Но миниатюры в них крупноваты и всего 3 фото. {{handy|no}} Показывать диафильм мельче и справа, а не сверху.
… Кнопки влево-вправо двигают диафильм, а не переключают фото. {{handy|no}} Добавить мелкие полупрозрачные кнопки по краям диафильма — они пусть двигают диафильм. Большие влево-вправо оставить вверху фото и пусть они ведут на другие фото.
</tab>
<tab sep=tab class=simpletable head=top>V2 Удобно? А как удобно?Код веб-приложения кривоват и содержит много дублирования. {{handy|no}} {{ok}} Перетащить на [[Sway Solstice]] + [[:Платформы_для_запуска_Perl_веб-приложений#HTTP::Server::Simple|HTTP::Server::Simple]] вместо Апача.Язык булевых запросов по тегам, реализованный в базе на PL/SQL + Sway::TagAlbum / Sway::TagEntry. {{handy|no}} {{ok}} Изврат кошмарный. Избавиться. Перетащить либо на софтовую реализацию, либо на join’ы и [[Funq]]. А вообще-то — просто убрать.Приложение не расширяемое. {{handy|no}} {{ok}} Добавить hook’ов на манер MediaWiki, так как MediaWiki доказывает, что подход работает. '''[[Vitaphoto: Hooks]]'''.Масса галерей в одной БД усложняет код. {{handy|no}} {{ok}} Для дополнительной галереи гораздо проще создавать дополнительную БД.</tab> == Реализовано в Vitaphoto 1.3 ===
Версия [[Vitaphoto]] 1.3 соответствует 6 сентября 2008 года. [{{SVN|vitaphoto/release/1.3}} Исходные коды 1.3], [{{SVN|vitaphoto/release/1.31}} исходные коды 1.31].
* Язык запросов по тегам, то есть, чтобы была позволена не только логическая операция «И», а также «ИЛИ» и «НЕ»; автоматическое вычисление вхождения альбома в альбом (используется приведение выражения к ДНФ);
** То есть, можно задавать логические выражения (в стандартном базисе :-D) над тегами. Это могут делать все на [http://vmx.yourcmc.ru/s/vitaphotolegacy-static/search.htm странице поиска]. Автоматическое вычисление вхождения подальбома в альбом (сравнение булевых функций, заданных формулами O_o);
* Голосование «за» и «против» фотографий, с возможностью привязки к комментариям;
* Онлайн-конфигурация своей фотогалереи (надо быть root’ом);
* Дальнейшие усовершенствования архитектуры кода (в первую очередь Web-приложения).
Версия [[Vitaphoto]] 1.2 соответствует 8 марта 2008 года. [{{SVN|vitaphoto/release/1.2}} Исходные коды].
* Ведение простой статистики в БД.
Версия [[Vitaphoto]] 1.1 соответствует 17 августа 2007 года. [{{SVN|vitaphoto/release/1.1}} Исходные коды].
* Чтение EXIF информации из фотографий.
Версия [[Vitaphoto]] 1.0 соответствует 19 июля 2007. [{{SVN|vitaphoto/release/1.0}} Исходные коды].
[[Категория:Sway]]
[[Категория:РазработкаАрхив]]