Zet is a zettelkasten built into weewiki.

Zet Quickstart

Zet is a part of weewiki. Install weewikibefore 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 UUIDthat is associated with that message.

$ weewiki zet say
say: hi zet.

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!

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

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 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

home | index