На фирме, в которой работал, использовали 1С. Модернизацией и обслуживанием конфигурации занималась 3-я фирма. Со временем, чтобы не ждать выполнения работ со стороны 3й фирмы, стал внедрять какие-то изменения самостоятельно. Так, постепенно, разобрался в конфигурировании этого приложения.
Когда-то очень давно писал похожий файловый менеджер для сортировки своих фотогафий, может, кому-то будет полезен. Больше всего он похож на TagSpaces
Способ хранения тегов: файловая система
Группировка тегов: есть
Иерархия тегов: есть
Алиасы тегов: отсуствуют
Автоматизация тегов: отсуствует
Логические операции с тегами при поиске: И, ИЛИ
История поиска тегов: нет
Расшаривание тегов по сети: отсутствует
Способ хранения файлов: файловая система
Виртуальные папки: отсутствуют
Динамические папки: отсутствуют
Группировка файлов: отсутствует
Система рейтинга файлов: частично (5 звезд в виде обычных тегов)
Выявление файлов-дубликатов: отсутствует
Встроенный просмотр файлов: частично
Встроенная корзина: отсутствует
Заметки для файлов: частично
Фиксация URL-источников файлов: отсутствует
Потеря метаданных при нештатном перемещении файлов: нет (метаданные хранятся в имени файла / в побочном файле)
Киллер-фичи: Настройка шаблона хранения тегов, дерево тегов хранится в отдельном файле
Это очень актуальный вопрос. Такая проблема ярко выражена в Django Admin, почему я и отказался от его использования для ряда задач. Разрабатывая фреймворк, я старался минимизировать её влияние.
Как я писал в статье, фреймворк предоставляет возможность выбора: разрабатывать интерфейс либо его часть быстрее (но менее гибко) либо функциональнее (но медленней).
В фреймворке предусмотрена разработка интерфейса либо его части на нескольких уровнях. На каждом последующем уровне увеличивается время разработки, но добавляется гибкость:
Генерация всего интерфейса автоматически.
Генерация отдельных частей интерфейса автоматически.
Полная ручная кастомизация интерфейса или его части.
Если в Django для кастомизации используется подход "внедряемся и меняем", то у меня используется подход "собираем заново из кирпичиков", причем кирпичиком может быть как самописная, так и встроенная часть. Также для решения проблемы с порогом входа применяются принципы разработки приложений на Angular. Как итог, даже при полной кастомизации интерфейса технически внедрить свои элементы — задача с низким порогом входа (хотя от него, безусловно, никуда не деться).
Да, действительно, требование веб-интерфейса присутствовало (добавил в статью).
Qt не рассматривался как по этой причине, так и потому, что он, вроде, не позволяет автоматически генерировать интерфейс на основании моделей.
Возьмем из статьи класс Hero. Допустим, мы хотим иметь возможность сохранять героя в базе данных на сервере. Добавим герою метод save(), который для сохранения героя использует Angular-сервис Http. Каким образом должен резолвится этот (Http) сервис в классе Hero, чтобы была возможность использовать следующий подход?
var hero = new Hero();
hero.name = 'Windstorm';
hero.save();
Я к тому, что tagfs — отличная идея, но я бы ее развивал в сторону, всё же, сохранения тегов в имени файла, а MySql бы использовал только для индексации и быстрого поиска файлов. Тогда бы мы получили и весь имеющийся сейчас функционал и переносимость файлов между разными носителями. Плюс ко всему я не очень доверяю отдельному хранению тегов и файлов, когда-нибудь что-то может пойти не так и весь труд по присвоению тегов файлам окажется напрасным, ведь даже целостность обыкновенных файловых систем, порой, нарушается.
Не совсем.
Допустим, у меня есть отсортированые по тегам, при помощи Tagsistant, файлы. Мне необходимо кому-то передать некоторые из этих файлов на систему ntfs. Другой человек, как я понимаю, никак не сможет видеть теги, присвоенные файлам.
В программе, что я писал, теги сохраняются в самом имени файла, поэтому, если я их копирую между разными файловыми системами/устройствами, сохраняется возможность поиска файлов по шаблону без установки дополнительного ПО.
Вопрос еще в том, как сохранять теги при переносе файлов между разными файловыми системами.
Давно была мысль тегировать фотографии иерархиеческими тегами с сохранением тегов в имени файла. Т.к. ничего готового не нашел, написал прогу phototagger.org.
Использовать такой подход для индексации сайта Google-ом — согласен. С Яндекс-ом — сложнее. Чтобы не повторяться, оставлю ссылку на мой вопрос на toster-е.
Нет, я не про Key, а про ключи для связи Виджетов, Конфигураций полей, Значений. Сделал опечатку — часть формы не работает.
Недостаток предложенного подхода — повсеместное использование строковых ключей.
Качество моего сна сильно улучшилось, когда я стал спать на кровати один.
На фирме, в которой работал, использовали 1С. Модернизацией и обслуживанием конфигурации занималась 3-я фирма. Со временем, чтобы не ждать выполнения работ со стороны 3й фирмы, стал внедрять какие-то изменения самостоятельно. Так, постепенно, разобрался в конфигурировании этого приложения.
Способ хранения тегов: файловая система
Группировка тегов: есть
Иерархия тегов: есть
Алиасы тегов: отсуствуют
Автоматизация тегов: отсуствует
Логические операции с тегами при поиске: И, ИЛИ
История поиска тегов: нет
Расшаривание тегов по сети: отсутствует
Способ хранения файлов: файловая система
Виртуальные папки: отсутствуют
Динамические папки: отсутствуют
Группировка файлов: отсутствует
Система рейтинга файлов: частично (5 звезд в виде обычных тегов)
Выявление файлов-дубликатов: отсутствует
Встроенный просмотр файлов: частично
Встроенная корзина: отсутствует
Заметки для файлов: частично
Фиксация URL-источников файлов: отсутствует
Потеря метаданных при нештатном перемещении файлов: нет (метаданные хранятся в имени файла / в побочном файле)
Киллер-фичи: Настройка шаблона хранения тегов, дерево тегов хранится в отдельном файле
Ссылка: Phototagger
Это очень актуальный вопрос. Такая проблема ярко выражена в Django Admin, почему я и отказался от его использования для ряда задач. Разрабатывая фреймворк, я старался минимизировать её влияние.
Как я писал в статье, фреймворк предоставляет возможность выбора: разрабатывать интерфейс либо его часть быстрее (но менее гибко) либо функциональнее (но медленней).
В фреймворке предусмотрена разработка интерфейса либо его части на нескольких уровнях. На каждом последующем уровне увеличивается время разработки, но добавляется гибкость:
Поэтому ситуация, когда среди автоматически сгенерированных элементов нужно разместить на форме нестандартные элементы или элементы в произвольном порядке, решается давольно просто. Пример такой кастомизации: https://github.com/astoniocom/astonio-shop/tree/master/src/app/flow-record-window
Если в Django для кастомизации используется подход "внедряемся и меняем", то у меня используется подход "собираем заново из кирпичиков", причем кирпичиком может быть как самописная, так и встроенная часть. Также для решения проблемы с порогом входа применяются принципы разработки приложений на Angular. Как итог, даже при полной кастомизации интерфейса технически внедрить свои элементы — задача с низким порогом входа (хотя от него, безусловно, никуда не деться).
Да, действительно, требование веб-интерфейса присутствовало (добавил в статью).
Qt не рассматривался как по этой причине, так и потому, что он, вроде, не позволяет автоматически генерировать интерфейс на основании моделей.
Извините, прикрепилось отдельной веткой ниже.
Имеете в виду сделать сервис типа HeroSaver? Писать что-то вроде:
Да, но, допустим нужно реализовать поведение, например, как в Django.
Каким образом правильно было бы получить сервис Http в объекте класса Hero, чтобы реализовать функционал save? Как пример реализации:
Возьмем из статьи класс Hero. Допустим, мы хотим иметь возможность сохранять героя в базе данных на сервере. Добавим герою метод save(), который для сохранения героя использует Angular-сервис Http. Каким образом должен резолвится этот (Http) сервис в классе Hero, чтобы была возможность использовать следующий подход?
Допустим, у меня есть отсортированые по тегам, при помощи Tagsistant, файлы. Мне необходимо кому-то передать некоторые из этих файлов на систему ntfs. Другой человек, как я понимаю, никак не сможет видеть теги, присвоенные файлам.
В программе, что я писал, теги сохраняются в самом имени файла, поэтому, если я их копирую между разными файловыми системами/устройствами, сохраняется возможность поиска файлов по шаблону без установки дополнительного ПО.
Давно была мысль тегировать фотографии иерархиеческими тегами с сохранением тегов в имени файла. Т.к. ничего готового не нашел, написал прогу phototagger.org.