summaryrefslogtreecommitdiffstats
path: root/2022/talks/orgsuperlinks.md
diff options
context:
space:
mode:
Diffstat (limited to '2022/talks/orgsuperlinks.md')
-rw-r--r--2022/talks/orgsuperlinks.md196
1 files changed, 196 insertions, 0 deletions
diff --git a/2022/talks/orgsuperlinks.md b/2022/talks/orgsuperlinks.md
new file mode 100644
index 00000000..ba94f71d
--- /dev/null
+++ b/2022/talks/orgsuperlinks.md
@@ -0,0 +1,196 @@
+[[!sidebar content=""]]
+[[!meta title="Linking headings with org-super-links (poor-man's Zettelkasten)"]]
+[[!meta copyright="Copyright © 2022 Karl Voit"]]
+[[!inline pages="internal(2022/info/orgsuperlinks-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-generate-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Linking headings (poor-man's Zettelkasten) and defining advanced task dependencies
+Karl Voit (he/him, IRC: publicvoit, <mailto:EmacsConf22@Karl-Voit.at>)
+
+[[!inline pages="internal(2022/info/orgsuperlinks-before)" raw="yes"]]
+
+As written in [this blog
+article](https://karl-voit.at/2020/06/14/Zettelkasten-concerns), Karl
+thinks that a full-blown Zettelkasten workflow is not always a perfect
+match for a given set of requirements.
+
+To him, the most important aspect of the Zettelkasten method are the
+**bi-directional links between arbitrary headings**. If you want to use
+such links without the additional burden and benefit of a
+Zettelkasten implementation, you might want to learn how
+bi-directional links are able to help you here.
+
+In this talk, you will see a demo how links are used in the author's
+setup for linking headings and **defining advanced dependencies between
+todo headings**.
+
+You can find [the **self-contained demo file** on
+Gitlab.com](https://gitlab.com/publicvoit/orgmode-link-demo). It
+consists of various packages and some Elisp glue to create these methods:
+
+- Bi-directional links between headings:
+ - [org-super-links](https://github.com/toshism/org-super-links) with `org-super-links-org-ql` and `org-super-links-org-rifle`
+ - `org-super-links-quick-insert-inline-link`
+ - `org-super-links-quick-insert-drawer-link`
+ - [org-linker](https://github.com/toshism/org-linker)
+
+- Advanced dependencies:
+ - [org-edna](https://www.nongnu.org/org-edna-el/)
+ - [org-linker-edna](https://github.com/toshism/org-linker-edna)
+
+- Search, completion and narrowing:
+ - [helm](https://emacs-helm.github.io/helm/)
+ - [helm-org](https://github.com/emacs-helm/helm-org)
+ - [org-ql](https://github.com/alphapapa/org-ql) with `helm-org-ql`
+
+- Adding CREATED properties for new headings: [org-expiry](https://git.sr.ht/~bzg/org-contrib/blob/master/lisp/org-expiry.el) (not necessary for any demo functionality)
+
+More on bi-directional links and Karl's Org mode projects:
+
+- [UOMF: Linking Headings With org-super-links (Poor-Man's Zettelkasten)](https://karl-voit.at/2020/07/22/org-super-links/)
+- [UOMF: On How to Define Projects in Org Mode](https://karl-voit.at/2019/11/03/org-projects/)
+- [A Draft Workflow for Advanced Project Management Using Org Mode and Org Edna](https://karl-voit.at/2020/08/14/project-mgt-draft/)
+- [Zettelkasten/Org-roam/Org-brain Is Crap](https://karl-voit.at/2020/06/14/Zettelkasten-concerns/)
+
+[More Emacs-related articles by Karl](https://karl-voit.at/tags/emacs/)
+
+# Discussion
+
+## Notes
+
+- Please note that Karl has written additional notes and links on
+ <https://emacsconf.org/2022/talks/orgsuperlinks/> + the linked blog
+ article <https://karl-voit.at/2020/07/22/org-super-links/>
+- Method vs. tool:
+ <https://karl-voit.at/2021/01/18/feature-vs-method/>
+- nice talk
+
+## Questions and answers
+
+- Q: so the LINKS drawers holds so-called "backlinks"?
+ - A: yes. You can customize the drawer name.
+- Q: does this configuration you use need packages outside elpa?
+ - A: yes. repository link:
+ <https://gitlab.com/publicvoit/orgmode-link-demo>
+- Q:Can you filter out blocked taskes on stuff like your agenda or a
+ specific agenda view, When you want to know what you can do next?
+ - A: Blocked tasks are never shown on the agenda by default.
+ Whenever there is no scheduled timestamp attached to a heading,
+ it's not visible on my agenda. If you use the dependencies as
+ described in the demo, the timestamp is only marked if the
+ previous one is canceled. So blocked tasks are not shown in this
+ setup.
+- Q:The functionality seems quite nice but the markup seems pretty
+ heavy in the property drawers.  Do you ever have any issues having
+ so much meta-level information in the file?
+ - A: As long as it doesn't need to be typed manually there's no
+ real issue. The orgmode files tend to be large. I haven't felt
+ it's bloated.
+- Q:Does this change how you use todo keywords "next, todo,
+ blocked?", avoiding some or starting to use others
+ - A: No. My keywords are NEXT, STARTED, WAITING, DONE, CANCELLED
+- Q:Org Brain has stuff like parent links and directional links,
+ sibling links. If org roam else has nothing else intersting what
+ about like the previous stuff?
+ - A: My links are not "directed" most of the time. So I don't
+ have the requirment for specific link types or directions. In
+ short: I don't need semantic links so far. Following the KISS
+ principle. I get the information from the context of the link.
+- Q: DO you find that the links are fragile, hard to maintain?
+ - A: not really. sometimes I rename links and the link name is not
+ updated, that require some fixes by hand
+- Q: PhD Thesis link
+ - A: <https://karl-voit.at/tagstore/en/papers.shtml> The first
+ chapters of my thesis should be easy to read for the general
+ public as I summarize the history of PIM (Personal Information
+ Management) research
+ - + related github projects around tagstore
+ <https://github.com/novoid/>
+ - tagstore <https://karl-voit.at/tagstore/> = research
+ prototype software in Python to do research around tagging
+ interfaces for local files
+ - flexible to adapt
+ - Topic: improving the local file management beyond the usual
+ hierarchy of directories (tagging + TagTrees)
+ - DONE AFTER my PhD:
+ <https://karl-voit.at/managing-digital-photographs/>
+ filetags, date2name, move2archive, ...
+- Q: why not org-id's UUIDs for IDs, and the preference for
+ human-readable ones (and not just use CUSTOM_ID for those)?
+ - Karl: I hate UUID because they're opaque, so I removed them.
+ - I don't understand. There is a part for human to read
+ description: [[UUID][A human readable description]]
+ - Karl: this would not add any benefit from my personal point
+ of view as longs as the human-readable ID is unique. So why
+ not get rid of the UUID and use the humand readable link
+ text?
+ - A human readble link is fragile, e.g. space, non acsii
+ characters. When unexpected things happen, it is hard to
+ detect the change. Using human-readable link text
+ release the stress, so the user could focus on the
+ content. 
+ - Karl: You should take a look at my Elisp function that
+ generates the ID strings. No problem so far.
+ <https://github.com/novoid/dot-emacs/blob/master/config.org>
+ - I found you write a blog about it:
+ <https://karl-voit.at/2019/11/16/UOMF-Linking-Headings/>
+ . I will read about it.
+ - I found `(defun
+ my-generate-sanitized-alnum-dash-string(str)`
+ in the
+ - way to generate your ID requires replace
+ non-ASCII characters: ;;
+ - Replace German Umlauts with 7-bit ASCII.
+ - ;; Replace German Umlauts with 7-bit ASCII.
+ - (str (replace-regexp-in-string "[Ä]" "Ae"
+ str t))
+ - (str (replace-regexp-in-string "[Ü]" "Ue"
+ str t))
+ - This is a very tedious work to do. I don't know
+ if users come from
+ - other non-ASCII characters would have to write
+ their own replacement
+ - regular expression.
+- Q. do you have/use anything for "what links here / to this
+ heading", in a more occur/grep-style buffer and auto.?
+ - A: not yet, I use org-occur in the buffer and get the result
+- Q: (totally tangential):  Do you navigate your files with the arrow
+ keys or with C-{pnbf}?  I saw arrows on your key-cast.
+ - It's more complicated than that:
+ <https://karl-voit.at/2021/05/23/advantage2-modifications/>
+ - In short: I'm using the arrow keys but they are not where
+ you'd assume they are. ;-)
+- Q: link to thesis please
+- Q: any way to do links by heading hierarchy?
+- Q: so the LINKS drawers holds so-called "backlinks"?
+ - A: yes. You can customize the drawer name.
+- does this configuration you use need packages outside elpa?
+ - A: my setup Elisp could be improved to great extend.
+ - A: <https://emacsconf.org/2022/talks/orgsuperlinks/>
+ - A: <https://gitlab.com/publicvoit/orgmode-link-demo>
+
+### Other discussions from IRC
+
+- Wow, this looks super organized
+- i have to admire embedding that much info into tasks (ie: blocked, next, etc), i never get that far. my headings are much more lightweight, i'd likely use a plain list if i could fold over the text below
+- Is there a specialized package for showing backlinks (org-mode) in a buffer, say based on IDs, in a normal occur buffer or even a grep/rg style thing?
+- i really like that both publicvoit's org-superlinks and hyperbole are both elisp and inside emacs, where org-roam is a hodgepodge of external tools (my impression)
+ - isn't sqlite the only external dependency for org-roam though?
+- Speaker: Actually, to create the demo fully self-contained was most of the effort with this demo. By far.
+- Fashion:
+ - *that* is a dapper looking fellow!
+ - Really loved the ending publicvoit
+ - haha the goodbye was epic
+ - I am way underdressed for this conference it appears
+ - oh! I backed up and see the shorts that publicvoit was wearing!
+ - A fashion leder if you will
+ - I was here for the fashion. Not dissapointed.
+
+[[!inline pages="internal(2022/info/orgsuperlinks-after)" raw="yes"]]
+
+[[!inline pages="internal(2022/info/orgsuperlinks-nav)" raw="yes"]]
+
+[[!taglink CategoryOrgMode]] [[!taglink CategoryZettelkasten]]