fluid-work IRC Logs-2013-11-14

fluid-work IRC Logs-2013-11-14

[09:24:05 CST(-0600)] <yzen> jhernandez: yo

[09:24:06 CST(-0600)] <yzen> (smile)

[09:24:27 CST(-0600)] <yzen> so the original pull before the last change was exactly like the one that we had for v0.1

[09:35:22 CST(-0600)] <anastasiac> Justin_o, I've pushed my PFID branch

[12:01:04 CST(-0600)] <Justin_o> Bosmon7: hello

[12:03:50 CST(-0600)] <Bosmon7> hi Justin_o

[12:05:16 CST(-0600)] <Justin_o> Bosmon7: i'm trying to fix up some issues that anastasiac has found with the FLUID-5205 branch.. The first issue is that you need to toggle the value for a controlling adjuster (one that will change a model value and control the creation/destruction of other adjusters)

[12:05:40 CST(-0600)] <Justin_o> the issue is that for the conditional panels.. we rerender the panel on certain model changes.. the problem though is that this refreshing happens before the model relay takes place.. the result is that the control that triggered the model change is rerendered with its old value

[12:06:30 CST(-0600)] <Justin_o> if there was a way to set the priority of the modelListeners i could probably get around the issue.. do you know of any other alternative if this isn't possible?

[12:11:53 CST(-0600)] <Bosmon7> Ok, fine

[12:12:15 CST(-0600)] <Bosmon7> I can reveal that under the current ChangeApplier implementation, priorities for modelListeners "probably" work

[12:12:22 CST(-0600)] <Bosmon7> Although I had been planning to abolish this facility

[12:13:44 CST(-0600)] <Justin_o> Bosmon7: does that mean i'll have to switch back to the old style?

[12:14:07 CST(-0600)] <Justin_o> Bosmon7: or can we expect priorities to come back shortly?

[12:16:22 CST(-0600)] <Bosmon7> Justin_o - sorry, it appears that priorities are not available even with the old impl

[12:16:30 CST(-0600)] <Bosmon7> Even though it would have been easy in theory for it to support them

[12:16:43 CST(-0600)] <Bosmon7> The relevant part of the record is not passed through in the ChangeApplier's "addListener" function

[12:17:12 CST(-0600)] <Bosmon7> It should be in the 4th argument position, but the ChangeApplier hardwires it to null

[12:17:44 CST(-0600)] <Justin_o> Bosmon7: i see... is there a change in when these things are fired.. i think i did make a quick test and it seemed that listers bound to the changeApplier would fire after the source guard that the model relay uses

[12:18:28 CST(-0600)] <Bosmon7> Justin_o - this kind of thing shouldn't be depended on

[12:19:23 CST(-0600)] <Justin_o> Bosmon7: right.. any suggestions on what to do about it, in this case?

[12:20:51 CST(-0600)] <Bosmon7> Justin_o - it's disagreeable, but I would suggest setting up a "bottling relay"

[12:21:06 CST(-0600)] <Bosmon7> That is, something which collects up change events in batches and then refires them at a particular lifecycle point

[12:21:06 CST(-0600)] <Justin_o> "bottling relay" ?

[12:21:44 CST(-0600)] <Justin_o> i'm not really sure where to begin with that (smile)

[12:22:00 CST(-0600)] <Justin_o> Bosmon7: one thing is that the listeners are bound from different components

[12:23:11 CST(-0600)] <Bosmon7> Justin_o - it will be relatively easy, given the facilities in JavaScript (smile)

[12:23:17 CST(-0600)] <Justin_o> Bosmon7: if you have time and are interested, you can try out the case that anastasia came up with https://github.com/acheetham/infusion/blob/PFID/src/instructionalDemos/framework/preferences/compositeSchemas/conditional.html

[12:23:32 CST(-0600)] <Bosmon7> All you need to do is to create a "thing" that has the same addListener/removeListener signature as the changeApplier's modelChanged event

[12:23:45 CST(-0600)] <Bosmon7> But which wraps all the listeners supplied with the "bottling logic"

[12:25:32 CST(-0600)] <Justin_o> Bosmon7: do you mean to create another thing like the modelRelay?

[12:26:06 CST(-0600)] <Bosmon7> Justin_o - very similar, yes, although not as complex

[12:26:14 CST(-0600)] <Bosmon7> Since it won't do any "rebasing" of the changes or model structure

[12:26:26 CST(-0600)] <Bosmon7> It will just store the arguments that are supplied to the listeners and reproduce them later

[12:28:36 CST(-0600)] <Justin_o> Bosmon7: how would i know when to reproduce them?

[12:29:00 CST(-0600)] <Bosmon7> Justin_o - they would be triggered by a "conventional event"

