teod/dbx: a collective knowledge toolkit for babashka zealots
or
teod/dbx: plaintext collective knowledge management for Clojurians
Warning: this software does not yet exist. This page is a mess. And there’s a chance I’ll never have the time to finish this project.
Idea: split https://play.teod.eu/play.clj into something reusable (dbx) and something specific (play.teod.eu).
I believe dbx can help Scicloj make Clojure data science more accessible. There are some ideas in Scicloj is awesome. See also Scicloj libraries and tools.
Design is the art of tastefully narrowing the distance between elegant, ergonomic, general tools and effective application in specific context. (left is unnamed, right is Utility is Contextual) (see also The Beginning of Infinity, which heavily influenced this statement)
I started writing (a lot) about dbx in Teodor’s public journal. It’s better here. So I’m moving it here.
Context.
Bink: Bookmarks are just data is “given a list of bookmarks as data, please let me navigate”.
eu.teod/dbx: a toolkit for building your own personal knowledge base is “given a mechanism of pages as data, please let me create new pages and create links to stuff I’ve got”
Just with a default.
dbx workon play.teod.eu
dbx workon scicloj-kb
dbx nav
- first select provider, then
paste a link.
dbx van
- link to anything from the
command line.
play.teod.eu/localhost
- local http
preview
play.teod.eu/localfolder
- local
folder
play.teod.eu/web
- on the internet
print
- paste the path
open
- open in a browser.
cd
- given a shell wrapper, cd into the
thing.
(then there needs to be a dbx shell wrapper)
(then perhaps support installation both as shell function (dbx) and installation as babashka script? (dbxx))
approach: binary returns action
approach: dbx-cd
is a shell function,
dbx
is the binary. dbx-cd
simply runs dbx
and “cds” into the result.
I can implement my github project listing things in terms of dbx-cd
and dbx
.
I also want to ask Richard for his opinion on this. And Christian Duvolt.
dbx-cd
dbx "$@"
open play.teod.eu page locally
$ dbx-cd
# pick play.teod.eu/localfolder
# pick open-problems
# dump path
# cd in there
open play.teod.eu page locally with explicit provider
$ dbx-cd :provider play.teod.eu/localfolder
# pick open-problems
# dump path
# cd in there
open play.teod.eu page remotely with explicit :exec
:
$ dbx-cd :provider play.teod.eu/localfolder :exec firefox
# pick open-problems
# dbx picks out the URL, and looks up the "firefox" exec thing from config.
# evals some bb
# firefox opens the thing
open play.teod.eu page remotely with explicit :exec
, but firefox in a new window
$ dbx-cd :provider play.teod.eu/localfolder :exec firefox-new-window
# pick open-problems
# dbx picks out the URL, and looks up the "firefox" exec thing from config.
# evals some bb
# firefox opens the thing in a new window
open iterbart - leancast
$ dbx-cd :provider play.teod.eu/localfolder
# pick open-problems
# dump path
# cd in there
note - a link provider should have a default :exec.
Override chain:
:exec
on as CLI param:exec
on :provider
config:exec
from default configLOL
If i can lean on some Clojure stuff to define that stuff, that is.
workon
should scope certain dbx actionsworkon unicad
workon play.teod.eu
workon kb.scicloj.org
workon iki
Workon context should:
Title for launch post for dbx
to
Clojurians Slack.
I want to collect providers and embarkers!