Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How do you use / integrate org-roam in different setups #144

Closed
leoc opened this issue Feb 20, 2020 · 17 comments
Closed

How do you use / integrate org-roam in different setups #144

leoc opened this issue Feb 20, 2020 · 17 comments

Comments

@leoc
Copy link

leoc commented Feb 20, 2020

Hey there! I am new to the whole Zettelkasten/Roamresearch game, but I think I fell in love with the concept already! Thank you, for putting this thing out so I got wind of it!

Maybe you already have another channel for these discussions, but I would love to know how other people are integrating their existing notes, todos, project files etc with org-roam or similar. ❤️

I am currently reading the book from Sönke Ahrens and would love to incorporate org-roam into my workflow, but feel the need for some inspiration. 😅

@jethrokuan
Copy link
Member

Maybe you already have another channel for these discussions, but I would love to know how other people are integrating their existing notes, todos, project files etc with org-roam or similar.

I don't yet, but if there's enough interest, I can start one.

@leoc leoc changed the title How does your usage / integration of Org-Roam in different setups How do you use / integrate of org-roam in different setups Feb 20, 2020
@leoc leoc changed the title How do you use / integrate of org-roam in different setups How do you use / integrate org-roam in different setups Feb 20, 2020
@leoc
Copy link
Author

leoc commented Feb 20, 2020

Alright, so we can keep it here? :-)
I currently have a few giant "environment"-related (e.g. project, business, customer) org-files. I capture a lot of stuff into them. As far as I understand I would have to diverge from this paradigm and put everything into smaller files, so I can reference them? How do you manage your TODOs and do you integrate them into org-roam?

@jethrokuan
Copy link
Member

put everything into smaller files, so I can reference them?

The basic idea is to split out your notes into standalone chunks, and tag them such that they surface when you want them to.

How do you manage your TODOs and do you integrate them into org-roam?

My TODOs are currently separate from my org-roam. I'm using just a few files, with org-agenda. (More here https://blog.jethro.dev/posts/org_mode_workflow_preview/). Org-agenda slows down massively with a large number of files.

@l3kn
Copy link
Contributor

l3kn commented Feb 21, 2020

Making the org-agenda work with tasks / dates spread over a large number of files (> 1000) is tricky.

The main problem is that it uses markers for the locations of headlines,
these can't be persisted to disk and can't be created when parsing files in temp buffers
(which is faster than using the "real" files to do so).

A workaround (assuming only a small subset of files contains tasks / dates) is to set the org-agenda-files to a list of these files (e.g. using another cache or grep) before each call to org-agenda.

I think what I'll do for https://github.com/l3kn/org-zettelkasten (not working at the moment) is to make sure each task has an ID property and write wrappers for each org-agenda command that uses those instead of markers.

@jethrokuan
Copy link
Member

I think what I'll do for https://github.com/l3kn/org-zettelkasten (not working at the moment) is to make sure each task has an ID property and write wrappers for each org-agenda command that uses those instead of markers.

oof, sounds rough.

A workaround (assuming only a small subset of files contains tasks / dates) is to set the org-agenda-files to a list of these files (e.g. using another cache or grep) before each call to org-agenda.

Yeah, I never noticed this, but I can always loop through files listed by the variable org-agenda-files for building the cache, in addition to what's in org-roam-directory. I don't think I'll ever find that useful though.

@CHaskell2
Copy link

CHaskell2 commented Feb 22, 2020

Heya; I think this is the best place at the moment to ask a question like this, apologies if not.

I just started using org-roam and am looking into how to integrate it with pinboard for my daily capture/consume of bookmarks. I've got the trivial bit (use org-roam-today to create file, pull down bookmarks, append them as a plain text block to the note) working but I'm seeking some advice on a more complicated part.

So, pinboard has the concept of tagging your bookmarks; using that, this is what I'd ideally like to happen:

  1. Add a link to pinboard with a tag
  2. Bookmark is added to daily notes file
  3. Bookmark references any topic files that match a tag from the bookmark
  4. Topic files gain a link to the daily note

