💾 Archived View for gemini.thegonz.net › glog › 220525-geminiInputClientSupport.gmi captured on 2024-02-05 at 09:46:14. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-06-03)
-=-=-=-=-=-=-
[Spartan's ":=" input line type] is a wonderful thing as it eliminates a dumb-ass round-trip in Gemini. Every input field in Gemini needs an extra exchange with the server. The first one with no data gets an 'I need data' response which pops up an input field; the second one, with data, actually submits that data. Multiply by rounds of tcp handshaking and key exchange/verification, and you have a bit of useless traffic here.
I have a couple of things to say in Gemini's defence here, and a client UI suggestion.
Adding an input-request line type would only have been a convenience feature, not affecting what the protocol can do, and would have sacrificed simplicity. I don't think it was wrong to opt for simplicity over convenience, and certainly not obviously wrong.
As long as TLS session resumption is being used (which is increasingly the norm), the overheads of a second request aren't so huge.
Still, it's definitely often annoying to have to make a request just to get a 10 response so you can be prompted for input. But this can largely be fixed on the client side. In a GUI client, something like: ctrl-clicking on a link immediately opens a text input box, and submitting text there causes a request to the url of the link with query set to the submitted text. I'd also suggest a key/button which does the same with the current url. I don't know any client which does exactly this (though diohsc achieves the same effect by different means, and I find it very useful). This only works when the user realises that a link expects input, and what kind of input it expects, but this is often clear.
Anyway, that's enough of that. Go listen to Konpeito's final gift to us.