It appears that when making selections, regions are often left out. Is there a key to press to include regions?
e.g. when doing marquee selection or clicking on region background.
This could be especially useful when trying to quickly move a region.
What are the practical ways to see the values of slices in a spread
It seems we don’t have either IOBoxes with row/col/page, and the tooltip/iobox only shows the first slice. Is there a simple way to see past the first slice for quick inspection? (e.g. the first 5-10 is often useful)
What is a canvas?
What is a field?
Is this the same as a Pad?
These might just be legacy terms floating around the gray book
Sequence vs Spread?
Any practical examples of where they differ?
The Gray Book
Where is the best place to discuss the gray book
Is there a GitHub-like issues section for the Gray Book, or a particular forum thread or something?
I noticed the comments system and started using that
Tab history navigation
Ctrl+Arrow key left/right doesnt seem to do anything
Solution Explorer group naming
All groups / collections in the Solution Explorer seem to be represented by the name of the document
Region selection for now requires region label (topleft) to be included.
What are the practical ways to see the values of slices in a spread probably the biggest missing feature still atm. piping a value over to vvvv is helpful or using a getslice…upcoming version will have preliminary spreadsupport in ioboxes
What is a canvas? we’re struggling a bit with some terms. but i’d say it is synonym for patch.
What is a field? another such term. but essentially a field is the actual memory location, while you’re using a Pad to access it. ie. there can be many pads for one field.
How to patch an operation which takes a variable number of arguments?
What is the easiest way to make a Sequence from a set of individual Values
I imagine a FromValues node which has a variable number of inputs. It seems I can use multiple FromValue nodes along with a Cons node
Can nodes have names?
Are there any references for programming in C#
E.g. what is the correct way to make a set of static functions? Currently I’m putting public static functions inside a class, but then I present the VL programmer with an opportunity to create that (useless) class.
they are quite different, sequence is an interface implemented by almost all collections and comes with a huge amount of operations that therefore can be applied to all of those collections.
spread and other collections such as list, dictionary and so on are specific implementations of collection which have different advantages regarding how they store elements of which specific operations they support. also a sequence can be only a computation that produces elements on demand. and a sequence can only be iterated, there is no direct access to specific slices.
so sequence is the mother of collections and a general rule is have the least specific collection as input (sequence, readonly list etc.) and the most specific as output (spread, dictionary etc.).
I guess my confusion with Sequence is that whilst it is often described similar to IEnumerable (as in, it is an interface which is compatible with many collection types), there is also a node to Create a Sequence directly. In this case, what am I actually creating? Does it default to System.Collections.Generic.List ?
Ah sorry, there’s the FromValue node which takes T as input and outputs Sequence<T>. Are you implying that the output type is actually a ‘data generator’ type which inherits from IEnumerable<T> but does not store any data by itself? (i.e. a kind of ‘minimum viable sequence’, but still a class which inherits from IEnumerable)
yes, that is what most sequence/linq operators are doing. with that you can build huge or infinite sequences without calculating anything. and then work is only done element by element when iterating.
imagine a video player implementing IEnumerable that you can poll for the next frame. or a live stream, infinite sequence. as soon as this simple interface is implemented hundreds of operators can be applied to the video player.
on the downside, if you need to iterate multiple times over the whole sequence work is done multiple times. for this case you either need the memoize operator or simply get all elements into memory by converting it to a Spread, Array or so.