-
jonas’
can someone with URI knowledge tell me whether: `xmpp://xmpp-public.sotecware.net:5222/sotecware.net` would be an accurate way to write "Connect to sotecware.net using xmpp-public.sotecware.net on port 5222, skipping SRV record resolution`?✎ -
jonas’
can someone with URI knowledge tell me whether: `xmpp://xmpp-public.sotecware.net:5222/sotecware.net` would be an accurate way to write "Connect to sotecware.net using xmpp-public.sotecware.net on port 5222, skipping SRV record resolution"? ✏
-
jonas’
it does not need to be generally understood that it means that, just whether the basic URI semantics are sane
-
moparisthebest
jonas’: you don't need the domain if you have a jid to get it from
-
jonas’
moparisthebest, depends on the use-case
-
moparisthebest
You probably need a jid regardless don't you?
-
jonas’
I want this for monitoring purposes, so I might want to monitor the up-ness and certificates and stuff of all possible server endpoints for a given domain
-
jonas’
yes, the jid is behind the last ``/``
-
jonas’
it’s just a domain, but still a JID :)
-
jonas’
(in the specific case I’m thinking about, the client would never even authenticate, so there’s no need for a valid localpart)
-
jonas’
I’m trying to coerce this into a single URI/URL because I only have a single string to pass to stuff.
-
Zash
I have a thing that accepts domain@host:port (not an URI/URL)
-
moparisthebest
Ah ok, I made up my own similarish url syntax for this and ralphm yelled at me lol https://github.com/moparisthebest/jDnsProxy/blob/master/xmpp-dox/jdnsproxy.xmpp.resolver.properties#L27
-
moparisthebest
I also needed a single string
-
ralphm
🤣
-
jonas’
so maybe ralphm can now also yell at me?
-
ralphm
Yelling As A Service?
-
waqas
Yaas
-
Zash
Real-Time Instant Yelling Service
-
ralphm
In general, yes, if it looks like a URI, just make it one. Especially if you're using existing URI schemes.
-
ralphm
Also, I generally don't like it when people use new schemes in production without having IANA registering it first.
-
ralphm
jonas’: but specifically, no, you can't bypass SRV like that. It is explicitly forbidden: https://tools.ietf.org/html/rfc5122#section-5.2
-
waqas
ralphm: That's pretty widespread these days, particularly on mobile platforms where apps register their own URL schemes. Almost all modern OS vendors allow apps to define these.
-
ralphm
waqas: doesn't mean I have to like it
-
ralphm
Or that it is a good idea
-
waqas
I have mixed feelings about it. I'm not necessarily fully sold on IANA registry being a registry of all allowed schemes.
-
waqas
(the same way I'm not sold on all possible XMPP protocol extensions requiring going through the XSF XEP process, the X for extensibility without relying on central authority is important)
-
ralphm
Well, either it is a URI, which requires registration with IANA, or it is a fake.
-
waqas
Same for XEPs?
-
ralphm
Similarly, without a XEP, you cannot use urn:xmpp as a prefix
-
waqas
I'm comfortable with urn:xmpp, and I'd be comfortable with an app using "http:" to always mean the HTTP protocol.
-
waqas
But all URL schemes requiring registration is like requiring all namespaces even without the urn:xmpp prefix requiring the same
-
ralphm
If you don't use the XSF, you must use your own namespace, e.g. one with a http scheme with an auth part that points to your own domain. Or your own registered URN prefix.
-
waqas
It's the registration bit that I'm rejecting
-
ralphm
E.g. at Mediamatic, we had namespaces starting with http://mediamatic.nl/ns
-
Zash
`xmlns="xmpp:prosody.im/stuff"` :D
-
ralphm
waqas: why? URI/URL/URN as concepts are defined by the IETF, the set the rules.
-
Zash
Isn't there a DNS tree you can use somewhere? `urn:dns:example.com:whatever` ?
-
waqas
Is there a statement from the IETF classifying unregistered as fake?
-
ralphm
I haven't considered using xmpp: as a prefix for namespaces. I suppose you can, without auth part like that.
-
Zash
ralphm: Should be equivalent to http:// URLs as namespaces as far as anything is concerned, right?
-
ralphm
Indeed
-
ralphm
But without auth part (//) because xmpp URIs have specific syntax.
-
Zash
Tho the original topic was overlap between URLs and configuration syntax.
-
Zash
You could spare your sanity and imagine that they're not really UR[LI]s
-
ralphm
I think, waqas, you should read RFC 3986 and BCP 35.
-
ralphm
Zash: indeed
-
ralphm
E.g. by not using an explicit scheme
-
Zash
Is there something like vendor prefixes for schemes?
-
ralphm
Yes
-
Zash
As in, foocorp-thing://magic/syntax
-
ralphm
See BCP 35, section 3.8.
-
ralphm
Basically reversed domain
-
ralphm
Like org.example:
-
Zash
`com.foocorp.thing://blah` ?
-
ralphm
Also don't use // if it doesn't make sense
-
Zash
I distinctly remember that some platform required it. iOS maybe?
-
Zash
Leading to weird horrors like `xmpp:///stuff`
-
waqas
section 6 of BCP 35 is relevant
-
ralphm
That platform is wrong
-
waqas
For the most part, platform vendors and app authors have shown little to interest in BCP 35 though :)
-
ralphm
Zash: but I guess Apple has more issues like that, e.g. the recent openid connect thing.
-
ralphm
waqas: that doesn't mean you shouldn't
-
waqas
I mildly equate this to the bazaar ignoring the cathedral except for a few popular occasions :)
-
ralphm
I hold some pride in doing it properly.
-
waqas
"properly" is up for debate
-
ralphm
It is not, though. If you can diverge from standards on a whim, why have them?
-
Zash
Anarchy! Chaos! Cats and dogs living together!
-
waqas
It would be ridiculous to follow all standards. Much like how we don't actually want clients to follow *all* the XEPs.
-
ralphm
There's a reason why we made xmpp extensible, so you can choose to do something else without violating specifications.
-
waqas
Indeed, and URI schemes are similarly extensible :)
-
ralphm
Yes, when folding its standards.
-
ralphm
Of course many people ignore standards
-
ralphm
(following)
-
Zash
waqas: > (the same way I'm not sold on all possible XMPP protocol extensions requiring going through the XSF XEP process Where did you get this from?
-
ralphm
More than sometimes, not following a standard means pain later.
-
waqas
I think this is just fundamental disagreement, I disagree with following all possible standards being a requirement. I'm sure in any large pool of standards, I'd consider a significant portion to be inappropriate to implement.
-
ralphm
You generally don't have to implement all standards?
-
waqas
No, I do not
-
Zash
ralphm: "Pain for someone else" ?
-
ralphm
If you just follow XMPP Core, you can call yourself an XMPP application.
-
ralphm
If you want to use jabber:iq:roster, please follow what's in XMPP IM, though.
-
waqas
(technically you can call yourself that even when not following Core fully, which is true for most XMPP software, but I digress)
-
ralphm
You can, but you would not be truthful.
-
waqas
ralphm: I agree with that! Similar to how I agree followers of HTTP should follow the HTTP specs for the most part!
-
waqas
The world is a lie then. Point out any large code base implementing any large spec and I can probably show you it's a lie.
-
waqas
But anyway, this is going way offtrack :)
-
waqas
I'm cool with central registration being a MAY or SHOULD, but am fundamentally opposed to MUST, particularly for toy, experimental or private use cases, but in general too.
-
waqas
A world where MUST was e.g., a legal requirement would be a worst world, IMHO
-
Zash
There are usually recommendations for private namespaces and such
-
waqas
And people SHOULD follow those when sane :)
-
ralphm
I think the text in the specs I linked are to be interpreted mostly as a strong SHOULD, but things will break if you have naming conflicts.
-
waqas
Sure, and in various situations that can be an acceptable tradeoff
-
waqas
Particularly in situations where anonymity is a requirement. Registration with authority generally translates into breaking anonymity.
-
ralphm
Except when it doesn't when later your internal thing became part of a public API and now somebody, usually you, is crying.
-
waqas
I imagine that's pretty rare. Most things end up registering when they become big, often turning into de facto standards, and not when they are initially created.
-
waqas
I can't recall if this was true for xmpp: too. Did it see usage before it was registered or after?
-
ralphm
I don't directly see how anonymity is a factor in choosing a URI scheme, especially if there's a defined way to do private extensions.
-
ralphm
No, xmpp didn't exist as such before interacting with IETF.
-
Zash
`jabber:` then?
-
ralphm
We had to grandfather a bunch of things, and the jabber prefix was indeed wrong.
-
Zash
I mean, was there ever a `jabber` URI scheme?
-
ralphm
We first changed that to http URIs at jabber.org, eg pubsub, then went on to URNs.
-
waqas
I'm curious if all the XMPP proprietary competitors have their protocols registered :)
-
waqas
They all have at least one each, that their mobile apps register
-
ralphm
You *don't* have to register your proprietary extensions.
-
ralphm
However, those can't use the urn:xmpp prefix compliantly.
-
waqas
Yep, and my point for URI schemes is that in practice anything not registered via IANA has been fair game for private use. With rare exceptions, the industry as a whole treats things that way.
-
Zash
Well, they get to enjoy their time boms then.
-
waqas
There are easily more than a single order of magnitude schemes out there in use vs what's in the IANA registry
-
Zash
Oh, `jabber` is registered? https://www.iana.org/assignments/uri-schemes/perm/jabber
-
ralphm
Yes retroactively
-
ralphm
And with all known uses from XEPs and RFCs
-
ralphm
Only
-
Zash
That's good.
-
ralphm
As I said: grandfathered
-
edhelas
https://twitter.com/matrixdotorg/status/1144918306211684352
-
edhelas
I think we should definitly do some benchmarks between our XMPP servers and Matrix servers on similar features
-
Zash
Which "we"?
-
pep.
The royal "we"
-
edhelas
Zash you and me
-
Zash
Lies, damned lies, statistics, benchmarks.