Posts tagged "emacs":
re: Zettelkasten concerns
I recently read the article Zettelkasten/Org-roam/Org-brain Is Crap. After sending this response to the author, they asked for a place to link it.
There were a few misconceptions to clear up and a few tips I thought I'd
share. For context, I went from a very large
eng-log.org file to multiple files
(~210) managed through org-roam at the end of 2021. I probably don't follow zk
precisely, but something in that vein. My work is not based in research, but as
an architect at a large company.
My zk is primarily centered around projects. I have a file for each large initiative I'm working on at work. I also keep daily notes using org-roam-daily. There are additional concept files which are linked from my initiative and daily note files. In practice, my usage may be more like a wiki than a more traditional zk with every thought being a file. I lean heavily on agenda mode to surface timely information about what I should be doing/thinking about on any given day.
This definitively needs to be separated from my personal knowledge-base Zettelkasten.
I don't have any experience with separating my knowledge bases (work vs other things) and this isn't something I'm interested in. If my work happens to relate to calculus, all the better and it would likely be something others are interested in as well. In practice, I took a course on calculus recently, which resulted in a clearly bifurcated knowledge graph.
As far as I understood, besides navigating via links, searching within zettelkästen is mostly based on tags and titles of those Zettel. However, I prefer the body text being part of the search space.
I don't use org tagging for my zk, but rather have things like synthetic nodes which many notes link to. I do use the full-text search provided by deft to search my notes quickly.
Normal Org files may be used on my Android smart phone with Orgzly. I don't think that usage patterns, especially search, is possible with synchronized Zettelkasten files on my phone.
I'm not sure what it is that you think you're missing here, but I can confirm that syncing zk files on the phone is possible and that orgzly's search functionality does indeed work. That said, it's not all wonderful. Orgzly doesn't really understand zk/roam, so authoring new files is a bit of a pain. I usually stick to simple edits or use it in view-mode.
Thank you for telling me about radio targets. 🙌🏻 I'm now frustrated they don't work across files for my zk. 😅 The automatic linking sounds wonderful.
I do have a gut feeling that several operations might be affected in a very bad way.
I found that emacs was happier w/ split files, especially when combined with lazy loading the documents after initial startup.
Currently, I don't have to care where I'm adding new TODOs since all of my major Org files are part of my agenda. With Zettelkästen, I don't think that this can be continued.
You can still do this and it's not slow, in my experience. This is how I operate. See the vulpea section here: https://justin.abrah.ms/dotfiles/emacs.html
The second paragraph of your "split brain" section has a trailing if.
Same holds true for my blog. I wrote the lazyblorg blogging software so that I am able to define blog entries everywhere. This would not be valid any more for blog articles within Zettel.
This is valid. I don't have good answers for this. My blog posts are (frustratingly) kept separate from my zk.
I was excited about browsing my zk connections. I think it's useful. It's more handy w/ being better at documentation. Seeing that something isn't as connected as it should be nudges me to add a few additional links so things are more appropriately associated.
the function '..' is not known to be defined
I was working on ox-gemini, a gemini exporter for org-mode documents. In the
latest versions of emacs,
string-replace is a function which replaces a word in
a string. It doesn't exist in emacs 27.2 and earlier, so I added a simple shim.
;; backport for older emacs verisons (if (not (fboundp 'string-replace)) (defun string-replace (from to in) (replace-regexp-in-string (regexp-quote from) to in nil 'literal)))
The shim says "If you don't see a string-replace function, use this one). Unfortunately, this left me with this compilation error:
In toplevel form: ox-gemini.el:286:1:Error: the function ‘string-replace’ is not known to be defined. Makefile:5: recipe for target 'compile' failed
The solution to this is to use
declare-function to say where emacs should be able to find the function. This is effectively a way to say "Emacs.. trust me.. it's around here somewhere" and squelches the error.
Here's the final code snippet.
;; backport for older emacs verisons (if (not (fboundp 'string-replace)) (progn (defun string-replace (from to in) (replace-regexp-in-string (regexp-quote from) to in nil 'literal)) (declare-function string-replace "ox-gemini") ))