00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:05:35  <defunctzombie>Raynos: that might become a reality haha
00:05:58  <defunctzombie>I have been interviewing with google and they might fly me out to SF for on site soon
00:06:27  * mikealquit (Quit: Leaving.)
00:07:27  <st_luke>defunctzombie: nice!
00:07:42  <defunctzombie>st_luke: you still in nyc?
00:08:00  <st_luke>defunctzombie: yea
00:08:07  <defunctzombie>we should hang next week
00:08:08  <st_luke>but i want to do some traveling soon
00:08:11  <st_luke>for sure
00:08:20  <st_luke>especially if you're moving to SF
00:08:28  <defunctzombie>you can tell me about your new "job" :)
00:08:39  <st_luke>JOB
00:19:06  <substack>defunctzombie: totes
00:19:39  <substack>defunctzombie: fair warning how far SF is from mountain view though
00:19:52  <defunctzombie>substack: so I am told haha
00:20:02  <substack>suburban office park land
00:20:33  <st_luke>defunctzombie: would you move out there or work from an nyc location?
00:20:45  <substack>and the crazy part is how there are abandoned factories a 10 minute train ride from downtown SF in oakland
00:20:57  <defunctzombie>not sure yet, will depend on what is offered :/ I really like NYC
00:26:50  <Raynos>FIND AND FIX ALL THE THINGS
00:26:51  <LOUDBOT>I CANNOT SAY I AM SURPRISED
00:26:58  <Raynos>defunctzombie: nice!
00:28:04  <st_luke>defunctzombie: if you end up working there you can be the guy that gets them to start switching everything over to node
00:28:47  * cianomaidinpart
00:29:10  <defunctzombie>st_luke: hahaha, yea... I have a hard time seeing that happen :D
00:29:22  <st_luke>or i mean java is pretty cool too
00:29:51  <defunctzombie>I will not do java
00:30:44  <st_luke>haha make sure you tell them that
00:31:13  <defunctzombie>oh I will
00:32:58  <Raynos>defunctzombie: even if you dont do java, their javascript looks the same as the java
00:33:13  <defunctzombie>haha
00:33:23  <st_luke>Raynos: that's what's kept me away from a lot of companies in nyc that do a lot of JS
00:33:38  <Raynos>If I'm going to do javascript
00:33:39  <st_luke>they use these crazy unfortunate super extreme inheritance frameworks
00:33:47  <Raynos>It will be a) pure functional and b) absolutely modular
00:34:01  <st_luke>(not google, dunno what they use, but the other companies that reached out to me in nyc)
00:34:16  <Raynos>st_luke: where do you work now? With domenic?
00:34:17  <CoverSlide>google uses a ton of java, python, and C++
00:34:25  <CoverSlide>and JS too, i guess
00:34:32  <defunctzombie>yea, they have everything
00:34:36  <defunctzombie>they are a big place
00:34:39  <st_luke>Raynos: I'm technically still unemployed until monday
00:34:40  <defunctzombie>really depends on team
00:34:41  <CoverSlide>not sure if they have ocaml
00:34:48  <st_luke>*intentionally* unemployed
00:34:50  <defunctzombie>probably somewhere
00:35:45  <st_luke>yea google is so big that there are probably a lot of cool things going on that we don't even know about
00:36:36  <CoverSlide>their webservers run on INTERCAL
00:36:40  * mikealjoined
00:47:21  * intabulasjoined
00:48:52  * thatguydanjoined
00:59:18  * niixquit (Remote host closed the connection)
01:03:08  * huntertrjoined
01:04:50  <Raynos>isaacs: npm installs devDependencies of one of my module's examples :/ my node_modules tree is a cluster fuck. shouldn't npm i only install dependencies of actual packages?
01:06:25  <defunctzombie>Raynos: it will install both unless production = true
01:06:29  <defunctzombie>npm config option
01:06:33  <Raynos>Really?
01:06:38  <Raynos>Well yes agreed
01:06:48  <Raynos>but why does it install the deve dependencies of my dependencies
01:06:56  <Raynos>I want `npm i` to install devDeps in my package.json
01:07:02  <Raynos>but not the devDeps of all the other deps
01:07:12  <Raynos>it shouldnt install all devDeps recursively that's insane.
01:07:28  <isaacs>defunctzombie: no, that's not true
01:07:32  <isaacs>Raynos: it doesn't do that.
01:07:35  <defunctzombie>isn't it?
01:07:39  <Raynos>it does
01:07:44  <isaacs>Raynos: it installs dev deps at the first level only by default, unless you specify --dev
01:07:56  <Raynos> create mode 100644 node_modules/colingo-chat/node_modules/hidden/examples/simple/node_modules/wr/node_modules/charm/index.js
01:07:56  <isaacs>Raynos: test case or gtfo
01:08:12  <defunctzombie>isaacs: I thought production = true will not install any dev deps
01:08:15  <defunctzombie>I remember reading that
01:08:23  <Raynos>https://github.com/Colingo/hidden/blob/master/examples/simple/package.json#L9
01:08:25  <defunctzombie>maybe not
01:08:44  <defunctzombie>isaacs: https://npmjs.org/doc/config.html
01:08:49  <defunctzombie>on this page under production
01:08:56  <isaacs>production=true -> dont' install any dev deps, even in the first level
01:09:00  <defunctzombie>correct
01:09:05  <defunctzombie>isn't that what I said?
01:09:10  <isaacs>defunctzombie: raynos is saying that it's installing devdeps recursively
01:09:16  <defunctzombie>oh, sorry
01:10:02  <Raynos>isaacs: I'll get a test case, sec.
01:10:19  <isaacs>Raynos: yeah, it installs the dev deps when you `npm i` there, because it installs them at the first levle
01:11:11  <isaacs>Raynos: https://gist.github.com/4695409
01:11:16  <Raynos>well but look at the create mode message above, its like 4 levels deep
01:11:34  <isaacs>Raynos: ok
01:11:38  * st_lukequit (Remote host closed the connection)
01:11:50  <isaacs>Raynos: i don't really know how you got there.
01:11:54  <isaacs>but npm didn't put that there
01:12:03  <Raynos>:(
01:12:11  <isaacs>unless you'd installed in (maybe?) node_modules/colingo-chat/node_modules/hidden/examples/simple/
01:12:20  <isaacs>npm never creates node_modules/*/*/node_modules
01:12:29  <isaacs>it only ever creates node_modules/*/node_modules
01:12:43  <isaacs>so that hidden/examples/simple <-- not from runnig npm i at the top level
01:12:45  <isaacs>guaranteed
01:12:56  <isaacs>maybe install scripts are to blame.
01:13:06  <isaacs>FUCK INSTALL SCRIPTS IN PACKAGE.JSON. FUCK THEM RIGHT IN THE EAR.
01:13:06  <LOUDBOT>I HAVE RELOCATED ONE OF YOUR DISCS, DO NOT ATTEMPT TO STAND UNTIL SOMEONE RETRIEVES IT FOR YOU.
01:13:09  <Raynos>maybe
01:13:15  <isaacs>they are ALWAYS wrong.
01:13:30  <isaacs>i haven't seen even a single example where they were anything but bad solutions to non-problems.
01:13:49  * CoverSlide&
01:13:49  <LOUDBOT>YOU MUST LOVE ME EXACTLY AS I LOVE YOU
01:14:00  * blakmatrix1joined
01:14:24  <fotoverite>isaacs: I think it's more that people are misusing them then install scripts === wrong
01:16:37  <isaacs>fotoverite: you shouldn't give people APIs where use === misuse
01:16:46  <isaacs>that's just blaming the victim
01:16:48  <Raynos>isaacs: I'm building a reproduction case and the bug dissappears
01:16:50  <Raynos>fuck all the things
01:17:05  <fotoverite>Well that's because people don;t know better
01:17:18  <fotoverite>I mean you could misuse anything just look at turbolinks
01:17:23  <fotoverite>jquery.turbolinks
01:17:30  <fotoverite>Ugh my head over that one.
01:28:36  <Raynos>isaacs: https://gist.github.com/89d8656d83c3e84d6c5d
01:28:54  <defunctzombie>isaacs: :D
01:29:22  <Raynos>Ok so hidden is fucked :/
01:29:31  <isaacs>Raynos: looks like it's just bundling some deps of its examples.
01:29:34  <isaacs>not much to be done about that :)
01:29:52  <isaacs>echo node_modules/*/examples >> .gitignore perhaps?
01:36:25  * alunnyquit (Ping timeout: 246 seconds)
01:38:51  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
01:45:37  * alunnyjoined
01:55:05  <substack>I really hate util.inspect()
01:55:25  <substack>just give me all the data >_<
02:04:05  * jlordquit (Quit: jlord)
02:07:44  <defunctzombie>substack: you should hate the entire util module :D
02:07:46  <defunctzombie>isaacs: https://gist.github.com/4695723
02:13:44  <Raynos>isaacs: why is it bundling them?
02:13:55  <Raynos>isaacs: can't the npm bundler not bundle anything called node_modules?
02:14:43  * thatguydanquit (Ping timeout: 245 seconds)
02:14:44  <Raynos>also that folder has a local .gitignore that says "dont check node_modules in" https://github.com/Colingo/hidden/blob/master/examples/simple/.gitignore
02:14:50  <Raynos>isaacs: can it respect that file ^
02:23:05  * thatguydanjoined
02:23:31  <isaacs>Raynos: npm doesn't ever ignore node_modules folders
02:23:41  <isaacs>Raynos: if it did, a lot of packages wouldn't work when they're added to git.
02:23:58  <isaacs>Raynos: ie, npm install foo; git add node_modules; git ci -m "check in mah deps!"
02:24:15  <isaacs>Raynos: if foo has a .gitignore with node_modules, then you didn't check in your deps, really
02:30:19  <Raynos>i see
02:32:02  * thatguydan_joined
02:33:14  * thatguydanquit (Ping timeout: 252 seconds)
02:33:14  * thatguydan_changed nick to thatguydan
02:37:40  * alunnyquit (Ping timeout: 248 seconds)
02:41:26  * wiwilliaquit (Ping timeout: 252 seconds)
02:57:34  <defunctzombie>isaacs: I verified the above behavior btw and indeed running npm install after removing a top level dep does nothing
02:58:21  <defunctzombie>unless there is caching elsewhere, it appears that npm install just doesn't recurse to check installed deps after initial install
03:01:24  * jlordjoined
03:02:01  <isaacs>defunctzombie: https://gist.github.com/4695951
03:02:06  <isaacs>defunctzombie: you mean like that?
03:02:20  <isaacs>defunctzombie: it doesn't check that the meta-deps are installed.
03:02:25  <isaacs>but why are you monkeying around with those?
03:02:35  <isaacs>it definitely does look for missing things in node_modules/*
03:04:55  <defunctzombie>isaacs:
03:05:02  <defunctzombie>so the setup was this
03:05:08  <defunctzombie>connect was installed manually
03:05:17  <defunctzombie>then express was added to package.json
03:05:22  <defunctzombie>npm install ran and installed express
03:05:28  <defunctzombie>but not connect since that was installed
03:05:32  <defunctzombie>then when connect was removed
03:05:34  <defunctzombie>npm install
03:05:39  <defunctzombie>does not fix the problem
03:05:45  <defunctzombie>which is that you are missing connect
03:05:51  <defunctzombie>isaacs: https://gist.github.com/4695723
03:05:58  <defunctzombie>this reproduces it
03:06:25  <defunctzombie>the question is not why are you mucking with those, the question is why doesn't npm install fix the unmet dependency problem?
03:06:36  <defunctzombie>npm ls clearly lists the dep as unmet but npm install will not install it
03:06:44  <defunctzombie>the user is now left with a broken tree
03:06:52  <defunctzombie>with no clear reason why "npm install" isn't fixing it
03:13:46  * paul_irishquit (Ping timeout: 245 seconds)
03:29:28  * jlordquit (Quit: jlord)
03:39:50  * alunnyjoined
03:40:34  * jlordjoined
03:49:08  * tphummelquit (Quit: tphummel)
03:50:23  * dominictarrjoined
03:51:06  * alunnyquit (Ping timeout: 240 seconds)
03:53:27  * dominictarrquit (Client Quit)
03:53:28  * defunctzombiechanged nick to defunctzombie_zz
03:55:06  * defunctzombie_zzchanged nick to defunctzombie
04:13:21  * thatguydanquit (Quit: thatguydan)
04:15:40  * thatguydanjoined
04:16:34  * thatguydanquit (Remote host closed the connection)
04:16:46  * thatguydanjoined
04:28:50  * jlordquit (Quit: jlord)
05:06:10  <isaacs>defunctzombie: i see. so you want npm to install 2nd-order deps?
05:06:14  <isaacs>if they're missing?
05:06:26  <isaacs>fair request. patch welcome. at the very least, you should post an issue.
05:06:37  <isaacs>defunctzombie: it's safe to say that i'll forget all about this within the hour
05:07:11  <defunctzombie>isaacs: :D
05:07:27  <defunctzombie>yea, npm install should make the tree "correct"
05:07:40  <defunctzombie>only seems to make sense given that npm ls tells you what is unmet
05:07:47  <defunctzombie>isaacs: I will open an issue
05:07:55  <defunctzombie>so I can reference it
05:10:37  <defunctzombie>isaacs: ideally I would like npm to install all order deps, recursively :)
05:10:47  <isaacs>defunctzombie: sure
05:10:57  <defunctzombie>I will phrase the ticket like that
05:16:52  <defunctzombie>isaacs: https://github.com/isaacs/npm/issues/3124
05:16:56  <defunctzombie>hope that makes sense
05:20:50  * thatguydan_joined
05:22:56  * thatguydanquit (Ping timeout: 245 seconds)
05:22:57  * thatguydan_changed nick to thatguydan
05:24:14  * defunctzombiechanged nick to defunctzombie_zz
05:36:46  <substack>spin out the functionality as npm-fixit then add that as a dependency to npm
05:44:53  * dguttmanquit (Quit: dguttman)
05:46:19  * dguttmanjoined
05:51:52  * thatguydanquit (Remote host closed the connection)
05:52:02  * blakmatrix1part
05:52:04  * thatguydanjoined
06:01:22  * dguttmanquit (Quit: dguttman)
06:17:43  * intabulasquit (Read error: Connection reset by peer)
06:17:55  * intabulasjoined
07:40:24  * shamaquit (Quit: shama)
07:47:39  * alunnyjoined
07:52:18  * alunnyquit (Ping timeout: 264 seconds)
08:01:56  * mikealquit (Read error: Connection reset by peer)
08:04:37  * mikealjoined
08:05:18  * mikealquit (Client Quit)
08:11:55  * mikealjoined
08:39:22  <juliangruber> /away
08:39:57  <juliangruber>jo guyse, I'm at Firefox OS app days in berlin. Any suggestions for cool stuff to try / ask?
09:00:45  * dominictarrjoined
09:19:48  * dominictarrquit (Quit: dominictarr)
09:38:24  * huntertrquit (Quit: huntertr)
10:35:56  <juliangruber> clear
10:36:28  <juliangruber>substack: are you using propagit in production? I'm a little worried of processes being direct childs of a drone
10:37:32  <juliangruber>substack: Ideally there'd only be simple process the parent, that captures stdout and stderr, automatically restarts and exposes kill/restart over dnode
10:39:00  <juliangruber>substack: that would send everything to the drone, so the drone can be killed anytime and processes keep running and are "reattached" when the drone starts again
10:40:20  <juliangruber>substack: I already got it working, I could integrate that into propagit
10:55:51  * mirkokjoined
11:10:16  * ins0mniajoined
11:10:46  * mirkokquit (Quit: mirkok)
11:15:19  * ins0mniaquit (Ping timeout: 246 seconds)
11:50:32  * thatguydan_joined
11:54:11  * thatguydanquit (Ping timeout: 245 seconds)
11:54:12  * thatguydan_changed nick to thatguydan
12:11:12  * mirkokjoined
12:25:01  * fotoverite_joined
12:26:17  * fotoveritequit (Ping timeout: 256 seconds)
12:26:17  * fotoverite_changed nick to fotoverite
12:42:48  * thatguydanquit (Remote host closed the connection)
12:43:02  * thatguydanjoined
12:50:38  * yorickjoined
12:50:38  * yorickquit (Changing host)
12:50:38  * yorickjoined
12:54:16  * mirkokquit (Quit: mirkok)
13:10:57  * defunctzombie_zzchanged nick to defunctzombie
13:12:28  * defunctzombiechanged nick to defunctzombie_zz
13:12:55  * defunctzombie_zzchanged nick to defunctzombie
13:13:42  * ins0mniajoined
13:14:29  * ins0mniaquit (Remote host closed the connection)
13:16:08  * defunctzombiechanged nick to defunctzombie_zz
13:19:58  * thatguydanquit (Quit: thatguydan)
13:20:49  * thatguydanjoined
13:34:05  * ralphtheninjaquit (Ping timeout: 240 seconds)
13:36:44  * intabulasquit (Remote host closed the connection)
13:37:35  * intabulasjoined
13:37:40  * mirkokjoined
13:58:01  * thatguydanquit (Quit: thatguydan)
14:02:15  * ralphtheninjajoined
14:12:24  * chadskidmorequit (Ping timeout: 276 seconds)
14:13:45  * chadskidmorejoined
14:28:51  * intabulasquit (Remote host closed the connection)
14:35:36  * mirkok_joined
14:37:45  * mirkokquit (Ping timeout: 256 seconds)
14:37:46  * mirkok_changed nick to mirkok
14:43:26  * yorickquit (Remote host closed the connection)
14:43:45  * yorickjoined
14:43:45  * yorickquit (Changing host)
14:43:45  * yorickjoined
14:45:16  * jibayjoined
14:54:27  * mirkokquit (Quit: mirkok)
14:58:37  * mirkokjoined
15:17:21  * mirkokquit (Quit: mirkok)
15:18:26  * mirkokjoined
15:22:42  * intabulasjoined
15:30:41  * aymanjoined
15:30:59  * aymanquit (Remote host closed the connection)
15:32:47  * ins0mniajoined
15:35:45  * evboguejoined
15:36:30  * evboguequit (Client Quit)
16:19:23  * st_lukejoined
16:27:12  * tphummeljoined
16:50:58  * huntertrjoined
16:53:48  * dguttmanjoined
16:56:35  * st_lukequit (Remote host closed the connection)
17:14:42  * dguttmanquit (Quit: dguttman)
17:46:29  * yorickquit (Remote host closed the connection)
17:47:07  * yorickjoined
18:03:57  * huntertrchanged nick to cryptoquick
18:04:32  * cryptoquickchanged nick to CryptoQuick
18:08:52  * thatguydanjoined
18:14:49  * dguttmanjoined
18:29:17  * dguttmanquit (Quit: dguttman)
18:33:12  * evboguejoined
18:41:56  * shuaibjoined
18:45:12  * mikealquit (Quit: Leaving.)
18:55:00  * thatguydanquit (Quit: thatguydan)
19:17:26  * CryptoQuickquit (Quit: CryptoQuick)
19:17:29  * tphummelquit (Quit: tphummel)
19:17:58  * dguttmanjoined
20:02:28  * mikealjoined
20:13:00  * thatguydanjoined
20:26:06  * CryptoQuickjoined
20:41:18  * thatguydanquit (Quit: thatguydan)
20:59:15  * paul_irishjoined
20:59:30  * mirkokquit (Read error: Connection reset by peer)
20:59:43  * mirkokjoined
21:08:49  * mikealquit (Quit: Leaving.)
21:13:38  * dominictarrjoined
21:15:08  * AvianFlujoined
21:15:15  * gwenbelljoined
21:18:28  <mbalho>dominictarr: in a client server model where many clients will be scuttlebutting to the server bidirectionally should i do modelInstance.createStream() for each client that connects and pipe the client to that? or just have one modelInstance.createStream() that all clients get piped to
21:18:55  <dominictarr>each connection get's it's own stream
21:19:08  <mbalho>dominictarr: cool thanks
21:22:37  * mikealjoined
21:26:39  * mirkokquit (Quit: mirkok)
21:29:10  * gwenbellquit (Remote host closed the connection)
21:31:58  * dominictarrquit (Quit: dominictarr)
21:32:15  * mikealquit (Quit: Leaving.)
21:37:22  * jlordjoined
21:54:29  * dominictarrjoined
22:02:28  * mikealjoined
22:22:25  * jlordquit (Ping timeout: 244 seconds)
22:28:16  * mikealquit (Quit: Leaving.)
22:29:37  <dominictarr>Raynos: working on a level-* plugin for conditional updates
22:29:58  <dominictarr>currently calling it level-update
22:30:19  <dominictarr>but, hmm, that is a bit of a narrow name, because it does more than that
22:30:37  <dominictarr>you could use it to implement conditional updates,
22:30:54  <dominictarr>operations, like stored proceduces,
22:31:24  <dominictarr>arbitary versioning systems
22:31:42  <dominictarr>another name might be level-merge
22:31:52  <dominictarr>but that is misleading too
22:32:40  <dominictarr>basically, you just give the plugin a function, that will get called with the previous and new values when ever the sure attempts an update...
22:33:35  <dominictarr>it's like an async pre hook, that also gets passed the current value
22:35:09  <dominictarr>but,
22:35:18  <dominictarr>the thing that I like about level-update
22:35:44  <dominictarr>is that it sounds fairly useful, and it indicated a potential use for the module...
22:36:03  <dominictarr>but there has to be a better name
22:40:51  * ins0mniaquit (Ping timeout: 245 seconds)
22:41:33  * mikealjoined
22:43:30  <mbalho>dominictarr: couchdb calls them validate_doc_update functions
22:47:37  * dominictarrquit (Ping timeout: 246 seconds)
22:49:22  <substack>seaport updated to the latest crdt
22:49:39  <substack>was getting a duplicated entry bug in an earlier version
22:52:52  * dguttmanquit (Quit: dguttman)
23:06:58  * dominictarrjoined
23:21:29  * mirkokjoined
23:22:36  <substack>just had a crazy idea to let detective expose which exports are used by a module
23:22:44  <substack>this information could be fed into a minimizer
23:23:04  <substack>that would make it very easy for browserify plugins to support fs.readFileSync()
23:23:10  <substack>for loading static assets
23:29:30  <dominictarr>ohh, and also cut out all the methods you dont use
23:29:48  <dominictarr>like when you require('util') but only use inherits
23:31:10  <substack>yep
23:32:17  <substack>google closure compiler can do this for commonjs I've heard
23:35:53  * mirkokquit (Quit: mirkok)
23:35:59  <substack>going to spend a few hours on this then finishing up dashboard things
23:49:11  <ralphtheninja>dominictarr: if it does more than that perhaps it should do less and still be called level-update
23:49:40  <ralphtheninja>dominictarr: or do you mean it's potential can be used for diverse things?
23:50:46  <dominictarr>ralphtheninja: yes, it's it's potential
23:51:05  <dominictarr>they arn't features
23:51:39  <ralphtheninja>nods, then you probably need a better name :)
23:53:03  <ralphtheninja>and not too long either .. already a 'pain' because of the level- namespace
23:53:13  <ralphtheninja>level-conditional-update .. too long
23:53:19  <dominictarr>so, basically, it gets the old value, the new value, and then makes a desision or returns a "merged" value
23:53:37  <dominictarr>it is coupled to levelup
23:53:47  <ralphtheninja>yeah I know
23:53:54  <dominictarr>so I think the hyphen is appropiate
23:54:10  <ralphtheninja>so do I :)
23:54:34  <ralphtheninja>but it will be too long if you want more words than just level*
23:54:59  <ralphtheninja>level-condition?
23:55:12  <dominictarr>level-conditional
23:56:11  <dominictarr>so, you could consider it to merge the values...
23:56:36  <dominictarr>with throwing an error (vetoing the update being considered a special case of the merge)
23:56:43  <dominictarr>meaning "impossible to merge"
23:57:52  <dominictarr>relocating...
23:57:54  * dominictarrquit (Quit: dominictarr)
23:59:28  * AvianFluquit (Remote host closed the connection)