4/11/2011

Реализация Getting Things Done в Linux с помощью LaTeX

Рано или поздно многие из нас задумываются о том, что дел становится слишком много, а времени - слишком мало, и как-то из всего этого хочется выбраться с минимальными потерями. Часть задумавшихся садятся за прочтение монументального труда Getting Things Done от David Allen. Немногие дочитавшие книгу до конца идут в интернеты и ищут ту-саму-одну-единственную-программу-которая-делает-всё... и бесплатно... и свободно... и под Linux... и с настройками... Но находят либо веб-поделки, либо программы для маков, либо только под Windows, и без какой-либо подгонки под себя. И подумалось мне: разве не могут ничем ответить хардкорные юникс-гики гламурным макинтоидам?


Перепробовав кучу всяких апплетов, краплетов, гаджетов и органайзеров, я начал использовать то, что я знаю лучше всего - LaTeX. Используя уже известные наработки и огромное количество расширений к LaTeX, можно создать всё, что угодно. В том числе и реализацию Getting Things Done.

Это имеет свои плюсы: кросс-платформенность, расширяемость, универсальный формат (текст), и открытость. Кроме того, используя BitBucket/GitHub/другой веб-интерфейс к системе контроля версий можно синхронизировать свою систему GTD повсюду. Созданные файлы проектов при этом запросто и с высоким качеством выводятся на печать.
Предупреждение: система создавалась мной под мои конкретные цели и задачи, под мой бумажный ежедневник и мой принтер с центрированной подачей бумаги (это объясняет такие странные поля в документах). Если что-то не нравится - система довольно легко переделывается под себя при желании.
Идея проста: создаём один длинный латеховский файл, в котором располагаем ссылки на всё остальное: календарь, проекты, справочные материалы, адресную книгу. Всё в одном месте, и мы можем скомпилировать это и вывести на печать.

GTD для Linux в LaTeX
Для демонстрации возможностей GTD-системы сделана пустая "болванка" моей реально действующей GTD-системы в LaTeX. При этом я приложил все исходники не только самих проектов, но и всех остальных пакетов расширений (tweaklist, calendar, addressbook). Рабочий архив системы, в которую можно потыкать палочкой, живёт на Google Code и скачивается отсюда:
Всё это собирается даже в tetex и даже под такой доисторической классикой, как Debian Etch, и прекрасно работает в TexLive.


В чём смак GTD-LaTeX

Главный - настраиваемость. В отличие от готовых решений, тут мы имеем возможность подстраивать систему под себя без ограничений. Кроме того, так как я пользуюсь Kile, мне очень нравится возможность по щелчку мыши открывать связанный командой \input документ. Приёмы работы в документах эстетствующим Анонимусам могут показаться несколько дубовыми, но так как это ОпенСорц - берём напильник и, поминая автора добрыми словами, дорабатываем до своего представления о прекрасном.

Например, нам надо быстренько добавить новый проект. Нет проблем - в ссылке с \input есть болванка нового проекта, которую мы пересохраняем с другим именем. Имя тут же вписываем в название проекта и вместо NAME для дальнейших действий. Щёлкаем по \input уже в файле проекта - и создаём список шагов. Компилируем - и сразу на печать, чтобы вставить в органайзер. Далее в списке проектов копируем и вставляем описание и подменяем имя на новое - всё готово, теперь при компиляции общего файла 4myGTD.tex мы (в зависимости от значений переменных-триггеров) получаем полный список проектов, список списков ожиданий\когда-нибудь\покупок\всего-остального-что-туда-накидаете и сразу же гоним на печать.

В общем, основная идея файла 4myGTD.tex - иметь доступ ко всем проектам, календарям, спискам и даже к адресной книге. Файл 4myGTD.tex связывает всю систему GTD воедино. Ради этого, собственно, всё и затевалось с пакетом ifthen и монструозной конструкцией \ifthenelse{\equal{\gtdorg}{ignoreanyway}} это не даёт ЛаТеХу печатать лишнее, а в структуре справа (отображается в Kile) это есть и помогает скрывать или открывать те или иные компоненты оргсистемы.


Структура GTD в LaTeX
Для того, чтобы структурировать свою GTD-систему, я использую грязный хак вида:
\ifthenelse{\equal{\gtdorg}{ignoreanyway}}{\part{Projects}}{}
Это заставляет ЛаТеХ в любом случае пропускать текст, подсвеченный зелёным. Нужно это для того, чтобы в Kile отображалась структура, но при этом не печаталась. Например, с помощью команды \part{Проекты} происходит выделение проектов в отдельную часть. Вот как это выглядит:
Как видно, проекты это Part, но при компиляции видно этого не будет, а навигация слева становится удобнее.


Преамбула GTD-LaTeX документа
Кодировка у меня местами до сих пор KOI8-R. Пакеты расширений нужны для печатания частей текста в несколько колонок, для создания календаря на месяц и прочих радостей жизни, так что лучше без нужды оттуда ничего не удалять. Несколько навороченных переключателей нужны для того, чтобы печатать на разных форматах бумаги:

%%%% KEYS TO SWITCH::::
\newcommand{\gtdorg}{grandview} %% grandview == Vast view on A4
% \newcommand{\gtdorg}{fororganizer} %% to print in organizer format
\newcommand{\jumper}{listsonly} %% trigger for lists printing
% \newcommand{\jumper}{whole} %% trigger for projects printing


% % <---- Short version for print on A6
\ifthenelse{\equal{\gtdorg}{fororganizer}}{\geometry{left=5.5cm} \geometry{right=6cm}\geometry{top=0.5cm} \geometry{bottom=15cm}}
% <---- Short version for print on A6

