1/

The finger-protocol could make use of DNS TXT records.

You could use it to change the TCP-port connected to for a finger-request.

You could use it to change the host connected to for a finger-request.

This has a lot of potential!

🧵

( #dns #dnsTxt )

( #finger #fingerHole #fingerProtocol #fingerverse )

( #smallInternet #smallNet #smallWeb )

( #smolInternet #smolNet #smolWeb )

2/

For example, if someone runs a command like:

finger [email protected]

A (new) finger-protocol DNS TXT record — could be used to silently change the TCP-port the finger-request is made to.

This, for example, could effectively make the previous command turn into something like:

finger [email protected]:1971

(Or whatever other TCP-port is desired.)

Also, for example —

3/

Also, for example, if someone runs a command like:

finger [email protected]

A (new) finger-protocol DNS TXT record — could be used to change the host the finger-request is made to.

This, for example, could effectively make the previous command turn into something like:

finger [email protected]@fingerhosting.dom

(Where "fingerhosting.dom" is the new host.)

(Or whatever other host is desired.)

Also, for example —

4/

Also, for example, the previous two could be used in combination.

Where a (new) finger-protocol DNS TXT record — could be used to change both the host and TCP-port the finger-request is made to.

Also, for example, if someone runs a command like:

finger [email protected]

This, for example, could effectively make the previous command turn into something like:

finger [email protected]@fingerhosting.dom:7979

Where both the host & TCP-port were changed.

5/

Why would you want something like this‽ —

Why would you want to use a finger-protocol DNS TXT record‽ —

Well, lots of reasons.

Here are some reasons —

6/

On many computers —

The operating systems will prevent (regular) programs from using certain TCP-ports.

On many computers — TCP-ports below 1024 cannot be used unless the program runs in ‘god mode’ — i.e., what some OSes call the ‘root’ user.

The finger-protocol is suppose to use TCP-port 79 — which is one of those privileged ‘god mode’ TCP-ports.

IT IS NOT A GOOD IDEA TO RUN A FINGER SERVER IN ‘GOD MODE’!

So being able to switch the TCP-port to a non-privileged TCP-port is desirable!

7/

Being able to put finger servers, mail servers, web servers, gemini servers, gopher servers, etc etc etc — on different computers is desirable.

For security reasons. For scalability reasons. For safety reasons. Etc.

But the use of the same Internet domain —

example.com

Could suggest they are all on the same computer.

Mail Servers actually have a convention for moving it to a separate computer — DNS MX records.

A (new) finger DNS TXT record could bring this to finger too.

8/

Shared hosting —

A (new) DNS TXT record could make shared finger-hosting easier in a lot of different ways.

A single server could serve finger for many Internet domains at the same time.

@reiver `TXT` shouldn't get overloaded. Lots of what you describe can be done with `SRV` records or their future successor `HTTPS`/`SVCB` records. Also look at IETF webfinger proposal, RFC7033.

@pmevzek

Using a DNS SRV record instead of a DNS TXT record —

To make it so you can change the TCP-port and host of a finger-protocol request —

Seems like a reasonable modification to what I was proposing.

( #dns #dnsTxt )

( #finger #fingerHole #fingerProtocol #fingerverse )

( #smallInternet #smallNet #smallWeb )

( #smolInternet #smolNet #smolWeb )

@pmevzek

But I don't think WebFinger would work — for a number of reasons.

For example —

finger is a human-legible protocol.

WebFinger is NOT a human-legible protocol. But instead WebFinger is programmer-legible & machine-legible.

…

Finger is a simple protocol. A intermediate-level experienced programmer could implement a very simple client or server as a weekend project

WebFinger is NOT simple. And not only has the complexity of HTTP(S), but WebFinger also adds a lot of extra complexity

@pmevzek

WebFinger is depends on HTTP(S).

And for some — they want to leave the Web, and seek out alternative (old & new) protocols that don't have the (technical and social problems) that the Web (and its usage) bring.

Finger is its own protocol. Finger isn't dependent on the HTTP(S) based Web. For those who want to leave the Web — finger can be attractive.

@pmevzek

I don't think I've heard of HTTPS/SVCB.

I'll take a look.

@reiver You are throwing the baby with the bath water. HTTP is a solid good protocol. How the web uses it is another matter. Lots of protocol unrelated to the web are using HTTP.

@pmevzek

By, for example, trying to modernize the finger-protocol —

To use your "baby with the bath water" metaphor —

I am trying to put the baby into different bath.

I'm trying to bring over the "good" parts of HTTP and other protocols to finger.

(Although finger has stuff interesting parts not found in other protocols. But...)

But what I am trying to do is opinionated of course. I.e., by what metric do I decide which are the good parts which aren't‽

@reiver "By, for example, trying to modernize the finger-protocol —" You may want maybe first today to find out who uses finger (noone? and if someone, certainly not people you can put in the "non-programmer" crowd, because it is a CLI which immediately forbids lots of people using it), and then what needs to be modernized in it (nothing?)./ It is often worth first stating the problem clearly (in abstract space) before jumping to conclusions and how to achieve them.
@reiver You may be fixing protocol and UI/display. The fact that WebFinger uses JSON does not mean it is not human legible.

@pmevzek

Assuming I accurately understand you —

I disagree.

JSON is NOT **easy to understand** by a (non-programmer) humans.

That, by definition makes it illegible to (non-programmer) humans.

.

Sure, there can be some keys & values in it that look like human language.

(Ex: if you speak English — maybe there is a key named "first_name", or maybe a value has some English text in it.)

But that quality isn't sufficient for it to be (non-programmer) human-legible.

@pmevzek

For example —

If I show the raw JSON output from WebFinger to a non-programmer —

Maybe my wife, or some of my non-programmer friends, etc —

They are not going to have an easy time understanding it.

The **not having an easy time understanding it** is the definition of illegible.

@pmevzek

If the word "illegible" bothers you, then let me try to explain without using that word.

"Text" viewers and editors are ubiquitous.

I desire a "native" data format is is easy to understand by a non-programmer humans in a "text" viewer.

@reiver No I don't think you understood me or that I explained me enough, but that is fine. I let you discover a little more everything that exists today before maybe drafting something new...