[12:29:47 CST(-0600)] <Justin_o> Bosmon7: i guess i actually mean "when" since i've been waiting for the model change event.. i'm not sure what else to wait for (smile)

[12:30:12 CST(-0600)] <Justin_o> Bosmon7: in the end i guess it would be easier just to listen to the sub panel's model change event instead of the composite panel's

[12:30:48 CST(-0600)] <Justin_o> but the path is different (sad)

[12:30:54 CST(-0600)] <Justin_o> model path that is

[12:31:08 CST(-0600)] <Bosmon7> It's the whole fact that there is a conventional event which creates the seequence point

[12:31:21 CST(-0600)] <Bosmon7> So you may as well turn it into an advantage : P

[12:32:20 CST(-0600)] <Justin_o> Bosmon7: sadly i'm not following.. the start of the change is triggered by a model change event as a result of value binding from the renderer

[12:33:09 CST(-0600)] <Bosmon7> Justin_o - yes

[12:33:26 CST(-0600)] <Bosmon7> This model change event apparently is geared into a re-rendering event and via the creation and destruction of some components

[12:33:36 CST(-0600)] <Justin_o> Bosmon7: yes

[12:33:58 CST(-0600)] <Bosmon7> So this re-rendering then creates a "conventional sequence point" - or if it doesn't, you could easily create one

[12:34:21 CST(-0600)] <Bosmon7> Oh, I see.... it is the rendering activity itself which you want to sequence

[12:34:23 CST(-0600)] <Justin_o> Bosmon7: but it's precisely this binding that is the problem since the model relay that is also waiting on it

[12:34:27 CST(-0600)] <Bosmon7> yes, ok

[12:34:43 CST(-0600)] <Bosmon7> Well, model relay, as in the "new framework", needs to get fast-tracked relative to everything else

[12:34:49 CST(-0600)] <Bosmon7> ok

[12:35:04 CST(-0600)] <Bosmon7> So this actually suggests that we should fix up cindyli's modelRelay to act more similarly to the upcoming one

[12:35:18 CST(-0600)] <Bosmon7> In fact, the videoPlayer's relay does indeed do this kind of "bottling"

[12:35:30 CST(-0600)] <Bosmon7> So our "temporary impl" is starting to become more and more similar to our other "temporary impl"

[12:38:34 CST(-0600)] <Justin_o> Bosmon7: what's next?

[12:38:49 CST(-0600)] <Bosmon7> Justin_o - ok

[12:39:02 CST(-0600)] <Bosmon7> So you mentioned that the current behaviour does actually seem to "accidentally" be what you want?

[12:39:11 CST(-0600)] <Bosmon7> That the model relay happens first and change listeners happen afterwards?

[12:39:44 CST(-0600)] <Justin_o> Bosmon7: i believe so.. let me test that out again

[12:40:12 CST(-0600)] <Justin_o> Bosmon7: it could also just be that they happen to get attached after

[12:40:19 CST(-0600)] <Bosmon7> Given how complex this is seeming, it may well be better to just "depend on the accident" for as long as it seems to be working, and for me to try to get the new impl working as quickly as possible

[12:40:24 CST(-0600)] <Bosmon7> Although this can't happen before next week

[12:42:58 CST(-0600)] <Justin_o> Bosmon7: i see.. yes.. i can understand that this would take time.. the sad news is that i'm not sure i can actually rework the code to use the current style. I don't know if i can convert this https://github.com/jobara/infusion/blob/ecd1475ed32437d14b00c171cbb77a675d76e3f8/src/framework/preferences/js/Panels.js#L322-L330

[12:43:49 CST(-0600)] <Bosmon7> Justin_o - ah, you're saying that the sequencing works if the listeners are added manually, but not through the declarative system?

[12:43:56 CST(-0600)] <Justin_o> the main problem being that addListener takes a function and you can see here i am relying on IoC to get values

[12:44:03 CST(-0600)] <Justin_o> Bosmon7: yep

[12:44:10 CST(-0600)] <Bosmon7> Justin_o - urgh

[12:44:23 CST(-0600)] <Justin_o> yes.. exactly (sad)

[12:44:35 CST(-0600)] <Justin_o> Bosmon7: i also have another strange issue to talk to you about after this one

[12:45:09 CST(-0600)] <Bosmon7> Justin_o - it doesn't seem like it would be too hard to massage this block so that it became a traditional crummy onCreate block that calls "addListener" ......

[12:46:11 CST(-0600)] <Justin_o> Bosmon7: where i'm getting stumped is that i don't know ahead of time what the values are and i'm constructing IoC declarations to get the values

[12:46:29 CST(-0600)] <Justin_o> addListener would take a function