\ifthenelse{\equal{\jumper}{listsonly}}{\renewcommand{\gtdorg}{fororganizer}
\twocolumn
\geometry{left=1.5cm} \geometry{right=1.5cm} \geometry{top=0.6cm} \geometry{bottom=1cm}
}{}
Так, например, можно печатать на полный лист А4 или на А6 для органайзера с помощью принтера с центральной подачей бумаги. Просто кладём в него листки А6 и при этом ставим в настройках А4 - принтер прожуёт бумагу и всё напечатает, не подозревая, что его жестоко обманули с форматом. Основная польза от этого - печать в край: принтер думает, что это целый лист, и не выделывается с полями.


Структура Getting Thigns Done в LaTeX
Структура системы GTD содержит следующие компоненты:
  • Календарь
  • Списки
  • Проекты
  • Отложенное
  • Адресная книга
Эти компоненты хранятся в виде латеховских файлов в соответствующих каталогах. Часть этих возможностей реализована дополнительными пакетами расширений в LaTeX.

КалендарьКалендарь сделан с помощью умопомрачительного пакета расширений calendar, который можно невозбранно загрузить. В моём архиве идёт несколько допиленная вресия пакета calendar, на что ушло несколько дней. Пользоваться им просто. Для этого создаём файл Essentials/Calendar/myEvents в котором будут храниться все события. Это простой текстовый файл вида:
%%%%%%% My Personal Calendar range Essentials/Calendar/year2010 %% What year do we want?

%% ONE-TIME EVENTS
january 28 2010 {Описать GTD} [Описать GTD для блога]

%%%%% RECURRING EVENTS every Sunday {Еженед. обзор} [Еженед. обзор]
Сначала указываем год в отдельном файле Essentials/Calendar/year2010.cld
в котором пишем:
%% Span the whole year here
January 1 2010 to December 31 2010 {The year 2010}
Повторяющиеся события будут определены только в интервале из этого файла. В код пакета без корвалола лучше не лазить. Календарь в LaTeX, тем не менее, божественен: вы просто ставите две даты, между которыми хотите показывать события (хранятся в файле events.cld):

\begin{eventlist} {} {Essentials/Calendar/myEvents}
january 24 2010 to january 30 2010
\end{eventlist}

и конпеляете документ, получая список календарных событий на это время:

Иконки Email и другие средней степени гламурности сделаны пакетами marvosym и wasysym. Это здорово, но пакет calendar может больше - можно сгенерировать календарик на месяц. Код такой:

\begin{monthly}
{firstday=1} %% begins with Monday
{Essentials/Calendar/myEvents}
jan 2010
\end{monthly}

Подчеркну: все события в календаре на месяц берутся из того же файла, который мы использовали для генерации списка календарных дней на неделю. Нажимаем кнопку компиляции dvips и вот он, календарь на месяц, на любой год, со вставленными событиями:

В общем, наш хардкорный ответ гламурным макинтошевцам :-)

СпискиПеречни покупок, отложенных дел и прочего сделаны обычным

\begin{itemize}
\item Написать в блог про GTD
\end{itemize}
При всей своей простоте, списки очень сильно выручают в GTD: когда хочется что-то не забыть, а проект делать лениво или не нужно.

Проекты
Все проекты сделаны в виде отдельных латеховских файлов и оформлены одинаково. Стиль оформления подключается во всех проектах так:
\usepackage{myorgsysA6}
Этот самый стиль myorgsysA6 есть просто перечисление всего того, что нужно подключить при сборке файла. При желании, естественно, всё запросто меняется.

Организация проекта состоит из цели, желаемого результата, генерации идей (мозговой штурм), и списка шагов по достижению цели. За подробностями следует обратиться к бессмертному труду Getting Things Done несравненного нашего David Allen. Структура такая:

\chapter*{ НАЗВАНИЕ}

\paragraph{Цель:} %для чего создаётся проект?

\paragraph{Желаемый результат:} %WILD SUCCESS!! Wild!! % %Вы сформировали картину головокружительного успеха в своем сознании?

\paragraph{Мозговой штурм}
% Вы зафиксировали все возможные идеи - все, на что следует обратить внимание, все аспекты, способные повлиять на результат?

\paragraph{Первоочередные шаги:} %конкретные физические действия, нацеленные на осуществление проекта.
\input{actionsProject-NAME}

\begin{enumerate}
\item
\end{enumerate}

\paragraph{Дальнейшие шаги:} %Какие шаги планируются дальше, после выполненных milestones?

\paragraph{Материалы проекта} %что нужно добавить в проект для более быстрого его осуществления? Карты, схемы, записи, информацию?

Здесь следует отметить, что список первоочередных шагов хранится в отдельном файле. Это нужно для генерации списка проектов, где вы сразу видите все названия проектов и все шаги, которые вы должны предпринять. В итоге при конпеляции 4myGTD.tex вы получаем список всех проектов и список следующих шагов к ним. Дэвид Аллен одобряет.

Отложенные проекты
Список отложенных проектов есть просто отдельный файл, в который копируются проекты, заняться которыми в ближайшее время нет возможности, желания или необходимости. Это не значит, что вы их выбросили - просто отложили.


Проекты "Когда-нибудь\Может быть"
Реализация списка проектов "Может быть" та же самая (просто отдельный файл, в который копируются проекты), разница лишь в том, что это скорее ваши буйные и не очень фантазии, тайные желания и наполеоновские планы. Что-то вроде "научиться играть на скрипке", "купить яхту", "стать императором Вселенной" - это не то, чем вы займётесь на этой неделе, а отдалённые планы.

Тем не менее, список полезен и его всегда хорошо иметь под рукой: если вы разобрались со всеми проектами, этот список будет вашей новой стартовой точкой. Мало ли, в огороде откопаете межпланетный звездолёт с ионной пушкой - вот тогда придёт пора пристальнее вглядеться в список проектов "Когда-нибудь" :-)


Управление справочными данными
Отдельная тема, которую я здесь только затрону, это управление справочными данными - они не требуют действий, но требуют упорядочивания. И это один из тех немногих случаев, когда ЛаТеХ здесь приносит больше вреда, чем пользы.

Здесь можно присоветовать каталогизаторы вроде Zim. В Zim всё организовано в виде текстовых файлов, отсортировано по алфавиту и имеет полнотекстовый поиск.


