diff options
Diffstat (limited to '2025/talks')
| -rw-r--r-- | 2025/talks/zettelkasten.md | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/2025/talks/zettelkasten.md b/2025/talks/zettelkasten.md index 5469831f..677d937b 100644 --- a/2025/talks/zettelkasten.md +++ b/2025/talks/zettelkasten.md @@ -31,7 +31,212 @@ For this presentation, I merely assume that you agree that writing improves the Christian is a macOS/iOS developer with a strong focus on user experience and clean architecture. Driven by a passion for accessibility and performance, Christian has shipped many apps and authored three technical books and 895+ blog posts, helping developers world-wide to realize their app ideas with a deep understand for the technologies they use. In 2013, Christian wrote about the Zettelkasten topic on his own personal blog and eventually moved everything over to <https://zettelkasten.de> where he and Sascha continue to teach and write. +## Code and Notes from the Talk +### Minimal Emacs + Denote Configuration + +This is the relevant configuration Christian used in the Emacs demo. Save this to a folder as `init.el`, and launch via: + + $ emacs -nw --init-directory . init.el + +`init.el` contents: + +```elisp +(load-theme 'modus-vivendi-tinted) ;; Dark theme to match dark slides +(menu-bar-mode -1) ;; Disable topmost menu bar + +(package-refresh-contents) + +(use-package denote + :ensure t + :hook (dired-mode . denote-dired-mode) + :bind + (("C-c n n" . denote) + ("C-c n r" . denote-rename-file) + ("C-c n l" . denote-link) + ("C-c n c" . denote-link-after-creating) + ("C-c n b" . denote-backlinks) + ("C-c n d" . denote-dired) + ("C-c n g" . denote-grep)) + :config + (setq denote-directory (expand-file-name "./notes/")) + + ;; Automatically rename Denote buffers when opening them so that + ;; instead of their long file name they have, for example, a literal + ;; "[D]" followed by the file's title. Read the doc string of + ;; `denote-rename-buffer-format' for how to modify this. + (denote-rename-buffer-mode 1)) + +;; For the demo, I forced notes to show in full screen by default. +(setopt display-buffer-alist nil) +(add-to-list 'display-buffer-alist + '("^\\[D\\] " ;; Denote buffer name prefix + (display-buffer-reuse-mode-window display-buffer-full-frame) + )) +``` + +### Notes created during the demo + +These are the notes Christian created during the recording. The recording was sped up 3x--4x, so this could be nicer to read than having to squint at the video: + +#### `20251121T204827--mechanics-and-habits-to-use-a-zettelkasten__zettelkasten.org` + +```org +#+title: Mechanics and habits to use a Zettelkasten +#+date: [2025-11-21 Fri 20:48] +#+filetags: :zettelkasten: +#+identifier: 20251121T204827 + +Essential: +- Write: put in effort; [[denote:20251121T205045][GIGO]] +- Connect: Link notes to create trails +- Correct: Improve as you go + +Additional: +- Design for use: give things a purpose, e.g. blog about it +- Create structure. [[denote:20251121T205312][Types of structures in a Zettelkasten]]: design new entry points and trails +- Start in the Zettelkasten: use the system to learn, make it grow, get better +- Start with a link: keeps your notes connected. [[denote:20251121T210416][Create notes as link first to avoid orphans]] + +Tool doesn't matter as much. Small files are good. [[denote:20251121T210107][Use Denote in Emacs]] + +(Christian Tietze: Zettelkasten for Regular Emacs Hackers, EmacsConf 2025) +``` + +#### `20251121T205045--gigo__programming_quality.org` + +```org +#+title: Garbage in, garbage out +#+date: [2025-11-21 Fri 20:50] +#+filetags: :programming:quality: +#+identifier: 20251121T205045 + +The principle known as "Garbage In, Garbage Out" (GIGO) in computer +programming states that for any system, the quality of output is +directly depending on the quality of input. + +See: https://en.wikipedia.org/wiki/Garbase_in,_garbage_out +``` + +#### `20251121T205312--types-of-structures-in-a-zettelkasten__structure_zettelkasten.org` + +```org +#+title: Types of structures in a Zettelkasten +#+date: [2025-11-21 Fri 20:53] +#+filetags: :structure:zettelkasten: +#+identifier: 20251121T205312 + +Non-comprehensive list of structures that could be used in a Zettelkasten: + +- Opposition pair: 1 note for the pair, 1 note per position/opposition each; pro/contra +- Table of contents: list of topics/headings + - an outline for a writing project + - recreation of a book's contents (so I can write in detail about the book); +- Argument: recreation of a distilled form to get to a conclusion; + list premises and evidence, and how these support the conclusion + - Counter-argument: address parts of the original argument to support another + view and test the argument's strength +- Table of things +- Graphics, like a concept map, Mind-Map, diagram: visually bring + elements into a relation, then write about the relation and the elements + +Metaphors: +- Iceberg: visibile tip with hidden depth; someting that appears small + but is large; good metaphor for obstacles +- Black box: focus on inputs and outputs, and ignore the 'how' in the middle + - e.g. most Emacs Lisp functions (hoping the documentation is good) +- [[denote:20251121T205739][Atom, molecule, organism]]: how small parts compose to larger parts, + which compose to even larger pieces + + +(Christian Tietze: Zettelkasten for Regular Emacs Hackers, EmacsConf 2025) +``` + +#### `20251121T205739--atom-molecule-organism-metaphor__composition_recursion.org` + +```org +#+title: Atom, molecule, organism metaphor +#+date: [2025-11-21 Fri 20:57] +#+filetags: :composition:recursion: +#+identifier: 20251121T205739 + +Atom: smallest part, indivisible elements +Molecule: comprised of atoms; structure added to combine elements +Organism: comprised of molecules; different level of analysis, irreducible to molecules/atoms + +This can be used e.g. for programming: functions compose into larger +functions which compose into packages. + +Actual biological organisms also work in such a way. Organs are part +of bodily functions (high abstraction), but from a chemical or +physical perspective, you can decompose them into atoms. That doesn't +tell you anything about the organ's function. +``` + +#### `20251121T210107--denoteel-for-zettelkasten-in-emacs__denote_emacs_zettelkasten.org` + +```org +#+title: Denote.el for Zettelkasten in Emacs +#+date: [2025-11-21 Fri 21:01] +#+filetags: :denote:emacs:zettelkasten: +#+identifier: 20251121T210107 + +While not shipping with Emacs out of the box, Denote is easy to install and a great start to manage notes: + +- it comes with unified way to create new notes, and hides time-stamped ID's with "[D]" in buffer lists +- it can manage links, and show incoming links to notes ("backlinks") +- it supports quickly adding links, and creating links _first_ out of + the box -- it just creates the note immediately, so you don't notice + - [[denote:20251121T210416][Create notes as link first to avoid orphans]] + +* Example configuration + +#+BEGIN_SRC elisp +(use-package denote + :ensure t + :hook (dired-mode . denote-dired-mode) + :bind + (("C-c n n" . denote) + ("C-c n r" . denote-rename-file) + ("C-c n l" . denote-link) + ("C-c n c" . denote-link-after-creating) + ("C-c n b" . denote-backlinks) + ("C-c n d" . denote-dired) + ("C-c n g" . denote-grep)) + :config + (setq denote-directory (expand-file-name "./notes/")) + + ;; Automatically rename Denote buffers when opening them so that + ;; instead of their long file name they have, for example, a literal + ;; "[D]" followed by the file's title. Read the doc string of + ;; `denote-rename-buffer-format' for how to modify this. + (denote-rename-buffer-mode 1)) +#+END_SRC +``` + +#### `20251121T210416--create-notes-as-link-first-to-avoid-orphans__linking_zettelkasten.org` + +```org +#+title: Create notes as link first to avoid orphans +#+date: [2025-11-21 Fri 21:04] +#+filetags: :linking:zettelkasten: +#+identifier: 20251121T210416 + +Recommended practice by Christian Tietze: start a new note with a link +first from some place, any place, then create the file to match that +link (which would initially lead nowhere). + +- Reduces orphans in the Zettelkasten by guaranteeing every note to + have at least one link. +- Supposedly teaches you to think about possible connections early, + which makes the network better. + +A very loosey-goosey approach, when taken literally and used +liberally: it doesn't matter where you are, just leave a forward link +to something you wish existed. Even if it doesn't fit the current +note. After all, you came up with the idea just now -- so maybe +there's a connection that you just can't spell out, yet? +``` [[!inline pages="internal(2025/info/zettelkasten-after)" raw="yes"]] |
