💾 Archived View for gemini.turnquist.name › gemlog › 2023100721_Launching_into_Gemini_Space.gmi captured on 2023-11-14 at 07:45:11. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-11-04)

-=-=-=-=-=-=-

Launching into Gemini Space

So I've started exploring and experimenting with Gemini in earnest now. A year or so ago I built and installed the geminid server and had it running for a while. But when I went to create my capsule the other week I found I never built or installed a gemini client.

I wanted something in C, as that's what I'm most familiar with. I found and built gmi100, which is a working client in 100 lines of C code. It worked easily (I think there was one minor change in the SSL code), but I wanted something a bit more usable; a little more like lynx maybe.

So I started modifying the code to use curses. It turns out it really is easy to write a gemini client with just a basic understanding of networking code. I plan to package it up and release it soon.

Open Source is Only Open If You Can Understand It

Which brings be to an observation. Many big open source software package developers take an attitude of: We'll do what we want and if you don't like it, tough: you have the code, you are free to change it if you wish.

True, but it would probably take me a month of full-time studying to understand the code enough to make relatively minor changes. It's often an effort just to build such packages from source unmodified. For what it's worth to me, Firefox is essentially just as open source as Microsoft Edge.

gmi100 was simple enough that, even with the code golf formatting to keep it under 100 lines, I had a pretty good idea what it did in under an hour, and then only a few more hours to turn it into a curses client. I hope to keep the new client simple enough and well enough documented that others can customize it to their liking.

Phlog Now Multi-Protocol

Lastly, as I've worked with gemini, I felt I should have my gopher phlog over there, too. I modified my backend stuff a bit, writing pages in gemtext and converting for both sites; processing the gemtext file into plain text for gopher, and unwrapping paragraphs for gemini. Then each runs a build program to create the gophermap and index.gmi.

I'm also moving gemini from my workstation to my server, so it will be reachable via IPv4 as well as v6.

More thoughts to come (they come easier here than in WordPress).

;Date: 2023-10-07 21:47
;Desc: Gemini: Yes, you really can modify the code
;Tag: Gemini
;Tag: C
;Tag: Phlog