00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:07:26  * ednapiranhaquit (Quit: Leaving...)
00:07:44  * AvianFluquit (Remote host closed the connection)
00:13:43  <rowbit1>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
00:13:43  <rowbit1>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
00:17:51  * defunctzombie_zzchanged nick to defunctzombie
00:22:01  * funkytekquit (Ping timeout: 240 seconds)
00:23:22  * wolfeida_joined
00:24:48  * pfrazequit (Ping timeout: 264 seconds)
00:25:58  * wolfeidauquit (Ping timeout: 240 seconds)
00:40:31  <dguttman>ogd: https://vimeo.com/65042246
00:41:09  * funkytekjoined
00:41:25  <dguttman>looks like a similar talk he gave at JS.LA
00:41:26  * contrahaxjoined
00:41:32  * ceejbotjoined
00:41:54  <terinjokes>i've talked with him a few times
00:41:57  * thlorenzquit (Remote host closed the connection)
00:43:09  * yorickquit (Remote host closed the connection)
00:47:19  <rowbit1>Hourly usage stats: [developer: 1, free: 35]
00:49:21  * toddselfjoined
00:52:14  * tilgovijoined
00:54:07  * toddselfquit (Ping timeout: 265 seconds)
00:56:06  * pfrazejoined
01:01:32  * wolfeida_quit (Remote host closed the connection)
01:02:25  * phatedquit (Remote host closed the connection)
01:05:11  * djcoinquit (Quit: WeeChat 0.4.2)
01:06:04  * calvinmetcalfquit (Quit: Connection closed for inactivity)
01:06:35  * defunctzombiechanged nick to defunctzombie_zz
01:07:30  * not_a_guestquit (Quit: Connection closed for inactivity)
01:08:11  <ogd>hughsk: man its confusing that atom has its own package manager but uses package.json and node modules
01:08:26  <ogd>hughsk: e.g. i have the nodei.co-chrome extension installed and it shows a badge on https://github.com/hughsk/atom-npm-install for https://www.npmjs.org/package/npm-install
01:11:13  * Guest58290quit (Ping timeout: 240 seconds)
01:14:14  * phatedjoined
01:14:28  <mikolalysenko>ogd: what? I thought atom was built on npm....?!
01:14:56  <mikolalysenko>why would they do it that way?
01:15:51  <terinjokes>i thought apm was just a wrapper around npm?
01:17:36  * ednapiranhajoined
01:21:27  * AvianPhonejoined
01:21:49  * contrahaxquit (Quit: Sleeping)
01:22:10  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
01:22:38  * phatedquit (Remote host closed the connection)
01:25:19  * not_a_guestjoined
01:32:35  <rowbit1>substack, pkrumins: Encoders down: 184.106.106.46 (dev-ie8-1)
01:40:39  * kenperkins_quit (Quit: Textual IRC Client: http://www.textualapp.com/)
01:43:42  * toddselfjoined
01:47:19  <rowbit1>Hourly usage stats: [developer: 4, free: 20]
01:48:01  * toddselfquit (Ping timeout: 240 seconds)
01:56:35  <hughsk>ogd: I know right! Have the same extension too – would've be nice to just use npm directly, though imagine they've done it that way to make it easier for newcomers
01:57:16  * thealphanerdquit (Quit: thealphanerd)
01:57:50  * wolfeidaujoined
01:59:22  * Kesslerquit (Ping timeout: 265 seconds)
02:00:03  <jesusabdullah>http://www.reddit.com/r/javascript/comments/1zkepg/tired_of_having_to_write_correct_identifiers_us/
02:00:20  <jesusabdullah>apparently /r/javascript hates fun
02:00:29  <jesusabdullah>(I see 0 votes)
02:00:49  * tilgoviquit (Read error: Connection reset by peer)
02:00:59  * mikolalysenkoquit (Ping timeout: 240 seconds)
02:10:10  * indexzerojoined
02:12:59  * Kesslerjoined
02:16:05  <rowbit1>substack, pkrumins: Encoders down: 50.57.174.105 (dev-ie8-2)
02:31:24  * Kesslerquit (Ping timeout: 264 seconds)
02:37:55  * toddselfjoined
02:42:00  * toddselfquit (Ping timeout: 240 seconds)
02:45:11  * indexzeroquit (Quit: indexzero)
02:45:13  * Kesslerjoined
02:47:19  <rowbit1>Hourly usage stats: [developer: 3, free: 25]
02:50:00  * ceejbotquit (Remote host closed the connection)
02:50:37  * ceejbotjoined
02:54:42  * niftylettuce_quit (Quit: Connection closed for inactivity)
02:55:24  * ceejbotquit (Ping timeout: 264 seconds)
02:55:25  * mikolalysenkojoined
02:56:17  * naneauquit (Quit: Part.)
02:56:42  * thlorenzjoined
02:58:17  * defunctzombie_zzchanged nick to defunctzombie
03:02:25  * Kesslerquit (Ping timeout: 240 seconds)
03:04:18  <defunctzombie>ogd: package.json existed before npm did tho I am not 100% positive on that
03:04:36  <defunctzombie>ogd: also, I don't think it is correct to assume that package.json will always and forever be npm only
03:04:46  <defunctzombie>it is just too generic a name and placement of the file
03:05:09  <defunctzombie>for instance debian packages have a debian folder
03:05:12  * indexzerojoined
03:05:38  * indexzeroquit (Client Quit)
03:09:02  * eugenewarejoined
03:10:46  <defunctzombie>ogd: http://williamnewton.co/blog/ui-hacking-in-the-browser/ <-- you should tell them about requirebin
03:11:05  <defunctzombie>great way to do ui with modules in the browser!
03:19:56  * contrahaxjoined
03:20:29  * contrahaxquit (Client Quit)
03:20:50  * contrahaxjoined
03:21:44  * contrahaxquit (Client Quit)
03:23:20  * heathquit (Quit: No Ping reply in 180 seconds.)
03:23:43  * tilgovijoined
03:23:55  * Kesslerjoined
03:24:21  * contrahaxjoined
03:25:09  * funkytekjoined
03:32:23  * toddselfjoined
03:33:43  * indexzerojoined
03:33:51  * indexzeroquit (Client Quit)
03:36:18  * toddselfquit (Ping timeout: 240 seconds)
03:39:13  * DTrejoquit (Remote host closed the connection)
03:40:18  * feross_quit (Quit: feross_)
03:40:46  * defunctzombiechanged nick to defunctzombie_zz
03:43:07  * i_m_cajoined
03:43:56  * tilgoviquit (Remote host closed the connection)
03:46:17  * tilgovijoined
03:47:18  <rowbit1>Daily usage stats: [developer: 8, free: 101]
03:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 21]
03:49:59  * heathjoined
03:51:56  * kriskowal_joined
03:52:29  * Kesslerquit (Ping timeout: 269 seconds)
03:52:31  * contrahaxquit (Quit: Sleeping)
03:53:36  * kriskowalquit (Ping timeout: 264 seconds)
03:53:36  * kriskowal_changed nick to kriskowal
03:54:39  * contrahaxjoined
03:55:35  * contrahaxquit (Client Quit)
03:56:20  * defunctzombie_zzchanged nick to defunctzombie
03:56:24  * contrahaxjoined
03:57:53  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
03:59:34  * ednapiranhaquit (Remote host closed the connection)
04:00:04  * ednapiranhajoined
04:00:56  <ogd>windows question: what is the best shell to use for running npm install
04:01:00  <ogd>git shell?
04:02:01  * funkytekjoined
04:02:28  <ogd>or cmd.exe? or powershell? i dont even know
04:02:29  <ogd>(windows 8)
04:03:17  <substack>ogd: http://win-bash.sourceforge.net/
04:03:46  <ogd>substack: do you know if `npm` will be in the path if the user did the windows installer from nodejs.org?
04:04:59  * ednapiranhaquit (Ping timeout: 266 seconds)
04:05:09  <substack>I'm not sure
04:05:16  <substack>Domenic_ might now if he's awake
04:06:12  <pkrumins>ogd: it will be
04:07:57  * ceejbotjoined
04:10:24  * nfroidurequit (Ping timeout: 264 seconds)
04:23:49  * tilgoviquit (Remote host closed the connection)
04:23:53  * fotoveritequit (Quit: fotoverite)
04:24:03  * contrahaxquit (Read error: Connection reset by peer)
04:24:28  * contrahaxjoined
04:27:20  * contrahaxquit (Client Quit)
04:27:20  * tilgovijoined
04:29:23  <Raynos>substack: I plan to use tape at uber soon
04:29:29  <Raynos>I'll prob make a bunch of cleanup PRs
04:30:02  <Raynos>substack: how open are you about breaking some of the lib files out into npm ?
04:30:04  * thlorenzquit (Remote host closed the connection)
04:30:17  * contrahaxjoined
04:30:48  <Raynos>substack: also make the TAP formatter swappable, so that I can iterate on a better reporter with more meta data without breaking back compat
04:30:57  <Raynos>I want to do a study of multiple testing frameworks and how they report errors
04:35:55  <substack>Raynos: I'm not sure how breaking the lib files into separate modules will help much
04:36:25  <substack>Raynos: you can test.createStream({ objectMode: true }) to get the raw data and render it however you want
04:36:39  <Raynos>substack: it will allow for re-use
04:37:02  <substack>but it forces you to use a particular runner
04:37:14  <substack>I like the simplicity of doing node test.js
04:37:17  <Raynos>if the assertion code & the only code & the nested children code & tap rendering code lived in individual modules you can build your "own tape" like you can build your "own browserify"
04:37:19  <substack>and then it spits out tap output
04:37:27  <Raynos>i like node test.js as well
04:38:36  <mikolalysenko>I'm glad that tape is getting more popular
04:39:03  <substack>Raynos: I'm somewhat open but there would need to be a clear use-case I think
04:39:06  <Raynos>substack: https://gist.github.com/Raynos/8700797
04:39:25  <Raynos>For example the whole test & child test & only() and uncaught exception and pre exit hooks blabla bla
04:39:37  <Raynos>can be seperate from the thing that just writes TAP to a stream when you assert.equal()
04:39:43  <Raynos>thats the biggest use case for me
04:39:59  <Raynos>it seems tape does both an assert interface for writing TAP and a flow control library for test authoring
04:40:12  <substack>Raynos: what if there was just a different entry point in the tape module for just the api without creating a default harness?
04:40:30  <Raynos>that could work
04:40:33  <substack>require('tape/harness') or whatever
04:40:42  <substack>and that wouldn't have any default handlers set up
04:41:05  <substack>but it's also tricky because tape wraps around process.on('exit', fn) in node
04:41:06  <Raynos>substack: https://github.com/Raynos/assert-tap I tried this btw
04:41:27  <Raynos>substack: https://github.com/Raynos/assert-tap/blob/master/index.js#L1-L2
04:41:30  <substack>to make sure there weren't planned assertions that didn't get run
04:41:54  <Raynos>it used lib/default_stream and lib/results
04:42:12  <Raynos>substack: see I dont want the .plan() feature, i never use it.
04:42:42  <Raynos>I think what I really want is all the things in lib :P
04:43:05  <Raynos>but sure we can do this by having multiple entry points & better docs rather then multiple github repos + npm packages
04:43:18  <substack>Raynos: you can just require('tape/lib/blah') directly
04:43:37  <substack>index.js doesn't have very much
04:43:58  * indexzerojoined
04:44:02  <Raynos>This is true.
04:44:18  <substack>most of it is setting up the process exit handlers
04:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 27]
04:48:01  <Raynos>substack: breaking things out of lib will force better documentation / apis / versioning / seperation though
04:49:04  * ednapiranhajoined
04:55:45  * fotoveritejoined
05:11:38  * pfrazequit (Ping timeout: 240 seconds)
05:14:02  * contrahaxquit (Quit: Sleeping)
05:18:26  * Maciek416quit (Quit: Leaving...)
05:19:22  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
05:20:00  * funkytekjoined
05:20:39  * toddselfjoined
05:21:41  * Maciek416joined
05:24:05  * calvinfoquit (Quit: Leaving.)
05:24:48  * toddselfquit (Ping timeout: 240 seconds)
05:29:31  <jlord>ceejbot: are you slides from the workshop online somewhere?
05:32:44  * dguttmanquit (Quit: dguttman)
05:36:28  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
05:37:30  * not_a_guestquit (Quit: Connection closed for inactivity)
05:41:30  * eugenewarequit (Remote host closed the connection)
05:42:04  * eugenewarejoined
05:45:44  * rxgxjoined
05:46:30  * eugenewarequit (Ping timeout: 244 seconds)
05:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 29]
05:48:57  * i_m_caquit (Ping timeout: 265 seconds)
06:00:29  * contrahaxjoined
06:01:16  * maksimlinquit (Quit: ChatZilla 0.9.90.1 [Firefox 27.0.1/20140218140359])
06:15:03  * toddselfjoined
06:16:01  * ceejbotquit (Remote host closed the connection)
06:16:01  * mikolalysenkoquit (Ping timeout: 265 seconds)
06:16:37  * ceejbotjoined
06:18:44  * anvakajoined
06:19:12  * toddselfquit (Ping timeout: 240 seconds)
06:20:58  <anvaka>isaacs: would it be possible to support CORS on registry.npmjs.org?
06:21:20  * ceejbotquit (Ping timeout: 265 seconds)
06:21:21  <substack>no more open issues on tape!
06:22:28  <anvaka>substack: congratulations :)
06:26:56  <ogd>anvaka: couchdb supports cors now
06:27:08  <ogd>anvaka: it just has to be turned on
06:27:20  <anvaka>ogd it does, but still registry.npmjs.org has it off
06:27:46  <anvaka>and jsonp is not working there https://github.com/npm/npmjs.org/issues/157
06:31:44  <ogd>anvaka: what about https://fullfatdb.npmjs.com/
06:32:18  <anvaka>ogd: let me check... I checked only jsonp there, which was disabled
06:32:41  <ogd>anvaka: couch has jsonp + cors settings that both default to off, and only admins can see the state of the settings IIRC
06:34:01  <anvaka>I must be doing something wrong with fullfatdb
06:34:15  <anvaka>ogd: I don't see cors header here https://fullfatdb.npmjs.com/
06:34:35  <anvaka>ogd: https://fullfatdb.npmjs.com/registry/_design/scratch/_view/byField?limit=10 - this returns this method may not be used
06:34:51  <ogd>anvaka: im guessing it needs to get the cors flag turned on in the couchdb configuration
06:35:22  <anvaka>ogd: right... who can do this?
06:35:36  <ogd>anvaka: probably isaacs
06:35:36  <anvaka>indexzero or isaacs?
06:36:02  <anvaka>ogd: got it... thank you!
06:36:46  <anvaka>ogd: Do I understand it correctly that isaacs.iriscouch.com is just one of many npm mirrors behind registry.npmjs.org?
06:36:53  <anvaka>or is it totally wrong?
06:37:32  <ogd>anvaka: http://blog.npmjs.org/post/75707294465/new-npm-registry-architecture
06:37:47  <anvaka>right... downstream mirror
06:37:49  <ogd>anvaka: i think *.npmjs.com is recommended going forward
06:38:04  <anvaka>yep... which does not support cors :)
06:38:05  <indexzero>depends who is making the recommendation ogd ;)
06:38:41  <anvaka>indexzero: :)
06:38:43  <ogd>right, recommended re: that blog post
06:39:13  * defunctzombiechanged nick to defunctzombie_zz
06:39:29  <ogd>anvaka: i have asked @jasonsmith to turn on cors many times for isaacs.iriscouch.com but AFAIK it never got enabled, not sure why exactly
06:39:30  * wolfeidauquit (Remote host closed the connection)
06:39:37  <ogd>anvaka: i think cors support landed in couchdb 1.3.0
06:39:56  <ogd>anvaka: are you by chance working on client side module loading?
06:40:39  <anvaka>ogd: I'm thinking about client side browserify :)... But currently it's mostly work on this visualization
06:40:45  <anvaka>http://www.yasiv.com/npm#view/browserify
06:40:53  <indexzero>ogd: core is on isaacs.iriscouch.com
06:40:56  <indexzero>I just double checked
06:41:01  <indexzero>enabled_cors = true
06:41:05  <ogd>indexzero: oh sweetness
06:41:09  <indexzero>… errr "enable_cors"
06:41:25  <anvaka>indexzero, ogd isaacs.iriscouch.com has jsonp enabled as well
06:41:32  <anvaka>but it was super unstable recently
06:41:40  <anvaka>usually during presentations :)
06:41:45  <ogd>anvaka: i think it is totally feasible to unpack tarballs from npm on the client side
06:41:52  <indexzero>anvaka: how did you get that byField thing working? I used to remember
06:41:52  <anvaka>right
06:42:02  <ogd>anvaka: i was gonna go down that road but ended up using browserify-cdn instead
06:42:04  <anvaka>ogd it's jsonp now
06:42:33  <ogd>anvaka: i mean for the actual code, not the json
06:42:58  * mikolalysenkojoined
06:43:00  <anvaka>oh sorry. I thought ogd was asking about by field
06:43:15  <anvaka>indexzero: byField works via jsonp with isaacs.iriscouch.com
06:43:41  <indexzero>sure, but it should also work w/o jsonp
06:43:52  <indexzero>right?
06:43:52  <indexzero>it's just a view
06:44:02  <anvaka>indexzero: right, if you are outside of a browser :)
06:44:12  <anvaka>indexzero: I'm in a browser where cross-domain rules are too strict
06:44:19  <indexzero>oh ok
06:44:51  <anvaka>indexzero: so enabling cors (just one header) would let me use registry..
06:45:03  <indexzero>No, that's weird. It works in a browser on the iriscouch downstream no problem
06:45:04  <indexzero>http://isaacs.iriscouch.com/registry/_design/scratch/_view/byField?limit=10
06:45:23  <indexzero>maybe I'm derping here
06:45:56  <anvaka>indexzero: sorry, I was unclear. You cannot make ajax request to that endpoint from a different domain
06:46:59  <anvaka>indexzero: you can open that page directly without problems
06:47:15  <anvaka>indexzero: cross-domain ajax fails
06:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 42]
06:47:42  <indexzero>Right, but not from fullfatdb.npmjs.com … trying to understand the difference
06:47:49  <indexzero>maybe a config is different I guess
06:48:51  <anvaka>fullfatdb currently returns this method may not be used on all my requests
06:48:53  <anvaka>https://fullfatdb.npmjs.com/registry/_design/scratch/_view/byField?limit=10
06:49:18  <anvaka>https://skimdb.npmjs.com/registry/_design/scratch/_view/byField?limit=10 - this works
06:50:05  <anvaka>https://skimdb.npmjs.com/registry/_design/scratch/_view/byField?limit=10&callback=foo - this does not wrap body into callback 'foo', which does not work for jsonp
06:52:08  <indexzero>hmmm … ok
07:00:58  * Guest58290joined
07:07:45  * gozalaquit (Quit: Connection closed for inactivity)
07:09:07  * toddselfjoined
07:13:18  * toddselfquit (Ping timeout: 244 seconds)
07:16:58  * ferossquit (Quit: feross)
07:22:05  * ferossjoined
07:27:37  * tilgoviquit (Remote host closed the connection)
07:33:03  * ednapiranhaquit (Quit: Leaving...)
07:35:29  * Maciek416quit (Remote host closed the connection)
07:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 21]
07:53:07  * djcoinjoined
07:56:14  * fotoveritequit (Quit: fotoverite)
08:02:56  * thealphanerdjoined
08:03:30  * toddselfjoined
08:05:12  * funkytekjoined
08:06:48  * paul_irish_joined
08:07:33  * toddselfquit (Ping timeout: 244 seconds)
08:07:39  * ins0mniajoined
08:08:18  * contraha_joined
08:11:02  * Guest58290quit (*.net *.split)
08:11:02  * mikolalysenkoquit (*.net *.split)
08:11:02  * contrahaxquit (*.net *.split)
08:11:03  * AvianPhonequit (*.net *.split)
08:11:04  * timoxleyquit (*.net *.split)
08:11:05  * paul_irishquit (*.net *.split)
08:11:06  * djcoinquit (*.net *.split)
08:11:07  * kriskowalquit (*.net *.split)
08:11:07  * heathquit (*.net *.split)
08:11:09  * cpupquit (*.net *.split)
08:11:09  * owenb_quit (*.net *.split)
08:11:10  * grncdrquit (*.net *.split)
08:11:10  * rannmannquit (*.net *.split)
08:12:12  * Guest58290joined
08:14:44  * rxgxquit (Ping timeout: 245 seconds)
08:15:37  * not_a_guestjoined
08:42:02  * peutetrejoined
08:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 30]
08:56:07  <rowbit1>substack, pkrumins: At least 10 people waiting in the queue for free servers! (Waiting: 10)
08:56:51  <substack>o_O
08:59:39  * mikolalysenkojoined
09:00:57  * addisonjquit (Quit: Connection closed for inactivity)
09:01:09  * timoxley_joined
09:01:09  * nfroidurejoined
09:01:09  * rannmannjoined
09:01:09  * grncdrjoined
09:01:09  * owenb_joined
09:01:09  * cpupjoined
09:01:09  * heathjoined
09:01:09  * kriskowaljoined
09:01:09  * djcoinjoined
09:01:09  * rxgxjoined
09:01:09  * AvianPhonejoined
09:03:29  * ehdquit (Ping timeout: 245 seconds)
09:03:54  * grewebquit (Ping timeout: 245 seconds)
09:03:54  * daleharveyquit (Ping timeout: 245 seconds)
09:04:43  * mikolalysenkoquit (Ping timeout: 265 seconds)
09:04:44  * mrb_bkquit (Ping timeout: 245 seconds)
09:05:47  * eugenewarejoined
09:06:57  * grewebjoined
09:07:14  * mrb_bkjoined
09:07:22  * ehdjoined
09:07:35  * daleharveyjoined
09:13:34  * eugenewarequit (Ping timeout: 240 seconds)
09:19:51  * thealphanerdquit (Quit: thealphanerd)
09:20:13  * rxgxquit (Quit: Connection closed for inactivity)
09:24:06  * Maciek416joined
09:27:03  * thealphanerdjoined
09:28:24  * peutetrequit (Ping timeout: 264 seconds)
09:28:53  * Maciek416quit (Ping timeout: 265 seconds)
09:29:11  * peutetrejoined
09:31:51  * thealphanerdquit (Client Quit)
09:38:56  * ferossquit (Quit: feross)
09:43:18  * mikolalysenkojoined
09:45:25  * indexzeroquit (Quit: indexzero)
09:47:19  <rowbit1>Hourly usage stats: [developer: 1, free: 39]
09:47:48  * ins0mniaquit (Ping timeout: 252 seconds)
09:48:21  * mikolalysenkoquit (Ping timeout: 252 seconds)
09:51:18  * ins0mniajoined
09:51:41  * toddselfjoined
09:53:49  * Guest58290quit (Read error: Connection reset by peer)
09:56:26  * toddselfquit (Ping timeout: 265 seconds)
10:07:07  * DTrejojoined
10:09:25  * DTrejoquit (Remote host closed the connection)
10:10:03  * DTrejojoined
10:12:38  * DTrejoquit (Read error: Connection reset by peer)
10:35:44  * calvinfojoined
10:37:30  * not_a_guestquit (Quit: Connection closed for inactivity)
10:44:05  * mikolalysenkojoined
10:46:00  * toddselfjoined
10:47:19  <rowbit1>Hourly usage stats: [developer: 2, free: 35]
10:47:37  <rowbit1>substack, pkrumins: Encoders down: 166.78.102.157 (dev-ie10-1)
10:48:58  * mikolalysenkoquit (Ping timeout: 240 seconds)
10:50:36  * toddselfquit (Ping timeout: 264 seconds)
10:55:00  * calvinfoquit (Quit: Leaving.)
10:56:33  * eugenewarejoined
11:01:41  * eugenewarequit (Ping timeout: 265 seconds)
11:13:09  * Maciek416joined
11:13:51  * funkytekquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
11:14:57  * anvakaquit (Remote host closed the connection)
11:18:12  * Maciek416quit (Ping timeout: 264 seconds)
11:20:10  * Kesslerjoined
11:41:41  * Kesslerquit (Ping timeout: 252 seconds)
11:44:53  * mikolalysenkojoined
11:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 50]
11:49:57  * mikolalysenkoquit (Ping timeout: 252 seconds)
11:50:52  * hij1nx_joined
11:51:44  * trodriguesquit (Disconnected by services)
11:51:46  * WHARGARBLjoined
11:52:51  * jcrugzz_joined
11:53:43  * hackygolucky_joined
11:54:18  * mmckegg_joined
11:54:45  * parshap_joined
11:55:12  * contraha_quit (Quit: Sleeping)
11:56:12  * fent_joined
11:56:14  * hij1nxquit (Ping timeout: 265 seconds)
11:56:14  * mmckeggquit (Ping timeout: 265 seconds)
11:56:15  * grewebquit (Ping timeout: 265 seconds)
11:56:15  * occamshatchetquit (Ping timeout: 265 seconds)
11:56:15  * hackygoluckyquit (Ping timeout: 265 seconds)
11:56:15  * mmckegg_changed nick to mmckegg
11:56:17  * monteslu_joined
11:56:48  * jcrugzzquit (Ping timeout: 265 seconds)
11:56:49  * parshapquit (Ping timeout: 265 seconds)
11:56:49  * fentquit (Ping timeout: 265 seconds)
11:56:49  * tanepiperquit (Ping timeout: 265 seconds)
11:56:50  * collypopsquit (Ping timeout: 265 seconds)
11:56:50  * tobiequit (Ping timeout: 265 seconds)
11:56:52  * grewebjoined
11:56:52  * ehdquit (Ping timeout: 265 seconds)
11:56:52  * montesluquit (Ping timeout: 265 seconds)
11:56:53  * occamshatchetjoined
11:56:53  * tobie_joined
11:56:53  * tanepiperjoined
11:56:54  * grewebquit (Changing host)
11:56:54  * grewebjoined
11:56:55  * tobie_quit (Changing host)
11:56:55  * tobie_joined
11:56:55  * tanepiperquit (Changing host)
11:56:55  * tanepiperjoined
11:56:55  * Kesslerjoined
11:57:18  * hackygolucky_changed nick to hackygolucky
11:57:18  * monteslu_changed nick to monteslu
11:57:18  * jcrugzz_changed nick to jcrugzz
11:57:18  * fent_changed nick to fent
11:57:22  * ehdjoined
11:58:27  * parshap_changed nick to parshap
12:08:31  * wolfeidaujoined
12:19:43  * calvinmetcalfjoined
12:20:00  * Kesslerquit (Ping timeout: 264 seconds)
12:34:26  * toddselfjoined
12:38:49  * toddselfquit (Ping timeout: 240 seconds)
12:43:59  * AvianPhonequit (Ping timeout: 240 seconds)
12:45:19  * AvianPhonejoined
12:45:33  * fotoveritejoined
12:45:48  * mikolalysenkojoined
12:46:55  <rowbit1>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
12:46:55  <rowbit1>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
12:47:19  <rowbit1>Hourly usage stats: [developer: 2, free: 38]
12:50:29  * mikolalysenkoquit (Ping timeout: 240 seconds)
12:52:36  * peutetrequit (Quit: peutetre)
12:56:03  * Kesslerjoined
12:56:17  * eugenewarejoined
12:58:26  * AvianPhonequit (Remote host closed the connection)
13:01:13  * eugenewarequit (Ping timeout: 240 seconds)
13:01:53  * Maciek416joined
13:06:14  * wolfeidauquit (Remote host closed the connection)
13:06:22  * AvianPhonejoined
13:06:52  * Maciek416quit (Ping timeout: 265 seconds)
13:08:13  <calvinmetcalf>substack: https://github.com/isaacs/readable-stream/pull/83
13:08:24  <calvinmetcalf>not **just** bitching about stuff on twitter
13:10:30  * wolfeidaujoined
13:11:55  * ceejbotjoined
13:16:00  * ceejbotquit (Ping timeout: 240 seconds)
13:21:31  * thlorenzjoined
13:27:32  * yorickjoined
13:28:40  * toddselfjoined
13:33:03  * toddselfquit (Ping timeout: 244 seconds)
13:43:25  * WHARGARBLchanged nick to trodrigues
13:43:34  * trodriguesquit (Changing host)
13:43:34  * trodriguesjoined
13:46:28  * mikolalysenkojoined
13:47:19  <rowbit1>Hourly usage stats: [developer: 308, free: 44]
13:49:39  * nickleefly___joined
13:50:59  * mikolalysenkoquit (Ping timeout: 240 seconds)
13:56:36  * eugenewarejoined
13:58:18  * nickleefly___part
14:01:26  * eugenewarequit (Ping timeout: 252 seconds)
14:02:42  * nickleeflyjoined
14:12:52  * ceejbotjoined
14:17:36  * ceejbotquit (Ping timeout: 264 seconds)
14:18:08  * guybrushquit (Excess Flood)
14:18:15  * guybrushjoined
14:22:53  * toddselfjoined
14:23:52  * peutetrejoined
14:26:22  * toddself_joined
14:27:13  * toddselfquit (Ping timeout: 240 seconds)
14:47:09  * mikolalysenkojoined
14:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 70]
14:50:48  * Maciek416joined
14:52:06  * mikolalysenkoquit (Ping timeout: 244 seconds)
14:55:37  * Maciek416quit (Ping timeout: 265 seconds)
14:56:08  <rowbit1>substack, pkrumins: At least 10 people waiting in the queue for free servers! (Waiting: 26)
15:06:30  * kevino80joined
15:07:13  * wolfeidauquit (Ping timeout: 265 seconds)
15:12:07  * ceejbotjoined
15:14:53  * pfrazejoined
15:17:34  <ceejbot>jlord: yes, they're on SpeakerDeck. https://speakerdeck.com/ceejbot/writing-your-talk
15:18:21  * dguttmanjoined
15:23:06  * Kesslerquit (Ping timeout: 244 seconds)
15:23:23  * defunctzombie_zzchanged nick to defunctzombie
15:24:32  * naneaujoined
15:27:59  * Maciek416joined
15:38:57  * Kesslerjoined
15:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 60]
15:47:54  * mikolalysenkojoined
15:49:16  * AvianPhonequit (Ping timeout: 265 seconds)
15:50:37  * AvianPhonejoined
15:51:10  * xaqjoined
15:53:08  * mikolalysenkoquit (Ping timeout: 265 seconds)
15:55:04  * AvianPhonequit (Ping timeout: 265 seconds)
15:55:46  * ceejbotquit (Remote host closed the connection)
16:05:59  * defunctzombiechanged nick to defunctzombie_zz
16:13:04  * xaqquit (Remote host closed the connection)
16:17:29  * ednapiranhajoined
16:22:12  * AvianFlujoined
16:24:50  * nickleeflyquit (Quit: Connection closed for inactivity)
16:37:25  * ceejbotjoined
16:40:38  * kumavis_joined
16:43:47  * ceejbotquit (Remote host closed the connection)
16:47:04  * defunctzombie_zzchanged nick to defunctzombie
16:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 51]
16:48:42  * mikolalysenkojoined
16:53:31  * mikolalysenkoquit (Ping timeout: 244 seconds)
16:56:55  * eugenewarejoined
16:57:57  * calvinfojoined
17:00:58  * eugenewarequit (Ping timeout: 240 seconds)
17:02:52  * mikolalysenkojoined
17:04:26  * gozalajoined
17:04:38  * Kesslerquit (Ping timeout: 252 seconds)
17:04:54  * Kesslerjoined
17:18:38  * not_a_guestjoined
17:36:09  * thlorenzquit (Remote host closed the connection)
17:36:32  * anvakajoined
17:36:45  * thlorenzjoined
17:37:02  * thlorenzquit (Read error: Connection reset by peer)
17:42:55  * thlorenzjoined
17:47:19  <rowbit1>Hourly usage stats: [developer: 0, free: 38]
17:50:14  * thlorenzquit (Read error: Connection reset by peer)
17:50:36  * thlorenzjoined
17:59:46  * defunctzombiechanged nick to defunctzombie_zz
18:00:53  * phatedjoined
18:15:27  <creationix>so I think I finally realized my problem with tiny npm modules and large npm modules
18:16:00  <creationix>I agree that function-level modularity is ideal for code reuse, but the overhead of creating a package is way too high for such a granular approach
18:16:49  <creationix>I would love an editor where I just created a new module (like I create a new file today) marked it with some metadata like the signature, tags, topic group, etc
18:17:17  <creationix>then whenever I need that code, I search for it locally and it inserts the proper require for it.
18:17:26  <Raynos>thlorenz: https://github.com/thlorenz/doctoc/pull/29
18:17:27  <Raynos>:D
18:18:08  <thlorenz>Raynos: did you edit this in github?
18:18:16  <Raynos>yes >_>;
18:19:11  <thlorenz>thanks
18:19:13  <thlorenz>pulled
18:19:24  <creationix>Raynos, ever tried editing in tedit yet?
18:19:34  <Raynos>not yet
18:19:41  <Raynos>there is not "edit in tedit" button on github :P
18:19:54  <creationix>nope, there's an edit github button in tedit
18:23:37  * cpupquit (Ping timeout: 240 seconds)
18:25:29  * eugenewarejoined
18:25:47  <Raynos>thlorenz: how does https://github.com/thlorenz/doctoc/blob/master/lib/transform.js#L116-L119 work ?
18:26:29  <anvaka>creationix: I built a generator to automate that overhead https://www.youtube.com/watch?v=VKsmKs9DzsE
18:27:07  <creationix>anvaka, but you still need to name the modules and publish them to npm and github right?
18:27:35  <anvaka>creationix: that's right
18:27:38  <thlorenz>Raynos: stupidly right now, I need to fix it so it works more like docme via https://github.com/thlorenz/update-section
18:27:50  <Raynos>thlorenz: I'm writing something that should help :)
18:27:50  <thlorenz>Raynos: at this point the toc has to be at the top of your file ;(
18:27:58  <thlorenz>just use update-section
18:28:02  <creationix>anvaka, yeah, that's still way too much overhead for the kind of workflow I'm looking for
18:28:09  <thlorenz>that'll do it, I just haven't had the time to do it yet
18:28:19  <Raynos>thlorenz: no, I'm using a markdown parser + magic :D
18:29:19  <thlorenz>ah, cool, I'll except PRs as long as all tests pass
18:29:43  <thlorenz>but for replacing update-section would be sufficient
18:31:54  <Raynos>im not sure how I want to do this atm
18:33:50  <thlorenz>Raynos: ok, maybe I'll hack it once I'm in SFO
18:34:04  <thlorenz>the parsing can change independently of it
18:35:12  * phatedquit (Read error: Connection reset by peer)
18:35:33  * phatedjoined
18:39:24  * phatedquit (Remote host closed the connection)
18:39:25  <Raynos>thlorenz: https://github.com/thlorenz/doctoc/pull/30 :D
18:41:02  * kumavis_quit (Quit: Textual IRC Client: www.textualapp.com)
18:43:04  * eugenewarequit (Remote host closed the connection)
18:43:21  * thlorenzquit (Remote host closed the connection)
18:44:04  * calvinfoquit (Quit: Leaving.)
18:44:35  * cpupjoined
18:45:42  * ceejbotjoined
18:46:08  * eugenewarejoined
18:46:56  * phatedjoined
18:47:19  <rowbit1>Hourly usage stats: [free: 20]
18:47:29  * ceejbotquit (Remote host closed the connection)
18:49:03  * phatedquit (Read error: Connection reset by peer)
18:49:34  * phatedjoined
18:49:43  * mikolalysenkoquit (Ping timeout: 252 seconds)
18:51:06  * eugenewarequit (Remote host closed the connection)
18:54:03  * mikolalysenkojoined
18:56:54  <creationix>Ok, I'll give medium a try, gists don't seem to work well for explaining concepts
18:56:55  <creationix>https://medium.com/p/d8313c437fe4
18:57:09  <creationix>my idea (roughly) about micro modules with low overhead
18:57:20  * eugenewarejoined
18:59:37  * brianloveswordsquit (Ping timeout: 252 seconds)
19:00:22  * anvakaquit (Remote host closed the connection)
19:00:43  * brianloveswordsjoined
19:00:52  * ceejbotjoined
19:01:37  * jackassjoined
19:02:07  * jackasspart ("Leaving")
19:14:03  * phatedquit (Read error: Connection reset by peer)
19:14:06  * phated_joined
19:16:21  * eugenewarequit (Remote host closed the connection)
19:18:35  * eugenewarejoined
19:20:51  <Raynos>thlorenz: i cant do it my way because I have no markdown serializer :( ( https://gist.github.com/Raynos/9374532 )
19:22:50  * Kesslerquit (Ping timeout: 244 seconds)
19:25:29  * pfrazequit (Ping timeout: 252 seconds)
19:25:30  * calvinfojoined
19:27:06  * pfrazejoined
19:28:26  <chrisdickinson>creationix: one nit: in chrome/v8 you can hot-rewrite functions
19:28:45  <creationix>cool
19:28:45  <chrisdickinson>(pause execution, rewrite, cmd + s, resume execution)
19:28:53  <chrisdickinson>(works with node as well!)
19:28:57  * rxgxjoined
19:29:23  * addisonjjoined
19:31:00  <creationix>chrisdickinson, added a note to the post
19:32:39  * phated_quit (Read error: Connection reset by peer)
19:33:55  * phated_joined
19:34:03  * thlorenzjoined
19:38:50  * Kesslerjoined
19:38:50  * eugenewarequit (Remote host closed the connection)
19:39:29  * eugenewarejoined
19:43:33  * eugenewarequit (Remote host closed the connection)
19:44:02  * toddself_quit (Remote host closed the connection)
19:44:21  * toddselfjoined
19:45:23  * toddselfquit (Remote host closed the connection)
19:46:03  * toddselfjoined
19:47:01  * phated__joined
19:47:12  * phated_quit (Read error: Connection reset by peer)
19:47:19  <rowbit1>Hourly usage stats: [developer: 10, free: 59]
19:50:33  * phated__quit (Read error: Connection reset by peer)
19:50:57  * toddselfquit (Ping timeout: 265 seconds)
19:51:00  * phated_joined
19:51:15  * fotoverite_joined
19:51:59  * fotoveritequit (Ping timeout: 240 seconds)
19:51:59  * fotoverite_changed nick to fotoverite
19:52:03  * thealphanerdjoined
19:54:12  * jez0990joined
19:54:43  <jez0990>creationix: you saw williamcotton's corslit stuff, right?
19:54:55  * ferossjoined
19:55:02  <jez0990>http://williamcotton.com/another-way-to-publish-code
19:55:52  <jez0990>function-level modularity and versioning is totally the right approach in the long term
19:56:25  <creationix>jez0990, nice, I haven't come back to this since he was starting it
19:57:57  <jez0990>I'm not sure it will have changed much, but asides from the amd design-decision it's a pretty compelling prototype
19:59:07  <creationix>right, it's not hard at all to scan for require calls
20:01:54  <jez0990>even that's too much, it would be better to visually represent the dependency graph at the same time
20:02:29  <jez0990>perhaps even using icons / drawings for the modules...
20:02:39  <creationix>yeah, I'm all for graphical and automatic dependency graphs
20:03:00  <creationix>code is data is code
20:03:15  * naneauquit (Quit: Part.)
20:03:16  <creationix>that's why I've been playing with using git as a database
20:03:28  * kumavis_joined
20:03:28  <creationix>like, a normal database, not a code revision control system
20:05:03  * kumavis_quit (Client Quit)
20:05:33  * thealphanerdquit (Quit: thealphanerd)
20:07:19  * ceejbotquit (Remote host closed the connection)
20:09:05  <jez0990>you mean you've building a pouchdb competitor?
20:09:21  <jez0990>I strongly believe that nearly all human-inputted data should be stored immutably anyway
20:09:28  <jez0990>*you've been
20:09:54  <creationix>more like finding creative ways to use git, I don't care about competing with existing DBs
20:10:34  * ralphtheninjajoined
20:10:45  * ralphtheninjapart
20:10:51  * ceejbotjoined
20:11:57  <jez0990>naturally, competition is orthogonal to the hacker ethos
20:12:00  * contrahaxjoined
20:12:25  * Kesslerquit (Ping timeout: 240 seconds)
20:14:01  <creationix>though it turns out that hacker ethos works better if you have another existing source of income
20:19:33  * kevino80quit (Remote host closed the connection)
20:20:10  * peutetrequit (Quit: peutetre)
20:21:53  * wolfeidaujoined
20:24:27  <jez0990>creationix: you mean more than just in practical terms?
20:26:12  <creationix>I mean, I've been working on open source fill-time for the last year, and despite writing enough code to be easily worth over $250k and giving it away for free, I don't have a way to pay my bills next month.
20:26:24  <creationix>donations and crowd-funding aren't enough
20:26:58  * toddselfjoined
20:28:02  <creationix>ideally, I would write code that's worth value and the people who benifit from the code would share the cost so I can keep writing more
20:28:08  <creationix>but that's not the world we live in
20:28:51  <creationix>though I do believe we'll get there some day
20:29:26  <ogd>i forget, if i am a transform stream and i have an error, am i supposed to do me.emit('error', err) and me.destroy() ?
20:29:50  <ogd>or do i just do me.emit('error', err)
20:30:17  * peutetrejoined
20:30:51  * xaqjoined
20:31:29  * toddselfquit (Ping timeout: 240 seconds)
20:33:06  * xaqquit (Read error: Connection reset by peer)
20:33:13  * xaq_joined
20:34:22  * Kesslerjoined
20:36:12  <substack>ogd: just emit error
20:36:13  <chrisdickinson>ogd: i think destroy is handled for you
20:37:17  * xaqjoined
20:37:35  <ogd>mmk sweet
20:37:46  * xaq_quit (Read error: Connection reset by peer)
20:37:58  * mikolalysenkoquit (Ping timeout: 240 seconds)
20:43:51  * xaqquit (Read error: Connection reset by peer)
20:44:21  * xaqjoined
20:45:30  * kevino80joined
20:45:43  * defunctzombie_zzchanged nick to defunctzombie
20:46:04  * abirajajoined
20:47:19  <rowbit1>Hourly usage stats: [developer: 4, free: 47]
20:48:19  * DTrejojoined
20:50:14  * ceejbotquit (Remote host closed the connection)
20:51:27  * ceejbotjoined
20:54:03  * wolfeidauquit (Ping timeout: 252 seconds)
20:56:38  * ferossquit (Ping timeout: 240 seconds)
21:00:25  * kevino80quit (Remote host closed the connection)
21:05:53  * phated_quit (Remote host closed the connection)
21:11:24  * DTrejoquit (Remote host closed the connection)
21:14:09  * funkytekjoined
21:14:10  * ednapira_joined
21:14:36  * ednapira_changed nick to ednapiranha_
21:16:59  * ednapiranhaquit (Ping timeout: 264 seconds)
21:17:01  * Kesslerquit (Ping timeout: 244 seconds)
21:17:53  * ednapiranha_changed nick to ednapiranha
21:19:30  * kummerjoined
21:21:15  * toddselfjoined
21:22:52  * kevino80joined
21:23:02  * thealphanerdjoined
21:25:29  * toddselfquit (Ping timeout: 240 seconds)
21:30:56  * DTrejojoined
21:32:34  <jesusabdullah>yo thlorenz it sounds like we're gonna be chillin' Thurs/Fri
21:32:51  <jesusabdullah>and figuring out how to make our API work for you... should be EXCITING
21:33:10  <thlorenz>jesusabdullah: cool, I'm gonna be in SFO though :)
21:33:15  <jesusabdullah>oh crap
21:33:17  <jesusabdullah>that's right
21:33:18  <jesusabdullah>talk?
21:33:22  <jesusabdullah>conf, rather? Which?
21:33:24  <thlorenz>yes
21:33:28  <thlorenz>jsfest
21:33:35  <thlorenz>speaking at rejectjs
21:33:47  <terinjokes>thlorenz: oh, right you're here?
21:34:02  <thlorenz>terinjokes: not yet coming in tomorrow afternoon around 3
21:34:21  <terinjokes>thlorenz: nice!
21:34:45  * defunctzombiechanged nick to defunctzombie_zz
21:35:27  * peutetrequit (Quit: peutetre)
21:37:57  * peutetrejoined
21:44:03  <pkrumins>new blog post about how we deploy code at browserling/testling with ploy: http://www.catonmat.net/blog/ploy-deployment-at-browserling/
21:46:56  <marcello3d>who all here is going to jsfest? just relearned about it (saw it a few months back but forgot)---trying to see if I can get tickets but not sure what things to go to
21:47:19  <rowbit1>Hourly usage stats: [developer: 4, free: 47]
21:50:13  * rxgxquit (Quit: Connection closed for inactivity)
21:52:05  * phated_joined
21:56:55  * phated_quit (Remote host closed the connection)
22:05:19  <marcello3d>alright. picked TEoE, SUaD, DHTMLConf, and RejectJS
22:06:14  * xaqquit (Remote host closed the connection)
22:07:01  <terinjokes>thlorenz: going to DHTMLConf?
22:10:32  * toddselfjoined
22:20:03  * peutetrequit (Quit: peutetre)
22:20:20  * wolfeidaujoined
22:20:52  <DTrejo>marcello3d: I am!
22:22:27  * taterbasejoined
22:22:29  <marcello3d>right on! which ones?
22:29:08  * ferossjoined
22:31:44  * mikolalysenkojoined
22:34:50  * thlorenzquit (Remote host closed the connection)
22:35:33  * wolfeidauquit (Remote host closed the connection)
22:35:56  * tilgovijoined
22:37:09  * kevino80quit (Remote host closed the connection)
22:37:55  * eugenewarejoined
22:44:45  <mikolalysenko>rvagg: I want to get started on building a workshopper for glslify/gl-modules
22:45:00  <mikolalysenko>do you have any recommendations on how to get workshopper running within a browser window?
22:45:16  <mikolalysenko>ie, is there some sort of in browser testing harness that works nicely with workshopper?
22:45:18  * dominictarrjoined
22:47:19  <rowbit1>Hourly usage stats: [free: 24]
22:49:03  <dominictarr>substack, ogd hey anyone want to ride bikes to mexico after nodeconf?
22:52:52  * tilgovi_joined
22:53:18  * tilgoviquit (Ping timeout: 240 seconds)
22:54:12  * phated_joined
22:54:58  * djcoinquit (Quit: WeeChat 0.4.2)
22:57:01  * phated_changed nick to phated
23:03:21  * kummerquit (Ping timeout: 252 seconds)
23:09:05  * wolfeidaujoined
23:09:36  <chrisdickinson>mikolalysenko: i'd like to help with that process
23:09:48  * ednapiranhaquit (Remote host closed the connection)
23:10:33  <chrisdickinson>are you thinking that the workshop would operate entirely in browser?
23:11:00  <chrisdickinson>(i.e., no CLI outside of "start running the workshopper!")
23:13:05  <chrisdickinson>or would it be a mixed mode -- where verify pops open a browser window with your code and runs a canvas-verify module of some sort?
23:13:41  * phatedquit (Remote host closed the connection)
23:15:32  * toddselfquit (Remote host closed the connection)
23:18:17  * ednapiranhajoined
23:18:44  <mikolalysenko>chrisdickinson: I'm open to ideas
23:18:59  <mikolalysenko>chrisdickinson: I was thinking about something kind of like a beefy interface
23:19:12  <mikolalysenko>though maybe it could be integrated into a webpage and hosted on modules.gl
23:19:38  <mikolalysenko>(also I need to revisit the dns hosting records for that and somehow get it working on gh-pages)
23:19:47  <chrisdickinson>i was thinking along the beefy lines too -- i.e., `gl-workshopper verify program.js` would run beefy and pop open a window
23:19:55  <mikolalysenko>yeah
23:20:08  <chrisdickinson>and the verification bits would be "render into this offscreen canvas at a known h/w", perhaps, and compare
23:20:27  <mikolalysenko>right, though it might be fun to have it draw some stuff to the browser window
23:20:33  <mikolalysenko>so people could see the effects of their code
23:20:40  <chrisdickinson>oh yeah
23:20:48  <chrisdickinson>maybe have it mirror the commands to both somehow?
23:20:54  <chrisdickinson>or only do the offscreen drawing on verify?
23:20:57  <mikolalysenko>that could be neat
23:21:10  <mikolalysenko>so I'm kind of two minds on the issue
23:21:17  <mikolalysenko>on the one hand, editing text files in a browser sucks
23:21:36  <mikolalysenko>and so it is better to let people just do that stuff using whatever system they like on their local computer
23:21:45  <mikolalysenko>especially so they can save and review their progress
23:22:02  <mikolalysenko>on the other hand though, it would be nice to have an in browser tutorial of some form
23:22:18  <mikolalysenko>that could also work as a way to introduce people to glslify etc.
23:22:27  * chrisdickinsonnods
23:22:29  <mikolalysenko>since you could just run some of the early examples in a page
23:22:47  * phatedjoined
23:22:51  <chrisdickinson>what about using something like exterminate?
23:22:58  <mikolalysenko>hmm, how does that work?
23:23:09  <chrisdickinson>where the workshopper runs entirely in browser, but the default interface is just a shell
23:23:35  <chrisdickinson>that way verify could just plop iframes into the current window running the code
23:23:39  <mikolalysenko>ah, I see
23:23:45  <mikolalysenko>that could be really cool
23:24:05  <chrisdickinson>the one downside i can see is that it distances folks from "how do i run this code"
23:24:09  <mikolalysenko>yeah...
23:24:14  <mikolalysenko>maybe simpler is better here
23:24:32  <mikolalysenko>just have them run the workshopper, it pops up a window and draws some stuff
23:24:39  <mikolalysenko>the results get read back from a local server
23:25:12  <mikolalysenko>at least it gives us something to work from
23:25:17  * chrisdickinsonnods
23:25:33  <mikolalysenko>and if the test cases are written against a generic interface, the rest of the details shouldn't matter too much if we change them
23:25:51  <mikolalysenko>the other issue is the order in which to present the material
23:25:56  <chrisdickinson>the bit that would be neat is to have (at the end of this) a way to test glslify modules
23:26:00  <mikolalysenko>yeah
23:26:04  <mikolalysenko>exactly what I was thinking
23:26:22  <mikolalysenko>basically first do a set of lessons that just introduce glsl/glslify
23:26:38  <mikolalysenko>starting from basic syntax and types, etc.
23:26:48  <mikolalysenko>then writing fragment -> vertex shaders -> using modules
23:27:04  <mikolalysenko>once that is done, then introduce the webgl modules
23:27:32  * chrisdickinsonnods
23:27:36  <chrisdickinson>"here's how you draw a triangle"
23:27:44  <chrisdickinson>should we grab prior art from nehe, perhaps?
23:28:01  <mikolalysenko>nah, not sure if nehe is a great idea
23:28:19  <chrisdickinson>well, to rephrase: borrow the progression of lessons from nehe
23:28:47  <mikolalysenko>not really a huge fan of that, I think nehe follows gl1.0 too closely and goes off into the weeds pretty quickly
23:29:23  <mikolalysenko>probably a saner progression is to start with shaders and related syntax, introduce buffers and basic drawing commands, then move onto textures, fbos, etc.
23:29:41  <mikolalysenko>just focus on explaining the capabilities of the drawing api before getting into 3d matrix math
23:29:42  * maksimlinjoined
23:29:42  <chrisdickinson>interesting
23:29:49  * collypopsjoined
23:30:12  * wolfeida_joined
23:30:12  <chrisdickinson>i.e., start with fragment shaders, then vertex, then drawing commands?
23:30:17  <mikolalysenko>yep
23:30:20  * ednapiranhaquit (Remote host closed the connection)
23:30:21  <chrisdickinson>sounds good
23:30:30  <chrisdickinson>gets people drawing things immediately
23:30:32  <mikolalysenko>make sure everyone understands basic 2d drawing 100% before introducing 3d concepts
23:30:35  <mikolalysenko>yeah
23:30:48  <mikolalysenko>since really before you can understand 3d you need to understand all the basics first
23:30:49  <chrisdickinson>and sets up fragment shaders as "this is how you draw onto a surface"
23:31:09  <mikolalysenko>yeah, or more to the point think of fragment shader as tiny programs that run on the gpu
23:31:17  * chrisdickinsonnods
23:31:21  <mikolalysenko>it is also good to get used to the weirdness of shaders right away
23:31:32  <mikolalysenko>the main sticking point is that all computations in shaders are finite
23:31:38  <mikolalysenko>so no loops and no dynamic memory
23:31:46  <chrisdickinson>it might be good to have a glsl linter module by then
23:31:52  <chrisdickinson>so we can give folks intelligent feedback
23:31:52  <mikolalysenko>once you understand that and get used to the syntax it is easy to compute with them
23:32:13  <mikolalysenko>a linter could be nice, but maybe lower priority
23:32:24  <chrisdickinson>(since you can loop, but you have to be looping up to a constant)
23:32:45  <mikolalysenko>right
23:32:49  <mikolalysenko>all loops must terminate in glsl
23:33:03  <mikolalysenko>same with recursion and so on
23:33:13  * wolfeidauquit (Ping timeout: 240 seconds)
23:34:04  <mikolalysenko>I think if you just stick to glsl you can introduce all the basic stuff, like the different types, texture memory, and possibly even basic gpgpu stuff
23:34:20  <substack>I think agda or coq is the same way
23:34:21  <mikolalysenko>like the final exercise for glslify could be to implement a gpu based game of life or similar cellular automata
23:34:27  <substack>enforcing non-halting behavior
23:35:21  * phatedquit (Remote host closed the connection)
23:35:39  <chrisdickinson>hmm
23:36:08  <chrisdickinson>i think a lot of it should be in glsl, but it'd be desirable to move out of it after about 2-3 lessons and show how things are wired up at the js level
23:36:23  <mikolalysenko>eventually yes
23:36:46  <chrisdickinson>it'd be cool for the final lesson to be wiring up your own voxel clone :)
23:36:55  <mikolalysenko>but I think learning how to use things before learning how to wire them up might be easier
23:37:06  <mikolalysenko>since you only have to learn one thing at a time instead of two
23:38:10  * phatedjoined
23:38:11  <mikolalysenko>by the end of the glslify workshop, they should have a basic enough understanding to create stuff on shader toy for example
23:38:37  <mikolalysenko>or at least get some crude examples working
23:41:22  * substackbuilt an implicit surface solver once in glsl using macros >:D
23:41:57  <substack>still on github but I would be hard-pressed to find it
23:43:04  <substack>mikolalysenko: hah when I search "implicit surface" something you made is #1 in the results
23:44:13  <mikolalysenko>substack: haha
23:44:25  * wolfeida_quit (Remote host closed the connection)
23:45:23  <mikolalysenko>I just tried it, but #1 is some irrelevant thing
23:45:56  * wolfeidaujoined
23:46:29  * toddselfjoined
23:46:53  * wolfeidauquit (Remote host closed the connection)
23:47:19  <rowbit1>Hourly usage stats: [free: 31]
23:53:16  * phatedquit (Remote host closed the connection)
23:54:43  * wolfeidaujoined
23:56:28  <mikolalysenko>chrisdickinson: so thinking about glslify from the perspective of glsl first, it might be fun to have students first do a full set of glsl activities, then in the second part go through and hook up their solutions to handle all the webgl plumbing
23:56:39  <mikolalysenko>like part 1 = glslify tutorial, just write shaders
23:56:49  * ednapiranhajoined
23:56:49  <mikolalysenko>and part 2 = take stuff from part 1 and glue it all together
23:57:11  <chrisdickinson>that would be neat
23:57:39  <mikolalysenko>that way they would only have to debug one thing at a time as they are writing their code
23:58:03  <chrisdickinson>i think one thing i liked about nehe (from way, way, *way* back) was that often the lessons were springboards for things i wanted to build anyway
23:58:03  <chrisdickinson>in particular "here's how you do fps controls" was pretty rad
23:58:29  <chrisdickinson>but having a few of those mixed into the latter workshop would be grand, and i think it would get people excited to take what they learned and build on it
23:58:34  <mikolalysenko>yeah
23:58:51  <mikolalysenko>I think somewhere in there we have to talk about clip coordinates
23:58:53  <chrisdickinson>re: the glslify tutorial, how would you go about integrating the vertex shader?
23:59:05  <mikolalysenko>just have them write two shaders
23:59:18  <chrisdickinson>ah, cool
23:59:29  <mikolalysenko>it might also be the right time to bring in clipping/transformations
23:59:50  <mikolalysenko>vertex shaders also introduce the concept of attributes and varying variables
23:59:56  <chrisdickinson>yep