tengu_crow (
tengu_crow) wrote2009-01-08 01:04 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
Аффигительно Большой Текстовый Файл - 2
По просьбе сэра ollycat продолжаю зарисовки по поводу Аффигительно Большого Текстового файла.
Дисклеймер: то, что эта система удобна для меня не значит, что она удобна еще для кого-нибудь. Я бы рассматривал это не столько как целостную схему, сколько, как комплект удобных инструментов, которые могут быть так или иначе использованы для ведения заметок.
Дисклеймер2: у меня уже сложилась терминология и такой большой файл с заметками я часто называю "блогом". В принципе, по большому счету, это и есть блог. Но оффлайновый :)
Главный файл разбит так:
Схема сложилась из общих соображений - открывая файл всегда удобно видеть содержание и список БыстрыхСлов-закладок, а добавлять заметки удобнее всего с конца - тем более что любой редактор позволяет быстро прыгнуть в конец файла.
Верхнюю половину занимает структурированная часть. Там хранится все, что поддается структурированию: рецепты, телефоны, адреса, линки, мысли, конспекты, словарик с новыми для меня словами - всякими там "лацпортами", "вьетминями", "трабекулами" и "хуацяо", тренировочные программы, подсказки, читшиты и заметки по софту, виммерингу и питонству и прочее и прочее.
Есть простенький скрипт на Питоне, который "выкусывает" из общего блога свежие адреса-транспорт-задачи-конспекты. Все это богатство парсится с помощью makeztxt (он понимает мою структуру разделов и автоматом добавляет закладки на все заголовки) в .pdb-файл и заливается в палм. Самое приятное, что все это повешено на один ярлык и мне, чтобы залить в палм свежую версию нужно сделать только один двойной клик.
В самом верху располагается содержание - список основных разделов Структуры и БыстрыеСлова. Содержание генерится автоматически, с помощью небольшого скрипта на Питоне, а БыстрыеСлова
Идею БыстрыхСлов я утащил из wiki-систем. Я использую их как закладки для быстрых прыжков на нужные мне разделы. Очень удобно поставить в нужном разделе метку типа "СписокМоихПроектов", а потом продублировать это слово в содержании.
Это упрощает навигацию в любом редакторе - можно либо выделить БыстроеСлово или название раздела в Содержании и нажать Ctrl+F и вставив его в окно поиска прыгнуть к нужному месту в файле. Умные текстовые редакторы типа AkelPad определяют сами - выделен какой-то текст или нет и по нажатию Ctrl+F сами вставляют его в окно поиска. В Vim все реализовано очень просто - нужно встать курсором на слово и нажать "*" - и сразу прыгаешь к следующему вхождению такого слова.
В содержании я пользуюсь аналогичной системой - когда НазванияРазделов пишутся слитно через большие буквы (квази-венгерская нотация :) - это позволяет здорово ускорить поиск по файлу и не путает разделы с прочими словами.
Нижнюю половину занимает Дневник. Он сам выглядит как один из разделов Структуры, но устроен хитрее. Дневник - это последовательность моих заметок, начинающихся с таймстампов.
Дневник одновременно работает как Место Хаоса - все что нужно срочно зафиксировать, внезапно пришедшие в голову или свалившиеся откуда-то извне идеи, линки, зацепки - все что некогда или неохота сортировать попадает в Дневник. Потом, при желании можно будет это перенести в нужные места и рассортировать. И даже без сортировки оно все равно не потеряется - поиск по тексту работает всегда и в любом редакторе.
Также в Дневник попадают те заметки, которые я делаю в палме или надиктовываю на диктофон - они тоже датируются, поэтому их очень легко и удобно вставлять в блог.
Таймстампы, разделяющие записи выполняют сразу несколько функций. Они отделяют одну запись от другой (очень удобно писать короткими мыслями, разделяя их таймстампами времени - 13:01, 14:03 и так далее) и попутно связывают записи в одну ленту-поток в которой все идет последовательно и все события связаны друг с другом.
Тамстамп для дневниковой записи обычно выглядит так:

