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

Paul Tarvydas 2024-08-15 10:46:10

I’ve been pointed at the Kronark YouTube channel which is only a few days old and purports to show how to build software using nodes. youtube.com/watch?v=qM2mtAPEmd4

Several things jump out at me: (1) nodes do NOT need to return a value (unlike functions, which must always return something ; does the need to return something lead to bloat???) (2) undefined behaviour is allowed (does over-defining of ALL behaviour lead to bloat???) (3) encapsulation and abstraction - 0D defines Container components which encapsulate and elide layers, 0D does this encapsulation at runtime ; Kronark compiles out encapsulation at compile time (AOT). I feel uneasy about this, when taken to the extreme. Maybe 0D should be described as“structured concurrency” (???) Whereas Kronark is just more-of-the-same linear composition (???) that works in a feed-forward, single-threaded manner. It will be interesting to see examples of concurrency and feedback in Kronark. (FTR, “feedback” is not the same as “recursion”).

Ivan Reese 2024-08-15 14:25:44

Oh, this channel is neat! Thanks for sharing it.

Ivan Reese 2024-08-15 18:29:19

On the point of feedback, are you referring to things like "backpressure" where the flow of information across each wire is bidirectional? Or something else?

Paul Tarvydas 2024-08-15 19:36:45

Ivan Reese not backpressure. Feedback is a loop from output back to input. Seen in EE op-amp designs, I've never seen it in software (other than when I use it). It ain't like recursion, since there is a "propagation delay" involved (FIFO queuing instead of LIFO callstack). Fig.1 and Fig. 2, of this note that I think I posted some time ago, shows feedback with the possibility of intervening messages (i.e. not naturally recursion). programmingsimplicity.substack.com/publish/post/147186037?back=%2Fpublish%2Fposts . I would be happy to explain further, if I can think of what to say about it...

📝 2024-07-30-Diagram Compiler Status

