Comments 48
Кто такие эти компании «Macintosh» и «Motif»? Насколько я помню, первая называется Apple, а вторая просто не компания.
ZUI выглядит вполне годно
Рекомендую попробовать поиграться, ощущения очень свежие и нестандартные)
eaglemode.sourceforge.net
- Помечаешь как source, зажимая Ctrl, различные файлы (можно выбирать из разных папок!) и папки, которые хочешь перенести
- Помечаешь папку куда это всё надо перенести как target
- Вызываешь команду копирования/перемещения, и в target папке оказывается всё что ты выбрал как source

Ну как-как, сделать zoom и открыть FAR.
Выглядит эффектно, но непрактично и громоздко.
И вообще, когда ж от древовидной файловой системы начнут массово переходить к другим видам классификации? По тегам, группам, и т.п.
Пример — сейчас в macOS я могу поискать книги в PDF/epub где встречается слово «компилятор» или слова «реактор» И «гиперпривод». Но при этом для epub пришлось ставить спецмодуль, c PDF это работает только при наличии текстового слоя (а с fb2/djvu не работает вообще, как и с якобы-защищенными от пользователя книгами) но я не могу попросить Splotlight найти все книги по программированию мобильных приложений если не пропишу руками теги хотя казалось бы — что — нельзя создать правило как по словам в тексте и метаданным (если в файле их нет — подгрузить откуда где они есть) определить что это книга про разработку мобильных приложений, актуальная на данный момент? Или например что это фантастика про попаданца в магический мир? Пусть не точно но хоть как то. Правила то общие — создать один раз и распространять.
С Windows все еще хуже — инфраструктура для индексации есть, софт есть, даже тормоза есть -:) а реально использовать затруднительно.
С мобильными системами все еще хуже, даже просто поиск — большая проблема а правила — да никак.
С Windows все еще хуже — инфраструктура для индексации есть, софт есть, даже тормоза есть -:) а реально использовать затруднительно.
Просто надо использовать правильный софт.
Есть такой Archivarius3000 например. Найдет и в fb2 и в пдф с текстовым слоем и в epub и если всё это в архив завернуто, и в поиск с условиями может.
Вот с djvu и pdf без текстовых слоев не справится, да — так с этим до появления реального ии вообще никто не.
Автоматически вешать теги Archivarius3000 не может насколько я помню.
С djvu и pdf без текстового слоя — а почему собственно? индексатор ведь может и OCR делать (если ресурсов мало чтобы это в реальном времени делать — можно запускать ночью например), ну да (собственно если рассматривать именно конкретный софт — Evernote умеет искать по тексту в картинках, сами делают OCR).
В идеале система (не отдельное приложение а именно часть ОС, хотя бы с точки зрения пользователя) должна уметь и например понимать как найти «фотографии меня и моего брата но без других людей вчера в парке, снятые с моего galaxy note».
С djvu и pdf — а почему собственно?
Ну… пожалуй, да, погорячился немного.
С другой стороны — я в общем предпочту точно знать что по этим вот картинкам оно не ищет, чем надеяться на то что оно их корректно отOCRит.
Да, это было бы неплохо, но даже FineReader, аналога которого от разработчиков A3000 ожидать не стоит, подобные вещи, особенно в плохом качестве, сканит через пень-колоду и их приходится вычитывать глазками. То есть всё равно в итоге копаться самому.
но я не могу попросить Splotlight найти все книги по программированию мобильных приложений если не пропишу руками теги
Скорее всего, не было запроса к разработчикам ПО. Т.е. такие требования уже похожи на продвинутого пользователя, которых очень мало. А разработчики ориентируются на неквалифицированные массы.
Так-то можно было бы и нейросети подключить, чтобы они смотрели внутрь PDF/DJVU и, если там нет распознанного текста, пытались бы по сканам определить тематику.
Вопрос в том, кто это всё напишет.
инфраструктура для индексации есть, софт есть, даже тормоза есть
Ну и хочется, чтобы не было тормозов. Наверняка это можно оптимизировать.
Это все очень спорные вопросы, хотя тема интересная.
ВЫ готовы ставить на каждый файл тег или кидать каждый файл в группу?
Это должна делать система, автоматически (с возможностью подстроить работу этой автоматики). И не только «файлы» — просмотренные страницы хабра например тоже должны быть в истории для поиска(как отдельный тип объекта). В идеале.
А как вы представляете себе запуск старого ПО, заточенного под древовидную, на новой?
В каком плане? Обычных приложений кто не знает про новую и которым надо просто открыть файл? FUSE и пусть открывают (либо даже системный диалог открытия файла поправленый). В конце концов старую систему никто не отменяет. API работы с файлами менять смысла нет. Правда может всплыть ограничение на длину пути к файлу и то что например «копирование каталога и вложенных в него подкаталогов и файлов» старым ПО может зациклится (но это можно и существующими средствами сделать если soft/hardlink'ов наплодить), ну и операция эта будет иметь немного другой смысл.
Как хранить такое — если у нас УЖЕ есть нормально работающий системный движок поиск — то надо просто где то хранить наборы фильтров для автоматического тегирования и возможно — кеш результатов. Не так много место по сравнению с индексом. Хранить же индекс не особая проблема. macOS ж хранит (там spotlight по умолчанию включен уже много лет.
Это можно параллельно держать.
Например, для системных файлов и конфигов — дерево. Для личных файлов — дерево+теги.
Можно соответсвенно открыть «рабочее» и «программирование» и вперед: мгновенно получите выборку файлов только с такими тегами.
У меня огромная библиотека фото и видео (несколько терабайт), некоторые теги автоматически скриптами из Питона добавляю.
В командной строке теги работают?
github.com/jdberry/tag
Для установки:
brew install tag
Примерно так:
import plistlib
import xattr
xattr_tags = 'com.apple.metadata:_kMDItemUserTags'
data = xattr.getxattr(file, xattr_tags)
tags = plistlib.loads(data)
Например, в Linux (и других UNIX'ах) никогда расширение файла не имело особого значения, зато есть команда file
, которая по содержимому определяет типа и формат файла (JPEG/PNG/PDF/text/markdown/… определяет десятки разных) — вот уже первая классификация готова.
Ставить тег может сама ОС при создании файла. Либо libc.
Или как вы организуете эффективное использование дискового пространства
Никаких проблем не вижу. Начиная с того, что уже сейчас в файловых системах есть хардлинки (даже в NTFS) и расширенные аттрибуты. Если взять за основу идеи ZFS, то там уже все абстракции есть для реализации. Ну понятно, что придётся переписывать с нуля, т.к. у ZFS лицензия кривая.
запуск старого ПО, заточенного под древовидную, на новой
Например, когда к одному файлу ведёт несколько разных путей, типа:
/tags/:image/:png/:all/my_summer_2056.jpg
/tags/:image/:png/:2056/my_summer_2056.jpg
/tags/:image/:png/:(img.height > 1000)/my_summer_2056.jpg
/tags/:image/:(img.tone like blue)/my_summer_2056.jpg
/tags/:family/my_summer_2056.jpg
т.е. я сейчас «от балды» придумал какой-то язык запросов, который можно в виде древовидной структуры каталогов показывать. Можно даже какие-то частые запросы сохранять и они будут в каталоге /tags
видны как подкаталоги.
Думаю, уже до меня такие штуки придуманы. Просто они, скорее всего, реализуются либо через 100500 симлинков, либо через FUSE (файловая система на user level), всё это громоздко и медленно.
Было бы круто «из коробки» такое иметь.
А этому будет сильно мешать полное отсутствие спроса на эффективные интерфейсы. Судя по ужасающей ситуации везде, где есть хоть какой-то интерфейс, отличный от командной строки — десктопы, смартфоны, планшеты, телевизоры, автомобили и тому подобная бытовая техника — на интерфейс всем пофиг чуть более чем полностью.
Производителям удалось навязать пользователям стереотип «нам лучше знать что вам надо», увы.
Судя по ужасающей ситуации везде, где есть хоть какой-то интерфейс, отличный от командной строки — десктопы, смартфоны, планшеты, телевизоры, автомобили и тому подобная бытовая техника — на интерфейс всем пофиг чуть более чем полностью.
Считаю всяких "умных помошников" в телефонах развитием CLI-подобных интерфейсов. Только теперь команды можно вводить ещё и голосом, а сами команды могут быть нечёткими.
Я ранее уже встречал аналоги подобной системы, но вы, наверно, уже все их давно рассмотрели. Поэтому пропущу часть, где я скидываю ссылки на аналоги, и сразу спрошу — почему именно свою реализацию делаете?
Это open source?
- alternativeto.net/software/tabbles — тут есть даже автоматическая разметка файлов тегами на основании содержимого
- alternativeto.net/software/tag2find
Но они только для Windows :c
Я просто спросил про open source к тому, что вы упомянули о нехватке ресурсов на разработку. Выглядит у вас приложение довольно интересным, и мне кажется, что кто-то мог бы подключиться.
да возможно я пойду в сторону опен сорс.
собственно я написал потому что это не описаный вами подход. например zoomui это фактически иерархические папки реализованные иначе. возможность добавить один объект в несколько папок (добавить несколько тегов) является очень мощным средством организации.
Основная идея, которую я хотел передать в том, что нам нужно экспериментировать и пробовать новое. Вы как раз занимаетесь именно этим, за что я вам очень благодарен.
Система тегирования файлов мне кажется очень удобной — если вы не против, то я бы добавил её в список расширений WIMP в статье.
"Вместо того, чтобы передавать интерфейсу команды высокого уровня («Компьютер, скопируй все файлы из папки X, которые весят не больше 1Мб и были изменены за последнюю неделю»), пользователь должен выполнять их сам на низком уровне (пользователь обходит всю иерархию папок в папке X, и выбирает нужные файлы)."
find -type f -mtime -7 -size -1M -exec cp '{}' \;
Только вот кривая обучения у него довольно крутая для обычного пользователя. Я вот надеюсь на то, что обработка естественного языка разовьётся когда-то до такой степени, когда пользователи смогут вместо
find -type f -mtime -7 -size -1M -exec cp '{}' \;
сказать
«Компьютер, скопируй все файлы из папки X, которые весят не больше 1Мб и были изменены за последнюю неделю»
и компьютер сделает то же самое.
…
Чем то напоминает общение с секретарем:
«Ирина, принесите правки по текущему делу» (Ирина знает что за дело, где лежит, где правки по нему итд).
А если не знает (как и наш голосовой интерфейс) то поручение превращается в что то вроде: «Ирина, принесите папку с надписью ООО Техпромсельмашхоз, не перепутайте с ООО Техфирмхозмашпос, в шкафу слева от двери, полка пятая снизу, папка в дальнем ряду, пятнадцатая слева, убедитесь, что там лежат документы с датой не позднее 5 рабочих дней с учетом праздников»
А если не знает (как и наш голосовой интерфейс)...
Да, сейчас я именно так и представляю взаимодействие с голосовым UI.
Поэтому я сказал «обработка естественного языка разовьётся когда-то до такой степени» — под «такой степенью» я имею ввиду этап развития голосового UI, когда он сможет помнить контекст разговора и прошлые диалоги, понимать переносное значение слов и так далее.
Общаясь с ним, мы не должны чувствовать что передаём голосовые команды, а должны чувствовать что общаемся с «Ириной» :)
У голосового управления принципиально неразрешима проблема отсутствия обратной связи, никогда нельзя быть уверенным, что компьютер понял тебя правильно.
Переходим в папку X
Alt+Cmd+f —> фокус на окно с поиском по текущей папке. Можно в него просто нажать мышкой.
Далее жмем "+" и добавляем первое условие «Последняя дата изменения». Выбираем дни и 5
Жмем еще раз "+". Выбираем «Размер». Ставим 1 и мегабайт.
Престо:







Кстати, если нажать на «Сохранить» то этот поиск можно добавить в боковое меню Finder и потом возвращаться к нему мгновенно.
Что такое WIMP-интерфейс и почему он до сих пор с нами?