00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:12  * ircretaryjoined
00:01:03  * guybrushquit (Excess Flood)
00:01:38  * guybrushjoined
00:06:13  * anvakajoined
00:10:20  * anvakaquit (Ping timeout: 240 seconds)
00:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 12]
00:16:52  * kesslerquit (Ping timeout: 250 seconds)
00:17:17  * yorickquit (Remote host closed the connection)
00:18:18  * kesslerjoined
00:34:42  * thlorenzquit (Remote host closed the connection)
00:58:00  * knownasilyajoined
00:59:32  * benglquit (Ping timeout: 240 seconds)
01:12:15  * bengljoined
01:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 16]
01:20:57  * hoobdeeblaquit (Remote host closed the connection)
01:21:08  * yoshuawuytsquit (Remote host closed the connection)
01:23:54  * phatedquit (Remote host closed the connection)
01:39:32  <rowbit>substack, pkrumins: These encoders are STILL down: 184.106.99.27(dev-ie7-3)
01:39:56  * AvianPhonequit (Ping timeout: 240 seconds)
01:49:15  * thlorenzjoined
01:50:30  * AvianFlujoined
01:50:55  * taterbasequit (Quit: Connection closed for inactivity)
01:54:33  * anvakajoined
01:58:44  * anvakaquit (Ping timeout: 240 seconds)
02:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 25]
02:12:33  * brianloveswordsjoined
02:53:17  * fotoveritejoined
03:06:25  * brianloveswordsquit (Quit: Computer has gone to sleep.)
03:09:30  * yoshuawuytsjoined
03:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 18]
03:14:00  * yoshuawuytsquit (Ping timeout: 250 seconds)
03:30:12  * kesslerquit (Ping timeout: 245 seconds)
03:33:01  * knownasilyaquit (Quit: Connection closed for inactivity)
03:42:47  * anvakajoined
03:45:17  * thealphanerdjoined
03:46:04  * contrahaxjoined
03:47:08  * anvakaquit (Ping timeout: 240 seconds)
03:48:26  * contrahaxquit (Remote host closed the connection)
03:48:41  * contrahaxjoined
03:51:43  * taterbasejoined
03:57:33  * thealphanerdquit (Ping timeout: 240 seconds)
04:01:19  <rowbit>substack, pkrumins: testling server winIE8 (rackspace) is down!
04:04:10  * thealphanerdjoined
04:05:25  * thealphanerdquit (Client Quit)
04:07:52  * domanicjoined
04:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 21]
04:17:47  * thlorenzquit (Remote host closed the connection)
04:22:35  * thlorenz_joined
04:26:54  * thlorenz_quit (Ping timeout: 250 seconds)
04:57:39  * domanicquit (Ping timeout: 256 seconds)
05:07:32  <rowbit>substack, pkrumins: These encoders are STILL down: 184.106.106.66(dev-ie7-1)
05:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 26]
05:13:30  * contrahaxquit (Quit: Sleeping)
05:31:06  * anvakajoined
05:35:33  * anvakaquit (Ping timeout: 240 seconds)
05:36:31  * ednapiranhajoined
05:43:09  * defunctzombiechanged nick to defunctzombie_zz
05:55:50  * kumavisjoined
06:07:11  * Maciek416quit (Remote host closed the connection)
06:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 42]
06:15:37  * nlacasse_quit (Ping timeout: 245 seconds)
06:15:41  * ednapiranhaquit
06:16:01  * josephgquit (Ping timeout: 244 seconds)
06:17:26  * yoshuawuytsjoined
06:17:39  * josephgjoined
06:20:06  * ahdinosaurquit (Remote host closed the connection)
06:20:23  * py1honquit (Ping timeout: 256 seconds)
06:20:32  * ahdinosaurjoined
06:21:23  * py1honjoined
06:23:32  * nlacasse_joined
06:33:21  * kumavisquit (Read error: Connection reset by peer)
06:33:50  * kumavisjoined
06:37:58  * fotoveritequit (Quit: fotoverite)
06:45:58  * yoshuawuytsquit (Remote host closed the connection)
06:49:00  * yoshuawuytsjoined
06:56:58  * yoshuawuytsquit (Remote host closed the connection)
06:57:30  * yoshuawuytsjoined
07:01:52  * yoshuawuytsquit (Ping timeout: 240 seconds)
07:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 48]
07:30:13  * djcoinjoined
07:32:25  * jan____joined
07:38:57  * jan____quit (Changing host)
07:38:57  * jan____joined
07:39:33  <rowbit>substack, pkrumins: These encoders are STILL down: 184.106.99.27(dev-ie7-3)
07:47:31  * yoshuawuytsjoined
07:49:42  * yoshuawuytsquit (Remote host closed the connection)
07:50:51  * yoshuawuytsjoined
07:50:55  * taterbasequit (Quit: Connection closed for inactivity)
07:51:16  * phatedjoined
07:53:14  * peutetrejoined
07:55:46  * phatedquit (Ping timeout: 255 seconds)
07:56:15  * Maciek416joined
08:00:52  * Maciek416quit (Ping timeout: 250 seconds)
08:04:55  * yoshuawuytsquit (Read error: Connection reset by peer)
08:05:08  * yoshuawuytsjoined
08:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 46]
08:29:32  * substackquit (Ping timeout: 240 seconds)
08:30:30  * substackjoined
08:37:03  * timoxleyquit (Ping timeout: 272 seconds)
08:39:31  * timoxleyjoined
08:41:39  <chrisdickinson>substack: I was talking to phated at cascadia about forwarding stream errors down a pipeline, and I sketched out https://gist.github.com/chrisdickinson/16abfa7c7b7ecb40d24d as a result -- could I ask for your opinion on this approach?
08:42:53  <chrisdickinson>(specifically, the maybe-somewhat-gross approach of adding a magic-ish "pipelineError" topic that noms on errors from all preceding stages of a pipeline, and can inform the stream machinery that a given error is "handled" and doesn't need unpiped)
08:43:59  * timoxleyquit (Client Quit)
08:47:51  <substack>chrisdickinson: what happens when an ordinary 'error' event happens? does this mechanism allow overriding ev.preventDefault() style?
08:48:34  <substack>it looks like it does this, just clarifying
08:48:59  <substack>if so, this sounds pretty sensible
08:49:34  <chrisdickinson>this mechanism, in its current monkey-patched form, would intercept all `stream.emit('error', new Error)` with the exception of the source Readable stream (though it probably should cover that one as well ultimately)
08:49:44  <substack>and it might be worth checking in with Domenic to see how whatwg streams handle this
08:49:58  <substack>I think they do something very similar but with promises
08:50:18  <chrisdickinson>and the pipelineError does allow a handler to say "nope this shouldn't unpipe"
08:50:37  <chrisdickinson>but "this shouldn't unpipe" is also conflated with "this shouldn't forward on to other handlers"
08:50:41  <chrisdickinson>(at the moment)
08:51:06  <chrisdickinson>(i waffle on exposing the "handled" error down the pipeline)
08:52:24  <chrisdickinson>also +1 good idea to ping Domenic. will do so once it's AM in NY
08:52:50  <substack>one thing that might be tricky is if my module has an internal pipeline
08:53:03  <substack>and then somebody uses my module that exposes a pipeline into THEIR pipeline
08:53:25  <substack>that I can still use pipelineError and they can use pipelineError outside and these won't interfere
08:54:07  <substack>I think that has more to do with the mechanics of topics but I don't know as much about those yet
08:54:21  <substack>for a concrete example: browserify
08:54:53  <substack>https://github.com/substack/node-browserify/blob/master/index.js#L237-L251
08:55:09  <substack>assuming that wasn't using stream-splicer and was just an ordinary pipeline with a sequence of .pipe() calls
08:55:31  <chrisdickinson>(I'm using "topics" as a stand-in for "events" here)
08:56:20  <chrisdickinson>interesting, my guess would be that for internal pipelines you'd add your own handler at the end,
08:56:34  <substack>yes but then if I return that pipeline
08:56:40  <chrisdickinson>and anything you couldn't handle internally you would allow to surface (via inaction in your handler)
08:56:59  <substack>oh I see I think my concerns aren't relevant then
08:57:19  <substack>because the pipelineError doesn't propagate the same way the error propagates
08:57:36  <chrisdickinson>yeah -- it'll stop once it gets to the stream with the pipelineError handler
08:58:03  <chrisdickinson>but that is a very good usecase to keep in mind & make sure to describe
09:02:35  * sorribasjoined
09:05:29  * peutetrequit (Ping timeout: 244 seconds)
09:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 59]
09:36:19  * kesslerjoined
09:40:22  * kesslerquit (Ping timeout: 240 seconds)
09:43:52  <substack>chrisdickinson: http://www.jongleberry.com/koa.html#superior-stream-handling
09:44:43  <substack>that's a good description of the problem that pipelineError would solve
09:44:56  <substack>ideally with just tacking on a single .on('pipelineError', onerror)
09:45:12  * Maciek416joined
09:45:14  <substack>I'm not as familiar with the fd leaking issue
09:45:28  * peutetrejoined
09:45:45  <substack>but that also might be something for topics to handle
09:50:18  * Maciek416quit (Ping timeout: 260 seconds)
10:01:01  * kesslerjoined
10:03:43  * navaruquit (Remote host closed the connection)
10:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 39]
10:15:44  * guybrushquit (Excess Flood)
10:16:35  * guybrushjoined
10:25:37  * kesslerquit (Ping timeout: 255 seconds)
10:40:55  * yoshuawuytsquit (Remote host closed the connection)
10:41:29  * yoshuawuytsjoined
10:42:26  * yoshuawuytsquit (Remote host closed the connection)
10:42:39  * yoshuawuytsjoined
11:03:19  * yoshuawuytsquit (Remote host closed the connection)
11:06:59  * yoshuawuytsjoined
11:07:33  <rowbit>substack, pkrumins: These encoders are STILL down: 184.106.106.66(dev-ie7-1)
11:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 61]
11:29:10  * kesslerjoined
11:34:04  * Maciek416joined
11:38:20  * Maciek416quit (Ping timeout: 240 seconds)
11:49:34  * yorickjoined
11:51:35  * phatedjoined
11:54:38  * yorickquit (Remote host closed the connection)
11:56:52  * phatedquit (Ping timeout: 245 seconds)
12:10:10  * maxgfeller1joined
12:11:15  * kriskowal_joined
12:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 64]
12:19:02  * kriskowalquit (*.net *.split)
12:19:02  * trevnorrisquit (*.net *.split)
12:19:02  * maxgfellerquit (*.net *.split)
12:19:02  * ZenWraithBotquit (*.net *.split)
12:19:04  * kriskowal_changed nick to kriskowal
12:19:12  * trevnorr1sjoined
12:23:17  * kevinswiberjoined
12:26:02  * kevinswiberquit (Remote host closed the connection)
12:26:37  * kevinswiberjoined
12:31:02  * kevinswiberquit (Ping timeout: 255 seconds)
12:42:05  * knownasilyajoined
13:00:06  * fotoveritejoined
13:10:33  * therealkoopajoined
13:10:37  * kesslerquit (Ping timeout: 245 seconds)
13:12:13  * kesslerjoined
13:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 58]
13:22:58  * Maciek416joined
13:27:52  * Maciek416quit (Ping timeout: 255 seconds)
13:28:35  * fotoverite_joined
13:28:51  * yoshuawu_joined
13:30:45  * jez0990_joined
13:31:08  * fotoveritequit (Ping timeout: 240 seconds)
13:31:09  * fotoverite_changed nick to fotoverite
13:31:23  * yoshuawuytsquit (Ping timeout: 240 seconds)
13:31:23  * jez0990quit (Ping timeout: 240 seconds)
13:38:48  * kevinswiberjoined
13:39:33  <rowbit>substack, pkrumins: These encoders are STILL down: 184.106.99.27(dev-ie7-3)
13:41:47  * kevinswiberquit (Remote host closed the connection)
13:47:08  * kevinswiberjoined
13:52:42  * domanicjoined
13:54:58  * pfrazejoined
14:03:14  * kevinswiberquit (Remote host closed the connection)
14:11:02  * pfrazequit (Ping timeout: 245 seconds)
14:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 74]
14:13:59  * navarujoined
14:29:18  * navaruquit (Remote host closed the connection)
14:35:44  * brianloveswordsjoined
14:35:47  * pfrazejoined
14:45:33  * kevinswiberjoined
14:47:02  <domanic>brianloveswords!
14:47:15  <brianloveswords>Hello!
14:47:32  <domanic>brianloveswords, I am in new york! where are you?
14:47:42  <brianloveswords>domanic: In my apartment in New York!
14:48:19  <brianloveswords>How long are you in town for?
14:48:37  <domanic>until the 13th. we should hang out sometime!
14:48:43  * kenperkinsjoined
14:51:43  * thlorenzjoined
14:52:48  <brianloveswords>domanic: we should and we shall!
14:53:21  <domanic>brianloveswords, very good!
14:53:46  <domanic>brianloveswords, micnews have put me up in a hotel in midtown
14:54:07  <domanic>but your are in brooklyn, right?
14:54:41  * kevinswiberquit (Remote host closed the connection)
14:54:42  <brianloveswords>Yeah, Downtown Brooklyn
14:54:51  <brianloveswords>I'm near pretty much every train line, though.
14:55:19  * kevinswiberjoined
14:56:31  * kevinswiberquit (Read error: Connection reset by peer)
14:56:55  * kevinswiberjoined
15:01:33  * taterbasejoined
15:02:36  * kesslerquit (Ping timeout: 250 seconds)
15:11:52  * Maciek416joined
15:12:22  <rowbit>Hourly usage stats: [developer: 1, free: 55]
15:15:46  * kesslerjoined
15:16:20  * Maciek416quit (Ping timeout: 240 seconds)
15:18:52  * navarujoined
15:22:33  * phatedjoined
15:23:31  * navaruquit (Ping timeout: 255 seconds)
15:27:10  * Maciek416joined
15:31:35  * navarujoined
15:37:30  * kesslerquit (Ping timeout: 260 seconds)
15:37:41  * peutetrequit (Quit: peutetre)
15:38:35  * phatedquit (Remote host closed the connection)
15:39:09  * phatedjoined
15:40:04  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
15:41:35  * kesslerjoined
15:43:46  * phatedquit (Ping timeout: 264 seconds)
15:49:08  * navaruquit (Read error: Connection reset by peer)
15:49:17  * navarujoined
15:52:58  * ednapiranhajoined
15:55:23  * Maciek416quit (Remote host closed the connection)
15:55:49  * Maciek416joined
15:56:43  * Maciek416_joined
16:00:20  * Maciek416quit (Ping timeout: 240 seconds)
16:08:07  * navaruquit (Read error: Connection reset by peer)
16:12:22  <rowbit>Daily usage stats: [developer: 16, free: 910]
16:12:22  <rowbit>Hourly usage stats: [developer: 15, free: 75]
16:16:32  * yorickjoined
16:26:23  * kesslerquit (Ping timeout: 255 seconds)
16:29:46  * yoshuawu_quit (Remote host closed the connection)
16:32:04  * rpflochanged nick to ryanflorence
16:34:54  * kesslerjoined
16:49:04  <pfraze>domanic: what's stopping us from a self-hosted email replacement based on webrtc? I tried one in the browser, but keeping a tab open was a deal-breaker. There's a workable node port of it now, though, right?
16:49:31  <domanic>pfraze, I have lots of ideas about this
16:50:25  <domanic>I think we need to fix some problems with email while we are at it.
16:50:53  <domanic>email tends towards centralization because otherwise there is no way to handle the spam problem.
16:51:12  <domanic>(gmail, yahoo, and hotmail account for 50% of email usage)
16:52:12  <domanic>gmail has a fairly good ui, but the best thing about it was it doesn't have much of a spam problem - which it's able to do, because it's got such a good dataset
16:52:53  <domanic>so it can fairly accurately (but not perfectly) distinguish spam from ham.
16:53:43  <domanic>pfraze, hang on - gotta go eat - be back in an hour.
16:55:14  <pfraze>domanic, ok. There's probably a lot of past research to dig into here when email was newer; I've got a greybeard friend I'll consult on that
16:56:14  * jxsonjoined
16:57:30  <pfraze>signalling is something you might keep centralized (the yahoos and gmails) to do the gatekeeping, since you'd still achieve the same goal (data ownership) but then, like you say, you'd need new methods to moderate spam if you take away the dataset
16:58:27  * domanicquit (Ping timeout: 256 seconds)
17:00:22  * kumavisquit (Ping timeout: 240 seconds)
17:02:04  * kesslerquit (Ping timeout: 255 seconds)
17:07:24  * defunctzombie_zzchanged nick to defunctzombie
17:07:34  <rowbit>substack, pkrumins: These encoders are STILL down: 184.106.106.66(dev-ie7-1)
17:08:30  * djcoinquit (Quit: WeeChat 0.4.3)
17:09:47  * gozalajoined
17:09:55  * DTrejojoined
17:10:47  * kesslerjoined
17:11:16  * guybrushquit (Excess Flood)
17:12:05  * guybrushjoined
17:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 43]
17:27:51  * kevinswiberquit (Remote host closed the connection)
17:28:24  * kevinswiberjoined
17:30:54  * Maciek416_changed nick to Maciek416
17:32:52  * kevinswiberquit (Ping timeout: 240 seconds)
17:42:19  * yoshuawuytsjoined
17:47:19  * kevinswiberjoined
17:52:01  * kevinswiberquit (Ping timeout: 255 seconds)
17:52:52  * kesslerquit (Ping timeout: 240 seconds)
17:56:48  * phatedjoined
17:59:08  * kevinswiberjoined
18:03:22  * yorickquit (Remote host closed the connection)
18:05:03  * kevinswiberquit (Ping timeout: 240 seconds)
18:11:00  * thealphanerdjoined
18:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 36]
18:15:14  * stagasjoined
18:27:32  * harrowquit (Ping timeout: 240 seconds)
18:29:22  * pfrazequit (Ping timeout: 240 seconds)
18:30:25  * harrowjoined
18:42:31  * thlorenzquit (Remote host closed the connection)
18:43:07  * thlorenzjoined
18:43:59  * thlorenzquit (Read error: Connection reset by peer)
18:44:25  * thlorenzjoined
18:44:59  * DTrejoquit (Remote host closed the connection)
18:48:39  * domanicjoined
18:53:08  * kevinswiberjoined
18:54:18  * kevinswiberquit (Remote host closed the connection)
18:54:51  * kevinswiberjoined
18:57:53  * pfrazejoined
19:02:06  * stagasquit (Ping timeout: 255 seconds)
19:12:11  * pfallenopquit (Ping timeout: 256 seconds)
19:12:23  <rowbit>Hourly usage stats: [developer: 6, free: 35]
19:14:50  * pfallenopjoined
19:15:00  * pfallenopquit (Changing host)
19:15:00  * pfallenopjoined
19:21:14  * peutetrejoined
19:23:22  * pfallenopquit (Ping timeout: 240 seconds)
19:27:41  * pfallenopjoined
19:34:18  * mmaleckiquit (Ping timeout: 250 seconds)
19:38:21  * DTrejojoined
19:39:34  <rowbit>substack, pkrumins: These encoders are STILL down: 184.106.99.27(dev-ie7-3)
19:43:24  * thlorenzquit (Remote host closed the connection)
19:45:27  * mmaleckijoined
19:50:05  * pfraze_joined
19:53:22  * pfrazequit (Ping timeout: 240 seconds)
19:55:41  * pfraze__joined
19:55:49  * pfraze__changed nick to pfraze
19:57:14  * pfraze__joined
19:59:13  * pfraze_quit (Ping timeout: 256 seconds)
20:00:03  * peutetrequit (Ping timeout: 240 seconds)
20:00:36  * pfrazequit (Ping timeout: 255 seconds)
20:00:50  * peutetrejoined
20:01:25  * pfraze_joined
20:01:38  * pfraze_changed nick to pfraze
20:02:54  * contrahaxjoined
20:03:10  * contrahaxchanged nick to _contrahax
20:03:16  * _contrahaxchanged nick to contrahax
20:05:05  * pfraze__quit (Ping timeout: 255 seconds)
20:06:12  * pfraze_joined
20:08:46  * thlorenzjoined
20:08:58  * phatedquit (Remote host closed the connection)
20:09:22  * pfrazequit (Ping timeout: 240 seconds)
20:10:38  * phated_joined
20:11:08  * djcoinjoined
20:12:22  <rowbit>Hourly usage stats: [developer: 2, free: 44]
20:17:03  * ins0mniaquit (Ping timeout: 240 seconds)
20:18:45  * phated_changed nick to phated
20:22:17  * peutetrequit (Quit: peutetre)
20:24:58  * navarujoined
20:31:00  * ins0mniajoined
20:34:10  * thlorenzquit (Remote host closed the connection)
20:34:26  * thlorenzjoined
20:35:24  * ins0mniaquit (Ping timeout: 250 seconds)
20:37:56  * AvianPhonejoined
20:39:18  * thlorenzquit (Remote host closed the connection)
20:43:47  * fotoveritequit (Ping timeout: 255 seconds)
20:48:32  * phatedquit (Remote host closed the connection)
20:55:32  * ins0mniajoined
20:57:35  * trevnorr1schanged nick to trevnorris
20:58:05  * kesslerjoined
20:58:19  * thlorenzjoined
21:00:34  * ins0mniaquit (Ping timeout: 264 seconds)
21:05:23  * kesslerquit (Ping timeout: 255 seconds)
21:06:02  * therealkoopaquit (Remote host closed the connection)
21:06:04  * kesslerjoined
21:06:42  * therealkoopajoined
21:08:46  * pfraze__joined
21:10:46  * kesslerquit (Ping timeout: 264 seconds)
21:11:22  * therealkoopaquit (Ping timeout: 264 seconds)
21:11:52  * pfraze_quit (Ping timeout: 240 seconds)
21:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 36]
21:13:08  * pfraze_joined
21:16:12  * djcoinquit (Ping timeout: 255 seconds)
21:16:46  * pfraze__quit (Ping timeout: 260 seconds)
21:19:11  * ins0mniajoined
21:21:08  * yorickjoined
21:26:35  * tilgovijoined
21:28:42  * ins0mniaquit (Ping timeout: 250 seconds)
21:31:21  * kesslerjoined
21:32:19  <Domenic>service workers will allow you to run code even without the tab still being open
21:32:52  * djcoinjoined
21:33:36  * therealkoopajoined
21:35:26  * ins0mniajoined
21:38:14  * therealkoopaquit (Ping timeout: 250 seconds)
21:38:36  <pfraze_>Domenic, how?
21:39:14  * therealkoopajoined
21:42:52  * ins0mniaquit (Ping timeout: 255 seconds)
21:48:04  * fotoveritejoined
21:53:56  * ins0mniajoined
21:55:15  * thlorenzquit (Remote host closed the connection)
21:55:16  <domanic>pfraze_, Domenic will the code only run when someone requests a url from your domain?
21:55:25  <domanic>or will it run in the background?
21:58:07  * kesslerquit (Ping timeout: 245 seconds)
22:01:58  * ins0mniaquit (Ping timeout: 250 seconds)
22:04:04  * kevinswiberquit (Remote host closed the connection)
22:04:11  * thlorenzjoined
22:05:09  * ins0mniajoined
22:09:33  * ins0mniaquit (Ping timeout: 240 seconds)
22:10:22  * thlorenzquit (Remote host closed the connection)
22:10:38  * thlorenzjoined
22:12:22  <rowbit>Hourly usage stats: [developer: 1, free: 33]
22:13:12  * thlorenzquit (Remote host closed the connection)
22:13:23  * ins0mniajoined
22:13:29  * thlorenzjoined
22:17:42  * ins0mniaquit (Ping timeout: 245 seconds)
22:24:37  * thlorenzquit (Remote host closed the connection)
22:24:50  * thlorenzjoined
22:25:31  * ins0mniajoined
22:26:35  * thlorenzquit (Remote host closed the connection)
22:31:45  * therealkoopaquit (Remote host closed the connection)
22:32:13  * ins0mniaquit (Ping timeout: 256 seconds)
22:33:27  <pfraze_>domanic, you see https://github.com/deian/hails.js ?
22:33:36  <Domenic>You could trigger it with push notifications
22:33:43  <Domenic>From a push server
22:33:58  <Domenic>Or using a timer API
22:34:08  <pfraze_>a push server as in http 2.0?
22:34:38  <Domenic>No as in Google Cloud Messaging or Apple Push Notification Service
22:34:40  <domanic>pfraze_, that looks pretty good
22:34:56  <Domenic>Timer API = periodic background task API
22:35:12  <domanic>Domenic, wow, so you can have cron jobs?
22:35:20  <pfraze_>domanic, yeah, I've been talking to the authors - they have some good ideas in the works. http://www.scs.stanford.edu/~deian/cowl.pdf
22:35:50  <Domenic>Yep
22:35:59  <domanic>pfraze_, also, have you been following runtime.js?
22:36:06  <pfraze_>domanic, no, what's that?
22:36:34  <domanic>pfraze_, this is really the best introduction
22:36:34  <domanic>https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript
22:36:49  <domanic>except it's not actually in the medium future, it's being built right now
22:36:51  <pfraze_>Domenic, so this isnt attached at all to a tab from the domain, like sharedworkers?
22:37:10  <domanic>here is the real thing: https://github.com/runtimejs/
22:37:10  <Domenic>It has to be register
22:37:34  <Domenic>Registered by a real tab, but once it is registered it can be triggered by various events
22:37:59  <pfraze_>domanic, ah yeah, I saw that talk, very interesting
22:38:06  <domanic>(tl;dr - it's a microkernel with a integrated javascript engine, which runs in kernel mode)
22:38:15  <Domenic>by default it is triggered by any network access to that domain (or URL scope e.g. example.com/foo/*)
22:38:31  <Domenic>but extension specs like push and timer can also trigger it
22:38:53  <pfraze_>Domenic, so you have to be from example.com to install, but then a request from foobar.com/foo/* would hit the worker?
22:39:17  * AvianPhonequit (Quit: Bye)
22:39:24  <pfraze_>domanic, is this basically the JS version of mirage?
22:39:29  <Domenic>No, an example
22:39:33  <Domenic>Per
22:39:34  <Domenic>Er
22:39:37  <Domenic>Mobile ugh
22:39:50  <domanic>it's ment to allow lower overhead because it removes context switching to kernel mode - but I am most excited by the fact that everthing runs in a sandbox and even system drivers can be in userspace
22:40:09  <Domenic>a request *to* example.com/* would hit the worker
22:40:23  <pfraze_>Domenic, yes, sorry, that's what I meant
22:40:55  <domanic>pfraze_, unfortunatle "mirage" doesn't google very well - what is it?
22:42:05  <pfraze_>domanic, http://www.openmirage.org/ it's an OS written in OCaml that is incredibly small because it doesnt include any drivers. Instead, it expects to be run in a VM inside some other OS. Which, I suppose, is where JS already is
22:42:22  <pfraze_>Domenic, do service workers have access to the webrtc stack?
22:42:31  <domanic>pfraze_, no I think that is different
22:42:52  <pfraze_>domanic, yeah, because runtime.js doesnt presuppose a host os?
22:42:54  <Domenic>Probably not yet… unsure. Things are being moved into
22:43:14  <domanic>runtime aspires to be run on the metal - but it's a microkernel and the drivers are sanboxed
22:43:15  <Domenic>into "allowed in workers" category as much as possible
22:44:05  <domanic>but because they run in a VM, and are not native code, then message passing can be swaps and not copies - much lower overhead.
22:44:05  <Domenic>asking in #whatwg
22:44:18  <pfraze_>Domenic, yeah, I was just mentioning to domanic earlier today, the lack of connection persistence across tabs in webrtc is a problem. This might be a solution to that
22:44:58  <domanic>pfraze_, connections between tabs? there are other ways to do that
22:44:59  <pfraze_>domanic, yeah, that's really pretty promising
22:45:18  <domanic>like you can use localstorage events
22:45:25  <pfraze_>no, between peers
22:45:37  <domanic>ah, you said tabs
22:46:03  <pfraze_>sorry, I mean "apart from a tab lifetime"
22:46:23  <domanic>pfraze_, I think the solution is some system that encourages people to run decentralized introducer servers
22:46:52  * therealkoopajoined
22:46:57  <domanic>that can still be decentralized.
22:47:40  <pfraze_>domanic, yeah, that's what grimwire was. My thinking was that a federated signalling system with public (on DNS) hosts could give dynamic identities - [email protected]
22:47:57  <pfraze_>well, static identities that resolve dynamically
22:48:35  <domanic>I'd want to decouple id from servers
22:48:41  <domanic>otherwise it's too much like email
22:49:08  <pfraze_>my concern with email is just where the data lives, not who controls the identities
22:49:12  <domanic>any thing less than user_id = hash(pubkey) is too mech like email
22:49:36  <pfraze_>youre thinking a DHT?
22:50:24  <domanic>well, i have a different idea. you could say it's half way between a DHT and a block chain.
22:50:51  <domanic>I'm working on it here: https://github.com/dominictarr/secure-scuttlebutt
22:51:58  * therealkoopaquit (Ping timeout: 260 seconds)
22:52:36  <domanic>regards our aborted email discussion this morning, instead of email - which is unsolicited spam - This is a Solicited Spam System, like twitter.
22:53:05  <pfraze_>right, so you're offloading networking management to the user in that case
22:53:25  <domanic>well, the question is discovery
22:54:07  <domanic>the plan is to have p2p replication with the spammers you have solicited (your "friends")
22:54:49  * kesslerjoined
22:54:57  <domanic>which can be local (wifi) or p2p webrtc or one/both of you may run a relay server, which would have a domain or at least an ip address.
22:55:40  <domanic>everything would be signed, and you can replicate messages through your mutual friends
22:55:59  * therealkoopajoined
22:56:19  <domanic>so as long as some people that follow you have relay servers then all your other friends can get your messages that way.
22:56:39  <pfraze_>would there be a way to limit who an entry replicates to?
22:57:07  <pfraze_>or a way to encrypt the messages?
22:57:17  <domanic>yes to both of these
22:57:32  <pfraze_>oh really? How for the former?
22:57:45  <domanic>although, the first would depend on relying on your friends not to gossip to strangers
22:58:01  <pfraze_>yeah
22:58:12  <domanic>that could be programmed in, but if you tell someone a secret you can't untell them
22:58:20  <pfraze_>right
22:58:37  <domanic>but it's not so bad because they are your friends so you *should* be able to trust them in theory
22:58:53  <domanic>for more private messages, encrypt them too
22:59:19  <pfraze_>hmm. Is there a way to handle degrees of trust? What if I need to message a stranger?
22:59:26  * kesslerquit (Ping timeout: 260 seconds)
22:59:38  <domanic>if you have a mutual friend then you can pass it through them
23:00:04  <domanic>if you do not, then they'd have to solicit it in some way
23:00:37  <domanic>but part of the point of this system is that you can't do that ;)
23:00:43  * therealkoopaquit (Ping timeout: 255 seconds)
23:01:13  * yoshuawuytsquit (Remote host closed the connection)
23:01:26  * yoshuawuytsjoined
23:02:06  * therealkoopajoined
23:02:28  <pfraze_>hmm, well the peer-replication does handle the question of mutual uptime
23:02:36  <pfraze_>and device syncing
23:03:59  * djcoinquit (Quit: WeeChat 0.4.3)
23:04:40  * ins0mniajoined
23:05:02  <domanic>pfraze_, yes. the replication layer would beuseful for all sorts of other stuff too... such as a secure package manager, or wiki, for example
23:05:20  <pfraze_>domanic, yeah, would be great for distributing code signatures
23:06:52  <domanic>pfraze_, yeah - except instead of merely signing code, you sign absolutely every update and change
23:07:23  <domanic>so the authenticity of the entire database can be verified offline.
23:07:26  <pfraze_>personally, I'd be a little nervous about putting a private message in that system without tightly controlling its path. I'd want to use as few intermediaries as possible in that case -- basically as a user->server->user path tries to do
23:07:34  <rowbit>substack, pkrumins: These encoders are STILL down: 184.106.106.66(dev-ie7-1)
23:07:45  <pfraze_>though this does do better, because this can achieve even p2p
23:07:47  * therealkoopaquit (Ping timeout: 255 seconds)
23:07:57  <domanic>pfraze_, right - but that depends on *how* private it is
23:08:00  <pfraze_>domanic, so youd publish the code itself here
23:08:17  <pfraze_>right, that's effectively a parameter of your use, yeah?
23:08:42  <pfraze_>"this message is super private, only give it directly even if we have to get mutual uptime"
23:09:02  <domanic>exactly - and in the more extreme case, you could use something like this to coorninate connections that are direct and more private.
23:09:21  <pfraze_>ok, I'm sold so far. This doesn't solve webrtc signalling though, right?
23:09:56  <domanic>well, my plan is that the relay servers will do that.
23:10:32  <domanic>people who want to be less private / promote themselves will have incentive to run servers (very cheap, $5 a month on digital ocean or something)
23:10:42  <pfraze_>yeah, relay servers are basically network seeders, then?
23:11:05  <domanic>and those will act as introducers for their personal networks + some overlap
23:12:18  <pfraze_>so...ok, I'd create a connection to a relay to track me and make introductions, and then that relay would need to broadcast that hash(pauls_pubkey) is tracked there, yeah? Otherwise people would have to know which relay I use
23:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 30]
23:12:22  * ins0mniaquit (Ping timeout: 240 seconds)
23:12:59  <domanic>exactly! we just add some sort of presense/ephemeral messages (only replicated for say 2 hours, & not persisted) which could contain hints as to which relay servers you are *currently* contactable via
23:13:19  <domanic>so you could bootstrap other p2p protocols over that, and on top of this user model.
23:13:53  <pfraze_>ok, and those ephemeral messages, theyd be signed by your private key too, right?
23:14:21  <domanic>yes, of course
23:14:32  <domanic>+ something to prevent replay attacks
23:14:34  <pfraze_>so it's just a normal ssb message, but given specifically to that guy
23:14:46  <pfraze_>ah, yeah - that's the blockchain?
23:15:37  <pfraze_>does a blockchain work without the proof-of-work mining?
23:16:13  <domanic>yes - each user has their own blockchain - and uses proof of authorship (aka, signatures) not proof of work
23:16:50  <domanic>the block chain is just a singly linked list - which is the replicated & persisted feed (analgous to your twitter feed)
23:16:54  <pfraze_>you'd need one public key per device in that case, right? Or some way to make sure your ids are monotonic
23:16:57  * therealkoopajoined
23:17:08  <domanic>pfraze_, correct - it's much simpler that way
23:17:33  <pfraze_>domanic, agreed
23:17:47  <domanic>also, it reflects the physics better - the private key lives on the device
23:18:13  <domanic>if it was implanted on the human it would be different
23:18:51  <pfraze_>yeah. ok, I'm actually pretty intrigued here. I think you're onto something
23:19:03  <domanic>if a user owned multiple devices they would just sign the other keys in some way to signify that was also you
23:19:15  <domanic>pfraze_, thanks :)
23:19:32  <pfraze_>so what's the dev status / roadmap?
23:20:09  <domanic>the first phase is implementing a database that will be replicatable over a ui like git push / git pull & http
23:20:16  <domanic>because that will be useful on it's own
23:20:40  <domanic>and then the gossip network layer
23:21:22  * therealkoopaquit (Ping timeout: 260 seconds)
23:22:06  <domanic>it's progressing fairly well, and I have the basic replication protocol and verifying the database implemented already
23:22:54  * therealkoopajoined
23:23:21  <domanic>my goal is to create something that other people can build on top of, like the "http" of secure p2p.
23:24:23  <pfraze_>yeah
23:26:20  <pfraze_>ok, let me know if I can help. Could get involved with the relays, or building some apps when you're ready for a downstream. Would like to get an email going
23:27:19  <yoshuawuyts>all aboard the water cooler :)
23:28:21  * ins0mniajoined
23:30:54  * therealkoopaquit (Ping timeout: 250 seconds)
23:31:42  * therealkoopajoined
23:32:42  * ins0mniaquit (Ping timeout: 245 seconds)
23:32:57  <domanic>pfraze_, I think the best way to help with a project like this is to try and build something on top of it
23:33:16  <domanic>or just try to use it and then complain about everything that was hard
23:33:30  <pfraze_>domanic, I'm on board with that. Is it ready enough?
23:33:59  * navaruquit (Remote host closed the connection)
23:35:18  * DTrejoquit
23:36:08  * therealkoopaquit (Ping timeout: 255 seconds)
23:36:57  <domanic>pfraze_, what I have now is just replication of messages - it's rudimentary, but it works
23:37:07  <domanic>and there are tests.
23:37:40  <pfraze_>yeah, reading them now. I'll dig in a bit and start thinking about it
23:39:01  * yoshuawuytsquit (Remote host closed the connection)
23:40:30  * ins0mniajoined
23:42:51  * brianloveswordsquit (Quit: Computer has gone to sleep.)
23:45:19  * ins0mniaquit (Ping timeout: 256 seconds)
23:46:44  * therealkoopajoined
23:47:29  * jhermsjoined
23:51:34  * therealkoopaquit (Ping timeout: 264 seconds)
23:55:37  * kesslerjoined
23:57:20  * domanicquit (Ping timeout: 250 seconds)
23:57:44  * thlorenzjoined
23:59:52  * kesslerquit (Ping timeout: 240 seconds)