00:00:46  * _sorensenquit (Quit: _sorensen)
00:05:20  * mikealquit (Quit: Leaving.)
00:12:33  * thatguydanquit (Quit: thatguydan)
00:15:58  * joshwnjquit (Quit: ERC Version 5.3 (IRC client for Emacs))
00:24:47  * mikealjoined
00:25:50  * thatguydanjoined
00:48:59  <thatguydan>Is there a reliable way to get the number of open connections in a dnode server?
00:49:31  <thatguydan>just .connections()?
01:02:01  <thatguydan>server._servers.forEach(function(s){ count+=s.connections }) -- apparently
01:13:20  <substack>you could maintain a count in your listeners less hackishly
01:14:02  <substack>var d = dnode(cons); connections ++; d.on('end', function () { connections -- })
01:19:20  * zz_shykeschanged nick to shykes
01:31:19  * devaholicquit (Ping timeout: 268 seconds)
01:33:24  * mikealquit (Quit: Leaving.)
01:35:24  * joshwnjjoined
01:37:48  * mikealjoined
01:39:10  * mikealquit (Client Quit)
01:57:04  * joshwnj`joined
01:57:11  * simcop2387quit (Excess Flood)
01:57:40  * simcop2387joined
01:57:55  * joshwnjquit (Ping timeout: 240 seconds)
02:01:20  * joshwnj``joined
02:03:02  * joshwnj`quit (Ping timeout: 252 seconds)
02:10:05  * tilgovijoined
02:13:20  <maxogden>substack: have you seen https://codeclimate.com/ e.g. https://codeclimate.com/github/smartlogic/http_spec
02:24:54  <Raynos>substack, maxogden: https://gist.github.com/3444834
02:25:01  <Raynos>do you have any API change recommendations
03:00:19  * thatguydanquit (Quit: thatguydan)
03:01:48  * thatguydanjoined
03:08:11  * shykeschanged nick to zz_shykes
03:12:48  * simcop2387quit (Excess Flood)
03:15:10  * simcop2387joined
03:18:41  <Raynos>Does anyone have a stream that buffers writes ?
03:18:50  <Raynos>but is duplex (not through)
03:23:54  * AvianFlujoined
03:27:26  * thatguydanquit (Quit: thatguydan)
03:30:12  * thatguydanjoined
03:30:49  * thatguydanquit (Client Quit)
03:33:14  * thatguydanjoined
03:44:18  * thatguydanquit (Quit: thatguydan)
03:47:28  * _sorensenjoined
03:48:03  * _sorensenquit (Client Quit)
03:57:24  * joshwnj``changed nick to joshwnj
03:58:26  <Raynos>substack: https://gist.github.com/3445243
03:58:43  <Raynos>shoe doesn't need to buffer anymore. Just tell people to wrap it in a BufferStream
04:18:51  <rowbit>/!\ ATTENTION: (default-local) jen@... successfully signed up for developer browserling plan ($20). Cash money! /!\
04:18:51  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
04:31:48  * st_lukequit (Ping timeout: 276 seconds)
04:47:08  * ryan_stevens1quit (Quit: Leaving.)
05:20:43  <Raynos>substack: https://github.com/Raynos/buffer-stream/blob/master/example/reconnect.js This reminds me of what upnode does
05:23:47  <Raynos>substack, isaacs: when can I remove deprecated or renamed modules from npm? (Even if the rename is a typo?)
05:34:01  * thatguydanjoined
05:52:30  <Raynos>substack: https://github.com/rassie/jessie if you ever need a function to do some front end shit, steal it from jessie
06:00:29  * ryan_stevensjoined
06:03:18  * zz_shykeschanged nick to shykes
06:03:56  * shykeschanged nick to zz_shykes
06:04:04  <substack>yay signups
06:06:54  <substack>Raynos: with a ping stream and mux-demux you'd be pretty close
06:07:18  <Raynos>why does upnode need mux-demux ?
06:07:52  <substack>not what I said
06:08:21  <substack>your reconnect.js would be more like upnode if it was paired with a stream that did keep alives over a secondary stream
06:09:42  <Raynos>Oh I see
06:09:56  <Raynos>I don't think keep alive's are needed
06:10:01  <Raynos>you just listen on the end and close events
06:10:14  <Raynos>The thing is dead when the stream closes
06:11:39  <substack>sometimes connections stay alive but don't receive data anymore
06:11:51  <Raynos>When would that be?
06:11:58  <substack>this happens infrequently but in a long-running system can kill the whole system
06:12:14  <substack>networks shit themselves
06:26:03  <Raynos>I see
06:28:58  * joshwnj`joined
06:30:03  * thatguydanquit (Quit: thatguydan)
06:30:35  * joshwnjquit (Ping timeout: 240 seconds)
06:32:03  * thatguydanjoined
06:33:21  <Raynos>what would be a good streaming implementation of a list state
06:39:57  * joshwnj`changed nick to joshwnj
06:45:22  <Raynos>The hardest part about code is naming the damned library
06:48:15  * cubertquit (Ping timeout: 272 seconds)
06:49:31  * farnsworthquit (Ping timeout: 272 seconds)
06:54:21  * ryan_stevensquit (Quit: Leaving.)
07:03:58  <Raynos>isaacs: how do you handle circular npm dependencies?
07:07:08  * thatguydanquit (Quit: thatguydan)
07:11:08  * joshwnjquit (Quit: ERC Version 5.3 (IRC client for Emacs))
07:15:10  * thatguydanjoined
07:27:41  * AvianFluquit (Quit: AvianFlu)
07:36:59  * devaholicjoined
07:37:09  <Raynos>dominictarr: https://github.com/Raynos/discovery-network/blob/master/example/direct/static/index.js
07:38:02  <Raynos>Opening direct connections is a bit weird
07:38:11  <Raynos>Also the names of all these components are retarded
07:40:41  * timoxleyquit (Quit: Computer has gone to sleep.)
07:46:20  <maxogden>http://www.youtube.com/watch?v=X16G2hsVI9w
07:50:46  * timoxleyjoined
07:51:29  * timoxleyquit (Remote host closed the connection)
07:53:06  * timoxleyjoined
07:56:58  * mikealjoined
08:01:04  * thatguydanquit (Quit: thatguydan)
08:03:39  * thatguydanjoined
08:14:54  * thatguydanquit (Quit: thatguydan)
08:20:52  * thatguydanjoined
08:21:28  * cubertjoined
08:22:28  * farnsworthjoined
08:29:42  * thatguydanquit (Ping timeout: 276 seconds)
08:31:53  <maxogden>substack: http://www.youtube.com/watch?v=czJJAmerplk&feature=relmfu
08:36:50  <substack>maxogden: you should build a wearable drumset
08:42:32  <maxogden>yes
08:48:00  <maxogden>haha i just used my megaphone to scare off someone who was tagging a van parked outside my house
08:48:05  <maxogden>GET OFF MY LAWN
08:48:06  <LOUDBOT>WHEN I TOLD MY DAD I MIGHT BE A GOOD CAR BECAUSE I CAN'T AFFORD TO LIVE MY LIFE EASIER, AND THEN I STUCK MY HAM UP HER BACKPACK AND LEFT. A STUPID, CHISELED, PERFECT ROCK. GOD DAMN HIM. STEELY GLARE. (WHY WOULD YOU SUCK? KRRRLSON'S OR AZHRUWI'S?
08:56:08  * timoxleyquit (Quit: Computer has gone to sleep.)
09:05:09  <substack>haha
09:07:57  * thatguydanjoined
09:08:06  * thatguydanquit (Client Quit)
09:14:50  * devaholicquit (Ping timeout: 245 seconds)
09:24:34  * tilgoviquit (Ping timeout: 244 seconds)
09:34:25  * timoxleyjoined
10:25:15  * tanepiperquit (Ping timeout: 245 seconds)
10:26:49  * tanepiperjoined
10:39:25  * tanepiperquit (Ping timeout: 256 seconds)
11:36:07  * dominictarrjoined
11:38:25  <substack>Nexxy: wow for fuck's sake your troll is dedicated
11:38:31  <Nexxy>very.
11:38:34  <Nexxy>lol
11:38:47  <Nexxy>it's hilarious
11:38:54  <Nexxy>either he or github deleted his troll account
11:39:13  <Nexxy>and now somehow I'm a magical hacker
11:39:20  <Nexxy>that can delete other people's gist comments and git accounts
11:39:24  <Nexxy>\o/
11:39:36  * NexxyWAVES HER HANDS AND ALTERS YOUR PERCEPTION
11:39:38  <LOUDBOT>HAY GUIES. LEWELLYN ADMITTED TO SUCKING COCKS ON NUMEROUS OCCASIONS. SO STOP SENDING HIM WOMEN, AND START SENDING HIM RON JEREMY COSPLAYERS!
11:39:39  <substack>probably a ton of people mashed "report abuse" on his account
11:39:46  <Nexxy>yeah
11:39:55  <Nexxy>I just wish I had screen shotted the entire thread prior
11:40:23  <Nexxy>LOUDBOT Y U SO DIRTY
11:40:23  <LOUDBOT>ACHIEVEMENT UNLOCKED: MISLEADING STATEMENTS REGARDING CAKE AVAILABILITY LEVELS
11:40:35  <Nexxy>YOU TOO, HUH?!
11:41:24  <substack>LOUDBOT IS A WINDOW INTO THE FETIT BRAINS OF PEOPLE WHO TYPE IN CAPS
11:41:24  <LOUDBOT>WTF IS GOING ON HERE
11:41:35  <substack>is why
11:42:02  <Nexxy>I MEAN I AM PRETTY GOOD WITH CAPS AND EVERYTHING BUT I DON'T THINK IT'S FAIR TO LABEL MY BRAIN AS FETID
11:42:03  <LOUDBOT>THEY SAY THIS CAT SHAFT IS A BAD MUTHA
11:42:19  <Nexxy>oh wow that's an amazing mental image
11:44:27  <substack>WHAT A LOAD OF FETIT DINGO'S KIDNEYS
11:44:28  <LOUDBOT>SOME DAY WE'LL HAVE THE TECHNOLOGY
12:28:16  <guybrush>substack: i am doing cp.spawn now instead of using the bfy-middleware :D `cp.spawn('./node_modules/.bin/browserify','-e client/x.js -o client/bundle.js --watch --debug'.split(' '))`
12:35:00  * tanepiperjoined
12:36:31  <substack>that works!
12:36:49  <substack>nearly the same as using the non-middleware api
12:39:51  * timoxley_joined
12:40:38  * antixjoined
12:43:28  * timoxleyquit (*.net *.split)
12:43:29  * antix_quit (*.net *.split)
12:52:34  * timoxley_quit (Quit: rm -rf /)
12:53:03  * AvianFlujoined
13:04:34  * timoxleyjoined
13:19:25  * dominictarrquit (Ping timeout: 245 seconds)
13:24:53  * timoxleyquit (Quit: Computer has gone to sleep.)
13:54:42  * tanepiperquit (Ping timeout: 276 seconds)
13:55:03  * timoxleyjoined
13:59:02  * timoxleyquit (Client Quit)
13:59:52  * timoxleyjoined
14:00:09  * timoxleyquit (Client Quit)
14:09:28  <pikpik>pkrumins: Thanks for writing your AWK guides! "Famous Awk One-Liners Explained, Part III: Selective Printing and Deleting of Certain Lines" rocks!
14:15:28  * timoxleyjoined
14:34:47  * dominictarrjoined
14:40:15  * dominictarrquit (Ping timeout: 256 seconds)
14:43:38  * st_lukejoined
14:56:58  * timoxleyquit (Quit: Computer has gone to sleep.)
15:50:23  * tanepiperjoined
16:07:38  * ryan_stevensjoined
16:09:36  * ryan_stevensquit (Client Quit)
16:42:06  * dominictarrjoined
16:43:20  <dominictarr>Raynos, http://npm.im/invert-stream
17:03:46  * ryan_stevensjoined
17:21:49  <dominictarr>Raynos, new mux-demux feature https://github.com/dominictarr/mux-demux/#closecb
17:36:11  * _sorensenjoined
18:06:15  * dominictarrquit (Ping timeout: 276 seconds)
18:12:59  * mikealquit (Quit: Leaving.)
18:17:05  <Raynos>dominictarr: I have a good idea of what a delta-stream is
18:17:16  <Raynos>How should I handle a list-stream. I.e. the stream format of crdt.Set
18:23:12  <Raynos>dominictarr: https://github.com/Raynos/discovery-network/blob/master/example/direct/static/index.js
18:23:19  <Raynos>Opening direct connections is a pain in the ass
18:29:08  * timoxleyjoined
18:34:37  * AvianFluquit (Quit: AvianFlu)
18:41:47  <Raynos>Someone has a module for turning an object into an array of key value pair
18:41:51  <Raynos>where is that module ._.
18:49:15  * mikealjoined
18:58:59  <substack>npm install alists
18:59:05  * AvianFlujoined
18:59:20  <substack>> require('alists').toList({a:1,b:2})
18:59:20  <substack>[ [ 'a', 1 ], [ 'b', 2 ] ]
19:08:31  * AvianFluquit (Quit: AvianFlu)
19:11:31  * tilgovijoined
19:15:09  * farnsworthquit (Ping timeout: 276 seconds)
19:15:59  * cubertquit (Read error: No route to host)
19:18:36  * farnsworthjoined
19:22:40  * cubertjoined
19:27:06  <substack>Raynos: http://2012.jsconf.eu/speaker/2012/08/24/to-hell-with-jquery.html
19:27:35  <Raynos>substack: hell yeah, I was looking for alists
19:27:38  <Raynos>couldn't find the damned thing
19:28:12  <Raynos>substack, isaacs: Not being able to find what I want on npm is frustrating, knowing exactly what I want and not being able to find it because I forgot the name is incredibly frustrating
19:28:33  <Raynos>I even knew it was written by jesusabdullah and couldn't find it on his github page :/
19:28:39  <Raynos>The npm search problem is a problem
19:35:39  * AvianFlujoined
19:40:56  * tilgoviquit (Ping timeout: 244 seconds)
19:42:54  * tilgovijoined
20:30:37  <Raynos>substack: browserifies watch bug is a shame. If it worked it would be super sweet
20:39:21  <Raynos>substack: https://github.com/substack/upnode/blob/master/index.js#L241 not cool
20:39:25  <Raynos>I need those errors for debugging
20:43:55  * dominictarrjoined
20:56:31  * tilgoviquit (Ping timeout: 252 seconds)
21:08:54  * ITproquit (Read error: Connection reset by peer)
21:20:32  <Raynos>dominictarr: https://gist.github.com/7d0def381130bbc1c4ab
21:22:02  <dominictarr>you must implement a list as merely a "bag" of key:value objects.
21:22:27  <dominictarr>you have to do it only by setting key:value pairs.
21:23:01  <dominictarr>if you use list indexes, you've gotta track the histroy of the list... and that is quite complicated.
21:24:28  <dominictarr>does that make sense?
21:31:43  * devaholicjoined
21:32:08  <Raynos>dominictarr: well a delta-stream is just that a bag of key:value objects. which matches a crdt.Row nicely
21:32:22  <Raynos>I'm looking for something that matches a crdt.Set nicely and just emits removal and addision
21:32:32  <Raynos>I dont care about changes of those values
21:32:35  <Raynos>just whether they are in the set or not
21:32:49  <Raynos>its not a stream for over the network
21:32:59  <Raynos>its just an in memory stream between components inside one process
21:34:26  <dominictarr>well, all that defines a crdt.Set is a particular key, say "type" is set to a particular value say "fruit", then every object that has type=fruit is in the set.
21:35:21  <dominictarr>when changes from ^[fruit] to fruit then it's an 'add', when it goes the other way... then it's remove
21:37:47  * timoxleyquit (Quit: Computer has gone to sleep.)
21:47:20  <Raynos>dominictarr: I know, but the information I care about is the inclusion or removal of the set, so that I can pipe it into an stream representing an ul and remove or add lis
21:48:02  <dominictarr>so, you want a stream of add/remove events?
22:06:13  * mikealquit (Quit: Leaving.)
22:09:05  * mikealjoined
22:09:34  * st_luke_joined
22:21:14  <Raynos>dominictarr: yes
22:21:29  <Raynos>and I want to think of a sensible stream data format for that so I can make other people consume it
22:21:49  <dominictarr>I like arrays
22:22:08  <dominictarr>[key, value, timestamp, etc]
22:22:30  <dominictarr>cos then you can get the array and do func.apply(null, array)
22:22:49  <dominictarr>and it's minimum extra chars if you want to stringify it
22:23:18  <dominictarr>guess you'd have ['add', object]
22:23:26  <dominictarr>['remove', object]
22:23:34  <dominictarr>maybe add timestamps too.
22:23:43  <Raynos>yeah\
22:23:46  <Raynos>that seems good
22:23:48  <Raynos>what about delta-stream
22:23:55  <Raynos>I was thinking { key: value, key2: value2 }
22:24:35  <dominictarr>is it just updates to a single object? or a collection of objects?
22:24:49  <dominictarr>that is what crdt uses basicall
22:24:52  <Raynos>updates to a single object
22:25:13  <Raynos>updates to a collection of objects will use crdt's [key, value, timestamp, etc]
22:25:14  <dominictarr>that works then
22:25:18  <dominictarr>cool.
22:25:36  <Raynos>dominictarr: I want to parse this format using JSONStream ( https://mixpanel.com/docs/api-documentation/exporting-raw-data-you-inserted-into-mixpanel )
22:25:50  <Raynos>It's new line deliminated valid JSON objects
22:26:00  * st_lukequit (Disconnected by services)
22:26:04  * st_luke_changed nick to st_luke
22:26:38  * st_luke_joined
22:27:19  <dominictarr>you'll need timestamps too, if there are more than two nodes communicating, ever.
22:28:14  <Raynos>dominictarr: [{ deltas }, timestamp] ?
22:29:20  <dominictarr>yeah, and source if you ever want to do validation. but I guess it's easy to add extras to an array.
22:30:04  <dominictarr>well, depending on what you are planning to do with it.
22:30:21  <Raynos>true
22:30:27  <Raynos>Back to JSONStream
22:30:30  <dominictarr>I havn't tried to do validation yet, I've just thought about it a little bit
22:30:33  <Raynos>how would I pass in that data into it?
22:30:56  <dominictarr>oh, it's newline delimited json?
22:31:08  <dominictarr>use event-stream.parse instead.
22:31:25  <dominictarr>& event-stream.split()
22:32:09  <dominictarr>JSONStream can't do newline delimited json.
22:32:27  <dominictarr>you'd need to patch creationix's json-parse-stream
22:33:27  * st_lukequit (Remote host closed the connection)
22:36:28  <Raynos>What if I just put a stream splitter in front of it
22:36:40  <Raynos>and then emit them one object at a time
22:36:41  * st_lukejoined
22:36:47  <Raynos>that would work
22:37:04  <Raynos>but I dont really need the streaming parser
22:37:07  * ryan_stevensquit (Quit: Leaving.)
22:37:08  <Raynos>as the actual json is small
22:38:03  <Raynos>the data is returned in chunked format :D
22:46:27  <dominictarr>Raynos, yeah, I hardly ever use JSONStream. if I control the source and the dest, I just make it newline seperated.
22:46:30  <dominictarr>way simpler.
22:46:51  * AvianFluquit (Quit: AvianFlu)
22:47:42  * st_lukequit (Remote host closed the connection)
22:48:17  <Raynos>Agreed
22:54:39  * ryan_stevensjoined
22:57:18  * _sorensenquit (Quit: _sorensen)
23:10:26  <Raynos>substack: Do you have a module for the "cached event emitter" pattern ( https://github.com/Colingo/mixpanel-ui/blob/master/login/index.js#L25 )
23:24:01  <devaholic>mixpanel ui?
23:26:33  <Raynos>devaholic: Yes
23:28:17  <devaholic>is that like a custom dashboard?
23:28:29  <Raynos>https://gist.github.com/3457150
23:28:41  <Raynos>Is there a better name for that function
23:28:46  <Raynos>or is there a module that does that
23:36:02  <Raynos>devaholic: It's a custom graph app to build custom graphs for our very specific needs
23:36:26  * dominictarrquit (Ping timeout: 264 seconds)