-- Leo's gemini proxy

-- Connecting to gemini.marmaladefoo.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

Web client autonomy - sailing the Small Web


Date: 27-Aug-2020


> Web client opinions - do you have any?

> Sure, I thought you'd never ask. Maybe you do too?


I had briefly thought to call this piece "Taking Back Control" before I quickly remembered that old cliché has become a slogan of the jingoistic proponents of Brexit. Such true believers loudly announce the idea that Nirvana will be easily achieved once we leave the European Union and "take back control" of our Manifest National Destiny. And collectively, we bought it. Sigh.


So it's not called that, because, taste.


But, speaking of imagined Utopias, glowing beyond the horizon, ironically, does lead me on quite naturally to pontificating about Gemini. Here in the Geminiverse, we happy band of underground techno-refusniks hold onto an idea of an alternative retro-tech future; we declaim our active refusal of the abject monstrosity that is the modern web; we push forward with an alternative reality of what a human scaled hypertext could look like; we write our own clients and servers; we furiously type our missives on our clackety keyboards in our darkened rooms.


And yet, quite a healthy ecosystem it is turning out to be:


Gemini Software

GUS geminispace statistics


Current web client monoculture


Much has been written recently about Google's growing hegemony in the web. Writing a web browser is such a mammoth undertaking that even Microsoft has abandoned its illusions of maintaining its own browser code base, and the new Edge browser is based on Chromium. The recent layoffs at Mozilla have only served to remind us of its slow but inexorable decline into the background noise, even as it battles on. Firefox is really just a hacker's browser now.


Web browser statistics over 10 years


Only Safari on iOS really has a viable claim to offer any genuine alternative to Chrome.


> So where could the alternative clients possibly come from?

> Can anyone think of a simple hypertext system that could show the "important content" of the web?

> Maybe something so accessible, you could even write a simple client in a weekend?


OK, I am preaching to the converted here, but you must surely get my drift.


The Long Tail and the Small Web


Gemini clients are rich and diverse already, some graphical, some terminal, some even purposely invisible like Rhapsode. We have discovered that a great deal of great technical and creative writing can be captured by the simple markup scheme of gemtext:


Plain text paragraphs

Headings, Bullets, Quoted text

Preformatted text

Hyperlinks


The distribution and popularity of content on the web is a steep curve with high ranked pages and websites on the left, but leaving a thick long tail.


Long tail of the Internet


Most of the content on the left of the curve uses the full range of technologies encompassed by the full swathe of complex web standards. Sites that only work with full client side javascript, embedded video, cookies, user tracking. All the stuff we are refusing to accept. So it is impossible to imagine those high rank sites - effectively web applications - could ever be viewed in a Gemini client. A full web client is indeed needed to access the Web-As-Application.


However down in the tall grass of the long tail, is where much of the diversity of web content lives. This material is written, shared and authored by writers who understand the need to contribute to a wider public good. Or maybe the content is niche, and the prospect of monetisation is small. Here the content is document centric: articles, blog posts, a few photos and diagrams, source code maybe. The structure is simpler yet the ecosystem of content and ideas is richer.


In the long tail the cookie based tracking, document cruft, javascript and deep styling is either spurious or irrelevant. We know this since existing browsers' "Reader mode" does a good job of simplifying it and making it readable again. Most of the long tail is still accessible by plain old HTTP GET as text/html.


From a complexity point of view, we can think of this simpler, document centric content as the "small web".


This small web content maps very nicely into gemtext, usually without any significant loss. The same key structural elements are all that is needed: headings, links, preformatted text, bullets and quotes. Take for example the Gemini spec on the circumlunar.space website. That web page is generated from the source GMI, converted to HTML for viewing in a browser. But this web page can be converted back to GMI without any data loss.


Gemini specification on circumlunar.space website


Many other content centric web pages will look good too.


This content accessibility effect is accentuated even more if you look at the linked content from the Gemini side - i.e. pages and sites that are linked from an arbitrary gemtext page. These pages chosen by Gemini authors are even more likely to be document-centric and content-focussed than the web in general. So there is a sort of periphery of small web content orbiting just outside Geminispace, but linked from it, and this content is generally quite amenable to being accessed from a document centric client.


Release the Gemini-bots!


I see part of our mission - if you can call it that - as Gemini enthusiasts, is to both promote the value of Gemini, and at the same time entice friends and allies *on* the web, and perhaps even *from* the web.


We can demonstrate how an alternative view of the web can make sense of the content we value for a good deal of the time. Let's appear as unexpected entries in their webserver logs:


User-Agent: MyFavGeminiClient/1.0

In my more hopeful moments, I try to imagine the web as not ultimately doomed. It will still be a necessity to access certain commercial content, or to view your bank statements. We cannot completely opt out.


But the small web can be accessed by a Gemini type client; including your favourite client with all its joyful quirks, vim-style shortcuts (or Emacs!), unified styling, desktop integration. A quieter web for the most part, the web as it could be:


No tracking or cookies

No javascript

No server styling, just content

No client headers


It won't cover every site, but reading the small web may cover most of your needs, most of the time.


Just launch the system browser only when you have to.


Extending Gemini clients for the Small Web


The key elements needed to extend Gemini clients for travelling into the rough seas of the web are as follows:


A simple HTTP GET client to retrieve the content

A simplifying filter (like web "Reader mode") to strip out navigational cruft and boilerplate (optional)

HTML to GMI conversion

A user interface that lets the end user decide if they have enough content, or wish to launch the system browser


Some of these elements may already exist on your platform if you are on Unix:


cURL and wget

Mozilla "Readability" converter and other similar utilities


I've been working on the 3rd aspect - converting HTML to GMI as a cross-platform, command line application and Go library html2gmi. You can plug it into your workflows, for example. Http-Get is the simplest possible cross-platform HTTP client.


html2gmi - HTML to GMI conversion utility and Go library

http-get - a simple client for HTTP GET only


The final element is to provide a bit of user interface so they can evaluate the "simplified" web content and continue, or launch the system browser. Similar to turning the "Reader mode" on and off in a normal web browser. This can be just a button or link for the user to click.


Proofs of concept


Based on the above, an update to my own client GemiNaut will be released soon (now available) having a gemtext flavoured mode to browse the Web. From any web page you can view plain text, simplified, unfiltered or launch the system browser. This work in progress build of GemiNaut is not out yet. Contact me if you want to try this new feature.


The Diohsc gemini client has explicit support for "pluggable" proxy and content schemes that allow it to be extended with other content services. You can use wget to retrieve the web content, then pass through html2gmi. So it too can be web-enabled.


GemiNaut browsing Gemini HTTPS Website (screenshot)

GemiNaut home

Diohsc


Also there is now the Duckling Proxy which is a scheme-specific proxy for gemini clients to access web pages.


The Duckling Proxy


Sailing forth


Perhaps ultimately it is just tilting at windmills to imagine we can shape the wider web? The web may indeed be on a slow inevitable decline towards who knows what. Gemini is still tiny, even if it is a resilient bastion of resistance.


Solderpunk versus the windmills


But at least we can have our fun trying to shape the Internet the way we want it.


Even if we have to watch the web's decline, in the mean time we could get to maximise our time drifting over the ocean in one of the simpler, smaller and kinder types of sailing boat that we have built for Gemini.


And so, it would be less time for us, standing anxious and forlorn atop the commercial, Chrome-plated, behemoth of an oil tanker, wondering where it is taking us.


__________________ __________________ __________________


(A web visible version of this essay)


Gemlog home

Home

-- Response ended

-- Page fetched on Wed Apr 24 21:25:18 2024