00:07:34  <Raynos>https://gist.github.com/4028488
00:09:36  <dominictarr>yay, it's another control flow lib!
00:09:52  * thatguydanjoined
00:10:10  <dominictarr>but this is exactly the one I would use, if I used CF libs
00:10:25  <dominictarr>also, nice gimmick.
00:16:10  <Raynos>you dont really need sugar for sequential flows
00:16:20  <Raynos>but for do x related things in parallel and aggregate results
00:16:24  <Raynos>its a pain to do it manually
00:17:22  <dominictarr>yeah.
00:17:28  <dominictarr>normally I just do
00:17:40  <dominictarr>var n = expected
00:18:05  <dominictarr>then cb = function (err, null) {if(!--n) return; ...}
00:19:40  <Raynos>yeah that shit sucks
00:20:28  <substack>thinking I should be using convoy-stream for secure-peer but it's not obvious how to use it for what I want
00:20:59  <dominictarr>substack, secure peer was exactly the use case I had in mind writing convoy stream.
00:21:17  <substack>convoy-stream isn't behaving as I might expect
00:22:37  <dominictarr>you'd create a first stream, and use (say) dnode to exchange DH, and then end the first stream, and then return create a second stream and encrypt that using the DH key
00:22:49  <dominictarr>substack, can you show me your code?
00:23:25  <substack>yes I get conceptually what it's supposed to do
00:23:38  <substack>https://gist.github.com/4028657
00:23:42  <substack>this does nothing ^
00:24:31  <substack>or when I header.write() same thing
00:24:43  <substack>how do I make this module do things
00:24:44  <dominictarr>it's duplex
00:25:08  <dominictarr>you have to attach the convoy to another instance
00:25:35  <dominictarr>h.write('hello') -> _h.on('data',...)
00:25:54  <dominictarr>where _h is the corrisponding stream on the second convoy
00:26:02  <dominictarr>substack, ^^
00:26:26  <substack>what
00:26:33  <substack>but I haven't written that part yet
00:26:43  <substack>I don't want to design the whole thing up-front
00:27:50  <substack>I pretty much just want to give a module an array of streams and whenever the input writes a .end() it will skip to the next stream
00:27:51  <dominictarr>like this https://gist.github.com/4028683
00:27:56  <rowbit>Hourly usage stats: [developer: 8, free: 21]
00:28:35  <substack>dominictarr: what is going on
00:28:41  <substack>you have var header = ... twice
00:29:15  <substack>I'm not sold on this api
00:29:19  <dominictarr>fixed
00:30:13  <substack>are convoy streams meant to be 1:1 with createStream()?
00:30:32  <substack>1 convoy() for each createStream()
00:30:36  <dominictarr>no, each createStream() instance is packed into the convoy
00:30:47  <dominictarr>with a length delimeted framing
00:30:54  <substack>why do you need separate calls to convoy()?
00:31:07  <dominictarr>because there needs to be two convoys
00:31:14  <dominictarr>one either side of the network
00:31:26  <dominictarr>or, reading a file the origininal one wrote.
00:32:20  <substack>this api is not ideal
00:32:38  <dominictarr>what would you prefer?
00:33:24  <substack>not sure yet
00:33:31  <substack>but convoy is far too unintuitive
00:33:38  <substack>for what it does
00:35:26  <mike-d>substack, domonictarr: since node streams are like unix streams and are used to implement pipes like "who | sort | lpr", where does the a.pipe(b).pipe(a) pattern come in, is that node specific? ( I understand the duplex pattern, just wondering if this is a node disconnect from unix pipes or am I missing something ) 
00:35:38  <dominictarr>okay, well, you could do something simpler maybe
00:35:42  <dominictarr>substack, also see this https://gist.github.com/dominictarr/header-stream
00:36:19  <substack>mike-d: it's something you can't really do with unix pipes
00:36:27  <substack>unless you write a program
00:36:36  <dominictarr>mike-d, `SOURC.pipe(DEST)` === `SOURCE | DEST`
00:36:56  <dominictarr>oops reading your question again
00:37:37  <dominictarr>mike-d, I understand that there IS a way to do duplex pipes in bash... but it's not easy.
00:38:33  <dominictarr>here it is
00:38:33  <dominictarr>http://www.gnu.org/software/bash/manual/html_node/Coprocesses.html
00:38:44  <mike-d>I have been writing a new stream from the ground up, looking at the C api and src.pipe(dest) seems to be the only thing node streams have in common with posix
00:39:54  * tomshredsquit (Ping timeout: 260 seconds)
00:42:26  <dominictarr>mike-d, duplex streams are more a pattern than an API.
00:42:35  <dominictarr>you could still do them in C
00:43:16  <mike-d>domonictarr: right and also thanks for the link...
00:45:07  <substack>dominictarr: here's what I'm thinking for a convoy api https://gist.github.com/4028785
00:45:30  <substack>when the current stream emits an end it just goes to the next one
00:46:28  <dominictarr>substack, right. that is not that far from what I have
00:46:52  <dominictarr>just iterate over the array, call header.createStream() and pipe it to that stream in the array...
00:46:57  <substack>but with the current design why would I need multiple convoy objects?
00:47:20  <dominictarr>the second convoy object is on the other side of the network
00:47:35  <dominictarr>but you where logging output from the inner stream,
00:47:44  <dominictarr>either log from outer stream
00:47:51  <substack>I need to use a convoy stream on both sides?
00:47:54  <dominictarr>yup
00:47:58  <substack>ok this won't work then
00:48:42  <substack>I thought this module did something different from what I had in mind
00:48:43  <dominictarr>the point is to be able to recreate the boundries of the streams, not just contatenate them.
00:49:25  <dominictarr>do you want something more like this https://npmjs.org/package/kat
00:49:26  <substack>I just want to shift what the pipe endpoint is
00:49:32  <substack>with buffering
00:49:52  <substack>I don't want concatenation
00:50:21  <dominictarr>hmm, can you elaborate on "shift what the pipe endpoint is" ?
00:50:30  <substack>I want to pipe into es.split() but then be able to take that off and pipe somewhere else
00:50:42  <substack>I only want to buffer newlines for the start of it
00:50:52  <substack>but then I want to turn the machinery off
00:50:55  <substack>and pipe directly
00:51:18  <dominictarr>right, yeah, I have thought about this. for the last stream you don't need framing anymore
00:51:46  <substack>I don't see the utility of framing at all for what I'm envisioning
00:52:22  <dominictarr>what do you think of http://npm.im/header-stream
00:52:28  <substack>I'm more looking for a convenience library for switching stream endpoints
00:52:36  <substack>so I can switch between different streaming parsers
00:52:42  <substack>and so I can shift back into raw mode
00:53:03  <dominictarr>right, so you'd need to parse the stream endpoint your self
00:53:27  <substack>I looked at header-stream but there's not much there to evaluate it
00:53:32  <substack>only that test and the source itself
00:54:13  <dominictarr>convoy is a way of doing that, but it implements a particular way of packaging the stream
00:54:29  <dominictarr>I also have this https://github.com/dominictarr/client-reloader which uses header-stream
00:54:32  <substack>ok I'll write a module for what I have in mind
00:54:54  <dominictarr>this stuff isn't documented yet though, just writing this because I need it for my cascadia demos.
00:55:47  * _sorensenquit (Ping timeout: 244 seconds)
00:55:50  <substack>I'm thinking more like a hose that you can plug into different things
00:55:58  <substack>without having to go and get a new hose
00:56:17  <mike-d>dominictarr: the C imp is very clean, read(int, void *, size_t); and write(int, const void *, size_t); found in unistd.h and the pipe/fd takes care of the buffering, I do see a need for pause() and resume() in node that act on the src stream, but I really like the unix way so i'm coding a new stream and just adding pipe() for the wiring
00:57:03  <dominictarr>mike-d, have you seen isaacs/readable-stream ?
00:57:04  <substack>mike-d: pause() and resume() aren't needed in the new stream implementation in node
00:57:16  <substack>it's the same as the read() and write() calls
00:57:55  <dominictarr>like, a huge bunch of work has gone into this. going and inventing a new thing is silly because you won't be able to use anyone's modules,
00:58:02  <dominictarr>and they won't be able to use yours.
00:58:31  <mike-d>if you don't have a read call, which in my current imp, I dont, so I use pause resume, yes, I looked at isaacs new streams
00:58:36  <substack>calling this thing next-stream
01:00:04  * maksquit (Quit: Page closed)
01:00:59  <mike-d>right now I only have pipe, write, pause, resume… and the base Stream constructor takes the read function which can have multiple args
01:01:50  <mike-d>I ditched read because something has to kick off the stream, which is the first call to write
01:07:20  <mike-d>dominictarr, substack: this is the api, https://gist.github.com/4028874
01:08:21  <substack>mike-d: have you seen https://github.com/dominictarr/through ?
01:10:44  <mike-d>substack: yes, looked at dominics and yours plus isaacs quite a bit
01:11:47  <dominictarr>I gotta go! catch you dudes later
01:17:18  * dominictarrquit (Ping timeout: 252 seconds)
01:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 34]
01:37:24  * mikealquit (Quit: Leaving.)
01:51:49  * st_lukejoined
02:01:41  * dominictarrjoined
02:02:10  * mikealjoined
02:05:57  <substack>dominictarr: I realized that it makes much more sense to only just use through for this
02:06:03  <substack>the other abstractions don't fit very well
02:06:19  <dominictarr>hmm, what about duplex?
02:06:36  <substack>and the one I had in mind to make it easier actually would be really difficult since messages could be split at boundaries
02:06:57  <dominictarr>right, that is why I put framing into convoy
02:07:29  <dominictarr>if you only need framing for the handshake it's easier, because you can just use line seperated json.
02:07:44  <substack>I just want to grab a line
02:07:51  <substack>and then I want it to be regular tcp
02:08:29  <dominictarr>1 line?
02:08:34  <substack>yes
02:08:55  <dominictarr>header-stream does exactly that.
02:09:11  <substack>was also looking at header-stream
02:09:15  <substack>no examples :(
02:09:31  <dominictarr>I'll write a quick example ... although, I must confess that I just used monkeypatching
02:09:57  <substack>oh so the other part
02:10:20  <substack>was it's not obvious how I should go about returning a duplex stream while simultaneously using header-stream
02:10:26  <substack>I've run into this before
02:11:02  <substack>where I want to stick a writable stream on the front of something but maintain the api of the endpoint
02:11:11  <substack>mixing streams with stream methods doesn't compose well
02:11:57  * fotoveritejoined
02:17:22  <substack>ok I have something working
02:17:31  <substack>did sec.on('pipe', function () { sec.writeHead() })
02:18:31  * tilgoviquit (Remote host closed the connection)
02:18:34  <dominictarr>substack, put the writeHead in next tick.
02:19:50  <Raynos>NEW RULE
02:19:51  <LOUDBOT>WHO PUT ENTER RIGHT NEXT TO THE BACKSPACE SERIOUSLY
02:19:57  <Raynos>ALL COMPLEX CODE HAS TO BE WRITTEN IN CAPSLOCK SCRIPT
02:19:57  <LOUDBOT>ACHIEVEMENT UNLOCKED: EVEN NUMBERS
02:20:00  <dominictarr>because pipe is emitted before the whole pipeline is connected.
02:20:29  <dominictarr>ALSO; UGLY HACKS MUST BE FORMATTED UGLY
02:20:30  <LOUDBOT>AND NO IT WASN'T A SOCK
02:21:40  <dominictarr>RAYNOS, WE SHOULD USE YOUR RULE IN OUR NKO THING
02:21:41  <LOUDBOT>JUMPSTART YOUR CAREER WITH NUDE PICS POSTED TO FOUR CHANNEL
02:21:46  <Raynos>dominictarr: that's why your code looks ugly?
02:22:31  <dominictarr>AN UGLY PROBLEM CALLS FOR AN UGLY SOLUTION
02:22:32  <LOUDBOT>THE CREEPS WERE LOOKING AT THE WINDOWS BECAUSE SUPER MOP-TOP WAS PLAYING THE DRUMS! ULTRA-BEAN WAS PLAYING THE TRUMPETS!!!
02:22:35  * tphummelquit (Quit: tphummel)
02:22:48  <AvianFlu>OH MY GOD TOO MANY CAPS I DON'T UNDERSTAND WHAT'S GOING ON
02:22:49  <LOUDBOT>BRICKS I SAY
02:22:58  <AvianFlu>OH YES. OF COURSE IT'S BRICKS.
02:22:58  <LOUDBOT>YOU ARE ONLY LYING TO YOURSELF. UNDO THAT SHIT AND TRY AGAIN.
02:23:08  <AvianFlu>WHAT THE HELL YOU JUST SAID IT WAS BRICKS!
02:23:09  <LOUDBOT>THE NEXT PERSON TO TYPE IN CAPS WILL SUFFER
02:23:15  <Raynos>I SUFFER
02:23:16  <LOUDBOT>"CUNT NUGGET SON OF A BITCH GYPSY"
02:23:20  <Raynos>:D
02:24:12  <dominictarr>BREAKING NEWS "LOUDBOT" PASSES TURING TEST
02:24:13  <LOUDBOT>ALMOST DONE, GO ON WITHOUT ME
02:24:19  * mikealquit (Quit: Leaving.)
02:25:07  <dominictarr>substack, some example code in the header-stream/README
02:27:32  <substack>sweet
02:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 13]
02:32:56  <st_luke>one great thing about living in new york is that you learn you don't really miss anything at all by staying in and writing code
02:33:38  * anoemijoined
02:45:33  * dominictarrquit (Ping timeout: 252 seconds)
02:49:14  * dominictarrjoined
02:54:28  * mikealjoined
02:58:15  <Raynos>st_luke: come to the bay
02:58:27  <Raynos>there's tons of coding parties here
02:58:37  <Raynos>Actually I don't think I've ever been to a coding party
02:58:59  * mikealquit (Ping timeout: 255 seconds)
03:00:48  <Raynos>maxogden: have you been to coding parties?
03:02:01  * mikealjoined
03:02:15  <dominictarr>I have
03:04:59  <substack>time for tacos
03:05:17  * substackmade a giant vat of ingredients
03:16:01  * mikealquit (Quit: Leaving.)
03:19:32  * dominictarrquit (Ping timeout: 246 seconds)
03:20:19  * pikpikquit (Changing host)
03:20:20  * pikpikjoined
03:20:20  * pikpikquit (Changing host)
03:20:20  * pikpikjoined
03:27:32  * jibay_quit (Quit: Leaving)
03:27:56  <rowbit>Hourly usage stats: [developer: 3, free: 17]
03:36:20  * tphummeljoined
03:43:43  * tphummelquit (Quit: tphummel)
03:46:11  * mikealjoined
03:52:05  * mikealquit (Ping timeout: 255 seconds)
03:55:41  <st_luke>Raynos: yes, I need to spend some more time in the bay area.
03:56:35  <Raynos>dominictarr: when your down here we should throw some
03:56:44  <Raynos>In joyent's offices cc isaacs
04:18:14  * mikealjoined
04:27:50  * mikealquit (Ping timeout: 260 seconds)
04:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 35]
04:28:51  * mikealjoined
04:40:17  * anoemiquit (Quit: anoemi)
05:27:56  <rowbit>Daily usage stats: [developer: 35, free: 988]
05:27:58  <rowbit>Hourly usage stats: [developer: 0, free: 64]
05:31:02  * AvianFluquit (Remote host closed the connection)
05:34:51  * tphummeljoined
05:36:08  * mikealquit (Quit: Leaving.)
05:38:49  * tphummelquit (Client Quit)
05:40:15  * mikealjoined
05:44:44  * tphummeljoined
05:45:05  * mikealquit (Client Quit)
05:45:11  * tphummelquit (Client Quit)
05:47:18  * shykeschanged nick to zz_shykes
06:04:47  * mikealjoined
06:05:50  * mikealquit (Client Quit)
06:06:19  * zz_shykeschanged nick to shykes
06:08:55  * shykeschanged nick to zz_shykes
06:20:59  * tphummeljoined
06:23:27  * tphummelquit (Client Quit)
06:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 69]
06:28:38  * mikealjoined
06:29:59  * fotoveritequit (Read error: Connection reset by peer)
06:41:01  * mikealquit (Quit: Leaving.)
06:47:36  * mikealjoined
06:58:43  <substack>ok blarg this works https://github.com/substack/rsa-unpack
06:59:05  <substack>if only core crypto just let me create a DiffieHellman instance directly from a PEM
06:59:18  * thatguydanquit (Quit: thatguydan)
07:07:58  <substack>I still can't seem to create DH objects even with decoded PEMs :(
07:18:48  * zz_shykeschanged nick to shykes
07:22:40  <substack>hmmm I might need to decode the public key to get p and g
07:22:53  <substack>looks like that's what DiffieHellman can be initialized with
07:23:13  <substack>it's really crap that I can't just make a DiffieHellman object directly
07:23:25  <substack>since it has setters for the public and private keys
07:24:00  * shykeschanged nick to zz_shykes
07:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 18]
07:29:47  * zz_shykeschanged nick to shykes
07:50:41  * mikealquit (Quit: Leaving.)
07:54:52  * shykeschanged nick to zz_shykes
08:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 41]
08:47:51  <jesusabdullah>yo substack what are you up to on friday
08:59:52  <st_luke>probably streams
09:04:46  * zz_shykeschanged nick to shykes
09:09:54  * shykeschanged nick to zz_shykes
09:27:56  <rowbit>Hourly usage stats: [developer: 1, free: 43]
09:41:00  * juliangruberjoined
09:44:08  * st_lukequit (Ping timeout: 246 seconds)
09:45:41  <juliangruber>any ideas on how to do master-only replication where you can't trust nodes (eg cheating in games) ?
10:18:03  * juliangruberquit (Ping timeout: 276 seconds)
10:27:56  <rowbit>Hourly usage stats: [developer: 7, free: 45]
10:48:44  * jibayjoined
11:21:11  * juliangruberjoined
11:27:56  <rowbit>Hourly usage stats: [developer: 2, free: 72]
11:31:18  * juliangruberquit (Ping timeout: 264 seconds)
11:41:39  * thatguydanjoined
11:46:36  * juliangruberjoined
12:04:31  * juliangruberquit (Ping timeout: 260 seconds)
12:05:03  * juliangruberjoined
12:09:24  * juliangruberquit (Ping timeout: 248 seconds)
12:17:36  * juliangruberjoined
12:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 65]
13:19:02  * juliangruberquit (Remote host closed the connection)
13:26:46  * shuaibjoined
13:27:56  <rowbit>Hourly usage stats: [developer: 1, free: 71]
13:52:20  <mbalho>Raynos: does this work with chrome 23? https://npmjs.org/package/webrtc-stream
13:52:34  <mbalho>Raynos: a live demo would be cool
14:10:43  * anoemijoined
14:17:50  * AvianFlujoined
14:22:01  * AvianFlu_joined
14:23:30  * AvianFluquit (Ping timeout: 264 seconds)
14:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 74]
14:41:46  * juliangruberjoined
14:43:18  * juliangruber_joined
14:49:43  * juliangruberquit (Quit: juliangruber)
14:49:43  * juliangruber_changed nick to juliangruber
14:49:58  * juliangruber_joined
14:53:49  * juliangruber_quit (Client Quit)
14:54:09  * juliangruber_joined
15:05:25  * juliangruberquit (Quit: juliangruber)
15:05:25  * juliangruber_changed nick to juliangruber
15:07:04  * AvianFlu_changed nick to AvianFlu
15:27:56  <rowbit>Hourly usage stats: [developer: 3, free: 44]
15:36:17  * wiwilliajoined
15:40:09  * anoemiquit (Quit: anoemi)
15:44:45  <substack>jesusabdullah: heading to joyent
15:49:08  * anoemijoined
15:51:34  * juliangruberquit (Quit: juliangruber)
15:56:43  * Dr_K1quit (Read error: Connection reset by peer)
15:59:28  * AvianFlu_joined
16:00:25  * AvianFluquit (Disconnected by services)
16:00:37  * AvianFlu_changed nick to AvianFlu
16:05:56  * wiwilliaquit (Ping timeout: 246 seconds)
16:08:25  * thatguydanquit (Ping timeout: 268 seconds)
16:09:06  * AvianFlu_joined
16:09:11  * thatguydanjoined
16:10:18  * AvianFluquit (Disconnected by services)
16:10:23  * AvianFlu_changed nick to AvianFlu
16:12:06  * _sorensenjoined
16:15:32  * wiwilliajoined
16:18:36  * AvianFlu_joined
16:18:51  * AvianFluquit (Disconnected by services)
16:18:53  * AvianFlu_changed nick to AvianFlu
16:27:54  * AvianFlu_joined
16:27:56  <rowbit>Hourly usage stats: [developer: 0, free: 37]
16:29:02  * AvianFluquit (Disconnected by services)
16:29:06  * AvianFlu_changed nick to AvianFlu
16:31:41  * anoemiquit (Quit: anoemi)
16:55:24  * st_lukejoined
16:55:28  * st_luke_joined
17:01:06  * thatguydanquit (Ping timeout: 240 seconds)
17:16:10  <substack>blarg if I had dsa keys instead of rsa creating a diffie hellman would be much simpler
17:20:04  * anoemijoined
17:23:31  * juliangruberjoined
17:27:56  <rowbit>Hourly usage stats: [developer: 1, free: 54]
17:32:23  * st_luke_quit (Remote host closed the connection)
17:45:45  * zz_shykeschanged nick to shykes
17:45:57  <jesusabdullah>substack: oh, word
17:46:23  <jesusabdullah>substack: I was gonna offer to help you get furniture out of stackhouse since that'll be my last day and all
17:46:53  <substack>should be ok, jjjohnnny and I were going to stop by to haul stuff over
17:56:34  * yorickjoined
17:56:35  * yorickquit (Changing host)
17:56:35  * yorickjoined
18:06:13  * blakmatrix_joined
18:07:50  * juliangruberquit (Quit: juliangruber)
18:16:52  * jibay_joined
18:17:16  * mikealjoined
18:18:49  * mikealquit (Client Quit)
18:19:43  * jibayquit (Ping timeout: 260 seconds)
18:21:12  * blakmatrix_part
18:23:54  * mikealjoined
18:27:56  <rowbit>Hourly usage stats: [developer: 3, free: 35]
18:36:37  <Raynos>mbalbo: It worked in chrome 22 with flags turned on
18:38:46  * wiwilliaquit (Ping timeout: 245 seconds)
18:39:24  <AvianFlu>substack: where's your next abode gonna be?
18:42:16  <substack>AvianFlu: already there, it's in fruitvale
18:43:00  <AvianFlu>oh nice
18:47:15  * mikealquit (Quit: Leaving.)
18:47:32  * mikealjoined
19:07:49  <Raynos>substack: your leaving stackhouse?
19:16:51  <CoverSlide>oh no
19:16:56  <CoverSlide>what shall it be called now?
19:21:29  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
19:21:29  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
19:23:01  * mikealquit (Quit: Leaving.)
19:23:10  * dominictarrjoined
19:24:07  <CoverSlide>cha-ching
19:27:56  <rowbit>Hourly usage stats: [developer: 5, free: 37]
19:31:53  * fotoveritejoined
19:32:16  * juliangruberjoined
19:33:12  * mikealjoined
19:34:14  * thatguydanjoined
19:41:36  * thatguydanquit (Read error: Connection reset by peer)
19:42:19  * thatguydanjoined
19:54:33  * tphummeljoined
19:58:22  * juliangruberquit (Quit: juliangruber)
20:06:38  <st_luke>how many smileys are you supposed to put on your resume?
20:06:41  <st_luke>is 5 enough?
20:07:34  <fotoverite>15
20:09:59  * juliangruberjoined
20:12:02  * tilgovijoined
20:18:26  * dominictarrpart ("Leaving")
20:18:56  * dominictarrjoined
20:19:17  <dominictarr>juliangruber, hey whats up?
20:19:42  <juliangruber>dominictarr: hey, just hacking :) and yourself?
20:19:58  <dominictarr>same, working on examples for my cascadia.js talk
20:20:01  <fotoverite>That website must be shared with the world
20:20:15  <juliangruber>dominictarr: nice
20:20:42  <juliangruber>dominictarr: have you seen my question for authorities in master-only replication models?
20:20:57  <dominictarr>juliangruber, hey I saw on your website that you are interested in making music software
20:21:14  <dominictarr>no, was it on github?
20:21:25  <dominictarr>I didn't get a notification
20:21:56  <juliangruber>dominictarr: yep, started a little collab site. but stopped when I did the audio parts and had to decide about a lot of ui
20:22:26  <dominictarr>oh cool, I am very interested in this stuff too.
20:22:29  <juliangruber>dominictarr: I want to use patterns like scuttlebutt for online games but need authoritative nodes for cheating and stuff
20:23:00  <dominictarr>cool! yeah, basically you'll need a referee node.
20:23:16  <juliangruber>dominictarr: the latest idea for that music stuff I got is a d.a.w. that computes in the cloud and streams music to the client via audio tags
20:23:28  <dominictarr>DAW?
20:23:34  <juliangruber>digital audio workstation
20:23:43  <dominictarr>okay, cool.
20:24:05  <dominictarr>juliangruber, yeah I want to make something like this, but make it collaboritave
20:24:14  <juliangruber>let me try get the last state running somewhere
20:24:17  <juliangruber>yeah me too!
20:24:21  <juliangruber>the name is collabtunes
20:24:30  <dominictarr>like, each user just makes a small part of the music, like a drum circle.
20:24:34  <juliangruber>like e.g. github for open source music
20:24:40  <juliangruber>haha :D
20:25:21  <juliangruber>have you seen http://eightbitbeats.com/ ?
20:25:31  <dominictarr>I had this idea after being in a real hippie drum circle, I was like, this is cool - but what would make it even better is if I could mute certain people.
20:26:22  <juliangruber>I personally never have been in one...
20:27:02  <st_luke>if they were robots you could just turn one off
20:27:47  * anoemiquit (Quit: anoemi)
20:27:56  <rowbit>Hourly usage stats: [developer: 9, free: 38]
20:29:13  * niftylettucequit (Quit: Connection closed for inactivity)
20:29:52  <juliangruber>dominictarr: http://juliangruber.com:3000/daw#100010000000000000000010100010000000100000000010110001000000000000000010101000000000000000000010101000000000100000000010101000000000000000000010011000000000000000000010101000000000100000000010101000000000000000000010101000000000000000000010011000000000100000000010001000000000100000000010011000000000100000000010101000000000010000000010101000000000100000000010011000000000100000000010
20:30:17  * mikealquit (Quit: Leaving.)
20:32:28  * thatguydanquit (Ping timeout: 246 seconds)
20:33:17  <guybrush>juliangruber: niiiice
20:35:14  * thatguydanjoined
20:37:12  <juliangruber>and http://juliangruber.com/synth.html
20:37:26  <juliangruber>needs chrome
20:37:41  <juliangruber>and has a tune saved under the js function playTodIntro()
20:37:48  <guybrush>amazing :D
20:38:04  <juliangruber>webaudio api ftw
20:38:12  <guybrush>woooah nice
20:38:23  <dominictarr>substack, I am getting "Cannot POST /daw"
20:38:32  <dominictarr>sorry, juliangruber ^^
20:38:41  <juliangruber>jap
20:38:54  <juliangruber>that's the branch without registrations and stuff -> without db
20:39:03  <dominictarr>oh, it's working now.
20:39:13  <juliangruber>i figured for the public demo the sending-urls-around approach would be better
20:40:34  <dominictarr>juliangruber, the timing sounds slightly off to me
20:41:06  <juliangruber>it doesn't use web audio timers, just setInterval
20:41:13  <juliangruber>so that could be optimized
20:41:18  <juliangruber>runs smoothly on my macbook
20:41:32  <dominictarr>I'm only getting 8 fps, could be a factor
20:41:57  <dominictarr>oh right, setInterval isn't good enough
20:42:11  <dominictarr>I only have a cheap atom netbook
20:42:24  <juliangruber>that's not actual fps but ticks per second
20:42:30  <juliangruber>to show if everything runs stable
20:42:44  <juliangruber>but I heard from other guys too that it doesn't run smoothly
20:44:03  <juliangruber>are the chrome experiments drum kits running smoothly for you?
20:44:15  <juliangruber>http://chromium.googlecode.com/svn/trunk/samples/audio/index.html
20:45:18  * mikealjoined
20:46:28  <dominictarr>no.
20:46:31  * mikealquit (Client Quit)
20:47:02  <dominictarr>so, probably it's just not workable on my machine.
20:47:14  <juliangruber>+ the web audio api is very unstable still
20:47:25  <juliangruber>the streaming approach would work for your machine too
20:47:30  <dominictarr>yes
20:47:39  <juliangruber>just the lag would suck for improvisation
20:47:49  <juliangruber>if you're not using an editor like i used
20:47:57  <dominictarr>I mean, I made heaps of music on computers much lower speced than this one
20:48:22  <juliangruber>mhm
20:48:32  <dominictarr>the important thing - at least, the thing I want to achive, is to have multiple computers playing in time
20:49:03  * thatguydanquit (Ping timeout: 246 seconds)
20:49:18  <dominictarr>it doesn't have to be web, a 'native' app is fine too.
20:49:26  <dominictarr>substack, you there?
20:49:45  <juliangruber>the node native thing might work for that
20:51:03  * ryan_stevensjoined
20:51:47  <dominictarr>yeah, could still do the UI in js/html, but do the audio in C,
20:51:59  <dominictarr>then you could use VST instruments etc
20:52:30  <juliangruber>there are several unix-based projects for headless audio stuff with nodes and instruments etc
20:54:20  <dominictarr>yeah, this is on my todo list, but right now distributed data stuff scuttlebutt etc is my primary project.
20:55:02  <juliangruber>http://ecasound.seul.org/ecasound/ seemed the most promissing
20:55:24  <juliangruber>it has a server mode where you control it over tcp
20:56:44  <juliangruber>oh and if the app should be completely local then there are those various vst formats and weird c bindings that could be reused…on of course node for the synchronisation
20:57:41  <dominictarr>yeah, that looks pretty good
20:58:49  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
20:58:50  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
21:05:46  * AvianFlu_joined
21:06:16  * AvianFluquit (Disconnected by services)
21:06:21  * AvianFlu_changed nick to AvianFlu
21:12:52  * AvianFlu_joined
21:14:54  * AvianFluquit (Ping timeout: 240 seconds)
21:15:05  * AvianFlu_changed nick to AvianFlu
21:16:40  * mikealjoined
21:19:57  * AvianFlu_joined
21:22:18  * AvianFluquit (Ping timeout: 264 seconds)
21:25:21  <guybrush>whaaat 0o there is a video-remix-editor in youtube now?
21:25:27  <guybrush>wow
21:27:56  <rowbit>Hourly usage stats: [developer: 22, free: 40]
21:29:24  * mikealquit (Ping timeout: 248 seconds)
21:30:30  * anoemijoined
21:34:14  * AvianFlu_changed nick to AvianFlu
21:37:47  * juliangruberquit (Quit: juliangruber)
21:45:31  * dominictarrquit (Ping timeout: 260 seconds)
21:48:26  * yorickquit (Remote host closed the connection)
21:52:00  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
21:52:00  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
22:02:58  <st_luke>what's with the uk being obsessed with american politics
22:05:02  * mikealjoined
22:21:41  * _sorensenquit (Quit: Bye!)
22:22:56  * anoemi_joined
22:25:36  * _sorensenjoined
22:26:35  * anoemiquit (Ping timeout: 256 seconds)
22:26:36  * anoemi_changed nick to anoemi
22:27:56  <rowbit>Hourly usage stats: [developer: 11, free: 35]
22:33:21  * thatguydanjoined
22:38:51  * mikealquit (Quit: Leaving.)
22:44:54  * anoemiquit (Ping timeout: 276 seconds)
23:09:55  * anoemijoined
23:13:40  * AvianFlu_joined
23:14:50  * AvianFluquit (Disconnected by services)
23:14:54  * AvianFlu_changed nick to AvianFlu
23:16:39  * mikealjoined
23:19:22  * AvianFlu_joined
23:19:37  * AvianFluquit (Disconnected by services)
23:19:38  * AvianFlu_changed nick to AvianFlu
23:25:23  * AvianFlu_joined
23:27:34  * AvianFluquit (Ping timeout: 240 seconds)
23:27:56  <rowbit>Hourly usage stats: [developer: 3, free: 48]
23:28:27  * AvianFlujoined
23:28:55  * AvianFlu_quit (Disconnected by services)
23:28:57  * mikealquit (Quit: Leaving.)
23:31:43  * AvianFlu_joined
23:31:55  * AvianFluquit (Disconnected by services)
23:31:58  * AvianFlu_changed nick to AvianFlu
23:36:40  * anoemiquit (Ping timeout: 252 seconds)
23:37:42  * AvianFlu_joined
23:37:53  * AvianFluquit (Read error: Connection reset by peer)
23:38:26  * AvianFlu_changed nick to AvianFlu
23:43:43  * deirdresjoined
23:46:14  * anoemijoined