00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:00:29  * kenperkinsquit (Ping timeout: 246 seconds)
00:06:26  * i_m_caquit (Ping timeout: 246 seconds)
00:43:35  * mrmrsquit (Remote host closed the connection)
00:54:39  * dguttmanjoined
00:54:57  * nlacassejoined
00:57:35  * ceejbotquit (Remote host closed the connection)
01:02:33  * thlorenzjoined
01:02:34  * ceejbotjoined
01:03:09  * dguttmanquit (Quit: dguttman)
01:11:56  * kenperkins_quit (Remote host closed the connection)
01:15:10  * AvianPhonejoined
01:15:14  * kenperkinsjoined
01:15:45  * calvinfopart
01:17:53  * ednapiranhajoined
01:18:47  <dominictarr>juliangruber, your co-stream looks a lot like a pull/min streams except with yeild
01:19:50  <dominictarr>aha, I see you linked it in the readme
01:23:16  <dominictarr>the real test of an alternative stream is to actually implement some non-trivial stream utils
01:23:25  <dominictarr>say: https://github.com/dominictarr/pull-cat
01:24:06  * dguttmanjoined
01:25:11  * ceejbotquit (Remote host closed the connection)
01:26:18  <substack>dominictarr: perhaps a stream-interop module could be of use for streams experimentation
01:26:40  <substack>takes a pull stream or co-stream or whatever and converts to/from a node stream
01:26:58  <substack>and it auto-detects the stream type
01:27:22  <substack>then people with competing streams implementations can pull request the streams-interop module to detect and convert their kind of stream to core streams
01:29:10  <dominictarr>substack, I have a pull-stream-to-stream and stream-to-pull-stream already
01:29:40  <dominictarr>I don't think autodetect will work, because many alt-streams are just a function
01:30:20  <substack>but you could add properties to those functions to denote their type
01:30:37  <substack>and you could hackishly check the fn.name
01:31:02  <substack>and establish that as a alt-stream detection convention
01:35:01  <dominictarr>you could do that
01:35:29  <dominictarr>maybe just have a .type='co-stream'
01:38:02  * marcello3dchanged nick to marcello3d_zzZ
01:39:34  * kriskowaljoined
01:42:14  <dominictarr>substack, wow, this hand tool guy is amazing
01:42:49  * jxsonquit (Remote host closed the connection)
01:43:44  <dominictarr>substack, I've been thinking about a slightly more organized mad science org., like a mad science grad school
01:48:56  <dominictarr>basically, it would be like a supervisor student thing, the supervisor doesn't tell the student what to do
01:49:29  <dominictarr>but they can give them advice and feedback, ask them hard questions, and introduce them to other people working on the related areas.
01:49:32  * jxsonjoined
01:50:39  <substack>dominictarr: jjjohnny has been poking around a lot with that kind of a model
01:51:38  <dominictarr>I don't think this would be a way to make money, but it could be a good way to make modules
01:52:12  <dominictarr>it would encourage people to publish what they are doing, as well as communicate what their project is about
01:52:32  <dominictarr>everyone would get good practice at writing english too
01:53:10  <grncdr>substack: I've come up with a way to accomplish what I want with http-browserify, but it's a bit janky
01:53:25  <grncdr>basically delaying the xhr.open(…) call until the next tick
01:54:22  <grncdr>it doesn't break parity with the node core http, but it might break things for users that are accessing request.xhr directly
01:54:30  <grncdr>like me
01:56:07  * ceejbotjoined
01:56:10  <grncdr>PR'ing in a second, but I was thinking about emitting an event after xhr.open(…) so that users could interact with it reliably
01:57:29  * mikolalysenkoquit (Ping timeout: 250 seconds)
01:59:43  * thealphanerdjoined
02:06:12  * contrahaxquit (Quit: Sleeping)
02:17:45  * i_m_cajoined
02:18:42  * dlmanning_changed nick to dlmanning
02:19:14  * dlmanningchanged nick to Guest24997
02:19:23  * Guest24997changed nick to dlmanning_
02:24:10  <substack>dominictarr: that lcd from the camera I got in china fits a tiny computer that somebody dropped off at sudoroom
02:24:40  * mrmrsjoined
02:27:23  <dominictarr>this is clever: http://www.wired.com/dangerroom/2014/01/army-communications-balloon/
02:27:48  <dominictarr>substack, awesome! have you got it displaying?
02:27:57  <substack>not yet, I need a usb cable to power it up
02:28:31  * ceejbotquit (Ping timeout: 245 seconds)
02:28:59  <dominictarr>I brought one of the gps screens since, but vga is no good for text
02:29:27  <dominictarr>I've tried coding with it, but spent half the time trying to guess which letter I typed
02:31:19  * fotoveritequit (Quit: fotoverite)
02:37:02  <substack>what about with bitmapped fonts?
02:37:31  <substack>you used to be able to plug computers into televisions back in the earliest days
02:40:06  * mikolalysenkojoined
02:41:31  <dominictarr>probably readable if you went under 10x40
02:42:52  <gildean>i still have a couple of c=64's i can just plug in to my tv and start playing rock 'n wrestle
02:42:59  <dominictarr>but that is really taking it too far I think a better approach would be a android development board
02:43:05  <dominictarr>gildean, nice
02:49:13  * dguttmanquit (Quit: dguttman)
02:58:37  * ceejbotjoined
02:59:33  * yorickquit (Remote host closed the connection)
03:00:36  <mikolalysenko>rvagg: in workshopper v2, will it be possible to write custom validators?
03:01:04  <rvagg>mikolalysenko: yes, totally, that's one of the core goals
03:01:24  <mikolalysenko>rvagg: awesome, I'm looking forward to it
03:01:38  <rvagg>mikolalysenko: the structure now is that workshopper itself just runs the menu bit and defers to "exercise" objects to execute and validate the exercise, just passing in what was given on the cmdline
03:02:03  <rvagg>mikolalysenko: then you plug together the exercise how you need to setup, execute, validate and cleanup a run/verify
03:02:05  <mikolalysenko>rvagg: ok. so it will be possible for example to execute the exercise within a browser
03:02:33  <rvagg>mikolalysenko: in theory, you should talk to hughsk, he's wanting to do the same thing and has been privy to the dev of this next version of workshopper
03:02:52  <rvagg>mikolalysenko: check out the workshopper-* repos in my github, starting with workshopper-exercise
03:03:19  <mikolalysenko>ie spin up local server, open websocket and run code in page
03:03:21  <rvagg>mikolalysenko: you ought to be able to replace the core workshopper component with a workshopper-browser that does the same thing and the exercises themselves could be pretty much the same as in node
03:03:56  <rvagg>mikolalysenko: right, well there are async setup/process/cleanup stages, you just need to hook in to those as you need
03:04:24  <rvagg>then for 'process' you just give back a boolean for pass/fail, but along the way you can also emit 'pass' and 'fail' events to display ticks and crosses for various validation steps you might have
03:04:38  <rvagg>so if you have a browser running in the background and you're connecting to it for validation then that'll work too
03:04:53  <mikolalysenko>rvagg: ok
03:05:08  <rvagg>mikolalysenko: I'm just writing another component for something I need but the next step is documentation and converting learnyounode and levelmeup to serve as examples
03:05:51  * mrmrsquit (Remote host closed the connection)
03:06:06  <mikolalysenko>rvagg: great, can't wait for the next version
03:07:28  <rvagg>mikolalysenko: it's basically ended up like a test framework, so it's best to think of it in those terms, I don't think it'll be nearly as difficult to bend it to do all sorts of odd things
03:07:36  <rvagg>(as the current version)
03:14:03  * thealphanerdquit (Quit: thealphanerd)
03:16:58  * mrmrsjoined
03:17:18  <mikolalysenko>rvagg: yeah, that makes sense
03:27:37  * contrahaxjoined
03:28:06  * jxsonquit (Remote host closed the connection)
03:29:06  * jxsonjoined
03:30:40  * jcrugzzjoined
03:32:37  * dlmanning_changed nick to dlmanning
03:42:21  * jxsonquit (Ping timeout: 250 seconds)
03:45:56  * DTrejoquit (Remote host closed the connection)
03:47:19  * coderzac_joined
03:48:42  * AvianPhonequit (Quit: Bye)
03:50:10  * mrmrsquit (Remote host closed the connection)
04:00:36  * maksimlinquit (Ping timeout: 245 seconds)
04:09:36  * thlorenzquit (Remote host closed the connection)
04:10:10  * thlorenzjoined
04:14:25  * thlorenzquit (Ping timeout: 250 seconds)
04:20:26  * jxsonjoined
04:22:11  * maksimlinjoined
04:25:11  * jxsonquit (Ping timeout: 245 seconds)
04:26:17  * 16WAALOTKquit (Quit: leaving)
04:26:49  <dominictarr>substack, does testling test all the branches?
04:27:06  <feross_>dominictarr: it will test whatever branch you push
04:27:30  <feross_>dominictarr: whichever you push last will be what the badge shows too
04:28:20  <substack>dominictarr: yep!
04:41:14  * jxsonjoined
04:41:47  * ferossquit (Quit: feross)
04:41:47  * feross_changed nick to feross
04:42:16  * i_m_caquit (Ping timeout: 245 seconds)
04:48:40  * marcello3d_zzZchanged nick to marcello3d
04:50:38  * dominictarrquit (Ping timeout: 246 seconds)
04:52:25  * thealphanerdjoined
04:52:33  * jxsonquit (Ping timeout: 250 seconds)
04:59:44  * pfraze_joined
05:00:47  * pfrazequit (Ping timeout: 246 seconds)
05:13:56  * mikolalysenkoquit (Ping timeout: 245 seconds)
05:28:44  * calvinfojoined
05:29:42  * calvinfo1joined
05:29:43  * calvinfoquit (Read error: Connection reset by peer)
05:30:35  * calvinfojoined
05:30:35  * calvinfo1quit (Read error: Connection reset by peer)
05:34:46  * calvinfoquit (Ping timeout: 245 seconds)
05:38:35  * guybrushquit (Excess Flood)
05:38:52  * guybrushjoined
05:39:05  * jxsonjoined
05:39:38  * fotoveritejoined
05:53:34  * mrmrsjoined
05:55:21  * coderzac_quit (Remote host closed the connection)
05:56:33  * calvinfojoined
05:57:37  * jxsonquit (Remote host closed the connection)
05:58:38  * coderzachjoined
05:59:53  * jxsonjoined
06:00:55  * hoobdeeblaquit
06:01:13  * calvinfoquit (Ping timeout: 272 seconds)
06:02:51  * maksimlinquit (Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131206152142])
06:03:45  * coderzachquit (Ping timeout: 272 seconds)
06:05:54  * pfraze_quit (Ping timeout: 247 seconds)
06:09:58  * calvinfojoined
06:10:25  * mikolalysenkojoined
06:15:11  * mikolalysenkoquit (Ping timeout: 245 seconds)
06:22:18  * dominictarrjoined
06:26:09  * coderzachjoined
06:27:56  * coderzac_joined
06:27:56  * coderzachquit (Read error: Connection reset by peer)
06:28:37  * jxsonquit (Remote host closed the connection)
06:30:24  <juliangruber>substack: are you planning to write a blog post about all the attr- modules?
06:30:58  * ceejbotquit (Remote host closed the connection)
06:32:23  <juliangruber>substack dominictarr: i've been thinking about writing a processing module that creates processing chains out of many kinds of streams, (a)sync functions and more
06:32:53  * coderzac_quit (Ping timeout: 272 seconds)
06:32:55  <substack>juliangruber: yes once I get a few more pieces
06:34:33  <substack>once I fix the bug in scope or bind, it just needs a handlebars templating engine that works like angular with scoping but does automatic live updating and ranges from level like meteor
06:35:09  <substack>that will make a really compelling demo video
06:35:26  * jxsonjoined
06:36:31  * mikolalysenkojoined
06:40:39  <juliangruber>oh yes
06:40:51  <juliangruber>substack: you should use that as a talk mind blowing device
06:42:03  * ceejbotjoined
06:45:00  <substack>juliangruber: well it's not much more than multilevel already gives you, just with the html part of it more taken care of
06:45:36  * jxsonquit (Remote host closed the connection)
06:45:48  * jxsonjoined
06:46:31  * ceejbotquit (Ping timeout: 250 seconds)
06:48:27  <juliangruber>substack: but some of it is steep enough to be worth a guided introduction, like the multilevel range mapping
06:48:50  * coderzachjoined
06:53:08  * coderzachquit (Ping timeout: 246 seconds)
06:56:33  * calvinfoquit (Quit: Leaving.)
06:56:59  <dominictarr>should I bother fixing ie 8 or should I just take that out of my testling config?
06:58:01  <substack>dominictarr: which module?
06:58:23  * jcrugzzquit (Ping timeout: 246 seconds)
06:59:04  * ednapiranhaquit (Quit: Leaving...)
07:01:25  * captain_ahabjoined
07:02:03  * ceejbotjoined
07:02:10  * marcello3dchanged nick to marcello3d_zzZ
07:03:03  * mrmrsquit (Remote host closed the connection)
07:03:09  * phatedjoined
07:03:43  * ceejbotquit (Read error: Connection reset by peer)
07:03:50  * ceejbot_joined
07:04:04  * captain_ahabpart
07:05:28  <dominictarr>substack, console.log({}, {}, {}) will do it
07:05:55  <dominictarr>if you have multiple args where the first is not a string then that test will have a false negative
07:09:57  <substack>dominictarr: which module?
07:10:14  <substack>oh or just in testling itself?
07:12:56  * Maciek416quit (Remote host closed the connection)
07:13:53  * jxsonquit (Remote host closed the connection)
07:14:03  <dominictarr>substack, yeah, it's testling itself, I think I put in a PR to fix this a while ago, but the testling servers arn't running the latest version.
07:14:18  <substack>dominictarr: testling servers don't run the testling bin itself
07:14:28  <substack>but they have basically the same code
07:14:39  <dominictarr>they don't have the fix
07:14:42  <substack>yes
07:17:49  * calvinfojoined
07:23:08  * marcello3d_zzZchanged nick to marcello3d
07:23:32  <dominictarr>hmm, through doesn't work with ie8 no body has every complained about that...
07:23:53  <dominictarr>but having the red flag makes me want to fix it...
07:24:26  * captain_ahabjoined
07:24:59  * jcrugzzjoined
07:25:56  <dominictarr>feross, idea: p2p music streaming via webtorrent, with adds, but 100% of the income goes to the artists
07:26:21  * captain_ahabpart
07:29:30  * h0kequit (Quit: Konversation terminated!)
07:32:18  <owen1>juliangruber: attractor is mind-blowing. it's like having angular and meteor but using tiny modules. the problem is very few people can uderstand what's going on there and how to use it. i pasted i link to a demo of 'live-updating' but no one on #meteor cared..
07:32:49  * marcello3dchanged nick to marcello3d_zzZ
07:33:36  <chapel>people use meteor because they don't have to think about what they are building
07:33:38  <chapel>or how to build it
07:33:41  * jcrugzzquit (Ping timeout: 272 seconds)
07:33:52  <chapel>just slap some code together and hope the magic black box works
07:34:17  <owen1>i am sure that i'll get similar reaction on angular. i would like to start using it but scared of 0 adoption and not sure how to integrate it with other libraries.
07:35:49  <chapel>its just js
07:35:56  <owen1>i guess what we need is a complete demo project that is using attractor. similar to riot.js - https://moot.it/riotjs/docs/
07:39:36  <feross>dominictarr: neat idea. i support this idea
07:39:55  <feross>dominictarr: but first i need to get webtorrent into a better state
07:40:06  <dominictarr>yeah sure
07:49:33  * coderzachjoined
07:52:59  <substack>owen1: or just make a slick video and a web page with decent docs
07:53:20  * marcello3d_zzZchanged nick to marcello3d
07:54:07  * coderzachquit (Ping timeout: 250 seconds)
07:54:11  <substack>owen1: also even fewer people understand what's going on inside of angular and meteor
07:54:25  <substack>at least with tiny modules you can go and read the docs and completely understand the tiny module in isolation
07:54:50  * calvinfoquit (Quit: Leaving.)
07:58:03  * jxsonjoined
08:00:11  * mikolalysenkoquit (Ping timeout: 245 seconds)
08:00:55  * ceejbot_quit (Ping timeout: 272 seconds)
08:03:12  <guybrush>dominictarr: very nice idea (webtorrent-music)
08:06:26  <guybrush>kinda like the original idea of batoto.net (but they struggle with "ad-network-functionality") -- http://www.batoto.net/forums/topic/1957-batoto-is/
08:07:09  <guybrush>(batoto.net is web-comic-reader where groups can publish their translations and stuff)
08:17:15  * captain_ahabjoined
08:18:06  * captain_ahabquit (Client Quit)
08:18:30  * captain_ahabjoined
08:19:51  * captain_ahabchanged nick to joaoafrmartins
08:23:36  * fotoveritequit (Quit: fotoverite)
08:26:43  * mikolalysenkojoined
08:29:48  <dominictarr>juliangruber, can you do: metaTransform = pipe(transform1,transform2,transform2)
08:30:13  <dominictarr>can your streams distinguish between a source, a sink and a transform?
08:30:29  <juliangruber>that doesn't work
08:30:38  <juliangruber>transform streams take their source as an argument
08:30:51  <juliangruber>transform2(transform2(transform1(source)))
08:30:54  <juliangruber>transform2(transform2(transform1(source())))
08:31:12  <dominictarr>but a transform returns another function
08:31:18  <dominictarr>but a sink returns undefined
08:31:29  * mikolalysenkoquit (Ping timeout: 246 seconds)
08:31:35  <juliangruber>a sink is just a function that while (true) yield read()
08:31:46  <substack>juliangruber: you should post an issue on https://github.com/whatwg/streams about generators and streams
08:31:54  * marcello3dchanged nick to marcello3d_zzZ
08:32:00  <dominictarr>juliangruber, how is end marked?
08:32:01  <juliangruber>substack: they're already using promises :((((
08:32:13  <substack>:(
08:32:16  <dominictarr>does it return a sentinel value that means end?
08:32:19  <juliangruber>dominictarr: currently it's non object streams only, so just return a falsy value
08:32:23  <juliangruber>but
08:32:30  <juliangruber>i'm thinking about changing that to the `end` argument
08:33:15  <dominictarr>yeah, this is messy which is why I used a separate argument that means end in pull stream
08:33:33  <substack>Domenic_: you should take a look at https://github.com/juliangruber/co-stream if you haven't already!
08:33:36  <dominictarr>because I saw the weakness of checking sentinels in reducers
08:33:46  <juliangruber>dominictarr: https://gist.github.com/juliangruber/8819364
08:34:04  <juliangruber>dominictarr: if we had destructuring assignment that would be awesome
08:34:12  <dominictarr>best not to use singletons in js, especially with node_modules
08:34:16  <juliangruber>return [false, data] in the readable
08:34:27  <substack>juliangruber: is there any way to write a generator functions that can automatically fall back to using regular callbacks?
08:34:28  <juliangruber>and let { end, data } = yield read()
08:34:39  <substack>if your env doesn't have generator support
08:34:47  <dominictarr>right, undefined is end
08:34:47  <substack>or if you just want to use a callback for that part also
08:34:54  <dominictarr>sorry falsey
08:35:22  <juliangruber>substack: yes if you don't use the yield keyword internally you can call a function like this: var data = yield read(); and read()(function(err, data){})
08:35:38  <dominictarr>juliangruber, also checkout creationix's minstream it's basically the cb version of this, and he made it keeping fibers in mind
08:37:07  * jxson_joined
08:37:10  * calvinfojoined
08:37:16  * calvinfoquit (Client Quit)
08:37:47  <juliangruber>dominictarr: i will thanks
08:38:21  <juliangruber>dominictarr: if javascript had `var a = false; var b = false; assert(a != b)` we could use a boolean for signaling end and abort
08:38:39  <juliangruber>and yield arbitraty js objects
08:38:42  <juliangruber>even yield false
08:38:47  <juliangruber>and the stream wouldn't end
08:39:14  <juliangruber>maybe we should use node stream's `null` as the end value and start supporting object streams
08:40:14  * jxsonquit (Ping timeout: 246 seconds)
08:40:21  * phatedquit (Remote host closed the connection)
08:41:34  <dominictarr>juliangruber, if false != false?
08:41:45  <juliangruber>if we could compare references not values
08:41:49  <juliangruber>for booleans
08:41:54  <dominictarr>oh right
08:41:59  <dominictarr>references are weird
08:42:01  <juliangruber>with es6 we could use symbols
08:42:05  <juliangruber>that would work
08:42:09  <dominictarr>because that is singletons
08:42:20  <dominictarr>you could just about do: hash('END')
08:42:34  <dominictarr>and hash('ABORT')
08:42:48  <juliangruber>dominictarr: the singleton will be created by the sink so it should be in your control
08:43:05  <juliangruber>dominictarr: it would be killer if you wouldn't need any dependencies to make co-streams work
08:43:11  <juliangruber>like, wow, mindblown
08:43:14  <juliangruber>no stream library?
08:43:18  <dominictarr>this is complicated with node_modules though, you need to use globals.
08:43:18  <juliangruber>wow such core
08:43:40  <dominictarr>juliangruber, you don't with pull streams or min streams
08:43:53  <juliangruber>dominictarr: the sink creates the `end` singleton and passes it down the chain and others pass it up again
08:44:04  <juliangruber>dominictarr: oh
08:44:23  <dominictarr>if don't use the compose/pipe function
08:44:35  <juliangruber>dominictarr: do you have a source transform sink example that doesn't use any modules?
08:44:43  <juliangruber>ie no pull.*
08:44:55  <dominictarr>juliangruber, now if | was a compose operator, that would be one thing I'd add.
08:45:16  <dominictarr>yeah
08:46:12  <dominictarr>function values (ary) { var i = 0; return function (end, cb) { if (i < ary.length) { cb(true) } else { cb(null, ary[i++]) } } }
08:46:30  <juliangruber>yeah that'd be killer but it's not possible without global state, right? i remember hij1nx's pipe module relying on globals
08:46:53  <dominictarr>function sync (read) { read(null, function next (err, data) { console.log(data) if(!end) read(null, next) })}
08:46:56  <dominictarr>and map:
08:47:50  <substack>juliangruber: no, you can do it with state variables
08:48:15  <dominictarr>function map(func) { return function (read) { return function (end, cb) { read(end, function (end, data) { cb(end, !end && func(data))})}}}
08:48:18  <dominictarr>then:
08:48:25  <substack>juliangruber:
08:48:25  <substack>function F (x) {this.x = x}; F.prototype.valueOf = function () { console.log('X=', this.x) }
08:48:32  <substack>var a = new F(3), b = new F(5); a | b
08:48:40  <juliangruber>:O
08:48:51  <dominictarr>sink()(map(function (e) { return e*10})(values([1,2,3])))
08:48:51  <juliangruber>that would be nice
08:49:04  <juliangruber>but then stream creates would have to do that or use a module
08:49:35  <dominictarr>juliangruber, no deps!
08:50:04  <substack>juliangruber: oh actually to track the arguments inside of valueOf it looks like global state is necessary
08:50:05  <dominictarr>juliangruber, see also, observable is simple enough for a no dep pattern
08:50:20  * coderzachjoined
08:50:24  <substack>anyways it's a cute api but probably too hacky to be a good idea
08:51:19  <juliangruber>dominictarr: sweet, reading
08:51:37  <juliangruber>substack: super cute
08:51:49  <dominictarr>don't be cute
08:51:53  <juliangruber>in case anyone else wants to have a look at the complete picture: https://gist.github.com/juliangruber/8819556
08:51:54  <substack>be boring
08:51:55  <juliangruber>dominictarr: :D :D :D
08:55:03  <dominictarr>be obvious
08:55:23  * coderzachquit (Ping timeout: 272 seconds)
08:56:21  <juliangruber>dominictarr: your example written with co-streams: https://gist.github.com/juliangruber/8819607
08:56:25  <juliangruber>they're very similar
08:56:34  <juliangruber>but the strict `null` for signaling end is a pita
08:56:37  * ceejbotjoined
08:56:45  <juliangruber>very tempted to keep it binary/string streams for now
08:57:45  <dominictarr>juliangruber, minimal streams are great for object streams though
08:58:34  <juliangruber>yeah
08:58:35  <juliangruber>meh
08:59:15  <dominictarr>juliangruber, benchmarks!
08:59:24  <dominictarr>is simpler faster?
09:00:03  <juliangruber>dominictarr: good idea!
09:00:10  <dominictarr>* away
09:01:01  * ceejbotquit (Ping timeout: 245 seconds)
09:04:17  <niftylettuce_>urgent https://github.com/stripe/stripe-node/issues/87 /cc isaacs
09:04:38  <niftylettuce_>npm issue maybe?
09:04:39  * mrmrsjoined
09:07:44  <niftylettuce_>errr nvm
09:07:48  <niftylettuce_>hmm
09:09:43  * niftylettuce_npm v1.3.24... im trying to upgrade to npm v.1.3.26 to see if htat resolves
09:16:41  * mrmrsquit (Remote host closed the connection)
09:17:17  * mrmrsjoined
09:20:42  * jxson_quit (Remote host closed the connection)
09:21:35  * marcello3d_zzZchanged nick to marcello3d
09:24:33  * ferossquit (Quit: feross)
09:25:00  * ferossjoined
09:26:39  * thealphanerdquit (Quit: thealphanerd)
09:28:27  * mikolalysenkojoined
09:30:13  * ferossquit (Ping timeout: 272 seconds)
09:32:08  * marcello3dchanged nick to marcello3d_zzZ
09:41:23  * tilgoviquit (Remote host closed the connection)
09:43:42  * contrahaxquit (Quit: Sleeping)
09:50:54  * phatedjoined
09:51:05  * coderzachjoined
09:52:50  * marcello3d_zzZchanged nick to marcello3d
09:55:27  * coderzachquit (Ping timeout: 250 seconds)
09:55:29  * phatedquit (Ping timeout: 245 seconds)
09:57:16  * ceejbotjoined
10:01:31  * ceejbotquit (Ping timeout: 245 seconds)
10:03:27  * marcello3dchanged nick to marcello3d_zzZ
10:49:10  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
10:51:51  * coderzachjoined
10:53:35  * marcello3d_zzZchanged nick to marcello3d
10:56:59  * coderzachquit (Ping timeout: 272 seconds)
10:58:07  * ceejbotjoined
11:02:37  * ceejbotquit (Ping timeout: 250 seconds)
11:03:31  * marcello3dchanged nick to marcello3d_zzZ
11:22:33  * mrmrsquit (Ping timeout: 250 seconds)
11:45:22  * occamshatchetquit (Ping timeout: 265 seconds)
11:48:54  * guybrushquit (Excess Flood)
11:49:00  * guybrushjoined
11:49:31  * cianomaidinjoined
11:52:35  * coderzachjoined
11:54:20  * marcello3d_zzZchanged nick to marcello3d
11:55:49  * ins0mniajoined
11:56:56  * coderzachquit (Ping timeout: 246 seconds)
11:58:51  * ceejbotjoined
11:59:15  * yorickjoined
12:03:19  * ceejbotquit (Ping timeout: 260 seconds)
12:04:20  * marcello3dchanged nick to marcello3d_zzZ
12:08:24  * marcello3d_zzZchanged nick to marcello3d
12:18:14  * marcello3dchanged nick to marcello3d_zzZ
12:21:35  * jolissjoined
12:21:52  * jolissquit (Client Quit)
12:46:33  * djcoinjoined
12:52:56  * dominictarrquit (Ping timeout: 246 seconds)
12:53:17  * coderzachjoined
12:57:41  * coderzachquit (Ping timeout: 245 seconds)
13:04:25  * coderzachjoined
13:09:08  * marcello3d_zzZchanged nick to marcello3d
13:18:52  * marcello3dchanged nick to marcello3d_zzZ
13:31:37  * fotoveritejoined
13:38:22  * thlorenzjoined
13:45:02  * thlorenzquit (Remote host closed the connection)
13:45:34  * thlorenzjoined
13:45:46  * thlorenzquit (Remote host closed the connection)
13:46:30  * thlorenzjoined
13:50:00  * coderzachquit (Remote host closed the connection)
13:58:13  * DTrejojoined
13:59:59  * thlorenzquit (Ping timeout: 260 seconds)
14:00:21  * ceejbotjoined
14:01:56  * thlorenzjoined
14:03:19  * DTrejoquit (Remote host closed the connection)
14:04:39  * ceejbotquit (Ping timeout: 245 seconds)
14:09:52  * marcello3d_zzZchanged nick to marcello3d
14:14:11  * substack_joined
14:15:11  * thlorenzquit (Ping timeout: 246 seconds)
14:15:36  <substack_>I killed my laptop :(
14:15:38  * cianomaidinpart
14:15:46  <substack_>my screwing a screw that was too long in too far
14:15:58  <trodrigues>ouch :(
14:16:00  <substack_>it ate into the motherboard
14:17:39  * AvianFlujoined
14:19:06  * coderzachjoined
14:19:49  * marcello3dchanged nick to marcello3d_zzZ
14:20:27  * thlorenzjoined
14:21:17  * thlorenzquit (Remote host closed the connection)
14:21:32  * thlorenzjoined
14:25:49  <gildean>substack_: well that sucks
14:26:12  * jcrugzzjoined
14:45:00  * substack_quit (Quit: Page closed)
15:01:05  * ceejbotjoined
15:04:27  * marcello3d_zzZchanged nick to marcello3d
15:07:20  * ceejbotquit (Ping timeout: 246 seconds)
15:14:03  * marcello3dchanged nick to marcello3d_zzZ
15:15:51  * Maciek416joined
15:20:06  * pfrazejoined
15:23:07  * pgtejoined
15:27:22  * kevino80joined
15:29:16  * ceejbotjoined
15:54:12  * DTrejojoined
16:05:08  * marcello3d_zzZchanged nick to marcello3d
16:09:40  * defunctzombiechanged nick to defunctzombie_zz
16:17:59  * substack_joined
16:18:04  <substack_>beep boop
16:22:48  * marcello3dchanged nick to marcello3d_zzZ
16:24:35  <substack_>pow, already hooked up a replacement laptop
16:25:09  <substack_>heading out at 10am to get it
16:25:12  <substack_>it's down in san jose
16:25:17  <substack_>NO WAY SAN JOSE
16:25:17  <LOUDBOT>OUR ENEMY HIDES IN METAL BOXES
16:29:35  <jjjohnny>substack_: http://www.youtube.com/watch?v=jqWt49o7R-k #sanJose
16:29:46  <substack_>YAY AREA
16:29:46  <LOUDBOT>BACK SHORTLY. AND THEN I TOO WILL HAVE CANNED FRUITS
16:31:27  <jjjohnny>http://monoskop.org/log/?p=10535
16:51:21  * dominictarrjoined
16:53:01  * ceejbotquit (Remote host closed the connection)
17:13:11  * mikolalysenkoquit (Ping timeout: 245 seconds)
17:13:16  * peutetrejoined
17:14:27  * Maciek416quit (Remote host closed the connection)
17:21:21  * calvinfojoined
17:25:23  * marcello3d_zzZchanged nick to marcello3d
17:25:49  * mikolalysenkojoined
17:25:54  * ceejbotjoined
17:26:45  <greweb>LOUDBOT
17:26:55  <greweb>-_-
17:29:29  * ceejbot_joined
17:29:53  * pgtequit (Remote host closed the connection)
17:30:16  * ceejbotquit (Ping timeout: 245 seconds)
17:42:21  * mikolalysenkoquit (Ping timeout: 245 seconds)
17:45:43  * fotoveritequit (Quit: fotoverite)
17:49:52  * shamajoined
17:50:22  * ednapiranhajoined
17:50:36  * mikolalysenkojoined
17:51:35  * ralphtheninjajoined
17:55:20  * indexzerojoined
17:59:32  * phatedjoined
18:07:52  <mikolalysenko>substack: is there a way to detect if a transform is being run in debug vs production mode?
18:07:55  * joaoafrmartinsquit (Remote host closed the connection)
18:08:28  <mikolalysenko>for example, in glslify it would be nice to automatically run minification on the glsl if you aren't in debug mode
18:08:42  <mikolalysenko>though if you are building a bundle for debugging, you don't want to do this since it obfuscates the code
18:10:01  * defunctzombie_zzchanged nick to defunctzombie
18:15:32  <defunctzombie>substack_: trying to look at what makes browserify slower than just using detective on a file
18:15:50  <defunctzombie>substack_: the current perf with just using detective on jquery 1.11 on my machine is 0.194 seconds
18:16:00  <defunctzombie>while the same file with browserify is .9 seconds
18:19:33  * calvinfoquit (Quit: Leaving.)
18:20:19  * thlorenzquit (Remote host closed the connection)
18:20:51  * thlorenzjoined
18:21:16  * calvinfojoined
18:23:30  * pgtejoined
18:24:47  * thlorenzquit (Read error: Operation timed out)
18:25:11  * joaoafrmartinsjoined
18:27:59  * dominictarrquit (Ping timeout: 245 seconds)
18:28:19  * pgtequit (Ping timeout: 260 seconds)
18:35:13  * ceejbot_quit (Read error: Connection reset by peer)
18:35:28  <andreypopp>defunctzombie: I/O, checking package.json and son
18:35:32  <andreypopp>and so on
18:35:41  <andreypopp>my guess
18:35:43  <defunctzombie>lots of stuff going on
18:35:57  * ceejbotjoined
18:35:58  <defunctzombie>on my computer just loading all the modules to run browserify takes ~200 ms
18:36:08  <defunctzombie>so that is 200ms of startup time
18:36:11  * fotoveritejoined
18:36:13  <defunctzombie>which is crazy!
18:41:08  <defunctzombie>ok.. browserify is out of control 200ms for startup time..
18:41:42  <andreypopp>defunctzombie: we can reduce I/O, by browserifying browserify
18:41:49  <defunctzombie>rofl
18:41:53  <andreypopp>with --no-builtins to run inside node
18:42:01  <defunctzombie>oh man...
18:42:09  * joaoafrmartinsquit (Ping timeout: 240 seconds)
18:42:13  <andreypopp>trying that now, but latest version can't browserify uglify due to bug
18:42:17  <defunctzombie>haha
18:42:25  <defunctzombie>awesome!
18:42:29  <defunctzombie>let me know how that is
18:42:40  <defunctzombie>I think that would be hilarious
18:42:40  * joaoafrmartinsjoined
18:42:50  <defunctzombie>why is uglify even used?!
18:42:53  <defunctzombie>what the hell
18:43:37  * coderzachquit (Remote host closed the connection)
18:47:22  * coderzac_joined
18:48:37  * pgtejoined
18:49:24  * Guest25149changed nick to prettyrobots
18:52:01  * dubroy____joined
18:52:04  * nickleefly_quit (Read error: Connection reset by peer)
18:52:21  * nickleefly_joined
18:52:25  * dubroy___quit (Ping timeout: 252 seconds)
18:52:25  * dubroy____changed nick to dubroy___
18:52:57  * substack_quit (Read error: Operation timed out)
18:53:14  * substack_joined
18:56:35  * marcello3dchanged nick to marcello3d_zzZ
18:58:34  <andreypopp>heh, it's not that easy
18:58:50  <andreypopp>but certainly should be possible
18:59:32  * coderzac_quit (Remote host closed the connection)
19:01:25  * ferossjoined
19:03:02  <defunctzombie>andreypopp: well, one perf issue in detective has been identified
19:03:24  <andreypopp>which one?
19:08:08  <defunctzombie>andreypopp: https://github.com/substack/node-detective/blob/master/index.js#L6
19:08:33  <andreypopp>re: "why is uglify is even used?" — umd depends on it for some reason
19:08:38  <defunctzombie>andreypopp: these closures get made recursively
19:09:05  <defunctzombie>andreypopp: so if you use regular looping and not functions it is faster
19:09:27  <defunctzombie>~160ms gain on a macbook air
19:09:36  <defunctzombie>running on three.js
19:12:51  <andreypopp>heh, browserified browserify just 80ms faster
19:12:57  <andreypopp>on startup
19:13:48  * Kesslerjoined
19:14:32  * jxsonjoined
19:14:34  * peutetrequit (Quit: peutetre)
19:15:18  * jxsonquit (Read error: Connection reset by peer)
19:15:42  * jxsonjoined
19:16:01  <defunctzombie>andreypopp: ahaha
19:16:23  <defunctzombie>andreypopp: we found a better speed perf
19:16:27  <defunctzombie>https://github.com/creationix/js-linker/blob/master/mine.js
19:17:05  <andreypopp>miniparser, cool
19:17:14  <andreypopp>this one should be fast
19:17:46  * airportyhjoined
19:17:49  <defunctzombie>it is very very fast
19:17:54  <airportyh>defunctzombie: https://gist.github.com/airportyh/8831028
19:18:49  * Kesslerquit (Ping timeout: 252 seconds)
19:19:06  <andreypopp>defunctzombie: PR to browserify!
19:22:31  <defunctzombie>all the detect globals shit browserify does is causing major slowdown
19:23:36  <defunctzombie>I just want something that isn't trying to be so clever
19:28:38  * feross_joined
19:30:46  <defunctzombie>substack: do we care about supporting the old detective stuff with require expressions?
19:31:23  <defunctzombie>substack: the stuff that wants to use escodegen
19:31:39  <defunctzombie>if not, then I think we should use that faster parsing stuff
19:34:21  * thlorenzjoined
19:34:55  * phatedquit (Remote host closed the connection)
19:35:07  * tilgovijoined
19:36:34  * phatedjoined
19:45:11  <defunctzombie>thlorenz: ping
19:45:11  * phatedquit (Read error: Connection reset by peer)
19:45:29  <defunctzombie>thlorenz: experimenting with (https://github.com/creationix/js-linker/blob/master/mine.js) instead of detective
19:45:36  * phatedjoined
19:45:45  <defunctzombie>thlorenz: I see you added some stuff to detective recently for esprima options and returning nodes
19:45:58  <defunctzombie>do you need any of that stuff?
19:46:24  * cianomaidinjoined
19:46:27  * cianomaidinpart
19:47:22  * phatedquit (Read error: Connection reset by peer)
19:47:36  * phatedjoined
19:48:00  * indexzeroquit (Quit: indexzero)
19:48:22  <defunctzombie>creationix: ping
19:50:22  * pgtequit (Remote host closed the connection)
19:50:41  * pgtejoined
19:50:53  <thlorenz>defunctzombie: I needed all the info to replace requires
19:51:10  * pgtequit (Remote host closed the connection)
19:52:11  <defunctzombie>thlorenz: hm... well, detective is ass slow
19:52:17  <defunctzombie>cause esprima is slow
19:52:27  <defunctzombie>using mine.js stuff is much much faster
19:52:28  * thlorenzwas just gonna say that
19:52:44  <defunctzombie>what is the point of replacing requires?
19:53:01  <defunctzombie>I mean, it is cool I guess but I would rather have the speed
19:53:25  <thlorenz>defunctzombie: this is what I needed the extra info for: https://github.com/thlorenz/exposify/blob/master/expose.js#L55
19:53:35  <thlorenz>that's the point ;)
19:53:42  * kevino80quit (Remote host closed the connection)
19:53:52  <thlorenz>to be able to say require'jquery' and it becomes window.jquery
19:54:02  <defunctzombie>thlorenz: sigh
19:54:10  <thlorenz>so your code stays agnostic to the fact that you are getting jq via a script tag
19:54:22  <thlorenz>defunctzombie: it's not THAT bad ;)
19:54:45  <defunctzombie>thlorenz: couldn't you just do that with a transform?
19:55:01  <defunctzombie>thlorenz: and in the transform check against a map and return relevant new source?
19:55:05  <jesusabdullah>Or just learn to stop worrying and love the script tag ;D
19:55:25  <defunctzombie>thlorenz: I agree it isn't that bad.. just needed to know if ripping out detective from module-deps would break anything
19:55:30  <defunctzombie>and it doesn't seem like it will
19:55:34  <defunctzombie>cause this use is separate
19:55:37  <thlorenz>defunctzombie: exposify IS a transform
19:56:01  <thlorenz>jesusabdullah: and loose advantage of using browser cache (CDN)
19:56:19  <thlorenz>and wait for your bundle to load in dev cuz you are bundling ember
19:56:20  <defunctzombie>thlorenz: so why do this detective thing?
19:56:36  <thlorenz>cuz it finds requires and then I replace them
19:56:52  <thlorenz>agree that esprima is slow though
19:57:02  <thlorenz>talked to chrisdickinson lately about this
19:57:14  <chrisdickinson>yessss.
19:57:19  <thlorenz>defunctzombie: I believe it'd be nice if a transform would also be able to work on ASTs
19:57:37  <thlorenz>so browserify would provide that once (one parse) instead of each transform parsing code over and over
19:57:49  * marcello3d_zzZchanged nick to marcello3d
19:58:33  <defunctzombie>thlorenz: oh I see... why not just make a file/module called jquery that just module.exports = window.jQuery ?
19:58:54  <thlorenz>defunctzombie: cuz I don't want to do that everywhere
19:59:02  <thlorenz>this works for ALL modules
19:59:12  <defunctzombie>thlorenz: AST stuff is made for globals detection too I think
19:59:15  <defunctzombie>very annoying as well
19:59:26  <thlorenz>defunctzombie: same discussion we had about b-shim about a year ago
19:59:26  <defunctzombie>anyhow.. ripping it out of module-deps
19:59:29  <defunctzombie>helps a lot
19:59:35  <thlorenz>and what do you know lots of ppl use it now ;)
19:59:49  <defunctzombie>yea... lots of people do stupid things ;)
20:00:08  <defunctzombie>I like it tho
20:00:20  * coderzachjoined
20:00:24  <thlorenz>defunctzombie: whatevs, so the new stupid thing you can do with it now is do "jquery": "global:$" https://github.com/thlorenz/browserify-shim#packagejson
20:00:36  <defunctzombie>haha
20:00:41  <thlorenz>and then just put jquery in your script tag and be able to require it
20:01:02  <defunctzombie>cool
20:01:08  <defunctzombie>if you are into jquery I guess rofl
20:01:17  <defunctzombie>the three thing is nice
20:01:21  <defunctzombie>case three.js is massive
20:01:50  <thlorenz>yep and I want that from a CDN so the user only loads that once
20:01:59  <defunctzombie>so how is the new thing different than browserify cdn?
20:02:04  <thlorenz>but my code doesn't have to know that ;)
20:02:06  <defunctzombie>er
20:02:09  <defunctzombie>browserify-shim
20:02:20  <defunctzombie>exposify vs browserify-shim that is
20:02:33  <thlorenz>no vs exposify is used by browserify-shim
20:02:45  <thlorenz>I just did it as small as possible modules all the way ;)
20:03:00  <thlorenz>so if you only need exposify you don't have to use b-shim
20:04:26  * coderzachquit (Ping timeout: 245 seconds)
20:04:31  <thlorenz>defunctzombie: chrisdickinson: I suppose this'd be related? https://github.com/substack/node-browserify/issues/633
20:04:35  * jxsonquit (Remote host closed the connection)
20:04:44  <defunctzombie>thlorenz: ah
20:05:35  * phatedquit (Read error: Connection reset by peer)
20:05:36  <thlorenz>defunctzombie: chrisdickinson I think we should do a kickstarter to write a drop in replacement for esprima in C with node bindings
20:05:38  * h0kejoined
20:06:03  * phatedjoined
20:06:12  <chrisdickinson>thlorenz: i'm pretty sure you could get some nice perf improvements by writing it in such a way that ... any of the functions it calls a billion times in a row are inlineable
20:06:17  <defunctzombie>thlorenz: chrisdickinson: andreypopp: never quite understood what would conflict if left the same as 'require' name... since inside the bundle it is the require from browserify no?
20:06:23  <defunctzombie>thlorenz: why?
20:06:30  <defunctzombie>thlorenz: mine.js is so much faster already
20:06:32  <defunctzombie>and not in c
20:06:32  <thlorenz>defunctzombie: speed
20:06:34  * jxsonjoined
20:06:37  <defunctzombie>you don't need the AST shit
20:06:40  <thlorenz>have you seen achorn?
20:06:50  <defunctzombie>yea
20:06:51  <thlorenz>defunctzombie: for most stuff an AST is useful
20:06:58  <thlorenz>and tokens
20:07:05  <chrisdickinson>C isn't (necessarily) cheetah blood
20:07:17  <thlorenz>maybe not to find requires, but lots of other stuff I do needs an AST
20:07:20  <defunctzombie>meh.. I think for browserify core functionality tho it may not be needed
20:07:20  * marcello3dchanged nick to marcello3d_zzZ
20:07:29  <defunctzombie>actually I want to get away from "emulate node in browser" shit
20:07:32  <thlorenz>defunctzombie: ok so browserify specific maybe
20:07:36  <defunctzombie>and just make something that doesn't suck at packaging js
20:07:54  <defunctzombie>thlorenz: yea.. I can see where transforms or other stuff might like an AST
20:07:54  <thlorenz>yeah, that'll break anyways once ppl write modules using ES6 for the server side
20:08:05  <defunctzombie>jesus
20:08:12  <defunctzombie>I am really gonna hate shit then hahaha
20:08:23  <thlorenz>so agreed - module authors should advertise if it runs in the browser and add a badge
20:08:34  <chrisdickinson>being forced to "use strict" will likely drive me insane
20:08:37  <thlorenz>but browserify should not do too much magic about it
20:08:39  <chrisdickinson>since i actually *like* function hoisting :\
20:09:13  <thlorenz>chrisdickinson: your code looks more and more like python to me every day :P
20:09:23  <chrisdickinson>haha
20:09:24  <thlorenz>really clean tho
20:09:30  <chrisdickinson>thanks :)
20:09:57  <chrisdickinson>it's also going to be unpossible to write it that way once ES6 hits (since, if i'm not mistaken, using es6 modules drops you into strict mode by default)
20:10:53  <thlorenz>defunctzombie: chrisdickinson to write faster parser this will be interesting: https://twitter.com/thlorenz/status/426405069526142976
20:12:09  <defunctzombie>thlorenz: the globals logic in browserify is also really slow and annoying
20:12:20  <defunctzombie>thlorenz: taking that out and replacing detective with mine.js
20:12:25  <defunctzombie>lets me bundle three.js
20:12:28  <chrisdickinson>oo, nice link
20:12:29  <defunctzombie>in ~130 ms on my mac
20:12:41  <defunctzombie>versus ~1.1s otherwise
20:12:45  <pfraze>defunctzombie: are you anti-browserify, or what do you mean by node in the browser?
20:12:49  <defunctzombie>10x improvement
20:13:00  <defunctzombie>pfraze: I love browserify :)
20:13:07  * terinjokesjoined
20:13:30  <thlorenz>defunctzombie: you should do a PR - lately they switched to ES6 branch of esprima though
20:13:33  <defunctzombie>pfraze: I like browserify as a packager more than something that peddles to the idiosyncrasies created by some globals in node.
20:13:37  <chrisdickinson>i've found that i don't really use most of the node shims in browserify
20:13:39  <thlorenz>so you'd have to be able to handle that too
20:13:45  <chrisdickinson>the packager aspect of it is way enticing
20:13:56  <defunctzombie>thlorenz: yea.. airportyh is working on a PR for module-deps
20:14:04  <pfraze>defunctzombie: I gotcha, yeah
20:14:09  <thlorenz>defunctzombie: awesome!
20:14:09  <defunctzombie>thlorenz: I mentioned support for ES6 stuff
20:14:19  <defunctzombie>will port over the detective tests
20:14:24  <defunctzombie>since those are good (mostly0
20:14:36  * phated_joined
20:14:54  * phatedquit (Read error: Connection reset by peer)
20:14:54  * jxsonquit (Remote host closed the connection)
20:14:57  <thlorenz>although I never had any problems with bundle speed lately (using chrisdickinson beefy or my own appup - which both cache akaik)
20:15:11  * phated_changed nick to phated
20:15:12  <thlorenz>but then I'm not bundling ember either ^ johnkpaul jesusabdullah ;)
20:16:41  <defunctzombie>haha
20:16:43  <defunctzombie>ember.. rofl
20:17:01  <chrisdickinson>we bundle at work and it takes a bit, but we run a lot of AST transforms
20:17:13  <mikolalysenko>maybe for getting module deps you could do something like boyer moore and just get all the occurences of require()
20:17:24  <prettyrobots>So...
20:17:36  <defunctzombie>mikolalysenko: creationix already has a good js file that does it really fast
20:17:38  <prettyrobots>In `package.json` the `url` property is the `url` of the package hosting?
20:17:43  <prettyrobots>It is a redirect?
20:17:49  <prettyrobots>If so, then I'm doing it wrong.
20:17:50  * jxsonjoined
20:17:54  <chrisdickinson>it would be neat for someone to take https://github.com/mikolalysenko/strongly-connected-components and make a global transform that splits the bundle into groups
20:17:54  * jxsonquit (Remote host closed the connection)
20:17:59  <defunctzombie>prettyrobots: typically a url to the "homepage"
20:18:14  <prettyrobots>Is it a synonym to the "homepage"?
20:18:24  * jxsonjoined
20:18:44  <prettyrobots>https://npmjs.org/doc/json.html#homepage
20:18:50  <terinjokes>chrisdickinson: an automated factor-bundle?
20:18:55  <terinjokes>of sorts
20:18:56  * chrisdickinsonnods
20:19:34  <mikolalysenko>might be useful. you can also use the condensation that it spits out to do smarter updates
20:19:50  <mikolalysenko>like you update something in component x, then all components that depend on x get rebuilt lazily
20:19:53  <chrisdickinson>it would really put paid to the "require.js lets you optimize your javascript experience by lazy loading and browserify doesn't" argument, i think
20:20:28  <chrisdickinson>in that "browserify automatically splits your bundle into smaller bundles that are more likely to be cache hits"
20:21:35  <defunctzombie>anyone who makes the lazy loading argument doesn't know what they are talking about
20:21:36  <terinjokes>chrisdickinson: something would need to be able to handle those
20:21:39  <defunctzombie>you can probably ignore them
20:21:43  <terinjokes>fetching those*
20:21:46  <defunctzombie>and anything they say on any topic
20:22:10  <mikolalysenko>so the real question is how to make an incremental browserify
20:22:29  <terinjokes>chrisdickinson: by splitting ourselves with factor-bundle at least we know where to put the fetch logic
20:24:45  <terinjokes>chrisdickinson: but i would be interested nontheless
20:25:23  <mikolalysenko>I think it might not actually be too bad though, but you need to store a bit of state
20:25:47  <mikolalysenko>basically you'd have a directed graph of modules + dependencies + timestamps for last time the file got modified
20:25:58  <mikolalysenko>then when you check for an update, you stat all the files to find which ones changed
20:26:31  <mikolalysenko>once that's done, compute the condenstation of the graph then rebundle all the files which change, and update the dependency graph
20:26:54  <mikolalysenko>so I guess there would be a table that stores the module/timestamp/last built bundle data
20:27:05  <mikolalysenko>and the dependency graph would be stored on top of it
20:27:25  <thlorenz>defunctzombie: btw here is my hacky but superfast require replacer: https://github.com/thlorenz/brace/blob/master/build/fix-requires.js
20:27:38  <thlorenz>works for the entire ace module (which is huge too)
20:27:43  <defunctzombie>hahaha
20:27:59  <defunctzombie>amazing
20:28:11  <defunctzombie>will totally destroy codebases
20:28:16  <thlorenz>:)
20:28:19  <defunctzombie>any error message with "require" in it rofl
20:28:33  * phatedquit
20:28:36  <thlorenz>it's just used to refactor ace (which has it's own require)
20:28:49  <thlorenz>wouldn't recommend it for anywhere else
20:28:51  * djcoinquit (Quit: WeeChat 0.4.2)
20:29:30  <thlorenz>defunctzombie: well it'd just make it acequire in the error message -- no harm done :P
20:29:33  <mikolalysenko>thlorenz: you could probably detect requires not in strings with a regexp
20:29:36  <mikolalysenko>but maybe it is slow
20:29:54  <thlorenz>mikolalysenko: faster than generating an AST anytime
20:30:04  <mikolalysenko>haha, maybe
20:30:06  <defunctzombie>thlorenz: rofl.. ripple emulator had its own require called "ripple"
20:30:16  <mikolalysenko>just check the number quotes before it is even
20:30:40  <mikolalysenko>of course it doesn't quite work because of single quotes...
20:31:05  <thlorenz>mikolalysenko: yeah that could totally be done, defunctzombie isn't that kind of what jslinker/mine.js is doing?
20:31:15  * ralphtheninjaquit (Read error: Operation timed out)
20:31:17  <defunctzombie>thlorenz: somewhat
20:31:29  <andreypopp>+ comments
20:31:37  * phatedjoined
20:31:58  * kevino80joined
20:32:20  <thlorenz>OMG how I hate that // and // (one comment, other regex) exist in JS - makes it unlexable
20:39:14  * peutetrejoined
20:40:39  * DTrejoquit (Remote host closed the connection)
20:41:05  * DTrejojoined
20:42:13  <kriskowal>thlorenz: word. besides, it should have been the inverse of ** (Math.pow)
20:42:47  <kriskowal>alas that only flies in languages that observe # comments
20:43:15  * pgtejoined
20:44:20  <thlorenz>kriskowal: :), oh well I wish we coud force a subset of JS on everyone that only allows regexes in parens, then we could lex that again
20:44:20  <pfraze>anybody have insight on this shadow dom standards ordeal?
20:44:46  <thlorenz>well actually no (//)hello comment or regex?
20:45:17  <thlorenz>so regexes should have used different char alltogether
20:45:31  * DTrejoquit (Ping timeout: 260 seconds)
20:47:57  * pgtequit (Ping timeout: 252 seconds)
20:48:27  <mikolalysenko>you could alos replace comments with string literals
20:48:30  <mikolalysenko>*also
20:48:39  <mikolalysenko>thus removing an extra case from the lexer
20:49:54  * defunctzombiechanged nick to defunctzombie_zz
20:55:02  <kriskowal>mikolalysenko: thlorenz: Python uses string literal prefixes. quasiliterals coming in ES-something would mitigate the problem, if regexes were dropped :P
20:55:51  <kriskowal>similar implications for value types
20:59:22  * defunctzombie_zzchanged nick to defunctzombie
20:59:35  <defunctzombie>isaacs: you forgot the most important point
20:59:36  <defunctzombie>isaacs: is it faster?
21:01:05  * coderzachjoined
21:03:37  <andreypopp>defunctzombie: reading the log, I agree with you that the best thing is to avoid using things in client code which trigger emulation of Nodeisms. Maybe browserify should have --no-insert-globals by default and only check with regexp against bundle if there's process/__dirname/__filename usage and warn user that they might need to use --insert-globals flag
21:04:08  <defunctzombie>andreypopp: that could be interesting
21:05:05  * coderzac_joined
21:05:11  * coderzachquit (Read error: No route to host)
21:06:24  * AvianFluquit (Remote host closed the connection)
21:10:32  * sorensen_joined
21:10:32  * sorensen_quit (Client Quit)
21:17:30  * DTrejojoined
21:21:09  * defunctzombiechanged nick to defunctzombie_zz
21:21:14  * airportyhquit (Quit: airportyh)
21:25:47  * joatesjoined
21:28:24  * jcrugzzquit (Ping timeout: 245 seconds)
21:32:47  * coderzac_quit (Remote host closed the connection)
21:36:59  * coderzachjoined
21:37:30  * pgtejoined
21:39:23  * tilgoviquit (Remote host closed the connection)
21:42:11  * AvianPhonejoined
21:42:23  * contrahaxjoined
21:42:27  * pgtequit (Ping timeout: 260 seconds)
21:43:35  * dominictarrjoined
21:44:10  * peutetrequit (Quit: peutetre)
22:01:20  * pgtejoined
22:02:13  <isaacs>defunctzombie_zz: haha
22:02:20  <isaacs>defunctzombie_zz: yeah, but not because of us. mostly because Fastly
22:02:59  * phatedquit (Ping timeout: 245 seconds)
22:05:00  * coderzachquit (Remote host closed the connection)
22:05:19  * ceejbotquit (Ping timeout: 260 seconds)
22:05:22  * marcello3d_zzZchanged nick to marcello3d
22:10:02  * phatedjoined
22:11:13  <substack_>defunctzombie_zz: browserify should absolutely use a faster ast parser if possible, so long as the tests all still pass
22:12:13  <terinjokes>andreypopp: otoh, it's somewhat easy to pull in lots of nodeism
22:12:47  <terinjokes>bring in anything that touches streams, and you'll get buffers, event emitters, all of util
22:12:56  <terinjokes>er, is a stream*
22:13:02  <substack_>mikolalysenko: the only good way right now for transforms to take parameters is with env vars
22:13:54  <substack_>andreypopp: the problem with that is "other people"
22:14:21  <substack_>andreypopp: you've got to convince all module authors to not use nodeisms, but many of them aren't even aware that their modules can run in the browser at all
22:14:48  <substack_>convincing people is really hard. i would rather everything just worked, even if it's slower or bulkier until it gets fixed upstream
22:19:51  * mikolalysenkoquit (Ping timeout: 265 seconds)
22:20:41  * AvianPhonequit (Quit: Bye)
22:23:02  * funkytekjoined
22:23:56  * AvianFlujoined
22:26:37  * defunctzombie_zzchanged nick to defunctzombie
22:28:47  * substackback on regular ssh
22:31:30  <DTrejo>hey substack is your computer OK? / bought another already?
22:35:44  * coderzachjoined
22:37:34  * coderzac_joined
22:37:35  * coderzachquit (Read error: Connection reset by peer)
22:39:39  * peutetrejoined
22:42:05  * coderzac_quit (Ping timeout: 265 seconds)
22:45:01  * mikolalysenkojoined
22:46:21  * kevino80quit (Remote host closed the connection)
22:46:31  <defunctzombie>substack_: module-deps tests will pass
22:46:52  <defunctzombie>substack: https://github.com/creationix/mine/pull/1
22:47:05  <defunctzombie>substack: using that module instead of detective in module-deps
22:51:11  * pgtequit (Remote host closed the connection)
22:53:44  <substack>DTrejo: yes I just got the new one swapped in
22:57:57  <DTrejo>nice :)
22:58:59  * jxsonquit (Ping timeout: 260 seconds)
23:02:27  <ogd>hahahah https://www.youtube.com/watch?v=waEeJJVZ5P8
23:06:20  * rowbitjoined
23:06:39  <rowbit>substack, pkrumins: Encoders down: 50.57.72.32 (free10)
23:08:03  <defunctzombie>ogd: rofl
23:08:28  * dguttmanjoined
23:08:51  <defunctzombie>ogd: HACKERS!!!
23:08:57  * coderzachjoined
23:09:05  * jxsonjoined
23:09:13  * jxsonquit (Remote host closed the connection)
23:09:15  <defunctzombie>ogd: that guy opening the macbook WTF
23:09:22  <defunctzombie>ogd: HAS HE NEVER OPENED A MACBOOK BEFORE?
23:09:52  <kanzure>there should be a way to do streaming multi-sig transactions
23:10:05  <kanzure>or at least building up a multi-sig transaction
23:12:00  * jxsonjoined
23:20:20  * jxsonquit (Remote host closed the connection)
23:23:07  <andreypopp>ogd: that's scary sh*t... I've been to this cafe... probably I got HACKED too
23:24:26  * thlorenzquit (Remote host closed the connection)
23:25:00  * thlorenzjoined
23:25:14  * thlorenzquit (Read error: Connection reset by peer)
23:25:28  * thlorenzjoined
23:25:51  * thlorenzquit (Remote host closed the connection)
23:26:15  * Maciek416joined
23:26:39  <ogd>lol
23:29:29  * thlorenz_joined
23:29:59  <marcello3d>defunctzombie: hah! the ripping of the box
23:30:22  <defunctzombie>marcello3d: yea.. wtf
23:30:26  <defunctzombie>marcello3d: who does that
23:30:37  <marcello3d>people who are too busy staring at the camera
23:31:54  * thlorenz_quit (Remote host closed the connection)
23:38:44  * ceejbotjoined
23:41:04  * maksimlinjoined
23:42:31  <substack>isaacs: npm ERR! Error: forbidden name invalid: undefined: optimist
23:42:54  * peutetrequit (Quit: peutetre)
23:42:56  <substack>when I try to do a publish or an `npm deprecate`
23:45:35  <substack>ok now officially deprecated https://github.com/substack/node-optimist#deprecation-notice
23:46:23  * tilgovijoined
23:46:38  <substack>isaacs: probably because it's a really old module
23:50:06  <terinjokes>substack: and now for me to move my projects to yargs :)
23:50:55  <substack>please do
23:54:48  * jcrugzzjoined
23:54:50  <jjjohnny>lol gold doubooleans
23:55:20  <rowbit>Hourly usage stats: [developer: 0, free: 30]