(DIR) Home
 (DIR) Blog posts
       
       Continuing the experiment. More.
       
       14 July, 2025
       
       Having spent the traditional month or two second guessing myself, I've come to a temporary arrangement that satisfies at least some of my blogging needs.
       
       I wasn't around for Gemini's evolution up until very recently, but stuff as they say seems to have gone down along the way. I was excited to find the very first Gemini server, it's still up. I was less excited to read the following echo of some long ago argument there:
       
       QUOTE
       "I'm no longer involved with the Gemini development, so all the tests and tools that were here are have been removed. Why doesn't matter. I've been told to shut up, sit down, and let the adults in the room talk. You have been warned."
       END QUOTE
       
 (HTM) The first Gemini server.
       I've been pondering about moving further down the rabbit hole since reading that. From HTTP to Gemini, & onwards, or maybe downwards, or perhaps even less charitably, backwards, to Gopher. Party like it's 1991. But I'm not there yet.
       
       I want to experiment here, & the stern warnings about not changing anything I've found sprinkled all over Gemini's docs, coupled with that warning from the first Gemini server don't bode well for experimentation. That's going to be the deciding factor for me between the two protocols in the long term, I think. For now though it's easy for me to set up a working Gemini site with most of what I want, & it'd be a bit of work to get something like the equivalent with Gopher.
       
       Thinking about what I might miss out on from Gemini by going to Gopher, & hence likely future experiments from me:
       
       Gemini has TLS. Gopher over TLS has optional TLS. I wrote a Gopher server in Elixir that responded to TLS client hellos, but I don't really want to have to deal with Elixir in production any more so Gopher over TLS remains an aspirational goal, but definitely possible. Gemini mandates TLS, but TOFU... Optional might be a better compromise I think.
       
       Gemini has Gemtext. While I started off disliking the idea of a new Markdown dialect, I've found I prefer the Gemini link format to regular Markdown for writing enough to overcome those initial qualms. I can never remember which's meant to come first in a Markdown link, the address or the text. The rest of the formatting covers everything I normally use except for the occasional table. So I wrote a Gemtext to Gopher (& HTML) translator that I'm using now to make the HTTP mirror of this site. There's also the Geomyidae format for gophermaps too, using | instead of tabs, but I think Gemtext is a keeper for me. For anybody keeping track at home, that means this year I rewrote (to make it Gemtext to Gopher & HTML, in Swift) my rewrite (Markdown to Gemini in Rust) of my rewrite (Markdown to HTML in Rust) of my static site generator (which was a Ruby Mardown to HTML site generator, almost like a normal person might do it).
       
       Rendering all that formatting. Gemini adds half a dozen bits of formatting & the expectation that rendering those things happens. Popularising (to the extent any of this could be described as popular) a mostly text format in part by providing formatting is not nothing. The excellent Lagrange browser came out of Gemini too, but it also works pretty well with barely formatted Gopher. I like Lagrange, & I like the little bit of formatting Gemini offers. Let's face it too, if any of this ever did become popular the bots would be sure to follow.
       
       So far almost all of my port 70 traffic's been people trying to get my Gopher server to do nefarious things. Idiots, a privileged port, no expectation of encryption, some kind of access to the file system. It's probably irresistible. Signal to noise is better on 1965.
       
       Gopher+ could give me the optional byte size of a link as a bonus. I'm not imaging streaming data, but I could... Gemini has nothing like that.
       
       Gopher's also appealing for the same reason I spent time earlier this year sending radio teletype signals (RTTY) to Japan. I love me the old protocols.
       
       There are probably other things I'm forgetting. Who knows what the story is with Gopher & UTF-8 for example, & the \r\n line endings drive me bonkers.
       
       So that's me thinking about what I might miss out on moving from Gemini by going to Gopher. Thinking about what I might miss out on from HTML by going to Gemini or Gopher... A lot of stuff I don't need, almost as much stuff I actively don't want, &... nothing. Nothing springs to mind.
       
       So that's the where (gemini://...), as well as the why (the endless bots on HTTP; Gopher's not quite ready out of the box). Once I've written some more code I'll write about the how. Ars est celare artem doesn't really work for coding. Maybe it's not as much of an art as I'd like to think.
       
       In any case, in a shift that's as much psychological as technical, this is now a site that happens to have a partial HTTP mirror. It's not really an HTTP site any more. Let's see where we go next.