Live data from Hacker News

How the URL Was Built

welcometothejungle.com

21–25 of 25 posts

Re: How the URL Was Built

#21
post #12

Earlier quoted context omitted.

gopher://zzo38computer.org/0textfile/miscellaneous/unusenet (copied that gopher link's contents into a pastebin) https://pastebin.com/raw/qJhSKGyv

Thanks. Interesting, though I'm not exactly sure what problem it's solving or what improvement it's making to Usenet.

It is solving the problem of namespace collision when creating newsgroups that are not part of the main Usenet hierarchies.

If you are setting up your own discussion forums (or blog, or whatever) based on NNTP, this avoidance of namespace collision is useful. (They can still be federated to other servers if wanted; they keep the name where it originated. You can have Usenet and Unusenet on the same server with no collision.)

Re: How the URL Was Built

#22
post #4

Is there a character to demark the end of a url? If I write into my smartphone notes a url, I prefer to write something like: Http://google.com/search?q=How to bake cakes$ Than Http://google.com/search?q=How+to+bake+cakes iOS Notes treats the second one as a URL and the first one partially as a URL

An old convention is http://google.com/search?q=How+to+bake+cakes >. Really helps with ending periods. Markdown copied that too: https://spec.commonmark.org/0.29/#autolink

This worked in iOS notes!!

http://google.com/search?q=How to bake cakes>

Thank you!

Re: How the URL Was Built

#23

Earlier quoted context omitted.

Thanks. Interesting, though I'm not exactly sure what problem it's solving or what improvement it's making to Usenet.

It is solving the problem of namespace collision when creating newsgroups that are not part of the main Usenet hierarchies. If you are setting up your own discussion forums (or blog, or whatever) based on NNTP, this avoidance of namespace collision is useful. (They can still be federated to other servers if wanted; they keep the name where it originated. You can have Usenet and Unusenet on the same server with no col…

> It is solving the problem of namespace collision when creating newsgroups that are not part of the main Usenet hierarchies.

Thanks for the reply, but you are trying to solve a problem that doesn't exist.

If you run nntp.example.com and someone else runs nntp.example.org, and you both create the local group example.talk.general there will be no "collision", there will simply be same group on two different servers.

That is literally how Usenet functions; different servers carrying the same groups.

If the issue is you don't want posts from other servers on your server's local copy of example.talk.general, or vice versa, then you simply don't send or receive articles for example.talk.general to or from other servers.

Again, simply how Usenet/news servers work.

> You can have Usenet and Unusenet on the same server with no collision.

So what happens if someone creates the Usenet group un2.org.example.a.b.c which you already have as an "Unusenet" group?

Well nothing, because "Unusenet" is simply a word you've come up with to describe a standard, fundamental feature of Usenet: creating (local) newsgroups.

Re: How the URL Was Built

#24

Earlier quoted context omitted.

It is solving the problem of namespace collision when creating newsgroups that are not part of the main Usenet hierarchies. If you are setting up your own discussion forums (or blog, or whatever) based on NNTP, this avoidance of namespace collision is useful. (They can still be federated to other servers if wanted; they keep the name where it originated. You can have Usenet and Unusenet on the same server with no col…

> It is solving the problem of namespace collision when creating newsgroups that are not part of the main Usenet hierarchies. Thanks for the reply, but you are trying to solve a problem that doesn't exist. If you run nntp.example.com and someone else runs nntp.example.org, and you both create the local group example.talk.general there will be no "collision", there will simply be same group on two different servers. T…

> If you run nntp.example.com and someone else runs nntp.example.org, and you both create the local group example.talk.general there will be no "collision", there will simply be same group on two different servers.

That is correct, but the newsgroups might not be connected, and that can cause confusions. If they are connected then it is not a problem of course, but some servers might not be connected.

> If the issue is you don't want posts from other servers on your server's local copy of example.talk.general, or vice versa, then you simply don't send or receive articles for example.talk.general to or from other servers.

While that is possible, some servers may copy it if you do not want to, and you may have a description or purpose which does not match that on the other server, and it can also cause confusion in the client; you may be using multiple servers, each with a newsgroup called example.talk.general, and you will not tell the difference so easily. This might not be a problem for you, but sometimes these issues are significant. Later they might want to copy messages between the two servers, but what if they don't want that newsgroup? It will cause many confusions.

> So what happens if someone creates the Usenet group un2.org.example.a.b.c which you already have as an "Unusenet" group?

If someone wants such a newsgroup, they can connect it to the example.org server, so that messages will be propagated. Otherwise, you will have distinct local newsgroups with the same name, and there can be confusions as noted above.

Ordinary Usenet newsgroup names do not start with "un" and a number, so such things are not expected to occur unless someone deliberately tries to cause collisions (for which the same thing can happen with UUIDs, as well as URIs to identify namespaces in XML and RDF). (By definition, "un2.org.example.a.b.c" is a "Unusenet" group. If someone creates it on Usenet, they should know to connect it with the example.org server.)

Nobody is required to use this Unusenet specification. If it doesn't help, don't use it. But, it is there if you need it.

If you are creating newsgroups in existing hierarchies according to their policies for doing so, then Unusenet is not helpful and can easily be avoided.

(But, see, for example, the thread starting at on news.software.nntp for some other points of view. They mention creating their own hierarchy, to avoid problems with adding new newsgroups to existing ones; Unusenet is merely one possible way to do so without collision, should you need or want such a thing.)

> ... "Unusenet" is simply a word you've come up with to describe a standard, fundamental feature of Usenet: creating (local) newsgroups.

Well, not quite. The word "Unusenet" I made up refers to the specific set of namespaces which are named according to the specifications in that document. The fundamental feature of creating newsgroups (local or otherwise) is independent, and can be created with or without Unusenet namespacing.

Re: How the URL Was Built

#25
post #16

Earlier quoted context omitted.

URLs can't contain spaces

Actually they can, though it is not recommended as URLs appear in running text, which may break lines at space characters. Just look at appendices A and B of RFC 3986. Although it's recommended that you encode them in user representation (for this reason) you can certainly should be able to send a space character through at the protocol level and if not it's a bug. Note that a space is not valid in the host name port…

The EBNF in appendix A does not allow any spaces. Specifically, there is also this section in RFC 3986.

> 2.4.3. Excluded US-ASCII Characters

> Although they are disallowed within the URI syntax, we include here a description of those US-ASCII characters that have been excluded and the reasons for their exclusion.

[...]

> space =

You can certainly encode spaces in URLs but the URL will not contain spaces.

The regular expression in appendix B is irrelevant because it assumes a well-formed URL so spaces do not need to be explicitly excluded.

And at the protocol level you certainly can't use spaces in URLs (in HTTP 1.1) because the request line uses spaces to delimit the URL or path.

Post reply on HN