00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:10:39  <jesusabdullah>holy crap this iptables "tutorial" is 320 pages long
00:10:43  <jesusabdullah>I'm fucked D:
00:14:03  * shamajoined
00:17:39  * maksimlinquit (Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131206152142])
00:18:45  * shamaquit (Ping timeout: 272 seconds)
00:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 7]
00:29:16  * anoemiquit (Quit: anoemi)
00:30:42  * calvinfojoined
00:32:01  * kriskowaljoined
00:34:24  * kriskowalquit (Client Quit)
00:38:39  <owen1>jesusabdullah: (:
00:38:51  <owen1>jesusabdullah: how is job hunt going?
00:39:13  * tearmannquit (Quit: Leaving)
00:47:13  * thlorenzquit (Remote host closed the connection)
00:47:46  * thlorenzjoined
00:48:13  * Maciek416joined
00:48:27  * shamajoined
00:50:33  <substack>Raynos: I have a failing test for https://github.com/isaacs/npm/issues/4312 now
00:52:35  * thlorenzquit (Ping timeout: 272 seconds)
01:00:34  <jesusabdullah>owen1: idk
01:00:36  <jesusabdullah>¯\(°_o)/¯
01:05:59  * mikolalysenkojoined
01:07:18  * yorickquit (Remote host closed the connection)
01:09:30  <pkrumins>substack: nice!
01:09:57  <substack>https://github.com/isaacs/npm/pull/4368
01:10:04  <substack>pkrumins, Raynos: ^^^
01:10:13  * thlorenzjoined
01:10:43  <pkrumins>so good
01:10:48  <owen1>jesusabdullah: if u'r ever in LA areaand need a place to stay, let me know
01:10:55  <pkrumins>i'll put it in production right now
01:10:57  <pkrumins>as a hackfix
01:11:00  <substack>pkrumins: great!
01:11:02  <jesusabdullah>owen1: sure
01:11:20  * thlorenzquit (Remote host closed the connection)
01:14:06  <pkrumins>in production
01:16:26  * pfrazequit (Ping timeout: 264 seconds)
01:17:39  * ralphtheninjaquit (Ping timeout: 272 seconds)
01:23:27  * pfrazejoined
01:23:36  <robertkowalski>substack: just saw your issue/pr on npm
01:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 5]
01:24:11  <robertkowalski>substack: maybe this helps https://github.com/isaacs/npm/blob/a211b73b79e24b77b77c043b8a19e1e1d4fe5003/test/tap/false_name.js ?
01:28:54  <robertkowalski>might be almost a similiar setup
01:38:22  * timoxleyjoined
01:38:56  * calvinfoquit (Read error: Connection reset by peer)
01:39:16  * calvinfojoined
01:47:38  * Maciek416quit (Remote host closed the connection)
01:53:02  <substack>robertkowalski: I wrote that test.
01:55:17  <robertkowalski>substack: yep, i know.
01:58:10  <robertkowalski>substack: it was just changed to use mocked packages.
01:59:54  <substack>ok
02:00:24  <substack>it looks like I would need to update npm-registry-mock to include a package depended on by one of the existing packages
02:00:31  * mikolalysenkoquit (Ping timeout: 260 seconds)
02:01:05  <substack>robertkowalski: I was using minimist, optimist, and wordwrap in my test
02:01:26  <substack>if we could get all 3 of those into npm-registry-mocked I could write a test for this
02:04:37  <robertkowalski>substack: i was hoping that the mocked package-with-one-dep and its dependant would work. feel free to submit a pr for whatever works for you in this case
02:21:45  * calvinfoquit (Quit: Leaving.)
02:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 7]
02:30:15  * calvinfojoined
02:33:53  * anoemijoined
02:35:49  * timoxleyquit (Remote host closed the connection)
02:47:40  * calvinfoquit (Quit: Leaving.)
03:01:12  * mikolalysenkojoined
03:05:48  * Maciek416joined
03:07:44  <ogd>so good http://www.youtube.com/watch?v=eKW5iugJChk&t=31m59s
03:07:49  <ogd>substack: o/
03:12:53  * calvinfojoined
03:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 5]
03:26:04  <substack>ogd: so modular components will only be successful for 20 million years I guess
03:26:26  * AvianFlu_changed nick to AvianFlu
03:36:41  * calvinfoquit (Quit: Leaving.)
03:37:41  <substack>ogd: http://www.youtube.com/watch?v=eKW5iugJChk#t=45m12s
03:37:46  <grncdr>substack: I look forward to your blog post recanting all previously held opinions
03:38:28  <mikolalysenko>and I guess they will be replaced by middleware?
03:38:32  * mikolalysenkoquit (Quit: Lost terminal)
03:38:39  * thlorenzjoined
03:39:03  * mikolalysenkojoined
03:39:43  <grncdr>also, this guy is awesome
03:41:13  <grncdr>I started watching it and Erin is like "I love that guys voice" going to watch the whole thing now
03:44:27  <mikolalysenko>actually, it looks like small modules died out because sex
03:45:13  <mikolalysenko>trying to figure out if there is some moral to draw from this analogy...
03:45:58  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.69(free7)
03:54:13  <ogd>grncdr: you've never heard david attenborough before? he has 50 years worth of work that you need to catch up on!
03:54:37  * dominictarrjoined
03:55:02  <ogd>grncdr: I just watched BBC Africa, its pretty mind blowing
03:59:48  <mikolalysenko>any opinions on this proposal: https://github.com/mikolalysenko/control-flow/blob/master/doc/graph-types.md
04:00:27  <mikolalysenko>I am working on creating a simpler intermediate representation for javascript
04:00:41  <mikolalysenko>which is going to be a sort of control flow/3ac type of thing
04:00:50  <mikolalysenko>maybe add ssa on top of that
04:01:19  <mikolalysenko>the idea is that interpreting/analyzing this should be way easier than the output from esprima directly
04:01:31  <mikolalysenko>since there will be fewer cases and other junk to consider
04:18:13  * mikolalysenkoquit (Ping timeout: 248 seconds)
04:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 18]
04:26:06  * anoemiquit (Quit: anoemi)
04:34:12  * mikolalysenkojoined
04:34:26  * pfrazequit (Ping timeout: 264 seconds)
04:48:01  * contrahaxquit (Ping timeout: 240 seconds)
04:51:26  * mikolalysenkoquit (Ping timeout: 240 seconds)
04:55:58  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.6(free5)
04:56:59  * thlorenzquit (Remote host closed the connection)
04:58:46  * contrahaxjoined
05:05:06  * timoxleyjoined
05:22:07  * timoxleyquit (Ping timeout: 272 seconds)
05:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 18]
05:25:12  * contraha_joined
05:25:25  * contrahaxquit (Ping timeout: 248 seconds)
05:26:38  * damonoehlmanquit (Quit: WeeChat 0.4.2)
05:41:10  * fotoveritequit (Quit: fotoverite)
05:56:39  * fotoveritejoined
06:05:34  * defunctzombiechanged nick to defunctzombie_zz
06:16:46  * indexzeroquit (Quit: indexzero)
06:21:35  * fotoveritequit (Quit: fotoverite)
06:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 19]
06:35:25  * dominictarrquit (Ping timeout: 250 seconds)
06:58:50  * Maciek416quit (Remote host closed the connection)
07:00:45  * thlorenzjoined
07:03:52  <substack>https://github.com/pivotal/jasmine/pull/482
07:14:25  * thlorenzquit (Ping timeout: 252 seconds)
07:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 43]
07:31:37  * calvinfojoined
07:50:02  * shamaquit
08:00:17  * AvianFluquit (Remote host closed the connection)
08:22:16  * calvinfoquit (Quit: Leaving.)
08:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 42]
08:41:42  * hughskquit (Quit: Connection closed for inactivity)
09:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 27]
09:38:24  * peutetrejoined
09:42:42  * dominictarrjoined
09:45:59  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.69(free7)
09:54:28  * mafjoined
09:55:31  * mafquit (Client Quit)
09:55:41  * mafintoshjoined
10:06:46  * jlordquit (Ping timeout: 272 seconds)
10:06:46  * chiltsquit (Ping timeout: 272 seconds)
10:07:07  * jlordjoined
10:07:16  * chiltsjoined
10:07:48  * mafintoshquit (Quit: Leaving...)
10:21:28  * mafintoshjoined
10:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 30]
10:55:59  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.6(free5)
11:04:13  * mafintoshquit (Quit: Leaving...)
11:05:30  * mafintoshjoined
11:19:37  * mafintoshquit (Quit: Leaving...)
11:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 23]
11:41:58  <dominictarr>groundwater, you are in shanghai airport? where are you going?
11:42:06  <groundwater>dominictarr: yah
11:42:11  <groundwater>heading to hong kong
11:43:07  <groundwater>the wifi here is terrible
11:47:20  <dominictarr>airports!
11:47:30  <dominictarr>try the coffee
11:48:27  <groundwater>dominictarr: i wanna avoid caffeine so i can crash once i get to HK
11:49:02  <dominictarr>I was only joking
11:49:28  <dominictarr>china isn't really into coffee, anyway
11:49:49  <groundwater>oh i'm sitting next to "Coffee & Cates"
11:51:57  <groundwater>https://cloudup.com/cXzEqmyeNaA
11:53:10  <groundwater>on the up side, i wrote a lot of NodeOS stuff on the plane
11:55:40  <groundwater>dominictarr: you in the same time zone i guess?
11:58:11  * yorickjoined
11:59:23  <dominictarr>groundwater, I'm in laos right now
11:59:36  <dominictarr>one hour off.
12:00:20  <groundwater>dominictarr: guess i shouldn't complain about wifi then
12:01:39  <dominictarr>asia has great wifi, except in hotels and airports.
12:02:43  <groundwater>i think it's a universal rule that an expensive hotel must have worse wifi than the $2 coffee shop across the street
12:03:13  * ralphtheninjajoined
12:05:34  <groundwater>okay i'm gonna wander towards my gate down in the basement where i may or may not have wifi
12:06:06  <dominictarr>groundwater, have a good trip!
12:09:40  * contraha_quit
12:10:06  * contrahaxjoined
12:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 30]
12:35:19  * timoxleyjoined
13:01:28  * dominictarrquit (Ping timeout: 240 seconds)
13:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 31]
13:24:18  * mafintoshjoined
13:42:49  * mafintoshquit (Quit: Leaving...)
13:45:29  * timoxley_joined
13:47:27  * timoxleyquit (Ping timeout: 240 seconds)
13:49:16  * kevino80joined
14:13:36  * timoxley_quit (Remote host closed the connection)
14:21:11  * thlorenzjoined
14:24:05  <rowbit>Hourly usage stats: [developer: 0, free: 15]
14:32:44  * Maciek416joined
14:34:45  * thlorenzquit (Ping timeout: 248 seconds)
14:35:20  * thlorenzjoined
14:44:29  * timoxleyjoined
14:46:01  * thlorenz_joined
14:46:31  * thlorenzquit (Read error: Connection reset by peer)
14:49:05  * timoxleyquit (Ping timeout: 252 seconds)
15:03:48  * AvianFlujoined
15:06:25  * AvianFlu_joined
15:08:34  * AvianFluquit (Ping timeout: 246 seconds)
15:15:11  * AvianFlu_quit (Ping timeout: 272 seconds)
15:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 22]
15:35:44  * timoxleyjoined
15:40:01  * timoxleyquit (Ping timeout: 240 seconds)
15:44:46  * pfrazejoined
15:45:22  * defunctzombie_zzchanged nick to defunctzombie
15:46:00  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.69(free7)
15:51:52  * mikolalysenkojoined
15:57:58  * tmcwjoined
16:08:16  * indexzerojoined
16:16:03  * ednapiranhajoined
16:18:19  <defunctzombie>why don't errors get forwarded when piping streams?
16:19:07  <pfraze>is there an other error stream?
16:20:35  <isaacs>this is why peer dependencies was a bad idea: http://dontkry.com/posts/games/where-voxel-js-has-failed.html
16:20:53  * AvianFlujoined
16:20:57  * fotoveritejoined
16:21:40  <Domenic_>:('
16:22:03  <isaacs>Domenic_: well, it was a good implementation
16:22:18  <isaacs>Domenic_: but it encourages the exact wrong approach to modular programs
16:22:24  <Domenic_>i think it's worked out really well for grunt
16:22:34  <isaacs>yeah, for grunt and express it works ok
16:22:47  <isaacs>when you have a core that almost never makes breaking changes
16:23:45  <isaacs>it's basically the same problem as "engines", though, at best.
16:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 32]
16:24:17  <isaacs>and allows dependency hell
16:26:44  <mikolalysenko>regarding voxel.js, I've been thinking a bit lately about revisiting the concept...
16:27:13  <mikolalysenko>but I do agree that peer dependencies are no good
16:31:45  * indexzeroquit (Quit: indexzero)
16:32:36  <defunctzombie>Domenic_: https://github.com/defunctzombie/npm-install
16:32:51  <defunctzombie>Domenic_: all sorts of guetto for now
16:32:59  <Domenic_>defunctzombie: awesome
16:33:01  <defunctzombie>Domenic_: but it does install my packages
16:33:10  <Domenic_>brb
16:34:03  * indexzerojoined
16:34:03  * indexzeroquit (Client Quit)
16:36:29  * timoxleyjoined
16:40:28  <Domenic_>back
16:40:32  <Domenic_>yeah this is swee
16:40:40  <Domenic_>we still need a really solid cache
16:40:52  <Domenic_>https://github.com/isaacs/npm/issues/4159
16:40:55  * timoxleyquit (Ping timeout: 252 seconds)
16:41:12  <Domenic_>I've been meaning to check out rlidwka's implementation for a while
16:42:49  <defunctzombie>Domenic_: I hacked in a stupid caching layer
16:43:37  <defunctzombie>Domenic_: not sure how low the caching layer should be honestly
16:43:42  <defunctzombie>substack: https://github.com/substack/browser-pack/pull/28
16:44:10  <defunctzombie>Domenic_: https://github.com/defunctzombie/npm-install/blob/master/index.js#L96
16:44:24  <defunctzombie>in any case, that is the "interface" to any module fetching layer I have so far
16:44:29  <Domenic_>the caching layer should be a generic HTTP cache
16:44:33  <Domenic_>that respects the usual caching headers etc.
16:44:36  <defunctzombie>so that layer can use a cache or not, up to it
16:45:00  <defunctzombie>for now I just cache the tarballs via an md5 on the name and spec
16:45:08  <defunctzombie>this has benefits and drawbacks
16:45:29  <defunctzombie>Domenic_: also, I write an install file into the destination module https://github.com/defunctzombie/npm-install/blob/master/index.js#L85
16:45:47  <defunctzombie>Domenic_: this is how I check for now if I should reinstall a git dependency when the package.json changes
16:45:57  <defunctzombie>regardless if the module version changed
16:46:00  <Domenic_>defunctzombie: doesn't npm already have that? gitHead etc.?
16:46:04  <defunctzombie>(package.json of the main module)
16:46:21  <defunctzombie>Domenic_: no idea, I use it for more than just the git stuff
16:46:27  <Domenic_>hmm hmm
16:46:42  <defunctzombie>by storing the spec in that file, it is also used for regular version changes
16:46:42  <Domenic_>isaacs: this is interesting stuff, are you eavesdropping? :)
16:46:56  <Domenic_>i mean the regular version is in package.json also
16:47:00  <Domenic_>i'm unconvinced about its need
16:47:12  <defunctzombie>Domenic_: yes, but that fails for git usage
16:47:22  <Domenic_>I don't think it does, because gitHead is in package.json
16:47:22  <defunctzombie>if you bump the commit id but forget to bump version in git
16:47:30  <defunctzombie>oh..
16:47:53  <defunctzombie>Domenic_: not if you install from github
16:48:01  <Domenic_>hmm really? that's kind of horrible
16:48:12  <defunctzombie>cause github isn't gonna alter your package.json
16:48:19  <defunctzombie>I don't assume altered package.json
16:48:23  <Domenic_>but npm might on the way down
16:48:33  <defunctzombie>and the main thing I haven't implemented is the lifecycle scripts
16:48:37  <defunctzombie>preinstall post, etc
16:48:38  <Domenic_>yeah it does
16:48:43  <defunctzombie>I only implemented gyp building
16:48:48  <Domenic_> "_resolved": "git://github.com/kriskowal/q#4814de3a71549fe5c9c5a5c4ab587e917485604e",
16:48:48  <Domenic_> "_from": "git://github.com/kriskowal/q",
16:48:48  <Domenic_> "_fromGithub": true
16:49:00  <defunctzombie>Domenic_: yea, I don't mess with the package file
16:49:06  <Domenic_>hmm
16:49:16  <defunctzombie>Domenic_: maybe I could, but for now I chose to leave it alone
16:49:28  <Domenic_>it looks like it normalizes it, which seems fine
16:49:34  <Domenic_>still don't like how README.md is in the package.json, ugh
16:49:43  <defunctzombie>I mean.. I wrote this stuff in a few hours
16:49:53  <defunctzombie>so... it isn't a work of art architecturally :)
16:49:54  <Domenic_>:)
16:50:02  <defunctzombie>yep I hate bloated package.json
16:50:14  <Domenic_>yeah but i'm excited about getting it into npm eventually, so trying to figure out all the tricks.
16:50:23  <defunctzombie>yea
16:50:33  <defunctzombie>oh.. and I don't dedupe
16:50:38  * mikolalysenkoquit (Ping timeout: 264 seconds)
16:50:46  <defunctzombie>this was a big thing I decided against in this module
16:50:47  <Domenic_>yeah, that seems for the best...
16:50:52  <defunctzombie>cause it avoids lots of logic
16:50:55  <defunctzombie>that gets messy
16:50:57  <Domenic_>dedupe should be an option I think...
16:51:06  <Domenic_>right now it's weird it's like halfway between
16:51:09  <defunctzombie>I think dedupe can be done after
16:51:19  <Domenic_>i guess you want to avoid redundant requests? :-/
16:51:22  <defunctzombie>after you have an install tree, you can dedupe
16:51:30  <defunctzombie>Domenic_: the caching layer is for that
16:51:48  <Domenic_>well but you could avoid more if you used the semver information
16:51:53  <Domenic_>(yes yes you always use exact dependencies)
16:52:10  <defunctzombie>Domenic_: yea, you could https://github.com/defunctzombie/npm-install/blob/master/index.js#L105
16:52:21  <Domenic_>well i meant
16:52:21  <defunctzombie>I hacked that in for now, but my caching layer is dumb
16:52:33  <Domenic_>if you have a dependency on 2.x and 2.1.3 but the latest is 2.2.0
16:52:36  <defunctzombie>on purpose so I don't query http once I think I have a file that will match
16:52:37  <Domenic_>you could only do the request for 2.1.3
16:52:42  <Domenic_>instead of for 2.1.3 and 2.2.0
16:53:14  <defunctzombie>right now my stuff will cache 2.x under a hash of 2.x
16:53:22  <defunctzombie>and that example is a tossup
16:53:23  <Domenic_>ah ok interesting
16:53:37  <defunctzombie>cause you could technically be more correct to install 2.1.3 and 2.2.0
16:53:42  <Domenic_>yeah i dunno, i am fine with installing 2.1.3 and 2.2.0
16:53:44  <defunctzombie>cause that is what best meets the dependencies
16:53:51  <Domenic_>and then relying on dedupe to squash it down
16:53:56  <defunctzombie>yep
16:53:57  <Domenic_>but that does make for slower installs
16:54:06  <defunctzombie>but honestly, squashing that down is not a given imo
16:54:17  <defunctzombie>I would just leave it deduped
16:54:52  <defunctzombie>I dunno how much dedupe really helps at runtime
16:55:02  <defunctzombie>I kinda feel like the libs are so small that it is almost a non factor
16:56:00  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.6(free5)
16:58:49  * mafintoshjoined
17:03:51  * mafintoshquit (Quit: Leaving...)
17:04:50  * mikolalysenkojoined
17:13:47  * ednapiranhaquit (Quit: Leaving...)
17:15:14  * ralphtheninjaquit (Read error: Operation timed out)
17:18:27  <grncdr>defunctzombie: the bigger difference (for dedupe) is things like instanceof checks
17:18:33  <grncdr>(imo)
17:20:32  <grncdr>two copies of lib X that exports some constructor function C makes it quite possible to end up with `C` objects that don't pass `someC instanceof C`
17:22:40  <defunctzombie>grncdr: is that actually true?
17:22:48  <defunctzombie>grncdr: modules all get loaded into the same context right?
17:22:50  <grncdr>I don't see why not?
17:23:01  <defunctzombie>oh
17:23:03  <defunctzombie>right I see
17:23:29  <grncdr>I don't think it's been a big problem in practice for a lot of folks
17:23:37  <defunctzombie>grncdr: hm.. not sure there is a good solution tho cause relying on dedupe to catch those cases in your code will end in sadness
17:23:45  <grncdr>agreed
17:23:46  <defunctzombie>grncdr: as dedupe is not a deterministic thing I think
17:23:54  <grncdr>in my case, I'm thinking about any-db-transaction
17:24:01  <defunctzombie>but that is certainly interesting to think about when thinking about instanceof checks
17:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 20]
17:24:27  <grncdr>instanceof checks are just the easiest thing to reason about, because they rely on object identity
17:24:44  <grncdr>the bigger change is subtle differences between different versions of the module
17:24:59  * mikolalysenkoquit (Ping timeout: 260 seconds)
17:25:03  * fronxjoined
17:25:12  <grncdr>like, I have [email protected] and [email protected], where 1.0.2 fixed a bug
17:25:37  <grncdr>that bug will affect your program depending on which code path you got your C instances from
17:26:20  <grncdr>this isn't a criticism of npm though. in the end, the person consuming dependencies has to be responsible for this sort of thing
17:26:30  <grncdr>no matter what module system you use
17:26:54  <defunctzombie>yep
17:27:08  <grncdr>it's just quite possible (although probably not that common) to end up in a weird little edge cases like this
17:33:01  <rowbit>substack, pkrumins: A developer is waiting in the queue for ie/10.0
17:37:13  * timoxleyjoined
17:41:25  * timoxleyquit (Ping timeout: 241 seconds)
17:41:33  * jcrugzzjoined
17:46:31  * fronxquit (Remote host closed the connection)
17:48:48  * mafintoshjoined
17:53:46  * orenpart ("WeeChat 0.3.8")
17:53:49  <greweb>grncdr: so you recommend to use 2.0.x or 2.x instead of specific versions?
17:54:15  <grncdr>greweb: in that specific case, I opted to use 2.0.x
17:54:38  <grncdr>but I'm actually planning to refactor that code so that there aren't as many duplicated deps
17:56:54  <greweb>I was quite agreeing this approach until some libs broke the minor version.. it can easily break from one day to another.. the worse is when you have libs which depends on sub deps .x.x and you can't avoid them to download the latest until you put the explicit deps on the root package.
17:57:19  <grncdr>well, I would never wild-card on a minor version, only patch
17:57:42  <greweb>I see the advantage too, quite easy to bugfix a lib and avoid the dup problem you talked about
17:57:55  <grncdr>and yeah, I've run into that before (transitive dependencies that upgrade without me noticing, breaking my code)
17:59:00  <grncdr>the solution (IMO) is that you should rarely (if ever) be returning data from a dependency to users of your own module.
17:59:02  <greweb>working in a team this is tough. I'm the guy who rm node_modules and test it again each day..
17:59:19  * peutetrequit (Quit: peutetre)
17:59:27  <grncdr>greweb: are you developing an app or a module to be re-used?
17:59:32  <grncdr>in your app, shrinkwrap
17:59:34  <grncdr>all the time
17:59:38  <grncdr>or check in node_modules
17:59:46  <greweb>app
17:59:54  <grncdr>for apps, I *strongly prefer* checking in node_modules
17:59:58  <greweb>what is shrinkwrap?
18:00:05  <grncdr>npm help shrinkwrap
18:00:12  <grncdr>(explains it better than I will)
18:00:56  <grncdr>also, if you don't mind my asking, where do you work?
18:00:58  <greweb>i'm on my android right now but I'll give a try back home :-D
18:01:35  <greweb>in a Paris startup called Zengularity
18:02:21  <grncdr>here https://npmjs.org/doc/shrinkwrap.html
18:03:12  <greweb>thanks
18:03:14  <grncdr>it's the npm equivalent of the Gemfile.lock file that Bundler creates (if you're familiar with Bundler)
18:06:10  * st_lukejoined
18:06:13  <mafintosh>whats the benefit of checking in app modules over using a shrinkwrap?
18:06:17  <greweb>woo very cool to have that! thanks for sharing that I'll give a try! so I'll be the guy who upgrade the shrinkwrap version each month instead of checking each day! better job!!
18:06:41  * st_luke_joined
18:06:48  <greweb>cleaner git repo
18:07:18  <greweb>thats one reason probably :)
18:07:40  <mafintosh>I would argue that the repo would be cleaner without node_modules :)
18:08:23  * ralphtheninjajoined
18:09:04  * thlorenz_quit (Remote host closed the connection)
18:09:26  <greweb>yeah this is what I meant so i misunderstood your saying
18:09:38  <grncdr>mafintosh: shrinkwrap doesn't check package contents
18:09:49  <grncdr>the last section of the linked doc explains
18:10:13  <mafintosh>arh ok - should probably just read that
18:10:17  * st_lukequit (Ping timeout: 240 seconds)
18:10:25  <grncdr>no worries, it's kind of long
18:11:08  <grncdr>the thing is, I don't really buy the "cleaner repo" argument. the stuff in `node_modules` is your app as much as the stuff outside of it
18:11:47  <grncdr>it's also way nicer to be able to use git bisect on bugs in your dependencies
18:11:59  <grncdr>without having to reinstall them every time
18:12:46  <mafintosh>I kinda agree with you ... but I does kinda mess with github statistics (since users adding modules will show up as massive contributors)
18:13:17  <grncdr>who cares?
18:13:27  <grncdr>this is for your app
18:13:58  <grncdr>if your team is competing internally for github stats then you might have other problems
18:14:30  <greweb>thats still find if you put the upgrades in one commit properly and don't mess up with work commit. but I think this goes terrible with pull request workflow
18:14:32  <grncdr>or, I'll play devils advocate from a more extreme position: they *are* massive contributors
18:14:52  <greweb>fine* (erf)
18:15:13  <grncdr>I mean, they just brought in a bunch of code that solved that problem *super fast*
18:15:18  <grncdr>;)
18:15:38  <grncdr>I agree somewhat with the PR thing
18:15:51  <mafintosh>hah - I like that argument. fits well with "node philosophy"
18:16:13  <grncdr>I mean, a PR that adds 100 files in node_modules is going to be a pain in the ass to review
18:16:19  <grncdr>but there's an easy solution there
18:16:25  <mafintosh>seperate commit?
18:16:29  <grncdr>well yeah
18:16:32  <grncdr>always a separate commit
18:16:38  <grncdr>but even that's annoying to review
18:16:48  * trevnorrisquit (Ping timeout: 260 seconds)
18:17:01  <grncdr>so you just pull it locally, remove and reinstall the module to verify that everything is the same
18:17:37  <grncdr>that's more review than most people would do anyways
18:17:43  <mafintosh>yeah
18:18:52  <mafintosh>what about native modules? you just gitignore the build and do npm rebuild?
18:19:04  * fronxjoined
18:19:07  * trevnorrisjoined
18:19:26  <grncdr>yep
18:19:43  <grncdr>most native modules already include their own .gitignore so you don't have to
18:24:04  <rowbit>Hourly usage stats: [developer: 4, free: 17]
18:26:13  <substack>these folks don't seem to get it :/ https://github.com/pivotal/jasmine/pull/482
18:26:49  <substack>so I'm going to fix it for them
18:27:08  * fronxquit (Remote host closed the connection)
18:27:25  <substack>because anarchy
18:28:16  <AvianFlu>MERRY LOUDSMAS EVERYBODY
18:28:16  <LOUDBOT>GOD DAMMIT WE NEED TO SAVE DANIEL JACKSON AGAIN
18:30:43  <jesusabdullah>johnkpaul: can you tell paul I'm up and skype's on?
18:31:07  <grncdr>substack: yay :D
18:31:29  <grncdr>I look forward to https://npmjs.org/jasmine
18:31:58  <substack>I mean I don't like jasmine but it belongs on npm
18:32:08  <substack>and it deserves to be properly put up there
18:32:26  <grncdr>honestly I was pretty surprised that it came up on your radar...
18:32:43  <substack>I saw a blog post about how 2.0 was supposed to work with node and npm
18:32:49  <grncdr>ah
18:32:51  <substack>and then I saw that its package.json didn't have a "main" field
18:32:54  <substack>and was like what the shit
18:33:05  <substack>had "doing it wrong" written all over it
18:33:43  <grncdr>well, it's not like you'll have a hard time giving them the name back if/when they stop being dumb
18:33:47  <Raynos>substack: awesome
18:33:55  <Raynos>substack: thanks for fixing npm :)
18:34:09  <substack>Raynos: but they closed my PR
18:34:14  <grncdr>Also good news: I just got confirmation for my Oakland AirBNB, Jan 3-17 I will be just on the east side of the lake
18:34:18  <jesusabdullah>which substack ?
18:34:20  <substack>anyways I'm going to publish anyways
18:34:23  <substack>because that's how npm works
18:34:33  <substack>they get to use npm on npm's terms, not their terms
18:34:34  * shamajoined
18:34:42  <Raynos>substack: which PR ?https://github.com/isaacs/npm/pull/4368 is still open
18:34:50  <substack>Raynos: oh right, that
18:34:56  <substack>Raynos: https://github.com/pivotal/jasmine/pull/482
18:35:53  <Raynos>oh lol jasmine
18:36:03  <Raynos>substack: I am many sads you have to support shitty test frameworks :(
18:36:25  <jesusabdullah>uuuugh
18:36:31  <jesusabdullah>fuck everything about the grunt model
18:38:00  * timoxleyjoined
18:38:39  <grncdr>jesusabdullah: :(
18:42:25  * timoxleyquit (Ping timeout: 246 seconds)
18:43:11  <Raynos>lol grunt.
18:43:18  <Raynos>jesusabdullah: can you do a blog post about why grunt is bad
18:43:27  <Raynos>so I can share it with my coworkers without it being my opinion :D
18:43:38  <Raynos>I can do the same for you :D
18:44:14  <substack>Raynos: http://substack.net/task_automation_with_npm_run
18:44:44  <Raynos>substack: thats the better alternative. not a "why grunt is terrible"
18:45:09  <jesusabdullah>Not sure I could do it properly
18:45:18  <Raynos>substack: do `|` and `>` work on windows ?
18:45:40  <grncdr>Raynos: yes
18:45:49  <grncdr>wait… maybe
18:45:57  <grncdr>shit I can't remember, I looked into it once
18:46:13  <grncdr>https://github.com/isaacs/npm/issues/3313
18:46:47  <grncdr>sorry, this one: https://github.com/isaacs/npm/pull/4058#issuecomment-28661116
18:47:03  <jesusabdullah>I think I might work through https://www.cs.auckland.ac.nz/software/AlgAnim/ds_ToC.html
18:47:14  <jesusabdullah>I'll school ALL those noobs at data structures!
18:48:53  <substack>what is going on... https://github.com/pivotal/jasmine/blob/master/spec/node_suite.js#L6-L7
18:49:21  <grncdr>Raynos: so chaining and redirection work (including > and |) but backgrounding doesn't
18:50:28  <grncdr>substack: that is… weird
18:50:44  <AvianFlu>substack: that's really scary
18:51:52  <substack>https://github.com/pivotal/jasmine/blame/master/GOALS_2.0.md#L3-L5
18:51:53  <Raynos>grncdr: awesome
18:53:50  <jesusabdullah>substack: lolwat
18:57:57  <substack>anyways I'm going to work on my secret project instead
19:01:33  <grncdr>that's cruel
19:02:01  <grncdr>although maybe it should motivate me to work instead of idling around in IRC commenting on what other people do
19:02:06  <grncdr>;)
19:05:14  * thlorenzjoined
19:17:56  * st_lukejoined
19:18:07  * farnsworthquit (Remote host closed the connection)
19:18:07  * cubertquit (Remote host closed the connection)
19:18:43  * contraha_joined
19:18:53  * pfraze_joined
19:22:17  * jlord_joined
19:23:45  * yorick_joined
19:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 25]
19:25:14  * yorick_quit (Client Quit)
19:26:20  * tilgovi_joined
19:26:23  * st_luke_quit (*.net *.split)
19:26:23  * pfrazequit (*.net *.split)
19:26:24  * contrahaxquit (*.net *.split)
19:26:24  * yorickquit (*.net *.split)
19:26:24  * jlordquit (*.net *.split)
19:26:25  * chapelquit (*.net *.split)
19:26:25  * Nexxyquit (*.net *.split)
19:27:20  * Nexxyjoined
19:27:52  * chapeljoined
19:28:03  * xkojoined
19:28:53  * yorickjoined
19:29:02  * fronxjoined
19:33:47  * pfraze_changed nick to pfraze
19:57:04  * ferossjoined
19:58:52  * calvinfojoined
20:08:01  * rxgxjoined
20:11:38  * peutetrejoined
20:15:03  * tilgovi_quit (Ping timeout: 252 seconds)
20:15:38  <jesusabdullah>man the CN guys are cool
20:16:23  <jesusabdullah>oh noooo! PayPal turned me down tooooo
20:16:28  <jesusabdullah>;_;
20:16:32  <jesusabdullah>I'll never get a job :(
20:17:36  <pfraze>jesusabdullah I just gave an interview that I feel lame about. We can commiserate
20:17:48  <pfraze>party hats all around
20:17:52  <jesusabdullah>I didn't even feel lame about that interview, I felt really good about it
20:17:54  <jesusabdullah>*sigh*
20:18:12  * calvinfoquit (Quit: Leaving.)
20:19:05  <pfraze>what kind of work are you looking for?
20:19:16  <jesusabdullah>something with node
20:19:19  <substack>jesusabdullah: you could apply at mapbox. tmcw works there
20:19:21  <jesusabdullah>on a team that ships
20:19:25  * calvinfojoined
20:19:35  <substack>and they just raised a couple buckets of cash dollars
20:19:45  <substack>raised them over their head
20:19:50  <jesusabdullah>that's cool
20:21:33  <Domenic_>substack: where's my https://npmjs.org/jasmine
20:21:48  * calvinfoquit (Read error: Connection reset by peer)
20:21:57  <Domenic_>(i find this situation highly amusing)
20:21:58  * calvinfojoined
20:22:01  <substack>Domenic_: they didn't want to merge it, said they have other plans
20:22:12  <Domenic_>substack: right so i thought you were going to publish
20:22:14  <substack>Domenic_: I should just publish it anyways but I guess there is already a jasmine-node
20:22:41  <Domenic_>jasmine-node is like jasmine 1.3.1, ancient
20:23:24  <substack>Domenic_: one thing that was really weird is that in their 2.0 goals notes they say "remove all globals"
20:23:28  <substack>but the API is still global-based
20:23:37  <substack>describe(), it(), moreGlobals()
20:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 34]
20:24:13  <substack>REMOVE SOME GLOBALS, KEEPING SOME EXISTING GLOBALS IN PLACE
20:24:13  <LOUDBOT>I HAVE A DONKEY KONG IN MY ANUS AGAIN
20:25:48  <thlorenz>jesusabdullah: happy all went well with CN hope something comes of it
20:27:23  <thlorenz>defunctzombie: btw not sure what you mind by writing bindings for nodejs
20:27:38  <thlorenz>isn't node already hooking into libuv to get stuff done?
20:29:59  <jesusabdullah>thlorenz: Yeah me too :( I could use a break
20:40:55  * mafintoshquit (Quit: Leaving...)
20:41:03  * AvianFluquit (Remote host closed the connection)
20:46:19  * AvianFlujoined
20:47:34  * mafintoshjoined
20:49:34  * rxgxquit (Quit: rage quit)
20:49:46  * rxgxjoined
20:51:24  * calvinfoquit (Quit: Leaving.)
20:53:04  <Domenic_>bootstrap makes me so mad
20:53:10  * calvinfojoined
20:54:59  <substack>Domenic_: what specifically?
20:55:35  <Domenic_>their CSS is designed to make you write IE6-era HTML. But today it's that they like using <a>s that go nowhere instead of <button>s.
20:55:46  <Domenic_>https://t.co/vLlzaAXwJf
20:57:48  * tilgovi_joined
21:11:31  * calvinfoquit (Quit: Leaving.)
21:12:01  <defunctzombie>thlorenz: https://github.com/defunctzombie/libuv.js
21:12:24  <defunctzombie>Domenic_: just use their stuff as a learning tool and make your own
21:12:32  <defunctzombie>Domenic_: their js is all jquery crap too and not modules
21:12:36  <thlorenz>defunctzombie: I'm scared
21:12:42  <defunctzombie>thlorenz: you should be
21:13:27  <mafintosh>substack: any chance getting a merge for this? https://github.com/substack/node-editor/pull/9
21:14:29  <thlorenz>defunctzombie: looks interesting though, but gotta learn more C(++) and v8 stuff first, otherwise this module is not for me ;)
21:14:43  <defunctzombie>haha
21:17:00  * fronxquit (Remote host closed the connection)
21:21:33  * contraha_changed nick to contrahax
21:23:20  * fronxjoined
21:24:04  <rowbit>Hourly usage stats: [developer: 12, free: 8]
21:24:09  <defunctzombie>substack: just publish it
21:24:24  <defunctzombie>substack: also merge my PR :p
21:25:21  * mafintoshquit (Quit: Leaving...)
21:37:24  * st_luke_joined
21:40:07  * timoxleyjoined
21:40:08  * kevino80quit
21:42:03  * mafintoshjoined
21:42:29  * st_luke_quit (Remote host closed the connection)
21:44:31  * timoxleyquit (Ping timeout: 252 seconds)
21:46:01  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.69(free7)
21:47:55  * st_luke_joined
21:57:25  * AvianFluquit (Ping timeout: 248 seconds)
22:00:54  * peutetrequit (Quit: peutetre)
22:02:20  <substack>shama: there is some really good discussion in that PR https://github.com/maxogden/voxel-engine/issues/90
22:02:30  <substack>I'm going to use some of this in my jsfest talk
22:04:05  <substack>mafintosh: published
22:04:52  <mafintosh>substack: nice thanks!
22:09:36  <shama>substack: awesome
22:11:01  * kriskowaljoined
22:15:49  <substack>defunctzombie: I wonder how this prelude patch interferes with how `require=` bundles work
22:16:08  <substack>sometimes they will just have the entry but other times they will start with `require=`
22:17:14  * st_luke_quit (Remote host closed the connection)
22:24:04  <rowbit>Hourly usage stats: [developer: 0, free: 19]
22:26:31  <ralphtheninja>merry xmas!
22:35:58  * mafintoshquit (Quit: Leaving...)
22:40:48  * timoxleyjoined
22:43:54  * Maciek416quit (Remote host closed the connection)
22:45:19  * timoxleyquit (Ping timeout: 246 seconds)
22:45:42  * Maciek416_joined
22:46:48  * Maciek416_quit (Remote host closed the connection)
22:51:20  * Maciek416joined
22:56:02  <rowbit>substack, pkrumins: These encoders are STILL down: 50.57.72.6(free5)
23:00:53  * indexzerojoined
23:01:59  <defunctzombie>substack: hm, can we detect that?
23:02:04  * Maciek416quit (Remote host closed the connection)
23:02:48  <defunctzombie>substack: seems like that should be conditional on adding the prelude in the first place then
23:07:18  * xkoquit (Remote host closed the connection)
23:07:35  * timoxleyjoined
23:12:06  * calvinfojoined
23:16:51  * calvinfoquit (Ping timeout: 260 seconds)
23:19:39  * okyjoined
23:20:51  * st_luke_joined
23:22:06  * calvinfojoined
23:24:03  <rowbit>Daily usage stats: [developer: 24, free: 510]
23:24:04  <rowbit>Hourly usage stats: [developer: 8, free: 13]
23:25:20  * okychanged nick to xoko
23:26:16  * calvinfoquit (Ping timeout: 246 seconds)
23:26:32  <rowbit>substack, pkrumins: Encoders down: 50.56.27.70 (dev-ie6-1)
23:28:27  <defunctzombie>st_luke: gonna implement that file:// stuff into my npm-install playground module
23:32:48  <thlorenz>defunctzombie: substack so you get this, I don't: https://github.com/benbria/browserify-transform-tools/
23:33:00  <thlorenz>it makes it seem so complicated to write a transform
23:33:13  <thlorenz>s/so/do
23:34:29  * contrahaxquit
23:38:25  * contrahaxjoined
23:41:38  * pfrazequit (Ping timeout: 264 seconds)
23:47:59  * fronxquit (Remote host closed the connection)
23:49:04  <grncdr>hm, rvagg: is there a way to write use through2 to transform strings/buffers into objects?
23:50:53  * fronxjoined
23:51:49  * mikolalysenkojoined
23:52:26  <defunctzombie>thlorenz: engineers gonna engineer
23:56:21  <thlorenz>defunctzombie: substack we so need global transforms, i.e. they get invoked when child deps get resolved as well
23:56:32  <thlorenz>my viralify hack is causing more pain than gain
23:56:43  <defunctzombie>global transforms?
23:57:14  <thlorenz>yep, so when some dependency gets resolved I wanna maybe transform that as well
23:57:49  <thlorenz>but if it has it's own package.json and my transform is not in it, it doesn't run my transform for those files
23:58:36  <thlorenz>which is why I wrote viralify, which injects my transform into all these dependencies, but as I said --- not working too great for larger packages with lots of dependencies