00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:01:15  * mikolalysenkoquit (Ping timeout: 246 seconds)
00:02:32  * ferossquit (Quit: feross)
00:05:27  * crankjoined
00:06:15  * dguttmanquit (Quit: dguttman)
00:10:05  * ferossjoined
00:10:33  * crankquit (Ping timeout: 245 seconds)
00:10:57  * jcrugzzjoined
00:13:17  * thlorenzjoined
00:15:26  * jcrugzzquit (Ping timeout: 245 seconds)
00:16:45  <rowbit>Hourly usage stats: [developer: 0, free: 0]
00:16:56  * thlorenzquit (Remote host closed the connection)
00:17:30  * thlorenzjoined
00:20:08  * nk109joined
00:20:29  * nk109quit (Client Quit)
00:21:54  * thlorenzquit (Ping timeout: 246 seconds)
00:29:21  * mikolalysenkojoined
00:30:22  * jcrugzzjoined
00:38:56  * timoxleyjoined
00:41:01  * thlorenzjoined
00:43:27  * timoxleyquit (Ping timeout: 260 seconds)
00:43:34  * kirbysayshijoined
00:45:47  * thlorenzquit (Ping timeout: 260 seconds)
00:51:25  * Maciek416joined
01:08:20  * shamaquit
01:15:58  * mikolalysenkoquit (Ping timeout: 245 seconds)
01:16:24  <Domenic_>creationix: you there?
01:16:45  <rowbit>Hourly usage stats: [developer: 0, free: 0]
01:17:40  * kirbysayshiquit (Quit: kirbysayshi)
01:17:40  * Maciek416quit (Read error: Connection reset by peer)
01:17:57  * Maciek416joined
01:37:10  * defunctzombiechanged nick to defunctzombie_zz
01:39:38  * timoxleyjoined
01:42:38  * thlorenz_joined
01:43:48  * timoxleyquit (Ping timeout: 240 seconds)
01:44:55  <Domenic_>isaacs: ping
01:47:40  * thlorenzjoined
01:47:48  * thlorenzquit (Remote host closed the connection)
02:06:08  * crankjoined
02:10:36  <rowbit>substack, pkrumins: These encoders are STILL down: 173.203.67.76(free3)
02:11:11  * crankquit (Ping timeout: 260 seconds)
02:12:16  * mikolalysenkojoined
02:14:06  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.103.135(free2)
02:16:38  * mikolalysenkoquit (Ping timeout: 240 seconds)
02:16:45  <rowbit>Hourly usage stats: [developer: 0, free: 0]
02:22:24  * ferossquit (Quit: feross)
02:26:01  * st_lukejoined
02:26:07  * DTrejojoined
02:26:19  * DTrejoquit (Read error: Connection reset by peer)
02:40:25  * timoxleyjoined
02:42:34  * tilgoviquit (Remote host closed the connection)
02:44:43  * timoxleyquit (Ping timeout: 245 seconds)
03:06:17  * crankjoined
03:10:51  * crankquit (Ping timeout: 245 seconds)
03:13:12  * Maciek416_joined
03:15:01  * Maciek416quit (Ping timeout: 245 seconds)
03:16:45  <rowbit>Hourly usage stats: [developer: 0, free: 0]
03:43:24  * Maciek416_quit (Remote host closed the connection)
04:06:30  * crankjoined
04:11:26  * crankquit (Ping timeout: 245 seconds)
04:12:25  * DTrejojoined
04:12:33  * DTrejoquit (Read error: Connection reset by peer)
04:13:46  * DTrejojoined
04:13:58  * DTrejoquit (Read error: Connection reset by peer)
04:16:45  <rowbit>Hourly usage stats: [developer: 0, free: 0]
04:18:09  * DTrejojoined
04:18:15  * DTrejoquit (Read error: Connection reset by peer)
04:20:30  * thlorenz_quit (Remote host closed the connection)
04:32:56  * timoxleyjoined
04:37:55  * timoxleyquit (Ping timeout: 272 seconds)
04:39:51  * thlorenz_joined
04:44:53  * thlorenz_quit (Ping timeout: 272 seconds)
04:47:01  * DTrejojoined
04:53:34  * ednapiranhajoined
04:55:20  * timoxleyjoined
05:10:41  * thlorenzjoined
05:15:02  * thlorenzquit (Ping timeout: 240 seconds)
05:16:45  <rowbit>Hourly usage stats: [developer: 0, free: 0]
05:40:47  * thlorenzjoined
05:41:01  * dguttmanjoined
05:45:09  * thlorenzquit (Ping timeout: 248 seconds)
05:46:33  * ednapiranhaquit (Quit: Leaving...)
05:53:01  * rannmannquit (Read error: Connection reset by peer)
05:53:18  * rannmannjoined
05:53:19  * rannmannquit (Changing host)
05:53:19  * rannmannjoined
06:03:38  * mcollina_quit (Read error: Connection reset by peer)
06:03:43  * mcollinajoined
06:07:11  * crankjoined
06:12:14  * crankquit (Ping timeout: 240 seconds)
06:16:44  <rowbit>Daily usage stats: [developer: 0, free: 29]
06:16:45  <rowbit>Hourly usage stats: [developer: 0, free: 0]
06:29:21  * DTrejoquit (Ping timeout: 245 seconds)
06:41:01  * ferossjoined
06:41:30  * thlorenzjoined
06:46:03  * thlorenzquit (Ping timeout: 260 seconds)
06:59:57  * dguttmanquit (Quit: dguttman)
07:02:51  * crankjoined
07:04:10  * DTrejojoined
07:12:31  * crankquit (Ping timeout: 245 seconds)
07:13:32  * DTrejoquit (Remote host closed the connection)
07:14:00  * DTrejojoined
07:16:45  <rowbit>Hourly usage stats: [developer: 0, free: 0]
07:18:11  * DTrejoquit (Ping timeout: 240 seconds)
07:19:54  * thlorenzjoined
07:28:12  * thlorenzquit (Ping timeout: 246 seconds)
07:42:24  * thlorenzjoined
07:46:38  * thlorenzquit (Ping timeout: 240 seconds)
08:04:11  * jcrugzzquit (Ping timeout: 245 seconds)
08:07:54  * crankjoined
08:13:31  * crankquit (Ping timeout: 272 seconds)
08:14:30  * thlorenzjoined
08:16:45  <rowbit>Hourly usage stats: [free: 2]
08:23:07  * thlorenzquit (Ping timeout: 260 seconds)
08:31:05  * jcrugzzjoined
08:39:21  * jcrugzzquit (Ping timeout: 245 seconds)
08:43:17  * thlorenzjoined
08:45:05  * thlorenz_joined
08:45:05  * thlorenzquit (Read error: Connection reset by peer)
08:50:15  * thlorenz_quit (Ping timeout: 272 seconds)
09:03:05  * crankjoined
09:03:27  * cianomaidinjoined
09:05:10  <rowbit>substack, pkrumins: Encoders down: 50.57.226.209 (free4)
09:06:42  * cianomaidinquit (Client Quit)
09:13:57  * crankquit (Ping timeout: 272 seconds)
09:16:45  <rowbit>Hourly usage stats: [free: 24]
09:45:53  * thlorenzjoined
09:50:41  * thlorenzquit (Ping timeout: 272 seconds)
10:02:56  * crankjoined
10:03:19  * thlorenzjoined
10:07:38  * thlorenzquit (Ping timeout: 245 seconds)
10:13:50  * crankquit (Ping timeout: 240 seconds)
10:16:45  <rowbit>Hourly usage stats: [free: 22]
10:46:41  * thlorenzjoined
10:51:35  * thlorenzquit (Ping timeout: 272 seconds)
11:03:17  * crankjoined
11:03:42  * thlorenzjoined
11:08:03  * thlorenzquit (Ping timeout: 245 seconds)
11:14:14  * crankquit (Ping timeout: 240 seconds)
11:16:45  <rowbit>Hourly usage stats: [free: 18]
11:39:48  * jcrugzzjoined
11:39:58  * yorickjoined
11:44:27  * cianomaidinjoined
11:47:33  * thlorenzjoined
11:51:16  * jcrugzzquit (Ping timeout: 245 seconds)
11:52:11  * thlorenzquit (Ping timeout: 260 seconds)
12:03:50  * crankjoined
12:04:07  * thlorenzjoined
12:08:14  * thlorenzquit (Ping timeout: 240 seconds)
12:15:05  * crankquit (Ping timeout: 272 seconds)
12:16:45  <rowbit>Hourly usage stats: [free: 18]
12:17:41  * jcrugzzjoined
12:48:23  * thlorenzjoined
12:52:31  * thlorenzquit (Ping timeout: 245 seconds)
13:03:47  * crankjoined
13:14:45  * crankquit (Ping timeout: 248 seconds)
13:15:58  * jcrugzzquit (Ping timeout: 245 seconds)
13:16:45  <rowbit>Hourly usage stats: [free: 21]
13:20:39  * timoxleyquit
13:29:49  * cianomaidinquit (Quit: cianomaidin)
13:48:28  * cianomaidinjoined
13:49:22  * thlorenzjoined
13:50:11  * cianomaidinquit (Client Quit)
13:53:31  * thlorenzquit (Ping timeout: 245 seconds)
14:04:20  * crankjoined
14:04:56  * thlorenzjoined
14:07:21  * ferossquit (Quit: feross)
14:09:18  * thlorenzquit (Ping timeout: 245 seconds)
14:14:21  * mikolalysenkojoined
14:15:15  * crankquit (Ping timeout: 246 seconds)
14:16:45  <rowbit>Hourly usage stats: [free: 11]
14:22:13  * defunctzombie_zzchanged nick to defunctzombie
14:42:46  * cianomaidinjoined
14:50:03  * thlorenzjoined
14:52:20  * defunctzombiechanged nick to defunctzombie_zz
14:54:42  * thlorenzquit (Ping timeout: 272 seconds)
15:00:00  * kenperkinsjoined
15:00:11  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.226.209(free4)
15:02:59  * brianloveswordsquit (Excess Flood)
15:04:12  * brianloveswordsjoined
15:04:49  * crankjoined
15:07:49  * kenperkinsquit (Ping timeout: 248 seconds)
15:08:09  * Maciek416joined
15:15:35  * defunctzombie_zzchanged nick to defunctzombie
15:16:08  * crankquit (Ping timeout: 260 seconds)
15:16:45  <rowbit>Hourly usage stats: [free: 11]
15:22:18  * dguttmanjoined
15:31:36  <mikolalysenko>check it out: https://github.com/mikolalysenko/version-tree
15:35:05  * kenperkinsjoined
15:38:39  * cianomaidinquit (Quit: cianomaidin)
15:43:36  * yorickquit (Remote host closed the connection)
15:43:49  * kenperkinsquit (Ping timeout: 272 seconds)
15:48:45  * DTrejojoined
15:50:30  * thlorenzjoined
15:53:04  * shamajoined
15:55:03  * defunctzombiechanged nick to defunctzombie_zz
15:55:32  * cianomaidinjoined
15:56:13  * mikolalysenkoquit (Ping timeout: 272 seconds)
15:58:42  * mikolalysenkojoined
16:05:20  * crankjoined
16:16:45  <rowbit>Hourly usage stats: [free: 14]
16:17:01  * crankquit (Ping timeout: 272 seconds)
16:27:01  * kirbysayshijoined
16:33:22  * mikolalysenkoquit (Ping timeout: 240 seconds)
16:54:21  * defunctzombie_zzchanged nick to defunctzombie
16:55:28  <defunctzombie>thlorenz: I am cooking up something awesome
16:56:03  * thlorenzwaits for explanation of awesome
16:56:17  * defunctzombiechanged nick to defunctzombie_zz
16:58:58  * Guest83970quit
16:59:10  * Guest83970joined
17:05:24  * dguttmanquit (Quit: dguttman)
17:05:41  <rowbit>substack, pkrumins: Encoders down: 50.57.103.135 (free2)
17:05:47  * crankjoined
17:09:48  * mikolalysenkojoined
17:15:55  * mikolalysenkoquit (Ping timeout: 272 seconds)
17:16:45  <rowbit>Hourly usage stats: [free: 13]
17:22:15  * crankquit (Ping timeout: 272 seconds)
17:35:57  * jxsonjoined
17:53:35  * Maciek416quit (Remote host closed the connection)
17:54:07  * Maciek416joined
17:56:16  * jxsonquit (Remote host closed the connection)
17:56:43  * jxsonjoined
17:58:14  * calvinfojoined
17:58:28  * Maciek416quit (Ping timeout: 245 seconds)
18:01:53  * jxsonquit (Ping timeout: 272 seconds)
18:02:08  * stagasjoined
18:02:28  * calvinfoquit (Ping timeout: 240 seconds)
18:05:48  * crankjoined
18:12:38  * tilgovijoined
18:12:46  * ilterisjoined
18:14:30  * DTrejoquit (Remote host closed the connection)
18:14:55  * DTrejojoined
18:16:41  * crankquit (Ping timeout: 245 seconds)
18:16:45  <rowbit>Hourly usage stats: [free: 25]
18:19:08  * DTrejoquit (Ping timeout: 240 seconds)
18:22:31  * mmckeggquit (Ping timeout: 245 seconds)
18:24:32  * mmckeggjoined
18:25:26  * defunctzombie_zzchanged nick to defunctzombie
18:26:35  <defunctzombie>thlorenz: it involves ideas from zuul and mocha-cloud :)
18:26:37  <defunctzombie>thlorenz: should have a working demo on github soon
18:26:54  <thlorenz>cool lmk when it's up so I can have a look
18:28:19  * DTrejojoined
18:31:37  * kirbysayshiquit (Quit: kirbysayshi)
18:32:12  * thlorenzquit (Remote host closed the connection)
18:32:47  * thlorenzjoined
18:36:10  <defunctzombie>what yaml parser are people using?
18:36:53  * dguttmanjoined
18:37:13  * thlorenzquit (Ping timeout: 245 seconds)
18:42:15  * kirbysayshijoined
18:42:39  * dguttmanquit (Quit: dguttman)
19:00:39  * cianomaidinquit (Quit: cianomaidin)
19:03:31  * thlorenzjoined
19:06:16  * crankjoined
19:07:51  * thlorenzquit (Ping timeout: 246 seconds)
19:14:32  * DTrejoquit (Remote host closed the connection)
19:15:00  * DTrejojoined
19:16:45  <rowbit>Hourly usage stats: [free: 11]
19:16:48  * crankquit (Ping timeout: 245 seconds)
19:17:01  * DTrejoquit (Read error: Connection reset by peer)
19:17:15  * DTrejojoined
19:20:21  <st_luke>defunctzombie: yamljs
19:20:29  <defunctzombie>st_luke: I found js-yaml
19:20:34  <defunctzombie>is yamljs better? simpler?
19:21:04  <st_luke>I don't know how it compares to js-yaml, but it got the job done
19:21:17  <defunctzombie>cool
19:25:53  * DTrejoquit (Remote host closed the connection)
19:26:21  * DTrejojoined
19:31:27  * DTrejoquit (Ping timeout: 272 seconds)
19:47:23  * stagasquit (Ping timeout: 272 seconds)
19:47:23  * kirbysayshiquit (Quit: kirbysayshi)
19:58:41  <rowbit>substack, pkrumins: Encoders down: 50.57.226.209 (free4)
19:59:59  * jxsonjoined
20:04:21  * thlorenzjoined
20:06:20  * crankjoined
20:09:11  * thlorenzquit (Ping timeout: 272 seconds)
20:12:27  * DTrejojoined
20:16:45  <rowbit>Hourly usage stats: [free: 15]
20:17:08  * crankquit (Ping timeout: 240 seconds)
20:17:36  * cianomaidinjoined
20:21:38  <defunctzombie>substack: does bouncy handle upgrade requests?
20:22:06  * DTrejoquit (Remote host closed the connection)
20:22:28  * DTrejojoined
20:26:24  * Maciek416joined
20:31:30  * jxsonquit (Remote host closed the connection)
20:33:50  * dguttmanjoined
20:59:37  * thlorenzjoined
21:06:59  * crankjoined
21:13:50  <defunctzombie>substack: I have an issue with bouncy :(
21:14:05  <defunctzombie>I want to pause the incoming request
21:14:24  <defunctzombie>(because the code I have to determine where to proxy is async)
21:14:44  <defunctzombie>and bouncy doesn't seem to handle req.pause properly
21:15:01  <defunctzombie>the request preamble is lost
21:16:45  <rowbit>Hourly usage stats: [free: 27]
21:17:13  * crankquit (Ping timeout: 245 seconds)
21:17:46  * yorickjoined
21:33:47  * mikolalysenkojoined
21:34:07  * thlorenzquit (Remote host closed the connection)
21:34:42  * thlorenzjoined
21:38:16  * thlorenzquit (Read error: Connection reset by peer)
21:38:37  * thlorenzjoined
21:39:05  * nk109joined
21:39:26  * nk109quit (Client Quit)
21:43:08  <defunctzombie>ok.. I am at a loss
21:43:11  <defunctzombie>for what is going on
21:45:26  <mikolalysenko>?
21:49:35  <defunctzombie>I have an issue with bouncy
21:49:44  <defunctzombie>and I can't figure out wtf is going on :(
21:50:07  * st_lukequit (Remote host closed the connection)
21:50:41  * st_lukejoined
21:54:43  * st_lukequit (Ping timeout: 245 seconds)
21:59:56  * maksimlinjoined
21:59:57  <defunctzombie>ok.. if someone wants a streams debugging challenge let me know
22:00:01  <defunctzombie>I have a bug that needs fixing
22:06:47  * crankjoined
22:10:23  * thlorenzquit (Remote host closed the connection)
22:10:58  * thlorenzjoined
22:15:35  * thlorenzquit (Ping timeout: 272 seconds)
22:16:45  <rowbit>Hourly usage stats: [developer: 1, free: 15]
22:18:07  * crankquit (Ping timeout: 272 seconds)
22:22:33  * mikolalysenkoquit (Ping timeout: 272 seconds)
22:26:11  * thlorenzjoined
22:31:59  * DTrejoquit (Ping timeout: 260 seconds)
22:33:51  * mcollinaquit (Read error: Connection reset by peer)
22:33:56  * mcollina_joined
22:35:43  * DTrejojoined
22:40:25  <Domenic_>thlorenz: do you know why writablestream buffers until _write's cb comes back?
22:41:05  <thlorenz>Domenic_: cause it needs to wait til you properly processed the chunk
22:41:11  <Domenic_>why?
22:41:12  <thlorenz>i.e. it may be an async op
22:41:28  <thlorenz>otherwise it'd keep firing chunks at you
22:41:29  <Domenic_>why is it important to give the guarantee that _write is never called under the previous _write finished?
22:41:42  <Domenic_>s/under/until
22:42:05  <thlorenz>I see your point, I guess if you want to enforce sequential chunk processing
22:42:19  <thlorenz>lets say you'd make network requests to process
22:42:47  <thlorenz>if it would fire 1000s of chunks at you w/out waiting for processing, you'd have 1000s of parallel network connections open
22:43:00  <thlorenz>if you like that, you could call back prematurely
22:43:21  <thlorenz>i.e. pretend that you processed it although you aren't fully finished
22:43:44  <thlorenz>but in all other cases it buffereing for you is a good thing, so you don't have to enforce min concurrency yourself
22:43:51  <Domenic_>hmm hmm
22:44:01  <Domenic_>so the cb is intentionally zalgo
22:44:16  <thlorenz>zalgo?
22:44:23  <thlorenz>sync/async?
22:44:29  <Domenic_>ya
22:44:38  <Domenic_>you'd call it back sync sometimes if you don't want to halt incoming chunks
22:44:54  <thlorenz>yeah, nothing should break if you call it sync
22:45:00  <Domenic_>ick
22:45:05  <thlorenz>but it makes async so much easier
22:45:30  <Domenic_>ok. i had one more major question, but let me figure out how to phrase it...
22:45:31  <thlorenz>I know this is 'ick' for you, but if properly handled under the hood it isn't a problem
22:45:33  <Domenic_>thanks...
22:45:39  <thlorenz>ok, np
22:48:04  <Domenic_>i am having a hard time understanding the role of pause() vs. full buffers
22:48:08  <Domenic_>both seem to influence backpressure
22:48:17  * mikolalysenkojoined
22:48:27  <thlorenz>I don't think you should use pause() as an implementer anymore
22:48:33  <thlorenz>that's streams1 afaik
22:48:43  <Domenic_>ok, that's what i was hoping, but i can't figure out how to make it work then... let me remember why...
22:49:30  <thlorenz>so backpressure happens when you don't call back from a transform or writable for a while
22:50:02  <Domenic_>and that's all mediated by buffers getting full?
22:50:06  <thlorenz>cause at some point the buffer fills up and thus the underlying impl returns false on push
22:50:11  <thlorenz>yep
22:50:12  <Domenic_>ok
22:50:37  <Domenic_>i guess what is confusing/unfortunate then is that if we tried to remove high water marks to make things genrealize better to object streams, there are no buffers, so no backpressure
22:52:13  <thlorenz>Domenic_: see: https://github.com/joyent/node/blob/master/lib/_stream_writable.js#L43
22:52:30  <thlorenz>object streams still have buffers
22:52:52  <thlorenz>except that highWaterMarks are not the size of all data, but number of objects to store
22:52:59  * mikolalysenkoquit (Ping timeout: 260 seconds)
22:53:00  <Domenic_>right ok
22:53:06  <thlorenz>so it can't really enforce a certain memory footprint
22:53:13  <Domenic_>but we don't want an objectMode vs. binary/string mode
22:53:14  <thlorenz>i.e. one object could be huge
22:53:47  <Domenic_>so I think I have to choose a default HWM that is either 0 or Infinity
22:53:55  <thlorenz>that makes it hard I guess
22:53:59  <Domenic_>then let subclasses implement a buffering strategy in userland
22:54:29  <Domenic_>but of course bundle a binarystream/stringstream with the web
22:54:55  <Domenic_>Infinity seems best.
22:54:58  <thlorenz>node uses 16 for objects, 1024 bytes for all else https://github.com/joyent/node/blob/master/lib/_stream_writable.js#L47
22:55:35  <Domenic_>Or maybe 0 is best under the assumption that if you don't set a HWM you probably don't have a mechanism to communicate backpressure to the underlying source
22:55:49  <thlorenz>Domenic_: Infinity is dangerous, since you'd turn off backpressure by default
22:55:57  <Domenic_>Because that's what backpressure is really all about, right? the underlying source, e.g. files or sockets
22:56:20  <thlorenz>yep, it's to stop downstream dataflow
22:56:34  <thlorenz>in order to not have to store the data you can't handle right now anyways
22:57:03  <thlorenz>btw, I have been thinking about this and I'd properly totally separate push vs. pull streams
22:57:17  <Domenic_>how so
22:57:24  <thlorenz>they map to IEnumerables and IObservables in my book and those aren't interchangable either
22:57:47  <thlorenz>well either the underlying source can serve you things when you want it, i.e. read
22:58:12  <thlorenz>or it is a streaming resource, which just keeps emitting data and possibly respects backpressure
22:58:29  <thlorenz>but not sure, since then it'd be all or nothing for all upstream consumers
22:58:48  <Domenic_>well i think the question is which is more low-level
22:59:21  <Domenic_>but, in practice, what would this separation look like, in your opinion
22:59:29  <thlorenz>so maybe separating sounds nice in theory and would make some things easier, but not being able to mix and match how you consume a stream would make things really ugly in other areas
23:00:14  <Domenic_>For example this seems to be pull only, would you agree? https://github.com/whatwg/streams/tree/v2#readable-streams
23:00:30  <thlorenz>well the thing is, that if I apply backpressure, I need to be able to stop the source from streaming, so at that point it's not just observable anymore
23:00:42  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.103.135(free2)
23:01:08  <thlorenz>yep, except for the fact that the read could happen async
23:01:15  <thlorenz>so not really a pure read
23:01:22  <thlorenz>s/read/pull
23:01:26  <Domenic_>how so?
23:01:35  <Domenic_>read() is sync
23:01:44  <thlorenz>a pull to me is something that has data ready and I just read the next value, i.e. a lazy collection
23:01:55  <Domenic_>but if state is "waiting" then you do s.waitForRead().then(() => s.read())
23:02:14  <thlorenz>ah, not sure what the any is then -- saw all these promises
23:02:29  <Domenic_>yeah any just means you can put anything into the stream
23:02:47  <Domenic_>here is the pipe implementation https://github.com/whatwg/streams/tree/v2#pipedest
23:02:57  <Domenic_>but since i got confused about high water marks things are a bit off
23:03:07  <thlorenz>ok, makes sense, yep, then it's a purely pull as far as I can tell
23:03:27  <Domenic_>one guy is trying to convince me to build pull on top of push
23:03:40  <Domenic_>i.e. make push the primitive then have pull = push piped to a buffering stream
23:03:46  <thlorenz>what? no if at all it should be the other way around
23:04:04  <Domenic_>his model is apparently very Rx like
23:04:14  <Domenic_>and actually reminded me of creationix's design a bit
23:04:24  <thlorenz>hm, well I don't know
23:04:35  <thlorenz>also if you pull, you don't necessarily need a hwm
23:04:42  <Domenic_>ok please explain that
23:04:44  <thlorenz>cause you control when you read data
23:04:52  <thlorenz>the source however needs one
23:05:00  <thlorenz>so it knows how much to buffer
23:05:17  <Domenic_>wait so who doesn't need a hwm
23:05:54  <thlorenz>actually scrap that, you the consumer don't need one, but that's nonsense ;)
23:06:03  <Domenic_>well what about writable streams
23:06:16  <thlorenz>so yeah, the pull stream still needs one to know how much to buffer in case you stop reading
23:06:18  <Domenic_>they still need one right? because they buffer while a write is outstanding
23:06:23  <thlorenz>yep
23:06:27  <Domenic_>ok
23:07:33  <Domenic_>ok so i need to modify this design to make it clearer that it effectively has a HWM of 0
23:07:34  <thlorenz>funny thing is RX is basically a push stream, except it has no backpressure, so you'll buffer like crazy or have to skip chunks
23:07:41  * crankjoined
23:07:55  <Domenic_>and then i need to build a HWM stream on top of it
23:08:36  <thlorenz>HWM of 0 as a default sounds better to me
23:08:56  <thlorenz>since you avoid running out of memory by default, which is good
23:09:08  <thlorenz>however you also get the worst possible performance
23:09:31  <thlorenz>since the slowest stream will always dictate the speed of the entire chain
23:09:31  * mcollina_quit (Remote host closed the connection)
23:10:06  * mcollinajoined
23:11:02  <Domenic_>yeah makes sense
23:11:15  <Domenic_>i hope that the attention to this level of detail will be what makes it clear we have a better proposal than the w3c one
23:11:21  <Domenic_>i've got a lot of work to do though
23:11:25  <Domenic_>wish more people were around this weekend
23:11:53  <thlorenz>:) in the worst case it'll be our knockout project
23:12:20  <thlorenz>learning streams in depth and supplying nice examples/visualiztions/explanations may not be the worst entry ;)
23:12:28  <thlorenz>also it'd probably be the first of its kind
23:13:29  <thlorenz>Domenic_: btw if possible keep the _(read|writ)ableStates around -- they are super important for debugging streams performance
23:14:14  * mcollinaquit (Ping timeout: 240 seconds)
23:15:09  * cianomaidinquit (Quit: cianomaidin)
23:16:29  <Domenic_>yeah definitely
23:16:32  * mikolalysenkojoined
23:16:38  <Domenic_>they're necessary to implement pipe!
23:16:45  <rowbit>Hourly usage stats: [developer: 0, free: 11]
23:16:57  <Domenic_>i might expose more of those internal properties, not sure.
23:17:34  <thlorenz>of course, yeah I meant make 'em visible and make clear that it is ok to read that information to learn about your streams behavior
23:18:08  <thlorenz>on the other hand you should prob never write to a stream's state from the outside (esp. since we don't have to set objectMode anymore)
23:18:16  * cianomaidinjoined
23:18:21  <Domenic_>we have getters to solve that problem thankfully :)
23:18:31  * crankquit (Ping timeout: 245 seconds)
23:18:38  <thlorenz>getters? won't they hurt performance?
23:18:49  <thlorenz>since you'd access those props a lot
23:19:00  <Domenic_>i mean, if they're accessed a lot, vms will optimize them hard
23:19:16  <thlorenz>ah, ok - I'll trust you on that :P
23:19:16  <Domenic_>remember we have different constraints when creating something for browsers to implement :)
23:20:54  <Domenic_>so HWM of 0 on readable stream means push returns false always right?
23:22:37  * mikolalysenkoquit (Ping timeout: 272 seconds)
23:22:52  <thlorenz>I would think so
23:22:55  * defunctzombiechanged nick to defunctzombie_zz
23:23:09  <thlorenz>since you push into buffer and then buffer.length > hwm
23:24:01  <Domenic_>i guess the alternative would be that it returns true the first time but if the buffer isn't clear by next time it returns false.
23:24:08  <Domenic_>seems kinda lame
23:24:22  <thlorenz>or you set hwm to 1 by default
23:24:25  * st_lukejoined
23:24:45  <Domenic_>right yeah when you phrase it that way it becomes clearly lame
23:24:46  <thlorenz>actually for objectMode 1 and for others I dunno
23:25:31  <thlorenz>I'd talk to isaacs and ask him how they came up with the 16/1024 defaults for HWM
23:29:35  * st_lukequit (Ping timeout: 272 seconds)
23:30:02  * Ikeymanjoined
23:30:14  <Ikeyman>Hello?
23:32:17  * cianomaidinquit (Quit: cianomaidin)
23:50:57  * st_lukejoined