00:32:51  * joshwnj`joined
00:34:31  * joshwnjquit (Ping timeout: 252 seconds)
00:40:55  * joshwnj`changed nick to joshwnj
00:43:03  * idletomquit (Ping timeout: 245 seconds)
00:43:34  <substack>isaacs: putting in a thing about dismantling ecma at the end of my jsconf talk >:D
00:43:55  <substack>because it doesn't seem that ecma is taking its own self-destruction seriously
00:46:12  * timoxleyquit (Quit: Computer has gone to sleep.)
00:46:40  <substack>unlike node which I am much more confident will turn out like awk and be available everywhere and just work forever
00:53:45  <Raynos>substack: opressor is sweet
00:53:51  <Raynos>but TJ was laughing at it :P
00:54:07  <Raynos>whats happening in berlin?
00:54:16  <substack>why was tj laughing?
00:54:20  <Raynos>isaacs: is readable-stream the new stream
00:55:04  <Raynos>substack: https://gist.github.com/9decb2895d991010ae71
00:55:06  * timoxleyjoined
00:55:58  <substack>tj doesn't get streams
00:56:14  <substack>tj thinks that functionality should be applied globally everywhere
00:56:38  <substack>as evidenced by how middleware works
00:57:07  <substack>the thing is if you're writing http endpoints with streams then you can just pipe to this and it works
00:57:25  <substack>if you're tj you're writing hundreds of endpoints in the same gigantic clusterfuck of an app
00:57:33  <substack>if you're me you have like 3 or 4 endpoints
00:57:38  <maxogden>SUBSTACKIANS VS VISIONMEDIANTS ROUND 2
00:57:38  <LOUDBOT>1 BILLION GB?
00:57:44  <substack>YES INDEED
00:57:44  <LOUDBOT>HOW CAN I WATCH AND THE DORM ROOMS SOOOO DO NOT TOUCH WEINERS PREFERABLY WITH A NUMBR PLZ
00:58:09  <maxogden>haha o/
01:00:38  <Raynos>dominictarr, substack, isaacs: Should we start porting our existing streaming modules to use readable-stream ( https://github.com/isaacs/readable-stream ) to test the new stream API
01:00:57  <Raynos>substack: http is a pain in the ass because it has a shit ton of meta data
01:01:06  <Raynos>you cant just req.pipe(thing).pipe(res0
01:02:18  <Raynos>substack: true It didn't even register that having to do .pipe(opressor(req).pipe(res) was annoying
01:02:27  <Raynos>because the apps I build have a couple of end points
01:04:52  <substack>which is a much better way to build apps
01:05:18  <substack>Raynos: so I'm thinking we need a nice module for handling patching the metadata through to the request
01:05:30  <Raynos>yeah thats going to be hard
01:05:39  <Raynos>I want more examples of how to bubble all errors back through domains
01:05:44  <substack>I don't think so, oppressor already does it
01:06:17  <Raynos>What about content-types
01:06:27  <Raynos>I guess what would be nice
01:06:39  <substack>the stream just needs to implement the http response api so it can pass the metadata down the chain until a real response object can get the data
01:06:58  <substack>filed already can do content-types
01:07:15  <substack>and it pipes through oppressor through to the res endpoint
01:07:25  * wiwilliaquit (Ping timeout: 248 seconds)
01:07:42  <Raynos>substack: https://gist.github.com/3505804
01:08:24  <substack>what would that do
01:08:41  <substack>look at accept headers?
01:08:42  <Raynos>it allows you to switch
01:08:54  <Raynos>yeah look at accept headers
01:09:01  <Raynos>https://github.com/Raynos/routil-contentTypes#example
01:09:09  <Raynos>Its the same as contentTypes but in stream format
01:09:33  <Raynos>The easiest thing to do is just do stream.req = req; stream.res = res
01:09:39  <Raynos>and then just get this.req and this.res in the streams :D
01:09:46  <Raynos>hacky hacky hack
01:10:24  <substack>but each stream only knows about its immediate neighbors
01:11:09  <Raynos>yeah
01:11:12  <Raynos>the easier thing to do
01:11:15  <Raynos>is screw HTTP
01:11:19  <Raynos>and build a streaming WS / shoe app
01:11:35  <Raynos>Use mux-demux meta properties as URIs and route on those
01:12:00  <substack>oppressor is useful for compressing the bundle in-place
01:12:05  <Raynos>substack: you should write a shoe client for https://github.com/sockjs/sockjs-client-node
01:12:14  <substack>and filed can do that 304 last-modifieds
01:18:47  * idletomjoined
01:26:40  * timoxleyquit (Quit: Computer has gone to sleep.)
01:29:48  * timoxleyjoined
01:42:18  * ryan_stevensquit (Quit: Leaving.)
01:55:19  <Raynos>dominictarr: how are scuttlebut and crdt related?
01:57:41  <substack>is there a map sync stream module on npm yet?
01:57:58  <substack>I'll just use event-stream for now
01:58:15  * thatguydanjoined
01:58:32  <Raynos>substack: rip it out of event stream and it put it on npm
01:58:39  <Raynos>then make a PR on event-stream
02:08:59  * ryan_stevensjoined
02:16:33  * timoxleyquit (Quit: Computer has gone to sleep.)
02:27:33  * timoxleyjoined
02:53:30  * timoxleyquit (Quit: Computer has gone to sleep.)
02:55:35  * timoxleyjoined
02:58:30  * ryan_stevensquit (Quit: Leaving.)
03:02:21  <Raynos>substack: https://github.com/Raynos/splice-stream#movable-list
03:03:20  <substack>Raynos: this is just the response passing part of oppressor https://github.com/substack/response-stream
03:03:31  <Raynos>sweet!
03:03:45  <Raynos>Updating element-list to move dom nodes around
03:04:08  <Raynos>cap stream :D
03:06:42  <substack>now look https://github.com/substack/oppressor/blob/master/index.js
03:06:45  <substack>much simpler
03:09:29  <Raynos>oh nice!
03:10:22  <Raynos>substack: what do you use for weak relations
03:10:29  <Raynos>Like the item <-> element relation in element-list
03:10:50  <Raynos>oh never mind
03:10:52  <Raynos>i have indexes :D
03:10:54  <Raynos>hells yes
03:19:11  * timoxleyquit (Quit: Computer has gone to sleep.)
03:22:31  <substack>good stuff
03:24:52  * timoxleyjoined
03:45:16  * timoxleyquit (Quit: Computer has gone to sleep.)
05:05:15  * thatguydanquit (Quit: thatguydan)
05:05:26  * mikealjoined
05:13:13  * idletomquit (Ping timeout: 244 seconds)
05:13:33  <substack>mikeal: http://github.com/substack/oppressor
05:13:45  <substack>also https://github.com/mikeal/filed/pull/25
05:14:02  <substack>also https://github.com/substack/response-stream
05:21:59  * thatguydanjoined
05:47:58  * ryan_stevensjoined
06:18:22  * joshwnjquit (Ping timeout: 265 seconds)
06:19:41  * joshwnjjoined
06:34:58  <Raynos>substack: https://github.com/Raynos/element-list now with in place element movement
06:35:14  <substack>rawk
06:36:10  <Raynos>substack: http://raynos.github.com/element-list/example/simple/static/index.html
06:36:13  <Raynos>draggable demo
06:36:42  <substack>handled in splice-stream's MovableList I see
06:36:46  <Raynos>shit logic is broken
06:36:52  <Raynos>cant put stuff on the end >_<
06:37:17  <Raynos>debuxing
06:37:27  <substack>which part is draggable?
06:38:29  <Raynos>the list items
06:38:32  <Raynos>add a bunch
06:38:36  <Raynos>set values in fields
06:38:43  <Raynos>drag & drop them into other bits
06:38:57  <Raynos>its bloody finicky
06:39:06  <substack>oh I get it, only works when you properly drop on top of another element
06:39:12  <Raynos>dragging down breaks
06:39:15  <Raynos>dragging up works
06:39:20  <Raynos>logic bug
06:39:20  <substack>would be sweet if it followed the cursor around as you drag
06:39:43  <substack>and cancelled in non-droppable drop spots
06:40:01  <Raynos>yeah
06:40:04  <Raynos>it needs a bunch of CSS :P
06:43:35  <Raynos>stupid off by one error
06:44:39  <Raynos>oh no wait it is correctly behavioured
06:44:46  <Raynos>it will slot into the slot above the one you drop it
06:44:52  <Raynos>its just impossible to drop it into the last slot
06:46:42  <Raynos>im calling it a night :P
07:12:26  * ryan_stevensquit (Quit: Leaving.)
08:02:35  <guybrush>substack: multiple browserify-bundles prove very usefull with webworkers
08:03:34  <guybrush>import() isnt even needed
08:08:28  * joshwnj`joined
08:09:49  * joshwnjquit (Ping timeout: 248 seconds)
08:14:06  * simcop2387quit (Ping timeout: 240 seconds)
08:14:41  * perlbotquit (Ping timeout: 260 seconds)
08:19:49  * joshwnj`quit (Ping timeout: 252 seconds)
08:20:30  * perlbotjoined
08:21:30  * simcop2387joined
08:21:56  * simcop2387quit (Excess Flood)
08:27:10  * perlbotquit (Ping timeout: 252 seconds)
08:28:30  * perlbotjoined
08:29:30  * simcop2387joined
08:42:49  * simcop2387quit (Excess Flood)
08:45:31  * simcop2387joined
08:59:29  * simcop2387quit (Ping timeout: 244 seconds)
09:00:26  * perlbotquit (Ping timeout: 264 seconds)
09:02:30  * perlbotjoined
09:03:51  <dominictarr>Raynos, crdt doesn't depend on scuttlebutt but I will refactor it so that it does.
09:04:00  * simcop2387joined
09:07:11  * simcop2387quit (Excess Flood)
09:13:30  * simcop2387joined
09:19:46  * perlbotquit (Ping timeout: 240 seconds)
09:20:26  * simcop2387quit (Ping timeout: 276 seconds)
09:22:30  * simcop2387joined
09:23:00  * perlbotjoined
09:26:49  * simcop2387quit (Excess Flood)
09:27:30  * simcop2387joined
09:28:19  * thatguydanquit (Ping timeout: 265 seconds)
09:33:26  * perlbotquit (Ping timeout: 264 seconds)
09:33:38  * simcop2387quit (Ping timeout: 265 seconds)
09:37:30  * perlbotjoined
09:37:30  * simcop2387joined
09:40:25  * simcop2387quit (Excess Flood)
09:43:30  * simcop2387joined
10:00:24  * thatguydanjoined
10:21:55  * dominictarrquit (Remote host closed the connection)
13:18:52  * thatguydanquit (Quit: thatguydan)
14:17:59  * mikealquit (Quit: Leaving.)
14:49:07  * idletomjoined
15:18:33  * mikealjoined
15:46:59  * ryan_stevensjoined
15:47:20  * ryan_stevensquit (Client Quit)
16:12:46  * idletomquit (Ping timeout: 246 seconds)
16:14:51  * ryan_stevensjoined
16:14:56  * mikealquit (Quit: Leaving.)
16:28:26  * devaholicquit (Read error: Connection reset by peer)
16:45:04  * dominictarrjoined
17:48:00  * _sorensenjoined
17:54:41  * mikealjoined
18:19:59  * mikealquit (Quit: Leaving.)
18:21:19  <Raynos>substack: https://github.com/substack/node-deputy/pull/5
18:21:39  <Raynos>dominictarr: so there is duplicate logic for "synchronizing intelligently" between scuttlebut and crdt ?
18:21:48  <dominictarr>correct.
18:22:14  <dominictarr>crdt should become a subclass of Scuttlebutt.
18:22:32  <dominictarr>I've learnt a lot since writing crdt
18:22:59  <dominictarr>that was before I wrote mux-demux, so I tried to jam too much into one lib.
18:23:27  <Raynos>dominictarr: cool :). Should I use scuttlebutt instead of crdt?
18:23:57  <dominictarr>but now (mux'd) streams are more light weight, so just have multiple docs rather than everything in one doc.
18:24:05  <dominictarr>Raynos, depends.
18:24:22  <dominictarr>crdt has the high level features like lists.
18:24:51  <dominictarr>Scuttlebutt/model, for example, is just a plain observable/key-value
18:25:23  <dominictarr>(I'm gonna refactor that out... hmm, should do that next)
18:25:32  <dominictarr>(just need to think of a name)
18:33:40  <dominictarr>what should the name be?
18:34:11  <dominictarr>dmodel - like dnode?
18:41:54  * mikealjoined
18:44:54  * ikpart
19:26:49  * mikealquit (Quit: Leaving.)
19:34:41  * mikealjoined
19:35:32  * timoxleyjoined
19:47:54  * timoxleyquit (Quit: Computer has gone to sleep.)
20:18:13  * idletomjoined
20:24:10  * mikealquit (Quit: Leaving.)
20:27:47  <Raynos>dominictarr: I really like the high level features like lists
20:28:02  <Raynos>The things that I like about crdt is that it has a Doc which is a list of models that can be sychronized properly
20:28:39  <dominictarr>absolutely. lists are a key component of many apps.
20:28:39  <Raynos>I like being able to edit individual models in the Doc
20:28:51  <Raynos>and I like being able to select / query for a subset of models in a Doc
20:29:06  <Raynos>I see a Doc as a mongo collection, a Set as a mongo find query and an individual row as a thing in the collection
20:29:16  <dominictarr>yeah, that is something i'd like to expand too.
20:29:39  <dominictarr>maybe having functions as the query,
20:29:58  <Raynos>dominictarr: I would recommend you look at Delta ( https://github.com/Raynos/delta-stream/blob/master/interfaces/delta.js#L7 ) for just the observable/key-value aspect
20:30:05  <dominictarr>or having some sort of join thing.
20:30:06  <Raynos>if it's not suitable explain why and I'll try to make it suitable
20:30:23  <dominictarr>checkout scuttlebutt/model
20:30:39  <Raynos>is scuttlebutt/model like crdt/row ?
20:31:01  <dominictarr>yeah, pretty much.
20:31:16  <dominictarr>it's just a streaming replicator with only key-value pairs.
20:31:53  <dominictarr>actually, crdt is just a streaming replicator with key value pairs -- except the values merge rather than overwriting
20:31:57  <Raynos>how do I have crdt/doc with scuttlebutt?
20:32:09  <Raynos>dominictarr: the merging is very important.
20:32:22  <Raynos>having one level of merging is cool, having infinite level of merging is badass
20:32:33  <dominictarr>scuttlebutt/README documents what a sub class needs,
20:32:47  <dominictarr>just a histroy() function -- which crdt has, and
20:33:19  <dominictarr>and applyUpdate function, which Doc#update is pretty much, or pretty close to.
20:33:43  <dominictarr>might even be able to refactor in scuttlebutt and keep most of the tests passing.
20:33:53  <dominictarr>fingers crossed.
20:35:15  <Raynos>dominictarr: what's needed for infinite merging?
20:35:43  <dominictarr>what is infinite merging?
20:36:05  <dominictarr>do you mean merging the whole historyL
20:36:06  <dominictarr>?
20:39:38  <Raynos>dominictarr: I mean diffs like { "foo.bar.bar": baz } means state.foo.bar.bar = "baz
20:39:45  <Raynos>instead of state.foo = { bar: { bar: "baz" } }
20:40:13  <Raynos>merging arbitary subsets of a value rather then entire values
20:40:24  <dominictarr>right. that is way more complex.
20:40:40  <dominictarr>I intensionally didn't support that, to simplify crdt.
20:41:48  <Raynos>dominictarr: is that something you should just not do? or is it just hard to write
20:42:02  <Raynos>should I favour having lots of crdt docs and lots of crdt rows instead of nested objects?
20:42:21  <dominictarr>well, I don't really know yet.
20:42:25  <Raynos>What are the trade offs
20:42:36  <dominictarr>if you can make it a separate Row, then do that.
20:43:18  <Raynos>dominictarr: for scuttlebut to be useful I need a list of models that is synchronized as a single stream. I can replicate the crdt.Set functionality myself
20:43:26  <dominictarr>maybe we add someway to have a "foreign key" to reference the other Row.
20:43:51  <Raynos>dominictarr: that's what I was actually thinking. I had this notion of foreign keys & joins in my head
20:44:18  <dominictarr>oh yeah, that should be easy to write with scuttlebutt, as I said there are only two functions a subclass needs to implement.
20:44:28  <dominictarr>Raynos, exactly.
20:44:36  <dominictarr>that is why it's called a row.
20:45:14  <dominictarr>I was writing a different version, with deep merges, but it started getting really complicated.
20:45:38  <dominictarr>then a little voice popped into my head "hey, this is just like a little SQL database"
20:46:05  <dominictarr>I was like, go away you silly idea.
20:46:18  <dominictarr>but it was like "no, I make sense!"
20:46:38  <dominictarr>then I rewrote and it was easier.
20:47:44  <dominictarr>I think we want some way to have like "hydrated" versions of a Row, that can include computed properties, and stuff
20:48:05  <dominictarr>and maybe also properties that reference other rows...
20:48:11  <Raynos>dominictarr: mux-demux still json serializes all data for me right?
20:48:21  <dominictarr>of course.
20:48:36  <Raynos>cool
21:03:16  <dominictarr>knockout.js has an interesting way of doing computed properties
21:03:22  <dominictarr>oh, yeah that reminds me.
21:03:36  <Raynos>dominictarr: would you recommend I work with scuttlebutt or crdt for my personal splice-stream / delta-stream integration?
21:03:59  <dominictarr>one thing I was going for with crdt was to have something that mapped to ui frameworks well.
21:05:13  <dominictarr>well, since crdt will be refactored to use scuttlebutt, it shouldn't matter.
21:05:40  <dominictarr>and we should be able to merge delta-stream and scuttlebutt/model
21:06:19  <dominictarr>since they both replicate a single observable model, they are practically the same.
21:06:27  <Raynos>dominictarr: splice-stream & delta-stream map to ui frameworks well
21:06:37  <Raynos>that is their entire idea
21:06:49  <Raynos>a ui framework should be a stream
21:07:05  <Raynos>and you just pipe your in memory representation of your array / object as splice / delta streams directly into your UI
21:07:11  <dominictarr>you still need to write a wrapper/adapter for each framework or something though?
21:07:23  <dominictarr>you still need some sort of templatey thing
21:07:26  <Raynos>dominictarr: I'm writing my own UI framework because the rest are shit
21:07:32  <dominictarr>hahaha
21:07:42  <Raynos>one where each UI component is a stream
21:07:45  <dominictarr>that is what EVERYBODY does
21:07:45  <Raynos>and then shit just works
21:08:14  <Raynos>dominictarr: but mine is better!
21:08:22  <Raynos>( https://github.com/Raynos/splice-stream#compatible-modules , https://github.com/Raynos/delta-stream#compatible-modules )
21:08:27  <dominictarr>that is exactly why I got into the replicated data stuff. I saw that EVERYONE was building ui frameworks
21:08:32  <Raynos>because it's not a UI framework, it's just a bunch of modules
21:10:07  <dominictarr>Raynos, this is out of date https://github.com/Raynos/text-node#installation
21:10:25  <Raynos>dominictarr: cool, i'll update taht
21:12:25  <dominictarr>Raynos, that stuff looks really quite interesting.
21:12:52  <Raynos>dominictarr: yes. but it needs work, a lot of it. the element-list example is the most recent and complete
21:13:20  <Raynos>the nicest part is if your splice-stream / delta-streams are backed by crdt Sets / Rows. You can just open a p2p connection through discovery-network and pipe the crdt Doc to get syncing for free
21:13:35  <dominictarr>yeah, totes
21:13:46  <dominictarr>also, it works offline.
21:14:27  <dominictarr>also, if you stream to localStorage, it works offline,
21:14:41  <dominictarr>even if the user closes the tab before reconnecting.
21:14:52  <Raynos>yes
21:14:54  <Raynos>exactly!
21:15:02  <Raynos>the main problem atm
21:15:15  <Raynos>is that https://github.com/Raynos/element-list/blob/master/example/simple/static/bundle.js is 170kb
21:15:25  <Raynos>all of these modules are _heavy_
21:15:41  <Raynos>I added some streaming code to my app just now and it added 200kb
21:15:51  <dominictarr>yeah, but we are building apps, not sites.
21:16:02  <dominictarr>put that stuff in the appcache.
21:16:27  <Raynos>I know
21:16:34  <Raynos>but a trivial demo is 170kb instead of 50
21:16:41  <Raynos>but your right
21:16:44  <Raynos>appcache solves most things
21:17:03  <Raynos>its hard to convince other people in the JS community this is a good thing if you demos are 170kb
21:18:02  <dominictarr>I mean, that is the same as one 640x480 jpg.
21:18:30  <Raynos>substack: How do I use opressor with browserify? How do I turn a bundle into a stream
21:18:35  <dominictarr>they are just used to showing off with 10 demos.
21:18:59  <dominictarr>also, minifying will bring it down a bit.
21:19:21  <Raynos>dominictarr: jquery unminified is 200kb. So I can get the demo down to 30 with min+gzip
21:20:13  <Raynos>dominictarr: but to the point, splice-stream & delta-stream are in process representations of observable objects / arrays that are awesome if your UIs comply to the streaming interfaces. so make sure your UIs comply to them :P
21:21:03  <dominictarr>Raynos, splice-stream will be simpler as insert-stream
21:21:17  <dominictarr>[beforeID, afterID, item]
21:21:44  <Raynos>dominictarr: it may very well be. Are the two formats interchangable?
21:21:50  <dominictarr>and make both beforeID, and afterID optional.
21:21:51  <dominictarr>almost.
21:22:19  <dominictarr>linked lists don't support duplicate elements.
21:22:27  <Raynos>dominictarr: https://github.com/Raynos/element-list/blob/master/index.js#L18
21:22:39  <Raynos>The element-list deals with add / remove / move abstraction
21:23:14  <dominictarr>also, this also assumes that the items have some ID field, and that it is given to the HTMLElements too.
21:23:42  <Raynos>dominictarr: yeah that is a problem. Right now I'm syncing the list <-> ul by indexes
21:24:27  <dominictarr>that works within a process, with a separate model layer
21:24:56  <dominictarr>with ids you could pipe straight from mux-demux to the html
21:25:09  <dominictarr>prehaps it doesn't matter.
21:30:41  <Raynos>dominictarr: that is madness
21:33:05  <dominictarr>IS IT?
21:39:11  <Raynos>dominictarr: I think it's too limited to pipe directly from mdm to html
21:39:27  <Raynos>I prefer mdm <-> crdt Docs <-> Sets / Rows <-> UI
21:40:11  <Raynos>dominictarr: where the doc is responsible for distributed / mdm / streaming. And Sets / Row / UI are responsible for in process state and the rendering of it
21:41:40  <Raynos>dominictarr: the transition between Docs and Sets / Rows is normally where the server <-> client transition would be in your normal backbone + rails app
21:45:19  <dominictarr>exactly.
21:46:04  * timoxleyjoined
21:46:21  <dominictarr>you might be right, but it is good to persue crazy ideas as well, there are probably some good use cases where you could go straight to the UI
21:46:33  <dominictarr>like, when it's just a search result or something.
21:46:50  <dominictarr>and not a heavily interactive part of the api.
21:59:56  * zz_shykeschanged nick to shykes
22:00:35  <dominictarr>Raynos, hey, how much smaller does the demo get with google closure?
22:00:37  * intabulasjoined
22:00:45  <Raynos>dominictarr: no idea
22:00:46  <dominictarr>closure actually remove dead code.
22:00:52  <Raynos>try it.
22:01:08  <dominictarr>actually, I have to install gc right now, so I will.
22:01:25  <dominictarr>unfortunately, it's java :(
22:03:56  <Raynos>dominictarr: note that browserify / my code / bundles etc may not comply with googles "JAVAscript" style conventions and thus not work correctly
22:04:27  <dominictarr>hmm, well, we will find out shortly.
22:05:28  <Raynos>dominictarr: 35.5kb gzipped with cc advanced
22:05:32  <Raynos>use the online one
22:06:47  <Raynos>dominictarr: http://closure-compiler.appspot.com/home
22:09:11  <dominictarr>cool. that is not even gzipped yet
22:17:16  * timoxleyquit (Quit: Computer has gone to sleep.)
22:22:37  * py1honjoined
23:01:56  <substack>Raynos: using oppressor to automatically serve a directory of content is an open problem right now
23:02:07  <substack>could probably submit a patch to ecstatic
23:02:24  <substack>but then it'd be nice also if you could more easily control which files should be compressed
23:02:42  <Raynos>substack: I think I want `op = oppressor(gzip); op.pipe(writeStream); op.write(b.bundle())`
23:03:01  <Raynos>I feel like what I really want is simply a `gzipStream(b.bundle()).pipe(writeStream)`
23:04:01  <substack>http://nodejs.org/docs/latest/api/zlib.html
23:11:04  * timoxleyjoined
23:11:26  * wiwilliajoined
23:11:41  <Raynos>substack: oh wow. zlib is a stream by default
23:13:12  <Raynos>dominictarr: do you foresee deprecating crdt in the future because scuttlebutt is "better"
23:13:35  <dominictarr>I think f-stream and tar does stuff like that.
23:14:28  <dominictarr>Raynos, no gonna refactor out scuttlebutt/model and scuttlebutt/events
23:14:51  <Raynos>dominictarr: how is scuttlebutt/events related to remote-events ?
23:14:56  <dominictarr>then make crdt inherit from scuttlebutt, but and not implement any stream stuff directly.
23:15:28  <dominictarr>same API, except that remote-events drops events when disconnected.
23:15:53  <dominictarr>and only works between two ends of a stream
23:16:37  <dominictarr>I think I'll move scuttlebutt/events -> reliable-events
23:16:54  <dominictarr>If you catch my drift
23:19:45  <Raynos>I see
23:20:01  <Raynos>dominictarr: how does scuttlebut support the list of rows notion that crdt supports
23:21:27  <dominictarr>that is never sent over the wire. as far as the stream is concerned it's just keys and values.
23:22:04  <dominictarr>Set and Seq just interperet some keys specially, and use them to construct sets and lists.
23:22:54  <Raynos>dominictarr: but row can update key / values within a row
23:23:04  <Raynos>can scuttlebut also manipulate key / values within a row
23:23:13  <Raynos>a Set is a list of crdt rows
23:23:20  <Raynos>is there a list of scuttlebutt models?
23:23:40  <dominictarr>scuttlebutt only handles the streaming part,
23:24:10  <dominictarr>the scuttlebutt subclass handles how a new message is integrated into the model
23:24:41  <dominictarr>for example, in Model, a new message for a given key clobbers the old one.
23:25:11  <dominictarr>in Events all messages are preserved (will add expiry though)
23:25:12  * timoxleyquit (Quit: Computer has gone to sleep.)
23:25:49  <substack>dominictarr: once you get scuttlebut figured out you should submit an entry by PR to the stream-handbook!
23:26:58  <dominictarr>in crdt, it a new message clobbers an old one only when all the keys set by the old one are set by a new one.
23:27:05  <dominictarr>substack, will do
23:27:33  <dominictarr>I have some other pull requests to make too, but have been busy exploring Berlin.
23:27:57  <substack>excellent
23:28:15  <substack>I need to figure out lisbon+berlin tickets
23:28:45  <substack>dominictarr: will you be at jsconfeu?
23:31:18  <dominictarr>I don't have a ticket. I may well be in Berlin then though.
23:31:27  <dominictarr>I don't know, that is like more than a month away.
23:31:36  <dominictarr>anything could happen in that much time.
23:31:40  <substack>indeed!
23:32:07  <dominictarr>when you come, make sure you go to the DDR museum.
23:32:34  <substack>sounds awesome
23:33:01  <dominictarr>there is a halorious communist lego(esque) set that you can only use to build apartment blocks.
23:33:23  <Raynos>dominictarr: I see
23:33:43  <Raynos>the same way delta-stream handles the streaming part and the Delta thats bound to it handles the state
23:34:48  <dominictarr>yeah! basically except that for scuttlebutt to work you have to remember the history
23:35:12  <dominictarr>well, just the "significant history"
23:35:30  <substack>dominictarr: maybe I can use my clout as a speaker to get you in to jsconf somehow
23:35:38  <dominictarr>you could send all the history, and it would still be eventually consistent
23:35:45  <dominictarr>substack, that would be amazing
23:36:42  <substack>haha I could write you into my talk
23:36:43  <dominictarr>even if I was like, doing dumb volentary work stuff, it'd still be worth it.
23:36:57  <substack>"and now, dominic tarr to tell us about important things that you should know about"
23:37:06  <dominictarr>haha, I could wear a testling robot suit
23:37:10  <substack>YES
23:37:12  <substack>actually
23:37:21  <dominictarr>so i'd be there as a prop.
23:37:41  <substack>we should build props the 2 days before the conf
23:38:01  <dominictarr>that can be done
23:38:07  <substack>so my talk is about cubism and art and the bauhaus and modernism
23:38:12  <substack>also programming
23:38:52  <dominictarr>Raynos, the "significant histroy" is the events you can't delete, and still get the same eventual result, given the model.
23:39:07  <dominictarr>that sounds awesome.
23:39:10  <substack>also I need to buy some pretentious clothes
23:39:16  <substack>to look more artsy
23:40:03  <dominictarr>TURTLENECK + BERET
23:40:03  <LOUDBOT>SUPPORT DUTY
23:40:34  <dominictarr>with jaunty scaff for extra points.
23:40:51  <substack>AND THEN YOU-KNOW-WHO CAME TO POWER AND THE BAUHAUS FLED GERMANY
23:40:52  <LOUDBOT>THE LOUD IS IN THE PANTS
23:41:02  <substack>^ actual quote I am going to use
23:43:19  <Raynos>dominictarr: is mispelling of history as hisTROY on purpose?
23:43:20  <dominictarr>haha,
23:44:01  <dominictarr>Raynos, yes. reference to the michael jackson album of the same name.
23:44:13  <substack>where "you-know-who" is not hitler but Alfred Rosenberg
23:44:21  <substack>https://en.wikipedia.org/wiki/Alfred_Rosenberg
23:44:23  <Raynos>dominictarr: can you not put cultural references into your APIs
23:44:27  <substack>fuck that guy
23:44:36  <dominictarr>I'm joking.
23:44:49  <dominictarr>I'm actually retarted about that particular typo
23:44:59  <Raynos>dominictarr: https://github.com/dominictarr/scuttlebutt#scuttlebutthistroysources
23:45:04  <Raynos>its everywhere
23:45:18  <substack>He is considered one of the main authors of key Nazi ideological creeds, including its racial theory, persecution of the Jews, Lebensraum, abrogation of the Treaty of Versailles, and opposition to "degenerate" modern art.
23:45:31  <dominictarr>something about dvorak makes it particularily easy for me to make that mistake.
23:47:40  <Raynos>substack: how do I render the name / keys of buckets in graph-stream
23:47:42  * intabulasquit (Remote host closed the connection)
23:47:52  <substack>dominictarr: incidentally I will be in Berlin advocating building software like east german apartment buildings
23:48:17  <dominictarr>don't put it like that, though.
23:48:23  <substack>oh I will
23:48:36  <substack>need to present the strongest possible case
23:48:47  <dominictarr>actually, that is one of the things that communism was really good at,
23:48:50  <substack>so as not to be attacking strawmen
23:49:04  <dominictarr>quick to assemble reinforced concret structures.
23:50:00  <dominictarr>actually, communism in East Germany is a lot easier to laugh about than communism in Cambodia.
23:50:23  <substack>east german communism was pretty half-hearted
23:50:46  <dominictarr>well, they didn't kill many people, for one.
23:50:54  <substack>they even let the french, british, and americans use overland routes to ship supplies into west berlin
23:51:12  <dominictarr>there was a blockade for a while,
23:51:17  <substack>10 months
23:51:21  <dominictarr>they where flying supplies in
23:52:03  <substack>ecma/harmony is totally post-modernism
23:52:03  <dominictarr>I was just at the checkpoint charlie museum today
23:52:13  <dominictarr>many epic escapes
23:52:16  <substack>RUN AFOUL
23:52:16  <LOUDBOT>INTERNET YOU HAVE FAILED ME AGAIN
23:53:49  <dominictarr>like, one time,
23:53:58  <substack>haha ecma is like the quadripartite agreement that kept berlin partitioned
23:54:12  <substack>I'm going to put all the browsers on a map of berlin
23:54:14  <dominictarr>2 whole families escaped in a homemade hot air balloon,
23:54:37  <substack>https://en.wikipedia.org/wiki/File:Occupied_Berlin.svg
23:54:58  <dominictarr>which was at the time was the largest hot air balloon ever built in europe
23:55:14  <Raynos>dominictarr: https://github.com/Raynos/mux-demux-shoe I would appreciate recommendations on whether these are sensible defualts
23:55:38  <dominictarr>substack, which nations -> which browsers ?
23:56:32  <substack>USSR -> IE
23:56:55  <dominictarr>naturally
23:57:00  <substack>chrome, ff, safari as the others
23:57:43  <dominictarr>hmm, what about an IE logo that was yellow on red?
23:58:22  <substack>is there a color theory trick to make blue look red?
23:58:49  <dominictarr>um, surround it with purple?
23:59:20  <dominictarr>substack, use the flat IE6 logo
23:59:34  <substack>oh I know, instead of the hammer and sickle I can use the e
23:59:43  <dominictarr>exactly