00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:09  * ircretaryjoined
00:00:44  <ogd>substack: is this the only way to hook into tape or is there a better way to do it? https://github.com/mantoni/tape-dots/blob/master/index.js
00:00:54  * cpupquit (Ping timeout: 244 seconds)
00:01:14  * AvianFluquit (Remote host closed the connection)
00:01:21  * ferossquit (Quit: feross)
00:03:29  * funkytekjoined
00:04:01  * cpupjoined
00:04:11  * contrahaxjoined
00:30:00  * defunctzombie_zzchanged nick to defunctzombie
00:31:49  * Kesslerjoined
00:31:56  <defunctzombie>ogd: if you find a better approach let me know
00:33:18  <ogd>defunctzombie: seems like maybe a tap parser that takes tap output and changes it to somethign different would be another way
00:33:29  <defunctzombie>ogd: faucet
00:33:32  <ogd>defunctzombie: but that seems a little complex
00:33:54  <defunctzombie>ogd: yes, and it has problems because anything that console logs start with # will typically break it
00:34:24  <substack>defunctzombie: so don't console.log things that start with #
00:34:30  <substack>problem solved
00:34:32  <substack>"don't do that"
00:34:57  <defunctzombie>problem is solved by me just using mocha
00:35:42  <substack>ogd: it's better to just parse TAP and do something with it
00:35:46  <substack>that's what tap is really good at
00:37:23  <substack>defunctzombie: and that is fine, you just incur a different set of complexity trade-offs
00:37:45  <defunctzombie>yea
00:38:16  <defunctzombie>so far I am happier with it versus any alternative I have tried
00:38:31  <defunctzombie>granted I only use a small part of it
00:39:38  <substack>I don't like all the magic and how you need to use the mocha test runner
00:39:45  <substack>and how it's really hard to kill with an ordinary ^C
00:40:01  <substack>because of all the magic process do-hickery
00:40:11  <defunctzombie>ive never run into the ^c issue but also never had to do that so no idea
00:40:19  <defunctzombie>I don't mind using the test runner
00:40:28  <defunctzombie>makes it easy to instrument in other environments or tools
00:41:06  <substack>instrument?
00:41:17  <defunctzombie>run in
00:41:31  <defunctzombie>and capture the output without affecting other things
00:41:40  <substack>node test.js > output.txt
00:41:43  <substack>capture the output
00:42:03  <substack>or use a browserify transform with --bare for fancy things like code coverage
00:42:16  <substack>the test library doesn't need to know about that stuff
00:43:25  * indexzeroquit (Quit: indexzero)
00:44:39  <defunctzombie>the test library doesn't need to know about output
00:45:06  <substack>the test library's job should be to produce output
00:45:10  <substack>that's what it's for
00:45:17  <substack>everything else can massage that output
00:45:28  <substack>the easiest, simplest way to massage output is just to write it to stdout
00:45:39  <substack>that way you don't need to write a bunch of fancy, api-specific hooks
00:45:42  <substack>you just parse stdin
00:46:17  <defunctzombie>I don't like the abuse of the stdout channel for messaging and program output
00:46:57  <defunctzombie>the test libraries job is not to produce output, it is to produce metadata about the test run which is consumed by a reporter
00:47:02  <defunctzombie>who's job is to produce the output
00:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 25]
00:47:24  <defunctzombie>tape is the only testing library that doesn't work like this
00:47:55  <defunctzombie>and as a result makes it annoying to consume the testing metadata without resorting to stupid parsing
00:48:03  <ogd>tape is split up into a thing that produces metadata and a thing that produces output from that metadata, e.g. https://github.com/substack/tape/blob/master/index.js#L45-L46
00:48:11  <ogd>the problem IMO is that they are hardcoded
00:48:37  <defunctzombie>why should I have to parse some terrible format when we already have json or raw js objects
00:48:38  <ogd>e.g. you cant use tape right now and only get the metadata (e.g. have it not produce tap output) without rewriting all the stuff in index.js
00:48:45  <defunctzombie>ogd: yes
00:50:03  <defunctzombie>ogd: honestly, if you are looking for simple testing I strongly recommend mocha with the qunit or TDD style. It will look very similar to tape tests, and is easy to hook into
00:50:28  <defunctzombie>or rip that stuff out of tape and make it hookable
00:50:29  <ogd>mocha is too complex for me
00:50:39  <ogd>not eacy enough to browserify
00:50:42  <ogd>easy*
00:50:43  <defunctzombie>who cares
00:50:54  <defunctzombie>I guess that part matters depending on what you are doing
00:51:09  <defunctzombie>I agree it doesn't browserify easily, for zuul we just have a prebuilt version of it
00:51:21  <ogd>well i write lots of small browserify modules
00:51:30  <ogd>so im not gonna set up the mocha 'environment' all the time
00:51:34  <substack>you can tape.createHarness()
00:51:35  * Kesslerquit (Read error: Connection reset by peer)
00:51:38  <defunctzombie>ogd: zuul
00:51:46  <substack>node test.js
00:51:50  <defunctzombie>ogd: no setup with mocha each time, very easy to test in browser
00:52:21  <substack>defunctzombie: the point of tap is that you parse it
00:52:22  <defunctzombie>this is what I use and a number of other browser targeted projects (engine.io one of them) uses it now
00:52:23  <substack>with a parser
00:52:28  <substack>which is simple and easy to write
00:52:32  <defunctzombie>and I am saying the output is stupid :)
00:52:51  * Kesslerjoined
00:53:49  <substack>defunctzombie: I have an idea of something that might suit your sensibilities
00:54:02  * defunctzombielistens
00:54:31  <substack>what if you did require('tape') to get the way it works now and require('tape/stream') to get a `test` function that had a createStream() on it?
00:54:36  <substack>that you could pipe wherever you wanted
00:54:48  <substack>or require('tape/output')
00:55:10  <substack>but I'm not sure how you would actually *run* these tests is the problem
00:55:24  <substack>when I think of a test, I think of a program that I can run like `node test.js`
00:55:28  <substack>and then it prints output to stdout
00:55:32  <terinjokes>defunctzombie: as someone using zuul, i happen to prefer tape to mocha
00:55:53  <defunctzombie>terinjokes: interesting! good to know there are tape zuul users!!
00:56:24  <defunctzombie>substack: well, how would I instrument existing code tho without changing the require?
00:57:22  <defunctzombie>substack: personally, what I think could happen is that by default (maybe in browser) tests simply don't run until I access some global "tape stream" or whatnot
00:57:26  <defunctzombie>and make it start running
00:57:58  <substack>defunctzombie: tests should just run
00:58:35  <ogd>substack: i think all i want here is a version of tape.createHarness that does e.g. this kind of thing https://github.com/substack/tape/blob/master/index.js#L99-L114 but instead of giving me a stream of TAP just gives me a stream of JS test result objects (straight from tape.Test)
00:59:18  <substack>ogd: you can already listen for 'test' events though
00:59:46  <ogd>substack: yea i know it just isnt as high level as the createNarness API
00:59:47  * AvianFlujoined
00:59:51  <ogd>Narnianess
01:00:28  * contrahaxquit (Quit: Sleeping)
01:00:30  <ogd>substack: why is inspectCode recursive there? can tests define tests? (ive never done thaT)
01:00:39  * phatedquit (Remote host closed the connection)
01:00:42  <substack>ogd: yes
01:00:44  <substack>t.test()
01:00:51  <substack>copied from node-tap
01:01:10  <defunctzombie>ogd: substack: I want getting tape results to be as easy as this: https://github.com/defunctzombie/zuul/blob/master/frameworks/qunit/client.js
01:01:29  * cpupquit (Ping timeout: 240 seconds)
01:01:35  <defunctzombie>instead of the mess I have now https://github.com/defunctzombie/zuul/blob/master/frameworks/tape/client.js
01:01:37  <substack>defunctzombie: ok coming soon, one sec :p
01:05:53  <ogd>substack: so if i do: var tape = require('tape/stream') then when i really want is a way to subscribe to all 'result' events e.g. https://github.com/substack/tape/blob/master/index.js#L107
01:06:35  <ogd>substack: so maybe tape.resultStream() can be a object stream of all test results
01:06:51  <ogd>substack: and tape.createStream() is a TAP stream
01:06:52  * phatedjoined
01:09:16  <substack>ogd: that's a good idea
01:09:25  <substack>ogd: what about tape.createStream({ objectMode: true }) ?
01:09:42  <ogd>substack: oh yea and it would just be the result objects instead of TAP? +1
01:09:45  <substack>yep
01:10:17  <ogd>substack: i think that would open up a lot of possibilities around writing custom tape reporter modules
01:11:13  <defunctzombie>starting to sound more promising
01:11:40  <defunctzombie>but how will doing that require capture the output from the tests that get loaded/run later?
01:13:00  <substack>defunctzombie: because when a module does require('tape') it gets the default harness
01:13:09  <substack>and this api diverts the default harness output someplace
01:13:32  <defunctzombie>in browsers will that default harness be global or something?
01:13:55  * cpupjoined
01:14:21  <substack>defunctzombie: what do you mean?
01:14:28  <substack>tape works exactly the same in node and the browser
01:14:53  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
01:15:08  <defunctzombie>the place where I do that test setup stuff is not the same file where my tests are located in
01:15:33  <defunctzombie>I might be able to change that tho
01:15:34  <substack>setup.js: var tape = require('tape'); tape.createStream().pipe(...)
01:15:45  <substack>so long as that gets loaded before everything else it works
01:16:38  <defunctzombie>for some reason I feel like I tried that once and it didn't work
01:16:47  <substack>that's the new api
01:16:50  <substack>that I'm writing now
01:18:27  * indexzerojoined
01:18:33  <defunctzombie>ah
01:21:37  * contrahaxjoined
01:22:56  * kevino80joined
01:26:59  * kevino80quit (Ping timeout: 240 seconds)
01:29:37  * contrahaxquit (Quit: Sleeping)
01:30:21  * contrahaxjoined
01:30:53  <ogd>first thing im gonna do is port over https://github.com/visionmedia/mocha/blob/master/lib/reporters/nyan.js to a third party tape reporter
01:37:42  * kenperkins_quit (Quit: Computer has gone to sleep.)
01:38:15  * contrahaxquit (Quit: Sleeping)
01:41:50  * toddselfjoined
01:42:07  <substack>ogd: it's probably also good to have a non-invasive version that just consumes tap like faucet
01:45:58  * toddselfquit (Ping timeout: 240 seconds)
01:46:11  <defunctzombie>ogd: that's the most important reporter
01:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 40]
01:53:41  * soldairjoined
01:54:19  <substack>ogd, defunctzombie: https://github.com/substack/tape#var-stream--testcreatestreamopts
01:57:31  <defunctzombie>substack: for this to work, require('tape') needs to resolve to the same module and what the tests require, correct?
01:58:05  <substack>correct
01:58:19  <substack>otherwise globals
02:00:25  * phatedquit (Remote host closed the connection)
02:01:41  <soldair>anyone deal with "Connection closed before receiving a handshake response" errors working with mux-demux over an engine.io-stream xdm?
02:02:40  * yorickquit (Remote host closed the connection)
02:02:46  * Maciek416quit (Remote host closed the connection)
02:03:18  * tilgoviquit (Remote host closed the connection)
02:04:59  * thlorenzjoined
02:05:52  * thlorenzquit (Remote host closed the connection)
02:08:38  * contrahaxjoined
02:11:00  <terinjokes>defunctzombie: can zuul also output nyan?
02:11:06  <defunctzombie>hahaha
02:11:18  <terinjokes>i'll accept flappy bird
02:11:23  <terinjokes>as replacement
02:11:29  <defunctzombie>that would be hilarious
02:11:42  * ferossjoined
02:11:44  <defunctzombie>for every test that passes
02:11:49  * DTrejojoined
02:11:49  <defunctzombie>the bird flaps through a gate
02:11:56  <defunctzombie>you can watch it run your tests
02:11:59  <defunctzombie>this would be amazing
02:12:05  <defunctzombie>in a browser
02:12:06  * ferossquit (Client Quit)
02:12:08  <defunctzombie>patches welcome
02:14:58  * ceejbotquit (Remote host closed the connection)
02:15:32  * ceejbotjoined
02:17:26  * ferossjoined
02:18:32  <terinjokes>defunctzombie: maybe for my flight to london
02:18:47  <terinjokes>i'll be bored to death
02:20:00  * ceejbotquit (Ping timeout: 264 seconds)
02:28:11  * indexzeroquit (Quit: indexzero)
02:32:49  * Maciek416joined
02:36:11  * toddselfjoined
02:40:33  * toddselfquit (Ping timeout: 244 seconds)
02:42:54  * soldairquit (Quit: Page closed)
02:47:09  <groundwater>i'd love some voiced here about how to organize linux syscalls for node https://github.com/NodeOS/NodeOS/issues/21
02:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 23]
02:47:43  <groundwater>i imagine at some point it will be divorced from node-os stuff, but for now it's living under the general nos issues
02:50:31  * ednapiranhaquit (Remote host closed the connection)
02:51:03  * ednapiranhajoined
02:51:45  * xaqjoined
02:55:33  * ednapiranhaquit (Ping timeout: 265 seconds)
03:00:21  * ferossquit (Ping timeout: 252 seconds)
03:00:29  * indexzerojoined
03:03:36  * thlorenzjoined
03:11:01  * phatedjoined
03:11:39  * xaqquit (Remote host closed the connection)
03:14:15  * defunctzombiechanged nick to defunctzombie_zz
03:16:24  * phatedquit (Ping timeout: 264 seconds)
03:18:38  * tilgovijoined
03:20:51  * phatedjoined
03:21:07  * indexzeroquit (Quit: indexzero)
03:22:26  * xaqjoined
03:22:27  * naneauquit (Quit: Part.)
03:24:14  * xaqquit (Remote host closed the connection)
03:26:34  * xaqjoined
03:26:46  * xaqquit (Remote host closed the connection)
03:30:26  * toddselfjoined
03:30:48  * Kesslerquit (Ping timeout: 264 seconds)
03:33:38  * thlorenzquit (Ping timeout: 240 seconds)
03:34:29  * toddselfquit (Ping timeout: 240 seconds)
03:39:23  * brianloveswordsquit (Excess Flood)
03:39:37  * brianloveswordsjoined
03:42:25  * ednapiranhajoined
03:42:48  * contrahaxquit (Ping timeout: 264 seconds)
03:45:58  * contrahaxjoined
03:47:18  <rowbit1>Daily usage stats: [developer: 7, free: 55]
03:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 16]
03:50:21  * xaqjoined
03:53:49  * xaqquit (Remote host closed the connection)
03:54:14  * calvinfoquit (Quit: Leaving.)
04:00:48  * contrahaxquit (Quit: Sleeping)
04:09:29  * ferossjoined
04:16:29  * pfrazequit (Ping timeout: 240 seconds)
04:19:12  <DTrejo>ogd: if I want to help out with the nodeschool event, can I just show up? What do you think the experience level of students will be?
04:19:31  <DTrejo>(not sure if I can go, but I'm curious)
04:20:32  * indexzerojoined
04:22:04  * mikolalysenkoquit (Ping timeout: 265 seconds)
04:22:25  <ogd>DTrejo: yea please come and help! im going to open up some mentor tickets
04:22:28  * contrahaxjoined
04:22:36  <DTrejo>i pay for them?
04:23:02  <ogd>DTrejo: nope will be free
04:23:06  <DTrejo>oh cool
04:24:43  <DTrejo>ooh you know what I want... "add to calendar" buttons for the events on jsfest.com haha
04:24:50  <DTrejo>oh well gonna do it manually
04:27:07  * hoobdeeblajoined
04:34:18  * rsolequit (Ping timeout: 240 seconds)
04:34:26  * hoobdeeblaquit
04:36:26  * calvinfojoined
04:38:16  <ogd>DTrejo: https://twitter.com/maxogden/status/440707730391572481
04:38:23  <DTrejo>already signin up :)
04:39:02  * tilgoviquit (Remote host closed the connection)
04:42:32  <ogd>also anyone else in here that wants to help mentor teh nodeschools should grab mentor tickets for events they can make it to
04:42:37  <ogd>(see above tweet)
04:43:01  <rowbit1>substack, pkrumins: These encoders are STILL down:
04:46:48  <DTrejo>https://twitter.com/ddtrejo/status/440709575977615361 RT lol
04:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 23]
04:47:20  <ogd>☜(⌒▽⌒)☞
04:47:46  * nlacassepart
04:49:51  * mikolalysenkojoined
04:56:35  * ceejbotjoined
05:00:50  * ceejbotquit (Ping timeout: 252 seconds)
05:01:31  <rowbit1>substack, pkrumins: These encoders are STILL down:
05:02:25  * cpupquit (Ping timeout: 240 seconds)
05:02:49  * ceejbotjoined
05:04:23  * calvinfoquit (Quit: Leaving.)
05:05:11  * cpupjoined
05:07:45  * gozalaquit (Quit: Connection closed for inactivity)
05:10:45  * defunctzombie_zzchanged nick to defunctzombie
05:18:53  * toddselfjoined
05:20:16  * defunctzombiechanged nick to defunctzombie_zz
05:22:48  * toddselfquit (Ping timeout: 240 seconds)
05:24:25  * ceejbotquit (Remote host closed the connection)
05:41:00  * dguttmanquit (Quit: dguttman)
05:43:38  * joshwnj-quit (Ping timeout: 240 seconds)
05:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 37]
05:48:17  * dguttmanjoined
05:51:11  * dguttmanquit (Client Quit)
05:51:47  * calvinfojoined
05:52:49  * calvinfo1joined
05:52:49  * calvinfoquit (Read error: Connection reset by peer)
05:53:40  * calvinfojoined
05:53:40  * calvinfo1quit (Read error: Connection reset by peer)
05:54:36  * calvinfo1joined
05:54:36  * calvinfoquit (Read error: Connection reset by peer)
05:55:33  * calvinfojoined
05:56:31  * calvinfo2joined
05:56:31  * calvinfoquit (Read error: Connection reset by peer)
05:57:24  * calvinfojoined
05:57:25  * calvinfo2quit (Read error: Connection reset by peer)
05:58:21  * calvinfo2joined
05:58:21  * calvinfoquit (Read error: Connection reset by peer)
05:59:15  * calvinfojoined
05:59:15  * calvinfo2quit (Read error: Connection reset by peer)
05:59:36  * calvinfo1quit (Ping timeout: 264 seconds)
06:03:37  * calvinfoquit (Ping timeout: 240 seconds)
06:05:28  * maksimlinquit (Quit: ChatZilla [Firefox 27.0.1/20140218140359])
06:06:53  * cpup_joined
06:08:30  * cpupquit (Ping timeout: 252 seconds)
06:13:05  * toddselfjoined
06:17:18  * toddselfquit (Ping timeout: 240 seconds)
06:18:35  * calvinfojoined
06:35:55  * fotoveritequit (Quit: fotoverite)
06:37:32  <groundwater>suggestions for best static site generators?
06:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 47]
06:47:40  * AvianFluquit (Remote host closed the connection)
06:53:08  * phatedquit (Remote host closed the connection)
06:56:39  * fotoveritejoined
06:59:12  * indexzeroquit (Quit: indexzero)
07:07:10  * toddselfjoined
07:11:36  * toddselfquit (Ping timeout: 264 seconds)
07:22:39  * mikolalysenkoquit (Ping timeout: 244 seconds)
07:28:22  * funkytekjoined
07:31:42  * ednapiranhaquit (Quit: Leaving...)
07:35:09  * Maciek416quit (Remote host closed the connection)
07:37:51  * DTrejoquit (Remote host closed the connection)
07:39:03  * DTrejojoined
07:39:31  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
07:39:36  * DTrejoquit (Read error: Connection reset by peer)
07:39:56  * DTrejojoined
07:42:01  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
07:42:10  * Maciek416joined
07:43:40  * calvinfoquit (Quit: Leaving.)
07:45:31  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
07:47:01  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
07:47:19  <rowbit1>Hourly usage stats: [developer: 7, free: 50]
07:48:31  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
07:50:53  * Maciek416quit (Remote host closed the connection)
07:51:31  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
07:55:01  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
08:01:19  * toddselfjoined
08:05:32  * toddselfquit (Ping timeout: 244 seconds)
08:06:02  * fotoveritequit (Quit: fotoverite)
08:18:55  * calvinfojoined
08:31:12  * stagasjoined
08:32:33  * djcoinjoined
08:39:47  * calvinfoquit (Quit: Leaving.)
08:47:19  <rowbit1>Hourly usage stats: [developer: 4, free: 49]
08:52:49  * ins0mniajoined
08:54:08  * peutetrejoined
08:55:47  * toddselfjoined
09:00:18  * toddselfquit (Ping timeout: 244 seconds)
09:15:33  <rowbit1>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
09:15:33  <rowbit1>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
09:16:32  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
09:18:31  * calvinfojoined
09:19:02  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
09:26:32  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
09:30:29  * kriskowaljoined
09:31:23  * rsolejoined
09:32:02  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
09:33:32  <rowbit1>substack, pkrumins: A developer is waiting in the queue for undefined/undefined
09:34:25  * nfroidurequit (Ping timeout: 240 seconds)
09:35:02  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
09:39:32  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
09:43:46  * stagas_joined
09:45:59  * stagasquit (Ping timeout: 240 seconds)
09:46:02  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
09:46:06  * stagas_changed nick to stagas
09:47:19  <rowbit1>Hourly usage stats: [developer: 15, free: 62]
09:48:33  * nfroidurejoined
09:49:02  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
09:56:19  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
09:57:39  * calvinfoquit (Quit: Leaving.)
09:58:15  * ceejbotjoined
09:59:59  * timoxleyquit (Ping timeout: 240 seconds)
10:01:02  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
10:01:20  * timoxleyjoined
10:02:18  * ceejbotquit (Ping timeout: 240 seconds)
10:04:48  * ins0mniaquit (Ping timeout: 240 seconds)
10:05:26  * Kesslerjoined
10:07:44  * ferossquit (Quit: feross)
10:08:26  * ins0mniajoined
10:10:27  * ferossjoined
10:10:34  * joshwnj-joined
10:19:37  * kumavisquit (Quit: Connection closed for inactivity)
10:20:30  * DTrejoquit (Remote host closed the connection)
10:25:33  * Kesslerquit (Ping timeout: 244 seconds)
10:27:32  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
10:43:02  <rowbit1>substack, pkrumins: These encoders are STILL down:
10:44:19  * toddselfjoined
10:46:24  * joshwnj-quit (Ping timeout: 264 seconds)
10:47:19  <rowbit1>Hourly usage stats: [developer: 8, free: 54]
10:48:48  * toddselfquit (Ping timeout: 244 seconds)
10:53:43  * phatedjoined
10:56:43  * owenb____quit
10:57:46  * owenb_joined
10:58:37  * phatedquit (Ping timeout: 244 seconds)
11:01:32  <rowbit1>substack, pkrumins: These encoders are STILL down:
11:03:09  * passy_joined
11:03:25  * passy_changed nick to passy
11:08:33  * Kesslerjoined
11:11:54  <feross>downloaded the first non-trivial file over webtorrent! http://cl.ly/UEYU
11:11:56  <feross>yay!
11:16:32  <rowbit1>substack, pkrumins: A developer is waiting in the queue for explorer/8.0
11:47:19  <rowbit1>Hourly usage stats: [developer: 1, free: 39]
11:58:38  * Kesslerquit (Ping timeout: 240 seconds)
11:59:38  * ceejbotjoined
12:03:44  * Kesslerjoined
12:04:14  * ceejbotquit (Ping timeout: 244 seconds)
12:11:37  * ITpro_quit (Ping timeout: 240 seconds)
12:12:17  * ITpro_joined
12:12:18  * ITproquit (Ping timeout: 240 seconds)
12:13:09  * ITprojoined
12:13:33  * ITprochanged nick to Guest58290
12:17:14  * taterbasejoined
12:18:44  * ITpro__joined
12:19:13  * ITpro_quit (Ping timeout: 244 seconds)
12:19:52  * Guest58290quit (Ping timeout: 252 seconds)
12:20:18  * Guest58290joined
12:23:33  * calvinmetcalfjoined
12:32:47  * toddselfjoined
12:36:59  * toddselfquit (Ping timeout: 240 seconds)
12:36:59  * thlorenzjoined
12:40:03  * thlorenzquit (Remote host closed the connection)
12:47:19  <rowbit1>Hourly usage stats: [developer: 1, free: 40]
13:04:00  * rsolequit (Ping timeout: 240 seconds)
13:23:31  * thlorenzjoined
13:24:40  * yorickjoined
13:36:45  * contrahaxquit (Quit: Sleeping)
13:47:19  <rowbit1>Hourly usage stats: [developer: 1, free: 64]
13:48:22  * stagasquit (Read error: Connection timed out)
13:50:25  * stagasjoined
14:01:08  * ceejbotjoined
14:05:18  * ceejbotquit (Ping timeout: 240 seconds)
14:14:00  * stagasquit (Read error: Connection timed out)
14:16:27  * ITpro__quit (Read error: Connection reset by peer)
14:17:22  * stagasjoined
14:18:48  * guybrushquit (Excess Flood)
14:19:08  * guybrushjoined
14:22:42  * defunctzombie_zzchanged nick to defunctzombie
14:22:52  * stagasquit (Max SendQ exceeded)
14:26:48  * stagasjoined
14:30:00  * AvianFlujoined
14:31:31  * toddselfjoined
14:33:00  * thlorenzquit (Ping timeout: 252 seconds)
14:34:22  * pfrazejoined
14:42:50  * brianloveswordsquit (Excess Flood)
14:43:38  * brianloveswordsjoined
14:47:20  <rowbit1>Hourly usage stats: [developer: 3, free: 43]
15:01:50  * ceejbotjoined
15:03:29  * Kesslerquit (Ping timeout: 269 seconds)
15:05:51  * ceejbot_joined
15:06:05  * ceejbotquit (Read error: Connection reset by peer)
15:06:08  * Kesslerjoined
15:08:55  * dguttmanjoined
15:12:18  * thlorenzjoined
15:17:53  * ceejbot_quit (Remote host closed the connection)
15:18:30  * ceejbotjoined
15:18:35  * ceejbotquit (Read error: Connection reset by peer)
15:19:05  * ceejbotjoined
15:22:42  * kevino80joined
15:23:03  * mikolalysenkojoined
15:25:53  * kenperkinsjoined
15:34:47  * defunctzombiechanged nick to defunctzombie_zz
15:35:49  * cpup_quit (Remote host closed the connection)
15:36:20  <thlorenz>any streams guys know how to change exports.tar so I can change https://github.com/thlorenz/dockerify/blob/master/index.js#L86 go 'fs.createReadStream('..').pipe(exports.tar(..)).pipe(process.stdout)'
15:36:41  <thlorenz>substack: rvagg chrisdickinson ^
15:37:02  <thlorenz>I banged my head about it for like 30mins
15:37:39  <thlorenz>since I need to return a through stream, but tar-stream module wants me to pass in a stream instead of piping
15:37:58  * cpupjoined
15:43:21  * Maciek416joined
15:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 61]
15:51:33  <terinjokes>thlorenz: you should be able to pipe to tar-stream though
15:51:55  <thlorenz>normally yes, but that's not how the tar-stream module works
15:52:10  <terinjokes>it's in the README: pack.pipe(extract);
15:52:53  <thlorenz>terinjokes: I'm looking at https://github.com/mafintosh/tar-stream#modifying-existing-tarballs
15:53:13  <thlorenz>so when you modify you are dealing with two streams
15:53:25  <thlorenz>extract and pack
15:53:57  <thlorenz>you pipe the instream into extract and pipe the pack into the outstream -- kinda weird interface actually
15:54:14  <thlorenz>I wish there would be a more transform like API
16:01:09  * naneaujoined
16:22:47  * stagas_joined
16:22:56  * ceejbotquit (Remote host closed the connection)
16:22:58  * stagasquit (Ping timeout: 240 seconds)
16:23:00  * Kesslerquit (Ping timeout: 264 seconds)
16:23:08  * stagas_changed nick to stagas
16:23:31  * ceejbotjoined
16:23:44  * ednapiranhajoined
16:24:01  * AvianFluquit (Remote host closed the connection)
16:27:38  * stagasquit (Ping timeout: 240 seconds)
16:27:59  * ceejbotquit (Ping timeout: 252 seconds)
16:29:04  * stagasjoined
16:29:42  * supershabampart
16:36:26  * Kesslerjoined
16:36:30  * xaqjoined
16:39:43  * ceejbotjoined
16:41:14  * passyquit (Quit: Connection closed for inactivity)
16:45:30  * ceejbotquit (Remote host closed the connection)
16:46:06  * ceejbotjoined
16:47:19  <rowbit1>Hourly usage stats: [developer: 6, free: 53]
16:50:29  * ceejbotquit (Ping timeout: 241 seconds)
16:54:09  * mikolalysenkoquit (Ping timeout: 265 seconds)
16:58:43  * mikolalysenkojoined
17:01:34  <rowbit1>substack, pkrumins: These encoders are STILL down:
17:04:25  * gozalajoined
17:06:40  * Kesslerquit (Read error: Connection reset by peer)
17:09:27  * Kesslerjoined
17:10:24  * xaq_joined
17:10:47  * xaqquit (Write error: Connection reset by peer)
17:13:46  * phatedjoined
17:13:59  * phatedquit (Read error: Connection reset by peer)
17:14:11  * Guest83361joined
17:15:02  * fotoveritejoined
17:18:45  * xaq_quit (Read error: Connection reset by peer)
17:18:57  * xaqjoined
17:19:18  * cpupquit (Ping timeout: 240 seconds)
17:20:18  * peutetrequit (Ping timeout: 240 seconds)
17:20:25  * Guest83361quit (Remote host closed the connection)
17:22:57  * cpupjoined
17:28:17  * peutetrejoined
17:37:22  * xaqquit (Remote host closed the connection)
17:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 56]
17:49:11  * kenperkinsquit (Remote host closed the connection)
17:50:22  * jaz303_joined
17:53:06  * jaz303quit (*.net *.split)
17:53:24  * kenperkins_joined
17:54:28  * kenperkins_quit (Read error: Connection reset by peer)
17:54:47  * kenperkinsjoined
17:56:26  * thlorenzquit (Remote host closed the connection)
17:57:39  * thlorenzjoined
17:59:02  * kumavisjoined
17:59:28  * ceejbotjoined
18:01:40  * peutetrequit (Quit: peutetre)
18:02:18  * thlorenzquit (Ping timeout: 240 seconds)
18:05:40  * kenperkinsquit (Remote host closed the connection)
18:06:30  * kenperkinsjoined
18:08:24  * calvinfojoined
18:15:13  * mikolalysenkoquit (Ping timeout: 240 seconds)
18:15:30  * DTrejojoined
18:17:04  * kenperkins_joined
18:18:59  * mikolalysenkojoined
18:20:29  * kenperkinsquit (Ping timeout: 240 seconds)
18:22:11  <jjjohhny>is it possible to make ES6 fail utterly and completely to take?
18:23:30  <mikolalysenko>jjjohhny: probably not, but it is gonna take at least another year or two before it is really mainstream
18:23:50  <pfraze>sweet, 2 years of hipster status
18:24:16  <mikolalysenko>I mean in the industrial setting, who is really gonna make the business case that saving a few keystrokes is worth breaking compatibility on 30% of machines
18:24:32  <jjjohhny>this bananas is shit
18:25:10  <jjjohhny>i feel if mozilla hangs on it maybe they caan smother it
18:25:17  <mikolalysenko>hahaha
18:25:38  <mikolalysenko>personally I stopped caring about it once they dropped support for value/struct types
18:26:08  * thlorenzjoined
18:26:17  <mikolalysenko>there isn't really a performance/capability case to be made for any of the features
18:26:26  <pfraze>well, weakmaps
18:26:31  <mikolalysenko>yeah, that's true
18:26:49  <mikolalysenko>but those don't require new syntax and semantics for the core language
18:26:55  <pfraze>yeah
18:26:59  <mikolalysenko>weakmaps could be an api upgrade like typedarrays
18:27:08  <mikolalysenko>or the es5 array stuff
18:27:36  <pfraze>yeah that's true. I'd also argue that yield is significant, just because js does so much async
18:27:41  <mikolalysenko>that is true
18:27:49  <pfraze>but overall I agree with you
18:29:43  <chrisdickinson>template literals will be nice
18:30:01  <chrisdickinson>pretty -1 on the class/arrow/shorthand object syntax
18:30:06  <mikolalysenko>while coroutines are kind of syntactic sugar, they do fundamentally change the way you think about programming
18:30:06  <mikolalysenko>in the same way that adding loops is syntactic sugar for gotos
18:30:06  <mikolalysenko>the silly parts are let, destructuring assignment, and of course the es6 module boondoggle
18:30:06  * mikolalysenkoquit (Quit: Reconnecting)
18:30:12  * mikolalysenkojoined
18:30:28  <chrisdickinson>export default is in, so that's ... close to what was desired
18:30:55  <chrisdickinson>(in that you can `import yourLocallyDesiredName from moduleExportingDefault` and it works no matter what the export was in the moduleExportingDefault
18:31:01  * ceejbotquit (Remote host closed the connection)
18:31:03  <chrisdickinson>... but that's still a bit silly looking)
18:31:47  <mikolalysenko>the syntax isn't really the worst part of es6 modules actually
18:31:51  <mikolalysenko>though it is pretty clumsy
18:32:00  <mikolalysenko>the worst part is horrible moduleloader stuff
18:32:01  * phatedjoined
18:32:14  <pfraze>what is that stuff exactly?
18:34:20  <mikolalysenko>pfraze: here is the chunk of spec where it is defined http://people.mozilla.org/~jorendorff/es6-draft.html#sec-runtime-semantics-loader-state
18:34:24  <calvinmetcalf>chrisdickinson: the arrows are nice because they keep scope
18:34:41  <calvinmetcalf>(this is lexical)
18:34:47  <calvinmetcalf>modules are a steaming pile of shit though
18:35:12  <mikolalysenko>calvinmetcalf: I don't really think the syntactic changes are terrible per se
18:35:17  <pfraze>mikolalysenko, spec so dry you need eyedrops
18:35:33  <mikolalysenko>it is just that the usefulness does not justify breaking compatibility
18:35:42  <chrisdickinson>calvinmetcalf: yes, but they have ever-so-slightly different semantics from all other functions
18:35:42  * indexzerojoined
18:35:46  <mikolalysenko>I think if you are gonna add a feature or change syntax around, there should be a big deature win to justify it
18:35:50  <mikolalysenko>*feature
18:36:06  <chrisdickinson>which gives us ... Function(), (function() {}), (function name(){}), function name() {}, and now () => {} to contend with :)
18:36:33  <chrisdickinson>and the only way to determine whether or not it's an arrow function is `fn.toString().indexOf('function') === 0`, which seems hilariously blerghy
18:36:45  <chrisdickinson>(in that `new` doesn't work and `.bind` doesn't have any affect on arrow functions)
18:36:54  <chrisdickinson>s/doesn't work/throws an exception/g
18:36:54  * phatedquit (Ping timeout: 244 seconds)
18:36:55  <calvinmetcalf>bind does , just not the first param
18:37:07  * calvinfoquit (Quit: Leaving.)
18:37:09  <pfraze>mikolalysenko, so it's a way to control import/load behavior then?
18:37:35  <chrisdickinson>fair, but .bind to change context is (wholly anecdotally) the reason it's most used
18:37:36  <mikolalysenko>yeah
18:37:42  <mikolalysenko>pfraze: kind of like a require.js
18:37:44  <calvinmetcalf>pfraze: yeah there is an overly complex way of doing it
18:37:48  <mikolalysenko>it does async loading and other crazy shit
18:37:50  <jjjohhny>i only use this when it is poetic to do so, and I never bind functions.
18:38:01  <pfraze>ah...k
18:38:02  <calvinmetcalf>chrisdickinson: the point of arrows is to not need bind
18:38:23  * phatedjoined
18:38:31  <chrisdickinson>as a client receiving functions, you might not know whether or not you've been handed an arrow function
18:39:02  <chrisdickinson>it defies (previously reasonable) assumptions
18:39:04  <calvinmetcalf>yeah you also might not know if someone handed you a function which somebody did var self = this; before defining it
18:39:23  <mikolalysenko>calvinmetcalf: the other general problem with new features is it makes tooling and analysis more complicated
18:39:23  <chrisdickinson>true
18:39:28  <Domenic_>arrow functions are no different from bound functions
18:39:37  * ceejbotjoined
18:39:38  <Domenic_>they add no new semantics at all.
18:39:51  <chrisdickinson>(new () => {})?
18:39:55  <Domenic_>client reasoning is no different
18:40:14  <Domenic_>new (function () { throw TypeError(); })?
18:40:42  <Domenic_>i hate this myth that arrow functions are "a new type of function oh no"
18:40:46  <Domenic_>or "a new meaning of this" is even sillier
18:40:47  <calvinmetcalf>mikolalysenko: that's tool author's problem (aka me sometimes) but espima6 already works
18:41:09  <calvinmetcalf>main issue with es6 is modules
18:41:13  <calvinmetcalf>http://31.media.tumblr.com/173b0e95053fa45b272ecdd182ce40d6/tumblr_n0c8qpeycm1rffgrmo1_1280.png
18:41:20  <calvinmetcalf>export syntax is the simpler stuff
18:41:48  <Domenic_>you could make the same flowchart for CommonJS
18:42:06  <calvinmetcalf>it would have 4 boxes
18:42:08  <Domenic_>wow literally exactly the same flowchart
18:42:13  <Domenic_>no it would have exactly the same amount of boxes
18:42:19  <Domenic_>i can list the terminals corresponding to each ES6 box
18:42:31  <calvinmetcalf>1 thing or many
18:42:53  <calvinmetcalf>and both get declaration vs expression
18:42:59  <Domenic_>export default x <-> module.exports x. export { yourThing } <-> exports.yourThing = yourThing. export { yourThing as newName } <-> exports.newName = yourThing
18:43:15  <pfraze>yeah, this chart doesnt bother me really
18:43:25  <Domenic_>export function x() { } <-> function x() { }; exports.x = x;
18:43:39  <Domenic_>export let x = function () { }; <-> exports.x = function () { };
18:43:39  <chrisdickinson>Domenic_: to verify, arrow functions *do* throw TypeError on `new`?
18:43:45  <Domenic_>literally 1 for 1 correspondence
18:43:48  <Domenic_>chrisdickinson: yes.
18:43:53  * mikolalysenkoquit (Ping timeout: 252 seconds)
18:44:03  <pfraze>though why wasnt module.exports used?
18:44:13  <chrisdickinson>pfraze: `if(false) module.exports = xxx`
18:44:23  <calvinmetcalf>var x = something; exports.x = somethingElse;
18:44:23  <chrisdickinson>(can't enforce that it's at top level)
18:44:24  * wolfeidauquit (Remote host closed the connection)
18:44:27  <Domenic_>the static analyzability if ES6 modules is going to be great.
18:44:31  <chrisdickinson>+1 to that
18:44:41  <Domenic_>the transition pain is sucky
18:44:45  <Domenic_>but i am hopeful
18:45:10  <pfraze>Domenic_: you're saying forcing toplevel exports helps with analysis?
18:45:26  <Domenic_>pfraze: yes. if (Math.random() > 0.5) { exports.x = 10; }
18:45:33  <pfraze>ahhh
18:45:36  <Domenic_>no way to statically analyze whether the module will export x or not
18:45:52  <calvinmetcalf>Domenic_: that doesn't really come up at all in browserify
18:45:53  <chrisdickinson>(I mostly get riled about the changes that are primarily cosmetically driven that introduce subtle differences from existing forms)
18:46:08  <pfraze>chrisdickinson, agreed
18:46:10  <Domenic_>calvinmetcalf: you've never done `var x = require("y").x` and had `x` be undefined accidentally?
18:46:40  <pfraze>chrisdickinson, enhanced object literals! D:
18:46:42  <Domenic_>or wished the JIT could inline across module boundaries?
18:46:46  <calvinmetcalf>I've done that in node due to a circular dependency
18:47:19  <calvinmetcalf>but that's not static analysis
18:47:19  <rowbit1>Hourly usage stats: [developer: 4, free: 40]
18:47:46  <Domenic_>the kind of holistic whole-program analysis enabled by statically-determinable module dependencies and exports/imports is going to be a big boost to perf and tooling.
18:47:50  <chrisdickinson>Domenic_: can it not? I saw that a lot of the "is this from a different context?" checks had been removed from hydrogen
18:48:11  <Domenic_>chrisdickinson: my understanding is that whenever you access an object literal property that's going to be not possible to inline
18:48:24  <Domenic_>because it's not just a reference to the variable, it's a property Get(objectLiteral, "name")
18:48:35  <Domenic_>whereas with static import/exports it's just the same variable
18:48:40  <Domenic_>in two different files
18:48:59  <chrisdickinson>ah, but in commonjs/node, with single exports?
18:49:03  <calvinmetcalf>Domenic_: I'm not disputing that statically determinable modules arn't good, I think they are great
18:49:27  <Domenic_>chrisdickinson: i am not sure about the single export case tbh.
18:49:42  <calvinmetcalf>it's whether they require pythonic decleration based syntax
18:49:43  <chrisdickinson>i've wondered about it before, but hadn't really dug into it
18:50:10  <Domenic_>lol @ people who think it's from python
18:50:34  <calvinmetcalf>it and python probably got it from the same place
18:51:03  <Domenic_>Racket, apparently?
18:51:09  <chrisdickinson>my previous assumption (now proved wrong after 3 (just three!) months from v8) was that if you referred to any variables from an enclosing scope that the candidate function doing the inlining was not also a part of, then it would bail
18:52:09  <chrisdickinson>which would preclude very nearly *any* module from inlining, given the close it has at file level scope -- if it requires anything & uses it in function, it would be in a different context & thus be impossible to inline
18:53:42  * contrahaxjoined
18:53:52  <substack>Domenic_: static variable exports weird me out
18:53:53  <calvinmetcalf>but yeah whether the racketesque syntax is actually necessary for static analysis...
18:54:13  <jjjohhny>STATIC => VARIABLE
18:54:35  <substack>Domenic_: like the part where `export var x = 5` and then if you `import {x} from "./foo.js"` and do x++ it modifies x both places
18:54:45  <substack>spooky action at a distance
18:55:41  <jjjohhny><=, >= and now => !!!!
18:59:28  <pfraze>substack, state is shared for values?
19:00:00  <kriskowal>yes
19:00:04  <rowbit1>substack, pkrumins: Encoders down: (dev-ie8-2)
19:00:23  <substack>pfraze: that was the magic that nobody wants that they insisted on that made default exports so complicated
19:00:39  <pfraze>substack: oh my, no
19:00:47  <kriskowal>on the one hand it is action at a distance, but if there are cyclic dependencies, the state settles regardless of the execution order. not so with commonjs modules.
19:01:23  <kriskowal>substack: and by "they" we mean dave
19:01:33  <substack>what is that guy's deal anyways
19:01:35  <substack>he wants such weird things
19:01:58  <substack>kriskowal: it seems like you could get a stable execution order without the spookiness
19:02:01  <kriskowal>we're all crafting the language in the image of our favorite language. his is plt scheme / racket
19:02:16  <kriskowal>you can, with lazy binding, which is the same effect but more work
19:02:19  <substack>kriskowal: why didn't they find somebody whose favorite language was javascript
19:02:30  <substack>dave should go work on plt scheme or racket instead
19:02:59  <kriskowal>he came to tc39 directly from doing a phd that formalized the javascript semantics
19:03:13  <substack>because it feels very much like when people from ruby who hate javascript use coffeescript and try to push it on everyone else
19:03:17  <kriskowal>brendan has been mentoring him for at least a decade
19:03:40  <kriskowal>ah, well, i'm not working on javascript because i like it the way it is, so i'm no one to comment.
19:04:09  <substack>I don't get why there is such a huge push to change it so severely
19:04:20  <substack>it's pretty simple and easy to learn
19:04:20  <kriskowal>i've been on the other side of the "it's not javascript" argument, when i was proposing commonjs modules
19:04:32  <kriskowal>lots of folks like the crockford module pattern and name space objects
19:04:44  <substack>es6 just adds more baggage that you'll have to keep in your head and newcomers are going to be realy confused by it
19:04:56  * DTrejoquit (Remote host closed the connection)
19:05:16  <substack>kriskowal: but none of that stuff is syntactic
19:05:23  <kriskowal>it's true
19:05:26  <substack>it's all just variations of existing js syntax
19:05:43  <calvinmetcalf>es6 also expands declarations, there is what one currently, now you have them all over the place
19:05:48  <kriskowal>though, i'm sure we can agree at least that static analysis is important for a not-hack module system
19:06:04  <kriskowal>i was originally proposing that we add a version of eval that just treats require as static
19:06:06  <substack>kriskowal: yes, but it could have been soooo much simpler
19:06:12  * monteslujoined
19:06:39  <kriskowal>it could. alas that i spent my political capital so thoroughly.
19:06:46  <jjjohhny>is dave on twitter?
19:07:00  * DTrejojoined
19:07:00  <substack>I also hate this issue of "political capital"
19:07:03  <substack>fuck everything about that
19:07:07  <kriskowal>@littlecalculist. be kind, he is a good person at the end of the day.
19:07:29  * calvinfojoined
19:07:59  <substack>I really hate that all these things require consensus by an unelected body of self-appointed industry vendors
19:08:04  <substack>who pay to play
19:08:06  <kriskowal>i should say, he's a good person at the beginning of the day, but we all have our ideas and his are at the very least, worth respect
19:08:16  <substack>why can't javascript be like c
19:08:21  <substack>basically never changes
19:08:31  <substack>means you can build all sorts of great stuff on a stable foundation
19:08:49  <pfraze>substack: good question, it's not like adoption was suffering without the changes
19:09:11  <chrisdickinson>there's the argument that dart will eat JS's lunch if JS doesn't become a more appealing language to the mainstream
19:09:16  <substack>pfraze: exactly! userland has been exploding and there are multiple competing userland module systems that work pretty well
19:09:31  <substack>chrisdickinson: let it
19:09:32  <pfraze>chrisdickinson: but is that a danger?
19:09:33  <chrisdickinson>(to which i point at the `factory` keyword in dart, wearily)
19:09:38  <kriskowal>adoption != happiness, frankly
19:09:52  <pfraze>substack, exactly
19:09:57  <kriskowal>adoption is driven by lock-in
19:10:02  <substack>going around trying to please everybody is going to result in garbage that nobody wants
19:10:15  <kriskowal>and lock-in is an emergent pattern of the limited consensus of vendors
19:10:28  <pfraze>kriskowal, but arguably something like dart is how you escape lockin
19:10:32  <kriskowal>substack: crockford once told that to me to my face.
19:10:34  <substack>chasing new language fads or academic ideas that just add confusion and formalism for no practical upside
19:11:14  <kriskowal>i should say, i was waffling about details i didn't care about in a presentation, and he said: pick one and piss off half of us. if you don't, you'll piss off everyone.
19:11:59  <substack>academic language fads like monads are doubly bad
19:13:52  * tilgovijoined
19:14:24  <pfraze>that's it I'm forking the Web
19:14:40  <chrisdickinson>it does make me sad, a bit, that JS is changing so much to meet the expectations/morés of folks from other language communities; it seems like the conversation is "what can JS learn from <X>?" vs. "what can other languages learn from JS?"
19:15:41  <jjjohhny>what does crockford think of all this I wonder
19:15:59  <kriskowal>i wouldn't pine on that too much.
19:16:00  <chrisdickinson>I think the best thing that happened for my code was that I stopped trying to bring pythonisms to JS, and started embracing JS as having a different (but equally valid) methodology
19:16:14  <kriskowal>he doesn't have a monopoly on good opinions.
19:17:10  <jjjohhny>no but if he likes to spit when he talks, and we point him at ES6...
19:17:32  <kriskowal>chrisdickinson: both languages are driven by requirements of the medium. JS is different largely because of its sandboxing model.
19:17:37  <substack>jjjohhny: crockford is on tc39
19:17:38  <kriskowal>e.g., ordered keys
19:17:48  <kriskowal>he doesn't talk much at meetings
19:18:25  <kriskowal>he has an economy of words.
19:18:40  <chrisdickinson>kriskowal: static analysis of dependencies is big in JS; whereas in python dynamic importing is (or was!) the norm
19:19:07  <kriskowal>yes, also a difference in requirements. python never has any latency between the interpreter and the module store.
19:19:17  <kriskowal>well, never has appreciable latency.
19:19:21  <chrisdickinson>(further examples: classes are the primary mechanism for code reuse in python; in JS they are often superfluous)
19:19:42  <kriskowal>however, javascript's lack of stratified types is a pain in the ass.
19:19:43  <calvinmetcalf>(and even so nobody even bothers with dynamic imports in python)
19:19:45  <kriskowal>we work around it.
19:19:58  <chrisdickinson>calvinmetcalf: tell that to django :\
19:20:47  <calvinmetcalf>I have one project with django, god I hate it
19:20:53  <chrisdickinson>kriskowal: could you point me to a link on stratified types (or give a definition)? I'm not sure if I follow
19:21:11  * AvianFlujoined
19:21:17  <chrisdickinson>django is... actually fairly sane, all told
19:21:48  <kriskowal>meaning, instances of collections that have separate domains for the interface layer and the content layer, with syntactic support for both.
19:22:38  <kriskowal>it's not the end of the day, but using objects as records vs objects as instances is still a point of pain
19:23:05  <chrisdickinson>aaah
19:23:07  <kriskowal>and the stratification in JS just means using methods when we mean methods, like get, set
19:23:12  <chrisdickinson>thanks for explaining :)
19:23:27  * fuzjoined
19:24:14  <chrisdickinson>i'm not sure if that's a misfeature or not (from my point of view); it certainly encourages one down a type-less/class-less path
19:24:58  * stagasquit (Ping timeout: 240 seconds)
19:25:03  <kriskowal>yes, there are good arguments either way.
19:25:17  <substack>oh man the loader in es6 is annoying me already
19:25:20  <substack>playing with traceur
19:25:23  <pfraze>this is where structural/duck-typing gets its day, right?
19:25:32  <substack>import upper from "./y.js" <-- doesn't work
19:25:33  <chrisdickinson>(for clarity, i'm currently of the opinion that classes in js are best used to provide rich information access; they should be immutable, etc)
19:25:36  <kriskowal>structural and duck typing is orthogonal
19:25:40  <substack>import upper from "./y" <-- works
19:25:57  <pfraze>kriskowal, are they?
19:25:58  <substack>I guess it forces an implicit extension on you? blech
19:26:04  <chrisdickinson>(but in practice the cases where I need that rich information access (vs. just a dumb record) are few and far between)
19:27:20  <pfraze>kriskowal, looking this up now - is the difference that structural- is static, whilee duck- is runtime?
19:27:41  <kriskowal>i mean both are orthogonal to stratification
19:27:58  <pfraze>oh, heh
19:28:46  <chrisdickinson>if i'm understanding our lack of stratification correctly, it's that there's no "this is an instance of a type" vs. "this is a hash/dictionary/record" in JS
19:29:16  <kriskowal>that's about right
19:29:48  <kriskowal>eh, roughly
19:29:55  <chrisdickinson>:)
19:30:02  * h0kejoined
19:30:11  <chrisdickinson>(I figured I'd get it at *least* a little wrong)
19:30:42  <chrisdickinson>i'm not sure I mind it; coming from a language that has it to a language that doesn't
19:30:49  <kriskowal>a record is an instance of a record, but its interface (get, set, put) is distinct from its content in a language with stratification
19:31:10  <kriskowal>it interferes with duck-typing
19:31:30  <kriskowal>which is even more important in JS than Python, ironically
19:32:27  <kriskowal>JS is predicated on the fallacy that syntactic support for instance literals and record literals are mutually exclusive. it's true though that only one of them can get the bare curlies.
19:32:40  <kriskowal>in any case, it's not a problem JS can fix.
19:32:54  <chrisdickinson>interesting
19:32:56  <kriskowal>but it is an example of JS not being the one true language for the web.
19:33:29  * fotoveritequit (Read error: Connection reset by peer)
19:33:37  <kriskowal>in any case, i don't have an agenda re that (politics!)
19:33:37  <chrisdickinson>(an example of instance literals being the borrowed C++, `new char {0, 1, 2, 3}`, yes?)
19:34:03  <chrisdickinson>(I think I might have that wrong, actually :|)
19:34:33  <kriskowal>too distant an analogy to meaningfully compare
19:35:05  <kriskowal>though new {} vs {} syntax would be sufficient to distinguish in some mythical alt lang
19:35:30  <Domenic_>substack: the implicit-extension thing is not part of the language; traceur is just implementing their own guess at how browsers might do default module ID resolution
19:36:04  <kriskowal>Domenic_: does tracuer yet handle shared import/export references? i haven't found a shim that does yet.
19:36:10  <Domenic_>kriskowal: regarding stratified types, did you see http://esdiscuss.org/topic/merging-bind-syntax-with-relationships ? I personally thought it was brilliant
19:36:19  <Domenic_>kriskowal: you mean the mutability thing? I am pretty sure it does.
19:36:33  <kriskowal>my information is stale.
19:37:54  <Domenic_>there has been a lot of work on traceur's modules and module loader over the last month
19:38:18  <kriskowal>Domenic_: cute, re Symbol.reference{Get,Set}.
19:38:59  <kriskowal>though, i think that i can divine that substack would find the solution worse than the problem, and i might agree.
19:39:57  <kriskowal>particularly having to introduce the :: operator to step behind the curtain and do what . was supposed to do
19:40:13  <creationix>brianloveswords, ping
19:40:17  <Domenic_>I love it... I love bind syntax (original ::), I think relationships desparately need sugar, and I think it gives a great bonus in sugaring Map access.
19:40:17  <kriskowal>argues for a language with distinct operators
19:40:38  <Domenic_>I wonder if :: could be ->
19:40:46  <kriskowal>at the end of the day, map.get and map.set are not that bad. arrays are the anomaly
19:41:06  <jjjohhny>how can I save the entire buffer of an irc window?
19:41:22  <Domenic_>Ctrl+A Ctrl+C
19:42:37  <kriskowal>substack: modules on the web are an interesting problem, i think we can agree.
19:42:45  <jjjohhny>Domenic_: como?
19:43:07  <kriskowal>a lot of the surface of the web really ought to be reevaluated in terms of modules and packaging.
19:43:34  <kriskowal>i think alex russel implied that was part of the extensible web manifesto. a way of lifting module references into html.
19:43:44  <jjjohhny>kriskowal: html does modules
19:43:47  <jjjohhny>with tags
19:44:15  <jjjohhny>you can append them to the dom, use them to load assests, crazy stuff
19:44:45  <kriskowal>hrefs are not module references. they do not provide a level of indirection for packaging.
19:44:53  <tim_smart>What would be a good way to keep track of many dnode streams so you can 'broadcast' thigns
19:44:58  <tim_smart>s/thigns/things/
19:45:45  <kriskowal>jjjohhny: crazy indeed.
19:46:24  <jjjohhny>you can control loading, you can control the rest
19:47:07  <jjjohhny>like, what if you loaded a bunch of JS in separate script tags
19:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 33]
19:47:19  <jjjohhny>but didn't run your code
19:47:26  <jjjohhny>you don't have to run your code, you know
19:47:45  <jjjohhny>boom, the dom has a module system
19:48:42  <jjjohhny>module systems are the interplay of languages and their stack
19:48:54  <jjjohhny>they should not be in the language itself
19:49:05  <jjjohhny>they are environmental
19:50:15  <jjjohhny>html, the dom, the browser, node: these are environments for JS
19:50:24  <creationix>so does anyone know the preferred method to consume imaya/zlib.js in a browser with a cjs compiler like browserify?
19:50:32  <creationix>the source seems to be closure compiler format
19:50:43  <creationix>there is a pre-built node version, but it assumes Buffer and I want Uint8Array
19:51:08  <substack>tim_smart: you can use an array for that and splice off elements when a remote disconnects
19:52:04  <tim_smart>substack: Would you have to compact the array often? Maybe use a hash and assign client id's
19:52:06  <calvinmetcalf>creationix: you can look at how jslib did it
19:52:10  <calvinmetcalf>er jszip
19:52:53  <tim_smart>substack: Problem is I guess once you start `delete`ing keys off the hash you fall into v8's slow case
19:52:53  <calvinmetcalf>https://www.irccloud.com/pastebin/nhfGMmsn
19:53:08  <tim_smart>But that probably won't be the bottleneck
19:53:10  <creationix>I've manually converted it once https://github.com/creationix/git-zlib
19:53:18  <substack>tim_smart: I usually use an array
19:53:41  <substack>because disconnects are infrequent compared to writes
19:54:09  <creationix>calvinmetcalf, what require loader is that. Those files just export a Zlib global
19:54:26  <calvinmetcalf>browserify
19:54:30  <substack>creationix: Buffer in browserify compiles down to wrapped Uint8Arrays
19:55:26  <substack>tim_smart: splice
19:55:51  <brianloveswords>creationix: pong!
19:56:15  <tim_smart>substack: True. Forgot that deletes and re-orders
19:56:29  * mikolalysenkojoined
19:56:29  <ogd>brianloveswords: i forget are you on best coast this week?
19:56:39  <brianloveswords>ogd: I was supposed to be, but now I'm not :(
19:56:45  <brianloveswords>ogd: I gotta go to Boston instead.
19:56:56  <ogd>brianloveswords: LAME
19:56:58  <jjjohhny>ouch
19:57:00  <ogd>brianloveswords: you should hang with calvinmetcalf tho
19:57:01  <brianloveswords>TELL ME ABOUT IT.
19:57:08  <calvinmetcalf>boston is the best!
19:57:16  <calvinmetcalf>creationix: this is where it is used https://github.com/Stuk/jszip/blob/master/lib/flate.js
19:57:32  <brianloveswords>haha, well I'll be in the Back Bay area for DML tomorrow night through Saturday morning!
19:57:35  <brianloveswords>calvinmetcalf ^^
19:58:26  <ogd>Donut Meetup Live
19:58:32  <ogd>at dunkin
19:58:38  <ogd>sorry Donut Meetup Live!
19:59:15  <brianloveswords>ogd: oh, thanks for making http://nodeschool.io/host.html btw!
19:59:35  <ogd>werd
19:59:38  <creationix>calvinmetcalf, I see, but I still don't understand where that require call is defined.
20:00:01  <creationix>zlibjs/bin/rawdeflate.min.js is not a common js module
20:00:59  <calvinmetcalf>brianloveswords: cool we should hang wen or thurs
20:02:24  * kenperkins_quit (Remote host closed the connection)
20:03:13  <calvinmetcalf>creationix: those are accurate statements ... but that does work in browserify, I don't remember why though
20:03:16  * kenperkinsjoined
20:03:40  <creationix>ok, so it's just a feature of browserify to look for globals somehow?
20:03:49  <creationix>I wonder how that works
20:04:07  * feross_joined
20:06:15  <substack>creationix: http://npmjs.org/package/insert-module-globals
20:11:02  * naneauquit (Quit: Quit.)
20:12:46  <creationix>substack, I don't think that's what I want
20:13:56  <creationix>ahh, or maybe the .on("global", ...) event is what detects
20:14:24  <creationix>so maybe jszip is using a custom shim to look for the Zlib global and make that the exports?
20:15:30  * naneaujoined
20:18:17  * peutetrejoined
20:18:34  <calvinmetcalf>I don't think we are, lemme find the issue
20:19:37  * naneauquit (Ping timeout: 240 seconds)
20:19:41  * ednapiranhaquit (Remote host closed the connection)
20:20:15  * ednapiranhajoined
20:20:19  <calvinmetcalf>though creationix have you seen https://github.com/nodeca/pako
20:20:29  * ceejbotquit (Remote host closed the connection)
20:22:58  * ceejbotjoined
20:24:36  <ogd>whoa cool
20:24:48  * ednapiranhaquit (Ping timeout: 264 seconds)
20:26:35  * phatedquit (Remote host closed the connection)
20:26:53  * taterbasequit (Quit: Connection closed for inactivity)
20:29:09  * ceejbotquit (Remote host closed the connection)
20:31:25  <creationix>calvinmetcalf, that looks really nice actually
20:33:03  <creationix>now if I can figure a way to do streaming inflate of the git-pack stream
20:33:37  <creationix>the problem there is I don't know how many bytes to feed to inflate. The inflate state machine has to tell me when I've given it enough bytes (and give me back the extra if I passed too much in)
20:36:07  <ogd>this module makes me happy, that is all https://www.npmjs.org/package/linger
20:37:26  <creationix>calvinmetcalf, thanks! That was really easy actually https://github.com/creationix/tedit-app/commit/e3df87612d0a78a5e9386b1b221a7ef43d53103f
20:37:42  <creationix>I'm not using browserify, but some custom system I developed for tedit (that works really well on chromebooks)
20:37:56  <creationix>pako is written in the exact same style as js-git
20:46:32  * defunctzombie_zzquit (Ping timeout: 252 seconds)
20:46:34  * phatedjoined
20:46:40  * phatedquit (Remote host closed the connection)
20:47:19  <rowbit1>Hourly usage stats: [developer: 3, free: 38]
20:48:03  * defunctzombie_zzjoined
20:48:14  * phatedjoined
20:50:16  <calvinmetcalf>creationix: credit goes to the guy who opened the issue for it on jszip
20:53:04  * contrahaxquit (Read error: Connection reset by peer)
20:54:59  * contrahaxjoined
20:55:01  <rowbit1>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
20:55:01  <rowbit1>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
20:57:15  * calvinfoquit (Quit: Leaving.)
21:02:24  * contrahaxquit (Quit: Sleeping)
21:02:31  * kenperkins_joined
21:04:09  * kenperkinsquit (Ping timeout: 244 seconds)
21:07:02  * thealphanerdjoined
21:08:27  * tilgoviquit (Read error: Connection reset by peer)
21:08:44  * tilgovijoined
21:08:45  * calvinfojoined
21:12:34  * h0kequit (Quit: Konversation terminated!)
21:15:55  * phated_joined
21:15:57  * phatedquit (Read error: Connection reset by peer)
21:19:43  * phatedjoined
21:19:50  * ednapiranhajoined
21:20:17  * phated_quit (Read error: Connection reset by peer)
21:23:44  <ogd>substack: any clue whats goin on w/ browserify here? https://github.com/jesusabdullah/browserify-cdn/issues/71
21:23:55  * ins0mniaquit (Read error: Operation timed out)
21:28:24  * mikolalysenkoquit (Ping timeout: 264 seconds)
21:28:55  <ogd>jesusabdullah: i fixed a crashing bug in browserify-cdn just now :P
21:30:02  <thlorenz>ogd: btw I'm working on something like requirebin except for full stack apps: https://github.com/thlorenz/spinup
21:30:23  <thlorenz>still a long ways to go, but some parts are close to finished:https://github.com/thlorenz/dockerify
21:30:36  <ogd>oh sweet
21:32:44  <jesusabdullah>ogd: \m/
21:33:22  <substack>rvagg: some IE errors in readable-stream, tracking them down https://ci.testling.com/substack/tap-parser
21:33:26  <jesusabdullah>thlorenz: ANY project? Or just node projects?
21:33:33  * tilgoviquit (Remote host closed the connection)
21:33:52  <thlorenz>jesusabdullah: ANY project
21:34:02  <thlorenz>just change the Dockerfile :)
21:34:44  * defunctzombie_zzchanged nick to defunctzombie
21:34:52  <jesusabdullah>word
21:35:03  * defunctzombiequit (Changing host)
21:35:03  * defunctzombiejoined
21:36:58  * naneaujoined
21:38:19  <thlorenz>ogd: I can show you once I'm coming into Oakland (Thursday) - maybe in sudo room :)
21:41:13  * DTrejoquit (Remote host closed the connection)
21:45:34  * mikolalysenkojoined
21:46:50  * contrahaxjoined
21:47:02  <ogd>substack: re https://github.com/jesusabdullah/browserify-cdn/issues/71 maybe a recent version of browserify changed the way it parses JS and introduced these regressions?
21:47:17  * phatedquit (Read error: Connection reset by peer)
21:47:19  <rowbit1>Hourly usage stats: [developer: 4, free: 43]
21:47:34  * phatedjoined
21:54:49  <creationix>calvinmetcalf, aww, pako isn't done
21:54:51  <creationix>no inflate
21:55:08  <creationix>Good thing I have chrisdickinson's inflate
21:55:37  <chrisdickinson>i opened an issue
21:55:56  * phatedquit (Remote host closed the connection)
21:56:17  <thlorenz>ogd: substack the switch to esprima-six caused these regressions and should be reverted until it's more stable
21:56:20  <chrisdickinson>i'm >90% sure they won't accept my inflate as i don't think it quite matches what they want, but! if they want to use it, they can :)
21:56:44  <thlorenz>better to have stable ES5 parsing than ES6 features (especially if there is always es6ify)
21:56:49  <ogd>thlorenz: substack: i swapped out esprima-six for [email protected] and it fixed my issues, which arent covered by the detective test suite
21:57:00  <ogd>but the generator and yield tests in detective fail with [email protected]
21:57:01  <creationix>chrisdickinson, so I have two questions now. 1. how long till they implement inflate, and 2. will it support the interface I need
21:57:15  <chrisdickinson>unsure!
21:57:20  <chrisdickinson>and, also unsure :)
21:57:33  <creationix>chrisdickinson, yeah, those weren't questions for you, just questions
21:57:36  <thlorenz>ogd: of course :) IMO that move to ES6 was premature
21:57:38  <creationix>I guess we'll see
21:57:44  <ogd>thlorenz: do you know why https://github.com/ariya/esprima is updated recently but esprima on npm is 6 months old?
21:57:55  <thlorenz>no idea
21:58:05  <chrisdickinson>creationix: hopefully they can use my inflate
21:58:10  <chrisdickinson>or pieces of it
21:58:15  <creationix>well, if they can't, I sure can
21:58:21  <creationix>I'm trying to add clone back into js-git
21:58:28  <creationix>I've rewritten it so many times, it's not even funny
21:58:40  <ogd>AHH the culprit https://github.com/substack/node-detective/commit/be95efb7abac4bd0c3fc52f19158cef747b108b4
21:58:54  * joshwnj-joined
21:59:29  <thlorenz>wow I'm amazed substack merged that, usually he is very particular about editor noise
21:59:39  <jesusabdullah>substack: plz2b revert^^^^^^'
21:59:40  <chrisdickinson>ogd: is it misinterpreting my code as a list comprehension?
21:59:58  <chrisdickinson>because if so, i guess i'm flattered?
22:00:08  <thlorenz>that commit has trim empty and rewrite package.json written all over it
22:00:10  <jesusabdullah>Oh yeah, the spaces going away is usually a big no-no with the stizz
22:00:27  <jesusabdullah>AND it fucks up the package.json spacing
22:00:35  <thlorenz>jesusabdullah: yep, maybe he was in a good mood that day
22:01:05  <rowbit1>substack, pkrumins: A developer is waiting in the queue for android-browser/4.2
22:01:38  <thlorenz>chrisdickinson: seeing you like tar-stream, do you know how I can make that API adapt nicer to a pipe stream API?
22:02:02  <thlorenz>in particular I'm not proud that you have to pass the stream: https://github.com/thlorenz/dockerify#tarstream-opts--readablestream
22:02:59  <chrisdickinson>hmm
22:03:37  <chrisdickinson>since you need to extract entries?
22:03:38  <thlorenz>chrisdickinson: I'd have to somehow wrap it to just expose a through stream here: https://github.com/thlorenz/dockerify/blob/master/index.js#L88
22:04:05  <thlorenz>well tar-stream works with two streams if you modify entries, extract and pack
22:04:14  <thlorenz>and then it has pack.finalize()
22:04:30  <thlorenz>so incompat with node streams
22:04:32  <chrisdickinson>huh
22:04:35  <chrisdickinson>weird
22:04:46  <chrisdickinson>my extract worked like this: https://github.com/chrisdickinson/tar-parse
22:04:56  <chrisdickinson>where each `data` event was a stream
22:05:06  <chrisdickinson>but i never had the packing side down
22:05:18  <thlorenz>yeah - I banged my head trying to expose a through stream for tar-parse
22:05:26  <thlorenz>*tar-stream
22:05:50  <thlorenz>chrisdickinson: so I could modify entries for dockerify with tar-parse? maybe I'll use that instead
22:06:34  <substack>thlorenz: I fix them in extra commits sometimes
22:06:38  <chrisdickinson>it's possible? it's been a long while since i've used tar-parse -- it was originally to get around tar's reliance on graceful-fs
22:07:00  <thlorenz>substack: ah, that makes sense - sometimes that's faster than explaining things
22:07:19  <thlorenz>chrisdickinson: accepting PR to improve dockerify API ;)
22:07:24  <chrisdickinson>:)
22:07:39  <thlorenz>just getting finished with the tests and edgecases right now and will pub first version
22:07:46  <thlorenz>chrisdickinson: are you at jsfest?
22:07:49  <ogd>ooookay https://github.com/substack/node-detective/pull/30
22:08:52  <chrisdickinson>thlorenz: unfortunately no ):
22:09:00  <substack>ogd: can you add a note on this? https://github.com/substack/node-browserify/issues/614
22:09:53  <substack>even if it's just "lol use es6ify"
22:09:55  <thlorenz>chrisdickinson: ok, oh well I'll finish this up and then I'll try bugging you again about how to improve the API
22:09:56  <ogd>substack: it seems like esprima-six should be opt-in but we still need esprima
22:10:12  <ogd>substack: they are api compatible, but esprima-six is buggier
22:10:18  <substack>ogd: another problem is that this is going to become a bigger and bigger issue as time goes on
22:10:32  <substack>ogd: is es6 in the roadmap of esprima proper?
22:10:44  <substack>I guess we can just punt until esprima itself gets it
22:10:50  <thlorenz>substack: go easy on es6ify :)
22:10:57  <ogd>substack: it says support is experimental in the esprima readme
22:11:27  <substack>ogd: but do the current tests pass in detective with the old esprima?
22:12:04  <ogd>substack: yep
22:12:10  <substack>oh cool!
22:12:11  <ogd>substack: the tests in my PR pass
22:12:16  <ogd>substack: i had to take out the generator and yield tests
22:12:21  <substack>oh
22:12:24  <substack>that's what I meant
22:12:46  <ogd>substack: i tried [email protected] too and they still dont pass
22:12:54  <substack>blah
22:12:55  <ogd>substack: also sent ariya a tweet asking for a npm publish
22:13:08  <substack>this migration path is going to be so crappy
22:13:28  <substack>from es5 to es6
22:13:36  <ogd>i dont even know where the repo is for esprima-six, cause the repo for esprima-six on npm points to ariya/esprima
22:13:49  <substack>Domenic_: do you know anything about the es6 plans in esprima?
22:14:00  <thlorenz>substack: just tell ppl to fork off detective-six and browserify-six if they really need to
22:14:14  <thlorenz>or use es6ify (w/out the lol)
22:14:54  <substack>ok I'll bump the major at least for this
22:15:14  <Domenic_>substack: not really... it seemed like they were working on it for a while, but progress has stalled recently. ariya seems busy these days...
22:15:44  <substack>Domenic_: the migration path is kind of crappy without solid AST parsers that work on both es5 and es6
22:16:58  <Domenic_>agreed.
22:17:26  <thlorenz>Domenic_: wouldn't traceur have a reliable es6 parser?
22:17:37  <Domenic_>presumably yeah
22:17:43  <thlorenz>how else are they generating es5 w/out an AST
22:18:08  <thlorenz>is it in a state where it could be pulled out and made esprima compat? ^ paul_irish
22:19:01  <ogd>p.s. does anyone have a link to the github repo for esprima-six?
22:20:10  <thlorenz>ogd: it's esprima
22:20:17  <thlorenz>the es6 branch
22:20:26  <ogd>ahhh
22:20:29  <ogd>that is not mentioned anywhere
22:20:46  <ogd>do you meant he 'harmony' branch?
22:20:47  * peutetrequit (Quit: peutetre)
22:20:50  <ogd>(theres no es6 branch)
22:20:50  <thlorenz>ogd: I think this: https://github.com/ariya/esprima/tree/harmony
22:20:51  <mikolalysenko>how do these compile time es6 things handle calls to Function() or eval()?
22:20:52  <thlorenz>yeah
22:21:19  <thlorenz>but no one can be sure since it's not stated anywhere as you said
22:22:21  * maksimlinjoined
22:23:58  * joshwnj-quit (Ping timeout: 240 seconds)
22:24:38  <ogd>thlorenz: am i wrong in thinking you have some experience here? https://github.com/js-platform/filer/issues/124 see last comment
22:25:32  <thlorenz>ogd: they could just use browserify-shim
22:25:41  <thlorenz>I'll comment
22:26:55  <Domenic_>mikolalysenko: not sure how but it seems to work. http://www.es6fiddle.net/hsdqxt4u/
22:27:10  <Domenic_>oh maybe that's because i'm using firefox, hold on
22:27:20  <Domenic_>yeeeah doesn't work in Chrome
22:28:10  <substack>rvagg: what is zlib.js for in readable-stream?
22:28:48  * DTrejojoined
22:28:50  <substack>hmm it's in the npmignore
22:28:56  <substack>probably unimportant
22:29:48  * toddselfquit (Remote host closed the connection)
22:30:27  * toddselfjoined
22:31:09  * phatedjoined
22:31:15  * not_a_guestjoined
22:33:18  <thlorenz>ogd: hope that makes sense: https://github.com/js-platform/filer/issues/124#issuecomment-36687153
22:34:05  <ogd>cool
22:34:20  <ogd>i dont know how requirejs works really, but i hope i can require('filer') in place of require('fs') some day
22:34:29  * toddselfquit (Ping timeout: 240 seconds)
22:35:02  <thlorenz>ogd: you should be able to - browserify-shim totally turns of requirejs and forces the lib to attach stuff to the window which it then exports
22:36:07  <thlorenz>ogd: although from looking at https://github.com/js-platform/filer/blob/develop/dist/filer.js it seems like they already are trying to support cjs
22:36:23  <ogd>hmm dunno how i feel about opinionated talk abstracts like this http://mtnwestjs.org/2014/sessions#guybedford kinda smells like snake oil
22:36:38  * mikolalysenkoquit (Ping timeout: 244 seconds)
22:39:00  * contrahaxquit (Quit: Sleeping)
22:41:34  * contrahaxjoined
22:47:19  <rowbit1>Hourly usage stats: [free: 12]
22:50:05  <rowbit1>substack, pkrumins: A developer is waiting in the queue for safari/6.0
22:50:19  * Kesslerquit (Read error: Connection reset by peer)
22:51:54  * Kesslerjoined
22:52:04  * wolfeidaujoined
22:57:51  * mikolalysenkojoined
23:00:55  * toddselfjoined
23:01:35  <rowbit1>substack, pkrumins: These encoders are STILL down:
23:03:19  * phatedquit (Remote host closed the connection)
23:03:23  * indexzeroquit (Quit: indexzero)
23:04:59  * toddselfquit (Ping timeout: 240 seconds)
23:05:54  <substack>ogd: nobody talking interoperability actually makes things that work with node
23:06:08  <substack>it's alllll for browsers and you can't reuse anything from npm
23:06:18  <substack>except in rather niche circumstances
23:07:06  * xaqjoined
23:11:54  <substack>isaacs: https://github.com/isaacs/readable-stream/pull/82
23:12:04  <substack>and/or rvagg
23:14:13  * contrahaxquit (Quit: Sleeping)
23:15:08  * xaqquit (Read error: Connection reset by peer)
23:15:55  * defunctzombiechanged nick to defunctzombie_zz
23:16:00  * fuzquit (Ping timeout: 265 seconds)
23:17:13  * xaqjoined
23:18:47  * phatedjoined
23:19:31  * mikolalysenkoquit (Ping timeout: 244 seconds)
23:21:59  * mikolalysenkojoined
23:30:24  * xaqquit (Remote host closed the connection)
23:30:25  * phatedquit (Remote host closed the connection)
23:34:37  * kevino80quit
23:35:28  * xaqjoined
23:36:00  * phatedjoined
23:39:31  * xaqquit (Remote host closed the connection)
23:46:47  * fotoveritejoined
23:47:19  <rowbit1>Hourly usage stats: []
23:48:02  * niftylettuce_joined
23:48:16  * DTrejoquit (Remote host closed the connection)
23:51:07  * funkytekjoined
23:54:01  * DTrejojoined
23:55:11  * toddselfjoined
23:59:36  * toddselfquit (Ping timeout: 264 seconds)