I'd set the processing of 2-4 on a daily cron, and I believe 4 would happen automatically if I do 3. right? For 3, I'd ideally avoid re-inventing org-roam-insert, but it also seems like the logic is straightforward (search for matching suffix "_topic.org", create org link to it, otherwise create file with timestamp and topic and link to that). Are there any beartraps I'd fall into if I reinvent the behavior of org-roam-insert in a separate process?

@nalhasan
Copy link

I, too, split org-agenda from org-roam because I don't want my writing to interfere with my planning/task management.

I suggest exploiting org-capture and refile tasks accordingly. You can have a header in one of your agenda files as "writing," "editing," or "revising" that links to the org-roam note you're currently in.

@alphapapa
Copy link

@CHaskell2 FYI you may find this useful for some of that: https://github.com/alphapapa/org-web-tools

@jethrokuan
Copy link
Member

@CHaskell2 I don't really understand the workflow you're describing. I suppose you want to give your topic file tags a diiferent file name suffix?

@jethrokuan
Copy link
Member

moving this kind of discussion to slack.

@aldanor
Copy link

aldanor commented Jan 29, 2021

A bit later to the party, but: https://d12frosted.io/posts/2021-01-16-task-management-with-roam-vol5.html

Basically, marking roam files with 'Project' tag, and then updating org-agenda-files to only look at those files, automatically. Isn't that cool? (any catches?..)

@d12frosted
Copy link
Contributor

d12frosted commented Jan 29, 2021

@Albanor I use this method with 3500 org files1 and since most of them are not projects, org-agenda still takes less than a second to build (and I am also using custom sections and filters in it). The only catch, this approach is optimised towards many small files. If you have a 400k2 lines file filled with TODOs, project marking is a little bit slow there. But since we are talking about org-roam, which shines with many small files approach, I guess it's not that critical. And it can be optimised further by not using elements-api (though this needs to be validated).

P. S. I am amazed someone reads that blog 😅

Footnotes

  1. I finished the last bit of migration from org-brain to org-roam, that's why numbers are different :)

  2. Didn't perform proper benchmarks to find the size which makes things clumsy, I tested with 100k, 200k and 400k, each having 1/4 todo entries (e.g. 25k, 50k, 100k).

@d12frosted
Copy link
Contributor

@Albanor I forgot to mention few important things.

  1. That approach depends on hooks working like a clock 😸 If they fail, some of the items might miss in your agenda. In my sense, this is terrible, because that's why we put all the tasks and thoughts into external system - our brain can't keep everything together. That's why two hooks and a script to go over all notes and make sure that project tag is up to date.
  2. It uses advices. I know, advices are bad and stuff, but it does the work ideally. You could wrap org-agenda manually and use wrapper, but it has obvious drawback - not everyone is going to call your wrapper, meaning you might get into outdated agenda files list. Which is terrible, hence advice.

That being said, I am using this approach for more than a month and could not be more happy.

@Albanor
Copy link

Albanor commented Jan 29, 2021

Hi, @d12frosted. You misspelled the mention and summoned me instead of @aldanor ;)
That being said, I don't know if it's fate or not, I was interested a long time ago in note taking.
Thanks to your happy mistake I can now deep dive into the "Zettelkasten Method" (which I didn't know).
Cheers :D

@d12frosted
Copy link
Contributor

🤦 While this turned out to be a happy mistake, I am sorry for misspelling your nicknames @Albanor and @aldanor (ah, even the first letter is of different case!). To my defense (and to retell a funny situation), I misspell my own name time to time, and once I did it thus far (email conversation):

  • Me: I just noticed that I misspelled your name! I am terribly sorry!
  • Bob: No worries, seriously. While we are at it, did you also misspell your name in email configurations?
  • Me: 🤦 yep

So for a long time I was sending emails as Boiris instead of Boris

@zoranzaric
Copy link

@Albanor I forgot to mention few important things.

  1. It uses advices.

What are advices in this context?

@d12frosted
Copy link
Contributor

@zoranzaric Sorry, I was talking about Function Advising (I should've say advising instead of advice). Specifically, this:

(advice-add 'org-agenda :before #'+agenda-files-update)

So list of agenda files is updated before org-agenda is called.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants