-- Leo's gemini proxy

-- Connecting to soviet.circumlunar.space:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; lang=en

[tech] doubts (was Re: [spec] [rfc] SEDR 300 VOLUME I)


From: Petite Abeille

Date: Sun, 3 Jan 2021 17:12:01 +0100




> On Dec 30, 2020, at 00:19, Sean Conner <sean at conman.org> wrote:

>

> create a Gemini server where %2F *is required* to retrieve the resource.


By the way, what happens on your implementation if I name the actual gemini/text like "b%2Fw.gmi"? Burn and crash?


b/w ? (art) Initialism of black-and-white.


https://en.wiktionary.org/wiki/b%2Fw


? ???



--------

From: Sean Conner

Date: Sun, 3 Jan 2021 16:55:44 -0500


It was thus said that the Great Petite Abeille once stated:

>

>

> > On Dec 30, 2020, at 00:19, Sean Conner <sean at conman.org> wrote:

> >

> > create a Gemini server where %2F *is required* to retrieve the resource.

>

> By the way, what happens on your implementation if I name the actual

> gemini/text like "b%2Fw.gmi"? Burn and crash?


No. It will be sent as "b/w.gmi".


-spc


--------

From: Petite Abeille

Date: Sun, 3 Jan 2021 22:57:56 +0100




> On Jan 3, 2021, at 22:55, Sean Conner <sean at conman.org> wrote:

>

> No. It will be sent as "b/w.gmi".


And then? What happens when it's requested? 51 NOT FOUND?


? ???



--------

From: Sean Conner

Date: Sun, 3 Jan 2021 16:59:02 -0500


It was thus said that the Great Petite Abeille once stated:

> > On Dec 30, 2020, at 00:19, Sean Conner <sean at conman.org> wrote:

> >

> > create a Gemini server where %2F *is required* to retrieve the resource.

>

> b/w ? (art) Initialism of black-and-white.

>

> https://en.wiktionary.org/wiki/b%2Fw


Also, <https://en.wiktionary.org/wiki/b/w> works just as well. So does

<https://en.wikipedia.org/wiki/A/B_testing>.


-spc


--------

From: Sean Conner

Date: Sun, 3 Jan 2021 17:00:06 -0500


It was thus said that the Great Petite Abeille once stated:

>

>

> > On Jan 3, 2021, at 22:55, Sean Conner <sean at conman.org> wrote:

> >

> > No. It will be sent as "b/w.gmi".

>

> And then? What happens when it's requested? 51 NOT FOUND?


I don't know, Petite. Do does your server return?


-spc



--------

From: Petite Abeille

Date: Sun, 3 Jan 2021 23:02:29 +0100




> On Jan 3, 2021, at 22:59, Sean Conner <sean at conman.org> wrote:

>

> Also, <https://en.wiktionary.org/wiki/b/w> works just as well. So does

> <https://en.wikipedia.org/wiki/A/B_testing>.


Sure. It's wikipedia, they must deal with non-compliant clients. They are a public service, pretty much.


How does your server handles it? What's your excuse?


No reply needed. You are in good company, not even the intern who implemented the Go library during last summer of code got it right. No shame.


? ???



--------

From: Petite Abeille

Date: Sun, 3 Jan 2021 23:06:04 +0100




> On Jan 3, 2021, at 23:00, Sean Conner <sean at conman.org> wrote:

>

> I don't know, Petite. Do does your server return?


Let me help:


% touch b%2Fw.gmi


This gets published as b/w.gmi, according to your own account.


If a client request such url, on your server, what would happen? Some magic ala wikipedia? 51 NOT FOUND? Something else?


No reply needed either.


? ???



--------

From: Sean Conner

Date: Sun, 3 Jan 2021 17:29:11 -0500


It was thus said that the Great Petite Abeille once stated:

>

>

> > On Jan 3, 2021, at 22:59, Sean Conner <sean at conman.org> wrote:

> >

