00:00:25  * st_luke_joined
00:03:43  * mikealjoined
00:04:20  * jeffbcrossjoined
00:20:32  * shykeschanged nick to zz_shykes
00:33:35  <SubStack>amasad: with t.createWindow()?
00:33:51  <amasad>SubStack: Yes
00:34:36  <SubStack>it's super tricky because the browser traps setting anything in window.location
00:34:53  <SubStack>and tries to navigate directly to there
00:35:01  <SubStack>but you might be able to mask the window declaration programmatically
00:35:18  <amasad>why can't you set the browsers proxy settings instead of using the url
00:35:39  <amasad>I've worked around it by changing my code. but its suboptimal
00:36:18  * wiwilliaquit (Ping timeout: 250 seconds)
00:36:27  <SubStack>we also use a proxy for browsers
00:36:44  <SubStack>but it's not injecting script tags or anything yet
00:36:59  <SubStack>partly owing to how tricky it is to cross-reference urls with requests
00:37:01  <SubStack>but!
00:37:04  <SubStack>I should work on that
00:37:29  <SubStack>right now it's just an iframe hack which is why we need the /proxy.json/ to get around cross-origin restrictions
00:43:38  * wiwilliajoined
00:47:00  * dominictarrjoined
00:47:29  <amasad>I see. I mean its really great to do javascript unit testing in real browsers real fast. But I was aiming for more of an integration testing which i need the app to work as it supposed to IRL.
00:47:42  <SubStack>yep that is one weak point we have right now
00:48:18  * isaacsquit (Remote host closed the connection)
00:48:23  <SubStack>if you can take the existing stuff and test the pieces in isolation from the rest of the ui then it's pretty great
00:48:35  <SubStack>but it's super tricky if the frontend code is harder to pull apart
00:53:39  <amasad>it would need some refactoring to do that. but whats harder is to always keep in that in mind in new code. i guess its good practice after all
00:54:23  <SubStack>well yeah but I think testling should be able to support that use case still
00:54:35  <SubStack>which is why your feedback is so useful to us!
00:54:53  <SubStack>need to kill off selenium once and for all!
00:55:51  <amasad>same feelings about selenium! ha
00:56:24  <amasad>btw one more thing testling would choke if there is a hash in the url
00:56:29  <amasad>http://testling.com/proxy.json/%7B%22url%22:%22http://substack.net/#"%7D
00:56:52  <amasad>Error: SyntaxError: Unexpected token ILLEGAL
00:57:34  <SubStack>hah
00:58:25  <SubStack>that is actually surprising, I thought I was encodeURIComponent()ing the uri param
00:58:33  <rowbit>Hourly usage stats: [free: 21]
00:59:20  <SubStack>ok tonight I'm experimenting with script injection
00:59:25  <SubStack>starting now
00:59:57  <SubStack>since we already have all the browsers going through a custom proxy and I already wrote a module for doing streaming html transforms
01:00:53  <SubStack>although the plumbing for making remote control work is very tricky
01:01:44  <SubStack>especially making that work while also preserving the cross-browser flakery that these tests are supposed to be letting you detect
01:04:19  <dominictarr>amasad: causing you to seperate modules, is one of the best things about testing, in my opinion.
01:10:24  <SubStack>unfortunately I can only evangelize for modularity so much running testling as a paid service
01:10:53  <SubStack>doing things the nice node.js require() way is definitely encouraged where possible though
01:14:54  * wiwilliaquit (Ping timeout: 244 seconds)
01:18:44  <amasad>I agree.. but sometimes its hard when a) multiple people working on a project. b) decoupling is hard in general, specially in front-end code. also jQuery dom stuff tend to creep in everywhere and make it even harder to decouple from ui and dom. c) moving and changing fast.
01:20:34  <SubStack>especially if you already have a big codebase and you just want to smuggle some tests into it
01:21:40  <ryan_stevens>amasad: I completely agree. But it can be done, particularly if you setup your project with modularity in mind from day one (I realize this isn't an option for most people)
01:23:14  <ryan_stevens>I'm able to test my front end JavaScript "module", along with its associated DOM in complete isolation. Having that granularity of control with your unit tests has paid off in gold.
01:24:20  <amasad>ryan_stevens: nice! do you find yourself fighting hard to keep that modularity?
01:25:09  <ryan_stevens>amasad: it is our teams #1 goal to maintain. So yes we fight for it, but when everyone is on board it is not a chore
01:31:17  * wiwilliajoined
01:58:33  <rowbit>Hourly usage stats: [free: 3]
02:11:13  * jeffbcrosspart
02:17:43  * ryan_stevensquit (Quit: Leaving.)
02:19:42  * mikealquit (Quit: Leaving.)
02:20:05  * mikealjoined
02:22:00  <dominictarr>ryan_stevens: what company do you work for? are you looking for any contractors at the moment?
02:31:22  * devaholicquit (Ping timeout: 265 seconds)
02:36:43  * mikealquit (Quit: Leaving.)
02:39:46  <SubStack>dominictarr: ryan_stevens works at root music
02:40:07  <SubStack>they are big into node.js and testing everything
02:44:28  * amasadquit (Ping timeout: 276 seconds)
02:50:18  * mikealjoined
02:56:17  * wiwilliaquit (Ping timeout: 244 seconds)
02:58:33  <rowbit>Hourly usage stats: [free: 22]
03:00:39  * mikealquit (Quit: Leaving.)
03:01:19  <dominictarr>I like their attitude.
03:12:50  * wiwilliajoined
03:14:13  <jesusabdullah>I'm pouty
03:14:34  <jesusabdullah>my hookio thing isn't working
03:14:47  <jesusabdullah>I kinda hoped browserifyable code worked in reverse
03:14:58  <jesusabdullah>it almost does :)
03:15:41  <SubStack>just stringify the stuff in require.modules
03:19:34  <jesusabdullah>heh
03:20:59  <jesusabdullah>well like it all mostly works
03:21:18  <jesusabdullah>there's just some disconnect between the node client telling the node server it's ready
03:23:27  * mikealjoined
03:56:39  * mikealquit (Quit: Leaving.)
03:58:33  <rowbit>Hourly usage stats: [free: 34]
04:04:08  * mikealjoined
04:09:03  * wiwilliaquit (Ping timeout: 250 seconds)
04:18:14  * jeffbcrossjoined
04:20:22  * jeffbcrosspart
04:25:13  * ryan_stevensjoined
04:27:41  * mikealquit (Quit: Leaving.)
04:30:43  * mikealjoined
04:53:19  * mikealquit (Quit: Leaving.)
04:58:32  <rowbit>Hourly usage stats: [free: 8]
05:02:42  * SubStackexperiments with proxies some more
05:03:17  <SubStack>idea
05:04:11  <SubStack>perhaps I can hook onto window.onbeforeunload
05:04:31  <SubStack>writing a testling test to see if this works in all the browsers
05:06:47  * jeffbcrossjoined
05:07:04  * jeffbcrossquit (Client Quit)
05:09:19  * isaacsjoined
05:09:58  <SubStack>hackedy hackin
05:10:38  <SubStack>oh joy, onunload doesn't even fire in ie6
05:10:45  <SubStack>TYPICAL
05:11:32  <SubStack>works fine in early chrome and safaris though
05:11:36  <SubStack>oddly!
05:11:39  <SubStack> log: unloaded about:blank
05:11:44  <SubStack>window.location.href is about:blank
05:11:56  <SubStack>I wonder if that's an artefact of the testling runner or something else
05:12:48  <SubStack>meanwhile onbeforeunload isn't firing at all
05:13:28  <SubStack>WELL THEN
05:15:59  <dominictarr>what is onbeforeunload for?
05:15:59  * wiwilliajoined
05:16:07  <dominictarr>is that when they close the window?
05:18:56  * mikealjoined
05:20:57  <SubStack>or when the script goes somewhere else
05:21:03  <SubStack>when somebody clicks a link or a form gets submitted
05:21:32  <SubStack>if I can reliably trap those then I can tell the proxy which urls to inject scripts into
05:22:07  <SubStack>and I can cross-reference testling sessions with url requests on the proxy
05:22:31  <SubStack>by matching user agent and requested url
05:23:45  * isaacsquit (Remote host closed the connection)
05:23:50  <dominictarr>SubStack: can't you just use a cookie or something?
05:24:17  <SubStack>cookies have some problems:
05:24:43  <SubStack>1. all text/html requests would get injected, even if they're xhr
05:25:01  <SubStack>2. cookies don't work when the page crosses a domain
05:25:20  <SubStack>and crossing a domain is what you can't do presently with testling and I'm trying to fix that
05:25:59  <dominictarr>what if you transformed the page in the proxy like you do to get stack traces?
05:26:08  <SubStack>I'm trying to make it so that when people call form.submit() or link.click() it all just works
05:26:44  <SubStack>I'm also planning to add an option to transform the script tags to insert stack trace capture code but that's another feature
05:26:44  <dominictarr>that the test keeps on running, and it still stays inside testling?
05:27:00  <SubStack>basically I'm trying to kill selenium you see!
05:27:17  <SubStack>how are you thinking the transformation would work?
05:27:17  <dominictarr>haha. good.
05:27:22  <SubStack>like base hrefs and such?
05:27:33  <SubStack>that's what I tried originally but it was super difficult
05:27:43  <dominictarr>yeah, thats what I was thinking.
05:28:03  <chapel>SubStack: you could have a built in proxy for all requests
05:28:22  <chapel>so if they want to hit any domain, you just transform all external requests into proxy urls you control
05:28:26  <SubStack>and I don't want to do too much of that kind of thing because it interferes with ajax libs that people might want to test
05:28:41  <chapel>yeah, you could just have them use the proxy directly
05:28:47  <SubStack>so I'm thinking of how I might surgically insert script tags only when necessary
05:28:49  <chapel>they call it themselves
05:29:10  <SubStack>chapel: all the browsers are already sending requests through a proxy
05:29:16  <SubStack>it's just a simple bouncy proxy
05:29:20  <chapel>ah
05:29:27  * ryan_stevensquit (Quit: Leaving.)
05:30:11  <SubStack>it's just a matter of deciding how best to inject control scripts
05:31:14  <SubStack>another downside of injecting scripts at the proxy level is that I'll need to wrap all dom access somehow to work over a high-latency async control stream
05:31:33  <SubStack>I'm thinking a dual-sided ast traversal would probably work
05:31:41  <SubStack>but is decidedly evil
05:31:49  <SubStack>and unfortunately I know exactly how to make that work
05:32:51  <SubStack>my guess is that most of the time there isn't going to be very many calls to the dom in people's tests
05:48:34  <SubStack>awesome: https://twitter.com/#!/DevinRhode2/status/193108158045106176
05:57:54  <dominictarr>at what point would it become easier to patch all the browsers?
05:58:24  <dominictarr>with assembly or how ever you'd have to hack IE.
05:58:33  <rowbit>Hourly usage stats: [free: 13]
06:00:12  <SubStack>dominictarr: configuration nightmare
06:00:20  <SubStack>and when we want to add more we'd need to hack those too
06:00:30  <dominictarr>hmm yes.
06:01:06  <SubStack>pkrumins and I looked into using cross-browser plugin tools but it wasn't obvious how to even use those to trick the browsers into doing what we'd need
06:01:24  <SubStack>there's probably a solution in there but it would take time to figure out
06:01:33  <SubStack>and script injection seems more promising right now
06:20:30  <SubStack>oh no got distracted
06:20:54  <SubStack>and wrote some craziness around the github api using JSONStream
06:21:42  <dominictarr>AWESOME. I want a github client that doesn't require me te press F5
06:22:11  <dominictarr>need a PollStream (argh) for that.
06:22:21  <dominictarr>... and a page stream.
06:22:27  <SubStack>there's a header for it
06:22:35  <SubStack> var m = /<([^>]+)>;\s*rel="next"/.exec(res.headers.link);
06:22:41  * wiwilliaquit (Ping timeout: 240 seconds)
06:22:42  <SubStack>var nextPage = m && m[1]
06:23:16  <dominictarr>you mean there is a header when the response is paginated?
06:23:22  <SubStack>yep
06:23:25  <SubStack>https://gist.github.com/2426551
06:23:29  <dominictarr>is that an RFC standard?
06:23:40  <SubStack>very doubtful
06:23:54  <SubStack>could be a railsy thing though
06:24:18  <SubStack>now trying with type=all
06:24:22  <dominictarr>probably. I notice there are only really a handful of pagination schemes.
06:24:51  <dominictarr>probably with 3 you'd catch 95% of the cases.
06:24:54  <SubStack>oh wait it's probably fine as-is
06:58:12  * nisc_quit (Ping timeout: 245 seconds)
06:58:33  <rowbit>Hourly usage stats: [free: 26]
07:42:00  * hij1nxjoined
07:53:34  <SubStack>so now I strongly suspect that lottery voting might just be the best thing ever
07:54:30  <SubStack>the hardest part is obtaining a hat large enough to contain all the scraps of paper
07:58:33  <rowbit>Hourly usage stats: [free: 26]
08:10:46  * hij1nxquit (Quit: hij1nx)
08:14:11  <dominictarr>SubStack: I've read there is research that points to that, but what has persuaded you?
08:15:09  <SubStack>it seems to solve the resource starvation problem really elegantly
08:15:21  <SubStack>and it completely eliminates tactical voting
08:15:26  <SubStack>those are very appealing traits
08:18:55  <dominictarr>resource starvation?
08:26:15  <Raynos>SubStack: how/where do I create /browser/bundle.js for dnode ?
08:26:56  <Raynos>oh
08:27:00  <Raynos>bin/bundle -.-
08:27:01  <Raynos>rage
08:30:16  <SubStack>dominictarr: where the majority keeps getting its candidate elected but minority views never get their candidate elected
08:30:26  <SubStack>like how a thread can starve out a scheduler
08:31:03  <SubStack>also under this system you wouldn't need term limits
08:31:16  <SubStack>since gambler's ruin would just kick in
08:32:34  <SubStack>and every now and then somebody like vermin supreme would get elected
08:33:02  <SubStack>an electoral system where vermin supreme occasionally gets elected is preferrable to one where he never gets elected
08:34:04  * AvianFluquit (Ping timeout: 244 seconds)
08:35:04  * AvianFlujoined
08:48:13  <dominictarr>SubStack: whole hartedly agree. If ever go into politics, I will do it like Vermin Supreme.
08:49:22  <SubStack>http://www.youtube.com/user/verminsupreme2012
08:49:28  <SubStack>subscribed
08:51:31  <Raynos>SubStack: https://github.com/substack/dnode-protocol/blob/master/index.js#L82
08:51:37  <Raynos>I keep getting errors bubbling up from there
08:51:43  <Raynos>and I can't debug them :\
08:51:57  <Raynos>Could you explain what those generally mean / how you handle them
08:52:04  <SubStack>parse errors in the json
08:52:17  <SubStack>it means the json is not valid
08:52:37  <Raynos>no
08:52:45  <Raynos>> Uncaught TypeError: Cannot call method 'apply' of null
08:53:35  <SubStack>oh
08:53:41  <SubStack>unsure then
08:53:50  <SubStack>maybe it's from that weakrefs code
08:53:54  <SubStack>that stuff is really buggy
08:55:45  <Raynos>._.
08:55:50  <Raynos>The problem is
08:55:54  <Raynos>that your trying to catch json errors
08:55:58  <Raynos>and other shit is bubbling up
08:56:20  <Raynos>Can we add an `if (err instanceof SyntaxError)`
08:56:34  <Raynos>which is the JSON errors and rethrow the "wtf something broke" errors?
08:56:54  <Raynos>`calling number null 0` :D
08:58:33  <rowbit>Hourly usage stats: [free: 22]
09:00:08  <Raynos>._.
09:00:19  <Raynos>SubStack: why dnode buggy ;_;
09:15:33  <Raynos>I see :D
09:15:37  <Raynos>I see why it hates me
09:16:15  <Raynos>Create two dnode clients, do some RPC in one, it stores function in that client, then when it comes back from the server it tries to remote invoke functions on both dnode clients
09:16:19  <Raynos>which just falls over
09:40:34  * dominictarrquit (Ping timeout: 245 seconds)
09:58:32  <rowbit>Hourly usage stats: [free: 17]
10:20:26  <SubStack>beh assigning into window.location.href isn't referentially transparent
10:42:16  <Raynos>no it's not :(
10:42:20  <Raynos>you can try hacking document.URL
10:42:38  <Raynos>oh document.URL is readonly
10:44:23  <SubStack>document.URL doesn't seem to update when I change window.location.href
10:44:32  <SubStack>but I'm exploring a different avenue now
10:44:49  <SubStack>onbeforeunload seems to reliably fire in >=ie7
10:46:36  <SubStack>to make this all work I just need a way for javascript execution to span page loads in some fashion
10:47:47  <SubStack>options:
10:48:02  <SubStack>1) iframe tricks (what is currently being used, doesn't work very well)
10:48:16  <SubStack>2) shim out the window object and inject a script tag into every page
10:48:50  <SubStack>3) run the test code contexts in the script tags
10:49:47  <SubStack>exploring #3 some
10:50:37  <SubStack>could have an api a bit like cradle where you pass a function and it gets .toString()'d
10:52:03  <SubStack>and then when an onbeforeunload fires, there could be a way to register a separate listener
10:52:52  <SubStack>oh actually!
10:53:05  <SubStack>I can just check to see when a new page loads with the injected content
10:53:25  <SubStack>but it's tricky cross-referencing all of that
10:54:34  <Raynos>`code: "ECONNRESET" message: "socket hang up"`
10:55:05  <Raynos>SubStack: javascript execution to span page loads probably iframe tricks is easiest
10:55:22  <Raynos>alternatively store state in localStorage then recover on bootup
10:55:26  <SubStack>Raynos: it doesn't work when the iframe navigates away
10:55:37  <SubStack>which happens when you want to test login forms
10:55:49  <Raynos>I see
10:55:58  <SubStack>there is no local storage except in the most recent browsers
10:56:02  <Raynos>Also I get ECONNREST errors bubbling up
10:56:09  <SubStack>I need to use things that work all the way down to really old browsers
10:56:11  <Raynos>SubStack: you can emulate it back to oldIE
10:56:22  <Raynos>both cookies & IE hacks work
10:56:31  <SubStack>cookies don't work across domains though
10:57:20  <Raynos>SubStack: https://gist.github.com/350433#L38
10:57:28  <Raynos>ah cross domains :(
10:57:36  <Raynos>window.name can be hacked onto
10:58:32  <rowbit>Hourly usage stats: [developer: 1, free: 25]
10:58:36  <Raynos>There was another IE hack
10:59:35  <Raynos>ie userdata https://github.com/brianleroux/lawnchair/blob/master/src/adapters/ie-userdata.js
11:06:16  <SubStack>I'll try this:
11:06:50  <SubStack>1. stringify the callback to t.createWindow() and send along shimmed versions of the variables
11:07:10  <SubStack>I can determine which variables need to be sent by looking at the ast
11:09:07  <SubStack>2. give the string to the proxy to insert into the next request for the requested uri and including a timeout to flush the cache
11:09:37  <Raynos>Good luck
11:09:53  <Raynos>I cant comment because I cant see what the code is :P
11:10:17  <SubStack>but how to uniquely identify requests still...
11:10:32  <Raynos>in a browser?
11:11:19  <SubStack>I need a way to know which test requested which resources in the proxy
11:11:48  <SubStack>so I can trigger the correct events
11:12:17  <Raynos>Whats the fast html parser for node?
11:12:34  <Raynos>what does it mean for a test to request a resource?
11:12:42  <Raynos>Does that mean which test file makes which XHR requests?
11:12:45  <SubStack>tests can call t.createWindow
11:13:04  <SubStack>but the window that t.createWindow spawns might change urls when a link gets clicked
11:13:07  <SubStack>or a form gets submitted
11:13:24  <Raynos>oh i see
11:13:51  <Raynos>shouldnt that be a matter of passing a token from a test to the window created with t.createWindow ?
11:13:56  <SubStack>then I'd like to let tests listen for navigation events when the page url changes
11:14:17  <Raynos>should work with cross window communication
11:14:35  <SubStack>which browsers support cross window communication?
11:14:57  <SubStack>and I can't do things that alter the normal functioning of the pages running in the windows
11:15:01  <SubStack>that is a good idea though
11:15:12  <SubStack>I know of the hash trick which is readable to the outside
11:17:11  <SubStack>writable too
11:18:49  <SubStack>maybe the injected code could be the same at the proxy and the container page of the iframe could just send strings for the inected code to eval
11:19:14  <SubStack>using hash routes or some similar trick
11:19:49  <SubStack>and the container could just poll the iframe for url changes too
11:20:04  <SubStack>on a 50ms interval or whatever
11:20:22  <SubStack>craps that might actually work and be easy to implement
11:21:51  <Raynos>well there is postMessage
11:22:02  <Raynos>http://caniuse.com/x-doc-messaging
11:22:08  <Raynos>and for IE there is invoking functions :P
11:26:22  <SubStack>neat
11:58:33  <rowbit>Hourly usage stats: [free: 21]
12:14:05  <Raynos>SubStack: pong
12:14:12  <Raynos>How do I kill tr and make the end event not fire?
12:14:22  <Raynos>is tr.destroy() going to fire end?
12:19:01  <Raynos>stream has no destroy method -.-
12:24:22  <Raynos>SubStack: why doesnt trumpet implement streams API
12:28:04  <SubStack>destroy is a tcp thing not a streams thing
12:28:30  <SubStack>if you want to pipe without calling end to .pipe(target, { end : false })
12:33:19  <Raynos>I don't want that
12:33:26  <Raynos>I want a way to handle errors from request
12:33:28  <Raynos>and kill the piping
12:33:35  <Raynos>like host name not found errors
12:33:52  <Raynos>also you need a try catch around the parser.write call
12:34:02  <Raynos>because it's throwing Max buffer length errors
12:36:05  <Raynos>SubStack: https://github.com/substack/node-trumpet/pull/2
12:53:05  * st_luke_quit (Remote host closed the connection)
12:53:46  * st_luke_joined
12:58:33  <rowbit>Hourly usage stats: [free: 25]
12:58:56  * st_luke_quit (Ping timeout: 245 seconds)
13:27:24  * TheJHjoined
13:50:15  * wiwilliajoined
13:58:33  <rowbit>Hourly usage stats: [developer: 2, free: 27]
14:10:45  * isaacsjoined
14:16:53  <isaacs>SubStack: I wrote a handy module last night, somewhat relevant to your interests in things that cluster and are managed: https://github.com/isaacs/cluster-master
14:17:06  <isaacs>this uses the 0.8-style cluster module
14:17:11  * wiwilliaquit (Ping timeout: 240 seconds)
14:17:28  <isaacs>and lets you easily automate the number of listeners, resizing them, doing graceful restarts, etc.
14:50:31  * wiwilliajoined
14:58:32  <rowbit>Hourly usage stats: [free: 46]
15:15:31  * tm6041joined
15:15:52  * tm604quit (Disconnected by services)
15:15:54  * tm6041changed nick to tm604
15:15:57  * tm604quit (Changing host)
15:15:57  * tm604joined
15:25:29  <chapel>isaacs: whats the eta on 0.8?
15:26:12  <isaacs>chapel: FC May 1, release 0.8.0 June 1
15:26:21  <chapel>kk
15:26:36  <chapel>is there a working migration log or whatever?
15:41:47  * hij1nxjoined
15:58:33  <rowbit>Hourly usage stats: [developer: 3, free: 19]
16:14:00  * ryan_stevensjoined
16:58:32  <rowbit>Hourly usage stats: [free: 37]
17:07:13  * st_lukequit (Read error: Connection reset by peer)
17:09:45  <isaacs>https://github.com/isaacs/tako-cookies
17:10:04  * isaacsburned by loudbot.
17:17:08  <AvianFlu>yeah that was pretty epic.
17:22:32  * st_luke_joined
17:32:01  * mikealquit (Quit: Leaving.)
17:34:17  * mikealjoined
17:54:14  * st_luke_changed nick to st_luke
17:58:32  <rowbit>Hourly usage stats: [free: 32]
18:36:31  * mikealpart
18:36:50  * mikealjoined
18:58:33  <rowbit>Hourly usage stats: [free: 38]
19:04:04  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
19:04:05  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
19:08:50  * TheJHquit (Ping timeout: 252 seconds)
19:31:46  * TheJHjoined
19:36:07  <jesusabdullah>SubStack: Check out this "hello world" http://racket-lang.org/ Surprising coming from racket
19:43:41  * wiwilliaquit (Ping timeout: 240 seconds)
19:48:08  * mikealquit (Quit: Leaving.)
19:58:33  <rowbit>Daily usage stats: [developer: 9, free: 718]
19:58:33  <rowbit>Hourly usage stats: [developer: 1, free: 63]
20:06:07  * TheJHquit (Ping timeout: 245 seconds)
20:08:21  * zz_shykeschanged nick to shykes
20:51:30  * hij1nxquit (Quit: hij1nx)
20:54:14  * TheJHjoined
20:57:33  * wiwilliajoined
20:58:33  <rowbit>Hourly usage stats: [developer: 1, free: 33]
21:14:48  * amasadjoined
21:29:22  <jesusabdullah>SubStack: Can you do me a favor and take a glance at https://gist.github.com/2432005 ?
21:29:38  <jesusabdullah>Maybe try running them? You know dnode way better n' I do
21:33:33  * amasadquit (Ping timeout: 260 seconds)
21:41:35  * niscjoined
21:41:51  * wiwillia2joined
21:51:19  <SubStack>Raynos: caching .connect() refs changes how dnode works
21:51:29  <SubStack>in a strange way
21:51:41  <Raynos>not caching .connect() refs breaks my app
21:51:48  <SubStack>only call connect() once!
21:51:56  <SubStack>to a single host
21:52:01  <Raynos>So cache it
21:52:05  <Raynos>so when I call it multiple times
21:52:08  <Raynos>it's memoized
21:52:13  <Raynos>but I know what you mean with breaks
21:52:24  <SubStack>but then the refs are the same
21:52:31  <Raynos>Yes
21:52:49  <SubStack>which is different from how dnode.connect works in node
21:52:54  <Raynos>i need to rewrite my code as dnode client-side middleware
21:54:06  * wiwilliaquit (Ping timeout: 250 seconds)
21:58:32  <rowbit>Hourly usage stats: [developer: 1, free: 20]
22:00:38  * mikealjoined
22:01:02  * nisc_joined
22:02:25  * niscquit (Read error: Operation timed out)
22:04:15  <SubStack>mikeal: I watched caravan of courage AND battle for endor last night
22:04:36  <mikeal>haha, awesome :)
22:30:58  * TheJHquit (Ping timeout: 260 seconds)
22:40:32  * mikealquit (Quit: Leaving.)
22:44:35  * mikealjoined
22:48:52  * hij1nxjoined
22:51:07  * hij1nxquit (Client Quit)
22:58:33  <rowbit>Hourly usage stats: [free: 7]
23:02:55  * thisandagainquit (*.net *.split)
23:04:10  * thisandagainjoined
23:06:28  * rannmannquit (*.net *.split)
23:06:28  * Raynosquit (*.net *.split)
23:08:31  <rook2pawn>my two cats, a squirrel on a tree, and a crow are all meowing, hissing, and cawing at each other :D
23:08:47  * tilgovijoined
23:11:49  * rannmannjoined
23:11:49  * Raynosjoined
23:15:39  * rannmannquit (Changing host)
23:15:39  * rannmannjoined
23:19:46  * mikealquit (Quit: Leaving.)
23:58:33  <rowbit>Hourly usage stats: [free: 17]