00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:09  * ircretaryjoined
00:02:19  * thlorenz_joined
00:06:43  * thlorenz_quit (Ping timeout: 260 seconds)
00:10:36  * jcrugzzquit (Ping timeout: 256 seconds)
00:16:01  * owen1joined
00:17:00  <Raynos>jesusabdullah: TELL ME THESE SECRETZ
00:18:53  * maksimlinjoined
00:19:29  <jesusabdullah>Raynos: What, why people hate your framework?
00:19:43  <jesusabdullah>Raynos: you'll just have to get CascadiaJS to accept my talk and hope they record it!
00:19:51  <Raynos>jesusabdullah: no why do I lean on small modules and hate everyone elses framework :P
00:20:15  <jesusabdullah>Don't fret Raynos
00:20:17  <jesusabdullah>somewhere
00:20:18  <jesusabdullah>somehow
00:20:20  <jesusabdullah>there is a person
00:20:30  <jesusabdullah>that considers one of your libraries a framework
00:21:47  * Kesslerjoined
00:24:56  * Kessler_quit (Ping timeout: 260 seconds)
00:26:43  <mikeal>all libraries are frameworks, are require statements are middleware
00:26:47  <mikeal>all
00:31:18  * thlorenzquit (Remote host closed the connection)
00:31:55  <jesusabdullah>See? Mikeal hates your framework Raynos
00:32:15  * ricardobeatquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
00:32:23  * mikealis on your framework rubbing my dirty shoes in to it screaming "fuck your framework!"
00:33:00  <jesusabdullah>mikeal: if my talk gets accepted I want that as a picture
00:34:48  * ednapiranhaquit (Remote host closed the connection)
00:37:41  * whit537quit (Quit: whit537)
00:38:28  * whit537joined
00:42:06  * Kesslerquit (Ping timeout: 264 seconds)
00:42:38  * ricardobeatjoined
00:44:02  * jxsonquit (Remote host closed the connection)
00:47:13  * AvianFluquit (Remote host closed the connection)
00:47:42  * AvianFlujoined
00:49:12  * wolfeidaujoined
00:51:57  * mk30_quit (Ping timeout: 250 seconds)
00:55:38  * jcrugzzjoined
01:00:01  * spionjoined
01:00:44  * jcrugzz_joined
01:00:58  <spion>hey guys, this is a first draft of a really huge analysis/comparison of node.js async patterns. glad if you can give me an opinion. http://spion.github.io/posts/analysis-generators-and-other-async-patterns-js.html
01:02:38  <mbalho>spion: what do you think of the 'Slightly pyramidal code full of callbacks.' in the context of http://callbackhell.com/
01:02:40  * thlorenzjoined
01:02:55  * jcrugzzquit (Ping timeout: 246 seconds)
01:03:05  <mbalho>spion: e.g. flatten it, put in in a module, require the high level api
01:03:11  * jergasonjoined
01:03:19  * jcrugzz_changed nick to jcrugzz
01:03:30  <spion>personally I think slightly pyramidal is fine
01:03:48  <mikeal>spion: interesting
01:04:02  <mikeal>mbalho: read his "flatten.js" comment :)
01:04:10  * mcollinajoined
01:04:20  <mbalho>oh haha
01:04:34  <mbalho>thats what i get for not reading the whole article
01:05:27  <mikeal>really surprised in the difference between flatten and original in some of these benchmarks
01:05:52  <mikeal>i'm thinking that something might be functionally a little different
01:06:16  <mikeal>spion: i have no issues with this, but be aware that *any* micro benchmark will get flamed on twitter :)
01:06:23  <mikeal>for what it's worth though, great job :)
01:06:34  <spion>the benchmarks are not statistically sound
01:07:00  * ricardobeatquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
01:07:03  <spion>i just wanted to have a rough estimate
01:07:04  <mbalho>spion: im kind having a hard time with the colors on the graphs
01:07:34  <mbalho>just that first graph
01:07:46  <mbalho>im guessing the top red line is flattened?
01:08:00  <mbalho>or is the promises, the reds look pretty similar to me
01:08:12  <spion>ah right, the graphs have too many items I'll try adding boxes/circles
01:08:12  <damonoehlman>spion mbalho: having a look now, lot of information to digest
01:08:24  * jergasonquit (Ping timeout: 276 seconds)
01:08:25  * thlorenzquit (Ping timeout: 276 seconds)
01:08:33  <damonoehlman>worth splitting into multiple articles?
01:08:48  * mcollinaquit (Ping timeout: 260 seconds)
01:08:49  <mbalho>spion: it'd be cool if you could hover over the legend to highlight the line
01:09:31  * mk30_joined
01:09:47  <spion>flot can probably do that.
01:09:57  <mikeal>spion: in the conclusion you might want to explore the possibility of generators being, ultimately, more or less performant than each other
01:10:21  <mikeal>after enough optimizations and code in the community
01:10:35  <mikeal>theoretically generators can be "lighter" than callbacks
01:10:54  <mikeal>although callbacks lend themselves to some other optimizations that generators don't
01:11:13  <mikeal>i'm conflicted
01:11:20  <mikeal>but skeptical
01:11:34  <mbalho>what about size of stack trace? does that correlate with how easy somethign is to debug?
01:11:35  <spion>I have no idea what will happen :|
01:11:52  * owen1quit (Read error: Connection reset by peer)
01:11:57  <spion>mbalho, yeah probably, but its easier to take things out...
01:11:59  <mikeal>in my experience
01:12:05  <mikeal>the last 2 or 3 lines of a stack trace only matter
01:12:10  <mikeal>unless, your stack trace spans stacks
01:12:16  <mbalho>e.g. how do you measure how abstract something is
01:12:20  <mikeal>in that case, the last 2 to 3 lines of *every* stack :)
01:12:42  * wolfeidauquit (Ping timeout: 264 seconds)
01:12:44  * mikealquit (Quit: Leaving.)
01:13:37  <spion>mbalho, its a good idea
01:13:57  <spion>I'll give it some thought
01:14:40  * wolfeidaujoined
01:17:46  <spion>damonoehlman, hmm i could probably put the generators introduction into a separate article and reduce that to a paragraph and a link
01:18:47  <damonoehlman>spion: up to you, it's great to have all the information in the one article
01:18:51  * ricardobeatjoined
01:19:22  <damonoehlman>I just wonder if there is there is the potential to take a look at the various aspects you are talking about separately
01:19:50  <damonoehlman>i.e. the relative complexity of async patterns and another on the performance
01:20:36  <damonoehlman>that said attempting to get people to read mutiple articles over one single where you make your comparisons might be tough
01:24:13  * emilyrosechanged nick to nexxy
01:27:50  * owen1joined
01:35:04  * wolfeidauquit (Remote host closed the connection)
01:36:54  <Raynos>spion: https://gist.github.com/Raynos/2d1e0d7e55e4553249db
01:37:30  * vitorpachecojoined
01:38:25  <spion>Raynos, very clean :)
01:38:35  <Raynos>spion: note usage of parallel
01:38:39  <Raynos>thats the only real difference
01:38:45  <Raynos>also my error handling has a different paradigm
01:38:50  <Raynos>a non try catch paradigm :p
01:39:18  <spion>thats gens, right?
01:39:48  <spion>bails out instead of throwing, calling the callback directly
01:42:36  <Raynos>yes
01:44:03  <Raynos>https://gist.github.com/Raynos/1ba5ee6716c97c354035
01:44:07  <Raynos>my style has slightly more tokens
01:44:21  * jxsonjoined
01:46:42  <Raynos>spion: how do you test stack traces?
01:46:59  * soldairquit (Ping timeout: 250 seconds)
01:47:57  * jibay_quit (Quit: Leaving)
01:49:21  * jxsonquit (Ping timeout: 276 seconds)
01:49:32  <Raynos>spion: this is really nice thing btw
01:50:11  * thlorenzjoined
01:50:18  <spion>I insert an error FileVersion.insert - then look for it and expect the line to be line of "FileVersion.insert" + 1 :)
01:50:27  * thlorenzquit (Remote host closed the connection)
01:50:37  <spion>its a bit rudimentary and requires that I know how it works in order to tune the result :)
01:51:15  <Raynos>spion: I like how detailed this thing is
01:51:55  <spion>yeah I was definitely aiming for detailed.
01:52:25  <spion>thought that a heated debate could benefit the most from lots of info and data :)
01:52:37  * jcrugzzquit (Ping timeout: 240 seconds)
01:53:15  * jcrugzzjoined
01:53:23  <Raynos>installing v0.11.5 to test my stack trace :D
01:54:32  <spion>I haven't commited the latest changes yet though
01:54:41  <spion>trying to add legend hover to the charts
01:54:52  <spion>Should've gone with d3, I know :)
01:55:00  * kumavisjoined
01:55:15  <ricardobeat>spion: the suspend.js example is missing
01:56:05  <Raynos>spion: some of the files are missing and some of the links are wrong
01:56:21  <spion>just pushed some files now
01:58:08  <Raynos>cool
01:58:27  * mcollinajoined
01:59:51  * mcollinaquit (Read error: Connection reset by peer)
02:01:37  * jergasonjoined
02:03:27  * mk30_quit (Ping timeout: 250 seconds)
02:03:30  * thlorenzjoined
02:03:49  * ralphtheninjaquit (Ping timeout: 248 seconds)
02:03:58  * thlorenz_joined
02:08:30  * thlorenz_quit (Ping timeout: 264 seconds)
02:09:51  * st_lukequit (Remote host closed the connection)
02:11:13  * thlorenzquit (Remote host closed the connection)
02:13:40  * ednapiranhajoined
02:15:19  * owen1quit (Read error: Connection reset by peer)
02:16:55  * owen1joined
02:19:49  * mcollinajoined
02:22:39  <spion>Raynos, most of my query functions are already thunks, i.e. Version.insert(version).exec
02:22:48  <spion>s/thunks/continuables
02:23:42  * jxsonjoined
02:29:16  <spion>trying to make it work, but so far no luck.
02:29:30  <spion>I think I fixed all the links
02:32:57  <spion>okay, so chart hover and links fixed. conclusion and more proof-reading of text (and code) will have to wait for tomorrow.
02:34:00  <spion>also stack trace size.
02:34:05  <spion>thanks everyone for the input! mbalho, mkeal, raynos and damonoehlman :D
02:34:58  <spion>oh, right. I could add that thanks to the end too.
02:35:06  <spion>time for bed.
02:41:55  * ins0mniaquit (Ping timeout: 264 seconds)
02:42:15  <ricardobeat>my favorite imaginary language: https://gist.github.com/ricardobeat/6190764
02:42:22  * ricardobeatducks for cover
02:43:44  <chapel>ricardobeat: doubt you'll find anyone that disagrees here
02:44:56  * tilgoviquit (Read error: Connection reset by peer)
02:45:01  <jesusabdullah>I'll disagree. My favorite imaginary language is breakfastscript.
02:46:28  * tilgovijoined
02:46:59  <chapel>jesusabdullah: still adapting to cs?
02:47:23  <ricardobeat>I'm astonished nobody invented brunchscript yet
02:48:56  * ednapiranhaquit (Remote host closed the connection)
02:49:10  <jesusabdullah>chapel: yeah a little, like I can write it without thinking too hard but still discovering a few tricks
02:49:20  <mbalho>i invented breakfastscript
02:49:20  <jesusabdullah>chapel: cs kind of makes me want to do evil things
02:49:26  <jesusabdullah>^^^
02:49:27  <chapel>jesusabdullah: like what?
02:49:41  <mbalho>actually voodootikigod did, i just was a core contributor
02:49:42  <jesusabdullah>chapel: I had a line that looked like
02:49:46  <jesusabdullah>subscribe collect publish
02:49:49  <jesusabdullah>^^^ just like that
02:50:12  <mbalho>ricardobeat: https://gist.github.com/maxogden/1007605
02:52:03  <chapel>I take that equates to subscribe(collect(publish))?
02:52:09  <jesusabdullah>chapel: indeed
02:52:29  <chapel>though, it could mean subscribe(collect(publish()))
02:52:30  <ricardobeat>mbalho: that reminds me of something tim caswell was cooking recently
02:52:39  <chapel>or subscribe(collect, publish)
02:52:49  <jesusabdullah>naw, that would be subscribe collect publish(), or subscribe collect, publish
02:52:56  <chapel>yeah yeah
02:53:07  <chapel>I haven't written cs in nearly 2 years
02:53:40  <ricardobeat>you can just write subscribe(collect(publish)) in cs
02:53:51  <chapel>ricardobeat: of course
02:53:52  <ricardobeat>that's the style jashkenas himself seems to favor
02:54:04  <chapel>but why would you if you can exclude () :P
02:54:10  <jesusabdullah>clarity
02:54:16  <ricardobeat>^
02:54:23  <chapel>but you don't use cs for clarity :)
02:54:31  <jesusabdullah>don't you?
02:54:37  <chapel>that isn't one of its strong suits imo
02:55:08  <chapel>it trades one set of gotchas for another
02:55:14  <jesusabdullah>yeah
02:55:35  <jesusabdullah>I'm not taking a position on the merits of coffeescript here
02:55:44  <chapel>of course
02:55:56  <chapel>I like a lot of the aesthetics of cs
02:56:16  <chapel>but it seems pointless when I can just use js
02:56:26  <chapel>no extra compile steps
02:56:31  <chapel>easier to debug :)
02:56:36  <jesusabdullah>It depends on how many of the cs-specific tricks you're into
02:56:47  <jesusabdullah>if you're writing really conservative cs then yeah, why bother
02:57:01  <chapel>I don't like to write tricky code
02:57:03  <ricardobeat>coffeescript with sourcemaps is just as easy
02:57:13  <ricardobeat>actually, without too
02:57:16  <chapel>ricardobeat: in node?
02:57:17  * wolfeidaujoined
02:57:32  <chapel>I haven't used cs with node for almost 2 years, so Im not sure if it has improved
02:57:32  <jesusabdullah>ricardobeat are the saucemaps working properly with coffee ./my-thing.coffee right now?
02:57:35  <ricardobeat>yes
02:57:39  <jesusabdullah>how recently?
02:57:49  <ricardobeat>since 1.6.1 i think, a couple months
02:57:54  <jesusabdullah>aha, okay
02:58:11  <jesusabdullah>I *will* take a position on one thing
02:58:12  <chapel>tbh I didn't stop using cs because of any specific complaint
02:58:19  <jesusabdullah>an unpopular one regarding require.extensions
02:58:35  <chapel>my job at the time didn't use it, and no one else I wrote code with often used it
02:58:38  <jesusabdullah>which is: it should absolutely be supported
02:58:56  <jesusabdullah>if it burns someone then, well, that's just a caveat
02:59:06  <jesusabdullah>but it's really convenient if you're doing app development
02:59:15  <chapel>so I just stopped using cs, because I was using js full time at work
03:00:14  <ricardobeat>jesusabdullah: isaacs said require.extensions will remain for backwards compat, but is deprecated
03:00:55  <ricardobeat>oops accidental ping
03:01:51  <jesusabdullah>yeah, see, I disagree with that
03:02:10  <jesusabdullah>I actively think that's a decision based on dogma and not pragmatism
03:03:41  <jesusabdullah>chapel: I'm using cs full-time at work now
03:03:48  <chapel>jesusabdullah: I know
03:04:03  <jesusabdullah>now don't get me wrong, I think for a published library that best practices dictate that your module should not require coffeescript
03:04:12  <jesusabdullah>and that you should compile before publishing
03:04:21  <ricardobeat>jesusabdullah: agreed. node shouldn't shut that door
03:04:23  * thlorenzjoined
03:04:46  <mbalho>substack: https://github.com/davidmason/datum-and-wills
03:04:50  <mbalho>shama: cc o/
03:05:44  <shama>mbalho: whoa
03:06:18  <mbalho>yea sounds awesome
03:06:23  <shama>yea looks neat
03:06:25  <ricardobeat>I wish github would still allow bots, I'd make one removing coffee-script from everyone's dependencies
03:06:27  <mbalho>guy is gonna work on it at campjs
03:07:55  <damonoehlman>nice
03:09:18  * thlorenzquit (Ping timeout: 276 seconds)
03:09:27  <damonoehlman>mbalho: recommended you for another au conference if you are interested in another trip out :)
03:09:43  <mbalho>lol
03:16:58  * AvianFluquit (Remote host closed the connection)
03:18:43  * AvianFlujoined
03:20:30  * AvianFluquit (Remote host closed the connection)
03:23:58  * spionquit (Ping timeout: 246 seconds)
03:28:47  * wolfeidauquit (Remote host closed the connection)
03:30:21  * ricardobeatquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
03:35:39  * ricardobeatjoined
03:36:56  * AvianFlujoined
03:38:00  * mk30_joined
03:42:57  * jergasonquit (Remote host closed the connection)
03:46:18  * jergasonjoined
03:50:44  * kumavisquit (Quit: kumavis)
03:53:09  * owen1quit (Read error: Connection reset by peer)
03:55:35  * jxsonquit (Remote host closed the connection)
03:57:22  * AvianFluquit (Remote host closed the connection)
03:57:41  * jergasonquit (Remote host closed the connection)
04:04:04  * ricardobeatquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
04:04:44  * wolfeidaujoined
04:04:48  * thlorenzjoined
04:06:17  * st_lukejoined
04:06:44  <st_luke>substack mbalho: do you know if there is a usb flash drive at the house I can borrow for a few minutes?
04:09:42  * owen1joined
04:09:45  * thlorenzquit (Ping timeout: 276 seconds)
04:12:26  * kumavisjoined
04:19:46  * defunctzombiechanged nick to defunctzombie_zz
04:20:40  * jxsonjoined
04:24:52  * jxsonquit (Ping timeout: 246 seconds)
04:26:02  * jxsonjoined
04:26:09  * kumavisquit (Quit: kumavis)
04:33:15  * kumavisjoined
04:34:14  * jxsonquit (Ping timeout: 240 seconds)
04:36:44  * st_lukequit (Remote host closed the connection)
04:37:41  * st_lukejoined
04:38:35  * mk30_quit (Ping timeout: 250 seconds)
04:39:09  * mikealjoined
04:48:50  <mbalho>st_luke: i dont haveone
04:54:04  * owen1quit (Read error: Connection reset by peer)
05:05:10  * thlorenzjoined
05:10:12  * thlorenzquit (Ping timeout: 276 seconds)
05:11:17  * owen1joined
05:12:43  * stagasjoined
05:15:04  * wolfeidauquit (Remote host closed the connection)
05:16:27  * wolfeidaujoined
05:19:16  * wolfeida_joined
05:20:42  * dguttmanquit (Quit: dguttman)
05:22:18  * wolfeidauquit (Ping timeout: 264 seconds)
05:24:21  * wolfeida_quit (Ping timeout: 248 seconds)
05:31:17  * calvinfoquit (Quit: Leaving.)
05:34:19  * mikealquit (Quit: Leaving.)
05:38:49  * fallsemojoined
05:38:58  * dguttmanjoined
05:41:57  * dguttmanquit (Client Quit)
05:45:44  * st_lukequit (Remote host closed the connection)
05:49:04  * stagasquit (Ping timeout: 240 seconds)
05:51:12  * st_lukejoined
05:52:59  * stagasjoined
05:54:07  * wolfeidaujoined
06:00:45  * wolfeidauquit (Read error: No route to host)
06:01:00  * wolfeidaujoined
06:03:35  * wolfeidauquit (Read error: Connection reset by peer)
06:03:36  * wolfeida_joined
06:04:26  * fallsemoquit (Quit: Leaving.)
06:04:35  * mikealjoined
06:04:36  * defunctzombie_zzchanged nick to defunctzombie
06:05:38  * thlorenzjoined
06:08:19  * owen1quit (Read error: Connection reset by peer)
06:10:13  * thlorenzquit (Ping timeout: 248 seconds)
06:10:59  * calvinfojoined
06:12:12  * st_lukequit (Remote host closed the connection)
06:16:41  * stagasquit (Ping timeout: 256 seconds)
06:19:28  * djcoinjoined
06:19:45  * calvinfoquit (Ping timeout: 240 seconds)
06:21:47  * jcrugzzquit (Ping timeout: 256 seconds)
06:25:12  * shamaquit (Remote host closed the connection)
06:26:55  * owen1joined
07:04:41  * timoxleyjoined
07:06:02  * thlorenzjoined
07:08:18  * kumavisquit (Quit: kumavis)
07:09:40  * mirkokieferjoined
07:10:07  * thlorenzquit (Ping timeout: 240 seconds)
07:10:42  * mirkokieferquit (Client Quit)
07:12:38  * owen1quit (Read error: Connection reset by peer)
07:13:11  * owen1joined
07:28:05  * timoxleyquit (Read error: Connection reset by peer)
07:32:24  * wolfeidaujoined
07:32:51  * wolfeida_quit (Ping timeout: 260 seconds)
07:37:05  * wolfeida_joined
07:37:26  * wolfeidauquit (Ping timeout: 240 seconds)
07:39:06  * mirkokieferjoined
07:39:43  * mirkokieferquit (Client Quit)
07:40:50  * mirkokieferjoined
07:42:43  * timoxleyjoined
07:47:25  * fotoveritequit (Quit: fotoverite)
07:48:53  * mcollinaquit (Ping timeout: 248 seconds)
07:55:28  * defunctzombiechanged nick to defunctzombie_zz
07:57:00  * mirkokieferquit (Quit: mirkokiefer)
08:01:58  * st_lukejoined
08:06:14  * st_lukequit (Ping timeout: 240 seconds)
08:06:25  * thlorenzjoined
08:06:29  * timoxley_joined
08:08:19  * timoxleyquit (Ping timeout: 256 seconds)
08:11:07  * thlorenzquit (Ping timeout: 260 seconds)
08:26:19  * timoxley_quit (Ping timeout: 264 seconds)
09:06:54  * thlorenzjoined
09:10:37  * mirkokieferjoined
09:11:52  * thlorenzquit (Ping timeout: 264 seconds)
09:20:46  * collypopsjoined
09:24:43  * No9_joined
09:25:21  * No9_quit (Remote host closed the connection)
09:35:13  * wolfeida_quit (Read error: No route to host)
09:36:17  * wolfeidaujoined
09:37:13  * jibayjoined
09:38:30  * collypopsquit (Ping timeout: 264 seconds)
09:39:13  * wolfeida_joined
09:40:01  * dominictarrjoined
09:41:54  * wolfeidauquit (Ping timeout: 276 seconds)
09:44:54  * collypopsjoined
09:45:37  * owen1quit (Read error: Connection reset by peer)
09:46:47  * owen1joined
09:46:48  * ins0mniajoined
09:53:55  * stagasjoined
09:55:52  * tilgoviquit (Remote host closed the connection)
10:00:14  * wolfeida_quit (Ping timeout: 240 seconds)
10:01:05  * collypopsquit (Ping timeout: 256 seconds)
10:07:18  * thlorenzjoined
10:10:32  * wolfeidaujoined
10:11:26  * thlorenzquit (Ping timeout: 240 seconds)
10:15:14  * wolfeidauquit (Read error: Connection reset by peer)
10:17:54  * wolfeida_joined
10:19:43  * wolfeida_quit (Read error: Connection reset by peer)
10:20:05  * wolfeida_joined
10:25:21  * collypopsjoined
10:29:40  * wolfeida_quit (Read error: No route to host)
10:30:51  * wolfeidaujoined
10:49:19  * timoxleyjoined
10:54:56  * owen1quit (Read error: Connection reset by peer)
10:56:29  * wolfeida_joined
10:56:32  * timoxley_joined
10:57:02  * wolfeidauquit (Ping timeout: 240 seconds)
10:57:11  * timoxleyquit (Ping timeout: 256 seconds)
11:01:09  <dominictarr>rvagg: is there a way to tell what module binding version you are on from within node?
11:02:13  <dominictarr>process.versions.modules ?
11:07:42  * thlorenzjoined
11:08:57  * timoxley_quit (Read error: Connection reset by peer)
11:09:04  * wolfeida_quit (Read error: Connection reset by peer)
11:10:31  * wolfeidaujoined
11:10:31  * timoxleyjoined
11:11:50  * thlorenzquit (Ping timeout: 240 seconds)
11:12:15  * collypopsquit (Ping timeout: 276 seconds)
11:12:20  * owen1joined
11:15:07  * yorickjoined
11:17:45  * timoxley_joined
11:17:48  * timoxleyquit (Ping timeout: 260 seconds)
11:34:19  * timoxley_quit (Remote host closed the connection)
11:34:43  * mirkokieferquit (Quit: mirkokiefer)
11:41:49  * spionjoined
12:08:06  * thlorenzjoined
12:13:21  * thlorenzquit (Ping timeout: 276 seconds)
12:26:49  * mikealquit (Quit: Leaving.)
12:27:14  * mirkokieferjoined
12:32:15  * maksimlinquit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0/20130803215302])
12:34:02  * thlorenzjoined
12:34:27  * maksimlinjoined
12:34:31  * timoxleyjoined
12:40:49  * damonoehlmanquit (Quit: WeeChat 0.4.1)
12:48:27  * timoxleyquit (Remote host closed the connection)
12:52:58  * jibayquit (Remote host closed the connection)
12:56:59  * mikealjoined
12:58:05  * fallsemojoined
12:59:05  * fallsemoquit (Client Quit)
13:00:34  * ralphtheninjajoined
13:03:27  * thlorenzquit (Remote host closed the connection)
13:06:42  * mikealquit (Ping timeout: 264 seconds)
13:08:33  * thlorenz_joined
13:12:38  * thlorenz_quit (Ping timeout: 240 seconds)
13:13:33  * tmcwjoined
13:17:16  * maksimlinquit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0/20130803215302])
13:22:33  * jergasonjoined
13:30:31  * mikealjoined
13:32:20  * mikealquit (Client Quit)
13:38:31  * ednapiranhajoined
13:41:01  <djcoin>Hi there, I wanted to try couchdb a bit, already read a book about it 2 year ago or so, but never actually used it
13:41:22  <djcoin>Any hints about the best way to start, the best tutorials, environments (couchdb, couchapp, erica ?) ?
13:42:05  * collypopsjoined
13:43:00  * jergasonquit (Remote host closed the connection)
13:43:39  <dominictarr>djcoin: use mikeal's couchup module!
13:44:01  <dominictarr>it's the couch version you can install via npm
13:45:02  <djcoin>dominictarr: I heard of it in the talk you gave me on soundcloud :)
13:45:16  <djcoin>Aren't anyone supposed to NOT use this yet :)
13:45:16  * ralphtheninjaquit (Quit: leaving)
13:45:57  <djcoin>+ it's based on leveldb, it's not couchdb inside. I would rather start with couchdb :<
13:46:08  <collypops>dominictarr: we're missing you at campjs!
13:46:46  * thlorenzjoined
13:46:55  <dominictarr>collypops: next time!
13:47:06  * jergasonjoined
13:47:16  <collypops>melbourne, I hear
13:47:28  <collypops>you should start an NZ one. I'd totally come
13:48:49  <djcoin>dominictarr: or maybe I will use it, would you recommend it even if I didn't used yet the original couchdb ?
13:51:20  <dominictarr>well, I havn't used it, but mikeal knows couchdb.
13:52:05  <dominictarr>plus, since it's level & js, when you get sick of couchdb limitations, you can extend it...
13:52:49  <djcoin>yep
13:57:12  <dominictarr>collypops: when is the next one?
13:57:39  <dominictarr>if it's in the summer I may be back that side of the planet
13:58:50  <djcoin>I'm not so confortable with building up so much different, ever evolving stuff with leveldb in nodejs. Data is so critical :s
14:04:33  * kevino80joined
14:05:02  * tmcwquit (Remote host closed the connection)
14:07:44  * dguttmanjoined
14:07:53  * tmcwjoined
14:09:21  * fallsemojoined
14:10:42  * owen1quit (Read error: Connection reset by peer)
14:12:45  * whit537quit (Quit: whit537)
14:12:52  * jibayjoined
14:14:24  * kevino80quit (Read error: Connection reset by peer)
14:15:41  * jcrugzzjoined
14:15:50  * kevino80joined
14:18:45  * jergasonquit (Remote host closed the connection)
14:28:53  * owen1joined
14:30:58  * djcoinquit (Quit: WeeChat 0.4.0)
14:34:26  * jxsonjoined
14:37:24  * mcollinajoined
14:39:09  * collypopsquit (Quit: Textual IRC Client: www.textualapp.com)
14:39:36  * jxsonquit (Ping timeout: 276 seconds)
14:45:00  * ednapiranhaquit (Remote host closed the connection)
14:45:02  * AvianFlujoined
14:49:39  * tmcwquit (Remote host closed the connection)
14:57:24  * tmcwjoined
15:02:04  * wolfeidauquit (Remote host closed the connection)
15:06:24  <dominictarr>this is interesting: http://redecentralize.org/interviews/2013/07/29/02-adam-zerotierone.html
15:07:41  * mcollinaquit (Read error: Connection reset by peer)
15:11:50  <dominictarr>it allows you to build apps that work on a localnetwork, but work over the internet
15:11:51  <thlorenz>defunctzombie_zz: Domenic_: I hope everyone is happy now and we can pull this in: https://github.com/shtylman/zuul/pull/11
15:12:25  <thlorenz>I do want this to be api useable - gonna branch off this to make other changes
15:20:28  * jxsonjoined
15:23:51  * mirkokieferquit (Quit: mirkokiefer)
15:25:06  * jxsonquit (Ping timeout: 276 seconds)
15:28:29  * fotoveritejoined
15:32:08  * jergason_joined
15:32:41  * jergason_quit (Remote host closed the connection)
15:33:17  * jergasonjoined
15:36:29  * kenperkinsjoined
15:36:42  * no9quit (Ping timeout: 264 seconds)
15:37:13  * fotoveritequit (Ping timeout: 246 seconds)
15:37:54  * fotoveritejoined
15:39:20  * jergason_joined
15:41:21  * jergasonquit (Ping timeout: 276 seconds)
15:43:22  * no9joined
15:48:43  * ralphtheninjajoined
15:53:16  * owen1quit (Read error: Connection reset by peer)
15:56:02  * ednapiranhajoined
15:58:38  * jergason_quit (Ping timeout: 240 seconds)
15:58:56  * jergasonjoined
16:02:48  * mcollinajoined
16:09:38  * owen1joined
16:12:28  * jergasonquit (Ping timeout: 264 seconds)
16:12:31  * jergason_joined
16:14:25  * kevino80quit (Read error: Connection reset by peer)
16:15:04  * mcollinaquit (Remote host closed the connection)
16:15:39  * kevino80joined
16:31:40  * jergasonjoined
16:32:35  * mcollinajoined
16:32:38  * jergason_quit (Ping timeout: 240 seconds)
16:37:11  * jergasonquit (Ping timeout: 256 seconds)
16:39:34  * jolissquit (Quit: joliss)
16:43:43  * jergasonjoined
16:45:39  * mcollinaquit (Remote host closed the connection)
16:46:14  * defunctzombie_zzchanged nick to defunctzombie
16:48:58  * jxsonjoined
16:50:06  * jxsonquit (Read error: Connection reset by peer)
16:50:12  * jxson_joined
16:53:20  * kenperkinsquit (Quit: Textual IRC Client: http://www.textualapp.com/)
16:55:04  * ednapiranhaquit (Remote host closed the connection)
16:58:37  <defunctzombie>thlorenz: will take a look soon
17:00:41  * kumavisjoined
17:03:28  * jolissjoined
17:11:06  * dominictarrquit (Quit: dominictarr)
17:14:24  * kevino80quit (Read error: Connection reset by peer)
17:14:41  * AvianFluquit (Remote host closed the connection)
17:16:00  * kevino80joined
17:16:00  * kumavisquit (Quit: kumavis)
17:17:12  * owen1quit (Read error: Connection reset by peer)
17:17:23  * calvinfojoined
17:18:00  * owen1joined
17:20:30  * st_lukejoined
17:25:03  * whit537joined
17:26:01  * thlorenzquit (Remote host closed the connection)
17:30:01  * AvianFlujoined
17:32:15  * kumavisjoined
17:33:18  * jibayquit (Read error: Operation timed out)
17:33:36  * mk30joined
17:48:47  * jibayjoined
17:56:07  * mcollinajoined
17:56:34  * thlorenzjoined
18:00:37  * mcollinaquit (Ping timeout: 248 seconds)
18:01:44  * owen1quit (Quit: WeeChat 0.3.8)
18:04:40  * jergasonquit (Remote host closed the connection)
18:06:06  * thlorenzquit (Ping timeout: 264 seconds)
18:06:19  * kevino80quit (Remote host closed the connection)
18:07:59  * thlorenzjoined
18:08:37  * jergasonjoined
18:11:22  * mikealjoined
18:11:36  * thlorenzquit (Remote host closed the connection)
18:14:38  * owen1joined
18:18:59  * kenperkinsjoined
18:25:34  * spionquit (Ping timeout: 246 seconds)
18:30:31  * jxson_changed nick to jxson
18:41:11  * jergason_joined
18:44:58  * jcrugzz_joined
18:45:28  * jergasonquit (Ping timeout: 264 seconds)
18:48:04  * mcollinajoined
18:48:38  * jcrugzzquit (Ping timeout: 240 seconds)
18:52:47  * jcrugzz_changed nick to jcrugzz
18:55:20  * kevino80joined
19:00:39  * whit537quit (Quit: whit537)
19:01:47  * thlorenzjoined
19:01:51  * whit537joined
19:03:57  * mk30quit (Ping timeout: 250 seconds)
19:06:19  * thlorenzquit (Ping timeout: 260 seconds)
19:08:52  * whit537quit (Ping timeout: 264 seconds)
19:11:58  * whit537joined
19:19:02  * calvinfoquit (Quit: Leaving.)
19:20:08  * shamajoined
19:24:15  * kumavisquit (Quit: kumavis)
19:24:27  * mcollinaquit (Remote host closed the connection)
19:25:40  * mcollinajoined
19:26:06  * mikealquit (Quit: Leaving.)
19:27:46  * spionjoined
19:28:52  * calvinfojoined
19:30:01  * mcollinaquit (Ping timeout: 256 seconds)
19:31:45  * thlorenzjoined
19:34:08  <defunctzombie>thlorenz: I added a comment
19:34:18  <defunctzombie>thlorenz: just squash some things and I will merge and publish
19:34:28  <defunctzombie>or you can squash and push to master yourself
19:34:31  <defunctzombie>but please squash first
19:34:40  <thlorenz>ok, you want me to squash into two?
19:35:30  <thlorenz>defunctzombie: i.e. making it an API (1) and fixes + initBrowseify(2) ?
19:35:36  <thlorenz>or just into one big commit?
19:36:13  <thlorenz>defunctzombie: ah just read the comment - will do
19:42:34  <thlorenz>defunctzombie: it's in master now :)
19:56:30  <defunctzombie>thlorenz: published 0.2.0
19:56:39  <thlorenz>:)
19:56:42  <thlorenz>thanks
19:57:49  <thlorenz>defunctzombie: like that you added travis (was thinking about doing that, but then it was lunch time)
20:02:10  * thlorenz_joined
20:04:11  * thloren__joined
20:04:12  * thlorenz_quit (Read error: Connection reset by peer)
20:06:16  * thlorenz_joined
20:06:16  * thloren__quit (Read error: Connection reset by peer)
20:11:06  * thlorenz_quit (Ping timeout: 276 seconds)
20:14:27  * thlorenz_joined
20:14:28  * kevino80quit (Read error: Connection reset by peer)
20:14:46  * jxsonquit (Remote host closed the connection)
20:16:00  * kevino80joined
20:18:09  * mcollinajoined
20:18:27  * thlorenz_quit (Read error: Connection reset by peer)
20:18:56  * thlorenz_joined
20:21:56  * thlorenz_quit (Read error: Connection reset by peer)
20:22:29  * thlorenz_joined
20:23:26  * mcollinaquit (Ping timeout: 240 seconds)
20:24:09  * thlorenz_quit (Read error: Connection reset by peer)
20:24:29  * thlorenz_joined
20:25:13  * mcollinajoined
20:28:54  * thlorenz_quit (Ping timeout: 264 seconds)
20:29:35  * mikealjoined
20:30:53  * mk30joined
20:33:21  * thlorenz_joined
20:35:37  * thloren__joined
20:35:37  * thlorenz_quit (Read error: Connection reset by peer)
20:37:01  * mcollinaquit (Read error: Connection reset by peer)
20:37:02  * mikealquit (Read error: Connection reset by peer)
20:37:02  * thloren__quit (Read error: Connection reset by peer)
20:37:26  * thlorenz_joined
20:38:10  * mikealjoined
20:38:10  * thlorenz_quit (Read error: Connection reset by peer)
20:38:38  * thlorenz_joined
20:39:36  * mcollinajoined
20:39:56  * stagasquit (Read error: Connection reset by peer)
20:41:49  * thloren__joined
20:41:59  * thlorenz_quit (Read error: Connection reset by peer)
20:43:43  * thlorenz_joined
20:43:43  * thloren__quit (Read error: Connection reset by peer)
20:45:09  * jxsonjoined
20:45:49  * thlorenz_quit (Read error: Connection reset by peer)
20:46:01  * thlorenz_joined
20:48:06  * thlorenz_quit (Read error: Connection reset by peer)
20:48:13  * thlorenz_joined
20:50:16  * thlorenz_quit (Read error: Connection reset by peer)
20:50:20  * thloren__joined
20:52:16  * thlorenz_joined
20:52:23  * thloren__quit (Read error: No buffer space available)
20:52:23  * thloren__quit (Read error: No buffer space available)
20:53:25  * jxsonquit (Ping timeout: 248 seconds)
20:54:21  * thlorenz_quit (Read error: Connection reset by peer)
20:54:34  * thlorenz_joined
20:54:39  * jergason_quit (Remote host closed the connection)
20:56:36  * thloren__joined
20:56:37  * thlorenz_quit (Read error: Connection reset by peer)
20:57:58  * jergasonjoined
20:58:02  * thloren__quit (Read error: Connection reset by peer)
20:58:31  * thlorenz_joined
21:00:44  * thlorenz_quit (Read error: Connection reset by peer)
21:01:13  * thlorenz_joined
21:03:16  * thloren__joined
21:03:16  * thlorenz_quit (Read error: Connection reset by peer)
21:06:25  * mikealquit (Quit: Leaving.)
21:07:14  * calvinfoquit (Quit: Leaving.)
21:07:17  * mcollinaquit (Remote host closed the connection)
21:07:23  * kumavisjoined
21:07:26  * thloren__quit (Ping timeout: 240 seconds)
21:07:54  * mikealjoined
21:07:59  * thlorenz_joined
21:09:54  * thlorenz_quit (Read error: Connection reset by peer)
21:10:01  * thlorenz_joined
21:10:34  * collypopsjoined
21:11:58  * thlorenz_quit (Read error: Connection reset by peer)
21:12:07  * thlorenz_joined
21:13:12  * jxsonjoined
21:13:53  * thlorenz_quit (Read error: Connection reset by peer)
21:14:10  * thlorenz_joined
21:16:11  * thloren__joined
21:16:11  * thlorenz_quit (Read error: Connection reset by peer)
21:17:24  * thloren__quit (Read error: Connection reset by peer)
21:17:33  * thlorenz_joined
21:20:46  * thlorenz_quit (Read error: Connection reset by peer)
21:21:15  * thlorenz_joined
21:22:43  * kenperkinsquit (Quit: Computer has gone to sleep.)
21:23:19  * thloren__joined
21:23:23  * thlorenz_quit (Read error: Connection reset by peer)
21:23:33  * mcollinajoined
21:25:02  * thloren__quit (Read error: Connection reset by peer)
21:25:16  * thlorenz_joined
21:26:53  * mikealquit (Read error: Connection reset by peer)
21:26:53  * mcollinaquit (Read error: Connection reset by peer)
21:28:55  * mikealjoined
21:28:56  * thloren__joined
21:29:08  * mcollinajoined
21:29:09  * thlorenz_quit (Read error: Connection reset by peer)
21:29:33  * mk30quit (Ping timeout: 250 seconds)
21:30:29  * thloren__quit (Read error: Connection reset by peer)
21:30:50  * thlorenz_joined
21:32:38  * thloren__joined
21:32:39  * thlorenz_quit (Read error: Connection reset by peer)
21:34:34  * thlorenz_joined
21:34:34  * thloren__quit (Read error: Connection reset by peer)
21:35:26  * thlorenz_quit (Read error: Connection reset by peer)
21:35:29  * joliss_joined
21:35:54  * thlorenz_joined
21:36:40  * jolissquit (Ping timeout: 246 seconds)
21:36:41  * joliss_changed nick to joliss
21:38:02  * mikolalysenkojoined
21:40:17  * thloren__joined
21:40:40  * thlorenz_quit (Ping timeout: 264 seconds)
21:41:51  * thloren__quit (Read error: Connection reset by peer)
21:41:58  * thlorenz_joined
21:43:01  * mk30joined
21:43:01  * thlorenz_quit (Read error: Connection reset by peer)
21:43:12  * thlorenz_joined
21:45:27  * mcollinaquit (Remote host closed the connection)
21:46:13  * mikealquit (Quit: Leaving.)
21:48:06  * thlorenz_quit (Ping timeout: 264 seconds)
21:48:38  * wolfeidaujoined
21:51:10  * thlorenz_joined
21:52:58  * thloren__joined
21:52:59  * thlorenz_quit (Read error: Connection reset by peer)
21:54:33  * thlorenz_joined
21:54:33  * thloren__quit (Read error: Connection reset by peer)
21:57:25  * mikealjoined
21:58:29  * thlorenz_quit (Read error: Connection reset by peer)
21:58:45  * thlorenz_joined
21:59:02  * tmcwquit (Remote host closed the connection)
22:00:52  * thlorenz_quit (Read error: Connection reset by peer)
22:01:03  * thlorenz_joined
22:01:08  * mikealquit (Client Quit)
22:02:43  * thlorenzquit (Remote host closed the connection)
22:02:43  * thlorenz_quit (Read error: Connection reset by peer)
22:02:58  * thlorenzjoined
22:04:54  * thloren__joined
22:04:54  * thlorenzquit (Read error: Connection reset by peer)
22:07:18  * thloren__quit (Read error: Connection reset by peer)
22:07:30  * thlorenzjoined
22:10:15  * thlorenz_joined
22:12:32  * thlorenz_quit (Read error: Connection reset by peer)
22:12:39  * thlorenzquit (Ping timeout: 276 seconds)
22:12:53  * thlorenzjoined
22:14:26  * kevino80quit (Read error: Connection reset by peer)
22:15:43  * thlorenzquit (Read error: Connection reset by peer)
22:16:07  * thlorenzjoined
22:16:40  * kevino80joined
22:17:40  * dguttmanquit (Quit: dguttman)
22:18:11  * thlorenz_joined
22:19:22  * thloren__joined
22:19:22  * thlorenz_quit (Read error: Connection reset by peer)
22:21:06  * thlorenzquit (Ping timeout: 276 seconds)
22:21:07  * thloren__quit (Read error: Connection reset by peer)
22:21:26  * thlorenzjoined
22:23:29  * fallsemoquit (Quit: Leaving.)
22:25:11  * calvinfojoined
22:25:54  * thlorenzquit (Ping timeout: 264 seconds)
22:27:33  * thlorenzjoined
22:30:00  * thlorenzquit (Read error: Connection reset by peer)
22:30:24  * thlorenzjoined
22:30:33  * dguttmanjoined
22:32:51  * thlorenzquit (Read error: Connection reset by peer)
22:33:15  * thlorenzjoined
22:35:54  * thlorenzquit (Read error: Connection reset by peer)
22:36:14  * thlorenzjoined
22:37:48  * thlorenz_joined
22:37:48  * thlorenzquit (Read error: Connection reset by peer)
22:39:00  * thlorenzjoined
22:39:00  * thlorenz_quit (Read error: Connection reset by peer)
22:41:08  * dguttmanquit (Read error: Connection reset by peer)
22:41:08  * thlorenzquit (Read error: Connection reset by peer)
22:41:21  * thlorenzjoined
22:42:43  <chrisdickinson>dlmanning: mbalho: sorry for the tweetwall!
22:43:39  * thlorenzquit (Read error: Connection reset by peer)
22:43:56  * thlorenzjoined
22:44:26  <mbalho>i dotn mind tweetwalls
22:46:19  * thlorenzquit (Read error: Connection reset by peer)
22:46:22  * thlorenz_joined
22:46:44  <chrisdickinson>mbalho: i think in general we agree; i'm just leery of passing such (relatively) powerful objects around. it makes me immediately want to run off and audit what the code's doing with those objects
22:48:28  * spionquit (Remote host closed the connection)
22:48:37  * thlorenz_quit (Read error: Connection reset by peer)
22:48:39  * thlorenzjoined
22:48:56  * kevino80quit (Ping timeout: 256 seconds)
22:49:22  <dlmanning>chrisdickinson: no problem
22:50:01  <dlmanning>Problem with twitter is that the more interesting the discussion becomes, the less facility the media affords
22:50:10  * chrisdickinsonnods
22:50:16  * kevino80joined
22:50:27  <chrisdickinson>as more viewpoints come in, the discussion has to get more and more abbreviated, too
22:50:32  <mbalho>chrisdickinson: haha, i see your point of view now. kidna like private methods
22:51:22  * thlorenz_joined
22:51:41  <chrisdickinson>yeah -- that, and by making the api take a request when it really needs a string, it makes it that much harder to use the library in other contexts (not like, impossibly hard! but harder.)
22:52:32  <mbalho>so i like the idea of the 3rd argument (e.g. next) to be a callback that the module can use to communicate what it did
22:52:32  <dlmanning>So I was trying to use passport with restify
22:52:34  <chrisdickinson>(and of course silly things like some module someplace having a grumpy day and calling `res.end` when you weren't expecting it, etc etc)
22:52:56  <chrisdickinson>mbalho: you still end up with implicit order issues
22:52:58  <mbalho>chrisdickinson: so in the case of something calling res.end it would have to call next with some data that could tell you that you shouldnt handlt eh responde since it handled it
22:53:16  * thlorenzquit (Ping timeout: 264 seconds)
22:53:30  <mbalho>chrisdickinson: yea but i think those are unavoidable right? some modules are going to have to handle requests
22:53:47  <mbalho>chrisdickinson: the way persona does it is you can do persona.test(req) and it will tell you true/false if persona needs to handle that request
22:54:08  <chrisdickinson>well, that, or one piece of middleware will need a way to get/set keys from a session store, or have a database connection, or...
22:54:29  <mbalho>another way ive messed with is calling next(true) if it handled req or next(false) of it didnt
22:54:39  * chrisdickinsonnods
22:54:52  <mbalho>then at the end of your code you can do static handling or whateverif you get a false
22:55:17  <chrisdickinson>i'm kind of of the mind that middleware is itself a pretty leaky abstraction and maybe actively resists standardizing because each step really does have that implicit dependency tree
22:55:24  <mbalho>i totally think that app.use(middleware1, middleware2, middleware3)
22:55:28  <mbalho>is too limiting
22:55:30  * AvianFlu_joined
22:55:38  <mikolalysenko>I'm not totally convinced about the whole concept of middleware for servers in the first place
22:55:45  <dlmanning>chrisdickinson: That's my original dilemma
22:55:46  <mbalho>you need context and app specific code between 1, 2, and 3
22:55:50  <jesusabdullah>I mean, it's a bit of a hack at best
22:56:02  <st_luke>works fine
22:56:04  <jesusabdullah>but we HAVE at least agreed on what they look like as of now. That's something.
22:56:11  <mikolalysenko>it isn't a big deal to just do a look up in an object or write a switch statement yourself
22:56:15  <mbalho>original thread https://twitter.com/davidlymanning/status/365955310273302528
22:56:17  <jesusabdullah>Yeah, and they DO work, even if the api isn't exactly ideal
22:56:19  * thlorenz_quit (Ping timeout: 264 seconds)
22:56:24  <jesusabdullah>yeah but standardized api is handy
22:56:35  * AvianFlu_quit (Remote host closed the connection)
22:56:35  <chrisdickinson>right, but we're representing a dependency tree implicitly
22:56:40  <jesusabdullah>if my talk gets accepted I'll talk aaaaaalll about this!
22:56:41  <st_luke>people are still arguing about middleware
22:56:42  <chrisdickinson>and we represent it as a flat list
22:56:47  <dlmanning>The reality is the most people use the middleware pattern with node
22:56:47  <jesusabdullah>anyways I gotta go, time to buy a fhqwhcar
22:57:04  <chrisdickinson>jesusabdullah: my talk is likely going to be about frameworkless frontend dev
22:57:11  <mbalho>st_luke: stfu :)
22:57:30  <dlmanning>chrisdickinson: Will you give that talk at pdxnode before CascadiaJS?
22:57:30  <chrisdickinson>loosely based off of http://bradfrostweb.com/blog/post/atomic-web-design/, except concerning javascript + small modules approach
22:57:41  <mbalho>chrisdickinson: hey on that topic i'd love feedback on blockplot and all the underlying modules if you get bored and wanna dive in some time
22:57:47  <chrisdickinson>dlmanning: i may!
22:57:55  <chrisdickinson>mbalho: i'd love to
22:58:08  <dlmanning>chrisdickinson: Will you give that talk to me if I buy you beer sometime ;)
22:58:11  <st_luke>there should be a magic 8 ball for anti-abstraction arguments
22:58:17  <chrisdickinson>dlmanning: haha, sure :)
22:59:00  * yorickquit (Remote host closed the connection)
22:59:14  <dlmanning>The attraction for me about backend frameworks is the number of edge cases they already deal with
22:59:20  <chrisdickinson>dlmanning: yes
22:59:22  <mikolalysenko>so the thing about using small modules instead of middleware is that it is still compatible with middleware if you just write a one line shim
22:59:39  * AvianFluquit (Ping timeout: 260 seconds)
22:59:44  <mbalho>mikolalysenko: kidn of like how you can implement vim in emacs but you cant implement emacs in vim
22:59:47  <mikolalysenko>function(req, res, next) { doSpecificThing(req.magic1, req.magic2, ...., res) }
22:59:48  <mbalho>mikolalysenko: or maybe its the other way around
23:00:16  <mikolalysenko>mbalho: not sure about that analogy
23:00:24  <st_luke>how do you know if someone is an emacs user?
23:00:25  <mikolalysenko>but the point that I am making is that it is hard to go the other way around
23:00:25  <chrisdickinson>mikolalysenko: right -- or you actually represent that dependency graph of middleware as code, sans the middleware -- which is designed to represent instructions being dependent on previous instructions
23:00:52  <chrisdickinson>mbalho: <3 the fact that blockplot is hosted on gh-pages
23:00:54  <mikolalysenko>basically once you agree upon a magical set of names that your middleware uses you have to agree on them across all modules
23:01:00  <mikolalysenko>and you get locked into a specific pattern
23:01:06  <mbalho>chrisdickinson: haha yea
23:01:10  <mbalho>chrisdickinson: i lvoe abusing gh pages
23:01:26  <mbalho>chrisdickinson: requirebin is also hosted on gh-pages and gists
23:01:55  <chrisdickinson>that + iframe/CORS apis is one of the ways i most enjoy seeing node used
23:02:33  <chrisdickinson>(it's just really cool that that means you could split out entire apis from each other as separate projects on separate subdomains -- on separate servers, even!)
23:02:50  <chrisdickinson>(or even just if you've got one api route that's particularly "hot" you could spin up a server that only does that one thing.)
23:02:51  <mbalho>chrisdickinson: totally. run the blockplot tests to see my crazy version of that
23:03:55  <dlmanning>mikolalysenko: Don't you think that creating a single work of sufficient complexity always involves that tradeoff somewhere?
23:04:15  * thlorenzjoined
23:04:40  <mikolalysenko>dlmanning: sure. I made that kind of tradeoff for example when I built ndarrays
23:04:57  <mikolalysenko>ndarrays have a specific interface, and you need to agree on that or else you can't do multidimensional arrays easily
23:05:29  <mikolalysenko>dlmanning: but I think a lot of this middleware stuff is just more trouble than it is worth
23:05:41  * jergasonquit (Remote host closed the connection)
23:06:17  <mikolalysenko>it doesn't seem to me that the extra interface complexity in the request objects is at all necessary
23:06:30  * thlorenzquit (Read error: Connection reset by peer)
23:06:33  <mikolalysenko>for example, if you want to parse cookies just write a function that does that
23:06:37  * mk30quit (Ping timeout: 250 seconds)
23:06:47  * thlorenzjoined
23:06:50  * tmcwjoined
23:08:14  <mikolalysenko>the other problem is middleware adds a lot of extra inefficiency
23:08:30  * wolfeidauquit (Remote host closed the connection)
23:08:41  <mikolalysenko>for example, you might want a cookie parser on a root page, but if the same server also has some simple REST api you probably don't want to parse cookies on those requests
23:08:50  * kevino80quit (Remote host closed the connection)
23:09:05  <mikolalysenko>if you use a linked list of callbacks (as is popular in most middleware) you end up doing a lot more work per request
23:09:11  * thlorenzquit (Read error: Connection reset by peer)
23:09:29  <dlmanning>Someone could submit a PR to node core to call Object.seal on http.IncomingMessage and http.ServerResponse ;)
23:09:30  <mikolalysenko>also requests that are farther down the middleware chain tend to get the shitty end of the deal and pay a larger performance overhead
23:09:33  * thlorenzjoined
23:09:34  <substack>mikolalysenko: wrote this yesterday http://npmjs.org/package/rref
23:09:46  <substack>after being frustrated that nobody had put gaussian elimination on npm already
23:10:04  <mikolalysenko>substack: there is numeric.js
23:10:13  <mikolalysenko>but it has serious numerical stability problems
23:10:35  <mikolalysenko>substack: but nice job though!
23:11:01  * mikealjoined
23:11:02  <mikolalysenko>in a world with unlimited time/resources it would be good to go through and carefully build a set of real linear algebra libraries for node
23:11:37  <mikolalysenko>also as an aside, there are some real performance issues with using that array-of-native arrays for large matrices...
23:11:48  <mikolalysenko>which is another one of the reasons why numeric.js is kind of slow
23:11:57  * thlorenzquit (Read error: Connection reset by peer)
23:12:13  * thlorenzjoined
23:12:21  * mcollinajoined
23:13:11  <mbalho>juliangruber: can you think of any reasons why a multilevel wouldnt emit data on multilevel('biscuits').createReadStream() but multilevel('biscuits').get('woo', cb) returns the data as expected?
23:14:41  * thlorenz_joined
23:15:57  * thlorenz_quit (Read error: Connection reset by peer)
23:16:17  * thlorenz_joined
23:17:00  * thlorenzquit (Ping timeout: 276 seconds)
23:17:01  * thlorenz_quit (Read error: Connection reset by peer)
23:17:26  * thlorenzjoined
23:19:44  * thlorenzquit (Read error: Connection reset by peer)
23:19:58  * thlorenzjoined
23:20:12  * mikealquit (Quit: Leaving.)
23:21:57  * thlorenzquit (Read error: Connection reset by peer)
23:22:06  * mikealjoined
23:22:29  * thlorenzjoined
23:24:00  * thlorenz_joined
23:24:00  * thlorenzquit (Read error: Connection reset by peer)
23:25:10  * thlorenzjoined
23:25:10  * thlorenz_quit (Read error: Connection reset by peer)
23:27:06  * thlorenz_joined
23:27:07  * thlorenzquit (Read error: Connection reset by peer)
23:29:53  * tilgovijoined
23:31:12  * thlorenz_quit (Read error: Connection reset by peer)
23:31:17  * thlorenzjoined
23:31:39  * thlorenz_joined
23:32:37  * vitorpachecoquit (Quit: Saindo)
23:33:57  * thlorenzquit (Read error: Connection reset by peer)
23:34:01  * thloren__joined
23:35:42  * thlorenz_quit (Remote host closed the connection)
23:35:42  * thloren__quit (Read error: Connection reset by peer)
23:36:06  * thlorenzjoined
23:40:12  * thlorenzquit (Read error: Operation timed out)
23:40:49  * thlorenzjoined
23:43:11  * thlorenzquit (Read error: Connection reset by peer)
23:43:27  * thlorenzjoined
23:45:37  * thlorenzquit (Read error: Connection reset by peer)
23:46:00  * thlorenzjoined
23:47:48  * mcollinaquit (Remote host closed the connection)
23:49:00  * thlorenzquit (Read error: Connection reset by peer)
23:49:00  * thlorenz_joined
23:51:00  * mikealquit (Quit: Leaving.)
23:51:08  * mk30_joined
23:51:45  * thlorenzjoined
23:53:09  * thlorenz_quit (Ping timeout: 248 seconds)
23:53:17  * mikolalysenkoquit (Ping timeout: 240 seconds)
23:55:04  * thlorenzquit (Read error: Connection reset by peer)
23:55:34  * thlorenzjoined
23:58:04  * thlorenzquit (Read error: Connection reset by peer)
23:58:28  * thlorenzjoined