Zet
Zet
is a zettelkasten built into
weewiki.
Zet Quickstart
Zet is a part of weewiki. Install weewiki
before getting started.
In an empty directory, create a new weewiki database with:
$ weewiki create
This will create a new sqlite database called a.db
.
Add a new message to the zet using the say
command. A
prompt will appear to type out your message, then press
ENTER. The console will then print out a generated UUID
that is associated with that message.
$ weewiki zet say
say: hi zet.
e0924b00-4def-48a9-bd35-45fec2afbc95
Search for this message using the search
command.
$ weewiki zet search hi
2020-12-19 15:35:25 e0924b00-4def-48a9-bd35-45fec2afbc95 >hi zet
Appending partial UUIDs after the say
command will create
a link
between the generated message and the items with
that UUID.
$ weewiki zet say e0924
say: this message links with the previous message!
7d7a5ec9-2996-4bbb-a1b6-d432d19f60f9
The zet can be exported to standard output
with the zet export
command as a tab-separated value
(tsv) format.
This will be piped to the tee
command so it will write
to a file and standard output.
$ weewiki zet export | tee zet.tsv
2020-12-19 15:35:25 e0924b00-4def-48a9-bd35-45fec2afbc95 >hi zet
.
2020-12-19 15:43:09 7d7a5ec9-2996-4bbb-a1b6-d432d19f60f9 >this m
essage links with the previous message!
- 7d7a5ec9-2996-4bbb-a1b6-d432d19f60f9 #e0924b00-4def-48a9-bd3
5-45fec2afbc95
The exported zet has 3 columns: timestamp (- for none), UUID, and value. Each value has a prefix. In this example, '>' indicates a message, and '#' indicates a reference to another UUID. There are other type prefixes as well, like groups ('@'), wiki pages '!', and filepaths '/'. Those are for another time.
The newly created tsv
file is an ideal way to manage a
zet in source control. It can be used to regenerate the
zet with the zet rebuild
command.
$ rm a.db # remove the weewiki database
$ weewiki create # create a new wiki database again
$ weewiki zet rebuild < zet.tsv # and we're back
It is usually ideal to pair the zet with the wiki. To do this, other commands will need to be used in order to rebuild both the wiki and the zet (in that order). Consult the section on weewiki dumps in the weewiki wiki page for more info.
Zets can get very big very quickly, especially when using
it with the weewiki crate
interface.
This makes for very large TSV files which are harder to
manage. The solution for this problem right now is to split
up zet exports by group. More on this later someday,
possibly in the sample curation page.
Woven Source
For now, woven source code can be browsed online via the loom.
Updates
Updates created via this wiki's zet.
2022-02-25 17:35:06: created a labels meta-page for my brain (zet). The automation of things coming together is quite satisfying.
2021-07-19 10:09:03: added some initial stopwatch functionality to (zetdo) after adding the 'var create' command in (zet). If this ends up working, I'll have most of what I used org-agenda for. #org #timekeeping
2021-02-07 16:47:40: created a quick write-up on the (ergo_id) interface I created. it's weird, but I think it has potential.
2021-01-27 10:56:33: made a (food) page, which is a (metapage) consisting of dynamically generated page links and descriptions scraped from the (zet). It is the first kind of page like this, and I'm quite pleased with the (sqlite) magic under the hood that made this possible.
2021-01-19 16:32:20: this TODO app (zetdo) is proving to be an interesting application for (zet). It's making me think a lot more practically about item presentation and organization. Self-organizing structures like priority cues and trees seem to be structures that I want but do not have.
2021-01-16 21:51:55: really need a good way to query messages on demand, like a timeline or mini-feed. not even a good way. Just "a" way at this point.
2021-01-16 21:51:08: Bitwrite still needs a good data structure. I've been thinking about a tree to mimic outliner programs like org-mode. Somehow getting the graph format like \!zet to work would be pretty dope though.
2021-01-16 21:47:48: visualizing connections at scale is tough. our brains really aren't great at processing data that way. only in small chunks zoomed in, or zoomed out on a huge macro scale. I suppose this is the "hard part" of a zettelkasten.
2021-01-16 21:46:26: I've been thinking about writing a utility that exports zet to dot to be visualized in graphviz. but those do get unreadable quickly though.
2021-01-14 10:18:24: some initial writeup work getting basic stateful variables in the zet. the overall goal is to use this functionality to build a TODO-list like functionality.
2021-01-09 16:55:56: added an ignore group option to the (zet) shuffle functionality. My hope is to use it with (crate) items to randomly choose samples in a collection that I haven't heard before. It adds a few noticeable milliseconds when it is used, but it is totally worth it!
2020-12-19 11:06:37: more words to the (zet) page, including a quickstart