00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:05:23  * st_lukequit (Remote host closed the connection)
01:03:34  * _sorensenquit (Ping timeout: 240 seconds)
01:21:45  * defunctzombie_zzchanged nick to defunctzombie
01:31:19  <jjjjohnnny>neo-muturism
01:31:54  * wiwilliaquit (Ping timeout: 264 seconds)
01:39:36  * wiwilliajoined
01:58:09  * slaskisquit (Quit: slaskis)
02:04:58  <jez0990__>jjjjohnnny: neo-mutualism?
02:14:20  * wiwilliaquit (Ping timeout: 250 seconds)
02:46:49  * tilgoviquit (Read error: Operation timed out)
02:59:54  * ralphtheninjaquit (Ping timeout: 256 seconds)
03:25:17  <isaacs>substack: http://typicalprogrammer.com/?p=8
03:26:12  <defunctzombie>https://github.com/shtylman/shtylman.github.com/blob/master/_posts/2012-12-10-npm-bundles-and-solutions.md
03:26:24  <defunctzombie>anyone that has a minute I would appreciate some feedback
03:26:31  <defunctzombie>haven't published the post yet
03:26:41  <defunctzombie>(that is why the syntax parts looks weird)
03:27:44  <defunctzombie>isaacs: you might be interested since it is about npm :)
03:28:06  <defunctzombie>and in a positive way ;)
03:28:44  <fotoverite>defunct you feel like hacking at a cafe tomorrow?
03:31:20  <defunctzombie>fotoverite: depends which cafe ;)
03:36:16  <substack>defunctzombie: read it
03:36:35  <substack>starting to agree that browserify should have a mechanism for handling shims
03:36:44  <defunctzombie>:)
03:36:56  <defunctzombie>did it make sense?
03:37:06  <defunctzombie>I felt like I may have put too many disjoint concepts in there
03:37:21  <defunctzombie>with the whole different npm dependencies thing
03:37:33  <defunctzombie>that could be a small post of itself
03:38:28  <defunctzombie>substack: browserify is the inspiration for script, the only reason script exists is because I wanted to explore the idea of shims and a smaller "require" portion on the client
03:39:23  <defunctzombie>when I first heard about browserify, I immediately thought.. this.. this makes sense.. this *must* exist
03:39:35  <defunctzombie>this must be used
03:40:41  <defunctzombie>the cool thing about shims is that if packages provide them, then a module like engine.io (or sock.js I think too) could be at a point where they don't need to provide any to work on the client
03:40:51  <defunctzombie>since they just use lower level shims from xmlhttprequest and such
03:41:09  <fotoverite>probably les tomorrow have an rb meet up I need to go to later in the day.
03:41:23  <defunctzombie>k
03:41:52  <fotoverite>I agree that npm makes it easier in the browser then people think
03:45:03  <fotoverite>And we need to talk more about using npm/ender/WTF so that we can just plug and play.
03:45:27  <fotoverite>I def think you need to make it more clear and concise what exactly you want to happen and how you want it to happen.
03:45:40  <defunctzombie>you don't need ender or wtf
03:45:50  <fotoverite>Focus on engine.io and how shims work
03:45:56  <rvagg>YOU NEED ENDER
03:46:02  <defunctzombie>hahaha
03:46:05  <defunctzombie>k
03:46:19  <fotoverite>Try to cut around 1/3 to 1/4
03:46:38  <fotoverite>sort and sweet. But it's well written
03:48:08  <fotoverite>Let the tools do the work!! That's your main argument.
03:49:33  <defunctzombie>among others, but yet
03:51:46  <Raynos>oh hi
03:52:18  <Raynos>defunctzombie: your shims idea can be done at run time in the code
03:52:20  <ik>LOUDBOT: radar love
03:52:27  <ik>LOUDBOT: whosaid
03:52:28  <LOUDBOT>Juffo-Wup in #mefi on slashnet
03:52:34  <Raynos>defunctzombie: https://github.com/Raynos/clientmongo/blob/master/index.js
04:00:59  * jez0990__quit (Ping timeout: 252 seconds)
04:01:54  * jez0990_quit (Ping timeout: 264 seconds)
04:03:04  <defunctzombie>Raynos: no it cannot
04:03:20  <defunctzombie>because the bundler doesn't know which file to bring in
04:03:37  <defunctzombie>also, doing it at runtime is worse, now I have to consider these two different code paths
04:03:42  <defunctzombie>when they areally are not different paths
04:03:52  <defunctzombie>the underlying api is the same
04:04:24  <defunctzombie>doing it at runtime like you have there is a hack because browserify ignores your + " server" thing
04:04:28  <defunctzombie>but that is unclean
04:04:47  <defunctzombie>and makes no sense when I look at that code
04:05:47  <defunctzombie>package.json sims allow for your code to look normal and provide the information out of band
04:08:36  <Raynos>They are two different code paths
04:08:39  <Raynos>Your low level library
04:08:42  <Raynos>that does a split of implementation
04:08:46  <Raynos>has two implementations
04:08:50  <Raynos>require("fs") does na internal split
04:09:00  <Raynos>and either returns nodes implemenation on top of libuv file bindings
04:09:08  <Raynos>or a browser implementation on top of HTML5 file system
04:15:15  <defunctzombie>my point is that the file you have there cannot be used in a browser as is
04:15:41  <defunctzombie>whatever tool you use to make it browser ready will need to bring in the dependencies
04:15:52  <defunctzombie>in this case the valid dependencies are lib/server and lib/client
04:16:05  <defunctzombie>which I am guessing both provide the same api
04:16:52  <defunctzombie>Raynos: https://github.com/shtylman/superagent/blob/master/package.json#L39
04:17:01  <defunctzombie>https://github.com/shtylman/superagent/blob/master/index.js
04:17:08  <defunctzombie>this is the same effect except with shims
04:17:39  <defunctzombie>and no abuse of the "lib" + "server" syntax being ignored
04:18:15  <defunctzombie>and also not leaving your code to have to do things like if (window === undefined)
04:18:26  <defunctzombie>or other random checks to determine if client or server
04:18:29  <defunctzombie>which is already known
04:18:54  <defunctzombie>in either case, clientmongo is a simple example, engine.io code had some more interested use cases
04:49:40  * b__joined
04:54:12  <Raynos>defunctzombie: it can be used in the browser as is.
04:55:08  <Raynos>you just need better tooling
04:55:13  <Raynos>I prefer the run time switch
04:55:18  <Raynos>its the exact same thing you do
04:55:22  <Raynos>to support node 0.4, 0.6 and 0.8
04:55:27  <Raynos>its the exact same thing you do
04:55:31  <Raynos>to support IE6, IE7 and IE8
04:55:35  <Raynos>Its run time feature detection
04:55:52  <Raynos>Now admittedly doing if (window) is stupid because its not feature detection but is browser sniffing
04:56:49  <defunctzombie>the tooling is not the problem, you are using a quirk of your tool actually
04:56:58  <defunctzombie>I can easily write a tool that will handle that + sign
04:57:14  <defunctzombie>since both parts of the expression are string literals
04:57:35  <defunctzombie>a better tool would actually detect that and try to then load in that require as well
04:58:58  <defunctzombie>instead of coding to a quirk, just be explicit about the behavior by specifying the desired result in the package.json file since that is where the pakcage is described in the first place
05:00:19  <defunctzombie>if the tool you were using used the shim field in package.json you would have just done that
05:00:50  <defunctzombie>you used the + because that was a quirk/limitation of the tool to get some side behavior (there is nothing wrong with that btw)
05:01:00  <Raynos>defunctzombie: specificying it in the package.json doesnt scale
05:01:04  <defunctzombie>I am just trying to explain what I believe to be a cleaner, more explicit way to do it
05:01:08  <Raynos>you going to specificy what shim to use for rhino?
05:01:15  <Raynos>your going to specify what shim to use windows8 ?
05:01:19  <defunctzombie>again this argument about all these environments
05:01:22  <defunctzombie>it doesn't exist
05:01:24  <defunctzombie>no
05:01:38  <defunctzombie>the shims are for client side (browser targets)
05:01:42  <defunctzombie>the shim field scales just fine
05:01:53  <defunctzombie>these made up arguments about other environments is non existent
05:01:56  <Raynos>But this is jsut bikeshedding
05:01:57  <Raynos>the point is
05:01:58  <defunctzombie>no one is using them
05:02:02  <Raynos>you have low level libraries
05:02:06  <Raynos>that abstract host environments
05:02:08  <defunctzombie>there is node js and there is browser
05:02:10  <Raynos>and the rest of your code is clean
05:02:13  <Raynos>and it works in all environments
05:02:28  <defunctzombie>yes.. and in your case hte code is not clean
05:02:33  <Raynos>I use browserify: field for this
05:02:46  <defunctzombie>shim is an extension of that concept
05:02:49  <Raynos>oh the code that wraps host environments is never clean
05:02:51  <defunctzombie>that provides more flexibility
05:03:02  <Raynos>shim should just provide an alternative index.js
05:03:04  <Raynos>thats all you need
05:03:06  <defunctzombie>look at the engine.io example
05:03:07  <defunctzombie>no
05:03:10  <defunctzombie>that is not all you need
05:03:14  <defunctzombie>engine.io example
05:03:20  <defunctzombie>very little is shimmed
05:03:26  <defunctzombie>the rest of the code is re-used
05:03:43  <Raynos>i actually fixed engine.io
05:03:47  <Raynos>so it can be used with browserify
05:03:47  <defunctzombie>yea
05:03:49  <defunctzombie>the fi is bad
05:03:53  <defunctzombie>(require)(foo)
05:03:57  <defunctzombie>is a very very bad way to do it
05:04:18  <defunctzombie>again.. a quirk of the tool, but not a good way to do it since looking at that I know nothing about wtf is going on
05:04:18  <Raynos>not really
05:04:21  <defunctzombie>yes really
05:04:28  <Raynos>shim in the package.json is the exact same
05:04:32  <Raynos>you ahve to read the fucking package.json
05:04:34  <Raynos>to figure out
05:04:39  <Raynos>at least (require)(foo) is in the code
05:04:42  <Raynos>and you can see its a fork in the code
05:04:44  <defunctzombie>no it isn't
05:04:47  <defunctzombie>require)(foo)
05:04:53  <defunctzombie>means I have to have learned some random information somewhere
05:05:01  <defunctzombie>that is not even documented
05:05:04  <Raynos>same with shim
05:05:07  <Raynos>your just bikeshedding
05:05:11  <defunctzombie>no it isn't
05:05:12  <defunctzombie>anyhow
05:05:27  <defunctzombie>in one case you are describing the package
05:05:35  <defunctzombie>in anothre you are reshaping the language
05:05:55  <Raynos>not reshaping the language
05:06:01  <Raynos>simply putting hints in the tools
05:06:06  <Raynos>because the tools dont auto figure it out
05:06:09  <Raynos>you put hints in the package
05:06:11  <Raynos>I put hints in the code
05:06:15  <defunctzombie>the hint not in the tool here
05:06:18  <Raynos>sure the browiseryf hack
05:06:20  <defunctzombie>yes.. but this is silly
05:06:21  <Raynos>should be well documented
05:06:33  <defunctzombie>because (require)(foo)
05:06:36  <defunctzombie>is valid js
05:07:13  <defunctzombie>what you are talking about is metadata
05:07:17  <defunctzombie>not code
05:07:22  <defunctzombie>and that should be in package.json
05:07:47  <Raynos>but thats irrelevant
05:07:54  <Raynos>(require)(foo) never gets executed on the client
05:08:08  <Raynos>if (1 === 0) process.exit(42)
05:08:11  <Raynos>doesnt kill your app
05:08:15  <defunctzombie>?
05:08:22  <defunctzombie>(require)(foo) is valid js
05:08:27  <defunctzombie>why wouldn't it be executed
05:08:31  <defunctzombie>is should be executed
05:08:35  <defunctzombie>in my code it is executed
05:09:03  <Raynos>its not
05:09:07  <Raynos>because thats the server path
05:09:10  <Raynos>its only executed on the server
05:09:12  <Raynos>not in the browser
05:09:13  <defunctzombie>it isn't
05:09:14  <Raynos>because its
05:09:15  <defunctzombie>that is my point
05:09:22  <defunctzombie>it is not the server path
05:09:26  <defunctzombie>it is js in your codebase
05:09:29  <Raynos>it is
05:09:33  <Raynos>oh cmon.
05:09:34  <defunctzombie>that you would expect to be as is
05:09:36  <Raynos>there is an IE8 path
05:09:39  <Raynos>and theres a chrome path
05:09:44  <defunctzombie>?
05:09:48  <Raynos>in IE8 you use localstorage
05:09:51  <Raynos>in chrome you use indexeddb
05:09:54  <Raynos>its a split, a fork.
05:09:59  <defunctzombie>so
05:10:19  <Raynos>so the indexeddb code
05:10:21  <Raynos>will crash in IE8
05:10:26  <Raynos>just like the nodejs code will crash in IE8
05:10:30  <Raynos>it should not be executed
05:10:39  <defunctzombie>look, I mean... honestly. to me this is one of those things that either makes sense or you doesn't and you can continue to do it your way
05:10:46  <defunctzombie>to me (require)(foo)
05:10:49  <defunctzombie>is total bs
05:10:50  <Raynos>(require)(code) is a compiler hint
05:10:50  <Raynos>that's all it is
05:10:56  <Raynos>its a hint to tell browserify
05:10:57  <Raynos>dont bundle it
05:11:02  <Raynos>its like a C pragma
05:11:09  <Raynos>to tell the compiler "actually I know better, do this instead"
05:11:18  <Raynos>I agree its a shit API
05:11:22  <Raynos>but who gives a fuck
05:11:24  <defunctzombie>preprocessor is satan
05:11:26  <Raynos>im not going to rewrite browserify
05:11:29  <defunctzombie>Raynos: I give a fuck
05:11:31  <Raynos>if you do
05:11:32  <Raynos>and its better
05:11:34  <defunctzombie>because I like to make things better
05:11:34  <Raynos>then let me know
05:11:47  <defunctzombie>and I like to propose what I think are better ways going forward
05:12:08  <defunctzombie>you are using (require)(foo) not because you like it but because that was there
05:12:18  <defunctzombie>I did make something I like better
05:12:23  <Raynos>the problem is
05:12:25  <defunctzombie>my post was not vaporware ;)
05:12:29  <defunctzombie>I use what I made
05:12:32  <Raynos>is your tool better then browserify
05:12:36  <defunctzombie>the first iterations didn't have these things
05:12:37  <Raynos>does it have the same test coverage
05:12:40  <Raynos>is it faster
05:12:44  <defunctzombie>for my needs it is better
05:12:48  <Raynos>does it compile to somethign smaller
05:12:52  <defunctzombie>yes
05:12:56  <Raynos>how do I swap it out in production
05:13:05  <defunctzombie>however you want
05:13:06  <Raynos>how do I trust you to not break my code :D
05:13:10  <defunctzombie>I dunno how you do it in production
05:13:16  <defunctzombie>how do you trust anyone?
05:13:25  <Raynos>i trust substack by sheer chance
05:13:27  <defunctzombie>look.. it is a module I am working on to solve some use cases I have
05:13:32  <Raynos>and by knowing a great deal about the browserify internals
05:13:52  <defunctzombie>but when those internals change?
05:13:52  <Raynos>But sriously
05:13:53  <Raynos>link.
05:13:58  <defunctzombie>link to what?
05:14:27  <defunctzombie>I use it through my middleware
05:14:29  <Raynos>to your compiler
05:14:41  <defunctzombie>https://github.com/shtylman/node-script
05:14:44  <defunctzombie>that is the tool
05:15:00  <defunctzombie>if you like browserify I would stick with that honestly
05:15:17  <defunctzombie>my goal is not to replace browserify, I would be using browserify if it did the things i needed :)
05:15:20  <defunctzombie>and maybe one day it will
05:15:41  <Raynos>no manual build step is bullshit
05:15:45  <defunctzombie>?
05:15:48  <defunctzombie>there is a cli
05:16:01  <defunctzombie>for your manual build step if you want
05:16:12  <defunctzombie>personally I think manual build step is bs, so ;)
05:16:16  <defunctzombie>I have a computer
05:16:19  <defunctzombie>if I wanted manual work
05:16:23  <defunctzombie>I wouldn't have a computer
05:16:32  <Raynos>the problem with doing it dynamically
05:16:34  <Raynos>is that its too slow
05:16:37  <Raynos>doesn't scale
05:16:41  <defunctzombie>it scales
05:16:43  <defunctzombie>it is fast
05:16:46  <Raynos>the best you can do is do it on a watch
05:16:47  <defunctzombie>and I don't have any of those problems
05:17:01  <Raynos>either your one isnt as slow as browserify
05:17:05  <Raynos>or your not using enough code
05:17:22  <defunctzombie>I have plenty of code and it works fine
05:17:32  <defunctzombie>maybe you have more code.. I dunno
05:17:37  <defunctzombie>honestly it hasn't been a problem
05:17:45  <defunctzombie>so I can't speak about it as if it is a problem for me
05:18:08  <Raynos>maybe ill give it a try some itme
05:18:17  <defunctzombie>I am the only one that uses it
05:18:21  <defunctzombie>(most likely)
05:18:30  <defunctzombie>I am not trying to convince you to use it ;)
05:18:56  <Raynos>oh but I want an alternative to browserify
05:18:59  <Raynos>browserify sucks
05:19:01  <Raynos>its too slow
05:19:03  <Raynos>too complex
05:19:07  <Raynos>doesnt have all the features
05:19:15  <defunctzombie>james is making it better
05:19:23  <Raynos>by removing features
05:19:29  <defunctzombie>heh
05:19:30  <Raynos>and telling people to unix pipes whatever they want :P
05:19:42  <defunctzombie>well, the idea is that the core can be simpler
05:19:49  <defunctzombie>what features do you want?
05:20:05  <defunctzombie>everyone has their list of features
05:20:21  <defunctzombie>the question is does it need to be integral to the tool or something bolted on :/
05:21:25  * st_lukejoined
05:21:44  <st_luke>Yo substack
05:24:33  * st_lukequit (Client Quit)
05:25:47  <substack>hoy
05:28:58  <Raynos>defunctzombie: performance. That's the only feature I want
05:29:04  <Raynos>MORE PERFORMANS
05:29:06  <Raynos>PER FORE MANS
05:30:32  <defunctzombie>Raynos: performance needs more clarification :) and usually depends on your use case
05:30:53  <Raynos>less size
05:30:56  <Raynos>faster compilation
05:30:57  <guybrush>raynos browserify is too slow?
05:30:59  <Raynos>client side caching
05:31:12  <guybrush>wtf where do you need it being so fast
05:31:14  <defunctzombie>client side caching is not a browserify issue
05:31:15  <Raynos>also sharing dependencies across multiple bundles
05:31:16  <defunctzombie>you can do that
05:31:32  <defunctzombie>yes, sharing deps is important.. that is another thing I needed script to do
05:31:35  <guybrush>you have so much code?
05:31:35  <Raynos>guybrush: the part where I hit ctrl + S and my browser refreshes with the new code instantly
05:31:44  <defunctzombie>but some of the other things I think is outside the scope of the bundler
05:31:47  <Raynos>INSTANTLY
05:31:59  <Raynos>client side caching is outside of teh scope of the bundler
05:32:06  <guybrush>i dont know, but the google-thing sounded cool
05:32:11  <defunctzombie>Raynos: if you have middleware then it works instaly
05:32:16  <guybrush>the google code server experiment whatever thing
05:32:18  <defunctzombie>and will load on demand
05:32:20  <Raynos>...
05:32:29  <Raynos>loading on demand requires a server
05:32:30  <Raynos>it can work
05:32:32  <Raynos>but it requires speed
05:32:35  <Raynos>everything requires speed
05:32:37  <defunctzombie>works for me
05:32:43  <defunctzombie>maybe I have better computers ;)
05:32:43  <Raynos>last time I tried it
05:32:46  <Raynos>browserify took 3s
05:33:01  <defunctzombie>for what amount of code?
05:33:04  <guybrush>wow :D
05:33:04  <Raynos>I do have 2MB of uncompressed JS
05:33:14  <Raynos>< WRITES REAL APPS
05:33:30  <defunctzombie>more code doesn't make a real app ;P
05:33:35  <defunctzombie>maybe you write too much code ;)
05:34:00  <Raynos>$ npm ls | wc -l
05:34:00  <Raynos>338
05:34:05  <guybrush>that must be like 3dstudiomax in the browser
05:34:25  <defunctzombie>um
05:34:33  <defunctzombie>that probably included sub dependencies
05:34:39  <defunctzombie>and is all that being bundled up?
05:34:42  <Raynos>$ npm ls | wc -l
05:34:42  <Raynos>386
05:34:44  <Raynos>Oh wow
05:34:48  <Raynos>that other one has 386 >_<
05:34:54  <guybrush>haha
05:35:04  <Raynos>thats just stupid
05:35:19  <defunctzombie>Raynos: also, yes, script is faster because I use a different version of node-detective
05:35:29  <guybrush>Raynos: you are rolling your production with git or npm? :D
05:35:48  <Raynos>git
05:35:51  <Raynos>npm is way too slow
05:35:53  <Raynos>for production
05:36:01  <defunctzombie>one of the things it doesn't do is the (require)(foo) stuff, which allows it to be faster since it removes range changes in esprima
05:36:04  <defunctzombie>?
05:36:09  <defunctzombie>npm is too slow?
05:36:13  <defunctzombie>wtf...
05:36:16  <Raynos>npm install takes like 2 minutes
05:36:19  <defunctzombie>why do you need it to be faster
05:36:23  <Raynos>and crashes half the time
05:36:42  <defunctzombie>maybe you need less deps ;)
05:36:49  <substack>more deps
05:36:52  <defunctzombie>or realize that a large project will just time time to install
05:37:01  <guybrush>every function should be a dep haha
05:37:07  <Raynos>substack: <Raynos> $ npm ls | wc -l <Raynos> 386
05:37:10  <defunctzombie>if you install all the time maybe clone the npm repo
05:37:10  <Raynos>Surely that's wrong right?
05:37:13  <defunctzombie>and install locally
05:37:20  <defunctzombie>people have been doing this with debian repos for ages
05:37:25  <Raynos>guybrush: +1
05:37:51  <defunctzombie>anyhow.. if npm is slow.. see how you can make it faster ;)
05:38:06  <defunctzombie>again, I don't have a problem with its speed so can't help there :D
05:38:13  <Raynos>the thing is
05:38:18  <Raynos>I dont feel like fixing all these problems
05:38:21  <Raynos>I write too much code.
05:38:33  <defunctzombie>if you don't fix your problems
05:38:41  <defunctzombie>then either they are not serious enough
05:38:42  <Raynos>I need to inspire other people
05:38:44  <Raynos>to fix my problems
05:38:51  <Raynos>this is optimum
05:38:51  <guybrush>good thinking
05:38:53  <defunctzombie>or you don't care about them
05:39:09  <Raynos>I have too much to do ._.
05:39:15  <Raynos>I have to give a talk on thursday about leveldb & p2p
05:39:23  <Raynos>and I havn't finished the demos
05:39:34  <guybrush>Raynos: did you try to go the component route?
05:39:41  <defunctzombie>NO
05:39:43  <guybrush>like write a stupid component.json in every pkg
05:39:44  <guybrush>haha
05:39:56  <defunctzombie>jesus christ
05:40:16  <defunctzombie>as if we couldn't think of a way to make this even more confusing
05:40:22  <guybrush>omg WHY not just use package.json, we could all just be happy and agree on that :D
05:40:24  <defunctzombie>fucking rpm vs deb all over again
05:41:41  <Raynos>guybrush: I will puke.
05:42:12  <Raynos>TJ is excellent
05:42:16  <Raynos>at writing things that are just good enough
05:42:27  <Raynos>and getting everyone to waste their time using tools that are basically not good enough
05:42:54  <defunctzombie>don't be a hater ;)
05:43:17  <guybrush>Raynos hates just everything but streams
05:43:22  <guybrush>esp middlewares
05:43:24  <Raynos>Not true!
05:43:26  <Raynos>I hate streams too
05:43:29  <Raynos>Fucking hate streams.
05:43:31  <Raynos>Far too complex
05:44:49  <Raynos>if theres anywhere you will find it a bug with streams
05:44:54  <Raynos>I garantuee its in mux demux!
05:46:00  * tphummelquit (Quit: tphummel)
05:46:23  * b__quit (Quit: Computer has gone to sleep.)
05:52:46  <guybrush>https://github.com/google/module-server looks cool
05:54:20  <Raynos>yeah but it feels overkill :D
05:55:54  <guybrush>well i think bfy just is the best solution right now
05:56:27  <guybrush>as soon as there is need for multiple bundles just deal with it and load the extra code
05:57:49  <Raynos>well I am loading multiple bundles
05:57:53  <Raynos>it just runs into the npm dedup problem
05:57:58  <guybrush>crazy
05:57:58  <Raynos>which sucks
05:58:37  <guybrush>if its really a hard problem for you, its time for you to step in and fix it :ppp
06:00:42  <Raynos>No!
06:00:52  <Raynos>I want to write less code
06:00:53  <Raynos>nore more
06:03:19  <guybrush>they should solve the problem in node-core!!
06:03:44  <guybrush>it just doesnt fit the userland haha
06:09:50  <Raynos>they should solve all problems in node-core!!
06:10:00  <Raynos>node-core should just require("hoarders")
06:10:09  <guybrush>haha
06:32:29  <substack>ok so mocha is giving me invalid tap output >_<
06:33:14  <substack>the tap reporter doesn't behave the same in the browser as the server
06:34:06  <ik>guess it's time to switch to C#
06:34:18  <substack>I GUESS SO
06:34:34  <substack>ik: I actually really hate mocha and prefer tiny things that just print strings to stdout
06:52:39  * AvianFlu_joined
06:52:40  * AvianFluquit (Read error: Connection reset by peer)
06:52:51  * AvianFlu_changed nick to AvianFlu
07:09:57  <defunctzombie>substack: I prefer for my code to test itself
07:10:06  <defunctzombie>and yearn for the singularity
07:10:11  <defunctzombie>which will allow suck marvels
07:11:48  * substacklikes unclever tests
07:12:14  <ik>nerp
07:25:01  * b__joined
07:26:03  * defunctzombiechanged nick to defunctzombie_zz
07:35:57  * nk109joined
08:07:48  * rvaggquit (Ping timeout: 248 seconds)
08:08:24  * slaskisjoined
08:09:04  * rvaggjoined
08:15:01  * mbalhoquit (Ping timeout: 245 seconds)
08:16:06  * mbalhojoined
08:25:01  * AvianFluquit (Remote host closed the connection)
08:26:50  * thatguydan_joined
08:27:41  * thatguydan_quit (Client Quit)
08:30:09  * thatguydanquit (Ping timeout: 255 seconds)
09:19:53  * jesusabdullahquit (Ping timeout: 265 seconds)
09:20:23  * munroquit (Ping timeout: 265 seconds)
09:20:32  * jesusabdullahjoined
09:24:57  * b__quit (Quit: Textual IRC Client: www.textualapp.com)
09:30:11  <juliangruber>substack: do you understand why someone would write something like mocha?
09:37:25  * fentquit (Quit: leaving)
09:39:00  * thatguydanjoined
09:48:45  * b__joined
09:50:24  * jez0990__joined
09:50:24  * jez0990_joined
09:54:52  * jez0990__quit (Ping timeout: 244 seconds)
09:54:52  * jez0990_quit (Ping timeout: 244 seconds)
10:07:03  * slaskisquit (Quit: slaskis)
10:28:05  * thatguydanquit (Remote host closed the connection)
10:39:34  <guybrush>substack: i dont like that tape doesnt display linenumbers
10:39:39  <guybrush>or do i miss something?
10:41:48  <juliangruber>guybrush: do you do t.equal(1, 2, 'my super helpful message') ?
10:42:59  <guybrush>yes
10:43:42  <guybrush>somehow i really like just using async and assert :D
10:45:43  <guybrush>i like mocha because its easy to just drop mocha and use mocha-test-files with anything else
10:46:05  <guybrush>just require the file and iterate through the export
10:46:47  <guybrush>that is, when you write exports-style
10:46:56  <juliangruber>guybrush: that's nice with mocha, it just works as you'd expect it to. therefore it's not "correct"
10:47:26  <guybrush>i dont understand that :p
10:48:42  <guybrush>i have javascript files with module.exports = {foo:function(){},bar:{blub:function(){}}}, thats how i like to write test-files, or even module.exports = function(){}
10:49:06  <guybrush>others may prefer not exporting but just executing the test-functions
10:49:30  <juliangruber>oh
10:49:32  <guybrush>but with the way i like to do it, i can easily implement things like keywords and stuff
10:49:33  <juliangruber>I don't doo that
10:49:38  <juliangruber>do
10:49:39  <guybrush>grep meta-information and things
10:50:15  <guybrush>but usually i just run mocha since it just works with that style
10:50:29  <juliangruber>I guess I never needed that much flexibility and meta info for tests
10:50:54  <guybrush>really i just like that its possible (and fits my mind and stuff)
10:51:53  <guybrush>in the end all that matters is to have tests at all :p
10:52:02  <juliangruber>yup :)
10:58:00  * ralphtheninjajoined
11:11:51  * 16SAAOFK7joined
11:11:51  * 15SAAN2NTjoined
11:19:48  * munrojoined
11:24:43  * 16SAAOFK7quit (Ping timeout: 260 seconds)
11:24:47  * 15SAAN2NTquit (Ping timeout: 255 seconds)
11:30:54  * fotoverite_joined
11:32:10  * jez0990__joined
11:32:12  * jez0990___joined
11:34:18  * fotoveritequit (Ping timeout: 264 seconds)
11:34:18  * fotoverite_changed nick to fotoverite
11:39:04  * jez0990__quit (Ping timeout: 252 seconds)
11:39:13  * jez0990___quit (Ping timeout: 255 seconds)
11:48:39  * b__quit (Quit: Textual IRC Client: www.textualapp.com)
11:51:49  * jez0990__joined
11:53:17  * jez0990___joined
11:59:26  * slaskisjoined
12:04:50  * jez0990__quit (Ping timeout: 255 seconds)
12:05:15  * jez0990___quit (Ping timeout: 276 seconds)
12:29:38  * yorickjoined
12:49:58  * b__joined
12:50:23  * thatguydanjoined
13:02:54  * purrquit (Ping timeout: 240 seconds)
13:03:17  * purrjoined
13:12:42  * thatguydanquit (Quit: thatguydan)
13:33:28  * jez0990joined
13:33:32  * jez0990__joined
14:00:13  * jez0990__quit (Read error: Operation timed out)
14:01:06  * jez0990quit (Ping timeout: 250 seconds)
14:02:18  * 45PABHHUDjoined
14:02:18  * 20WABPZTDjoined
14:06:29  * 45PABHHUDquit (Ping timeout: 244 seconds)
14:06:42  * 20WABPZTDquit (Ping timeout: 264 seconds)
14:49:52  * b__quit (Quit: Textual IRC Client: www.textualapp.com)
14:53:54  * shuaibjoined
15:05:12  * jan____quit (Changing host)
15:05:12  * jan____joined
15:25:04  * tanepiperquit (*.net *.split)
15:26:08  * tanepiperjoined
15:30:54  * tanepiperquit (*.net *.split)
15:32:03  * tanepiperjoined
15:34:04  * tomshredsjoined
15:37:43  * st_lukejoined
15:45:09  * b__joined
15:46:41  * defunctzombie_zzchanged nick to defunctzombie
15:53:50  * ehd_quit (Remote host closed the connection)
15:53:50  * Raynosquit (Remote host closed the connection)
15:53:50  * sveisveiquit (Remote host closed the connection)
15:53:51  * pikpikquit (Remote host closed the connection)
15:53:51  * duncanbeeversquit (Write error: Broken pipe)
15:53:58  * tomshredsquit (Quit: Linkinus - http://linkinus.com)
15:58:30  * wiwilliajoined
16:13:16  * _sorensenjoined
16:23:47  * ehd_joined
16:24:09  * duncanbeeversjoined
16:27:04  * AvianFlujoined
16:29:14  * Raynosjoined
16:29:26  * sveisveijoined
16:32:49  * b__quit (Quit: Computer has gone to sleep.)
16:33:41  * pikpikjoined
16:34:07  * shuaibquit (Ping timeout: 260 seconds)
16:37:29  <rowbit>/!\ ATTENTION: (default-local) smaus@... successfully signed up for developer browserling plan ($20). Cash money! /!\
16:37:29  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
16:37:34  * shuaibjoined
16:41:07  * shuaibquit (Client Quit)
17:12:55  * b__joined
17:32:27  * tphummeljoined
17:32:27  * tphummelquit (Client Quit)
17:33:57  * tphummeljoined
17:34:13  * defunctzombiechanged nick to defunctzombie_zz
17:42:09  <ik>hi
17:47:06  * b__quit (Quit: Computer has gone to sleep.)
18:10:23  * dominictarrjoined
18:29:53  * jez0990_joined
18:33:45  * slaskisquit (Quit: slaskis)
18:38:40  * defunctzombie_zzchanged nick to defunctzombie
18:59:33  * tphummelquit (Quit: tphummel)
19:02:34  * _ritchquit (Quit: Leaving.)
19:07:12  * _ritchjoined
19:12:03  * b__joined
19:21:57  <dominictarr>st_luke, ping?
19:28:48  * nk109quit (Quit: Computer has gone to sleep.)
19:34:50  * slaskisjoined
19:37:53  * ITprojoined
19:40:24  * dominictarrquit (Ping timeout: 264 seconds)
19:43:04  * AvianFluquit (Read error: Connection reset by peer)
19:43:18  * AvianFlujoined
19:44:59  * tphummeljoined
19:46:53  * dominictarrjoined
20:02:08  * b__quit (Quit: Computer has gone to sleep.)
20:09:26  <st_luke>dominictarr: pong
20:09:48  <dominictarr>st_luke, hey whats up? how are you enjoying funemployment?
20:10:10  * b__joined
20:10:44  <st_luke>dominictarr: not quite yet, I'm still doing a little bit of lingering at the company cause I want to get some of the new people squared away
20:12:33  <st_luke>how long are you in town? I've got an extra cell phone you're free to borrow for as long as you need if you want to be on the grid
20:13:50  * jez0990_quit (Ping timeout: 265 seconds)
20:16:48  <dominictarr>st_luke, ah good
20:17:00  <dominictarr>I'm in town until the 26th!
20:17:48  <dominictarr>a phone would be handy. I have a feeling that new york is gonna be a phone town.
20:17:59  * _ritchquit (Quit: Leaving.)
20:18:52  * _ritchjoined
20:19:17  <dominictarr>okay, going to meet paolo, bbiab.
20:19:52  <st_luke>dominictarr: cool man, I'll be around
20:29:23  * dominictarrquit (Ping timeout: 256 seconds)
20:42:38  <defunctzombie>st_luke: want to go to that dessert place tonight?
20:44:10  * b__quit (Quit: Computer has gone to sleep.)
20:47:40  * b__joined
21:18:01  <st_luke>defunctzombie: probably not tonight, I drank a bit too much last night and am still feeling a bit ill from it
21:18:27  <fotoverite>was that way last week not fun.
21:19:13  <st_luke>yeah I guess this is why I don't usually drink
21:21:22  * substackinvestigates why mocha's tap output is completely broken in the browser
21:22:52  <substack>slaskis, defunctzombie: I'm considering putting a "harness" field in the testling field in package.json that will handle all the harness issues when set to "mocha"
21:23:21  <substack>once I get this stuff working in the first place that is
21:23:32  * _ritchpart
21:23:49  <slaskis>substack: haha, sounds great
21:24:57  <substack>then the next big part will be running server components as part of a browser test
21:25:18  <substack>I want this for repos like dnode and shoe
21:27:42  <pkrumins>substack: did you hear back about the other invoice?
21:27:54  <pkrumins>if not let me know and i'll contact the people
21:31:05  <substack>not yet
21:31:08  <substack>give them a bit more
21:31:42  <pkrumins>alright!
21:31:46  * substackgetting mocha tests running on testling-ci
21:32:12  <substack>it's pretty close except that mocha isn't giving valid tap in browser mode
21:32:15  <pkrumins>that is amazing
21:32:48  <slaskis>is it different tap output compared to the server?
21:32:56  <substack>yes
21:33:08  <substack>here's an example:
21:33:51  <substack>https://gist.github.com/4262317
21:34:15  <slaskis>oh
21:34:18  <substack>for the same test file
21:34:32  <slaskis>so it's the string formatter of console.log that doesnt work in the browser
21:34:36  <substack>aha!
21:34:40  <substack>that would explain it
21:34:43  <slaskis>:)
21:34:56  <slaskis>i've had similar issues
21:35:01  <substack>except that it also reports a failing test
21:35:03  <substack>for some reason
21:35:14  <substack>I'll shim out the formatter part though
21:35:17  <slaskis>%d for one thing doesn't even work with 0 in chrome which is dumb
21:35:24  <substack>crazy
21:35:36  <slaskis>it formats it as an empty string
21:36:37  <slaskis>wait, gist has changed a lot
21:36:43  <slaskis>since like, hours ago
21:36:47  <substack>yes
21:36:53  <substack>they just rolled out big changes
21:38:23  * tomshredsjoined
21:38:49  <slaskis>cool
21:52:55  <Raynos>http://www.meetup.com/East-Bay-HTML5/events/91451482/
21:52:59  <Raynos>substack: Your comign to that right?
21:53:04  <substack>yep
21:58:59  <isaacs>mbalho: http://imgur.com/y779M
21:59:27  <fotoverite>O god.
22:00:00  <fotoverite>I don't know that's better or worse then http://trotify.com/
22:06:48  <substack>slaskis: I've got the mocha example working locally now
22:07:00  <substack>thanks for noticing the %[ds] thing!
22:07:05  <slaskis>substack: cool!
22:07:15  <slaskis>let me know if you want me to try it out
22:07:32  <slaskis>np
22:07:45  <substack>great!
22:10:11  <substack>rolling this out pretty soon
22:10:28  <substack>pkrumins is on it right now in fact
22:11:52  <ik>\o/
22:12:00  <ik> | that guy!
22:12:02  <ik>/ \
22:12:37  <pkrumins>it's running!
22:13:26  <st_luke>930 modules until 20000
22:13:39  <st_luke>I mean 929
22:13:49  <fotoverite>Woot, need to run my states and regenerate my graphs
22:17:30  * st_lukequit (Remote host closed the connection)
22:18:01  <substack>http://ci.testling.com/substack/mocha-testling-ci-example !!!
22:18:12  <slaskis>woohoo!
22:18:31  <slaskis>are those ie errors expected?
22:18:51  <substack>well I guess mocha just doesn't work in ie yet
22:18:56  <substack>the other browsers are fine
22:19:10  <slaskis>ooh
22:19:56  <substack>ok so the next thing I'll do is add the "harness": "mocha" field I talked about earlier
22:20:12  <substack>defunctzombie: it works now! http://ci.testling.com/substack/mocha-testling-ci-example https://github.com/substack/mocha-testling-ci-example
22:26:08  <slaskis>it might be should.js that's not supported in ie. i think it uses some es5 stuff. what if you'd use expect.js? (also common w. mocha)
22:26:51  <slaskis>or a plain assert
22:28:28  <defunctzombie>substack: nice! so all that is needed is "harness": "mocha" and no other files?
22:28:56  <substack>yes once I write that part
22:29:26  <substack>slaskis: trying with plain asserts
22:30:27  <substack>it works :D
22:30:49  <slaskis>fun!
22:30:51  * tomshredsquit (Quit: Linkinus - http://linkinus.com)
22:30:54  <substack>http://ci.testling.com/substack/mocha-testling-ci-example
22:32:13  <slaskis>magic :)
22:32:31  <pkrumins>sweet
22:32:45  <defunctzombie>\o/
22:32:49  <slaskis>your output page sure does not like long project names :P
22:33:32  <defunctzombie>substack: let me know when you think it is reasonable and I will throw my int and num packages on there :)
22:33:43  <substack>slaskis: yep I'll fix that in a bit
22:33:51  <substack>defunctzombie: sweet
22:33:53  <defunctzombie>I use those browser side quite a bit so I will be happy to be a guinea pig
22:34:33  <substack>this approach seems really solid so far
22:35:10  <defunctzombie>k
22:41:01  * b__quit (Quit: Computer has gone to sleep.)
22:51:55  * dominictarrjoined
22:53:17  <CoverSlide>http://i.minus.com/ijCBM2h1of0vE.gif
22:56:14  <dominictarr>fotoverite, you know the ace? paolo is recommending it
22:56:56  <hij1nx>yep ace hotel might be nice for drinks right now
22:57:25  <hij1nx>less crazy during the weekday +has drinks/internet
22:58:14  <hij1nx>http://www.acehotel.com/newyork/dining
23:01:15  <mbalho>isaacs: that is meant for me
23:06:12  * devaholicquit (Ping timeout: 264 seconds)
23:07:20  <isaacs>mbalho: almost
23:07:23  <isaacs>it'd be better if it was a cat
23:07:27  <isaacs>mbalho: but yes, i think they had you in mind.
23:16:42  * defunctzombiechanged nick to defunctzombie_zz
23:26:24  * devaholicjoined
23:33:25  * slaskisquit (Quit: slaskis)
23:43:06  <jjjjohnnny>High Frequency Trading Bots acting like scalpers http://www.zerohedge.com/news/2012-12-11/guest-post-five-minute-example-hft-shenanigans
23:48:20  * wiwilliaquit (Ping timeout: 244 seconds)
23:48:27  <Raynos>substack: https://github.com/airportyh/testem/pull/124 tape's output is different from tap for `.stack` property. How should tap consumers handle these edgecases cleanly?
23:49:22  <substack>tap consumers should be really really lenient about accepting so-called malformed input
23:53:15  <dominictarr>"differently formed" would be more PC
23:53:25  <dominictarr>or "schema challenged"
23:54:01  <Raynos>isaacs, substack: tape / tap has a Test.prototype.throws thats not back compat with assert.throws.
23:54:06  <Raynos>This is >:(
23:54:16  * substackjust copied tap
23:54:54  <substack>Raynos: you should write tap-assert
23:55:02  <substack>exactly the node assert api but it outputs tap
23:55:16  <Raynos>that would be good
23:55:19  <Raynos>way lighter then tape
23:55:22  <Raynos>and tape can use it
23:55:24  <Raynos>but not now! :P
23:59:45  <isaacs>substack: i already wrote that
23:59:49  <isaacs>Raynos: it's called tt