00:00:09  * ircretaryjoined
00:23:38  * nickleeflyjoined
00:24:28  * phatedquit (Remote host closed the connection)
01:26:17  * pfrazequit (Remote host closed the connection)
02:17:54  * Guest80443changed nick to bengl
03:44:19  * nickleeflyquit (Quit: Connection closed for inactivity)
04:15:37  * knownasilyaquit (Quit: Connection closed for inactivity)
06:22:57  * phatedjoined
06:58:23  * phatedquit (Remote host closed the connection)
07:19:27  * fotoveritequit (Quit: fotoverite)
07:30:18  * fotoveritejoined
07:44:31  * fotoveritequit (Quit: fotoverite)
07:55:00  * peutetrejoined
07:55:07  * drptbljoined
08:21:34  * phatedjoined
08:30:11  * sethvincentquit (Ping timeout: 240 seconds)
09:00:27  * djcoinjoined
09:08:44  * drptblquit (Quit: My MAC has gone to sleep. zZz..)
09:27:32  * peutetrequit (Quit: ...)
09:28:37  * phatedquit (Remote host closed the connection)
09:35:19  * drptbljoined
09:44:22  <jjjohnny_>yay, the kid i gave a linux box to along with instructions and coordinates to irc, has attempted communication via direct query
09:44:47  <jjjohnny_>i need an irc answering machine
09:49:30  <jjjohnny_>kid is a quite possibly the perfect heir to voxel.js
09:52:51  <jjjohnny_>altho the exact computer I gave him also was mine during voxels early days, and it does not have great support for that technology
09:54:53  <jjjohnny_>which was a hand-me-down from a lover's elderly mother and neurologist
09:58:30  <jjjohnny_>ogd: i have your old mac, which hard drive died; with a new HD (and RAM?), kid could revamp it, and have better hardware for voxeling :D
10:04:41  * peutetrejoined
10:24:55  * AndreasMadsenjoined
10:37:18  * contrahaxquit (Quit: Sleeping)
10:41:17  * contrahaxjoined
11:03:37  * AndreasMadsenquit
11:14:36  * yorickquit (Remote host closed the connection)
11:27:10  * yorickjoined
12:23:28  * djcoinquit (Quit: WeeChat 1.0.1)
12:41:52  * pfrazejoined
13:07:47  <mikolalysenko>mafintosh: ogd experimenting with a weird idea: merkle tries
13:08:06  <mikolalysenko>the goal is to get replication for arbitrary functional data structures
13:08:56  <mafintosh>mikolalysenko: sounds interesting
13:09:21  <mikolalysenko>so the idea is you would use this to replicate a merkle dag from one host to another
13:09:42  <mikolalysenko>but you wouldn't have all this weird path traversal business
13:10:22  <mafintosh>mikolalysenko: i implemented most of the path stuff btw here if you're interested, https://github.com/mafintosh/dat-graph/blob/master/index.js
13:10:41  <mafintosh>mikolalysenko: ended up just calling them logs to avoid too much confusion
13:11:21  <mafintosh>mikolalysenko: how would the merkle trie work? similar to what you talked about the other day?
13:11:41  <mikolalysenko>the idea is to just store all of the hashes in a trie
13:11:49  <mikolalysenko>then merkleize that trie
13:12:32  <mikolalysenko>then you can diff two sets of hashes using the same idea as merkle trees
13:14:11  <mikolalysenko>you can do dynamic operations on this trie too, like add/remove hashes if you want
13:14:56  <mikolalysenko>and pushing updates from a server trie to a replica would amount to the same thing as a merkle tree
13:17:16  <mafintosh>mikolalysenko: nice - interested in how well that ends up working :)
13:18:10  <mikolalysenko>working on turning it into a blog post
13:19:38  * peutetrequit (Quit: ...)
13:21:00  * peutetrejoined
13:21:19  * pfrazequit (Read error: Connection reset by peer)
13:21:56  * pfrazejoined
13:36:22  * contrahaxquit (Quit: Sleeping)
13:37:53  <mafintosh>mikolalysenko: would this need |diff| roundtrips to send the actual diff?
13:38:48  <mikolalysenko>mafintosh: it would send |diff| messages in (length of hash) rtts
13:39:05  <mikolalysenko>or length of hash in bytes rtts
13:40:07  <mikolalysenko>could probably shave a log factor of the rtts using van emde boas or some fusion trees
13:40:24  <mikolalysenko>gah what a bad sentence
13:40:27  <mikolalysenko>I need my coffee
13:40:30  <mafintosh>hehe
13:40:48  <mikolalysenko>but there are some dumb integer data structure tricks (tm) that you could use here
13:41:17  <mikolalysenko>you could obviously batch some of these messages to speed things up
13:41:41  <mafintosh>yea makes sense - this all sounds very interesting
13:42:26  <mikolalysenko>haven't thought carefully about those optimizations yet, but the main concept there is to do something like patricia tries to compress the trie
13:42:54  <mikolalysenko>but first order of business is just do the simple thing and see if it works
13:43:37  * pfrazequit (Remote host closed the connection)
14:05:04  * pfrazejoined
14:05:04  * pfrazequit (Read error: Connection reset by peer)
14:06:31  * pfrazejoined
14:12:26  * eyeforeigneyejoined
14:23:41  * peutetrequit (Quit: ...)
14:29:54  * peutetrejoined
14:34:48  * niftylettucejoined
14:45:12  * eyeforeigneyequit (Ping timeout: 264 seconds)
14:49:51  * peutetrequit (Quit: ...)
14:49:58  * simalexan_quit (Ping timeout: 265 seconds)
14:50:45  * simalexanjoined
14:50:48  * peutetrejoined
15:00:28  * fotoveritejoined
15:41:01  * AndreasMadsenjoined
15:42:57  * peutetrequit (Quit: ...)
15:46:07  * peutetrejoined
15:50:54  * drptblquit (Quit: My MAC has gone to sleep. zZz..)
16:11:45  <mafintosh>mikolalysenko: using a trie you'd end up receiving the hashes you're missing sorted by the hash value right?
16:12:19  <mikolalysenko>depends on how you traverse the trie
16:12:42  <mafintosh>mikolalysenko: if you traverse it left to right i guess
16:12:59  <mikolalysenko>sure
16:23:52  <mafintosh>mikolalysenko: if i wanted to get the oldest dag nodes first would i then prefix the value i insert in the trie with a total number of children that dag node has?
16:25:13  <mikolalysenko>mafintosh: a simpler way to do it would be to tag each object with a creation time, then once you've got a diff sort by creation time
16:28:04  <mafintosh>mikolalysenko: then i'd have to store the diff on disk though since it might be pretty big
16:29:05  <mafintosh>vs streaming it back as it is discovered
16:29:56  <mikolalysenko>I suppose
16:30:25  <mikolalysenko>though at that point, you might as well just store the whole thing in a bst keyed on [time, hash]
16:30:38  <mikolalysenko>assuming that you can assume time is a reasonable thing to query
16:30:41  * AndreasMadsenquit (Remote host closed the connection)
16:31:20  <mikolalysenko>what you could maybe do is for each node of the trie, store the time of the earliest commit
16:31:46  <mikolalysenko>and then when you are traversing the trie, store the nodes to visit in a priority queue and expand those which are created sooner first
16:32:55  <mikolalysenko>it is kind of a hack though, since you can't really trust wall clocks for this stuff
16:37:49  * AndreasMadsenjoined
16:50:11  * peutetrequit (Quit: ...)
16:52:33  <gozala>Raynos: & friends can anyone point me to the code that deals with mercuries event system ?
16:52:59  <mafintosh>mikolalysenko: by oldest i meant i'd prefer to get all links of node before getting the node itself. I think thats called a topological sort in graph terms
16:53:33  <mikolalysenko>mafintosh: one trouble with that definition is that it isn't a total order
16:53:49  <mikolalysenko>but you could just use a counter to get the same effect
16:54:56  <mafintosh>mikolalysenko: but then i'd had to sync that counter as well across peers i guess
16:55:11  <mikolalysenko>or you can just have each peer maintain their own counter
16:55:27  <mikolalysenko>when you copy in nodes just increment it
16:55:50  <mikolalysenko>no need for it to be global, you just need to make sure you send nodes in topological order
16:55:52  <gozala>Raynos: I guess I was looking for this https://github.com/Matt-Esch/virtual-dom/blob/master/virtual-hyperscript/hooks/ev-hook.js
16:56:03  <mikolalysenko>and since nodes are created in topological order, a counter is sufficient
16:56:35  <mikolalysenko>each peer can use a separate counter with no problems, and you'll always get new nodes from that peer in topo order no sweat
16:57:58  <mafintosh>mikolalysenko: yea i know but then i couldn't use that order when building the bst since order wasn't guaranteed to be the same
16:58:09  * sethvincentjoined
16:58:25  <gozala>Raynos: is there any capture phase support in EvHooks ?
16:58:43  <mafintosh>mikolalysenko: but i might the able to get around that ordering requirement and just use your trie approach
16:58:51  <mikolalysenko>sure
16:59:01  <mikolalysenko>the trie will just send all the missing nodes over in whatever order you like
16:59:24  <mikolalysenko>but you could prioritize it to send more recent things using this counter trick
16:59:55  <mafintosh>mikolalysenko: for sure. i'm actually already using the counter trick
17:00:01  <mikolalysenko>or it just synchronizes the set of objects, without much thought to the order in which they get sent
17:11:39  * niftylettucequit (Quit: Connection closed for inactivity)
17:39:07  * knownasilyajoined
17:49:34  * peutetrejoined
18:05:18  * peutetrequit (Quit: ...)
18:34:01  * phatedjoined
18:52:21  * peutetrejoined
19:09:58  * AndreasMadsenquit
19:13:33  * peutetrequit (Quit: ...)
19:50:37  * Guest14553changed nick to JSON_voorhees
19:51:06  * JSON_voorheeschanged nick to Guest87244
19:53:25  * phatedquit (Remote host closed the connection)
19:59:12  * niftylettucejoined
20:02:23  * contrahaxjoined
20:04:05  * contrahaxquit (Read error: Connection reset by peer)
20:04:42  * contrahaxjoined
20:07:01  * shamajoined
20:07:55  * peutetrejoined
20:09:49  * peutetrequit (Client Quit)
20:24:40  * phatedjoined
20:32:27  * sethvincentquit (Ping timeout: 240 seconds)
20:51:52  * eyeforeigneyejoined
20:53:18  <wa7son>Auchenberg and I just published the module that will help you be more productive: https://github.com/auchenberg/volkswagen
21:06:28  <jfhbrook>wa7son: you saw the php version yeah?
21:07:21  <wa7son>jfhbrook: actually I didn’t. I just had the idea this morning, but Auchenberg saw it and we both thought it was an awesome idea ;)
21:10:57  <jfhbrook>wa7son: https://twitter.com/carlfish/status/651549999172423680 -heh-
21:11:50  <wa7son>jfhbrook: haha… Now I know where auchenberg got the project title from :)
21:12:31  <wa7son>jfhbrook: we just got to talk about it over lunch and he said someone did a similar php project :)
21:12:57  <jfhbrook>aha, very nice
21:33:27  * eyeforeigneyequit (Ping timeout: 272 seconds)
21:33:55  * eyeforeigneyejoined
22:43:35  * eyeforeigneyequit (Read error: Connection reset by peer)
23:05:59  * sethvincentjoined
23:07:43  * pfrazequit (Remote host closed the connection)
23:08:25  * pfrazejoined
23:12:40  * pfrazequit (Ping timeout: 240 seconds)