00:00:41  * travis-cijoined
00:00:41  <travis-ci>[travis-ci] joyent/node#309 (master - b1b16d1 : isaacs): The build is still failing.
00:00:41  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/667aae5...b1b16d1
00:00:41  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/565436
00:00:41  * travis-cipart
00:03:28  <isaacs>piscisaureus, ryah_: review? https://github.com/isaacs/node/commits/v0.7.1-release
00:08:40  <piscisaureus>isaacs: lgtm
00:08:47  * mjr_joined
00:09:01  <piscisaureus>isaacs: that is, if you wanted me to review the release commits and the changelog
00:09:44  <isaacs>piscisaureus: yes, i did. thanks :)
00:09:54  <isaacs>piscisaureus: there's a new v8 that i'm gonna pull in
00:10:02  * mjr_changed nick to 16SAALJVA
00:15:39  * harryjoined
00:16:05  * harrychanged nick to Guest35011
00:16:33  * harry__quit (Ping timeout: 272 seconds)
00:23:01  <isaacs>arg, floating patches is so painful.
00:23:13  <isaacs>i wonder what we could do to get v8 to switch to git.
00:24:07  <piscisaureus>isaacs: I explained ryan a process to avoid the pain once. Apparently it was forgotten :-)
00:24:27  <isaacs>piscisaureus: if you want to explain it to me some time, then i would appreciate it.
00:24:35  <isaacs>it's very easy to do with git and git
00:24:42  <isaacs>svn and git makes my techniques useless.
00:25:01  <isaacs>piscisaureus: you can do some magic thing where you always have a branch where v8 is pristine, and then merge it over or something?
00:26:32  <mmalecki>but v8 has a git mirror...
00:26:34  * mikealquit (Quit: Leaving.)
00:26:52  <piscisaureus>isaacs: yeah
00:26:59  <piscisaureus>isaacs: exactly that
00:27:11  <isaacs>k.
00:27:14  <isaacs>i'll get that going soon.
00:33:34  <isaacs>any idea why the gyp build decides it needs to rebuild the binary to create the tarball?
00:34:46  <isaacs>`make node node-v0.7.1.tar.gz` builds node twice
00:34:49  <isaacs>seems wrong.
00:34:58  * mikealjoined
00:38:24  <piscisaureus>isaacs: no idea tbh - create an issue for it
00:38:49  <isaacs>hm... now it worked...
00:41:05  * lwillequit (Quit: Leaving...)
00:41:19  * lwillejoined
00:41:33  * lwillequit (Client Quit)
00:42:40  <isaacs>test, plz: http://nodejs.org/dist/v0.7.1/node-v0.7.1-RC2.tar.gz
00:50:02  * lwillejoined
00:52:00  <piscisaureus>isaacs: sorry, my internet is way too slow :-(
00:52:16  <piscisaureus>isaacs: I can do it tomorrow morning if you want but I guess you'll be drinking by then
00:54:45  * lwillequit (Ping timeout: 260 seconds)
00:57:31  <isaacs>yep
00:57:45  <isaacs>piscisaureus: no worries
00:57:51  <isaacs>seems to build fine on solaris and windows
00:57:57  <isaacs>tests fail predictably.
00:58:00  <isaacs>same on linux
00:58:26  <piscisaureus>good
01:02:20  <piscisaureus>isaacs: I am going to sleep. Enjoy nodesummit. And say hi to igor from me if you have the chance :-)
01:03:01  <isaacs>piscisaureus: enjoy sleep. i'll say hi to all the people about you.
01:03:11  <piscisaureus>haha
01:03:19  <piscisaureus>thinking of it it makes no sense :-)
01:03:24  <isaacs>:)
01:03:26  <piscisaureus>what a weird habit this is
01:03:35  <isaacs>if i tip the bartender, i'll tell him "This buck is from Bert."
01:03:47  <piscisaureus>lol
01:03:48  <isaacs>if i don't, i'll tell him it's because he has angered you.
01:03:50  <piscisaureus>you should
01:04:33  <piscisaureus>somehow it feels somewhat lonely to not join these get-togethers
01:04:39  <isaacs>you know...
01:04:52  <isaacs>you could just move here..
01:06:03  <piscisaureus>hmm
01:06:41  <piscisaureus>I don't think USCIS would let me
01:07:07  <isaacs>uscis?
01:07:13  <isaacs>is that some kind of immigration thing?
01:07:19  <piscisaureus>yes
01:07:27  <piscisaureus>the immigration thing of the country where you live
01:07:32  <isaacs>fucking nazis.
01:07:51  <isaacs>citizenship and immigration are so outdated.
01:09:19  <piscisaureus>yes
01:09:46  <piscisaureus>I live in a nazi country too btw - although I think Americans can just move here freely
01:10:09  <piscisaureus>so I think it would be more practical if you guys just came over
01:10:15  <isaacs>anyone should be able to just go anywhere.
01:12:42  <isaacs>piscisaureus: also, isn't it like, super cold there?
01:12:47  <isaacs>that doesn't sound fun.
01:13:00  <piscisaureus>yes
01:13:25  <isaacs>i don't like being places where night time is cold enough to kill you.
01:13:40  <piscisaureus>it's not that cold
01:13:46  <isaacs>in the winter at night?
01:13:48  <piscisaureus>it's like 41 F
01:13:58  <isaacs>yeah, that's way way way too cold.
01:14:02  <isaacs>that's like a refrigerator.
01:14:06  <piscisaureus>hehe
01:14:10  <isaacs>SF is about as arctic as i can tolerate.
01:14:17  <piscisaureus>it is exacly as cold as my fridge
01:14:24  <isaacs>if i could move silicon valley to san diego, that'd be ideal.
01:15:12  <piscisaureus>Well if you're going to move it anyway I can imagine nicer places
01:15:38  <piscisaureus>a sunny archipelago somewhere sounds ideal to me
01:17:35  <piscisaureus>admittedly I've never been to san diego so I might be wrong
01:18:47  * AvianFluquit (Quit: Leaving)
01:24:07  <isaacs>piscisaureus: san diego has perfect weather.
01:24:10  <isaacs>never too hot, never too cold.
01:24:21  <isaacs>it's like beautiful springtime 10 months, then slightly cloudy for 2 months.
01:24:35  <isaacs>and people bitch like there's no tomorrow for Gray May and June Gloom.
01:24:45  * mikealquit (Quit: Leaving.)
01:41:03  * orlandovftwquit (Ping timeout: 255 seconds)
01:45:57  * mikealjoined
01:48:08  <16SAALJVA>piscisaureus: I recommend Hawaii as a sunny archipelago with good internet.
01:48:15  * 16SAALJVAchanged nick to mjr_
01:48:18  <mjr_>woah
01:48:29  <isaacs>mjr_: you in town yet? gonna be at the joyent thingie?
01:48:38  <mjr_>Yeah, I'm headed over son
01:48:40  <mjr_>soon
01:48:50  <mjr_>Just as soon as I get control of my computer.
01:49:02  <mjr_>you?
01:49:03  <isaacs>for a second i thought you were calling me "son"
01:49:07  <isaacs>you seemed so paternal.
01:49:15  <mjr_>Listen, son. I'm headed over.
01:49:19  <mjr_>In like 15 mins.
01:49:49  * mikealquit (Client Quit)
02:08:20  * isaacsquit (Remote host closed the connection)
02:09:02  * mjr_quit (Quit: mjr_)
02:10:43  * piscisaureus_joined
02:10:45  * sh1mmerjoined
02:11:49  * mjr_joined
02:13:54  * piscisaureusquit (Ping timeout: 252 seconds)
02:15:48  * dshaw_quit (Ping timeout: 244 seconds)
02:26:17  * orlandovftwjoined
02:33:49  * pieternquit (Quit: pietern)
02:44:03  * orlandovftwquit (Ping timeout: 255 seconds)
02:57:47  * piscisaureus_quit (Read error: Connection reset by peer)
02:58:15  * `3rdEdenjoined
03:32:14  * sh1mmerquit (Quit: sh1mmer)
03:48:05  * einarosquit (Read error: Operation timed out)
03:48:28  * brsonquit (Quit: leaving)
03:49:26  * dshaw_joined
03:54:41  * dshaw_quit (Ping timeout: 276 seconds)
04:21:50  * xaq_joined
04:22:27  * orlandovftwjoined
04:23:25  * xaq_quit (Remote host closed the connection)
04:23:31  * xaq_joined
04:24:03  * xaq_quit (Client Quit)
04:24:24  * xaq_joined
04:38:31  * xaq_quit
04:38:47  * xaq_joined
05:00:13  <CIA-115>node: koichik master * ra6f3451 / lib/http.js :
05:00:13  <CIA-115>node: http: fix test-http-should-keepalive.js is fail
05:00:13  <CIA-115>node: 3df7c90 was removed when conflict was resolved. - http://git.io/7twwlQ
05:02:00  * mrb_bkquit (Ping timeout: 240 seconds)
05:12:43  * xaq_quit (Remote host closed the connection)
05:14:01  * travis-cijoined
05:14:01  <travis-ci>[travis-ci] joyent/node#310 (master - a6f3451 : koichik): The build is still failing.
05:14:01  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/b1b16d1...a6f3451
05:14:01  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/566299
05:14:01  * travis-cipart
05:18:56  * mrb_bkjoined
06:00:04  * mralephjoined
06:26:37  * mralephquit (Quit: Leaving.)
06:28:58  * xaqjoined
06:32:41  <indutny>bnoordhuis: oh, you're offline
06:34:08  <`3rdEden>lol
06:34:34  <`3rdEden>indutny then why do you try to msg him XD
06:36:09  <indutny>`3rdEden: :)
06:36:17  <indutny>because he was messaging me when I was offline
06:42:57  <`3rdEden>;D
06:43:07  * xaqquit (Remote host closed the connection)
07:38:16  * `3rdEdenquit (Quit: Zzzzzz)
08:02:49  * Guest35011quit (Quit: leaving)
08:04:49  * benviejoined
08:08:27  * paddybyersjoined
08:10:38  * isaacsjoined
08:12:54  <CIA-115>node: isaacs master * r5988872 / (147 files in 17 dirs): Merge branch 'v0.7.1-release' - http://git.io/H99JJg
08:13:28  <isaacs>whoops, forgot to push that earlier
08:13:46  <indutny>heh
08:14:26  <indutny>isaacs: http://habrahabr.ru/blogs/javascript/136860/
08:14:34  <indutny>that's translation of your blogpost ^
08:14:46  <indutny>can't say that I agree with you, but anyway nice :)
08:16:11  <isaacs>hahah, that's rad
08:16:20  <isaacs>indutny: well, i mean, lying is bad, right?
08:16:36  <isaacs>you don't have to agree with which way is better. just don't lie to people, that's all.
08:17:14  <indutny>isaacs: that's what I think is nice in your article :D
08:17:26  <indutny>isaacs: just "think your head, not others"
08:17:31  <indutny>that's cool
08:20:06  * ljacksonquit (*.net *.split)
08:24:31  * ljacksonjoined
08:26:32  * travis-cijoined
08:26:32  <travis-ci>[travis-ci] joyent/node#311 (master - 5988872 : isaacs): The build is still failing.
08:26:32  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/a6f3451...5988872
08:26:32  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/566719
08:26:32  * travis-cipart
08:32:19  * isaacsquit (Remote host closed the connection)
08:32:23  <indutny>dunno why, but network on my MBP seems to be borked :(
08:32:54  * isaacsjoined
08:33:27  <indutny>oh, nice - github is down again
08:34:04  <indutny>PING github.com (207.97.227.239): 56 data bytes
08:34:04  <indutny>Request timeout for icmp_seq 0
08:34:04  <indutny>Request timeout for icmp_seq 1
08:34:04  <indutny>Request timeout for icmp_seq 2
08:34:34  <indutny>oh, they're not answering on pings
08:34:42  <indutny>ok, anyway ssh is borked
08:38:06  * isaacsquit (Ping timeout: 248 seconds)
08:55:29  * mikealjoined
09:08:31  <mmalecki>*yaawn* good morning
09:16:10  <indutny>morning
09:19:32  <indutny>mmalecki: hm... do you know why "new char[n]" may hang
09:19:34  <indutny>?
09:19:53  <indutny>oh, I got it
09:21:28  <mmalecki>indutny: it can't? what was it?
09:22:16  <indutny>mmalecki: value* b; b.p = new char[100]
09:22:24  <indutny>w/o init
10:53:00  * orlandovftwquit (Ping timeout: 240 seconds)
11:15:38  * bnoordhuisjoined
11:33:40  <indutny>bnoordhuis: hey man
11:33:46  <bnoordhuis>indutny: ho man
11:35:45  <indutny>bnoordhuis: I've following problem
11:36:12  <indutny>bnoordhuis: oh I don't have one
11:36:13  <indutny>:D
11:36:21  <bnoordhuis>well, good
11:53:52  <indutny>bnoordhuis: I just implemented FIFO queue instead of FILO
11:53:59  <indutny>oops :(
11:57:46  * paddybyersquit (Quit: paddybyers)
12:13:08  <indutny>bnoordhuis: are uv_work_t, uv_async_t and uv_mutex_t public API or is it a subject of change?
12:13:27  <bnoordhuis>indutny: they're public
12:13:31  <indutny>bnoordhuis: cool
12:13:42  <indutny>bnoordhuis: bad that uv_mutex_t won't be
12:13:45  <indutny>in 0.6.x
12:14:00  <bnoordhuis>when / where would you need it?
12:14:14  <indutny>bnoordhuis: let me show you
12:15:36  <indutny>ok, github is failing for me again... so I'll describe it in words
12:15:53  <indutny>I'm doing all actions with bptree in a thread pool
12:16:30  <indutny>and when doing writes I need to acquire lock first, because parallel writes won't work with append-only database
12:16:51  <indutny>doing that in a blocking way is possible, but will look strange
12:17:02  <indutny>especially for a bulk insertion for 100000 items
12:17:12  <indutny>which may take ~ 0.5 sec
12:17:33  <indutny>so I'm using uv_mutex_t
12:17:44  <indutny>and using it for passing messages between threads (for streaming)
12:18:48  <bnoordhuis>indutny: that database is a file, right?
12:18:54  <indutny>bnoordhuis: right
12:19:31  <bnoordhuis>indutny: is it conceivable that the database is accessed by multiple processes concurrently?
12:19:41  <indutny>bnoordhuis: yes, for reads
12:19:51  <bnoordhuis>because in that case, you'll need file locking
12:20:04  <bnoordhuis>or interprocess mutexes but not all platforms support them
12:20:10  <indutny>bnoordhuis: hmm... you're right, but I'm not sure how to use it
12:20:39  <indutny>bnoordhuis: lets assume that it's controlled by bplus, and different processes can't open same db
12:21:05  <bnoordhuis>good assumption because there is no portable mandatory file locking on unices
12:21:23  <indutny>:)
12:21:40  <bnoordhuis>indutny: look at how sqlite does file locking
12:22:02  <bnoordhuis>it's pretty smart, it starts with a read lock, upgrades that to a 'will write soon' lock, then to a true write lock
12:23:11  <indutny>bnoordhuis: interesting, but I can just use EXLOCK on BSD systems, right?
12:24:04  <bnoordhuis>indutny: what syscall are you looking at?
12:25:01  <indutny>bnoordhuis: just open(... O_EXLOCK)
12:25:09  <bnoordhuis>indutny: oh btw, the reason i pointed you to sqlite's implementation is that it solves the problem of reader/writer starvation
12:26:03  <indutny>bnoordhuis: huh?
12:26:12  <indutny>bnoordhuis: not sure, that I understand you
12:26:30  <bnoordhuis>indutny: assume there are multiple processes, some readers, some writers
12:26:52  <bnoordhuis>indutny: if the writers keep taking out exclusive locks, the readers will starve (never get a chance to read)
12:27:12  <bnoordhuis>vice versa (and this is more common), if the readers keep taking out read locks, the writers will starve
12:27:29  <bnoordhuis>that's why sqlite uses this intermediary 'will write soon' lock
12:27:29  <indutny>bnoordhuis: but readers of bptree doesn't need locking
12:28:08  <bnoordhuis>indutny: what if a reader reads a database page that's just getting updated?
12:28:10  <indutny>bnoordhuis: I only need some for range reads, but I may just clone root page
12:28:23  <indutny>bnoordhuis: it's append-only, or CoW if you like
12:28:34  <bnoordhuis>indutny: you never compact it?
12:28:40  <indutny>bnoordhuis: only root page is in memory, and only root page can change
12:28:45  <indutny>bnoordhuis: bp_compact() manually
12:28:59  <indutny>bnoordhuis: other pages will be dynamically loaded
12:29:03  <bnoordhuis>indutny: so doesn't that need proper locks?
12:29:28  <indutny>bnoordhuis: only for root page...
12:29:35  <indutny>bnoordhuis: because it's in memory
12:29:47  <indutny>bnoordhuis: but you're definitely right
12:30:10  <indutny>if someone will update root page while others was reading, anything may happend
12:30:29  <bnoordhuis>there you go
12:30:40  <indutny>may be root page should be loaded for each read ?
12:30:47  <bnoordhuis>and once you have multiple readers and writers, you face the issue of starvation
12:31:36  <indutny>I don't want locking inside bptree
12:31:39  <bnoordhuis>oh, another thing
12:31:57  <indutny>and platform specific stuff
12:32:03  <bnoordhuis>it's not entirely safe to assume that a read() or write() of a single page is atomic
12:32:29  <indutny>they're not, but they're interacting with different parts of memory
12:32:37  <indutny>so in terms of tree they're atomic
12:33:32  <indutny>I think I should do a `cheap` copy of root page for all requests
12:33:40  <indutny>or do a copy on write
12:33:46  <indutny>yeah, that sounds better
12:34:10  <indutny>so any reader can be sure that pages won't be changed in the process
12:34:15  <indutny>bnoordhuis: what do you think?
12:34:27  <indutny>bnoordhuis: introducing any locks will hurt performance
12:34:45  <indutny>bnoordhuis: I'm ok with worse write performance, but reads should be as fast as possible
12:41:14  <indutny>bnoordhuis: mm?
12:41:44  <indutny>bnoordhuis: looks like I completely missed your point about starvation, sorry :( can't get how it's related to bplus implementation?
12:44:03  * lwillejoined
13:51:36  * piscisaureus_joined
13:51:43  * piscisaureus_quit (Read error: Connection reset by peer)
13:52:17  * piscisaureus_joined
14:07:54  * felixgejoined
14:07:54  * felixgequit (Changing host)
14:07:54  * felixgejoined
14:08:28  <piscisaureus_>bnoordhuis: https://gist.github.com/1670344
14:08:41  <piscisaureus_>bnoordhuis: I dislike node's file io semantics very much
14:09:01  <bnoordhuis>piscisaureus_: go on
14:09:36  <piscisaureus_>bnoordhuis: stuff is directed to the thread pool but a lot of stuff you can do within node itself can interfere with that
14:10:10  <bnoordhuis>piscisaureus_: you mean modifying buffers?
14:10:16  <piscisaureus_>bnoordhuis: look at the gist
14:10:29  <piscisaureus_>bnoordhuis: data may end up in file1 or file2
14:11:02  <piscisaureus_>bnoordhuis: (on windows node sometimes prematurely exits before the second console log, which is probably a bug)
14:11:27  <bnoordhuis>piscisaureus_: because the fd gets reopened as file2?
14:11:34  <piscisaureus_>bnoordhuis yes
14:12:35  <bnoordhuis>piscisaureus_: you could argue it's part of the contract
14:12:54  <bnoordhuis>don't touch what is needed (fds, buffers) until the write completes
14:13:02  <piscisaureus_>of course I could also argue that frying babies is humane
14:13:44  * bnoordhuisis listening
14:24:48  * `3rdEdenjoined
14:26:04  <piscisaureus_>bnoordhuis: let's change the fd api
14:26:16  <bnoordhuis>piscisaureus_: how?
14:26:59  <piscisaureus_>var file = fs.open('myfile', 'w+'); file.fstat(function(e, s) { console.log(e||s) })
14:27:27  <piscisaureus_>bnoordhuis: basically isaacs proposal to turn FDs into handles
14:27:34  <piscisaureus_>so we can properly do internal queueing
14:28:02  <piscisaureus_>bnoordhuis: I also wonder what the difference between closeSync and close is. Why do we run a close() on the thread pool?
14:28:48  <piscisaureus_>bnoordhuis: do operating systems perform cache flushing on close()?
14:28:49  <bnoordhuis>piscisaureus_: it's conceivable if unlikely that the close call blocks for a while
14:29:05  <bnoordhuis>e.g. when the file is on an nfs mount
14:29:11  <piscisaureus_>hmm ok
14:31:18  <`3rdEden>Good, morning when is the stable node coming out with a fix for the HTTP parser leak?
14:31:33  <bnoordhuis>piscisaureus_: https://github.com/joyent/node/issues/2586
14:31:44  <bnoordhuis>`3rdEden: this week, i think
14:32:06  <piscisaureus_>did koichi's patch land already?
14:32:34  <piscisaureus_>I asked mikeal to review it but I did not check back after
14:33:09  <bnoordhuis>piscisaureus_: the patch from #2577?
14:33:55  <piscisaureus_>ah I see
14:33:57  <piscisaureus_>yes
14:34:01  <piscisaureus_>we should release that soon
14:34:41  <`3rdEden>bnoordhuis thanks
14:36:20  <piscisaureus_>3rdEden: I guess it would be the end of the week. Assuming that isaacs will be busy with nodesummit today and tomorrow (and you too)
14:39:17  * `3rdEdenquit (Read error: Connection reset by peer)
14:39:25  * V1joined
14:41:26  <V1>piscisaureus_ iknow but if i remember correctly, indutny was working on backport patch for it
14:42:41  * V1changed nick to `3rdEden
14:43:43  <indutny>`3rdEden: I merged 0.6 into 0.7 yesterday
14:43:48  <`3rdEden>ah
14:44:01  <`3rdEden>oki :p
14:44:08  <indutny>`3rdEden: if we're talking about same fixes, then they're in current release
14:44:31  <`3rdEden>indutny you are talking about 0.7 release
14:44:58  <`3rdEden>I wondered when the parser leak fix would be released for 0.6
14:45:13  <indutny>`3rdEden: ah, dunno
14:46:01  <`3rdEden>okay
14:53:06  * paddybyersjoined
14:59:17  <bnoordhuis>piscisaureus_: you want to review stuff? here you go: https://github.com/bnoordhuis/node/commit/e806ad3
15:02:12  <piscisaureus_>bnoordhuis: lgtm but I wonder why ondrain was there in the first place
15:02:33  <bnoordhuis>piscisaureus_: i think it was carried over from 0.4
15:02:50  <piscisaureus_>bnoordhuis: although people will now be like OMG i used removeAllListeners and is breaks
15:03:03  <piscisaureus_>bnoordhuis: removeAllListeners was a mistake obviously
15:03:12  <piscisaureus_>I don't know what ryah_ was thinking
15:03:19  <bnoordhuis>heh
15:03:21  * paddybyersquit (Ping timeout: 252 seconds)
15:03:31  <bnoordhuis>yeah, in retrospect
15:03:36  <bnoordhuis>not too mention 20/20 hindsight
15:03:41  <bnoordhuis>*to
15:03:49  <bnoordhuis>indutny: did you run `make test` after yesterday's merge?
15:04:21  <piscisaureus_>bnoordhuis: 20/20?
15:04:34  <bnoordhuis>piscisaureus_: as in the perfect 20/20 vision
15:05:41  * paddybyersjoined
15:06:18  <CIA-115>node: Ben Noordhuis master * re806ad3 / (lib/http.js lib/net.js lib/tls.js):
15:06:18  <CIA-115>node: net, tls, http: remove socket.ondrain
15:06:18  <CIA-115>node: Replace the ondrain hack with a regular 'drain' listener. Speeds up the
15:06:18  <CIA-115>node: bytes/1024 http benchmark by about 1.2%. - http://git.io/3G6gNg
15:10:25  * `3rdEdenquit (Quit: going to the NodeSummit in a bit ^_^)
15:17:57  * paddybyersquit (Read error: Connection reset by peer)
15:18:27  * paddybyersjoined
15:20:02  * travis-cijoined
15:20:03  <travis-ci>[travis-ci] joyent/node#312 (master - e806ad3 : Ben Noordhuis): The build is still failing.
15:20:03  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/5988872...e806ad3
15:20:03  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/568096
15:20:03  * travis-cipart
15:20:14  <bnoordhuis>piscisaureus_: re converting file descriptors to handles, try and benchmark it
15:25:06  * xaqjoined
15:29:29  <piscisaureus_>bnoordhuis: ok
15:29:31  <piscisaureus_>indutny: yt>
15:36:16  * xaqquit (Remote host closed the connection)
15:37:19  * xaqjoined
15:42:10  * xaqquit (Remote host closed the connection)
15:52:33  * paddybyersquit (Quit: paddybyers)
16:02:15  * sh1mmerjoined
16:06:43  * AndreasMadsenjoined
16:11:54  * rphillipsquit (Excess Flood)
16:13:44  * rphillipsjoined
16:25:30  <piscisaureus_>indutny: https://github.com/joyent/node/issues/2607
16:28:01  * bradleymeckjoined
16:34:31  <indutny>piscisaureus_: yep
16:34:37  <indutny>piscisaureus_: I know what problem is in
16:34:47  <piscisaureus_>indutny: what is it, and how can we fix it?
16:35:30  <indutny>piscisaureus_: I'll fix it, it's in lib/module.js. we're checking filename when deciding to break
16:38:57  * paddybyersjoined
16:46:14  <indutny>piscisaureus_: fixed, uploading to my repo
16:46:44  <indutny>piscisaureus_: https://github.com/indutny/node/commit/b61e72b860eaeeaad47be0b6cf42258e39f864e9
16:47:17  * paddybyersquit (Ping timeout: 252 seconds)
16:47:38  <piscisaureus_>indutny: can you change that to not call resolveFilename every time *a* module loads
16:47:54  <piscisaureus_>indutny: you could cache the result like
16:48:04  <indutny>piscisaureus_: it will not call, only with --expose-debug-as
16:48:29  <indutny>piscisaureus_: --expose-debug-as v8debug
16:48:29  <kohai>piscisaureus_ has 4 beers
16:48:34  <indutny>piscisaureus_: ++
16:48:35  <indutny>:D
16:48:37  <kohai>piscisaureus_ has 5 beers
16:48:52  <piscisaureus_>indutny: I know, but I mean why not, instead of
16:49:10  <piscisaureus_>if (!resolvedArgv) resolvedArgv = Module._resolveFilename(process.argv[1], null)[1];
16:49:20  <piscisaureus_>and define resolvedArgv somewhere in the closure context
16:49:24  <indutny>piscisaureus_: that won't work, I'll need to store it somewhere
16:49:30  <indutny>piscisaureus_: ahhh
16:49:52  <indutny>piscisaureus_: yeah, actualy that thing should be called only one time
16:50:00  <piscisaureus_>indutny: otherwise when running node with debugging every module load causes another resolveFilename
16:50:13  <piscisaureus_>indutny: that looks like unnecessary perf decrease to me\
16:50:22  <indutny>piscisaureus_: perf decrease with debugging ;)
16:50:23  <indutny>ok
16:53:58  <indutny>piscisaureus_: https://github.com/indutny/node/commit/bff6e702a99ba270fa0ea84b240bd24bb1fd4035
16:54:17  <piscisaureus_>indutny: better:-)
16:54:24  <indutny>piscisaureus_: but not good?
16:54:32  <piscisaureus_>indutny: still trying it :-)
16:54:37  <piscisaureus_>indutny: I think this is good
16:54:46  <indutny>piscisaureus_: ok, ping me once you'll test iit
16:56:03  <indutny>brb
16:57:27  * isaacsjoined
16:59:11  <indutny>back
17:05:09  <indutny>piscisaureus_: so?
17:05:23  <piscisaureus_>indutny: my colleague is still testing it.. hold on
17:05:38  <piscisaureus_>indutny: actually, just land it
17:05:41  <piscisaureus_>it looks good to me
17:06:07  * harry_joined
17:07:20  <piscisaureus_>join #nodesummit
17:07:52  * bnoordhuisquit (Ping timeout: 240 seconds)
17:07:56  <piscisaureus_>unfortunately my trillian has no telepresence support
17:08:17  <AndreasMadsen>indutny: could you review the disconnect patch, I have updated to it let the current message end before closing the channel.
17:11:31  <AndreasMadsen>https://github.com/joyent/node/pull/2591
17:13:03  <indutny>piscisaureus_: ok
17:13:21  <indutny>piscisaureus_: I join #nodesummit
17:13:30  <indutny>piscisaureus_: but there're not a lot of people here :)
17:13:36  <piscisaureus_>indutny: no it was a joke
17:14:22  <indutny>oh, fun
17:15:16  <CIA-115>node: Fedor Indutny master * r27c8572 / lib/module.js :
17:15:16  <CIA-115>node: module: fix --debug-brk on symlinked scripts
17:15:16  <CIA-115>node: * fixes #1519 - http://git.io/PWoH8g
17:16:31  <indutny>AndreasMadsen: oh, monkey patching
17:17:17  <AndreasMadsen>indutny: excuse me? - oh you did a monkey patch :) - I'm fine
17:21:31  <indutny>oh, github is working fine finally
17:21:48  <indutny>piscisaureus_: after 14 minutes I got the joke
17:21:55  <indutny>:D
17:23:01  * harry_quit (Quit: leaving)
17:23:25  <AndreasMadsen>indutny: read it, will fix it shortly :)
17:23:41  <indutny>AndreasMadsen: kk, one second
17:24:25  <AndreasMadsen>sure, no problem :)
17:26:08  <indutny>AndreasMadsen: looks good with some nits
17:26:20  * orlandovftwjoined
17:26:31  * rphillipsquit (Ping timeout: 245 seconds)
17:26:55  <mmalecki>yay!
17:26:58  <AndreasMadsen>oh it was piscisaureus who was reviewing :)
17:27:14  <indutny>AndreasMadsen: could this all be a properties of channel, not scope variables?
17:27:27  <mmalecki>so, to make it clear, it'll allow parent to gracefully disconnect from the children?
17:27:33  <indutny>AndreasMadsen: and I think you can just use .once('message') or something like that
17:27:41  <indutny>mmalecki: yes
17:27:55  <mmalecki>indutny: oh, hey, I actually wanted to ask about one thing regarding v8 speed
17:28:03  <indutny>mmalecki: shoot
17:28:38  <mmalecki>indutny: is accessing variables from closure faster than accessing this.* properties?
17:28:45  <AndreasMadsen>indutny: no problem
17:28:45  * rphillipsjoined
17:28:56  <indutny>AndreasMadsen: so use ._buffered instead of readingMessage
17:29:12  <indutny>AndreasMadsen: wait, no... not _buffered
17:29:23  * travis-cijoined
17:29:23  <travis-ci>[travis-ci] joyent/node#313 (master - 27c8572 : Fedor Indutny): The build is still failing.
17:29:23  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/e806ad3...27c8572
17:29:23  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/568918
17:29:23  * travis-cipart
17:29:25  <indutny>mmalecki: that depends, what's your example?
17:29:34  <AndreasMadsen>mmalecki: the parent will still be alive as long as the child is, but you do not need to stop the event loop in child too kill it.
17:29:42  * isaacsquit (Remote host closed the connection)
17:30:03  <indutny>AndreasMadsen: ._buffering = true|false
17:30:14  * brsonjoined
17:30:15  <mmalecki>indutny: stripped code example: https://gist.github.com/023dde89f11e345e1304
17:30:17  * isaacsjoined
17:30:40  <mmalecki>indutny: but I could also make connectionHandler a method in class and access `redisClient` using this
17:30:47  <mmalecki>indutny: which is faster?
17:34:16  <indutny>mmalecki: 5 minutes
17:34:24  <indutny>mmalecki: going to eat pizza
17:34:40  <mmalecki>indutny: sure, nothing's on fire :)
17:35:24  * isaacsquit (Ping timeout: 240 seconds)
17:38:35  * mikealquit (Quit: Leaving.)
17:52:43  <indutny>mmalecki: back
17:53:16  <indutny>mmalecki: better put such things in this, but scope is ok if you're accessing it a lot
17:53:45  <indutny>mmalecki: because IC will put it somewhere close (in register) and lookup won't be done each time
17:54:38  <mmalecki>indutny: ok, I see. thanks!
17:57:01  <indutny>mmalecki: http://jsperf.com/scope-vs-this
17:57:42  <mmalecki>indutny: oh, wow, this is faster, nice
17:58:23  <indutny>mmalecki: btw, node-bplus is almost finished ;)
17:58:28  <mmalecki>now I have to figure out how to inherite from nssocket server :/
17:58:35  <mmalecki>in a nice way, I mean
17:58:39  <indutny>mmalecki: heh
17:58:46  <indutny>mmalecki: take a look at node-spdy then
17:58:57  <mmalecki>indutny: awesome! I didn't have time to get anything done there, sorry :(
17:59:01  <indutny>mmalecki: np
17:59:52  <AndreasMadsen>indutny: fixed -> https://github.com/joyent/node/pull/2591
18:00:27  <mmalecki>indutny: nope, can't do it like that, nssocket server has no constructor, only factory
18:00:40  <indutny>mmalecki: that's nssocket issue, definitely
18:00:47  <indutny>mmalecki: can you fix it w/o API change?
18:01:07  <mmalecki>indutny: sure. just API addition.
18:01:29  <indutny>AndreasMadsen: why not this.buffering ? inside channel that should work, I suppose?
18:02:00  <indutny>AndreasMadsen: https://github.com/joyent/node/pull/2591/files#L1R162
18:02:04  <indutny>AndreasMadsen: you forgot to change name here ^
18:03:25  <mmalecki>indutny: actually, no, that's complicated. I'd have to inherit from either tls.Socket or net.Socket.
18:03:43  <indutny>mmalecki: or make factory like in node-spdy
18:03:44  <AndreasMadsen>setupChannel is a function not a constructor
18:03:58  <indutny>AndreasMadsen: yep, but .onread callback should be called on channel
18:04:10  <indutny>AndreasMadsen: so this should be channel here
18:04:12  <AndreasMadsen>oh, I see
18:04:20  <mmalecki>indutny: it already is a factory. but factories become nasty when you try to inherit.
18:04:21  <indutny>s/this/`this`
18:04:29  <indutny>mmalecki: oh, well..
18:04:32  <indutny>mmalecki: got ya
18:04:50  <indutny>mmalecki: or not really... :)
18:05:00  <indutny>mmalecki: you can make separate factory that'll produce constructors
18:05:10  <indutny>mmalecki: as I'm doing in spdy
18:06:02  <mmalecki>indutny: but you still inherit from some base class
18:06:45  <indutny>mmalecki: huh?
18:06:52  <indutny>mmalecki: and what
18:07:07  <mmalecki>indutny: you mean https://github.com/indutny/node-spdy/blob/master/lib/spdy/server.js#L12-69, right?
18:07:11  <indutny>mmalecki: a<-factory(B)<-tls.Socket|net.Socket
18:07:24  <mmalecki>oh!
18:12:29  <AndreasMadsen>indutny: done, hope that was it :)
18:12:52  <indutny>AndreasMadsen: haha, squash it now :)
18:13:10  <AndreasMadsen>:)
18:13:48  <indutny>oh, wait
18:13:51  <AndreasMadsen>I could make a spyd binding to thintalk :)
18:13:53  <indutny>that's not all
18:13:57  <AndreasMadsen>:(
18:13:58  <indutny>great
18:14:58  <indutny>commented on PR
18:15:01  <indutny>AndreasMadsen: ^
18:15:20  <CIA-115>node: Fedor Indutny v0.6 * rccf7b41 / lib/module.js :
18:15:21  <CIA-115>node: module: fix --debug-brk on symlinked scripts
18:15:21  <CIA-115>node: * fixes #1519 - http://git.io/SJngbA
18:15:48  <AndreasMadsen>yes, I see it, remember now that it was why I did not use on('message') :/ - should i change it back?
18:15:49  <indutny>piscisaureus_: nice ^ !
18:16:17  <indutny>AndreasMadsen: you can wrap it in function and reuse
18:16:23  * felixgequit (Quit: felixge)
18:16:29  <AndreasMadsen>okay
18:16:59  <indutny>AndreasMadsen: and just call channel.removeListener('message', fn) from it
18:17:10  <indutny>or add bool variable fired
18:17:33  <AndreasMadsen>indutny: it won't be fired again since the message stops
18:17:41  <AndreasMadsen>s/message/IRC
18:17:49  <AndreasMadsen>s/message/IPC
18:17:59  <indutny>AndreasMadsen: it will, if you received a lot of data (multiple messages)
18:18:11  <indutny>AndreasMadsen: or internalMessage + message
18:18:23  <AndreasMadsen>okay
18:23:35  <AndreasMadsen>done, but you lost a this keyword :)
18:24:06  * travis-cijoined
18:24:06  <travis-ci>[travis-ci] joyent/node#314 (v0.6 - ccf7b41 : Fedor Indutny): The build passed.
18:24:06  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/2775c0e...ccf7b41
18:24:06  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/569118
18:24:06  * travis-cipart
18:25:35  <AndreasMadsen>indutny: --^
18:25:36  <kohai>indutny has 7 beers
18:25:52  <AndreasMadsen>indutny: ++
18:25:54  <kohai>indutny has 8 beers
18:26:28  <AndreasMadsen>mmalecki: this bug is killing us, can you not detect if there is a space.
18:28:42  <AndreasMadsen>wow I'm alone in #nodesummit :/
18:29:19  <mmalecki>AndreasMadsen: https://github.com/nodejitsu/kohai/issues/72
18:29:34  <mmalecki>so, yeah, someone will get to it soon
18:30:12  <mmalecki>we'll also rework kohai. soon.
18:31:26  <AndreasMadsen>So about rework, did anyone look at the child_process complexity patch I made.
18:35:19  <mmalecki>lol? http://www.reddit.com/r/programming/comments/otp8b/nodejs_finally_gets_real_documentation/c3k5og1
18:37:45  <AndreasMadsen>So, I too actually some of the documentation is confusing too, but I won't say it *** whatever.
18:50:08  * TooTallNatejoined
18:53:27  * mikealjoined
18:56:31  * TooTallNatequit (Remote host closed the connection)
18:56:44  * TooTallNatejoined
19:00:47  * felixgejoined
19:00:47  * felixgequit (Changing host)
19:00:47  * felixgejoined
19:01:01  * felixgequit (Client Quit)
19:05:24  * sh1mmerquit (Quit: sh1mmer)
19:08:42  * felixgejoined
19:08:42  * felixgequit (Changing host)
19:08:42  * felixgejoined
19:10:59  * mikealquit (Quit: Leaving.)
19:17:53  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
19:33:41  * xaqjoined
19:39:22  <AndreasMadsen>indutny: ping
19:41:20  <indutny>AndreasMadsen: pong
19:41:47  <AndreasMadsen>Do you have time for another review on the disconnect patch, I has been updated :)
19:41:57  <indutny>AndreasMadsen: yeah, link
19:42:03  <AndreasMadsen>The internalMessage + message thing
19:42:23  <AndreasMadsen>https://github.com/joyent/node/pull/2591
19:43:25  <AndreasMadsen>indutny: -^
19:44:50  <indutny>AndreasMadsen: yep
19:45:04  <AndreasMadsen>indutny: sure?
19:45:28  <AndreasMadsen>indutny: it it good - or? do it miss a this keyword
19:46:00  <indutny>AndreasMadsen: hahaha
19:46:18  <indutny>AndreasMadsen: I think it's good enough, but can you please fix one last thing?
19:46:24  <indutny>AndreasMadsen: I commented your PR
19:47:03  <AndreasMadsen>min
19:48:23  <AndreasMadsen>indutny: should we check if .connected is true before executed the rest of .dsiconnect()
19:49:19  <AndreasMadsen>Haveing finish outside, kinda like prevented to close the IPC two times.
19:50:10  * AvianFlujoined
19:51:06  <indutny>yeah
19:51:14  <indutny>you can check .connected
19:51:22  <indutny>and you may throw error
19:51:39  * xaqquit (Remote host closed the connection)
19:51:41  <AndreasMadsen>indutny: Was about to ask, it I may :)
19:52:39  * sh1mmerjoined
19:52:56  * orlandovftwquit (Ping timeout: 252 seconds)
19:55:24  * AvianFluquit (Ping timeout: 240 seconds)
19:56:17  * mikealjoined
19:57:30  * AvianFlujoined
19:58:42  <AndreasMadsen>hmm, a lot of testcases fails if .disconnect throws, but if I remove `child.once('exit', child.disconnect.bind(child));` all things parse - wonder if we need this?
19:59:45  <AndreasMadsen>s/things/testcases/
20:04:46  <AndreasMadsen>It can't provoke anything to fail if I remove `child.once('exit', child.disconnect.bind(child));`
20:05:55  <indutny>AndreasMadsen: ok, just do return if you already not connected
20:09:00  <AndreasMadsen>indutny: Okay, fixed and uploaded
20:11:35  <indutny>AndreasMadsen: cool
20:12:27  <AndreasMadsen>oh, hehe - a part of my throw debuging
20:12:30  * bradleymeckquit (Ping timeout: 245 seconds)
20:14:21  <AndreasMadsen>that is fixed to :)
20:14:30  <AndreasMadsen>now
20:14:36  <indutny>AndreasMadsen: squash it
20:14:41  <indutny>AndreasMadsen: it should be just one commit
20:15:02  <indutny>AndreasMadsen: and I need bert's acception, since he was reviewing it too
20:15:28  <AndreasMadsen>indutny: all of it, or just the previously two commits
20:16:00  <indutny>AndreasMadsen: I think all of it
20:16:23  <AndreasMadsen>okay, will do
20:20:41  * mjr_quit (Quit: mjr_)
20:23:13  * AvianFlu_joined
20:24:26  * mikealquit (Quit: Leaving.)
20:24:42  * AvianFluquit (Ping timeout: 255 seconds)
20:25:47  * mralephjoined
20:29:09  * AvianFlu_changed nick to AvianFlu
20:33:52  <AndreasMadsen>squashed it :)
20:34:36  <mraleph>indutny: saw you talking with mmalecki about speed of this.x vs. variable x… there is no ICs for context variables lookups, it's not needed in most normal cases (when eval and with are not in play) because scope variables are resolved to indexes at compile type (even in non-optimized code).
20:35:14  <indutny>mraleph: yes, indexes at call stack
20:35:16  <indutny>mraleph: right?
20:35:48  <mraleph>at the stack or in the floating object if variables are comming from outer scope
20:36:02  <mraleph>(floating object is called context)
20:36:03  <indutny>mraleph: ah, yeah a `contextz
20:36:17  <indutny>mraleph: so local scope variables are on stack
20:36:18  <mraleph>so in non-optimized code context lookups (at least for immediate context) are cheaper than this.x
20:36:27  <indutny>mraleph: and outer are in object
20:36:51  <mraleph>yeah (though it's not real javascript Object :-))
20:36:59  <indutny>mraleph: yep, that's understood
20:37:08  <indutny>mraleph: but memory lookup and relocation, etc
20:37:22  <mraleph>for this.x you also do memory lookup
20:37:32  <mraleph>and call :-)
20:37:36  <mraleph>and map comparison
20:37:38  * orlandovftwjoined
20:37:51  <indutny>mraleph: so why is it faster?
20:38:36  <mraleph>it should not be :-) for non-optimized code context lookup should be faster (if we are talking about immediate context). for optimized code they should be pretty much the same
20:38:57  <mraleph>in loops context lookup might be still faster.
20:39:06  <indutny>mraleph: because of IC? :)
20:39:15  <indutny>or how is it called, finally?
20:39:26  <indutny>I mean this.a.b.c.d will be cached after few calls
20:39:39  <indutny>I thought that's called IC
20:40:44  <mraleph>IC does not cache the result, it caches the process of computation [compiles a smallish stub that checks assumptions and gets result from a known place] :-)
20:41:08  <mraleph>also IC is per action (e.g. per dot in your expression above).
20:41:13  <indutny>ooh
20:41:53  <indutny>so it's literally inlining :D
20:42:25  <mraleph>no, it patches the call, stub exists "out of line"
20:42:40  <mraleph>indutny: here is your fixed bench http://jsperf.com/scope-vs-this/2
20:42:43  <indutny>mraleph: yeah, but inside stub it's inlined, right?
20:42:54  <mraleph>well yeah
20:43:18  <mraleph>I can't call it inlining because stub is basically handwritten assembly ;-)
20:43:30  <indutny>mraleph: ahha, ok :)
20:43:38  <indutny>mmalecki: http://jsperf.com/scope-vs-this/2
20:44:52  <indutny>mmalecki: so this.a just costs a little bit less than a.a
20:45:28  <indutny>mraleph: ^
20:45:29  <mmalecki>indutny: I see. I don't think it's that much, tho
20:45:34  <indutny>sorry, that was addressed to you
20:45:46  <mmalecki>mraleph: thanks for heads up!
20:46:10  <mraleph>indutny: this.a is local variable + field lookup, a.a is context lookup + field lookup :-)
20:46:21  <mraleph>mmalecki: you are welcome
20:46:32  <indutny>mraleph: cool, thanks for explanation!
20:47:53  <indutny>mraleph: wish you will be here next time ;)
21:03:23  * AvianFlu_joined
21:03:33  * AvianFluquit (Disconnected by services)
21:03:41  * AvianFlu_changed nick to AvianFlu
21:37:14  * sh1mmerquit (Quit: sh1mmer)
21:39:51  * sh1mmerjoined
21:50:20  * AndreasMadsenquit (Remote host closed the connection)
21:57:46  * mralephquit (Quit: Leaving.)
22:03:32  * felixgequit (Quit: felixge)
22:07:08  * AvianFlu_joined
22:07:23  * AvianFluquit (Disconnected by services)
22:08:47  * AvianFlu_changed nick to AvianFlu
22:14:05  * mralephjoined
22:15:54  * mralephquit (Client Quit)
22:16:09  <harryj>With regards performance I also noticed something funny with ./benchmark/function_call/bench.js I got a JS speedup of about 15 when calling cxx() on line 28 but if I changed it to use binding.hello() instead it was a lot faster.
22:17:29  <harryj>With regards performance I also noticed something funny with ./benchmark/function_call/bench.js.
22:17:59  * hacksonjoined
22:18:06  * harryjpart
22:18:26  <hackson> With regards performance I also noticed something funny with ./benchmark/function_call/bench.js.
22:18:42  <hackson>I got a JS speedup of about 15 when calling cxx() on line 28 but if I changed it to use binding.hello() instead it was a lot faster.
22:19:00  <hackson>I think the speedup was 9 times instead of 15.
22:40:50  * hacksonquit (Quit: leaving)
22:41:24  * hjacksonjoined
22:41:38  * hjacksonchanged nick to hackson
22:41:54  * Raynosquit (Remote host closed the connection)
22:41:54  * mrb_bkquit (Write error: Broken pipe)
22:44:13  * piscisaureus_joined
22:44:27  <piscisaureus_>hi
22:44:52  <sh1mmer>is everyone at node summit today?
22:45:06  <piscisaureus_>i am not\
22:45:09  <piscisaureus_>:-( :-(
22:45:43  <sh1mmer>aww
22:45:45  <sh1mmer>me either
22:50:05  <mmalecki>me neither :)
22:50:33  <mmalecki>piscisaureus_: don't worry, it's not a conference for programmers
22:50:58  <piscisaureus_>yesit is, igorzi is there
22:51:07  <piscisaureus_>and pquerna and ryah_ and isaacs
22:51:15  <mmalecki>it's about programmers acting like they can handle money and do business stuff
22:51:51  <AvianFlu>I was told tomorrow would be the cooler day for us non-biz-dev people
22:53:13  <sh1mmer>lol
22:53:26  <sh1mmer>I saw igor in a bar yesterday
22:53:40  <sh1mmer>tomorrow I have to sit on a panel with some VC and judge startups or something
22:54:53  <ryah_>nice cloud9 demo from msft earlier
22:55:05  <AvianFlu>I hear he was using a mac
22:55:59  <mmalecki>lol, that's kind of a fail
22:57:07  * kohaiquit (Remote host closed the connection)
22:57:08  <sh1mmer>was he running bootcamp?
22:57:17  * Raynosjoined
22:58:57  <piscisaureus_>hmm the cloud9 demo went well
22:58:58  <piscisaureus_>?
22:59:22  <piscisaureus_>Everybody here was sweating because the server went down in the middle of the demo
22:59:44  <sh1mmer>what happened?
23:00:30  <piscisaureus_>well probably nothing if the server goes down then you won't notice
23:00:35  <piscisaureus_>unless it stays down
23:00:40  <sh1mmer>Right
23:00:52  <sh1mmer>I've been thinking about ops tools a lot more recently
23:01:20  <mmalecki>forever ftw :)
23:02:01  <sh1mmer>oh man
23:02:04  <sh1mmer>I shouldn't get into this
23:02:09  <sh1mmer>:P
23:02:32  <mmalecki>hah :)
23:02:36  <sh1mmer>I love forever's logging
23:02:56  <sh1mmer>however after we added a cluster script and then demonized forever with upstart...
23:03:02  <sh1mmer>we ended up removing the forever
23:03:09  <mmalecki>what happened?
23:03:18  <mmalecki>can you tell me more details?
23:03:21  <sh1mmer>nothing just seemed like another layer
23:03:26  <mmalecki>ah, I see
23:03:35  <mmalecki>I thought it crashed or something
23:03:39  <sh1mmer>no, no
23:03:44  <sh1mmer>actually it was really helpful
23:03:48  <mmalecki>:)
23:03:56  <sh1mmer>because someone misconfigured a startup of forever
23:04:04  <sh1mmer>and pointed loggingto a null directory
23:04:10  <sh1mmer>but we still found the logs in .forever
23:04:15  <mmalecki>oh, yeah, it doesn't create it
23:04:17  <AvianFlu>lol nice
23:04:22  <mmalecki>oh, it falls back?
23:04:28  <sh1mmer>pretty sure
23:04:34  <mmalecki>I didn't write it and I wrote the logging plugin
23:04:36  <mmalecki>fun
23:05:01  <sh1mmer>it could have been another run where said person forgot to specify I guess
23:05:06  <sh1mmer>maybe it _should_ fallback
23:06:10  <mmalecki>hm, that's interesting XD
23:06:11  * kohaijoined
23:15:23  <piscisaureus_>the annoying this about forever is that it doesn't always work right
23:15:54  <piscisaureus_>cloud9 is on forever right now but people complain a lot that sometimes not all processes got started, sometimes processes are not stopped correctly
23:16:27  <mmalecki>piscisaureus_: there *are* edge cases. how do you start processes?
23:16:40  <mmalecki>on boot? or in CLI?
23:16:45  <piscisaureus_>mmalecki: I do not do it myself, I don't work on cloud9
23:16:49  <piscisaureus_>I work on node
23:17:05  <piscisaureus_>people stop stuff with "forever stopall"
23:17:16  <mmalecki>piscisaureus_: ah ok. so, yeah, if anything's wrong, ask them to post an issue
23:17:20  <piscisaureus_>which causes a lot of swearing here in the office
23:17:52  <mmalecki>it doesn't kill all processes?
23:18:12  <piscisaureus_>apparently not
23:18:18  <piscisaureus_>I wil tell people to file an issue
23:18:21  <mmalecki>that's weird. I'll try that later
23:18:26  <piscisaureus_>(kind of obvious)
23:18:28  <mmalecki>yeah, that'd be helpful, thanks!
23:20:26  * mrb_bkjoined
23:42:29  <piscisaureus_>ryah_: so anything otherwise interesting going on there?
23:54:12  * piscisaureus_quit (Ping timeout: 240 seconds)
23:58:45  * brsonquit (Ping timeout: 245 seconds)