«20090108 blog example3»
Видно, что кроме таймстампа в строке может присутствовать тэг. Тэгом считается все, что заключено в "крылышки". Эти тэги подсвечиваются желтым цветом. Таймстампы - синим. Мне удобно помечать таким макаром пробежки (например, при желании можно с помощью grep'а создать список дней, когда я бегал и развернуть его в график, но чаще я просто смотрю сколько и когда я бегал и на основании этого планирую следующие пробежки). Кроме того ими удобно помечать разнообразные идеи и фичи:
=фича=
если нет времени сортировать поступающий поток инфы - кинуть в дневник, а позже - распределить туда, куда нужно
==
=фича=
Идея по точкам сбора. Точнее - точкам входа. В больших проектах такой точкой может служить блог. Т.е. просто в блоге по ходу дела писать - чем занимался и чем намерен заниматься дальше.
==
Система тэгов еще в стадии разработки - мне хочется как-нибудь сделать так, чтобы их можно было добавлять автоматом, выбирая из списка, как это делается со снипетами программного кода. И когда-нибудь, когда у меня дойдут руки я этим займусь. Пока проставляю тэги вручную.
Таймстампы проставляются автоматом. Подробности будут в следующей серии :)
Дисклеймер: то, что эта система удобна для меня не значит, что она удобна еще для кого-нибудь. Я бы рассматривал это не столько как целостную схему, сколько, как комплект удобных инструментов, которые могут быть так или иначе использованы для ведения заметок.
Дисклеймер2: у меня уже сложилась терминология и такой большой файл с заметками я часто называю "блогом". В принципе, по большому счету, это и есть блог. Но оффлайновый :)
Главный файл разбит так:
Схема сложилась из общих соображений - открывая файл всегда удобно видеть содержание и список БыстрыхСлов-закладок, а добавлять заметки удобнее всего с конца - тем более что любой редактор позволяет быстро прыгнуть в конец файла.
Верхнюю половину занимает структурированная часть. Там хранится все, что поддается структурированию: рецепты, телефоны, адреса, линки, мысли, конспекты, словарик с новыми для меня словами - всякими там "лацпортами", "вьетминями", "трабекулами" и "хуацяо", тренировочные программы, подсказки, читшиты и заметки по софту, виммерингу и питонству и прочее и прочее.
Есть простенький скрипт на Питоне, который "выкусывает" из общего блога свежие адреса-транспорт-задачи-конспекты. Все это богатство парсится с помощью makeztxt (он понимает мою структуру разделов и автоматом добавляет закладки на все заголовки) в .pdb-файл и заливается в палм. Самое приятное, что все это повешено на один ярлык и мне, чтобы залить в палм свежую версию нужно сделать только один двойной клик.
В самом верху располагается содержание - список основных разделов Структуры и БыстрыеСлова. Содержание генерится автоматически, с помощью небольшого скрипта на Питоне, а БыстрыеСлова
Идею БыстрыхСлов я утащил из wiki-систем. Я использую их как закладки для быстрых прыжков на нужные мне разделы. Очень удобно поставить в нужном разделе метку типа "СписокМоихПроектов", а потом продублировать это слово в содержании.
Это упрощает навигацию в любом редакторе - можно либо выделить БыстроеСлово или название раздела в Содержании и нажать Ctrl+F и вставив его в окно поиска прыгнуть к нужному месту в файле. Умные текстовые редакторы типа AkelPad определяют сами - выделен какой-то текст или нет и по нажатию Ctrl+F сами вставляют его в окно поиска. В Vim все реализовано очень просто - нужно встать курсором на слово и нажать "*" - и сразу прыгаешь к следующему вхождению такого слова.
В содержании я пользуюсь аналогичной системой - когда НазванияРазделов пишутся слитно через большие буквы (квази-венгерская нотация :) - это позволяет здорово ускорить поиск по файлу и не путает разделы с прочими словами.
Нижнюю половину занимает Дневник. Он сам выглядит как один из разделов Структуры, но устроен хитрее. Дневник - это последовательность моих заметок, начинающихся с таймстампов.
Дневник одновременно работает как Место Хаоса - все что нужно срочно зафиксировать, внезапно пришедшие в голову или свалившиеся откуда-то извне идеи, линки, зацепки - все что некогда или неохота сортировать попадает в Дневник. Потом, при желании можно будет это перенести в нужные места и рассортировать. И даже без сортировки оно все равно не потеряется - поиск по тексту работает всегда и в любом редакторе.
Также в Дневник попадают те заметки, которые я делаю в палме или надиктовываю на диктофон - они тоже датируются, поэтому их очень легко и удобно вставлять в блог.
Таймстампы, разделяющие записи выполняют сразу несколько функций. Они отделяют одну запись от другой (очень удобно писать короткими мыслями, разделяя их таймстампами времени - 13:01, 14:03 и так далее) и попутно связывают записи в одну ленту-поток в которой все идет последовательно и все события связаны друг с другом.
Тамстамп для дневниковой записи обычно выглядит так:

