I stumbled upon the gemini:// protocol the other day, and went down that particular rabbit hole over the weekend so you wouldn’t have to (although I might actually recommend it).

If you’ve never heard of it, it’s meant to be a modern middle-ground between gopher and HTTP, and uses a space-centric, whimsical terminology: sites are “capsules”, there’s a nice aggregator called Antenna, and many related tools, software packages and the like borrow from familiar space exploration terms.

The Good Bits

  • It uses an extremely simple TLS-wrapped protocol on (unprivileged) port 1965 (which is when the first Gemini mission went to space) that essentially only supports fetching a piece of content at a time.
  • It relies on a very simplified Markdown-esque text format instead of HTML.
  • There is no Javascript. No CSS, nothing beyond the raw markup. No cookies, either.
  • The experience is really good in polished clients like Lagrange, and there are plenty of terminal-based clients (which are a natural fit).

Overall, I like the experience of reading unfettered markup that is not part of the noisy, ad-ridden, mainstream Internet, and I’ve found a few aggregators, search engines and reverse proxies that make it easy to find interesting content even if a lot of it has an idealistic “undernet” feel to it.

For someone like me who mostly consumes news via RSS feeds and uses Reader Mode to declutter news sites whenever possible, it is quite pleasant to wander through Gemini sites.

As usual, there are lists of all kinds of resources. But Lagrange, in particular, makes it very pleasant to read Gemini sites on my iPad mini, and is a fully cross-platform app for handling gemini:// URLs that I would recommend as a starting point.

The Annoying Bits

  • Sessions and authentication are largely MIA (you can use cllient certificates, but that isn’t all that flexible), with some clever hacks in some servers and clients.
  • text/gemini markup is very limited from an authorship perspective. It does not support inline links or any text emphasis/formatting whatsoever (up to and including tables), which I don’t think is ideal for either long form or documentation.
  • There are no inline images or any sort of rich media besides links. Some browsers do render media inline (upon clicking), so you can sort of work around it, but in the end it feels just… Too cut down.
  • There is essentially zero page content metadata (no Last-Modified, nothing you can use for caching, even), which feels like a lost opportunity to make some things (like blogs) a lot easier.
  • The protocol does not have the concept of byte ranges or pipelining (i.e., getting specific byte indexes out of the content or issuing multiple requests over the same socket connection), which makes it very slow (TCP handshake + TLS handshake for each page). OK, fine, most capsules are likely hosted in tiny machines and you don’t have inline media and hence no sub-requests, but…

Overall, I think they’ve gone too far in simplifying the protocol.

The absence of a Content-Length header, for instance, is just asking for trouble (Gemini’s sister protocol, Titan, hacks that into URLs), plus I’d like to have some pre-fetching for tackling slow networks, and the provision for zipped bundles of content as “books” isn’t exactly it.

Since I’m currently around halfway through converting all of this site’s content from Textile to Markdown (which means I’ve yet to slog through around 4500 pages), I am particularly attuned to the idea of simpler, “lesser” formatting for the sake of maintainability and readability (and this site’s design is already pretty minimalist), but I wish they’d trimmed less things down.

Otherwise I might even adopt it and put up a test server, if only for the thought experiment (although it would be a massive step back now that I’ve migrated to a static site hosted off Azure storage).

But it is certainly intriguing, and I will be keeping an eye on it.

Notable Media of 2021

The Expanse’s final episode aired yesterday and it was a great end to a decent week, so I decided to do a reprise of ’s take on the stuff that struck my fancy throughout the intervening year, even if there’s a little less to write about this time.


Early January Checkpoint

Been back at work for a week and am actually not terribly excited about it. In fact, the running joke bouncing listlessly from neuron to neuron is that it took me most of the week to wade through enough notes and e-mails to remember what my job actually is these days.


2021 In Review

We’re now two years into a (still) evolving pandemic with entirely too many plot twists, but life goes on and I’ve been trying to push that into the background. And given the season, I think I should put together another list of noteworthy things that came to pass in much the same vein as .


670 Days Later

Now that Christmas has come and gone (with varying results as people scrambled to test centers to figure out whether it was safe), I think another short update on the COVID situation in Portugal is warranted as the Omicron variant takes a firm hold.


The Christmas Halo Effect

It’s looking like we’re going to be in for a rainy Christmas this year, so couch surfing seems like a given, and some light gaming is in order. I have a bazillion things on my personal backlog, but… I need to relax a little, so traipsing around a Forerunner ring again is much more appealing than any of them right now.


Unreal Thoughts

I’ve been watching the discussions and interviews about the Matrix Awakens Unreal 5 demo (which, sadly, is not available on Game Pass), and I have thoughts about it. And they’re ambivalent, but likely not in the way you would expect.


The Bored Programmer's Ambilight

Although I abhor RGB lighting in PC builds, I’ve always been fascinated with Philips TVs and the Ambilight feature, of which there are dozens of hacky clones.


My Mid-Life Crisis M1 MacBook Pro

Yes, I got myself an M1 MacBook Pro. A week or so before my birthday I decided to bite the bullet, take some of the money I’ve been putting aside and just order one, and it arrived a few days ago. This was actually around a week before the original estimate if my memory serves me correctly, so global logistics haven’t packed up yet.


Building a Now Playing Display

Today’s a bank holiday, so I decided to spend a little while having fun. As it happens, yesterday I came across this neat “Now Playing” desktop display build, and since I have an official 7” LCD on my desk for controlling my lights, I decided to do something similar, but to display what’s currently playing on (since I use PlexAmp for my music collection).


My Quest for Home Automation, Part 5

We don’t celebrate Thanksgiving here, but it tends to be the time around which I take out our Tasmota-based smart outlets and set up the heaters again, and I guess it’s also a good time to document all the latest changes.


640 Days Later

on how COVID is panning out in Portugal, I think it’s time to have another look at things.


Taking Stock

I recently celebrated another orbit around our otherwise rather unremarkable star, so I decided to take a day off, play around with some gadgetry and spend a few evenings doing… nothing much for a change except cleaning up loose ends.