00:18:24  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
00:19:02  * piscisaureus_joined
00:19:26  * piscisaureus_quit (Client Quit)
00:23:41  * brendaneichquit (Quit: brendaneich)
01:49:53  * piscisaureus_joined
02:09:39  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
05:14:38  * isaacsquit (Remote host closed the connection)
06:08:54  * brendaneichjoined
06:35:59  * brendaneichquit (Read error: Connection reset by peer)
06:36:20  * brendaneichjoined
06:49:23  * brendaneichquit (Quit: brendaneich)
09:04:54  * brendaneichjoined
09:22:48  * brendaneichquit (Ping timeout: 272 seconds)
09:25:21  * brendaneichjoined
10:16:09  * brendaneichquit (Quit: brendaneich)
13:27:33  * piscisaureus_joined
14:10:10  * isaacsjoined
15:45:30  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
15:57:28  * brendaneichjoined
16:13:54  * piscisaureus_joined
16:51:31  <creationix>alright, what should be implement first in luvmonkey
16:51:46  <creationix>the last thing I was working on was trying to figure out some smjs gc assert that was failing
16:51:52  <creationix>I'm probably managing references wrong somewhere
16:53:22  <brendaneich>issue on file?
16:53:46  <creationix>I'm sure it's something I did wrong
16:53:58  <creationix>but yes, some smjs help would be great when I'm working on it
16:54:18  <creationix>also I'm hoping to get the libuv refcount refactor in master soon
16:54:23  <creationix>that will make this a lot easier
16:56:13  <brendaneich>i can help
16:56:23  <brendaneich>if you file an issue and cc: me with steps to repro, i will debug
16:56:43  <creationix>an issue against luvmonkey?
17:01:54  <brendaneich>y
17:02:05  <brendaneich>let's start there if you think it's just a JS API misuse issue
17:02:21  <creationix>so when I try to clean up my runtime and context I get
17:02:22  <creationix>deps/smjs/src/jsgc.cpp:2145: test == CGCT_VALID
17:03:26  <creationix>but as far as I can tell, I always JS_RemoveObjectRoot with each JS_AddObjectRoot
17:04:09  <brendaneich>have to read the code, sec
17:05:09  <brendaneich>this is a conservative gc issue maybe
17:06:15  <brendaneich>creationix: that assertion is gone in mozilla-central
17:06:22  <brendaneich>maybe time to update smjs?
17:06:43  <creationix>good idea
17:06:59  <creationix>piscisaureus_, could you update the gypified smjs?
17:07:45  <piscisaureus_>I think Ben did most of that stuff
17:08:07  <piscisaureus_>creationix: tbh I barely did anything on monkeyluv so far
17:08:24  <piscisaureus_>creationix: also I am kind of busy getting node 0.8 FC done atm
17:10:08  <piscisaureus_>but it'd be nice to get the thing into demo ready state ... hmm
17:10:17  <creationix>or right, could you ping ben
17:10:23  <creationix>or ask him how I could update it
17:13:22  * bnoordhuisjoined
17:13:48  <bnoordhuis>creationix: i heard you're feeling masochistic today?
17:14:45  <creationix>it's not that hard is it?
17:15:41  <bnoordhuis>hopefully not
17:16:03  <creationix>but how do I pull
17:16:19  <piscisaureus_>I don't think you can pull since mozilla-central uses hg
17:16:32  <piscisaureus_>although supposedly there are git mirrors
17:16:34  <creationix>I think there is a git mirror for mozilla-central
17:16:43  <bnoordhuis>git://github.com/doublec/mozilla-central.git
17:17:06  <creationix>warning: no common commits
17:17:22  <piscisaureus_>I think smjs is only a subtree of moz-central
17:17:27  <brendaneich>y
17:17:39  <brendaneich>two subtrees i think -- js/src and mfbt
17:17:42  <bnoordhuis>yes
17:17:52  <bnoordhuis>mfbt goes into extra/mozilla
17:18:07  <bnoordhuis>i think i documented it in the readme
17:18:16  <creationix>brendaneich, I'd really like a git repo for smjs that builds with gyp, what's the best way to keep that up to date?
17:18:25  <creationix>or even without gyp
17:18:31  <creationix>but git with just smjs and what it needs
17:18:36  <bnoordhuis> src/ => js/src/
17:18:36  <bnoordhuis> extra/js/ => js/public/
17:18:36  <bnoordhuis> extra/mozilla/ => mfbt/
17:19:06  <creationix>bnoordhuis, so copy again and then reply all your patches?
17:19:11  <bnoordhuis>yes
17:19:31  <creationix>*re-apply
17:19:41  <bnoordhuis>i figured that was what you meant :)
17:20:24  * creationixis running `hs pull`...
17:20:31  <creationix>*hg
17:20:37  * creationixalso is dyslexic
17:23:34  <creationix>brendaneich, so at a high level, what would you like to see working by nodeconf?
17:23:38  <creationix>brendaneich, what would be most useful
17:23:57  <brendaneich>we should figure out b2g integration
17:24:03  <brendaneich>the offline idea
17:24:22  <brendaneich>creationix: what patches are needed against spidermonkey? anything to upstream?
17:24:50  <creationix>the only upstream ideas I have so far are just making building and updating easier for me
17:24:55  <creationix>I'm not sure exactly what that entails
17:25:00  <bnoordhuis>no. most of it is to get smjs work outside of autotools / mozilla-central
17:25:02  <creationix>so far I haven't hit any issues with the ending itself
17:25:14  <brendaneich>ok
17:25:27  <creationix>ending?, I meant engine
17:25:28  <brendaneich>(we avoid autotools i thot -- still on autoconf213 ;-)
17:26:17  <creationix>brendaneich, so do you want to run node in-context with the gecko code?
17:26:26  <creationix>or just on device in another process
17:26:56  <creationix>intel is working hard to run node inside webkit by merging the event loops and bridging calls
17:27:05  <brendaneich>that sounds like work :-P
17:27:11  <brendaneich>i was thinking 127.1 server
17:27:20  <creationix>sounds good to me
17:27:23  <creationix>and it's more like web
17:27:32  <creationix>that's how I wished webos has done it
17:27:48  <creationix>but webos had instead a proprietary message bus
17:28:26  <piscisaureus_>I hope they can pull it off
17:28:38  <brendaneich>they = we? ;-)
17:28:47  <piscisaureus_>So far all the moz ppl I've seen join event loops with setInterval
17:28:53  <piscisaureus_>that's kinda lame, esp. when you're on a phone
17:28:59  <piscisaureus_>brendaneich: you, or intel
17:29:05  <creationix>I'd rather not merge event loops
17:29:13  <brendaneich>right
17:29:14  <creationix>I like ui code separate from the rest
17:29:17  <brendaneich>that sounds like a world of pain
17:29:22  <brendaneich>and yes, it will starve UI
17:29:42  <brendaneich>oop, mac software update
17:29:44  <brendaneich>looks imp.
17:29:45  <brendaneich>rebooting
17:29:46  <piscisaureus_>I have to admit that windows is probably partially to blame for that.
17:29:47  <creationix>working at palm taught me that the single threaded html ui is very weak in terms of cpu power
17:29:48  <brendaneich>bbsoon
17:30:17  <brendaneich>creationix: palm had only single core / single-h/w-thread ARM tho right?
17:30:42  <creationix>no, touchpad was dual-core 1.5 Ghz
17:30:43  * piscisaureus_brb
17:30:48  <brendaneich>me too
17:36:49  <creationix>Ok, so suppose I have a todo app built using backbone.js and I want a local backend on my phone. I would write this backend using luvmonkey and it would run on the phone on-demand when I launched the app. This would use about 5-10mb of ram so not all the apps on my phone can be running at once. This would be written using a node sandbox API that isn't the full power of node and automatically does some things like providing a po
17:36:49  <creationix>rt to bind to. Then at the gecko layer, there can be a special redirect where some special domain maps to this locally running http server.
17:37:02  * brendaneichquit (Quit: brendaneich)
17:56:45  <creationix>I posted some ideas at https://gist.github.com/06d5cd9cb9fff2b4fe49
18:04:40  * brendaneichjoined
18:06:06  <creationix>brendaneich, how much do you want security in luvmonkey to be like it is on the web
18:06:30  <brendaneich>you mean client-side js security, same-origin policy, all that?
18:06:39  <creationix>mainly the concepts
18:06:45  <creationix>it's safe to browse the web
18:06:48  <creationix>for the most part
18:07:06  <creationix>my computer won't get a virus from going to some website
18:07:14  <creationix>(unless there are holes in the browser's security)
18:07:27  <brendaneich>we do have fun there but yes
18:07:35  <creationix>but installing arbitrary desktop applications is another story
18:07:42  <creationix>they have very wide permissions
18:07:43  <brendaneich>so if the loopback luvmonkey server is supporting offline apps, we'll want a mirror
18:08:02  <brendaneich>yes, permissions are a problem -- esp. android's mess of 57 perms and temptations to over-bundle
18:08:17  <brendaneich>adrienne porter-felt (grad student of david wagner at ucb) has written papers
18:08:24  <brendaneich>it's a clown-car cavalcade
18:08:25  <creationix>right
18:08:37  <brendaneich>we are working with adrienne on b2g permissions and security models for app
18:08:39  <brendaneich>s
18:08:59  <creationix>ok, so we'll be using this permissions model then
18:09:15  <creationix>the local luvmonkey script should follow the same rules as the browser-side app
18:10:05  <creationix>and from a technical standpoint, how will the browser communicate with luvmonkey. I think xhr to a local http server is easiest
18:11:31  <creationix>or will luvmonkey not run arbitrary code, but just provide a better offline cache?
18:11:38  <creationix>with specific APIs
18:11:49  <creationix>of course that could be done entirely with gecko
18:12:00  <creationix>no need for a scriptable backend then
18:13:28  <brendaneich>a node app would need a way to fill the cache with its server-side JS and other assets
18:13:37  <brendaneich>that can't be done via the http cache in gecko
18:13:45  <brendaneich>that code normally isn't fetched
18:13:52  <brendaneich>(hope i'm making sense here)
18:13:59  <brendaneich>so we would need specific APIs
18:14:04  <creationix>you're talking about cache.manifest stuff?
18:14:21  <creationix>what is the problem you want to solve with luvmonkey?
18:39:31  <creationix>bnoordhuis, can I have push access to your smjs repo?
18:41:18  <creationix>or just transfer it to me if you don't want to maintain it
18:42:45  <brendaneich>creationix: cache.manifest, as in appcache? nooooo
18:43:03  <creationix>good, just making sure
18:43:21  <brendaneich>the general idea is this: you have a node app, it has awesome server side db and big data and p2p to other services
18:43:21  <creationix>I have rarely ever been able to make that work reliably
18:43:41  <brendaneich>but it could also make do running offline if only you could have node / luvmonkey local to your device
18:43:44  <brendaneich>and the necessary code
18:43:56  <creationix>so a mirror of the remote node server
18:43:59  <brendaneich>yes
18:44:02  <creationix>but most of the code reused
18:44:05  <brendaneich>yes
18:44:07  <creationix>but it would still be different code
18:44:18  <creationix>the node author would have to write two versions?
18:44:20  <brendaneich>probably some configury and random logic (if statements) to cope with limitations of offline/local
18:44:21  <brendaneich>no big data
18:44:35  <brendaneich>ideally mostly same code for the part that can run locally
18:44:39  <brendaneich>this is an old idea
18:44:50  <creationix>ok, so the goal is to run a copy of the same server locally
18:44:56  <brendaneich>http://redmonk.com/sogrady/2005/12/16/turning-dross-into-gold-alchemy-and-offline-browser-access/
18:44:56  <creationix>within given constraints
18:45:16  <brendaneich>that "bea alchemy" was over-engineered (bea java! e4x in rhino!)
18:45:26  <brendaneich>and trying too hard to make a new middle tier for developers
18:45:47  <brendaneich>developers may build such a tier but first thing is to try the replica idea
18:46:11  <creationix>ok, so an app author would host their app on their own webhost but include some luvmonkey manifest that tells the phone how to run a local copy
18:46:34  <creationix>and when the app is installed, gecko will read this manifest and install the local server
18:46:43  <creationix>possibly asking about permissions
18:47:14  <creationix>right, there is nothing stopping a developer from having different code entirely in the local version
18:47:24  <creationix>so how will this route from the browser-side?
18:47:32  <creationix>will it replace the remote server only when offline?
18:47:38  <creationix>will it proxy all remote requests
18:47:46  <creationix>or will it have it's own url space
19:11:42  <brendaneich>could want separate url space but wouldn't routing via the same paths as the server uses be best where it "just works"?
19:11:49  <brendaneich>the bet is that is the common case
19:12:12  <creationix>right, if we are aiming to simply mirror than that works great
19:12:25  <creationix>so then should it proxy or only be used when offline?
19:12:26  <brendaneich>creationix: did you see http://www.alistapart.com/articles/application-cache-is-a-douchebag/ ?
19:12:36  <brendaneich>i wouldn't want proxy overhead
19:12:38  <creationix>I saw the hn thread about the title
19:12:42  <brendaneich>so only when offline
19:12:48  <brendaneich>some transparent by default cutover
19:21:01  <creationix>the only problem with only using the local version when offline is it doesn't have a chance to sync till it's too late
19:21:16  <creationix>with a proxy, it can cache all data going through it
19:30:14  * piscisaureus_quit (Ping timeout: 245 seconds)
19:31:20  <brendaneich>creationix: that is a good point
19:31:35  <brendaneich>however, wireless nets and RF environments make for intermittent outages
19:31:55  <brendaneich>if we proxy always, can we conceal all of those?
19:31:56  <brendaneich>maybe not
19:32:09  <brendaneich>if flapping too fast and sync takes too much bandwidth x latency...
19:32:09  <creationix>it gives more power
19:32:13  <brendaneich>yes
19:32:23  <brendaneich>it's a good point -- how much would it cost
19:32:30  <brendaneich>latency, throughput
19:32:36  <brendaneich>any ideas?
19:32:38  <creationix>well, the proxy is local, so latency shouldn't be much
19:32:41  <brendaneich>it's using device CPU and batt
19:33:06  <brendaneich>i was thinking more of intentional offline support
19:33:09  <brendaneich>like, you are getting on a plane
19:33:14  <brendaneich>you have time to download stuff
19:33:17  <brendaneich>and sync after
19:33:33  <creationix>ok, that's easier
19:33:36  <brendaneich>y
19:33:56  <brendaneich>maybe we need a little design-doc gist that talks about both ideas but separates them
19:34:02  <brendaneich>seem separable
19:38:45  <creationix>did you see https://gist.github.com/06d5cd9cb9fff2b4fe49
20:07:31  * piscisaureus_joined
20:32:21  * brendaneichquit (Quit: brendaneich)
20:38:20  <CIA-30>luvmonkey: Tim Caswell master * rde259f7 / (luvmonkey.gyp src/main.c): Use pre-compiled libjs since smjs.gyp is out of date - http://git.io/OkHzYw
20:38:20  <CIA-30>luvmonkey: Tim Caswell master * r4ba440b / (6 files): Update code for smjs API change with regard to class finalizers - http://git.io/T1bmPA
22:14:43  <bnoordhuis>creationix: around? i can give you push access if you want
23:33:36  * isaacsquit (Remote host closed the connection)
23:34:04  * isaacsjoined