This project creates a working “Larson scanner” (seen on the T.V.

Ivan Reese 2024-08-15 19:58:58

Oh, that sort of feedback. Of course 🤦

Paul Tarvydas 2024-08-15 22:49:18

Maybe restating the obvious...

Look at pin 9 of Decode. It goes to 2 places.

In a function-based programming language, you have to pick an order, say first to the red box then to the J input of the Reverser box.

Or v.v.

In a message-based system, though, you don’t have to pick an order. You plunk an event onto the red box’s queue and you plunk an event onto the Reverser’s input queue. They (red box and Reverser box) get around to processing their input events some time in the future.

Feedback is more of the same, plunking events into input queues, but not guaranteeing when they will be processed, only that the events will be processed in order of arrival. (Recursion guarantees the opposite - a recursive call gets to jump to the head of the queue).

This is a subtle difference, but, makes a huge difference in design mentality. Kinda like a butterfly in Japan affecting the weather in North America.

Ivan Reese 2024-08-15 23:06:24

Yeah, it always frustrated me that you can't naively create feedback loops in Max/MSP. The irony! But I understand the tradeoffs.

Paul Tarvydas 2024-08-16 11:55:33

Ivan Reese I've never used Max/MSP. Why can't you create feedback loops? What are the tradeoffs?

Ivan Reese 2024-08-18 03:15:49

Paul Tarvydas Roughly, logic nodes trigger evaluation immediately when they receive input on their primary (leftmost) port. So you can have a feedback loop that goes to a non-primary port, but not a loop that goes to a primary port (because that's just an infinite loop). Audio nodes behave a little differently, and there are some means for creating feedback (let setting up delay taps). I remember it all being a bit confusing, and less expressive than I wanted.

Kartik Agaram 2024-08-18 19:34:42

Final-ish state of problem statements and reactions

Also, a final-ish personal visualization of the "star map of FoC". All the caveats and disclaimers 💬 #thinking-together@2024-08-04 continue to apply.

I'll post some even more personal comments and critiques of people's responses and the whole process in comments. I hope it provokes comments and reflection from others.

I'm looking forward to putting this up on the FoC wiki in some form.

🗒️ problems.html

FoC-starmap4-4.png

Ivan Reese 2024-08-18 19:38:44

Fantastic project, Kartik. This has been fascinating to follow. Definitely will be good to re-run this survey (perhaps with some support tooling?) again in the future.

Kartik Agaram 2024-08-18 20:05:09

Some criticisms, mostly of my own failure to communicate what was in my mind with this exercise.

Problem statements

I think many problem statements were infected by the solution in the mind of the author. Phrases like "there oughta be" or "the world needs" are red flags of this failure mode. I think all my 6s were because of this. Either your problem is intensely personal, and you're doing art for art's sake (perfectly legitimate! see Jackson Pollock or Van Gogh!) or I think there's room here to make your problem less muddy, to give it a more separate existence from the solution you're working on.

A lesser failure mode: Phrases like "because" and "due to" are red flags that you're over-specifying an approach to a problem. There seems some value in more focus. If problem A seems to have sub-problem B, do you care about B in isolation, or A as a whole? Pick one. If it's A, be open to other approaches. If it's B, then it should be able to stand alone as a resonant problem. (I made this mistake as well in an earlier thread, 💬 #thinking-together@2024-06-15; the instinct to boil the ocean is very powerful but misguided.)

Jonathan Edwards: what are some examples of special-purpose technologies? A single editor window containing say some Lua code without any libraries seems to me to be "not shattered", but it's still certainly likely to contain friction and complexity, particularly to people inexperienced with programming. Perhaps what would help is stating the target demographic. Do you care about just programmers or just non-programmers or both or something else? Perhaps I should have asked everyone to mention that in problem statements..

Reactions to problem statements

💬 #thinking-together@2024-08-03 with a tacit "in the context of my work" to them. "There are problem statements here whose background and motivation I can perfectly well understand, but which I don't see as important in my own work." I would tend to categorize those as level 3, so it looks like my rubric is ambiguously worded. I'm curious how others interpreted my levels, and if they see other potential room for ambiguity.

Special mention to Ivan Reese for willfully stretching the rules of the game both in problem statements and reactions. My star map didn't know what to do with vectors, ranges like 0-5, negative numbers and complex numbers 😆 Thanks for playing sportingly, even though it seems clear that you don't really care about thinking in terms of problems, in the vein of Pollock and Van Gogh..

Duncan Cragg 2024-08-18 20:41:07

I have to say I approached this with wariness at the focus on "problems" and have been waiting for the right time to re-launch the poll with, well, not even "solutions", but what I recently saw Steve Jobs describe as "you want that?!" (holding up a page of laser printed text). So tangible examples, demos, physical manifestations of how the solution actually delivers value to a target demographic, in their face. "You want THAT?!" should be the metric, I humbly submit. No problems, nothing about how much you've sweated and innovated over the technical or philosophical solution. Just "here it is - it looks/works like this - so do you want THAT? or not?"

Duncan Cragg 2024-08-18 20:42:42

If there's a visceral release at experiencing the solution first hand, you don't need to spend ANY time describing the problem or the innovations of your solution.

Kartik Agaram 2024-08-18 20:43:43

Depends on (sorry) what problem you're trying to solve. My goal is/was finding collaboration. Sounds like yours is interacting with potential audiences/customers?

Duncan Cragg 2024-08-18 20:45:49

well I want both techie collaborators (just one fan would be nice!) and bringing in non-techies to try it out. but that's tangential to our "problem" statements, isn't it?

Ivan Reese 2024-08-18 21:18:12

Kartik Agaram Yeah! That's what's foreign to me about this framework, and what makes it interesting to wrestle with: I don't want to solve problems, and this framework presupposes that I do. I don't want to fix what's broken. I just want people to have different kinds of experiences. I want them to create for creation's sake. To the extent that the status quo puts limits on that, well, sure, that might be a "problem", but... like.. it's a problem because it's immoral, not because it's wasteful or counterproductive or bad for stakeholders or knowledge transfer. So sure, lump me in with art, I'll gladly take that, but I think that's perhaps missing some plurality of motivations we could otherwise explore.