Enjoying Programming with AROS: How did I Write Gopher Client.

While ago I discovered new world of geminispace. Yeah, Gopher is rather old, unlike that Gemini is new (what? New text-based internet protocol in XXI, in 2021? They are insane...). So, what's happened? Someone finally explained us the value of simplicity. Finally, I got the point: Gopher is not just about historical curiosity, Gemini is not just pure protocol-gaming and is not just IT-downshifting. On one's hand, being so simplified, Gopher and Gemini protocol forces you to do right thing right (sugar): for writing just write! On other hand, unlike http/html it makes near to impossible to do bad things: no distractive ad, no js, no tracking, no cookies (salt). Yeah, sugar and salt should be balanced and lack of the latter in modern web ended up to unbearable bloatnet. So, it is time to get rid of bloated web and let Google go with their the only browser in world. Small internet is a great opportunity for old systems, where it could be a bit untracktable to continually catching up Google. Thanks to per-line layout, client-side software for Gopher/Gemini can do any programmer by himself! Render pages without web engine!

Good story, but... Well... While I can enjoy "small internet" on Haiku, It appears, there are no Gopher/Gemini clients for neither AROS, nor Kolibri, nor FreeDos. Kolibri is the different story, FreeDOS I personally never used. But AROS...

As everyone here, in Geminispace, I started to write my own small client for smol internet for AROS. As an amateur programmer, I've never programmed nothing serious outside of my research project in Python. There is recent FreePascal compiler in AROS. But I've never programmed on Pascal and I've never programmed for AROS. It is insane. I still can not believe I dived into it.

Yes, I've got problems with TLS. "Put OpenSSL binaries somewhere". It is a great idea of Gemini to use client TLS certificates, so that damn cookies no more needed. But it is not my level to fight with C libraries and I was not ready to implement my own cryptography. Even Gemini proxy works over https only. So, retain on Gopher for now.

Dr. rer. nat. Marcus Sackrow aka alb42 not only maintains FPC port for all Amigas, but also prepared object-based MUIClasses that feel like "small Qt" and I (as an helloworlder) was able to understand, whats going on there.

MUIClass (on github)

Marcus's homepage

So, from standard MUI elements I compiled something, that shows Gopher pages ("gophermaps") with some issues (i.e. lists always show actually previous element as active) . I was too lazy (and there were not examples) to implement images support (ArLan only downloads them), copying to clipboard and font customization (it does not change font in runtime).

Screenshot of result app :)

Download AROS x86 build (with mess sources)

That's how I spent my kind-of-holidays. It was exciting, but now I need to back to my duties, publish ArLan (means 'gopher' in Udmurt) as is and.. I still can not believe, at midsummer I dived into crazy coding of something with that weird combination of protocol, OS and programming language...

Aleksei

Brno, 31.7.21