Aug. 15th, 2023

tengu_crow: (Default)
Если имена неправильны, то слова не имеют под собой оснований. Если слова не имеют под собой оснований, то дела не могут осуществляться

– Лунь Юй

Файловая система все равно остается основой хранения - особенно после пришествия Syncthing, которая позволяет держать одинаковое дерево папок и файлов на совсем разных сущностях (десктоп-ноутбук-телефон-планшет).

Раскладывая файлы по папкам постепенно пришел к пониманию, что папка называется либо по категории (~/book/fizo/йога), либо по автору (~/book/fizo/Гилмор Гарт и Лидьярд Артур/), либо по категории и автору внутри нее (~/book/fizo/10_бег/Гилмор Гарт и Лидьярд Артур/).

Когда-то у кого-то подсмотрел лайфхак с нумерацией папок BASIC-стайл (10_бег, 20_плавание и т.д.). В старом бейсике строки кода нумеровались с интервалом в 10 (10, 20, 30…), чтобы можно было между ними при необходимости воткнуть новые строки. Поэтому я для себя эту систему так и назвал. С одной стороны такая система именования папок выглядела рабочей - удобно, есть возможность задавать приоритетность папок и т.д. и т.п. С другой по мере увеличения числа папок все почему-то переставало работать и начинало захламляться.

Похоже, в моем случае вопрос упирается в то, насколько удобно искать в такой системе нужное. Если папки расположены по алфавиту - мозг использует стратегию, похожую на алгоритм бинарного поиска. “Гилмор - значит ближе к началу, Толкачев - ближе к концу” и остальное происходит автоматом - даже если список папок занимает несколько экранов (что редко, но бывает). Мы все умеем эффективно искать “по словарю”, используя алфавитный порядок.

BASIC-система ломает этот порядок. В теории она должна была бы работать, как система, выносящая наверх наиболее часто используемые папки и делающая их привычными для поиска (про бег? ага… ~/book/fizo/10_бег).

На практике получается, что там где я часто ищу нужное, основные часто используемые категории я более или менее помню (и перехожу сразу по ним), но как только появляется необходимость поискать в не очень часто используемой папке (а значит я не помню номерные категории в ней наизусть), то приходится каждый раз просматривать сначала номерные категории в ней (10_спринт, 20_травмы, 30_аэробные_системы…), а потом уже искать по алфавиту. Таким образом в малознакомых местах иерархии номерные категории ломают естественный порядок поиска и мешают. И чем их больше - тем больше они мешают.

Еще один интересный эффект, который я заметил - мозг ломается на гибридной алфавитно-цифровой системе. То есть требуется некоторое усилие, чтобы перейти от просмотра папок названных в стиле “номер_категория” к папкам названным “категория”. Кроме того, сами по себе алфавитно-цифровые категории распознаются мозгом с большим усилием, чем чисто алфавитные или чисто цифровые.

Если “номерных категорий” (будем называть их так) немного - скажем семь плюс-минус две, то система должна работать достаточно эффективно. Как только их становится много и они начинают попадаться в разных местах - система сбоит и мешает.

Еще один негативный эффект “номерных категорий” - усложнение добавления новых категорий и пересортировки старых. Добавляя новую категорию каждый раз приходится отвечать для себя сразу на несколько вопросов. Присвоить приоритет или оставить как есть (33_python или просто python?). Нет ли уже такой категории - python? 22_python44_python… - снова приходится пересматривать все, что лежит по номерам. Если дубликата нет и категория нумерная - на какое место поставить ее в номерном списке? А еще нужно бороться с “эффектом новизны” - все свежепришедшие категории кажутся важными и требуют номера, причем максимально приоритетного.

Пересортировка тоже не сулит ничего хорошего. Если вести все по системе BASIC десятков быстро перестает хватать, кроме того список типа: 10_спринт, 15_марафон, 17_разминка, 20_травмы, 25_растяжения, 30_аэробные_системы начинает выглядеть откровенно уродливо.