> > Also, <https://en.wiktionary.org/wiki/b/w> works just as well. So does

> > <https://en.wikipedia.org/wiki/A/B_testing>.

>

> Sure. It's wikipedia, they must deal with non-compliant clients. They are

> a public service, pretty much.

>

> How does your server handles it? What's your excuse?


Laziness and spite, just to piss you off. Yes, you specifically.


> No reply needed. You are in good company, not even the intern who

> implemented the Go library during last summer of code got it right. No

> shame.


So where is your server and client that is correctly written?


-spc (No, really! Where is your code? So we mere peons can see your

godlike code? Or is it too crystaline perfect for our eyes?)


P.S. In other words, put up or shut up!


--------

From: Petite Abeille

Date: Sun, 3 Jan 2021 23:34:09 +0100




> On Jan 3, 2021, at 23:29, Sean Conner <sean at conman.org> wrote:

>

> Laziness and spite, just to piss you off. Yes, you specifically.


You do realize I couldn't care less about what your code does or doesn't do, right? It's your code after all. No one else care.


But do not bullshit me in regards to what an URL is or isn't. No amount of historicism is going to get you out of this one.


A simple "not supported" would do. Again, no one cares.


Again, best to drop it.


? ???



--------

From: Sean Conner

Date: Sun, 3 Jan 2021 17:40:43 -0500


It was thus said that the Great Petite Abeille once stated:

>

>

> > On Jan 3, 2021, at 23:29, Sean Conner <sean at conman.org> wrote:

> >

> > Laziness and spite, just to piss you off. Yes, you specifically.

>

> You do realize I couldn't care less about what your code does or doesn't do, right? It's your code after all. No one else care.

>

> But do not bullshit me in regards to what an URL is or isn't. No amount of historicism is going to get you out of this one.

>

> A simple "not supported" would do. Again, no one cares.


NOT FUCKING SUPPORTED!


-spc


--------

From: Petite Abeille

Date: Sun, 3 Jan 2021 23:42:05 +0100




> On Jan 3, 2021, at 23:40, Sean Conner <sean at conman.org> wrote:

>

> NOT FUCKING SUPPORTED!


There you go. Not that difficult after all.


On that note, Happy New Year.


? ???



--------

From: Luke Murphy

Date: Sun, 3 Jan 2021 23:48:42 +0100


Jeesus this place is a hell hole.


On 0, Sean Conner <sean at conman.org> wrote:

>It was thus said that the Great Petite Abeille once stated:

>>

>>

>> > On Jan 3, 2021, at 23:29, Sean Conner <sean at conman.org> wrote:

>> >

>> > Laziness and spite, just to piss you off. Yes, you specifically.

>>

>> You do realize I couldn't care less about what your code does or doesn't do, right? It's your code after all. No one else care.

>>

>> But do not bullshit me in regards to what an URL is or isn't. No amount of historicism is going to get you out of this one.

>>

>> A simple "not supported" would do. Again, no one cares.

>

> NOT FUCKING SUPPORTED!

>

> -spc


--------

From: Petite Abeille

Date: Sun, 3 Jan 2021 23:50:58 +0100




> On Jan 3, 2021, at 23:48, Luke Murphy <lukewm at riseup.net> wrote:

>

> Jeesus this place is a hell hole.


Happy New Year to you as well. Where have you been in 2020? Never mind.


? ???



--------

From: Julien Blanchard

Date: Mon, 4 Jan 2021 00:05:48 +0100


Chill out Petite Abeille, please let?s not not start 2021 with some anger.

You already have a least a third of the messages on this list, never can?t really tell if it?s just contrarian or real suggestions. At least there is food for thoughts.

Perhaps it?s time for you to actually use the protocol and share some of your ideas in a more constructive way?


My 2 c?ents

julienxx


--------

From: Petite Abeille

Date: Mon, 4 Jan 2021 00:14:39 +0100




