Posts for: #Public

CMake Linking Inheritance

Created: 2022-11-18 12:15

#cpp

Lei argues that the [[CMake]]’ interpretation of the keywords PUBLIC, PRIVATE and INTERFACE is much like the [[C++]] inheritance.

Suppose we have library A, B and C. To build library B we publicly link library A. If library C links against library B it automatically also links against library A. If instead we link B with A privately, when we link C against B, C is not automatically linked to A.

[]

Backlinks are bad

Backlinks are bad because they do not provide any additional information. Rather they take away in cognitive performance because there is another link you might follow. Rather links should come from a natural flow, because the note builds on a previous note, for example. Or to include an idea from another note.

I’ve come to believe that linking keywords within the idea to other notes is a better approach than a list at the bottom linking back and forth.

[]

How to Link Notes

Notes should be linked, as is the basis of the Zettelkasten idea. However, to effectively link notes try the following:

  1. Link to a more general idea.
  2. Link to a more specific idea.
  3. Link to a related topic.

See “tk notes” for when you don’t have note ready to link to.

Above is how we used to think about linking notes together. In the meantime we have learned that there is some truth to this manner, but having these as a list at the bottom of a note doesn’t work.

[]

The Zettelkasten principles

There are a few principles attached to a Zettelkasten:

  1. The principle of atomicity: A note should contain one idea, and one idea only. The reason for this is that you want to be able to link to an idea, and not some idea hidden on a card somewhere in the middle.
  2. The principle of autonomy: Each note should be self-contained and comprehensible. This includes autonomy from other notes, but also from the sources. As the note in the Zettelkasten may outlive these. You still want the note to be readable in that case.
  3. Always link your notes: Make sure to link notes to existing notes. According to Luhmann “A note that is not connected to the network will be lost, will be forgotten by the Zettelkasten”.
  4. Explain why you’re linking notes: Explain why two notes are linked together. A future self needs to be able to understand the link.
  5. Use your own words: In order to ensure that you understand the idea you need to write ideas in your own words.
  6. Keep references: Add references to where the idea is coming from. Preventing plagiarism and making it easy to find the source again, when needed.
  7. Add your own thoughts to the Zettelkasten: Add your own thoughts, keeping in mind the above principles.
  8. Don’t worry about structure: Don’t worry about the categories or tags too much. The organization develops organically, as the kasten grows.
  9. Add connection notes: These notes describe the relationship between notes.
  10. Add outline notes: These denote themes, an outline note contains a sequence of links to other notes.
  11. Never delete: Instead of deleting notes, create a new one detailing where the previous one is wrong. This strengthens the reasoning. Deals with hindsight bias and allows to revisit old ideas.
  12. Add notes without fear: This might be the most important principle for a new Zettelkasten. There is never “too much” information in a Zettelkasten. At worst, the note won’t be used, it can’t break the system.

Sources

https://writingcooperative.com/zettelkasten-how-one-german-scholar-was-so-freakishly-productive-997e4e0ca125

[]