В текстовом аутлайне порядок пунктов можно сделать простым перетаскиванием или копипастом, то при работе с файловой системой приходится время от времени все перенумеровывать, что довольно трудоемко. Частично вопрос решается использованием vidir или чего-то в этом роде, но все равно все неудобно.

И это не говоря о том, что при перенумерации начинает “плыть” иерархия - вчера марафон был 15_марафон, сегодня он стал 20_марафон и так далее. Становится сложным привязываться к путям и держать закладки.

Эти неудобства постепенно накапливаются до какой-то точки, после чего система начинает стремительно захламляться. Все новые категории попадают в разряд “новые - значит важные”. Значит нужен номер. Значит нужен номер повыше. И т.д. и т.п. Просматривать это все становится тяжело. Требуются трехзначные номера. Хаос нарастает, читабельность и удобство пользования снижается.

Очевидно стоит отказаться от номерных категорий по возможности совсем или максимально ограничить их использование. Если таких категорий в каждой папке может быть от 5 до 9 - значит не нужно двузначных номеров. Можно обойтись одной цифрой (1_бег) - просто, читабельно и самоограничивает разрастание номерных категорий. Но даже этого лучше не делать, чтобы не создавать самому себе подсознательный ажиотаж.

Отдельный случай - папки, которые хранят архивные данные (фотографии, файлы за какой-то семестр вуза…) - они нумеруются в лексикографическом порядке, поскольку так удобнее искать по дате (2023/2023-08/ - фотографии августа 2023-го года или, скажем вуз/2023-1/ и вуз/2023-2/ - первый и второй семестры 2023-го года). Эта система себя очень хорошо зарекомендовала, мозг не ломает чисто цифровая датировка, нет вопроса расстановки приоритетов и так далее.

Мысль пошла дальше. Мне нравится сортировка методом деления хаоса - поэтому раньше каждая папка системы хранения выглядела как набор папок в котором сначала шли номерные категории, потом остальные папки, потом россыпью файлы, требующие сортировки и распределения по категориям. Перечитывая Архангельского, я в какой-то момент сообразил, что весь хаос внутри каждой из категорий не обязательно держать россыпью. Можно создать отдельную папку, назвать ее 0_место_хаоса и сложить туда все, что требует просмотра, оценки, классификации и распределения. После чего время от времени просматривать ее на предмет свежих идей и расчистки от неактуальной информации.

Следующий момент - я начинал текст тем, что обычно папки системы хранения названы либо по тематической категории, либо по фамилиям авторов. Я понял, что категориальные папки я всего нумеровал в том числе для того, чтобы они не смешивались с авторскими папками. Если убрать систему нумерации - может получиться каша:


  • Атлетика

  • Бег

  • Бирюков

  • Васильев

  • Велосипед

  • Вишневский

  • Восстановление


Но не обязательно нумеровать категории подряд - можно задать им какой-то один номер всем - и они разделятся с авторскими папками автоматически


  • 0_место_хаоса

  • 1_Атлетика

  • 1_Бег

  • 1_Велосипед

  • 1_Восстановление

  • Бирюков

  • Васильев

  • Вишневский


И даже номер задавать не обязательно - можно просто ставить какой-нибудь спецсимвол - вполне сойдет подчеркивание.


  • 0_место_хаоса

  • _Атлетика

  • _Бег

  • _Велосипед

  • _Восстановление

  • Бирюков

  • Васильев

  • Вишневский


И вот тут я уперся в технический момент. На телефоне Ghost commander понимал такую систему сортировки, а вот на десктопных linux-ах Thunar и прочие файловые менеджеры отказывались понимать подчеркивание, как отдельный элемент сортировки. Получалось что-то вроде:


  • _Атлетика

  • _Бег

  • Бирюков

  • Васильев

  • _Велосипед

  • Вишневский

  • _Восстановление


Я это заборол. И тут начинается техническая часть, которая (предположу) будет интересна только линуксоидам :)

June 2025

S M T W T F S
123456 7
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 1st, 2025 04:21 am
Powered by Dreamwidth Studios