[12:47:21 CST(-0600)] <Justin_o> i figure i could get around that reasonably with an invoker, except for the componentNames

[12:47:37 CST(-0600)] <Bosmon7> Justin_o - fine...... you can generate a thing which calls addListener on the configuration after it has manually supplied it to fluid.expandOptoins

[12:47:40 CST(-0600)] <Justin_o> unless i put that into the components options

[12:47:41 CST(-0600)] <Bosmon7> expandOptions

[12:47:57 CST(-0600)] <Bosmon7> This will certainly stand out as a piece of flimsy rubbish to be replaced when the new framework arrives : P

[12:49:59 CST(-0600)] <Justin_o> Bosmon7: where would i put that in the component tree?

[12:51:22 CST(-0600)] <Bosmon7> Justin_o - you will make some standalone utility function, and generate a call to it in the onCreate block of the component

[12:51:41 CST(-0600)] <Bosmon7> One of the arguments to it will be the component's "that" which can then be used to call fluid.expandOptions to generate the model listener

[12:53:09 CST(-0600)] <Justin_o> Bosmon7: you mean modify the listeners after the fact

[12:53:21 CST(-0600)] <Justin_o> ?

[12:54:11 CST(-0600)] <Bosmon7> Justin_o - yes, you will generate an onCreate listener which will just call "addListener" in the old conventional way which you have found to work

[12:54:26 CST(-0600)] <Bosmon7> And you will expand the IoC configuration supplied in order to generate the listener by hand

[12:54:39 CST(-0600)] <Justin_o> Bosmon7: sure i'll do that.. i might just put an object in the options that has the info i need to generate it

[12:55:04 CST(-0600)] <anastasiac> say, yzen, can you give me an ETA on CSpace information, so that I can do some planning of my time?

[12:55:19 CST(-0600)] <Justin_o> Bosmon7: oh i see

[12:55:31 CST(-0600)] <yzen> anastasiac: eod today

[12:55:45 CST(-0600)] <anastasiac> ok, thanks yzen

[12:55:52 CST(-0600)] <Justin_o> Bosmon7: okay.. i'll get to that then..

[12:56:18 CST(-0600)] <Bosmon7> Justin_o - good luck!

[12:56:18 CST(-0600)] <Justin_o> Bosmon7: do you have time to hear the second problem?

[12:56:21 CST(-0600)] <Bosmon7> Justin_o - yes

[12:58:17 CST(-0600)] <Justin_o> Bosmon7: so the second issue is regarding the rendering of the sub panels.. i'm not really sure what's causing this as my unit tests were passing... but what it looks like is that if the conditional sub panel is created on initialization of the composite panel, it creates and destroys fine, but for those that are not created yet.. they don't get created

[12:58:17 CST(-0600)] <Justin_o> afterwards...

[12:59:29 CST(-0600)] <Justin_o> Bosmon7: that's not quite correct.. the sub panels are created, but their markup isn't properly rendered out

[12:59:55 CST(-0600)] <Justin_o> but if they are created on init, they do work properly even after being destroyed and recreated

[13:00:17 CST(-0600)] <Justin_o> and there are no errors being thrown

[13:00:18 CST(-0600)] <Bosmon7> What do you mean by "don't work properly"

[13:00:32 CST(-0600)] <Bosmon7> It's not a very good bug report (smile)

[13:02:22 CST(-0600)] <Justin_o> yes.. sorry.. i'm still trying to get a grasp on this one...

[13:03:08 CST(-0600)] <Justin_o> Bosmon7: it might be easier to try this example from anastasiac's branch https://github.com/acheetham/infusion/blob/PFID/src/instructionalDemos/framework/preferences/compositeSchemas/conditional.html

[13:03:38 CST(-0600)] <Justin_o> Bosmon7: but it looks like just the template is getting rendered for sub panels

[13:04:25 CST(-0600)] <Justin_o> Bosmon7: however, if those sub panels are shown when the composite panel is created.. that is, if the model value they are dependent on is true when the composite panel is created, they render correctly

[13:05:04 CST(-0600)] <Bosmon7> Justin_o - I might have to leave you to debug that one for yourself (smile)

[13:05:08 CST(-0600)] <Bosmon7> Since I am a bit running out of time ....

[13:06:49 CST(-0600)] <Justin_o> Bosmon7: yah no problem.. i get the first part fixed up and try to come back to this one

[13:07:16 CST(-0600)] <Justin_o> Bosmon7: the strange thing though is that the produce tree seems to be the same in both cases.. so i'm not really sure what could be going wrong

[13:07:32 CST(-0600)] <Justin_o> hmm.. i wonder if it might have to do with cutpoints

[13:07:39 CST(-0600)] <Justin_o> anyways.. i'll keep trying

