12:44:00  * dominictarrquit (Quit: dominictarr)
12:59:06  * heathjschanged nick to heath
13:05:06  * mikolalysenkojoined
13:11:07  * thl0quit (Remote host closed the connection)
13:11:44  * thl0joined
13:16:18  * thl0quit (Ping timeout: 264 seconds)
13:24:50  * yorickjoined
13:24:51  * yorickquit (Changing host)
13:24:51  * yorickjoined
13:34:48  * spionjoined
13:42:41  * thl0joined
13:51:14  * dominictarrjoined
13:53:53  * marcello3dquit (Remote host closed the connection)
13:54:16  * mikolalysenkoquit (Ping timeout: 258 seconds)
14:06:51  * dominictarrquit (Quit: dominictarr)
14:10:42  * dominictarrjoined
14:11:22  * mikolalysenkojoined
14:19:59  * fallsemojoined
14:20:14  * marcello3djoined
14:25:03  * ralphtheninjaquit (Read error: Connection reset by peer)
14:26:04  * ralphtheninjajoined
14:34:57  * marcello3dquit (Remote host closed the connection)
14:34:59  * fallsemoquit (Quit: Leaving.)
14:38:59  * dguttmanjoined
14:41:30  * spionquit (Remote host closed the connection)
14:47:35  * defunctzombie_zzchanged nick to defunctzombie
14:48:27  * CryptoQuickjoined
14:48:29  * CryptoQuickquit (Client Quit)
14:49:36  * marcello3djoined
14:51:40  * mikealquit (Quit: Leaving.)
14:52:25  * fallsemojoined
14:54:58  * dguttman_joined
14:55:14  * dguttmanquit (Ping timeout: 252 seconds)
14:55:43  * dguttman_changed nick to dguttman
15:11:49  * ITprojoined
15:12:52  * mykolajoined
15:17:58  * dguttman_joined
15:19:13  * dguttmanquit (Ping timeout: 246 seconds)
15:19:14  * dguttman_changed nick to dguttman
15:27:41  * mikealjoined
15:35:47  * dominictarr_joined
15:37:56  * dominictarrquit (Ping timeout: 245 seconds)
15:37:56  * dominictarr_changed nick to dominictarr
15:43:10  * jcrugzzjoined
15:47:30  * mikolalysenkoquit (Ping timeout: 252 seconds)
15:54:55  * dominictarrquit (Ping timeout: 240 seconds)
15:57:06  * dguttmanquit (Ping timeout: 264 seconds)
15:57:16  * dguttmanjoined
15:57:38  * mikolalysenkojoined
15:59:37  * dominictarrjoined
16:02:31  * shamajoined
16:03:40  * Benviejoined
16:05:42  * AvianFlujoined
16:06:16  * dominictarrquit (Ping timeout: 260 seconds)
16:10:10  * dominictarrjoined
16:12:53  * ins0mniaquit (Ping timeout: 248 seconds)
16:17:01  * mikealquit (Quit: Leaving.)
16:17:44  * dominictarrquit (Quit: dominictarr)
16:25:07  * dominictarrjoined
16:30:23  * mikolalysenkoquit (Ping timeout: 252 seconds)
16:40:16  * calvinfojoined
16:40:55  * shuaibjoined
16:41:41  * marcello3dquit (Remote host closed the connection)
16:54:14  * dominictarrquit (Quit: dominictarr)
16:57:52  <juliangruber>substack: can you help me with this one? https://gist.github.com/juliangruber/5303065
16:58:03  <juliangruber>module-deps piped to through doesn't work
16:59:33  * mikealjoined
17:02:33  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
17:04:25  * mikolalysenkojoined
17:06:43  * AvianFluquit (Remote host closed the connection)
17:10:32  * marcello3djoined
17:22:25  * ryanseddonquit (Ping timeout: 256 seconds)
17:24:41  * shuaibjoined
17:38:14  * ins0mniajoined
17:39:19  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
17:39:19  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
17:39:52  <pkrumins>\o
17:39:59  <pkrumins> |\
17:40:03  <pkrumins>/ \
17:42:58  * mykolaquit (Ping timeout: 245 seconds)
17:52:38  * jxsonjoined
17:52:49  * jxsonquit (Remote host closed the connection)
17:52:57  * jxsonjoined
17:56:56  * timoxleyquit (Quit: Computer has gone to sleep.)
17:58:28  <substack>juliangruber: what if you through(function (buf) { console.log(buf) }) ?
17:58:36  * nicholas_quit (Read error: Connection reset by peer)
17:59:08  * nicholas_joined
18:03:53  <juliangruber>ah I know
18:04:06  <juliangruber>substack: It's because errors are emitted
18:04:16  <juliangruber>wich is wanted, as not all files are present
18:04:27  <juliangruber>but that fucks up the internal state of module-deps
18:07:08  <juliangruber>how can I make module-deps skip files that should be in node_modules?
18:08:40  <juliangruber>fixed it, will make a pr
18:11:13  <chrisdickinson>btw the sha1 built into browserify is broken
18:11:13  * nicholas_quit (Read error: Connection reset by peer)
18:11:24  <chrisdickinson>):
18:11:34  <chrisdickinson>http://npm.im/sha1 works though
18:11:38  <substack>chrisdickinson: https://github.com/dominictarr/crypto-browserify
18:11:44  * nicholas_joined
18:14:51  <chrisdickinson>https://github.com/dominictarr/crypto-browserify/issues/9
18:15:04  <chrisdickinson>substack: at some point i'd like to try out your buffer-browserify changes on my git stuff
18:15:37  <chrisdickinson>thus far i've found that the biggest (well, second biggest after the incredibly awful way I'm doing inflating) perf problem is the number of times I'm calling `SlowBuffer.copy`
18:16:03  <chrisdickinson>also there are assumptions about how buffers work -- being able to reach into buffer.parent and slice to get the child buffer as an array, etc
18:25:10  <defunctzombie>chrisdickinson: I wouldn't rely on any cryto-browserify stuff
18:25:19  <defunctzombie>check out the crypto lib from google
18:25:29  <defunctzombie>and pick the parts you want from that
18:27:55  <defunctzombie>crypto-js iirc
18:37:47  <chrisdickinson>defunctzombie: yeah. i mostly only need sha1
18:37:56  <chrisdickinson>well, s/mostly //g
18:38:00  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
18:38:09  <mikolalysenko>now that typed arrays are part of node, maybe it is better to try using those instead of buffers where possible...
18:39:02  <defunctzombie>chrisdickinson: https://github.com/bitfloor/bitcoinjs-lib/tree/master/src/crypto-js but I think that is only sha256
18:39:23  <chrisdickinson>mikolalysenko: that presents difficulties ):
18:40:19  <substack>juliangruber: not sure what https://github.com/substack/module-deps/pull/6 is for
18:40:40  <mikolalysenko>chrisdickinson: I know, for things like character data and working with the default streams, etc.
18:40:52  <chrisdickinson>yeah, mostly the default streams bit ):
18:40:54  <juliangruber>substack: I want to find all files required by a file without having to do npm install
18:41:03  <mikolalysenko>but it seems to me that if you just have binary data, might as well stick it in a typed array and try to avoid buffers at all cost
18:41:13  <juliangruber>substack: so I want to skip those
18:41:19  <chrisdickinson>the other problem is that typed arrays are incredibly slow to instantiate
18:41:20  * timoxleyjoined
18:41:27  <chrisdickinson>also, being able to concatenate them
18:41:52  <chrisdickinson>and reading different sizes of numbers out of them
18:42:07  <mikolalysenko>instantiation is bad, but not insurmountable
18:42:11  <chrisdickinson>plus, if you create too many, or too big, browsers tend to handle it poorly
18:42:17  <mikolalysenko>and you can get around the size issue using views
18:42:21  <chrisdickinson>i.e. crash
18:42:42  <mikolalysenko>yeah... I've noticed that in chome sometimes, not sure exactly what is going on
18:42:47  <chrisdickinson>i'll probably be looking into it once i've got the other bits working
18:42:50  <mikolalysenko>though it has gotten better recently
18:43:01  <mikolalysenko>I haven't seen a typed array kill chrome in months
18:43:12  <mikolalysenko>but it used to be that all the damn time I was getting segfaults
18:43:30  <chrisdickinson>yeah, i've gotten sadtab'd a lot from trying typed arrays in this git stuff
18:43:51  <mikolalysenko>what I tend to do with typed arrays to avoid the instantiation thing is cache them in my modules...
18:44:08  <mikolalysenko>though this can obviously create problems with memory leaks, I think the performance benefits outweigh the risks
18:44:36  <mikolalysenko>as long as you never share references to the typed array, this behavior is acceptable
18:44:52  <chrisdickinson>i was using weakmap to cache 'em
18:44:56  <mikolalysenko>I've thought about building a generic typed array cache, but it would be so easy to abuse/misuse that I've not done it
18:45:02  <chrisdickinson>which is actually really fast / neat
18:45:10  <mikolalysenko>interesting
18:45:22  <chrisdickinson>but it still crashed, because of the number / size of typed array allocation
18:45:29  <mikolalysenko>that is weird
18:45:36  <chrisdickinson>of course, this is at least partially due to the incredibly stupid way i have to do zlib inflate stuff
18:45:58  <mikolalysenko>yeah
18:46:15  <chrisdickinson>hilariously, it's pretty zippy in chrome, but slow in firefox
18:46:33  <chrisdickinson>which is surprising since i've been getting consistently fast results for most things in FF lately
18:46:45  <mikolalysenko>I wonder why...
18:47:01  <mikolalysenko>it feels a bit like the v8 team has been slacking off, or wasting too much time on dart
18:47:26  <chrisdickinson>yeah
18:47:33  <mikolalysenko>performance has basically flatlined over the last year
18:47:57  <mikolalysenko>and anyone with half a brain knows that dart is completely doomed
18:48:58  <mikolalysenko>one thing I am bit hopeful about is asm.js, even if the current incarnation is a bit flawed
18:50:25  <mikolalysenko>anyway, going back to typed arrays: one way to mitigate some of the costs is to just allocate a single big typed array and do calculations by indexing into it
18:50:53  <mikolalysenko>so you have to wrap up pointers into the array yourself, but the advantage is you don't have to construct so many arrays
18:51:14  <mikolalysenko>this is basically how ndarray works, and it also supports some other features like striding and higher dimensional slicing
18:51:28  <mikolalysenko>https://github.com/mikolalysenko/ndarray
18:58:40  * jxson_joined
19:02:26  * jxsonquit (Ping timeout: 255 seconds)
19:06:30  <defunctzombie>man. I am loving this procfile based launcher
19:06:35  <defunctzombie>I can start al my processes at once
19:06:40  <defunctzombie>and restart any of them
19:06:42  <defunctzombie>this is great
19:06:52  <defunctzombie>so much better than what I had before
19:18:58  * pikpikquit (Ping timeout: 246 seconds)
19:22:49  * tilgovijoined
19:27:53  <niftylettuce>last call before i list it on eBay, anyone want Macbook Air 13"?
19:29:47  <marcello3d>what do people use for long/async stack traces?
19:30:25  * ryanseddonjoined
19:32:14  <jesusabdullah>isaacs: is there a way to get node-tap to show useful information on errors when I want to do something like, t.ok(!err, 'no error'); ? Cause right now the stack trace is for the assert error but I want the stack trace for my 'err'
19:32:22  <jesusabdullah>isaacs: advice appreciated
19:34:21  * pikpikjoined
19:34:36  * ITproquit (Ping timeout: 245 seconds)
19:34:44  <marcello3d>longjohn, trycatch, long-stack-traces ?
19:34:54  * tilgoviquit (Ping timeout: 264 seconds)
19:36:45  <jesusabdullah>marcello3d: isaacs: specifically, I'm using https://github.com/visionmedia/supertest to do some testing, if the .end has an error, *that's* the assertion
19:37:34  <marcello3d>I think there's a t.ifError(err) thing
19:37:40  <marcello3d>or similar
19:39:40  <jesusabdullah>oh word, t.error does what I want
19:40:24  <jesusabdullah>bangin'
19:42:30  <isaacs>jesusabdullah: i usually just do `if (err) throw err`
19:42:39  <jesusabdullah>hmmm
19:42:44  <jesusabdullah>I GUESS THAT WOULD WORK
19:42:44  <LOUDBOT>LETS HAVE SOME FUN THIS BEAT IS SICK, I WANNA CHECK THE LOGS ON YOUR CISCO PIX
19:42:48  <isaacs>jesusabdullah: because thta'll just abort the test and print the error.
19:43:09  <jesusabdullah>WELL TOO LATE FOR YOU ISAACS IM USING t.error !!
19:44:12  * thl0_joined
19:44:57  * thl0quit (Read error: Connection reset by peer)
19:48:00  * ITprojoined
19:58:56  <rowbit>SubStack, pkrumins: At least 5 people waiting in the queue for free servers! (Waiting: 25)
20:03:26  * jxson_quit (Remote host closed the connection)
20:04:00  * jxsonjoined
20:04:53  * ITproquit (Ping timeout: 240 seconds)
20:16:15  * shuaibjoined
20:20:33  * shuaibquit (Ping timeout: 245 seconds)
20:22:50  * shuaibjoined
20:27:17  * st_lukejoined
20:27:17  * shuaibquit (Ping timeout: 248 seconds)
20:28:48  * shuaibjoined
20:29:54  * ins0mniaquit (Ping timeout: 240 seconds)
20:35:41  * shuaibquit (Ping timeout: 252 seconds)
20:36:49  * shuaibjoined
20:37:24  * jcrugzzquit (Ping timeout: 240 seconds)
20:43:54  * shuaibquit (Ping timeout: 264 seconds)
20:45:45  * shuaibjoined
20:49:33  <juliangruber>new module: https://github.com/juliangruber/code-to-test-ratio
20:57:45  * wolfeidauquit (Remote host closed the connection)
20:58:15  * wolfeidaujoined
20:58:47  <jesusabdullah>I should rewrite node-pedant
21:00:34  <jesusabdullah>ahaha, this s/the cloud/my butt/ chrome plugin is awesome
21:00:37  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
21:03:11  * wolfeidauquit (Ping timeout: 252 seconds)
21:14:11  * timoxleyquit (Ping timeout: 252 seconds)
21:36:49  * cianomaidinjoined
21:39:22  * jxson_joined
21:41:52  * nicholas_quit (Remote host closed the connection)
21:42:11  * jxsonquit (Ping timeout: 255 seconds)
21:42:26  * nicholas_joined
21:46:48  * nicholas_quit (Ping timeout: 245 seconds)
21:49:28  * timoxleyjoined
21:50:18  * thl0_quit (Remote host closed the connection)
21:50:53  * thl0joined
21:52:06  * thl0quit (Remote host closed the connection)
21:52:44  * ins0mniajoined
22:02:15  * dominictarrjoined
22:04:24  * wolfeidaujoined
22:13:19  * defunctzombiechanged nick to defunctzombie_zz
22:18:39  <Raynos>dominictarr: idea! ( https://gist.github.com/Raynos/5279565 0
22:19:04  <Raynos>the interesting parts are https://gist.github.com/Raynos/5279565#file-callbacks-js-L189 and https://gist.github.com/Raynos/5279565#comment-810477
22:19:18  <Raynos>i would like if we could make stream interop with pull streams equally trivial by design
22:21:13  <dominictarr>what is future?
22:26:13  <jlord>what IS future?
22:45:51  * jxson_quit (Remote host closed the connection)
22:46:26  * jxsonjoined
22:46:52  <dominictarr>Raynos: +1
22:47:19  <Raynos>oh future is like a callback. Except its a function that takes zero arguments and a callback
22:47:30  <dominictarr>I figured it out eventually
22:47:44  <Raynos>yeah that gist is a really bad explanation of the idea
22:47:53  * stlsaintjoined
22:47:56  <dominictarr>no, it's pretty good
22:47:56  <Raynos>the only thing worth pointing out that it happens to be trivial to have backcompat with node callbacks
22:48:07  <Raynos>thats the most important thing!
22:48:07  <dominictarr>yes, absolutely
22:48:18  <dominictarr>I posted a comment
22:48:38  <dominictarr>the point I got confused at was duplex callback
22:49:05  <dominictarr>also… pipe(map(…)).pipe(map(…)) could be dried up
22:49:26  <dominictarr>maybe step away from stream syntax
22:51:43  <dominictarr>this is what people should be directed to when they want to learn about control flow
22:51:55  <dominictarr>… trick them into learning higher order functions …
22:55:31  <Raynos>;D
22:55:38  <Raynos>well pipe allows for chaining
22:55:44  <Raynos>I guess we can just use compose for that
22:56:53  <Raynos>dominictarr: I may take the name paaf on github for this :P
22:58:14  * cianomaidinquit (Quit: cianomaidin)
22:58:45  * crankquit (Ping timeout: 248 seconds)
22:59:36  * dominictarrquit (Ping timeout: 245 seconds)
23:00:33  * marcello3dquit (Remote host closed the connection)
23:01:11  * marcello3djoined
23:04:00  * tilgovijoined
23:05:24  * ins0mniaquit (Ping timeout: 240 seconds)
23:05:33  * marcello3dquit (Ping timeout: 245 seconds)
23:06:57  * dominictarrjoined
23:08:50  * ins0mniajoined
23:09:26  <Raynos>dominictarr: If we were to implement some kind of similar duplex style function for (req, res) would we reinvent middleware?
23:09:42  <Raynos>I want a good name for these "duplex style" functions
23:10:01  <substack>Raynos: https://github.com/substack/http-duplex
23:10:05  <substack>also: https://github.com/substack/response-stream
23:10:53  <Raynos>I'm thinking of https://gist.github.com/Raynos/5279565#file-callbacks-js-L44
23:10:57  <substack>it's not the same as middleware in an important way since the user is plumbing up how to pipe everything together on each request
23:11:10  <substack>it's not static like the connect middleware stack
23:11:27  <dominictarr>do you mean a partially applied middleware style?
23:11:37  * jcrugzzjoined
23:17:46  <wolfeidau>dominictarr: I had a simple question, had you guys tried adding any telemetry to your "streamy" modules?
23:18:24  <dominictarr>telemetry?
23:19:13  <wolfeidau>dominictarr: Counters, Guages that sort of thing
23:20:18  <wolfeidau>dominictarr: I spent a lot of time adding console.log while pulling apart your stuff when mainly because i was unsure of what was getting invoked and when
23:21:02  <wolfeidau>dominictarr: How can you have pipes and stuff without gauges :)
23:21:05  <dominictarr>I wrote this once https://github.com/dominictarr/probe-stream
23:21:52  <wolfeidau>dominictarr: It was only an observation btw, just thinking out loud, how can you have a system of pipes and connectors without a view of what is going in and out of them
23:22:33  <wolfeidau>dominictarr: Just something you may want to consider :)
23:23:04  <chrisdickinson>wolfeidau: every stream is also an event emitter -- it's easy to tap into the data
23:23:23  <chrisdickinson>x.pipe(y).on('data', console.log).pipe(z).on('data', console.log)
23:23:27  <dominictarr>hmm, so you are thinking of a well defined api for grabbing stats, or debugging?
23:29:52  <dominictarr>wolfeidau: I've mostly just used console.log, etc too, but I take that out before I publish :) (usually)
23:31:43  * dominictarrchanged nick to dominictarr_zzz
23:31:48  * dominictarr_zzzquit (Quit: dominictarr_zzz)
23:48:38  * crankjoined
23:52:50  * defunctzombie_zzchanged nick to defunctzombie
23:56:24  * fallsemoquit (Quit: Leaving.)
23:57:59  * dguttman_joined