00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:09  * ircretaryjoined
00:07:38  * cryptoquickquit (Ping timeout: 245 seconds)
00:14:31  * captain_morganjoined
00:20:49  * cianomaidinquit (Quit: cianomaidin)
00:23:47  * thatguydanjoined
00:27:11  * cianomaidinjoined
00:30:51  * lyaunzbejoined
00:43:26  * shuaibquit (Ping timeout: 252 seconds)
00:55:08  * st_lukejoined
00:56:50  <Raynos>chrisdickinson: https://github.com/chrisdickinson/browservefy/pull/8
01:00:08  <Raynos>mother of god
01:00:12  <Raynos>what a messy PR :D
01:01:49  <chrisdickinson>haha
01:02:14  <chrisdickinson>i'm heading to dinner, but i'll sort through it tonight :D
01:23:16  * defunctzombiechanged nick to defunctzombie_zz
01:24:34  * spionquit (Ping timeout: 246 seconds)
01:31:29  * AvianFlu_joined
01:32:08  * AvianFluquit (Ping timeout: 252 seconds)
01:32:12  * AvianFlu_changed nick to AvianFlu
01:42:38  * cianomaidinquit (Quit: cianomaidin)
01:45:21  * st_lukequit (Remote host closed the connection)
01:45:21  * shuaibjoined
01:45:58  * defunctzombie_zzchanged nick to defunctzombie
01:47:14  * dominictarrjoined
01:53:42  * fotoveritejoined
01:58:41  * mikolalysenkoquit (Ping timeout: 255 seconds)
02:01:21  * ins0mniaquit (Remote host closed the connection)
02:03:31  * mikealquit (Quit: Leaving.)
02:11:33  * dominictarrquit (Quit: dominictarr)
02:12:53  * mikolalysenkojoined
02:26:09  * dguttmanquit (Quit: dguttman)
02:28:38  * kanzurequit (Remote host closed the connection)
02:28:49  * kanzurejoined
02:43:59  * jibayquit (Remote host closed the connection)
03:08:04  <substack>defunctzombie: http://github.com/substack/node-resolve now with async
03:10:54  <defunctzombie>fuck yea \o/
03:11:44  <defunctzombie>substack: I will update browser-resolve
03:12:24  * fotoveritequit (Quit: fotoverite)
03:15:09  <defunctzombie>substack: updated browser-resolve v0.0.1
03:15:32  <substack>great!
03:15:45  <defunctzombie>there are still some sync operations in there that I need to remove
03:15:53  <defunctzombie>but the resolve call is using the new stuff now
03:16:46  <substack>that was quick
03:18:16  <defunctzombie>substack: will module-deps be pluggable to replace the resolve that it passes to required ?
03:18:44  <substack>how do you mean?
03:19:24  <defunctzombie>substack: module deps calls required right now, right?
03:19:45  <substack>correct
03:19:55  <defunctzombie>substack: for the output of module deps to be browser capable, it would need to call required with browser-resolve, right?
03:20:13  <substack>I suppose so
03:20:45  <defunctzombie>how else will you get the right output?
03:21:59  <substack>is browser-resolve a drop-in replacement for required?
03:22:17  <defunctzombie>substack: no
03:23:19  <defunctzombie>substack: required exposes a 'resolve' property now
03:23:26  <defunctzombie>which you can pass in whatever function you want
03:23:51  <defunctzombie>browser-resolve can be used to satisfy that
03:24:04  <defunctzombie>if you don't pass anything, the default lookups are used
03:26:37  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
03:26:37  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
03:31:31  * pyrosljoined
03:32:37  * dguttmanjoined
03:35:34  * pyroslpart
03:46:40  * dguttmanquit (Quit: dguttman)
03:50:32  * dominictarrjoined
04:07:04  * defunctzombiequit (Ping timeout: 256 seconds)
04:09:24  * defunctzombiejoined
04:18:21  * thatguydanquit (Quit: thatguydan)
04:18:32  * thatguydanjoined
04:32:18  * evboguejoined
04:32:36  * mikolalysenkoquit (Ping timeout: 252 seconds)
04:37:59  * fotoveritejoined
04:38:21  <substack>defunctzombie: ok now [email protected] lets you pass in `opts` which gets fed into required
04:40:16  * mikolalysenkojoined
04:45:06  <defunctzombie>substack: \o/
04:45:34  <defunctzombie>substack: so what is left for v2?
04:54:03  * evboguequit (Ping timeout: 276 seconds)
05:07:25  <substack>defunctzombie: passing tests
05:07:40  <defunctzombie>haha
05:08:02  * ecquit (Read error: Operation timed out)
05:08:09  * owenbquit (Read error: Operation timed out)
05:08:13  * Raynosquit (Ping timeout: 246 seconds)
05:08:22  <defunctzombie>substack: have you something that assembles all these parts?
05:08:28  * gozalaquit (Ping timeout: 245 seconds)
05:08:49  * guybrushquit (Ping timeout: 248 seconds)
05:09:08  * niftylettucequit (Ping timeout: 248 seconds)
05:09:21  * coffeecupquit (Ping timeout: 248 seconds)
05:09:23  * pikpikquit (Ping timeout: 255 seconds)
05:09:38  * robertjd_quit (Ping timeout: 252 seconds)
05:09:41  <substack>defunctzombie: so do I just do resolve: require('browser-resolve') ?
05:09:50  * sveisveiquit (Ping timeout: 255 seconds)
05:10:21  * duncanbeeversquit (Ping timeout: 252 seconds)
05:10:23  <defunctzombie>substack: I believe so
05:10:39  <defunctzombie>substack: yes
05:10:44  * ryanseddonquit (Ping timeout: 255 seconds)
05:12:45  <substack>defunctzombie: bug in browser-resolve; it's choking on "browser" : "browser.js"
05:12:49  <substack>it expects an object
05:13:10  <defunctzombie>it shouldn't be
05:13:14  <defunctzombie>I have a test for that
05:13:40  <defunctzombie>it may be that it wants ./browser.js
05:13:45  <defunctzombie>but I think browser.js should work
05:14:10  <substack>it's this:
05:14:11  <substack> "browser" : "browser.js",
05:15:30  <substack>then I need to figure out how to add backwards compat for "browserify" fields
05:15:45  * guybrushjoined
05:15:45  * coffeecupjoined
05:15:47  <defunctzombie>substack: pretty easy on the browserify field
05:15:49  <substack>then in a few months "browserify" fields will start printing warnings
05:15:53  <substack>oh good
05:16:13  <defunctzombie>https://github.com/shtylman/node-browser-resolve/blob/master/index.js#L81
05:16:22  <defunctzombie>just put it in that area before that stuff
05:17:12  * Raynosjoined
05:17:16  <defunctzombie>substack: as for why it is choking on browser: browser.js I would need to investigate with sample input
05:17:40  <defunctzombie>substack: you can look at the tests in test/fixtues where it has various forms of modules
05:17:54  <substack>I can fix it
05:17:57  <defunctzombie>substack: cool
05:18:07  <defunctzombie>tests should be easy to add for whatever the issue is
05:19:05  * evboguejoined
05:20:02  <substack>this seems to fix it:
05:20:03  <substack> if (typeof info.browser === 'string') {
05:20:03  <substack> info.browser = { '.': info.browser };
05:20:03  <substack> }
05:20:35  <defunctzombie>well, if typeof is a string, you should just be able to set main to the string
05:21:03  <defunctzombie>substack: that "fixes" it cause it fall to the code below
05:21:14  <defunctzombie>but you don't need to do that in the case of a string
05:22:15  <defunctzombie>substack: maybe resolve with a main of "browser.js" is not happy?
05:23:38  <defunctzombie>substack: the code that has replace_main is just for the case when a browser field has a key which matches main, so that you can replace main as well as modules using the browser field
05:24:18  * dguttmanjoined
05:24:57  <chrisdickinson>a note: adding a hook so that you can recreate the source of the bundle from inside the bundle would be very, very helpful for web workers
05:26:15  <chrisdickinson>substack: maybe something where `var bundleSource = require('bundle-source')`?
05:26:26  * dguttmanquit (Client Quit)
05:27:21  <defunctzombie>chrisdickinson: I think you will be able to produce that by using module-deps directly
05:27:31  <chrisdickinson>defunctzombie: from inside the bundle?
05:27:46  <chrisdickinson>as in, while running inside the browser
05:27:50  <defunctzombie>chrisdickinson: no, from whatever makes bundles for you
05:28:09  <chrisdickinson>but you don't want that
05:28:18  <chrisdickinson>wait
05:28:39  <chrisdickinson>will whatever makes bundles for me have a reference to the outermost function defining the entire bundle?
05:28:52  <defunctzombie>no idea
05:29:08  * ryanseddonjoined
05:29:11  <defunctzombie>right now I have only seen the various parts :)
05:29:20  <defunctzombie>not the whole assembled from the parts created
05:29:28  <defunctzombie>but the parts themselves are pretty flexible
05:29:44  <chrisdickinson>i mention it because it's the only way i can see to make any browserify-like thing sane for web workers
05:30:00  <chrisdickinson>(see: https://github.com/chrisdickinson/bfy-worker)
05:30:53  * dominictarrquit (Quit: dominictarr)
05:31:25  <substack>chrisdickinson: the cool part is you can swap in your own parts into b2
05:31:28  <substack>*v2
05:31:43  <defunctzombie>chrisdickinson: off the top of my head, I could imagine that if you replaced browser-pack with something that also allowed you to just get the "defined" function
05:31:54  <defunctzombie>then yes, you could do what you wanted as well
05:32:10  <chrisdickinson>but it wouldn't be compatible (directly) with browserify2?
05:32:56  <defunctzombie>chrisdickinson: from what it seems, substack plans to make it pretty pluggable/swappable
05:33:17  <chrisdickinson>i suppose all that would really be needed is the ability to modify the prelude
05:33:34  <chrisdickinson>though that means any module that depended on that behavior would depend on a specific prelude
05:33:36  <chrisdickinson>which would be bad
05:33:46  * evboguequit (Ping timeout: 256 seconds)
05:33:51  <substack>in v2 you just write your own pack() function
05:34:04  <substack>and pipe the other parts into it
05:34:06  <chrisdickinson>in the module?
05:34:39  <defunctzombie>chrisdickinson: in your example, why do you need special browserify support? wouldn't your spawn just run the function given?
05:34:49  <chrisdickinson>defunctzombie: it wouldn't
05:34:50  <defunctzombie>chrisdickinson: you just need the "require" to be accessible from web workers, right?
05:34:53  <chrisdickinson>it has to rebuild the entire bundle
05:35:16  <defunctzombie>sorry, I don't know shit about web workers so :/
05:35:25  <chrisdickinson>so, web workers are weird
05:35:33  <chrisdickinson>to start 'em you give them a url
05:35:37  <chrisdickinson>which is horrible!
05:35:55  <chrisdickinson>because it means your code has to assume something about the state of the world in which its deployed
05:35:56  <chrisdickinson>not ideal
05:36:01  <chrisdickinson>but there's a workaround
05:36:24  <chrisdickinson>you can use the blob api and createobjecturl to create a web worker with source generated from your javascript
05:36:55  <substack>chrisdickinson: here's the current source https://gist.github.com/substack/4983371
05:36:55  <chrisdickinson>but, you want to be able to access your browserify modules, and require is sync-looking
05:37:00  <substack>look at how bundle() works
05:37:30  * chrisdickinsonnods
05:37:43  <defunctzombie>substack: so little code :)
05:38:44  <chrisdickinson>so, to get what i'm talking about to work, i have to use not-browserify -- or rather, i have to specialize browserify?
05:38:56  <substack>maybe
05:39:00  <defunctzombie>substack: shouldn't prototype.require also use browserResolve?
05:39:04  <substack>you can just write your own pack() right now
05:39:10  <substack>and pipe the other parts into your packer
05:39:32  <substack>defunctzombie: oh that's probably why I'm getting bugs
05:39:52  <chrisdickinson>yes, but i'd rather not release the lib and say "if you npm install this and expect it to work with browserify, guess again, you need to use a different / more specific browserify"
05:40:23  <chrisdickinson>or am i misunderstanding, and can modules specifying their own `pack` prerequisites?
05:40:36  <chrisdickinson>that browserify v2 just sees and uses when necessary?
05:41:13  <substack>modules can't specify anything special no
05:42:21  <chrisdickinson>hence why i was hoping for some kind of support for being able to read the entire bundle at the base browserify level
05:42:51  <chrisdickinson>since that's pretty much what one needs to do to get browserified bundles working with web workers, afaict
05:42:54  <defunctzombie>chrisdickinson: don't you have the bundle before sending it the client?
05:43:28  <chrisdickinson>defunctzombie: i do, yes, but client module a that uses a web worker doesn't know where or what name the bundle is hosted as
05:44:00  <chrisdickinson>so it can't hard code a url -- workers are defined as `new Worker(url)`
05:44:42  <defunctzombie>chrisdickinson: does it support data urls?
05:44:44  <chrisdickinson>plus you get parity with node's http://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options
05:45:21  <chrisdickinson>defunctzombie: very specifically constructed ones, yes -- `URL.createObjectURL(new Blob([<source code>], {type: 'text/javascript'}))`
05:45:31  * mikealjoined
05:45:54  <chrisdickinson>but you can't precompile the source code into the bundle
05:46:10  <defunctzombie>substack: I am amazed at how little code that index.js file requires
05:46:22  <defunctzombie>substack: does that reproduce a lot of the functionality of browserify ?
05:48:57  <chrisdickinson>i know "add quine support" sounds kind of ridiculous as a feature request, but i can't think of any other way to expose web workers to arbitrary, npm-published modules
05:51:00  <mikolalysenko>I would also like to chime in with my support for this proposal
05:51:40  <mikolalysenko>though maybe there could be a less invasive way to expose this feature. Perhaps there could be a special module, like require("quine")
05:51:56  <mikolalysenko>instead of adding a secret method to require
05:52:30  <substack>defunctzombie: it's passing some of the existing test suite already
05:52:32  <mikolalysenko>on the other hand, the current approach is proven to work and I think chrisdickinson's idea of building the workers via a data url is totally awesome
05:53:12  <substack>defunctzombie: I'm having issues swapping browser-resolve in for resolve()
05:53:26  <defunctzombie>substack: it isn't an exact api swap
05:53:37  <defunctzombie>substack: I was thinking about making it an exact swap
05:53:45  <defunctzombie>substack: the api call is (id, parent, cb)
05:53:49  <defunctzombie>parent has two important fields
05:53:50  <substack>trying to figure which things I should be putting for the parent
05:53:54  <defunctzombie>filename:
05:53:55  <defunctzombie>and paths:
05:53:59  <defunctzombie>paths is node_module paths
05:54:07  <defunctzombie>filename is the calling filename
05:54:14  <defunctzombie>that is used to get the basepath for resolve
05:54:15  <substack>node_module paths like $NODE_PATH?
05:54:37  <defunctzombie>yea
05:54:59  * fotoveritequit (Quit: fotoverite)
05:55:04  <defunctzombie>generally the node_modules path of a module
05:55:12  <defunctzombie>and the ones up from there
05:55:34  <substack>I just want it to start at process.cwd() or require.main.filename
05:55:52  <defunctzombie>then provide that
05:56:01  <substack>it wants a filename not a directory
05:56:09  <substack>I could + '/blah'
05:56:10  <defunctzombie>yea, you can give it a phony filename
05:56:14  <defunctzombie>yea
05:56:20  <defunctzombie>or I can fix it to not have that requirement
05:56:38  <defunctzombie>https://github.com/shtylman/node-browser-resolve/blob/master/index.js#L33
05:56:48  <defunctzombie>base is then used https://github.com/shtylman/node-browser-resolve/blob/master/index.js#L73
05:56:56  <defunctzombie>and paths: https://github.com/shtylman/node-browser-resolve/blob/master/index.js#L72
05:57:22  <defunctzombie>paths is also used to look for package.json in the local project for any replacements
05:57:23  <defunctzombie>https://github.com/shtylman/node-browser-resolve/blob/master/index.js#L47
05:58:10  <defunctzombie>it was made to resolve given some starting point, and does not auto assume cwd or such
05:59:26  <chrisdickinson>quine-ing support might be best suited to live in the process shim, since the process shim is already kind of special
06:00:30  <defunctzombie>chrisdickinson: do you expect web workers to be used from within modules or by top level projects?
06:00:37  <chrisdickinson>from modules
06:00:42  <mikolalysenko>I want to use them in modules
06:00:46  <defunctzombie>k
06:00:56  <mikolalysenko>like make a module that processes meshes asynchronously
06:01:04  <substack>defunctzombie: actually it's ok since I'll make it use require.main.filename by default
06:01:07  <chrisdickinson>this is about the only way i can think of to use them in modules
06:02:05  <chrisdickinson>(as an added benefit, things like the zlib shim could attempt to use them to move cpu-intensive operations into a thread)
06:02:06  * mikealquit (Quit: Leaving.)
06:02:06  <mikolalysenko>or in something like voxel.js, make a module for asynchronously generating terrain
06:02:45  <mikolalysenko>you could also rebuild meshes when blocks get updated asynchronously too, avoiding random fps drops
06:03:09  <defunctzombie>chrisdickinson: I will need to sleep on it and see if some clever thought comes to mind
06:03:19  <chrisdickinson>cool
06:03:47  * mikealjoined
06:03:47  <chrisdickinson>yeah, i can't think of any other way, since you can't rely on arguments.callee (because of strict mode and recursion)
06:04:06  <defunctzombie>substack: only think I can think of that index.js isn't supporting (that v1 didn't either) is sibling bundles
06:04:35  <defunctzombie>substack: I will need to think if browser-resolve needs changes to support that (I think it might need to be more pluggable)
06:05:55  * pikpikjoined
06:10:21  <mikolalysenko>another cool use for workers: streaming image/volume processing
06:10:38  <mikolalysenko>doing it without them is a bit pointless since you would just block while crunching away anyway
06:10:53  <mikolalysenko>but with a worker you could actually get some measurable benefit
06:16:58  <substack>defunctzombie: it actually does!
06:17:42  <substack>defunctzombie: it checks to see if a require() has already been defined
06:17:52  <substack>and if it has, it will fallback to that bundle
06:18:21  <substack>so when you combine fallbacks with an --ignore you'll be able to have siblings
06:18:28  <defunctzombie>substack: how do I educate it about more bundles?
06:18:53  <defunctzombie>so if I make bundle A and bundle B, how do I tell bundle C about A and B?
06:19:37  <substack>you just rely on fallbacks
06:20:19  <substack>so you make sure to use --require to make the modules you want to share exposed
06:20:35  <defunctzombie>substack: I was asking more about via the api I guess
06:20:44  <defunctzombie>I don't use command line stuff :)
06:22:12  <substack>you use .require() and .ignore()
06:23:54  <defunctzombie>ah, for some reason I was under the impression those were for files and not for bundles
06:34:11  * mikealquit (Quit: Leaving.)
06:39:57  * evboguejoined
06:40:03  * fotoveritejoined
06:40:09  * captain_morganquit (Remote host closed the connection)
06:41:33  * mikealjoined
06:49:30  * evboguequit (Ping timeout: 244 seconds)
06:53:22  * defunctzombiechanged nick to defunctzombie_zz
06:58:21  * st_lukejoined
07:05:05  * tim_smartjoined
07:05:51  * tim_smartchanged nick to tim_smart|away
07:06:34  * gozalajoined
07:07:01  * owenbjoined
07:07:05  * notalexgordonjoined
07:07:40  * st_lukequit (Remote host closed the connection)
07:09:05  * fotoveritequit (Quit: fotoverite)
07:10:15  * sveisveijoined
07:10:15  * niftylettucejoined
07:10:39  * duncanbeeversjoined
07:14:38  * CryptoQuickjoined
07:15:36  * fotoveritejoined
07:16:08  * captain_morganjoined
07:24:02  * captain__joined
07:24:33  * captain_morganquit (Ping timeout: 252 seconds)
07:30:09  * captain__quit (Remote host closed the connection)
07:47:44  <jden>niftylettuce: i hear you'll be crashing in my alcove this weekend
07:53:00  <niftylettuce>jden: yo yo
07:53:17  <niftylettuce>jden: sorry i wasn't on IRC, im flying on on thurs 2/21
07:53:37  <niftylettuce>jden: YC/Upverter hackathon and i plan to cook for ya guys too :)
07:54:07  <jden>oh snap is that this weekend?
07:54:25  <niftylettuce>jden: yea feb 23
07:54:38  <jden>think they'd care if i just showed up without registering?
07:54:59  <jden>from the site: "There is no team size limit."
07:55:43  * mikolalysenkoquit (Ping timeout: 256 seconds)
07:55:53  * captain_morganjoined
07:58:51  <niftylettuce>jden: yeah it's invite-only i believe, you might be able to still apply and get a spot
07:59:04  <niftylettuce>jden: the email i got said it was already filled up, but slots open up for people on wait-list
07:59:16  <niftylettuce>jden: but i got in early so i lucked out that way
08:05:17  <jden>are you showing up with an idea?
08:14:30  <niftylettuce>jden: i have a bunch yeah
08:14:34  <niftylettuce>jden: why wattup
08:16:52  <jden>hw might not be my dig. i go out of my way to avoid having to interface with atom world. bit world is friendlier.
08:23:34  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
08:26:04  * CryptoQuickquit (Quit: CryptoQuick)
08:35:45  * jdenchanged nick to jden|zz
08:48:34  * spionjoined
09:00:01  * captain_morganquit (Remote host closed the connection)
09:01:21  * captain_morganjoined
09:01:51  * captain_morganquit (Read error: Connection reset by peer)
09:02:05  * mikolalysenkojoined
09:06:56  * mikolalysenkoquit (Ping timeout: 244 seconds)
09:13:54  * mmckeggjoined
09:17:51  * thatguydanquit (Read error: Connection reset by peer)
09:17:57  * thatguydan_joined
09:26:52  * spionquit (Ping timeout: 246 seconds)
09:44:38  * dominictarrjoined
10:01:55  * fotoveritequit (Quit: fotoverite)
10:10:15  * mmckeggquit (Quit: mmckegg)
10:23:42  * spionjoined
10:36:45  * jibayjoined
10:44:07  * captain_morganjoined
10:45:18  * fotoveritejoined
10:57:09  * fotoveritequit (Quit: fotoverite)
11:04:36  * AvianFluquit (Remote host closed the connection)
11:15:31  * cianomaidinjoined
11:37:21  * cianomaidinquit (Quit: cianomaidin)
11:40:04  * tim_smart|awaychanged nick to tim_smart
11:40:43  * ralphtheninjajoined
11:42:00  * tim_smartchanged nick to tim_smart|away
11:57:09  * fotoveritejoined
11:57:50  * cianomaidinjoined
12:18:39  * jibayquit (Remote host closed the connection)
12:18:54  * ins0mniajoined
12:19:06  * ins0mnia_joined
12:19:08  * ins0mniaquit (Remote host closed the connection)
12:19:08  * ins0mnia_quit (Remote host closed the connection)
12:19:27  * ins0mniajoined
12:42:37  * shuaibjoined
12:47:14  * ins0mniaquit (Ping timeout: 252 seconds)
12:54:10  * yorickjoined
12:54:46  * spionquit (Ping timeout: 246 seconds)
13:33:55  * spionjoined
13:39:51  * spionquit (Read error: Connection reset by peer)
13:40:31  * cianomaidinquit (Quit: cianomaidin)
13:44:54  * captain_morganquit (Remote host closed the connection)
13:51:43  * cianomaidinjoined
13:56:42  * dominictarrquit (Quit: dominictarr)
14:29:09  <juliangruber>dominictarr: what's your favorite Fleetwood Mac album?
14:29:13  * jibayjoined
14:29:21  <juliangruber>dominictarr: (checking out rumours)
14:38:43  * evboguejoined
14:44:58  * defunctzombie_zzchanged nick to defunctzombie
15:01:21  * cianomaidinquit (Quit: cianomaidin)
15:10:55  * thatguydan_quit (Quit: thatguydan_)
15:15:19  * thatguydanjoined
15:16:24  * thatguydanquit (Client Quit)
15:17:21  * thatguydanjoined
15:22:50  * thatguydanquit (Quit: thatguydan)
15:25:18  * ralphtheninjaquit (Ping timeout: 264 seconds)
15:39:07  * mikealquit (Quit: Leaving.)
15:55:08  * lanecjoined
15:56:57  * shuaibquit (Read error: Connection reset by peer)
16:06:21  * mikealjoined
16:10:05  * thatguydanjoined
16:13:46  * mikolalysenkojoined
16:22:32  * CryptoQuickjoined
16:25:10  * dguttmanjoined
16:28:27  * CryptoQuickquit (Read error: Connection reset by peer)
16:31:24  * cianomaidinjoined
16:31:38  * mikealquit (Quit: Leaving.)
16:43:46  * CryptoQuickjoined
16:47:20  * ins0mniajoined
16:49:06  * thatguydanquit (Remote host closed the connection)
16:49:20  * thatguydanjoined
16:50:56  * mikolalysenkoquit (Ping timeout: 255 seconds)
16:56:14  * mikealjoined
17:02:09  * dguttman_joined
17:02:26  * dguttmanquit (Read error: Connection reset by peer)
17:02:27  * dguttman_changed nick to dguttman
17:02:57  * thatguydanquit (Quit: thatguydan)
17:21:46  * mikealquit (Quit: Leaving.)
17:30:27  * dguttman_joined
17:32:51  * dguttmanquit (Ping timeout: 252 seconds)
17:32:51  * dguttman_changed nick to dguttman
17:33:03  <defunctzombie>substack: ping
17:33:52  <defunctzombie>substack: forgot to tell you that required uses my fork of detective currently: https://github.com/shtylman/node-detective/commits/master
17:34:33  <defunctzombie>substack: you might want to see if you want those changes
17:34:48  * AvianFlujoined
17:34:58  <defunctzombie>substack: major differences are: no range stuff so much faster processing and (require)(skip) is not skipped
17:35:25  <defunctzombie>substack: (require)(skip) may be an issue for you and browserifyV2 migration path fyi depending on how you want to handle it
17:36:35  <defunctzombie>hij1nx: what leveldb module are people using?
17:45:55  * mikolalysenkojoined
18:02:38  * mikealjoined
18:06:57  * tphummeljoined
18:09:18  * cianomaidinquit (Quit: cianomaidin)
18:14:11  * cianomaidinjoined
18:15:51  * cianomaidinquit (Client Quit)
18:25:36  * evboguequit (Ping timeout: 240 seconds)
18:29:20  * jibayquit (Quit: Leaving)
18:32:21  * lyaunzbequit (Remote host closed the connection)
18:40:20  * st_lukejoined
18:40:24  * jjjjohnnnyquit (Ping timeout: 264 seconds)
18:40:31  * jjjjohnnnyjoined
18:46:35  * evboguejoined
18:47:31  * st_luke_joined
18:51:18  * st_lukequit (Ping timeout: 272 seconds)
19:12:21  * CryptoQuick_joined
19:14:01  * CryptoQuick__joined
19:16:05  * CryptoQuickquit (Ping timeout: 244 seconds)
19:16:05  * CryptoQuick__changed nick to CryptoQuick
19:16:51  * CryptoQuick_quit (Ping timeout: 248 seconds)
19:19:53  * mikolalysenkoquit (Ping timeout: 255 seconds)
19:26:11  * st_luke_quit (Remote host closed the connection)
19:39:06  <chrisdickinson>defunctzombie: any thoughts about web workers?
19:41:54  * st_lukejoined
19:43:18  <defunctzombie>chrisdickinson: my immediate thoughts are that modules should not do it
19:43:29  <defunctzombie>they should indicate if they should be used with web workers
19:43:40  <defunctzombie>but should themselves not do such things on their own :/
19:43:43  <chrisdickinson>that diverges dramatically from how packages work on npm
19:44:00  <chrisdickinson>if the goal is to provide a node-like environment, then web workers are part of that
19:44:04  <defunctzombie>not necessarily
19:44:17  <defunctzombie>I mean, it really depends on the setup
19:44:17  <chrisdickinson>require('child_process').fork('file')
19:44:30  <defunctzombie>the goal is not to provide a node-like environment
19:44:33  <defunctzombie>(at least that is not my goal)
19:44:41  <chrisdickinson>the goal of browserify, then
19:44:52  <defunctzombie>the goal is to make it easy for people to bundle modules
19:44:57  <defunctzombie>which are built with the require syntax
19:45:08  <chrisdickinson>and happen to lean on things like streams, events, etc
19:45:11  <defunctzombie>the fact that it shims core modules is a byproduct of that
19:45:24  <defunctzombie>but node is the exceptional environment, as well as the browser here
19:45:48  <chrisdickinson>so, what's the problem with including a special shim?
19:46:03  <defunctzombie>chrisdickinson: those are provided because no one npm installs "stream"
19:46:10  <defunctzombie>chrisdickinson: a special shim for what?
19:46:27  <chrisdickinson>for being able to reproduce the bundle
19:46:50  <chrisdickinson>we're very close already -- the PR on browserify that i've got is one line and adds that functionality
19:46:56  <defunctzombie>chrisdickinson: I guess I am saying web workers is too opinionated at the moment?
19:46:58  <defunctzombie>chrisdickinson: link?
19:47:21  <chrisdickinson>https://github.com/substack/node-browserify/pull/284/files
19:47:47  <chrisdickinson>that's all i need to be able to write a userland module that supports web workers
19:48:18  <chrisdickinson>just a link back to the function defining a module
19:48:27  <chrisdickinson>so i can toString it and bring back the source.
19:48:38  <defunctzombie>right
19:49:23  <chrisdickinson>with that, we can have a module that works against node or browserify and makes adding web workers / other processes very very easy
19:49:49  <defunctzombie>chrisdickinson: has substack made any comment on it?
19:50:01  <chrisdickinson>not afaict
19:50:04  <defunctzombie>given that it is trivial it could make sense to be a part of require functionality
19:50:26  <defunctzombie>chrisdickinson: is there a way to do this in node corrently?
19:50:35  <defunctzombie>to get the source of the file you are in?
19:50:44  <defunctzombie>(without fs read I mean)
19:50:56  <chrisdickinson>to get the one you're in, yes, it's just arguments.callee+'' at the root of a file
19:51:06  <chrisdickinson>to get the contents of all files, no
19:51:30  <defunctzombie>can you not do that trick in a browserify bundle?
19:51:53  <chrisdickinson>no, that gives you your current file, not all files
19:52:05  <chrisdickinson>and you want all files, so that you can use `require` as expected
19:52:17  <chrisdickinson>(and have the contents of your bundle available inside the web worker)
19:52:18  <defunctzombie>your pull request is only per file tho
19:52:31  <chrisdickinson>require.modules is available from any file
19:52:49  <chrisdickinson>and will have a map of filepath -> wrapped function
19:52:59  <chrisdickinson>the pr adds a "source" attribute to the wrapped function
19:53:26  <chrisdickinson>https://github.com/chrisdickinson/bfy-worker/blob/master/browser.js#L195-L209
19:54:19  <chrisdickinson>it's not beautiful by any stretch of the imagination, but it lets me recreate the existing bundle contents, as well as add a new entry that contains the worker source code
19:54:20  * jibayjoined
19:54:20  <defunctzombie>chrisdickinson: I would not rely on require.modules
19:54:29  <defunctzombie>you are relyin on implementation specific things
19:54:31  <defunctzombie>this is not good
19:54:48  <chrisdickinson>this is about the only way to do it :|
19:54:59  <chrisdickinson>unless we get it baked in as part of the special `process` shim
19:55:05  <defunctzombie>chrisdickinson: then the approach might have to be rethought
19:55:19  <chrisdickinson>i've tried to think of other ways, and i can't come up with any.
19:55:31  <chrisdickinson>we need the original source of all of the modules
19:56:31  <defunctzombie>personally, I would not want a module doing web workers without my explicit involvement
19:56:50  <chrisdickinson>your explicit involvement, in this case, would be saying "i want to use this module that uses web workers"
19:57:01  <chrisdickinson>it's the same deal as using any other node package
19:57:11  <chrisdickinson>they all have the ability to fork
19:57:54  <defunctzombie>true
19:58:28  * CryptoQuickquit (Remote host closed the connection)
19:58:42  <defunctzombie>I just don't think you can expect full node api parity
19:58:45  * CryptoQuickjoined
19:58:55  <defunctzombie>but I can understand the web worker desire
19:59:25  <chrisdickinson>in my ideal world, it's just part of a special field hanging off of the already special `process` shim
19:59:39  <chrisdickinson>process.browserify.modules()
19:59:43  <chrisdickinson>or something like that
19:59:52  <defunctzombie>chrisdickinson: yea, I could buy that
20:00:07  <chrisdickinson>which would just be a key-val mapping of file path to function from bundle
20:00:20  <chrisdickinson>(or maybe even function from bundle as a string)
20:01:44  * captain_morganjoined
20:10:04  * fotoverite_joined
20:10:22  * mikolalysenkojoined
20:10:44  * fotoveritequit (Ping timeout: 256 seconds)
20:10:44  * fotoverite_changed nick to fotoverite
20:26:40  * lyaunzbejoined
20:30:22  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
20:30:22  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
20:34:21  * cianomaidinjoined
20:41:45  * cianomaidinquit (Quit: cianomaidin)
20:42:17  * mikealquit (Quit: Leaving.)
20:42:41  * tim_smart|awaychanged nick to tim_smart
20:59:22  * st_luke_joined
20:59:39  * st_lukequit (Disconnected by services)
20:59:41  * st_luke_changed nick to st_luke
21:12:31  * mikealjoined
21:17:01  * cianomaidinjoined
21:17:09  * mikealquit (Ping timeout: 276 seconds)
21:17:23  * dominictarrjoined
21:18:24  * cianomaidinquit (Client Quit)
21:27:00  * lyaunzbechanged nick to wontondumplingsi
21:27:08  * wontondumplingsichanged nick to wontondisco
21:29:45  * cianomaidinjoined
21:39:35  * tilgovijoined
21:39:47  * mikealjoined
21:52:30  * wontondiscoquit (Remote host closed the connection)
22:01:36  * mikolalysenkoquit (Ping timeout: 240 seconds)
22:04:30  * substack_railjoined
22:04:49  <substack_rail>defunctzombie: v2 tests are now passing for dnode
22:05:05  <defunctzombie>substack_rail: no shit, nice!
22:05:17  <defunctzombie>substack_rail: did you see my previous comment about 'detective' ?
22:05:39  * mikolalysenkojoined
22:08:09  <substack_rail>yep
22:08:27  <substack_rail>I think v2 would be a good point to drop support for (require)()
22:08:56  <substack_rail>since we have a browser field now to set up aliases
22:09:04  <defunctzombie>k
22:09:05  <substack_rail>is it possible to ignore files using the browser field?
22:09:18  <defunctzombie>substack_rail: you could make it point to a dummy file
22:11:27  <defunctzombie>substack_rail: I didn't think about just doing "name": null
22:11:27  <defunctzombie>I think pointing to a dummy file would be cleaner :/
22:11:27  <defunctzombie>at least more consistent with what require behavior would want to do
22:11:28  <defunctzombie>since something still is being required from the original call point
22:11:28  <substack_rail>I like "name": false
22:11:28  <substack_rail>that seems cleaner than a dummy file for end users
22:11:28  <defunctzombie>k
22:11:28  * wontondiscojoined
22:11:28  <substack_rail>or something falsy anyways
22:11:34  <substack_rail>and false is the falsiest possible thing
22:13:22  <defunctzombie>haha
22:13:33  <defunctzombie>so when false is encountered tho
22:13:39  <defunctzombie>what should the file resolve to?
22:13:47  <defunctzombie>we still need some path or something
22:13:55  <defunctzombie>cause the require will still be called
22:14:07  <defunctzombie>so something down the pipe will need to insert a dummy
22:15:59  <substack_rail>what if browser-resolve just returned undefined and then required knew that an undefined value means that the module should be ignored?
22:16:45  <defunctzombie>substack_rail: https://github.com/shtylman/node-required/blob/master/index.js#L42-L61
22:16:48  <defunctzombie>sorta already happens
22:17:06  <defunctzombie>you just don't get any output as a result
22:17:11  <defunctzombie>if you have ignore_missing turned on
22:17:35  <defunctzombie>this is how I avoid the "./lib-cov" crap that some people like to do
22:17:45  <defunctzombie>that I try to tell them not to do haha
22:20:21  <substack_rail>I don't want to turn ignore_missing on though since missing require targets should be errors
22:24:09  <defunctzombie>substack_rail: so we could have it return false explicitly versus null or undefined
22:24:17  <defunctzombie>the question then is what does required output?
22:24:19  <defunctzombie>nothing?
22:24:24  <defunctzombie>just ignores it period?
22:24:35  <defunctzombie>if it ignores it, what happens when it is required
22:27:33  <substack_rail>oh I see your earlier point now
22:27:56  <substack_rail>often times a module will have require('net') or something and not use net in the code path you want to execute browser-side
22:28:09  <substack_rail>so a module.exports = {} dummy makes sense there
22:28:34  <substack_rail>or rather, just an empty source string entirely
22:29:26  <defunctzombie>right
22:29:27  * CryptoQuick_joined
22:30:06  <substack_rail>changing .addEntry() to just .add() since I'm already breaking api
22:30:51  <defunctzombie>substack_rail: can I .ignore(bundle) ?
22:30:52  <Raynos>dominictarr: `git push origin master --tags` on through
22:31:07  <defunctzombie>detached head!!
22:31:28  * defunctzombiefavorite git error
22:31:32  <dominictarr>Raynos: done
22:32:08  * dominictarrquit (Quit: dominictarr)
22:32:29  <substack_rail>defunctzombie: there's no .ignore() yet
22:32:33  <Raynos>it doesnt push all the tags
22:32:39  <Raynos>I guess you dont use `npm version --patch`
22:32:48  * CryptoQuickquit (Ping timeout: 252 seconds)
22:32:49  * CryptoQuick_changed nick to CryptoQuick
22:32:52  <chrisdickinson>you don't need the double dashes
22:32:55  <chrisdickinson>:D
22:34:43  <substack_rail>defunctzombie: I was more thinking .ignore() would ignore a single file. How do you envision it working?
22:35:36  <defunctzombie>substack_rail: something that would allow me to do the following: https://github.com/shtylman/node-enchilada#with-ingredients
22:35:59  <defunctzombie>there are certain bundles which I would ship separately (for cache reasons)
22:36:21  <defunctzombie>with script, I can currently have one bundle reference another, but not include the code for it
22:36:29  <defunctzombie>assumes that the code will already be available tho
22:36:43  <defunctzombie>maybe too involved and opinionated tho :/
22:36:49  <defunctzombie>but I have found it a useful approach
22:36:54  <defunctzombie>to avoiding larger bundles
22:37:21  <defunctzombie>substack_rail: you don't even have to have a separate require.js file, since you could detect a require global
22:37:27  <defunctzombie>and because the preamble is so small
22:37:35  <substack_rail>you'll be able to do this with a combination of .ignore() and stacked require()s
22:37:35  <defunctzombie>you can just ship it but not use it if one alreayd exists
22:37:44  <defunctzombie>substack_rail: cool
22:38:11  <defunctzombie>substack_rail: that will allow me to hoist away script from enchilada and just use browserify v2
22:38:14  <substack_rail>there's just nothing built in yet because I haven't build any multi-file bundles yet
22:38:16  <defunctzombie>which would be awesome
22:38:21  <defunctzombie>sure
22:38:35  <substack_rail>haven't gotten a feel for how it should be
22:40:27  <defunctzombie>what I have with enchilada I am pretty happy with
22:40:40  <defunctzombie>I can drop in the most basic call and add to it as I need
22:49:00  <substack_rail>I'm thinking there should be an expose() function to complement require()
22:49:52  <substack_rail>b.expose({ file: __dirname + '/foo/bar.js', name: 'bar' })
22:50:04  <substack_rail>but perhaps this is a bad idea
22:55:38  <substack_rail>the implementation works out to just 2 lines
23:03:13  * evboguequit (Remote host closed the connection)
23:06:36  <mbalho>substack_rail: your name should be substack_on_rails
23:08:35  <st_luke>you can emit dhh quotes
23:10:46  <substack_rail>and away I go
23:10:53  * substack_railquit (Quit: Page closed)
23:11:18  * mikolalysenkoquit (Ping timeout: 252 seconds)
23:11:31  * dominictarrjoined
23:18:25  <Raynos>turns out
23:18:31  <Raynos>my shitty implementation of buffering in read-stream
23:18:34  <Raynos>causes massive memory leaks
23:18:42  <Raynos>its time to rewrite it to not suck and comply with backpressure
23:21:34  <dominictarr>oh, bummer.
23:22:01  * mikolalysenkojoined
23:22:34  <Raynos>so lesson learned
23:22:38  <Raynos>use isaacs buffering code
23:22:51  * CryptoQuickquit (Remote host closed the connection)
23:22:56  <Raynos>no backpressure === massive scaling problems
23:23:07  <Raynos>it means you code will scale as badly as PHP & rails
23:23:12  * CryptoQuickjoined
23:41:54  <jez0990>Raynos: wasn't it you that posted the MIT lecture with Prof. Abelson pulling strings through bits of tube?! that conclusion should've been obvious :P
23:42:12  <Raynos>:D
23:42:17  <jez0990>(great video series btw)
23:42:21  <Raynos>well
23:42:24  <Raynos>now I see in person
23:42:29  <Raynos>how crazyily
23:42:31  <Raynos>your memory usage
23:42:33  <Raynos>thrashes
23:42:37  <Raynos>without back pressure
23:42:43  <Raynos>like spiking upto 5gb every hou
23:42:44  <Raynos>hour*
23:43:07  <jez0990>STRING EVERYWHERE
23:45:48  * wontondiscoquit (Remote host closed the connection)
23:47:06  * st_lukequit (Remote host closed the connection)
23:50:48  * mmckeggjoined
23:51:02  * mmckeggpart
23:52:58  * st_lukejoined
23:55:04  * wontondiscojoined
23:56:01  * yorickquit (Read error: Connection reset by peer)
23:58:30  <Raynos>jez0990: why obvouis?
23:58:34  <Raynos>oh because of string everywhere
23:58:36  <Raynos>yes :D
23:58:51  <jez0990>:D
23:58:54  * wontondiscoquit (Remote host closed the connection)