00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:06:05  * timoxleyquit (Quit: Computer has gone to sleep.)
00:06:12  * CryptoQuickquit (Quit: CryptoQuick)
00:09:51  * ins0mniaquit (Ping timeout: 260 seconds)
00:18:08  * timoxleyjoined
00:19:12  <substack>isaacs: some people got it working on osx
00:19:21  <substack>dominictarr got it working
00:24:56  * dguttmanquit (Quit: dguttman)
00:40:21  * stlsaintjoined
00:45:45  * whatupderekjoined
00:48:47  * jxsonquit (Remote host closed the connection)
00:51:09  <isaacs>substack: weird.
00:56:15  * nicholas_joined
01:11:42  <Raynos>-> https://twitter.com/Raynos/status/317443889692815360
01:11:51  <Raynos>we need to get leveldb standardized and kill indexeddb
01:29:37  * defunctzombie_zzchanged nick to defunctzombie
01:33:42  * CryptoQuickjoined
01:36:01  * jxsonjoined
01:38:14  * thl0joined
01:38:25  <Raynos>I was just looking at the dart API for HTTP
01:38:26  * jxsonquit (Read error: Connection reset by peer)
01:38:26  <Raynos>http://www.dartlang.org/articles/io/#web-servers
01:38:32  * CryptoQuickquit (Client Quit)
01:38:34  <Raynos>and apart from the fact they use promises its really not that bad
01:38:54  * jxsonjoined
01:40:49  * jxsonquit (Read error: Connection reset by peer)
01:41:09  * jxsonjoined
01:41:31  * fallsemojoined
01:42:56  * jxsonquit (Remote host closed the connection)
01:59:31  * mikolalysenkojoined
02:03:43  * jibayquit (Remote host closed the connection)
02:07:27  <spion>yes, lets kill indexeddb
02:22:02  * spionquit (Ping timeout: 246 seconds)
02:34:36  * yorickquit (Remote host closed the connection)
02:37:15  * whatupderekquit (Quit: whatupderek)
02:45:27  <dools>substack: "mocking in test suites is confirmation bias by design" <-- you're saying that because it only tests expected, intentional behaviour, right?
02:48:12  * mikolalysenkoquit (Ping timeout: 264 seconds)
02:57:08  <Raynos>https://twitter.com/Raynos/status/317470401196343296
03:00:55  * marcello3djoined
03:03:20  * marcello3dquit (Remote host closed the connection)
03:04:18  * marcello3djoined
03:08:12  * thatguydanquit (Quit: thatguydan)
03:08:53  * marcello3dquit (Ping timeout: 255 seconds)
03:33:35  * evboguejoined
03:35:42  * thatguydanjoined
03:39:04  * thl0quit (Remote host closed the connection)
03:39:43  * saijanai_joined
03:40:46  * stlsaintquit (Quit: Lost terminal)
03:48:26  * evboguequit
03:52:25  * mikealjoined
03:53:33  * mikolalysenkojoined
03:58:23  * mikolalysenkoquit (Ping timeout: 255 seconds)
03:59:43  * mikealquit (Quit: Leaving.)
04:13:41  <Raynos>does anyone have a super easy way to spin up a chrome instance?
04:20:26  * jcrugzzquit (Ping timeout: 255 seconds)
04:22:04  * mirkokquit (Ping timeout: 256 seconds)
04:22:22  * mirkokjoined
04:22:48  * fallsemoquit (Quit: Leaving.)
04:37:00  * timoxleyquit (Quit: Computer has gone to sleep.)
04:43:27  <chrisdickinson>substack: is bouncy "sticky"? i.e., does it attempt to remember where a request was bounced to and always make that request bounce to the same place?
04:45:41  <chrisdickinson>ah ha
04:45:51  <chrisdickinson>chrome's reusing the connection, i think
04:46:56  * AvianFluquit (Remote host closed the connection)
05:02:01  * timoxleyjoined
05:45:38  * nicholas_quit (Read error: Connection reset by peer)
05:46:01  * nicholasfjoined
05:46:25  * nicholasfquit (Read error: Connection reset by peer)
05:46:53  * nicholasfjoined
05:51:06  * mikealjoined
06:35:52  * defunctzombiechanged nick to defunctzombie_zz
07:04:00  * timoxleyquit (Quit: Computer has gone to sleep.)
07:12:58  <jesusabdullah>https://github.com/dfeltey/C.js cool idea
07:13:06  <jesusabdullah>sounds like it's gonna be this dude's thesis so
07:23:34  * calvinfoquit (Ping timeout: 240 seconds)
07:23:43  <Raynos>I wrote a immutable hash thing https://github.com/Raynos/immutable-hash
07:23:54  <Raynos>turns out plain old objects are twice as fast :D
07:31:31  <jesusabdullah>surprise?
07:31:35  <jesusabdullah>(not really)
07:31:42  <jesusabdullah>oh man alcohol is fun
07:35:14  <Raynos>well
07:35:20  <Raynos>A Trie should be way faster
07:35:23  <Raynos>for larger objecs
07:35:27  <Raynos>just not for the small ones
07:37:42  <jesusabdullah>idk what that means
07:38:28  <Raynos>it means the overhead of immutable things is high for small things
07:38:34  <Raynos>but the overhead for larger structures it isnt as high
07:38:53  <jesusabdullah>sure
07:38:55  <Raynos>in fact it should be faster for larger structures! because it can share subsets
07:39:14  <jesusabdullah>so I guess what you would do is, choose some n for which you choose one over the other
07:39:35  <jesusabdullah>if you're going to treat it as immutable anyway and are mostly concerned about speed
07:39:51  <Raynos>interesting
07:40:01  <Raynos>I think first I need a massive test suite
07:40:12  <Raynos>then I can start tweaking it
07:40:46  <jesusabdullah>so wait what is your end goal here anyway raynos
07:41:22  <Raynos>efficient O(1) diff on data structures
07:41:44  <Raynos>which I do by having a `var newThing = thing.patch(diffStructure) && newThing.diff(thing) === diffStructure`
07:42:04  <Raynos>the other thing is making copying cheap memory-wise by using structural sharing
07:43:59  <jesusabdullah>what are you doing with it?
07:50:53  * thatguydanquit (Quit: thatguydan)
07:52:57  * ins0mniajoined
08:00:50  * nicholasfquit (Read error: Connection reset by peer)
08:01:14  * nicholasfjoined
08:01:38  <jesusabdullah>tanepiper: Sub's and my university was affiliated with HAARP
08:01:47  <jesusabdullah>tanepiper: >:)
08:24:38  <Raynos>jesusabdullah: efficient scene rendering
08:28:55  * thatguydanjoined
08:30:31  <jesusabdullah>I see
09:07:24  * ins0mniaquit (Ping timeout: 264 seconds)
09:11:20  * Raltquit (Remote host closed the connection)
09:11:53  * Raltjoined
10:54:48  * Nexxyquit (Ping timeout: 264 seconds)
10:55:28  * Nexxyjoined
11:00:22  * jibayjoined
11:08:46  * spionjoined
11:15:50  * AvianFlujoined
11:22:23  * ins0mniajoined
11:58:40  * nicholasfquit (Read error: Connection reset by peer)
11:59:37  * nicholasfjoined
12:36:06  * timoxleyjoined
12:39:36  * thl0joined
12:40:50  * thl0quit (Remote host closed the connection)
12:52:32  * mikolalysenkojoined
13:09:54  * thatguydanquit (Quit: thatguydan)
13:13:02  * fallsemojoined
13:24:53  * ins0mniaquit (Remote host closed the connection)
13:28:07  * ins0mniajoined
13:33:39  * defunctzombie_zzchanged nick to defunctzombie
13:39:47  * mikolalysenkoquit (Ping timeout: 255 seconds)
13:47:13  * yorickjoined
13:54:40  * timoxleyquit (Quit: Computer has gone to sleep.)
13:56:47  * ins0mniaquit (Ping timeout: 246 seconds)
14:05:02  * marcello3djoined
14:06:15  * thl0joined
14:09:09  * CryptoQuickjoined
14:21:38  * jibayquit (Quit: Leaving)
14:24:17  * AvianFluquit (Remote host closed the connection)
14:24:41  * mikolalysenkojoined
14:30:30  * timoxleyjoined
14:38:41  * rolnaabajoined
14:41:57  * rolnaabaquit (Read error: Connection reset by peer)
14:43:01  * rolnaabajoined
15:03:47  * jcrugzzjoined
15:15:05  * jibayjoined
15:18:18  * ins0mniajoined
15:19:04  <thl0>substack: defunctzombie is there a way to clear the browserify cache in order to force modules to be required fresh?
15:19:41  * nicholasfquit (Read error: Connection reset by peer)
15:20:03  * nicholasfjoined
15:30:40  * AvianFlujoined
15:38:29  * AvianFluquit (Remote host closed the connection)
15:42:58  * AvianFlujoined
15:43:06  * thl0quit (Remote host closed the connection)
15:43:44  * tmcwjoined
15:43:44  * mikealquit (Quit: Leaving.)
15:43:45  * thl0joined
15:45:25  * whatupderekjoined
15:48:02  * thl0quit (Ping timeout: 255 seconds)
15:54:03  * calvinfojoined
16:14:48  * mikealjoined
16:24:46  * kenperkinsquit (Quit: Computer has gone to sleep.)
16:30:10  * evboguejoined
16:34:27  * mikealquit (Quit: Leaving.)
16:35:27  * shamajoined
16:44:20  * ins0mniaquit (Ping timeout: 260 seconds)
17:03:29  * mikealjoined
17:05:33  * mikealquit (Client Quit)
17:08:06  * gwenbelljoined
17:16:35  * thl0_joined
17:21:04  * thl0_quit (Ping timeout: 258 seconds)
17:27:08  * spionquit (Ping timeout: 246 seconds)
17:28:28  * Domenic_joined
17:33:50  * thl0joined
17:36:34  <defunctzombie>thl0: browserify does not cache
17:36:45  <defunctzombie>thl0: each time you call bundle it does the bundle stuff again
17:37:09  <defunctzombie>unless something has recently changed
17:37:59  <thl0>defunctzombie: what about this then in the prelude: if(!cache[name]) { ...
17:38:21  <thl0>I checked it, it contains all previously required module in that cache
17:39:12  <thl0>defunctzombie: is there a chance that you guys merge a PR that allows disabling that cache -- I need it for proxyquireify?
17:43:24  <defunctzombie>thl0: browserify should not be caching so if that was merged I think that is a mistake
17:43:27  <defunctzombie>substack: ^
17:43:41  <defunctzombie>thl0: are you talking about the client side prelude?
17:43:46  <thl0>defunctzombie: I think you misunderstand --- YES
17:43:52  <defunctzombie>oh
17:44:27  <defunctzombie>thl0: yea, that isn't currently possible
17:44:28  <thl0>defunctzombie: want to be able to stub required deps and therefore need module under test to be required every time -- in order to inject new deps for each test
17:44:34  <defunctzombie>you can't hook into the require
17:44:45  <defunctzombie>I understand what you want to do
17:44:50  <defunctzombie>same as the 'mock' module
17:45:37  <thl0>defunctzombie: I'll cook up something and see if it is ok to be merged, otherwise I'll just do a hack to replace prelude in the bundle when using proxyquire
17:46:11  <thl0>defunctzombie: gotta go - lets talk later ;)
17:46:15  * thl0changed nick to thl0_zz
17:46:16  <defunctzombie>kk
17:46:24  * thl0_zzquit (Remote host closed the connection)
18:03:47  * gwenbellquit (Quit: Computer has gone to sleep.)
18:08:41  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
18:08:42  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
18:09:19  * thl0_zzjoined
18:09:24  * thl0_zzquit (Remote host closed the connection)
18:15:19  * mikealjoined
18:28:35  * evboguequit
18:31:05  * AvianFluquit (Remote host closed the connection)
18:34:41  * ins0mniajoined
18:36:31  * jcrugzzquit (Ping timeout: 264 seconds)
18:55:22  * nicholasfquit (Read error: Connection reset by peer)
18:55:49  * nicholasfjoined
19:15:24  * jxsonjoined
19:17:45  * thl0_zzjoined
19:39:43  * jcrugzzjoined
19:47:18  <thl0_zz>defunctzombie: so I got something that works by changing the prelude: https://github.com/thlorenz/proxyquireify/blob/master/example/bundle.mod.0.js#L9
19:47:23  * thl0_zzchanged nick to thl0
19:47:41  <thl0>defunctzombie: at this point an ugly hack, but could be improved
19:48:24  <thl0>defunctzombie: i.e. if I have a function i.e. __browserify__shouldUseCache(name) { }
20:05:28  * kenperkinsjoined
20:05:45  <substack>tanepiper: I had an ftp login on haarp servers for a space weather forecast system
20:06:26  <substack>chrisdickinson: browsers keep a connection alive so after the first request you can't do much to alter where the requests go from that point
20:07:11  <substack>dools: when you write mocks you are testing how you think the api *should* work in your head, not how it actually does
20:07:25  <substack>and tests should catch mistaken thinking, which mocks do not do
20:08:16  <thl0>substack: any chance something like this could get merged into browser-pack: https://github.com/thlorenz/proxyquireify/blob/master/example/bundle.mod.0.js#L12 ?
20:08:48  <thl0>substack: need to disable cache for certain modules to make proxyquireify work
20:09:20  * jxsonquit (Remote host closed the connection)
20:09:22  <substack>defunctzombie: please bump to 0.3.1 so I can <(echo 'source code') in browserify https://github.com/shtylman/node-browser-resolve/blob/master/package.json#L20
20:09:57  <substack>thl0: I would need a *REALLY* compelling use case to add that
20:10:08  <substack>so "no" unless you can be very persuasive
20:10:16  <thl0>substack: I understand, it's kind of a hack
20:11:12  <thl0>substack: the only use case that I have right now is to mock out dependencies for testing
20:11:13  <substack>see if you can get what you want to accomplish done by other means, like transforms
20:11:38  <thl0>substack: couldn't - transforms are involved already ;) -- can't get to the cache though
20:12:00  <thl0>substack: use case: require foo in one test and override bar one way -> run test
20:12:15  <thl0>then require foo in another test override bar another way
20:12:29  <thl0>if foo comes from cache, that new version of bar cannot be injected
20:12:48  <thl0>so test2 gets the same bar override as test one
20:13:33  <thl0>substack: convincing? -- otherwise I'll have to find a way (even worse hack) to replace the prelude on the fly for testing -- with my version
20:15:26  <substack>can't you just rewrite bar?
20:15:47  <substack>or use a brfs transform to fetch the bar source and Function() eval it
20:16:08  <thl0>substack: I want to bundle only once and run like 10 tests
20:16:17  <thl0>substack: for each I'd like to mock bar differently
20:16:31  <substack>I think there are much better ways to address your use case than adding support in browserify core
20:16:36  <thl0>so I cannot hardcode and override
20:16:42  <substack>maybe if what you are doing is hard you should step back and do something easy instead
20:16:43  <defunctzombie>substack: v0.1.1
20:16:47  <substack>defunctzombie: yay!
20:17:28  <thl0>substack: point taken and I kind of agree since this is a very special use case (although an important one for lots of people who like to use stubs during testing)
20:17:51  <thl0>substack: I'll try to make it work another way
20:18:34  <defunctzombie>thl0: fyi, for browser testing stuff you could use the browser field
20:18:35  <substack>thl0: I think my answer in a broad sense is "don't use stubs for testing"
20:18:42  <defunctzombie>thl0: it is there for a reason :)
20:19:04  <substack>that stubs are hard is something of a feature
20:19:12  <substack>a feature introduced by the absense of a feature
20:19:24  <thl0>defunctzombie: not sure how the browser field related to stub things
20:20:05  * AvianFlujoined
20:20:10  <defunctzombie>thl0: for testing?
20:20:12  <thl0>substack: stubs allow you to test things in isolation though, so if things break you know its your module, not the one you happen to also use in your tests
20:20:25  <defunctzombie>thl0: yea, could be tricky
20:20:49  <thl0>defunctzombie: substack: for now I'll do this 'prelude replace hack' and see how that goes
20:21:20  <thl0>should be quite simple since its minified to one line, just gotta replace that with my custom line ;)
20:21:29  <substack>I stand by my "don't have that problem in the first place" attitude
20:22:15  <thl0>substack: :) -- so then I should just delete the repo, however I know of people who want this
20:22:53  <thl0>I understand however why you wouldn't want to hack browser-pack for this
20:27:57  <defunctzombie>substack: thl0: it is a valid thing to do in some instances (external apis, etc).
20:28:02  <defunctzombie>you don't always have the ability to call against the "real thing" to do testing
20:28:22  <thl0>defunctzombie: substack: I think I got it I'll just find the prelude and overwrite it :)
20:28:25  <defunctzombie>or want to handle other types of test cases without invoking the real apis or such
20:28:31  <thl0>oh so dirty but simple ;)
20:29:20  <thl0>that way you get the normal prelude until you launch the tests -- I could even replace it with the original after the bundle is done
20:29:23  <substack>it should be dirty!
20:29:29  <thl0>substack: :)
20:29:36  <substack>dirtiness is just a reminder that what you're doing is hacky and wrong but sometimes that's ok
20:29:41  <substack>so long as you're upfront about it
20:30:03  <thl0>and in this case it is just to be used during testing, so ok I guess
20:34:41  <substack>now this works: browserify <(echo "console.log('beep boop')") | node
20:35:33  <thl0>substack: cool, it also helped a lot that I can just node a bundle for figuring these things out
20:36:29  <thl0>substack: also nice that tape runs in a vm -- https://github.com/thlorenz/proxyquireify/blob/master/test/run.js --> https://github.com/thlorenz/proxyquireify/blob/master/test/proxyquireify.js
20:39:46  * jxsonjoined
20:48:03  * jxsonquit (Ping timeout: 245 seconds)
20:49:41  * AvianFluquit (Remote host closed the connection)
20:51:00  * jan____quit (Quit: Terminated with extreme prejudice - dircproxy 1.0.5)
20:55:58  * jcrugzzquit (Ping timeout: 245 seconds)
21:00:12  * jcrugzzjoined
21:06:20  * jxsonjoined
21:14:29  <Raynos>substack: I think having a way to do mocking ala thl0 is useful
21:15:57  <thl0>Raynos: I agree with substack though that it is a bit too hacky to be in core: https://github.com/thlorenz/proxyquireify/blob/master/prelude-hack.js#L15
21:16:30  <thl0>right now working on an automatic prelude replace (with this hack) that you just run at the top of your test build script
21:16:45  <Raynos>thl0: we dont need that
21:16:50  <Raynos>we just need programattic access to the cache
21:17:06  <Raynos>just do `require.cache = cache` and nuke the cache
21:17:17  <thl0>Raynos: that could work as well I think
21:17:25  <Raynos>thats what I do with mock
21:17:32  <Raynos>as long as I have access to the cache i can make it work
21:17:47  <thl0>did the same with proxyquire
21:18:11  <thl0>except ended up not needing it since require extensions hit before the cache
21:18:42  <Raynos>as for like why we need mocking
21:18:48  <Raynos>its because I use `require` as an alternative to DI
21:18:52  <thl0>Raynos: will work on a poc that exposes cache and push that up and see if substack agrees with it
21:19:06  <thl0>unfortunately he is not the biggest fan of mocking ;)
21:19:12  <Raynos>maybe i should just build enterprise apps
21:19:18  <Raynos>mocking is only good for mocking out IO
21:19:21  <Raynos>not for mocking out stupid shit
21:19:34  <thl0>Raynos: yep as with any tool it has its good and bad uses
21:19:43  <Raynos>substack: the reason I want mocks is so that I can mock out XHR and run the tests on testling
21:19:43  * nicholasfquit (Read error: Connection reset by peer)
21:19:56  * nicholasfjoined
21:20:16  <Raynos>there are other ways to achieve the same effect that is not mocking but meh
21:20:51  <thl0>Raynos: where would I make the cache accessible ?
21:21:03  <thl0>just on the window i.e. browserify__cache?
21:21:28  <Raynos>thlorenze : https://github.com/thlorenz/proxyquireify/blob/master/prelude-hack.js#L32
21:21:36  <Raynos>that function (x) { ... }
21:21:48  <Raynos>is the file local require function
21:21:52  <substack>Raynos: just bug us more so we implement proper server start/stop
21:21:52  <Raynos>so put cache on that
21:21:59  <substack>ALSO!
21:22:17  <Raynos>substack: mocking out XHR is way easier then setting up a real XHR test server
21:22:29  <substack>Raynos: I disagree.
21:22:44  <substack>tooling can make real xhr easier
21:22:49  <substack>it just hasn't been written yet
21:22:54  <Raynos>tru dat
21:23:05  <Raynos>but mocking out xhr worked in browserify 1.x :D
21:23:16  <Raynos>i've already written the mock module
21:23:19  <thl0>Raynos: substack: this version adds only one hack line: https://github.com/thlorenz/proxyquireify/blob/master/prelude-hack.js#L35
21:23:33  <substack>it should be harder to write mocks
21:23:36  <substack>mocks are a bad idea
21:23:54  <substack>interrogate reality instead
21:24:01  <substack>reality is counter-intuitive
21:24:09  <Raynos>substack: thats like saying unit tests are a bad idea
21:24:13  <Raynos>write systems tests instead
21:24:14  <defunctzombie>substack: sometimes it is not possible
21:24:26  <defunctzombie>mocks are an idea that needs to be used cafeully
21:24:31  <defunctzombie>but they are by no means a bad idea
21:24:42  <Raynos>substack: Like I said, write tests for https://github.com/substack/xhr-write-stream
21:24:43  <thl0>Raynos: each module gets its own require, but the cache needs to be global
21:24:43  <substack>mocks certainly have their domain of applicability
21:24:51  <substack>I'm just arguing for a much smaller domain of applicability
21:25:03  <substack>xhr should not be mocked if we can get around that with tooling for instance
21:25:17  <Raynos>i dont mind not mocking out serverside databases or file systems
21:25:28  <Raynos>because its trivial to setup the db / fs in the correct state in the serverside tests
21:25:34  <Raynos>you cant set up a HTTP server in a clientside test
21:25:42  <substack>YET
21:25:46  <Raynos>which means you need like this seperate ghetto thing
21:25:47  <substack>actually of course you can
21:25:58  <substack>it's always been possible, it's just not yet been made trivial
21:25:59  <Raynos>not in the client side test code
21:26:22  <Raynos>you need a seperate program
21:26:28  <Raynos>your tests become two programs instead of one
21:26:42  <substack>who cares
21:26:52  <Raynos>substack: idea! `testling.spawn("script", cb)` in client side tests
21:27:15  <substack>better: write a 3rd program that unifies the 2 programs
21:27:29  <substack>a -> [ b, c ]
21:27:39  <thl0>substack: also you can only do true top down development if you can stub something you haven't implemented yet
21:28:16  <thl0>substack: that way you figure out what it needs to do and what the best API is before you start actually writing it
21:28:25  <Raynos>https://gist.github.com/Raynos/bf090650dd7b160272d5
21:28:44  <defunctzombie>practical question for you folks that do deployment
21:28:55  <defunctzombie>where do you put your db passwords?
21:28:59  <defunctzombie>config files or env vars?
21:29:09  <Raynos>substack: I would prefer that ^^ over a server field in package.json
21:29:30  * tmcwquit (Remote host closed the connection)
21:29:44  <thl0>Raynos: that require you talked about is not always there btw -- see: var previousRequire = typeof require == "function" && require;
21:29:47  <Raynos>defunctzombie: private github repo called config
21:29:59  <substack>thl0: "don't do top-down development"
21:29:59  <Raynos>dependencies: { "config": "ssh github uri" }
21:30:01  <substack>obviously.
21:30:02  <Raynos>require("config")
21:30:02  <defunctzombie>Raynos: substack: that testling api is interesting approach
21:30:09  <thl0>and the 'newRequire' is not accessible outside
21:30:23  <thl0>substack: why not?
21:30:24  <defunctzombie>Raynos: yea, that isn't gonna fly for me :/
21:30:34  <defunctzombie>wondering if anyone is using env vars in an interesting way
21:30:36  <Raynos>defunctzombie: why not ?
21:30:44  <Raynos>all you need
21:30:48  <defunctzombie>Raynos: I am not putting production database passwords on github
21:30:50  <Raynos>is a config module in a tarball
21:30:53  <Raynos>at an ssh uri
21:31:01  <substack>thl0: you can only make definitive statements at the bottom-up, where you isolate confounding factors. scientific method experimental design style
21:31:07  <Raynos>well git+ssh uri :D
21:31:11  <Raynos>put it wherever you want
21:31:16  <Raynos>upload it to your private npm
21:31:32  <defunctzombie>why is that better than env vars?
21:31:41  <substack>you've got to reason your way up on the shoulders of reliable independent tested components
21:32:08  <thl0>substack: interesting maybe for apps this is a bit different -- i.e. you shouldn't worry about the database in order to start prototypeing it
21:32:32  <thl0>i.e. you'd mock the bottom layers out until you see what you actually need
21:32:44  <substack>or just don't even have a database until you put that in
21:33:09  <substack>you don't need to "mock" anything, just store everything in a var data = {} until you implement persistence
21:33:23  <Raynos>hij1nx, rvagg, dominictarr: how hard would it be to fork chromium and expose levelup as a global object and rip out all of the IndexedDB noise?
21:33:25  <substack>typically the framing of the problem is completely backwards
21:33:31  <thl0>substack: without stubs you end up running integration tests instead of unit tests though
21:33:42  <substack>people think they "need a database" but they ACTUALLY need data persistence
21:33:43  <Raynos>defunctzombie: because it's a file that I can git push
21:33:55  <Raynos>defunctzombie: when config thigns change I check them in and git push again
21:33:56  <thl0>i.e. if any part is not working the test of the unit fails (although that might be working fine itself)
21:33:58  <substack>because the state of your program will get wiped when your program restarts
21:34:05  <substack>and then later as your data grows not all of it fits in memory
21:34:15  <Raynos>thl0: I just use a funny database :p
21:34:22  <defunctzombie>Raynos: that just isn't going to happen with my production passwords tho :/
21:34:29  <defunctzombie>certainly not to github
21:34:32  <thl0>ok - database may have been bad example
21:34:33  <defunctzombie>maybe to a private git server
21:34:40  <substack>thl0: I'm not convinced that those ideas actually mean anything
21:34:48  <substack>"integration tests" versus "unit tests"
21:34:54  <thl0>substack: they do to me
21:34:54  <substack>I reject this characterization.
21:35:02  <Raynos>thl0: https://gist.github.com/Raynos/4846f985289eeac51e11
21:35:02  <substack>"tests"
21:35:09  <thl0>especially if it allows me to find whats wrong much faster
21:35:13  <Raynos>When I dont want a databases I just replicate state over scuttlebutt p2p without servers
21:35:17  <Raynos>great for prototypes
21:35:17  <substack>tests are just programs that verify the correctness of your program
21:35:19  <thl0>since it could only be in that Unit
21:35:49  <substack>I don't know what a "unit" is
21:35:59  <Raynos>substack: its not "integration test" versus "unit test"
21:36:04  <Raynos>its "slow test" vs "fast test"
21:36:10  <thl0>substack: a piece of your app that has functionality
21:36:18  <Raynos>substack: a Unit is a package
21:36:25  <thl0>Raynos: what is that link you put there?
21:36:39  <substack>Raynos: MUCH more useful way of framing it
21:36:45  <substack>BUT
21:36:51  <substack>spinning up an http server with node is pretty fast
21:37:10  <substack>likewise for databases like levedb or setting up the fs with some files
21:37:13  <Raynos>thl0: thats how I write multi-user stateful front end apps without a backend :P
21:37:21  <Raynos>im saying you can write a fake database in a 100 lines of code
21:37:27  <substack>Raynos: tweet that so I can RT
21:37:29  <Raynos>you dont need no stinking mocks
21:37:34  <thl0>Raynos: ah
21:37:42  <substack>how it's not integration vs unit, it's fast vs slow
21:38:23  <substack>in that context
21:38:26  <substack>mocks are "giving up"
21:38:30  <substack>because you've FAILED
21:38:38  <substack>to make a slow thing fast
21:38:42  <Raynos>not true
21:38:46  <substack>and you should feel bad
21:38:52  <Raynos>mocks are "dear god. its too hard to set up the environment for some reason"
21:39:02  <Raynos>like on testling its a pain in the ass to setup a server environment
21:39:04  <substack>also that
21:39:06  <Raynos>its the easy way out :D
21:39:10  <Raynos>substack: also mocking time
21:39:18  <substack>Raynos: so we'll make it easy to setup a server environment!
21:39:25  <substack>oh IDEA
21:39:38  <Raynos>substack: https://github.com/Colingo/time-mock
21:39:51  <substack>if the server can host up the js tests then the js can run on the server itself
21:39:59  <Raynos>the ability to fake out timers and advance time by seconds or minutes allows for testing time based code without waiting minutes
21:40:15  <substack>Raynos: that's a valid use
21:40:20  <Raynos>substack: https://twitter.com/Raynos/status/317752592463720448
21:40:22  <thl0>Raynos: btw - the expose cache solution isn't working if I just want to delete one module since I know what its name is in the cache
21:40:32  <substack>but the domain of applicability of mocks is HUGELY overstated
21:40:56  <Raynos>substack: agreed, but note that my time-mock thing says "if your module require("timers") then ill replace that with fake time"
21:41:06  <Raynos>which is where mocking by intercepting require is super useful
21:41:14  <Raynos>because you can just do it without making code weird
21:42:29  <substack>I last recharged my laptop at the hotel this morning, used it at the airport and the plane without plugging in, have been at this cafe for 2 hours without plugging in
21:42:34  <substack>51 minutes left :D
21:45:01  <thl0>substack: just enough to merge my prelude hack --- just kidding :P
21:45:56  <thl0>Raynos: I'll go with my simple hack for now - tricky part is that it has to run before browserify is required
21:46:18  <Raynos>I think just having `require.cache` work is the simplest
21:46:19  <Raynos>:P
21:47:57  <thl0>Raynos: then we'd also need a require.resolve
21:48:05  <Raynos>why?
21:48:16  <thl0>so we could know the name to remove from the cache
21:48:23  <Raynos>oh right lawl
21:48:49  <Raynos>maybe only make it work for node_modules :D
21:48:59  <Raynos>want to mock out local files? fuck you. l2npm
21:49:07  <thl0>:)
21:49:40  <thl0>Raynos: I kind of see this as similar to node not merging stuff, but instead keeping things in userland
21:50:03  <thl0>if I can figure out how to overwrite the prelude for these cases we can keep it out of browserify core
21:50:03  <substack>no.js
21:54:53  <Raynos>substack: y u no say no to coffeescript ;_;
21:55:21  <substack>Raynos: where?
21:55:25  <substack>oh haha
21:55:28  <thl0>Raynos: funny to see this tweet from the same guy who as that proxyquire issue ;)
21:55:53  <substack>Raynos: I DID remove coffeescript from core, remember
21:55:59  <thl0>'make work with browserify' ^^
21:56:00  <Raynos>thl0: Dude!
21:56:09  <Raynos>you cant hold anything I said 6 months against me
21:56:15  <thl0>:)
21:56:16  <substack>and now we have robust transforms with source maps as a result
21:56:17  <Raynos>the me from 6 months ago is a total noob
21:56:20  <Raynos>he did all the things wrong!
21:57:38  * shamaquit (Remote host closed the connection)
21:57:55  * marcello3dquit (Remote host closed the connection)
22:02:24  <FireFly>That's me, always
22:02:59  <FireFly>Old self always wrote horrible code, even if it was just a few months ago >.>
22:05:54  <Raynos>what do you mean months
22:05:56  * evboguejoined
22:06:00  <Raynos>my code from 2 weeks ago is a disaster
22:08:00  * timoxleyquit (Quit: Computer has gone to sleep.)
22:09:53  <evbogue>Raynos: it was my fault.
22:13:30  * marcello3djoined
22:18:01  * marcello3dquit (Remote host closed the connection)
22:18:54  * marcello3djoined
22:24:13  * marcello3dquit (Ping timeout: 240 seconds)
22:37:39  * tilgovijoined
22:39:33  * timoxleyjoined
22:45:11  <dools>substack: 07:07 < substack> dools: when you write mocks you are testing how you think the api *should* work in your head, not how it actually does <-- agreed, but that's only a problem if you assume that the role of automated testing is to help you produce bug free code and/or find bugs in your code
22:47:10  <Raynos>Man we need something like microjs
22:47:15  <Raynos>but isntead of the <5k & no deps
22:47:26  <Raynos>it should be 1 file, <200loc & a single function export
22:48:59  <substack>Raynos: instead, I want a site that lets people create "frameworks" that don't have any code, they are just collections of modules that work well together
22:49:12  <Raynos>oh I see
22:49:15  <Raynos>thats cool too
22:49:25  <substack>farming out the "marketing department" side of frameworks
22:49:40  <substack>anarco-syndicalism basically
22:49:40  <mbalho>substack: yea a site where you share your favorite favorite groups of modules
22:49:49  <mbalho>modulefarm.com
22:49:50  <substack>mbalho: yep!
22:49:55  <mbalho>GROW YOUR KNOWLEDGE
22:50:03  <substack>mbalho: reg it
22:50:56  <substack>the module farm page could list the modules, show a simple example, and list full-featured example apps written using the modules described
22:52:00  <substack>like for git blogging I could do one showing how to use glog, ecstatic, and hyperstream to build a git-push to blog site like substack.net and browserify.org
22:54:31  * thatguydanjoined
23:02:54  <mbalho>http://modulefarm.com/
23:05:25  <jesusabdullah>max those are cats not modules
23:05:27  * st_lukejoined
23:05:31  <jesusabdullah>hello st_luke
23:05:36  <st_luke>yo
23:05:44  <mbalho>jesusabdullah: oh oops
23:07:25  <jesusabdullah>ugh why do I feel like crap this is bullshit I caught this cold like 2 weeks ago
23:07:59  <jesusabdullah>I have shit to do
23:08:16  <substack>mbalho: it should be a git server that updates when anybody pushes their farms at it
23:08:19  * defunctzombiechanged nick to defunctzombie_zz
23:08:34  <substack>I'll help write this once I finish some other stuff in my queue.
23:09:10  <mbalho>substack: it already is, its called github.com
23:10:03  <jesusabdullah>so, gridhub api
23:10:07  <jesusabdullah>grithub*
23:11:05  <jesusabdullah>wtf this instant oatmeal tastes nothing like bananas
23:14:01  * thl0quit (Remote host closed the connection)
23:15:01  <substack>mbalho: but then people need to send pull reqs, which requires human approval :/
23:15:18  <substack>which is probably fine to start with of course
23:15:41  <jesusabdullah>nonono, you let people hook their github repos to the modulefarm w/ the push api
23:15:55  <mbalho>substack: yea exactly
23:16:37  <substack>has anybody written a bash -> js transpiler yet?
23:18:34  <mbalho>lulz
23:19:34  * Domenic_quit (Ping timeout: 246 seconds)
23:20:31  <mikolalysenko>I wonder how hard that would actually be...
23:20:41  <mikolalysenko>also it could be useful for getting node apps working on windows
23:28:03  <mbalho>http://www.kendoui.com/blogs/teamblog/posts/13-03-28/what-is-the-point-of-promises.aspx " problem here that also existed in the old callback example that I didn't mention yet: dependency and reusability."
23:28:47  <mbalho>too bad it uses contrived examples
23:30:08  * stlsaintjoined
23:31:12  <st_luke>can't believe the only thai restaurant I go to in the entire city is closed for a holiday they don't even celebrate in thailand
23:31:50  <mikolalysenko>it is a holiday?
23:32:03  <st_luke>yeah I guess it's easter for the whole weekend starting today
23:32:08  <st_luke>and it's also passover I heard
23:32:13  <mikolalysenko>oh, right
23:33:42  <substack>zombie jesus day?
23:34:23  <mikolalysenko>man, I need to go outside more...
23:34:39  <jesusabdullah>yeah maybe
23:34:40  <mikolalysenko>I've just been sitting here eating kale and sriracha sauce
23:34:48  <mikolalysenko>which is probably killing me slowly...
23:34:48  <mbalho>i just ate srirache
23:34:58  <mbalho>on top of a taco though
23:35:02  <mbalho>which gives me vitality
23:35:03  <mbalho>and strength
23:35:08  <mikolalysenko>no tacos in indiana
23:35:19  <mikolalysenko>only hillbillies and meth labs
23:35:27  <mbalho>you could buy a tortilla press and a bunch of masa harina flour
23:36:03  <mikolalysenko>that sounds very complicated
23:36:14  <mbalho>hahaha from the math phd
23:36:53  <mikolalysenko>man, I once went on a raw food diet for a few months just because I was too lazy to cook
23:37:13  <mbalho>i can sympathize, why do you think i have a beard
23:37:33  <mikolalysenko>hahah, good point
23:37:48  <mikolalysenko>though it makes you look dignified, if I try to grow facial hair I just get a moustache
23:38:01  <mikolalysenko>and then my girlfriend makes me shave it off...
23:45:46  <jesusabdullah>mikolalysenko: time to open a meth tacos truck
23:46:25  <mikolalysenko>jesusabdullah: what a fantastic business idea!
23:48:51  * mikealquit (Quit: Leaving.)
23:50:24  * fallsemoquit (Quit: Leaving.)
23:51:26  * fallsemojoined
23:53:23  <st_luke>saw some guy with a curly mustache on the subway today
23:57:00  * thl0joined
23:59:07  * CryptoQuickquit (Quit: CryptoQuick)
23:59:24  * thl0quit (Remote host closed the connection)
23:59:45  * CryptoQuickjoined