00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:20:48  * yorick_quit (Read error: Connection reset by peer)
00:28:44  <Raynos>chrisdickinson: https://github.com/chrisdickinson/browservefy/pull/8
00:37:29  * on9quit (Quit: Leaving)
00:42:12  <chrisdickinson>Raynos: i'll get that in tonight
00:45:03  <Raynos>chrisdickinson: added browservefy to my default loadout ( https://github.com/Raynos/ngen/blob/master/templates/colingo/content/package.json )
00:48:01  <chrisdickinson>woo!
00:49:55  <substack>http://substack.net/images/badge.png
00:51:39  * mikolalysenkoquit (Ping timeout: 256 seconds)
00:51:53  <Raynos>substack: when land android support?
00:52:17  <Raynos>substack: also the default android browser is far more interesting to test then chrome4android / firefox mobile
00:53:06  <substack>pretty soonish
00:59:17  * dominictarrquit (Quit: dominictarr)
00:59:41  <defunctzombie>substack: what advantage did using streams buy you for module-deps?
00:59:48  <defunctzombie>since required still just dumps everything
01:02:09  <substack>defunctzombie: so I can better logically separate the pieces
01:02:39  <defunctzombie>substack: I guess I don't see why it couldn't have been simple functions with callbacks?
01:02:51  <defunctzombie>substack: is there a part of this that is actually "streamy" ?
01:02:57  <Raynos>defunctzombie: obsessions with streams are obsessions with streams
01:03:09  <Raynos>defunctzombie: I think the main benefit is supporting unix pipes and command line stuff trivially
01:03:24  <Raynos>bin.js `process.stdin.pipe(require("things")()).pipe(process.stdout)`
01:03:29  <substack>defunctzombie: if required didn't do a dump and instead emitted files as it read them would actually work better
01:03:35  <substack>that was the flow I originally had in mind
01:03:39  <defunctzombie>gotcha
01:04:08  <substack>and it would be a lot better at using the cpu
01:04:17  <defunctzombie>given how culling is done now, it may not be that hard
01:04:22  <substack>since the cpu-heavy AST parsing can be done while browserify waits on io
01:04:47  <substack>or at least, phase 2 of ast
01:05:22  <defunctzombie>substack: lets get v2 working and then revisit the streaming required, could be doable
01:05:39  <substack>agreed
01:05:44  <substack>v2 is so close to working
01:05:53  <defunctzombie>I am giddy
01:05:58  <defunctzombie>I saw you added some ignore stuff
01:05:59  <substack>the test suite already completely passes
01:06:11  <defunctzombie>can't wait to get that into enchilada and make it awesome
01:06:17  * mikolalysenkojoined
01:06:18  <substack>it's just that when I run browserify on some existing projects it's cutting out early
01:06:44  <substack>https://github.com/substack/node-browserify/tree/v2
01:07:15  <substack>plus: https://github.com/substack/node-browserify/tree/v2#multiple-bundles
01:07:33  <defunctzombie>substack: I saw that
01:07:37  <defunctzombie>how would that work via api?
01:07:41  <defunctzombie>ignore(filename) ?
01:07:46  <substack>yep
01:07:48  <defunctzombie>can I get the entry filename of a bundle?
01:08:00  <defunctzombie>I guess that is trivial
01:08:03  <defunctzombie>nice!
01:08:04  <substack>why would you want to do that?
01:08:12  <substack>.ignore('modulename') works too
01:08:14  <defunctzombie>and it will setup all the aliases properly?
01:08:17  <defunctzombie>fuck yea
01:08:24  <defunctzombie>does bundle('modulename') work?
01:08:37  <defunctzombie>or some way to create a bundle from a modulename?
01:08:44  <defunctzombie>very awesome :)
01:09:47  <defunctzombie>substack: with multiple bundles, is the require function automatically put into page scope?
01:10:06  <substack>it does `require=...`
01:10:11  <defunctzombie>nice
01:10:20  <substack>so it's a global since `var` gets weird with hoisting
01:10:36  <substack>but you can just as well src = 'var ' + src
01:10:39  <defunctzombie>and I am guessing the second file also has the require preamble but doesn't use it
01:10:46  <substack>and you'll get a local require def
01:10:52  <defunctzombie>and given that it is so small it doesn't matter :)
01:11:17  <substack>it does use the preamble
01:11:39  <Raynos>dominictarr: https://github.com/dominictarr/demonstrate/pull/1
01:11:43  <substack>multi-bundle builds work because the require()s are self-contained
01:12:17  <defunctzombie>substack: right, but cross bundle communication is done via?
01:12:52  <defunctzombie>substack: are you gonna put back a watch mode?
01:13:08  <defunctzombie>I bet many people use that that don't just drop in the api
01:13:56  <substack>defunctzombie: I'm debating adding back watch mode
01:14:22  <defunctzombie>substack: can't really suggest either way as I don't use it :)
01:14:27  <substack>it's much easier to implement cleanly now that all the pieces are separate
01:14:37  <defunctzombie>I just launch my node app and magic happens heh
01:15:18  <substack>debug mode is also not available right now
01:15:23  <substack>I want real source maps is why
01:16:08  <defunctzombie>ah
01:16:20  <defunctzombie>debug certainly would be an easy stopgap solution
01:16:35  <defunctzombie>given that browserify doesn't change the original source
01:18:19  * dominictarrjoined
01:21:09  * dguttmanquit (Quit: dguttman)
01:22:14  * st_lukequit (Remote host closed the connection)
01:26:00  * lyaunzbequit (Read error: Connection reset by peer)
01:26:04  * lyaunzbe_joined
01:29:31  * fotoveritejoined
01:29:50  * KoryNunnjoined
01:31:24  <substack>KoryNunn: ahoy!
01:31:33  <KoryNunn>hey
01:32:53  <KoryNunn>I was actually just thinking about something you mentioned about making Arra.isArray like methods to check object psudo-inheritance
01:34:03  <KoryNunn>Would this be implemented by an array of objects that are checked against when calling the method?
01:34:32  <KoryNunn>and any object that 'inherits' from the super would register that it does so?
01:35:30  <substack>I usually just check for the presence of particular properties
01:35:35  * st_lukejoined
01:35:43  <KoryNunn>that's what I thought
01:36:08  <substack>function isEventEmitter (obj) { return typeof obj.emit === 'function' && typeof obj.on === 'function' }
01:36:17  <substack>then you don't need to centrally coordinate anything
01:36:20  * fotoveritequit (Quit: fotoverite)
01:36:30  <substack>you just implement the appropriate interfaces and it works
01:36:59  <KoryNunn>the only issue I can see with that is that it isn't overly strict
01:37:13  <KoryNunn>which I guess isn't a terrible downside
01:37:15  <substack>feature
01:37:17  <KoryNunn>haha
01:37:46  <KoryNunn>yeah good point
01:40:24  <substack>when you only check (or presume) the presence of properties or methods, it's much easier to compose behaviors
01:41:09  <substack>you can make objects fit into interfaces with different expectations
01:42:08  <KoryNunn>In my use case, it is actually important that it is difficult to 'fake' an object
01:42:38  <substack>why should that be difficult?
01:42:44  <KoryNunn>https://github.com/gaffa-tape/gel/blob/master/gel.js#L124
01:43:14  <KoryNunn>Because you can create objects in gel expressions, but these objects should never be able to be treated as Tokens
01:43:23  <KoryNunn>even if they have the same interface
01:43:31  <KoryNunn>or you could do some crazy shit
01:44:55  <substack>might be appropriate then in your case
01:45:09  <substack>to prevent that kind of out-of-band issue
01:45:39  * mmckeggquit (Quit: mmckegg)
01:47:34  <KoryNunn>I was just thinking about the pro's and con's for instanceof in this use case after you mentioned it, but I think in this case it's the best way to go.
01:47:39  <KoryNunn>thanks
01:47:57  * st_lukequit (Remote host closed the connection)
01:48:39  <KoryNunn>Oh, and the other issue I have with Array.isArray specifically, is that it fails on objects that 'inherit' from Array.
01:48:58  <substack>inheriting from array is probably a bad idea though
01:49:10  <substack>objects can just have arrays as properties instead
01:49:16  <KoryNunn>why's that?
01:49:43  <substack>because when people see something that looks like an array they make certain assumptions
01:50:10  <KoryNunn>In some cases, I want those assumtions :)
01:53:42  * lyaunzbe_quit (Ping timeout: 252 seconds)
02:01:41  <substack>defunctzombie: required is really slow on gigantic bundles
02:02:00  <defunctzombie>substack: slower than browerify v1 ?
02:02:04  <substack>if you let it take an optional opts.detective I can make it use deputy
02:02:07  <substack>yes much slower
02:02:10  <substack>because it doesn't have caching
02:02:17  <substack>real 0m33.890s
02:02:24  <defunctzombie>substack: caching of what?
02:02:26  <substack>to build the voxel-spider demo
02:02:29  <substack>caching of requires
02:02:35  <defunctzombie>oh, we could add that
02:02:40  <defunctzombie>if it has seen a file
02:02:43  <defunctzombie>no reason to do it again
02:02:51  * lyaunzbejoined
02:02:51  <substack>that's not it
02:02:53  <defunctzombie>wait.. wasn't there a cache thing already?
02:02:54  <substack>the ast parsing is really slow
02:03:05  <substack>deputy is the detective api with a file cache
02:03:16  <defunctzombie>file cache?
02:03:38  <substack>it caches the results of the ast parse and does an md5 hash of the file contents
02:03:53  <defunctzombie>oh that is weird
02:03:59  <substack>it's really fast
02:04:10  * lyaunzbequit (Remote host closed the connection)
02:04:13  <substack>fast things are usually weird
02:04:26  <defunctzombie>and it puts the file in $HOME?
02:04:42  <substack>it's configurable
02:04:43  <defunctzombie>what if other projects are using browserify? just gonna clobber that file?
02:05:06  <substack>it's hash-based
02:05:14  <defunctzombie>so the issue is that doing the work detective is doing is hard
02:05:19  <defunctzombie>so you cache the md5 of the file
02:05:22  <defunctzombie>to avoid doing it again
02:05:24  <substack>yes
02:05:40  <substack>it's much faster to load that work from disk than to recompute it
02:05:43  * lyaunzbejoined
02:05:52  <defunctzombie>fair enough, lets expose detective like we did with resolve
02:05:59  <substack>yep sounds good
02:06:02  <defunctzombie>seems legit to be able to plug and play the various smart components
02:06:32  <defunctzombie>just wondering if doing it in memory isn't good enough
02:06:50  <defunctzombie>I guess on a cold process you still suffer
02:07:04  <defunctzombie>what is slow, the making of the AST?
02:07:07  <substack>30 seconds is way too long to wait
02:07:11  <defunctzombie>I agree
02:07:16  <substack>yes building the ast is slow
02:07:18  <substack>parsing is fast
02:10:24  <defunctzombie>substack: https://github.com/shtylman/node-required/commit/a096427e0a8f08d7206bc865923569dde87da0e4
02:10:28  <defunctzombie>try that out
02:10:34  <defunctzombie>and let me know if that makes it happier
02:11:12  <defunctzombie>how do you get rid of the old md5s from the cache?
02:12:41  * mikolalysenkoquit (Ping timeout: 257 seconds)
02:13:19  * mikolalysenkojoined
02:15:44  <defunctzombie>how the fuck did people manage larger js projects without a easy to use module system
02:15:54  <defunctzombie>like seriously
02:16:00  <defunctzombie>this is some crazy out of control shit going on with jquery plugins
02:16:31  <defunctzombie>how does someone program in other language all day with import and require and not thing.. hey.. maybe I should figure this out for javascript
02:19:27  * nk109quit (Quit: Computer has gone to sleep.)
02:28:19  * mikealquit (Quit: Leaving.)
02:34:38  * mikolalysenkoquit (Ping timeout: 244 seconds)
02:35:07  * dominictarrquit (Quit: dominictarr)
02:49:53  <substack>defunctzombie: ok it seems there is no difference now between using deputy and not using it
02:49:58  <substack>oh!
02:50:12  <substack>there was another caching layer for hosting file contents I remember
02:50:17  <substack>in v1
02:50:21  * tphummelquit (Quit: tphummel)
02:51:45  <defunctzombie>substack: which is?
02:52:38  <substack>I don't remember
02:52:41  <defunctzombie>hahaha
02:53:04  <substack>I just remember I did all these things to make it performant and then it was fast enough so I stopped caring
02:55:24  <defunctzombie>substack: did you fstat files to avoid reading them? reading the files is trivial tho, so little time used
02:56:08  <substack>ok the issue is insertGlobals
02:56:11  <substack>it's crazy slow
02:56:20  <defunctzombie>kill it with fire!
02:56:26  <substack>35 seconds down to 5 seconds when I replaced that with a through stream
02:56:50  <substack>it only activates when you use process, global, __filename, or __dirname
02:57:06  <substack>there's a regex ahead of it that does a first-pass before going to the full ast
02:57:24  <substack>so three.js must have "global" or "process" somewhere in it
02:57:46  <defunctzombie>I hate global variables
02:59:00  <substack>it has both
02:59:12  <substack>whatever, I'll just add an option to turn off global detection
03:00:45  * mikolalysenkojoined
03:03:44  * fotoveritejoined
03:06:03  <Raynos>substack: https://www.gittip.com/substack/
03:06:11  <Raynos>dominictarr: https://www.gittip.com/dominictarr/
03:06:48  <defunctzombie>nice
03:06:57  <Raynos>do the paper work to bank the money
03:07:26  * dguttmanjoined
03:08:55  * mikolalysenkoquit (Ping timeout: 246 seconds)
03:11:31  <substack>Raynos: doing
03:12:07  * dguttmanquit (Client Quit)
03:15:14  * saijanai_joined
03:20:06  <substack>Conflict: 409: Bank account has already been associated with an account.
03:20:14  <defunctzombie>hahaha
03:20:24  <defunctzombie>people should just use bitcoins haha
03:20:32  <substack>indeed
03:20:53  * mikolalysenkojoined
03:22:17  <substack>ok it worked when I used my savings account
03:25:09  <substack>Raynos: https://www.gittip.com/substack/
03:25:41  <substack>I thought I had like $50 from before though :(
03:28:27  <substack>dammit browserify is back over 200 lines again
03:29:08  <defunctzombie>noooooooooooo
03:29:22  <defunctzombie>did you fix the stream issue?
03:29:29  <substack>yes hackishly
03:29:34  <substack>p.pause = function () {} fixed it
03:30:54  <defunctzombie>haha
03:31:24  <defunctzombie>I have some browser-resolve async changes that I will need to land
03:40:02  * AndChat|8064joined
03:40:24  * KoryNunnquit (Quit: Page closed)
03:41:19  * AndChat|8064changed nick to KoryNunn
03:45:02  * ins0mniaquit (Ping timeout: 240 seconds)
04:01:57  * nk109joined
04:03:44  * jden|zzchanged nick to jden
04:17:55  * dguttmanjoined
04:19:12  * dguttmanquit (Client Quit)
04:35:59  <substack>defunctzombie: https://travis-ci.org/substack/node-browserify
04:36:50  <substack>published v2
04:36:54  <defunctzombie>substack: fuck yes
04:36:57  <defunctzombie>that is some shit right there
04:38:01  <defunctzombie>need debug right?
04:38:21  <Raynos>does anyone have a local shadow npm thing
04:38:22  <Raynos>they use
04:38:36  <substack>defunctzombie: yes still needs debug and possibly watch
04:38:37  <Raynos>basically a local npm cache that caches modules commonly used and doesnt replicate all 20k modules
04:39:55  <substack>index.js is 173 sloc
04:39:58  <substack>so I guess that's ok
04:40:09  <defunctzombie>:)
04:40:46  <Raynos>nice
04:41:09  <Raynos>you should document how many kb of min.gzip overhead browserify 2.0 is
04:41:09  * nk109quit (Quit: Computer has gone to sleep.)
04:41:15  <Raynos>WOH
04:41:19  <Raynos>no more lib/wrappers
04:41:31  <Raynos>no more builtins
04:41:44  <defunctzombie>Raynos: they have all moved
04:41:54  <defunctzombie>substack: there is a random blank line in devDependencies
04:42:01  <substack>$ browserify <(echo) | wc -c
04:42:01  <substack>258
04:42:21  <substack>defunctzombie: oh yeah, meh
04:42:26  <defunctzombie>haha
04:42:30  <Raynos>https://github.com/substack/insert-module-globals/issues/1
04:43:11  <substack>Raynos: +1 on that
04:43:13  <Raynos>is this fully implemented? ( https://gist.github.com/shtylman/4339901 )
04:43:20  <substack>I just have some other stuff to get done tonight
04:43:26  <defunctzombie>need some api docs
04:43:37  <defunctzombie>Raynos: yes
04:43:47  <substack>defunctzombie: oh whoops I meant to write those
04:43:55  <defunctzombie>substack: no worries
04:43:59  <Raynos>how would I write browserify 2.0 plugins for ( https://github.com/Raynos/browserify-server/blob/master/index.js#L30 ) ?
04:44:23  <Raynos>I abuse `.html` quite a bit and I also abuse `process.env.NODE_ENV = compile time env`
04:44:30  <substack>Raynos: you wouldn't
04:44:47  <Raynos>did we scrap the browserify 2.0 plugins thing?
04:44:58  <substack>somewhat
04:45:05  <substack>the json structures are all still in there
04:45:08  <substack>they are just not exposed
04:45:35  <Raynos>what about the --debug feature?
04:45:36  <substack>right now to do that kind of thing you would write your own .bundle()
04:45:40  <Raynos>that one was important for me
04:45:55  <substack>it will have debug
04:45:58  * nk109joined
04:46:00  <substack>it just doesn't right now
04:46:10  <substack>more important to get this release out the door
04:46:24  <substack>people can always use old versions until v2 gets --debug and --watch
04:46:33  <defunctzombie>we should just make isaacs require buffer
04:46:35  <substack>and a plugin thing
04:46:59  <Raynos>defunctzombie: agreed but its a pain in the ass :p
04:47:01  * fotoveritequit (Quit: fotoverite)
04:47:09  <defunctzombie>Raynos: it shouldn't be a pain in the ass
04:47:10  <Raynos>would debug be a feature for module-pack ?
04:47:12  <defunctzombie>they should just do it
04:47:17  <Raynos>defunctzombie: it's a human problem
04:47:21  <defunctzombie>require is how we do modules in node
04:47:24  <defunctzombie>just fucking do it
04:47:26  <Raynos>refactor node core to use require("buffer") ;)
04:47:38  <substack>Raynos: ideally I would like browserify to generate source maps
04:47:42  <substack>however those even work
04:47:50  <Raynos>substack: tru dat.
04:48:07  <defunctzombie>substack: I think there is a module that does/makes source maps
04:48:18  <Raynos>substack: which module would do the source map thing?
04:48:26  <Raynos>browserify or browser-pack ?
04:49:11  <substack>holy FUCK
04:49:15  <substack>SUBSTACK RECEIVES
04:49:15  <substack>$27.50
04:49:19  <substack>per week
04:49:24  <substack>it was $3.25 an hour ago
04:49:30  <defunctzombie>hahaha
04:49:59  <substack>there are like 4 weeks in a month
04:51:42  <substack>https://npmjs.org/browse/keyword/commonj-esque
04:52:51  <Raynos>substack: i think you need to serve a http://code.jquery.com/jquery-1.9.0.min.map map file over static HTTP and then put a comment in the js
04:57:34  <defunctzombie>substack: do I still call .bundle ?
04:57:38  <defunctzombie>just returns a read stream?
04:58:27  <substack>yep
04:58:34  <substack>or you can b.bundle(function (err, src) {})
04:58:41  <substack>which buffers the response for you
04:59:03  <chrisdickinson>i kind of like avoiding --watch and just rebuilding on request
04:59:26  <Raynos>ok so
04:59:31  <Raynos>someone needs to write a source map server
04:59:40  <Raynos>that takes a folder & node_modules
04:59:46  <Raynos>and servers local and absolute requires as source maps
04:59:54  <chrisdickinson>Raynos: we could make an endpoint in browservefy
05:00:04  <chrisdickinson>ah
05:00:06  <chrisdickinson>for production
05:00:10  <chrisdickinson>?
05:00:20  <Raynos>then we can just do `--source-map /uri-prefix` and browserify will add all the prefixes with the correct absolute / relative path to the start of all the files as comments
05:00:28  <Raynos>chrisdickinson: yes prod
05:00:30  <Raynos>wait a second
05:00:38  <defunctzombie>substack: cool
05:01:31  <Raynos>not sure whether you can have multiple sourceMappingURL in one file
05:01:35  <Raynos>maybe you need the eval hack again -.-
05:01:37  <Raynos>ffffffffffffffffffffffffffffff
05:01:41  <Raynos>RAGEQUIT
05:05:13  <chrisdickinson>Raynos: published new browservefy with your changes + better output
05:05:19  <Raynos>nice
05:05:38  <Raynos>chrisdickinson: https://github.com/chrisdickinson/browservefy/issues/9
05:05:42  <mbalho>chrisdickinson: can you do browservefy index.js:bundle.js yet
05:05:53  <chrisdickinson>Raynos: it also adds that
05:05:55  <mbalho>or browservefy index.js -o bundle.js
05:06:00  <Raynos>how?
05:06:05  <chrisdickinson>Raynos: errors will appear above everything else on your page
05:06:10  <chrisdickinson>try it out!
05:06:22  <chrisdickinson>mbalho: no, but i'll do that now.
05:06:26  <mbalho>chriqWOOT
05:06:29  <mbalho>oops
05:06:30  <substack>mbalho: https://github.com/substack/node-browserify#multiple-bundles
05:06:32  <mbalho>so excited cant hit tab
05:06:50  <mbalho>oh man its module christmas in here
05:07:07  <mbalho>quick, someone tell me es6 decided to use node modules
05:07:21  <Raynos>see nothing in the web page
05:07:50  <Raynos>chrisdickinson: https://gist.github.com/Raynos/7853fe4ee7a87870be2a
05:07:54  <Raynos>browserify failed in the terminal
05:07:57  <Raynos>but no errors in the browser
05:08:09  <chrisdickinson>hmm
05:08:26  * st_lukejoined
05:08:43  <defunctzombie>substack: I tried to do browserify(['module']);
05:08:47  <defunctzombie>that doesn't seem to work
05:09:04  <defunctzombie>or maybe I am doing something else wrong
05:09:20  <substack>defunctzombie: you should probably use .require() for that
05:09:27  <substack>check out the bin/cmd.js
05:09:46  <defunctzombie>substack: ah ok so make an empty bundle and add to it
05:11:27  <Raynos>chrisdickinson: error is a \n symbol
05:11:52  <chrisdickinson>Raynos: is that module available on npm? form-data-set?
05:12:01  <Raynos>yes
05:12:10  <chrisdickinson>cool, i'll try that in a second
05:12:55  <Raynos>oh :/
05:13:00  <Raynos>it works if I copy paste into console
05:13:04  <Raynos>but fails if server over HTTP
05:13:06  <Raynos>the fuq
05:14:13  * evboguejoined
05:14:58  <Raynos>i see the problem
05:15:06  <Raynos>the problem is the first data on stderr is new line symbol
05:15:18  <Raynos>you should grab all of stderr
05:16:08  <mbalho>concat-stream
05:16:16  <Raynos>yeah that works :)
05:16:49  <substack>con-cat-stream
05:16:57  <Raynos>chrisdickinson: https://github.com/chrisdickinson/browservefy/pull/10
05:17:16  <mbalho>substack: a series of photos of cats convicted of heinous crimes?
05:17:32  * evboguequit (Client Quit)
05:17:35  <substack>Pushed 77 commits to substack/node-browserify Feb 15 - Feb 21
05:17:36  <substack>hooray
05:17:48  <substack>mbalho: perhaps
05:17:53  <chrisdickinson>oh, lol
05:18:25  <Raynos>mbalho: I call concat-stream toArray ( https://github.com/Raynos/read-stream/blob/master/test/utils/toArray.js )
05:18:55  <Raynos>chrisdickinson: this error reporting is awesome :)
05:19:01  <chrisdickinson>thanks!
05:19:25  <chrisdickinson>it also outputs file sizes, which is helpful for, well, voxel.js, to get an idea of the real bundle size
05:19:55  <Raynos>now it just needs more docs in the README
05:20:14  <substack>one of my ulterior motives in releasing all the browserify core components is so that more people start writing their own node-style bundlers and everybody starts using node-style modules
05:21:10  <mbalho>yea you should basically solve the hard problems and let people wrap your solutions in flavor of the week apis
05:21:15  <mbalho>rather than try to get people to adopt your style
05:21:48  <KoryNunn>That doesn't come across as ulterior.
05:22:00  <Raynos>substack: btw global require's are a big win too
05:22:22  <defunctzombie>substack: https://github.com/shtylman/node-enchilada/commit/2e008a17cba2672cc092575a50a01e188c9fc732
05:22:22  <mbalho>KoryNunn: in the context of es6 modules it is :D
05:22:27  <substack>KoryNunn: node-style modules instead of es6-y ones
05:22:30  <defunctzombie>using multiple bundles doesn't seem to work
05:22:31  <substack>for context
05:22:37  <Raynos>it means i can serve my p2p framework thing as a javascript thing
05:22:39  <substack>because I hate es6 modules so much >_<
05:22:44  <Raynos>and tell my users to `require('p2p')`
05:22:48  <Raynos>or use a commonjs thing
05:22:53  <substack>at least that hatred is being funneled constructively into commits
05:22:55  <defunctzombie>substack: ignore works and the files are properly separated
05:23:05  <defunctzombie>substack: (lookign at the external example)
05:23:21  <defunctzombie>substack: and require does run, but it doesn't return the module
05:23:24  <KoryNunn>Yeah I mean, your thoughts on es6 modules are obvious
05:23:26  <substack>defunctzombie: are the require and ignore strings exactly the same?
05:23:27  <defunctzombie>i.e. no error is thrown
05:23:38  <defunctzombie>substack: they are module name
05:23:40  <substack>because of static analysis they must be exactly the same
05:23:53  <Raynos>This reminds me
05:23:55  <Raynos>gozala: ping
05:24:03  <defunctzombie>substack: the way I did checking was not through static analysis but through resolved filename
05:24:10  <Raynos>browserify 2.0 is out so interactivate should work with browserify in browsers now
05:24:11  <defunctzombie>that is more reliable btw
05:24:47  <substack>defunctzombie: it checks both https://github.com/substack/node-browserify/blob/master/index.js#L200-202
05:25:22  <chrisdickinson>mbalho: Raynos: patched, published
05:25:30  <defunctzombie>substack: but that doesn't allow me to require
05:25:33  <Raynos>defunctzombie: https://github.com/Colingo/populate/tree/master/examples can those be run in tryme ?
05:25:36  <defunctzombie>it will insert an empty module path
05:25:45  <chrisdickinson>it now accepts `browservefy entry.js:bundle.js [port] -- [args]`
05:26:04  <mbalho>woot
05:26:16  <chrisdickinson>lemme know if you have any issues with it!
05:26:41  <defunctzombie>Raynos: http://tryme.jitsu.com/Colingo/populate/examples/complex.js
05:26:45  <defunctzombie>Raynos: something is broken
05:26:49  <defunctzombie>I will take a look
05:26:52  <defunctzombie>they should be runnable
05:27:04  <Raynos>defunctzombie: I use `require("./templates/troll.html")`
05:27:11  <defunctzombie>Raynos: oh, that won't work
05:27:15  <defunctzombie>can't require html
05:27:17  <substack>defunctzombie: oh
05:27:26  <defunctzombie>substack: does that make sense?
05:27:32  <substack>yes that makes sense
05:27:35  <defunctzombie>k
05:27:55  <chrisdickinson>browserify 2 works with browservefy, woo
05:28:02  <chrisdickinson>and makes a smaller file.
05:28:06  <substack>the only reason it uses an empty path is because required doesn't have an ignore api itself
05:28:18  <defunctzombie>substack: I think (based on your multi bundle example) you meant for it to work the way I am describing?
05:28:58  <Raynos>defunctzombie: how do I make require html work?
05:29:08  <substack>Raynos: don't do that
05:29:14  <defunctzombie>+1 ^
05:29:19  <substack>write a filter for fs.readFileSync() or something if you must
05:29:24  <substack>oh hah
05:29:26  <substack>better idea
05:29:43  <Raynos>substack: https://github.com/substack/hyperglue/blob/master/example/html.js that sucks
05:29:54  <substack>define a require=function(n){return staticFiles[n]} before the browserify bundle
05:29:55  <defunctzombie>+1 ^
05:29:59  <Raynos>I don't mind writing a fs.readFileSync() filter
05:30:24  <substack>then browserify's fallback behavior will kick in
05:30:32  <Raynos>substack: I want other people to use my module without having to do things
05:30:48  <defunctzombie>substack: when ignoring for multi bundles you want the path that will be resolved still
05:30:48  <Raynos>and I want to write html that isn't json or multiline strings or array concats
05:30:56  <defunctzombie>you just want it as it will exist in the other bundle
05:32:17  <defunctzombie>substack: https://github.com/substack/node-browserify#multiple-bundles did this example work for you?
05:32:52  <defunctzombie>substack: cause that is the same thing I am trying to do via api but because of the empty bundle injection it doesn't seem to work
05:34:06  <substack>yes it did work
05:34:22  <defunctzombie>hm
05:36:08  <chrisdickinson>substack: replete with the ".js" at the end?
05:36:27  <substack>correct
05:36:33  <chrisdickinson>even in the require statements?
05:36:39  <defunctzombie>substack: https://gist.github.com/shtylman/5010985
05:36:44  <defunctzombie>those are the two files produced
05:36:52  <defunctzombie>I have script src="external.js" before foo
05:37:09  <defunctzombie>it does not throw that it cannot find external
05:37:19  <defunctzombie>it just console logs undefined
05:37:28  * chrisdickinsonis slightly startled by `var robot = require('./robot.js');`
05:37:29  <defunctzombie>but "var ext" should be 'foo'
05:37:37  <chrisdickinson>i would expect `var robot = require('./robot');`
05:38:04  <substack>chrisdickinson: static resolution means the exact string is needed now
05:38:18  <chrisdickinson>even for things compiled in the same bundle?
05:38:25  <defunctzombie>substack: yea, I would look at resolving via filename and not static
05:38:47  <Raynos>https://github.com/substack/node-browserify/issues/285
05:38:49  <defunctzombie>cause you can compare the two resolved paths
05:38:50  <substack>defunctzombie: mind figuring out a patch for this issue since you have a failing case handy?
05:38:57  <defunctzombie>substack: yea, will do
05:39:06  <substack>I'm just closing all the old stupid issues
05:39:34  <defunctzombie>haha
05:42:13  <chrisdickinson>Raynos: i might patch live-reload to use sse-stream instead of sock
05:42:17  <chrisdickinson>just to make things a bit smaller
05:42:24  <chrisdickinson>sock/shoe, i mean
05:43:19  <Raynos>chrisdickinson: does sse-stream work in IE9?
05:44:06  <Raynos>chrisdickinson: http://caniuse.com/#feat=eventsource no IE9 support = rejected http://caniuse.com/#feat=websockets
05:44:12  <Raynos>You can use a duplex HTTP stream
05:44:23  <Raynos>you just have to write one
05:44:42  <chrisdickinson>Raynos: yeah, it's pretty easy to polyfill sse-stream with xhrs
05:44:53  <chrisdickinson>i just need to write a module :|
05:45:13  <Raynos>:|
05:45:21  <chrisdickinson>i can't believe they'd take the time to implement websockets but not sse
05:45:27  <chrisdickinson>sse is so much simpler!
05:54:41  <defunctzombie>substack: also, for multi bundles to be more correct, you have to load the other bundle fully (resolve) so that you can ignore any paths that exist within it (otherwise you only ignore the entry path
05:54:50  <defunctzombie>substack: I will try to work on fixing the various issues I am seeing
05:57:53  <substack>ok
05:57:58  * dominictarrjoined
05:58:07  <defunctzombie>substack: yea, your multi bundle example doesn't work via command line
05:58:28  <defunctzombie>substack: oh, maybe I forgot the .js haha
05:58:31  <defunctzombie>jesus
05:58:52  <substack>the readme even explicitly reminds you do add that!
05:59:00  <substack>but yeah it's not exactly ideal
05:59:54  <defunctzombie>substack: nope doesn't work
05:59:59  <defunctzombie>I double checked everything
06:00:55  <defunctzombie>I will look at it closer tomorrow, too tired now :(
06:02:23  <substack>oh maybe it broke in between when I wrote the readme and when I published v2
06:03:41  <defunctzombie>haha
06:04:01  <dominictarr>defunctzombie: because their boss would never sign off on tool building because it might fail, and then it would be his fault for giving permission, and they are too shy or too managed to just go renegade and do it anyway.
06:04:15  <dominictarr>(4 hour late response)
06:05:30  <defunctzombie>wait .. wut
06:06:18  <defunctzombie>dominictarr: ooooo is this in response to my rant?
06:06:43  <dominictarr>about why people don't didn't already make modules for js
06:06:52  <substack>106 issues left to go >_<
06:07:06  <mbalho>lol
06:07:15  <substack>tons of people have made module systems for js
06:07:19  <substack>dominictarr: yui, amd
06:07:28  <defunctzombie>dominictarr: substack: http://www.itistrivial.com/2013/02/support-open-source-developers.html
06:07:30  <substack>it's just that they're all not as good as node
06:07:46  <substack>and node is just another take on commonjs
06:07:56  <substack>it takes time to thoroughly explore the solution space
06:08:01  <defunctzombie>indeed
06:08:22  <substack>but iterative approaches really win out long-term
06:08:30  <substack>which is partly why I dislike es6 so much
06:09:08  <dominictarr>defunctzombie: there is another pattern, the patronage model
06:10:33  <defunctzombie>I think businesses should be more encouraged to pay for the open source software they use
06:10:43  <defunctzombie>some donate developer time
06:11:03  <defunctzombie>but others ask for features and fixes and I think a way to financially stand behind that is important
06:11:19  <chrisdickinson>substack: in package.json, is "browser": "file.js" preferred now, or "browserify": "file.js"?
06:11:46  <defunctzombie>chrisdickinson: you can do more
06:11:48  <substack>oh goodness https://gist.github.com/khoomeister/5010943
06:12:04  <defunctzombie>hahahaha
06:12:07  <chrisdickinson>oh wow
06:12:12  <substack>chrisdickinson: browser
06:12:14  <defunctzombie>all praise the substack god!
06:12:26  <defunctzombie>chrisdickinson: https://gist.github.com/shtylman/4339901
06:12:44  <defunctzombie>chrisdickinson: the browser field is meant to be more powerful allowing for more code reuse
06:13:32  <substack>I linked to that gist in the readme https://github.com/substack/node-browserify#packagejson
06:14:08  <defunctzombie>nice
06:14:33  <defunctzombie>substack: https://github.com/azer/onejs#packagejson
06:14:39  <defunctzombie>some random comment on that gist
06:15:14  <substack>that guy spams HN and reddit all the time too
06:15:52  <defunctzombie>who is he? just some random?
06:16:39  * mikealjoined
06:19:33  <substack>he just wrote onejs
06:19:44  <substack>and promotes it a lot
06:19:49  <substack>even though it's kind of clunky
06:21:32  <substack>but whatever, more people using npm modules in the browser
06:21:35  * mikealquit (Quit: Leaving.)
06:22:05  <defunctzombie>\o/
06:28:11  <st_luke>every additional person writing node style js for the browser is another victory against tc39
06:29:46  <chrisdickinson>really, the loader api is totally fine
06:30:10  <chrisdickinson>i'm just confused as to why the syntax is necessary
06:30:15  <chrisdickinson>and why they chose to copy pyhton
06:30:19  <chrisdickinson>*python.
06:31:01  * st_lukequit (Remote host closed the connection)
06:31:44  <mbalho>can we just draft an open letter from the node module enthusiast developer community?
06:37:07  <defunctzombie>hahah
06:37:17  <defunctzombie>"node module enthusiasts developer community"
06:37:26  <defunctzombie>NMEDC
06:37:41  <defunctzombie>N.MED
06:40:00  <mbalho>node enthusiasts of the require() declaration
06:40:21  <substack>going to close all the browserify issues tonight except for perhaps 3 or 4
06:40:26  <substack>need to make room for the v2 issues
06:42:15  <defunctzombie>CLOSE ALL THE ISSUES!
06:58:20  * mikealjoined
07:02:47  * lyaunzbequit (Remote host closed the connection)
07:05:17  * kenperkinsjoined
07:07:26  * KoryNunnquit (Quit: Bye)
07:08:20  * KoryNunnjoined
07:20:36  * lyaunzbejoined
07:27:08  * KoryNunnquit (Ping timeout: 245 seconds)
07:45:38  * defunctzombiechanged nick to defunctzombie_zz
07:49:44  <jesusabdullah>it's cause python is overrated
07:50:04  <jesusabdullah>that's what you have to remember, "most people" think python is fantastic
07:51:39  <jesusabdullah>I wouldn't say python is terrible per se, but I would say that the python groupthink is such that they ignore the problems in the ecosystem, or worse claim that the problems are actually features
07:51:51  <jesusabdullah>It's unhealthy
07:53:46  * tim_smart|awaychanged nick to tim_smart
07:56:39  * mikolalysenkoquit (Ping timeout: 256 seconds)
07:57:46  <substack>pow https://github.com/substack/node-browserify/issues
08:00:39  <substack>ok then
08:01:20  <juliangruber>browserify is too few loc
08:01:31  <substack>excellent
08:01:34  <substack>exactly what I was going for
08:02:21  <juliangruber>and the unix pipeline approach in node is too new, better use something that is known to work
08:02:24  <mbalho>this is like that scene in LOTR when the kings evil assisant dies and the king awakens from his daze and regains vitality
08:03:20  <substack>pipes are only 49 years old
08:03:56  <tim_smart>pipes <3
08:04:00  <juliangruber>jk!
08:04:02  <substack>Douglas McIlroy is still alive
08:04:15  <tim_smart>pipes have been shipping water for a many number of years
08:04:30  <juliangruber>I used your image of douglas for a talk at my company
08:04:41  <juliangruber>:)
08:05:00  <substack>"The real hero of programming is the one who writes negative code."
08:05:03  <substack>https://en.wikipedia.org/wiki/Douglas_McIlroy
08:05:12  <substack>this guy was pretty much right about everything
08:05:14  <substack>so ahead of his time
08:05:28  <tim_smart>substack: What is negative code?
08:05:34  <juliangruber>oh, and that example where he wrote that text analyzer in 6 lines vs. 3 pages of buggy perl
08:05:53  <substack>juliangruber: the 10 pages of pascal by knuth you mean?
08:06:28  <juliangruber>substack: yes!
08:07:07  <substack>tim_smart: that's when you end up with less code than you started with but also less bugs
08:07:41  <tim_smart>Right, was reading a article about it. "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take"
08:15:32  <juliangruber>dominictarr's rumours is quite big
08:15:40  <juliangruber>I mean a great idea
08:16:12  <juliangruber>just lets you not care about the server and use persistent scuttlebutts all over the place
08:16:26  <dominictarr>juliangruber: cheers.
08:16:43  <substack>I like not caring about persistence
08:16:58  <dominictarr>it's basically the same idea as meteor, but compatible with #stackvm.
08:17:04  <substack>haha
08:17:20  <substack>well and it replicates in a partition-tolerant way
08:17:29  <substack>and you can use it over any stream in node or the browser
08:17:31  <juliangruber>rvagg dominictarr Raynos: I'm developing a sharding module for levelUp that just makes n dbs look like one and be used with multilevel
08:17:45  <dominictarr>cool!
08:17:50  <substack>dominictarr: just make a fancy landing page with a screencast
08:17:57  <dominictarr>working on it.
08:18:02  <substack>oh sweet
08:18:07  <substack>and make voxeljs one of the demos :D
08:18:09  <juliangruber>cool
08:18:25  <juliangruber>:O combine voxeljs and scuttlebutt
08:20:40  * KoryNunnjoined
08:23:17  <juliangruber>what actions from real life can you easily simulate in voxeljs that are communicative and idempotent?
08:23:20  <juliangruber>like games
08:25:40  <juliangruber>I meant commutative
08:28:25  <juliangruber>and becoming a non-virgin is not an appropriate game for this
08:29:27  <mbalho>juliangruber: lol
08:29:48  <mbalho>juliangruber: feel free to add scuttlebutt to https://github.com/maxogden/voxel-server for offline support or something cooler
08:30:31  <mbalho>juliangruber: you could make an app for people to build bike sheds
08:30:40  <mbalho>juliangruber: where they can argue over the color and roof material
08:30:52  <substack>mbalho: I want to use voxeljs to teach kids to build autonomous cargo rockets
08:31:27  <mbalho>substack: that reminds me, go play captain forever for an hour
08:31:29  <mbalho>substack: it rules
08:31:37  <substack>ha
08:33:08  <substack>now fixing the testling-ci css for all the new browsers
08:41:05  <juliangruber>mbalho: or build a github for things with pull requests and everything
08:42:37  <jesusabdullah>I'm still mulling over dc tycoon
08:42:46  <jesusabdullah>been looking up economics models
08:43:03  <substack>oh sweet
08:44:12  <jesusabdullah>I'm thinking, agents (ie, "startups"), choices of services and vendors (ie, datacenters), indifference curves (level curves for "utility" whatever that is) and optimization for budget given all that
08:44:38  <jesusabdullah>that's the bummer thing about utility, it's a non-measure
08:45:04  <mbalho>juliangruber: oooh yea!
08:45:57  <substack>jesusabdullah: implement it in voxeljs
08:46:10  <substack>you place server blocks :D
08:46:28  <substack>and conduit etc
08:47:12  * dominictarrquit (Quit: dominictarr)
08:47:15  <substack>polishing up the v2 blog post since I already wrote it on the plane
08:49:47  <jesusabdullah>substack: That's a concern for a client, gonna start with the backend first
08:52:03  <substack>"it's like minecraft meets rollercoaster tycoon, but for devops and sysadmins in a datacenter"
08:52:25  <jesusabdullah>yeah, it's really not the worst idea
08:52:40  <jesusabdullah>I'll let it bounce around a little
08:54:03  <substack>you could do a kickstarter
08:56:24  <jesusabdullah>costs: a) coffee b) coffee c) coffee
09:00:09  <tim_smart>mbalho: Still cruising New Zealand?
09:02:55  * mikolalysenkojoined
09:05:26  * dominictarrjoined
09:08:04  * mikolalysenkoquit (Ping timeout: 248 seconds)
09:12:36  * dominictarrquit (Quit: dominictarr)
09:12:58  * KoryNunnquit (Ping timeout: 245 seconds)
10:07:04  * kenperkinsquit (Quit: Computer has gone to sleep.)
10:07:48  * ins0mniajoined
10:08:43  <juliangruber>http://song-of-github.herokuapp.com/?username=substack
10:12:25  * ins0mniaquit (Ping timeout: 246 seconds)
10:24:36  * cianomaidinjoined
10:25:10  <substack>https://gist.github.com/substack/5012401
10:29:08  <juliangruber>substack: sweet
10:45:34  <Raynos>mew mew mew mew. I hate my cat
10:54:33  * mirkokjoined
10:58:25  * jibayjoined
11:05:32  * chapelquit (Ping timeout: 240 seconds)
11:06:32  * sorensenquit (Ping timeout: 240 seconds)
11:11:44  * AvianFluquit (Remote host closed the connection)
11:12:59  * sorensenjoined
11:13:40  * chapeljoined
11:15:43  * mirkokquit (Quit: mirkok)
11:27:41  * shuaibjoined
11:28:50  * cianomaidinquit (Quit: cianomaidin)
11:37:20  * mirkokjoined
11:37:25  * mirkokquit (Client Quit)
11:38:03  * spionjoined
11:38:16  <spion>where did all the browserify options go? plugins, debug?
11:39:09  <substack>removed
11:39:59  <substack>spion: https://gist.github.com/substack/5012401
11:40:08  <spion>thanks
11:40:13  * spionis reading
11:47:29  <substack>you can always use v1 until the dust settles on v2
11:48:23  * jibayquit (Remote host closed the connection)
11:59:16  * ralphtheninjajoined
11:59:48  * spionsuggests to link to the v2 announcement in readme.md
12:00:39  <spion>I like modularity, but I'm not so clear on how the new stream API works. I guess I will have to check out those individual modules in the pipeline
12:01:58  * tim_smartchanged nick to tim_smart|away
12:03:31  <substack>I want debug to generate proper source maps but that part isn't ready yet
12:04:15  <spion>/@sourceURL has worked pretty well for me
12:04:17  <spion>oh, so basically I could put plugins between module-deps and browser-pack
12:04:36  <substack>sourceURL only works in eval'd blocks
12:05:02  <substack>spion: yep
12:05:22  <substack>browserify is pretty much just a stream that sits between module-deps and browser-pack
12:05:46  <spion>and they are json streams
12:05:56  <substack>yep
12:06:09  <substack>module-deps main.js | browser-pack > bundle.js
12:06:17  <substack>will get you most of what browserify offers
12:10:55  <spion>hmm.
12:11:21  <spion>module-deps might not know how to process a non-js file
12:11:47  <substack>yes
12:12:47  <spion>so if I want to do that, I'd have to use the lower level module (required)
12:13:01  <spion>and implement the recursiveness myself?
12:13:59  * spionwonders how would one go about implementing say, coffee-script support.
12:16:07  <substack>I'm not sure yet but I want browserify to expose its stream pipeline somehow
12:16:15  <substack>open to suggestions for how to cleanly make that work
12:16:28  * cianomaidinjoined
12:17:41  <juliangruber>browserify module-deps main.js | my-stream | browserify insert-module-globals main.js | my-other-stream | browser-pack > bundle.js
12:18:26  <juliangruber>browserify module-deps main.js | my-stream | browserify globals | my-other-stream | browserify bundle > bundle.js
12:19:02  <juliangruber>there needs to be meta information so e.g. insert-module-globals doesn't need the "main.js"
12:19:03  <substack>there's already --deps and --pack
12:20:50  <juliangruber>so what's undone then?
12:21:20  <substack>meta info would be nifty
12:24:07  <spion>I don't think the dependency walk recursiveness can be expressed with unidirectional unixy streams :/
12:26:44  <substack>it wasn't built for that but it could be
12:32:16  * mikealquit (Quit: Leaving.)
12:33:27  * cianomaidinquit (Quit: cianomaidin)
12:34:51  * cianomaidinjoined
12:37:45  <spion>I don't see how, unless you can set up a loop in unix pipes :)
12:38:17  <spion>zsh can do that though, afaik
12:38:31  <spion>or maybe not
12:38:58  * spionis reads some more
12:40:43  <spion>oh wait.
12:41:18  * mirkokjoined
12:45:06  * shuaibquit (Remote host closed the connection)
12:50:06  * ins0mniajoined
13:16:43  * mikealjoined
13:23:07  * mirkokquit (Quit: mirkok)
13:28:44  * mirkokjoined
13:30:34  * ralphtheninjaquit (Quit: Lost terminal)
13:32:52  * cianomaidinquit (Quit: cianomaidin)
13:43:36  * cianomaidinjoined
13:43:51  * mikolalysenkojoined
13:51:36  * ralphtheninjajoined
13:52:49  * fotoveritejoined
14:06:20  <spion>nope, that wont work.
14:06:48  <spion>bidirectional pipes expect a file
14:07:10  <juliangruber>mkfifo?
14:11:13  <spion>so... create a deps-resolver file with mkfifo and setup bidirectional pipes from translator plugins to it? I don't know...
14:11:31  * fotoveritequit (Quit: fotoverite)
14:12:15  <spion>honestly, I liked the plugins interface, a lot.
14:12:40  <juliangruber>we are doing new stuff and that never comes easily
14:13:07  <spion>the only thing missing from it was a method to pass parameters from the command line
14:14:13  <spion>and sure, you had to write your own plugin wrappers, you couldn't automagically plug stuff in.
14:17:29  * mirkokquit (Quit: mirkok)
14:17:46  <spion>so the closest I can come up with is something like module-deps --translator "*.coffee:coffee $0" --translator "*.jade: jade $0 -args"
14:19:13  <spion>well, jade wouldn't really need that, as it doesn't use commonjs require
14:22:02  * mirkokjoined
14:22:19  <juliangruber>so you want to call jade templates from the client?
14:22:53  <spion>I already do that - require('something.jade') results with a precompiled template function.
14:23:20  <spion>wrote a 10 line plugin for that - the jade compiler needed some coercing but other than that it worked perfectly
14:24:29  <juliangruber>module-deps | jadeify | coffeify
14:25:00  <spion>that will work because jade does its own dependency resolution (for layouts and inheritance)
14:25:13  <spion>its only a problem with the stuff that compile to JS actually.
14:25:28  <juliangruber>jade compiles to js??
14:25:31  <spion>erm, i mean...
14:25:45  * ITprojoined
14:26:10  <spion>languages that are alternatives to JS
14:26:18  <juliangruber>jade is that too
14:26:22  <juliangruber>you can write js there
14:26:25  <spion>or more accurately any file in a different language that invokes require()
14:26:36  <juliangruber>I see
14:26:51  <juliangruber>so module-deps has to know about that, right
14:29:04  <juliangruber>module-deps --ext.jade=jade --ext.coffee=coffee
14:30:16  <juliangruber>where jade and coffee take files on stdin and output js on stdout
14:30:31  <juliangruber>so you might have to write wrappers for that
14:30:42  * Ikeymanjoined
14:30:53  <juliangruber>alternatively: module-deps --ext.jade="jade $0 -args" --ext.coffee="coffee -c $0"
14:31:25  * Ikeymanquit (Client Quit)
14:32:56  * fotoveritejoined
14:38:12  * slaskisjoined
14:47:44  * jibayjoined
14:49:28  * fotoveritequit (Quit: fotoverite)
14:49:50  * fotoveritejoined
14:50:43  <spion>i like that last one, and imo it still retains enough of the unixy tool philosophy (in most cases you wont even have to write a wrapper)
14:51:49  * fotoveritequit (Client Quit)
14:53:12  * defunctzombie_zzchanged nick to defunctzombie
15:07:54  * cianomaidinquit (Quit: cianomaidin)
15:20:52  * mikolalysenkoquit (Ping timeout: 248 seconds)
15:25:28  * slaskisquit (Remote host closed the connection)
15:25:36  * CryptoQuickjoined
15:29:40  * mikealquit (Read error: Connection reset by peer)
15:38:10  * cianomaidinjoined
15:39:30  * cianomaidinquit (Read error: Connection reset by peer)
15:42:51  * cianomaidinjoined
15:49:16  * mikolalysenkojoined
15:52:33  * CryptoQuick_joined
15:54:49  * mikealjoined
15:56:00  * CryptoQuickquit (Ping timeout: 264 seconds)
15:56:00  * CryptoQuick_changed nick to CryptoQuick
16:07:08  * mirkokquit (Quit: mirkok)
16:10:12  * mikealquit (Quit: Leaving.)
16:11:49  * fotoveritejoined
16:22:35  * kenperkinsjoined
16:31:24  * cianomaidin_joined
16:35:09  * cianomaidinquit (Ping timeout: 256 seconds)
16:35:09  * cianomaidin_changed nick to cianomaidin
17:11:04  * cianomaidinquit (Quit: cianomaidin)
17:12:20  * cianomaidinjoined
17:15:42  * AvianFlujoined
17:26:12  * fotoveritequit (Quit: fotoverite)
17:30:12  * mikolalysenkoquit (Ping timeout: 264 seconds)
17:40:12  * mikolalysenkojoined
17:50:55  * cianomaidin_joined
17:53:56  * cianomaidinquit (Ping timeout: 248 seconds)
17:53:57  * cianomaidin_changed nick to cianomaidin
17:55:21  * tphummeljoined
18:14:52  * dguttmanjoined
18:18:48  * nk109quit (Quit: Computer has gone to sleep.)
18:32:17  * defunctzombiechanged nick to defunctzombie_zz
18:46:37  * cianomaidinquit (Quit: cianomaidin)
18:51:11  * dguttmanquit (Read error: Connection reset by peer)
18:51:22  * dguttmanjoined
19:03:59  * ralphtheninjaquit (Quit: leaving)
19:08:00  * nk109joined
19:08:11  * defunctzombie_zzchanged nick to defunctzombie
19:22:21  * defunctzombiechanged nick to defunctzombie_zz
19:23:38  <chapel>substack: http://song-of-github.herokuapp.com/?username=substack
19:33:28  * defunctzombie_zzchanged nick to defunctzombie
19:40:35  * mikolalysenkoquit (Ping timeout: 255 seconds)
19:46:26  * mikolalysenkojoined
19:49:21  * paul_irishchanged nick to paul_irish_
20:06:58  <pkrumins>paul_irish_: we got iphone 6 and ipad 6 for testling-ci! http://ci.testling.com/Colingo/deep-merge.png
20:07:09  <pkrumins>paul_irish_: and now we're getting android!
20:07:20  * evboguejoined
20:09:52  * spionquit (Ping timeout: 246 seconds)
20:10:48  * CryptoQuickquit (Remote host closed the connection)
20:11:10  * CryptoQuickjoined
20:18:33  <substack>example: http://ci.testling.com/Colingo/deep-merge
20:20:41  <CoverSlide>will these be added to browserify?
20:20:47  <CoverSlide>er browserling
20:20:49  <CoverSlide>sorry
20:21:11  <pkrumins>yes
20:24:10  * ralphtheninjajoined
20:28:59  <defunctzombie>needs to use browser ranges :)
20:29:59  <substack>defunctzombie: what do you think about https://github.com/substack/node-browserify/pull/290 ?
20:30:52  <defunctzombie>substack: I believe the browser field will do this already
20:31:02  <defunctzombie>need to double check that the tests are there for browser-resolve
20:31:10  <defunctzombie>but because it looks up the tree for package.json files
20:31:18  <defunctzombie>they can put this in their projects package.json
20:31:29  <defunctzombie>and everything will work as expected
20:32:02  <substack>yes
20:32:12  <substack>but if you don't want to go into the package.json
20:32:18  <substack>if you want an api way of doing it
20:32:31  <defunctzombie>then yea, we need a way to educate browser-resolve about shims
20:32:52  <defunctzombie>or, if browserify already is capturing via _resolve
20:32:57  <defunctzombie>then it could happen there
20:33:06  <defunctzombie>and browser-resolve doesn't even need to be involved
20:33:47  <substack>that's what the .fake() patch does
20:34:01  * Madarsquit (Quit: reboot)
20:34:04  <defunctzombie>substack: I would probably call it "b.replace" maybe, but that is really bikeshedding
20:34:11  <defunctzombie>substack: what does .expose do?
20:34:29  <defunctzombie>substack: I don't like b.fake because it isn't fake
20:34:39  <defunctzombie>you are actually opting to replace/shim functionality
20:34:45  <defunctzombie>that isn't "fake" in my mind :/
20:35:00  <defunctzombie>expose seems like it is different
20:35:04  <defunctzombie>I wouldn't overload it
20:35:18  <substack>.shim()?
20:35:31  <defunctzombie>I like that more
20:35:41  <defunctzombie>cause that is what browser-resolve does to natives
20:35:59  <defunctzombie>shim or replace is what I would go with
20:36:04  <defunctzombie>probably shim
20:36:30  <defunctzombie>shim is what I called it in script
20:36:54  <substack>sounds good
20:37:09  * defunctzombiestill need to fix this multi bundle thing
20:37:22  <defunctzombie>I want to add a failing test for it
20:37:25  * ralphtheninjaquit (Quit: leaving)
20:37:37  <defunctzombie>to make it clear what is going on and avoid breaking it again :)
20:51:52  <substack>ok proper blog post up http://browserify.org/announcing_browserify_v2
20:52:23  <defunctzombie>substack: "browsers" field. -> "browser" field
20:53:37  <defunctzombie>cut features
20:53:42  <defunctzombie>^ my favorite section
20:54:47  <substack>yeah fixed
20:59:09  <defunctzombie>substack: I am a bit confused between add/require/expose
20:59:27  <defunctzombie>so add is for auto execution on load
21:00:24  <defunctzombie>is that also what is called on the files in browserify(files) ?
21:01:11  <defunctzombie>substack: how is expose and require different?
21:01:43  <substack>yes @ files and .add()
21:01:52  <substack>.expose() maps an external name to a file path
21:02:04  <substack>.require() looks up a name and exposes the name you looked up
21:02:07  <substack>it does the resolution for you
21:02:10  <substack>idea
21:02:21  <substack>.require() should just take a second arg to do what .expose() does
21:02:54  <defunctzombie>yes, I agree
21:03:59  * st_lukejoined
21:12:15  <st_luke>switching to rails
21:12:44  <CoverSlide>st_luke: :O
21:12:57  <CoverSlide>;_;
21:14:27  <st_luke>it's the future
21:17:15  <defunctzombie>st_luke: \o/
21:18:43  * shamajoined
21:19:39  <defunctzombie>substack: https://github.com/shtylman/node-browserify/commit/8efc3dab8e45edd8daf0b2eb25ee31a79a8c6af9
21:19:45  <defunctzombie>simple failing multi bundle test
21:21:45  <simcop2387>substack: want to help out kaitlyn? http://news.ycombinator.com/item?id=5266773
21:24:01  * evboguequit (Quit: evbogue)
21:26:23  <substack>done
21:27:28  <tanepiper>https://github.com/testacular/testacular/issues/10 :(
21:28:11  <substack>browserify v2 post is on HN
21:28:37  <defunctzombie>\o/
21:29:10  <tanepiper>I should look at browserify again with my new angular code
21:30:11  <tanepiper>(and also getting my tests to work with testling because I need more x-browser stuff than testacular can provide)
21:30:39  <tanepiper>but as I write my tests in Jasmine: https://github.com/pivotal/jasmine/issues/127 :(
21:30:53  <defunctzombie>more browserify all the time
21:31:09  <defunctzombie>so minimal you can taste the goodness
21:31:43  <tanepiper>but testacular can run mocha, so hmmmm
21:32:04  <substack>tanepiper: also check out https://github.com/substack/tape
21:32:07  <tanepiper>as long as I can get it all working with grunt, yay
21:32:49  <tanepiper>substack: yea, the main issue is going to come from the angular dependancy injection - not tried it outside jasmine yet
21:34:46  <Raynos>st_luke++
21:35:24  <Raynos>tanepiper: more browserify, less angular, less jasmine, more tape.
21:35:39  <tanepiper>Raynos: but i really like angular :p
21:35:42  <Raynos>tanepiper: use testem instead
21:36:10  <Raynos>tanepiper: trust me, you'll do yourself a favor.
21:37:10  <Raynos>angular's module & DI system does not play well with browserify & npm
21:38:08  <defunctzombie>angular needs to just use require
21:38:29  <tanepiper>defunctzombie: yea, i used marionette with require - didn't like it
21:38:44  <tanepiper>i found requirejs to be a bit obtuse
21:38:45  <CoverSlide>maybe someone can make a browserify-ified angular
21:39:17  <tanepiper>doesn't it work with string injection?
21:39:17  <defunctzombie>tanepiper: not requirejs
21:39:23  <defunctzombie>node require style
21:39:27  <Raynos>angular needs to just die
21:39:27  <tanepiper>i.e. ['$scope', function($scope) {
21:39:34  <defunctzombie>man.. every time I saw require people think requirejs
21:39:41  <defunctzombie>requirejs is bad :)
21:39:49  <tanepiper>why do you not like it Raynos?
21:39:54  <Raynos>its a framework
21:40:00  <Raynos>have you seen how much magic is in it
21:40:08  <Raynos>it does too much
21:40:11  <Raynos>therefore it should die
21:40:15  <Raynos>things that do too much must die
21:41:11  <tanepiper>i perceived with it, and i found I liked it
21:41:19  <Raynos>I used it in production
21:41:22  <defunctzombie>tanepiper: use what you like and what works for you :)
21:41:22  <Raynos>way too limiting
21:41:32  <defunctzombie>tanepiper: but always be on the lookout for better things
21:41:36  <defunctzombie>and ways to make life easier
21:41:46  <tanepiper>Raynos: it has a specific set of application uses, true
21:41:48  <Raynos>if you like data binding try something like https://github.com/Colingo/populate
21:42:10  <Raynos>also i just fundamentally disagree with some of the trade-offs angular choose.
21:42:14  <Raynos>I do functional programming.
21:44:01  <tanepiper>i'm sure something better will come along, but i like it's separation of concerns - i hate having to do any templating in scripts
21:44:59  <tanepiper>and it's scope stuff - but services are a bit of a pain
21:45:17  <Raynos>seperations of concerns is easy
21:45:22  <Raynos>what do you mean you hate templating in scripts?
21:47:05  <tanepiper>well in jq-style stuff you tend to do a lot of string concatenation, and in backbone html files tend to be a long list of <script type="text/html> templates
21:47:25  <tanepiper>the problem is there is so many frameworks out there, all done badly
21:47:36  <tanepiper>it's picking the best of a bad bunch
21:50:57  * dominictarrjoined
21:53:27  <Raynos>substack: add an example of emitting keypress events to ever please
21:53:37  <Raynos>tanepiper: https://github.com/Colingo/populate/blob/master/examples/bind.js#L5
21:53:51  <Raynos>tanepiper: but you dont have to pick the best of a bad bunch
21:54:02  <Raynos>with the modular approach you combine many good modules into a single awesome app
21:57:43  * st_lukequit (Remote host closed the connection)
21:59:02  * cianomaidinjoined
22:00:12  * st_lukejoined
22:05:33  * st_luke_joined
22:05:51  <defunctzombie>substack: trying to fix this multi bundle thing, so here is the thing (and you know better about how browser pack and these short ids are working)
22:06:03  <defunctzombie>substack: given I know something will be the emptyFileName (or ignored)
22:06:19  <defunctzombie>substack: I need to know what id to map for the require
22:06:38  <defunctzombie>so a.js requires b.js
22:06:52  <defunctzombie>b.js is the bundle we will have ignored when making a.js
22:07:02  <defunctzombie>in a.js I see "{./b":1}"
22:07:21  <defunctzombie>which is cool, I guess that means when we require ./b it will actually require thing at id 1
22:07:30  <defunctzombie>(based on my current understanding)
22:07:55  <defunctzombie>but thing at id 1 is a {} in the a.js bundle
22:08:07  <defunctzombie>not even sure if I am explaining this correctly
22:08:20  * st_lukequit (Ping timeout: 248 seconds)
22:09:32  * mikolalysenkoquit (Ping timeout: 255 seconds)
22:09:52  <defunctzombie>substack: also, the paths that are passed to browserify don't seem to be truncated down
22:10:01  <defunctzombie>I am seeing the full filesystem path in the final output
22:12:20  <substack>somebody nuked the browserify article from the front page
22:12:22  <substack>fucking HN
22:14:08  * st_luke_changed nick to st_luke
22:17:09  * substack&
22:17:23  <defunctzombie>substack: why?
22:18:28  <defunctzombie>substack: also, seeing full path in output bundle instead of short: /Users/shtylman/projects/node-browserify/test/multi_bundle/b.js
22:18:50  <defunctzombie>I thought that all paths are converted to short names and aliased?
22:19:03  <defunctzombie>versus appearing in the output?
22:20:16  <Raynos>fuck the DOM
22:20:59  <defunctzombie>substack: so require() function api is strange to me
22:21:28  <defunctzombie>I would expect it to take a full filepath or modulename
22:25:05  <defunctzombie>substack: ok, I think I figured it out and will make the magic happen
22:26:19  <defunctzombie>http://news.ycombinator.com/item?id=5267276
22:26:20  <defunctzombie>hahaha
22:26:28  <defunctzombie>I think that is all of a response that is needed
22:27:06  <Raynos>chrisdickinson: do you break the browservefy api?
22:27:10  <defunctzombie>trollol
22:27:19  <chrisdickinson>Raynos: ?
22:27:21  <chrisdickinson>did i break something?
22:27:28  <defunctzombie>break all the things!
22:27:48  <Raynos>`browservefy ./examples/simple.js --browserify='browserify-server' --live -- --debug --bundle` used to work
22:28:14  <chrisdickinson>what's it doing instead of working now?
22:29:22  <Raynos>i dont think its browserifying my js file
22:29:44  <Raynos>`http://localhost:9966/examples/simple.js` just returns raw js
22:30:20  <Raynos>`http://localhost:9966/?p=examples/simple.js` works as expected though
22:30:55  <chrisdickinson>interesting
22:31:00  <chrisdickinson>aliasing might have broken it
22:31:26  <chrisdickinson>(that is, you can do `browservefy ./examples/simple.js:bundle.js` and any request for `bundle.js` will browserify `./examples/simple.js`
22:31:28  <chrisdickinson>)
22:31:42  <chrisdickinson>i'll take a look into it. what repo are you using this against?
22:31:53  <Raynos>not yet published
22:32:30  <Raynos>https://github.com/Colingo/submissions/
22:32:32  <Raynos>^
22:33:33  <chrisdickinson>ah, i bet it's the dot
22:33:36  <chrisdickinson>welll
22:33:38  <chrisdickinson>...
22:34:02  * jibayquit (Remote host closed the connection)
22:34:31  * chrisdickinsonlooks.
22:36:47  <chrisdickinson>interesting
22:37:17  <chrisdickinson>i'm getting the bundle on mine?
22:37:34  <chrisdickinson>ah, maybe i didn't update my browservefy.
22:37:42  <chrisdickinson>yep, that was it
22:37:45  <chrisdickinson>okay, i can fix this :)
22:38:30  * calvinfoquit (Read error: Connection reset by peer)
22:38:57  * calvinfojoined
22:39:55  <Raynos>chrisdickinson: updated the repo with a working demo :p
22:41:01  <chrisdickinson>Raynos: okay, just published a fix
22:41:12  <chrisdickinson>thanks for finding that bug!
22:43:15  <Raynos>cool thanks
22:47:00  * mikolalysenkojoined
22:50:56  <Raynos>dominictarr, substack: do you guys care about the `new Readable({ objectMode: true })` interface, me & isaacs are making adhoc decisions on it in case you want input
22:52:15  <dominictarr>Raynos: that is just another bag on the side of streams! more edge cases! in streams 1 Stream didn't know or care if it was objects or not.
22:52:54  <Raynos>well depends how you implement buffering
22:53:04  <Raynos>that's the main thing.
22:53:14  <defunctzombie>substack: so I think resolved might need a way to tell it here is the filename for the dependency, but don't process any further
22:54:14  <defunctzombie>substack: you had mentioned this earlier but went with _empty.js, but the issue is I want that full filepath I think
22:54:21  <Raynos>https://twitter.com/Raynos2/status/305087588786647041
22:55:31  <rvagg>juliangruber, dominictarr, Raynos: re sharding, fwiw Andrew Chilton was fiddling around with distributed leveldb using one of the ring hashing libs in npm, not sure how far he got with it but I know he was having a lot of fun
22:56:13  <dominictarr>rvagg: yes he was telling me about that
22:57:01  <rvagg>I'm mostly interested in seeing the redundancy problem properly solved before we get into fancy distributed strategies, unless the two can be solved at the same time
22:57:03  * st_lukequit (Ping timeout: 252 seconds)
22:57:13  <rvagg>but I guess rumoursdb is trying to do that eh?
23:10:07  * robertjd_joined
23:15:13  * st_lukejoined
23:28:05  <robertjd_>isaacs: if i pull from your couchdb every minute is that rude, using https://github.com/mikeal/replicate
23:30:14  * dominictarrquit (Quit: dominictarr)
23:31:20  <isaacs>robertjd_: no, that won't even be noticed.
23:31:35  <isaacs>robertjd_: we're doing like many hundreds of requests per second on that thing
23:32:14  * defunctzombiechanged nick to defunctzombie_zz
23:32:15  <isaacs>robertjd_: even just counting tgz downloads, it's like a million a day
23:33:58  <robertjd_>isaacs: sweet :)
23:40:32  * kenperkinsquit (Ping timeout: 255 seconds)
23:51:16  * st_lukequit (Ping timeout: 248 seconds)