Data Driven Documentation

The world is a loud place, filled with a lot of garbage. In the battle for quality vs. quantity, quality seems to have lost and that is unfortunate. Not that the “publish or perish” paradigm we have constructed doesn’t have some positives, or that the speed of iteration foisted by Silicon Valley hasn’t improved the general condition of humanity (Computers are useful and time saving), but in general it would be phenomenal if we could move that needle back towards quality a bit. I find this to have been a losing battle for a number of reasons.

Having spent the time struggling and soul searching, I’ve assembled the monstrosity of a working system you’ve found here. Blending zettlekasten concepts, a Diataxis-styled documentation style, the self-sold confidence of a modified PARA method, and my years of experience creating file bloat to generate this; the newest iteration of my digital footprint. Hopefully working within this framing will reduce the friction I experience with some of those pain points, and provide me with a landscape against which I can have some sort of opinion. Ideally re-framing these opinions into useful output is equally as seamless. Having that knowledge in a synthesized and authoritative form should also allow me to more responsively provide answers and meaningful assistance. If not, at the very least my notes look fancy and I have a consistent starting point to begin [[20230908085243]] The hellscape that is my day :)

Yes, I am painfully aware this is disturbingly close to the PKM bellcurve meme. I am a mouth breather.

Executable writing

There’s a lot of dark corners in the maze between head work and hand work, and the best way I’ve found of truly overcoming that (as opposed to stopgap band-aids and unreplicable solutions), is to make the entire process data driven and executable. In short this means:

  • The friction from source to citation is non-existent: Zotero and Zettlr accomplish most of this very nicely/seamlessly as outlined in Note taking.
  • There’s a place for virtually every word I need to write. This means that any thought temporarily thrown into [[20220630144912]] 02 Now will eventually have to percolate through the rest of my system.
  • Computational reproducibility is a function of the amount of abstraction I’m willing to do, but is generally very high. See:
  • Communicating those results is also highly reproducible since this site is based on Quarto, and so is a data driven, fully contained static site which capitalizes on cloud-first patterns and puts documentation in line.
  • And is almost entirely scaffolded, constructed, and reliant on FOSS!

Following this pattern, so long as my notes are up to date with what I am currently working on, small changes trickle out immediately to accrete on top of my knowledge base. That base can be easily tweaked, remixed, and expressed as a webpage or publication-ready format. Pushing this site is a trivia (1 hour long) step. Great success! Now if only it were really that easy…

A (WIP) Workflow

Finding Knowledge

  • Following the standard “literature_notes” ingest process outlined in Installing Zotero.
  • Take a Question/Evidence/Conclusion framing to the literature_note. Taking the concept handle (a memorable noun phrase representing a more complex idea, probably the conclusion), frame the resource as a “zettle”.

Adding Knowledge

Minimally extending content gratefully pilfered from Andyʼs working notes

Zettles should be “atomic” in that they address or concern themselves with with a single aspect of a concept handle:

  • Zettle notes, in increasingly complex stages of development:
    • Stubs implicitly defined through backlinks
    • Bridge notes narrowly relate two adjacent terms
    • Zettles: precise, narrow declarative notes
  • higher-level APIs (Concept handle note titles are like APIs)
  • notes abstracting over many other notes, (e.g. Educational games are a doomed approach to creating enabling environments, Reading texts on computers is unpleasant)
  • “Outline notes”, e.g. MOC
  • Concept handle API’s can be loosely structured following a Diataxis framing

Who am I writing to?

[[20230923033512]] Know your audience.

Assembling a MOC or Paper

```{md}
home                      <- landing page
├── tutorial              <- landing page
│   └── part 1            <- landing page
├── how-to guides         <- landing page
│   ├── install
│   └── deploy
├── reference             <- landing page
│   ├── commandline tool
│   └── available endpoints
└── explanation           <- landing page
    ├── best practice recommendations
    └── performance
Paper
├── Introduction
├── Background       <- literature_notes,reference,explanation
├── Methods          <- how-to guides,reference,explanation 
├── Results
├── Discussion       <- reference,explanation 
└── Conclutions      
```

Undirected

  • Write durable notes continuously while reading and thinking. (Evergreen note-writing as fundamental unit of knowledge work)
  • Each time you add a note, add a link to it to an outline, creating one if necessary (Create speculative outlines while you write).
  • Eventually, you’ll feel excited about fleshing out one of those outlines. (Let ideas and beliefs emerge organically)
  • Write new notes to fill in missing pieces of the outline.
  • Concatenate all the note texts together to get an initial manuscript
  • Rewrite it.

Directed

  • Review notes related to your topic (and a step or two beyond those—Notes should surprise you)
  • Write an outline
  • Attach existing notes to each point in the outline; write new notes as needed.
  • Concatenate all the note texts together to get an initial manuscript
  • Rewrite it.

Footnotes

  1. “we are our own worst enemies”↩︎

  2. some call this “learning exhaust”, a phrasing I agree with because who wants to suck a tailpipe?↩︎