00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:09  * ircretaryjoined
00:01:23  * therealkoopajoined
00:01:36  * ins0mniajoined
00:01:58  * pfraze_quit (Ping timeout: 260 seconds)
00:02:29  * pfrazejoined
00:03:01  * knownasilyaquit (Quit: Connection closed for inactivity)
00:04:00  * j0hnjoined
00:04:28  * yorickquit (Read error: Connection reset by peer)
00:05:03  <feross>interesting distributed db project http://gundb.io/
00:05:06  * jhermsquit (Quit: Leaving)
00:05:39  <feross>ircretary: tell domanic to check out http://gundb.io/
00:05:39  <ircretary>feross: I'll be sure to tell domanic
00:06:52  * ins0mniaquit (Ping timeout: 255 seconds)
00:06:52  * tilgoviquit (Ping timeout: 240 seconds)
00:10:10  * ins0mniajoined
00:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 21]
00:12:42  * therealkoopaquit (Ping timeout: 260 seconds)
00:15:58  * ins0mniaquit (Ping timeout: 250 seconds)
00:19:24  * therealkoopajoined
00:21:51  * ceejbotjoined
00:22:55  <prettyrobots>Is there some arbitrary limit on simultanious TCP connections?
00:22:56  <prettyrobots>Or TLS, rather?
00:23:31  * ins0mniajoined
00:24:25  * therealkoopaquit (Ping timeout: 256 seconds)
00:24:56  * j0hnquit (Remote host closed the connection)
00:30:29  * therealkoopajoined
00:32:00  * ednapiranhaquit (Quit: Leaving...)
00:34:03  * ins0mniaquit (Ping timeout: 256 seconds)
00:34:38  * navarujoined
00:35:02  * therealkoopaquit (Ping timeout: 250 seconds)
00:36:43  * ins0mniajoined
00:36:43  * therealkoopajoined
00:38:26  * therealkoopaquit (Remote host closed the connection)
00:38:37  * therealkoopajoined
00:38:52  * navaruquit (Ping timeout: 240 seconds)
00:39:22  * yoshuawuytsjoined
00:41:06  * ins0mniaquit (Ping timeout: 250 seconds)
00:43:42  * yoshuawuytsquit (Ping timeout: 250 seconds)
00:44:52  * ins0mniajoined
00:46:40  * brianloveswordsjoined
00:47:57  * yoshuawuytsjoined
00:49:40  * ins0mniaquit (Ping timeout: 250 seconds)
00:52:17  * yoshuawuytsquit (Ping timeout: 245 seconds)
00:56:18  * kesslerjoined
00:57:39  * AvianPhonejoined
01:00:37  * kesslerquit (Ping timeout: 245 seconds)
01:05:38  * ins0mniajoined
01:07:11  * brianloveswordsquit (Quit: Computer has gone to sleep.)
01:08:18  * ceejbotquit (Remote host closed the connection)
01:11:22  * ins0mniaquit (Ping timeout: 240 seconds)
01:12:22  <rowbit>Hourly usage stats: [developer: 1, free: 24]
01:22:21  * ins0mniajoined
01:28:13  * kenperkinsquit (Quit: Computer has gone to sleep.)
01:28:44  * tilgovijoined
01:29:39  * anvakajoined
01:35:35  * navarujoined
01:38:34  * ins0mniaquit (Ping timeout: 260 seconds)
01:39:34  <rowbit>substack, pkrumins: These encoders are STILL down: 184.106.99.27(dev-ie7-3)
01:39:37  * brianloveswordsjoined
01:39:54  * navaruquit (Ping timeout: 255 seconds)
01:39:56  * pfrazequit (Ping timeout: 250 seconds)
01:44:04  * ins0mniajoined
01:48:08  * knownasilyajoined
01:53:25  * defunctzombiechanged nick to defunctzombie_zz
01:56:23  * kenperkinsjoined
01:57:08  * kesslerjoined
01:57:42  * ins0mniaquit (Ping timeout: 250 seconds)
02:01:36  * kesslerquit (Ping timeout: 250 seconds)
02:12:22  <rowbit>Hourly usage stats: [developer: 1, free: 21]
02:12:24  * kenperkinsquit (Quit: Textual IRC Client: http://www.textualapp.com/)
02:14:29  * therealkoopaquit (Remote host closed the connection)
02:15:03  * therealkoopajoined
02:16:10  * ednapiranhajoined
02:17:32  * jxsonquit (Ping timeout: 240 seconds)
02:19:28  * therealkoopaquit (Ping timeout: 250 seconds)
02:25:22  * therealkoopajoined
02:26:19  * navarujoined
02:30:44  * navaruquit (Ping timeout: 255 seconds)
02:36:40  * domanicjoined
02:40:03  * ins0mniajoined
02:43:14  <domanic>feross, haha, wow - two simultanious reactions 1) "too good to be true, what is the catch" and 2) "wow, someone has listened to everything I have been saying"
02:46:42  * ins0mniaquit (Ping timeout: 260 seconds)
02:47:48  * j0hnjoined
02:53:12  * brianloveswordsquit (Quit: Computer has gone to sleep.)
02:57:50  * kesslerjoined
03:02:13  * kesslerquit (Ping timeout: 244 seconds)
03:03:07  * ceejbotjoined
03:03:46  * brianloveswordsjoined
03:05:00  * therealkoopaquit (Remote host closed the connection)
03:05:31  * rxgxjoined
03:05:33  * therealkoopajoined
03:10:01  * therealkoopaquit (Ping timeout: 255 seconds)
03:10:02  * brianloveswordsquit (Quit: ["Textual IRC Client: www.textualapp.com"])
03:12:22  <rowbit>Hourly usage stats: [developer: 0, free: 13]
03:13:53  * brianloveswordsjoined
03:14:34  * therealkoopajoined
03:19:03  * therealkoopaquit (Ping timeout: 240 seconds)
03:24:45  * ins0mniajoined
03:25:47  * ednapiranhaquit
03:26:04  * therealkoopajoined
03:27:06  * navarujoined
03:29:50  * defunctzombie_zzchanged nick to defunctzombie
03:30:26  * ins0mniaquit (Ping timeout: 250 seconds)
03:31:22  * navaruquit (Ping timeout: 240 seconds)
03:33:22  * therealkoopaquit (Ping timeout: 240 seconds)
03:36:33  * j0hnquit (Remote host closed the connection)
03:37:52  * ins0mniajoined
03:39:06  <rowbit>/!\ ATTENTION: (default-local) contact@... successfully signed up for developer browserling plan ($20). Cash money! /!\
03:39:06  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
03:40:09  <feross>haha yeah, that's what i thought too
03:40:19  <feross>haven't tried it, so i don't know about 1
03:40:52  <feross>domanic: but i wonder if he's heard of you / knows about your modules
03:41:00  <feross>i met him at a hackathon this weekend
03:41:04  * brianloveswordsquit (Quit: Computer has gone to sleep.)
03:42:05  <rowbit>substack, pkrumins: A developer is waiting in the queue for explorer/11.0
03:42:40  * ins0mniaquit (Ping timeout: 250 seconds)
03:43:14  * defunctzombiechanged nick to defunctzombie_zz
03:44:53  * therealkoopajoined
03:55:47  * therealkoopaquit (Ping timeout: 256 seconds)
03:56:39  * thlorenzquit (Remote host closed the connection)
03:58:37  * kesslerjoined
03:59:56  * therealkoopajoined
04:02:56  * kesslerquit (Ping timeout: 250 seconds)
04:04:28  * therealkoopaquit (Ping timeout: 255 seconds)
04:12:22  <rowbit>Hourly usage stats: [developer: 4, free: 14]
04:14:02  * AvianPhonequit (Read error: Connection reset by peer)
04:14:23  * therealkoopajoined
04:14:31  * ins0mniajoined
04:18:57  * therealkoopaquit (Ping timeout: 245 seconds)
04:24:22  * ins0mniaquit (Ping timeout: 244 seconds)
04:27:49  * ins0mniajoined
04:27:53  * navarujoined
04:30:12  * therealkoopajoined
04:32:22  * navaruquit (Ping timeout: 255 seconds)
04:34:02  * ins0mniaquit (Ping timeout: 255 seconds)
04:34:37  * therealkoopaquit (Ping timeout: 255 seconds)
04:44:44  * therealkoopajoined
04:50:11  * therealkoopaquit (Ping timeout: 256 seconds)
04:51:56  * jxsonjoined
04:52:07  * dguttmanquit (Quit: dguttman)
04:52:33  * dguttmanjoined
04:59:21  * kesslerjoined
05:00:00  <guybrush>mafintosh: what do you think about `protocolBuffers(proto).Obj.decode(buffer, targetObject)` where it updates the targetObject
05:00:14  * therealkoopajoined
05:00:44  <guybrush>the targetObject-arg could be optional
05:02:13  <guybrush>oh it would actually be the third argument, after offset
05:03:33  * kesslerquit (Ping timeout: 240 seconds)
05:06:31  * thealphanerdquit (Quit: thealphanerd)
05:06:44  * therealkoopaquit (Ping timeout: 250 seconds)
05:07:35  <rowbit>substack, pkrumins: These encoders are STILL down: 184.106.106.66(dev-ie7-1)
05:08:52  * ins0mniajoined
05:12:22  <rowbit>Hourly usage stats: [developer: 1, free: 18]
05:15:22  * ins0mniaquit (Ping timeout: 240 seconds)
05:18:50  * domanicquit (Ping timeout: 260 seconds)
05:20:55  * rxgxquit (Quit: Connection closed for inactivity)
05:28:42  * navarujoined
05:32:05  * ceejbotquit (Remote host closed the connection)
05:32:52  * navaruquit (Ping timeout: 240 seconds)
05:44:35  * ins0mniajoined
05:45:49  * therealkoopajoined
05:48:41  * ceejbotjoined
05:50:58  * ins0mniaquit (Ping timeout: 264 seconds)
05:51:52  * therealkoopaquit (Ping timeout: 240 seconds)
05:53:22  * ceejbotquit (Ping timeout: 240 seconds)
05:53:40  * ins0mniajoined
05:55:50  * yoshuawuytsjoined
05:56:45  * thealphanerdjoined
05:59:14  * therealkoopajoined
06:00:04  * kesslerjoined
06:00:07  * yoshuawuytsquit (Ping timeout: 255 seconds)
06:04:44  * ceejbotjoined
06:05:33  * ins0mniaquit (Ping timeout: 240 seconds)
06:07:50  * therealkoopaquit (Ping timeout: 260 seconds)
06:09:15  * ceejbotquit (Ping timeout: 244 seconds)
06:12:22  <rowbit>Hourly usage stats: [developer: 1, free: 26]
06:13:01  * knownasilyaquit (Quit: Connection closed for inactivity)
06:19:07  * therealkoopajoined
06:22:20  * nickleeflyjoined
06:23:42  * therealkoopaquit (Ping timeout: 260 seconds)
06:25:40  * therealkoopajoined
06:27:24  * fotoveritequit (Quit: fotoverite)
06:29:31  * navarujoined
06:30:03  * therealkoopaquit (Ping timeout: 240 seconds)
06:31:30  * hoobdeeblajoined
06:33:52  * navaruquit (Ping timeout: 255 seconds)
06:40:50  * jxsonquit (Remote host closed the connection)
06:41:15  * Maciek416quit (Remote host closed the connection)
06:41:41  * Maciek416joined
06:43:46  * hoobdeeblaquit
06:45:56  * Maciek416quit (Ping timeout: 240 seconds)
06:54:19  * ceejbotjoined
06:58:56  * ceejbotquit (Ping timeout: 255 seconds)
07:00:14  <owen1>talk from NebraskaJS about Ampersand.js - http://youtu.be/UzJCz1qAiHg
07:01:52  * pkrumins_quit (Ping timeout: 245 seconds)
07:02:13  * rowbitquit (Ping timeout: 256 seconds)
07:04:06  <owen1>sorry, wrong channel
07:05:34  * jxsonjoined
07:15:33  * kesslerquit (Ping timeout: 240 seconds)
07:16:02  * ceejbotjoined
07:16:56  * djcoinjoined
07:20:59  * ceejbotquit (Ping timeout: 264 seconds)
07:21:52  * jxsonquit (Remote host closed the connection)
07:22:04  * timoxleyjoined
07:23:15  <thealphanerd>owen1: they are releasing training for ampersand http://learn.humanjavascript.com/
07:29:10  * navarujoined
07:29:12  * tilgoviquit (Remote host closed the connection)
07:32:23  * ircretaryquit (Remote host closed the connection)
07:35:31  * therealkoopajoined
07:37:53  * ceejbotjoined
07:39:35  * ircretaryjoined
07:39:53  * therealkoopaquit (Ping timeout: 255 seconds)
07:40:51  * therealkoopajoined
07:42:00  * yoshuawuytsjoined
07:42:36  * ceejbotquit (Ping timeout: 255 seconds)
07:45:20  * therealkoopaquit (Ping timeout: 250 seconds)
07:46:25  * yoshuawuytsquit (Ping timeout: 256 seconds)
07:58:17  * yoshuawuytsjoined
07:59:41  * ceejbotjoined
08:03:52  * ceejbotquit (Ping timeout: 250 seconds)
08:09:56  * peutetrejoined
08:22:11  * yoshuawuytsquit (Remote host closed the connection)
08:26:51  * stagasjoined
08:30:21  * Maciek416joined
08:34:57  * Maciek416quit (Ping timeout: 244 seconds)
08:39:02  * kesslerjoined
08:39:46  * nickleeflyquit (Quit: Connection closed for inactivity)
08:44:34  * therealkoopajoined
08:51:26  * therealkoopaquit (Ping timeout: 255 seconds)
09:00:15  * therealkoopajoined
09:03:33  * ceejbotjoined
09:04:37  * therealkoopaquit (Ping timeout: 256 seconds)
09:09:24  * ceejbotquit (Ping timeout: 250 seconds)
09:09:27  * yoshuawuytsjoined
09:13:47  * navaru_joined
09:13:54  * navaruquit (Read error: Connection reset by peer)
09:17:17  * contrahaxchanged nick to _contrahax
09:19:21  * _contrahaxchanged nick to contrahax
09:20:31  * contrahaxchanged nick to _contrahax
09:22:23  <thealphanerd>hey substack you around?
09:34:22  <thealphanerd>https://github.com/TheAlphaNerd/brfs/commit/c472412b1fa3e6fce11552428d26a8caf40977dd
09:40:19  * misterinterruptjoined
09:42:44  * anvakaquit (Read error: Connection reset by peer)
09:42:48  * anvaka_joined
09:42:49  * misterinterruptquit (Client Quit)
09:42:55  * misterinterruptjoined
09:48:20  * ceejbotjoined
09:52:38  * ceejbotquit (Ping timeout: 250 seconds)
09:56:05  * peutetrequit (Quit: peutetre)
10:11:09  <substack>thealphanerd: yo
10:11:21  <thealphanerd>I found a weird edge case in brfs
10:11:24  <thealphanerd>posted a pull request
10:12:30  <thealphanerd>let me know if you have any questions… I documented most of it in the commit message :D
10:17:48  * misterinterruptquit
10:19:15  * Maciek416joined
10:22:52  * kesslerquit (Ping timeout: 240 seconds)
10:23:32  * Maciek416quit (Ping timeout: 240 seconds)
10:33:09  * therealkoopajoined
10:40:30  * therealkoopaquit (Ping timeout: 244 seconds)
10:45:26  <yoshuawuyts>Curious about your opinions: I'm building a backbone-ish model/collection library, and I have to choose whether to make requests instant (e.g. '.add()' saves data to the collection and immediately sends it to the server) or caching multiple requests, and sending it to the server when '.sync()' is called.
10:46:11  * stagasquit (Ping timeout: 244 seconds)
10:46:14  * kesslerjoined
10:48:16  <yoshuawuyts>I feel as if the caching version is harder to build.
10:49:01  <yoshuawuyts>But gives more control.
10:49:08  <yoshuawuyts>Not sure if that's a valid argument though.
10:52:45  * therealkoopajoined
10:57:23  * therealkoopaquit (Ping timeout: 256 seconds)
11:12:46  * gozalaquit (Quit: Connection closed for inactivity)
11:21:26  * peutetrejoined
11:25:03  <nathan7>yoshuawuyts: maybe sync on the next tick?
11:25:14  <nathan7>yoshuawuyts: though explicit .save has a lot of value imo
11:35:22  * kesslerquit (Ping timeout: 264 seconds)
11:38:37  <yoshuawuyts>I thought that too. What'd be the use case for an explicit .save though?
11:38:42  <yoshuawuyts>nathan7:
11:39:30  <nathan7>yoshuawuyts: ensuring that a set of changes is committed as one
11:40:49  <yoshuawuyts>nathan7: hm, that's a valid use case. It could be circumvented by building the object outside the model, and passing it to the model once done though.
11:42:35  <nathan7>yoshuawuyts: gossip-object, my magic gossip-based object syncing thingy
11:42:47  <nathan7>yoshuawuyts: has transactions for this purpose
11:42:54  <nathan7>yoshuawuyts: you can do obj.set(k, v)
11:43:18  <nathan7>yoshuawuyts: if you want a bunch of them grouped together, atomically, you do var transaction = obj.transact()
11:43:23  <nathan7>yoshuawuyts: and do your stuff on there
11:43:31  <nathan7>yoshuawuyts: and transaction.execute() to apply the changeset
11:45:39  <yoshuawuyts>nathan7: I see. But that applies to a single object only, right?
11:46:32  <nathan7>yoshuawuyts: Yeah, a gossip-object is the biggest unit you can apply something to atomically
11:46:58  <nathan7>yoshuawuyts: if you have some kind of context for all your models, you could have a ctx.transact(function() { … })
11:47:50  <yoshuawuyts>nathan7: aye, I have that. Thing is: how do you handle errors?
11:48:46  <yoshuawuyts>nathan7: with HTTP / REST you can have multiple endpoints that return different statuses, conflicts from different resources, etc. etc.
11:50:58  <nathan7>yoshuawuyts: Yeah, I've sidestepped that one q=
11:51:19  <nathan7>yoshuawuyts: gossip-object is for decentralised systems — every gossip-object is the "master copy"
11:51:36  <yoshuawuyts>nathan7: oh, the sweet world of scuttlebutt, how I woe thee
11:51:45  <nathan7>yoshuawuyts: hehe
11:59:33  * yorickjoined
12:08:22  * Maciek416joined
12:09:39  * therealkoopajoined
12:13:03  * Maciek416quit (Ping timeout: 255 seconds)
12:13:14  * therealkoopaquit (Remote host closed the connection)
12:13:29  * therealkoopajoined
12:21:30  * kesslerjoined
12:45:37  * kesslerquit (Ping timeout: 256 seconds)
12:46:49  * kesslerjoined
12:53:22  * kesslerquit (Ping timeout: 260 seconds)
12:58:25  * peutetrequit (Quit: peutetre)
13:09:21  * peutetrejoined
13:14:33  * thealphanerdquit (*.net *.split)
13:14:33  * CoderPuppyquit (*.net *.split)
13:14:33  * ryanflorencequit (*.net *.split)
13:14:33  * prettyrobotsquit (*.net *.split)
13:14:34  * dlmanningquit (*.net *.split)
13:14:34  * grequit (*.net *.split)
13:15:41  * CoderPuppyjoined
13:15:41  * ryanflorencejoined
13:15:41  * prettyrobotsjoined
13:15:41  * dlmanningjoined
13:15:41  * grejoined
13:16:14  * knownasilyajoined
13:25:52  * kesslerjoined
13:25:52  * kesslerquit (Ping timeout: 255 seconds)
13:41:14  * peutetrequit (Quit: peutetre)
13:42:06  * thlorenzjoined
13:57:02  * Maciek416joined
14:01:32  * Maciek416quit (Ping timeout: 240 seconds)
14:02:32  <mafintosh>guybrush: i'm cool with that - send me a PR :)
14:05:14  <guybrush>cool maybe i will get to it tomorrow need to sleep now :D
14:05:38  <guybrush>also what do you think about providing an api so you can pass an existing buffer?
14:05:56  <guybrush>basically the same thing for encode
14:06:41  <guybrush>so one could reuse the same buffer for all the messages
14:08:42  <guybrush>like `len = protoObj.encode(someObj, existingBuffer); send(existingBuffer.subarray(0,len))`
14:09:54  * peutetrejoined
14:09:56  <guybrush>obv it will not work like that but the idea :D
14:11:29  <guybrush>oh i see feross Buffer#copy uses subarray under the hood, most excellent
14:39:22  * ceejbotjoined
14:42:02  * kenperkinsjoined
14:44:49  * brianloveswordsjoined
14:55:45  * naneaujoined
14:58:11  * pfrazejoined
15:01:19  * kevinswiberjoined
15:01:26  * kevinswiberquit (Remote host closed the connection)
15:01:42  * kevinswiberjoined
15:02:36  * ednapiranhajoined
15:05:19  * peutetrequit (Quit: peutetre)
15:06:35  * pfraze_joined
15:10:07  * pfrazequit (Ping timeout: 256 seconds)
15:23:08  * kevinswiberquit (Remote host closed the connection)
15:23:41  * kevinswiberjoined
15:25:45  * ceejbotquit (Remote host closed the connection)
15:28:01  * kevinswiberquit (Ping timeout: 255 seconds)
15:29:36  * domanicjoined
15:32:21  * kevinswiberjoined
15:36:00  * domanicquit (Ping timeout: 255 seconds)
15:37:03  * domanicjoined
15:43:01  * knownasilyaquit (Quit: Connection closed for inactivity)
15:44:47  * domanicquit (Ping timeout: 245 seconds)
15:45:56  * Maciek416joined
15:48:36  * Maciek416_joined
15:49:24  * Maciek416quit (Read error: Connection reset by peer)
15:53:20  * ryan_stevensjoined
15:57:14  * domanicjoined
16:06:13  * nfroidurequit (Ping timeout: 256 seconds)
16:09:37  * domanicquit (Ping timeout: 256 seconds)
16:18:21  * yoshuawuytsquit (Remote host closed the connection)
16:19:12  * kesslerjoined
16:20:53  * djcoinquit (Quit: WeeChat 0.4.3)
16:20:55  * taterbasequit (Quit: Connection closed for inactivity)
16:24:19  * kesslerquit (Read error: Connection reset by peer)
16:32:14  * anvaka_quit (Remote host closed the connection)
16:32:46  * anvakajoined
16:37:03  * anvakaquit (Ping timeout: 240 seconds)
16:38:06  * jxsonjoined
16:45:56  * thlorenzquit (Remote host closed the connection)
17:01:06  * fotoveritejoined
17:06:02  <terinjokes>andreypopp: got any good recommendations for checking out purescript?
17:06:31  <andreypopp>terinjokes: did you see the book?
17:06:35  <andreypopp>https://leanpub.com/purescript
17:06:50  <terinjokes>i did, but so far hadn't seen any recommendations :P
17:06:54  <terinjokes>just your blog post
17:07:17  * stagasjoined
17:07:43  <andreypopp>terinjokes: check out purescript-react then)
17:08:12  <andreypopp>it isn't ideal in the current state but gives some taste on practical purescript applications
17:08:29  <andreypopp>there's even production usage of it I heard
17:08:48  <terinjokes>andreypopp: i had seen it, not sure why it requires a nightly (old readme from before 0.11?)
17:09:10  <andreypopp>terinjokes: yep, it works well with 0.11
17:09:47  <terinjokes>andreypopp: how's it fair with npm?
17:17:03  * kevinswiberquit (Remote host closed the connection)
17:17:31  <andreypopp>terinjokes: everything is distributed through bower right now
17:17:48  <andreypopp>terinjokes: but that can change
17:18:12  <terinjokes>andreypopp: i have obvious reasons for not using bower :)
17:18:24  * ceejbotjoined
17:19:06  * domanicjoined
17:33:45  * thealphanerdjoined
17:38:01  <domanic>pfraze_, jbenet over here we where discussing, basically, the possiblity of a schema for a merke dag https://twitter.com/pfrazee/status/496705386779394049
17:38:36  <domanic>I could imagine this for say, git:
17:39:39  <domanic>commit: {parent: link(commit), author: one_line_string, timestamp: timestamp, message: string, tree: link(tree)}
17:41:04  <domanic>tree: {files: [{mode: unix_perms, filename: string, type: dir|file, content: link(blob | tree)]}
17:41:22  <domanic>blob: binaryblob
17:41:46  <domanic>oh, except a commit can actually have more than one parent
17:42:07  <domanic>so maybe it should be: {parent: [link(commit)],...
17:43:01  <domanic>I feel like that would allow you to at least, validate the correct structure in git repos
17:43:13  <pfraze_>domanic, interesting, so I guess you'd spec the encoding as well - would you imagine using json, usually?
17:43:33  <domanic>this is just pseudocode
17:43:37  <pfraze_>yeah
17:43:42  <domanic>I'm on the fence whether or not to use json
17:43:51  <domanic>on the one hand, it's easy
17:44:03  <domanic>on the other hand, binary is more efficient
17:44:10  <domanic>and... more hardcore
17:44:36  <pfraze_>haha yeah, and we have the 1024b limit -- I like the idea of the varstruct code you already use
17:44:47  <domanic>binary says: you have to work a bit harder if you want to master this
17:44:54  <domanic>it's more serious
17:45:35  <domanic>pfraze_, ethier way, I want the all the crypto and encoding to be injectable
17:45:51  <pfraze_>domanic, injectable - as in, machine-readable?
17:46:21  <domanic>no I mean, something that is passed in by the code's callers
17:46:33  <domanic>currently I use binary encoding and elliptic curves
17:46:48  <domanic>but you should be able to use json and rsa, too
17:47:16  <pfraze_>for the entire message, or for the message content?
17:47:32  <domanic>I mean, for the protocol
17:48:21  <domanic>I want to flick a switch and it becomes a text protocol
17:48:40  <pfraze_>that sounds potentially pretty complicated
17:49:00  <domanic>not necessarily
17:49:02  <pfraze_>I guess encoding and encryption can change without altering content though, yeah?
17:49:08  <domanic>yeah
17:49:16  <pfraze_>so that could be a per-transaction decision
17:49:37  <domanic>sorry I don't mean switching the encoding on the fly
17:49:51  <domanic>but I mean, it should be easy to fork the project and use json encoding
17:50:40  <domanic>by encouraging other people to use this for other things we'll attract much more developer energy, I think
17:51:01  <pfraze_>yeah
17:51:10  * anvakajoined
17:51:50  <pfraze_>where is this sitting vs IPFS?
17:53:34  <domanic>this is founded on many of the same ideas, but with some different conclusions
17:55:03  <domanic>we bounce ideas of each other quite a lot, and have the same abstract goals, but fairly different plans
17:55:22  <domanic>maybe they will both succeed and work together?
17:55:32  * anvakaquit (Ping timeout: 240 seconds)
17:55:38  <pfraze_>yeah, high level, big differences?
17:56:42  <domanic>the biggest architectural difference is that ipfs has a dht, but ssb doesn't
17:57:24  * phatedjoined
17:57:38  <domanic>ssb is basically a replication protocol where the network topology maps fairly directly onto actual human trust relationships
17:57:38  <jjjohnny>whats ssb?
17:57:46  <domanic>jjjohnny, secure scuttlebutt
17:58:19  <pfraze_>the actual connection management is out of scope for ssb, right?
17:58:24  <pfraze_>the routing
17:58:32  <domanic>for now
17:58:40  <domanic>yeah it will probably be in a different module
17:59:15  <domanic>the first phase is just a replicatable database - so really, it's closer to couchdb
18:00:36  <jjjohnny>is there an alternate working registery backend for NPM?
18:00:40  * jjjohnnygulps
18:00:54  <pfraze_>yeah, so if I have the hash for a message, there's not yet an automated way to find the message - you might check your local cache or your peers, but those are simplified strategies with no guarantee - yeah ?
18:01:54  <domanic>pfraze_, correct
18:02:14  <pfraze_>so the idea is to focus more on feed topology than on global content
18:02:24  <domanic>yes exactly
18:02:40  <domanic>generally, if you have the hash of a thing, you probably have the thing too
18:03:14  <domanic>If I post a photo, via a hash, but I don't have the photo that is silly
18:03:30  <jjjohnny>are you guys talking about something like this switching from binary to * https://www.npmjs.org/package/jmao
18:03:45  <domanic>and if I use a photos app, then I should replicate the photos of the other people I follow.
18:04:11  * owen1quit (Ping timeout: 264 seconds)
18:04:21  <pfraze_>yeah. So that gives a little more control over the network performance - unlike, say, bittorrent, where the protocol lends toward chattiness with the global network, yeah?
18:05:17  <domanic>jjjohnny, what is your format like? is it just binary json?
18:05:43  <pfraze_>more generally, I suppose - why feed topology instead of global content?
18:06:05  <domanic>pfraze_, yeah exactly. Also, you can always share a magnet link and then replacate those files over bittorrent
18:06:25  <pfraze_>ah, mhmm
18:06:42  <domanic>pfraze_, because global content has issues with trust
18:07:03  <domanic>there is no way to tell wether you should replicate a given object
18:07:26  <pfraze_>and here you can focus on peer trust
18:08:09  <domanic>yes, defer the problem to the humans in a way that they probably won't even notice
18:08:22  * knownasilyajoined
18:08:26  <jjjohnny>domanic: it converts all things to arraybuffers, which are basically octets
18:09:10  <pfraze_>so ssb is really hiding away the network properties in general, making the entire system about relationships
18:09:12  <domanic>jjjohnny, I get that - but how does it represent those things? does it have cury braces?
18:09:22  <domanic>pfraze_, yes!
18:10:05  <jjjohnny>it does nothing to minimize the json
18:11:08  <domanic>jjjohnny, so it's just binary json that goes directly into an array buffer instead of a string?
18:11:53  <jjjohnny>yeah it does whatever Buffer does for strings tbh
18:12:28  <jjjohnny>but rilly all you are saying is minimizing json somehow, right?
18:12:45  <jjjohnny>or inventing a new thing
18:13:49  <domanic>I'm trying to figure that out
18:14:11  <domanic>like, you can't put binary data inside json without encoding it as something else and escaping it
18:14:19  <domanic>(base64 for example)
18:14:28  <jjjohnny>and actually the metadata for jmao buffers is base64 encoded JSON with a non base64 encoded semi-colon terminator "/
18:15:03  <jjjohnny>domanic: i dont want to put binary data in json
18:15:10  <domanic>you need a description of your spec
18:15:11  <terinjokes>andreypopp: i ended up just buying the ebook :)
18:15:17  <pfraze_>domanic, one thing about variable encoding and encryption is, that will affect message size. Will all encodings need to fit the size limit?
18:15:17  <domanic>jjjohnny, you will one day!
18:15:24  <jjjohnny>hahaha
18:15:34  <andreypopp>terinjokes: also join #purescript!
18:15:37  <jjjohnny>its already happening!
18:15:59  <domanic>pfraze_, well, if you fork the project you can change the message size limit
18:15:59  <jjjohnny>strings encoding binary!
18:16:25  <domanic>but I think you should pick something sensible
18:16:32  <pfraze_>ok, so that's just a network efficiency thing
18:16:37  * AvianFluquit (Read error: Connection reset by peer)
18:17:00  <domanic>pfraze_, yeah - it's so that performance is predictable
18:17:08  <pfraze_>ok
18:17:43  <domanic>you have to replicate all the messages for the protocol to work, but you should only replicate the messages if you are interested in that message type.
18:17:47  <jjjohnny>i recommend you set your size limits to change accorirdning to a determined hertz
18:18:10  <pfraze_>that seems contradictory
18:18:11  <jjjohnny>possibly a polyrhythm
18:19:01  <domanic>pfraze_, it depends on the type of object
18:19:32  <domanic>like, "hey, the new image of my linux distribution is available" [link to image]
18:19:36  * AvianPhonejoined
18:19:44  <domanic>that might be several gigabytes
18:20:04  <domanic>so you don't necessarily want to download that automatically
18:20:26  <jjjohnny>yeah you dont want to encode your OS as a bitmap
18:20:39  <domanic>if it's like: [cute cat photo] I probably want that, unless I am a grumpy old bastard
18:20:40  <pfraze_>jjjohnny with the jokes
18:20:57  <pfraze_>domanic, so for verification to work, you need all messages in a feed. No gaps are possible, so to deal with size you link out
18:21:13  <domanic>jjjohnny, I'd use jmao for my linux dist.
18:21:27  <domanic>pfraze_, yes exactly!
18:21:43  <pfraze_>so that means selective replication (I only want this going to peer X) would need a unique feed for peer X, yeah?
18:21:44  <domanic>this also means it's impossible for nodes to drop messages
18:22:11  <domanic>pfraze_, yeah. this is more of a broadcast network
18:22:24  <domanic>but you could use it to bootstrap 1:1 connections
18:22:44  * owen1joined
18:24:06  <pfraze_>yeah, you could create transactional keypairs (and thus feeds) if you wanted, right? Ephemeral pairs bootstrapped from your identity keypair
18:24:21  * ceejbotquit (Remote host closed the connection)
18:24:34  <jjjohnny>domanic: i'd jus like to note that you can do that, and trust it will work, cuz i wrote tests: https://github.com/NHQ/jmao/blob/master/test.js
18:24:50  * peutetrejoined
18:25:12  <pfraze_>jjjohnny, arbitrarily large sizes proven: cs(ds(Infinity))
18:25:37  <domanic>pfraze_, sure. or you could also use a ephemeral (non persisted) message to exchange webrtc introductions, and then make a direct connection, that is still authed with your keys
18:26:10  <jjjohnny>pfraze_: haha well it goes down the pipe as larger than "infiniti".length but smaller than Infiniti
18:26:39  <pfraze_>domanic, an ephemeral message would be something outside ssb, right?
18:27:16  <domanic>cantor: invented larger than infinity, calls it "alphef null", jjjohnny: invents smaller than INFINITY. calls it "lower case infinity"
18:27:47  <domanic>pfraze_, this was an idea that came up in the first talk I gave
18:27:57  <domanic> / discussion
18:27:58  <jjjohnny>quotes included
18:28:30  <domanic>"dereferenced \"lower case infinity\" infinity"
18:29:03  * naneauquit (Quit: Part.)
18:29:22  <domanic>pfraze_, so you have the twitter messages that are really just about meeting at some resturant - these do not need to be persisted, yet people are not worried about sharing them with everyone
18:29:37  <pfraze_>yeah
18:29:41  <jjjohnny>useful in cases when you encounter what I call hipster hyperbole, when something is like a billion times better, or the best thing ever
18:30:05  <domanic>oh man
18:30:19  <domanic>that is the best new phrase I learn today
18:30:32  <domanic>#ThatAintHyperbole
18:31:32  * jjjohnnydoes yoga champion pose
18:31:33  * kevinswiberjoined
18:32:04  <domanic>pfraze_, so - this isn't implemented yet - but I'm thinking an ephemeral message has a timestamp, and a signature, but is kept in memory, and discarded after a few hours
18:32:23  <pfraze_>domanic, yeah, no prev then
18:32:54  <domanic>it could still be replicated along with the regular messages though.
18:33:07  <domanic>yeah, maybe just a monotonically increasing timestamp
18:33:52  <domanic>and these would still be replicated in order, but they would just be hitchhiking on the replaction protocol
18:34:24  <pfraze_>yeah, but they lose the total order guarantee
18:34:37  <pfraze_>don't they? The blockchain enforces that
18:35:12  <pfraze_>no, they lose the no-replay guarantee
18:35:43  <domanic>well, they loose the eventual delivery guarantee
18:35:52  * ryan_stevensquit (Quit: Leaving.)
18:36:08  <pfraze_>right, there's no way to indicate the message was dropped
18:36:14  <domanic>nodes wont aknowledge that more than once
18:36:21  <domanic>*that message
18:37:13  <domanic>but some nodes won't might not get it. you basically need to be both online at approximately the same time.
18:37:26  <pfraze_>yeah
18:37:37  <pfraze_>they would be replayable too, right?
18:37:52  <pfraze_>or does the signature include the timestamp?
18:38:17  <domanic>pfraze_, signature includes everything but the signature ;)
18:38:30  <pfraze_>ok
18:42:50  * nfroidurejoined
18:54:06  * domanicquit (Ping timeout: 260 seconds)
19:00:18  * pfraze_quit (Ping timeout: 255 seconds)
19:13:12  * ryan_stevensjoined
19:15:31  * taterbasejoined
19:22:30  * pfrazejoined
19:32:49  <ogd>pretty good doc http://www.youtube.com/watch?v=6RX1fMWkims
19:39:25  * anvakajoined
19:43:32  * anvakaquit (Ping timeout: 240 seconds)
19:45:31  * ceejbotjoined
19:48:17  * tilgovijoined
20:11:52  * kevinswiberquit (Remote host closed the connection)
20:12:26  * kevinswiberjoined
20:13:52  * stagasquit (Ping timeout: 240 seconds)
20:15:34  * peutetrequit (Quit: peutetre)
20:16:44  * kevinswiberquit (Ping timeout: 250 seconds)
20:28:20  * AvianPhonequit (Ping timeout: 240 seconds)
20:32:29  * phatedquit (Read error: Connection reset by peer)
20:32:43  * phatedjoined
20:35:33  * peutetrejoined
21:19:07  * peutetrequit (Quit: peutetre)
21:20:38  * AvianFlujoined
21:33:01  * therealkoopaquit (Remote host closed the connection)
21:38:18  * _contrahaxchanged nick to contrahax
21:38:58  * therealkoopajoined
21:40:50  * brianloveswordsquit (Quit: Computer has gone to sleep.)
21:43:57  * therealkoopaquit (Ping timeout: 245 seconds)
21:45:57  * brianloveswordsjoined
21:46:04  * therealkoopajoined
21:49:02  * addisonjjoined
21:50:23  * therealkoopaquit (Ping timeout: 255 seconds)
21:55:16  * therealkoopajoined
21:58:45  * AvianFluquit (Read error: Connection reset by peer)
22:00:22  * pfrazequit (Ping timeout: 240 seconds)
22:09:19  * sorensen_joined
22:09:23  * sorensen_quit (Remote host closed the connection)
22:11:26  * contrahaxquit (Read error: Connection reset by peer)
22:11:52  * marcello3dquit (Ping timeout: 245 seconds)
22:12:03  * contrahaxjoined
22:13:57  * substackquit (Ping timeout: 245 seconds)
22:14:54  * substackjoined
22:17:09  * marcello3djoined
22:21:41  * kevinswiberjoined
22:23:03  * kevinswiberquit (Remote host closed the connection)
22:25:33  * brianloveswordsquit (Quit: Computer has gone to sleep.)
22:27:11  * kenperkinsquit (Quit: Computer has gone to sleep.)
22:28:00  * brianloveswordsjoined
22:33:36  * therealkoopaquit (Remote host closed the connection)
23:01:06  * owen1_joined
23:15:45  * AvianPhonejoined
23:23:19  <jjjohnny>JOHNNY'S LAW STATES THAT AMONG COMPETING SOLUTIONS THE ONE WITH THE FEWEST PANTS SHOULD BE SELECTED
23:23:19  <LOUDBOT>TIME TO GO GET ARRESTED
23:34:10  * yorickquit (Read error: Connection reset by peer)
23:43:01  * knownasilyaquit (Quit: Connection closed for inactivity)
23:46:40  * therealkoopajoined
23:53:04  * kesslerjoined