matrix

Benjamin C 2022-11-27T09:15:03.666849Z

Just noting some differences between cljc matrix and flutter-mx as I go along:

Benjamin C 2022-11-27T09:19:06.557159Z

md/make in cljc

Benjamin C 2022-11-27T09:21:32.485099Z

md/make in f/mx

Benjamin C 2022-11-27T09:23:39.680619Z

Seems to be no :obs . in f/mx. Is :watch the same thing? Seems to be, but I don't know if there are differences. edit: this: https://github.com/kennytilton/flutter-mx-sandbox/blob/f4deab3309332d673cea8db3f911eafbb2d3b124/src/tiltontec/example/x020_reactive_stream.cljd#L46 seems to imply they are not the same.

kennytilton 2022-11-27T18:23:37.494919Z

Re :obs vs :watch, I am as we speak conforming both code bases to support either. Backstory: :obs (short for observer) has long been my preferred label, but it is controversial because most reactive libraries use "observer" for "dependent". But now I have decided not to swim upstream and switch to :watch, hoping that is easier to sell as code which can see dataflow but act only outside dataflow. Mind you we have with-cc (short for with-integrity [:change..] which is a mechanism by which an observer/watch can enqueue dataflow changes for execution in the next dataflow sweep.

kennytilton 2022-11-27T18:33:46.936299Z

btw, Yes, overall you may find isolated differences between CLJC and CLJD Matrix. I especially need to implement synapses (anonymous Cells), and have not really tested laziness. My goal in the spring was to move fast and see if Flutter+CLJD+Matrix would even fly. Seems to be OK. 🙂 Now I am focused on supporting f/mx users and documentation. So let me know if anything like streams gets in your way and I will jump right on it.

👍🏻 1
kennytilton 2022-11-27T18:38:50.677759Z

As for

(md/make a-matrix
  :prop (cI :hello))
...where did you see that? Looks like a typo or sth. Speaking of make, I got a little funky with the syntax: we can optionally provide a type (namespaced keyword) followed by an even number of alternating initarg keywords and values. If we omit the type, we get :tiltontec.cell.base/Model.

Benjamin C 2022-11-27T18:41:01.721989Z

Ah, it was a typo --- mine! 🤦🏻

kennytilton 2022-11-27T18:41:12.309859Z

🤣

kennytilton 2022-11-27T18:43:22.449899Z

Another backstory is that CLJD is not so friendly with type-based dispatch, so not sure how much we will do with that Matrix type (which gets stored as :mx-type in meta of the model atom).