> On Jan 4, 2021, at 00:05, Julien Blanchard <julien at typed-hole.org> wrote:

>

> Chill out Petite Abeille, please let?s not not start 2021 with some anger.


Thanks. No anger though. Plain spoken if anything. Possibly chatty.


That said, if mild technical challenges make some lose bowel control in a fit of rage, then perhaps best not to go to the IETF afterall. They will shred this to pieces.


Nothing wrong keeping it "speculative" and casual. Formalism can be overrated.


? ???



--------

From: John Cowan

Date: Mon, 4 Jan 2021 22:29:14 -0500


On Sun, Jan 3, 2021 at 4:55 PM Sean Conner <sean at conman.org> wrote:



> > By the way, what happens on your implementation if I name the actual

> > gemini/text like "b%2Fw.gmi"? Burn and crash?

>

> No. It will be sent as "b/w.gmi".

>


In what circumstances? If the URL bar or text link says "b%2Fw.gmi",

that's what should be sent to the server; if it says "b/w.gmi", then *that*

is what should be sent to the server. The server may treat those

differently or the same. The reason is that / is a reserved character.

The server ought to treat http://abc.com:80/~smith/home.html and

http://abc.com:80/%7Esmith/home.html exactly the same, per RFC 2616.





John Cowan http://vrici.lojban.org/~cowan cowan at ccil.org

You cannot enter here. Go back to the abyss prepared for you! Go back!

Fall into the nothingness that awaits you and your Master. Go! --Gandalf

-------------- next part --------------

An HTML attachment was scrubbed...

URL: <https://lists.orbitalfox.eu/archives/gemini/attachments/20210104/fb4316ec/attachment-0001.htm>


--------

From: Sean Conner

Date: Fri, 8 Jan 2021 01:27:09 -0500


It was thus said that the Great John Cowan once stated:

> On Sun, Jan 3, 2021 at 4:55 PM Sean Conner <sean at conman.org> wrote:

>

>

> > > By the way, what happens on your implementation if I name the actual

> > > gemini/text like "b%2Fw.gmi"? Burn and crash?

> >

> > No. It will be sent as "b/w.gmi".

>

> In what circumstances? If the URL bar or text link says "b%2Fw.gmi",

> that's what should be sent to the server; if it says "b/w.gmi", then *that*

> is what should be sent to the server. The server may treat those

> differently or the same. The reason is that / is a reserved character.

> The server ought to treat http://abc.com:80/~smith/home.html and

> http://abc.com:80/%7Esmith/home.html exactly the same, per RFC 2616.


"All non-trivial abstractions, to some degree, are leaky."

-- Joel Spolsky [1]


"Doctor, it hurts when I do this."


"Then stop doing that."

-- Old vaudville joke.


I've already rejected tons of replies to this, so I think I'll ask a

question. You are writing a client, and you come across this link:


%2E%2E/%52%3A%20%41%2F%42%20%31%25%20%40%20%24%33%3B%76%3D%31


This is a relative URI, so this needs to be resolved against the base URI,

and for this question, the base URI is


gemini://example.com/%66%6F%6F/%62%61%72%3B%33/


How should the client (or a URI/URL/IRI parser) deal with such links.

What, in your mind, should they manipulate or parse the URLs? It's not a

matter of "no body should generate such links" because you can't control

that. The client gets what it gets.


When I wrote my URL parser, I wrote it to be useful to me (with the hope

that others would find it useful). But it seems it does The Wrong Thing.

So in your opinion, what should it, nay, MUST it do?


Here's the list of references I've been pouring through the past week:


RFC-1630 Jun 1994

RFC-1738 Dec 1994

RFC-1808 Jun 1995

RFC-2396 Aug 1998

RFC-3986 Jan 2005

WHATWG URL Jan 2021 (it keeps changing) [2]


Also, do ANY existing URL parsing library get it right? Please make sure

to justify your answer(s).


-spc


[1] https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/


