00:13:32  * jmar777quit (Remote host closed the connection)
00:14:06  * jmar777joined
00:16:25  * loladirojoined
00:18:14  * jmar777quit (Ping timeout: 240 seconds)
00:18:41  * loladiroquit (Client Quit)
00:26:51  * bradleymeckjoined
00:32:14  * bradleymeckquit (Quit: bradleymeck)
00:40:21  * sgallagh_afkquit (Remote host closed the connection)
00:47:16  * loladirojoined
01:04:09  * TooTallNatejoined
01:06:56  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
01:09:59  * kristatejoined
01:27:19  * c4milo_joined
01:36:39  * abraxasjoined
01:39:52  * mikealjoined
01:42:10  * mikealquit (Client Quit)
02:00:20  * lohkey_joined
02:03:41  * lohkeyquit (Ping timeout: 244 seconds)
02:04:43  * lohkey_quit (Ping timeout: 260 seconds)
02:12:35  * bnoordhuisquit (Ping timeout: 265 seconds)
02:14:08  * dapquit (Quit: Leaving.)
02:37:27  * seebeesjoined
02:45:06  * loladiroquit (Quit: loladiro)
02:52:58  * stagasquit (Quit: Bye)
02:55:00  * loladirojoined
02:57:24  * isaacswaves
02:57:38  * kristatewaves back
02:57:54  <isaacs>creationix: i'd like http.js to be pretty small.
02:58:06  <isaacs>creationix: but removing it entirely is not possible, most likely
02:59:36  * mikealjoined
03:03:51  <isaacs>kristate: hey. you new here?
03:04:01  <isaacs>kristate: or do you just usually hang out when i'm not online?
03:04:25  <kristate>isaacs: Hello. Yes, I normally hang-out here and follow development
03:04:37  <isaacs>kewl
03:04:41  <isaacs>welcome :)
03:04:45  * isaacsis in korea
03:05:41  <kristate>isaacs: thanks. we're building a lua + uv language called lev: https://github.com/connectFree/lev
03:05:56  <kristate>Ah, Korea -- I am located in Kyoto, Japan
03:10:28  <isaacs>kristate: neat! i was in Tokyo yesterday, and will be again tomorrow (but only to sleep, then on to California)
03:10:43  <isaacs>kristate: Tokyo is like a dislexic version of Kyoto ;)
03:10:51  <isaacs>kristate: same letters
03:11:07  <kristate>yes, 東京都 -> West, Kyoto
03:11:31  <isaacs>is tokyo 都京?
03:11:54  <isaacs>or 京東?
03:11:57  <isaacs>those ones look familiar
03:12:03  <kristate>Tokyo 東京 is how many people pronounce it, but as a joke we call it Higashi-Kyoto 東京都 here in Kyoto
03:12:34  <kristate>the official name for tokyo is Tokyo-to 東京都, but you can also read it as Higashi-Kyoto
03:13:48  <isaacs>kristate: that's interesting
03:13:57  <isaacs>kristate: the japanese writing system is so nuts
03:13:57  <kristate>sorry, yes, 東京都 -> East, Kyoto
03:14:17  <isaacs>kristate: they have so many letter styles
03:14:17  <kristate>I don't know -- it is very simple and like legos
03:14:42  <kristate>korea has hangul
03:14:49  <kristate>but, I find that hard to read
03:15:04  <isaacs>kristate: i really only understand latin letterss
03:15:24  <kristate>The cool thing about japanese, is that it is easy to pull foreign languages and meaning into the core language
03:15:32  <isaacs>kristate: english, spanish, french, german, all very easy to read. even if you dont' understand the language very well, you can sort of figure it out
03:15:39  <isaacs>all the same letters
03:15:59  <kristate>Ah, but pronunciation can be difficult
03:16:00  <isaacs>except for little things, like german has ß, and there are some accents and stuff
03:16:23  <kristate>with japanese, the pronunciation is coupled with the phonemes
03:16:26  <kristate>that is
03:16:33  <isaacs>kristate: english and french are the worst at that
03:16:46  <isaacs>kristate: spanish and italian are easy. they're 100% phoenetic
03:17:13  <kristate>a-i-u-e-o are coupled with k s t n h m y r and w
03:17:48  <kristate>a consonant is always coupled with a vowel
03:17:58  <isaacs>yeah
03:18:08  <isaacs>italian is like that, too. you never end on a consonant
03:18:19  <isaacs>kristate: the hard thing about european languages is that they sometimes make up their own technical terms.
03:18:40  <kristate>ah :)
03:18:52  <isaacs>kristate: in korean and english, they just use the english word with a dialect
03:19:13  <kristate>isaacs: well, we have that in Japan, as well.
03:19:21  <isaacs>kristate: oh, i mean, in korean and japanese
03:19:25  <kristate>most of the new-age companies borrow from english
03:19:29  <isaacs>of course english uses the english words ;)
03:19:50  <isaacs>ridaburu sturimu
03:19:57  <isaacs>"readable stream"
03:20:04  <kristate>isaacs: but the older companies use chinese characters to come-up with long technical names for functionality
03:20:15  <isaacs>wild
03:20:31  <isaacs>that's kind of like how english has spelling that comes from latin, and other words that come from greek
03:20:52  <kristate>isaacs: I actually love reading the chinese technical terms because while they are ridiculous, they are very exacting in a good way.
03:20:56  <isaacs>so you have stuff like "phonic" which is not phonetic at all :)
03:21:28  <kristate>isaacs: someone took the time to choose the correct meaning to fit the operational functionality
03:21:42  <isaacs>neat
03:21:51  <kristate>for instance: 厳重保管用耐熱耐圧耐電磁耐爆耐核耐生物超硬質軽量特殊トランクケース
03:21:56  <kristate>that is one word
03:22:13  <isaacs>waaaaaaat!?
03:22:17  <isaacs>one word?
03:22:56  <kristate>"Heat-, Pressure-, EM-, Explosives-, Nuclear-, and Organism-Resistant Super-Durable Secure Storage Portable Trunk Case"
03:23:42  <kristate>isaacs: weapon names will normally have all chinese characters
03:23:45  * benoitcquit (Excess Flood)
03:24:34  <kristate>isaacs: for instance CPU is 中央演算処理装置
03:27:03  <kristate>isaacs: this is another good one: this is caller-ID 発信者識別番号
03:28:26  <chilts>it wouldn't be right if it wasn't portable :D
03:28:31  <kristate>isaacs: although it is only broken down into three terms, so it is easy to read 発信者-> call initiator 識別->identification (technically discriminating amongst others); 番号-> number
03:28:31  * benoitcjoined
03:30:38  <kristate>isaacs: other times long chinese names/nouns will be for companies or groups, like the International Telecommunications Union -> 世界電気通信会議
03:31:23  <kristate>isaacs: 世界->world; 電気->electric; 通信->communication; 会議->group/conference/union
03:32:14  <kristate>hope that little lesson was interesting -- thank-you to everyone for their work on libuv :)
03:34:48  * mikealquit (Quit: Leaving.)
03:40:30  * TooTallNatequit (Quit: Computer has gone to sleep.)
03:41:09  <isaacs>kristate: :D
04:16:54  * brsonquit (Ping timeout: 264 seconds)
04:27:40  * AvianFluquit (Remote host closed the connection)
04:27:55  * joshthecoderjoined
04:36:46  * c4milo_quit (Remote host closed the connection)
04:59:31  * sblomquit (Ping timeout: 255 seconds)
05:02:25  * kazuponjoined
05:08:51  * lohkeyjoined
05:23:36  * brsonjoined
05:26:34  * lohkeyquit (Quit: lohkey)
05:36:39  * TheJHjoined
05:38:24  * kazupon_joined
05:41:41  * kazuponquit (Ping timeout: 252 seconds)
06:18:54  * TheJHquit (Quit: goodbye)
07:02:41  * lohkeyjoined
07:04:06  * rendarjoined
07:04:07  * rendarquit (Excess Flood)
07:04:24  * rendarjoined
07:04:26  * rendarquit (Excess Flood)
07:04:41  * rendarjoined
07:08:03  * seebeesquit (Ping timeout: 245 seconds)
07:13:27  * joshthecoderquit (Quit: Leaving...)
07:44:36  * ArmyOfBrucequit (Excess Flood)
07:44:41  * lohkeyquit (Quit: lohkey)
07:45:09  * ArmyOfBrucejoined
07:51:16  * brsonquit (Quit: leaving)
07:52:35  * loladiroquit (Quit: loladiro)
08:02:21  * kazuponjoined
08:02:45  * kazupon_quit (Ping timeout: 255 seconds)
08:03:47  * kazuponquit (Remote host closed the connection)
08:04:07  * kazuponjoined
08:09:38  * loladirojoined
08:09:52  * `3rdEdenjoined
08:15:51  * Benviequit (Read error: Connection reset by peer)
08:16:09  * Benviejoined
08:17:34  * benoitcquit (Quit: unexpected thing makes me to quit)
08:26:04  * benoitcjoined
08:31:24  * c4milojoined
08:35:38  * c4miloquit (Ping timeout: 252 seconds)
08:38:21  * loladiroquit (Quit: loladiro)
09:00:41  * hzjoined
09:30:16  * janjongboomjoined
09:32:28  * ArmyOfBrucequit (Excess Flood)
09:32:56  * ArmyOfBrucejoined
10:13:58  * kazuponquit (Remote host closed the connection)
10:34:44  <indutny>hij1nx: hey man
10:34:46  <indutny>hij1nx: yt?
10:44:24  * abraxasquit (Remote host closed the connection)
11:36:06  * Raltquit (Ping timeout: 264 seconds)
11:42:43  * Raltjoined
11:52:26  * stagasjoined
11:58:42  * stagas_joined
11:59:23  * stagasquit (Ping timeout: 252 seconds)
11:59:35  * stagas_changed nick to stagas
12:07:00  * kazuponjoined
12:19:46  * ArmyOfBrucequit (Excess Flood)
12:20:17  * ArmyOfBrucejoined
12:39:38  * sgallaghjoined
12:46:25  * stagasquit (Ping timeout: 244 seconds)
13:08:05  * LOUDBOTquit (Remote host closed the connection)
13:08:39  * LOUDBOTjoined
13:27:57  * sgallaghquit (Remote host closed the connection)
13:31:55  * AvianFlujoined
13:33:45  * jmar777joined
13:35:28  * sgallaghjoined
13:51:59  * sgallaghquit (Remote host closed the connection)
13:53:37  * c4milojoined
13:57:10  * kazuponquit (Remote host closed the connection)
13:58:14  * c4miloquit (Ping timeout: 265 seconds)
14:01:37  * piscisaureus_joined
14:07:40  <indutny>piscisaureus_: hey man
14:07:47  <piscisaureus_>hey fedor
14:08:19  <indutny>piscisaureus_: I was benchmarking http.request() today
14:08:36  <indutny>piscisaureus_: like do request in server's request handler and respond with data received from another server
14:08:57  <indutny>piscisaureus_: and it seems to be pretty flaky
14:09:07  <indutny>piscisaureus_: it starts with ~10-20 ms delay
14:09:13  <indutny>piscisaureus_: and eventually I can see ~1s delays
14:09:25  <indutny>piscisaureus_: have you ever seen this?
14:09:36  <indutny>it seems to be happening on all 0.6-0.8 node versions
14:10:06  * kazuponjoined
14:10:46  <piscisaureus_>indutny: have you eliminated dns effects?
14:10:53  <piscisaureus_>e.g. replace the hostname by a fixed ip?
14:10:54  <indutny>yes
14:10:58  <indutny>localhost
14:11:46  <indutny>well, I suppose yes
14:11:49  <indutny>hm...
14:11:53  <indutny>let me try 127.0.0.1
14:12:59  <indutny>yeah, even with it
14:13:12  <indutny>probably I'm running out of ephemeral ports...
14:13:13  <indutny>again...
14:13:48  <piscisaureus_>you should also make sure that http requests to another server aren't being queued
14:13:50  <piscisaureus_>or are
14:14:05  <indutny>piscisaureus_: https://gist.github.com/ea7979a2ab35802567bf
14:14:13  <indutny>piscisaureus_: well
14:14:17  <indutny>I was trying it with node.js server
14:14:22  <indutny>and with couchdb
14:14:38  <indutny>it starts with ~30-50ms
14:14:46  <indutny>and there're spikes about ~500ms
14:14:58  <piscisaureus_>so it could be couchdb itself
14:15:03  <piscisaureus_>or ephemeral ports indeed
14:15:15  <indutny>seems like ephemeral ports
14:15:25  <indutny>but thanks for reminding about dns lookup
14:25:51  * c4milojoined
14:26:19  * sgallaghjoined
14:28:53  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
14:40:47  * bnoordhuisjoined
14:45:57  * mmaleckichanged nick to mmalecki[food]
14:46:38  * piscisaureus_joined
14:54:21  * bradleymeckjoined
14:55:03  * mikealjoined
14:57:41  * c4miloquit (Remote host closed the connection)
15:12:22  * kazuponquit (Remote host closed the connection)
15:17:51  <bnoordhuis>i hate codereview.chromium.org -> urllib2.HTTPError: HTTP Error 301: Moved Permanently
15:17:58  <bnoordhuis>very helpful
15:18:57  <indutny>:)
15:19:05  <indutny>nice error
15:22:03  <saghul>it was programmed by a dutch guy :-)
15:22:20  <bnoordhuis>saghul: i saw guido on het klokhuis last week
15:22:53  <saghul>oh! I've never met him
15:23:21  <bnoordhuis>he talks dutch with a distinct west coast accent these days
15:24:08  <saghul>LoL, still better than mine I hope xD
15:25:51  * voodootikigodpart
15:32:33  * TheJHjoined
15:32:38  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
15:34:42  <bnoordhuis>grr, codereview pisses me off every time i have to use it
15:39:19  * hzquit (Disconnected by services)
15:39:22  * hzjoined
15:43:18  <MI6>joyent/node: Ben Noordhuis master * 38c52a0 : tools: update gyp to r1535 This commit contains one additional patch tha - http://git.io/0oOC4A
15:44:28  <tjfontaine>hmm parallel builds
15:46:45  * c4milojoined
15:47:32  * seebeesjoined
15:50:14  <MI6>joyent/libuv: Ben Noordhuis master * fc5984f : build: fix dragonflybsd gyp build Depends on a not-yet-landed gyp patch: - http://git.io/8vbLZA
15:50:51  <sgallagh>bnoordhuis: I meant to ask: does libuv share versions with the node.js release that carries it?
15:51:06  <bnoordhuis>sgallagh: share versions? what do you mean?
15:51:31  <sgallagh>i.e., if I release a Fedora package. would it be correct to call it libuv-0.9.3 if it was based on the version that shipped with node.js 0.9.3?
15:51:50  <sgallagh>Or does libuv have its own version numbers?
15:52:05  <bnoordhuis>sgallagh: ah, like that. no, they're in sync with node
15:52:08  <sgallagh>(I'm guessing it does not, since you don't make release tarballs available)
15:53:05  <sgallagh>bnoordhuis: FYI, the libuv package I built has been accepted upstream and node.js is under package review now.
15:53:13  <bnoordhuis>ah, neat
15:53:16  <sgallagh>s/upstream/in Fedora/
15:53:22  * travis-cijoined
15:53:22  <travis-ci>[travis-ci] joyent/libuv#882 (master - fc5984f : Ben Noordhuis): The build passed.
15:53:22  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/d8a8379751ff...fc5984fb45b2
15:53:22  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3283347
15:53:22  * travis-cipart
15:53:30  <sgallagh>Thank you for all of your help with the unbundling process
15:53:46  <bnoordhuis>no problem, glad to
15:53:56  * piscisaureus_joined
15:54:32  <sgallagh>next task on my list... npm
15:55:09  <bnoordhuis>ah. you should talk to isaac about that. it should be pretty straightforward though, you can build a npm package from the source tree
15:55:26  <bnoordhuis>the node.js source tree, that is, npm is bundled nowadays
15:56:56  <sgallagh>bnoordhuis: Yeah, I'm sure I'll have questions. Mostly it's just going to be time-consuming, since the npm package carries a whole bunch of packages with it too
15:57:21  <sgallagh>I need to figure out how best to package those
15:57:51  <sgallagh>Ah well, that's a topic for another day. The rest of my day is meetings :-/
15:57:55  * sgallaghchanged nick to sgallagh_mtg
16:00:56  * mmalecki[food]changed nick to mmalecki
16:04:03  * lohkeyjoined
16:09:02  <piscisaureus_>indutny: в институте на скучных парах практики
16:09:15  <piscisaureus_>indutny: "the institute of boring pairs practice" ???
16:12:39  * warzjoined
16:12:39  * warzquit (Changing host)
16:12:39  * warzjoined
16:13:40  <bnoordhuis>the bash-completion in pkgsrc is seriously impoverished
16:13:46  <bnoordhuis>no git autocompletion!
16:14:00  * sgallagh_mtgquit (Remote host closed the connection)
16:20:30  <piscisaureus_>http://www.cs.cornell.edu/people/egs/papers/spin-tr94-03-03.pdf
16:22:49  * kazuponjoined
16:23:26  <piscisaureus_>^-- thanks mraleph for indirectly pointing me to it :-p
16:24:49  <rendar>piscisaureus_: seems an interesting paper, is that related to libuv/node.js?
16:25:04  <piscisaureus_>no, it's related to the OS i want
16:25:21  <piscisaureus_>it's pretty old though
16:25:50  <rendar>yeah
16:25:59  * `3rdEdenchanged nick to `3E|FOOD
16:26:08  <piscisaureus_>I can probably find more modern ones through citation search
16:26:31  <rendar>i guess so
16:26:31  <rendar>:)
16:27:13  * kazuponquit (Ping timeout: 246 seconds)
16:33:37  * bradleymeckquit (Quit: bradleymeck)
16:33:47  <piscisaureus_>singularity actually also has many many good ideas
16:37:28  * `3E|FOODquit (Remote host closed the connection)
16:38:51  * bradleymeckjoined
16:39:20  <indutny>piscisaureus_: huh?
16:39:27  <indutny>piscisaureus_: pairs = lessons
16:39:41  <piscisaureus_>ah
16:39:42  <indutny>and translation is wierd
16:39:48  <indutny>it should be
16:39:58  <indutny>"in the institute on boring practice pairs"
16:40:07  <piscisaureus_>ah right
16:40:10  * sgallaghjoined
16:40:13  <piscisaureus_>you guys have that in russia?
16:40:58  <indutny>yeah
16:41:00  <indutny>practice
16:41:04  <indutny>not on every faculties
16:41:21  <indutny>for example that wasn't such thing on my applied math faculty
16:41:26  <indutny>s/that/there
17:03:20  <MI6>joyent/node: Tim Kuijsten master * 6f9ed28 : doc: fix typo in setPrivateKey function signature - http://git.io/kUjRkQ
17:04:02  * brsonjoined
17:05:11  * kristatequit (Remote host closed the connection)
17:05:29  * TheJHquit (Read error: Operation timed out)
17:06:02  <bnoordhuis>hm. i can't get deps/v8/src/ic.cc to compile on this 1024M machine...
17:07:05  <bnoordhuis>worse, it seems to have positively hung my dragonfly machine
17:09:24  <piscisaureus_>dragonfly. why , why why
17:09:52  * lohkeyquit (Quit: lohkey)
17:11:55  * dapjoined
17:13:05  * janjongboomquit (Quit: janjongboom)
17:19:31  * c4miloquit (Remote host closed the connection)
17:19:37  <indutny>bnoordhuis: hung?
17:19:42  <indutny>bnoordhuis: what if you'll use -O0
17:21:08  * joshthecoderjoined
17:22:55  <bnoordhuis>piscisaureus_: it's like freebsd, only more elite
17:23:09  <bnoordhuis>also, the default fs doesn't suck like ufs does
17:23:30  <piscisaureus_>extern char **environ;
17:23:37  <piscisaureus_>^-- why is that not const? :-(
17:23:56  <bnoordhuis>because it's not const
17:24:04  * loladirojoined
17:24:11  <piscisaureus_>people can just fiddle with the contents of it directly?
17:24:15  <bnoordhuis>yes
17:24:35  <piscisaureus_>so
17:24:40  <piscisaureus_>what if I exec()
17:24:54  <piscisaureus_>does the kernel make a copy of the environment memory?
17:25:05  <bnoordhuis>more or less, yes
17:25:28  <bnoordhuis>on most unices there's only one real exec syscall, execve
17:25:54  <bnoordhuis>it requires you to specify both the argv and envp arrays
17:26:04  <piscisaureus_>eature Test Macro Requirements for glibc (see feature_test_macros(7)):
17:26:04  <piscisaureus_> execvpe(): _GNU_SOURCE
17:26:14  <piscisaureus_>bnoordhuis: that doesn't suggest it's "most unices"
17:26:17  <piscisaureus_>unfortunately
17:26:27  <bnoordhuis>execve, not execvpe
17:26:31  <bnoordhuis>execvpe is a library function
17:27:05  <bnoordhuis>some unices also have fexecve but that's a file descriptor-based execve
17:29:17  <piscisaureus_>I wish unix (and windows) had a standardized library function for searching $PATH
17:29:37  <piscisaureus_>it seems so silly to make this part of exec* class of functions
17:30:49  <piscisaureus_>On Linux, fexecve() is implemented using the proc(5) file system, so /proc needs to be mounted and available at the time of the call.
17:30:53  <piscisaureus_>laaaaaaame
17:32:42  <bnoordhuis>not too unreasonable a requirement, right? :)
17:32:55  <bnoordhuis>you won't get far without /proc these days anyway
17:33:48  <mmalecki>heh
17:34:12  <bnoordhuis>piscisaureus_: btw, the exec* family of functions don't really search the $PATH
17:34:14  <mmalecki>we'd often get ENOENT errors with process.cwd()
17:34:24  <bnoordhuis>they just split on : and try to execve in each directory
17:34:46  <bnoordhuis>there's a nice window for exploits btw
17:34:53  <mmalecki>because we wouldn't mount /proc. apparently reading your cwd involves /proc/<pid>
17:35:02  <mmalecki>bnoordhuis: yup, that's fixed now tho
17:35:20  <bnoordhuis>the default search path if no PATH is set in the env is ".:<default search paths>"
17:35:30  <mmalecki>there's /proc but we run apps in context of a user with severely limited permissions
17:35:41  <bnoordhuis>if you have a suid binary that execs other binaries, run it with PATH unset and your exploit in $PWD
17:36:01  <bnoordhuis>i've had amazing success rates with that in times past
17:36:06  <piscisaureus_>haha
17:36:19  <piscisaureus_>is . not removed from the default path nowadays?
17:36:42  <bnoordhuis>possibly, but i don't think so
17:36:46  <bnoordhuis>easy to test of course
17:36:56  * c4milojoined
17:37:05  <mmalecki>I don't have . in my path on any system
17:37:28  <bnoordhuis>mmalecki: the exploit i mentioned only applies when you don't have a PATH set at all
17:37:46  <bnoordhuis>it's (or was) posix-mandated behavior, for better or worse
17:37:48  <bnoordhuis>probably worse
17:37:52  <mmalecki>ah :)
17:37:59  <mmalecki>yeah, no, wouldn't work at nodejitsu
17:38:06  <mmalecki>you're welcome to try, obviously :)
17:38:20  <bnoordhuis>oh, don't worry - your server park is already part of my botnet
17:38:43  <bnoordhuis>s/park/farm/
17:38:48  <mmalecki>AvianFlu: ^ here's the cause of cpu-starved slaves
17:39:32  <bnoordhuis>ah, but think of all the erectile-challenged men in the world that you're indirectly helping
17:39:55  <mmalecki>obviously. that's a cause I'd dedicate myself to.
17:40:02  * sblomjoined
17:40:50  <sblom>Yippee--found a load test tool that's relatively (mostly) easy to set up and can actually pound node on Windows!
17:40:52  * sgallaghquit (Remote host closed the connection)
17:40:55  <sblom>Apache JMeter
17:40:56  <mmalecki>bnoordhuis: what's the app you mentioned for dns tunelling btw?
17:41:11  <piscisaureus_>bnoordhuis: hmm, . is still in the default indeed
17:41:13  <bnoordhuis>mmalecki: i don't know. did i mention one?
17:41:14  <mmalecki>I'm wondering in how many ways I can break out of this network
17:41:19  <mmalecki>yup, you did
17:41:31  <bnoordhuis>mmalecki: you mean tcp-over-dns or?
17:41:33  <mmalecki>you'd think mozilla knew some computers ;)
17:41:37  <sblom>My profiling indicates that apachebench spends 80% of its time in winsock's connect(). It must not be doing async connects on Windows.
17:41:39  <mmalecki>bnoordhuis: yeah, tcp over dns
17:41:46  <bnoordhuis>mmalecki: oh, probably dnstunnel
17:41:56  <piscisaureus_>aah
17:42:00  <piscisaureus_>sblom: I think maybe it's this
17:42:01  <bnoordhuis>it's also quite easy to write a tcp-over-dns tunnel yourself
17:42:21  <piscisaureus_>sblom: you have to specify http://127.0.0.1/bytes/1234 and not localhost
17:42:33  <sblom>I'm doing that already.
17:42:37  <piscisaureus_>sblom: oh
17:42:40  <bnoordhuis>mmalecki: i wrote one for solaris 9 back in the day in <250 lines of code
17:42:41  <mmalecki>bnoordhuis: word, thanks :)
17:42:47  <bnoordhuis>mmalecki: presumably it only got easier since then
17:42:47  <piscisaureus_>the way windows deals with localhost since vista confuses many apps
17:42:52  <mmalecki>yeah, I've been thinking on doing that in node
17:42:54  <sblom>piscisaureus_: Yeah--this has been massively frustrating.
17:43:24  <sblom>piscisaureus_: good point--have you heard any reason why they changed it?
17:43:32  <piscisaureus_>it's actually worse because there are always some idiots that add localhost to their public dns zone
17:43:38  <piscisaureus_>so localhost works, it's just slow
17:43:41  <piscisaureus_>sblom: no - tell me
17:43:46  <sblom>I wish I knew.
17:43:50  <piscisaureus_>sleeze and dirt please
17:43:51  <piscisaureus_>ah
17:43:58  <sblom>I'll see if I can find a network stack guy someday for lunch. :)
17:44:00  <piscisaureus_>I suspect it has something to do with ipv6
17:44:04  <piscisaureus_>haha
17:44:47  <sblom>At any rate, I'll have before & after numbers for perf counters momentarily.
17:44:55  <piscisaureus_>http://jmeter.apache.org/ <-- down :-(
17:44:59  <piscisaureus_>sblom: kewl
17:45:00  <sblom>Oh, jeez.
17:45:17  <piscisaureus_>sblom: you weren't accidentally DOSing that site?
17:45:19  <sblom>piscisaureus_: there's some irony in a load testing tool having its site down.
17:45:20  <sblom>Heh.
17:45:22  <sblom>No.
17:45:27  <piscisaureus_>someone forgot to change the example configuration file
17:45:31  <sblom>Ha!
17:45:48  <mmalecki>^ why you use nginx, not apache
17:46:20  <piscisaureus_>You know this infamous microsoft organogram?
17:46:34  <piscisaureus_>I think you could replace msft by apache and it would still hold
17:50:21  <sblom>This one? http://www.businessinsider.com/big-tech-org-charts-2011-6
17:53:54  * brsonquit (Ping timeout: 240 seconds)
17:54:08  <bnoordhuis>sblom: apple's and oracle's are very spot on
17:54:24  <bnoordhuis>and facebook is quite hilarious :)
18:02:26  * loladiroquit (Quit: loladiro)
18:05:03  <indutny>simply facebook's graph isn't true
18:05:13  * loladirojoined
18:07:48  * TooTallNatejoined
18:13:14  * brsonjoined
18:13:37  * loladiroquit (Quit: loladiro)
18:16:23  <sblom>indutny: I think maybe the Facebook one was a social graph joke?
18:16:45  <sblom>I never quite new how to interpret it as an org chart. At least not for modern Facebook.
18:16:46  <indutny>well, all others seems to be close to reality :P
18:16:52  <sblom>Yeah--fair enough.
18:19:16  <bnoordhuis>indutny: "simply facebook's graph isn't true" <- it's a joke
18:21:07  <MI6>joyent/libuv: Ben Noordhuis v0.8 * 5639b2f : linux: use /proc/cpuinfo for CPU frequency Obtain the CPU frequency from - http://git.io/ZQ5VQg
18:22:32  <MI6>joyent/node: Ben Noordhuis v0.8 * 7716828 : deps: upgrade libuv to 5639b2f - http://git.io/xt0PGA
18:23:46  * travis-cijoined
18:23:46  <travis-ci>[travis-ci] joyent/libuv#883 (v0.8 - 5639b2f : Ben Noordhuis): The build was broken.
18:23:46  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/72955c29c21c...5639b2f1f904
18:23:46  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3285721
18:23:46  * travis-cipart
18:26:21  <mmalecki>Beeeeen
18:26:27  <mmalecki>don't break builds!
18:28:49  <bnoordhuis>since when was travis any indication of a build working or not
18:29:25  <piscisaureus_>bnoordhuis: hey, you are the c expert
18:29:33  <tjfontaine>indeed it's the gethostbyname failure again
18:29:52  <piscisaureus_>bnoordhuis: char const* const* bla = (char**) foo; <-- gives me a warning
18:29:56  <piscisaureus_>bnoordhuis: why?
18:30:34  <bnoordhuis>piscisaureus_: because foo is a pointer to an array of pointers
18:30:49  <bnoordhuis>and that array of pointers is not immutable
18:30:51  <piscisaureus_>bnoordhuis: so? bla is too
18:31:15  <piscisaureus_>bnoordhuis: then why does this work: const char* bla = (char*) foo ?
18:31:19  <bnoordhuis>i think there's a section about it in the c faq, let me look it up
18:32:23  <bnoordhuis>c-faq.com seems to be timing out...
18:33:49  <bnoordhuis>piscisaureus_: anyway, it's question 11.10
18:33:59  * loladirojoined
18:34:10  <bnoordhuis>but in case you want answers right now, it's essentially an aliasing issue
18:34:16  <piscisaureus_>http://webcache.googleusercontent.com/search?q=cache:KlAf9M6DPQYJ:c-faq.com/ansi/constmismatch.html+&cd=1&hl=nl&ct=clnk&gl=nl
18:34:44  <bnoordhuis>right, that one
18:35:11  <piscisaureus_>ah
18:35:13  <piscisaureus_>I see
18:35:21  <piscisaureus_>so what I was doing is legal c++
18:35:36  <piscisaureus_>I think the last time I did this I must've been using c++ then :-)
18:35:59  <bnoordhuis>okay, off to dinner
18:43:03  * Ralt_joined
18:43:09  * Ralt_quit (Client Quit)
18:43:29  * Ralt_joined
18:46:31  * Ralt_quit (Client Quit)
19:10:45  * lohkeyjoined
19:13:26  * Ralt_joined
19:23:04  * loladiroquit (Quit: loladiro)
19:24:19  * `3rdEdenjoined
19:29:23  * loladirojoined
19:32:42  * loladiroquit (Client Quit)
19:33:21  * loladirojoined
19:33:41  * loladiroquit (Client Quit)
19:47:05  * c4miloquit (Remote host closed the connection)
19:55:35  <bnoordhuis>back
19:55:54  * Ralt_quit (Ping timeout: 240 seconds)
19:57:17  * bnoordhuisquit (Remote host closed the connection)
19:59:16  <indutny>bnoordhuis: and out
19:59:21  * bnoordhuisjoined
20:00:44  <indutny>bnoordhuis: and in
20:01:00  <bnoordhuis>indutny: the nouveau driver crashed
20:01:07  <bnoordhuis>in interesting ways, i should add
20:01:10  <indutny>ah, that's never going to be fixed
20:03:37  * sblomquit
20:05:56  * mmaleckichanged nick to mmalecki[food]
20:14:36  * AvianFluquit (Remote host closed the connection)
20:14:39  * stephankquit (Ping timeout: 256 seconds)
20:19:31  * c4milojoined
20:27:45  * sblomjoined
20:29:07  * EhevuTovjoined
20:34:07  <sblom>piscisaureus_: Okay--I've got much better benchmark results now. perfctrs branch: 11833 reqs/s; master branch: 11491 reqs/s. 15ms average response time for both. The two tests are within 3.0% of each other (in perfctrs favor, so seems like it must be benchmarking noise).
20:34:29  <sblom>200 concurrent clients.
20:34:45  <sblom>Turned out that too many more than that increased latency and didn't move the throughput at all.
20:34:53  <sblom>At least on this particular machine.
20:37:28  * hzquit (Disconnected by services)
20:37:31  * hzjoined
20:38:46  <piscisaureus_>sblom: ha, that's more like it
20:39:00  <piscisaureus_>sblom: out of curiosity, does jmeter use keepalive connections or not?
20:44:12  <piscisaureus_>btw - I'll buy beers for the first person to squelch all the warnings that the windows x64 build produces
20:44:42  * bradleymeckquit (Quit: bradleymeck)
20:50:22  * `3rdEdenquit (Remote host closed the connection)
20:55:17  <piscisaureus_>sblom: I tested it myself too
20:55:38  <piscisaureus_>sblom: I see a drop from ~9200 to ~9000 r/s
20:56:15  <piscisaureus_>sblom: profiling with VS shows that 2.89% of the time is spent in
20:56:15  <piscisaureus_>unsigned long (* node::event_write)(unsigned __int64,struct _EVENT_DESCRIPTOR const *,unsigned long,struct _EVENT_DATA_DESCRIPTOR *) 2,063 1.82 3,273 2.89 0 0 0 0
20:56:38  <piscisaureus_>which is not terrible
20:56:52  <piscisaureus_>although I am going to have a look and see if we can fix this by any obvious means
21:03:00  <piscisaureus_>bnoordhuis: https://github.com/joyent/node/blob/master/src/node_dtrace.cc#L167 <-- you landed that?
21:12:44  <sblom>piscisaureus_: I bet jmeter has a keepalive config option. Not sure if it was set by default. Looking.
21:12:56  <piscisaureus_>sblom: ah, don't worry too much about it
21:13:29  * loladirojoined
21:14:32  <sblom>piscisaureus_: jmeter _does_ use keepalive by default.
21:14:44  <sblom>Do we prefer that or not for benchmarking?
21:15:03  <sblom>Seems like both are interesting measurements.
21:15:04  <piscisaureus_>sblom: dunno, I think I prefer to benchmark both with and without
21:15:11  <sblom>heh--that
21:15:31  <piscisaureus_>sblom: if you got 11krps without keepalive then I'd say you have a very beefy machine
21:15:39  <piscisaureus_>now it's actually sorta subpar
21:15:50  <sblom>Oh.
21:16:23  <sblom>Hmmm. My employer is cheap on hardware, perhaps?
21:16:28  <sblom>:p
21:16:42  <piscisaureus_>what I get with: `ab -t 100 -c 100 -k http://127.0.0.1:8000/bytes/123` on my macbook retina
21:16:48  <piscisaureus_>Requests per second: 17806.24 [#/sec] (mean)
21:18:11  <sblom>Okay. I'm getting 1.7kReq/s without keepalive.
21:18:25  <sblom>Also, I bet I wasn't using -k on my apachebench tests.
21:18:37  <sblom>So adding it might get me closer to the right neighborhood.
21:18:49  <sblom>But apachebench still doesn't seem to be well-tuned for Windows.
21:20:51  * `3rdEdenjoined
21:20:54  <piscisaureus_>it definitely isn't :_)
21:21:07  <piscisaureus_>I suppose we should write our own benchmarking tool for windows :-p
21:21:15  <sblom>Y'know, I considered it.
21:21:23  <sblom>I suppose libuv is a good platform for it?
21:21:26  <piscisaureus_>I think so
21:21:43  <piscisaureus_>I'm trying to find the right wcat chant again
21:22:30  <sblom>hooboy. I dusted off wcat yesterday and remembered how daunting it is and resumed looking for a tool that would treat me right.
21:25:11  * mmalecki[food]changed nick to mmalecki
21:28:54  * `3rdEdenquit (Ping timeout: 240 seconds)
21:29:57  * perezdjoined
21:35:35  * stephankjoined
21:38:44  <piscisaureus_>same results with wcat
21:38:52  <piscisaureus_>about 3% difference
21:41:01  <piscisaureus_>sblom: if you need help I can give you a chant to get wcat going
21:41:19  <piscisaureus_>in the end it's just the matter of writing a simple .ubr file (you can have mine) and saying some magic words
21:49:30  <MI6>joyent/node: Ben Noordhuis master * a25ebb1 : v8: fix dragonflybsd build * fix gyp build * don't require libexecinfo, (+3 more commits) - http://git.io/fgOxBg
22:01:31  * rendarquit
22:02:13  <sblom>I'd love the wcat chant
22:02:26  <sblom>^ piscisaureus_
22:06:04  * jmar777quit (Remote host closed the connection)
22:06:40  * jmar777joined
22:07:02  <piscisaureus_>sblom: https://gist.github.com/69ca1409581a1e356b05
22:07:11  <piscisaureus_>sblom: I put these in my wcat directory and go
22:08:00  * jmar777quit (Read error: Operation timed out)
22:08:27  <piscisaureus_>sblom: event_write seems to take about 3% but only when keepalive is off. With it turned on it's barely measurable
22:08:54  * EhevuTov_joined
22:08:57  <piscisaureus_>sblom: it suggests that the "heavy" events are in the accept/teardown path
22:09:07  <piscisaureus_>sblom: also, I think this is actually related to ETW and not perf counters
22:09:13  <piscisaureus_>so I think we can land perf counters
22:09:31  * EhevuTovquit (Ping timeout: 246 seconds)
22:11:23  * seebeesquit (Ping timeout: 245 seconds)
22:13:08  <piscisaureus_>actually, hmm
22:13:16  <piscisaureus_>I wonder if my ETW test thingy is still enabled
22:13:24  <piscisaureus_>otherwise that function shouldn't even be called...
22:14:16  * ryahquit (*.net *.split)
22:14:16  * Raynosquit (*.net *.split)
22:14:23  * ryahjoined
22:18:59  <TooTallNate>is isaacs back in action yet?
22:22:24  * EhevuTov_quit (Quit: Leaving)
22:24:54  * rvaggchanged nick to polyhackbot
22:26:23  * polyhackbotchanged nick to rvagg
22:28:32  * Raynosjoined
22:29:03  * loladiroquit (Quit: loladiro)
22:29:39  * loladirojoined
22:29:46  <sblom>piscisaureus_: I'm happy to hear that ETW's the culprit, but that has me nervous unless you have ETW on like you suggested. ETW's supposed to be virtually invisible if tracing's not enabled.
22:34:22  <piscisaureus_>sblom: yeah, it's weird. I enabled some sort of etw logging some day so that could be it. Or the stack walker is getting confused. But I do see event_write show up in my profiles as I pasted before
22:38:50  <piscisaureus_>sblom: so the performance impact (measured execution time) seems to be around 0.7%
22:38:54  <piscisaureus_>sblom: I suppose that's okay
22:39:03  <piscisaureus_>sblom: there are no syscalls involved, so that's good
22:39:43  <piscisaureus_>sblom: actually it just increments a ULONG or ULONGLONG value somewhere
22:40:37  <piscisaureus_>sblom: unfortunately PerfIncrementUlonglongValue also involves (what looks like) a tree lookup and a couple of function calls. It'd be nice if windows just let us cache the pointer to that value :-)
22:40:42  <piscisaureus_>sblom: but anyway, lgtm
22:41:23  * jmar777joined
22:43:19  <sblom>piscisaureus_: cool
22:43:34  <piscisaureus_>actually, let me get heads up from bnoordhuis
22:44:02  <piscisaureus_>bnoordhuis: the impact of perf counter tracing is about 0.7% (measured by cpu clock cycles). I suppose that's okay?
22:44:16  <bnoordhuis>piscisaureus_: even when not tracing?
22:44:16  <piscisaureus_>(on http_simple with bytes/123 and no keepalive)
22:44:27  <piscisaureus_>bnoordhuis: the tracing is always on
22:45:11  <bnoordhuis>it's windows only right? i.e. it's compiled on linux
22:45:11  <indutny>piscisaureus_: yt?
22:45:12  <sblom>bnoordhuis: perf counters are always-on sorts of things. The ETW stuff from before is togglable.
22:45:13  <piscisaureus_>bnoordhuis: we should just tell sblom to make up the difference elsewhere :-p
22:45:14  <bnoordhuis>*it's not
22:45:14  <piscisaureus_>bnoordhuis: yes
22:45:21  <bnoordhuis>well, then i don't mind
22:46:02  <piscisaureus_>sblom: the only thing is, you can't add another 10 ways of tracing :-p
22:46:20  <sblom>piscisaureus_: I think we have all of the ways a typical Windows admin traces covered now.
22:47:14  <sblom>Well, I guess log aggregation, but they're on their own for that. And besides node's already good at file i/o.
22:47:24  <sblom>:-p
22:47:50  <sblom>piscisaureus_: Btw from earlier, I think "logman query -ets" will list "NT Kernel Logger" if you've got an ETW trace still turned on.
22:48:41  <piscisaureus_>sblom: hmm. So how do I tell if "MpWppTracing-11202012-163646-00000003-ffffffff" is that?
22:51:10  * warzquit
22:51:39  <sblom>piscisaureus_: I think that's some Windows diagnostics thing. I always seem to have one of those in my list. I honestly don't know exactly what it does.
22:53:06  <sblom>piscisaureus_: you can get more info with `logman query "<that_godawful_identifier>" -ets`
22:53:21  <sblom>For me, it's using a bunch of anonymous event providers--certainly not the node one. :)
22:53:58  * jmar777quit (Remote host closed the connection)
22:54:32  * jmar777joined
22:57:54  * TooTallNatequit (Ping timeout: 276 seconds)
22:58:34  * jmar777quit (Ping timeout: 240 seconds)
23:00:09  * TooTallNatejoined
23:04:06  * loladiroquit (Quit: loladiro)
23:05:03  * brsonquit (Ping timeout: 276 seconds)
23:07:52  * perezdquit (Quit: perezd)
23:10:43  * AvianFlujoined
23:14:51  * loladirojoined
23:15:44  * loladiroquit (Client Quit)
23:17:32  * loladirojoined
23:25:24  * joshthecoderquit (Quit: Leaving...)
23:26:04  <piscisaureus_>bnoordhuis: can you review https://github.com/joyent/node/pull/4293 ?
23:27:23  <bnoordhuis>piscisaureus_: lgtm, assuming it works
23:29:19  <piscisaureus_>well I am running the tests now :-)
23:29:23  <indutny>:)
23:29:27  <piscisaureus_>I did it before btw
23:29:29  <indutny>finally, on a good internet
23:29:34  <indutny>oh god
23:29:37  <piscisaureus_>together with perf counters
23:29:39  <indutny>how I hate ISPs in russia
23:31:55  * hzquit
23:32:17  <bnoordhuis>i'm looking at a heap snapshot of this test case: https://github.com/joyent/node/issues/1155
23:32:36  <piscisaureus_>bnoordhuis: the \0 filtering is actually pretty important I think
23:33:03  <bnoordhuis>it's interesting, after 12k iterations v8 essentially comes to a standstill
23:33:03  <piscisaureus_>bnoordhuis: the number of not-easy-to-fix security issues we found with this is quite disturbing
23:33:25  <bnoordhuis>piscisaureus_: i think someone already wrote a module that monkey-patches the fs functions
23:33:29  <piscisaureus_>yes
23:33:33  <piscisaureus_>we need to add this to core
23:33:52  <bnoordhuis>back on topic, i'm seeing 1.5M closures in the snapshot
23:33:53  <piscisaureus_>test-debugger-client is still crapping out for me
23:33:59  <bnoordhuis>it's 311M big btw
23:34:03  <piscisaureus_>hmm
23:34:17  * mikealquit (Quit: Leaving.)
23:34:18  <mmalecki>piscisaureus_: thejh did that module
23:34:33  <piscisaureus_>mmalecki: yeah I saw it
23:34:35  <mmalecki>he also submitted a pull request
23:34:46  <piscisaureus_>mmalecki: the pull request has rotten
23:35:00  <mmalecki>that's what pull requests do :)
23:35:04  * loladiroquit (Quit: loladiro)
23:35:21  <bnoordhuis>what do other languages / environments do?
23:35:38  <piscisaureus_>you want to try php?
23:35:45  <bnoordhuis>i don't think python core filters out nul bytes. neither does php or ruby afaik
23:36:37  <bnoordhuis>i'm a little less dead set against this though (i.e. not as much as that http nonsense)
23:36:56  <bnoordhuis>mainly because it's not affecting hot code paths
23:36:58  <bnoordhuis>or shouldn't
23:37:42  <piscisaureus_>bnoordhuis: the http header thing is not as bad as you think
23:37:47  <piscisaureus_>bnoordhuis: it's unmeasurable
23:37:53  <piscisaureus_>I know, dead by a thousand cuts and all
23:37:57  <bnoordhuis>indeed
23:38:01  <piscisaureus_>but we should be a little considerate
23:38:12  <piscisaureus_>as for paths
23:38:27  <piscisaureus_>on windows we do much more expensive on paths operations already :-)
23:38:37  <piscisaureus_>er. on windows we do much more expensive operations on paths already :-)
23:39:50  <piscisaureus_>SyntaxError: In strict mode code, functions can only be declared at top level or
23:39:50  <piscisaureus_> immediately within another function.
23:39:50  <piscisaureus_> at NativeModule.compile (node.js:735:14)
23:39:54  <piscisaureus_>ehh
23:40:33  <piscisaureus_>php doesn't filter \0's: https://gist.github.com/4122038
23:40:34  <TooTallNate>^ i hate that...
23:40:38  <piscisaureus_>bnoordhuis: ^
23:41:14  <piscisaureus_>(and yes, I don't have php here so I used cloud9 :-p)
23:42:27  <bnoordhuis>TypeError: file() argument 1 must be encoded string without NULL bytes, not str <- python
23:42:50  <bnoordhuis>okay, let's emulate python here
23:42:51  <piscisaureus_>bnoordhuis: php has a history of making the wrong decisions. I vote for the python way :-p
23:43:08  * loladirojoined
23:43:30  <bnoordhuis>piscisaureus_: are nul bytes valid in windows paths?
23:43:47  <bnoordhuis>e.g. with some obscure code page?
23:43:54  <piscisaureus_>bnoordhuis: no
23:44:13  <bnoordhuis>okay. well, make it so then
23:44:15  <piscisaureus_>bnoordhuis: forward slashes are valid filename parts tho (in NT-style paths)
23:44:36  <piscisaureus_>bnoordhuis: we have deviated from all standards already to do the right thing :-)
23:45:57  <piscisaureus_>bnoordhuis: but - windows APIs also use \0 terminated strings (atleast the public side of it) so the problem is the same
23:46:42  <bnoordhuis>setInterval(function { var obj = {}, ctx = vm.createContext({obj:obj}); obj.ctx = ctx; vm.Script.runInContext('', ctx); }, 1)
23:46:49  <bnoordhuis>try that for fun in the repl and watch rss
23:47:25  <bnoordhuis>v8 doesn't break the circular reference and the ctx object never gets gc'd
23:48:01  <bnoordhuis>i kind of understand why it works that way but still
23:50:02  <piscisaureus_>ask mraleph :-)
23:55:13  * kazuponjoined
23:55:23  * joshthecoderjoined
23:55:25  <TooTallNate>bnoordhuis: i got a report of an "unknown system errno 12" being reported
23:55:37  <TooTallNate>bnoordhuis: but he was on 0.6.x, it that errno mapped in current HEAD?
23:55:44  <bnoordhuis>TooTallNate: depends. what os?
23:55:52  <TooTallNate>Ubuntu
23:56:48  <bnoordhuis>TooTallNate: that's ENOMEM. yes, that should be mapped
23:57:00  * warzjoined
23:57:02  <TooTallNate>bnoordhuis: ok cool, just checking :)
23:57:18  <piscisaureus_>It means the guy was fucked anyway, we just failed to tell him why :)
23:57:42  <piscisaureus_>=== release test-debugger-repl ===
23:57:42  <piscisaureus_>Path: simple/test-debugger-repl
23:57:42  <piscisaureus_>There was an internal error in Node's debugger. Please report this bug.
23:57:48  <piscisaureus_>will do sir
23:58:14  <bnoordhuis>indutny: ^
23:58:33  <piscisaureus_>I think it's baby making time for indutny
23:58:34  * brsonjoined