Fork me on GitHub
#membrane
<
2022-02-23
>
phronmophobic18:02:04

One of the design goals for membrane was supporting UI creation via direct manipulation. Membrane has continued to be under active development, and if you're wondering what I've been working on, it's figuring out this piece of the puzzle. GUIs that build GUIs often have a bad reputation because they're usually inflexible and more frustrating than useful. Hopefully, membrane can break the trend. Here's some screenshots of my latest prototype (please excuse the ugly aesthetic). Not sure anyone will be able to tell what's going on, but I can now interactively 1) build views 2) create components 3) use components 4) reuse components.

🙌 4
💯 1
🔥 9
refset18:02:21

nice! that looks really impressive 👏

😁 1
refset18:02:16

interesting to see ~everyone converge on a notebook style interface for doing this kind of thing - have you considered integration with any of the clj notebook-style tooling that exists? are you aiming to tackle that persistence/reproducibility side of things too?

phronmophobic18:02:40

> are you aiming to tackle that persistence/reproducibility side of things too? Right now, I'm just storing the produced "source" in an edn file. I'm not sure what a good solution looks like yet. If you have any pointers, it's definitely a missing piece for me at this point.

👍 1
phronmophobic18:02:06

Reproducibility isn't an issue (yet) because the tool assumes pure functions everywhere.

👌 1
Ben Sless19:02:16

Serialize the edits as a log of events :thinking_face:

phronmophobic19:02:17

> Serialize the edits as a log of events @UK0810AQ2, I'm not sure I follow

Ben Sless19:02:41

If you save it a as data and incremental diffs (maybe even edit script?) It's fully reproducible

phronmophobic19:02:01

currently, everything is pure so it's reproducible. the trick with notebooks is that they often allow side effects in the notebook for loading/acquiring data.

phronmophobic19:02:43

you can make that reproducible just by saving the loaded data, but you usually want some reproducible/structured way to re-execute the side-effecting parts

Ben Sless20:02:33

You already solved this though, effects are handled but modeled purely. Just add all the effects to the log, too

refset20:02:26

> If you have any pointers only http://xtdb.com 😄

😁 1
genekim02:06:55

Holy cow, @U7RJTCH6J — my jaw is on the floor. How utterly freaking astonishing and amazing. One of the most Bret Victor -like demos I’ve ever seen — I had just watched 2012 talk again, and was amazed at what he was had built, and what a pale show most modern dev environments of what he showed was possible. Kudos! PS: I have no idea what you’re trying to build, but whatever you’re doing, keep going! 😆 It’s so good! https://www.youtube.com/watch?v=8QiPFmIMxFc&amp;t=1s

2
phronmophobic19:06:26

@U6VPZS1EK, thanks! I haven't watched Inventing on Principle lately. I should revisit it again. > Why are we simulating what a computer would do in our head? Why doesn't the computer just do it and show us.