[2] https://url.spec.whatwg.org/


--------

From: easrng

Date: Fri, 8 Jan 2021 11:42:46 -0500


On Fri, Jan 8, 2021 at 1:27 AM Sean Conner <sean at conman.org> wrote:

> How should the client (or a URI/URL/IRI parser) deal with such links.

IMO they should decode all characters allowed in that section of the

URL. For example, a %2f wouldn't be decoded, because it would split

the path segment. %61 would, because it decodes to "a", which is

allowed and wouldn't change the meaning. The Chrome (Might actually be

V8, idk) and Firefox URL parsers do this for HTTP(S), but not other

protocols.

I think this makes sense because it makes a single normalized form,

and allows for files with special characters in their names. I'm not

sure how servers would handle filenames with slashes in them, though.


- easrng


--------

From: John Cowan

Date: Fri, 8 Jan 2021 17:29:26 -0500


On Fri, Jan 8, 2021 at 1:27 AM Sean Conner <sean at conman.org> wrote:



> You are writing a client, and you come across this link:

>

> => %2E%2E/%52%3A%20%41%2F%42%20%31%25%20%40%20%24%33%3B%76%3D%31

>


If we unescape all of the RFC 2396 unreserved characters, we get

"../R%3A%20A%2FB%201%25%20%40%20%243;%3Bv%3D1" (my reference to RFC 2616

was erroneous). RFC 3986 makes a lot of concessions to WHATWG, and

requires the %2E%2E to be left alone, which changes resolution. IMO Gemini

should stick with 2396 on this and a number of other points.


This is a relative URI, so this needs to be resolved against the base URI,

> and for this question, the base URI is

>

> gemini://example.com/%66%6F%6F/%62%61%72%3B%33/



RFC 2396 doesn't actually allow an unescaped trailing slash in the

pathname, although RFC 3986 does. If that is removed, then there there are

no escaped reserved characters, so this is equivalent to "gemini://

example.com/foo/bar%3B3/". Normal URI resolution then gives us "gemini://

example.com/foo/R%3A%20A%2FB%201%25%20%40%20%243;%3Bv%3D1", which is what

should be sent to the server. Exactly how, if at all, the last component

of the path is translated into a file on the filesystem is completely up to

the server.


That's my best shot.




John Cowan http://vrici.lojban.org/~cowan cowan at ccil.org

Evolutionary psychology is the theory that men are nothing but horn-dogs,

and that women only want them for their money. --Susan McCarthy (adapted)

-------------- next part --------------

An HTML attachment was scrubbed...

URL: <https://lists.orbitalfox.eu/archives/gemini/attachments/20210108/4d401344/attachment.htm>


--------

From: Petite Abeille

Date: Sat, 9 Jan 2021 00:38:14 +0100




> On Jan 8, 2021, at 07:27, Sean Conner <sean at conman.org> wrote:


What about:


[BASE]

gemini://example.com/foo/bar%3b3/

_["scheme"]="gemini"

_["host"]="example.com"

_["authority"]="example.com"

_["path"]={}

_["path"][1]="foo"

_["path"][2]="bar;3"

_["path"]["directory"]=true

_["path"]["absolute"]=true


[RELATIVE]

../R:%20A%2fB%201%25%20@%20$3%3bv=1

_["path"]={}

_["path"][1]=".."

_["path"][2]="R: A/B 1% @ $3;v=1"

_["path"]["directory"]=false

_["path"]["absolute"]=false


[ABSOLUTE]

gemini://example.com/R:%20A%2fB%201%25%20@%20$3%3bv=1

_["path"]={}

_["path"][1]="R: A/B 1% @ $3;v=1"

_["path"]["directory"]=false

_["path"]["absolute"]=true

_["host"]="example.com"

_["scheme"]="gemini"

_["authority"]="example.com"


Works? Fails? What do you get?


? ???



--------

-- Response ended

-- Page fetched on Mon Jun 17 23:32:35 2024