Replying to the recent discussions around the protocol

Fri, 29 May 2020

First, an apology

For some reason my deploy and dispatch scripts[1] are uploading everything, clobbering the file m/a/ctime on the server, which means they keep getting re-floated to the top of CAPCOM. It's annoying me, so I can't even imagine what the rest of gemini-space is going through. Until I can figure out a better script I'll manually upload my posts.

[1] WWW see build.sh; deploy.sh

Or two

Also I know this is *more* gemini-based content, but it's still early days. I think we're okay, really -- we've got a lot of time and space to grow.

Now the meat

I've been following the gemini mailing list for a week or so now and I've been inspired by Prosthetic Conscience's[2] writing on just replying, so here we are.

[2] Prosthetic Conscience, "Replies to Solderpunk and Shufei"

As a disclaimer, I'm aware of gopher but I've never really used it. Gemini is my plain-text-ish protocol of choice and I'm really loving it so far. Bollux is easily my most ambitious programming project to date, and I'm thinking of it all the time. So thanks, all, for this wonderful opportunity.

Re: URIs

As background to this, I've been trying to write a fork of OverbiteWX[3] that can navigate to gemini: links using Firefox, and while my code isn't working regardless, I also discovered that Firefox limits the number of protocols available to use in its API[4]. It's pretty much shot my project dead in the water, regardless of lack of skill or other issues, because I'd have to also change all gemini: links in a page to web+gemini: or ext+gemini:, which is

[3] Overbite extension

[4] registerProtocolHandler

So I don't think that limiting "acceptable URIs" to a list is the right thing to do, even though data: is agreeably a cluster and there's all kinds of terrible things you could do with it. But the same thing is true of HTML, or Gopher, or whatever -- at the bottom, all of these things are forms of communication, and if you wanted to write a Gopher client that turned every page into a fork bomb, you could, and the debate on whether or not it's truly a Gopher client would be mostly a semantic one. Because if you're pulling content from port 70, that's what it is; that's what people expect to go there. Same with servers -- if you wanted to serve something totally non-Gopher on port 70 (I don't know enough about it to even really say what that looks like), you could say it was Gopher, even though browsers wouldn't know what to do with it. I guess what I'm saying is, it doesn't matter.

Oh, but it does matter, you might think. It very much does. And that's true, for complicated protocols like the Web, the complicatedness of which I'm sure everyone who is reading this is aware. The great thing about Gemini, though, is it's *not* complicated. I was able to write a client in a little more than a weekend in Bash while being a hobbyist programmer at best. Literally anyone could write a spec-compliant client.

So I don't think we have to worry about a race-to-the-bottom a la the web. Just keep the spec simple enough to implement a client in a weekend for fun, and people will do that. And since it's complicated to render in-line images, and to load AJAX and CSS and render charts and do Javascript stuff and animate a stick man dancing across the page, most clients won't do it, because they're written by schmucks like me. I guess what I'm saying is, as long as a novice can write a spec-compliant Gemini client using existing tools in a weekend, we don't have to worry about a features boom -- because if I don't like that my current client renders images inline, I can write another one that doesn't really easily.

Maybe I'm being naive. Maybe I thought I'd have more than one main header to this post but I kind of word-vomited out everything I wanted to say. But I really think that Gemini is going to be okay, and it's going to stay fairly simple.

Of course, a lot of that is because we're having these conversations now! I'm reminded of an interview or something I heard or read a while ago, where a new dad was worried about being a good parent, and wondering what books to get, and the professional just said,

"The fact that you're worring about this right now means you're doing okay. You're going to do just fine as a parent."

And I think the same thing about Gemini.