Как я докатился до учета времени в Obsidian

Как известно если у вас в руках молоток - любая проблема видится гвоздем.
Вот и я люблю писать код - соответственно для любой проблемы ищу решение через написание кода. А может быть ищу себе проблемы, чтобы можно было кода пописать :wink:

Мне нравится obsidian, управлял своими проектами тут. Поэтому когда начал курс по системному саморазвитию и коснулись темы инвестирования и учета времени захотел прикрутить сюда же и учет инвестированного времени.
До того как задумался учетом времени - вел проекты с помощью трелло плагина в obsidian:

  • несколько колонок с проектами, в которых отсортированные по приоритету карточки(старался их делать размером с 1-2 помодорки)
  • одна колонка(сегодня)
    • каждый вечер наполнял эту колонку из других проектных колонок
    • следил чтобы кол-во помодорок на следующий день было ± такое чтобы можно было выполнить

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

Сначала продолжил проекты как было, но завел отдельный googleSheet со временем, под каждый проект своя страница, с колонками-подпроектами. Где указывал дату начала/конца, сколько всего, из этого рассчитывалось сколько нужно в день, так же каждый день отмечал в часах сколько инвестировал.

(пример взят из страницы учета времени по курсу Системное Саморазвитие)

Был прикольный график, который показывал мне какой у меня прогресс, я опаздываю или норм иду:

Так же была страница с агрегацией по всем моим проектам, которая показывала сколько я сделал за сегодня и по какому проекту и сколько мне еще осталось сделать:

В целом все было норм. Но:

  1. Графики мне постоянно не нужны
  2. Идти в отдельную GoogleSheet мне не хотелось, хотелось в одном месте это все
  3. Шаблон на проект получился очень уже геморный и не особо гибкий(если я хотел проекты с пропусками, или нерегулярные, или повторяющиеся - стройная картина не особо вырисовывалась)
  4. Трелло-плагин был довольно убогий и не получалось в трелло-карточки запихнуть что хотелось

Далее узнал, что в Obsidian есть плагин Dataview, который умеет индексировать содержимое страниц и позволяет строить запросы к этому индексу.
Хм, ну так это идеально что нужно, если есть язык запросов к содержимому то можно делать почти все что угодно.
А потом еще оказалось что у страниц в Obsidian можно поддерживает FrontMatter свойства. Ну вообще здорово, не придется выдумывать свой формат и как-то криво размещать его на страницах, все уже есть.

Так появился шаблон под каждый проект, если мне нужен проект, просто создаю новую страницу с такими полями:
Pasted image 20231103070916

Тут отмечаю проект в работе или нет, сколько запланировано в день, сколько сделано за сегодня, приоритет для сортировки, и reportKey - это для экспорта(коснусь позже). Это для случая если проект простой и у меня нет подпроектов.

Если же я хочу репортить подпроекты - я делаю вот такой формат

Где doneToday заменено на набор |название подпроекта|_sub_done_today.
В поля doneToday или subdone я делаю +1 каждый раз когда закончилась помодорка.

Далее, с помощью возможностей Dataview вывожу список всех активных проектов и прогресс по ним за сегодня

Это что касается на день. И обычно меня только дневные вопросы и интересуют. Но нужно сохранять все эти данные для статистики.
И тут довольно просто:

  1. свойства о том, сколько я сделал за сегодня хранятся в Markdown во Frontmatter формате, это yaml, который легко парсить

  2. написал немного когда который проходит по всем проектным файлам и вытягивает сколько помодорок сделано за сегодня и с помощью reportKey раскидывает их по нужным категориям, дополнительно конвертирует помодорки в часы, так у меня есть возможность в будущем менять длительность помодорок и все будет работать

  3. этот код запускается автоматически каждый день в 21:00 (я завершаю все активности в 20:30 и не сижу за компом после)

    1. добавляет результат за сегодня в .csv файл
    2. чистит doneToday во всех файлах
  4. итоговый файл получается вот таким

  5. Просто складируется, время от времени ради интереса я строю какой-то график по этим данным. Или делаю репорт об инвестированном времени в канал группы

5 лайков

Такой подход это следствие ведения проектов в Obsidian? Не проще будут спец. решения типа track.toggl.com? А так очень круто, конечно. Осталось решить вопрос с таблицами и можно полностью в Obsidian переезжать)

1 лайк

Такой подход это следствие ведения проектов в Obsidian?

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

Не проще будут спец. решения типа track.toggl.com?

Если он умеет интегрироваться с Обсидиан - да, если не умеет - нет. Мне неудобно/неприятно между кучей тулов переключаться, если одна может решить(даже пусть и не лучшим образом).

Осталось решить вопрос с таблицами и можно полностью в Obsidian переезжать

Ну тут уже смотря какой сложности и размер таблицы, но да. Плюсую)

Классно, а как выбирается количество помидорок в день и приоритет?

Количество помодор на проект в день выбирается исходя из того сколько примерно времени уйдет на проект и когда условный дедлайн, или если как в курсах есть рекомендации сколько всего часов на курс/неделю нужно инвестировать. Например есть рекомендация на курс - 10-15 часов в неделю - значит в день 3-4 помодорки(если по 30 минут).

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

Как-то так. Но в целом я играюсь с форматом и меняю что-то время от времени, чтобы было удобнее.

1 лайк

Желание понятное и даже в некоторой степени полезное.

Но, с другой стороны, придерживаясь такого подхода, вы уменьшаете “bus factor”, что не есть хорошо.

Как найти “золотую середину”?

Поскольку это все от меня, для меня, мной и со мной - меня это не волнует. Заметки и файлы в любом случае останутся, если что-то произойдет с obsidian - ну перейду на какой-нибудь opensource logseq или типа того

1 лайк

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

“могут содержать” или “поддерживают”, да, очепятка слегка