1.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2+++ b/notes/20231024.org Fri Nov 24 22:39:07 2023 -0500
1.3@@ -0,0 +1,59 @@
1.4+* virt
1.5+** QEMU
1.6+** KVM
1.7+** Hyper-V
1.8+** Firecracker
1.9+** Docker
1.10+** Vagrant
1.11+** LXC
1.12+** LXD
1.13+** containerd
1.14+** systemd-nspawn
1.15+** VirtualBox
1.16+
1.17+* Concatenative
1.18+** Factor :factor:
1.19+- [2023-07-04 Tue]
1.20+ Factor is a cool concatenative lang but unfortunately the C interface
1.21+ (vm/master.h) no longer exists on the master branch.
1.22+** Joy :joy:
1.23+
1.24+*** https://hypercubed.github.io/joy/html/j02maf.html
1.25+
1.26+*** [[https://builds.openlogicproject.org/content/incompleteness/arithmetization-syntax/arithmetization-syntax.pdf][arithmetization of syntax]]
1.27+* Lisp :lisp:
1.28+These notes pertain to Lisp. More specifically, ANSI Common Lisp in
1.29+most places.
1.30+
1.31+- https://github.com/lispnik/iup/ - doesn't support MacOS yet, looks
1.32+ cool though
1.33+ - what we really need is wasm compiler.. TBD
1.34+* Rust
1.35+** Serde
1.36+- [2023-07-05 Wed] \\
1.37+ important part of the Rust ecosystem, another dtolnay
1.38+ contribution. If you want to program a /data/ format in the Rust
1.39+ ecosystem, this is how you do it.
1.40+
1.41+ The way it works is that you define some special structs, a
1.42+ Serializer and a Deserializer which implement the Serialize and
1.43+ Deserialize traits provided by serde, respectively.
1.44+
1.45+ You can use these structs to provide your public API. The
1.46+ conventional choice is public top-level functions like from-str
1.47+ and to-string. That's it, your serialization library can now read and
1.48+ write your data format as Rust data types.
1.49+
1.50+ [[https://serde.rs/enum-representations.html][enum-representations]]
1.51+ - the default behavior is an externally tagged representation (verbose)
1.52+
1.53+ The docs use strings as core IO when implementing a custom format,
1.54+ but the convention is to implement for T where T is bound by std::io
1.55+ Read or Write trait. Then you can provide a more robust public API
1.56+ (from_bytes, from_writer, etc).
1.57+* C
1.58+* CPP
1.59+* Nu
1.60+[[https://www.nushell.sh/][~]]
1.61+[[https://www.nushell.sh/cookbook/][cookbook]]
1.62+[[https://github.com/nushell/nu_scripts][nu_scripts]]