Live data from Hacker News

Show HN: Grit – a multitree-based personal task manager

github.com

21–30 of 47 posts

Re: Show HN: Grit – a multitree-based personal task manager

#22
post #14
post #12

How do you handle ordering? I noticed: $ grit add -p 5 Bread (5) -> (6) $ grit add -p 5 Milk (5) -> (7) $ grit add -p 5 Eggs (5) -> (8) led to: ├──[ ] Get groceries (5) │ ├──[ ] Bread (6) │ ├──[ ] Eggs (8) │ └──[ ] Milk (7) And I didn't see anything about reordering tasks in the readme. Is everything sorted by title?

Yes, it's sorted by name in natural order. I haven't decided yet which would work best as default (this vs insertion order) -- feedback is welcome. This works well for numbered book chapters, something I personally find useful. In any case, the defaults will be configurable -- when I implement config :) (Another thing on the TODO list is adding an optional priority score for each task, and sorting those on top of the…

I hope you consider global prioritization of leaf nodes, either entered individually or calculated from weights of ancestor nodes.

One big deficiency of most todo apps is lack of support for making routes through the leaf nodes. I see that you can already do this with Grit via pointers and numeric task prefixes for sorting. But that brings us back to the bad old BASIC style line numbering problems.

Re: Show HN: Grit – a multitree-based personal task manager

#25
post #5

This looks pretty interesting! How is the data stored? Would it be difficult to sync among different machines?

Just SQLite - two tables, one for the nodes, one for edges + some fancy constraints and queries. I was tempted to make a custom binary format, but that's a big task, and it seems to work fine as it is. As for the syncing, that would be really nice, but I haven't come up with an elegant way to do it yet. Suggestions welcome, if anyone has ideas!

Some sort of UUID for task identifiers so that you can beam them around without collisions.

Re: Show HN: Grit – a multitree-based personal task manager

#27
post #5

This looks pretty interesting! How is the data stored? Would it be difficult to sync among different machines?

Just SQLite - two tables, one for the nodes, one for edges + some fancy constraints and queries. I was tempted to make a custom binary format, but that's a big task, and it seems to work fine as it is. As for the syncing, that would be really nice, but I haven't come up with an elegant way to do it yet. Suggestions welcome, if anyone has ideas!

git. The right storage backend is either git, or a git-like Merkle tree. This is small data. Individual files for objects are fine. Compacting is better, but not critical.

You can write git in a weekend or two: https://wyag.thb.lt/

sqlite is the wrong tool for the job, beyond an initial prototype. git and hg figured this stuff out decades ago.

Good job, by the way. This seems like the sort of thing which, if:

* it did store data in git and sync; and

* had a nice Python API

would change how I work.

The Python API, I could probably even handle myself. This is small data, and calls to shell commands are both more than adequate, and easy to script in Python.

Re: Show HN: Grit – a multitree-based personal task manager

#28
I really like trying out tools that allow me to organize and track tasks, as they help me keep focused and more motivated if I know where I am, what I have done and what I need to do.

Grit is really cool, the name feels a bit unfortunate as it might have muscle memory overlap with “git” - nothing that can’t be solved with an alias but perhaps something to ponder.

I also sadly see limited use for a task tracking system that I don’t have with me at all times - I would love a way to use grit on my phone and desktop computer with some kind of sync. Otherwise it would be limited to tracking work-related stuff as when I’m not working I really don’t use the computer; the grocery list example was really nice but I don’t carry my laptop to the grocery store :)

I really like Grit, will keep an eye on how it evolves.

Re: Show HN: Grit – a multitree-based personal task manager

#30
post #5

This looks pretty interesting! How is the data stored? Would it be difficult to sync among different machines?

Just SQLite - two tables, one for the nodes, one for edges + some fancy constraints and queries. I was tempted to make a custom binary format, but that's a big task, and it seems to work fine as it is. As for the syncing, that would be really nice, but I haven't come up with an elegant way to do it yet. Suggestions welcome, if anyone has ideas!

Since you are using SQLite you can look at how fossil does syncing of their table(s). Since Fossil is just a sqlite DB.
Post reply on HN