00:01:32  * perezdquit (Quit: perezd)
00:11:37  * xaqquit (Remote host closed the connection)
00:35:28  * bcantrillquit (Quit: Leaving.)
00:37:33  <CIA-108>node: Shigeki Ohtsu master * r6d98524 / (41 files in 4 dirs): tools: update closure_linter to the latest(2.3.5) - http://git.io/GtHolg
00:37:33  <CIA-108>node: Shigeki Ohtsu master * r60ff789 / LICENSE : LICENSE: update Closure Linter to Apache 2.0 - http://git.io/VzQTwg
00:48:38  * mikealquit (Quit: Leaving.)
01:11:57  * dapquit (Quit: Leaving.)
01:19:06  <CIA-108>node: Shigeki Ohtsu master * re7e34dd / test/simple/test-dgram-broadcast-multi-process.js : test: fix test-dgram-broadcast-multi-process - http://git.io/xbXaHw
01:36:43  * abraxasjoined
01:37:12  * pieternquit (Quit: pietern)
01:39:09  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/node/commit/9d92232 <- review?
01:39:27  * mjr__joined
01:40:35  * mjr___quit (Ping timeout: 246 seconds)
01:43:38  <isaacs>bnoordhuis: wait, but... aren't you looping thorugh the entire set of keys every time that way?
01:44:19  <isaacs>oic, the tohash happens once, but the hasOwnProp over and over again
01:46:35  <isaacs>bnoordhuis: +!
01:46:41  <isaacs>+1
01:47:06  <TooTallNate>was util.format a bottleneck somewhere?
01:50:46  <bnoordhuis>TooTallNate: yeah. try printing an array with 100k elements
01:51:13  <bnoordhuis>TooTallNate: https://github.com/joyent/node/issues/3562
01:51:42  <TooTallNate>+1 actually, NodObjC creates an object with 10k+ properties on it
01:51:53  <TooTallNate>that i've seen crash the repl before when printing out
01:53:34  <mjr__>TooTallNate: I was playing around with network REPL today, and I noticed that the tab completion items don't show up properly. Have you seen this?
01:54:01  <CIA-108>node: Ben Noordhuis v0.8 * rbe3afd0 / doc/api/fs.markdown : doc: remove references to deprecated fs api - http://git.io/1n196w
01:54:01  <CIA-108>node: Ben Noordhuis v0.8 * r6531f18 / lib/util.js : util: speed up formatting of large arrays/objects - http://git.io/gjC2PQ
01:55:02  <TooTallNate>mjr__: that's because of the windows size not being set
01:55:21  <mjr__>Oh? It seemed to make space for the items, just not display them.
01:56:14  <TooTallNate>mjr__: ya I'm not sure what it's doing under the hood, but try setting "socket.columns = 80"
01:57:43  <TooTallNate>mjr__: on the server-side
01:57:48  <mjr__>Oh, sure enough
01:58:14  <mjr__>You can even set that through the repl, which is kind of amusing.
01:58:25  <TooTallNate>hahaha
01:58:26  <TooTallNate>ya
01:58:46  <TooTallNate>you can also set `process.stdin.columns` on the regular repl
01:58:51  <TooTallNate>and weird stuff happens
01:59:28  * AlbireoX`Laptopjoined
01:59:55  <mjr__>woah
02:00:00  <mjr__>Yeah, hilarious.
02:00:34  <AlbireoX`Laptop>?
02:01:17  <mjr__>TooTallNate: on Unix we could have the client parse the output of "stty size" as a super simple way to capture that.
02:01:26  <mjr__>Doesn't follow sigwinch though.
02:01:39  <TooTallNate>mjr__: that's why a telnet(1) solution is best
02:01:57  <TooTallNate>i have a node-telnet module, just needs some cleaning up
02:02:15  <mjr__>telnet doesn't know about unix domain sockets though.
02:02:34  <TooTallNate>oh shoot, that might be a deal-breaker
02:02:44  <TooTallNate>but something about this code really sits well with me: https://gist.github.com/a7017a1dddc543238012
02:02:47  <mjr__>Also, here is a hilarious thing, SmartOS doesn't come with telnet(1)
02:03:08  <TooTallNate>well i'll be
02:03:20  <TooTallNate>that's… odd actually
02:03:25  <TooTallNate>even windows has telnet!
02:03:28  <mjr__>heh
02:03:58  <mjr__>I guess they use nc(1) for all of that, which doesn't support those fancy out of band messages like telnet.
02:04:21  <mjr__>I agree that the telnet way is very attractive.
02:05:03  <mjr__>Maybe our silly SmartOS usage will require a node-based telnet client implementation.
02:05:25  <TooTallNate>mjr__: i mean you can alter the client-server to listen for JSON messages instead
02:05:35  <TooTallNate>and then send "resize" messages and "data" messages
02:05:53  <mjr__>Yeah, I guess it can be any silly protocol you like.
02:06:45  <TooTallNate>mjr__: your original idea is probably the easiest: reporting the initial size before setting up the repl
02:07:56  <TooTallNate>ok, i'm out. later guys
02:08:49  * TooTallNatequit (Quit: Textual IRC Client: www.textualapp.com)
02:17:08  <CIA-108>node: Ben Noordhuis master * r2d0011f / (42 files in 5 dirs): Revert "tools: update closure_linter to the latest(2.3.5)" - http://git.io/wafhbA
02:17:19  * IKchanged nick to ik
02:17:54  * ikchanged nick to IK
02:45:14  * hij1nx_joined
02:48:18  <CIA-108>libuv: Bert Belder reviewme * rd3230bc / (src/win/error.c src/win/fs.c): windows: don't inhibit reparse behavior when non-symlink is encountered - http://git.io/I0OIdA
02:48:31  <piscisaureus_>^-- bnoordhuis: wanna review?
02:50:22  * travis-cijoined
02:50:23  <travis-ci>[travis-ci] joyent/libuv#466 (reviewme - d3230bc : Bert Belder): The build passed.
02:50:23  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/commit/d3230bce49c9
02:50:23  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1725749
02:50:23  * travis-cipart
02:52:31  * piscisaureus_quit (Read error: Connection reset by peer)
02:52:36  * piscisaureus__joined
03:05:11  <bnoordhuis>piscisaureus__: i'll look at it in a few hours :)
03:05:21  <piscisaureus__>bnoordhuis: coming to 020?
03:05:23  <piscisaureus__>that'd be fine
03:05:27  <piscisaureus__>I wanne take a nap now too
03:05:28  <bnoordhuis>yep
03:05:34  <piscisaureus__>cool
03:05:41  <piscisaureus__>ttyl then
03:05:49  <bnoordhuis>sleep tight
03:05:53  <piscisaureus__>bnoordhuis: get some mental preparations before looking at that stuff (be warned :-))
03:08:48  <CIA-108>libuv: Bert Belder reviewme * r4a88b3b / (src/win/error.c src/win/fs.c): windows: don't inhibit reparse behavior when non-symlink is encountered - http://git.io/XJzkwQ
03:10:31  * travis-cijoined
03:10:31  <travis-ci>[travis-ci] joyent/libuv#467 (reviewme - 4a88b3b : Bert Belder): The build passed.
03:10:31  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/d3230bce49c9...4a88b3b4b72d
03:10:31  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1725854
03:10:31  * travis-cipart
03:13:41  * bnoordhuisquit (Ping timeout: 244 seconds)
03:16:35  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
03:19:41  * brsonquit (Read error: Operation timed out)
03:28:44  * bcantrilljoined
03:44:35  * brsonjoined
03:47:20  * thr4shjoined
04:06:50  * AlbireoX`Laptopquit (Remote host closed the connection)
04:56:26  * toothrquit (Ping timeout: 240 seconds)
04:58:10  * toothrjoined
06:26:21  * theColejoined
06:29:32  * paddybyersjoined
06:33:50  <CIA-108>node: isaacs v0.8 * r37bdd36 / tools/blog/generate.js : blog: Show 0.8.0 even after 0.8.1 ships - http://git.io/xk7hLQ
06:37:24  * txdvquit (Read error: Connection reset by peer)
06:37:36  * txdvjoined
06:54:12  * stephankquit (Quit: *Poof!*)
07:02:10  * mikealjoined
07:11:07  * hij1nx_quit (Quit: hij1nx_)
07:14:44  * rendarjoined
07:29:06  * brsonquit (Ping timeout: 264 seconds)
07:43:59  * paddybyersquit (Quit: paddybyers)
07:45:21  * theColequit (Quit: theCole)
08:12:53  * mmaleckijoined
08:52:26  * bcantrillquit (Quit: Leaving.)
09:12:18  * ^3rdEdenjoined
09:31:24  * felixgejoined
09:31:24  * felixgequit (Changing host)
09:31:24  * felixgejoined
09:31:42  <felixge>isaacs: hi
09:31:44  <felixge>you still up?
10:31:51  * abraxasquit (Remote host closed the connection)
10:55:57  * hzjoined
11:30:49  * toothrquit (Ping timeout: 252 seconds)
11:36:20  * piscisaureus_joined
11:52:44  * toothrjoined
11:54:55  * bweaverjoined
12:03:01  * felixgequit (Quit: felixge)
12:14:13  * TheJHjoined
12:14:19  * thr4shquit (Quit: Linkinus - http://linkinus.com)
12:18:03  * toothrquit (Changing host)
12:18:03  * toothrjoined
12:18:07  * toothrchanged nick to toothrot
12:20:23  * piscisaureus_quit (Ping timeout: 246 seconds)
12:25:13  * indexzerojoined
12:53:41  * piscisaureus_joined
12:57:41  * indexzeroquit (Quit: indexzero)
12:58:15  * felixgejoined
12:58:15  * felixgequit (Changing host)
12:58:15  * felixgejoined
13:00:39  * loladirojoined
13:01:32  * piscisaureus__joined
13:02:17  * felixgequit (Client Quit)
13:02:19  * piscisaureus_quit (Ping timeout: 250 seconds)
13:05:43  * mikealquit (Ping timeout: 246 seconds)
13:05:44  * piscisaureus__quit (Read error: Connection reset by peer)
13:08:44  * felixgejoined
13:08:44  * felixgequit (Changing host)
13:08:44  * felixgejoined
13:11:32  * piscisaureus__joined
13:11:43  * piscisaureus__changed nick to piscisaureus_
13:16:23  * piscisaureus_quit (Ping timeout: 246 seconds)
13:18:00  * piscisaureus_joined
13:19:11  * loladiroquit (Quit: Konversation terminated!)
13:21:41  * piscisaureus__joined
13:21:50  * piscisaureus_quit (Read error: Connection reset by peer)
13:22:04  * piscisaureus__changed nick to piscisaureus_
13:29:11  * piscisaureus__joined
13:29:18  * indexzerojoined
13:30:26  * piscisaureus___joined
13:31:05  * piscisaureus_quit (Ping timeout: 246 seconds)
13:31:10  * piscisaureus__quit (Read error: Connection reset by peer)
13:31:38  * piscisaureus____joined
13:32:31  * piscisaureus_joined
13:32:33  * TheJHquit (Ping timeout: 252 seconds)
13:32:35  * piscisaureus___quit (Read error: Connection reset by peer)
13:35:59  * piscisaureus____quit (Ping timeout: 246 seconds)
13:40:26  * toothrotquit (Ping timeout: 240 seconds)
13:43:13  * toothrjoined
14:04:05  * c4milojoined
14:15:50  * creationixquit (Ping timeout: 245 seconds)
14:16:39  <CIA-108>libuv: Bert Belder v0.8 * r4a88b3b / (src/win/error.c src/win/fs.c): windows: don't inhibit reparse behavior when non-symlink is encountered - http://git.io/XJzkwQ
14:18:58  <CIA-108>node: Bert Belder v0.8 * r3ea2a61 / (3 files in 2 dirs): uv: upgrade to 4a88b3b - http://git.io/naNkdg
14:20:23  * creationixjoined
14:35:24  * travis-cijoined
14:35:24  <travis-ci>[travis-ci] joyent/libuv#468 (v0.8 - 4a88b3b : Bert Belder): The build passed.
14:35:24  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/1b6843482a3c...4a88b3b4b72d
14:35:24  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1729713
14:35:24  * travis-cipart
14:40:06  <indutny>hoya
14:40:08  <indutny>a call today?
14:49:23  <piscisaureus_>sure, indutny
14:53:18  * hzquit
14:53:51  * pfox__changed nick to recusalfox
15:00:37  * perezdjoined
15:06:17  * ^3rdEdenquit (Quit: Linkinus - http://linkinus.com)
15:09:37  * saghulquit (Quit: Bye!)
15:17:58  * mikealjoined
15:26:50  * loladirojoined
15:31:46  * mikealquit (Quit: Leaving.)
15:32:58  * piscisaureus____joined
15:35:41  * piscisaureus_quit (Ping timeout: 246 seconds)
15:36:16  * pieternjoined
15:47:12  * mikealjoined
15:53:04  * dapjoined
15:53:37  <isaacs>good morning
15:53:46  <isaacs>skype in 10 minutes or so?
15:54:06  <piscisaureus____>isaacs: ben and me are slightly delayed
15:54:12  <isaacs>k
15:54:18  <piscisaureus____>isaacs: but before 9:15 sure
15:54:33  <isaacs>piscisaureus____: would it be worthwhile to just move it back an hour or so?
15:55:00  <piscisaureus____>isaacs: it's not my preference
15:55:03  <isaacs>k
15:55:37  * piscisaureus____changed nick to piscisaureus
15:55:55  <isaacs>felixge: hey
15:55:57  <isaacs>what's up?
15:56:03  <felixge>isaacs: hey
15:56:10  <felixge><3 domains
15:56:10  <felixge>:)
15:56:15  <isaacs>oh, awesome!
15:56:27  <isaacs>you are 100% the target market.
15:56:28  <felixge>but IMO dispose() is broken unless it works implicitly
15:56:30  * stephankjoined
15:56:40  <felixge>the performance impact sucks, I agree
15:56:46  <isaacs>yeah, i'm kinda with you on that. it's lame how it is
15:56:48  <felixge>but not being able to clean up sucks even more
15:57:00  <isaacs>but we opted to go halfway rather than degrade perf
15:57:02  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
15:57:15  <isaacs>felixge: maybe a button somehwer eyou can push that'd attach them all?
15:57:28  <tjfontaine>big red buttons everywhere
15:57:41  <isaacs>or maybe domain.dispose() is just not the right abstraction...
15:57:54  <felixge>isaacs: I'd say it should be the other way around
15:58:03  <felixge>there could be a button to disable implicit tracking
15:58:09  <felixge>for people who want broken domains
15:58:10  <felixge>:)
15:58:19  <felixge>isaacs: dispose() seems fine
15:58:24  <felixge>maybe there is a way to do it faster
15:58:37  <isaacs>i mean, in my usage, when a domain hits an error, i restart the serer
15:58:52  <isaacs>i'm treating it like process.on('uncaughtException'), but with the ability to send a 500
15:58:53  <felixge>huh?
15:59:01  * TooTallNatejoined
15:59:02  <felixge>IMO it should allow you to keep the server running
15:59:12  <isaacs>right, i mean, it's in a cluster worker
15:59:16  <felixge>(assuming you don't share objects between requests)
15:59:19  <isaacs>but that cluster worker stops listening
15:59:27  <isaacs>and once all its jobs are done, it dies
15:59:36  <felixge>right
15:59:38  <isaacs>takes it out of rotation
15:59:40  <felixge>so you clean up by killing the process
15:59:54  <isaacs>when the disconnect happens, the master spins up a new worker, so i always have N workers running
16:00:25  <felixge>thing is, with file uploads we may still need to wait a *long* time before we're willing to kill the worker
16:00:31  <felixge>so we could end up with lots of workers
16:00:33  <isaacs>right
16:00:39  <isaacs>but you could still have it stop listening to new connections
16:00:53  <isaacs>or do other stuff to shut down the requests a bit more promptly
16:00:57  <felixge>hm
16:01:02  <isaacs>even like, set a global or something, so that other requests know that they ought to leave.
16:01:11  <felixge>sure, there is workarounds
16:01:26  <felixge>I just hoped that with domains I could do sane error handling in a single process scenario
16:01:33  <isaacs>but in general, yes... we cannot degrade performance by default. also, it sucks that dispose() doesn't dispose() all the way
16:01:57  <felixge>ok
16:01:59  <felixge>but what about:
16:02:00  <isaacs>we've got a few months before the next stable release. let's try out some stuff on 0.9 :)
16:02:20  <felixge>domains.create({implicitMembers: true})
16:02:21  <felixge>or something?
16:02:24  * mikealquit (Quit: Leaving.)
16:02:24  <isaacs>sure
16:02:46  <felixge>I could also try to make it go faster
16:02:49  <isaacs>or maybe, we can flip the messaging...
16:03:05  <isaacs>like, the EE listens on the domain's 'dispose' event, rather than the domain looping through its EEs
16:03:29  * indexzeroquit (Quit: indexzero)
16:04:51  <isaacs>and then if that EE object has a .dispose() method, it calls it
16:05:13  * piscisaureus_joined
16:05:13  <isaacs>right now, domain.dispose() kind of plays whack-a-mole with the common "stop this thign" methods
16:05:25  <isaacs>.end(), .close().dstroy().pleaseGoAway() etc
16:05:29  <felixge>sure
16:05:33  <felixge>seems reasonable
16:05:35  <felixge>the way it's done
16:05:37  <indutny>isaacs: call?
16:05:47  <isaacs>indutny: 5 minutes ish
16:05:55  <indutny>ook
16:06:05  <isaacs>looking for my headphones, and felixge is distracting me with interesting api ideas :)
16:07:44  * piscisaureus__joined
16:08:16  <felixge>isaacs: just re-read your idea
16:08:29  <felixge>that actually sounds good
16:08:41  <felixge>as it would also allow me to write non-EE objects that listen to domain disposal
16:08:58  * TheJHjoined
16:10:13  * piscisaureus_quit (Ping timeout: 252 seconds)
16:14:40  * bcantrilljoined
16:28:54  * indexzerojoined
16:32:33  * TooTallNatequit (Quit: Computer has gone to sleep.)
16:33:11  * TooTallNatejoined
16:34:31  * TooTallNatequit (Client Quit)
16:36:43  * indexzeroquit (Quit: indexzero)
16:37:30  * indexzerojoined
16:37:47  * indexzeroquit (Client Quit)
16:41:08  * mikealjoined
16:41:15  * TooTallNatejoined
16:51:16  <TooTallNate>isaacs: how do you update npm on windows?
16:52:35  <isaacs>TooTallNate, piscisaureus__, everyone: How would you feel about just making sys work? this util thing is dumb.
16:52:43  <isaacs>process.binding('natives').sys = 'module.exports = require("util")' <-- totally works.
16:52:53  <piscisaureus__>wut?
16:53:08  <TooTallNate>isaacs: do people really still use sys?
16:53:16  <isaacs>TooTallNate: a lot of 0.6 users do, yes.
16:53:20  <isaacs>and now their programs are broken.
16:53:29  <isaacs>and like, why? seriously?
16:53:34  <isaacs>it's kinda silly.
16:53:57  <piscisaureus__>would we still print deprecation warnings?
16:53:58  <TooTallNate>well 2 identical modules is kinda confusing, no?
16:54:08  <isaacs>TooTallNate: anwyay... updating npm on windows: I usually just install node from the msi, and then install npm globally
16:54:25  <isaacs>TooTallNate: the nice thing there is that then you can do `npm rm npm -g` and you're back tothe "release" node
16:54:29  <isaacs>*release npm
16:54:39  <isaacs>TooTallNate: Sure, we can just not deprecate it.
16:54:46  <isaacs>TooTallNate: i mena, not document it
16:54:55  <TooTallNate>true
16:55:02  <isaacs>we've put a couple of rounds in "sys". it'll probably die on its own.
16:55:15  <isaacs>this is like 80% of the complaints i'm hearing about 0.98
16:55:19  <isaacs>*about 0.8
16:55:21  <TooTallNate>isaacs: but its too late for 0.8 right?
16:55:26  * isaacssigh.
16:55:33  <isaacs>unless we call that throw a bug :)
16:55:51  <isaacs>it doesn't change ABI, and since "sys" is undocumented, it's an internal API.
16:55:58  * isaacsplaying legal games with our policies
16:56:00  <TooTallNate>ya i guess we could get away with it
16:56:15  <isaacs>no one's program will *break* by that.
16:58:04  <TooTallNate>i guess i'm impartial, because I haven't seen "sys" in anyone's code for a while now
16:58:08  <TooTallNate>but there's really no harm in it
16:58:34  <dap>TooTallNate: I can promise you we have a lot of code in production using "sys" :)
16:58:49  <dap>Even we don't see it a lot, because that code is mostly working :)
17:00:05  <TooTallNate>dap: makes sense :)
17:08:40  * felixgequit (Quit: felixge)
17:09:14  * felixgejoined
17:09:14  * felixgequit (Changing host)
17:09:14  * felixgejoined
17:09:33  * felixgequit (Client Quit)
17:15:22  <CIA-108>node: isaacs reviewme * rf2a9ed4 / lib/sys.js : Fix #3577 Un-break require('sys') - http://git.io/uoJprg
17:20:36  <mjr__>Backwards compatibility is such a mess.
17:22:21  <isaacs>mjr__: tell me about it.
17:22:44  <mjr__>We've completely reversed our position on this after several "must upgrade" events.
17:22:52  <isaacs>yep.
17:23:10  <mjr__>People don't want to upgrade, or even if they want to, they might not even know how, or have permission to, etc.
17:23:31  <mjr__>So now we are backward compatible with every version we've ever published, forever.
17:23:35  <isaacs>i'm moving to a very firm "zero api breakage" position.
17:23:44  <isaacs>yeah, it sucks.
17:23:50  <isaacs>and it's harmful to do too early
17:23:58  <isaacs>but at this point, node is kinda grown up
17:24:06  <isaacs>sometimes have to do sucky things
17:24:29  <mjr__>Yeah, that's what we found at Voxer as well. Makes moving forward much slower because you have to account for all of this legacy bullshit.
17:33:17  <mmalecki>mjr__: I completely agree.
17:33:37  <mmalecki>wait, what?! https://github.com/joyent/node/commit/f2a9ed487369ab7222522e1097708550adbe165c
17:33:42  <mmalecki>you can't be serious, isaacs.
17:34:35  <mmalecki>mjr__: actually, I disagree with "So now we are backward compatible with every version we've ever published, forever."
17:35:18  <mjr__>mmalecki: by "we" I meant my company, not node.
17:35:46  <mmalecki>mjr__: I know :)
17:36:35  <mjr__>Why do you disagree?
17:37:37  <mmalecki>mjr__: because people should finally learn to upgrade/write new code. proper versioning is the answer, not backwards compatibility.
17:37:55  <mmalecki>and, as you said, it slows you down
17:38:10  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
17:38:32  <isaacs>mmalecki: where changes are substantial, i agree.
17:38:37  <isaacs>but this is a bikeshed. seriously.
17:38:48  <isaacs>the price of these changes is very high at this point.
17:38:55  <mjr__>It is a bit different when running a service vs. shipping software intended for developers. In our case, we have a service, and as much as we'd like to, breaking the service for older clients is not something we can afford to do.
17:39:04  <isaacs>right
17:39:09  <isaacs>it comes down to price vs payoff
17:39:17  <isaacs>price = people don't upgrade, or it's harder for them to do so
17:39:25  <isaacs>or they just stop using your service, if your'e a voxer
17:39:33  <isaacs>payoff = cleaner apis, less maintenance, etc.
17:39:53  <isaacs>and, in some cases, there is just no way to make it work good without changing something (eg, child process exit/close change)
17:40:19  <mmalecki>mjr__: hm, can't you simply version your service? if it's http-based, /api/v0.1.2/...?
17:40:29  <mjr__>Of course, we do simply version it.
17:41:05  <mjr__>But maintaining all of that legacy functionality is often painful. It slows forward progress.
17:41:30  <mmalecki>it definitely is
17:41:50  <mjr__>In fact, it turns out that versioning helps almost none, at least for us.
17:43:21  <mmalecki>can't you introduce some period of time when customers can use older versions?
17:43:49  <mjr__>Oh sure. We did, but every time we forced people to upgrade, it basically caused a revolt, or vast swathes of people stopped using the service.
17:44:08  <mmalecki>ah, I see, that's just sad
17:45:56  * hzjoined
17:47:58  <mjr__>Yeah, it's sad. But I do kind of feel more like a grownup now that I've accepted this reality.
18:02:18  * brsonjoined
18:10:24  * mikealquit (Quit: Leaving.)
18:12:25  * TooTallNatequit (Quit: Textual IRC Client: www.textualapp.com)
18:13:14  * mikealjoined
18:24:45  * hij1nxjoined
18:32:53  * TooTallNatejoined
18:49:00  * mikealquit (Quit: Leaving.)
18:50:32  * toothrquit (Ping timeout: 255 seconds)
18:51:43  * toothrjoined
18:54:43  * \toothrotjoined
18:56:56  * toothrquit (Ping timeout: 240 seconds)
19:03:56  * \toothrotquit (Ping timeout: 246 seconds)
19:05:18  * TooTallNatequit (Quit: Textual IRC Client: www.textualapp.com)
19:06:13  * toothrjoined
19:06:24  * paddybyersjoined
19:11:56  * toothrquit (Ping timeout: 240 seconds)
19:12:01  * hij1nxquit (Quit: hij1nx)
19:14:43  * toothrjoined
19:29:50  * toothrquit (Ping timeout: 246 seconds)
19:33:51  * mikealjoined
19:36:13  * toothrjoined
19:45:12  * ljacksonquit (Remote host closed the connection)
19:52:47  * paddybyersquit (Quit: paddybyers)
19:52:55  * xaqjoined
19:55:59  * TooTallNatejoined
20:29:50  * paddybyersjoined
20:37:51  * paddybyersquit (Quit: paddybyers)
20:38:44  * pieternquit (Quit: pietern)
20:39:49  * theColejoined
20:42:30  * `3rdEdenjoined
21:01:35  * pieternjoined
21:05:13  * `3rdEdenquit (Quit: Linkinus - http://linkinus.com)
21:07:06  * mikealquit (Quit: Leaving.)
21:14:13  * piscisaureus_joined
21:15:59  * paddybyersjoined
21:21:55  * paddybyersquit (Quit: paddybyers)
21:42:03  * fjakobsjoined
21:42:34  <piscisaureus_>fjakobs: hi
21:42:56  <fjakobs>hey
21:48:55  * mjr___joined
21:50:32  * mjr__quit (Ping timeout: 246 seconds)
21:55:23  * rendarquit
21:58:28  * TheJHquit (Ping timeout: 244 seconds)
22:11:44  <isaacs>piscisaureus_: hey
22:11:48  <isaacs>https://github.com/joyent/node/issues/3577
22:11:49  <isaacs>feelings?
22:19:00  <isaacs>specifically: https://github.com/joyent/node/commit/f2a9ed487369ab7222522e1097708550adbe165c
22:19:51  * isaacsactually away for a little bit.
22:23:23  * mmaleckiquit (Quit: Lost terminal)
22:29:11  * hzquit
22:38:32  * philipsquit (Excess Flood)
22:39:25  * philipsjoined
22:42:08  <piscisaureus_>isaacs: I am totally fine with keeping sys for a long time, since it it so easy to maintain. But the question is really where we want to draw the line. Node also remove module.paths for the greater good and many people were extremely upset about that. We'll have to keep breaking stuff for a while or we might as well declare that 0.8 is the last node version ever, or only add new features from here (we should rename it to php / windows then)
22:44:02  <piscisaureus_>isaacs: It's a thin line... I think a longer deprecation period is probably needed.
22:50:54  * loladiroquit (Quit: Konversation terminated!)
22:55:09  * theColequit (Quit: theCole)
23:05:21  * isaacsback
23:05:24  <isaacs>piscisaureus_: sure.
23:05:41  <isaacs>i mean, really, the hazard is using sys's non-deprecation as an argument for not changing process._somePrivateThing or whatever.
23:06:22  * toothrquit (Ping timeout: 245 seconds)
23:07:03  * fjakobsquit (Quit: fjakobs)
23:08:00  <piscisaureus_>isaacs: I kinda agree with bcantrill's sentiment that the challenge is to innovate without introducing too many unnecessary breakage
23:08:20  <piscisaureus_>which would mean that we're at a pivot here - before this was much less of a problem
23:08:20  <piscisaureus_>maybe we should put more emphasis on "stable" vs "experimental" for this stuff.. I mean, someone is also complaining about the fact that we removed the cluster "death" event and I am happy that it's gone :-)
23:08:20  <piscisaureus_>but yeah, sys can come back as far as I concerned (but I think it should warn, and it should definitely not be documented)
23:08:20  <piscisaureus_>*I am concerned
23:09:09  <isaacs>in this case, i fail to see the value in warning
23:09:32  * fjakobsjoined
23:09:43  * toothrotjoined
23:09:49  <isaacs>put differently: someone users require("sys") in a program. so what?
23:09:58  <isaacs>why should they not do that?
23:10:06  <piscisaureus_>if we're going to keep it around forever - then there's no need to warn. Are we?
23:10:20  <isaacs>let's say yes
23:10:55  <isaacs>i mean, if we shouldn't remove it now (and i'm not convinced it's worth removing now) then why would we remove it tomorrow?
23:12:28  * fjakobsquit (Client Quit)
23:13:47  <piscisaureus_>isaacs: ok, fine
23:14:22  <piscisaureus_>isaacs: continuing this barter, let's say "no documentation" then, and "sys == util"
23:14:33  <isaacs>yes.
23:14:50  <isaacs>i think from now on, if the presence of something doesn't cause harm, we should just remove it from the docs, call it unsupported, andmove on
23:14:54  <isaacs>but not actively break it
23:14:57  <piscisaureus_>isaacs: I don't want to actually maintain it, but as long as it just sits there saying "I'm util" I'm fine :-)
23:15:02  <isaacs>yeah
23:15:11  <isaacs>like, literally require("sys") === require("util")
23:15:12  <isaacs>same object
23:15:17  <piscisaureus_>ok
23:15:18  <piscisaureus_>cool
23:18:20  <isaacs>i'm going to write a thing for the mailing list.
23:18:30  <isaacs>just a "This is what makes something be deprecated, this is what does not"
23:18:51  <isaacs>i think on the core dev team we all pretty much agree, but it's never been made clear to the community, really
23:26:21  <isaacs>haha
23:26:22  <isaacs>* 6ce007e Ryan Dahl Remove warning in 'sys' - too aggressive (1 year, 8 months ago)
23:27:51  * toothrotquit (Ping timeout: 244 seconds)
23:30:13  * toothrjoined
23:32:43  * \toothrotjoined
23:33:01  * xaqquit (Remote host closed the connection)
23:33:14  * fjakobsjoined
23:34:56  * toothrquit (Ping timeout: 240 seconds)
23:42:39  <piscisaureus_>isaacs: so you're sayin there was never a warning?
23:46:34  <CIA-108>node: isaacs v0.8 * rf2a9ed4 / lib/sys.js : Fix #3577 Un-break require('sys') - http://git.io/uoJprg
23:48:55  * bnoordhuisjoined
23:49:02  <isaacs>piscisaureus_: the warning showed up some time later.
23:49:27  <isaacs>interesting commit log
23:49:51  <piscisaureus_>it has been deprecated for a loooooong time tho
23:49:57  <piscisaureus_>I wonder why people are still using it
23:52:08  <bnoordhuis>is this about sys?
23:55:31  <isaacs>bnoordhuis: yeah
23:55:31  <piscisaureus_>https://github.com/joyent/node/commit/e38eb0c5a4d4e8497f5815be81994ddb01fbceb7
23:55:52  <piscisaureus_>I wonder why people kept using it all that time
23:55:57  <bnoordhuis>we used to warn about it
23:56:06  * recusalfoxchanged nick to pfox__
23:56:17  <bnoordhuis>but the warning was removed at some point
23:56:23  <bnoordhuis>because people kept complaining :/
23:56:25  <isaacs>bcantrill put it well: deprecation gives us the right to remove it.
23:56:30  <isaacs>but there's no obligation to do so.
23:56:53  <bnoordhuis>yeah. i don't really care about the sys module, it's zero hassle to maintain
23:57:00  <isaacs>exactly
23:57:11  <isaacs>it's not in anyone's way any MORE if it throws than if it doesn't.
23:57:30  <piscisaureus_>yeah, ok, this is settled
23:57:31  <piscisaureus_>:-)
23:57:38  <piscisaureus_>now some random rant
23:57:41  <isaacs>people only care about the principle of the thing
23:57:47  <isaacs>you got a new rant?
23:57:53  <piscisaureus_>I am doing systems programming for this thing called windows
23:57:56  <piscisaureus_>and it's a mess
23:57:58  <isaacs>k
23:58:14  <piscisaureus_>because they never ever break stuff (atleast, they try very hard not to)
23:58:32  <piscisaureus_>so that's why we have all this crap with lsps and oh my the tcp connection drops its sent data on the floor
23:58:38  <piscisaureus_>it's all bugs
23:58:40  <isaacs>piscisaureus_: well... sure.
23:58:43  <piscisaureus_>but they are to scared to fix it
23:58:45  <isaacs>but let's just not let node get that old.
23:58:54  <piscisaureus_>because god knows some windows 3.11 enterprise crap might stop working
23:58:58  <piscisaureus_>haha
23:59:02  <isaacs>no, i'm serious
23:59:09  <isaacs>like, in 10 years or whatever, we just rewrite it.
23:59:14  <isaacs>node's not THAT big.
23:59:30  <isaacs>like what python did, but change the name, like python should have done.
23:59:45  <piscisaureus_>node nt
23:59:47  <piscisaureus_>node X
23:59:50  <piscisaureus_>I see
23:59:53  <isaacs>maybe by that time browsers run lua, and we we all switch over to luvig
23:59:56  <isaacs>*luvit