00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:16:59  * mikealquit (Quit: Leaving.)
00:23:18  * thlorenzjoined
00:28:16  * jergasonquit (Remote host closed the connection)
00:30:13  * thlorenzquit (Read error: Connection reset by peer)
00:30:17  * thlorenz_joined
00:32:00  * stagasquit (Ping timeout: 256 seconds)
00:33:37  * thlorenzjoined
00:33:58  * thlorenz_quit (Read error: Connection reset by peer)
00:34:47  * thlorenz_joined
00:34:48  * thlorenzquit (Read error: Connection reset by peer)
00:38:17  * fotoveritequit (Quit: fotoverite)
00:39:39  * tmcwjoined
00:44:10  * tmcwquit (Ping timeout: 245 seconds)
00:47:03  * thlorenzjoined
00:47:31  * mikealjoined
00:57:09  * mikealquit (Ping timeout: 264 seconds)
01:02:09  <thlorenz>chrisdickinson: got this to work now: https://github.com/thlorenz/valuepack-mine/blob/master/lib/get-github-logins.js
01:02:26  <thlorenz>looks like a bunch of spaghetti to me though - time to refactor this
01:03:30  <thlorenz>not sure if possible, but ideally I'd extract a generic reusable pattern from this and publish as a module ;)
01:03:36  <kanzure>mikolalysenko: so it turns out that jsdom is really really slow, and cheerio is faster, but it doesn't work in browserify because its maintainer is a dork. any hints?
01:04:15  <thlorenz>kanzure: why are you trying to use cheerio in the browser?
01:04:31  <kanzure>mikolalysenko: also, i have another problem with the request module. when browserified, it only works for local XHR to the same server. but why not (1) open up an iframe to the remote server, then perform an xhr inside of there, or (2) send requests through a local proxy? is there a browserify-compatible module that does this?
01:04:42  <kanzure>thlorenz: sorta. i am not married to cheerio..
01:05:17  <thlorenz>I'd use jquery/zepto in the browser and use cheerio only as a replacement for it serverside (i.e. code I run with node)
01:05:27  <kanzure>i'm trying to decouple some code from caring about whether it's running in the browser or in node
01:06:03  <thlorenz>yeah we were working on something similar - you can use the browser field to swap out dependencies
01:06:06  <kanzure>oh also, there's another situation where the page in the browser i currently have loaded is the correct page (if document.location === request.get's url, then just return document.body).
01:06:33  * tilgoviquit (Remote host closed the connection)
01:06:40  <thlorenz>unfortunately cheerio is not 100% API compatible with jquery
01:06:53  <thlorenz>even for just getting elements
01:06:57  <kanzure>i would rather use sizzle instead of jquery unless absolutely necessary
01:07:02  <kanzure>i'm not sure if sizzle works server-side
01:07:08  <thlorenz>probably not
01:07:47  <jcrugzz>the dom apis arent too bad
01:07:59  <kanzure>jsdom is fine it's just really slow
01:07:59  <jcrugzz>depending on what browsers you have to support
01:08:02  <thlorenz>kanzure: https://gist.github.com/shtylman/4339901 describes how to swap out dependencies server vs. browser
01:08:35  <thlorenz>so you could use sizzle in browser, cheerio in server - (require cheerio everywhere, but get sizzle swapped in magically)
01:08:36  <kanzure>thlorenz: that's kinda nice, but doesn't solve any problem i'm having right now (?) unless i'm being dense
01:08:40  <kanzure>oh, i see what you mean
01:08:45  <kanzure>no, that's too much magic for my taste.
01:08:53  <thlorenz>:)
01:09:05  <kanzure>i would rather have a single third-party module that can exist in both
01:09:13  <kanzure>if *that* module wants to do browserify dependency swapping, i wouldn't care
01:09:28  <kanzure>better than me sprinkling "if window != undefined" everywhere..
01:09:47  <thlorenz>you don't have to if you use browser field
01:10:32  <kanzure>well, at any rate, there's no api-compatible thing other than jsdom at the moment iirc
01:10:40  <kanzure>so i would still have to write something
01:10:45  * mk30_quit (Ping timeout: 250 seconds)
01:11:21  <thlorenz>and even jsdom is not 100% compatible, but will probably be fine, but as you mentioned its much slower than other options
01:11:50  <kanzure>oh, it's not 100%? wtf guys.
01:11:59  <kanzure>100% compatible with what?
01:12:06  <kanzure>webkit?
01:12:06  <thlorenz>with most browsers
01:12:37  <thlorenz>but its very, very close, don't worry and great people are working on closing even that gap ^^ Domenic_
01:13:21  <kanzure>oh, my iframe + xhr idea is bad because of X-Frame-Options: SAMEORIGIN
01:13:22  <kanzure>damn
01:14:38  <mbalho>use CORS
01:14:49  <kanzure>i'm not in control of the servers
01:15:15  <mbalho>well i cant help you there
01:16:07  * Kesslerquit (Ping timeout: 246 seconds)
01:16:31  <kanzure>so my fallback idea is (1) check if the domain is the same as the currently loaded page, and if so use http-browserify's local xhr stuff, and (2) xhr cors to something that is running a proxy on an endpoint that will do the request for you.
01:18:07  <kanzure>is there anything like #2 that does server-side outbound http requests if you're in node, and otherwise routes to a local proxy server if you're client-side?
01:19:08  <kanzure>and does http-browserify work with xhr+cors?
01:20:17  <kanzure>according to http://logs.nodejs.org/stackvm/2012-11-13 .. 00:02:53 <Raynos> dominictarr: http-browserify doesn't support cors
01:23:43  <substack>I thought the server is the part that does CORS, not the client?
01:24:52  <mbalho>by default xmlhttprequest2 handles cors
01:25:29  <thlorenz>substack: that is correct, the other part is handled by the browser itself
01:26:05  * timoxleyjoined
01:26:31  <thlorenz>although according to this http://www.html5rocks.com/en/tutorials/cors/ you can do something browser side as well
01:26:58  <thlorenz>I have some notes/resources about CORS here: https://github.com/thlorenz/dox/blob/master/web/cross-site-scripting.md#cross-origin-resource-sharing-cors
01:27:36  <mbalho>if you are in IE you have to use XDomainRequest
01:28:08  <thlorenz>kanzure: you could make the request from the main page and communicate with your iframe to get the data across: http://viget.com/extend/using-javascript-postmessage-to-talk-to-iframes
01:28:34  <thlorenz>mbalho: yeah, CORS with IE is borked in general
01:28:46  <thlorenz>especially up to IE8
01:29:00  <mbalho>i would use http-browserify more if it didnt depend on Buffer (which causes bundle bloat)
01:29:18  <mbalho>i think its just for this line https://github.com/substack/http-browserify/blob/master/lib/request.js#L40
01:29:44  * calvinfoquit (Quit: Leaving.)
01:29:45  * timoxleyquit (Remote host closed the connection)
01:29:45  <substack>do you have a base64 function handy?
01:30:20  * timoxleyjoined
01:31:08  <mbalho>https://npmjs.org/package/js-base64 looks good
01:31:44  <mbalho>oh that does a conditional buffer require
01:33:31  <mbalho>ahh this polyfills window.btoa https://github.com/davidchambers/Base64.js/blob/master/base64.js
01:34:35  * timoxleyquit (Ping timeout: 245 seconds)
01:34:55  <mbalho>substack: yea require('Base64').btoa looks good
01:36:52  * defunctzombiechanged nick to defunctzombie_zz
01:47:36  <kanzure>browserify entry.js > bundle.js doesn't work anymore here https://github.com/substack/request-browserify-example
01:47:56  <kanzure>Error: ENOENT, open 'dns' while resolving "dns" from file node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js
01:48:40  <kanzure>oh i guess i should substitute this one? https://github.com/iriscouch/browser-request
01:51:01  * jergasonjoined
01:51:28  <substack>kanzure: or there's http://npmjs.org/package/hyperquest
01:52:22  <kanzure>substack: does this work outside of browserify?
01:52:32  <substack>yes
01:54:38  * mikolalysenkoquit (Ping timeout: 240 seconds)
02:11:21  * mikolalysenkojoined
02:20:19  * jergasonquit (Remote host closed the connection)
02:20:40  * thlorenz_quit (Remote host closed the connection)
02:22:28  * jxsonjoined
02:24:46  * ins0mniaquit (Ping timeout: 256 seconds)
02:28:47  * thlorenz_joined
02:30:42  * Kesslerjoined
02:30:42  * thlorenz_quit (Read error: Connection reset by peer)
02:30:57  * thlorenz_joined
02:31:57  <isaacs>substack: perf increase with a big red diff! ftw!
02:32:04  <isaacs>substack: that's like a double-win
02:32:54  * thlorenz_quit (Read error: Connection reset by peer)
02:33:10  * thlorenz_joined
02:34:11  <substack>isaacs: pretty much
02:34:38  <substack>it's still clunky to use streams2 for some userlandy things but they're pretty good for low level stuff
02:35:44  * thloren__joined
02:35:49  <jesusabdullah>substack: I'm telling you, every time I see Ashton Kutcher staring angrily in that mirror, I see you raging about, like, rails or something idk
02:36:02  * thlorenz_quit (Read error: Connection reset by peer)
02:36:08  <jesusabdullah>s/rails/jasmine/
02:38:38  * thloren__quit (Read error: Connection reset by peer)
02:38:40  * thlorenz_joined
02:40:16  * thloren__joined
02:40:17  * thlorenz_quit (Read error: Connection reset by peer)
02:42:50  * thloren__quit (Read error: Connection reset by peer)
02:43:16  * thlorenz_joined
02:44:03  <thlorenz>chrisdickinson: created a very condensed example of inner/outer streams: https://gist.github.com/thlorenz/6254995
02:44:19  <thlorenz>this one doesn't require oneToOne relationship
02:44:30  * thlorenz_quit (Read error: Connection reset by peer)
02:44:34  <kanzure>so at the moment i am using concat-stream to wait for html to be fully buffered before i parse the html. but theoretically i might use a streaming html parser. and the output of my html parser is some metadata in json. so should i be emitting bits of json somehow from my parser, instead of a dictionary i pass into a callback?
02:44:43  <kanzure>and if so, how do i do streaming json like that
02:44:59  * thlorenz_joined
02:45:04  <jesusabdullah>I wouldn't worry too much about it :)
02:45:24  <kanzure>substack: thanks, hyperquest is working well
02:48:30  <thlorenz>please add your thoughts ideas here: https://gist.github.com/thlorenz/6254995, so that I have a head start tomorrow - chrisdickinson substack jcrugzz Raynos
02:49:31  <substack>kanzure: http://github.com/substack/node-trumpet
02:49:45  * thlorenz_quit (Ping timeout: 276 seconds)
02:50:15  <kanzure>oh yeah
02:50:19  <substack>thlorenz: do you duplexer(inner, outer) with that?
02:51:34  <thlorenz>substack: both outer and inner would be read streams as far as I had imagined
02:52:21  <thlorenz>substack: this is the problem I was trying to solve originally: https://github.com/thlorenz/valuepack-mine/blob/master/lib/get-github-logins.js
02:52:46  <thlorenz>works with leveldb readStreams -- which will be about 17% faster I heard ;)
02:53:34  <thlorenz>substack: in this case the npmusers is outer and their packages the inner
02:54:44  <kanzure>substack: so i want tr.selectAll("title", function (title) { title.createReadStream().pipe(metadatastream.emit("data", {title: title... erm, no.
02:54:50  <kanzure>hmm
02:55:50  <kanzure>maybe i want through()?
02:59:52  <kanzure>i just want to emit something like {"title": "title"} i think.
03:02:30  <substack>var output = through(); tr.selectAll('title', function (title) { output.queue({ title: title }) })
03:02:48  <kanzure>where do i send output?
03:03:07  <kanzure>i return it to my user?
03:04:07  <jesusabdullah>Domenic_: is there a good way to "de-promise" promises? Like, does Q have some sugars for that?
03:04:55  <jesusabdullah>Domenic_: that is: I'd like to try using promises in some project or other but want to expose a "node-style callbacks" api, at least optionally
03:06:16  <mbalho>substack: did you want me to make a pull req to http-browserify for base64?
03:07:01  <substack>mbalho: sounds good!
03:07:30  <substack>but for me, it's burrito time!
03:07:41  <jesusabdullah>STOP
03:07:55  <jesusabdullah>burrito time
03:07:59  <kanzure>you can't stop burritos..
03:09:02  <jesusabdullah>that's right!
03:09:20  * Kesslerquit (Remote host closed the connection)
03:09:47  * AvianFlujoined
03:11:06  <isaacs>substack: streams3 are way better.
03:11:13  <isaacs>substack: 3 = 2 | 1
03:13:14  <ik>burriot
03:17:07  <jesusabdullah>skeptical
03:18:57  <mbalho>substack: what are the rules for buffer-browserify getting included? require('buffer') or just the existence of Buffer
03:20:44  <jesusabdullah>Domenic_: I want to talk a bit about promises if I get to speak at cascadiajs :)
03:21:35  <mbalho>substack: i think browserify is including buffer-browserify because I am doing if (typeof(Buffer) !== "undefined") in concat-stream
03:28:19  <kanzure>so, i have a hyperquest request and a trumpet() stream. and then i also have a through() stream. which one should i return? if there's an error on the hyperquest request, how do i propagate that, versus an error when something unexpected happens in my trumpet() stream?
03:30:57  * jergasonjoined
03:31:37  <substack>mbalho: that will trigger it, yes
03:32:14  <mbalho>substack: any way to not trigger it?
03:32:32  <substack>don't use `Buffer` anyplace
03:33:07  <mbalho>thats too bad
03:35:25  * jergasonquit (Ping timeout: 246 seconds)
03:38:18  * thlorenzquit (Remote host closed the connection)
03:42:23  <kanzure>mbalho: what's wrong with buffer-browserify? because i see that trumpet uses Buffer a few places.
03:43:02  <mbalho>kanzure: its just 100kb of code that is usually overkill
03:45:33  * thlorenzjoined
03:48:13  * thlorenzquit (Read error: Connection reset by peer)
03:48:42  * thlorenzjoined
03:52:43  * thlorenz_joined
03:52:48  * thlorenzquit (Read error: Connection reset by peer)
03:53:55  * thlorenzjoined
03:53:56  * thlorenz_quit (Read error: Connection reset by peer)
03:58:35  * thlorenz_joined
03:58:39  * thlorenzquit (Ping timeout: 276 seconds)
04:00:49  * timoxleyjoined
04:00:49  * thlorenzjoined
04:00:49  * thlorenz_quit (Read error: Connection reset by peer)
04:02:17  * jxsonquit (Remote host closed the connection)
04:03:13  * thlorenzquit (Read error: Connection reset by peer)
04:03:34  * thlorenzjoined
04:03:43  <mbalho>substack: ahh it looks like browserify -r bops doesnt trigger the buffer-browserify inclusion
04:04:22  * mcollinajoined
04:05:00  * thlorenz_joined
04:05:07  * thlorenz_quit (Remote host closed the connection)
04:06:41  * timoxleyquit (Remote host closed the connection)
04:07:27  <kanzure>maybe i can just do hyperquest.get().pipe(trumpeter).pipe(output) ?
04:08:05  * thlorenzquit (Ping timeout: 248 seconds)
04:08:20  * timoxleyjoined
04:08:55  * thlorenzjoined
04:13:26  * thlorenzquit (Read error: Connection reset by peer)
04:13:50  * thlorenzjoined
04:18:13  * thlorenzquit (Ping timeout: 248 seconds)
04:19:16  <kanzure>this is what i'm attempting to figure out https://gist.github.com/kanzure/6255244
04:19:20  * thlorenzjoined
04:20:40  * AvianFluquit (Remote host closed the connection)
04:20:48  * timoxleyquit (Remote host closed the connection)
04:24:00  * thlorenzquit (Ping timeout: 276 seconds)
04:24:41  * thlorenzjoined
04:27:28  * timoxleyjoined
04:27:39  <jcrugzz>kanzure: what are you trying to do exactly?
04:29:44  * thlorenz_joined
04:29:51  * thlorenzquit (Ping timeout: 276 seconds)
04:32:04  * tmcwjoined
04:34:21  * thlorenz_quit (Ping timeout: 264 seconds)
04:34:41  <kanzure>jcrugzz: i am parsing metadata from an html document and i want to stream the parsed info
04:34:52  <kanzure>jcrugzz: i'm just not sure how to get from where i am to where i want to be :)
04:34:54  * thlorenzjoined
04:37:24  <jcrugzz>kanzure: you might want something like https://github.com/fb55/htmlparser2 for html parsing
04:37:55  <jcrugzz>but i guess it depends if your meta data is all css slectorable
04:38:05  <kanzure>it's mostly css selectorable :)
04:38:16  <jcrugzz>i just see trumpet as more of a templater
04:38:23  <kanzure>i worry about how to propagate errors
04:38:24  <jcrugzz>api wise
04:38:33  <kanzure>or which streams to return.. or erm.. pipes?
04:38:45  <kanzure>because a user probably wants the metadata i parse out, but also would like to know if there was an error somewhere in the process
04:39:07  <jcrugzz>kanzure: you need to make what you are building more concrete
04:39:17  <jcrugzz>design the api of how the user is interacting with it first
04:39:23  <kanzure>i did that already, my api was wrong
04:39:33  * thlorenzquit (Ping timeout: 248 seconds)
04:39:42  <kanzure>https://github.com/kanzure/papermonk-downloader-plosone/blob/master/index.js#L24
04:39:42  * thlorenzjoined
04:39:53  <kanzure>i don't want to use concat-stream there
04:41:46  <jcrugzz>well read through those trumpet and just start trying it and see what breaks :). just add the error listener before you pipe the stream
04:42:00  <kanzure>but i don't want to listen, i want the user to be able to listen
04:42:02  * dominictarr_joined
04:42:09  <kanzure>(for an error)
04:42:24  <jcrugzz>kanzure: ok hold on a second then
04:42:28  <kanzure>and how do i get that hyperquest-related error to appear in my "output" through() ?
04:42:30  <jcrugzz>you can make the overall objec an event emitter
04:42:40  <kanzure>i see
04:43:50  * thlorenzquit (Ping timeout: 240 seconds)
04:44:48  * thlorenzjoined
04:44:49  * dominictarrquit (Ping timeout: 240 seconds)
04:44:50  * dominictarr_changed nick to dominictarr
04:46:48  <jcrugzz>kanzure: so youd do something like https://github.com/jcrugzz/hades/blob/master/lib/hades.js#L13 and have the object you are exporting inherit from an event emitter
04:47:09  <jcrugzz>and then you can add error listeners to it https://github.com/jcrugzz/hades/blob/master/lib/hades.js#L13
04:47:34  <kanzure>is there a way to do it with just streams?
04:48:22  <jcrugzz>kanzure: if you are creating a thing that you are exporting functions on
04:48:27  <jcrugzz>and you want a user to be using it
04:48:36  <jcrugzz>this is a way to propagate those errors
04:49:01  <jcrugzz>kanzure: it sounds like you are trying to make a module of sorts but need to refine its purpose :)
04:49:29  <kanzure>does it sound ambiguous? it seems to test well at the moment.
04:49:47  <kanzure>maybe i'm just bad at streams and event emitters
04:49:54  * thlorenz_joined
04:50:00  * thlorenzquit (Ping timeout: 276 seconds)
04:50:24  <jcrugzz>kanzure: they take some practice, took me a while before i was comfortable using them :). i just read through people's code, try using it and see if it breaks
04:50:31  <kanzure>oh i see, node-trumpet's Result inherits from EventEmitter too.
04:50:56  <kanzure>but there's no default error handler defined on that one
04:51:04  <kanzure>https://github.com/substack/node-trumpet/blob/master/index.js
04:51:35  <kanzure>calling your event emitter Result seems like a cop-out :p
04:53:44  * mk30_joined
04:54:33  * thlorenz_quit (Ping timeout: 276 seconds)
04:55:12  * thlorenzjoined
04:56:53  * jergasonjoined
04:59:26  * thlorenzquit (Ping timeout: 240 seconds)
05:00:30  * thlorenzjoined
05:02:39  * tmcwquit (Remote host closed the connection)
05:03:09  * tmcwjoined
05:04:25  * mcollinaquit (Remote host closed the connection)
05:05:19  * thlorenzquit (Ping timeout: 268 seconds)
05:05:37  * thlorenzjoined
05:07:51  * tmcwquit (Ping timeout: 260 seconds)
05:09:26  * jergasonquit (Remote host closed the connection)
05:10:12  * thlorenzquit (Ping timeout: 260 seconds)
05:10:42  * thlorenzjoined
05:13:06  * mikealjoined
05:13:25  * mikealquit (Client Quit)
05:15:19  * thlorenzquit (Ping timeout: 260 seconds)
05:16:20  * thlorenzjoined
05:19:21  * mikealjoined
05:19:40  * mikealquit (Client Quit)
05:20:38  * thlorenzquit (Ping timeout: 240 seconds)
05:21:32  * thlorenzjoined
05:22:04  * mikealjoined
05:26:24  * thlorenzquit (Ping timeout: 276 seconds)
05:26:43  * thlorenzjoined
05:30:09  * mikolalysenkoquit (Ping timeout: 264 seconds)
05:31:12  * thlorenzquit (Ping timeout: 256 seconds)
05:32:09  * thlorenzjoined
05:33:33  * tmcwjoined
05:36:48  * thlorenzquit (Ping timeout: 260 seconds)
05:37:30  * thlorenzjoined
05:42:39  * thlorenzquit (Ping timeout: 276 seconds)
05:42:43  * thlorenz_joined
05:44:19  * tmcwquit (Ping timeout: 264 seconds)
05:47:04  * thlorenz_quit (Ping timeout: 256 seconds)
05:47:33  * mcollinajoined
05:47:42  * thlorenzjoined
05:52:10  * thlorenzquit (Ping timeout: 256 seconds)
05:53:14  * thlorenzjoined
05:57:44  * thlorenzquit (Ping timeout: 268 seconds)
05:58:55  * thlorenzjoined
06:03:02  * thlorenzquit (Ping timeout: 240 seconds)
06:04:03  * thlorenzjoined
06:09:18  * thlorenzquit (Ping timeout: 276 seconds)
06:09:53  * tmcwjoined
06:10:37  * thlorenzjoined
06:12:34  * mikealquit (Quit: Leaving.)
06:13:15  * defunctzombie_zzchanged nick to defunctzombie
06:14:20  * tmcwquit (Ping timeout: 256 seconds)
06:15:01  * thlorenzquit (Ping timeout: 248 seconds)
06:16:28  * thlorenzjoined
06:20:19  * jergasonjoined
06:21:39  * thlorenzquit (Ping timeout: 276 seconds)
06:22:18  * thlorenzjoined
06:24:54  * coderzachquit (Quit: coderzach)
06:25:02  * jergasonquit (Ping timeout: 240 seconds)
06:26:11  * mikolalysenkojoined
06:27:09  * thlorenzquit (Ping timeout: 264 seconds)
06:28:11  * thlorenzjoined
06:30:38  * mikolalysenkoquit (Ping timeout: 240 seconds)
06:32:30  * thlorenzquit (Ping timeout: 245 seconds)
06:33:34  * thlorenzjoined
06:38:04  * thlorenzquit (Ping timeout: 256 seconds)
06:38:50  * thlorenzjoined
06:40:38  * tmcwjoined
06:40:41  * mcollinaquit (Remote host closed the connection)
06:42:52  * mikealjoined
06:43:22  * thlorenzquit (Ping timeout: 268 seconds)
06:43:55  * thlorenzjoined
06:45:08  * dominictarrquit (Quit: dominictarr)
06:45:42  * tmcwquit (Ping timeout: 276 seconds)
06:45:43  * mk30_quit (Ping timeout: 250 seconds)
06:48:05  * thlorenzquit (Ping timeout: 248 seconds)
06:49:27  * thlorenzjoined
06:54:15  * thlorenzquit (Ping timeout: 260 seconds)
06:54:53  * thlorenzjoined
06:55:46  * shamaquit (Remote host closed the connection)
07:00:00  * thlorenzquit (Ping timeout: 276 seconds)
07:00:09  * thlorenzjoined
07:01:11  * jcrugzzquit (Quit: leaving)
07:04:14  * thlorenzquit (Ping timeout: 240 seconds)
07:05:30  * thlorenzjoined
07:09:26  <mbalho>found the best identicon https://github.com/lol
07:10:00  * thlorenzquit (Ping timeout: 245 seconds)
07:10:40  * thlorenzjoined
07:10:59  * tmcwjoined
07:11:20  * mcollinajoined
07:15:13  * tmcwquit (Ping timeout: 246 seconds)
07:15:17  * thlorenzquit (Ping timeout: 248 seconds)
07:16:20  * thlorenzjoined
07:20:34  * mcollinaquit (Ping timeout: 256 seconds)
07:21:09  * thlorenzquit (Ping timeout: 264 seconds)
07:21:30  * thlorenzjoined
07:26:32  * mikolalysenkojoined
07:26:39  * thlorenzquit (Ping timeout: 276 seconds)
07:27:03  * thlorenzjoined
07:31:07  * mikolalysenkoquit (Ping timeout: 260 seconds)
07:31:35  * thlorenzquit (Ping timeout: 260 seconds)
07:32:16  * thlorenzjoined
07:35:08  * thlorenzquit (Read error: Connection reset by peer)
07:35:35  * thlorenzjoined
07:37:41  * thlorenzquit (Read error: Connection reset by peer)
07:37:42  * thlorenz_joined
07:37:47  * timoxleyquit (Remote host closed the connection)
07:38:16  * timoxleyjoined
07:38:30  * thlorenz_quit (Read error: Connection reset by peer)
07:38:54  * thlorenzjoined
07:39:22  * timoxleyquit (Remote host closed the connection)
07:43:14  * thlorenz_joined
07:43:20  * thlorenzquit (Ping timeout: 245 seconds)
07:47:46  * thlorenz_quit (Ping timeout: 256 seconds)
07:48:27  * thlorenzjoined
07:52:57  * thlorenzquit (Ping timeout: 264 seconds)
07:53:54  * thlorenzjoined
07:56:57  * thlorenzquit (Read error: Connection reset by peer)
07:57:12  * thlorenzjoined
07:59:17  * thlorenz_joined
07:59:18  * thlorenzquit (Read error: Connection reset by peer)
08:00:22  * coderzachjoined
08:00:33  * coderzachquit (Client Quit)
08:01:31  * nicholas_joined
08:03:10  * thlorenzjoined
08:03:26  * nicholasfquit (Ping timeout: 240 seconds)
08:04:21  * thlorenz_quit (Ping timeout: 276 seconds)
08:04:22  * thlorenzquit (Read error: Connection reset by peer)
08:04:46  * thlorenzjoined
08:06:34  * thlorenz_joined
08:06:34  * thlorenzquit (Read error: Connection reset by peer)
08:07:23  * timoxleyjoined
08:08:51  * defunctzombiechanged nick to defunctzombie_zz
08:11:05  * thlorenzjoined
08:11:33  * thlorenz_quit (Ping timeout: 268 seconds)
08:11:50  * mcollinajoined
08:12:28  * tmcwjoined
08:13:38  * timoxleyquit (Remote host closed the connection)
08:15:52  * thlorenzquit (Ping timeout: 268 seconds)
08:16:14  * mcollinaquit (Ping timeout: 240 seconds)
08:16:57  * tmcwquit (Ping timeout: 264 seconds)
08:17:06  * thlorenzjoined
08:21:31  * thlorenzquit (Ping timeout: 260 seconds)
08:22:57  * thlorenzjoined
08:26:54  * thlorenzquit (Read error: Connection reset by peer)
08:26:56  * mikolalysenkojoined
08:26:57  * thlorenz_joined
08:30:16  * thlorenz_quit (Read error: Connection reset by peer)
08:30:46  * thlorenzjoined
08:32:18  * mikolalysenkoquit (Ping timeout: 276 seconds)
08:34:13  * thlorenzquit (Read error: Connection reset by peer)
08:34:32  * thlorenzjoined
08:37:55  * thlorenz_joined
08:38:00  * thlorenzquit (Read error: Connection reset by peer)
08:40:50  * thlorenz_quit (Read error: Connection reset by peer)
08:41:24  * thlorenzjoined
08:43:12  * tmcwjoined
08:44:32  * thlorenzquit (Read error: Connection reset by peer)
08:44:52  * thlorenzjoined
08:47:30  * tmcwquit (Ping timeout: 245 seconds)
08:48:54  * thlorenzquit (Read error: Connection reset by peer)
08:49:14  * thlorenzjoined
08:50:23  * stagasjoined
08:53:25  * thlorenzquit (Ping timeout: 248 seconds)
08:55:37  * thlorenzjoined
09:00:18  * thlorenzquit (Ping timeout: 256 seconds)
09:00:46  * thlorenzjoined
09:05:24  * thlorenzquit (Ping timeout: 256 seconds)
09:05:59  * thlorenzjoined
09:10:29  * thlorenzquit (Ping timeout: 248 seconds)
09:10:39  * heathquit (Read error: Connection reset by peer)
09:11:36  * heathjoined
09:11:42  * thlorenzjoined
09:12:22  * mcollinajoined
09:14:08  * tmcwjoined
09:16:21  * thlorenzquit (Ping timeout: 248 seconds)
09:16:40  * mcollinaquit (Ping timeout: 245 seconds)
09:17:07  * thlorenzjoined
09:18:04  * tmcwquit (Ping timeout: 246 seconds)
09:21:26  * thlorenzquit (Ping timeout: 240 seconds)
09:22:11  * thlorenzjoined
09:26:51  * thlorenzquit (Ping timeout: 260 seconds)
09:27:17  * mikolalysenkojoined
09:27:31  * thlorenzjoined
09:31:26  * mikolalysenkoquit (Ping timeout: 240 seconds)
09:31:59  * thlorenzquit (Ping timeout: 260 seconds)
09:32:24  * thlorenzjoined
09:36:37  * thlorenzquit (Ping timeout: 248 seconds)
09:37:28  * thlorenzjoined
09:42:15  * thlorenzquit (Ping timeout: 260 seconds)
09:42:33  * thlorenzjoined
09:44:43  * tmcwjoined
09:47:20  * thlorenzquit (Ping timeout: 256 seconds)
09:47:46  * thlorenzjoined
09:48:53  * tmcwquit (Ping timeout: 248 seconds)
09:52:21  * thlorenzquit (Ping timeout: 264 seconds)
09:53:20  * thlorenzjoined
09:57:45  * thlorenzquit (Ping timeout: 264 seconds)
09:59:08  * thlorenzjoined
10:03:17  * thlorenzquit (Ping timeout: 248 seconds)
10:04:51  * thlorenzjoined
10:09:45  * thlorenzquit (Ping timeout: 264 seconds)
10:09:52  * thlorenzjoined
10:12:47  * yorickjoined
10:12:51  * mcollinajoined
10:14:53  * thlorenzquit (Ping timeout: 268 seconds)
10:17:33  * mcollinaquit (Ping timeout: 264 seconds)
10:19:40  * thlorenzjoined
10:23:50  * thlorenzquit (Ping timeout: 240 seconds)
10:25:32  * thlorenzjoined
10:27:38  * mikolalysenkojoined
10:30:18  * thlorenzquit (Ping timeout: 268 seconds)
10:31:11  * timoxleyjoined
10:32:06  * mikolalysenkoquit (Ping timeout: 256 seconds)
10:35:21  * dominictarrjoined
10:46:12  * tmcwjoined
10:50:00  * stagas_joined
10:50:28  * tmcwquit (Ping timeout: 246 seconds)
10:51:26  * stagasquit (Ping timeout: 256 seconds)
10:51:36  * stagas_changed nick to stagas
10:56:07  * thlorenzjoined
10:57:48  * mikolalysenkojoined
11:02:29  * mikolalysenkoquit (Ping timeout: 248 seconds)
11:04:14  * thlorenzquit (Ping timeout: 240 seconds)
11:09:20  * thlorenzjoined
11:13:21  * mcollinajoined
11:14:02  * thlorenzquit (Ping timeout: 256 seconds)
11:14:41  * thlorenzjoined
11:18:24  * mcollinaquit (Ping timeout: 268 seconds)
11:19:22  * thlorenzquit (Ping timeout: 276 seconds)
11:20:03  * thlorenzjoined
11:24:27  * thlorenzquit (Ping timeout: 260 seconds)
11:30:00  * thlorenzjoined
11:32:21  * thlorenzquit (Read error: Connection reset by peer)
11:58:05  * mikolalysenkojoined
12:02:34  * mikolalysenkoquit (Ping timeout: 246 seconds)
12:11:12  * thlorenz_joined
12:13:54  * mcollinajoined
12:15:54  * thlorenz_quit (Ping timeout: 276 seconds)
12:17:07  * thlorenzjoined
12:18:14  * mcollinaquit (Ping timeout: 240 seconds)
12:18:29  * tmcwjoined
12:19:27  * yorickquit (Ping timeout: 268 seconds)
12:21:28  * thlorenz_joined
12:21:45  * thlorenzquit (Ping timeout: 276 seconds)
12:22:48  * thlorenzjoined
12:22:49  * thlorenz_quit (Read error: Connection reset by peer)
12:23:10  * tmcwquit (Ping timeout: 256 seconds)
12:26:28  * AvianFlujoined
12:27:36  * thlorenzquit (Ping timeout: 276 seconds)
12:28:10  * thlorenzjoined
12:30:54  * thlorenzquit (Read error: Connection reset by peer)
12:35:18  * ins0mniajoined
12:38:29  * AvianFluquit (Remote host closed the connection)
12:49:13  * tmcwjoined
12:50:35  * AvianFlujoined
12:52:09  * coderzachjoined
12:53:19  * tmcwquit (Ping timeout: 246 seconds)
12:58:27  * mikolalysenkojoined
13:03:23  * mikolalysenkoquit (Ping timeout: 260 seconds)
13:05:54  * tmcwjoined
13:14:27  * mcollinajoined
13:18:52  * mcollinaquit (Ping timeout: 246 seconds)
13:22:46  * mikolalysenkojoined
13:26:40  * crankquit (Quit: leaving)
13:27:08  * crankjoined
13:33:12  * vitorpachecojoined
13:38:55  * mikolalysenkoquit (Ping timeout: 264 seconds)
13:50:34  * tmcwquit (Remote host closed the connection)
14:14:57  * mcollinajoined
14:15:36  * timoxleyquit (Remote host closed the connection)
14:19:57  * mcollinaquit (Ping timeout: 264 seconds)
14:26:02  * thlorenzjoined
14:30:55  * timoxleyjoined
14:34:41  * mikolalysenkojoined
14:35:25  <kanzure>mikolalysenko: hi
14:39:45  * mikolalysenkoquit (Ping timeout: 264 seconds)
14:40:08  <dominictarr>this is disapointing http://qz.com/115831/googles-20-time-which-brought-you-gmail-and-adsense-is-now-as-good-as-dead/?utm_source=buffer&utm_campaign=Buffer&utm_content=buffere4f1a&utm_medium=twitter#!
14:40:34  <dominictarr>stackvm is gonna have to double our efforts!
14:47:11  <kanzure>i tried to combine my trumpet object with hyperquest's request stream and my output stream https://github.com/kanzure/papermonk-downloader-plosone/blob/master/index.js#L27
14:47:28  <kanzure>not sure if i got that right. shouldn't there be a way to not have to do request.on("error", function(error) { output.emit("error", error); }) ?
14:47:49  <kanzure>(the output of parser(output) is a trumpet() object that is reading from the hyperquest stream)
15:02:01  <dominictarr>juliangruber: hey, mulilevel build is failing
15:02:05  <dominictarr>on travis
15:08:10  <dominictarr>confirmed
15:15:29  * mcollinajoined
15:19:50  * mcollinaquit (Ping timeout: 240 seconds)
15:19:58  <juliangruber>dominictarr: I know, can't reproduce on my laptop :(
15:20:17  <dominictarr>mapbe reinstall deps?
15:20:41  <dominictarr>juliangruber: just made a pull request to fix it
15:25:40  <juliangruber>dominictarr: reinstalled deps, same effect
15:25:46  <juliangruber>but it is good now!
15:28:46  * coderzachquit (Ping timeout: 268 seconds)
15:29:59  <dominictarr>juliangruber: do you have anything that you think should be added to this https://github.com/rvagg/node-levelup/issues/174
15:30:46  <juliangruber>dominictarr: oh, yeah right, almost forgot about this one!
15:30:51  <juliangruber>will do now
15:31:44  * coderzachjoined
15:35:05  * mikolalysenkojoined
15:40:07  * mikolalysenkoquit (Ping timeout: 264 seconds)
15:51:32  <dominictarr>juliangruber: what if, instead of {start: "foo!", end:"foo!~" } you just did {prefix: "foo!"}
15:58:07  * timoxleyquit (Remote host closed the connection)
15:58:16  <dominictarr>+1 on benchmarks
16:08:05  * mikealquit (Quit: Leaving.)
16:19:19  <juliangruber>dominictarr: I was thinking of db.prefix('foo').createReadStream because that's easier to nest
16:19:30  <juliangruber>but {prefix:""} would work too!
16:20:01  <dominictarr>or just prefix(db, "foo") ?
16:20:26  <dominictarr>often you just want a prefix anyway, so maybe will add prefix option to sublevel
16:20:39  * mikolalysenkojoined
16:20:41  <dominictarr>as shorthand
16:25:02  * mikolalysenkoquit (Ping timeout: 240 seconds)
16:26:19  * mikolalysenkojoined
16:31:01  * mikolalysenkoquit (Ping timeout: 248 seconds)
16:33:18  * timoxle__joined
16:34:54  * timoxle__quit (Read error: Connection reset by peer)
16:35:07  * timoxleyjoined
16:36:15  * timoxleyquit (Read error: Connection reset by peer)
16:40:17  <thlorenz>dominictarr: chrisdickinson: here is what I came up with to not have to manually have to count pending items: https://github.com/thlorenz/async-through
16:40:24  <thlorenz>critique/suggestions welcome
16:41:17  * timoxleyjoined
16:42:12  <dominictarr>thlorenz: I think it would be better to put a callback in on data rather than overloading this.queue
16:42:43  <thlorenz>dominictarr: thought about that, but I wanted to keep API as compat with through as possible
16:42:49  * mikealjoined
16:43:51  <thlorenz>dominictarr: I could provide that as an alternative, but then there would be too many ways of doing the same thing
16:45:10  <thlorenz>dominictarr: is there a big gotcha with overloading stream.queue() that I'm not aware of?
16:45:22  <dominictarr>not really
16:46:07  * timoxleyquit (Ping timeout: 264 seconds)
16:46:39  <dominictarr>it's just a style thing, doesn't matter really.
16:47:28  * timoxleyjoined
16:48:37  * timoxleyquit (Read error: Connection reset by peer)
16:49:00  * timoxleyjoined
16:49:12  <thlorenz>dominictarr: ok, so I guess providing a callback would be more in line with streams2.Transform I suppose, but lotsa people just like through ;)
16:50:12  <dominictarr>of course, it's your module.
16:50:20  * timoxleyquit (Read error: Connection reset by peer)
16:50:36  * timoxleyjoined
16:51:51  * timoxleyquit (Read error: Connection reset by peer)
16:52:12  * timoxleyjoined
16:53:29  * timoxleyquit (Read error: Connection reset by peer)
16:56:49  * timoxley_joined
17:01:02  * timoxley_quit (Ping timeout: 240 seconds)
17:01:47  * vitorpachecoquit (Quit: Saindo)
17:03:04  * timoxley_joined
17:04:20  * timoxley_quit (Read error: Connection reset by peer)
17:23:36  * mcollinajoined
17:26:20  * mikolalysenkojoined
17:28:21  * mcollinaquit (Ping timeout: 264 seconds)
17:31:29  * mikolalysenkoquit (Ping timeout: 268 seconds)
17:37:55  * dominictarrquit (Ping timeout: 245 seconds)
17:43:13  * coderzachquit (Quit: coderzach)
17:59:59  * thlorenzquit (Remote host closed the connection)
18:03:38  * mikealquit (Read error: Connection reset by peer)
18:05:29  * mikealjoined
18:12:08  * dominictarrjoined
18:15:25  * mirkokieferjoined
18:26:45  * mikolalysenkojoined
18:27:54  * st_lukejoined
18:31:43  * mikolalysenkoquit (Ping timeout: 264 seconds)
18:35:12  * mirkokieferquit (Quit: mirkokiefer)
18:48:27  * coderzachjoined
18:48:40  * coderzachquit (Client Quit)
19:02:05  * st_lukequit (Remote host closed the connection)
19:02:40  * jcrugzzjoined
19:05:31  * timoxleyjoined
19:10:36  * timoxleyquit (Ping timeout: 276 seconds)
19:14:56  * defunctzombie_zzchanged nick to defunctzombie
19:27:02  * mikolalysenkojoined
19:27:51  * mikealquit (Quit: Leaving.)
19:28:47  * mirkokieferjoined
19:31:57  * mikolalysenkoquit (Ping timeout: 264 seconds)
19:43:39  * coderzachjoined
19:46:41  * coderzachquit (Client Quit)
19:49:09  * coderzachjoined
19:56:36  * coderzachquit (Quit: coderzach)
19:58:06  * mikealjoined
20:00:25  * nicholas_quit (Read error: Connection reset by peer)
20:00:55  * nicholasfjoined
20:06:08  * timoxleyjoined
20:08:16  * coderzachjoined
20:10:45  * timoxleyquit (Ping timeout: 256 seconds)
20:19:38  * thlorenzjoined
20:24:43  * coderzachquit (Quit: coderzach)
20:27:31  * mikolalysenkojoined
20:32:05  * mikolalysenkoquit (Ping timeout: 245 seconds)
20:34:38  * AvianFluquit (Remote host closed the connection)
20:36:40  * jibayjoined
21:00:04  * timoxleyjoined
21:19:59  <kanzure>is there a tool to search npmjs.org based on dependencies? for instance, if i want to find the set of packages that depend on both concat-stream and through?
21:20:33  * mikealquit (Quit: Leaving.)
21:22:52  <dominictarr>kanzure: no but you could write one!
21:23:09  <kanzure>i'm looking around at my available pieces. it doesn't seem there's a module yet that downloads package.json files only?
21:23:27  <dominictarr>https://npmjs.org/package/npmd
21:23:31  <dominictarr>I'm working on this
21:23:40  <dominictarr>it is an alternate npm client
21:23:41  <kanzure>npm-package-sync seems to only store package names to a file(?)
21:23:52  <dominictarr>it downloads all the package.json's into a leveldb
21:24:12  <kanzure>how much data is that?
21:24:13  <dominictarr>so it can resolve the module tree without going over the network.
21:24:23  <dominictarr>it's not that much
21:24:35  <kanzure>can you give me an order of magnitude estimate?
21:25:08  <dominictarr>it's currently 200 mb on mine
21:25:17  <dominictarr>and that is including indexes
21:25:18  <kanzure>38161 packages * 5-10 kilobytes each.. yeah okay. that's cool.
21:25:55  <dominictarr>kanzure: it's more modules that that because it's module-versions
21:26:00  * CoverSlidejoined
21:26:08  <dominictarr>more like 100k module versions
21:26:11  <kanzure>oh right
21:26:18  <dominictarr>but package.json's are pretty small.
21:26:25  <kanzure>does npmjs.org accept packages with malformed package.json?
21:27:06  <dominictarr>some of them are a little weird
21:27:13  * mikealjoined
21:27:25  <dominictarr>since there has been modules published with all different versions of npm
21:27:39  <kanzure>it looks like i can add commands to npmd? so i would want to make a plugin that queries leveldb?
21:27:44  * mikolalysenkojoined
21:28:03  <dominictarr>kanzure: yes!
21:28:18  <kanzure>oh, no, the plugins list is hardcoded
21:28:43  <dominictarr>kanzure: that is only because so far I'm the only one who has written one
21:28:52  <dominictarr>if you want to write one I'll fix that!
21:29:54  <kanzure>i am currently shaving yaks i think. i'm trying to decide if i want to continue yak shaving.
21:31:53  <kanzure>what are the numbers that npmd --sync spits out?
21:32:22  * mikolalysenkoquit (Ping timeout: 246 seconds)
21:34:06  <dominictarr>kanzure: that is the percentage that you have replicated so far
21:35:12  <kanzure>npmd packages gives me "/usr/local/lib/node_modules/npmd/node_modules/npmd-link/node_modules/get-deps/index.js:6 TypeError: Cannot set property 'x256' of undefined"
21:35:33  <kanzure>npmd --help also does that.
21:35:57  <kanzure>can only one instance of npmd be running at a time?
21:36:29  * evboguejoined
21:40:02  <evbogue>ls
21:40:07  <evbogue>shit
21:50:00  * mirkokieferquit (Quit: mirkokiefer)
22:01:58  * ricardobeatjoined
22:04:50  <substack>dominictarr: have you made any progress on that normalize/denormalize reference idea for leveldb?
22:05:02  <substack>I was thinking I could build that on top of foreign-key without too much trouble
22:05:26  <substack>I can just generate a separate index for each foreign reference
22:05:29  <dominictarr>substack: which idea?
22:05:41  <thlorenz>chrisdickinson: https://github.com/thlorenz/nest-stream
22:05:48  <dominictarr>kanzure: yes only once instance - that is because of how leveldb works
22:05:59  <substack>dominictarr: documents with nested foreign collections of other documents
22:06:07  <dominictarr>however, second instances can connect to it
22:06:20  * mikealquit (Quit: Leaving.)
22:07:01  <dominictarr>substack: so, like, enter normalized docs and generate a normalized doc?
22:07:11  <dominictarr>on a hook/trigger?
22:08:15  <substack>enter some rules to establish foreign key relations
22:08:47  <substack>and then the library builds aggregate records for you
22:09:20  <dominictarr>that is a good idea.
22:11:38  <dominictarr>would probably be easiest to write the normalized records and have have the module create the denormalized value
22:11:39  <kanzure>dominictarr: it seems to slow down near the end (99.50 through >99.88)
22:12:07  <dominictarr>kanzure: possibly
22:12:26  <dominictarr>need some analylics or something to figure that out
22:12:36  <dominictarr>I think the indexes start getting busy
22:12:46  <dominictarr>or it might be on the couch end
22:13:18  <dominictarr>(as it pulls this data from couchdb _changes feed)
22:13:40  * mk30joined
22:17:08  <dominictarr>mk30: hey whats up?
22:17:55  <mk30>not much! still in ireland?
22:18:22  <dominictarr>yeah
22:18:26  <mk30>weird
22:18:38  <dominictarr>living in a house
22:18:40  <mk30>wat
22:18:51  <dominictarr>but don't worry, I have renounced shoes.
22:18:56  <mk30>thank god
22:19:06  <dominictarr>still wear pants though
22:19:50  <kanzure>substack: can you check my work with hyperquest/trumpet? https://gist.github.com/kanzure/6258965 this "works" but i don't know if it's correct.
22:19:57  <mk30>who needs shoes in those cloudy peat haddocks and on the shores of the gentle loughs
22:20:17  <mk30>pants ok, i guess
22:20:33  <kanzure>dominictarr: npmd isn't spinning its wheels but it's left at "100" and it's just sitting here without exiting. should i kill it?
22:20:43  <dominictarr>no
22:21:11  <dominictarr>now it keeps the connection open so that it recieves realtime changes
22:21:43  <kanzure>"npmd packages" still fails in another terminal.
22:22:40  <kanzure>how do i search its index?
22:22:42  <dominictarr>kanzure: what error do you get?
22:22:52  <kanzure>"/usr/local/lib/node_modules/npmd/node_modules/npmd-link/node_modules/get-deps/index.js:6 TypeError: Cannot set property 'x256' of undefined"
22:23:21  <dominictarr>can you post an issue?
22:23:32  <dominictarr>with full stack trace?
22:24:53  <kanzure>is "packages" supposed to work?
22:25:04  * evboguequit (Quit: leaving)
22:25:13  <kanzure>or --help?
22:26:23  <kanzure>https://github.com/dominictarr/npmd/issues/18
22:29:07  <kanzure>am i supposed to be running this in a particular location?
22:29:32  <kanzure>somewhere in the stacktrace it's calling process.cwd() which doesn't make sense to me-- if i want to merely benefit from searching through package.json files, i shouldn't have to be in a node project.
22:30:34  <kanzure>throw new Error('package.json can not be located');
22:32:49  <dominictarr>ah
22:33:12  <dominictarr>does `npmd packages` work?
22:33:23  <dominictarr>just running `npmd` would do nothing
22:33:32  <dominictarr>should probably make that print help info
22:33:35  <kanzure>same error with "npmd packages"
22:33:39  <kanzure>i've updated https://github.com/dominictarr/npmd/issues/18
22:33:55  <kanzure>sorry, i mean same error as the latest comment on #18
22:34:18  <kanzure>also, my /tmp does not have node_modules. i suppose it's possible that someone else's might.
22:35:13  <dominictarr>that should be okay
22:35:32  <dominictarr>try `npm versions modulename`
22:35:41  <dominictarr>s/npm/npmd/
22:35:49  <dominictarr>and npmd resolve modulename
22:36:02  <kanzure>npmd versions modulename just exits
22:36:16  <kanzure>npmd resolve modulename gives me "Error: range not found"
22:36:20  <kanzure>and a stacktrace
22:36:30  * mikealjoined
22:36:43  <kanzure>npmd resolve npmd gives me a dump of json
22:37:13  <kanzure>npmd versions npmd gives me a list of versions. i didn't know if modulename was a real module :).
22:38:15  <kanzure>oh, is "npmd packages" supposed to do some function based on a local packages.json file? i see.
22:50:03  <dominictarr>kanzure: replace "modulename" with the name of your favorite module
22:57:46  <dominictarr>npmd packges just dumps all the package names
22:58:00  <dominictarr>npmd versions $MODULE
22:58:08  <dominictarr>dumps versions of a particular module
23:03:14  <kanzure>is there a way to make config.verbose == true from the command line?
23:08:31  <dominictarr>--verbose
23:08:40  <dominictarr>it's just optimist
23:08:46  <dominictarr>(via rc)
23:10:37  <kanzure>--verbose dumps README.md to my screen
23:10:51  <kanzure>dominictarr: https://github.com/dominictarr/npmd/pull/19
23:12:16  <dominictarr>nice!
23:13:08  <kanzure>i am not proud of that because i just dump everything to console.log :(
23:18:33  <dominictarr>we can fix it later
23:22:52  <substack>kanzure: you want duplexer
23:23:14  <substack>var dup = duplexer(tr, outstream); return duplexer
23:23:22  <substack>CORRECTION: return dup
23:23:33  <substack>http://npmjs.org/package/duplexer
23:24:14  * jcrugzzquit (Ping timeout: 240 seconds)
23:25:25  * stagasquit (Ping timeout: 245 seconds)
23:26:35  <dominictarr>substack: npmd can now install globals! next, compiled modules
23:26:44  <dominictarr>then it will self install
23:26:50  <dominictarr>tomorrow, maybe.
23:26:51  * mikolalysenkojoined
23:26:55  <dominictarr>night all!
23:26:59  * dominictarrquit (Quit: dominictarr)
23:28:07  <kanzure>substack: thanks, i'll try that out.
23:29:09  * mirkokieferjoined
23:34:17  * mirkokieferquit (Quit: mirkokiefer)
23:36:09  * mirkokieferjoined
23:36:33  * coderzachjoined
23:37:45  * mirkokieferquit (Client Quit)
23:39:08  * AvianFlujoined
23:42:10  * thlorenzquit (Remote host closed the connection)
23:49:40  <kanzure>substack: this seems to do what i want, is it sane? return duplexer(duplexer(tr, request), outstream)
23:51:46  <kanzure>when i attach a .on("error") there, i get dns errors propagated. but if i just use duplexer(tr, outstream), the dns error becomes unhandled.
23:54:07  <kanzure>i updated https://gist.github.com/kanzure/6258965
23:57:48  <substack>kanzure: no just request.pipe(tr)
23:58:08  <substack>you only need a single duplexer()
23:58:10  <kanzure>but i get throw er; // Unhandled stream error in pipe.
23:58:13  <substack>but repropagate the error
23:58:33  <kanzure>like this? request.on("error", function(error) { outstream.emit("error", error) })
23:58:47  <kanzure>is that repropagating?