00:06:40  <CIA-99>node: isaacs v0.6 * ra63ce6e / (147 files in 16 dirs): Merge branch 'json-api-v0.6' into v0.6 (+46 more commits...) - http://git.io/BtLhKA
00:11:03  * piscisaureus_quit (Ping timeout: 252 seconds)
00:14:51  * travis-cijoined
00:14:51  <travis-ci>[travis-ci] joyent/node#527 (v0.6 - a63ce6e : isaacs): The build was broken.
00:14:51  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/4065b24...a63ce6e
00:14:51  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/770114
00:14:51  * travis-cipart
00:23:11  * benviequit
00:23:28  * benviejoined
00:25:38  * xaqjoined
00:35:51  * xaqquit (Remote host closed the connection)
00:37:53  * ryahjoined
00:57:45  * felixgejoined
01:15:39  * dapquit (Quit: Leaving.)
01:19:41  <mjr_>What do the numbers in process.memoryUsage really mean?
01:19:42  <mjr_>{ rss: 593960960, heapTotal: 45055808, heapUsed: 26162752 }
01:20:29  <mjr_>I'm investigating a leak in a process, one that's growing up to 500MB RSS, and I can't figure out what heapTotal and heapUsed tell me.
01:27:00  * Ariaquit (Remote host closed the connection)
01:35:08  * bnoordhuisquit (Ping timeout: 252 seconds)
01:35:14  * felixgequit (Quit: felixge)
01:36:24  * dshaw_quit (Quit: Leaving.)
01:36:29  * abraxasjoined
01:36:32  <ryah>mjr_: those numbers come from V8
01:36:42  * piscisaureus_joined
01:36:55  <mjr_>Do you know what V8 means by them?
01:37:45  <ryah>https://github.com/joyent/node/blob/7343f8e776146bf4461348a9130f2c5040a0dfa0/deps/v8/include/v8.h#L2697
01:38:04  <mjr_>heh, yeah I got that far on my own. :)
01:38:20  <mjr_>Are those sizes in bytes?
01:38:27  <ryah>not really - i mean i assume it's the amount they've allocated for their heap and how much of it they've used
01:38:30  <ryah>yes
01:38:42  <ryah>(i think)
01:38:59  <mjr_>So in my case, 45055808 / 1024 / 1024 = 42.9685668945312MB
01:39:26  <mjr_>So 42MB is how much space V8 thinks it has allocated for heap, but the process is using 566MB.
01:40:22  <mjr_>Sounds like I might have a buffer leak somewhere then.
01:40:34  <ryah>yeah
01:40:36  <mjr_>This is a new process I wrote that blasts lots of UDP packets.
01:40:44  <ryah>would be nice if node kept a counter of how much it had alloced
01:41:03  * pfox___quit (Ping timeout: 260 seconds)
01:41:06  <piscisaureus_>well we update the "external memory" counter in v8
01:41:17  <piscisaureus_>so reading that out would help :-)
01:41:38  <mjr_>It peaks at about 25K reads + 25K writes / sec.
01:41:43  <piscisaureus_>It includes only buffers though and not wraps
01:42:04  <ryah>mjr_: that sounds optimal
01:42:06  <mjr_>So I guess it is really stressing out the allocator.
01:42:09  <piscisaureus_>you / we could also be leaking UDPWrap or uv_send_t objects
01:42:25  <mjr_>I have a repl on the process. Is there anything useful I can check?
01:42:40  <piscisaureus_>hmm, not that I am aware of
01:44:32  <mjr_>For this application, doing a rolling restart every night isn't that disruptive, so that's what I'll do for now I guess.
01:44:57  <mjr_>But, should you ever care to optimize UDP processing, we now have a real world production overloaded example of that, too. :)
01:47:32  <piscisaureus_>It would be interesting to see whether the leak appears on the send or on the receive path
01:48:15  <piscisaureus_>ryah: btw, "optimal"
01:48:48  <piscisaureus_>ryah: I know that libuv can do about ~125 k sends or receives per second on linux and windows
01:49:03  <piscisaureus_>so 25k is not even close :-)
01:49:48  <ryah>piscisaureus_: oh really? ok nm then
01:50:34  <ryah>http://blog.evanweaver.com/2012/02/29/hello-heroku-world/
01:53:53  * piscisaureus_quit (Ping timeout: 260 seconds)
01:53:54  <mmalecki>interesting! AvianFlu, do you think we should try these benchmarks for nodejitsu?
01:55:47  * piscisaureus_joined
01:57:45  <isaacs>igorzi: merging node-tunnel into request is proving to be less than trivial
01:59:29  * dapjoined
02:00:20  <AvianFlu>mmalecki, when we expose the scaling controls to people who aren't you and me, sure
02:00:52  <piscisaureus_>ryah: i can't make sense of the graphs
02:01:30  <mmalecki>AvianFlu: sounds great! actually, while you guys are doing irc stuff, I'll go and do some stuff to make it happen :)
02:01:59  <igorzi>isaacs: why?
02:02:16  <piscisaureus_>but
02:02:53  <isaacs>igorzi: the options are kind of weird, i think i'm doing it wrong. it's making the CONNECT successfully, but it's not successfully using the resulting socket, it seems like.
02:02:53  * xaqjoined
02:03:38  <igorzi>isaacs: hmm.. i've been using it pretty succesfully
02:03:53  <igorzi>isaacs: to do https over http
02:04:04  <isaacs>igorzi: yeah, it definitely works, but getting it merged into mikeal's request is tricky
02:04:18  <isaacs>igorzi: do you have some example code using it that you can share?
02:04:40  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
02:09:09  <igorzi>isaacs: yep.. it's literally doing:
02:09:11  <igorzi>options.agent = tunnel.httpsOverHttp({
02:09:18  <igorzi> proxy: {
02:09:23  <igorzi> host: host,
02:09:27  <igorzi> port: port
02:09:32  <igorzi> }
02:09:36  <igorzi>});
02:10:23  <isaacs>and options is the arg you pass to http.request()?
02:10:51  <igorzi>isaacs: yep
02:10:56  <igorzi>https.request
02:11:02  <igorzi>(not http)
02:11:14  <isaacs>ooohhhh.
02:11:18  <isaacs>oh, wait, yeah
02:11:26  <isaacs>becasue req.uri.protocol is https:
02:12:35  <igorzi>oh, if you're doing it over http then that would explain why CONNECT succeds, but it's not trying to use that socket to do HTTPS
02:13:07  * dapquit (Quit: Leaving.)
02:13:58  <isaacs>nono, i think i'm using https.request.
02:14:02  <isaacs>but i'll make sure of that
02:17:04  <isaacs>igorzi: getting this:
02:17:06  <isaacs>making CONNECT request { host: 'localhost:3128',
02:17:06  <isaacs> port: '3128',
02:17:06  <isaacs> method: 'CONNECT',
02:17:08  <isaacs> path: 'registry.npmjs.org:443',
02:17:10  <isaacs> agent: false }
02:17:12  <isaacs>onError { [Error: getaddrinfo ENOENT] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' } Error: getaddrinfo ENOENT
02:17:14  <isaacs> at errnoException (dns.js:31:11)
02:17:16  <isaacs> at Object.onanswer [as oncomplete] (dns.js:140:16)
02:22:32  * piscisaureus_quit (Read error: Connection reset by peer)
02:26:32  * sh1mmerquit (Quit: sh1mmer)
02:26:43  * xaqquit (Remote host closed the connection)
02:27:18  <igorzi>isaacs: host: 'localhost:3128'
02:27:26  <igorzi>isaacs: does that look right?
02:28:50  <isaacs>oh, right
02:28:53  <isaacs>i got a bit further
02:28:58  <isaacs>still failing, though :)
02:34:02  * Ariajoined
02:36:29  * perezdquit (Quit: perezd)
02:40:13  * dshaw_joined
02:58:46  * hij1nxjoined
03:03:40  * alex_rquit (Quit: Connection closed for inactivity)
03:07:58  * brsonquit (Quit: leaving)
03:08:19  * brsonjoined
03:08:48  <isaacs>igorzi: oohhh... i see. it's because of my custom CA that's failing. i'm going to get this finished tomorrow probably.
03:09:07  * brsonquit (Client Quit)
03:39:06  * xaqjoined
03:42:43  * AvianFluquit (Quit: Leaving)
03:43:13  * Ariaquit (Remote host closed the connection)
03:48:54  * xaqquit (Remote host closed the connection)
03:56:09  * isaacsquit (Remote host closed the connection)
03:59:05  * pfox___joined
04:00:34  * xaqjoined
04:00:41  * dshaw_quit (Quit: Leaving.)
04:46:19  * pfox___quit (Remote host closed the connection)
04:48:11  * mmaleckichanged nick to mmalecki[zzz]
05:43:40  * trondnjoined
05:52:15  * trondnpart
05:52:36  * xaqquit (Remote host closed the connection)
06:05:44  * xaqjoined
06:05:53  * xaqquit (Read error: Connection reset by peer)
06:06:09  * xaqjoined
06:19:49  * sh1mmerjoined
06:39:40  * sh1mmerquit (Quit: sh1mmer)
06:40:14  * hij1nxquit (Quit: hij1nx)
07:27:19  * sh1mmerjoined
07:40:43  * felixgejoined
07:40:43  * felixgequit (Changing host)
07:40:43  * felixgejoined
07:48:55  * rendarjoined
08:07:52  * mralephjoined
08:45:37  * txdv_joined
08:49:13  * txdvquit (Ping timeout: 265 seconds)
09:01:07  * mralephquit (Quit: Leaving.)
09:24:02  * mmalecki[zzz]changed nick to mmalecki
09:25:25  * bnoordhuisjoined
09:39:53  * AvianFlujoined
09:51:10  <einaros>bnoordhuis: re that http-parser bug, I'm not convinced
09:59:59  <bnoordhuis>einaros: not convinced of what?
10:02:54  <einaros>bnoordhuis: http_parser doesn't seem to rely on the connection: upgrade header being present. it just looks for an Upgrade header field
10:04:34  <bnoordhuis>einaros: oh, that's right
10:04:51  <bnoordhuis>it only sets the upgrade flag when there's an upgrade header present
10:05:09  <bnoordhuis>but if i read the spec right, "Connection: upgrade" is legitimate too
10:06:12  <mmalecki>you need both, iirc
10:06:22  <bnoordhuis>no
10:06:27  <bnoordhuis>http://www.ietf.org/rfc/rfc2817.txt <- 3.2 Mandatory Upgrade
10:06:34  * xaqquit (Remote host closed the connection)
10:07:01  <mmalecki>bnoordhuis: tls?
10:07:10  <bnoordhuis>mmalecki: what about it?
10:07:19  <mmalecki>bnoordhuis: websockets, that's what we're talking about
10:07:35  * xaqjoined
10:07:42  <bnoordhuis>mmalecki: so why do you drag in tls? :)
10:08:04  <bnoordhuis>oh, you mean the example
10:08:08  <mmalecki>" Upgrading to TLS Within HTTP/1.1"
10:08:17  <mmalecki>that's the rfc title
10:08:28  <mmalecki>but dunno, I'm probably dumb
10:08:45  <bnoordhuis>hah, i understand the confusion
10:09:15  <bnoordhuis>i've been checking what the various upgrade rfcs have to say about the upgrade and connection headers
10:09:26  <mmalecki>ah, a'ight
10:09:32  <bnoordhuis>i suppose that most implementations would (and probably should) send both
10:09:56  <bnoordhuis>but apparently that doesn't always happen
10:10:07  <mmalecki>also, mozilla folks don't have to send keep-alive, do they?
10:10:13  <mmalecki>isn't it, like, implied?
10:10:30  <bnoordhuis>yeah, it's kind of odd
10:10:42  <mmalecki>I could write a patch
10:10:50  <bnoordhuis>for mozilla or http-parser?
10:10:59  <mmalecki>but after seeing how they handled my previous patch, well.
10:11:10  <mmalecki>mozilla
10:11:33  <bnoordhuis>oh right
10:11:39  <bnoordhuis>well, it ff does it, there are probably others
10:11:53  <bnoordhuis>i suppose we could fix it in node
10:11:58  <mmalecki>they are wrong and http-parser is right
10:12:08  <mmalecki>we should keep saying ^.
10:12:13  <bnoordhuis>maybe so
10:12:32  <bnoordhuis>but until either mozilla or us fixes it, things are going to be broken for people
10:13:02  <mmalecki>yeah, I guess XD
10:13:07  <einaros>https://gist.github.com/18c03a9513c75e9c36a7
10:13:15  <einaros>:P
10:13:30  <mmalecki>well, who doesn't love corndogs?
10:13:43  <bnoordhuis>heh
10:14:35  <einaros>anyhoo, so the problem is that they aren't sending the upgrade header at all?
10:14:44  <einaros>(I've still not read the bugzilla thread)
10:14:57  <bnoordhuis>well, i thought so at first
10:15:12  <bnoordhuis>but i later realized that no one actually posted the full headers, just excerpts
10:15:39  <einaros>did they mention a firefox version?
10:16:06  <bnoordhuis>yeah -> No error message like Firefox stable 10.0 serious. p.s I've tried Firefox 10 and Nightly 20120226 build with fresh profile.
10:16:33  <einaros>very well
10:16:53  <einaros>I might as well try that too, since I've already wasted an hour patching http_parser to do something it did already
10:17:35  <mmalecki>bnoordhuis: btw, is my boundary patch going to land?
10:18:07  <bnoordhuis>mmalecki: no, but
10:18:27  <bnoordhuis>we can probably fix your use case once joyent/http-parser#97 gets fixed
10:18:43  <bnoordhuis>fix/support/make possible
10:20:10  <bnoordhuis>http://www.twimbow.com/dashboard.php <- how does that website work?
10:20:23  <mmalecki>bnoordhuis: barely?
10:20:36  <bnoordhuis>apparently
10:20:40  <mmalecki>but what is it, actually?
10:20:43  <bnoordhuis>i'm not seeing any upgrade requests
10:20:47  <bnoordhuis>a web twitter client
10:20:59  <bnoordhuis>apparently there's a need for such web sites
10:21:03  <mmalecki>oh, social thingie! I love social thingies
10:21:10  <bnoordhuis>it's never been done before either
10:21:12  <mmalecki>they are, like, so useful
10:21:31  <mmalecki>yeah, I mean, have you ever seen any third party twitter client?
10:21:34  <mmalecki>so revolutionary
10:21:58  <bnoordhuis>i suppose i'll ask the guy to post the http headers, i can't get it to work :-/
10:23:59  <einaros>meh, firefox 10 works just fine with my websocket library
10:26:16  <bnoordhuis>mmalecki: re your boundary patch
10:26:21  <bnoordhuis>the use was proxying right?
10:26:25  <mmalecki>bnoordhuis: yes
10:26:38  <bnoordhuis>i.e. rewrite the headers, then pipe the request body?
10:26:44  <mmalecki>bnoordhuis: [0] posted a write up about how it's supposed to work somewhere
10:26:46  <mmalecki>bnoordhuis: yes
10:27:00  <bnoordhuis>okay, that's what http_parser_pause() is for
10:27:10  <bnoordhuis>now to get it to actually work right :)
10:27:21  <mmalecki>oh? cool
10:27:37  <bnoordhuis>what you'd do is pause the parser in the on_headers_complete callback
10:28:26  <bnoordhuis>the remainder of the chunk is request body that you can do whatever with
10:28:33  <mmalecki>I see
10:28:42  <mmalecki>I'll totally try that, thanks Ben
10:29:14  * xaqquit (Remote host closed the connection)
10:29:16  <bnoordhuis>probably needs a few adjustments in http.js but nothing extraordinary
10:50:07  * abraxasquit
13:23:33  * mmaleckichanged nick to mmalecki[nap]
13:38:52  * piscisaureus_joined
13:40:03  * piscisaureus_quit (Client Quit)
13:41:33  * piscisaureus_joined
13:59:11  * avsejquit (Quit: Quit)
14:00:26  * avsejjoined
14:20:57  * pfox___joined
14:24:54  * philipsquit (Excess Flood)
14:27:36  * philipsjoined
15:10:18  * isaacsjoined
15:32:56  * sh1mmerquit (Quit: sh1mmer)
15:34:34  * xaqjoined
15:42:25  <piscisaureus_>isaacs: the .exe discovery logic in `which` is not correct
15:52:16  * mmalecki[nap]changed nick to mmalecki
15:53:54  <CIA-99>node: Vincent Ollivier master * r8cdbf01 / test/simple/test-child-process-stdout-flush.js : test: fix typo in test-child-process-stdout-flush - http://git.io/NiiO4Q
15:59:49  <CIA-99>libuv: Ben Noordhuis v0.6 * r44c9f63 / (src/unix/core.c src/unix/ev/ev.c src/unix/internal.h):
15:59:49  <CIA-99>libuv: unix: don't rely on libev to track timer state
15:59:49  <CIA-99>libuv: An obscure libev bug sometimes makes it miss state changes. Keep track of the
15:59:49  <CIA-99>libuv: state ourselves.
15:59:49  <CIA-99>libuv: Fixes joyent/node#2515. - http://git.io/cGxf6A
15:59:50  <CIA-99>libuv: Ben Noordhuis v0.6 * rb3fe183 / src/unix/kqueue.c :
15:59:51  <CIA-99>libuv: unix: fix fs_event refcount bug on darwin
15:59:51  <CIA-99>libuv: The event loop got unref'd twice when the handle was closed. - http://git.io/Asg5sA
15:59:55  <isaacs>piscisaureus_: oh?
16:00:02  <isaacs>piscisaureus_: wanna send a patch?
16:00:41  <piscisaureus_>isaacs: also, I found a bug in findPrefix_
16:00:44  <piscisaureus_>I will send them
16:01:16  <isaacs>kewl
16:01:19  <isaacs>which is a separate project
16:01:26  <isaacs>what's the bug in findPrefix_?
16:01:31  * travis-cijoined
16:01:31  <travis-ci>[travis-ci] joyent/libuv#111 (v0.6 - b3fe183 : Ben Noordhuis): The build is still failing.
16:01:31  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/9a5c1ba...b3fe183
16:01:31  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/773769
16:01:31  * travis-cipart
16:02:48  <piscisaureus_>isaacs: it does not detect all the cases where dirname(p) == p
16:03:14  <CIA-99>node: Ben Noordhuis v0.6 * r3aa2fd3 / (4 files in 2 dirs): uv: upgrade to b3fe183 - http://git.io/V8ZefA
16:03:22  <isaacs>piscisaureus_: interesting.
16:03:44  <isaacs>so it tries to go up to c: or something rather than stopping at c:\?
16:06:51  * xaqquit (Remote host closed the connection)
16:08:14  <piscisaureus_>isaacs: well if APPDATA is on an unc path (which happens in corporate enviroments)
16:08:25  <piscisaureus_>APPDATA would be \\someserver\isaacs\
16:08:34  * travis-cijoined
16:08:34  <travis-ci>[travis-ci] joyent/node#528 (master - 8cdbf01 : Vincent Ollivier): The build is still failing.
16:08:34  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/bab59f3...8cdbf01
16:08:34  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/773755
16:08:34  * travis-cipart
16:08:42  <piscisaureus_>but path.dirname("\\someserver\isaacs\") == sic
16:08:53  <isaacs>== sic?
16:08:56  <isaacs>what's sic?
16:09:16  <piscisaureus_>path.dirname("\\someserver\isaacs\") === "\\someserver\isaacs\"
16:09:19  <isaacs>oh, ok
16:09:19  <piscisaureus_>Is what I meant
16:09:22  <isaacs>gotcha
16:09:26  <isaacs>so it loops there forever?
16:09:34  <piscisaureus_>yes
16:09:39  <isaacs>that's not good :)
16:09:51  <piscisaureus_>isaacs: you should just apply a fix where you test exactly that
16:10:01  <isaacs>yes.
16:10:02  <tjfontaine>evil black text, silly irc colors
16:10:04  <isaacs>doing that now.
16:10:09  <piscisaureus_>if (path.dirname(p) == p) then cb(null, p) or something
16:10:15  <piscisaureus_>you have some hack in there now
16:11:17  * travis-cijoined
16:11:17  <travis-ci>[travis-ci] joyent/node#529 (v0.6 - 3aa2fd3 : Ben Noordhuis): The build was fixed.
16:11:17  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/a63ce6e...3aa2fd3
16:11:17  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/773787
16:11:17  * travis-cipart
16:12:05  <piscisaureus_>isaacs: so the other error is this. If you look try to look up up a binary name in "which", it doesn't work if the input already has an ".exe" suffix
16:12:18  <isaacs>ohh, ok
16:12:19  <isaacs>right
16:12:20  <piscisaureus_>because you then start looking for `node.exe.exe` and `node.exe.cmd`
16:12:23  <isaacs>yeah
16:12:27  <piscisaureus_>isaacs: so here's the logic
16:12:49  <piscisaureus_>If the input contains a dot, try it without $PATHEXT first
16:12:56  <piscisaureus_>(that is also what windows itself does)
16:13:00  <isaacs>piscisaureus_: not quite, i don't think
16:13:06  <isaacs>piscisaureus_: it should only do that if the extname is in pathext
16:13:12  <piscisaureus_>isaacs: no
16:13:25  <isaacs>piscisaureus_: if you do `which("foo.txt")` and there's a foo.txt and a foo.txt.exe, it should find foo.txt.exe
16:13:33  <isaacs>because foo.txt is not executable
16:13:44  <piscisaureus_>isaacs: well, windows will just attempt to run foo.txt it it finds it
16:13:55  <isaacs>right... but that's not what i want this lib to do :)
16:13:57  <isaacs>it should be smarter
16:14:05  <piscisaureus_>alright
16:14:12  <piscisaureus_>isaacs: whatever - it's your lib
16:14:23  <isaacs>because when windows "runs foo.txt" it's smart enough to open up Notepad
16:14:45  <piscisaureus_>isaacs: if you rename node.exe to foo.txt it will probably be smart enough to start node :-)
16:14:53  <piscisaureus_>isaacs: but people never ever do this anyway
16:15:13  <piscisaureus_>isaacs: so yeah go ahead. As long as you fix the lookup when .exe is already in the input :-)
16:16:29  <piscisaureus_>isaacs: I suspect that this could also change the bug that microsoft reported the other day that busy looped
16:16:36  <piscisaureus_>the symptoms were the same.
16:16:47  <isaacs>interesting
16:17:14  <isaacs>piscisaureus_: https://gist.github.com/1950942
16:17:59  <piscisaureus_>isaacs: lgtm, that's the fix that I applied too.
16:18:19  <isaacs>landed b708c1e5f9fd9be7f0daa6efe92461d5961c3215
16:18:20  <isaacs>thanks
16:18:21  <piscisaureus_>isaacs: I think that this makes the logic that checks for "/" and "x:\\" a few lines above superfluous.
16:18:25  <isaacs>yeah
16:18:26  <isaacs>meh
16:18:28  <piscisaureus_>but you know that better than me
16:18:33  <piscisaureus_>yeah leave it in :-)
16:20:33  <isaacs>piscisaureus_: hm... it looks like the easiest way to fix which is to do pathExt.unshift("")
16:20:51  <isaacs>though that will try to run `a.txt` rather than `a.txt.exe`
16:20:55  <isaacs>but whatever.
16:23:35  <isaacs>hm... no, that's a problem, because windows can't run programs that have no ext at all. ie, "node" vs "node.exe"
16:28:15  <piscisaureus_>isaacs: well, it can :-)
16:28:41  <piscisaureus_>isaacs: although unlikely, because people won't rename foo.exe to foo
16:28:58  <piscisaureus_>isaacs: if you put two ;; in pathext it will even try to do so :-)
16:29:20  <piscisaureus_>or if you enter `foo.` on the command line
16:46:25  <piscisaureus_>isaacs: kewl, fixes
16:47:04  <piscisaureus_>isaacs: I think btw you should check if env vars are set before trying to use APPDATA. When microsoft ran into that bug it appears it was not set.
16:47:06  <isaacs>pushed to npm
16:47:23  <isaacs>piscisaureus_: you mean in the conf env var replacement bit?
16:47:49  <piscisaureus_>yeah
16:48:05  <isaacs>it doesn't replace it with ""...
16:48:08  <isaacs> return f.replace(/\$\{([^}]+)\}/g, function (orig, name, i, s) {
16:48:08  <isaacs> return process.env[name] || orig
16:48:08  <isaacs> })
16:48:24  <isaacs>what *should* it do in that case? throw?
16:48:31  <piscisaureus_>probably
16:48:45  <isaacs>what if you have a folder named '{APPDATA}'?
16:48:47  <isaacs>and you want to use it?
16:48:58  <piscisaureus_>well then you set APPDATA={APPDATA}
16:48:59  <piscisaureus_>:-)
16:49:23  <piscisaureus_>oh right like that
16:49:26  <piscisaureus_>hmm
16:49:56  <piscisaureus_>well what if you have a folder named {APPDATA} and also an env var named APPDATA?
16:50:02  <piscisaureus_>it still breaks
16:50:04  <isaacs>hahha
16:50:06  <isaacs>exactly!!
16:50:15  <isaacs>then you have to set APPDATA={APPDATA}
16:50:21  <piscisaureus_>yes
16:50:31  <isaacs>er, APPDATA='${APPDATA}'
16:50:48  <isaacs>maybe i should make sure that the $ doesn't have an odd number of \ chars in front of it
16:51:07  <piscisaureus_>maybe you should use a character that cannot appear in file names
16:51:15  <piscisaureus_>such characters probably don't exist in windows
16:51:24  <piscisaureus_>er, in unix
16:52:18  <piscisaureus_>on windows the following characters are invalid: < > " : ? * |
16:54:50  <isaacs>almost anything is valid in a filename.
16:55:07  <isaacs>but really, ${FOO} is the standard way to put an env in a config. unix users immediately grok this.
16:58:35  <isaacs>$ npm get foo --foo='${FOO}'
16:58:36  <isaacs>Error: Failed to replace env in config: ${FOO}
16:58:54  <isaacs>$ FOO=bar npm get foo --foo='${FOO}'
16:58:54  <isaacs>bar
16:59:29  <isaacs>piscisaureus_: any other npm bugs? i'm on a roll here :)
17:09:38  <piscisaureus_>isaacs: not that I am aware of :-)
17:12:27  * AndreasMadsenjoined
17:19:47  * dshaw_joined
17:29:35  * dapjoined
17:48:39  * TooTallNatejoined
17:48:43  * sh1mmerjoined
17:59:30  * sh1mmerquit (Remote host closed the connection)
17:59:41  * sh1mmerjoined
18:11:29  * AndreasMadsenquit (Remote host closed the connection)
18:13:40  * felixgequit (Quit: felixge)
18:17:18  * felixgejoined
18:39:28  <dap>is there going to be another 0.6?
18:55:30  * AndreasMadsenjoined
19:01:22  <piscisaureus_>should be
19:01:33  <piscisaureus_>igor's IFS fix needs to be release too I think?
19:01:51  <piscisaureus_>igorzi: or?
19:05:26  <igorzi>piscisaureus_: yep
19:05:55  <igorzi>piscisaureus_: there are other fixes that need to be released.. tunneling for npm for example
19:07:07  <piscisaureus_>igorzi: right
19:07:13  <piscisaureus_>igorzi: how does the tunneling work?
19:07:18  <piscisaureus_>does it somehow autodetect that?
19:07:38  <igorzi>piscisaureus_: http_proxy env variable
19:07:45  <piscisaureus_>ah, ok
19:07:53  <piscisaureus_>how come this affects only windows users?
19:08:03  <igorzi>piscisaureus_: it doesn't
19:08:36  <piscisaureus_>I've never heard anyone complaining about it before
19:08:38  <igorzi>piscisaureus_: it affects anyone trying to do https requests from node behind http proxy
19:10:36  <isaacs>piscisaureus_: that's because you don't listen on the npm issues board :)
19:10:40  <isaacs>piscisaureus_: people do complain about this
19:10:49  <piscisaureus_>isaacs: right, ok
19:10:56  <isaacs>i'm adding it to request. that's going to land today, perhpas by floating a patch on npm's request.
19:11:02  <isaacs>but that's the only thing remaining for 0.6.12, afaic
19:11:05  <isaacs>*afaik
19:11:09  <isaacs>(or care, i guess :)
19:11:15  <piscisaureus_>yea
19:11:24  <isaacs>so, it's blocked on me. which is good :)
19:12:31  <piscisaureus_>unfortunately the string work is now more or less blocked on the v8 team
19:14:04  <isaacs>that's good news.
19:14:12  <isaacs>i mean, not that it's blocked, but that it's blocked on them.
19:14:14  <isaacs>are they looking at it?
19:14:21  <piscisaureus_>barely
19:14:27  <piscisaureus_>Erik Corry did
19:14:39  <piscisaureus_>and he did a quick utf8 perf improvement patch for short strings
19:14:59  <piscisaureus_>but meh, they should just look at the stuff I propose and yay or nay it
19:15:08  <piscisaureus_>or review the patch
19:15:42  <isaacs>yeah
19:15:48  <piscisaureus_>Otherwise we'd have to float it for a while
19:16:10  <piscisaureus_>but I only want to do that if no reasonable upstream is in sight for 0.8
19:17:42  <piscisaureus_>I am off for dinner now
19:19:01  <TooTallNate>:) hadn't heard this "floating patch" term before
19:19:22  <TooTallNate>meaning: having to maintain a patch on a dependency that's not accepted upstream?
19:21:11  <piscisaureus_>yes
19:21:51  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
19:42:49  * AndreasMadsenquit (Remote host closed the connection)
19:44:58  * piscisaureus_quit (Read error: Operation timed out)
19:48:37  * brsonjoined
20:15:13  <igorzi>https://gist.github.com/1952828
20:15:14  <igorzi>piscisaureus_ bnoordhuis isaacs: ^--review
20:15:24  <dap>submitted for next 0.6: https://github.com/joyent/node/pull/2854
20:16:42  <isaacs>dap: can you rebase onto joyent/v0.6?
20:17:02  <isaacs>i think https://github.com/davepacheco/node/commit/c08405590daadd83e766cbf3935a6cd5d7c72d15 might already be there
20:17:08  <isaacs>(unless youer' just adding that now)
20:17:54  <dap>you're right, and I was confused about that, but I thought I had done that.
20:18:01  <dap>(it's not in the diffs)
20:18:11  <dap>I'll try again after lunch, and maybe bug you for help :)
20:18:28  <isaacs>kk
20:18:31  * xaqjoined
20:22:35  * mralephjoined
20:30:13  * TooTallNatejoined
20:30:35  * `3rdEdenjoined
20:44:00  * CoverSlidejoined
20:50:41  * xaqquit (Remote host closed the connection)
20:53:02  * mikealjoined
21:18:02  <AvianFlu>bnoordhuis, did you ever get a chance to look at https://github.com/joyent/libuv/pull/329?
21:23:17  * mikealquit (Quit: Leaving.)
21:39:14  * mikealjoined
21:40:37  * piscisaureus_joined
21:42:17  <piscisaureus_>igorzi: lgtm
21:44:49  <CIA-99>libuv: Igor Zinkovsky master * r6bbccf1 / (4 files in 2 dirs): windows: return UV_ENOTSOCK when doing uv_pipe_connect to a file - http://git.io/jBzEwQ
21:46:53  * travis-cijoined
21:46:53  <travis-ci>[travis-ci] joyent/libuv#112 (master - 6bbccf1 : Igor Zinkovsky): The build is still failing.
21:46:53  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/0459097...6bbccf1
21:46:53  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/775763
21:46:53  * travis-cipart
21:47:36  <piscisaureus_>igorzi: thanks
21:49:05  * elijah-mbpquit (Remote host closed the connection)
21:50:35  <igorzi>piscisaureus_: np
21:50:46  <igorzi>piscisaureus_: any objections to this https://gist.github.com/1953469 ?
21:59:13  * rendarquit
22:00:44  * `3rdEdenquit (Quit: Linkinus - http://linkinus.com)
22:02:13  <piscisaureus_>igorzi: yeah, ok
22:08:02  <igorzi>is it possible to create an npm package without publishing it to the registry?
22:08:22  <igorzi>isaacs piscisaureus_: --^
22:08:46  <isaacs>igorzi: yes
22:08:52  <isaacs>igorzi: npm pack
22:09:31  <igorzi>isaacs: ahh thanks
22:10:05  <CIA-99>node: Igor Zinkovsky master * r67b10f8 / test/simple/test-net-pipe-connect-errors.js : fix test-net-pipe-connect-errors for windows - http://git.io/BeJN7A
22:11:02  <isaacs>igorzi:
22:11:04  <isaacs>$ npm cache clean; npm view request version --https-proxy http://localhost:3128 --proxy http://localhost:3128 -s
22:11:04  <isaacs>2.9.152
22:11:21  <isaacs>proxying https registry req over squid on http
22:11:48  * dshaw_1joined
22:11:54  <igorzi>isaacs: nice!
22:13:16  <CIA-99>node: Igor Zinkovsky master * r9be20af / (4 files in 2 dirs): update libuv to 6bbccf1fe0 - http://git.io/jLGXhg
22:13:16  * dshaw_quit (Ping timeout: 244 seconds)
22:13:46  * mikealquit (Quit: Leaving.)
22:22:41  * felixgequit (Quit: felixge)
22:24:47  <bnoordhuis>igorzi: re 9be20af: that raises ECONNREFUSED on most (all?) unix systems, not ENOTSOCK
22:25:39  * travis-cijoined
22:25:39  <travis-ci>[travis-ci] joyent/node#530 (master - 67b10f8 : Igor Zinkovsky): The build is still failing.
22:25:39  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/8cdbf01...67b10f8
22:25:39  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/775848
22:25:39  * travis-cipart
22:26:10  <igorzi>bnoordhuis: i was going based on this https://github.com/joyent/node/blob/master/test/simple/test-net-pipe-connect-errors.js#L40 so I assumed it was ENOTSOCK
22:26:41  <igorzi>bnoordhuis: I'll update the libuv test to work with ECONNREFUSED || ENOTSOCK
22:27:38  <bnoordhuis>igorzi: that would be best, i think
22:29:22  * travis-cijoined
22:29:22  <travis-ci>[travis-ci] joyent/node#531 (master - 9be20af : Igor Zinkovsky): The build is still failing.
22:29:22  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/67b10f8...9be20af
22:29:22  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/775863
22:29:22  * travis-cipart
22:34:00  <CIA-99>libuv: Igor Zinkovsky master * r702f905 / test/test-pipe-connect-error.c : test: make pipe_connect_to_file succeed with ECONNREFUSED - http://git.io/ZBEhYQ
22:34:45  * dshaw_joined
22:35:52  * travis-cijoined
22:35:52  <travis-ci>[travis-ci] joyent/libuv#113 (master - 702f905 : Igor Zinkovsky): The build is still failing.
22:35:52  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/6bbccf1...702f905
22:35:52  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/775998
22:35:52  * travis-cipart
22:36:00  * dshaw_1quit (Ping timeout: 244 seconds)
22:40:58  <CIA-99>node: Igor Zinkovsky master * r5e80321 / deps/uv/test/test-pipe-connect-error.c : update libuv to 702f905f73 - http://git.io/MMUI3g
22:54:02  * mikealjoined
22:56:27  * travis-cijoined
22:56:27  <travis-ci>[travis-ci] joyent/node#532 (master - 5e80321 : Igor Zinkovsky): The build is still failing.
22:56:27  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/9be20af...5e80321
22:56:27  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/776075
22:56:27  * travis-cipart
23:03:59  * TooTallNatequit (Quit: Leaving...)
23:05:12  <piscisaureus_>https://github.com/piscisaureus/node/compare/v8string
23:12:55  <isaacs>can you guys hit http://registry.npmjs.org/?
23:12:59  <isaacs>i'm getting ECONNREFUSED
23:13:30  <isaacs>oh, wait, i'm retarded. /etc/hosts testing.
23:13:58  <isaacs>EVERY TIME that gets me. EVERY SINGLE TIME;
23:15:08  <piscisaureus_>isaacs: no, not working for me
23:15:42  <isaacs>piscisaureus_: it's just slow. i'd pointed it at localhost, so it was ECONREFUSEDing right away
23:30:57  * dapquit (Quit: Leaving.)
23:31:57  * dapjoined
23:32:37  * TooTallNatejoined
23:34:28  <isaacs>igorzi: https://github.com/mikeal/request/pull/199
23:40:11  <igorzi>isaacs: awesome
23:40:37  <isaacs>works pretty awesomely, too.
23:41:04  <isaacs>the only thing is, if we keep going in this direction with extending http.Agent to do stuff, we're going to run into trouble.
23:41:23  <isaacs>for example, if you want to do infinite keepalives, AND tunnel https over http, you're out of luck
23:41:49  <isaacs>so we ought to think about a better api for this at some point, like 0.9ish
23:41:55  <mikeal>well
23:42:06  <mikeal>those things are kind of conflicting ideas aren't they?
23:42:41  <mikeal>like, if you wanted infinite keep alives *through your proxy* then you'd have to add support to the tunneling proxy stuff
23:43:24  <igorzi>isaacs: do you think you could also expose tunnel exports from request?
23:43:39  <bnoordhuis>the singing black man is in front of my house again...
23:43:58  <bnoordhuis>to wit, it's 0:45 AM here but that's not stopping him
23:44:08  <isaacs>bnoordhuis: you live in amsterdam?
23:44:24  <bnoordhuis>not all of the netherlands is amsterdam
23:44:29  <bnoordhuis>part of it is gouda
23:44:32  <igorzi>isaacs: might be useful if people want to use tunnel agents directly (not with request)
23:44:41  <isaacs>nono, i know that, but i thought you were in amsterdam specifically. i could be mixed up.
23:44:59  <bnoordhuis>oh, amsterdam is where c9's offices are
23:45:02  <isaacs>igorzi: if they want that, though, why not just require('tunnel')
23:45:04  <bnoordhuis>so i'm over there occasionally
23:45:07  <isaacs>igorzi: rather than request?
23:45:13  <isaacs>bnoordhuis: ahh, i see.
23:45:15  <isaacs>but yor'e in gouda?
23:45:18  <bnoordhuis>yep
23:45:54  <piscisaureus_>karnemelksloot
23:45:58  <bnoordhuis>that's the place
23:46:21  <piscisaureus_>sour milk creek
23:46:26  <mmalecki>so, I googled.
23:46:29  <bnoordhuis>so i think gouda - population 75,000 - has like one black guy
23:46:36  <mmalecki>http://www.karnemelksloot.nl/
23:46:40  <igorzi>isaacs: ok, i thought that tunnel would go away after this
23:46:40  <bnoordhuis>and of course he's got to be standing in front of my house, making a ruckus
23:46:47  <mmalecki>is this comic sans?
23:47:09  <igorzi>isaacs: (so that not to maintain 2 codebases)
23:47:11  <bnoordhuis>yeah, it's to make designers rageface
23:47:41  <mmalecki>oh, I see. I'll go and show this to our designer
23:47:42  <isaacs>igorzi: meh. can be another pull req to mikeal :)
23:47:50  <isaacs>igorzi: it's probably worth maintaining separately, though
23:48:10  <isaacs>igorzi: or users cad just do require("request/tunnel.js")
23:48:18  <igorzi>isaacs: k.. sounds good
23:48:36  <bnoordhuis>mmalecki: another thing i like to do to upset designers, is to tweak the kerning of fonts
23:48:55  <bnoordhuis>it's awesome, they don't really see it but it makes them twitchy!
23:49:36  <mmalecki>bnoordhuis: hahaha
23:49:51  <mmalecki>bnoordhuis: admit, you made this page.
23:50:00  <bnoordhuis>no, but i wish i had
23:50:23  <mmalecki>bnoordhuis: people rarely want to see frozen people on their city's homepage
23:50:40  <mmalecki>so I guess they wouldn't accept your project
23:51:23  <bnoordhuis>it wasn't that
23:51:36  <bnoordhuis>i told them i only wanted to support gopher
23:51:39  <bnoordhuis>i didn't get the gig :(
23:51:58  <piscisaureus_>you did
23:52:04  <mmalecki>well, they haven't experienced gopher awesomeness!
23:52:19  <bnoordhuis>that'd be a pretty good april fool's gag, put out a release with first-class gopher support
23:52:20  <piscisaureus_>bnoordhuis: but <marquee> really doesn't cut it nowadays
23:52:34  <mmalecki>bnoordhuis: yes.
23:52:50  <mjr_>I would like to reference an old thing as well, by mentioning <blink>
23:53:23  <mmalecki>when I was 12, I used <marquee> pretty much everywhere!
23:53:34  <mmalecki>it was so awesome.
23:53:49  <AvianFlu>I did the same, but when I was 12, it was 1996
23:53:54  <AvianFlu>so that was still actually almost cool
23:53:54  <AvianFlu>XD
23:54:16  <piscisaureus_>yeah let's do gopher support in node :-p
23:54:23  <mmalecki>lol AvianFlu
23:54:25  * piscisaureus_looks for a spec
23:54:44  <bnoordhuis>it's dead simple
23:54:46  <bnoordhuis>isaacs: you in?
23:54:47  <mmalecki>when I was 12, it was 2006, actually
23:54:55  <mmalecki>I'm quite ashamed now.
23:55:03  <piscisaureus_>http://tools.ietf.org/html/rfc1436
23:55:05  <bnoordhuis>hah, that's so cute
23:55:09  <isaacs>in what now?
23:55:18  <isaacs>oh, gopher support
23:55:19  <isaacs>heh
23:55:26  <isaacs>sure, why not.
23:55:40  <isaacs>we can add xmpp and webdav while we're at it
23:55:55  <bnoordhuis>ah, but those protocols are actually useful
23:56:00  <piscisaureus_>at c9 we actually use webdav quite extensively
23:56:01  <bnoordhuis>not to mention in use
23:56:55  <piscisaureus_>gopher long polling support would be nice
23:57:00  <bnoordhuis>hah
23:57:08  <bnoordhuis>piscisaureus_: https://github.com/joyent/libuv/pull/325 <- i want to add something like that
23:57:13  <mmalecki>and gopher-over-tls
23:57:43  <bnoordhuis>i don't think i've ever seen a gopher tls server
23:57:47  <mjr_>I worked on a "gopher over email" server back in the day.
23:57:54  <mjr_>Because not everybody had "always on" internet.
23:57:59  <bnoordhuis>mjr_: that's pretty awesome
23:58:12  <bnoordhuis>so how did it work out?
23:58:57  <mjr_>Oh, it was great.
23:59:01  <mjr_>People all over the world used it