00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:02:13  * rendarquit (Quit: Leaving)
00:03:18  * abraxas_quit (Ping timeout: 245 seconds)
00:07:16  * thlorenzjoined
00:08:20  * Fishrock123changed nick to Fishrock|away
00:08:47  * thlorenzquit (Remote host closed the connection)
00:11:02  * kevinswiberquit (Ping timeout: 244 seconds)
00:13:33  * stagasjoined
00:28:38  * Fishrock|awayquit (Ping timeout: 265 seconds)
00:34:38  * Fishrock|awayjoined
00:35:31  * maxkingjoined
00:35:50  * maxkingpart ("http://quassel-irc.org - Chat comfortably. Anywhere.")
00:54:55  * octetcloudjoined
00:58:41  * thlorenzjoined
00:59:29  * chris_99quit (Quit: Ex-Chat)
01:00:35  * octetcloudquit (Ping timeout: 256 seconds)
01:09:31  * Fishrock|awayquit (Remote host closed the connection)
01:35:53  * jgiquit (Quit: jgi)
01:37:21  * abraxas_joined
01:41:04  * jgijoined
02:10:24  * Fishrock|awayjoined
02:15:24  * Fishrock|awayquit (Ping timeout: 276 seconds)
02:19:44  * jgiquit (Quit: jgi)
02:24:16  * Fishrock|awayjoined
02:30:30  * Fishrock|awaychanged nick to Fishrock123
02:31:30  * thlorenzquit (Remote host closed the connection)
02:31:46  * WalrusPony1changed nick to PeterRabbit
02:34:16  * toastynerdpart ("Leaving")
02:39:26  * thlorenzjoined
02:44:00  * piscisaureusjoined
02:48:06  * muriculapart ("WeeChat 0.3.2")
02:48:34  * thlorenzquit (Remote host closed the connection)
03:03:08  * brsonquit (Quit: leaving)
03:11:18  * stagasquit (Ping timeout: 276 seconds)
03:18:03  * AvianFluquit (Ping timeout: 264 seconds)
03:29:09  * az7ar_awaychanged nick to az7ar
03:30:28  * a_lequit (Read error: Connection reset by peer)
03:31:03  * a_lejoined
03:34:27  * thlorenzjoined
03:38:20  * thlorenzquit (Remote host closed the connection)
03:39:00  * dshaw_joined
03:57:00  * Tux64joined
04:05:18  * Left_Turnquit (Remote host closed the connection)
04:20:08  <piscisaureus>srl295: I saw you pointed at https://github.com/JCEmmons/cldr-ecma402 as a possible strategy to minimize the size of ICU within node
04:20:33  <piscisaureus>srl295: but the repo does not seem to contain any collation data. Does node not need that, or would that data need to be added separately?
04:26:25  * az7archanged nick to az7ar_away
04:38:55  * thlorenzjoined
04:43:51  * thlorenzquit (Ping timeout: 256 seconds)
04:56:35  * piscisaureusquit (Ping timeout: 252 seconds)
05:00:32  * piscisaureusjoined
05:04:35  <srl295>piscisaureus: hi, just randomly polling here. That ^ is a polyfill in pure JS by a colleague- *it* doesn't need collation, so for node it would need modificatoin
05:05:50  <piscisaureus>srl295: are you aware of any projects that extract collation data in a more readable form?
05:06:14  <srl295>piscisaureus: readable?
05:06:38  <piscisaureus>srl295: I'm trying to find out if there is a leaner way to implement collations (since that seems to be the biggest contributing factor in terms of data and object code size, after stripping all unnecessary parts)
05:07:03  <piscisaureus>srl295: so it seems that the "binary" icu data embeds them in the form of a trie structure
05:07:23  <piscisaureus>srl295: nothing wrong with that, but it's hard to look at the data
05:07:41  <piscisaureus>so I was just curious if people have described it in different ways
05:07:50  <srl295>piscisaureus: yes, exactly. I don't think so, ICU's what is used for testing late stages of unicode data, it's been rewritten multiple times to be compact and fast..
05:09:44  <srl295>piscisaureus: let me rephrase, and not to be flippant.. I don't think there is an obvious 'leaner' way.
05:10:54  <piscisaureus>srl295: I'm willing to believe you, I guess if it was obvious it'd be done already.
05:11:41  <piscisaureus>srl29: but in any case, I'm trying to get a better understanding ... so you're not aware of any different representation?
05:12:26  <srl295>Mimer has charts such as http://developer.mimer.se/charts/index.tml
05:12:37  <srl295>trying to find the unicode DUCET charts
05:14:09  <piscisaureus>srl295: thanks, http://www.unicode.org/Public/UCA/latest/allkeys.txt looks more processes
05:14:15  <piscisaureus>*processed
05:14:22  <srl295>piscisaureus: that's the input
05:16:19  <srl295>piscisaureus: by readable do you mean vs. http://unicode.org/repos/cldr/trunk/common/collation/ ?
05:16:58  <piscisaureus>srl295: ok, allkeys is looks like a good start. But it does not contain info for replacements/expansions
05:18:13  <piscisaureus>srl295: yes I found the DUCET notations. It was a bit too human-readable for my liking. Sorry for my weird preferences.
05:18:53  <piscisaureus>srl295: I was trying to reverse engineer the kind of rules ICU had implemented, and the gamut of weirdness it was trying to deal with
05:19:21  * az7ar_awaychanged nick to az7ar
05:19:47  <srl295>piscisaureus: if you are interested I would recommend discussion on http://www.unicode.org/consortium/distlist-cldr-users.html or http://site.icu-project.org/contacts ( ICU side - icu-support ) after looking at http://www.unicode.org/reports/tr35/tr35.html and the collation trs
05:20:21  <srl295>srl295: I wouldn't reverse engineer it...
05:20:32  <piscisaureus>srl295: ok :)
05:20:37  <piscisaureus>srl295: thanks for the pointers
05:22:17  <srl295>piscisaureus: I don't understand the details of the collation part.. so not being arrogant on my own behalf here! Actually for DUCET I'd probably discuss that on the main unicode@unicode.org list
05:22:45  <piscisaureus>srl295: I wonder if anyone has ever written a script that takes the ICU data and just produces a plain c compare function
05:23:03  <srl295>piscisaureus: but..
05:23:21  <srl295>http://www.unicode.org/reports/tr10/Sample/
05:23:23  <piscisaureus>of course there'd have to be a parameter or two to support different precisions and ordering options
05:24:14  * octetcloudjoined
05:24:37  <srl295>piscisaureus: but define plain
05:24:56  <piscisaureus>well I imagine something like
05:27:26  <piscisaureus>uint32_t icu_compare(uint32_t c1, uint32_t c2, uint32_t flags) {
05:27:26  <piscisaureus> if (c1 => 'a' && c1 < 'z' && c2 >= 'a' && c2 <= 'z') {
05:27:26  <piscisaureus> return (c1 > c2) ? L1_HIGHER : L1_LOWER;
05:27:43  <piscisaureus>^-- srl295: that, but then for the entire table
05:28:55  <a_le>on a Linux kernel built without epoll support, can one use libuv with select?
05:29:09  <srl295>piscisaureus: but it's not sufficient
05:30:57  <piscisaureus>a_le: nopre
05:31:00  <srl295>piscisaureus: in the face of expansions and contractions
05:31:20  <piscisaureus>srl295: yes so those would have to be jammed in there, so I'm also looking for a table of those
05:31:26  <a_le>piscisaureus: i know of someone that hacked libuv to work without the epoll support. i have no idea what they did.
05:32:14  <piscisaureus>srl295: I don't know this may not be viable at all - but I'm pigheaded enough to poke at it
05:32:35  <srl295>"even in English" - ffi = f + f + i etc
05:33:20  <piscisaureus>srl295: those could be jammed in there
05:33:21  <piscisaureus>I mean
05:33:27  <srl295>piscisaureus: I'd recommend firing off an email to one of the lists mentioned as apropriate first- make sure you have the right starting point
05:33:35  <piscisaureus>if (c1 == 'f') { ... look at the next character }
05:34:32  <piscisaureus>srl295: I'll do that if I have a better understanding of the problem space. Otherwise I'll just annoy people with dumb questions.
05:35:00  <piscisaureus>a_le: there are a bunch of different libuv backends. A select() one could be added, but there's never been any need for it.
05:35:11  <piscisaureus>a_le: where do you find a linux kernel without epoll?
05:36:30  <srl295>piscisaureus: you want to turn the data into a code generator specific to that language.. while still being code and space and time efficient across ..
05:37:22  <srl295>... 110k+ chars
05:37:27  <piscisaureus>srl295: I guess it'd produce a number of functions (one for every collator)
05:37:30  <srl295>piscisaureus: I hate to dissuade people from taking a fresh approach.
05:37:59  <piscisaureus>which implement locale-specific comparisons, and if none applies falls back to the root collator
05:38:37  <piscisaureus>srl295: so here's my thinking. Likely the trie format is already quite optimal, but what it can't capture ...
05:39:15  <srl295>.. now available on lulu http://www.lulu.com/spotlight/unicode
05:39:29  <piscisaureus>srl295: ... is that for large ranges of characters the distance between their code points defines their sorting order
05:40:13  <piscisaureus>e.g. for all `a` to `z` the sorting order is defined by sign(c1-c2)
05:40:54  <piscisaureus>srl295: the other thing is that I don't think the generated code will necessarily be much bigger than the trie itself
05:41:13  <piscisaureus>srl295: but again, I don't know, just speculation at this point
05:41:36  <srl295>srl295: if you just want a strict ordering of the code points. But the way people expect collation to work is that sometimes "nodejs" and "node.js" and Node JS" sort together
05:41:55  <piscisaureus>yes
05:42:01  <piscisaureus>so it'd need to be a little smarter
05:42:14  <srl295>then there's script reordering, some locales want certain scripts in a different order, as a block
05:43:21  <srl295>piscisaureus: anyways - you could send me something and I could post it 'anonymously' to the right people. or ask in person in a couplke of weeks
05:43:45  <piscisaureus>srl295: ok, I'll get back to you when I know more. Thanks for your help so far.
05:43:52  <piscisaureus>srl295: in few weeks, at node summit?
05:44:04  <srl295>piscisaureus: oh- i'm going! I meant the UTC though
05:44:38  <piscisaureus>srl295: ah *you* could ask someone in person in a couple of weeks
05:44:52  <piscisaureus>srl295: sure enough :)
05:45:07  <piscisaureus>srl295: I'm going to bed now, thanks for your help. And see you at node summit.
05:45:43  <srl295>piscisaureus: same. i'll ask around..
05:47:20  * dshaw_quit (Quit: Leaving.)
05:49:46  * piscisaureusquit (Ping timeout: 255 seconds)
06:07:41  * rmgquit (Remote host closed the connection)
06:10:58  * seishunjoined
06:24:30  * Fishrock123quit (Quit: Leaving...)
06:26:25  * rmgjoined
06:28:04  <Wraithan>indutny: When you get a chance, I just put up: https://github.com/joyent/node/pull/9064
06:28:20  * thlorenzjoined
06:28:48  * wolfeidauquit (Remote host closed the connection)
06:30:48  * rmgquit (Ping timeout: 245 seconds)
06:31:32  <Wraithan>tjfontaine: ^ regarding that memory leak, found it in core and that is a patch to fix it
06:33:13  * thlorenzquit (Ping timeout: 256 seconds)
06:39:30  * wolfeidaujoined
06:40:28  * piscisaureusjoined
06:41:46  * wolfeidauquit (Remote host closed the connection)
06:43:37  * wolfeidaujoined
06:46:46  * arroyocjoined
06:54:53  * wolfeidauquit (Remote host closed the connection)
07:11:57  * SplinterOfChaosquit (Ping timeout: 245 seconds)
07:17:00  * iarnaquit (Read error: Connection reset by peer)
07:17:38  * iarnajoined
07:18:38  * SergeiRNDjoined
07:24:35  * seishunquit (Ping timeout: 246 seconds)
07:30:34  * octetcloudquit (Ping timeout: 255 seconds)
07:52:08  * SergeiRNDquit (Quit: Leaving.)
08:00:05  <saghul>txdv: platform?
08:17:11  * thlorenzjoined
08:21:29  * thlorenzquit (Ping timeout: 245 seconds)
08:49:11  * SergeiRNDjoined
08:55:29  * crispyze_joined
08:55:46  <crispyze_>do C++ lambdas not work in libuv?
09:12:19  * iarnaquit (Remote host closed the connection)
09:12:48  * iarnajoined
09:14:03  <saghul>crispyze_: people seem to be using them: http://stackoverflow.com/questions/19404177/freeing-dynamically-allocated-uv-timer-t-libuv-instance-in-c11
09:14:13  <saghul>so I guess yes
09:17:27  * iarnaquit (Ping timeout: 264 seconds)
09:20:24  * stagasjoined
09:20:29  <crispyze_>saghul, hmm, okay
09:30:29  * reqshark__quit (Ping timeout: 272 seconds)
09:38:16  <crispyze_>saghul, it seems to work fine, until I add "this" to the capture list
09:43:58  <crispyze_>one more thing, is the client stream in uv_accept going to be able to be cast to uv_tcp_t* if I got it from a tcp server?
09:46:28  <erikj>(<crispyze_> saghul, it seems to work fine, until I add "this" to the capture list -- lambdas are only convertible to function pointers if they don't capture anything by value iirc.)
09:47:29  <crispyze_>i don't know how the guy in that stackoverflow link successfully used & then; using & doesn't work for me
09:47:39  <crispyze_>i'm just gonna have to do normal function pointers
09:52:11  <erikj>Ah, so the c++ spec says that conversion between lambdas and function pointers are only defined for captureless lambdas. My guess for the reason why the SO guy's example works is because although he is using [&], he's not actually using anything from the outer scope.
09:58:14  <crispyze_>i see
10:00:53  <erikj>if you want to use lambdas you will need to find a c++ wrapper of uv. There are a couple about, but I don't think any of them are nearly complete. I ended up starting to write one which mostly, but it's still fairly cranky and is missing lots of features.
10:01:07  <erikj>:(
10:02:00  <crispyze_>that is literally what i'm writing
10:02:16  <crispyze_>it's just the stuff I need though
10:02:57  <crispyze_>also i don't think i'll ever need any of the file IO stuff, and a lot of people probably include that
10:04:26  <erikj>Ftr, the two I know about are: https://github.com/larroy/uvpp and my one https://github.com/erikjohnston/uv11, which might be useful to see how others have approached it. Are you planning on putting it on github?
10:05:10  <crispyze_>yes
10:05:22  <crispyze_>but it's not just a uv wrapper, there's some other stuff too
10:05:56  * thlorenzjoined
10:06:06  * rendarjoined
10:06:15  <erikj>Fair enough, I'd still be interested to see what you come up with :)
10:07:14  <crispyze_>my github is the same as my name, it's gonna be finished saturday
10:07:15  <txdv>erikj: i wonder why there is no good c++ wrapper for libuv
10:07:30  <crispyze_>oh
10:07:33  * crispyze_changed nick to crispyzeal
10:07:35  <crispyzeal>there we go
10:07:53  <erikj>txdv: It's the age old question of why most c++ wrappers die :(
10:08:34  <saghul>crispyzeal: yes, uv_stream_t can be cast to uv_tcp_t
10:10:46  * thlorenzquit (Ping timeout: 255 seconds)
10:13:01  <txdv>is it maybe because nobody finds a good one and then starts their own one?
10:14:02  <txdv>I have half a thousand commits in LibuvSharp and not a single pull request
10:14:19  <erikj>and then the people that do write one only do the bits they need and then often don't maintain it :/
10:14:58  <erikj>me being a case in point :p
10:20:32  <txdv>imagine how dissapointed I was when microsoft just did the same for their kestrel shit
10:22:12  <txdv>but yeah, erikj, I hope you are dedicated to your c++ implementation
10:22:27  <txdv>node.native was 2 years ago and nobody really got behind it
10:22:40  <txdv>and I talked to someone on the channel who did a reimplementation, I don't remember though who
10:23:36  <erikj>I'm trying to keep it as thin a wrapper as possible with an architecture that hopefully should make it easy enough for users of the lib to implement any missing features
10:23:45  <txdv>it was hij1nx
10:23:47  <erikj>like everyone else, I just have a horrific lack of time :(
10:24:49  <txdv>please spare me with that excuse
10:25:13  * chris_99joined
10:26:14  <txdv>It is not like everyone else is sitting around and drinking beer all day
10:26:43  <erikj>yeah, I don't exactly expect sympathy on that front
10:27:04  <txdv>Some of us are actually sitting at work and drinking beer
10:29:27  <txdv>erikj: you don't need to sit 50 hours in a row on your project
10:29:38  <txdv>the most important thing is dedication
10:30:18  <txdv>jsut spend a few hours a month on your wrapper but be consistent at least - as in - don't abandon it for good
10:33:06  <erikj>That's the plan :)
10:35:01  <txdv>the best thing is actually taking an existing repo on github and reshaping it
10:35:38  <txdv>you wouldn't write libuv scratch, why stop there
10:38:47  * inolenquit (Ping timeout: 244 seconds)
10:43:48  * inolenjoined
10:57:20  * az7archanged nick to az7ar_away
11:01:01  * SergeiRNDquit (Quit: Leaving.)
11:04:27  * az7ar_awaychanged nick to az7ar
11:17:01  * stagasquit (Ping timeout: 244 seconds)
11:20:22  <txdv>erikj: https://github.com/nodeuv
11:20:25  <txdv>this might interest you
11:20:41  <txdv>this is hij1nx effort to port the node coding style to c++
11:21:16  <erikj>oooh, thanks
11:21:21  <erikj>I hadn't seen that one
11:21:33  <txdv>have you searched for it?
11:21:48  <erikj>I'm sure I did
11:22:09  <txdv>https://github.com/libuv/libuv/wiki/Projects-that-use-libuv
11:22:11  <txdv>its not there though
11:23:24  * Tux64quit (Quit: Connection closed for inactivity)
11:23:29  <txdv>now it is
11:23:58  <txdv>hij1nx: I took the liberty to link your github organization in here: https://github.com/libuv/libuv/wiki/Projects-that-use-libuv
11:24:12  <txdv>Please change it if you want to have a different description
11:33:43  * SergeiRNDjoined
11:35:35  * Left_Turnjoined
11:51:49  * thlorenzjoined
11:56:31  * thlorenzquit (Ping timeout: 255 seconds)
12:24:30  * crispyzealquit (Quit: zzz)
12:45:14  * tarrudajoined
13:01:58  * lance|afkchanged nick to lanceball
13:25:22  * [spoiler]joined
13:37:22  * az7archanged nick to az7ar_away
13:40:36  * thlorenzjoined
13:45:18  * thlorenzquit (Ping timeout: 244 seconds)
14:01:21  * thlorenzjoined
14:06:27  * thlorenzquit (Remote host closed the connection)
14:06:41  <txdv>EFAULT
14:06:43  <txdv>!!!
14:18:23  <txdv>i do a uv_read_start and it gives me an error
14:19:00  <txdv>I upgraded to v1.2.1 from 0.10.29
14:19:02  <txdv>:/
14:19:32  * thlorenzjoined
14:22:40  <txdv>alloc changed
14:23:08  * jas-joined
14:23:39  * thlorenzquit (Remote host closed the connection)
14:38:15  * thlorenzjoined
14:40:48  * piscisaureusquit (Ping timeout: 245 seconds)
14:40:55  * kevinswiberjoined
14:44:30  <txdv>lol bufcnt renamed to nbufs
14:44:42  <txdv>iam14andifindthisfunny
14:52:33  * bajtosjoined
14:52:52  * SergeiRNDquit (Quit: Leaving.)
14:58:23  <saghul>txdv: this should help http://docs.libuv.org/en/latest/migration_010_100.html
14:59:16  <brucem>hmm, some big issues for doing bindings were fixed. Might be worth trying to do a Dylan binding of libuv again.
14:59:34  <txdv>dylan?
15:00:13  <brucem>txdv: a language. http://opendylan.org/
15:00:56  <txdv>I'm getting old
15:01:00  <txdv>i'm not enjoying this migration
15:01:05  <txdv>usually i liked to debug stuff like that
15:01:38  <brucem>txdv: It gets old doing the same work over and over for little practical personal gain.
15:03:51  <txdv>nope, revisiting that code and cleaning it up is orgasmic
15:04:15  <txdv>but debugging is a bit tedious when you just get segfaults with no real information
15:06:17  <brucem>what compiler / run-time doesn't give any much debug info?
15:06:55  * Fishrock123joined
15:07:07  <txdv>C# wrapper
15:10:41  <txdv>I wish c# would invest more in command line tools
15:13:48  <txdv>all the windows boyz with their fancy windowzzz
15:14:34  <[spoiler]>txdv, lol
15:24:03  * FROGGS[mobile]joined
15:37:57  * a_lequit (Remote host closed the connection)
15:42:15  <hij1nx>txdv: nice!
15:42:30  <txdv>niiiiceeeeee
15:43:51  <txdv>hij1nx: you mean that I added it to the wiki list/
15:44:44  <hij1nx>txdv: yeah, nice! :)
15:44:46  <MI6>joyent/node: Andrei Sedoi v0.10 * e45c52c : doc: use correct signature for assert() - http://git.io/FfFbTg
15:53:29  * kevinswiberquit (Remote host closed the connection)
15:56:12  * seishunjoined
15:57:06  * kevinswiberjoined
16:02:05  * a_lejoined
16:04:56  <txdv>brucem: here is a very non informative stack trace: http://paste.ubuntu.com/9795482/
16:11:33  * iarnajoined
16:12:01  <tjfontaine>Wraithan: thanks, I'll look at it
16:13:19  <txdv>literally not even the command line debugging tool prints anything of value
16:13:26  * bajtosquit (Quit: bajtos)
16:16:56  * bajtosjoined
16:17:01  * SplinterOfChaosjoined
16:37:05  * iarnaquit (Remote host closed the connection)
16:37:34  * iarnajoined
16:41:53  * kevinswiberquit (Remote host closed the connection)
16:42:00  * iarnaquit (Ping timeout: 244 seconds)
16:42:16  * kevinswiberjoined
16:45:24  * bajtosquit (Quit: bajtos)
16:46:52  * iarnajoined
16:49:51  * Tux64joined
16:53:32  <tjfontaine>Wraithan, chrisdickinson -- you guys around?
16:54:48  <tjfontaine>we (node.js) really need to start documenting our state machines
16:54:58  <tjfontaine>and then we need to make it more clear the transitions we take
16:55:22  <tjfontaine>following it today is nigh impossible
16:56:18  * kevinswiberquit (Remote host closed the connection)
16:56:51  * iarnaquit (Read error: Connection reset by peer)
16:57:21  * iarnajoined
16:59:25  * jgijoined
17:00:02  * kevinswiberjoined
17:00:51  * rmgjoined
17:01:32  * bajtosjoined
17:04:58  * jas-quit (Ping timeout: 245 seconds)
17:06:03  * tarrudaquit (Ping timeout: 264 seconds)
17:06:43  * dirksonquit (Ping timeout: 265 seconds)
17:09:23  * brsonjoined
17:13:59  * jgiquit (Quit: jgi)
17:24:01  * octetcloudjoined
17:25:19  * arroyocquit (Ping timeout: 252 seconds)
17:25:55  * FROGGS[mobile]quit (Ping timeout: 244 seconds)
17:29:33  * thlorenzquit (Remote host closed the connection)
17:30:19  * thlorenzjoined
17:31:07  * thlorenzquit (Remote host closed the connection)
17:31:45  * thlorenzjoined
17:32:18  * iarnaquit (Remote host closed the connection)
17:32:46  * iarnajoined
17:36:06  * dap_joined
17:36:27  * a_lequit (Read error: Connection reset by peer)
17:36:29  * thlorenzquit (Ping timeout: 264 seconds)
17:36:53  * Ralithquit (Ping timeout: 272 seconds)
17:36:58  * a_lejoined
17:37:41  * iarnaquit (Ping timeout: 264 seconds)
17:38:41  * qard_joined
17:40:10  <trevnorris>tjfontaine: at this point I feel like being able to follow those is a rite of passage for core developers. :P
17:42:02  <tjfontaine>heh
17:42:35  <tjfontaine>indutny: beyond the cause that we just triggered a .read(0) to trigger the actual end?
17:42:57  <tjfontaine>this goes back to the broader question of what is the transition for a duplex stream
17:43:02  <tjfontaine>end/finish/close
17:43:05  <tjfontaine>or finish/end/close
17:43:12  <indutny>mmm
17:43:15  <indutny>both of them
17:43:21  <tjfontaine>or should streams be able to handle the relationship regardless of order
17:43:38  <indutny>you could end writable before receiving EOF on readable
17:43:43  <indutny>or you could receive EOF and still send data
17:43:44  <tjfontaine>in this case we're handling end/finish/close in our state, but the order that it is happening is finish/end/close
17:43:57  * iarnajoined
17:43:58  <indutny>tjfontaine: is it about tls?
17:44:19  * iarnaquit (Remote host closed the connection)
17:44:35  <indutny>oooh
17:44:39  <tjfontaine>well I think we're still trying to flush extra buffers in the cleartext path, but or at least verify
17:45:12  <indutny>this patch looks quite legit
17:45:17  <indutny>but still needs proper test
17:45:32  <indutny>though
17:45:36  <indutny>gosh
17:45:40  <indutny>I need to spend more time on it
17:45:57  * a_lequit (Remote host closed the connection)
17:46:35  * a_lejoined
17:46:45  * piscisaureusjoined
17:46:58  * jgijoined
17:48:41  * kevinswiberquit (Remote host closed the connection)
17:49:21  * kevinswiberjoined
17:50:18  <Wraithan>tjfontaine, indutny: I started trying to diagram it out and I ended up beyond the page in my notebook.
17:50:26  * a_le_joined
17:50:32  <indutny>Wraithan: it is totally borked :)
17:50:36  <indutny>Wraithan: I feel your pain
17:50:40  <Wraithan>Sooooooo many states interplaying
17:50:42  <tjfontaine>Wraithan: it's frustrating, the state machine is tangled all over the place
17:50:44  <indutny>this is the reason it was rewritten in v0.11
17:50:51  <indutny>believe me or not
17:50:54  <Wraithan>Yeah, was reading that
17:50:55  <indutny>it is still better than 0.8
17:50:58  <tjfontaine>Wraithan: between the streams state machine, and then adding it on top of tls
17:51:00  <tjfontaine>yes
17:51:03  * a_lequit (Ping timeout: 264 seconds)
17:53:24  <Wraithan>tjfontaine: but it isn't just a steam state machine, it is a pair of duplex streams, one of which is piped into another duplex stream, plus the extra state TLS adds on
17:53:42  <Wraithan>For the 0.10 TLS that is
17:53:46  <tjfontaine>Wraithan: yes, this is my point :)
17:54:59  <Wraithan>indutny: once I get into my office I'll answer the questions you put on the PR
17:55:16  <indutny>thanks!
17:57:18  <Wraithan>My cats are being super cuddly and it makes it hard to get out of bed
17:58:11  <tjfontaine>damn bed warmers
18:02:32  * jas-joined
18:06:19  * robertkowalski_quit (Ping timeout: 246 seconds)
18:08:19  * bajtosquit (Quit: bajtos)
18:08:25  * a_le_quit (Remote host closed the connection)
18:13:02  * a_lejoined
18:19:39  * kevinswiberquit (Remote host closed the connection)
18:22:09  * chrisdickinsonreads the backlog
18:23:01  <chrisdickinson>we basically worked backwards from `SecurePair#shutdown` to `_done` to figure out what was going on
18:23:47  <tjfontaine>ya I agree 100% on your diagnosis, I just want to make sure we're putting the deferment in the right place
18:24:47  <tjfontaine>to me the indicting portion is in https://github.com/joyent/node/blob/v0.10/lib/tls.js#L306-L311
18:25:51  * AvianFlujoined
18:28:45  * bajtosjoined
18:31:56  * thlorenzjoined
18:33:17  <chrisdickinson>tjfontaine: responded on the issue, but yes! the problem is that we hit cleartext finish first, which opts not to `_done` the opposite side because it hasn't ended yet
18:34:21  <chrisdickinson>so we end up with (IIRC!) cleartext.finish, cleartext.end, encrypted.finish (which doesn't call `_done` on cleartext), encrypted.end
18:34:43  <tjfontaine>chrisdickinson: so the question is if it should only ever be handled in cleartext, or if it should be done by the parent cryptostream
18:36:20  <tjfontaine>as far as making this work with a node server, it's probably feasible -- the question is how many packets is google sending vs us, and how does it massage the openssl layer in such a way as to reliably reproduce this
18:36:29  <tjfontaine>certificate size, tls options
18:36:31  <tjfontaine>etc etc
18:36:38  * thlorenzquit (Ping timeout: 245 seconds)
18:40:08  <chrisdickinson>yeah, we just ran out of time / mental energy to reproduce yesterday at ~5ish
18:40:20  <tjfontaine>nod
18:40:35  <tjfontaine>was groundwater with you? I know he's supposed to be in portland this week
18:40:53  <chrisdickinson>he dropped in and we scared him with flow charts :)
18:40:56  <Wraithan>yeah, I have more work time on this today, some of that has to be dedicated to applying this in a way that we can use in the agent for versions of node that are broken
18:41:25  <tjfontaine>sad world we live in, but graciously we can abuse the fuck out of javascript
18:41:28  <tjfontaine>and therefore node.js
18:41:54  * dshaw_joined
18:45:33  <cjihrig>that should go on the node.js web page
18:50:26  <groundwater>chrisdickinson tjfontaine i was both scared and proud
18:52:12  * rkowalski___joined
18:53:15  * thlorenzjoined
19:07:34  * dshaw_quit (Quit: Leaving.)
19:08:04  * chris_99quit (Quit: Ex-Chat)
19:08:50  * dirksonjoined
19:09:48  * chris_99joined
19:15:55  * az7ar_awaychanged nick to az7ar
19:15:55  * bajtosquit (Quit: bajtos)
19:16:26  * az7archanged nick to az7ar_away
19:16:41  * az7ar_awaychanged nick to az7ar
19:18:02  * az7archanged nick to az7ar_away
19:32:36  * jgiquit (Quit: jgi)
19:33:52  * jgijoined
19:43:48  * luigyjoined
19:46:19  * jas-quit (Ping timeout: 255 seconds)
20:09:51  * kevinswiberjoined
20:11:06  * a_lequit (Remote host closed the connection)
20:15:08  * kevinswiberquit (Remote host closed the connection)
20:15:43  * kevinswiberjoined
20:16:45  * a_lejoined
20:19:16  * iarnajoined
20:19:59  * kevinswiberquit (Ping timeout: 256 seconds)
20:32:10  * a_le_joined
20:34:49  * a_lequit (Ping timeout: 245 seconds)
20:42:44  * wolfeidaujoined
20:45:22  * jgiquit (Quit: jgi)
20:55:49  * [spoiler]quit (Quit: I'm running to save my life!)
21:06:33  * wolfeidauquit (Remote host closed the connection)
21:07:08  * wolfeidaujoined
21:08:51  * jgijoined
21:11:33  * wolfeidauquit (Ping timeout: 256 seconds)
21:26:09  <MI6>joyent/node: misterdjules created branch v0.11.15-release - http://git.io/GQqiXA
21:28:50  * lanceballchanged nick to lance|afk
21:29:14  * dirksonquit (Quit: Cheers!)
21:29:59  <Wraithan>oh really?
21:30:24  <tjfontaine>yarly
21:30:31  <Wraithan>nice
21:30:52  <Wraithan>rad
21:30:54  <Wraithan>:D
21:31:19  <tjfontaine>a very portland attitude
21:44:15  * seishunquit (Ping timeout: 244 seconds)
21:47:26  * seishunjoined
21:55:17  * seishunquit (Ping timeout: 272 seconds)
21:55:28  <Wraithan>Was waiting on 0.11.15 to kick of my dive into node 0.12 and io.js 1.x support.
21:55:41  <Wraithan>I've done some preliminary testing but nothing in depth
21:56:02  <tjfontaine>well, let the flood gates open ;)
21:56:04  * dshaw_joined
21:56:28  * Ralithjoined
22:01:56  <Wraithan>tjfontaine: there a reason why the download links for releases on the blog are all http? it appears nodejs.org supports https and downloading software over http seems suspicious to me
22:02:43  <tjfontaine>are you trolling me right now?
22:03:30  <Wraithan>tjfontaine: no?
22:04:15  <tjfontaine>Wraithan: downloading tarballs over SSL provides nothing but integrity of the bytes that are being delivered, nothing about the integrity of the tarball itself
22:04:39  <tjfontaine>Wraithan: in both cases, downloadinga tarball over http, https, or carrier pigeon -- you still need to verify the integrity of the archive
22:04:53  <Wraithan>Yes, but you mitigate a class of attacks for basically free
22:04:57  <Wraithan>by adding an s
22:04:59  <tjfontaine>no
22:05:05  <tjfontaine>you mitigate nothing
22:05:13  <tjfontaine>if the user downloading is not actually verifying the tarball
22:05:36  <tjfontaine>in short, I don't really care, the reason they're http is because we haven't updated the template
22:05:43  <tjfontaine>but lets all be honest about what it means
22:05:50  <tjfontaine>we're just wasting bandwidth and cpu time
22:08:16  <Wraithan>I can see that stance, but assuming that a portion of users aren't going to verify, you can protect your users from a type of attack that is easier to execute than actually breaking into your servers.
22:08:51  * dshaw_quit (Quit: Leaving.)
22:09:06  <Wraithan>unless I am mistaken on how easy it is to break into joyent servers.
22:09:23  <tjfontaine>it's not a stance, it's reality -- the reason why we distribute checksum files is to provide integrity
22:09:43  <tjfontaine>the reason we sign the checksum file is to provide integrity of the checksum
22:09:54  <tjfontaine>and key management comes through delegated trust
22:10:15  <tjfontaine>the fact that large swaths of the population have no idea that they should be validating software they download off the internet is a failure of our tooling
22:10:26  <Wraithan>Yup, and that is 100% great for anyone who does the full verification, and while people *SHOULD* adhere to better security practices, they don't
22:10:48  <tjfontaine>so what does transferring this file over tls do, aside from giving people the warm and fuzzies
22:11:01  <tjfontaine>the warm and fuzzies are the exact opposite of what security practices are meant to provide
22:11:12  <tjfontaine>it's a complete failure of our industry
22:11:24  <tjfontaine>OMG I HAVE A GREEN BAR IN MY BROWSER I CAN TYPE ANYTHING INTO THIS WEBSITE
22:11:24  <Wraithan>tjfontaine: breaking into your server is harder than mitm http. It is a mitigation step for folks who don't take the time to do a full audit of the software before installing
22:11:36  <Wraithan>Or don't know how to
22:11:44  <tjfontaine>breaking into the clients box to mutate a file on disk is easier than mitm
22:12:02  <tjfontaine>especially through a targetting phishing attack
22:12:56  <Wraithan>tjfontaine: go to a node conference, mitm nodejs.org and serve bad tarballs, seems simple enough
22:13:12  <tjfontaine>easier to target registry.npmjs.org since theres no package validation
22:13:16  <tjfontaine>but
22:13:20  <tjfontaine>the point stands
22:13:47  <tjfontaine>downloading random shit off the internet -- bad idea
22:13:49  <tjfontaine>http or https
22:14:32  <Wraithan>yup and there is absolutely no way that server operators can help mitigate certain kinds of attacks for users who are not knowledgable enough to do the verification themselves.
22:14:50  * wolfeidaujoined
22:16:39  <tjfontaine>https://github.com/joyent/node/blob/v0.10/tools/email-footer.md if you want to fix it going forward -- it's just not doing what the people think it does -- and people need to say things
22:31:30  * qard_quit (Quit: leaving)
22:31:39  * kevinswiberjoined
22:31:53  * jreyno40joined
22:35:40  * seldojoined
22:50:35  * kevinswiberquit (Remote host closed the connection)
22:51:13  * kevinswiberjoined
22:55:46  * robertkowalskijoined
23:13:23  * sandr8quit (Ping timeout: 256 seconds)
23:16:24  * sandr8joined
23:20:10  * kevinswiberquit (Remote host closed the connection)
23:20:26  * kevinswiberjoined
23:33:14  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:38:24  * qard_joined
23:42:59  <MI6>joyent/node: misterdjules created tag v0.11.15 - http://git.io/4xhqXg
23:43:05  * rendarquit (Quit: Leaving)
23:46:59  <MI6>joyent/node: Julien Gilli v0.12 * f2b378b : Now working on 0.11.16 (+2 more commits) - http://git.io/wvWFoA
23:52:46  * wolfeidauquit (Remote host closed the connection)
23:56:15  * wolfeidaujoined