Адресная книга
Ещё один весёлый пакет расширений, который может сделать сносно выглядящую адресную книгу - встречаем пакет directory и качаем его с Большой Помойки. Так как над пакетом был произведён небольшой напилинг и красноглазинг, модифицированная версия пакета прилагается (по авторской традиции, "батарейки в комплекте") .

Сама адресная книга находится в файле MyAddressBook.tex и реализуется с помощью подключения пакета:

\usepackage[break,longdates]{directory}
Контакты в адресной книге directory хранятся в файлах чтотогдето.bib так что пакет дёргает BibTeX. Вот как выглядит типичный контакт в файле personal.bib:
@Person{Hruz,
name = "Хруз",
p.phone = "+7(495) 2222222",
p.cellular = "+7 926 2222222",
}
Здесь есть один нюанс: пакет с кириллицей дружит своеобразно, и сортировка по имени работает только в латиннице. Я обошёл это добавлением в поле чего-нибудь латинского вот так:
@Person{Василий Пупкин Poop,
Работает, хотя и не очень красиво. Выглядит списком, отсортированным по алфавиту:


В общем сносно и таки делает то, что должно.


И синхронизация!Наверняка вам захочется иметь всю эту светомузыку на нескольких компьютерах, за которыми вы работаете. Этому нам помогут git, mercurial, или fossil - распределённые системы управления версиями. Реализация GTD на LaTeX являет собой простой текст, и даже если вы забыли синхронизировать копии на разных компьютерах - не беда, текст можно объединить, и это за нас сделают системы контроля версий.

Здесь лучше всего подойдут именно распределённые VCS, вроде Mercurial, git, bazaar и других: не всегда есть доступ к центральному репозиторию. Распределённые системы всё-таки удобнее, хотя есть риск нарваться на бардак веток и репозиториев. Плюс в том, что GTD-cистема будет иметь множество бекапов, и вероятность того, что накроется единственный центральный репозиторий на старой флешке, будет исчезающе мала.


ЗаключениеВ этом посте сделана попытка описать реализацию в LaTeX методики самоорганизации GTD. Реализация кроссплатформенна, работает везде, может быть легко настроена и улучшена, допускает использование любых текстовых редакторов и систем контроля версий. Лицензионные отчисления и прочее роялти автору платить не обязательно.

30 комментариев:

  1. А я думал, что они ставят www.taskwarrior.org и не парятся :-)

    ОтветитьУдалить
  2. @kostix комментирует...
    А я думал, что они ставят www.taskwarrior.org и не парятся :-)
    Видел, щупал, не впечатлило. Как сделать оттуда форматированный вывод на печать, я не понял. Календаря нормального нет. Списка проектов с шагами тоже. Информацию о проектах внутри самих проектов накапливать нельзя. Ну и структуру не поменяешь. А тут можно. В чём, в общем-то, весь основной профит и заключается.

    ОтветитьУдалить
  3. +1 для emacs & org-mode
    но решение для LaTeX, безусловно, достойное.

    ОтветитьУдалить
  4. Решение интересное, спасибо.
    Только вот есть под Linux готовые решения, в частности GTG:
    http://www.zhart.ru/software/37-gtg-tomboy-hamster-review
    Пользуюсь и очень доволен.
    Простая, и в то же время очень удобная и эффективная софтина.

    ОтветитьУдалить
  5. @holub комментирует...
    org-mode для emacs?
    Я привык к редактору, который пищит и всё портит. :-)


    @aleksey комментирует...
    +1 для emacs & org-mode
    Отцы, просветите: оный оргмод может делать оформление (поддержка форматирования тегами, типа как в ЛаТеХ)?
    Собственно, ЛаТеХ мне тем и дорог, что можно оформлять текст и выводить на печать с высоким качеством.

    но решение для LaTeX, безусловно, достойное.
    Старался. Если есть идеи по улучшению - готов дать права коммиттера. Или просто делайте hg clone и пользуйтесь.

    @Дмитрий aka ZHart комментирует...
    Только вот есть под Linux готовые решения
    Есть-то они есть, но как правило либо веб20листые, либо жёстко заданной структуры. Тут можно подстраивать под себя. Сейчас система, которую я пользую, кстати уже отличается от той, что я опубликовал. Незначительно, но тем не менее.

    в частности GTG
    Хм... занятно. Там список следующих шагов есть, а проекты с описанием там можно создавать? Моя идея в том, чтобы в одном латеховском файле хранить цель, vision, результаты мозгового штурма, следующие шаги и материалы проекта (записи, альтернативные идеи и проч. типа рисунков, карт, схем).

    Пользуюсь и очень доволен.
    Оно на Гноме, с томбоем. А у меня гнома нету. Айсвээм у меня :-)

    Простая, и в то же время очень удобная и эффективная софтина.
    Это да, не спорю. И за ссылку выше спасибо - интересный блог. Таки подписался на ленту :-)

    ОтветитьУдалить
  6. > Файл 4myGTD.tex связывает всю систему GTD воедино, так что.
    Конец предложения пал жертвой многочасового оттачивания статьи напильником? ;)

    > Ради этого, собственно, и всё и затевалось

    > который можно невозбранно загрузить
    Слово «можно» и словосочетание «невозбранно загрузить» у тебя почему-то являются ссылками на один и тот же файл. Подразумевалось, что адреса будут разными, или всё это следует преобразовать в одну большую ссылку?

    > вы просто ставите две даты
    > …
    > и конпеляем документ

    А как же согласование, virens?

    > вы сразу видите все названия проектов и все
    > шаги,

    Зачем здесь разрыв строки?

    > таже самая
    Слушай, virens, а когда у тебя днюха-то? Я тебе спеллчекер подарю, ага :)

    > тому нам помогут системы управления версиями, которые помогут поддерживать

    > Плюс в том, что GTD-cистема так будет иметь множество бекапов
    Я бы это «так» убрал — зачем оно?

    > вероятность того, что накроется единственный центральный репозиторий на старой флешке будет минимизирован.
    Вероятность будет минимизирован? Неграмотность будет побеждён! ;)


    P.S. Ты меня этим постом убедил, что скриншоты — таки добро. Красивый получился календарик, буду знать, что его можно легко с помощью родного LaTeX сделать.

    И да, опросы в блоге — штука интересная, только его бы поднять повыше, чтобы посетители, читая заголовок поста, замечали это дело боковым зрением. Кстати, я у себя заюзал крупные шрифты с засечками — мне кажется, стало гораздо приятнее для глаз.

    ОтветитьУдалить
  7. >Отцы, просветите: оный оргмод может делать оформление (поддержка >форматирования тегами, типа как в ЛаТеХ)?
    >Собственно, ЛаТеХ мне тем и дорог, что можно оформлять текст и выводить на печать с высоким качеством.

    Можно вставлять latex-код (http://orgmode.org/manual/Embedded-LaTeX.html), использовать свой микро-маркап (http://orgmode.org/manual/Markup.html) и получать при экспорте pdf через промежуточную латех-стадию (http://orgmode.org/manual/LaTeX-and-PDF-export.html).

    ОтветитьУдалить
  8. @Minoru комментирует...
    О! Я ждала и верила, сердцу вопреки :-) И вот! ОН пришёл! И разрулил! И научил! И показал! И дал стране угля! :-))

    Конец предложения пал жертвой многочасового оттачивания статьи напильником?
    Именно так. Я посты пишу часто урывками, или когда на работе нифига не получается. Так что граммар-наци отрываются по полной :-)

    Слово «можно» и словосочетание «невозбранно загрузить» у тебя почему-то являются ссылками на один и тот же файл.
    Не знаю, как так получилось. Поправил. Спасибо.

    А как же согласование, virens?
    А никак :-) Кхм.. исправил.

    Зачем здесь разрыв строки?
    Хрен его знает, "не виноватая я". Кстати, замечаю, что через некоторое время Блоггер как-то косяково преобразовывает текст, набранный в его же веб-форме.

    Слушай, virens, а когда у тебя днюха-то?
    Скоро, кстати. В июне.

    Я тебе спеллчекер подарю, ага :)
    Во, давай, а то в этом моём Дебиане у меня Ынтырпрайз-подписка на ispell кончилась, и оно мне теперь пишет: "продакшЫн онли, пэй онли 99.99 нау!" :-)

    И потом, ты (а тут ещё и Шкифус раньше отмечался) намного лучше - всякие нестыковки увидишь и напалмом грамматическим попалишь :-)

    Я бы это «так» убрал — зачем оно?
    Согласен. Пофиксено.

    Вероятность будет минимизирован? Неграмотность будет побеждён! ;)
    Я вот к тебе в следующий раз на пост так загляну, мерзавец :-)


    Ты меня этим постом убедил, что скриншоты — таки добро.
    Дык а то! Норот-то хочет чего? Норот-то хочет зрелищ, экшена и хэппиэнда. Экшен есть, хэппиэнд тоже, а без картинок скучно. Это же не библиотека. Кстати, норот о раскраске кода ещё позитивно отзывается. Хотя муторное это дело...


    Красивый получился календарик, буду знать, что его можно легко с помощью родного LaTeX сделать.
    Календарик красивый, это верно, только делать его нифига не просто :-) То есть изменить его вид - это помереть можно. Там внутри такой зверский код, что я аж спал плохо. Но выглядит здорово.


    И да, опросы в блоге — штука интересная
    Я тут, блуждая по этим вашим интернетам, заметил, что Требушет хаят почём зря. Мало ли, думаю, может я отстал от жизни. Решил спросить народ. Пока склоняются таки к Требушету (типа "автор, не трожь"). Поглядим.

    только его бы поднять повыше
    Сделано.


    я у себя заюзал крупные шрифты с засечками — мне кажется, стало гораздо приятнее для глаз.
    У тебя в настройках, смотрю, тоже monospace, и дальше так же: Требушет, Вердана, Ариал.


    @zeabrah комментирует...
    Можно вставлять latex-код, использовать свой микро-маркап и получать при экспорте pdf через промежуточную латех-стадию
    Да, круто. Ну, ото ж РМС всё-таки, не абы кто.


    @Dzhus комментирует...
    org-mode же!
    Джус, я вимер по религиозным убеждениям :-) И ещё Kile-льщик. И педали мне под стол не влезают для шифтов :-)

    Да, большое спасибо за идеи, поправки и предложения. И да, Минору торт! :-) Сколько ошибок выудил. Больше, чем мой шеф в моём английском!

    ОтветитьУдалить
  9. > > Зачем здесь разрыв строки?
    > Хрен его знает, "не виноватая я". Кстати, замечаю, что через некоторое время Блоггер как-то косяково преобразовывает текст, набранный в его же веб-форме.

    Между прочим, я и раньше на этот баг у тебя наталкивался. Неужто Большой Брат лично вычитывает твои посты и правит по вкусу? :)

    > Кстати, норот о раскраске кода ещё позитивно отзывается. Хотя муторное это дело...
    Муторное? К счастью, я виммер, потому юзаю :TOhtml и не парюсь :) Главное — не забывать предварительно делать :set background=light

    > > я у себя заюзал крупные шрифты с засечками — мне кажется, стало гораздо приятнее для глаз.
    > У тебя в настройках, смотрю, тоже monospace, и дальше так же: Требушет, Вердана, Ариал.

    Я менял только bodyfont. Вот так вот настроечка сейчас выглядит:

    <Variable name="bodyfont" description="Text Font"
    type="font" default="normal normal 120% Georgia, Serif" value="normal normal 120% Georgia, Serif">

    Больше, чем мой шеф в моём английском!
    Кстати, как в Автралии относятся к прорехам в твоём знании языка, ошибкам выговора? У меня, увы, никакого опыта живого общения с native speakers нет, только IRC, и там мне попадались исключительно снисходительные личности, спокойно реагирующие на все мои издевательства над бедным инглишем :) Интересно, это во всём мире так, или я просто везучий?

    ОтветитьУдалить
  10. Есть вопрос, реально ли сделать 4myGTD.tex в utf-8?

    ОтветитьУдалить
  11. @Minoru комментирует...
    Муторное? К счастью, я виммер, потому юзаю :TOhtml и не парюсь :) Главное — не забывать предварительно делать :set background=light
    Я вот тоже типа вимер, но до такой степени просветления не добрался.

    Я менял только bodyfont. Вот так вот настроечка сейчас выглядит:
    Что-то не нравится мне Джорджия. Требушет вроде хорош, но не могу выбрать между ним и Верданой. Собственно, на то и голосование. Народ пока склоняется к Требушету.

    Кстати, как в Автралии относятся к прорехам в твоём знании языка, ошибкам выговора?
    Уэлл, май инглиш из нот со хорибл афффтер алл. :-) Overall Band IELTS=7, что в общем не так плохо. Тут дофига китайцев и индусов, которых я лично понимаю с трудом. Так что мой рунглиш из притти ОК. Некоторые нативесы мне прямо говорили - "hey, speak good English, mate.". Когда пытаются угадать, откуда я родом, называют Польшу и Германию. Что характерно, это в общем так и есть (учитывая мои корни).

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

    @qnikst комментирует...
    Есть вопрос, реально ли сделать 4myGTD.tex в utf-8?
    Думаю, что более чем реально. Моё КОИ8 - это просто привычка. Я не использовал пакетов, которые работают только с кои. Так что качайте и меняйте под себя на здоровье. Должно работать.

    ОтветитьУдалить
  12. использую ThinkingRock + Sunbird под Ubuntu около 2 лет - очень доволен!

    ОтветитьУдалить
  13. @Анонимный комментирует...
    использую ThinkingRock
    Глянул на скриншоты - да, здорово, кстати. Но оно денег просит.
    За информацию спасибо, надо будет на бесплатную версию посмотреть.

    Sunbird под Ubuntu
    Ммм... когда я этим пользовался, оно тормозило на моём P4 3GHz с жутким скрипом :-) Неужто Санбёрду полегчало? [не флейма ради]

    ОтветитьУдалить
  14. Спасибо за массу полезных ссылок, особенно на Дэвида Алена!
    Если в заданном интервале событий нет, например телефонных звонков сегодня нет, то calendar не хочет компилировать списки, как вы это решаете?

    ОтветитьУдалить
  15. "Не спрашивайте зачем - это часть пакета calendar, и без этого работать он не будет." можно заменить на "Повторяющиеся события будут определены только в интервале из этого файла."

    ОтветитьУдалить
  16. @Анонимный комментирует...
    Спасибо за массу полезных ссылок, особенно на Дэвида Алена!
    Пожалуйста. А как Анонимус отнесётся к тому, если я ещё что-нибудь про GTD выложу?

    Если в заданном интервале событий нет, например телефонных звонков сегодня нет, то calendar не хочет компилировать списки, как вы это решаете?
    У меня есть одно рекурсивное событие в неделю всегда - еженедельный обзор. Так что оно список компиляет всё равно.

    О проблеме знаю, но не знаю, как её решить: код там уж больно мудрёный.


    @Анонимный комментирует...
    "Не спрашивайте зачем - это часть пакета calendar, и без этого работать он не будет." можно заменить
    Это звучит лучше, согласен. Заменил.

    ОтветитьУдалить
  17. "А как Анонимус отнесётся к тому, если я ещё что-нибудь про GTD выложу?"
    Бывший анонимус отнесется с энтузиазмом.

    А если это будет касаться организации персональной системы хранения информации, то с еще большим энтузиазмом.

    ОтветитьУдалить
  18. @antonsergeev88 комментирует...
    Бывший анонимус отнесется с энтузиазмом.
    Это хорошо. Как чуть больше материала накопится - выложу.

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

    ОтветитьУдалить
  19. Прикрутил в проекты graphviz, очень удобно и наглядно.

    Остается компиляция *.dot-файлов. Были мысли Makefile делать, но оказывается из kile можно запускать любые сторонние приложения. Но тут есть недостаток, графы не во всех проектах есть, это приходится в голове держать.

    ОтветитьУдалить
  20. Что-то я в переключателях режимов компиляции не разобрался.
    При каком их режиме включается компиляция, к примеру, файла
    Projects/SupportingMaterials/Project-MyOrgSys-Describe/MyOrgSys-Description.tex
    ?

    ОтветитьУдалить
  21. Только я начал читать про GTD, так сразу антипродуктивные мысли в голову лезут... Собственно, появилась глупая идея по вопросу синхронизации. Для получения мыла я пользуюсь icedove (in a true Debian way :))) ) и примочкой-календарем iceowl-extention (то есть, thunderbird+lightning, если я не ошибаюсь). Так вот, идея состоит в том, чтобы синхронизировать контакты и задачи с icedove. ИМХО уж очень это удобная штука - напоминалка о событиях :))) Не знаю, только, наколько, вообще, это реализуемо. Программировать я программировал, но никогда не занимался вопросами "общения" приложений между собой. И, вообще, является это сколько-нибудь востребованой функцией?

    Еще, появился вопрос на тему мозгового штурма. Я вижу, в твоем GTD с проектах есть графа "Мозговой штурм", куда заносяься уже готовые результаты. А как ты организуешь этот штурм? Просто на бумажке? Или есть какой-то интересный софт для этого?

    PS. Нашел небольшой баг: "Реализация списка проектов "Может быть" таже самая" - "та же" надо разделить.

    ОтветитьУдалить
  22. @antonsergeev88 комментирует...

    Прикрутил в проекты graphviz, очень удобно и наглядно.

    Кстати, да, graphviz решает. Он у меня строит зависимости между проектами и целями. Наглядно и быстро.

    Остается компиляция *.dot-файлов.

    Я решил это сторонним запуском скрипта на Tcl, который проходится по всем файлам проектов и выбирает graphviz-команды.

    Но тут есть недостаток, графы не во всех проектах есть, это приходится в голове держать.

    Антон, есть решение лучше. Я в каждом проекте сделал строчку вида:

    \gtdprojectlevel{"Project Name" -> "20.000 area of focus" -> "Goal"}

    Скрипт на Tcl проходится по файлам, ищет ключ gtdprojectlevel, и вытаскивает команду для graphviz из скобок. Быстро работает даже для моих 120 проектов: набор скрипта для графа - менее секунды, построение графа ~ 2 сек. (jpg, самый быстрый). Но там очень много всего.


    @Анонимный комментирует...
    Что-то я в переключателях режимов компиляции не разобрался.

    Ох, да, там сплошное месиво. Я сам ими уже перестал пользоваться - надо бы их отсюда убрать, что ли.

    Там самое противное - во взаимодействии пакетов между собой. Они начинают конфликтовать, и к этому добавляется переключение между размерами страниц. Не стоит оно того.

    Анонимус, главная идея всего этого - в командах \input.Они позволяют набирать итоговый документ GTD, линкуя проекты и списки.


    @Сирожа комментирует...
    Собственно, появилась глупая идея по вопросу синхронизации.

    Ни разу не глупая. У меня до сих пор проблема синхронизации календаря Google и локального. Дизайню скрипт для этого и пристально смотрю в сторону googlecli.

    thunderbird+lightning
    Слушай, а оно того стоит? В смысле, оно с гугловским календарём вообще умеет синхронизироваться? А то я в танке, как всегда, и горожу свои костыли. И не я один - googlecli народ любит.

    Кстати, нет желания про Lightning написать постец?

    Так вот, идея состоит в том, чтобы синхронизировать контакты и задачи с icedove.

    Здесь я крепко не в теме. Когда я пользовался Thunderbird, оно было тормозным кошмаром - и я пересел на Gmail.

    Вариант с GTDLatex подкупает простотой - загнал в Hg/Fossil/Git, закачал в веб / на флешку - и всё. Синхронизация, мержинг веток, откат к предыдущему состоянию....

    Программировать я программировал, но никогда не занимался вопросами "общения" приложений между собой.

    /me достал флажок с надписью "TCL RULES!!!11!!" и машет им :-)

    Серьёзно, Tcl рулит именно в этом: это "клей" между приложениями. Мощь лиспа по цене питона, батарейки в комплекте (встроенная поддержка SQlite!), даже гуй можно налабать (Tk).

    И, вообще, является это сколько-нибудь востребованой функцией?
    Конечно!

    Еще, появился вопрос на тему мозгового штурма. Я вижу, в твоем GTD с проектах есть графа "Мозговой штурм", куда заносяься уже готовые результаты. А как ты организуешь этот штурм?

    Отличный вопрос.

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

    Иногда мысли приходят перед сном - у меня смартфон ещё и будильник, поэтому рядом. В данном случае пользую Tasks - оно синхронизируется с Google tasks (они в почте), а потом вытаскиваю их оттуда в Latex.

    За компьютером - knotes рулят безбожно, это вообще часть моего workflow. Хорошо фантазировать в markdown-based вебсервисах (markable.in) и потом конвертировать в латех.

    Всё это сливается в Brainstorm.tex для последующей обработки, как и завещал Аллен.

    Или есть какой-то интересный софт для этого?

    Софт есть, но он больше отвлекает. Чистый лист бумаги и клёвые ручки не заменит ничто.

    PS. Нашел небольшой баг
    Пофиксил. Добавил про Zim, кстати.

    ОтветитьУдалить
  23. thunderbird+lightning
    Слушай, а оно того стоит?


    Ну, я пользуюсь... То есть, да, умеет :))) Есть примочка Provider for Google Calendar, с ней подключаются календари в lightning как так и надо. Для контактов тоже была такого рода примочка. У меня она сейчас не стоит за ненадобностью. А может, потому что без нее теперь все работает. Не помню, гуглоконтакты в thunderbird мне пока не очень нужны. Для Google Tasks есть Google Tasks Sync. Единственное, что не очень удобно - так это то, что для google задания и события календаря не связаны между собой. Для гуглозаданий появляется отдельная панелька.

    С icedove все тоже работает, только с небольшими заморочками. У него, почему-то, не всегда получается найти правильную версию плагинов и это приходится делать за него вручную.

    Вообще, я решил потихоньку попробовать не сильно сорить своими данными и уйти от Гугла. В частности, в связи с появлением в телевизоре некого мистера Сноудена. Поэтому, синзронизация с thunderbird была бы неплохим решением, наверное. Не зависимо от того, какой календарь и по какому стандарту я использую, thunderbird будет "прокладкой" между календарем и скриптом синхронизации.

    Пост... Интересная мысль. Почему бы и нет? Только про lightning или про связку thunderbird+lighting?

    Вариант с GTDLatex подкупает простотой - загнал в Hg/Fossil/Git, закачал в веб / на флешку - и всё. Синхронизация, мержинг веток, откат к предыдущему состоянию....

    Это само собой. Мне этот вариант тоже очень нравится :) Но всегда приятно иметь синзронизацию с умной программой, которая тебе сама напомнит о предстоящих встречах и т.п. :)

    Добавил про Zim, кстати.

    Интересная штука! Надо будет и с ней поразбираться :)

    /me достал флажок с надписью "TCL RULES!!!11!!" и машет им :-)

    Хм... Похоже, надо поскорее заканчивать с изучением матчасти и поскорее переходить к применению GTD на практике. Столько всего хорошего есть, с чем можно поразбираться, что глаза разбегаются... :)

    ОтветитьУдалить
  24. @Сирожа комментирует...

    Огромнейшее спасибо за коммент про Thunderbird и Lightning - йоу, оно таки научилось синхронизировать не только календарь, но ещё и Tasks! Отлично! И наконец интерфейс сделали пригожим! Ну всё, теперь у меня полная синхронизация на десктопе.

    Комментаторы, вы - сила! Шо б я без вас делал?! :-)


    Provider for Google Calendar, с ней подключаются календари в lightning

    Ага, уже настроил. Ну надо же, оно ещё и работает! А я уж думал скрипты городить.

    Для Google Tasks есть Google Tasks Sync.

    Иес! Оно! То, что надо. На смартфоне оно уже давно Tasks пользует. А на десктопе всё броузером...

    С icedove все тоже работает, только с небольшими заморочками.

    В Тундроптице всё играет и поёт без проблем.
    Восхитительно!

    Вообще, я решил потихоньку попробовать не сильно сорить своими данными и уйти от Гугла. В частности, в связи с появлением в телевизоре некого мистера Сноудена.

    В общем да, здравая идея. Свою GTD-систему я держу на диске, бекапы на DVD. Почта в гугле, но там больше по работе - планы по захвату галактики я там стараюсь не обсуждать :-)

    Пост... Интересная мысль. Почему бы и нет? Только про lightning или про связку thunderbird+lighting?

    Про всё указанное выше: календарь, задачи и синхронизация с гуглом. Я тут остался безработным на которое время, так что времени будет больше.

    Но всегда приятно иметь синзронизацию с умной программой, которая тебе сама напомнит о предстоящих встречах и т.п.

    Прелесть латеховской реализации в том, что она:
    1. локальная
    2. настраиваемая как хочешь
    3. всегда с тобой (если только ты её в облако не засунул).

    Интересная штука! Надо будет и с ней поразбираться :)

    Ничего лучше в ёпенсорце для Reference materials, по ходу, не придумано. Zim хорош, ставится просто, работает складно.

    Похоже, надо поскорее заканчивать с изучением матчасти и поскорее переходить к применению GTD на практике.

    Собственно, я за то, чтобы реализовывать GTD по мере изучения. Оно так проще и быстрее, и заодно сразу видишь, чего не хватает.

    ОтветитьУдалить
  25. Огромнейшее спасибо за коммент про Thunderbird и Lightning

    Не за что!!! :)

    В Тундроптице всё играет и поёт без проблем.

    В ней и не будет проблем. А icedove - это Дебиновская поделка-переделка. Мне ее интерфейс больше нравится, плюс, она лежит в стандартном репозитории. Но у нее есть вот такая заморочка с плагинами.

    Почта в гугле, но там больше по работе - планы по захвату галактики я там стараюсь не обсуждать :-)

    У меня в гугле почта, контакты, календарь... В общем, все, как то положено человеку, пользующемуся Андроидом :) В принципе, никаких военных тайн я там не хранью, но сам факт того, что я, по сути, не имею никакого контроля над своими данными, несколько напрягает. А имея дома NAS, на который можно "натянуть" дебиан и превратить его в слабенький, но сервер, грех не воспользоваться такой возможностью :)))

    1. локальная
    2. настраиваемая как хочешь
    3. всегда с тобой


    100% согласен! И это именно то, что мне навится в данной реализации. Если на флеху кинуть портативную версию texlive, а то и livecd дебиан, так, вообще, появится система, которую можно будет редактировать чуть ли не на любом компе. Короче, бомба!

    То, что я имею в виду под синхронизацией - это что все изменения, сделаные в LaTeX-GTD при сборке, автоматом вносятся в электронный календарь, список задач и т.п. А там оно (при желании, естественно) само уже синхронизируется с телефоном, ноутом и прочей фигней. То есть, целостность GTD не нарушается. Идеально было бы реализовать двухстороннюю синхронизацию, но это уже из разраяда "помечтали и хватит", по-моему :)

    Кстати, в продолжение о портативной GTD. Недавно меня опять пробило глянуть, как обстоят дела с LaTeX под Андроидом. Похоже, есть серьезые продвижения. Нашел тему на форуме и приложение. Сам я с ними, пока, не разбирался. Боюсь, мой телефон не потянет. Кроме того, он у меня сейчас находится в стадии экспериментов над прошивками и, вообще, пора менять его, по-моему. Короче, не хочу лишнего городить. Но это был бы еще один вариант редактирования GTD прямо по пути на работу/домой/на шашлыки/да куда угодно.

    3. всегда с тобой (если только ты её в облако не засунул).

    Эээ... А что будет, если ее в облако засунуть?..

    Собственно, я за то, чтобы реализовывать GTD по мере изучения.

    Так и планирую. Просто, надо начитать столько, чтоб можно было смело начинать :) Думаю, со следующей недели буду потихоньку запускать всю систему.

    ОтветитьУдалить
  26. @Сирожа комментирует...

    Продолжим тему.

    А имея дома NAS, на который можно "натянуть" дебиан и превратить его в слабенький, но сервер, грех не воспользоваться такой возможностью

    Ты недооцениваешь силу и притягательность бумаги: в бумажной ГТД-системе не сядут батарейки, она всегда под рукой, даже если попадёт под проливной дождь - всё равно будет работать. На бумаге легко набрасывать следующие шаги, она лучше выглядит, легче вычёркивать сделанное. Если ты посмотришь на Circa, то увидишь, что бумага тоже может быть очень гибким инструментом.

    У меня ГТД делается и на бумаге, и на компьютере. Появилась идея в дороге \ на прогулке - записываю на бумаге, потом кидаю в Inbox, прихожу и обрабатываю. И наоборот: перед сном какую-нибудь ценную мысль удобнее напечатать на смартфоне.

    Да, инструменты не исключают друг друга: я использую и латех, и маркдаун. На маркдауне у меня все активные шаги к проектам и большинство списков, что через pandoc перегоняется в LaTeX для печати. Всё загнано в Mercurial для синхронизации между двумя ноутбуками.

    Штука в том, что GTD это не набор блокнотов или программ, а стиль мышления, набор привычек и трюков - как угодно. Реализация вторична - на чём тебе удобнее, на том и делай.

    Я не рекламирую свою латехГТД систему, а просто привожу её в качестве иллюстрации: я лучше всего знаю латех, и поэтому на нём и сделал. Но это не единственная возможная реализация! Вот примеры:

    1. маркдаун плюс интегрированная среда

    Можно реализовать все на markdown - там очень легко делать списки, особенно вложенные. Сервисы вроде Markable.in имеют подсветку и автодополнение списков.

    Минус - придется искать среду разработки (eclipse?), которая позволит открывать внутренние файлы проектов \ календарей. Вопрос распечатки тоже есть: перегонять в латех?

    Плюс в том, что этоможно легко синхронизировать с планшетом или смартфона - куча приложений типа Epistle или Markdrop.

    2. Zim
    Вообще зим больше всего подходит для справочных материалов, ибо там все упорядочено по алфавиту.

    3. tiddlywiki
    Вебдванольно, настраивать легко, но глючно.

    4. на бумаге
    Да-да, можно забить на этот ваш вебдваноль и все сделать на бумаге. В этом тее поможет Circa, про которые тоже был пост.

    Вот тебе ещё бумажная реализация GTD: мужик сделал обновление активных шагов в бумажной версии гтд с помощью желтых липучек. Ссылка на Unplugged Organization: The Sticky-Note GTD System раз и два. На липучке пишутся активные шаги и приклеиваем к бумаге.

    Чтобы у тебя предохранители не вылетели от такого разнообразия, скажу: не важно, что ты используешь для реализации. Важно, чтобы оно умело легко делать списки и менять их. Хоть в ворде - списки это ключ к GTD.

    И ещё. Начни с одного-единственного проекта, который сидит в твоей голове. Определи его цели, результат и активные шаги. Выбери проект, который длится месяц или два - чтобы делать еженедельный обзор каждую неделю. Он будет коротким :-)

    Постепенно добавляй и другие проекты, заодно думая, на чём всё реализовать. Лишь бы это было сравнительно просто, легко и могло быть запросто адаптировано под обстоятельства.

    ОтветитьУдалить
  27. И это именно то, что мне навится в данной реализации.

    Собственно, тем и люба. Но как я отметил выше, эта реализация - не единственная. Ещё на emacs+orgmode можно посмотреть, но это на любителя.

    Если на флеху кинуть портативную версию texlive, а то и livecd дебиан, так, вообще, появится система, которую можно будет редактировать чуть ли не на любом компе.

    Ну да, это ж текстовые файлы.

    Да, ещё. Не стоит усложнять систему, иначе не захочешь ей пользоваться. В этом посте версия латехгтд содержит кучу переключателей под форматы бумаги. В той версии, что я использую сейчас, ничего этого НЕТ. Там просто А5 вбит намертво и всё, а печать буклетом на А4 реализована через PDFpages.

    В общем, чем проще - тем лучше.

    То, что я имею в виду под синхронизацией - это что все изменения, сделаные в LaTeX-GTD при сборке, автоматом вносятся в электронный календарь, список задач и т.п.

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

    Вся GTD-система должна помогать тебе делать дела, а не высасывать из тебя силы на GTD реализацию.

    А там оно (при желании, естественно) само уже синхронизируется с телефоном, ноутом и прочей фигней.

    Опять-таки, ты только усложняешь всё. Минимум телодвижений: hg push /mnt/exthdd и всё, забыл и пошёл пить пиво.

    как обстоят дела с LaTeX под Андроидом.

    У меня есть серьёзные сомнения в необходимости этого. Совсем серьёзные. Оно будет безбожно тормозить, и толку с этого дела не будет.

    Лично мне гораздо более интересны apps умеющие писать Markdown/Text и синхронизовать с Dropbox. Был Epistle (а у меня он есть - я его забекапил и пользуюсь), и он был хорош. Сейчас есть Markdrop и Denote. Удобно набрасывать сразу целые проекты в маркдаун в дороге (например, из Ньюкасла в Сидней - три часа пути на поезде).

    Потом приходим домой и конвертируем в латех.

    Боюсь, мой телефон не потянет.

    Вот и я боюсь. Оно и лаптоп-то грузит так, что мама не горюй...

    Но это был бы еще один вариант редактирования GTD прямо по пути на работу/домой/на шашлыки/да куда угодно.

    См. выше про маркдаун - оно проще и быстрее. Попробуй Denote, оно айс. Не идеал (Epistle был лучше), но всё равно хорош. Дома проходишься pandoc и конвертишь в HTML/Latex/Wiki/шо хошь и всё. Синтаксис маркдауна прост до смешного - а списки делает лучше латеха.

    3. всегда с тобой (если только ты её в облако не засунул).

    Эээ... А что будет, если ее в облако засунуть?..


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

    Думаю, со следующей недели буду потихоньку запускать всю систему.
    Успехов. Я тебе тут вывалил идей целый камаз :-) Будет интересно посмотреть на результат.

    ОтветитьУдалить
  28. Ещё на emacs+orgmode можно посмотреть

    Та меня все kile не отпускает. Начну, пока, так, а там видно будет. Может, GTD поможет мне освоить emacs :)))


    Вся GTD-система должна помогать тебе делать дела, а не высасывать из тебя силы на GTD реализацию.


    Не-не, это из личного интереса. Я в свои юные годы немного недокрасноглазил, уверовав в силу Windows. И вот тебе на: оказывается, есть и ЛаТеХ, и Линукс, и скрипты "напиши сам", и чего только нет! В общем, это такой себе проект по изучению возможностей Линукс с пользой. Так, "на потом, когда время будет". То есть, "Someday/Maybe" :)

    Успехов. Я тебе тут вывалил идей целый камаз :-) Будет интересно посмотреть на результат.

    Информации, и правда, море! Спасибо большое! Постараюсь по мере работы с GTD делиться успехами.

    ОтветитьУдалить