You are viewing archived messages.
Go here to search the history.

Taylor Troesh 2024-11-20 16:19:54

working on a local-first podcast client for video podcasts and youtube rss :)

CleanShot 2024-11-20 at 08.12.59.gif

Maikel van de Lisdonk 2024-11-24 12:26:29

Thanks to Ivan Reese for coming up with the idea and putting it in my head: I've added a new feature to code flow canvas.. you can now drag and drop arbitrary values which are on the canvas on edges (or use the clipboard). I've made a small video about and you can see it here: youtu.be/wJjAU_rwW7w . Off course you can try it yourself on demo.codeflowcanvas.io

Maikel van de Lisdonk 2024-11-24 12:28:06

The video is a minute too long for this channel, I hope that's no problem 😊

Tom Larkworthy 2024-11-24 13:09:25

oh thats a very nice interaction! Its really invites playing with it.

Maikel van de Lisdonk 2024-11-24 13:10:56

Thanks! This is just the first iteration, I am definitely going to develop it further.

Maikel van de Lisdonk 2024-11-24 13:17:04

Values can also be json objects, I haven't put that in the video but I do think that this will be helpful

Ivan Reese 2024-11-24 19:07:16

Using expressions as values is brilliant. That's a fantastic insight.

Maikel van de Lisdonk 2024-11-24 19:10:58

Thanks! 😊 That expression compiler in code flow canvas is really handy.. it's used in a lot of places already and just recently I also implemented a json-mapper node which can have expression in them to generate values for the output json. So it was a no-brainer to add it to these draggable values as well 😀

Ivan Reese 2024-11-24 19:30:22

For Hest, I've been intending to add support for ambiguous values, or constrained values, to help with reversing non-injective functions (see link for examples).

Now, those special values might also make it possible to place any function on a wire. If it's an expression that can be fully evaluated, it works just like what you've shown. But if it can't be fully evaluated, we use amb or constraints (or something) to represent the possible results of the function, and let those flow through the graph.

At this point, the distinction between nodes and values gets pretty blurry. I've also been feeling out the blurry boundary between wires and values. And FP, OO, et al have done a good blurring the boundary between functions and data. So there might be some good realizations that could fall out of a mapping exercise like this:

CleanShot 2024-11-24 at 12.30.13.png

Ivan Reese 2024-11-24 19:32:47

(the "value" in the top right should be taken to mean "the thing that flows along edges, which might represent data or maybe an expr or something else???")

Paul Tarvydas 2024-11-24 19:48:15

Suggestion [forgive me, if I've missed noticing that this is already possible]: at 1:44 I would like to de-clutter the diagram by lassoing parts of it and making another diagram ("layer") with the lassoed part. I would like to see the diagram at 1:44 reduced to only 7+-2 boxes, with the details elided to other layers/diagrams, then be allowed to drill down into the sub-diagrams at will if I really want to see more detail.

Maikel van de Lisdonk 2024-11-24 20:04:49

Ivan Reese the expression in the draggable values are actually evaluated before the value is put on the flow. So only values flow over the edges. Edges can have weights attached to them, but I dont really use that yet (only in a small neural network example)

Maikel van de Lisdonk 2024-11-24 20:09:19

Paul Tarvydas you're talking about the quicksort flow in the video I assume? That for sure would benefit from sub-flows which you need to drill into. Support for that is still limited in code flow canvas. I can create "compositions" but they dont yet show any values flowing yet and you can't use the timeline slider there yet. So for sure something I want to implement

Maikel van de Lisdonk 2024-11-24 20:49:56

Ivan Reese if I fill in the mapping exercise then I would place an "x" in every cell except in the function/expr - wire cell

Ivan Reese 2024-11-24 20:50:56

Ah, I'm thinking of doing more than placing an X. I'm thinking: explore that design space in depth :)

Maikel van de Lisdonk 2024-11-24 21:00:58

Ah 😄 , but aren't we already doing that then in our projects? We could plan a session to talk more about it and share experiences/ideas or have an open discussion about it on one of our FoC meetups?

Ivan Reese 2024-11-24 21:39:09

Yeah, though I think this sort of thing is a good async exercise. I'm going to spend a bit thinking about what could be done with the idea of "let the flowing values be functions"

Ivan Reese 2024-11-24 21:39:35

And then probably come back with some provocations of my own.