00:00:01  <bnoordhuis>SO_KEEPALIVE simply turns keep-alive mode on, TCP_KEEPALIVE or TCP_KEEPIDLE sets the delay
00:01:21  <CIA-53>libuv: Bert Belder keepalive * rc0792e5 / (src/win/tcp.c src/win/winsock.h): Windows: the correct way to make TCP_KEEPALIVE work on MinGW - http://git.io/RBOvEA
00:01:43  <piscisaureus_>^-- igorzi bnoordhuis
00:04:00  <piscisaureus_>I admit, I was lazy and did the Wrong Thing™
00:07:30  <piscisaureus_>bnoordhuis: btw did you eventually end up compiling an actual extension w/ my patches?
00:07:40  <bnoordhuis>piscisaureus_: yes and it worked
00:07:46  <piscisaureus_>:-)
00:07:47  <piscisaureus_>nice
00:08:38  <piscisaureus_>igorzi: does the above keepalive patch look right to you?
00:09:34  <igorzi>piscisaureus_: yep, lgtm
00:10:08  <CIA-53>libuv: Bert Belder master * rc0792e5 / (src/win/tcp.c src/win/winsock.h): Windows: the correct way to make TCP_KEEPALIVE work on MinGW - https://github.com/joyent/libuv/commit/c0792e54052bd3222c3b00e45f7e81c87187504a
00:10:09  <piscisaureus_>ok, thnx
00:10:56  <piscisaureus_>I'll have to quit again
00:15:17  * piscisaureus_quit (Ping timeout: 252 seconds)
00:23:36  * dapquit (Quit: Leaving.)
00:24:54  * piscisaureus_joined
00:30:41  * piscisaureus_quit (Read error: Connection reset by peer)
00:31:09  * piscisaureus_joined
00:45:10  * bnoordhuisquit (Ping timeout: 244 seconds)
00:48:13  * piscisaureus_quit (Ping timeout: 240 seconds)
01:04:02  * AvianFlu_joined
01:04:54  * AvianFluquit (Ping timeout: 255 seconds)
01:14:12  <piscisaureus>Hmm. Seems that node::DLOpen can use some more cleaning
01:15:16  * piscisaureus_joined
01:20:08  <ryah>piscisaureus_: is it working?
01:20:22  <piscisaureus>ryah: yeah
01:21:08  <piscisaureus>ryah: but the way I report statuc is inconsistent - it returns -1 with errno sometimes, it throws sometimes, it returns Undefined() on success
01:21:14  <piscisaureus>ryah: that's gotta be better
01:21:25  <piscisaureus>*status
01:21:39  <ryah>piscisaureus: has ben tested this with unix addons?
01:21:48  <ryah>we need to make sure that's still working
01:21:49  <piscisaureus>ryah: yep
01:21:58  <ryah>k
01:22:02  <piscisaureus>ryah: and I built a small windows addon that uses uv and v8, and it workss
01:22:06  <ryah>nice
01:22:16  <piscisaureus>ryah: the only thing I don't know, should I throw from the binding or set errno?
01:22:22  <ryah>how did you do the build system?
01:22:32  <ryah>throw from the binding
01:22:33  <piscisaureus>ryah: with gyp
01:23:11  <ryah>piscisaureus: a blog post on nodejs.org after v0.6.0 would be nice
01:23:14  <ryah>explaining how to do that
01:23:31  <piscisaureus>ryah: I had to add some include paths (since there's no make install) and we now have to define NODE_BUILDING_EXTENSION before including node.h
01:23:35  <piscisaureus>ryah: that's basically it
01:23:36  * brsonquit (Quit: leaving)
01:24:11  <piscisaureus>ryah: also, I've been somewhat conservative w/ exporting methods from node.h, we could add a bit more
01:24:12  <piscisaureus>but that's easy
01:24:34  <ryah>just need ObjectWrap and MakeCallback
01:26:20  <piscisaureus>will fix this tomorrow when I am sober again
01:26:39  <piscisaureus>I am still stunned by the hydrogen patch that indutny did
01:28:44  <piscisaureus>er, the v8 patch
01:30:01  <ryah>yes
01:30:06  <ryah>it looks very hard
01:33:01  <CIA-53>node: Igor Zinkovsky master * r6d7aa65 / test/pummel/test-child-process-spawn-loop.js : fix pummel/test-child-process-spawn-loop.js on windows - http://git.io/0_5VMQ
01:34:25  <ryah>there is a windows azure tshirt hear with some code showing how to launch a node process
01:34:32  <ryah>*here
01:34:39  <piscisaureus>heh
01:34:44  <piscisaureus>who made that? msft?
01:35:02  <piscisaureus>igorzi: re the last patch you landed
01:35:15  <piscisaureus>igorzi: how come on windows \r\n is written?
01:35:33  <igorzi>piscisaureus: it's python that writes it, so i don't know
01:35:40  <piscisaureus>aw
01:35:42  <piscisaureus>python
01:35:48  <piscisaureus>that should be fine then
01:36:36  <igorzi>piscisaureus: yeah, if we see node program writing \r\n instead of \n, we need to figure out why
01:36:51  <igorzi>ryah: can you take a picture of the tshirt?
01:37:17  <piscisaureus_>ryah: yeah, twt
01:43:30  * isaacsquit (Quit: isaacs)
01:49:09  <ryah>igorzi: emailed it to you.
01:52:23  <piscisaureus>ryah: did big m sponsor that or was someone trying to be funny?
01:59:47  <ryah>piscisaureus: yes msft sponsored it
02:00:10  <ryah>you guys can watch the talk http://live.nicovideo.jp/watch/lv68521775
02:00:22  <rmustacc>Whoh, your talk is no nico nico
02:00:23  <ryah>its in 10 minutes
02:00:31  <rmustacc>Cool
02:01:42  <rmustacc>I can't believe I remember my credentials there.
02:01:54  <rmustacc>Good luck ryah
02:14:46  <piscisaureus>this live translation must be super annoying
02:15:22  <rmustacc>It appears to be going alright.
02:18:31  <piscisaureus>the upside is that you have 10s pauses that allow you to consider your next senctence
02:39:40  <piscisaureus>So I entered 私はビールのための渇望です in the chatbox next to the video and it got me banned
02:41:14  <piscisaureus>I agree that it is somewhat inappropriate, considering that it's before noon in Japan. But c'mon, it is a js conference right?
02:43:10  * AvianFlu_changed nick to AvianFlu
02:46:06  <rmustacc>I just got kicked off for some reason.
02:46:13  <rmustacc>I guess I was watching too much.
02:46:33  <piscisaureus>I was able to rejoin eventually
02:51:18  * bnoordhuisjoined
03:21:47  * bradleymeckjoined
03:32:59  <CIA-53>libuv: Ben Noordhuis master * r84bc186 / src/unix/core.c : linux: omit superfluous fcntl(F_GETFD) syscall - http://git.io/CDtLjQ
03:34:34  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
03:42:42  <ryah>whew
03:47:30  <rmustacc>ryah: The parts I watched went well.
03:51:15  <bnoordhuis>rmustacc: are there videos?
03:51:36  <bnoordhuis>and congrats, ryah :)
03:54:49  <rmustacc>bnoordhuis: There was a live stream on niconico
03:56:09  <rmustacc>Dunno if it was recorded.
03:56:28  * bradleymeckquit (Read error: Connection reset by peer)
03:58:03  <bnoordhuis>rmustacc: wow, that's one horrible web site
03:58:36  <rmustacc>bnoordhuis: It's basically the you
03:58:43  <rmustacc>*youtube of Japan
03:58:51  <rmustacc>But of course, you
03:58:52  <bnoordhuis>can't find any node.js streams on it though :/
03:59:01  <rmustacc>can write text over the video
03:59:07  <bnoordhuis>but lots of anime
03:59:11  <rmustacc>http://live.nicovideo.jp/watch/lv68521775
04:00:04  <rmustacc>That's the link I had for the video. Does that not work?
04:01:25  <bnoordhuis>i think not
04:01:46  <bnoordhuis>all i see is a lot of squiggly lines
04:01:58  <bnoordhuis>could be japanese
04:05:41  <rmustacc>Well, it used to require you to login.
04:05:54  * AvianFluquit (Ping timeout: 260 seconds)
04:07:58  <bnoordhuis>let me try bugmenot
04:10:25  <bnoordhuis>well... i think it's finished...
04:22:36  * AvianFlujoined
04:28:50  <bnoordhuis>ryah: have you met koichi yet?
04:36:24  * isaacsjoined
04:47:53  <ryah>bnoordhuis: yeah
04:48:07  <ryah>rmustacc: i met your friend
04:48:47  <rmustacc>ryah: You met Paul McCann?
04:51:50  <ryah>rmustacc: yeah
04:52:14  <ryah>http://jxck.node-ninja.com/nodefest2011.html
04:52:19  <ryah>^-- this is amazing
04:52:26  <ryah>he's hooked up vim to websockets
04:52:40  <ryah>so you can follow him speaking
05:15:29  <bnoordhuis>https://github.com/bnoordhuis/node/compare/string-corking <- more than 20% faster for http_simple with /bytes/1024
05:15:37  <bnoordhuis>too bad it still fails 20 tests :/
05:17:30  <bnoordhuis>but with this patch we're nearly 30% faster than 0.4
05:19:21  <bnoordhuis>over 35% even for small payloads
05:23:02  <ryah>bnoordhuis: why do the test fail?
05:23:18  <bnoordhuis>ryah: not sure, haven't digged in yet
05:23:46  <CIA-53>node: Ben Noordhuis v0.4 * r7fd1c08 / benchmark/http_simple.js : bench: backport http_simple benchmark from master - http://git.io/CIZO8w
05:24:28  <bnoordhuis>^ /bytes/1024/32 (32 chunks of 32 bytes) triggers some pathological behaviour in v0.4, i get <1100 req/s
05:25:00  <bnoordhuis>compared to 5400 req/s on master
05:27:27  <bnoordhuis>i'm seeing numbers that are nearly to good to be true
05:27:35  * igorzi_joined
05:27:38  <bnoordhuis>ab -c 100 -n 10000 http://127.0.0.1:8000/bytes/1024 2> /dev/null | grep Requests
05:28:02  <ryah>10000 req is too small
05:28:22  <bnoordhuis>have it your way, 50k
05:28:31  <bnoordhuis>sorry, that rhymes
05:30:24  <bnoordhuis>numbers are pretty stable though: 5200 vs 8400 req/s - 61% speed-up
05:32:44  <bnoordhuis>and 8400/5850 req/s for master with/without patch - 43% speed-up
05:34:36  <igorzi_>ryah: is there a recording of your talk?
05:35:43  <igorzi_>bnoordhuis: what improvements are causing that kind of speed-up?
05:35:59  * isaacsquit (Quit: isaacs)
05:36:03  <bnoordhuis>igorzi_: i'm batching up socket string writes
05:37:14  <bnoordhuis>another upside is that test/pummel/test-net-write-callbacks.js now finishes in 0.6s instead of 7.5s
05:37:26  <igorzi_>bnoordhuis: instead of doing many small writes, you're doing fewer large ones?
05:37:34  <bnoordhuis>igorzi_: yes
05:38:18  <bnoordhuis>oh, and minimizing string -> buffer conversions
05:42:25  <igorzi_>bnoordhuis: neat. that's a pretty substantial improvement :)
05:49:11  <ryah>wow someone is presenting a 200k concurrent user game built on node
05:49:30  <ryah>320 nodes
05:55:20  * isaacsjoined
05:56:15  * igorzi_quit (Quit: Page closed)
06:00:58  * daurnimatorquit (Changing host)
06:00:58  * daurnimatorjoined
06:09:59  * bnoordhuisquit (Read error: Operation timed out)
06:26:41  * pfox___quit (Ping timeout: 244 seconds)
06:32:09  * isaacsquit (Quit: isaacs)
06:48:58  <ryah>pquerna: yt?
06:49:04  <ryah>pquerna: someone here is asking about selene
06:59:26  * AvianFluquit (Quit: Leaving)
08:08:25  * AvianFlujoined
09:38:23  * mralephjoined
11:02:57  * piscisaureusjoined
11:21:09  * piscisaureus_quit (Ping timeout: 260 seconds)
12:41:25  * piscisaureus_joined
12:46:41  <indutny>ryah: hehe
12:46:43  <indutny>not really
12:46:44  <indutny>thanks
12:48:12  <indutny>there is still some room for optimizations
12:48:27  <indutny>i.e. I want to do String comparisons in case of non-symbol inputs
12:48:35  <indutny>not just generic comparisons
12:59:03  * piscisaureus__joined
12:59:12  * piscisaureus_quit (Ping timeout: 240 seconds)
13:32:51  * piscisaureus__quit (Ping timeout: 260 seconds)
13:45:03  * mralephquit (Ping timeout: 276 seconds)
15:02:43  * isaacsjoined
15:58:48  <pquerna>ryah: email is probally best
16:10:57  * pfox___joined
16:13:44  * mralephjoined
16:52:42  * mralephquit (Quit: Leaving.)
17:02:09  * pfox___quit (Ping timeout: 252 seconds)
18:23:55  * bnoordhuisjoined
18:30:33  * sh1mmerquit (Quit: sh1mmer)
18:36:10  <bnoordhuis>https://github.com/joyent/node/issues/1965 <- pretty serious 0.4 bug
18:39:48  <isaacs>bnoordhuis: well, the question is, should `new Buffer(10)` create a buffer of size 10, or a buffer containing "10"
18:40:14  <isaacs>> new Buffer(10).toString()
18:40:15  <isaacs>'\u0000\u0000H?\u0014$?\r\u0000\u0000'
18:40:39  <isaacs>i'm not convinced that's a bug.
18:40:47  <isaacs>uninitialized memory is uninitialized
18:41:44  <isaacs>i guess the idea is that writeFile should to-string a number before to-buffer-ing it?
18:45:13  <isaacs>bnoordhuis: actually, i think the v0.5 approach has a bug. i'd expect fs.writeFile("foo", [1, 2, 3, 4]) to write the 4 bytes specified, not "1,2,3,4"
18:46:13  <bnoordhuis>isaacs: seems like a potential DOS source to me
18:46:20  <isaacs>ho?
18:46:22  <isaacs>how?
18:46:50  <bnoordhuis>if you somehow manage to remotely sneak in an int to writeFile / writeFileSync, you can make the server write very big files indeed
18:46:55  <isaacs>if anything, it's a potential memory-snooping attack
18:46:55  <bnoordhuis>and malloc a lot of memory
18:47:01  <bnoordhuis>and that
18:47:20  <isaacs>but how would you sneak an int into my program?
18:47:40  <isaacs>i mean, if i'm writing a file based on user input, shouldn't i be checking it?
18:48:03  <bnoordhuis>depends, some frameworks try to auto-cast variables to the most appropriate type
18:48:27  <isaacs>seems like a stretch to me
18:48:30  <bnoordhuis>i would expect your array example to write four bytes btw
18:48:37  <isaacs>yeah, it doesn't :)
18:48:50  <isaacs>it toString()s the array
18:48:59  <bnoordhuis>but... i have to be off, let's continue the discussion tomorrow
18:49:14  <bnoordhuis>ttyl isaacs
18:49:36  <isaacs>kk
18:49:38  <isaacs>have fun :)
18:54:27  * bnoordhuisquit (Ping timeout: 276 seconds)
19:37:32  * piscisaureus__joined
20:07:12  * piscisaureus__quit (Ping timeout: 240 seconds)
20:36:33  * brsonjoined
22:00:14  * mralephjoined
22:00:39  * mralephquit (Client Quit)
22:00:50  * mralephjoined
22:01:06  * mralephquit (Client Quit)
22:01:21  * mralephjoined
22:37:57  * isaacsquit (Quit: isaacs)
22:46:45  * pfox___joined
22:49:17  * mikealjoined
23:07:12  * pfox___quit (Ping timeout: 240 seconds)
23:19:50  * ericktjoined
23:30:03  * mikealquit (Quit: Leaving.)
23:36:41  * mralephquit (Quit: Leaving.)
23:40:52  <indutny>yeah
23:40:55  <indutny>finally, back in omsk
23:41:00  <indutny>how is it going?
23:41:12  <indutny>any luck with 0.6.x release?
23:41:19  <indutny>any open bugs that I can take a look in?
23:56:38  * bnoordhuisjoined