markor icon indicating copy to clipboard operation
markor copied to clipboard

Improve todo.txt for usage of Time tracking

Open gsantner opened this issue 7 years ago • 20 comments

General information

  • App version: v1.1.2
  • System: Android 7.1.1

Description

The goal is to add a new format option (like markdown / todo.txt / plaintext is), which has actions and highlighting for a time tracking format. At the current point it's unclear (or no favourite) which format should be implemented, but these are the rough points/requirements that should be doable:

  • Simple and lightweight format, fits into one file
  • As always, it's a textfile format, enter description etc, by freely editing text. A separate view/UI is not wanted. Dialogs are okay, as always.
  • best if one line = one time track entry
  • Multiple projects
  • Quick press start which starts a new task, you can always enter description later
  • Actions which popup a dialog, which do show how much work you did this day/week/month/year. Selection between overall and all projects.

Research

So the first part is research, to find out what is available, best if there are existing clients and java-libraries available for given format/standard. If not much results are available, it's suggested to go for an extended kind of todo.txt. To use Start/end date and add times as key:value pairs that is shown in standard also. Things like projects and context are already available in this format.

gsantner avatar Sep 15 '18 18:09 gsantner

Hi, I would like to pick this one up, if nobody else is working on it.

petraspeter avatar Oct 15 '18 20:10 petraspeter

as all open issues - free to take! open for requests! :)

gsantner avatar Oct 15 '18 20:10 gsantner

How about Taskpaper format?

Everything is done as an @ tag. @start(DATE) would be a start date, @due(DATE) would be the due date. Other tags could include @priority(), @today, etc.

I have my lists in Taskpaper format and use a Vim plugin on the desktop and Editorial on my iPhone, but I now have a need to work with them on Android.

mrrcollins avatar Jul 14 '19 15:07 mrrcollins

Can you paste a example file?

gsantner avatar Jul 14 '19 17:07 gsantner

Sure can!

Computer:
- Run backups @due(2019-07-31)

Phone:
- Call mom @today
- Schedule haircut @due(2019-07-31) @priority(3)

Errands:
- Pick up milk
- Get gas

Home Remodeling:
- Get quotes @start(2019-08-01) @due(2019-08-11)
- Purchases supplies

Archived:
- Post example file to Github @done(2019-07-27) @project(Computer)

In Taskpaper, a line that ends with a colon is the name of the project, and the next lines are part of that project. You can also use @project(PROJECTNAME) on the line items too.

The appearance of the lines can vary depending on the client. For example, when I use Editorial on my iPhone, each item in the list as a checkbox, and tapping the text box adds the @done() tag. Because the tags can be anything, it's very flexible, and easy to search. Searching for @today would give me all of the tasks tagged for today.

I like Taskpaper because of the easy ability to group items under a project, while still having the flexibility to have due dates and priorities.

Hope that makes sense!

And, if nothing else, set .taskpaper as a valid file extension for Markor. :-)

mrrcollins avatar Jul 27 '19 20:07 mrrcollins

@mrrcollins thanks for the example. I understand little better, but to be honest I think it's suiting good for todo, but I don't want to add a second todo format in Markor currently (just makes things harder to understand for users :smile:). Though I added the extension and your example to the samples directory, thanks

gsantner avatar Jul 27 '19 21:07 gsantner

Totally understandable! And if I can open .taskpaper files in Markor, that's at least more than I have now. :)

mrrcollins avatar Jul 28 '19 00:07 mrrcollins

Just putting ideas on paper: IMHO, as format the simplest way would be simply insert timestamp, with marking of start/stop times, staying with the txt files.

Time tracking format might be then:

Project1
   2019-09-18 09:45:06   note 1
 > 2019-09-18 09:49:16   note 2

Project2
   2019-09-18 10:40:06
 > 2019-09-18 10:40:16   started working on Project2, no specific task
 = 2019-09-18 10:44:16 
   Task 1
      2019-09-18 10:45:06
    > 2019-09-18 10:49:16   started working on Task1
    = 2019-09-18 10:49:26   note
    > 2019-09-18 11:49:16 
    = 2019-09-18 11:49:26 
   Task 2
      2019-09-18 10:48:06
    > 2019-09-18 10:59:16   started working on Task2

where

  ... created?
> ... started
= ... stopped
_ ... finished?

Not sure, if the "created" and "finished" timestamps would be important here, it might be simpler without it.

The syntax is taken from PyDitz, which is overkill for simple time tracking. This one uses yaml files and these are the symbols when displaying current tasks.

There is also a possible alternative display, using the idea that you cannot work at two projects/tasks at the same time.

The format then might be:

> 2019-09-18 09:45:06 @project1 #task1 note
= 2019-09-18 09:55:06 @project1 #task1 note
> 2019-09-18 09:55:06 @project1 #task2 note
= 2019-09-18 10:55:06 @project1 #task2 note
> 2019-09-18 09:55:06 @project2 note

where the start of the next project/task stops automatically the currently running task, if there is one. This one is a bit problematic because it mixes projects and tasks. It might need post-processing to be really useful. The first version is better readable for people, the second one would be better for post-processing (getting time totals).

An idea for a very simple "real" timetracking app - there is ATimeTracker. This app allows exporting of csv files; it might be worth looking at it for ideas.

majkaz avatar Sep 18 '19 10:09 majkaz

Thanks for idea, nice!

I'm just feeling like one line wont fit on the screen at editor. May potentionally behave like todo.txt from UI side (ie dividers)

gsantner avatar Sep 18 '19 18:09 gsantner

Personal time tracking

