00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:04:49  * defunctzombiechanged nick to defunctzombie_zz
00:12:08  * dominictarrjoined
00:25:06  * Raltjoined
00:25:49  <Ralt>Raynos: https://github.com/Ralt/or/issues/1#issuecomment-14940411 :P
00:30:32  * Raltquit (Remote host closed the connection)
00:31:21  <dominictarr>omg wtf… _stream_readable.js is 800 lines
00:37:57  <dominictarr>how can an improvement involve increasing the lines x5?
00:38:04  <Raynos>dominictarr: SUPRISE
00:38:09  <Raynos>I herd you like complexity
00:38:18  <Raynos>dominictarr: 50% of that is back compat
00:38:41  <dominictarr>I'd be more excited about streams2 if it didn't have that
00:38:51  <dominictarr>400 lines is still too much anyway
00:39:24  <Raynos>dominictarr: It's a ton of complexity. Agreed. It's called backpressure is a bitch
00:39:29  <dominictarr>Raynos: when we build the thing that makes node look like ruby, we need a simple streaming api that works for data and for FRP
00:39:45  <dominictarr>classic streams HAD back pressure!
00:39:48  <Raynos>dominictarr: through is a 100 lines and re-uses pipe. so the minimum complexity is 200 lines
00:40:07  <Raynos>dominictarr: why would we make node look like ruby?
00:40:23  <Raynos>personally I think `observable.transform` is was less complex then through
00:40:42  <Raynos>so I say fuck streams / pipe unless we need interop with core / io / other streams / back pressure
00:41:32  <Raynos>dominictarr: browser based and server based frp are two completely different beasts btw
00:41:56  <dominictarr>Raynos: no, frp is just a thing that COMPUTERS do
00:43:14  <Raynos>depends on what you mean by frp
00:43:39  <Raynos>I think of frp as ways to build programs around transforming and reacting to signals / observable's
00:43:52  * thl0joined
00:44:30  <dominictarr>Raynos: no, a 'Stream' is an abstraction
00:44:59  <dominictarr>it's an idea, and classic streams, new streams, reducables, etc, are all just crude implementations of it
00:45:23  <dominictarr>it's a time sequence of data
00:47:25  <Raynos>Agreed
00:47:26  <Raynos>but
00:47:29  <Raynos>observables & signals
00:47:36  <Raynos>are representations of a value that changes over time
00:47:41  <Raynos>which is different from a time sequence of data
00:47:52  <Raynos>because observable & signals have "getCurrentValue()" operation
00:48:03  <dominictarr>I'm not sure what a signal is
00:48:04  <Raynos>this is a big difference to how you write applications
00:48:14  <Raynos>a signal is a technical term used in FRP papers
00:48:28  <Raynos>dominictarr/observable is a crude implementation of a signal
00:48:35  <dominictarr>link?
00:49:50  <dominictarr>so, there are some sequences that are strictly ordered - and some that are not
00:49:52  <Raynos>http://stackoverflow.com/a/1030631/419970 conal uses the word behaviour instead of signal here
00:50:07  <dominictarr>if you expand the definition to include that, you get UDP too
00:50:32  <Raynos>I actually think that http://stackoverflow.com/a/1028642/419970 is a better answer
00:51:16  <dominictarr>Raynos: right, a signal represents 'a value over time'
00:52:42  * shamaquit (Remote host closed the connection)
00:52:57  <Raynos>which is seperate from a time sequence of values
00:53:13  <Raynos>array -> stream, value -> signal
00:53:22  <Raynos>actually that statement is bullshit :p
00:54:23  <dominictarr>well, the 'value over time' is narrower than 'a time sequence of values'
00:54:38  <dominictarr>you can represent vot as tsov but not vice versa
00:54:55  <Raynos>i disagree
00:55:05  <Raynos>I think you can represent tsov as vot but not vice versa
00:55:41  <dominictarr>no but a tsov is a whole thing in itself
00:55:59  <dominictarr>like a file is not a changing line
00:56:04  <dominictarr>it's a collection of lines
00:56:10  <dominictarr>that have an order,
00:56:43  <dominictarr>and if they are a language, then the meaning of subsequent lines is dependant of previous lines
00:56:56  <Raynos>https://gist.github.com/Raynos/5a7ca9852ac0d8c5f3e1 <-
00:57:20  <Raynos>maybe im thinking in terms of minimal implementation complexity
00:57:23  * marcello3dquit (Remote host closed the connection)
00:57:24  <Raynos>instead of logical idea complexity
00:58:15  <Raynos>dominictarr: what about saying a file can be represented as a "last line read" vot
00:58:51  <dominictarr>Raynos: It only works if a vot promises to give you EVERYLINE
00:59:19  <dominictarr>but I think, VOT only promises to give you the current line
00:59:55  <Raynos>the way I work around that problem
01:00:12  <dominictarr>Raynos: you don't work around the problem
01:00:17  <Raynos>is to say that VOT are declared statically at program start like require(...) calls and thus you can always read it's first value
01:00:28  <Raynos>dynamic creation of VOT causes loss of information
01:00:38  <dominictarr>that isn't a realistic idea for IO
01:00:43  <Raynos>which the stream abstraction solves by saying "I will give you the entire sequence"
01:00:53  <Raynos>dominictarr: I don't think the vot abstraction is suited to IO
01:01:01  <dominictarr>Raynos: I agree
01:01:08  <dominictarr>that is why we use TSOV
01:01:52  <dominictarr>that is why I say that VOT is a sub class of TSOV
01:02:05  <Raynos>so I guess VOT has a notion of current value. where as TSOV does not. This makes TSOV more "simple"
01:02:28  <dominictarr>yes, just slightly, because it has one less requirement
01:02:30  <Raynos>however because VOT has a current value it means it drops history
01:02:39  <dominictarr>yes, exactly
01:02:50  <Raynos>Ok I agree that VOT is a sub class of TSOV
01:04:55  <Raynos>so now we got that out of the way :p
01:08:04  <dominictarr>Raynos: one of the things I really like about reducables is that the END is just a special value
01:08:18  <dominictarr>this is much more flexible
01:08:44  <dominictarr>because, streams can extend this if they have different ways to end
01:09:06  <dominictarr>like, error, premature close etc
01:13:14  <Raynos>i think a similar thing can be done with observable
01:13:21  <Raynos>I like reducible's error propagation
01:14:00  <Raynos>a tsov is 'stream' of values that follows a certain protocol. the last value is either the 'end' or 'error' symbol
01:14:07  <Raynos>that's all I guess
01:15:15  <Raynos>it's just that with reducible, the equivelant of `o.transform` will let both the 'end' and 'error' symbol pass through and not call the transformation function
01:15:54  <Raynos>which means the equivelant of `if (err) return callback(err)` is the default behaviour
01:16:39  <Raynos>the only problem you have to avoid is the ability for an error symbol to "get lost" or "dropped to the floor" or "eternally buffered"
01:17:01  <Raynos>currently with streams2 if you just `on("end")` and dont add `on("data")` or call `.resume()` then the end symbol gets eternally buffered
01:17:32  <Raynos>this problem can be avoided by being forced to always call either `.resume()` / `.on("data")` / `.pipe()`
01:17:51  <Raynos>isaacs: why don't you just call `read(0)` in nextTick if someone adds a `"end"` listener?
01:19:33  <Raynos>dominictarr: the other thing that's neat about reducible is that transformations pass values on forwards & backwards thus allowing raw source <-> raw writable communication
01:20:18  <dominictarr>Raynos: the idea of iterators from leveldb is good
01:20:19  <dominictarr>https://github.com/dominictarr/async-iterator/blob/master/index.js
01:20:29  <dominictarr>because it doesn't have any piping
01:20:46  <dominictarr>it's just about accessing a resource a bit at a time
01:20:51  <Raynos>dominictarr: can you put the example in the README :p
01:21:14  <Raynos>dominictarr: This is the distinquishion between push and pull streams
01:21:15  <dominictarr>and then you can pass it to a thing that adds some sort of pipe feature
01:21:26  <Raynos>for a given tsov how do you consume values
01:22:08  <dominictarr>Raynos: yes
01:22:25  <dominictarr>in plumbing, we have BOTH push and pull
01:22:33  <Raynos>"plumbing"?
01:22:56  <dominictarr>moving physical fluids through pipes
01:23:06  <dominictarr>IRL
01:23:08  <Raynos>well it depends on the source of input really
01:23:17  <Raynos>it's trivial to turn pull into push, just read it as fast as possible
01:23:24  <Raynos>it's less trivial to turn push into pull
01:23:34  <dominictarr>yeah, just attach a pump
01:23:51  <dominictarr>you can go the other way too
01:24:17  <dominictarr>but conceptualizing it isn't as straightforward
01:24:41  <Raynos>how does push -> pull work with water?
01:24:50  <dominictarr>yes
01:24:57  <dominictarr>a toilet cistern
01:25:18  <dominictarr>it has a resivour - a buffer
01:25:24  <dominictarr>with a float value
01:25:41  <dominictarr>when the level is high, it blocks (pauses) the input
01:25:55  <Raynos>well yes thats ok to do
01:26:00  <Raynos>but waht about inputs that cant be pauses
01:26:02  <Raynos>paused*
01:26:15  <dominictarr>well, that isn't IO
01:26:18  <dominictarr>not files
01:26:22  <Raynos>you cant pause "HERE IS MY POSITION" messages from games
01:26:26  <dominictarr>I guess the user's mouse
01:26:39  <dominictarr>yeah, well, stuff like that works as properties
01:26:53  <Raynos>those are real time inputs
01:26:58  <dominictarr>every position the mouse has been in doesn't matter
01:27:06  <Raynos>as in the thing creating those values in those inputs expects the values to flow in real time
01:27:08  <dominictarr>just the current value
01:27:15  <Raynos>true
01:27:19  <Raynos>so I guess thats a vot
01:27:29  <Raynos>which only makes sense to represent as a push stream / udp style thing
01:27:29  <dominictarr>yup, that is a VOT
01:27:40  <dominictarr>yeah
01:27:44  <Raynos>where as tsov is pull but can be consumed as push
01:27:52  <Raynos>well it's either and can be consumed as either
01:27:54  * ins0mniaquit (Ping timeout: 245 seconds)
01:28:00  <dominictarr>okay -- so I think an interesting thing
01:28:10  <dominictarr>is that TCP is both push and pull
01:28:28  <Raynos>i think TCP is push
01:28:31  <dominictarr>the sender begins by pushing the packets across the net work
01:28:34  <Raynos>there's just backpressure baked into the protocol
01:28:43  <Raynos>that makes pause() and resume() efficient to implement
01:28:44  <dominictarr>but the reciever puts it into a buffer
01:28:51  <dominictarr>which the user pulls from
01:29:00  <dominictarr>like a toilet cistern
01:29:10  <Raynos>I think TCP is a well behaved push compared to mouse position which is not a well behaved push
01:29:34  <Raynos>dominictarr: the fact that the receiver puts it into a buffer he should pull from is an implementation detail
01:29:38  <dominictarr>yes, and an important thing, is that the puller sends a nak which tells the pusher to resend
01:30:42  <dominictarr>also, in push you get nak/acks and in pull you get req
01:30:45  * defunctzombie_zzchanged nick to defunctzombie
01:31:16  <dominictarr>so, in pull you say "give me next chunk" or "give me chunk N"
01:31:23  <defunctzombie>substack: how do I test something like engine.io with testling?
01:31:28  <defunctzombie>substack: you have some sort of server mode irrc
01:31:33  <defunctzombie>did you ever flush that out more?
01:31:38  <dominictarr>tcp optimistically sends packets,
01:31:59  <dominictarr>and then the reciever is like "oops, I need packet X"
01:32:39  <Raynos>defunctzombie: I asked substack to write testling tests for https://github.com/substack/xhr-write-stream as an example :)
01:32:39  <dominictarr>Raynos: another important thing, that IO needs is to abort/disconnect streams
01:33:05  <defunctzombie>Raynos: cool
01:33:26  <Raynos>dominictarr: i.e. cleanup / early termination
01:34:02  <dominictarr>yes
01:34:08  <Raynos>defunctzombie: he probably won't. there is always https://github.com/substack/testling-server-example
01:34:11  <dominictarr>this is really important for IO
01:35:09  <dominictarr>Raynos: so maybe you want to use something simple like iterator, and then wrap that in an adapter to turn it into a stream
01:35:35  <dominictarr>and use something different for real-time streams
01:36:27  <defunctzombie>Raynos: Is that the approach that has been adopted?
01:36:37  <defunctzombie>I kinda feel like there is no real documented approach here
01:36:42  <defunctzombie>maybe I just haven't seen the docs
01:36:46  <Raynos>defunctzombie: that's the first approach that was hacked together and then no more work
01:37:35  <defunctzombie>yea
01:40:31  <dominictarr>Raynos: defunctzombie are you still talking about streams?
01:41:06  <Raynos>nope. about writing xhr / websocket tests for testling
01:41:21  <defunctzombie>are we talking about streams?
01:42:14  <dominictarr>right
01:45:42  <defunctzombie>are we hatin on them?
01:46:12  <dominictarr>hmm, Raynos fs.js did not get any shorter with streams2
01:46:33  <dominictarr>defunctzombie: some people are disapointed that streams2 is more complex than streams1
01:47:57  * defunctzombiethinks streams don't belong in core
01:48:11  <dominictarr>I kinda agree
01:48:31  <dominictarr>core should just be module
01:48:34  <defunctzombie>streams are a framework
01:48:58  <dominictarr>yes
01:48:59  <defunctzombie>core should be the minimal viable set of bindings to get a js environment with io
01:49:25  <defunctzombie>and expose a way to make new modules (native or compiled)
01:49:27  <defunctzombie>and that is about it
01:49:34  <defunctzombie>everything else is just built on top of that
01:49:40  <dominictarr>defunctzombie: node2
01:49:50  <defunctzombie>also apparently called "no"
01:49:59  <defunctzombie>cause some people are think they are too clever
01:50:00  <defunctzombie>:D
01:51:27  <dominictarr>node2: no
01:51:32  <defunctzombie>dominictarr: I think streams (the basic parts) should be simpler
01:51:45  <defunctzombie>when I look at through, I can't help but think it should be simpler
01:51:52  <defunctzombie>like backpressure and all those things
01:52:00  <dominictarr>"no" is also available as a command,
01:52:01  <defunctzombie>are not for middle pieces to worry about (in general)
01:52:04  <defunctzombie>haha
01:52:37  * jibayjoined
01:53:11  <dominictarr>defunctzombie: through does stuff to handle close event, etc
01:53:50  <defunctzombie>yep
01:53:53  <defunctzombie>which makes sense
01:53:56  <dominictarr>and to handle that stuff for you
01:53:58  <defunctzombie>through is a very big help
01:54:03  <defunctzombie>when dealing with streams
01:54:29  <dominictarr>if the whole idea of streams was simpler, then it would be simpler, too
01:54:35  <defunctzombie>yep
01:55:05  <dominictarr>so, the question … is what would REALLY simple streams look like?
01:55:08  <defunctzombie>I mean, streams are just special emitters we agree on
01:55:10  <substack>mbalho: https://github.com/substack/node-browserify/issues/328
01:55:12  <defunctzombie>so we can just use ".pipe"
01:55:30  <defunctzombie>but in reality, much of what is done with .pipe is really just a function call
01:55:43  <dominictarr>defunctzombie: back pressure is _necessary_
01:56:04  <defunctzombie>substack: I think he means the code in browser-resolve?
01:56:05  <dominictarr>there needs to be a way to have that
01:56:17  <defunctzombie>dominictarr: yes, but not in ever part
01:56:31  <defunctzombie>the thing with backpressure is that you usually have something emitting
01:56:39  <dominictarr>no, and things like through just need to pass that through
01:56:52  <defunctzombie>yep
01:56:59  <defunctzombie>backpressure only happens at a few points
01:57:02  <substack>defunctzombie: browser-resolve doesn't use streams
01:57:04  <dominictarr>actually… back pressure in node has never been right for through.
01:57:12  <defunctzombie>and should generally be passed to the first point of pressure
01:57:21  <defunctzombie>substack: he means for packaged code
01:57:25  <dominictarr>if you have a long chain, it probably only happens at the start, and end
01:57:31  <defunctzombie>substack: not the code of the actual module ( I think)
01:57:32  <dominictarr>but not always
01:57:35  * tilgoviquit (Remote host closed the connection)
01:57:59  <defunctzombie>dominictarr: right, but in general, only one part usually cares about it or can handle it properly
01:58:05  <defunctzombie>pausing in the middle is weird
01:58:10  <dominictarr>yes
01:58:20  <defunctzombie>anyhow, that is what I think more special modules should do
01:58:21  <dominictarr>instead we just want to propagate the pause through
01:58:25  <defunctzombie>provide pause streams, etc
01:58:30  <defunctzombie>or backpressure
01:58:37  <defunctzombie>basic stream modules should be stupid
01:59:10  <dominictarr>would also be good if it was easy to compose multiple streams into a single stream in a light weight way
01:59:27  <dominictarr>like stream-combiner, but simpler
02:00:11  <dominictarr>I think this is easy in reducable
02:00:18  <defunctzombie>well, isn't that why .pipe returns the new stream?
02:00:37  <dominictarr>that is just about sugar
02:01:23  <dominictarr>I mean, take x.pipe(y).pipe(z)
02:01:31  <dominictarr>and treat it as a single stream
02:01:49  <dominictarr>a.pipe(x.pipe(y).pipe(z)).pipe(b)
02:01:58  <dominictarr>is not the same as
02:02:06  <dominictarr>a.pipe(x.pipe(y).pipe(z)).pipe(b)
02:02:11  <dominictarr>a.pipe(x).pipe(y).pipe(z).pipe(b)
02:02:37  <dominictarr>it's the same as x.pipe(y).pipe(z); a.pipe(z).pipe(b)
02:02:49  <dominictarr>which isn't actually that useful
02:03:40  <dominictarr>Raynos: so what if you ackowledged the ideas of both push and pull, and had a stream api that provided both
02:04:05  <dominictarr>and had a way to pipe pull -> push and vice versa
02:04:18  <Raynos>dominictarr: i dont know
02:04:44  <thl0>substack: can I have that as a t-shirt please? "a.pipe(x).pipe(y).pipe(z).pipe(b)"
02:05:04  <defunctzombie>haha
02:05:06  <defunctzombie>https://github.com/shtylman/engine.io-client/commits/master
02:05:07  <defunctzombie>woooo
02:05:20  <defunctzombie>the commits to make engine.io-client work in browserify are now just 2!
02:05:34  <defunctzombie>on top of the upstream master
02:07:57  * marcello3djoined
02:09:51  <dominictarr>thl0: you can/could get a a.pipe(b).pipe(a) shirt
02:10:06  <defunctzombie>substack: browserify should have a --standalone flag to make bundles
02:10:15  <thl0>dominictarr: I know, not enough pipes for me
02:10:32  <defunctzombie>substack: so I can do things like browserify --standalone eio index.js > dist.js
02:10:38  <defunctzombie>substack: to make things for non browserify users
02:10:44  <hij1nx>i get all kinds of lovely assertions using lev in (/Users/paolo/Library/Application Support/Google/Chrome/Default/Session Storage)
02:10:45  <defunctzombie>this will be very helpful for projects like d3 as well
02:12:48  * marcello3dquit (Ping timeout: 264 seconds)
02:14:00  <dominictarr>Raynos: hmm, looks like all the core streams use self.push(chunk)
02:14:13  <Raynos>dominictarr: that is the way they work
02:14:29  <Raynos>they have _read be similar to your cb in async iterator
02:14:34  <Raynos>and instead of doing cb(value)
02:14:37  <Raynos>they do self.push(value)
02:14:51  <dominictarr>what calls _read?
02:15:11  <Raynos>i think having a TSOV be both pull and push is too much complexity
02:15:25  <Raynos>dominictarr: `.read()` or `.pipe()` calls `_read` if internal buffer < hwm
02:15:36  <dominictarr>right
02:15:58  <dominictarr>Raynos: you need an abstraction where push and pull are both available
02:16:36  <dominictarr>like, you have a low level thing that represents the resource
02:16:52  <dominictarr>and then a high level thing that provides the pipe
02:18:21  <dominictarr>Raynos: how does _read tell ReadableStream that it's done reading, or has read what it can?
02:21:57  * st_lukequit (Remote host closed the connection)
02:29:45  <Raynos>dominictarr: It doesn't I think
02:29:50  <Raynos>it just push(v) or push(null)
02:30:11  <dominictarr>Raynos: so, how does it decide to call _read again?
02:30:14  <Raynos>dominictarr: 'push and pull are both available" is called pull. converting pull to push is 5 lines
02:30:27  <Raynos>dominictarr: the next call of `.read()` which happens after `"readable"` event
02:30:38  <Raynos>and `push(v)` will emit "readable" correctly
02:30:44  <dominictarr>Raynos: not practicle for realtime streams
02:30:52  <dominictarr>that means polling
02:31:27  <dominictarr>Raynos: but will push(v) emit readable if v is < lwm?
02:33:37  <dominictarr>or do I just return whatever I have?
02:33:44  <Raynos>lwm was removed
02:33:50  <Raynos>it just emits readable if necessary
02:43:40  <dominictarr>so, there is only high water mark?
02:43:53  <dominictarr>which triggers a pause?
02:44:07  <dominictarr>and it doesn't do a _read untill the user calls read?
02:56:32  * st_lukejoined
03:00:18  <defunctzombie>Raynos: https://github.com/Raynos/engine.io-stream/commits/wip-refactor
03:02:10  <dominictarr>Raynos: so basically, the thing with VOT is that you shouldn't reduce over the state of things like mouse position
03:02:45  <dominictarr>you should just generate the current state from the current state of the inputs
03:04:33  <defunctzombie>substack: https://github.com/Raynos/engine.io-stream/blob/wip-refactor/examples/simple/server.js#L9-L21
03:04:47  <defunctzombie>substack: amusing way I used enchilada with ecstatic to get autobundled js haha
03:04:56  <defunctzombie>even tho enchilada is express middleware rofl
03:05:39  <substack>it can be middleware, that's fine
03:05:47  <substack>but if you don't pass a `next` it should just not call that
03:05:53  <st_luke>the guy that owns geeklist just sent me a message cause I scripted auto-following of all their users the other night
03:05:53  <st_luke>haha
03:05:55  <substack>then you can use those middlewares with a raw http server
03:06:29  <substack>st_luke: post a geeklist ^5 about it
03:06:30  <substack>meta
03:06:55  <st_luke>their follower thing maxes out at 5,000 so if i follow more it doesnt show up
03:07:59  <defunctzombie>https://github.com/component/emitter/commit/c0d1ad75e3405b5c7f781b0bc43b55d7fd471459
03:08:12  <st_luke>I wonder if it's why their site is so slow now, maybe their mongodb is having a problem similar to the issue that npm couch had with hoarders
03:08:23  <defunctzombie>substack: have to have a next
03:08:31  <defunctzombie>substack: it calls next when it doesn't handle the file
03:08:34  <defunctzombie>substack: er route I mean
03:08:43  <defunctzombie>substack: since that could happen async that is why it is there
03:09:34  <substack>if (next) next()
03:09:36  <substack>solved.
03:09:38  <defunctzombie>substack: ive thought about other approaches to fall through routing, etc but so far I find next to be an elegant solution
03:10:12  <substack>defunctzombie: lately I've been exposing a .test() function
03:10:13  <defunctzombie>substack: the module policy is that it fallsthrough if it doesn't handle it
03:10:40  <substack>https://github.com/substack/glog/blob/master/example/server.js#L7
03:10:44  <defunctzombie>substack: that will do more work when you don't need to
03:10:48  <substack>defunctzombie: but it's hard to use next() with core http
03:10:57  <defunctzombie>substack: I don't use core http
03:11:07  * defunctzombieloves simple middleware pipeline
03:11:10  <substack>and core http is the lowest common denominator
03:11:18  <substack>so I try to support core http first
03:11:28  <substack>because express folks can use my stuff or other frameworky things
03:11:34  <substack>in addition to people just using core http
03:11:38  <defunctzombie>substack: I get more mileage out of supporting connect actually
03:11:53  <defunctzombie>the problem is core http is kinda useless for multirequest apps and such
03:12:06  <defunctzombie>it is great for the entry point
03:12:13  <substack>multirequest?
03:12:14  <defunctzombie>but you end up with a bunch of ifs, etc and other things
03:12:24  <defunctzombie>multi routes, different content types, etc
03:12:38  <defunctzombie>you innevitably build a router
03:12:43  <substack>https://github.com/substack/xhr-write-stream/blob/master/example/server.js
03:12:46  <defunctzombie>if you do any sort of api or js bundling
03:13:12  <defunctzombie>substack: sure
03:13:20  <defunctzombie>and if I goto /robots?foo
03:13:21  <substack>I don't see why you can't just use a router module when you need one when you start having that problem though
03:13:23  <defunctzombie>then it is now broken haha
03:13:30  <defunctzombie>substack: you can
03:13:55  <defunctzombie>substack: I totally agree
03:14:16  <defunctzombie>the reason I love middleware is basically why you like streams
03:14:23  <defunctzombie>I can pick what I want
03:14:25  <defunctzombie>and assemble
03:14:37  <defunctzombie>middleware (as I see it) is just an agreed upon function format :/
03:14:42  <st_luke>we didn't start using a router until we needed it, and we didn't need it for a few weeks
03:15:46  <defunctzombie>substack: since I use stuff like automatic bundling, stylus bundling, auto shimming, cookies, sessions, error consolidation, etc, I find it works well into the while Pipeline model
03:15:48  <defunctzombie>at least for now
03:15:55  <defunctzombie>certainly doesn't solve every use case
03:16:02  <defunctzombie>but it doesn't hurt
03:16:28  <defunctzombie>most of my node web apps have nothing to do with serving static files
03:16:53  <defunctzombie>static file serving is actually a very small part and most things I serve are not static
03:19:37  <defunctzombie>I guess I can make enchilada work with core http without the 3 req/res monkey patches
03:19:48  <defunctzombie>next isn't going anywhere tho I imagine
03:19:57  <defunctzombie>think of it like 'callback' haha
03:21:02  <substack>defunctzombie: so this is partly why I dislike mocha so much https://github.com/substack/node-mkdirp/issues/24
03:22:00  <defunctzombie>substack: hahaha
03:22:11  <defunctzombie>substack: I am weening myself off slowly
03:22:18  <defunctzombie>substack: as the tape tooling is getting better
03:22:23  <defunctzombie>substack: my test style was always TDD
03:22:43  <defunctzombie>and not spec, so the transition is just that I need things that have output that is for a human to consume
03:22:53  <defunctzombie>substack: tapedeck will eventually replace zuul for me
03:23:03  <defunctzombie>and tape test/*.js will replace mocha test/*.js :)
03:23:11  <defunctzombie>I do want to figure out global checking tho
03:23:20  <defunctzombie>mocha is the one that caught that global leak I reported
03:23:31  <defunctzombie>cause I test enchilada with it
03:23:47  <substack>well I think the proper place to add global detection is in a separate tool, not in tape
03:23:56  <substack>I'm not saying this wouldn't be useful
03:24:07  <substack>just that it is out of scope for tape to be concerning itself with
03:24:16  <substack>until it can be shown that nothing else will do
03:24:30  <defunctzombie>substack: I don't disagree
03:24:41  <defunctzombie>substack: I just don't want to remember 13 thousand tools
03:24:53  <substack>and I am open to exposing hooks to make third-party modules easier to write
03:24:55  <defunctzombie>if I want to go test things, there are certain things i want "ala cart"
03:25:17  <defunctzombie>because I want them every time I use tape
03:25:35  <substack>you can encapsulate those choices in a specialized tool that pulls in from multiple modules
03:25:40  <defunctzombie>so when I use mocha, I get global detection because 100% of the time I want it
03:25:48  <defunctzombie>substack: agreed
03:25:57  <defunctzombie>substack: so that tool then becomes the "test" tool I suppose
03:25:57  <substack>it's like this: http://substack.net/many_things#pulling-from-the-outside
03:26:17  <substack>it's a viable approach for some things
03:26:21  <defunctzombie>so what was this dude's problem?
03:26:52  <defunctzombie>and what was his "better code" thing?
03:26:55  <substack>I don't even know but the code he pasted was clearly broken.
03:27:17  <substack>"better code" is not a steady state
03:27:29  <substack>because the next guy who comes along will have different formatting opinions
03:27:36  <substack>and so on
03:27:42  <substack>and the repo will keep thrashing
03:28:03  <substack>it works and I don't want to fuck with it until it can be shown that there are real errors
03:28:27  <defunctzombie>agree
03:28:36  <defunctzombie>his code doesn't even take the same args
03:28:48  <defunctzombie>anyhow... failing test or GTFO :)
03:29:19  <defunctzombie>https://github.com/substack/node-browserify/issues/327
03:29:21  <defunctzombie>substack: ^
03:29:27  <defunctzombie>this is what I think --standalone could be for
03:29:47  <defunctzombie>he wants a js file which looks like the following:
03:29:53  <substack>I think a standalone mode could be good
03:29:59  <defunctzombie>exported_name = (function() { });
03:30:06  <substack>or we could call it --dist
03:30:08  <defunctzombie>basically is how I comprehend that
03:30:13  <substack>not important which one
03:30:19  <defunctzombie>yep, any reasonably named flag will do
03:30:44  <defunctzombie>the other options seem to confuse people cause those are about different use cases
03:30:57  <substack>my only concern is that there are starting to be a lot of flags
03:31:08  <defunctzombie>yea :(
03:31:19  <substack>I guess grep has a lot of flags too
03:31:21  <substack>meh
03:31:27  <defunctzombie>I think cause people want to do complex things with it
03:31:34  <defunctzombie>cause it is an interesting tool
03:31:36  <defunctzombie>https://github.com/shtylman/SlickGrid
03:31:43  <substack>I am conflicted.
03:31:43  <defunctzombie>so like that, I would make a dist file for too
03:32:14  <defunctzombie>I want more people to use 'require' and just run browserify, but there are too many people who just need to insert a script and be done
03:32:23  <defunctzombie>so my qr-element widget
03:32:26  <defunctzombie>I want to make a dist file fo
03:32:33  <defunctzombie>cause there is no reasonable qr widget
03:32:36  <defunctzombie>and many others
03:32:47  <defunctzombie>mostly cause this is how non-node people are gonna consume them :(
03:32:56  <defunctzombie>they are behind the times hahaha
03:33:00  <substack>before v3 we should run a poll asking how people are using browserify in the wild
03:33:22  <substack>and then we cut all the flags that aren't being used sufficiently often to justify their cost
03:33:29  <defunctzombie>nice
03:33:37  <defunctzombie>we should have people pay for flags
03:35:40  <substack>in other news, I've finished the first half of realtime testling-ci result updates
03:35:54  <defunctzombie>nice!
03:36:00  <substack>a /feed.json on git.testling.com for the ci.testling.com process so listen to
03:36:12  <substack>and then each project will have a /feed.json you can listen to
03:36:29  <defunctzombie>how are you gonna listen to it from the browser?
03:36:38  <substack>shoe
03:36:46  <substack>but I need to fix that pesky bug that cropped up
03:36:46  <defunctzombie>regular xmlrequests?
03:37:00  <substack>oh actually xhr does stream properly in everything except IE
03:37:03  <substack>so that might work ok
03:37:14  <defunctzombie>I thought shoe and thus sock wasn't about sending a "file" back
03:37:40  <defunctzombie>I think it streams in IE too
03:37:46  <defunctzombie>as long as the stream ends
03:37:48  <substack>it doesn't in ie9
03:37:57  <defunctzombie>you jsut can't use it for never ending data I thought
03:38:04  <defunctzombie>cause the buffer always fills up
03:38:06  <substack>that's not streaming if it needs to end before you get any chunks
03:38:17  <defunctzombie>you get chunks, no?
03:38:22  <substack>nope
03:38:27  <defunctzombie>via the textContent or something?
03:38:32  <substack>it's completely buffered
03:38:54  <substack>try running this in ie9: https://github.com/substack/http-browserify/tree/master/example/streaming
03:39:27  <substack>it doesn't render anything on the page until the response is completely finished
03:39:29  <defunctzombie>which one is the bundle.js?
03:39:49  <substack>main.js is the browser code
03:39:52  <defunctzombie>ah ok
03:39:58  <substack>in all other browsers it streams the chunks
03:40:00  <defunctzombie>does http.get check the textContent?
03:40:09  <defunctzombie>and just calls back when there are updates?
03:40:13  <substack>responseText I think
03:40:15  <defunctzombie>(of the xhr I mean)
03:40:17  <defunctzombie>yea
03:40:18  <defunctzombie>that one
03:40:25  <substack>it keeps an offset on the responseText
03:40:43  <substack>and slices off the chunks so it behaves like node
03:41:22  <defunctzombie>substack: http://stackoverflow.com/questions/3880381/xmlhttprequest-responsetext-while-loading-readystate-3-in-chrome
03:41:36  <defunctzombie>see the last sentence of the first answer
03:42:20  <defunctzombie>seems that XDomainRequest might do it?
03:42:41  <defunctzombie>anyhow, probably better off just exposing a regular websocket/sock/whatever stream
03:42:58  <defunctzombie>substack: you can also check out engine.io-client stuff, I made that work with browserify
03:43:21  <substack>does it give me a simple streaming interface?
03:43:46  <defunctzombie>substack: https://github.com/Raynos/engine.io-stream/tree/wip-refactor
03:43:55  <defunctzombie>this will once we review all my changes more
03:43:59  <defunctzombie>substack: just like shoe
03:44:36  <defunctzombie>but maybe not yet ready for prime time ... but any testing would be good for it haha
03:44:44  <defunctzombie>the simple example works :)
03:50:33  <substack>I usually set application/octet-stream
03:50:37  <substack>but that doesn't fix IE
03:50:43  <defunctzombie>fucking ie
03:55:41  * dominictarrquit (Ping timeout: 255 seconds)
03:58:22  * thl0quit (Remote host closed the connection)
04:00:22  * ITprojoined
04:20:41  * st_lukequit (Read error: Connection reset by peer)
04:20:55  * st_lukejoined
04:28:44  <defunctzombie>substack: https://github.com/shtylman/node-browser-resolve/pull/10
04:28:49  <defunctzombie>did you have an opinion on this?
04:29:16  <defunctzombie>mbalho: https://github.com/shtylman/node-browser-resolve/issues
04:29:17  <defunctzombie>?
04:29:21  <defunctzombie>there are the issue...
04:33:10  <defunctzombie>I used passport today with express, it is pretty cool
04:33:15  <defunctzombie>very well modularized
04:34:49  <substack>being explicit is better I think
04:34:58  <substack>with require extensions
04:35:13  <substack>in retrospect extensions in node were probably a mistake in the first place
04:35:17  <substack>like NODE_PATH
04:35:38  <defunctzombie>yea
04:35:46  <defunctzombie>ok, so I will close the issue as won'tfix
04:37:08  <defunctzombie>https://github.com/shtylman/node-browser-resolve/issues/7
04:37:20  <defunctzombie>is this even safe to send to the browser?
04:37:26  <defunctzombie>don't these vary across platforms?
04:37:44  <defunctzombie>chrisdickinson: ^
04:39:25  * jibayquit (Remote host closed the connection)
04:46:04  <defunctzombie>I guess I should update this and add some tests
04:46:05  <defunctzombie>https://github.com/shtylman/events-browserify/blob/master/README.md
04:49:35  <defunctzombie>and what all will we have to do to update to 0.8 or 0.10 .. sigh
04:49:48  <defunctzombie>core modules are hard to version
04:52:13  <mbalho>oooh https://github.com/rockgolem/companion
04:53:19  <defunctzombie>huh
04:53:31  <defunctzombie>mbalho: interesting, why not just migrate them?
04:53:47  <defunctzombie>easy enough to add a module.export = foo to a file :/
04:54:06  <mbalho>step 1: fix entire internet
04:55:33  <defunctzombie>mbalho: step 2: ???
04:56:48  <defunctzombie>substack: when using dnode, I need a clever way to intercept any error object sent back to the user from the server
04:57:03  <defunctzombie>substack: some errors I can't have being sent back (like internal stack traces or such)
04:57:19  <defunctzombie>or does dnode filter the error object?
04:57:53  <Raynos>dominictarr: with vot you should only reduce over it if you want to accumulate a subset of the history
04:58:39  <Raynos>defunctzombie :D
04:58:51  <Raynos>let me know when i need to bump & publish
04:59:10  <defunctzombie>Raynos: do you want to review it? I ripped out a lot of stuff
04:59:42  <defunctzombie>also need to add some tests
05:00:00  <defunctzombie>at least using phantomjs locally if anything
05:03:19  <mbalho>so i am gonna work on a p2p video sharing site
05:03:24  <mbalho>WHO IS WITH ME
05:08:01  <substack>defunctzombie: I'm not sure how you would do that
05:08:31  <substack>defunctzombie: enable issues on node-browser-resolve >_<
05:08:46  <substack>oh wait nevermind
05:08:54  <substack>mbalho: your assertion seems incorrect? https://github.com/shtylman/node-browser-resolve/issues
05:09:11  <defunctzombie>yea, I didn't understand it either
05:29:56  * ITproquit (Ping timeout: 240 seconds)
05:45:06  * heathquit (Read error: Connection reset by peer)
05:45:12  * heathjoined
05:53:33  <Raynos>WHAT IS IT LIKE?
05:53:46  <Raynos>defunctzombie: ill review soon. I think you remove too much
05:53:52  <Raynos>LOUDBOT BE LOUD
05:54:16  <Raynos>loudbot why?
06:00:33  * fotoverite_joined
06:00:47  * fotoveritequit (Ping timeout: 255 seconds)
06:00:47  * fotoverite_changed nick to fotoverite
06:06:36  * dominictarrjoined
06:08:10  <defunctzombie>https://github.com/usablica/intro.js
06:08:16  <defunctzombie>another module we need to modernize and put on npm
06:08:33  <dominictarr>Raynos: just installed graphics, and everyone else in the room complains that the internet stopped working
06:08:44  <dominictarr>so many deps
06:08:44  <Raynos>:D
06:08:49  <Raynos>I know
06:08:56  <Raynos>its the dev deps
06:09:04  <dominictarr>yup
06:09:10  <Raynos>the normal deps are tiny
06:09:20  <Raynos>ok there are like 3 massive dev deps
06:09:24  <Raynos>that I dont even use >>
06:09:54  <dominictarr>I'm gonna try messing around, I want to make an animation of how leveldb works for my scotland.js talk
06:10:18  <Raynos>an vot of element is an animation
06:10:39  <Raynos>render(observableContainingElement) does most of the work
06:11:08  <dominictarr>ah, it doesn't work
06:11:30  <Raynos>?
06:11:34  <Raynos>what doesnt work?
06:11:46  <dominictarr>XMLHttpRequest cannot load http://localhost:9967:9967/shoe/370/55668c23-a5fa-4500-bad9-1b80643a3870/xhr_streaming. Cross origin requests are only supported for HTTP. request.js:83
06:11:46  <dominictarr>Uncaught TypeError: Object #<Stream> has no method 'destroy' sockjs-client.js:314
06:11:47  <dominictarr>Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101
06:11:58  <Raynos>thats irrelevant
06:12:06  <Raynos>that means live reload is broken because substack broke shoe
06:12:31  <Raynos>substack: you should unbreak shoe or at least bump the minor :D
06:14:11  <dominictarr>live reload and reconnect use different versions of shoe
06:14:19  <dominictarr>what does live-reload do?
06:14:39  <dominictarr>I'm not seeing any animation, either
06:14:43  <Raynos>live-reload watches file system and sends messages to browsers to hard refresh page
06:14:52  <Raynos>dominictarr: depends which demo you opened
06:14:59  <Raynos>the reactive ones animate
06:15:00  <dominictarr>npm run examples
06:15:57  <dominictarr>okay, I can't run the example at all
06:16:11  <Raynos>interesting
06:16:28  <Raynos>`npm run example && open localhost:9966` should open an index page
06:16:38  <Raynos>then going to any react link should open an example
06:16:47  <Raynos>you can also `npm run tryme` to open tryme style examples
06:16:49  <dominictarr>okay, the mario example is working
06:17:23  <Raynos>http://raynos.graphics-server.jit.su/react/mouse-position-image.js react/mouse-position-image should work
06:18:00  <Raynos>tbh graphics is kind of incomplete and only has a limited set of rendering tools
06:18:06  <Raynos>namely images & coloured rectangles
06:18:33  <Raynos>the rest requires more implementating / fleshing out
06:19:49  <dominictarr>I can see the list of demos, but I never anything when I open a demo
06:20:44  <Raynos>try `npm run tryme` instead
06:21:03  <Raynos>also the collage-lines demo is a blank page :P
06:24:19  <Raynos>I think graphics is too alpha unless you want to port more code / implement more element types
06:24:36  <Raynos>or if you truly think coloured rectangles are enough :D
06:24:36  <defunctzombie>substack: you should deprecate the older browserify v2 versions
06:24:38  <dominictarr>Raynos: which is the part that draws it? is it all DOM or is it canvas?
06:24:46  <Raynos>its both
06:24:56  <Raynos>collage function creates a canvas
06:25:03  <Raynos>image function creates image element
06:25:25  <defunctzombie>substack: at least some of the intermediate ones maybe
06:25:33  <Raynos>all arguments to collage are canvas based things
06:35:26  <hij1nx>https://github.com/hij1nx/levelweb
06:37:23  * AvianFlujoined
06:38:28  * No9quit (Ping timeout: 245 seconds)
06:40:11  * No9joined
06:44:06  * nicholasfquit (Read error: Connection reset by peer)
06:44:31  * nicholasfjoined
06:53:00  * defunctzombiechanged nick to defunctzombie_zz
06:57:26  * Guest11068joined
07:15:38  * mikealjoined
07:23:08  <substack>Raynos: does reverting to the old git uri verions of sockjs actually fix shoe?
07:23:39  <substack>I was under the impression that the fixes were due to browserify changes
07:39:12  * st_lukequit (Remote host closed the connection)
07:57:27  * dominictarrquit (Quit: dominictarr)
08:05:07  * Guest11068quit
08:05:24  * Guest11068joined
08:05:25  * Guest11068quit (Client Quit)
08:05:44  * Guest11068joined
08:09:48  * hij1nxquit (Ping timeout: 264 seconds)
08:10:27  * Guest11068quit (Client Quit)
08:10:51  * Guest11068joined
08:10:54  * hij1nxjoined
08:11:46  * Guest11068quit (Client Quit)
08:57:41  * dominictarrjoined
09:04:13  * dominictarrquit (Quit: dominictarr)
09:11:54  * ITprojoined
09:35:55  * ITproquit
09:48:22  * ITprojoined
10:02:09  * ITproquit
10:02:57  * ITprojoined
10:10:11  * ITproquit
11:16:24  * AvianFluquit (Remote host closed the connection)
11:35:36  * Raltjoined
11:38:44  * No9quit (Ping timeout: 256 seconds)
11:40:03  * No9joined
12:00:40  * dominictarrjoined
12:04:41  * AvianFlujoined
12:12:39  * jibayjoined
12:24:56  * spion_joined
12:32:47  * spion_changed nick to spion
12:38:55  * yorickjoined
12:38:55  * yorickquit (Changing host)
12:38:55  * yorickjoined
13:57:06  * thl0joined
14:09:25  * No9quit (Ping timeout: 256 seconds)
14:10:20  * No9joined
14:26:32  <Ralt>Raynos: dunno if it's the same for you, but checkoutting between branch issues was a PITA for me. Thus, https://github.com/Ralt/easier-git-checkout
14:28:30  * Raltquit (Remote host closed the connection)
14:41:17  * mikealquit (Quit: Leaving.)
15:04:28  * dominictarrquit (Quit: dominictarr)
15:16:15  * ins0mniajoined
15:17:52  <ins0mnia>substack: When reverting back to shoe 0.0.7 the sockjs issue is resolved (thanks to Raynos for good hunch), hope this will narrow down the issue to why it's happening
15:19:26  * defunctzombie_zzchanged nick to defunctzombie
15:21:21  * AvianFluquit (Remote host closed the connection)
15:24:54  * yorickquit (Remote host closed the connection)
15:25:44  * yorickjoined
15:25:44  * yorickquit (Changing host)
15:25:44  * yorickjoined
15:26:57  <thl0>does anyone know of a 'cool although CoffeeScript' project, that I can use as a sample to show off browserify sourcemap support?
15:27:05  <thl0>--- haters need not apply ;)
15:31:40  * yorickquit (Remote host closed the connection)
15:33:37  * yorickjoined
15:34:27  * marcello3djoined
15:47:47  * dguttmanjoined
15:54:31  * Raltjoined
16:15:24  * marcello3dquit (Remote host closed the connection)
16:17:37  * thl0quit (Remote host closed the connection)
16:22:14  * thl0joined
16:35:36  * defunctzombiechanged nick to defunctzombie_zz
16:39:43  <guybrush>thl0: threenodes :D https://github.com/idflood/ThreeNodes.js
16:40:16  <guybrush>but its pretty complex and huge so it might not fit your needs
16:40:44  <guybrush>also its not commonjs haha
16:48:34  * dguttmanquit (Quit: dguttman)
17:16:38  * AvianFlujoined
17:35:46  * mikealjoined
17:55:48  * mikealquit (Quit: Leaving.)
17:58:09  * AvianFluquit (Remote host closed the connection)
18:02:23  * mikealjoined
18:09:12  * No9quit (Ping timeout: 256 seconds)
18:10:42  * No9joined
18:12:01  <thl0>guybrush: thanks that looks pretty cool - can't find the coffee files on the githubs though
18:12:34  <thl0>also this may be a bit too large for just a proof of concept, I found this https://github.com/thlorenz/WebGLCraft which seems just the right size
18:17:15  <thl0>guybrush: never mind, found the coffees they were a bit hidden ;)
18:26:22  * defunctzombie_zzchanged nick to defunctzombie
18:29:22  * mikealquit (Quit: Leaving.)
18:37:59  <defunctzombie>https://github.com/heelhook/intro.js-rails
18:38:06  <defunctzombie>apparently rails has an asset pipeline
18:38:27  <defunctzombie>would be cool if that pipeline consumed node_modules stuff
18:40:30  * _ritchquit (Quit: Leaving.)
18:41:09  * thl0quit (Remote host closed the connection)
18:44:06  * nicholasfquit (Read error: Connection reset by peer)
18:44:35  * nicholasfjoined
18:45:07  <defunctzombie>wooo, got my node philly ticket!
18:53:24  <jesusabdullah>gj
18:53:25  <substack>\o/
18:53:40  <jesusabdullah>good morning Mr. Stack
18:53:57  <substack>ins0mnia: I pushed Raynos's patch so [email protected] should work again
18:54:27  * substack<-- so queasy
18:54:37  <substack>from that wine last night >_<
18:54:42  <jesusabdullah>ah, I was about to say
18:54:54  <jesusabdullah>this cold bug is so virulent it got you sick too??
18:54:57  <jesusabdullah>*phlegm*
19:06:56  <ins0mnia>substack: awesome!!!!!
19:16:22  * Raltquit (Remote host closed the connection)
19:17:00  * Raltjoined
19:17:06  * Raltquit (Client Quit)
19:17:41  <substack>right now hacking on some buffer-browserify patches to make array indexing work
19:18:07  <substack>so that JSONStream and jsonparse will just work without special hacks
19:18:40  * AvianFlujoined
19:19:15  * mikealjoined
19:22:30  * Raltjoined
19:23:05  <substack>jesusabdullah: my server just crashed from an ecstatic bug
19:23:22  <substack>https://gist.github.com/substack/5177896
19:25:32  <substack>unrelatedly what does "an amd version of browserify" even mean
19:25:45  <substack>people keep saying that as if that string of words is supposed to make sense
19:32:49  * notalexgordon_changed nick to notelliottcable
19:33:00  * Raltquit (Quit: Bye)
19:34:01  * Raltjoined
19:38:42  * AvianFluquit (Remote host closed the connection)
19:39:46  * AvianFlujoined
19:50:56  * dguttmanjoined
19:53:55  * defunctzombie_joined
19:57:13  * defunctzombiechanged nick to defunctzombie_zz
19:57:18  * defunctzombie_zzquit (Quit: ZNC - http://znc.in)
19:57:53  * defunctzombie_changed nick to defunctzombie
19:58:26  * defunctzombiequit (Changing host)
19:58:26  * defunctzombiejoined
19:59:39  * dguttmanquit (Quit: dguttman)
20:00:30  <defunctzombie>woo
20:00:38  <defunctzombie>got the znc stuff running on a digital ocean box
20:00:39  <defunctzombie>haha
20:00:41  <defunctzombie>https://irc.defunctzombie.com:1337/
20:00:55  <defunctzombie>who wants some irc bouncer logins?
20:02:55  <chrisdickinson>substack: is ci.testling.com having some trouble at the moment?
20:03:06  <chrisdickinson>having trouble getting https://ci.testling.com/chrisdickinson/git-apply-delta to load
20:03:42  <substack>yes
20:03:51  <substack>there is a huge memory leak we're trying to figure out
20:03:54  <chrisdickinson>oof
20:04:11  <chrisdickinson>thanks for the heads up!
20:04:18  <chrisdickinson>also, good luck.
20:04:33  <defunctzombie>LEAK ALL THE MEMORY!
20:05:15  <chrisdickinson>substack: i'm sure you're probably already aware, but if you install and require http://npm.im/heapdump, you can make running node processes generate heapdumps by sending a USR2 signal to them using kill -s USR2 PID
20:05:38  <chrisdickinson>which you can then load in chrome's profile tab to take a look at the retaining tree
20:07:30  <substack>jesusabdullah: https://github.com/jesusabdullah/node-ecstatic/pull/61
20:08:12  <substack>right now if you `curl http://anywebsite/%` running ecstatic you can crash it
20:13:26  <AvianFlu>substack: mmalecki is gonna merge that presently
20:13:29  <jesusabdullah>Interesting.
20:13:34  <AvianFlu>thanks for saying it somewhere I saw XD
20:13:38  <jesusabdullah>AvianFlu: lemme review that real quick
20:13:58  <jesusabdullah>AvianFlu: substack: Word.
20:14:05  <jesusabdullah>AvianFlu: Does mmalecki have publish rights to ecstatic?
20:14:23  <AvianFlu>jesusabdullah: you made him a repo maintainer
20:14:25  <AvianFlu>I don't know about npm
20:14:43  <jesusabdullah>yeah
20:15:06  <substack>chrisdickinson: ok we've found the troublesome dataset causing the issues
20:15:57  * marcello3djoined
20:18:00  <defunctzombie>marcello3d: I setup an irc bouncer :)
20:19:16  <defunctzombie>oh man.. installed an irc client on my android phone
20:19:18  <defunctzombie>haha
20:20:55  * marcello3dquit (Ping timeout: 264 seconds)
20:22:34  * defunctzombieis offering irc bouncer connections/accounts for anyone interested
20:24:10  * owen1quit (Quit: WeeChat 0.4.0)
20:50:58  * kenperkinsquit (Ping timeout: 245 seconds)
21:12:46  * kenperkinsjoined
21:18:28  * kenperkinsquit (Ping timeout: 245 seconds)
21:23:18  * kenperkinsjoined
21:43:50  <substack>jesusabdullah: forgot to npm publish the new ecstatic?
21:48:10  * thl0joined
21:56:59  * No9quit (Ping timeout: 256 seconds)
22:12:29  * tilgovijoined
22:28:59  <jesusabdullah>substack: yeah I've been farting off with something else, hold on
22:31:12  <jesusabdullah>substack: okay published, v0.4.1
22:39:47  <substack>chrisdickinson: testling-ci issues fixed
22:39:54  <chrisdickinson>rad!
22:40:22  <substack>you just won't see the entire history on the project page until I finish lazy-loading
22:45:07  * Domenic_joined
22:47:04  * No9joined
22:47:40  <substack>chrisdickinson: https://ci.testling.com/chrisdickinson/git-apply-delta <-- great stuff
22:54:43  <chrisdickinson>thanks!
22:55:22  <chrisdickinson>i had a working readonly version of git in JS about 2 years ago, but the lack of a good in-browser zlib (and the lack of browserify!) kept me from continuing on it
22:55:34  <chrisdickinson>in other words, thanks for browserify!
22:55:54  <chrisdickinson>now i'm going to split tempisfugit (the old git clone) into a bunch of tiny modules
23:11:53  <defunctzombie>substack: thoughts on --dist ? my thinking is keep it simple. however I think browser pack output with that leading semicolon is an issue
23:12:19  <defunctzombie>also, I am using irc on my phone. hahah
23:12:49  <substack>does browser-pack still have the loading ;?
23:12:53  <substack>thought I got rid of that
23:13:24  <defunctzombie>oh I hadn't checked recently
23:13:35  <defunctzombie>if not then cool
23:13:40  <substack>defunctzombie: a simple --dist that exports to a global makes sense but this could also be done in userland
23:13:47  <substack>same with umd
23:14:01  <substack>should probably have a userland tool for it first
23:16:09  <substack>anyways finishing the lazy load stuff on testling project pages
23:16:22  <mbalho>I AM AT POWDERFACE
23:16:27  <substack>mbalho: \o/
23:16:48  <mbalho>taught kids at 81st ave library about game design this morning
23:16:56  <substack>awesome
23:17:14  <mbalho>not voxel.js tho, it was more introductory that what our tools can support at the moment
23:17:22  <mbalho>but i have lotsa ideas
23:19:08  <substack>mbalho: walking down to powderface
23:19:34  <substack>closes at 6pm on weekends by the way
23:20:10  <mbalho>ah
23:20:41  <substack>I could go for some tacos too
23:20:51  <mbalho>me2
23:22:38  * No9quit (Ping timeout: 245 seconds)
23:24:11  * No9joined
23:56:56  * yorickquit (Remote host closed the connection)
23:59:11  * mikealquit (Quit: Leaving.)