dedbox
2017-12-6 17:55:05

RFC 7595: > A scheme name is not a “protocol.” However, like a service name as defined in Section 5 of [RFC6335], it often identifies a particular protocol or application.


dedbox
2017-12-6 18:37:54

So a URI scheme consists of: - a unique scheme name - possible restrictions on syntax of scheme-specific-part (per RFC 7595) - information on the kinds of resources being identified - well-defined operations on identified resources - possible restrictions on encoding and allowed characters - known interoperability considerations and incompatibilities - any security considerations


dedbox
2017-12-6 18:38:29

along with other registrar-ish details, like contact info and registration status.


samth
2017-12-6 18:39:31

note, in general the web follows the URL Standard much more than the RFCs (see https://url.spec.whatwg.org/)


dedbox
2017-12-6 18:49:54

Neat. Looks like a lot of good practical advice.


notjack
2017-12-6 18:50:04

ah yes, the Other URLs


notjack
2017-12-6 18:50:37

and yes @dedbox that list looks about right


dedbox
2017-12-6 18:51:31

I think this, or something equally plain, would make the docs easier to read and write: > Standardize on the term URL. URI and IRI are just confusing. In practice a single algorithm is used for both so keeping them distinct is not helping anyone. URL also easily wins the search result popularity contest.


samth
2017-12-6 18:52:26

@dedbox I agree 100%


notjack
2017-12-6 18:52:54

I would personally rather have a terminology section in the docs with @tech terms defined for “URI”, “URL”, “URN”, “persistent global name”, and “locator”


notjack
2017-12-6 18:53:14

but I think that’s because I’m focused more on machine-to-machine communication with net2 than server-to-browser communication


samth
2017-12-6 18:53:24

and then not use the terms URI and URN :stuck_out_tongue:


notjack
2017-12-6 18:54:04

link relations — which I really want to build stuff with — are often best described with URNs


notjack
2017-12-6 18:54:38

but I think there’s much better stuff to focus on in net2 first so just using URL everywhere is fine for v1


notjack
2017-12-6 18:55:20

also hi @samth


samth
2017-12-6 18:55:27

hi @notjack


notjack
2017-12-6 18:56:14

I might or might not be attempting to make http2 for racket


notjack
2017-12-6 18:56:17

:p


notjack
2017-12-6 18:56:45

along with @dedbox


notjack
2017-12-6 18:57:28

you work on a bunch of web standards stuff right?


samth
2017-12-6 18:57:28

I am in favor


samth
2017-12-6 18:57:34

I work on JS


samth
2017-12-6 18:57:47

for a very loose definition of “work”


notjack
2017-12-6 18:58:09

I think I remember seeing some comments from you in a github thing about the es6 pattern matching syntax


samth
2017-12-6 18:59:09

yes


samth
2017-12-6 18:59:14

that is not surprising


samth
2017-12-6 18:59:28

also if you’ve written ES6 modules you can blame me


dedbox
2017-12-6 19:02:14

The import/export syntax is very comfortable.


notjack
2017-12-6 19:02:14

oh fantastic I have an outlet for that now


notjack
2017-12-6 19:02:19

(kidding)


samth
2017-12-6 19:02:49

glad y’all like it


samth
2017-12-6 19:03:05

it of course wasn’t just me


samth
2017-12-6 19:03:19

but that’s the primary thing I’ve done


notjack
2017-12-6 19:03:34

I left my last job (node+angular) just before es6 modules started being everywhere, and since then I haven’t done any js at all in google


notjack
2017-12-6 19:03:42

so alas I haven’t gotten to use much of the es6 goodies


notjack
2017-12-6 19:03:55

but the modules were probably the part I was most happy with so thank you


dedbox
2017-12-6 20:33:25

Just got the net2 package stub installed and docs compiled. Looks pretty good already.


notjack
2017-12-6 20:34:40

:thumbsup:


samth
2017-12-6 20:43:05

where is the net2 pkg?



samth
2017-12-6 20:44:23

apparently private :wink:


dedbox
2017-12-6 20:44:35

oh, sorry. I didn’t realize.


notjack
2017-12-6 20:46:20

oh right I still gotta make that public


samth
2017-12-6 20:46:43

you could just let me into the secret club


notjack
2017-12-6 20:46:55

@samth ’twas only private while I waited on google legal process to make sure I had copyright ownership


dedbox
2017-12-6 20:47:27

so that’s why slack didn’t make the link fancy


dedbox
2017-12-6 20:49:42

btw gotta add a few lines to tech.rkt to make the docs compile


notjack
2017-12-6 20:50:15

I think I’ve got some stuff in my local clone that I haven’t pushed yet


dedbox
2017-12-6 20:50:31

@@ -17,7 +17,10 @@ (define-tech-helpers transport-tech "transport" connector-tech "connector" - listener-tech "listener") + listener-tech "listener" + transport-pool-tech "transport pool" + disposable-pool-tech "disposable pool" + transient-tech "transient")


