I can not post a comment on my own discussion.
A few days I can not add a comment for discussion (how swap columns and rows). After publication, the new comment simply disappears. Maybe I do not understand something.
|?||Show this help|
|ESC||Blurs the current field|
|r||Focus the comment reply box|
|^ + ↩||Submit the comment|
You can use
Command ⌘ instead of
Control ^ on Mac
Support Staff 1 Posted by john on 16 Mar, 2017 08:53 AM
I can see your comment on this new thread. We can pick up here if you want.
Is there anything else you wish to add?
Support Staff 2 Posted by john on 16 Mar, 2017 08:57 AM
Update. I just tried posting a comment to your original thread and it worked for me.
Frederick said they have experienced problems with the 3rd party provider they use for this forum in the past. Sometimes you just have to keep trying.
3 Posted by denis.zaporozha... on 16 Mar, 2017 10:07 AM
Thank you for writing me!
Here is my comment that I could not publish:
For some reason I can use the created by you node, but I can not repeat it myself. It seems that the nodes on the subnet and outside of it work differently. At some point even your network stops working (apparently this is a bug of the program) helps to move the file. Can not be repaired) but if copied to another project, the node works as it should.
Support Staff 4 Posted by john on 16 Mar, 2017 04:51 PM
I think I may know what is going on...
One of the most subtle and confusing features of NodeBox is the distinction between list and value when creating subnetworks. It is all-important, yet invisible, and not at all obvious how to define.
Whenever you create a subnetwork you can set each port's "range" to either "value", meaning take items one at a time, or "list", meaning take all items at once. It's a crucial distinction. Subnetworks will not work properly unless each port is set in the right way.
To set these port ranges, you must select the node, then click "Metadata" above the parameter pane near the top right corner of the window. This will open the Metadata dialog.
On the left you will see each port listed. Click on each port to see its settings on the right. Halfway down the screen you will see the harmless-looking "Range" setting. This is where you choose between List and Value.
Here are the correct settings for the two subnetworks in my transpose network:
Please have a look at the transpose network you recreated yourself and see if setting those values properly solves your problem. Please let me know either way.
(My apologies if you already knew all about this.)
I am really glad you are taking the trouble to recreate this node and teach your students about it. I have never tried teaching NodeBox, but I would guess that students would be easily confused by subnetworks.
As a user experience designer I can think of a number of ways to make this feature less confusing:
(I include this just in case Frederik bothers to read this. Perhaps I will also publish it as a separate suggestion to increase the odds. As with all UI changes, I would want to test these ideas with students to see if they really do help.)
I hope this solves your problem. Again, please let me know either way.
5 Posted by denis.zaporozha... on 17 Mar, 2017 10:49 AM
John, I managed to reproduce your example from beginning to end!
Indeed, I did not correctly set the settings of the pins.
If I'm honest, I always get confused about this and do not understand when it's right.
But I thought that subnets are a tool for optimizing working space. To ensure that the set does not expand too much, some of its fragments are combined in a subnet.
I tried to repeat your example without podsetet, and I did not succeed.
One to one as you - everything works.
Probably this is the dark power of electricity :) (joke)
Support Staff 6 Posted by john on 17 Mar, 2017 08:09 PM
Oh good - I'm glad it worked.
Even after years of working with NodeBox, I am still sometimes confused by subnets. Here are the two things I have learned:
1 -- Subnets are NOT a tool for optimizing workspace.
This is how subnets are used in other visual languages. NodeBox's lone tutorial on the subject suggests that's how they work. I wish there was a mechanism in NodeBox that worked that way. But that's not how subnets work.
Grouping nodes into a subnet will often change behavior. Grouping multiple nodes into a subnet turns the group into a single function, with all inputs arriving simultaneously at the top. If that's not how the group was configured this will change the timing, and timing is everything in NodeBox. Moreover, input ranges will be assigned as List or Value effectively at random; the more the inputs, the more chance one of these settings will be wrong.
2 -- Many things in NodeBox can only be done using subnets.
Transpose is a good case in point. I don't think transposing a table in NodeBox would be possible without a subnet like my Assemble node. Subnets, with careful use of the List and Value settings, are the only way NodeBox has of controlling the timing of inputs and outputs across multiple nodes.
So understanding subnets is not really optional. You won't get very far until you do.
The trick is learning how to think functionally. Think of what you want to do in terms of a function that will fire each time it receives a set of inputs.
Value inputs will fire once for each value in the incoming list. If there are multiple value inputs, one value will be pulled in from each stream; if there are an unequal number, streams with less values will wrap. List inputs will be pulled in all at once each time the function fires.
For example, Assemble produces a new row of the transposed table each time it fires.
If you can frame your goal in this way, subnets will start to make more sense. I now use them constantly. Someday I'd like to produce an animation (using NodeBox of course) to show how subnets work in action.
Thanks for reading all of this. I hope that, as a teacher, you will be able to transmit this understanding to your students.
7 Posted by rioch on 17 Mar, 2017 11:43 PM
Thanks John for your detailed answers, I've learned quite a few things from them...
About subnets I usually fiddle a bit with the setting until it works, having some visual indication as stated in the other thread would be nice -maybe also an indication that a node can be 'expanded' other than the icon-