main

Веб-морда к тэгам

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

Предпосылка вторая: как проще всего написать переносимый гуй? Сделать вебморду! Шинды, слава б-гу, у меня уже нет, а вот андроиды есть.

В результате - был накидан прототип интерфейса для end-user'а, а данном случае - меня.

Дизайн был честно содран у cups'а, но только внешний вид, та страшные таблицы что внутри я брать не стал (вместо этого написав свои собственные страшные таблицы).

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

Ладно, пойдём длинным путём. Взял перл, взял html фреймворк на нём, и запилил вторую версию, в REST'ом и rout'ами.

Ключевые отличия от phpшной:

  • self-contained. В фреймворке аж 2 встроенных веб-сервера, что позволяет вообще отказаться от апача/nginx'а/whatever и их настройки. Запустил - заработало.
  • routes. Без анальных расширителей или server-side rewrites от php вы их не получите. Это только внешние проявления, но всёж-таки сравните: /index.php?page=search&terms=bla-bla&page=2 vs /search/bla-bla/2
  • Минимизация кода. Собственно всю механику веба можно скинуть на фреймворк. И писать, сцуко, само приложение, а не сначала нужный фреймворк, а на то что осталось из сил - приложение. Ну и я не настолько крут, чтобы за минимальное время написать приличный и безопасный фреймворк на пыхе. Если это вообще возможно.
  • В публичной директории не лежит вообще ничего кроме статики. Инклюды/выполнение загруженного на сервер кода, что дело обычное для php, здесь значительно затруднены.

В сухом остатке, сейчас работает всё необходимое: листинг, предпросмотр, поиск и управление тэгами, и допиливается остальное. Публиковать пока не планирую (до аудита), т.к. писалось для себя и быстро, но кодом поделюсь по запросу.

Скрины

скрин