notjack
2017-12-6 20:51:15

I can push it tonight, unless you’d like to right now


notjack
2017-12-6 20:51:30

and I’m gonna make it public now - good with you @dedbox?


dedbox
2017-12-6 20:51:34

yes


dedbox
2017-12-6 20:51:54

I’ll commit the change now.


notjack
2017-12-6 20:51:57

wait


notjack
2017-12-6 20:51:59

actually


dedbox
2017-12-6 20:52:08

?


dedbox
2017-12-6 20:52:28

to a dev branch


notjack
2017-12-6 20:52:32

some of those tech terms are defined in the disposable package (transient and disposable pool) so that tech ref won’t work as is


dedbox
2017-12-6 20:52:56

oh, yeah some of my links are broken. That was just to see what was in there.


notjack
2017-12-6 20:53:16

gotcha


dedbox
2017-12-6 20:54:10

Actually, I’ll leave it alone. The patch above is small and easy to read.


notjack
2017-12-6 20:54:16

voila, the repo is public


notjack
2017-12-6 20:54:24

dedbox
2017-12-6 22:01:15

> Currently, including identifying user info in authorites (see RFC 3986 Section 3.2.1) is not supported due to historically widespread security problems and a lack of immediate use cases.


dedbox
2017-12-6 22:01:48

git@github.com:jackfirth/racket-net2.git


dedbox
2017-12-6 22:02:00

use case?


notjack
2017-12-6 22:04:46

not sure if that’s something git/github specific or part of an http url


dedbox
2017-12-6 22:05:41

certainly not immediate, in either case


dedbox
2017-12-6 22:06:01

The https equivalent does not have the username. <https://github.com/jackfirth/racket-net2.git>


notjack
2017-12-6 22:07:00

¯_(ツ)_/¯


notjack
2017-12-6 22:08:23

unrelated: decided to rename “racket transport addresses” to “virtual addresses” since really all that’s important about them is that they’re addresses in some sort of software-defined network with reliable transport


dedbox
2017-12-6 22:09:15

I like it.


dedbox
2017-12-6 22:10:27

I want to port axon to other languages, so that’s convenient for me.


notjack
2017-12-6 22:18:03

format I’m thinking of:

  • virtual address is 64 bits so it fits into a long in most languages+platforms (32 bits seems too low for, say, a giant Erlang cluster where every process has an address)
  • string form of virtual address is virt.&lt;hex-encoded-bits&gt; so implementations can read them one byte at a time if needed for prefix-routing
  • string form of prefix-routable address range is virt-range.&lt;nibble-count&gt;.&lt;hex-encoded-prefix-bits&gt; (less sure on this one) so implementations can 1) use nibble-count as a max read length, 2) use . to split into three parts, and 3) guarantee that there won’t be “extra” hex encoded bits because you have to hex encoded bits in chunks of 4 (“nibbles”)

dedbox
2017-12-6 22:35:24

So the address space is flat, not hierarchical. This makes sense if the virtual address spaces of racket processes are not shared. So far, that seems to be the case.


dedbox
2017-12-6 22:35:39

Scheme names virt and virt-range are not yet registered.


dedbox
2017-12-6 22:35:51

Virtual ranges seem useful for “green” fan-in and fan-out, good for many IO-bound threads. Might give us some clarity on TCP/IP ranges.


notjack
2017-12-6 22:36:13

I think prefix routing would let you build hierarchical addressing on top if you wanted, but yes


notjack
2017-12-6 22:36:22

also virt and virt-range would not be schemes


notjack
2017-12-6 22:36:25

you’d instead have something like this:


notjack
2017-12-6 22:36:51

httpv:virt.&lt;hex&gt;/some/resource?query


dedbox
2017-12-6 22:37:06

oh, they’re registered names?


notjack
2017-12-6 22:37:13

oh and port numbers would still be a thing so the same address could have multiple listeners


notjack
2017-12-6 22:37:14

yes


dedbox
2017-12-6 22:41:24

Could we “upgrade” our HTTP scheme to support virtual addresses as registered names, or is that considered not playing well with others?


notjack
2017-12-6 22:42:11

that would be the latter, because it makes it ambiguous - a virtual address could also be a dns address so it becomes unclear which one to use


dedbox
2017-12-6 22:43:27

RFC 7595 explains this, I think.