I think Lua would be a great idea for implementing extension into QC.
A lightweight scripting engine, that people with experience with JS,Python,
etc can easily pickup,
Wouldn't want to heavy of a scripting engine as the goal is to streamline
the processing of the data,
I have no desire to see noodles replaced by lines and lines of script code
syntax debugging. :)
used by WOW for game extensions already..

JTS

On Sat, Jun 18, 2011 at 4:20 AM, George Toledo <[email protected]> wrote:

>
>
> On Sat, Jun 18, 2011 at 12:06 AM, Alastair Leith 
> <[email protected]>wrote:
>
>> I agree with many of the comments including the contradictions. George and
>> I have had this discussion in private and I'm much more for JS when state
>> machine is an issue. I just described such a state machine on this Kineme
>> thread<http://kineme.net/composition/mattgolsen/OnscreenKeyboard#comment-20970>.
>> The more your widgets are interacting with each others state, like say a
>> simple group of on screen radio buttons where, by definition, only one can
>> be 'active' at one time, then the more Bang one gets out of going JS I
>> think.
>>
>
> Well, QC is a node based system that allows one to control the execution of
> a graph, but that also potentially has the ability to offer one the
> possibility of including your own scripting language in a patch, even in the
> standard API.
>
> I think that if one is going to conceive of the graph as a type of visual
> language, then needing to rely on javascript is a crutch, while being able
> to use it, is a feature. People panning node based solutions when
> programming in a node based language is weak. Many patch based languages can
> result in some graphs that have many connections and are difficult to
> follow, but to me, that's an asinine criticism. It's akin to complaining
> that you can't understand a circuitboard after staring at it for 30 seconds.
> Well, big surprise.
>
> By using the nodes in QC, one has the ability to sample or queue every data
> type; this cannot be done with the javascript patch, though it does handle
> many types.
>
>>  Quite possibly my darkest, most sinking moments as a developer are when
>> I see a myriad of XOR, NAND and OR logic patches tangled up with Math
>> patches, Counters and other logic type things trying to control disparate
>> elements that would be much easier achieved with a single cleanly written JS
>> patch that spits out nice neat state values. People - Embrace the JS! It is
>> your friend!
>>
>> Agreed. I used to get into all that, making a Flip/Flop out of logic gates
>> the way Feynman describes it in *Feynman Lectures on Computation* but in
>> terms of serious reusable code involving state, logic and timing it's JS all
>> the way for me. For some reason I never liked the Timelines patch either, it
>> seems even more against the QC functional graph paradigm than grafting a MVC
>> model on top to me.
>>
>
> The timeline patch is one of the most underused, and undervalued patches in
> QC, imo. There's no reason it couldn't be used in tandem with javascript as
> well.
>
> I find the panning of using logic patches, math, etc., to be obnoxious.
>
>
>>
>> OS X said:
>>
>> Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
>>
>> Exception Codes: KERN_INVALID_ADDRESS at 0x00000000bbadbeef
>>
>> Crashed Thread:  0  Dispatch queue: com.apple.main-thread
>>
>>
>> Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
>>
>> 0   com.apple.JavaScriptCore       0x00007fff85dbd7f9
>> JSC::Heap::makeUsableFromMultipleThreads() + 57
>>
>> 1   com.apple.JavaScriptCore       0x00007fff85dbd2e4
>> JSGlobalContextCreateInGroup + 132
>>
>> 2   ...QuartzComposer.ExtraPatches 0x0000000115882fbb 0x11587b000 + 32699
>>
>> 3   com.apple.QuartzComposer       0x00007fff821d3189
>> -[QCProgrammablePatch recompileSourceOfType:] + 134
>>
>> 4   com.apple.QuartzComposer       0x00007fff821d30b8
>> -[QCProgrammablePatch setSource:ofType:] + 295
>> 5   com.apple.QuartzComposer       0x00007fff821d2caf
>> -[QCProgrammablePatch initWithIdentifier:] + 455
>>
>>
>> Don't know that one. User error?! haha just kidding, GT. Unknown runtime
>> errors are disheartening... I didn't get the point you were making here:
>>
>> When one configures a javascript patch above a certain input count, the
>> whole qtz becomes unstable and often results in error when trying to
>> duplicate macro.
>>
>>
>>
> The point I'm making is while there's a love fest going on about how
> awesome javascript in QC is, it has issues. The error above comes from
> taking a javascript patch:
>
> var result = new Object();
> function (__structure vars) main (__number inputNumber[7])
> {
> result.vars = new Object();
>  result.vars.X = inputNumber[0];
> result.vars.Y = inputNumber[1];
> result.vars.Z = inputNumber[2];
>  result.vars.R = inputNumber[3];
> result.vars.G = inputNumber[4];
> result.vars.B = inputNumber[5];
>  result.vars.A = inputNumber[6];
>
> return result;
> }
>
> ... making multiples, and connecting to another patch:
>
> function (__structure vars) main (__structure inputStructure[100])
> {
>      var result = new Object();
>  var array = new Array();
>
> array[0] = inputStructure[0];
>  array[1] = inputStructure[1];
> array[2] = inputStructure[2];
> array[3] = inputStructure[3];
>  array[4] = inputStructure[4];
> array[5] = inputStructure[5];
> etc...
>
>
> At a certain point, javascript starts barfing, and just fails. This was
> found with a more complex setup and reduced to this.
>
> I'm not really taking away from anyone's personal experiences, just adding
> mine to the mix. It's hard not to read some of the comments and think that
> they're somewhat off base or skewed too far to one side, or remember how
> much time I've wasted with the javascript patch in QC being flaky, or
> shifting in QC versions.
>
> -gt
>
>
>>
>> On 17/06/2011, at 8:38 PM, Adrian Ward wrote:
>>
>>
>>
>>
>> I'm just going to chip in and say that building a central state machine
>> using the JavaScript Patch has been absolutely critical for us, and this is
>> what sits at the heart of every interactive AV we've ever made in QC -
>> without it you'll just get messy unmanageable noodles, no matter how clean
>> you are with your macro patching and connection routing.
>>
>>
>> It also helps to enforce an MVC paradigm on your project, which is a bit
>> of an unusual approach within the QC ecosystem but I'm convinced is utterly
>> crucial when making anything ambitious.
>>
>>
>> Quite possibly my darkest, most sinking moments as a developer are when I
>> see a myriad of XOR, NAND and OR logic patches tangled up with Math patches,
>> Counters and other logic type things trying to control disparate elements
>> that would be much easier achieved with a single cleanly written JS patch
>> that spits out nice neat state values. People - Embrace the JS! It is your
>> friend!
>>
>>
>>
>> Ade.
>>
>>
>>
>> On 17 Jun 2011, at 10:09, Alastair Leith wrote:
>>
>>
>>
>> I like Achims State machine, here's another approach I made years ago
>> before my JS was useful.
>>
>>
>> I've done this sort of thing where I have two registers and interpolate
>> between them. The registers are the two most recent items in a queue, so a
>> new item in pushes the registers if that makes sense. Can't find a
>> composition for that method.
>>
>>
>> Also I did it for a structure of 3D attitudes/orientations of an object. I
>> have a comp for this. In this case the queue just track random index values,
>> again causing the index at the registers to shift along each time a new one
>> comes in.
>>
>>
>> It's a juggling act that uses a pulsed timer (LFO sawtooth-ramp-up) to
>> drive interpolation patches and the queue; here is a demo composition I dug
>> out (minus the interesting bit that morphs a cube into a sphere and back).
>>
>>
>> <Demo transitions between atitudes with a spinning cube.qtz>
>>
>> <Rotational Positions.plist>
>>
>>
>> NB The rotation position.plist is an XML file that needs to be in the same
>> folder as the comp to load.
>>
>>
>> Best
>>
>> Alastair
>>
>>
>>
>> On 17/06/2011, at 5:09 PM, Rick Mann wrote:
>>
>>
>>
>> I've been doing these on-screen graphics for a web channel that covers
>> space launches. We show a couple of different countdown clocks, as well as a
>> block of ascent parameters.
>>
>>
>> But for the last nine minutes of a shuttle launch, there's not much to
>> show. I have a couple dozen events that occur at various times during the
>> count. I want to display each one as it occurs. An event is just a text
>> string describing the event ("APU Start," "Steering Test," etc.).
>>
>>
>> My custom patch can either output each string on a output port, or output
>> an array of structures that has the string and the associated time. The
>> former is easier for me.
>>
>>
>> How can I crossfade from the last event string to the next, especially
>> when they come in rapid succession (perhaps more quickly than the crossfade
>> duration)?
>>
>>
>> I was doing a similar cross fade between a set of images, and it was a
>> real pain to build the structure for it.
>>
>>
>> Thanks for any suggestions,
>>
>> Rick
>>
>>
>> _______________________________________________
>>
>> Do not post admin requests to the list. They will be ignored.
>>
>> Quartzcomposer-dev mailing list      ([email protected])
>>
>> Help/Unsubscribe/Update your Subscription:
>>
>>
>> http://lists.apple.com/mailman/options/quartzcomposer-dev/qc.student.au%40gmail.com
>>
>>
>> This email sent to [email protected]
>>
>> The machine does not isolate man from the great problems of nature but
>> plunges him more deeply into them.
>>
>> Antoine de Saint-Exupery
>>
>>
>> _______________________________________________
>>
>> Do not post admin requests to the list. They will be ignored.
>>
>> Quartzcomposer-dev mailing list      ([email protected])
>>
>> Help/Unsubscribe/Update your Subscription:
>>
>> http://lists.apple.com/mailman/options/quartzcomposer-dev/adrian%40clayinteractive.co.uk
>>
>>
>> This email sent to [email protected]
>>
>> _______________________________________________
>>
>> Do not post admin requests to the list. They will be ignored.
>>
>> Quartzcomposer-dev mailing list      ([email protected])
>>
>> Help/Unsubscribe/Update your Subscription:
>>
>> http://lists.apple.com/mailman/options/quartzcomposer-dev/qc.student.au%40gmail.com
>>
>>
>> This email sent to [email protected]
>>
>>
>>
>>  *The machine does not isolate man from the great problems of nature but
>> plunges him more deeply into them.**
>> **Antoine de 
>> Saint-Exupery*<http://www.brainyquote.com/quotes/quotes/a/antoinedes131176.html>
>> * *
>>
>>
>>  _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Quartzcomposer-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>>
>> http://lists.apple.com/mailman/options/quartzcomposer-dev/gtoledo3%40gmail.com
>>
>> This email sent to [email protected]
>>
>>
>
>
> --
> George Toledo
> [email protected]
> www.georgetoledo.com
>
>
>
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Quartzcomposer-dev mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
>
> http://lists.apple.com/mailman/options/quartzcomposer-dev/jsophrin%40gmail.com
>
> This email sent to [email protected]
>
>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to