00:00:46
| * _sorensen | quit (Quit: _sorensen) |
00:05:20
| * mikeal | quit (Quit: Leaving.) |
00:12:33
| * thatguydan | quit (Quit: thatguydan) |
00:15:58
| * joshwnj | quit (Quit: ERC Version 5.3 (IRC client for Emacs)) |
00:24:47
| * mikeal | joined |
00:25:50
| * thatguydan | joined |
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_shykes | changed nick to shykes |
01:31:19
| * devaholic | quit (Ping timeout: 268 seconds) |
01:33:24
| * mikeal | quit (Quit: Leaving.) |
01:35:24
| * joshwnj | joined |
01:37:48
| * mikeal | joined |
01:39:10
| * mikeal | quit (Client Quit) |
01:57:04
| * joshwnj` | joined |
01:57:11
| * simcop2387 | quit (Excess Flood) |
01:57:40
| * simcop2387 | joined |
01:57:55
| * joshwnj | quit (Ping timeout: 240 seconds) |
02:01:20
| * joshwnj`` | joined |
02:03:02
| * joshwnj` | quit (Ping timeout: 252 seconds) |
02:10:05
| * tilgovi | joined |
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
| * thatguydan | quit (Quit: thatguydan) |
03:01:48
| * thatguydan | joined |
03:08:11
| * shykes | changed nick to zz_shykes |
03:12:48
| * simcop2387 | quit (Excess Flood) |
03:15:10
| * simcop2387 | joined |
03:18:41
| <Raynos> | Does anyone have a stream that buffers writes ? |
03:18:50
| <Raynos> | but is duplex (not through) |
03:23:54
| * AvianFlu | joined |
03:27:26
| * thatguydan | quit (Quit: thatguydan) |
03:30:12
| * thatguydan | joined |
03:30:49
| * thatguydan | quit (Client Quit) |
03:33:14
| * thatguydan | joined |
03:44:18
| * thatguydan | quit (Quit: thatguydan) |
03:47:28
| * _sorensen | joined |
03:48:03
| * _sorensen | quit (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) [email protected] 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_luke | quit (Ping timeout: 276 seconds) |
04:47:08
| * ryan_stevens1 | quit (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
| * thatguydan | joined |
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_stevens | joined |
06:03:18
| * zz_shykes | changed nick to shykes |
06:03:56
| * shykes | changed 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
| * thatguydan | quit (Quit: thatguydan) |
06:30:35
| * joshwnj | quit (Ping timeout: 240 seconds) |
06:32:03
| * thatguydan | joined |
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
| * cubert | quit (Ping timeout: 272 seconds) |
06:49:31
| * farnsworth | quit (Ping timeout: 272 seconds) |
06:54:21
| * ryan_stevens | quit (Quit: Leaving.) |
07:03:58
| <Raynos> | isaacs: how do you handle circular npm dependencies? |
07:07:08
| * thatguydan | quit (Quit: thatguydan) |
07:11:08
| * joshwnj | quit (Quit: ERC Version 5.3 (IRC client for Emacs)) |
07:15:10
| * thatguydan | joined |
07:27:41
| * AvianFlu | quit (Quit: AvianFlu) |
07:36:59
| * devaholic | joined |
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
| * timoxley | quit (Quit: Computer has gone to sleep.) |
07:46:20
| <maxogden> | http://www.youtube.com/watch?v=X16G2hsVI9w |
07:50:46
| * timoxley | joined |
07:51:29
| * timoxley | quit (Remote host closed the connection) |
07:53:06
| * timoxley | joined |
07:56:58
| * mikeal | joined |
08:01:04
| * thatguydan | quit (Quit: thatguydan) |
08:03:39
| * thatguydan | joined |
08:14:54
| * thatguydan | quit (Quit: thatguydan) |
08:20:52
| * thatguydan | joined |
08:21:28
| * cubert | joined |
08:22:28
| * farnsworth | joined |
08:29:42
| * thatguydan | quit (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
| * timoxley | quit (Quit: Computer has gone to sleep.) |
09:05:09
| <substack> | haha |
09:07:57
| * thatguydan | joined |
09:08:06
| * thatguydan | quit (Client Quit) |
09:14:50
| * devaholic | quit (Ping timeout: 245 seconds) |
09:24:34
| * tilgovi | quit (Ping timeout: 244 seconds) |
09:34:25
| * timoxley | joined |
10:25:15
| * tanepiper | quit (Ping timeout: 245 seconds) |
10:26:49
| * tanepiper | joined |
10:39:25
| * tanepiper | quit (Ping timeout: 256 seconds) |
11:36:07
| * dominictarr | joined |
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
| * Nexxy | WAVES 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
| * tanepiper | joined |
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
| * antix | joined |
12:43:28
| * timoxley | quit (*.net *.split) |
12:43:29
| * antix_ | quit (*.net *.split) |
12:52:34
| * timoxley_ | quit (Quit: rm -rf /) |
12:53:03
| * AvianFlu | joined |
13:04:34
| * timoxley | joined |
13:19:25
| * dominictarr | quit (Ping timeout: 245 seconds) |
13:24:53
| * timoxley | quit (Quit: Computer has gone to sleep.) |
13:54:42
| * tanepiper | quit (Ping timeout: 276 seconds) |
13:55:03
| * timoxley | joined |
13:59:02
| * timoxley | quit (Client Quit) |
13:59:52
| * timoxley | joined |
14:00:09
| * timoxley | quit (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
| * timoxley | joined |
14:34:47
| * dominictarr | joined |
14:40:15
| * dominictarr | quit (Ping timeout: 256 seconds) |
14:43:38
| * st_luke | joined |
14:56:58
| * timoxley | quit (Quit: Computer has gone to sleep.) |
15:50:23
| * tanepiper | joined |
16:07:38
| * ryan_stevens | joined |
16:09:36
| * ryan_stevens | quit (Client Quit) |
16:42:06
| * dominictarr | joined |
16:43:20
| <dominictarr> | Raynos, http://npm.im/invert-stream |
17:03:46
| * ryan_stevens | joined |
17:21:49
| <dominictarr> | Raynos, new mux-demux feature https://github.com/dominictarr/mux-demux/#closecb |
17:36:11
| * _sorensen | joined |
18:06:15
| * dominictarr | quit (Ping timeout: 276 seconds) |
18:12:59
| * mikeal | quit (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
| * timoxley | joined |
18:34:37
| * AvianFlu | quit (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
| * mikeal | joined |
18:58:59
| <substack> | npm install alists |
18:59:05
| * AvianFlu | joined |
18:59:20
| <substack> | > require('alists').toList({a:1,b:2}) |
18:59:20
| <substack> | [ [ 'a', 1 ], [ 'b', 2 ] ] |
19:08:31
| * AvianFlu | quit (Quit: AvianFlu) |
19:11:31
| * tilgovi | joined |
19:15:09
| * farnsworth | quit (Ping timeout: 276 seconds) |
19:15:59
| * cubert | quit (Read error: No route to host) |
19:18:36
| * farnsworth | joined |
19:22:40
| * cubert | joined |
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
| * AvianFlu | joined |
19:40:56
| * tilgovi | quit (Ping timeout: 244 seconds) |
19:42:54
| * tilgovi | joined |
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
| * dominictarr | joined |
20:56:31
| * tilgovi | quit (Ping timeout: 252 seconds) |
21:08:54
| * ITpro | quit (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
| * devaholic | joined |
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
| * timoxley | quit (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
| * mikeal | quit (Quit: Leaving.) |
22:09:05
| * mikeal | joined |
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_luke | quit (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_luke | quit (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_luke | joined |
22:36:47
| <Raynos> | that would work |
22:37:04
| <Raynos> | but I dont really need the streaming parser |
22:37:07
| * ryan_stevens | quit (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
| * AvianFlu | quit (Quit: AvianFlu) |
22:47:42
| * st_luke | quit (Remote host closed the connection) |
22:48:17
| <Raynos> | Agreed |
22:54:39
| * ryan_stevens | joined |
22:57:18
| * _sorensen | quit (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
| * dominictarr | quit (Ping timeout: 264 seconds) |