Scicloj 2022-10: knowledge management on play.teod.eu

..

How can we best learn together? What does “learning together” look like on the web?

Over the last months, Teodor has used https://play.teod.eu to learn stuff. In this visual-tools meeting, he’ll share his workflow, and some ideas about collective knowledge management for Clojure data science.

Scicloj visual-tools meeting 15 information on Cloureverse: https://clojureverse.org/t/visual-tools-meeting-15-a-common-ground-for-notes-with-kindly/9425

rationale: learning in public

  1. I’m interested in Scicloj and collective knowledge management
  2. I’m excited about my current learning process
  3. So I’m going to share a bit :)

vision: scicloj knowledge archipelago

  1. easy to create knowledge
  2. easy to collect and curate knowledge
  3. easy to learn.

story

2017-2020

daily journaling with Org-mode

$ (cd ~/kb/personal && ls journal-*.org | xargs wc -l)
  2244 journal-2017.org
  3375 journal-2018.org
  6664 journal-2019.org
  2184 journal-2020.org
   985 journal-2021.org
   974 journal-2022.org
 16426 total
2020-2022

networked note taking with Roam research

“hey, I can actually find things now”

2022-

going web native for easy sharing with others!

“collective knowledge management as sharing a URL”

who is this guy?

used to do civil engineering, numerical analysis of nonlinear mechanics

then software

these days product

very interested in how we can build knowledge together.

inspired by The Beginning of Infinity, a book about good explanations

demo: play.teod.eu

Things I could show:

  1. Create a new page, and deploy it
    1. Page for Daniel, perhaps?
  2. Linking to other pages
  3. the play.clj relations CLI
    1. Optional. Kinda cool, not essential.

I’m going to emphasize “showing the whole” over “explaining how everything works”.

# CHEAT SHEET

# preview server (wrapper for bb-http-server and firefox)
$ play.teod.eu-preview.sh

# relations (metadata system)
$ ./play.clj relations
$ ./play.clj relations :from files :to lines | head
$ ./play.clj relations :from files :to lines2 | head

play.teod.eu tech — “how does this work?”

(not 100 % sure what people are interested in, suggestions & questions welcome. the list below is a mouthful.)

  1. one folder for each document
    1. metadata in EDN files
      1. CLI for modifying metadata
    2. Embedding small HTML things is super easy
      1. Example: Scicloj libraries and tools
      2. Example: the “random button” on the front page
  2. Pandoc JSON as a narrow waist for content
  3. no build step, just HTML files in folders, tracked by Git
    1. really fast deploys! Currently 20-30 seconds, 19-29 seconds waiting for Cloudflare
  4. A big babashka/cli script
  5. Org-mode, org-roam and some Emacs lisp functions
  6. a big generated makefile
    1. makefile generation is painful. It’s one big string, I want plain data.
    2. I’d prefer pure babashka, no makefiles. just use babashka.fs/modified-since for caching.

“but this is all heavily adapted for Teodor’s preference”

Yes. A common toolkit must be abstracted from personal preference.

  1. play.teod.eu — my knowledge playground / backyard / garden
  2. dbx — “a collective knowledge toolkit for babashka zealots”
    1. dbx doesn’t really exist outside my head (yet)

plan:

  1. put the good parts of play.teod.eu into dbx,
  2. avoid depending on Emacs and Org-mode/Org-roam for dbx
  3. Explore how to pull together information from multiple dbx sites.

In other words: decouple the tool from the site, share the tool with others.

scicloj knowledge archipelago

Q: how can I learn Clojure data science?

🤔 :daniel_thinking_face: :kira_thinking_face:

Q: how do we create, collect and index Clojure data science learning materials together?

🤔 🤔 🤔 🤔 🤔 🤔 🤔
🤔 🤔 🤔 🤔 🤔 🤔 🤔
🤔 🤔 🤔 🤔 🤔 🤔 🤔
🤔 🤔 🤔 🤔 🤔 🤔 🤔
🤔 🤔 🤔 🤔 🤔 🤔 🤔

(requires thinking together :))

current initiatives

  1. clojure-data-cookbook (Kira McLean)
  2. clojupedia.org (Adam Helinski)
  3. scicloj.github.io/docs/resources/libs (mostly Daniel I think?)

page types on play.teod.eu (can be skipped)

  1. Call to action — “here’s something more people should do”
  2. Definition — “this is a name I’d like to reuse”, “here’s a nice mental model.”
  3. Journals — “temporal index of record”
  4. Remote references — “things others have made I’d like to refer to”, “things I’d like to annotate to learn”

getting in touch with Teodor

async questions sometime later? ping me!

https://teod.eu links to github, twittter, etc
Clojurians Slack @teodorlu
Clojurians Slack channels Try #babashka

I’m really excited about this stuff.