00:11:04  <creationix>rphillips: implemented websocket on top of http-codec https://github.com/luvit/lit/blob/master/app/commands/websocket-echo-test.lua
00:12:58  * dan336quit (Quit: Leaving.)
00:16:05  <creationix>tomorrow I’ll migrate the lit protocol to be over websocket
00:16:49  * UniOnquit (Remote host closed the connection)
01:26:51  * DarkGodquit (Quit: Leaving)
02:02:02  <rphillips>nice
02:04:58  <rphillips>creationix: https://github.com/luvit/lit/blob/master/app/modules/creationix/websocket-codec.lua#L17
02:05:15  <rphillips>sorry, nm
02:05:18  <rphillips>just read it again
02:07:02  <rphillips>wow. that is awesome
02:22:19  * a_lequit (Read error: Connection reset by peer)
02:22:31  * a_lejoined
04:30:46  * a_lequit (Remote host closed the connection)
04:31:25  * a_lejoined
04:32:19  * a_lequit (Read error: Connection reset by peer)
04:32:24  * a_le_joined
06:48:57  * forkforkjoined
10:02:44  * ncopaquit (Ping timeout: 245 seconds)
10:08:20  * ncopajoined
10:58:18  * DarkGodjoined
11:03:48  * ncopaquit (Quit: Leaving)
11:43:20  * forkforkquit (Quit: Connection closed for inactivity)
13:52:05  * pistojoined
13:54:30  * pistopart ("Leaving")
14:37:10  <rphillips>good morning
15:36:05  * dan336joined
16:30:31  <creationix>mornin
16:30:32  <creationix>I’m no the road, but most the trip has good internet
16:30:58  <creationix>(midwife appointment, I go along just in case my wife goes into labor)
16:32:04  <creationix>rphillips: I’m almost done moving the lit protocol to websocket. I’m curious to hear if that’s enough to work with the network proxy
16:32:25  <creationix>the server already has optional ssl using the luvit.io cert
16:33:10  <creationix>well, almost, something is wrong with my nginx config
16:33:25  <creationix>but ws://lit.luvit.io is deployed and currently is a websocket echo server
16:47:45  * UniOnjoined
17:25:08  <rphillips>cool
17:25:39  <rphillips>i'll test it out
17:25:56  <rphillips>should I wait for ssl support?
18:44:11  * DarkGodquit (Ping timeout: 256 seconds)
18:55:25  <rphillips>hmm. my websocket chrome extension threw an error
19:09:44  <creationix>rphillips: it does require the “lit” subprotocol
19:09:45  <creationix>the server will 400 if you don’t set it
19:11:15  <rphillips>just tried it again with the lit subprotocol
19:11:30  <rphillips>same error
19:11:53  <rphillips>could be the silly tool :)
19:12:16  <creationix>you can use the “wscat” node module
19:12:22  <creationix>`npm install -g wscat`
19:12:35  <creationix>then `wscat -c ws://lit.luvit.io -s lit`
19:12:41  <creationix>it’s lke telnet, but websocket
19:13:35  <creationix>or in web inspector `connection = new WebSocket('ws://lit.luvit.io/', ['lit’]);`
19:13:46  <creationix>and send frames with `connection.send(“hi”)`
19:13:59  <creationix>the network tab on chrome can show the websocket frames
19:21:00  <creationix>rphillips: ok, I pushed what I’ve got of the new lit protocol. The server isn’t running it quite yet, I need to run some more tests first
19:21:37  <rphillips>coo
19:21:43  <creationix>the test-push.sh test is having strange connection issues, but manual testing was working fine
19:46:20  <creationix>rphillips: ok, it’s done
19:46:48  <creationix>you’ll need to update your default upstream to “ws://lit.luvit.io/” in your $HOME/.litconfig file (and also upstream)
19:47:00  <creationix>but simply doing `lit up` will set upstream to the default
19:47:20  <creationix>upstream is now a full url so you can specify port (and eventually tls via wss)
19:58:42  <rphillips>creationix: https://gist.github.com/rphillips/e128d0f157f5a3c67887
19:58:43  <rphillips>got this error
19:58:51  <rphillips>when I tried to publish rphillips/luvit-async
19:59:22  <creationix>did you add a password prompt for keys?
20:00:17  <creationix>or maybe openssl does that
20:00:31  <creationix>but did you `lit add …` before doing `lit publish …`
20:02:36  <rphillips>creationix: my key is protected by a passphrase
20:02:42  <rphillips>i'll try lit add
20:02:44  <rphillips>i didn't do that
20:03:01  <creationix>I wonder if I should change publish to try an add first if it’s not found locally
20:03:19  <rphillips>https://gist.github.com/rphillips/e128d0f157f5a3c67887
20:03:30  <rphillips>add worked, then publish had a different error
20:04:31  <creationix>invalid fingerprint right?
20:04:58  <creationix>oh, it didn’t report the erro to you, that’s not helpful
20:05:42  <creationix>I had the server running in debug mode as a different user
20:05:49  <creationix>just a sev while I run it under the proper permissions
20:05:54  <creationix>it probably failed to import your public key
20:06:33  <creationix>ok, now the server is running in production mode
20:06:36  <creationix>rphillips: try again
20:09:08  <rphillips>pull first?
20:09:23  <rphillips>publish had the same error
20:09:53  <creationix>sure, pull first, I might have fixed something
20:14:26  <creationix>wait, your package name needs to be prefexied with your github username
20:14:40  <creationix>I see the server was trying to look up keys for the “async” user
20:15:31  <creationix>rphillips: change your pacakge’s name to “rphillips/async” and add/publish again
20:15:54  <creationix>I should probably prevent people from signing for packges they don’t own
20:15:58  <rphillips>gotcha
20:19:12  <rphillips>hmm
20:19:20  <rphillips>publishing: rphillips/luvit-async
20:19:24  <rphillips>that is the package name
20:19:26  <rphillips>same error
20:21:19  <creationix>strange, the server still isn’t trying to import your keys
20:21:30  <creationix>ok, I deleted the cache for the “async” user, try again
20:22:44  <rphillips>worked
20:22:47  <creationix>that looks promising, it imported your keys
20:22:55  <rphillips>i did a lit add again
20:23:01  <rphillips>that probably was the issue on the 2nd round
20:23:13  <creationix>yep, that will do it
20:23:23  <creationix>https://github.com/luvit/lit/issues/11
20:23:33  <creationix>looks like you have 4 keys on github
20:23:43  <creationix>I’ve got a ton since I test from so many machines / vms
20:25:24  <creationix>rphillips: making history https://gist.github.com/creationix/d310606cef8dd15fe89c :P
20:25:44  <rphillips>user 2 :)
20:26:23  <creationix>I wonder why systemd puts “creationix” in the log
20:26:31  <creationix>the “lit” process is running as the “lit” user
20:26:55  <rphillips>there is a uv command set the process name
20:27:09  <rphillips>i wonder if it's the service manager running the server?
20:27:53  <creationix>oh, that’s my hostname
20:27:58  <creationix>makes sense
20:28:11  <creationix>hmm, I can’t install your package
20:28:15  <creationix>hash mismatch error
20:28:28  <creationix>can you `lit install rphillips/luvit-async` in a new empty folder
20:29:04  <creationix>oh, heh, your client has it all cached
20:29:17  <rphillips>ah
20:29:24  <creationix>you can `rm -rf ~/.litdb.git` to clear your local cache
20:29:39  <creationix>same error right?
20:29:43  <rphillips>right
20:29:58  <creationix>strange, `git fsck` checks out
20:30:47  <rphillips>would be nice if lit would talk to the ssh agent
20:30:58  <rphillips>i have to type my ssh key password
20:31:12  <creationix>does it ask for it on every command?
20:31:17  <rphillips>yeah
20:31:25  <rphillips>even on the install
20:31:26  <creationix>I’ll bet openssl.pkey.read is doing that
20:31:34  <creationix>I should lazy read the pkey then
20:31:47  <creationix>I was wondering why publish needed it
20:31:50  <creationix>it’s only used for add
20:32:02  <creationix>and auth
20:32:33  <creationix>btw, here is the server log for the failed install https://gist.github.com/creationix/d310606cef8dd15fe89c#file-2-install-log
20:34:20  <creationix>you can manually query the lit server using wscat
20:34:36  <creationix>the query “match creationix/git” will show the version and hash of the latest version of my git
20:34:58  <creationix>“want 65b521c0e9605b63da46db2ee91c04640d93fbe6” will download that blob as deflated binary
20:48:56  * DarkGodjoined
20:51:08  <creationix>rphillips: fixed it. `git pull` in lit to get fix
20:51:37  <creationix>thanks for testing. All my test packages were too small to see that bug
20:51:48  <rphillips>man that was fast
20:51:50  <rphillips>nice
20:52:13  <creationix>it remembered the objects you had already downloaded and cached, so it’s fairly effecient
20:52:17  <rphillips>fail: [string "bundle:lib/upstream.lua"]:28: response must be code 101
20:53:24  <creationix>try again, I updated and restarted the server process
20:54:53  <rphillips>hmm. same
20:55:03  <creationix>I never saw you hit the server
21:00:31  <rphillips>https://gist.github.com/rphillips/fa6f76658ce51ff91997
21:00:40  <rphillips>perhaps a different error?
21:01:47  <creationix>rphillips: after this line, log the `req` and `res` tables https://github.com/luvit/lit/blob/master/app/modules/creationix/websocket-codec.lua#L164
21:01:54  <creationix>that will give you the http headers and stuff
21:03:43  <rphillips>https://gist.github.com/rphillips/fa6f76658ce51ff91997
21:03:47  <rphillips>req, then res
21:05:05  <creationix>hmm, the reson body is missing, let me add some better error reporting
21:10:06  <creationix>rphillips: git pull and try again
21:10:11  <creationix>it should show the response body
21:13:32  <creationix>I’m also logging the headers the server sees and sends
21:13:47  <creationix>that way we’ll know if a proxy is doing mitm to us
21:14:00  <rphillips>https://gist.github.com/rphillips/fa6f76658ce51ff91997
21:15:02  <creationix>strange, it’s stripping the “Upgrade: websocket” header and adding a new “Via: …” header
21:15:11  <creationix>how was it working before, were you at home?
21:17:22  <creationix>rphillips: https://gist.github.com/creationix/2eaff1ef5971a0e97b42
21:18:02  <creationix>so I can make the server more lax and not require the “Upgrade: websocket” header
21:18:14  <creationix>or we can add tls
21:18:40  <rphillips>oh yeah, damn
21:18:46  <rphillips>i vpn'ed in for a ticket
21:18:59  <creationix>awesome, I was wanting to test it inside the vpn
21:19:16  <creationix>I think for now I’ll just remove the check for the upgrade header
21:19:31  <creationix>it’s obviously websocket v13 from the Sec-WebSocket-* headers
21:19:35  <rphillips>blam. disconnected and it worked great
21:19:55  <rphillips>t/modules/rphillips/luvit-async
21:19:58  <creationix>so good news is we don’t need tls for your vpn network
21:20:11  <creationix>but it’s still probably a good idea long term for other firewalls
21:29:34  <creationix>rphillips: ok, two fixes. It should only ask for your password when it needs to read the private key and it should work even when on vpn
21:29:39  <creationix>update lit
21:29:50  <rphillips>k
21:30:26  <rphillips>worked
21:30:41  <rphillips>i'll try on the vpn
21:31:39  <rphillips>creationix: https://gist.github.com/rphillips/8a21d5f787f00ca0ff66
21:31:41  <rphillips>failed on the vpn
21:32:10  <creationix>oh, oops I forgot to update the server to be more lax
21:32:37  <creationix>try again on vpn
21:35:17  <rphillips>hangs right after the 'load config'
21:41:52  <creationix>hmm, maybe the proxy breaks websocket after all
21:41:56  <creationix>time for tls I guess
22:33:56  <creationix>ok, added auto-add-before-publish
22:34:01  <creationix>now the publish workflow is much nicer
22:36:37  <rphillips>going the the virgo Client class and getting it fixed up
22:36:52  <rphillips>tracking down a require for ('path')
22:37:35  <creationix>what ever happened to this “path” overhaul? https://github.com/luvit/luvit/pull/510
22:37:38  <creationix>it’s still useful right?
22:37:50  <creationix>the path module in luvi is pretty minimal and not a luvit path replacement
22:43:37  <rphillips>true
23:05:47  <rphillips>I'll look into porting that module this weekend
23:12:45  <rphillips>creationix: organization support would be nice for lit
23:12:58  <rphillips>hard problem, I know
23:12:59  <creationix>yep, still don’t know how to do it
23:14:05  <rphillips>https://developer.github.com/v3/orgs/members/#members-list
23:14:19  <rphillips>requiring public members doesn't seem like a bad requirements
23:14:22  <rphillips>requirement*
23:14:47  <creationix>true
23:15:39  <creationix>problem is it lists all members
23:15:52  <creationix>dvv, for example, doesn’t have push access to luvit, but is in the luvit org
23:20:18  <creationix>the teams API might help, but it requires authentication
23:21:10  <creationix>have to be an owner of the org and have read:org scope
23:39:46  * forkforkjoined
23:42:53  * mihequit (Quit: HydraIRC -> http://www.hydrairc.com <- It'll be on slashdot one day...)