# 2019-09-21
0900 wake up, breakfast, shower
1000 worked on #project1
1015 few minutes off, youtube
1150 #project2 @office
  • each entry is completion and result
  • time spent can be calculated as current rime - previous record time
  • I usually use gtd/todo.txt conventions like @home and #project1
  • minimal typing - suitable for smartphone

kai11 avatar Sep 20 '19 22:09 kai11

Another suggestion similar to my previous idea, even if I am not quite sure if this is suitable for time tracking.

What about jrnl file format? It is a very simple command line app that writes journal in a txt file:

Example:

[2019-09-27 13:19] subject 1

[2019-09-27 13:19] subject 2

[2019-09-27 13:20] subject 3 @tag1 @tag2
- text 1
- text 2
- text 3

It might be interesting to offer this format. At the moment, just setting the file to todo.txt format works just fine, the only extension would be the date time format at the beginning of the line.

majkaz avatar Sep 27 '19 11:09 majkaz

@majkaz The format looks quite like competing with todo.txt. In general theres not much about against that as Markor is about choice.

BUT. if I have the choice between adddition of a simpler more-timing-specific format and a more advanced todo&timing format I would rather prefer/go for the simpler approach.

Don't know, maybe todo.txt is already what we're seeking for - just requiring some additional love for timing - just a thought I did now by that suggestion.

gsantner avatar Sep 28 '19 08:09 gsantner

it will be a lot of effort to implement all required features. I am afraid the result will be only a simple solution which can't compare to excellent existing systems.

Since I use Android I use this app: "Zeiterfassung Pro"

There is also a free Version

It is one of my most important Apps and I use it daily. There are so many required features, especially for different kind of reporting. You could open a "Fass ohne Boden" if you try to enrich Markor with time tracking.

aisbergde avatar Jun 06 '20 08:06 aisbergde

Recently I have begun using a very simple format which is somewhat similar to todo.txt. I use this for logging more than time tracking.

Each line in the file is a single log entry consisting of an ISO date-time string and a text description. The text description can optionally have tags and progects (similar to todo.txt) . All log entries are completely independent (i.e. position in the file has no intrinsic meaning, again, like todo.txt)

For example

2020-07-10T07:00 Got up
2020-07-10T07:15 Had coffee @Food
2020-07-10T07:30 Had breakfast @Food
2020-07-10T07:45 Went on morning run @Exercise

This is actually pretty easy to do in Markor. The date time dialog allows custom formats and long press inserts the last used format.

The enhancements we would need to make this more complete in Markor would be:

  1. Auto insert datetime (Very similar to date insert in todo.txt)
  2. Actions to add tags and projects
  3. Highlighting of datetime, tags and projects
  4. Sorting. Though I am not sure if this would actually useful.

harshad1 avatar Jul 14 '20 00:07 harshad1

it is a transparent way to track time using @aaa and +bbb and a timestamp in a simple flat file format. some special entries to finish work or to mark a break are also easy to define user specific. In your example you use @Food

One question is: how to do the required reporting and analytics. If this will be done in markor, this will not be "KISS" But the file format is simple and reporting could be done outside markor and markor will be used only to track. I would not ask to implement reporting in markor.

What I understand from the idea:

  • beside quicknote and todo.txt a new tracking.txt is required
  • some options how to generate the timestamp. For example rounding options (in your example it looks like 15 minutes rounding, another user could use 5 minutes rounding)
  • tracking context and project should not be mixed with the todo.txt:
    some similar hiding option like "h:1" could be used to define contexts and projects

aisbergde avatar Jul 15 '20 09:07 aisbergde

how to do the required reporting and analytics.

I do it completely on my PC with a couple of python scripts. Doing it in Markor is a bad idea imo.

  • beside quicknote and todo.txt a new tracking.txt is required

I think so. Right now I just do everything manually in .md but a custom format would help

  • some options how to generate the timestamp. For example rounding options (in your example it looks like 15 minutes rounding, another user could use 5 minutes rounding)

I don't think we want any rounding in Markor itself. The analytics side should be able to handle that (better not to lose any information early)

harshad1 avatar Jul 15 '20 18:07 harshad1

I've renamed the issue to more sound what it's about.
The new status is, no plan on introducing new format here, but using todo.txt as good possible.

gsantner avatar Jul 15 '20 18:07 gsantner

@gsantner I think the format we are talking about shares some common attributes with todo.txt, but is different enough that is should consider a different format.

harshad1 avatar Jul 15 '20 22:07 harshad1

I don't think we want any rounding in Markor itself. The analytics side should be able to handle that (better not to lose any information early)

I don't agree, for me a 5 minute rounding when creating the report is essential. Otherwise a post processing would be to complicated. A setting is fine, so each user can do what he wants. Maybe you need seconds, another one needs minutes, someone like me needs 5 minutes

aisbergde avatar Jul 16 '20 06:07 aisbergde

The new status is, no plan on introducing new format here, but using todo.txt as good possible.

I also think the format could be the same, but when filling the files then different options could be required. For example when filling a tracking file datetime is required and when filling a todo only date. But the structure of both files should or could be the same.

aisbergde avatar Jul 16 '20 06:07 aisbergde

Closing as todo.txt is what it is, and everything else is up to interpretation to user wants & needs. If you want to add hours/minutes/timestamps, to any file (be it md/todotxt/zim/whatever), there is the Date format dialog which helps you to insert dates & times. It also has custom formats & history of last used ones, and you can long press to insert text with last selected format.

So Markor is going to help people here when they need, but I'm not keen on inventing a new file format, or making todo.txt too much of what is not - at core it is one line = one item.

gsantner avatar Aug 21 '22 22:08 gsantner