«20090108 blog example3»
Видно, что кроме таймстампа в строке может присутствовать тэг. Тэгом считается все, что заключено в "крылышки". Эти тэги подсвечиваются желтым цветом. Таймстампы - синим. Мне удобно помечать таким макаром пробежки (например, при желании можно с помощью grep'а создать список дней, когда я бегал и развернуть его в график, но чаще я просто смотрю сколько и когда я бегал и на основании этого планирую следующие пробежки). Кроме того ими удобно помечать разнообразные идеи и фичи:
=фича=
если нет времени сортировать поступающий поток инфы - кинуть в дневник, а позже - распределить туда, куда нужно
==
=фича=
Идея по точкам сбора. Точнее - точкам входа. В больших проектах такой точкой может служить блог. Т.е. просто в блоге по ходу дела писать - чем занимался и чем намерен заниматься дальше.
==
Система тэгов еще в стадии разработки - мне хочется как-нибудь сделать так, чтобы их можно было добавлять автоматом, выбирая из списка, как это делается со снипетами программного кода. И когда-нибудь, когда у меня дойдут руки я этим займусь. Пока проставляю тэги вручную.
Таймстампы проставляются автоматом. Подробности будут в следующей серии :)
А если попробовать wiki?
Идея простая, единственный html-файл в котором можно изменять, удалять
Есть метки, оглавление, wiki-разметка. Наполнение при помощи браузера. Все очень просто
Re: А если попробовать wiki?
- на большом количестве записей оно заметно тормозит
- ява скрипт работает далеко не везде и не везде работает одинаково
- сложности с экспортом - там где я просто скриптом выкусываю нужный кусок текста и кидаю его себе в палм (по почте, в мобильник - все, что подскажет мне фантазия) - с Викисистемами фих его знает что делать
- резервирование, хранение истории изменений и синхронизация - у меня под это заточен subversion, который хорошо работает как раз с текстом и уже пару раз меня выручал
- несвободность форматирования всего и вся. в тексте я волен выбирать то, что нравится мне, в вики-системах я все-таки скован
примерно так. Но идея сама по себе имеет право на сущестование :))) Инструмент хороший и вообще.
Re: А если попробовать wiki?
Классная, на мой взгляд, wiki - Zim Desktop Wiki. Минус - хранит записи не в единственном файле.
tengu_crow, может, глянете. В Ubuntu ставится из стандартного репозитория.
Хотел Вас спросить. Файл огромный, как долго сохраняется по Save?
Я обратил внимание для NoteCase, если файл большой и стоит автосохранение каждые 30 секунд, то сохранение настолько медленно, что если оно в момент ввода текста с клавиатуры, то успеваешь пропустить несколько букв.
Re: А если попробовать wiki?
зачем? у меня хорошо работает Vim и я до этого момента им более чем доволен :) причины по которым у меня не приживаются wiki-системы - я уже описывал.
>Файл огромный, как долго сохраняется по Save?
С NoteCase я дела не имел - ничего определенного сказать не могу. Vim быстр даже на очень больших файлах.
Re: А если попробовать wiki?
Если содержание большое и иерархичное, есть ли возможность свернуть заголовки разделов второго уровня, оставить видимыми заголовки только первого, основные разделы?
Как? Фолдинг?
В Tree-Like органайзерах можно разворачивать нужные и сворачивать ненужные узлы дерева иерархии для удобства работы. Меняя таким образом видимое подмножество разделов.
Есть ли что-нибудь подобное у вас для работы с ОБф?
Как Вы решаете все возрастающую сложность все время развернутого оглавления?
Спасибо!