00:00:54  <SubStack>onin23: I'm here!
00:01:39  <onin23>SubStack, i get this message: curl: (18) transfer closed with outstanding read data remaining
00:01:46  <onin23>when i try to run a test.
00:02:06  <SubStack>onin23: that message can occur when the service crashes or the test times out
00:03:10  <SubStack>jesusabdullah: usually not bad, you need some tools?
00:03:15  <onin23>but i'm just testing like a 'hello world' test...
00:03:36  <SubStack>onin23: does your test call t.end()/
00:03:42  <SubStack>s/\/$/?/
00:03:44  <onin23>yes
00:04:18  <SubStack>ok one sec, testing
00:05:06  <onin23>here's my sample test.js -> http://pastie.org/4151451
00:05:14  <jesusabdullah>SubStack: already got it dealt with actually :) Thanks
00:05:15  <SubStack>ok I just ran a simple test and mine ran ok
00:05:23  <SubStack>checking your test file
00:05:54  <SubStack>onin23: oh I'm afriad t.createWindow() is a little messed up right now
00:06:05  <SubStack>we rolled out a new proxy system and it has bugs
00:06:26  <SubStack>onin23: but on the plus side, there's a new open-source testling you can run yourself for headless testing using real browsers I'm working on
00:06:55  <SubStack>it's on the redux branch of https://github.com/substack/testling/tree/redux
00:07:19  <SubStack>onin23: oh aha I know
00:07:30  <SubStack>it's also partly because the t.createWindow() api changed a little
00:07:53  <SubStack>if you want to use the t param you've got to pass in { t : t } in the createWindow() call
00:08:12  <SubStack>but we just rolled this out last night and are having problems
00:08:17  <onin23>also, can i use testling to test a dynamic content of an iframe?
00:11:32  <SubStack>a page that has iframes?
00:12:05  <onin23>yes, the iframe is dynamically created, and also the content of that iframe is dynamically injected to it.
00:13:51  * _sorensenquit (Read error: Operation timed out)
00:14:29  * ryan_stevensjoined
00:15:18  <SubStack>onin23: that should work once we figure out what's wrong with the new things
00:15:41  <SubStack>the trick we're doing is injecting an inert script tag at the proxy level for all content-type: text/html
00:16:05  <SubStack>the script listens for a postMessage event to fire and opens up a channel over the postMessages
00:16:38  <SubStack>and we use that to open a dnode-protocol session with a run() function that evals source with Function() given the context you pass in as a parameter to createWindow()
00:21:32  <onin23>im getting -> error: a is not a function
00:22:08  <onin23>here's my sample test -> http://pastie.org/4151526
00:23:47  <SubStack>if you want to call testWin in the first callback you'll need to pass { testWin : testWin } in as a parameter to createWindow
00:23:51  * bradleymeckjoined
00:24:05  <SubStack>but it might not even work then because we are having issues with createWindow
00:27:04  <rowbit>SubStack, pkrumins: Encoders down:
00:27:39  <jesusabdullah>SubStack: What was your experience with permafrost like?
00:29:04  <rowbit>SubStack, pkrumins: Encoders down:
00:29:28  * xaqquit (Remote host closed the connection)
00:30:34  <rowbit>SubStack, pkrumins: Encoders down:
00:37:30  * ryan_stevensquit (Quit: Leaving.)
00:38:04  <rowbit>SubStack, pkrumins: Encoders down:
00:38:19  <SubStack>jesusabdullah: I didn't use it for anything
00:38:41  * ryan_stevensjoined
00:42:34  <rowbit>SubStack, pkrumins: Encoders down:
00:53:39  <jesusabdullah>SubStack: due to stability issues or just cause it wasn't as useful as you thought it would be?
00:58:47  <rowbit>Hourly usage stats: []
01:03:04  <rowbit>SubStack, pkrumins: Encoders down:
01:07:44  * onin23quit (Quit: Leaving)
01:21:04  <rowbit>SubStack, pkrumins: Encoders down:
01:26:04  <rowbit>SubStack, pkrumins: Encoders down:
01:58:47  <rowbit>Hourly usage stats: []
02:19:46  * bradleymeckquit (Quit: bradleymeck)
02:42:04  <rowbit>SubStack, pkrumins: Encoders down:
02:51:04  <rowbit>SubStack, pkrumins: Encoders down:
02:58:47  <rowbit>Hourly usage stats: []
03:14:12  * ryan_stevensquit (Quit: Leaving.)
03:36:59  * bradleymeckjoined
03:37:08  * bradleymeckquit (Client Quit)
03:45:31  <SubStack>jesusabdullah: not as useful, half-baked
03:54:16  * shykeschanged nick to zz_shykes
03:58:47  <rowbit>Hourly usage stats: []
04:11:53  <jesusabdullah>SubStack: How expensive is a vm as compared to regular eval?
04:13:04  <rowbit>SubStack, pkrumins: Encoders down:
04:15:46  <ik>why do your encoders keep going down
04:15:49  <ik>and what are those
04:15:57  <ik>restart them, man!
04:20:50  <SubStack>ik: they do restart automagically!
04:21:11  <SubStack>it's not even a problem really they just die and come back right away
04:21:21  <SubStack>but it tells us there are some bugs that we need to fix, we just don't know what they are
04:44:04  * ryan_stevensjoined
04:54:20  * benatkinjoined
04:58:47  <rowbit>Hourly usage stats: []
04:59:50  * mikealquit (Quit: Leaving.)
05:03:22  * mikealjoined
05:24:04  <rowbit>SubStack, pkrumins: Encoders down:
05:26:34  <rowbit>SubStack, pkrumins: Encoders down:
05:46:47  * devaholicjoined
05:56:34  <rowbit>SubStack, pkrumins: Encoders down:
05:58:48  <rowbit>Hourly usage stats: []
05:59:49  * saijanai_quit (Quit: saijanai_)
06:48:14  <niftylettuce>BOOOOOOOOOOMM
06:48:19  <niftylettuce>AWWW YEAAAAAA
06:58:47  <rowbit>Hourly usage stats: []
07:05:04  <rowbit>SubStack, pkrumins: Encoders down:
07:19:46  * dominictarrjoined
07:20:19  * perlbotquit (Write error: Broken pipe)
07:20:26  * perlbotjoined
07:23:08  <dominictarr>houdy
07:30:54  <SubStack>hoy
07:31:53  * blakmatrixquit (Read error: Connection reset by peer)
07:32:43  * zu_joined
07:32:52  * stlsaint_joined
07:36:01  * francois`joined
07:37:29  * zuquit (*.net *.split)
07:37:29  * francois2quit (*.net *.split)
07:37:29  * stlsaintquit (*.net *.split)
07:37:29  * tm604quit (*.net *.split)
07:37:30  * tanepiperquit (*.net *.split)
07:58:47  <rowbit>Hourly usage stats: []
08:01:04  <rowbit>SubStack, pkrumins: Encoders down:
08:06:52  * tm604joined
08:10:44  * tanepiperjoined
08:14:16  * ryan_stevensquit (Quit: Leaving.)
08:20:43  <dominictarr>does anyone know if python supports version conflicts?
08:20:58  <dominictarr>it loads from $PATH, right?
08:21:29  <SubStack>pretty sure it doesn't
08:21:41  <SubStack>or if it does with some third-party utility the practice isn't widespread
08:22:32  <dominictarr>hmm. adding a import keyword to the browser is not gonna beable to work with node_modules
08:22:46  <dominictarr>because it would have to make too many round trips.
08:22:52  <dominictarr>so it would be fail.
08:23:38  <dominictarr>or else, would need server side coop...
08:24:21  <SubStack>maybe a smart loader could fetch a directory tree as json
08:24:35  <SubStack>yeah would require server cooperation though
08:24:40  <SubStack>or a build step
08:25:00  <SubStack>or it could just be slow
08:25:14  <SubStack>and then to publish to production you bundle it
08:27:18  <dominictarr>maybe, the solution would be to add a optional async require to browserify (that could send the modules you already have)
08:27:41  <dominictarr>that might satisify the hard-core browser devs to the worse in better state.
08:27:49  <dominictarr>s/in/is
08:28:22  <SubStack>well actually
08:28:26  <dominictarr>there are a few cases, where you want to load a module later
08:28:29  <SubStack>you could just fire the requests off in parallel
08:28:56  <SubStack>so it's not like you need to wait for the request you just sent to finish before sending the next one
08:29:06  <dominictarr>ah, good point.
08:29:14  <SubStack>but it is a lot of request if we traverse up the entire directory path to the root
08:29:19  <dominictarr>they can go in order down the same connection
08:29:59  <dominictarr>it would still take more roundtrips than a flat file
08:30:15  <SubStack>you can just fire off all the requests in parallel and do the callback when the most-local filled in route finishes
08:31:20  <SubStack>so if a request for 'foo' is sent at /A/B/C/D/E/F, if D sends true and E and F send false, you can stop right there
08:31:31  <SubStack>because you don't need to care what A, B, and C have
08:31:47  <dominictarr>you'd still need to get that file and then parse it before you can retrive it's modules.
08:31:55  <dominictarr>so that is another round trip
08:32:00  <SubStack>right
08:32:20  <SubStack>I think build steps are pretty unavoidable if you want sophisticated package management
08:32:40  <SubStack>but the main objection I hear from people is that a build step somewhat sucks for development
08:33:01  <SubStack>if that is the only big objection, then being slow with a lot of round-trips is probably fine because your dev build is running on localhost
08:33:30  <SubStack>so you just run the "more fasters" command and then everything goes faster before you ship
08:33:33  <guybrush>SubStack: browserify caches every module per version, right?
08:33:49  <SubStack>guybrush: not quite, it caches based on the md5 or the sha1, I forget which
08:34:03  <guybrush>like when 2 packages in my bundle require foo, one requires foo@0.0.1 the other one requirse 0.0.2
08:34:05  <SubStack>and I think it might also look at the last mtime of each file
08:34:22  <SubStack>it's complicated because bundling was getting really slow but now it's pretty fast
08:34:30  <guybrush>i think the way modules are handled in node now is not so good for browsers
08:34:42  <guybrush>you want 1 version of any module
08:34:51  <SubStack>guybrush: there's `npm flatten` that isaacs is working on for that
08:34:59  <guybrush>that sounds awesome
08:35:15  <dominictarr>if stack traces are the problem, why not just have a semantic for pointing the stacktrace at the original file?
08:35:24  <SubStack>dominictarr: and we already have that!
08:35:25  <dominictarr>bundlers could support that, and problem solved.
08:35:34  <dominictarr>hows the support?
08:35:34  <SubStack>you can even do it with browserify right now, just --debug
08:35:46  <dominictarr>what browsers?
08:35:52  <SubStack>chrome and firefox have supported it for a while
08:35:56  <guybrush>so a flattened dependency-tree would be cool, then just bundle it - you can even bundle just deltas
08:36:06  <SubStack>and really, those are the only ones that matter because that's what devs use to build websites
08:36:36  <guybrush>like a guest comes to your site and you load bundle-guest.js when i logs in you load the delta between bundle-guest.js and bundle-user.js
08:36:37  <dominictarr>guybrush, only one version of a module is bad bad bad.
08:36:50  <SubStack>dominictarr: the thing that sucks about sourcemaps is that they're not lexically scoped, they rely on hacks to the eval()/Function() system
08:36:56  <SubStack>or sourceURLs I should say
08:37:02  <guybrush>dominictarr: i thought it is good since i want to save bandwidth
08:37:05  <SubStack>sourcemaps are tricky to generate and can be big
08:37:17  <dominictarr>yes, but it's a greater of two evils
08:37:21  <SubStack>browserify uses sourceURLs since it doesn't modify the source like say coffee-script does
08:37:28  <guybrush>SubStack: would such a thing be possible? like i described with user/guest
08:37:33  <guybrush>with browserify
08:37:33  <dominictarr>if you can only have one version of each module
08:37:42  <guybrush>or is it a bad approach in general
08:37:55  <dominictarr>then updating X for Y might break Z, which needs X'
08:38:20  <dominictarr>thats like buying a new toaster, and now your mircowave doesn't work.
08:38:26  <SubStack>guybrush: sending deltas requires significant server cooperation
08:38:32  <guybrush>right
08:38:43  <guybrush>but when i decide to solve the problem with browserify
08:38:59  <SubStack>but maybe a system based on local storage can help with this
08:39:06  <guybrush>browserify should be able to tell me about deltas
08:39:08  <SubStack>that's one thing I want to explore more
08:39:22  <guybrush>it would be like a client-side `npm update`
08:39:25  <dominictarr>a little duplication in a working app, is way less bad than a broken app that loads fast.
08:39:39  <SubStack>one thing that browsers and servers already support is etags
08:39:59  <SubStack>dominictarr: also internet is pretty fast and it's only getting faster
08:40:00  <dominictarr>SubStack, HTML5 app cache can save each script tag,
08:40:21  <SubStack>in the future I expect file sizes to be even less of a problem
08:40:38  <dominictarr>and when the manifest changes, will reload if the file is changed
08:40:46  <dominictarr>yeah, exactly.
08:41:21  <guybrush>SubStack: those who argument against browserify with the build-step dont know about wreq
08:41:48  <SubStack>at the same time wreq is not as polished and that approach is strictly slower
08:42:00  <guybrush>well in dev everything is slower
08:42:09  <SubStack>but perhaps that approach could be paired more cleanly with browserify like requirejs/r.js
08:42:11  <guybrush>thats why there is a dev and a production envirionment
08:42:15  <guybrush>*environment
08:42:55  <dominictarr>what if browserify had an option to split each file/package into it's own script tag?
08:43:52  <SubStack>dominictarr: I think a tool could sit on top of browserify to do such things
08:43:59  <SubStack>especially where multi-page apps are concerned
08:44:42  <SubStack>analyze the dependency graph of a multi-page app to come up with some balance of putting shared functionality into the main bundle and putting page-specific things into page-specific bundles
08:45:14  <SubStack>and perhaps pairing that with an amd-ish progressive loading for different features
08:45:30  <SubStack>I'm not sure what the api and tooling usage should look like for any of this yet
08:46:32  <guybrush>weeelll in the end i still think having multiple verions of modules feels bad on the browser-side..
08:46:38  <guybrush>*versions
08:46:55  <dominictarr>guybrush, absolutely. it's non optimal
08:46:57  <guybrush>on the server-side its huge win
08:47:18  <dominictarr>in a perfect app you would not have that.
08:47:22  <guybrush>but
08:47:26  <SubStack>guybrush: it's far better than the alternative of having only one version of a library and broken code
08:47:37  <SubStack>it also lets you prioritize your time better
08:47:41  <dominictarr>but to get that perfect app, you need the freedom it gives you.
08:47:55  <SubStack>so you don't have to fix everything all in one go, you can upgrade pieces independently and push the releases out continuously
08:48:06  <SubStack>even if the file size is a few tens of kilobytes bigger
08:48:22  <dominictarr>because lets face it. everything you write more than two weeks ago is legacy
08:49:13  <guybrush>need to see how isaacs makes this flatten dependencies thing, im excited
08:49:20  <SubStack>oh so dominictarr, the other awesome thing about the new testling
08:49:31  <SubStack>is that because you run the browserify step yourself which includes all the harness code
08:49:32  <dominictarr>aha
08:49:39  <SubStack>you are completely in charge of the versioning
08:49:53  <dominictarr>thats good
08:49:57  <SubStack>so if your tests work you can just leave them alone
08:50:03  <SubStack>that's one downside of the http api
08:50:10  <SubStack>everybody needs to keep up to date with versions
08:50:45  <SubStack>which are not what you should want from a test api, where tests should just do their thing the way they've always done it until acted upon by an outside force
08:58:47  <rowbit>Hourly usage stats: []
09:00:32  * tanepiperquit (*.net *.split)
09:00:50  * tanepiperjoined
09:06:56  * dominictarrquit (Ping timeout: 240 seconds)
09:11:05  <rowbit>SubStack, pkrumins: Encoders down:
09:19:38  * dominictarrjoined
09:20:02  <dominictarr>hey, had an interesting cambodia experience this morning
09:24:30  <SubStack>trekking about?
09:24:55  <SubStack>fuck all, nave deleted all my installed nodes I guess >_<
09:25:28  <guybrush>https://github.com/rupa/z HUGE win!
09:26:51  <SubStack>dominictarr: I was also thinking, if browserify ever supports an async require, it should not be called require()
09:27:01  <SubStack>perhaps require.load() is a good place for it
09:27:28  <SubStack>I want code that does a sufficiently different thing to look sufficiently different
09:28:03  <SubStack>or the loader could be implemented completely outside of browserify as a separate package
09:29:18  <guybrush>also the loader can provide a httpserver/middleware which serves all the module-dirs
09:30:16  <SubStack>I'm not sure that it needs to
09:30:30  <guybrush>it would maybe solve the yarnify assets thing
09:30:48  <SubStack>you just generate a bundle with respect to a set of existing bundles and a set of files
09:31:14  <guybrush>like when you have a background:url(/path/to/image)
09:31:40  <SubStack>that might be a good fit
09:32:19  <guybrush>btw stylus has a url()-function for that
09:32:41  <guybrush>http://learnboost.github.com/stylus/docs/functions.url.html
09:33:02  <guybrush>it inlines base64 :D
09:40:54  <dominictarr>SubStack, SCAMMERS!
09:41:09  <SubStack>scams!
09:41:27  <dominictarr>require.async(file, cb)
09:41:42  <dominictarr>I love the scammers,
09:41:47  <dominictarr>they are so clever
09:42:07  <dominictarr>but their schemes are still so obvious
09:43:36  <dominictarr>I got invited back to someone's house for lunch, and then their brother turns up, and he's a card shark
09:44:24  <dominictarr>he had this man from brunei who won 60,000 of him at the casino but only gave him a $100 tip
09:44:39  <dominictarr>so he wanted to rip him off, but needed my help.
09:45:00  <guybrush>require.async(file,cb) makes a bundle with all dependencies of file?
09:45:02  <SubStack>naturally
09:45:05  <dominictarr>he could control the cards, shuffle with out changing the order, and deal from the bottom.
09:45:33  <dominictarr>require.async would also pass an hash of the modules you already have
09:45:40  <dominictarr>so they arn't duplicated
09:45:58  <dominictarr>and of course, the require code isn't included either
09:46:04  <guybrush>sounds cool
09:46:10  <guybrush>very cool
09:46:32  <SubStack>I have something else in mind, one sec
09:46:40  <guybrush>regarding multiple versions after some thinking i agree with you
09:47:02  <dominictarr>right, so the deal was, I'd play this brunei man with the dealers money, and we'd split the winnings in half.
09:47:20  <guybrush>someone could patch every module into a custom one, and make it so that theres only one version of every module
09:47:56  <dominictarr>guybrush, what do you mean?
09:48:39  <guybrush>like i use some modules which depend on multiple versions of one module, i could patch those modules and make em use the same version of that module
09:49:15  <guybrush>which would result in saving bandwidth
09:50:12  <guybrush>if there are 20 modules and all depend on _, i will make sure they all depend on the same version of _
09:50:29  <dominictarr>guybrush, yes, when you are finished that is how your app should work.
09:50:53  <SubStack>guybrush: but it they depend on different versions of _ there's probably a reason for it
09:51:03  <guybrush>right!
09:51:10  <guybrush>thats where i have to invest some time
09:51:12  <dominictarr>but it should be your choise to do that, your hand should not be forced by the module system.
09:51:26  <guybrush>exactly
09:51:38  <guybrush>thats why i think its ok to have multiple versions
09:51:47  <guybrush>if you really care you have to invest some time
09:51:56  <guybrush>hell there is even a fork of _
09:52:15  <guybrush>i could make all the modules depend on that
09:52:19  <guybrush>and replace _
09:52:29  <guybrush>its so easy to do that with npm..
09:53:07  <guybrush>a script which looks for every _ and replaces it with something else
09:53:15  <SubStack>dominictarr: but anyways, finish your story!
09:56:50  <dominictarr>guybrush, you could also cut out the parts of _ you don't use.
09:56:50  <dominictarr>okay; the story.
09:57:15  <dominictarr>so they dealer has just finished showing me the game, and then the brunei man turns up!
09:57:39  <dominictarr>I thought that part would be at a later point, like at a casino or bar or something.
09:58:10  <dominictarr>anyway he pulled out some wads of USD, (which is what they use here)
09:58:16  <dominictarr>$5000
09:58:40  <dominictarr>and we pretended I was already playing, but was loosing.
09:58:47  <rowbit>Hourly usage stats: []
09:59:05  <dominictarr>so, I started winning of course, and soon had a large stack of money.
09:59:21  <dominictarr>but the brunei man kept pulling out more money
10:00:10  <dominictarr>he pulled out a bundle of 100s, like 2" thick.
10:00:34  <dominictarr>40,000 supposedly (although, I only saw the outside notes. could have been all ones)
10:01:14  <dominictarr>we where at the last hand (prearranged signal, the dealer would offer me a coffee)
10:02:11  <dominictarr>but then with 40,000 I didn't have enough money to match the bet
10:02:41  <dominictarr>but the dealer said he'd give me credit
10:03:27  <dominictarr>and I had 21, so I had won, and from the signal I could see that brunei had 20
10:04:00  <dominictarr>but he didn't want to show cards because he wasn't sure that I could actually pay the 40,000
10:04:55  <dominictarr>so the dealer took me aside, and said he could get 8000 from his family savings -- but needed me to bring something to convince the guy
10:05:11  <dominictarr>my credit card, and passport...
10:05:34  <dominictarr>so we had to go back to my hotel and get this stuff
10:05:50  <dominictarr>I was like, yeah sure, thats a good idea.
10:05:55  <SubStack>!
10:06:48  <dominictarr>the dealer's nephew takes me back, but then gets a "flat tire" and says he's gonna get this fixed and I should get the stuff and meet him back here.
10:07:03  <dominictarr>the tire didn't look very flat to me.
10:07:12  <dominictarr>just slightly flat.
10:07:20  <dominictarr>totally rideable
10:08:06  <dominictarr>I'm now thinking it was an excuse not to stop in front of my place, in case they where recognised.
10:08:37  <dominictarr>so, I was like... this is obviously a scam. I walked back the long way around
10:08:59  <dominictarr>so they wouldn't see which one i entered...
10:09:08  <dominictarr>an just hung out here.
10:09:25  <dominictarr>sorry for anti climax
10:10:15  <dominictarr>I hope I bump into them again, because I have many suggestions for ways they can improve their scam.
10:11:15  <SubStack>not an anti-climax at all
10:11:49  <dominictarr>okay, cool.
10:12:24  <dominictarr>the main problem was the brunei guy just turning up.
10:12:45  <dominictarr>would have been WAY more convinced to meet him another day, at another place.
10:13:42  <dominictarr>oh yeah, I'm rewriting mux-demux so that it's a stream.
10:13:43  <SubStack>"Brunei has the second highest Human Development Index among the South East Asia nations after Singapore, and is classified as a developed country."
10:13:52  <SubStack>probably that's why he was "from brunei"
10:14:11  <SubStack>I bet they switch it up with singapore and taiwan
10:14:45  <dominictarr>exactly, also instead of tiping his dealer, he spends the money on young cambodian boy friends, 14 years old.
10:15:22  <dominictarr>and is their for a vile evil sex tourist pederast, and so your doing a good thing to steal from him.
10:15:53  <dominictarr>I did learn a great card trick though!
10:16:00  <SubStack>I thought the stereotype about sex tourism to SE asia was that they're from wealthy gulf countries
10:16:22  <dominictarr>and Australia!
10:16:47  <SubStack>wherever it is that fat rich balding males stereotypically live
10:17:09  <dominictarr>well put.
10:18:18  <dominictarr>you know the waterfall shuffle? there is a way to pass the cards through the shuffle and recut them so they have the same order.
10:18:48  <dominictarr>you just do the shuffle diagonally, so that you can hold the edges of each half.
10:19:18  <dominictarr>it's really clever
10:20:56  <dominictarr>it would have been great if the other guy was a fat balding Australian
10:21:08  <dominictarr>I probably would have been duped if that was the case.
10:22:57  <SubStack>probably weren't any available
10:23:07  <dominictarr>no. unfortunately.
10:24:44  <SubStack>but on the plus side, sounds like you got a free lunch and coffee?
10:25:24  <SubStack>subsidized by less fortunate targets undoubtedly
10:27:18  <dominictarr>HAHA, yeah! the lunch was really good actually
10:27:52  <dominictarr>stupid tourists
10:27:58  <dominictarr>they deserve to get scammed.
10:29:38  * francois`changed nick to francois2
10:30:52  <dominictarr>completely refactoring mux-demux. MuxDemux() instanceof Stream
10:32:03  <SubStack>sweet
10:32:28  <SubStack>I'll probably mention it briefly in my talk
10:33:09  <dominictarr>I've broken the api.
10:33:17  <dominictarr>now options is meta
10:33:22  <dominictarr>and there is no name.
10:33:30  <dominictarr>just use meta for whatever you like
10:34:12  <SubStack>how do I unpack the streams on the other end without names?
10:34:56  <dominictarr>if you want createStream(meta = {name: 'streamy'})
10:35:07  <dominictarr>or whatever, and then figure it out yourself.
10:35:23  <SubStack>aha
10:36:09  <dominictarr>not my problem. the code is simpler this way
10:36:45  <SubStack>I'm not complaining
10:37:17  <SubStack>this seems more useful for qos-stream anyways
10:37:34  <SubStack>because I can just stuff the priority info into the meta
10:39:31  <dominictarr>yeah, using name was an artifact of an earlier approach that turned out to be wrongheaded.
10:39:51  <dominictarr>because you can have as many streams as you like, with the same metadata.
10:39:58  <dominictarr>like http requests.
10:40:29  <dominictarr>which is another way to multiplex streams... but unfortunately, to multiplex them serially.
10:58:47  <rowbit>Hourly usage stats: []
11:07:37  <dominictarr>maxogden, SubStack just pushed https://github.com/dominictarr/mux-demux 1.1.0 with breaking changes.
11:11:26  <dominictarr>but simplifications and improvements.
11:11:34  <dominictarr>depreciating browser-stream
11:16:53  * dominictarrquit (Ping timeout: 244 seconds)
11:29:04  <rowbit>SubStack, pkrumins: Encoders down:
11:36:45  * saijanai_joined
11:38:43  * devaholicquit (Ping timeout: 252 seconds)
11:58:47  <rowbit>Hourly usage stats: []
12:26:30  * dominictarrjoined
12:28:51  <dominictarr>here is an idea I've been contemplating:
12:29:04  <dominictarr>a time/ordering assertion lib.
12:29:34  <dominictarr>current assertion libs are all making assertions about the properties of objects.
12:30:12  <dominictarr>but often you need to say things like if X occurs Y must follow eventually, but only once.
12:30:32  <dominictarr>data may occur many times, then end then close.
12:30:57  <dominictarr>end and close may not occur before a data or more than once or not in this order.
12:31:38  <dominictarr>if write returns false, eventually drain must happen, unless close.
12:41:10  <rowbit>SubStack, pkrumins: Encoders down:
12:48:55  <SubStack>read the new mux-demux api, looks pretty great!
12:50:07  <SubStack>dominictarr: I've been using tap's t.plan() to infer some of those characteristics but it would be nice if it could be more explicit
12:50:20  <SubStack>also it would be nice if it could be bolted onto existing systems
12:57:02  <dominictarr>yeah, plan is too basic. it doesn't really show you where the problem is.
12:58:47  <rowbit>Hourly usage stats: []
13:10:36  <SubStack>so many modules, so little time
13:12:03  <SubStack>I really hope it becomes typical for programmers of the future to have hundereds of actively maintained reusable modules each
13:28:37  * dominictarrquit (Ping timeout: 248 seconds)
13:58:24  * xaqjoined
13:58:47  <rowbit>Hourly usage stats: []
13:59:57  <SubStack>beh I can't even think straight, getting some food
14:33:08  * wiwillia2joined
14:39:23  * dominictarrjoined
14:43:57  <dominictarr>SubStack, it's dawning on me that the conditions for reusable modules is a package manager at least as good as npm.
14:44:11  <dominictarr>you couldn't do it with ruby, etc.
14:44:29  <dominictarr>and good abstractions that make modules composable, like streams.
14:45:01  <dominictarr>maybe there are other abstractions, too. but what is more universal than IO?
14:55:04  <rowbit>SubStack, pkrumins: Encoders down:
14:58:47  <rowbit>Hourly usage stats: []
14:58:56  <SubStack>you get composability in limited capacities they are just far more difficult to do correctly
14:59:08  <SubStack>and so far fewer modules are written in a composable way
14:59:36  <SubStack>haskell's type system I think gets the composable part pretty well
14:59:59  <SubStack>but static types really do not lend themselves to user-submitted packages
15:00:15  <SubStack>you need to know too much up-front
15:01:34  <SubStack>haskell also has a huge problem with version conflicts
15:02:28  <SubStack>and it's very easy to get into situations where you can't use the latest version of X that has the feature you need because you depend on Y that depends on an earlier version of X
15:05:36  <rowbit>SubStack, pkrumins: Encoders down:
15:17:53  * _sorensenjoined
15:21:20  <dominictarr>interesting. haskell should know better!
15:23:31  * mikealquit (Quit: Leaving.)
15:24:53  <SubStack>transpiling to a subset of C and then compiling that doesn't do it any favors
15:25:02  <SubStack>at least that's how ghc works, other compilers are different
15:25:41  * dominictarrquit (Ping timeout: 252 seconds)
15:48:15  * mikealjoined
15:48:35  <rowbit>SubStack, pkrumins: Encoders down:
15:51:20  <SubStack>tanepiper: I see from tweets that your talk happened earlier today!
15:58:47  <rowbit>Hourly usage stats: []
15:59:06  <rowbit>SubStack, pkrumins: Encoders down:
16:04:37  <rowbit>SubStack, pkrumins: Encoders down:
16:06:00  * ryan_stevensjoined
16:06:20  * ryan_stevensquit (Client Quit)
16:06:20  * mikealquit (Quit: Leaving.)
16:16:24  * farnsworthquit (Read error: No route to host)
16:16:25  * cubertquit (Read error: Connection reset by peer)
16:39:43  * ryan_stevensjoined
16:40:28  * farnsworthjoined
16:40:53  * cubertjoined
16:58:47  <rowbit>Hourly usage stats: []
16:59:18  * tilgovijoined
17:02:53  * blakmatrixjoined
17:06:37  <rowbit>SubStack, pkrumins: Encoders down:
17:32:04  <rowbit>SubStack, pkrumins: Encoders down:
17:41:01  * zz_shykeschanged nick to shykes
17:41:04  <rowbit>SubStack, pkrumins: Encoders down:
17:48:04  <rowbit>SubStack, pkrumins: Encoders down:
17:53:20  * tilgoviquit (Remote host closed the connection)
17:57:34  <rowbit>SubStack, pkrumins: Encoders down:
17:58:47  <rowbit>Hourly usage stats: []
18:00:08  <rowbit>SubStack, pkrumins: Encoders down:
18:23:28  <SubStack>isaacs: please disable engine field checking
18:23:37  <SubStack>just got bit by it >_<
18:23:54  <SubStack>it should just show a warning if it does anything at all
18:24:22  <SubStack>this person used the engine like a dependency with really narrow versioning that was completely needless and defensive
18:24:30  <SubStack>"node": "~0.6.11"
18:24:55  <SubStack>https://github.com/kesla/node-headless/blob/1369a721c62650b6da55f2cf9984db436cbcfec4/package.json#L12
18:29:04  <rowbit>SubStack, pkrumins: Encoders down:
18:40:36  <rowbit>SubStack, pkrumins: Encoders down:
18:49:37  <rowbit>SubStack, pkrumins: Encoders down:
18:52:49  <isaacs>SubStack: fair enough.
18:52:55  <isaacs>SubStack: we're past the 0.2 days, after all
18:53:21  <isaacs>SubStack: can you post an issue on https://github.com/isaacs/npm/issues (and then send me a pull req that fixes it)?
18:55:34  <rowbit>SubStack, pkrumins: Encoders down:
18:58:47  <rowbit>Hourly usage stats: []
19:11:34  <rowbit>SubStack, pkrumins: Encoders down:
19:24:34  <rowbit>SubStack, pkrumins: Encoders down:
19:33:08  <rowbit>SubStack, pkrumins: Encoders down:
19:58:48  <rowbit>Daily usage stats: []
19:58:48  <rowbit>Hourly usage stats: []
20:02:34  <rowbit>SubStack, pkrumins: Encoders down:
20:26:15  * hij1nxjoined
20:28:33  * wiwillia2quit (Ping timeout: 260 seconds)
20:31:49  * wiwilliajoined
20:33:38  <rowbit>SubStack, pkrumins: Developers waiting in the queue for ie9 (Queue length: 1 on 1 servers. Total servers: 5)
20:42:30  * wiwilliaquit (Ping timeout: 245 seconds)
20:58:47  <rowbit>Hourly usage stats: []
21:18:30  <tanepiper>SubStack: it went all Pete Tong :|
21:18:51  <tanepiper>stupidly i tried to cut some stuff out, and it affected my flow - and then my demo didn't work as expected
21:24:42  * shykeschanged nick to zz_shykes
21:25:08  * AvianFluquit (Quit: Leaving)
21:25:12  * zz_shykeschanged nick to shykes
21:26:45  * AvianFlujoined
21:28:35  <Raynos>isaacs: second disable engine field checking. People take too long to upgrade their engine field. Having it as a warning would be cool
21:29:58  <guybrush>i agree, a warning would be cool
21:30:19  <Raynos>Also having to npm install --force feels so dirty
21:30:42  <Raynos>isaacs: Actually just make it a flag that I can say "dont throw errors on the engine field check. I know what I'm doing" feel free to default it as an error for non-advanced users
21:41:19  <jesusabdullah>ermagerd
21:41:25  <jesusabdullah>we go through this EVERy Time
21:41:34  <jesusabdullah>EVERY TIME*
21:41:47  <jesusabdullah>You hear that raynos? Your ass is grass ;0
21:41:53  <jesusabdullah>;)*
21:42:13  <Raynos>wut?
21:42:44  <Raynos>jesusabdullah: how did you know?
21:44:56  <jesusabdullah>hax
21:45:55  <Raynos>What are we even talking about?
21:48:00  <jesusabdullah>you whining about the engines field XD
21:48:19  <Raynos>oh that
21:48:25  <jesusabdullah>lulz
21:48:43  <jesusabdullah>you dropping by the stackhouse again sometime? We can hang for reals
21:49:58  <Raynos>yeah
21:50:02  <Raynos>im coming with suit cases
21:50:07  <Raynos>to occupy 4th room
21:50:11  <Raynos>for temporary period
21:50:20  <Raynos>I have too much clothing x.x
21:50:37  <Raynos>i also need a place to live in the area
21:51:10  * tilgovijoined
21:56:59  <isaacs>Raynos: you can do --node-version null
21:58:47  <rowbit>Hourly usage stats: []
21:59:04  <Raynos>isaacs: bad ass. And that will ignore those errors or change them to warnings or do other things as well ?
21:59:22  <isaacs>Raynos: that just doesn't do engine checking
21:59:34  <isaacs>Raynos: like, at all
21:59:42  <Raynos>cool
21:59:48  <isaacs>Raynos: you can also pretend to be a different version with that config
21:59:54  <isaacs>npm install --node-version0.6.19
21:59:57  <isaacs>npm install --node-version 0.6.19
22:00:58  <Raynos>I see
22:04:51  <Raynos>i should spend more time on man npm config
22:05:02  <Raynos>or even npm help config
22:11:21  * hij1nxquit (Quit: hij1nx)
22:12:31  * hij1nxjoined
22:13:37  * _sorensenquit (Ping timeout: 246 seconds)
22:14:16  * hij1nxquit (Client Quit)
22:18:58  <tanepiper>maxogden: as promised i'll upload my talk, but it wasn't very good - i just watched it back and it wasn't *as* bad as I thought
22:19:08  <tanepiper>but i shouldn't have changed it much the night before
22:19:30  * tilgoviquit (Ping timeout: 264 seconds)
22:25:36  <tanepiper>https://github.com/jashkenas/coffee-script/pull/2401#issuecomment-6589268
22:38:34  <rowbit>SubStack, pkrumins: Encoders down:
22:40:52  * hij1nxjoined
22:49:09  <chapel>whats that about?
22:52:06  <jesusabdullah>people being dipshits that's what
22:53:14  <jesusabdullah>tanepiper: I'll retweet you homes
22:53:48  <jesusabdullah>That's also not how gangbangers talk <_<;
22:58:47  <rowbit>Hourly usage stats: []
23:06:34  <rowbit>SubStack, pkrumins: Encoders down:
23:08:04  <rowbit>SubStack, pkrumins: Encoders down:
23:14:30  <tanepiper>maxogden: in about an hour from now: http://youtu.be/LjVGN1pXyUs
23:15:02  <tanepiper>Also, i know you like cats :D http://www.youtube.com/watch?v=vuPEd-NPOKA&feature=relmfu
23:15:38  <rowbit>SubStack, pkrumins: Encoders down:
23:19:34  <rowbit>SubStack, pkrumins: Encoders down:
23:21:04  <rowbit>SubStack, pkrumins: Encoders down:
23:26:34  <rowbit>SubStack, pkrumins: Encoders down:
23:28:34  <rowbit>SubStack, pkrumins: Encoders down:
23:30:04  <rowbit>SubStack, pkrumins: Encoders down:
23:33:36  <rowbit>SubStack, pkrumins: Encoders down:
23:34:51  * tilgovijoined
23:35:07  <rowbit>SubStack, pkrumins: Encoders down:
23:36:20  * _sorensenjoined
23:39:04  <rowbit>SubStack, pkrumins: Encoders down:
23:40:37  <rowbit>SubStack, pkrumins: Encoders down:
23:42:34  <rowbit>SubStack, pkrumins: Encoders down:
23:43:34  <rowbit>SubStack, pkrumins: Encoders down:
23:51:04  <rowbit>SubStack, pkrumins: Encoders down:
23:54:00  * mikealjoined
23:55:23  * shykeschanged nick to zz_shykes
23:55:34  <rowbit>SubStack, pkrumins: Encoders down:
23:58:47  <rowbit>Hourly usage stats: []