[13:08:12 CST(-0600)] <Justin_o> Bosmon7: thanks for the help

[13:57:45 CST(-0600)] <Aver> Can anyone tell me if the FLOE video player is able to handle and play FLV flash videos?

[13:58:15 CST(-0600)] <Aver> The documentation is lacking any instructions but mediaelementjs falls back properly and I am unable to find out how to make that work..

[14:06:01 CST(-0600)] <Aver> Hello?

[14:10:19 CST(-0600)] <colinclark> Hi Aver

[14:10:28 CST(-0600)] <colinclark> I'm not sure the answer to your question off the top of my head

[14:10:34 CST(-0600)] <colinclark> but anastasiac might know, she's used it quite a bit

[14:11:01 CST(-0600)] <Aver> Ok

[14:11:20 CST(-0600)] <Aver> We are trying to integrate the FLOE player and was hoping that because it used MediaElementJS it would handle FLV files nicely..

[14:11:29 CST(-0600)] <colinclark> But you're right, our use of MediaElement.js should ensure FLV playback, yes

[14:11:30 CST(-0600)] <Aver> however, we are unable to determine how to play FLV (can't find any documentation)

[14:11:41 CST(-0600)] <colinclark> Have you tried it yet?

[14:11:54 CST(-0600)] <Aver> BTW great job on the accessibility of the video player (smile) Its very impressive

[14:12:02 CST(-0600)] <colinclark> Oh, thanks!

[14:12:21 CST(-0600)] <colinclark> What project will you be using the Video Player in?

[14:13:27 CST(-0600)] <Aver> Were evaluating it to be the standard video player for our LMS (smile)

[14:15:39 CST(-0600)] <colinclark> ah, cool

[14:15:39 CST(-0600)] <colinclark> Which LMS?

[14:17:50 CST(-0600)] <anastasiac> hi, Aver. I apologize for the lack of documentation for the video player. It's still in its relatively early stages. We haven't tested with FLV, but as colinclark said, it should work. I'm guessing you've tried it and it doesn't?

[14:18:17 CST(-0600)] <Aver> Ya

[14:18:45 CST(-0600)] <Aver> There doesn't seem to be a source renderer for video/flv

[14:18:55 CST(-0600)] <Aver> Were evaluating it for D2L

[14:19:01 CST(-0600)] <colinclark> Aha

[14:19:26 CST(-0600)] <colinclark> Say hi to all my friends there for me (smile)

[14:19:45 CST(-0600)] <Aver> I will Sandra introduced us to this lovely player (smile)

[14:19:52 CST(-0600)] <colinclark> awesome

[14:19:57 CST(-0600)] <colinclark> Do you work with Sean Yo as well?

[14:20:02 CST(-0600)] <Aver> hes on my team

[14:20:13 CST(-0600)] <Aver> (smile)

[14:20:51 CST(-0600)] <anastasiac> Aver, cindyli may be able to correct me if I'm wrong, but I believe the source renderer might be pluggable, which means if it should be straightforward to add a flash renderer

[14:20:51 CST(-0600)] <Aver> Anastasiac do you know where we could look to fix the flash support ? We could look at contributing a fix but were not entirely sure where to look..

[14:22:41 CST(-0600)] <anastasiac> Aver, I'll have a look into it, refresh my memory regarding the source renderer. Thanks for the offer (smile)

[14:23:35 CST(-0600)] <Aver> ok perfect

[14:23:55 CST(-0600)] <Aver> In the meantime well hammer you guys with questions (tongue)

[14:45:44 CST(-0600)] <Justin_o> Bosmon7: sadly it seems i was wrong.. even adding the listeners with a call to addListener happens before the model relay

[15:17:18 CST(-0600)] <anastasiac> Aver, the video player has no trouble with flv, you just need to set an option to help it recognize the type of "video/flv"; the default source renderer will work

[15:17:19 CST(-0600)] <anastasiac> Aver, this gist shows you what the option should look like: https://gist.github.com/acheetham/7474477

[15:17:19 CST(-0600)] <anastasiac> just add that to the options block passed as the second argument to fluid.videoPlayer()

[15:17:23 CST(-0600)] <anastasiac> Aver, does that make sense?

[15:18:53 CST(-0600)] <anastasiac> alternatively, the actual fix to the video player itself would be done in VIdeoPlayer_media.js, in the sourceRenderers block defined at line 109 or thereabouts

[15:20:57 CST(-0600)] <anastasiac> Aver, I've filed an issue for this: http://issues.fluidproject.org/browse/VP-320

[16:59:02 CST(-0600)] <Aver> Hey anastasiac - Thanks for thos updates

[16:59:07 CST(-0600)] <Aver> sorry I was away for a second (tongue)