00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:00:25  * AvianFlujoined
00:01:11  <mikolalysenko>tmcw: there is a faster way to do what you want to do I think
00:01:21  <mikolalysenko>save-pixels should work with grayscale images I think
00:01:41  <mikolalysenko>so you could just do: savePixels(px.pick(-1,-1,0)) instead of unpacking manually
00:02:20  <mikolalysenko>you really only need to use cwise if you are doing some kind of processing on the image
00:16:31  * defunctzombiechanged nick to defunctzombie_zz
00:19:48  * maksimlinjoined
00:25:44  * jergasonjoined
00:34:38  * thlorenzjoined
00:35:34  <isaacs>Raynos: yes, test on master, asap
00:35:45  <isaacs>Raynos: the latest 0.11 release is a few weeks stale now
00:35:47  <isaacs>master is moving pretty fast
00:36:13  <Raynos>isaacs: I tested on 0.11.5 earlier and couldn't get past `npm rebuild` so I'll test again once down stream has fixed their binaries
00:36:28  <isaacs>kk
00:36:34  <isaacs>yeah, binaries are super painful right now
00:36:43  <isaacs>0.10 -> 0.12 will be hard on anyone touching V8 directly
00:36:49  <isaacs>otherwise, it's pretty tame
00:39:09  * thlorenzquit (Ping timeout: 264 seconds)
00:45:25  * mikolalysenkoquit (Ping timeout: 245 seconds)
00:47:10  * defunctzombie_zzchanged nick to defunctzombie
00:50:19  * spionquit (Ping timeout: 246 seconds)
00:51:41  <jesusabdullah>substack: I had an idea, wondering what you think: Suppose I had a bundled library and I wanted to rebundle it but with removed properties. Suggested approaches and/or gotchas (besides, "hey that library NEEDED that property" ?
00:51:45  <jesusabdullah>)
00:55:14  * stagasquit (Read error: Connection reset by peer)
01:01:22  * AvianFlupart
01:01:26  * AvianFlujoined
01:01:58  <AvianFlu>jesusabdullah: fork and delete unwanted code XD
01:04:20  * tmcwjoined
01:04:57  <jesusabdullah>AvianFlu: yeah maybe
01:07:43  * evboguejoined
01:08:38  * tmcwquit (Ping timeout: 240 seconds)
01:09:32  * evboguequit (Client Quit)
01:10:22  * evboguejoined
01:16:35  <kumavis>what do you all use for monitoring network traffic
01:17:19  <kumavis>mostly for your own main machine, not some dedicated server
01:27:22  * dguttmanquit (Quit: dguttman)
01:34:03  * tilgoviquit (Remote host closed the connection)
01:35:00  * thlorenzjoined
01:39:48  * thlorenzquit (Ping timeout: 276 seconds)
01:42:13  * mikolalysenkojoined
01:45:56  * coderzachjoined
01:46:40  * mikolalysenkoquit (Ping timeout: 246 seconds)
01:46:45  * tmcwjoined
01:53:23  * tmcwquit (Remote host closed the connection)
01:56:33  * ins0mniaquit (Ping timeout: 264 seconds)
01:57:14  * st_lukequit (Remote host closed the connection)
02:00:26  * timoxley_quit (Remote host closed the connection)
02:06:58  * mikealjoined
02:08:46  * gwenbelljoined
02:12:47  * tmcwjoined
02:14:03  * soldairquit (Ping timeout: 250 seconds)
02:17:35  * mikealquit (Quit: Leaving.)
02:20:01  * mikealjoined
02:21:03  <gwenbell>mbalho: your critter game is rad
02:24:11  * mikealquit (Client Quit)
02:28:17  * defunctzombiechanged nick to defunctzombie_zz
02:30:53  * defunctzombie_zzchanged nick to defunctzombie
02:31:50  * jxsonjoined
02:31:59  * st_lukejoined
02:35:24  * thlorenzjoined
02:39:26  * thlorenzquit (Ping timeout: 240 seconds)
02:43:24  * kumavisquit (Quit: kumavis)
02:44:44  * mikealjoined
02:45:14  <tmcw>yay, first ndarray module https://github.com/tmcw/get-pixels-canvas
02:49:56  * tmcwquit (Remote host closed the connection)
02:52:09  * mikealquit (Quit: Leaving.)
02:58:37  * evboguequit (Quit: leaving)
03:05:55  * st_lukequit (Remote host closed the connection)
03:07:37  * kumavisjoined
03:11:39  * kumavisquit (Client Quit)
03:12:33  * gwenbellquit (Quit: Lost terminal)
03:20:59  * dguttmanjoined
03:21:23  * dguttmanquit (Client Quit)
03:23:53  * coderzachquit (Quit: coderzach)
03:24:05  * kenperkinsjoined
03:24:51  * kenperkinsquit (Client Quit)
03:27:22  * mikolalysenkojoined
03:33:15  * mikealjoined
03:33:40  * mikealquit (Client Quit)
03:33:58  * mikealjoined
03:35:50  * thlorenzjoined
03:36:49  * kumavisjoined
03:36:57  * defunctzombiechanged nick to defunctzombie_zz
03:39:44  * defunctzombie_zzchanged nick to defunctzombie
03:40:40  * thlorenzquit (Ping timeout: 264 seconds)
03:46:04  * AvianFluquit (Ping timeout: 264 seconds)
03:46:25  * coderzachjoined
03:46:27  * AvianFlujoined
03:55:03  * coderzachquit (Quit: coderzach)
03:57:17  * nicholas_joined
03:58:13  * AvianFluquit (Remote host closed the connection)
03:58:41  * AvianFlujoined
04:01:46  * nicholas_quit (Ping timeout: 256 seconds)
04:06:38  * mikealquit (Quit: Leaving.)
04:08:20  * calvinfoquit (Quit: Leaving.)
04:14:21  * mikealjoined
04:16:31  * st_lukejoined
04:17:35  * mikealquit (Client Quit)
04:17:59  * jxsonquit (Remote host closed the connection)
04:21:39  * st_lukequit (Ping timeout: 276 seconds)
04:21:59  * jergasonquit (Read error: Connection reset by peer)
04:22:11  * timoxleyjoined
04:22:21  * calvinfojoined
04:22:35  * timoxleyquit (Remote host closed the connection)
04:23:11  * timoxleyjoined
04:27:26  * timoxleyquit (Ping timeout: 240 seconds)
04:30:08  * shamaquit (Remote host closed the connection)
04:32:17  * calvinfoquit (Quit: Leaving.)
04:34:48  * timoxleyjoined
04:36:13  * thlorenzjoined
04:40:44  * thlorenzquit (Ping timeout: 268 seconds)
04:43:05  <mbalho>new module :D https://github.com/maxogden/stl-obj-viewer
04:43:11  * timoxleyquit (Remote host closed the connection)
04:45:35  <mbalho>http://maxogden.github.io/stl-obj-viewer/ generates 2 3d noise ndarrays and then converts them to stls and renders them
04:51:48  * mikealjoined
04:52:11  * mikealquit (Client Quit)
04:52:33  * timoxleyjoined
04:52:42  * timoxleyquit (Remote host closed the connection)
04:53:13  * mikealjoined
04:58:54  * AvianFluquit (Remote host closed the connection)
05:07:55  * pikpikquit (Changing host)
05:07:56  * pikpikjoined
05:07:56  * pikpikquit (Changing host)
05:07:56  * pikpikjoined
05:08:42  * fallsemojoined
05:19:40  * fallsemoquit (Ping timeout: 264 seconds)
05:22:18  * owen1quit (Ping timeout: 264 seconds)
05:23:45  * mikealquit (Quit: Leaving.)
05:25:53  * timoxleyjoined
05:27:09  * Kesslerquit (Ping timeout: 264 seconds)
05:30:20  * mikealjoined
05:32:34  * jergasonjoined
05:36:03  * owen1joined
05:36:42  * thlorenzjoined
05:37:07  * timoxleyquit (Remote host closed the connection)
05:37:32  * jergasonquit (Ping timeout: 256 seconds)
05:38:55  * st_lukejoined
05:41:33  * thlorenzquit (Ping timeout: 264 seconds)
05:55:00  * mikolalysenkoquit (Ping timeout: 245 seconds)
05:59:53  * st_lukequit (Remote host closed the connection)
06:00:06  <mbalho>wolfeidau: whoa you work at ninjablocks now!
06:00:53  * defunctzombiechanged nick to defunctzombie_zz
06:01:21  * kumavisquit (Quit: kumavis)
06:01:40  <wolfeidau>mbalho: That i do mate, quite a change :)
06:02:07  <wolfeidau>mbalho: Learning a ton and wrestling node a lot
06:03:02  <wolfeidau>Thankfully dominic tarr's and your modules are helping a lot :)
06:05:11  * mikealquit (Quit: Leaving.)
06:05:56  <mbalho>w00t
06:06:05  <mbalho>man this presentation is awesome http://hughsk.github.io/campjs-talk/
06:08:02  * mikealjoined
06:08:25  * mikealquit (Client Quit)
06:12:54  * mirkokieferjoined
06:37:06  * thlorenzjoined
06:38:37  * mikealjoined
06:42:03  * thlorenzquit (Ping timeout: 276 seconds)
06:43:38  * calvinfojoined
06:46:28  * timoxleyjoined
06:46:46  * timoxleyquit (Remote host closed the connection)
06:47:00  * timoxleyjoined
06:48:08  * st_lukejoined
06:52:42  * st_lukequit (Ping timeout: 268 seconds)
07:01:29  * mikolalysenkojoined
07:06:13  * mikolalysenkoquit (Ping timeout: 246 seconds)
07:18:36  * calvinfoquit (Quit: Leaving.)
07:22:28  * defunctzombie_zzchanged nick to defunctzombie
07:28:58  * maksimlinquit (Ping timeout: 246 seconds)
07:31:28  <jcrugzz>mbalho: that is a badass presentation
07:37:29  * thlorenzjoined
07:42:09  * thlorenzquit (Ping timeout: 264 seconds)
07:58:16  * nicholasfjoined
08:02:36  * nicholasfquit (Ping timeout: 256 seconds)
08:07:37  * dominictarrjoined
08:10:44  * stagasjoined
08:29:54  * nicholasfjoined
08:34:35  * jcrugzzquit (Ping timeout: 245 seconds)
08:37:54  * thlorenzjoined
08:42:05  * thlorenzquit (Ping timeout: 245 seconds)
09:38:19  * thlorenzjoined
09:39:52  * dominictarrquit (Quit: dominictarr)
09:40:03  * timoxleyquit (Remote host closed the connection)
09:42:54  * thlorenzquit (Ping timeout: 256 seconds)
09:52:12  * jibayjoined
09:54:18  * dominictarrjoined
09:58:54  * ins0mniajoined
10:11:47  * maksimlinjoined
10:29:16  * mirkokieferquit (Quit: mirkokiefer)
10:30:15  * mirkokieferjoined
10:30:40  * defunctzombiechanged nick to defunctzombie_zz
10:30:56  * mirkokieferquit (Client Quit)
10:36:45  * mirkokieferjoined
10:38:43  * thlorenzjoined
10:43:02  * thlorenzquit (Ping timeout: 240 seconds)
10:56:17  * Kesslerjoined
11:21:27  * mirkokieferquit (Quit: mirkokiefer)
11:28:06  * whit537joined
11:39:08  * thlorenzjoined
11:39:59  * maksimlinquit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0/20130803215302])
11:42:03  * spionjoined
11:43:36  * thlorenzquit (Ping timeout: 256 seconds)
11:45:31  * yorickjoined
11:48:21  * whit537quit (Quit: BLAM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
12:15:31  * rvaggquit (Quit: ta ta)
12:23:54  * rvaggjoined
12:37:50  * coderzachjoined
12:39:35  * thlorenzjoined
12:41:54  * coderzachquit (Client Quit)
12:43:55  * AvianFlujoined
12:44:07  * thlorenzquit (Ping timeout: 260 seconds)
12:44:33  * thlorenzjoined
12:45:28  * Kesslerquit (Ping timeout: 264 seconds)
12:47:01  * kevino80joined
12:53:10  * AvianFluquit (Remote host closed the connection)
12:54:33  * AvianFlujoined
12:58:40  * AvianFluquit (Ping timeout: 246 seconds)
13:00:37  * mikealquit (Quit: Leaving.)
13:01:28  * mirkokieferjoined
13:01:43  * timoxleyjoined
13:02:44  * mirkokieferquit (Client Quit)
13:04:20  * Kesslerjoined
13:12:47  * jcrugzzjoined
13:25:39  * mirkokieferjoined
13:30:34  * tmcwjoined
13:39:59  * thlorenz_joined
13:44:14  * thlorenz_quit (Ping timeout: 240 seconds)
13:57:33  * fallsemojoined
14:02:30  * timoxleyquit (Remote host closed the connection)
14:03:43  * fallsemoquit (Quit: Leaving.)
14:05:14  * mikolalysenkojoined
14:16:29  * jergasonjoined
14:18:24  <isaacs>dominictarr: stuff like this https://twitter.com/dominictarr/status/368296605004210176 kind of is annoying.
14:19:06  <dominictarr>isaacs: is what way is it annoying?
14:19:07  <isaacs>dominictarr: people say "distributed" as an applause light with no real meaning sometimes. how many of those people chiding everyone for being affected by github downtime *actually* don't collaborate using *any* single point of failure?
14:19:45  <isaacs>i mean, "talking" is a distributed communication mechanism. but we're still affected when the phone system is down, or it's raining in one place.
14:20:02  <dominictarr>and talk is cheap. actually building said distributed system is much more difficult than centralized system.
14:20:02  <mikolalysenko>isaacs: as that guy unironically posts his snarky comment to twitter...
14:20:53  <isaacs>dominictarr: right, because even once built, you have to get the society of git-users to communicate in some other place.
14:21:38  <isaacs>dominictarr: anyone who thinks that "pulling from random strangers' computers" is as trivial as pulling from a single shared known location on the internet, has never tried it.
14:21:49  <dominictarr>absolutely.
14:21:53  <isaacs>i mean, sure, we COULD all go back to emailing git-format-patch files.
14:21:59  <isaacs>but what do you do when your email is unreachable?
14:22:04  <isaacs>so, email is distributed.
14:22:14  <isaacs>let's all run mail servers on our local computers.
14:22:25  <isaacs>and yes, if you're rms or linus, this is probably what you do
14:22:34  <dominictarr>isaacs you are making a strawman of email.
14:23:02  <isaacs>dominictarr: well, i do use gmail, and when gmail is unreachable, i don't do email
14:23:08  <isaacs>dominictarr: we could also send patches other ways of course
14:23:47  <dominictarr>there is a lot more to github than just sending patches
14:23:52  <isaacs>but a centralized communication forum is actually crucial to a successful community, and that's what the snark doesn't grok
14:24:04  <isaacs>right, it's for bug reports, comments, discussion, etc.
14:24:30  <isaacs>no matter how we do that, there's always going to be *somewhere* we all meet to talk about that stuff.
14:24:41  <dominictarr>though, a virtual community only needs a virtual center.
14:25:20  * fallsemojoined
14:25:59  <mikolalysenko>I'm struggling to even imagine what a distributed community would look like
14:26:12  * tmcwquit (Remote host closed the connection)
14:26:12  <dominictarr>currently no one has comeup with a better way to do that than just having a website on a server
14:26:18  <dominictarr>mikolalysenko: you are in one!
14:26:22  <mikolalysenko>oh
14:26:27  <mikolalysenko>dang, I didn't even realize it
14:26:35  <isaacs>dominictarr: well, irc actually is a paragon of "multiple single points of failure"
14:26:42  <isaacs>dominictarr: it does not handle network partitions very wel
14:26:53  <dominictarr>isaacs: but that isn't important to the user experience
14:27:00  <isaacs>dominictarr: it is
14:27:08  <isaacs>dominictarr: messages are acknowledged, but not seen!
14:27:21  <isaacs>dominictarr: have you ever ended up in a room with 5 people, which usually has 500?
14:27:34  <dominictarr>sure, it's lossy
14:27:50  * tmcwjoined
14:27:56  <dominictarr>but it doesn't matter that it's got a central server
14:28:00  * dguttmanjoined
14:28:10  <isaacs>IRC chooses A over C, which is a fine choice, but it doesn't even try to ever regain consistency
14:28:16  <isaacs>it's "not even eventual"
14:28:25  <isaacs>with a quorum value of 1
14:28:37  * tmcwquit (Remote host closed the connection)
14:28:42  <dominictarr>sure, humans are pretty good at dealing with that
14:28:46  <isaacs>right
14:28:52  <dominictarr>it's like on skype
14:28:53  <isaacs>and since most of the actors in the network are actually humansj, it's fine
14:29:01  <dominictarr>you are like "I missed that"
14:29:04  <isaacs>sucks when our bots all end up on the wrong side of the split, though
14:29:05  <dominictarr>manual TCP
14:29:29  <isaacs>building a vegan HA network is much harder!
14:29:36  <dominictarr>HA?
14:29:42  <isaacs>high-availability
14:29:50  <dominictarr>vegan?
14:29:53  <isaacs>no meat
14:30:00  <isaacs>ie, just machines. no humans correcting things manually.
14:30:01  <dominictarr>comupters?
14:30:38  <dominictarr>agreed. but that is what makes that area interesting
14:31:09  <mikolalysenko>well, a lot of this stuff also comes down to costs and logistics right?
14:31:14  <dominictarr>irc could be made a lot better,
14:31:22  <dominictarr>but thing is irc is already successful
14:32:12  <dominictarr>no body but a few idealists are gonna go to a distributed for the sake of being distributed unless it's actually better because of that
14:32:30  <mikolalysenko>the real question with all these distributed things is who pays for the bandwidth, storage and processing?
14:32:43  <mikolalysenko>and what incentives do they have to do this other than the kindness of their heart
14:32:50  <dominictarr>mikolalysenko: so, bittorrent has an interesting approach to that.
14:32:58  <mikolalysenko>dominictarr: yeah, free movies
14:33:19  <dominictarr>it goes much deeper than than
14:33:23  <dominictarr>that
14:33:29  <mikolalysenko>freenode is sustainable by donations since the costs are fairly modest
14:33:39  <mikolalysenko>but something like github would be pretty expensive I think
14:33:52  <mikolalysenko>especially since you need to have some level of persistence across all projects
14:34:09  <mikolalysenko>and without some kind of moderation it would be too easy to abuse some sort of file hosting service like that
14:34:11  <dominictarr>mikolalysenko: bittorrent has game theory baked into the protocol, so nodes pull from other nodes who's interests align with theirs
14:34:27  <isaacs>github has very low tolerance for inconsistency
14:34:36  <dominictarr>isaacs: yes.
14:34:39  <isaacs>and slightly lower tolerance for unavailability
14:34:55  <dominictarr>nobody has really figured out how to build distributed website things yet
14:34:59  <isaacs>luckily, they're built on a system with cryptographic shas and straightforward backups
14:35:05  <isaacs>dominictarr: well, that's not exactly true
14:35:13  <isaacs>dominictarr: it's not as distributed as you'd probably like
14:35:14  <dominictarr>like, you have bittorrent but the pirate bay is just a website
14:35:38  <dominictarr>isaacs: link?
14:35:46  <isaacs>dominictarr: right but you can get a high degree of high-availability with many machines and DNS
14:36:03  <isaacs>dominictarr: of course, then it's an arms race if you get attacked
14:36:44  <isaacs>you have to be able to cheaply determine the diference between attack requests and valid requests, and/or have more cpu than the attackers
14:36:55  <isaacs>and still your network can get flooded if all your servers are close to one another.
14:37:08  <isaacs>but that's typically much harder to do
14:37:13  <dominictarr>yes - that is the weakness of centralization
14:37:43  <isaacs>the strength of centralization is that it allows you to choose both consistency and availability
14:37:48  <isaacs>since there's no network to partition
14:38:03  <dominictarr>true.
14:38:20  <isaacs>also, there's no data to move around
14:38:23  <isaacs>so it's WAY cheaper
14:38:52  * jibayquit (Remote host closed the connection)
14:39:06  <isaacs>anyway... this conversation is so annoying on twitter. because you and i can talk about it like civilized people and listen to each other.
14:39:12  <isaacs>on twitter it goes like this:
14:39:15  <isaacs>RAR GITHUB IS DOWN!
14:39:15  <LOUDBOT>CRUISE CONTROL ENGAGED NIGGERS
14:39:23  <dimadima>woah
14:39:31  <isaacs>YOUR A STUPID BECAUZE GIT IS DISTRIBUTED DONT YOU KNOW THAT!
14:39:31  <LOUDBOT>IT'S LIKE YOU MADE MY DAY, BLEW MY MIND, AND KNOCKED MY SOCKS OFF ALL AT ONCE
14:39:51  <dimadima>I LOVE SUBWAY SANDWICHES
14:39:52  <LOUDBOT>NEEDS MOAR FLAX SEED
14:39:57  <dimadima>fuck you LOUDBOT
14:39:59  <isaacs>the problem is that the snark fits in 140 characters, and the rational explanation of why the snark is misguided doesn't.
14:40:10  <dominictarr>it's best to mostly avoid twitter arguments.
14:40:23  <mikolalysenko>so how does github work internally anyway?
14:40:25  <dimadima>ppl have been down on twitter lately. lots of waxing philosophical in HN comments about it
14:40:28  * thlorenz_joined
14:40:47  <dimadima></end twittertalk>
14:40:49  <mikolalysenko>it must distribute hosting at some level
14:41:01  <dominictarr>mikolalysenko: load balancer
14:41:11  <mikolalysenko>hmm
14:41:15  <dominictarr>git repos stored in a database instead of filesystem
14:41:26  <mikolalysenko>that makes sense
14:41:55  <mikolalysenko>so it looks like: load balancer <--> web servers <--> database
14:42:03  <dominictarr>it's interesting the observe the different social dynamics of various communication mediums
14:42:25  <dominictarr>like, mailing lists encourage armchair architects, etc
14:42:29  <dominictarr>lots of opinions
14:42:41  <dominictarr>github issues much much less
14:43:05  <dominictarr>because you only get emailed if you are a maintainer or have found (had) an issue.
14:43:42  <dominictarr>and compare IRC to gchat
14:43:57  <dominictarr>i.e. a chat room vs one-on-one
14:44:59  * tmcwjoined
14:45:25  * fotoveritejoined
14:45:39  * thlorenz_quit (Ping timeout: 276 seconds)
14:46:09  <dominictarr>isaacs: the web is pretty distributed anyway. you don't have to ask any one's permission to create a website.
14:46:38  <isaacs>right
14:46:49  <isaacs>so, that's kind of another problem with "distributed"
14:46:52  <isaacs>it means a lot of stuff.
14:47:32  <isaacs>it can mean: democratic, low barrier to entry, geographically spread out, multiple nodes, etc.
14:47:59  * kevino80quit (Remote host closed the connection)
14:48:36  <dominictarr>true. often, when people talk about distributed systems, they are talking within a datacenter
14:48:58  <dominictarr>in other cases, within multiple cores on the same chip!
14:49:07  <dominictarr>although, many of the same principles apply
14:49:26  * kevino80joined
14:50:06  <dominictarr>i.e. designing an architecture that makes the most of some "cheap" access point… like, L1 cache over main memory
14:50:15  <mikolalysenko>I think the real goal with distributed is to get things to scale with money
14:50:16  <dominictarr>or main memory over network or disk
14:50:59  <dominictarr>mikolalysenko: you mean, so that you can make something faster by just buying more servers?
14:51:11  <mikolalysenko>yeah
14:51:28  <mikolalysenko>basically if your demand increases, you want to be able to scale supply accordingly
14:52:05  <mikolalysenko>of course the alternative is you just charge more to bring things back in line, but a lot of online services are averse to that sort of thing
14:52:57  <dominictarr>also, when you scale something the nature of other things change
14:53:11  <dominictarr>something that wasn't important at low scale becomes important.
14:53:43  <dominictarr>alan kay makes a good point about this in "the computer revolution hasn't happened yet"
14:54:08  <dominictarr>that pretty much anyone can nail some planks together to make a dog house
14:54:27  <dominictarr>but you can't just scale that up 100 times to get a cathedral
14:54:46  <mikolalysenko>well, I am thinking in more modest terms
14:54:52  <dominictarr>because mass ~= scale^3
14:55:10  <mikolalysenko>so the economic solution here is to increase price
14:55:20  <dominictarr>100 times is modest!
14:56:04  <dominictarr>compare say, a single use blog site, with say, a facebook
14:56:12  <dominictarr>or a github, for that matter.
14:58:05  <mikolalysenko>the real issue with a lot of online stuff is that the moment you go beyond "free" usage drops off dramatically
14:58:25  <mikolalysenko>so you can't tune the supply/demand curve to get the right availability
14:59:37  <dominictarr>somethings are easier to give away than to charge for
14:59:40  <dominictarr>like radio and tv
15:00:09  <mikolalysenko>I wonder if there is some way to interpret advertisements as a kind of cost/charge
15:00:15  <dominictarr>when you have toll roads, a significant part of the price goes to pay for administering the toll
15:00:30  <dominictarr>that is why open source is free
15:00:42  <dominictarr>charging for it would take half the time
15:00:45  <mikolalysenko>yeah, but open source is a very different sort of arrangement
15:01:04  <dominictarr>sometimes you get value back
15:01:14  <dominictarr>but you don't know who you will get it back from
15:01:24  <dominictarr>so it's easiest to give it away to everyone.
15:01:41  <mikolalysenko>so I don't really think of open source as a for profit thing. it is about creating interesting and meaningful things
15:01:58  <mikolalysenko>but the pricing basically comes down to covering infrastructure costs
15:02:35  <mikolalysenko>with open source, you create something and it is basically "done"
15:02:51  <dominictarr>true.
15:02:54  <mikolalysenko>you can just walk away from it and it doesn't cost you anything after the initial up front work in thinking about it
15:02:59  <mikolalysenko>which is where most of the fun is anyway
15:03:00  * yorickquit (Remote host closed the connection)
15:03:15  <mikolalysenko>but in a service you have a recurring set of hardware and administrative costs
15:03:28  <dominictarr>right.
15:03:34  <mikolalysenko>so you need to have some way to support that or else it will invariably collapse in on itself
15:03:49  <mikolalysenko>unless you can make it self sustaining (like bittorrent)
15:03:50  <dominictarr>yes. it's about allocating resources.
15:04:13  <mikolalysenko>yeah, which is why I think a lot of the discussion about distributed systems and scaling really boils down to economics
15:04:25  <dominictarr>totally.
15:04:36  <dominictarr>and game theory, in p2p.
15:05:12  <mikolalysenko>maybe the solution to scaling problems is to have some kind of dynamic pricing
15:05:40  <mikolalysenko>perhaps using something like bitcoins, I don't know
15:06:47  <dominictarr>yeah cos it's like this https://twitter.com/luk/status/368242021506351104
15:08:02  <dominictarr>micropayments might be feasible with bitcoins. not really with creditcards though.
15:08:37  <isaacs>dominictarr: the ^3 factor is also mentioned in Mythical Man-Month
15:08:49  * coderzachjoined
15:08:55  <isaacs>dominictarr: er, no, he talks about it being *9, not ^3
15:09:09  <dominictarr>oh, and there is also this thing http://en.wikipedia.org/wiki/M-Pesa
15:09:11  * AvianFlujoined
15:09:13  <isaacs>dominictarr: but, basically, productizing a feature is 3x the cost, and scaling a product is 3x the cost
15:09:16  <isaacs>or something like that
15:09:59  <dominictarr>isaacs: I was refering to the physical mass
15:10:19  <isaacs>dominictarr: yeah
15:10:23  <isaacs>dominictarr: well, volume
15:10:28  <mikolalysenko>dominictarr: well actually that kind of depends. at the extreme limit mass actually scales as radius^2
15:10:30  <dominictarr>exactly.
15:10:31  * mirkokieferquit (Quit: mirkokiefer)
15:10:35  <mikolalysenko>but that is only in black holes...
15:10:41  <isaacs>dominictarr: assuming that densisity isn't changing
15:10:50  <isaacs>dominictarr: it'd apply to mass as well
15:10:59  <isaacs>but a doghouse is probably denser than a cathedral
15:11:10  <dominictarr>his point was that you'd have to change density, becasue otherwise your building will collapse
15:11:19  <isaacs>how do you measure the density of facebook?
15:11:19  <dominictarr>and look like a pile of rocks
15:11:22  <isaacs>vs a blog?
15:11:46  <dominictarr>you are being too literally literal
15:13:26  <dominictarr>hmm, blog: facebook !:: dog house : cathedral
15:13:49  <dominictarr>more like a dog hotel?
15:15:16  <dominictarr>also there is this http://en.wikipedia.org/wiki/M-Pesa (regards payment systems)
15:19:40  * mikealjoined
15:21:59  <guybrush>haha if paying with money is to expensive just use anything that is not expensive to transfer as currency and pay with that
15:22:07  * fotoveritequit (Ping timeout: 264 seconds)
15:27:14  * mikealquit (Quit: Leaving.)
15:30:14  * fotoveritejoined
15:33:26  * AvianFluquit (Ping timeout: 240 seconds)
15:33:50  * coderzachquit (Quit: coderzach)
15:37:08  * AvianFlujoined
15:37:34  <dominictarr>guybrush: yeah. although, then you run into money laundry laws.
15:38:00  <dominictarr>that is why this stuff is taking off in africa. the banking establishment is not so entrenched.
15:38:15  <dominictarr>and people want to transfer much smaller amounts.
15:38:27  <guybrush>cool stuff, didnt know about m-pesa at all. first time i hear about it
15:40:52  * thlorenz_joined
15:41:14  * coderzachjoined
15:41:45  <mikolalysenko>yeah. it is super annoying that it is so difficult to move small amounts of money around on the internet
15:42:01  <mikolalysenko>I think that may actually be one of the reasons why newspapers are failing online actually
15:42:13  <mikolalysenko>since the right price point for a newspaper is probably < $1.00
15:42:40  <guybrush>it would be cool when everyone was using flattr
15:42:46  <guybrush>that basically solves the problem
15:43:25  <guybrush>but somehow its not used by everyone :D
15:43:55  <mikolalysenko>I think it is hard to set up and scary for a lot of people
15:44:23  <mikolalysenko>it isn't clear to me what a viable pathway for the adoption of micropayments would be
15:44:34  <mikolalysenko>it is also one of those ideas that is "obvious" and has been tried many times before
15:44:48  <mikolalysenko>but most of them have been killed by the big credit card companies in some way or another
15:45:02  * thlorenz_quit (Ping timeout: 240 seconds)
15:49:41  <guybrush>thats the reason it works in africa for sure
15:50:01  <guybrush>since most people just cant afford a bank-account
15:53:09  * mirkokieferjoined
15:56:38  * shamajoined
15:58:41  * AvianFlu_joined
15:59:39  * AvianFluquit (Read error: Connection reset by peer)
16:05:54  * coderzachquit (Quit: coderzach)
16:09:50  * mirkokieferquit (Quit: mirkokiefer)
16:13:40  * tmcwquit (Remote host closed the connection)
16:14:26  * mirkokieferjoined
16:16:04  * tmcwjoined
16:19:47  * coderzachjoined
16:23:42  * fotoveritequit (Quit: fotoverite)
16:36:29  * tmcwquit (Remote host closed the connection)
16:37:21  * AvianFlu_quit (Remote host closed the connection)
16:40:42  * Kesslerquit (Ping timeout: 264 seconds)
16:41:13  * thlorenz_joined
16:42:19  * spionquit (Ping timeout: 246 seconds)
16:42:47  * calvinfojoined
16:44:24  * coderzachquit (Quit: coderzach)
16:45:26  * thlorenz_quit (Ping timeout: 240 seconds)
16:45:37  * mirkokieferquit (Quit: mirkokiefer)
16:45:38  * tmcwjoined
16:47:53  <dominictarr>guybrush: if you read the innovator's delemma (the book which started the modern usage of the term "disruption")
16:48:02  <dominictarr>(which eveyone misuses…)
16:48:29  * kevino80quit (Remote host closed the connection)
16:48:47  <dominictarr>anyway, the book shows that disruptive innovation has to start in a place that is so small and worthless that the big players just arn't interested.
16:54:09  * AvianFlujoined
17:01:13  * ins0mniaquit (Ping timeout: 243 seconds)
17:09:10  * thlorenzquit (Remote host closed the connection)
17:09:18  * AvianFlu_joined
17:10:11  * AvianFluquit (Read error: Connection reset by peer)
17:13:59  * AvianFlu_quit (Read error: Connection reset by peer)
17:14:16  * AvianFlujoined
17:15:33  * coderzachjoined
17:17:46  * spionjoined
17:22:01  * mikealjoined
17:22:33  * mikealquit (Client Quit)
17:22:54  * AvianFlu_joined
17:23:38  * AvianFluquit (Read error: Connection reset by peer)
17:24:22  * mikealjoined
17:26:54  * jxsonjoined
17:32:53  * AvianFlujoined
17:33:10  * AvianFlu_quit (Read error: Connection reset by peer)
17:34:12  * fotoveritejoined
17:37:29  * dguttmanquit (Quit: dguttman)
17:41:42  * thlorenzjoined
17:41:47  * dguttmanjoined
17:42:45  <Raynos>I'm trying to use "~/" in npm scripts in package.json but it doesn't seem to expand
17:43:48  * mirkokieferjoined
17:44:37  * spionquit (Ping timeout: 246 seconds)
17:46:17  <dominictarr>it runs sh -c command
17:46:21  * thlorenzquit (Ping timeout: 276 seconds)
17:46:23  <dominictarr>does it expand in there/
17:46:26  <dominictarr>?
17:46:31  * mikolalysenkoquit (Ping timeout: 260 seconds)
17:51:30  * mikolalysenkojoined
17:55:01  <Raynos>I put it in $(echo ~/foo)
17:55:06  <Raynos>that expands properly
17:59:16  * AvianFluquit (Read error: Connection reset by peer)
17:59:29  * ins0mniajoined
17:59:42  * AvianFlujoined
18:00:22  <dominictarr>Raynos: whats wrong with $HOME/
18:00:30  <Raynos>does that work too ?
18:00:42  <dominictarr>yes
18:01:03  <dominictarr>surely
18:01:13  <Raynos>cool :)
18:01:14  <Raynos>it does
18:03:51  * defunctzombie_zzchanged nick to defunctzombie
18:14:08  * jergasonquit (Remote host closed the connection)
18:19:26  * hij1nxquit (Ping timeout: 240 seconds)
18:20:49  <defunctzombie>Raynos: have you worked with ical and calendar event stuff much?
18:21:03  * mirkokieferquit (Quit: mirkokiefer)
18:21:06  <Raynos>I have an ical unit test in production that fails all the time
18:21:10  <Raynos>and it makes me rage
18:21:12  <Raynos>but otherwise no
18:31:23  * fotoveritequit (Ping timeout: 268 seconds)
18:37:00  <dominictarr>wow, http://component.io/
18:37:07  <dominictarr>uses a table based layout!
18:37:30  <dominictarr>oh, maybe that is exaggaration
18:40:17  <dominictarr>we really need a fix html&css way more than we need to fix javascript
18:42:04  * thlorenzjoined
18:44:08  <Raynos>ive been thinking about structural CSS
18:44:15  <dominictarr>heh, spent yesterday writing C++ and today wrangling CSS
18:44:18  * hij1nxjoined
18:44:23  * jxsonquit (Remote host closed the connection)
18:44:27  <dominictarr>but I am more frustrated from css
18:45:27  <Raynos>I want to implement something like row("1 3", h(...), h(...))
18:45:45  <Raynos>that returns a hyperscript thing that has inline styles for doing your normal 4 column row with 1 & 3 per the two elements
18:45:48  <dominictarr>Raynos: like a grid thing?
18:45:56  <dominictarr>yeah thinking about that too
18:46:01  <Raynos>I've implemented the function using classes & external css sheets
18:46:27  <dominictarr>I think what css really needs is nestable scopes
18:46:31  <Raynos>https://gist.github.com/Raynos/a0e5175751b28da4d7cc
18:46:46  <Raynos>but I could imagine re-implementing it by inlining the styles for those classes
18:46:48  * thlorenzquit (Ping timeout: 276 seconds)
18:49:10  <Raynos>but it's difficult because I have to re-invent all the CSS pseudo classes using inline styles
18:52:03  <Raynos>dominictarr: https://gist.github.com/Raynos/a0e5175751b28da4d7cc
18:52:10  <Raynos>I think that's how I would do it without external styles
18:52:19  <dominictarr>what does it do?
18:52:34  * mirkokieferjoined
18:53:34  <Raynos>dominictarr: https://gist.github.com/Raynos/a0e5175751b28da4d7cc#file-x-js-L4
18:53:55  <dominictarr>ah
18:54:02  <Raynos>it basically takes your elements and splits them up in columns
18:54:16  <dominictarr>I see that you divide the padding evenly in the middle ones
18:54:30  <dominictarr>it's kinda insane that css doesn't just have that built in
18:54:47  <dominictarr>also, worth noting, bootstrap does that differently,
18:55:19  <dominictarr>each thing has margin-left but no margin right
18:56:14  <dominictarr>hmm, guess since this uses floats it will stack automatically on a small screen?
18:57:25  <dominictarr>what if you had a thing where you could specify position relative to the parent?
18:58:09  <dominictarr>so, you could for example, set something to be a little lighter than the parent node.
18:58:18  * dguttmanquit (Read error: Connection reset by peer)
18:58:18  <dominictarr>like, you could access the inheritence
18:59:23  * fotoveritejoined
19:00:34  * mirkokieferquit (Quit: mirkokiefer)
19:00:34  * dguttmanjoined
19:01:01  <Raynos>Im not sure how to do these things
19:01:12  <Raynos>but thats code I use in production with the CSS from our styles inlined into it
19:01:34  <Raynos>i do think it would be cool if I could just `npm i jsonml-row` and use it without managing CSS assets
19:02:25  <Raynos>dominictarr: btw I have a lot of success with the [tagNameOrSelector, properties, children] way of structuring templates in production, its awesome
19:03:49  <dominictarr>okay, cool.
19:04:25  * hij1nxquit (Ping timeout: 246 seconds)
19:11:51  * thlorenzjoined
19:18:24  * hij1nxjoined
19:20:08  * mirkokieferjoined
19:25:52  * ednapiranhajoined
19:29:04  * dguttmanquit (Quit: dguttman)
19:37:03  * yorickjoined
19:42:30  * thlorenz_joined
19:45:49  * mirkokieferquit (Quit: mirkokiefer)
19:46:38  * thlorenz_quit (Ping timeout: 240 seconds)
19:47:13  * mikealquit (Quit: Leaving.)
20:04:39  * kevino80joined
20:05:38  * kevino80quit (Remote host closed the connection)
20:08:21  * no9quit (Remote host closed the connection)
20:10:46  * thlorenz_joined
20:13:34  * ednapiranhaquit (Remote host closed the connection)
20:14:56  * thloren__joined
20:15:10  * thlorenz_quit (Read error: Connection reset by peer)
20:17:59  * thloren__quit (Read error: Connection reset by peer)
20:18:24  * thlorenz_joined
20:19:05  * mikealjoined
20:20:00  * thlorenz_quit (Read error: Connection reset by peer)
20:20:11  * thlorenz_joined
20:24:35  * thlorenz_quit (Ping timeout: 245 seconds)
20:27:43  * thlorenz_joined
20:29:23  * thlorenz_quit (Read error: Connection reset by peer)
20:29:44  * thlorenz_joined
20:29:48  * nicholasfquit (Read error: Connection reset by peer)
20:30:18  * nicholasfjoined
20:32:00  * thloren__joined
20:32:12  * calvinfoquit (Quit: Leaving.)
20:33:13  * thlore___joined
20:33:14  * thloren__quit (Read error: Connection reset by peer)
20:34:10  * thlorenz_quit (Ping timeout: 245 seconds)
20:34:59  * tmcwquit (Remote host closed the connection)
20:35:28  * thlore___quit (Read error: Connection reset by peer)
20:35:49  * thlorenz_joined
20:36:45  * yorickquit (Remote host closed the connection)
20:37:13  * thlorenz_quit (Read error: Connection reset by peer)
20:37:31  * thlorenz_joined
20:38:01  * jergasonjoined
20:39:05  * tmcwjoined
20:39:14  * thlorenz_quit (Read error: Connection reset by peer)
20:39:26  * thlorenz_joined
20:41:11  * thloren__joined
20:41:12  * thlorenz_quit (Read error: Connection reset by peer)
20:43:17  * thlorenz_joined
20:43:17  * thloren__quit (Read error: Connection reset by peer)
20:45:08  * thlorenz_quit (Read error: Connection reset by peer)
20:45:32  * thlorenz_joined
20:46:38  * mk30_joined
20:47:06  * thlorenz_quit (Read error: Connection reset by peer)
20:47:31  * thlorenz_joined
20:49:07  * thloren__joined
20:49:08  * thlorenz_quit (Read error: Connection reset by peer)
20:50:57  * thlorenz_joined
20:50:58  * thloren__quit (Read error: Connection reset by peer)
20:52:57  * thloren__joined
20:52:57  * thlorenz_quit (Read error: Connection reset by peer)
20:54:36  * thlorenz_joined
20:54:37  * thloren__quit (Read error: Connection reset by peer)
20:56:48  * thloren__joined
20:56:49  * thlorenz_quit (Write error: Connection reset by peer)
20:58:40  * thlorenz_joined
20:58:40  * thloren__quit (Read error: Connection reset by peer)
21:00:25  * thloren__joined
21:00:25  * thlorenz_quit (Read error: Connection reset by peer)
21:02:50  * thlorenz_joined
21:02:50  * thloren__quit (Read error: Connection reset by peer)
21:04:52  * thloren__joined
21:04:52  * thlorenz_quit (Read error: Connection reset by peer)
21:06:00  * thlorenz_joined
21:06:00  * thloren__quit (Read error: Connection reset by peer)
21:07:16  * thloren__joined
21:07:17  * thlorenz_quit (Read error: Connection reset by peer)
21:08:51  * thlorenz_joined
21:08:51  * thloren__quit (Read error: Connection reset by peer)
21:12:10  * thlorenz_quit (Read error: Connection reset by peer)
21:12:17  * thlorenz_joined
21:14:07  * thloren__joined
21:14:07  * thlorenz_quit (Read error: Connection reset by peer)
21:14:38  * calvinfojoined
21:15:14  * thloren__quit (Read error: Connection reset by peer)
21:15:42  * thlorenz_joined
21:18:33  * thlorenz_quit (Read error: Connection reset by peer)
21:19:00  * thlorenz_joined
21:20:30  * thloren__joined
21:20:31  * thlorenz_quit (Read error: Connection reset by peer)
21:21:45  * thlorenz_joined
21:21:46  * thloren__quit (Read error: Connection reset by peer)
21:24:06  * thlorenz_quit (Read error: Connection reset by peer)
21:24:07  * thloren__joined
21:24:40  * Kesslerjoined
21:25:52  * thloren__quit (Read error: Connection reset by peer)
21:25:57  * thlorenz_joined
21:27:35  * thloren__joined
21:27:36  * thlorenz_quit (Read error: Connection reset by peer)
21:29:41  * thloren__quit (Read error: Connection reset by peer)
21:29:57  * thlorenz_joined
21:30:09  * mikealquit (Quit: Leaving.)
21:30:21  * AvianFluquit (Remote host closed the connection)
21:31:59  * thloren__joined
21:32:12  * thlorenz_quit (Read error: Connection reset by peer)
21:33:06  * thlorenz_joined
21:33:07  * thloren__quit (Read error: Connection reset by peer)
21:33:35  * thlorenzquit (Remote host closed the connection)
21:35:25  * thlorenz_quit (Read error: Connection reset by peer)
21:35:54  * thlorenz_joined
21:38:02  * thloren__joined
21:38:03  * thlorenz_quit (Read error: Connection reset by peer)
21:39:53  * thlorenzjoined
21:39:53  * thloren__quit (Read error: Connection reset by peer)
21:40:52  * mirkokieferjoined
21:41:23  * thlorenzquit (Read error: Connection reset by peer)
21:41:42  * thlorenzjoined
21:42:08  * mirkokieferquit (Client Quit)
21:42:17  * mikealjoined
21:43:06  * thlorenzquit (Read error: Connection reset by peer)
21:43:31  * thlorenzjoined
21:44:39  * thlorenz_joined
21:44:39  * thlorenzquit (Read error: Connection reset by peer)
21:45:07  * thlorenzjoined
21:45:22  * AvianFlujoined
21:46:50  * thloren__joined
21:46:51  * thlorenzquit (Read error: Connection reset by peer)
21:47:18  * tilgovijoined
21:48:16  * thloren__quit (Read error: Connection reset by peer)
21:48:39  * thlorenzjoined
21:50:15  <thlorenz_>dominictarr: I need to do an async op inside a through(ondata) and can't figure out how to do this properly
21:50:15  * thlorenzquit (Read error: Connection reset by peer)
21:50:18  * thlorenz_changed nick to thlorenz
21:50:41  * thlorenz_joined
21:50:44  <dominictarr>thlorenz: like, a map?
21:51:06  <dominictarr>is the order of the output important?
21:51:13  <thlorenz>yeah or just a state change -- i.e. I'm aggregating something
21:51:18  <jcrugzz>thlorenz_ cant you do an async operation with the new Transform streams?
21:51:49  <thlorenz>jcrugzz: that's the other thing I'm wondering does that work? cause I ran into problems with that before
21:52:16  <jcrugzz>thlorenz: hmm well guess i havent really tested it. planned on using it though lol, so i hope?
21:52:19  * thlorenz_quit (Read error: Connection reset by peer)
21:52:19  <chrisdickinson>thlorenz_: is ordering important internally or only at the output level?
21:52:26  * thlorenz_joined
21:52:37  <chrisdickinson>sorry, did you get that last message?
21:52:41  <thlorenz>no, I'm just aggregating stuff
21:52:41  <thlorenz>I'll send some code up - hold on
21:52:50  <thlorenz>ordering not important
21:52:53  <chrisdickinson>cool
21:53:20  <chrisdickinson>the only thing i've ever had to worry about in that case was that you have to specify your own `end` handler
21:53:28  <dominictarr>thlorenz: jcrugzz you have pretty much the same problem with either
21:53:30  <chrisdickinson>in case you get an `end` while you're busy processing the last input
21:53:45  <thlorenz>chrisdickinson: yep getting end too early
21:53:54  <thlorenz>cause I guess the pipe flow is sync?
21:53:59  <chrisdickinson>yep, basically you need to keep a count of pending transactions
21:54:04  * thlorenz_quit (Read error: Connection reset by peer)
21:54:07  <thlorenz>wow that sucks
21:54:09  * thloren__joined
21:54:14  <chrisdickinson>the input can end before your transform is done
21:54:14  <jcrugzz>that is unfortunate
21:54:22  <chrisdickinson>it's not too bad really
21:54:23  <jcrugzz>but makes sense
21:54:27  <dominictarr>thlorenz: basically, the simplest approach is to keep a count of current transactions
21:54:30  <thlorenz>I guess same is true for through then
21:54:38  <jcrugzz>yea thats not too bad
21:54:42  <thlorenz>thanks chrisdickinson, dominictarr will keep count
21:54:44  <thlorenz>:)
21:54:56  <jcrugzz>yea thanks guys, will need that
21:54:56  <chrisdickinson>i like to wrap it up in a `check` function that i call whenever i queue
21:55:06  <dominictarr>I do it like this https://github.com/DamonOehlman/async-comparison/blob/master/child-dirs/nude/index.js#L6-L18
21:55:13  <chrisdickinson>and the end function just sets `ended = true`
21:55:15  <thlorenz>so you count in ondata not onend chrisdickinson?
21:55:17  <chrisdickinson>(and checks()`
21:55:27  * thloren__quit (Read error: Connection reset by peer)
21:55:34  <chrisdickinson>thlorenz: ondata, yes
21:56:10  * AvianFluquit (Remote host closed the connection)
21:56:12  <thlorenz>dominictarr: but thats just async stuff - for that I have asyncreduce/runnel: https://github.com/DamonOehlman/async-comparison/blob/master/child-dirs/asyncreduce/index.js
21:56:17  <thlorenz>(same problem)
21:56:44  <thlorenz>chrisdickinson: ok, I'll give it a go
21:57:18  * thlorenz_joined
21:57:25  <dominictarr>thlorenz: is asyncreduce parallel, or series?
21:57:30  <thlorenz>series
21:57:35  <chrisdickinson>thlorenz: https://gist.github.com/chrisdickinson/fe0b99e34f099cfc6b57
21:57:41  <chrisdickinson>is how i usually do it
21:58:08  <thlorenz>runnel is series cause it allows passing result of prev op to the next: https://github.com/thlorenz/runnel#parameter-passing
21:58:28  <thlorenz>dominictarr: not as performant, but sufficient in most cases I encounter
21:58:36  <thlorenz>chrisdickinson: thanks, looking
21:58:44  <Raynos>thlorenz: https://gist.github.com/Raynos/b1c8623dffe09eb759db
21:58:48  <dominictarr>sure
21:59:12  <thlorenz>Raynos: interesting
21:59:12  <chrisdickinson>Raynos: the default end may end in the middle of `doThing` if not specified ):
21:59:17  <Raynos>thlorenz: handling end is a pain
21:59:25  <Raynos>I have a module for this :p
21:59:31  <dominictarr>if the reduce is commutative it could work parallel or serial
21:59:34  <thlorenz>Raynos: link?
22:00:00  <thlorenz>dominictarr: yeah, you could write another runnel version that does that
22:00:07  <dominictarr>hmm, or have an async map then a sync combine
22:00:16  * thloren__joined
22:00:18  <Raynos>https://github.com/Raynos/end-stream
22:00:24  <Raynos>That's only writable, not duplex :(
22:00:36  * thlorenz_quit (Read error: Connection reset by peer)
22:00:39  <Raynos>thlorenz: using stream.Transform just does it for you
22:00:45  <thlorenz>Raynos: I have a computation per streamed item though
22:00:53  <Raynos>thlorenz: https://github.com/rvagg/through2
22:00:55  <thlorenz>Raynos: had problems with Transform
22:00:56  <Raynos>through2 has a callback
22:01:04  <thlorenz>I know, it's just a wrapper
22:01:17  <thlorenz>but it can't fix the problem I have with Transform
22:01:36  * thloren__quit (Read error: Connection reset by peer)
22:01:51  * thlorenz_joined
22:01:55  <thlorenz>chrisdickinson: so you expect your end to get called multiple times right?
22:02:04  <chrisdickinson>no, end only gets called once
22:02:05  <thlorenz>ah, get it
22:02:09  <thlorenz>see it now
22:02:22  <thlorenz>that's dirty ;) why can't this work nicer?
22:02:57  <thlorenz>i.e. count for me under the hood and expect me to queue a result for each item
22:03:05  <thlorenz>if I wanna drop I'd queue null
22:03:08  <chrisdickinson>what if you queue multiple times on a single input?
22:03:18  <chrisdickinson>tokenizers, zlib, etc etc
22:03:26  <thlorenz>chrisdickinson: good point, that's what I was trying to do with my Transform
22:03:40  <thlorenz>and ran into all kind of problems -- mainly write after stream was closed
22:03:42  <chrisdickinson>(or filter inputs)
22:03:49  <thlorenz>chrisdickinson: yes, you are right
22:03:57  <chrisdickinson>i kind of like that the only really complicated case is the one to many case
22:04:07  * thloren__joined
22:04:31  <thlorenz>well in my case it's just one to one except that to get the one I do an async op
22:06:08  <thlorenz>chrisdickinson dominictarr Raynos: here is some context of what I'm trying to do: https://github.com/thlorenz/valuepack-mine/blob/master/lib/get-github-logins.js#L36-L61
22:06:36  * thlorenz_quit (Ping timeout: 268 seconds)
22:06:39  * thloren__quit (Read error: Connection reset by peer)
22:06:43  * thlorenz_joined
22:07:24  <thlorenz>gonna try to this.queue(null, JSON.stringify(pack)) on line 42 and see if that gets better results
22:07:36  <thlorenz>but then I'll have to add some delimiter to unfuddle it on the other end
22:07:59  * thlorenz_quit (Read error: Connection reset by peer)
22:08:19  * thlorenz_joined
22:08:49  * AvianFlujoined
22:08:51  <chrisdickinson>ah, interesting
22:09:25  * thlorenz_quit (Read error: Connection reset by peer)
22:09:44  * thlorenz_joined
22:11:53  * thloren__joined
22:11:54  * thlorenz_quit (Read error: Connection reset by peer)
22:11:57  * tmcwquit (Remote host closed the connection)
22:12:31  <thlorenz>it's a bit more complex since I'm creating another stream in the ondata method of the userstream
22:12:32  * thloren__quit (Read error: Connection reset by peer)
22:12:46  <thlorenz>so I need to cleanly emit end from the inner and then the outer one
22:13:05  * thlorenz_joined
22:13:06  <thlorenz>chrisdickinson: trying to thread your check impl. into it now
22:14:09  <chrisdickinson>thlorenz: so you absolutely will be calling `queue` or `emit('error` for every item entered into your stream?
22:14:28  <tanepiper>Anyone know with request if there is a way to a) pass a querystring as a string or b) have it *not* do this: ?typeid[0]=34&typeid[1]=35&typeid[2]=36&typeid[3]=37&typeid[4]=38&typeid[5]=39&typeid[6]=40 but rather ?typeid=34&typeid=35&typeid=36&typeid=37&typeid=38&typeid=39&typeid=40
22:14:39  <tanepiper>(and yes I can just send it as the whole url but it
22:14:46  <tanepiper>it's kind of defeating the point
22:15:13  <thlorenz>chrisdickinson: I could, since I'm aggregating into the closed over variable
22:15:28  <thlorenz>seems totally unclean to me, but don't know how to do this better
22:15:36  <thlorenz>object stream maybe?
22:16:11  * thloren__joined
22:16:15  <thlorenz>but since I'm aggregating into another var, what I emit is unimportant and thus can be adapted
22:16:32  * thlorenz_quit (Read error: Connection reset by peer)
22:17:56  * tmcwjoined
22:18:23  * thloren__quit (Read error: Connection reset by peer)
22:18:28  * thlorenz_joined
22:20:09  <chrisdickinson>thlorenz: something like https://gist.github.com/chrisdickinson/6ba25896cf7b8463065b ?
22:20:44  <chrisdickinson>used like through, except sans any keeping track of pending requests
22:21:38  * thloren__joined
22:23:15  * thlorenz_quit (Ping timeout: 276 seconds)
22:23:51  * thloren__quit (Read error: Connection reset by peer)
22:24:15  * thlorenz_joined
22:24:17  <thlorenz>chrisdickinson: thanks, working on the counting bit for both streams
22:25:44  <thlorenz>will send something up once I got something working -- seems to be a common problem people have
22:26:03  <thlorenz>may be a while (wife is bugging me about dinner ;) )
22:26:09  <chrisdickinson>:)
22:26:41  * thlorenz_quit (Read error: Connection reset by peer)
22:26:47  * mikealquit (Quit: Leaving.)
22:27:05  * thlorenz_joined
22:27:45  * mikealjoined
22:27:59  * thlorenz_quit (Read error: Connection reset by peer)
22:28:10  * hughskjoined
22:28:26  * thlorenz_joined
22:29:45  * thloren__joined
22:29:46  * thlorenz_quit (Read error: Connection reset by peer)
22:30:12  * AvianFluquit (Remote host closed the connection)
22:31:23  * thloren__quit (Read error: Connection reset by peer)
22:31:35  * thlorenz_joined
22:32:56  * thloren__joined
22:32:56  * thlorenz_quit (Read error: Connection reset by peer)
22:35:16  * thloren__quit (Read error: Connection reset by peer)
22:35:46  * thlorenz_joined
22:38:12  * thlorenz_quit (Read error: Connection reset by peer)
22:38:32  * thlorenz_joined
22:39:58  <mbalho>anyone have a favorite module for writing CLI utilities? im overwhelmed by options
22:40:27  * thlorenz_quit (Read error: Connection reset by peer)
22:40:43  <mbalho>functionality will be similar in scope to git e.g. lots of commands with different arities
22:40:56  * thlorenz_joined
22:42:18  * thloren__joined
22:42:19  * thlorenz_quit (Read error: Connection reset by peer)
22:43:28  * thlorenz_joined
22:43:28  * thloren__quit (Read error: Connection reset by peer)
22:48:05  * thlorenz_quit (Ping timeout: 248 seconds)
22:48:32  * thlorenz_joined
22:51:00  * thlorenz_quit (Read error: Connection reset by peer)
22:51:27  * thlorenz_joined
22:51:46  * hughskquit (Read error: Connection reset by peer)
22:52:06  * hughskjoined
22:54:05  * thloren__joined
22:55:56  * thlorenz_quit (Ping timeout: 268 seconds)
22:56:23  * thloren__quit (Read error: Connection reset by peer)
22:56:43  * thlorenz_joined
22:57:57  * thloren__joined
22:57:57  * thlorenz_quit (Read error: Connection reset by peer)
22:59:15  * thloren__quit (Read error: Connection reset by peer)
22:59:23  * thlorenz_joined
23:00:15  <hij1nx>mbalho: optimist is all you need, just leverage argv._[n]
23:01:11  * thlorenz_quit (Read error: Connection reset by peer)
23:01:17  * thlorenz_joined
23:02:05  * thlorenzquit (Remote host closed the connection)
23:04:33  * thlorenz_quit (Read error: Connection reset by peer)
23:04:56  * thlorenz_joined
23:06:42  <mbalho>hij1nx: ahhhhh cool
23:06:52  <mbalho>hij1nx: didnt see that at first, good tip
23:07:18  * thlorenz_quit (Read error: Connection reset by peer)
23:07:38  * thlorenzjoined
23:07:56  <mbalho>hij1nx: also re your article, i think a graphic/diagram of the Network vs disk section would help cap the article well
23:10:21  * thlorenz_joined
23:10:38  * thlorenzquit (Read error: Connection reset by peer)
23:10:46  * fallsemoquit (Quit: Leaving.)
23:12:58  * thlorenzjoined
23:13:07  * thlorenz_quit (Read error: Connection reset by peer)
23:15:05  * thlorenzquit (Read error: Connection reset by peer)
23:15:38  * thlorenzjoined
23:16:21  * fotoveritequit (Ping timeout: 264 seconds)
23:18:14  * thlorenz_joined
23:18:28  * thlorenzquit (Read error: Connection reset by peer)
23:20:38  * thlorenz_quit (Read error: Connection reset by peer)
23:20:54  * thlorenzjoined
23:22:43  * fotoveritejoined
23:23:19  * thlorenzquit (Read error: Connection reset by peer)
23:23:44  * thlorenzjoined
23:26:08  * thlorenzquit (Read error: Connection reset by peer)
23:26:28  * thlorenzjoined
23:28:03  * thlorenz_joined
23:28:04  * thlorenzquit (Read error: Connection reset by peer)
23:29:10  * tmcwquit (Remote host closed the connection)
23:29:10  * thlorenz_quit (Read error: Connection reset by peer)
23:29:18  * thlorenzjoined
23:31:49  * thlorenzquit (Read error: Connection reset by peer)
23:31:53  * thlorenz_joined
23:32:35  * hughskquit (Quit: Leaving.)
23:34:15  * thlorenzjoined
23:34:29  * thlorenz_quit (Read error: Connection reset by peer)
23:36:40  * thlorenzquit (Read error: Connection reset by peer)
23:37:03  * thlorenzjoined
23:39:18  * thlorenzquit (Read error: Connection reset by peer)
23:39:32  * thlorenzjoined
23:40:32  * thlorenzquit (Read error: Connection reset by peer)
23:40:47  * thlorenzjoined
23:42:03  * thlorenz_joined
23:42:04  * thlorenzquit (Read error: Connection reset by peer)
23:44:30  * thlorenz_quit (Read error: Connection reset by peer)
23:44:47  * thlorenzjoined
23:47:17  * thlorenzquit (Read error: Connection reset by peer)
23:47:36  * thlorenzjoined
23:49:08  * thlorenz_joined
23:49:09  * thlorenzquit (Read error: Connection reset by peer)
23:50:29  * thlorenzjoined
23:50:29  * thlorenz_quit (Read error: Connection reset by peer)
23:52:38  * thlorenzquit (Read error: Connection reset by peer)
23:52:39  * thlorenz_joined
23:57:05  * thlorenz_quit (Ping timeout: 245 seconds)