00:03:34  * piscisaureus_joined
00:05:41  * c4miloquit (Remote host closed the connection)
00:11:52  * mikealquit (Quit: Leaving.)
00:14:41  * mikealjoined
00:23:30  * mikealquit (Quit: Leaving.)
00:31:50  * piscisaureus_quit (Ping timeout: 252 seconds)
00:39:38  * mikealjoined
00:54:48  * mikealquit (Quit: Leaving.)
00:57:37  * pooyaquit (Quit: pooya)
01:00:40  * c4milojoined
01:07:10  * c4miloquit (Remote host closed the connection)
01:07:53  * EhevuTovquit (Quit: This computer has gone to sleep)
01:08:50  * c4milojoined
01:20:07  * pooyajoined
01:22:25  * TooTallNatequit (Quit: Computer has gone to sleep.)
01:27:54  * mmaleckiquit (Quit: leaving)
01:34:39  * ericktquit (Quit: erickt)
01:39:45  * dapquit (Quit: Leaving.)
01:46:58  * lohkeypart
02:01:14  * c4miloquit (Remote host closed the connection)
09:32:55  <piscisaureus_>test
09:33:07  <doexxa>1, 2, 3
09:37:38  <indutny>test
09:46:49  * piscisaureus_quit (Ping timeout: 248 seconds)
09:58:15  * doexxachanged nick to deoxxa
09:58:22  * loladirojoined
09:58:25  * piscisaureus_joined
10:06:45  * TheJHquit (Ping timeout: 245 seconds)
10:08:40  * AndreasMadsenjoined
10:41:53  * pooyajoined
10:47:20  * abraxasquit (Remote host closed the connection)
11:08:30  * mmaleckiquit (Read error: Connection reset by peer)
11:08:42  * mmaleckijoined
11:16:24  * hzjoined
11:20:25  * hzquit (Disconnected by services)
11:20:29  * hzjoined
11:30:51  * theColejoined
11:35:02  * pooyaquit (Quit: pooya)
11:38:29  * benviejoined
12:19:00  * EhevuTovjoined
12:19:29  * hzquit (Disconnected by services)
12:19:33  * hzjoined
12:27:39  * TheJHjoined
12:30:22  * AvianFlujoined
12:32:44  * chobi_e_changed nick to chobi_e
12:34:15  * benviequit
12:34:38  * loladiroquit (Ping timeout: 255 seconds)
12:39:39  * loladirojoined
12:47:56  * loladiroquit (Ping timeout: 248 seconds)
12:48:01  <piscisaureus_>`3rdEden: Do you know anything about this bug: https://github.com/LearnBoost/socket.io-client/issues/341
12:48:16  <piscisaureus_>`3rdEden: I'm getting this all the time ...
12:50:03  * chobi_echanged nick to chobi_e_
12:50:31  * benviejoined
12:53:31  <`3rdEden>piscisaureus_ I have never had it my self, did you try to add the suggest fix to the socket.io client?
12:53:57  <piscisaureus_>`3rdEden: well, we can try that. But it comes with the label "not a fix" :-)
12:54:30  <mmalecki>piscisaureus_: did you get my email?
12:54:45  <piscisaureus_>mmalecki: we're testing your patch in production now
12:54:57  <mmalecki>piscisaureus_: sweet! how's it going?
12:55:00  <piscisaureus_>mmalecki: thanks for it. It will take a couple of hours before we can tell
12:55:16  <piscisaureus_>mmalecki: I'll let you know
12:55:37  <mmalecki>piscisaureus_: yeah, it takes some time to figure out if it's working, since they pile up. we'll have some news soon too
13:17:27  <piscisaureus_>mmalecki: ok, I think the fix is fine. Are you landing the patch in node-http-proxy anytime soon?
13:17:59  <mmalecki>piscisaureus_: yeah, after our testing is over, I'll land. give me few hours
13:18:36  <mmalecki>actually, I think that I'll put both in next tick, if user wants to write anything in the error handler, but that's a minor change
13:19:00  <piscisaureus_>mmalecki: oeh, risky
13:19:15  <mmalecki>piscisaureus_: why's that?
13:19:25  <piscisaureus_>mmalecki: anyway, the number of CLOSE_WAIT and FIN_WAIT2 connections dropped to 0 on our test proxy
13:19:44  <mmalecki>:)
13:19:51  <piscisaureus_>mmalecki: well, I dunno, this is business critical code :-)
13:19:54  <piscisaureus_>don't mess with it
13:20:04  <mmalecki>haha, okay
13:23:19  <mmalecki>piscisaureus_: also, if you guys have some node-http-proxy changes, we'd be happy to work with you on getting them into upstream
13:23:35  <piscisaureus_>mmalecki: we don't atm I think
13:23:50  <mmalecki>great :)
13:24:08  <piscisaureus_>atleast the sm config is pointing to your repo and npm package
13:24:18  <mitsuhiko>learnboost needs to rename itself. every time i read a link containing that my brain shouts "NO DON'T USE BOOST"
13:24:46  <mmalecki>piscisaureus_: sm? but yeah, that's great
13:25:18  * felixgequit (Quit: felixge)
13:28:54  * hzquit
13:33:59  * bnoordhuisjoined
13:44:09  * felixgejoined
13:44:09  * felixgequit (Changing host)
13:44:10  * felixgejoined
14:03:48  <deoxxa>mitsuhiko: agreed
14:08:43  * c4milojoined
14:27:10  * c4miloquit (Remote host closed the connection)
14:27:45  * c4milojoined
14:28:03  * c4miloquit (Read error: Connection reset by peer)
14:28:18  * c4milojoined
14:33:54  <mmalecki>piscisaureus_: https://github.com/nodejitsu/node-http-proxy/commit/0d00b06af307dc5c70c36e89617a08486eb665e2
14:44:41  <rendar>mitsuhiko: LOL :-)
14:56:16  <indutny>bnoordhuis: hey man
14:58:50  * charliesomequit (Quit: Textual IRC Client: www.textualapp.com)
15:06:44  <bnoordhuis>indutny: olla
15:06:48  <indutny>olala
15:07:18  <indutny>how are you doing, man?
15:08:11  <bnoordhuis>fine
15:08:41  <bnoordhuis>was sick for two days, getting better though
15:08:45  <bnoordhuis>how about you?
15:08:56  <mmalecki>bnoordhuis: ++ have a beer, it always helps!
15:08:57  <kohai>bnoordhuis has 22 beers
15:09:07  <indutny>bnoordhuis: fine
15:09:12  <indutny>doing some experiments with CoreAudio
15:09:13  <bnoordhuis>alcohol kills germs
15:09:24  <indutny>bnoordhuis: ouch
15:09:32  <mmalecki>bnoordhuis: yeah, there are no germs in my body anymore
15:09:33  <indutny>mmalecki: you should be already dead then
15:09:36  * pooyajoined
15:09:41  <bnoordhuis>oh, snap!
15:09:50  <mmalecki>indutny: well, my germs are dead!
15:10:04  <tjfontaine>indutny: what are you doing with coreaudio?
15:10:20  <indutny>tjfontaine: mad science
15:10:25  <indutny>tjfontaine: are you familiar with it?
15:10:28  <tjfontaine>I just always assume that
15:10:40  <tjfontaine>some, nothing in depth
15:11:00  <indutny>yeah, me too
15:11:12  * pooyaquit (Client Quit)
15:13:26  * DrPizzaquit (Ping timeout: 252 seconds)
15:13:32  * DrPizzajoined
15:13:47  * sj26quit (Ping timeout: 252 seconds)
15:15:51  * sj26joined
15:17:25  <bnoordhuis>mmalecki: good work on the websockets thing btw
15:18:25  <mmalecki>bnoordhuis: thanks, my pleasure :)
15:18:36  <indutny>bnoordhuis: a question :P
15:18:46  <bnoordhuis>indutny: an answer
15:18:47  <indutny>bnoordhuis: where should I insert `volatile` prefix?
15:18:56  * hzjoined
15:19:07  <bnoordhuis>indutny: can you be more specific?
15:19:35  <indutny>bnoordhuis: well, I've a structure with a field
15:19:48  <indutny>bnoordhuis: and I access this structure only in critical section (i.e. wrapped with locks)
15:19:55  <indutny>but sometimes magic happens
15:20:04  <bnoordhuis>white magic or black?
15:20:06  <indutny>black
15:20:09  <bnoordhuis>ow
15:20:10  <indutny>blackest of all magic
15:20:21  <tjfontaine>whys it always gotta be a black thing
15:20:23  <indutny>the property should be changed
15:20:32  <indutny>and it is
15:20:40  <indutny>but when second call happens it has the same value
15:20:50  <indutny>I'm really scared of compiler bugs
15:21:02  <indutny>I've heard they're really black magic
15:21:03  <bnoordhuis>possible, gcc is rife with them
15:21:11  <bnoordhuis>can you point me to your code?
15:21:17  <indutny>yeah, sure
15:21:23  <indutny>I'll add you to the project
15:22:23  <indutny>bnoordhuis: do you have osx machine?
15:22:28  <bnoordhuis>indutny: no
15:22:36  * loladirojoined
15:22:43  <indutny>bnoordhuis: you won't be able to build it
15:23:03  <bnoordhuis>indeed
15:23:21  <bnoordhuis>but point me to the relevant code
15:23:29  <bnoordhuis>and we'll see if my internal compiler can build it
15:28:23  * Felix___quit (Ping timeout: 245 seconds)
15:30:15  * loladiro_joined
15:30:30  * loladiroquit (Ping timeout: 240 seconds)
15:30:31  * loladiro_changed nick to loladiro
15:33:44  * pooyajoined
15:34:34  <pooya>bnoordhuis: hi! you there?
15:35:26  * pquernaquit (Changing host)
15:35:27  * pquernajoined
15:35:31  <bnoordhuis>pooya: i'm off to dinner, actually - i'll be back in a few hours
15:36:10  <pooya>:) i'll talk to you later
15:58:07  * stephankjoined
16:03:08  * loladiroquit (Quit: loladiro)
16:07:53  * ericktjoined
16:08:40  * dapjoined
16:18:43  * theColequit (Quit: theCole)
16:22:30  * chobi_e_changed nick to chobi_e
16:23:48  <piscisaureus_>isaacs: new hiring attempt?
16:25:12  * pieternjoined
16:25:32  * chobi_echanged nick to chobi_e_
16:27:59  <indutny>padam
16:28:03  <indutny>padadadam
16:28:39  <indutny>I do not respect street speaking
16:28:49  <indutny>aah
16:28:51  <indutny>twitter
16:37:08  * theColejoined
16:38:13  * felixgequit (Quit: http://www.debuggable.com/)
16:49:47  <piscisaureus_>mmalecki: actually, your patch doesn't fix it
16:50:04  <piscisaureus_>mmalecki: but I think it may not be related to websocket errors - it's just websocket all connections that leak
16:50:35  <piscisaureus_>mmalecki: I think the ws proxy is not calling .destroy, but it should since http servers are created with { allowHalfOpen: true }
16:51:20  <mmalecki>piscisaureus_: hm, interesting. so, we should destroy the socket on 'end' event?
16:51:30  <piscisaureus_>mmalecki: yes
16:51:49  <piscisaureus_>mmalecki: also, I am seeing that both ends hang
16:52:10  <piscisaureus_>mmalecki: e.g. the incoming ws connection leaks, but the outgoing one also leaks
16:52:28  <piscisaureus_>mmalecki: but in another state (CLOSE_WAIT vs FIN_WAIT2)
16:54:00  <mmalecki>piscisaureus_: okay, let me look. I don't think we were seeing both sides leak
16:56:34  <bnoordhuis>pooya: here now
16:58:10  <pooya>hi, i was looking into issues i had with node-zookeeper module and that brought me to your ev-emul code
16:59:03  <bnoordhuis>go on :)
16:59:11  <pooya>it looks like the ev_timer_again call is not working as expected
16:59:22  <pooya>i see that you have a hack in there to fix it
16:59:33  <pooya>but at least in my cast that's not working
16:59:54  <pooya>do you remember the node-zk.c code?
16:59:57  <bnoordhuis>not working in what sense?
17:01:22  * bnoordhuisquit (*.net *.split)
17:01:23  * pfox__quit (*.net *.split)
17:01:50  <pooya>node-zk sets a timer based on the value it gets from zookeeper interest function and tries to set the timer
17:02:01  <pooya>every time with that value
17:02:09  <mitsuhiko>pooya: you might want to wait for bnoordhuis to reconnect :)
17:02:12  <pooya>but libuv is not really supporting changing the timer everytime
17:02:19  <pooya>ah! right
17:02:51  <pquerna>mmm, node-zk.
17:02:58  <pooya>my eyes are automatically ignoring the leave messages
17:03:28  * bnoordhuisjoined
17:03:28  * pfox__joined
17:03:51  <bnoordhuis>pooya: ^
17:04:22  <bnoordhuis>net split?
17:04:30  <pooya>yeah
17:05:08  <pooya>i was saying node-zookeeper sets a timer based on the value it gets from zookeeper interest function and tries to set the timer on every iteration but libuv doesn't really seem to support that sort of timer
17:05:27  <bnoordhuis>why does node.js all of a sudden have 226 ops?
17:05:41  <pooya>https://github.com/joyent/libuv/blob/master/include/uv.h#L1127
17:06:23  <bnoordhuis>pooya: you mean it updates the timer at every tick of the event loop?
17:06:23  * arlolrajoined
17:06:29  <pooya>yeah
17:07:49  <pooya>from the code above: Note that if the repeat value is set from a timer callback it does not immediately take effect.
17:08:43  <bnoordhuis>pooya: yep, that's how it works right now
17:09:38  <pooya>i was thinking of just porting that module to libuv
17:09:55  <pooya>but have no background in that, can you give me some pointers?
17:10:08  <pooya>need something similar to a select with a timeout
17:10:26  <bnoordhuis>pooya: you mean poll a fd and timeout after x milliseconds?
17:12:00  <pooya>yeah exactly
17:12:23  <pooya>actually or this might be a better scenario
17:12:35  <pooya>to use uv_thread
17:12:55  <pooya>since zookeeper needs to constantly check the server and let say node-inspector pausing it will break it
17:13:29  <bnoordhuis>oh, that's easy
17:13:31  <pooya>any suggestions? does it worth to create the thread
17:13:44  <bnoordhuis>create an async handle in the main thread with uv_async_init
17:13:52  <bnoordhuis>then create a new thread with uv_thread_create
17:14:02  <bnoordhuis>from that new thread, signal the main thread with uv_async_send
17:14:26  <bnoordhuis>if you need locking primitives, there's a bunch of stuff in src/unix/thread.c
17:15:01  <pooya>know of any sample drivers doing that?
17:15:45  * theColequit (Quit: theCole)
17:17:15  <bnoordhuis>pooya: i'm afraid not
17:17:30  <bnoordhuis>but you can find some examples in the test/ dir
17:17:36  <bnoordhuis>libuv's test dir, that is
17:18:32  <pooya>cool
17:18:43  <pooya>can you confirm that this is the case that without a thread
17:19:01  <pooya>node-inspector pause will make the timers stop?
17:19:38  * ericktquit (Quit: erickt)
17:20:01  * Raynos_changed nick to Raynos
17:20:36  * hzquit (Disconnected by services)
17:20:39  * hzjoined
17:20:59  * TooTallNatejoined
17:21:55  <bnoordhuis>pooya: i don't understand the question
17:22:40  <bnoordhuis>or rather, it's open to multiple interpretations :)
17:23:06  <pooya>this module needs to constantly ping the server other wise it loses it's state. now, what I observed is that
17:23:33  <pooya>if someone tries to debug a code that is using the zookeeper module
17:23:50  <pooya>when it adds a break point somewhere and pauses the execution
17:23:51  <piscisaureus_>mmalecki: yeah, I just checked it out
17:24:09  <pooya>it errors out.
17:24:10  <piscisaureus_>mmalecki: all proxied websocket connections leak fds
17:24:29  <piscisaureus_>mmalecki: the only thing that I am not 100% sure about is that node-http-proxy is to blame. It might be us, somehow
17:25:05  <pooya>i assumed it is because the timers are not being called in that state, and thus i better use a thread instead of timer/poll approach
17:25:16  <mmalecki>piscisaureus_: no way, that'd kill our production load balancers already
17:25:44  <piscisaureus_>mmalecki: alright, then it must be our code :-)
17:26:25  <mmalecki>piscisaureus_: still, we'll investigate. we can repro CLOSE_WAIT and FIN2 stuff, but definitely less of them than before the patch
17:26:57  <bnoordhuis>pooya: oh, like that. i think the answer is yes
17:27:10  <bnoordhuis>pooya: but it depends on if node-inspector pauses all threads or just the main thread
17:27:37  <pooya>ah, good point. i have to test that then
17:28:54  <bnoordhuis>mmalecki: re FIN_WAIT_2, have you seen https://github.com/joyent/node/issues/3613 ?
17:33:03  <mmalecki>bnoordhuis: interesting. let me `ssh root@nodejitsu.com` for a bit.
17:35:25  * bnoordhuisis afk & biab again
17:37:23  * bnoordhuisquit (Read error: Operation timed out)
17:42:18  * ericktjoined
17:47:11  <TooTallNate>isaacs: the nopt changes work great! thanks!
17:47:51  * mikealquit (Quit: Leaving.)
17:48:49  * theColejoined
17:49:50  * mikealjoined
18:19:31  <piscisaureus_>mmalecki: it seems to be happening only on AWS, but not locally ...
18:19:55  <piscisaureus_>mmalecki: but on AWS we have like 100% reproduction rate... Make a websocket connection, close it, and you've just leaked an fd
18:20:27  <mmalecki>piscisaureus_: we're seeing some FIN_WAIT_1 sockets, but not FIN_WAIT_2
18:20:34  <mmalecki>piscisaureus_: also, any idea why?
18:20:58  <piscisaureus_>mmalecki: we're still in the dark. I am sort of tired now, so the US team is taking over
18:21:03  <piscisaureus_>mmalecki: I will let you know
18:21:31  <`3rdEden>are you guys using the same websocket libraries?
18:21:35  <mmalecki>piscisaureus_: okay, can you have someone join #libuv? I'm kind of interested and I'd be happy to help them
18:21:57  <mmalecki>or, can I join some channel?
18:23:03  <AvianFlu>we could even all join like, ##fixthefuckingproxy or some other mutually acceptable channel
18:24:23  <piscisaureus_>It's just fabian that's gonna work on it for now
18:24:32  <piscisaureus_>I told him to join libuv to find you guys
18:24:59  <piscisaureus_>I wanna go do some node stuff again
18:25:03  <piscisaureus_>it feels like a long time ago
18:31:20  * mikealquit (Quit: Leaving.)
18:31:44  <AvianFlu>piscisaureus_, ++
18:31:44  <kohai>piscisaureus_ has 14 beers
18:34:01  * beachdogquit (Quit: beachdog)
18:34:31  * beachdogjoined
18:34:39  <isaacs>piscisaureus_: yeah
18:34:59  <isaacs>piscisaureus_: same hiring attempt, really. just took a while to get it actually up on the actual website.
18:36:50  * beachdogpart
18:37:04  * beachdogjoined
18:37:31  <isaacs>TooTallNate: can you push an update to node-gyp to allow nopt 2.x?
18:37:37  * theColequit (Quit: theCole)
18:37:43  <TooTallNate>isaacs: already did, see v0.6.1
18:37:49  <isaacs>oh, ok
18:38:08  <isaacs>rad!
18:41:04  * EhevuTov_joined
18:42:42  * loladirojoined
18:43:00  * EhevuTovquit (Ping timeout: 240 seconds)
18:46:13  * loladiro_joined
18:46:52  * loladiroquit (Ping timeout: 248 seconds)
18:46:52  * loladiro_changed nick to loladiro
19:11:29  * dshaw_joined
19:15:03  * `3rdEdenquit (Quit: EPIPE broken)
19:35:34  <CIA-108>node: isaacs v0.8 * r0a0002b / (137 files in 26 dirs): npm: Upgrade to 1.1.45 - http://git.io/QH5nxg
19:35:37  <isaacs>Going to start 0.8.4 this afternoon. probably release it tomorrow morning
19:35:47  <isaacs>(times inUS/Pacific of course)
19:36:14  <isaacs>for europeans: Going to start 0.8.4 tonight. Probably release it tomorrow afternoon.
19:39:27  <chilts>and for Kiwis? it's be the early hours of the morning before daybreak :)
19:40:57  <isaacs>for Kiwis, Aussies, and indutny: Going to start 0.8.4 in the middle of the night. Probably release it in the middle of some night.
19:41:12  <indutny>good
19:41:20  <tjfontaine>all times UTC from here on out :)
19:41:37  <isaacs>i actually have not switched irssi from UTC. it's kind of nice
19:41:38  <mmalecki>hey, what about guys on Antarctica?
19:42:04  <isaacs>for people in antarctica, i'ts night time now, and will be for the next few months.
19:42:29  <isaacs>but it's lunch time in california, so i'll bbiab :)
19:42:38  * isaacspriorities!
19:42:58  * benviequit (Ping timeout: 244 seconds)
19:46:52  * theColejoined
19:49:28  * sh1mmerjoined
19:52:32  <sh1mmer>Dunno if you saw this previously, but it's got a few interesting points http://lionet.livejournal.com/99984.html
19:54:05  * xaqjoined
19:54:27  <chilts>yeah, I use UTC for all my servers (and therefore where I use irssi)
19:55:04  <chilts>I used to work at ESA where everything was Zulu (essentially UTC but military style)
19:55:07  <chilts>I liked it and havve kept it ever since
19:55:23  <AvianFlu>"Zulu Time" just sounds bad ass, too
19:55:29  <AvianFlu>at least as far as counting time is concerned
19:56:40  <chilts>heh, indeed
20:08:42  * lohkeyjoined
20:13:03  * theColequit (Quit: theCole)
20:15:04  * dshaw_quit (Quit: Leaving.)
20:19:11  * EhevuTov_quit (Quit: This computer has gone to sleep)
20:23:28  * AndreasMadsenquit (Remote host closed the connection)
20:28:29  <piscisaureus_>AvianFlu: mmalecki: https://github.com/ajaxorg/node-http-proxy/commit/c6d4e508615f83917fa7c889298a63f2415c318f <-- that fixes it for us
20:29:47  <mmalecki>piscisaureus_: the FIN_WAIT_2 problem, right?
20:29:56  <mmalecki>also, sweet, we'll test
20:30:19  <piscisaureus_>mmalecki: yeah. It seems that somehow when we .end() a socket, socket.io doesn't end the socket always
20:30:24  <piscisaureus_>which causes the connecton to stay open
20:30:45  <AvianFlu>that makes a lot of sense.
20:30:49  <piscisaureus_>mmalecki: this is obviously not "correct" but as it was it also wasn't correct, because on the "end" event the "data" listener was removed
20:30:56  <piscisaureus_>from both ends
20:31:02  <piscisaureus_>so effectively this does the same
20:31:32  <mmalecki>okay, does it fix CLOSE_WAIT for you?
20:31:41  <piscisaureus_>basically a websocket can never be in a half-open state now, and before it could but no data would be passed through anyway
20:31:45  <piscisaureus_>mmalecki: it seems so
20:31:52  <piscisaureus_>we are rolling it into production right now
20:32:22  <mmalecki>okay, let me roll it out too, then I'll cherry-pick
20:32:28  <mmalecki>you guys are awesome for fixing that
20:32:52  <mmalecki>AvianFlu: rolling out now
20:33:12  <AvianFlu>excellent
20:36:56  <mmalecki>rolled out to all production load balancer
20:37:01  <mmalecki>*balancers
20:37:17  <piscisaureus_>hmm
20:37:27  <piscisaureus_>it seems that you have smoother upgrade path than us :-(
20:37:57  <mmalecki>heh, just some kickass devops tools
20:38:44  <AvianFlu>mmalecki and I sit around working on R&D projects to make devops not take thinking
20:38:50  <AvianFlu>I'd call it a hobby, but it's more of a compulsion
20:39:31  <mmalecki>well, I bet we're the only company doing p2p devops with our own p2p implementation
20:40:07  <tjfontaine>the best sysadmins (or devops) are the lazy ones
20:40:20  <mmalecki>tjfontaine: ++
20:40:21  <kohai>tjfontaine has 3 beers
20:41:13  * arlolraquit (Quit: Linkinus - http://linkinus.com)
20:41:15  <creationix>why does everyone in #node.js have op status?
20:41:24  <mmalecki>creationix: op party!
20:41:50  <indutny>that's what ryah did :P
20:42:21  <mmalecki>creationix: there you go, have some too!
20:43:30  <mmalecki>piscisaureus_: no bad sockets yet
20:47:57  <piscisaureus_>mmalecki: not here, but I've only upgraded one of the proxy servers so far
20:48:35  <mmalecki>piscisaureus_: well, that seems pretty slow
20:48:47  <piscisaureus_>mmalecki: yeah upgrading the proxies is all manual :-(
20:49:01  <piscisaureus_>mmalecki: the other stuff is more or less automated but this lacks tooling
20:49:28  <mmalecki>piscisaureus_: the simplest you can get is creating a text file with balancer IPs delimeted by newline
20:49:43  <mmalecki>piscisaureus_: and a mass SSH script
20:49:46  <piscisaureus_>yeah
20:49:53  <piscisaureus_>it's just lacking
20:49:56  <mmalecki>piscisaureus_: actually, let me show you one of my scripts
20:49:58  <piscisaureus_>this is not really my job :-)
20:50:43  <mmalecki>it's the old thing, but the new thing is, well, SECRETZ
20:51:18  * hzquit (Ping timeout: 272 seconds)
21:04:49  <mmalecki>piscisaureus_: win, still no bad sockets. I'll land, thank you very much
21:04:55  <mmalecki>piscisaureus_: also, om
21:04:57  <mmalecki>*pm
21:05:17  <piscisaureus_>mmalecki: np, that was important for us :-)
21:05:26  <piscisaureus_>mmalecki: will take a look at your code, have to fix this stuff first ....
21:06:51  <mmalecki>ok, that's landed
21:07:51  <piscisaureus_>mmalecki: kewl
21:07:59  <piscisaureus_>we don't have to fork after all :-p
21:09:34  <mmalecki>hey, open source!
21:10:47  * kohaiquit (Ping timeout: 260 seconds)
21:11:44  * hzjoined
21:15:49  * kohaijoined
21:16:40  * dshaw_joined
21:18:01  * benviejoined
21:26:33  * paddybyersjoined
21:29:39  * hzquit
21:38:07  <isaacs>piscisaureus_: Didn't we used to do something special with EPIPE? like, silently just kind of close the pipe or something?
21:38:26  <piscisaureus_>isaacs: what context?
21:39:33  <isaacs>piscisaureus_: So, i have a server that gets a SIGINT, and does a graceful shutdown in that instance.
21:39:48  <isaacs>piscisaureus_: in there, it calls console.log()
21:40:15  <isaacs>piscisaureus_: if I pipe the server's output to |cat or something, then it throws an EPIPE, because the cat is dead when it tries to log
21:40:25  <piscisaureus_>isaacs: yeah. that's just what happens...
21:40:32  <piscisaureus_>isaacs: I don't recall we did anything special
21:40:52  <piscisaureus_>isaacs: we ignore SIGPIPE of course, otherwise the server would already be dead as soon as cat dies
21:44:43  <isaacs>dead cat in the pipe... there's some sort of schroedinger's plumbing joke here somewhere
21:45:13  <isaacs>ok, i'm just gonna swallow EPIPE then
21:46:05  <piscisaureus_>process.stdout.on('error', function(){})
21:46:29  <isaacs>yep
21:46:56  * EhevuTovjoined
21:51:49  <indutny>creationix: hey man
21:52:01  <indutny>can you recommend me something like msgpack, but working with 0.8
21:52:53  <indutny>isaacs: ?
21:52:55  <indutny>anyone?
21:53:02  <indutny>I really need to put my data in binary somehow :P
21:55:08  <creationix>indutny, what's wrong with my msgpack-js lib
21:55:16  <indutny>dunno
21:55:22  <indutny>is it faster than binary stuff?
21:55:29  <creationix>it's pretty fast
21:55:39  <indutny>I really need to be able to encode/decode 100 message/sec
21:55:40  <creationix>the slowest part is utf8 decoding
21:55:47  <indutny>does it works with Buffers?
21:55:47  <creationix>but not sure if C++ addons will help that
21:55:50  <creationix>yep
21:55:55  <creationix>I extended msgpack
21:56:03  <creationix>json-able values + Buffer + undefined
21:56:09  <indutny>cool
21:56:23  <indutny>creationix: I'll use your lib then
21:56:25  <creationix>for number and array heavy workloads it's way faster than JSON.*
21:56:47  * loladiroquit (Ping timeout: 264 seconds)
21:56:48  <creationix>indutny, awesome, since we use it heavily at c9, I have to make it fast
21:57:04  <indutny>:)
21:57:05  <indutny>cool!
21:57:27  <creationix>try it on your messages and see how it performs
21:57:30  <indutny>yeah
21:57:33  <indutny>I've to create an app first
21:57:39  <indutny>going to send UDP packets with msgpack contents
21:57:45  * rendarquit
21:57:47  <creationix>I've seen everywhere from 5 times slower than JSON.parse to 50 times faster
21:58:12  <creationix>indutny, also if you need framing, I have a simple deframer that uses 32bit length headers
21:58:18  <creationix>my msgpack parser is not streaming
21:58:28  <indutny>no, I do not need streaming
21:58:35  <indutny>I just need it to be blazingly fast
21:58:41  * creationixhasn't used udp
21:58:43  <indutny>to encode 400-500 bytes packets
21:59:12  <creationix>so in udp, do packets not get broken up and put back together like in tcp?
22:00:05  * mmalecki_joined
22:00:28  <indutny>no
22:00:31  <indutny>but they may not arrive
22:00:40  <indutny>though can't arrive partially
22:00:53  <creationix>ok, as long as you get either the whole message or none of it, then you're good
22:01:10  <creationix>not sure if you'll need a checksum or just depend on failed parses
22:02:35  * loladirojoined
22:02:49  * mmaleckiquit (Ping timeout: 248 seconds)
22:10:28  * beachdogquit (Quit: beachdog)
22:22:33  <indutny>creationix: will decode Buffers as Buffers?
22:25:04  <chilts>indutny: yeah, it will : https://github.com/creationix/msgpack-js#extension
22:25:23  <indutny>ok
22:25:24  <indutny>thanks
22:26:54  * c4miloquit (Remote host closed the connection)
22:27:00  <ryah>what's the deal with tools/gyp_addon ?
22:27:19  <ryah>isaacs, TooTallNate --^
22:27:30  <TooTallNate>ryah: it builds addons
22:27:34  <TooTallNate>ryah: you wrote it :p
22:27:43  <TooTallNate>node-gyp invokes that under the hood
22:27:51  <TooTallNate>for its "configure" step
22:27:54  <ryah>what does node-gyp do that gyp_addon doesn't?
22:28:00  <ryah>what does configure do?
22:28:31  <TooTallNate>ryah: grabs the config from `process.config`, determines which arch to build for, i think a couple other things
22:28:55  <ryah>why can't that just be added to gyp_addon?
22:29:41  <TooTallNate>ryah: gyp_addon is python, and then would like expect a globally installed node, or we'd have to specify the path to a node executable to use
22:30:32  <TooTallNate>ryah: like node-waf now, checks for a global node, which is fine usually
22:31:08  * loladiroquit (Quit: loladiro)
22:31:43  <ryah>can we pull gyp_addon out of tools/ and into node-gyp then?
22:32:03  <TooTallNate>that'd be fine with me
22:32:07  <TooTallNate>addon.gypi too
22:32:36  <ryah>where is node-gyp in the node source?
22:32:50  <ryah>./deps/npm/node_modules/node-gyp
22:33:00  <ryah>ok..
22:33:01  <TooTallNate>that ^
22:33:10  <ryah>i dont like that our tests require npm
22:33:13  <ryah>but whatever
22:33:34  <ryah>so basically we're saying npm is required to build addons
22:34:02  <ryah>if npm is shipping node-gyp, we might as well get away from telling people to run node-gyp directly
22:34:11  <ryah>isn't there a "npm build" command?
22:34:23  <ryah>basically im unhappy having all these different tools
22:34:28  <ryah>would be nice to make it simple..
22:34:55  <isaacs>TooTallNate: https://github.com/isaacs/node/commit/2a7b226faf5c8252c6695da75b7cf3684b3cfb2b lgty? this is hurting me a little bit right now.
22:35:31  <isaacs>ryah: if you have a bindings.gyp file, then npm will install your thing.
22:35:35  <TooTallNate>ryah: i've been telling people, just run `npm install` and npm will take care of it. If you're a native module author, then `npm install -g node-gyp` adds (some, little) value
22:35:37  <isaacs>ryah: people don't need to run node-gyp directly.
22:35:55  <TooTallNate>isaacs: which branch is that on?
22:36:17  <isaacs>TooTallNate: it's against master, but i am thinking the patch ought to be applie dto v0.8
22:36:38  <isaacs>oh, sorry, i just gave you the commit, not hte pull: https://github.com/joyent/node/pull/3757
22:37:20  <TooTallNate>`make -j8` GO!!!
22:37:30  * isaacsjealous
22:37:53  <ryah>so, yes, please move addon_gyp out of tools
22:38:22  <TooTallNate>ryah: sounds good. care to create a ticket?
22:38:25  <ryah>and or write it with a node script
22:38:31  <isaacs>ryah, TooTallNate +1
22:38:33  <ryah>s/write/wrap
22:38:46  <isaacs>it should be part of node-gyp
22:38:47  <TooTallNate>ryah: that too could be a possibility
22:38:55  <TooTallNate>(it's a very small script anyways)
22:39:19  <piscisaureus_>doing devops feels like slacking
22:39:23  <TooTallNate>ya, there's no reason node-gyp couldn't do that
22:39:26  <TooTallNate>directly in JS
22:39:38  <piscisaureus_>it's like one of those days wasted installing your pc
22:39:40  * mmalecki_quit (Ping timeout: 255 seconds)
22:39:51  <isaacs>TooTallNate: i am perfectly happy leaving it up to you what bits of gyp shoudl be js and which bits should be python
22:40:11  <isaacs>the fact that it pretty much Just Works, and I don't have to look at it, is awesome.
22:40:27  <TooTallNate>isaacs: thanks :)
22:40:27  <ryah>so node-gyp is simply a wrapper for addon_gyp ?
22:40:35  <ryah>seems silly to have a special command for that
22:40:47  <isaacs>ryah: it also fetches the appropriate node headers and does a bit of stuff.
22:40:58  <ryah>can we just have tools/addon_gyp.js ?
22:41:07  <ryah>yeah, i dont like that either...
22:41:09  <TooTallNate>ryah: that + it downloads header files for your node version, and then executes `make` on unix or `msbuild` on windows
22:41:10  <isaacs>ryah: sure, or we could have a separate thing that npm just calls.
22:41:13  <ryah>why can't we install the headers?
22:41:26  <ryah>downloading the whole node source code seems silly
22:41:36  <TooTallNate>ryah: we could release header-only tarballs
22:41:49  <ryah>the build tool should not require internet
22:42:09  <TooTallNate>ryah: use the --nodedir switch
22:42:13  <ryah>:/
22:42:18  <ryah>why can't we just install the headers?
22:42:24  <ryah>we're already installing like a million files
22:42:28  <isaacs>ryah: patch welcome.
22:42:44  <TooTallNate>honestly, i think this methods has prevented a lot of potential problems
22:42:57  <ryah>such as?
22:43:03  <piscisaureus_>that would be a patch for product.wxs ]>:)
22:43:04  <TooTallNate>with node-waf we would see bug reports all the time concerning header files that didn't match the version of node that's running
22:43:15  <TooTallNate>missing symbols, etc.
22:43:34  <ryah>put the header files in the node binary - something
22:43:53  <isaacs>putting them in the binary itself is an interesting idea.
22:43:56  <isaacs>i dont' think we ever tried that
22:43:59  <TooTallNate>it is
22:44:03  <piscisaureus_>ehm
22:44:11  <piscisaureus_>so how do you include that then?
22:44:16  <ryah>why would people have header files that didn't match the version?
22:44:26  <ryah>(lets understand this before we do something crazy)
22:44:28  <piscisaureus_>why don't we put npm in the node binary?
22:44:36  <piscisaureus_>sounds like insanity to me
22:44:54  <ryah>i would put npm in the node binary
22:45:03  <TooTallNate>ryah: frankly i think it had to do with version managers written poorly (n :p)
22:45:04  <isaacs>ryah: because they install it from source one day, then later, they forget and install from yum which only installs the bin, then later on they install another version that overwrites the headers but doesn't overwrite the binary (since it's in /opt/local/ihatemylife/bin/, not /usr/local/bin)
22:45:04  <ryah>i dont like shipping multiple files
22:45:33  <isaacs>TooTallNate: i've seen more problems stemming from apt and yum repositories trying to be clever.
22:45:43  <TooTallNate>fair enough
22:45:56  <ryah>node --header > /tmp/node.h
22:45:57  <kohai>node has -1 beer
22:46:09  <ryah>*shrug*
22:46:12  <TooTallNate>i like it
22:46:15  <isaacs>ryah: if it was easier to put everything in teh node binary, and either spew it out on demand, or load it from memroy, that'd be great.
22:46:20  <TooTallNate>and that would kill the internet for node-gyp being required
22:46:41  <piscisaureus_>so won't that make our memory usage go up?
22:46:45  <piscisaureus_>the header is prolly not so bad
22:46:45  <isaacs>it's just never been the highest priority problem.
22:46:53  <piscisaureus_>although we would have to put uv.h etc in there as well
22:47:04  <ryah>heh
22:47:08  <ryah>we could comrpess them
22:47:11  <ryah>since we ship zlib too
22:47:12  <ryah>:)
22:47:12  <piscisaureus_>putting npm in the binary -> mega binary.
22:47:14  <isaacs>yep
22:47:30  <isaacs>we could also move tar into core
22:47:37  <isaacs>and just put gzipped tarballs in the binary
22:47:49  <piscisaureus_>we should move facebook into core
22:47:50  <isaacs>and read them out of the tarball, without ever having to even extract them to the fs proper
22:47:53  <isaacs>YES!
22:47:57  <isaacs>ALL THE FACES, ALL TEH BOOKS!
22:48:00  <piscisaureus_>require('facebook').listen(80)
22:48:08  <piscisaureus_>FTW!!!1
22:48:30  <isaacs>lol
22:49:04  <isaacs>i think we can probably stop at the headers.
22:49:07  <ryah>it might be possible to unmap these memory regions once we start
22:49:12  <TooTallNate>isaacs: you patch LGTM btw
22:49:17  <ryah>to not effect memory perf
22:49:21  <piscisaureus_>ryah: haha.
22:49:26  <isaacs>TooTallNate: thanks. i'm landing on v0.8. tests all pass still, and api isn't changed.
22:49:34  <TooTallNate>isaacs: ya sounds good
22:49:37  <piscisaureus_>ryah: it's unlikely that it'll actually be paged in, so it won't affect memory perf that much
22:49:42  <CIA-108>node: isaacs v0.8 * rf4f0daa / (6 files in 4 dirs): V8: Upgrade to - http://git.io/MTBMvQ
22:49:42  <CIA-108>node: isaacs v0.8 * r2c48766 / deps/v8/build/common.gypi : v8: Reapply floating patches - http://git.io/lLIL0Q
22:49:42  <CIA-108>node: isaacs v0.8 * re4c9c9f / (3 files in 2 dirs): readline: Remove event listeners on close - http://git.io/47Dl8A
22:49:44  <piscisaureus_>ryah: but I don't think you can page 'em out
22:49:54  <piscisaureus_>so it will still show up as RSS in ps
22:50:06  <piscisaureus_>er, as some other type of memory, not RSS
22:50:13  <ryah>would be super nice to be able to do node --npm > /tmp/npm.tar.gz
22:50:21  * EhevuTovquit (Quit: This computer has gone to sleep)
22:50:29  <ryah>well
22:50:41  <ryah>maybe not
22:50:43  <ryah>i dont know
22:50:49  <piscisaureus_>it's sort of pointless
22:50:54  <ryah>anyway i made an issue for tools/addon_gyp
22:51:02  <piscisaureus_>http://www.youtube.com/watch?v=Zx1_6F-nCaw
22:51:11  <ryah>got to figure out something because having rnadom unusable script laying around is confusing
22:51:13  <isaacs>we could just have node dump its headers into some predictable spot, and then overwrite itself with a headerless bin on first run
22:51:30  <piscisaureus_>please
22:51:35  <ryah>why can't node-gyp ship the headers?'
22:51:45  <ryah>sigh
22:51:46  <ryah>i dont know
22:51:47  <piscisaureus_>why not just shit it with the installer?
22:51:49  <ryah>i fucking hate computers
22:51:59  <isaacs>ryah: because node-gyp will live longer than a specific version of node on your computer.
22:52:09  <isaacs>ryah: you'll upgrade node without upgrading node-gyp, or vice versa
22:52:14  <piscisaureus_>yeah
22:52:16  <piscisaureus_>so fix that :-)
22:52:30  <piscisaureus_>I mean, `make install` already installs the headers and stuff
22:52:51  <piscisaureus_>now we just need to stuff it into the pkg and msi, et vo├Čla
22:53:04  * ryahis with bert
22:53:41  <ryah>not like our interface changes so much
22:53:54  <ryah>anyway
22:55:17  <ryah>interacting with all possible linux distributions / macintosh shit is really annoying
22:55:40  <ryah>we should just ship gcc with our stuff
22:55:59  <ryah>s/gcc/clang/
22:57:43  <ryah>isaacs: txt me when you leave work and i'll head down there - it'll probably take me about the same amoun tof time to get there as it takes you to walk there
22:57:58  <CIA-108>node: Ben Noordhuis v0.8 * r1513848 / lib/net.js : net: fix Socket({ fd: 42 }) api - http://git.io/PbPfSA
22:58:16  <isaacs>ryah: sure thing
22:58:21  <ryah>see ya.
22:58:22  * chobi_e_changed nick to chobi_e
22:58:22  * ryahaway
22:58:48  <isaacs>piscisaureus_: puttingit in the pkg and msi is not enouhg
22:59:09  <isaacs>piscisaureus_: we also need to convince the linux fundamentalists that it's ok for a thing to install more than one file.
22:59:19  <isaacs>piscisaureus_: without '-dev' or 'lib' on the name
23:00:03  <isaacs>chrislea's dpkg's are a pretty faithful 'make install', but he's unusually sane.
23:01:11  * chobi_echanged nick to chobi_e_
23:01:34  * paddybyersquit (Quit: paddybyers)
23:04:48  <piscisaureus_>well
23:04:54  <piscisaureus_>that leaves the yum package
23:05:06  <piscisaureus_>nobody cares about the rest
23:05:19  <piscisaureus_>I mean, you use netbsd, sort it out yourself
23:05:35  <tjfontaine>ports based systems are jsut wrappers around make install anyway, right?
23:05:59  <CIA-108>node: isaacs v0.8.4-release * r51261f0 / (AUTHORS ChangeLog src/node_version.h): 2012.07.25, Version 0.8.4 (Stable) - http://git.io/2LcIwg
23:06:53  <piscisaureus_>isaacs is getting addicted to making releases
23:06:53  <piscisaureus_>:-)
23:07:34  * isaacstopic: Liberty (release freely). Unity (release together). Velocity (release often).
23:08:12  <isaacs>piscisaureus_: the work for a release goes way up with the distance from the last release.
23:09:36  * isaacstopic: Liberty. Unity. Velocity.
23:10:25  <isaacs>there's an RC0 in the usual place.
23:10:38  <tjfontaine>release freely has some interesting hidden meaning I'm sure
23:11:11  <piscisaureus_>isaacs: I will test tomorrow. I am sort of dead
23:11:38  <isaacs>kk. have a good sleep :)
23:11:57  <piscisaureus_>I hate flying. It kills me every time for a couple of days
23:12:01  <isaacs>yeah, it's rough
23:12:13  <isaacs>you coming to node dublin?
23:12:19  <isaacs>isn't that like, right near you?
23:12:25  <piscisaureus_>isaacs: not that I know of. I am going to lxjs tho
23:12:47  <piscisaureus_>isaacs: I know nothing about node-dublin :_)
23:12:49  <isaacs>you should do node-dublin, too
23:12:51  <isaacs>find out :)
23:13:03  <isaacs>i bet cian would love to have you and/or ben there.
23:13:19  <piscisaureus_>he should talk to me, then :-)
23:13:23  <indutny>hey people
23:13:29  <indutny>anyone has two macs in one network
23:13:45  <indutny>I think I got some stuff working in my mad science project
23:14:18  <indutny>though it's working only in local network for now
23:14:23  <tjfontaine>hm?
23:14:32  <indutny>tjfontaine: do you have two macs?
23:14:39  <tjfontaine>sure
23:14:42  <isaacs>indutny: not where i'm at right now, but i do at home
23:14:52  <indutny>tjfontaine: sorry, I trust isaacs more :P
23:14:54  <indutny>I seen him
23:14:57  <indutny>isaacs: cool
23:15:15  <piscisaureus_>isaacs: btw - http needs to stay in core. http server at the very least
23:15:19  <tjfontaine>haha
23:16:39  <tjfontaine>what about extending js2c to support the contents of a directory as a single module?
23:19:29  <piscisaureus_>anyway, /me quyits
23:20:05  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:23:07  * c4milojoined
23:36:14  * mikealjoined
23:40:52  * mikealquit (Client Quit)
23:43:33  <indutny>ttyl everyone
23:56:51  * mikealjoined
23:58:12  * beachdogjoined
23:59:33  * mikealquit (Client Quit)