fluid-work IRC Logs-2013-06-05
[07:46:04 CDT(-0500)] * Topic is 'This channel is logged – for details see: http://wiki.fluidproject.org/display/fluid/IRC+Channel' set by jessm on 07:30:00 CST(-0600)
[08:35:08 CDT(-0500)] <system64> Hey colinclark!
[08:35:16 CDT(-0500)] <colinclark> Hi system64, how's it going?
[08:35:59 CDT(-0500)] <system64> Working on Meteor these days
[08:36:38 CDT(-0500)] <system64> You think it should be good choice for my project? I think things like etherpad and chat can be done quite easily in meteor.
[08:38:23 CDT(-0500)] <colinclark> I think Meteor is probably not a great choice, no
[08:38:42 CDT(-0500)] <system64> But its still new, and I don't want to build something where not many people can contribute.
[08:38:49 CDT(-0500)] <colinclark> Cool though it is, I think there are a lot of reasons we make and use Infusion as an alternative
[08:39:14 CDT(-0500)] <colinclark> So, given that this is a Fluid-driven project, I think you should look at how you can use Infusion both on the server and in the browser to build your apps
[08:41:18 CDT(-0500)] <system64> Infusion on the server?
[08:43:36 CDT(-0500)] <system64> Is there any framework for doing server side stuff also?
[08:43:39 CDT(-0500)] <colinclark> yes
[08:44:08 CDT(-0500)] <colinclark> Right now it's nested inside our GPII projects, and not particularly well-documented
[08:44:10 CDT(-0500)] <colinclark> but it does exist
[08:44:24 CDT(-0500)] <colinclark> yzen1 can probably arrange to give you a brief tutorial
[08:44:28 CDT(-0500)] <colinclark> and he's written some documentation up
[08:44:32 CDT(-0500)] <colinclark> let me get you some links
[08:45:08 CDT(-0500)] <colinclark> It's based on Express, and I believe the core code of what we will be calling "Kettle" is here: https://github.com/GPII/universal/tree/master/gpii/node_modules/gpiiFramework
[08:45:40 CDT(-0500)] <system64> Would you recommend me to use it for my project, I planned to use Express with socket.io originally
[08:45:54 CDT(-0500)] <colinclark> Some documentation: http://wiki.gpii.net/index.php/Configuration
[08:45:58 CDT(-0500)] <colinclark> yzen: What do you think? ^^
[08:46:04 CDT(-0500)] <colinclark> Are you ready to have more users?
[08:46:42 CDT(-0500)] <system64> I'll be happy to dive into a new framework
[08:46:45 CDT(-0500)] <yzen> well, i think it would be neat but we did not deal with socket io previously
[08:47:31 CDT(-0500)] <yzen> this would be a valuable extension to the kettle, imo
[08:48:00 CDT(-0500)] <colinclark> would you be willing to lend system64 a hand with it, yzen?
[08:48:40 CDT(-0500)] <yzen> definitely !
[08:53:00 CDT(-0500)] <system64> yzen: Thanks! Would be great if you could tell where could I start?
[08:54:25 CDT(-0500)] <yzen> system64: sure one sec, let me dig out some links
[08:55:26 CDT(-0500)] <yzen> system64: actually colinclark gave the link i was looking for as well, it pretty much describes the current state of the architecture, but let me point you to some actual examples in the code
[08:57:25 CDT(-0500)] <yzen> so system64 in addition to the links above, here's an example of a simple serverside app built on top of the gpii framework https://github.com/GPII/universal/tree/master/gpii/node_modules/preferencesServer
[08:59:59 CDT(-0500)] <system64> yzen: I have little idea about infusion on server side. Is it on npm?
[09:00:59 CDT(-0500)] <yzen> system64: not yet, but you should certainly install it using npm by pointing to the git repo url
[09:27:31 CDT(-0500)] <Justin_o> heidiv: can you file a jira about the IE8 issue, where the icons don't refresh right away
[09:27:57 CDT(-0500)] <heidiv> Justin_o i added it as a comment to 4995 - think it should be it's own thing tho?
[09:28:03 CDT(-0500)] <heidiv> *its
[09:28:28 CDT(-0500)] <Justin_o> heidiv: yes.. just so that it will be easier to find if someone runs into it later
[09:28:38 CDT(-0500)] <heidiv> Justin_o okee doke, will do!
[09:28:44 CDT(-0500)] <Justin_o> thanks
[09:32:40 CDT(-0500)] <heidiv> Justin_o thinking… it'd be a general issue, right? Not UIO only?
[09:33:11 CDT(-0500)] <heidiv> if you have uio, make changes, it's possible another component within the page that uses font icons wouldn't update properly as well
[09:33:13 CDT(-0500)] <Justin_o> heidiv: hmm.. good question.. i guess it would be general, but most noticeable with UIO..
[09:33:24 CDT(-0500)] <Justin_o> heidiv: yes.. that's true
[09:33:32 CDT(-0500)] <Justin_o> i think if you refresh the page you might also see it happen
[09:33:37 CDT(-0500)] <heidiv> ok
[09:33:40 CDT(-0500)] <Justin_o> even if there is no UIO
[09:35:50 CDT(-0500)] <heidiv> Justin_o http://issues.fluidproject.org/browse/FLUID-5034
[09:37:50 CDT(-0500)] <Justin_o> heidiv: great thanks
[09:38:19 CDT(-0500)] <heidiv> Justin_o thanks for reviewing 4995
[09:38:35 CDT(-0500)] <heidiv> Justin_o do you have time this aft to chat about carousel component?
[09:39:26 CDT(-0500)] <Justin_o> heidiv: yes i should.. i'll probably have time this morning if you want to chat shortly
[09:39:39 CDT(-0500)] <heidiv> Justin_o sure ya
[09:40:03 CDT(-0500)] <Justin_o> heidiv: by the way, i set the component to UIO for the jira you just filed, since it's the only one that uses font icons.. we'll have to try to remember to add on the components as they start using them
[09:41:34 CDT(-0500)] <heidiv> Justin_o ok, makes sense. thanks
[09:47:34 CDT(-0500)] <Justin_o> heidiv, michelled: filed the jira about the alignment issue when using comic sans and verdana http://issues.fluidproject.org/browse/FLUID-5035
[09:47:47 CDT(-0500)] <Justin_o> heidiv: ready to chat now about the carousel
[09:48:02 CDT(-0500)] <heidiv> Justin_o cool loading up skype...
[10:45:37 CDT(-0500)] <michelled> anastasiac, cindyli, Justin_o, yzen, jvass: can you chime in on the content simplification thread if I've missed anything?
[11:01:15 CDT(-0500)] <anastasiac> michelled, I responded to your email on list
[11:02:01 CDT(-0500)] <michelled> thanks
[11:22:53 CDT(-0500)] <Bosmon2> Justin_o - do you think we can use a bit of our community meeting slot today to talk about UIOptions naming?
[11:28:56 CDT(-0500)] <Justin_o> Bosmon2: possibly, michelled wanted to talk about the FLOE roadmap today.. not sure how long that will take
[11:29:01 CDT(-0500)] <Justin_o> michelled: any idea?
[11:29:43 CDT(-0500)] <michelled> Bosmon2, Justin_o: I think we should talk about the UIO naming first, since it's holding out a large branch
[11:30:15 CDT(-0500)] <michelled> if we have time after we talk about the roadmap, we should also talk about the UIO API
[11:30:56 CDT(-0500)] <Justin_o> michelled: sounds good
[12:08:10 CDT(-0500)] <yzen> system64: so to get pref sever: you need to clone the repo which you did and then call npm install inside; sometimes it chokes so i'd just try npm install again
[12:10:11 CDT(-0500)] <system64> The git repos specified in package.json have different line endings than those in my config, so it asks me to commit changes first.
[12:10:24 CDT(-0500)] <system64> I tried npm install few times
[12:10:54 CDT(-0500)] <yzen> you are on linux right ?
[12:11:12 CDT(-0500)] <system64> No, I'm using OSX
[12:11:18 CDT(-0500)] <yzen> weird ok
[12:11:18 CDT(-0500)] <yzen> you might want to configure your line endings for git globally
[12:11:39 CDT(-0500)] <yzen> https://help.github.com/articles/dealing-with-line-endings
[12:50:15 CDT(-0500)] <system64> yzen: I think I installed all dependencies of Pref server. When I do `node index` I'm getting output as `function`
[13:33:39 CDT(-0500)] <thealphanerd> colinclark: good morrow
[13:40:54 CDT(-0500)] <cindyli1> hi Bosmon2
[13:42:47 CDT(-0500)] <colinclark> hey thealphanerd
[13:42:51 CDT(-0500)] <colinclark> how's it going?
[13:42:59 CDT(-0500)] <thealphanerd> not too bad
[13:43:00 CDT(-0500)] <thealphanerd> waking up
[13:43:03 CDT(-0500)] <thealphanerd> putting off laundry
[13:43:06 CDT(-0500)] <thealphanerd> should eat soon
[13:43:06 CDT(-0500)] <colinclark>
[13:43:07 CDT(-0500)] <thealphanerd> you?
[13:44:01 CDT(-0500)] <colinclark> pretty good
[13:45:17 CDT(-0500)] <thealphanerd> right on… have you been making any headway with the scheduler?
[13:46:45 CDT(-0500)] <colinclark> oh yes
[13:46:47 CDT(-0500)] <colinclark> quite a lot
[13:47:33 CDT(-0500)] <colinclark> Slides 23-30: http://colinclark.org/presentations/flocking-supercollider-symposium-2013.pdf
[13:48:50 CDT(-0500)] <colinclark> This is finally a start on the "there's nothing but unit generators" model
[13:48:56 CDT(-0500)] <colinclark> which James McCartney was very supportive of
[13:49:04 CDT(-0500)] <colinclark> "I think you're on the right track," he said
[13:52:30 CDT(-0500)] <thealphanerd> interesting
[13:52:52 CDT(-0500)] <thealphanerd> how would this translate to sample accurate control?
[13:53:08 CDT(-0500)] <thealphanerd> and what about lower level ugens that require sample accurancy?
[13:55:27 CDT(-0500)] <colinclark> well, that's the thing
[13:55:34 CDT(-0500)] <colinclark> it translates seamlessly to sample accuracy
[13:55:44 CDT(-0500)] <colinclark> because the things you are scheduling are themselves unit generators
[13:56:07 CDT(-0500)] <colinclark> and as a result are amenable to being directly coupled to the signal processing pipeline
[13:56:15 CDT(-0500)] <colinclark> as opposed to, say, arbitrary functions
[13:56:20 CDT(-0500)] <colinclark> that can do arbitrary things
[13:56:48 CDT(-0500)] <colinclark> So it's really just a question of which "clock" you choose to schedule something to
[13:57:00 CDT(-0500)] <thealphanerd> so the idea being that the scheduler is just another ugen?
[13:57:08 CDT(-0500)] <colinclark> in the sample accurate case, the clock will be driven by the Flocking environment as it pulls samples through the pipeline
[13:57:18 CDT(-0500)] <colinclark> The scheduler itself isn't so much another unit generator
[13:57:24 CDT(-0500)] <thealphanerd> have you tried playing with the web audio scheduler itself?
[13:57:41 CDT(-0500)] <colinclark> but the logic that gets scheduled consists of just a another graph of ugens
[13:57:50 CDT(-0500)] <colinclark> There is no scheduler in the Web Audio API
[13:57:57 CDT(-0500)] <colinclark> beyond the AudioParam object
[13:58:10 CDT(-0500)] <colinclark> which provides a handful of methods for scheduling
[13:58:12 CDT(-0500)] <colinclark> setValueAtTime
[13:58:16 CDT(-0500)] <colinclark> setTargetAtTime
[13:58:16 CDT(-0500)] <colinclark> etc.
[13:58:51 CDT(-0500)] <thealphanerd> so how does sample accuracy work then
[13:58:54 CDT(-0500)] <colinclark> That whole HTML5 Rocks article you pasted me several weeks ago was all about how to deal with the fact that there was not high-level scheduler available in Web Audio
[13:58:56 CDT(-0500)] <thealphanerd> I feel like I am missing something
[13:59:22 CDT(-0500)] <colinclark> You use the AudioParam API to schedule value changes in the future
[13:59:27 CDT(-0500)] <colinclark> that's the sample accurate scheduling it offers
[13:59:40 CDT(-0500)] <colinclark> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioParam
[14:01:09 CDT(-0500)] <thealphanerd> ahhh
[14:01:29 CDT(-0500)] <colinclark> Whereas most computer music tools offer higher-level abstractions for generating patterns, etc.
[14:01:30 CDT(-0500)] <colinclark> http://doc.sccode.org/Tutorials/Getting-Started/16-Sequencing-with-Patterns.html
[14:01:48 CDT(-0500)] <colinclark> The key with Flocking is that I noticed that all of these things are ultimately the same
[14:02:05 CDT(-0500)] <colinclark> What's a Pattern in SuperCollider? It's just a thing that produces a stream of numbers over time
[14:02:08 CDT(-0500)] <colinclark> a kind of "signal"
[14:02:21 CDT(-0500)] <colinclark> What's a unit generator? A thing that produces a stream of numbers over time.
[14:02:45 CDT(-0500)] <thealphanerd> makes sense… although I might need to mull over it a bit more
[14:02:54 CDT(-0500)] <colinclark> It becomes all the more clear when you look at SuperCollider's "demand rate" unit generators: http://danielnouri.org/docs/SuperColliderHelp/UGens/Synth%20control/Demand%20Rate/Demand.html
[14:03:05 CDT(-0500)] <colinclark> Which, interestingly enough, correspond very closely with Patterns
[14:03:08 CDT(-0500)] <colinclark> but they have no relationship
[14:03:14 CDT(-0500)] <colinclark> separate worlds, separate things, separate abstractions
[14:03:25 CDT(-0500)] <colinclark> what need is fewer abstractions that go further
[14:03:58 CDT(-0500)] <thealphanerd> can you rephrase that last sentence
[14:05:44 CDT(-0500)] <colinclark> So, my argument is that Patterns are the same as Unit Generators
[14:05:57 CDT(-0500)] <colinclark> but they have different semantics, different APIs, etc.
[14:06:13 CDT(-0500)] <thealphanerd> so the concept is the same
[14:06:21 CDT(-0500)] <thealphanerd> but implementation and usage slightly different?
[14:07:24 CDT(-0500)] <colinclark> hugely different
[14:07:47 CDT(-0500)] <colinclark> whereas I think that unit generators and synths are a very broad and recognizable abstraction
[14:08:12 CDT(-0500)] <colinclark> That can be used for generating individual samples or for scheduling larger-scale changes
[14:09:05 CDT(-0500)] <colinclark> representing one interface and API for "stuff that changes over time"
[14:09:06 CDT(-0500)] <colinclark>
[14:10:42 CDT(-0500)] <colinclark> The benefit of this is also that scheduling can share the exact same declarative structure
[14:11:01 CDT(-0500)] <thealphanerd> so I guess my question then becomes
[14:11:04 CDT(-0500)] <colinclark> which means an entire composition can be represented as a "document"
[14:11:06 CDT(-0500)] <thealphanerd> how does this work on a lower level?
[14:11:09 CDT(-0500)] <colinclark> schedules, instruments, etc.
[14:11:38 CDT(-0500)] <colinclark> thealphanerd: Like, how is it implemented?
[14:12:17 CDT(-0500)] <thealphanerd> yup
[14:17:15 CDT(-0500)] <colinclark> one sec
[14:19:46 CDT(-0500)] <colinclark> In the meantime, look at this chart that Bosmon2 just sent me, thealphanerd: http://benchmarksgame.alioth.debian.org/u32/performance.php?test=spectralnorm
[14:25:18 CDT(-0500)] <colinclark> ok, sorry
[14:25:58 CDT(-0500)] <colinclark> thealphanerd: The implementation of the current "pleasantly inaccurate" Scheduler just uses setInterval and setTimeout running in a Web Worker, which provides a certain measure of stability
[14:26:07 CDT(-0500)] <colinclark> but you can hear distinctly syncopated rhythms in some cases
[14:26:13 CDT(-0500)] <thealphanerd> indeed
[14:26:27 CDT(-0500)] <thealphanerd> I noticed that there was a big difference between your scheduler and the one I originally hacmed
[14:26:29 CDT(-0500)] <thealphanerd> hacked
[14:26:43 CDT(-0500)] <colinclark> interns of reliability?
[14:26:55 CDT(-0500)] <colinclark> when you schedule an "object," the Scheduler interprets it as a "demand rate Synth"
[14:27:19 CDT(-0500)] <colinclark> every time the clock ticks, it pulls a value from the Synth and sets it on target synth
[14:27:28 CDT(-0500)] <thealphanerd> brb… laundry / lunch
[14:27:37 CDT(-0500)] <thealphanerd> sorry to run away on you again
[14:27:43 CDT(-0500)] <colinclark>
[15:23:43 CDT(-0500)] <Bosmon2> Hi cindyli - are you there?
[15:23:52 CDT(-0500)] <cindyli> yes, Bosmon2
[15:24:18 CDT(-0500)] <cindyli> do you see the new jira 5036?
[15:24:59 CDT(-0500)] <Bosmon2> Yes
[15:25:08 CDT(-0500)] <Bosmon2> I have pushed some fixes to a new pull request for it
[15:25:09 CDT(-0500)] <cindyli> does it make sense to you?
[15:25:17 CDT(-0500)] <cindyli> that's quick, thanks
[15:25:44 CDT(-0500)] <Bosmon2> Unfortunately a lot of what you are trying to do in that JIRA is not valid - I have added a comment to the JIRA explaining
[15:25:56 CDT(-0500)] <cindyli> ok
[15:26:03 CDT(-0500)] <Bosmon2> In particular i) the static environment is not a component, and ii) even if it was, it would not be possible to resolve to a context on it that was not itself a component
[15:26:32 CDT(-0500)] <Bosmon2> I've adjusted the test cases you supplied so they at least basically work, and I've fixed the framework issue that caused the incomprehensible message about the "Malformed context reference"...
[15:29:44 CDT(-0500)] <cindyli> make sense. thanks, Bosmon2.