Project Gemini - veelgestelde vragen


Dit is een vertaling van de Gemini FAQ, de versie van 03-04-2021.

Stuur Nederlandse vragen over dit document of opmerkingen en suggesties voor deze vertaling naar de vertaler, pjvm <pjvm742 _apestaartje_ disroot _punt_ org>.


1. Overzicht


1.1 Wat is Gemini?


Gemini is een nieuw internet protocol op applicatie-niveau voor het verspreiden van allerlei bestanden, in het bijzonder een simpel hypertext-format waarin gelinkt kan worden naar andere bestanden. Afhankelijk van je perspectief kun je Gemini zien als "het web, teruggebracht tot de essentie" of "Gopher, wat gemoderniseerd en verbeterd" (de tweede interpretatie klopt waarschijnlijk wat beter). Gemini kan interessant zijn voor mensen die:



Gemini is bedoeld om simpel te zijn, maar niet per se zo simpel mogelijk. Het is gemaakt met als doel een optimaal "vermogen-gewicht-ratio", zolang het gewicht binnen acceptabele grenzen blijft. Gemini is ook gemaakt om privacy-bewust te zijn, om toevoegingen aan het protocol moeilijk te maken (opdat het simpel en privacy-bewust *blijft*) en om te passen bij een "doe het zelf"-mentaliteit wat betreft computers. Om die laatste reden is Gemini qua techniek erg vertrouwd en conservatief: het protocol gebruikt het traditionele client-server verzoek-antwoord model en volgroeide, gestandaardiseerde technologieën als URIs, MIME-bestandstypen en TLS.


1.2 Hoe oud is Gemini?


Project Gemini beong in juni 2019. Hoewel het protocol zelf bijna af is, zijn de programma's, het hulpmateriaal en de groep mensen eromheen nog volop in ontwikkeling.


1.3 Wie is de leider van Gemini?


Project Gemini werd in gang gezet door Solderpunk <solderpunk _apestaartje_ posteo _punt_ net>, die nog steeds de "goedwillige dictator" van het project is. Het is echter ontworpen in overleg met een informele groep van geïnteresseerden via emails en posts op phlogs en het Fediverse. Veel mensen hebben belangrijke delen van het protocol vormgegeven, dus hoewel het één leider heeft is Gemini zeker niet het werk van één persoon.


In februari 2021 is beperkte autoriteit over de protocolspecificatie overgedragen aan Sean Conner, die sinds lange tijd heeft bijgedragen aan het project, omdat Solderpunk niet in staat was de nodige tijd en energie in het project te steken.


1.4 Hoe groot is de "Geminispace"?


Het is moeilijk precies te zeggen. Domeinnamen tellen kan een overdreven beeld geven omdat sommige sites met meerdere gebruikers elke gebruiker een subdomein geven. IP-adressen tellen geeft weer een wat te kleine schatting, omdat Gemini één IP-adres meerdere domeinen laat hosten. Hoe dan ook, begin 2021 waren er zo'n 200.000 Gemini-URLS bekend, verspreid over zo'n 750 "capsules" (de gangbare term voor "sites" op Gemini), 500 domeinnamen en 600 IP-adressen. De groei is echter enorm. De meest recente statistieken kun je vinden op:


Geminispace statistieken van Stéphane Bortzmeyer's "Lupa" crawler


1.5 In welke fase zit het project?


De huidige (informele) protocolspecificatie is grotendeels "bevroren", op kleine wijzigingen na die ambiguïteit oplossen of expliciete regels maken voor randgevallen. Suggesties voor nieuwe protocolfunctionaliteit worden genegeerd, want men bechouwt het Gemini-protocol als compleet. De focus van het project is opgeschoven naar de groeiende groep gebreuikers ondersteunen, en de bestaande protocolspecificatie omzetten naar een precieze, formele versie die misschien kan worden voorgelegd aan internetstandaarden-organisaties zoals IETF en IANA.


1.6 Denken jullie nou echt dat jullie het web kunnen vervangen?


Nee, totaal niet! En het is ook zeker niet de bedoeling om Gopherspace te vernietigen. Gemini is er niet ter vervanging van Gopher of het web, maar is er als een derde, vredig naast de andere twee levende optie, die mensen kunnen gebruiken als zij dat willen. Net zoals veel mensen nu hetzelfde materiaal beschikbaar stellen via Gopher en het web, zullen mensen een combinatie van de drie protocollen kunnen kiezen die past bij hun technische, filosofische en esthetische behoeften en die van hun beoogd publiek.


1.7 Hoezo die naam?

"Gemini" is een verwijzing naar het vroege tijdperk van bemande ruimtemissies van de VS, dat bestond uit drie projecten. Het eerste was Project Mercury, een vrij minimalistisch "proof of concept" (bewijs dat iets uitvoerbaar is) en onderdeel van de eerste-mens-in-de-ruimte-wedstrijd (die de Soviet-Unie won met hun Vostok-project). Mercury was een eenpersoonscapsule die niet in een eigen baan kon komen en slechts één Mercury-vlucht duurde langer dan een dag. Het laatste was Project Apollo: groot, zwaar, ingewikkeld en duur, maar wel erin geslaagd om drie mensen naar de maan te brengen en weer terug.


Minder bekend bij het moderne algemene publiek is Project Gemini, het "middelste kind": een tweepersoonscapsule die met een ander ruimtevaartuig kon samenkomen en gekoppeld worden, die de mogelijkheid had tot decompressie en hercompressie voor ruimtewandelingen en die op zijn langst een vlucht van twee weken maakte - langer dan elke Apollo-missie! Qua grootte, gewicht en kosten zat Gemini een stuk dichter bij Mercury dan Apollo, maar qua mogelijkheden is het andersom - er waren zelfs (nooit uitgevoerde) plannen voor Gemini-vluchten rond de maan!


Hopelijk is de parallel duidelijk: Gopher lijkt op Mercury en het web lijkt op Apollo. Gemini hoopt tussen ze in te zitten en meer te doen met minder.


Gemini heeft opzettelijk geen naam gekregen die ook maar iets te maken heeft met goffers of andere knaagdieren of zelfs maar andere dieren. Tijdens de eerste idee-uitwisselingen op phlogs die uitgroeiden tot Project Gemini, zorgde onzorgvuldige communicatie ervoor dat het soms onduidelijk was of het ging om een alternatief voor Gopher, of het toevoegen van onofficiële, non-compatibele veranderingen aan bestaande Gopher-clients en -servers. Toen die gesprekken een echt project werden leek het wijs om daarover een duidelijk signaal te sturen.


1.8 Waar kan ik meer te weten komen?


Het officiële thuis van Project Gemini is de gemini.circumlunar.space server. Daar is de meest recente versie van dit document te vinden, evenals de protocolspecificatie en aanbevelingen, via Gemini, Gopher èn HTTPS, met IPv4 en IPv6.


De officiële plek voor discussie rondom Gemini is een emaillijst:


Meld je aan voor de emaillijst of bekijk de archieven via het web

Bekijk de archieven via Gemini


Zich aanmelden voor de emaillijst wordt in ieder geval aangeraden voor hen die een Gemini-server beheren of Gemini-software maken.


Minder officiële discussie vindt plaats in het #gemini IRC-kanaal op de server tilde.chat .

bekijk de IRC-logs via Gemini


(Vertaler: de emaillijst en het IRC-kanaal zijn in het Engels.)


2. Protocolontwerp


2.1 Wat zijn de ontwerpcriteria voor Gemini?


De volgende criteria werden informeel opgesteld aan het begin van het project. Er valt over te discussiëren in hoeverre sommige doelen zijn bereikt, maar in het algemeen zit Gemini er nog redelijk dichtbij.


2.1.1 Eenvoud

Gemini streeft er in het bijzonder naar dat het implementeren van een client simpel is. Moderne webbrowsers zijn zo ingewikkeld dat ze alleen gemaakt kunnen worden door zeer grote en dure projecten. Dit leidt vanzelf tot een zeer klein aantal bijna-monopolistische browsers, wat innovatie en diversiteit verhindert en de makers van deze browsers laat dicteren welke kant het web opgaat.


Gemini probeert simplistisch te zijn, maar niet *te* simplistisch. Gopher is een eenvoudiger protocol, een Gopher-client is altijd onzeker: "In welke karakter-encodering staat deze tekst? Is dit de inhoud van de pagina, of een foutmelding van de server? Wat voor bestand is deze binaire data?" Om deze reden is een goede Gopher-client *minder* eenvoudig omdat deze ontbrekende informatie moet invullen.


Vroege gesprekken over Gemini bevatte drie duidelijke eenvoudsdoelen:



Het doel van 50 regels code is niet helemaal behaald: experimenten suggereren dat het minimum eerder 100 regels is voor een zeer basale interactieve client en voor wat comfort en middelbare functionaliteit zijn eerder 200 regels nodig. Maar Gemini lijkt nog steeds in de buurt van deze doelen te zitten.


2.1.2 Privacy


Gemini is ontworpen met een sterk bewustzijn dat het moderne web een privacyramp is en dat het internet niet een veilige plek is voor plaintext. Dingen als browser fingerprinting en Etag-"supercookies" geven een belangrijke waarschuwing: het bespieden van gebruikers kan en zal naar binnen worden gesmokkeld met behulp van protocol-elementen die er niet voor waren bedoeld. Protocol-ontwerpers moeten dus niet alleen geen functies in het protocol stoppen die bedoeld zijn om informatie over gebruikers te verzamelen (makkelijk), maar ook uitgaan van slechte intenties en elementen vermijden die voor het volgen van gebruikers gebruikt zouden kunnen worden. Uit deze zorg is het opzettelijk moeilijk gemaakt om extra functies aan het protocol toe te voegen.


2.1.3 Algemeenheid


De "eersteklas" toepassing van Gemini is in menselijke consumptie van vooral geschreven materiaal - voor zoiets als Gopherspace, of het "redelijke deel van het web" (de stukken web waarvoor Lynx of Dillo goed te gebruiken zijn). Maar net zoals HTTP kan worden en wordt gebruikt voor veel en veel meer dan HTML, moet Gemini kunnen worden gebruikt voor andere dingen, zover mogelijk zonder van de eenvouds- en privacycriteria af te raken. Dit betekent dat mogelijke toepassingen met andere bestanden dan tekst en andere clients dan mensen in het achterhoofd gehouden moeten worden.


2.2 Welke tekortkomingen van Gopher pakt Gemini aan?


Gemini maakt het mogelijk om:



Tekst in Geminis hypertext-format wordt door de client ingedeeld in regels, in plaats van door de auteur. Dit zorgt ervoor dat de tekst even goed weergegeven wordt op smartphones, tablets, laptops en desktops.


Gemini neemt het stricte onderscheid tussen tekst- en linkpagina's niet over van Gopher, en staat links in proza toe.


Gemini verplicht het gebruik van TLS-versleuteling.


2.3 Is Gophers tekst-/linkpagina-tweedeling *echt* een tekortkoming?


Tegenwoordig gebruik in de phlogosphere suggereert dat veel gebruikers vinden van wel. Een groeiend aantal gebruikers maakt documenten die bijna helemaal tekst zijn maar item-type 1 hebben, om een relatief klein aantal links naar andere Gopher-pagina's te maken, een beetje zoals hyperlinks in HTML - een redelijk en onschuldig iets om te willen doen. Het beste alternatief is om een lijst URLs aan het eind van het document te zetten, die de lezers dan handmatig moeten kopiëren en plakken in hun client. Niet bepaald een fijne gebruikerservaring.


Maar zo hyperlinks Gopher in brengen is niet alleen een verkeerd gebruik van het Gopher-protocol, het is ook een verassend inefficiente manier om tekst over te brengen, want om het een geldige linkpagina te maken krijgt elke gewone tekstregel het nonstandaarde item-type i en moet vergezeld zijn van een onzinselector, -hostname en -port. Dit verpest de eenvoud en schoonheid die Gopher anders zou hebben. Gemini laat mensen simpelweg links in hun tekst zetten, tegen een zeer kleine prijs, maar behoudt de één-link-één-regel-beperking van Gopher, omdat het zorgt voor een nette, lijst-achtige inrichting. Het is moeilijk om dit als iets anders dan een verbetering te zien.


Als je echt van de Gopher-manier houdt, houdt Gemini je natuurlijk niet tegen. Als equivalent van item-type 0 biedt Gemini MIME-type text/plain, en je kunt text/gemini-documenten maken waar elke regel een link is, wat hetzelfde effect geeft als een Gopher-linkpagina zoals RFC1436 het bedoeld heeft, zonder dat verdraaide item-type i.


2.4 Welke tekortkomingen van het web pakt Gemini aan?


Gemini heeft geen equivalenten van de User-Agent of Referer elementen, en het verzoekformat is niet uitbreidbaar, opdat deze er niet later ingestouwd kunnen worden. Sterker nog, Gemini-verzoeken bevatten niets dan de gevraagde URL. Hiermee kom je een heel eind om het ongewenst verzamelen van informatie te voorkomen.


Het "natuurlijke" bestandstype van Gemini (vergelijkbaar met HTML voor HTTP(S) of plaintext voor Gopher) heeft nooit extra netwerkverbindingen nodig (er zijn geen afbeeldingen, externe opmaakbepalingen, lettertypes of scripts, geen iframes, enz.). Dit zorgt voor snel browsen, ook op trage verbindingen, en volledig inzicht in en controle over met welke hosts verbinding wordt gemaakt.


Het natuurlijke bestandstype van Gemini is alleen een document, zonder scripts erin, wat ervoor zorgt dat ook oude computers met lage processorsnelheid en weinig geheugen het goed aankunnen.


2.5 Waarom niet gewoon een subset van HTTP en HTML?


Veel mensen zien het nut niet in van een nieuw protocol om problemen te vermijden met optionele, non-essentiële functionaliteit van het web. Dat websites gebruikers *kunnen* volgen en vertragende Javascript-code *kunnen* uitvoeren, of nutteloze megabytes aan kop-afbeeldingen binnentrekken of nog grotere automatisch afspelende videos, betekent niet dat ze dat *hoeven* te doen. Waarom kun je niet gewoon fatsoenlijke websites bouwen met de bestaande technologie?


Natuurlijk is dit mogelijk. De "Gemini-ervaring" is ongeveer hetzelfde as HTTP met in het verzoek alleen "Host" en in het antwoord allen "Content-type" en HTML met alleen de p-, pre-, a-, h1- t/m h3-, ul-, li- en blockquote-elementen - en de https://gemini.circumlunar.space website is ongeveer dat. We weten dat het kan.


Het probleem: als je een kleine subset van HTML en HTTP maakt, het een naam geeft en het daarbij laat, doet dat bijna niets om een duidelijk afgebakende ruimte te maken waar mensen naar toe kunnen gaan voor *alleen* de "Gemini-ervaring". Aan een https:// URL kun je onmogelijk zien of het binnen of buiten de subset valt. Het kost moeite om te verifiëren of een website die beweert binnen de subset te vallen dat ook echt doet, want veel van de dingen die we willen vermijden onzichtbaar (maar niet schadeloos!) zijn voor de gebruiker. Het is moeilijk of zelfs onmogelijk om de ongewenste functionaliteit uit te schakelen in populaire browsers, dus als iemand regels overtreed zit jij met het probleem. Een domme webbrowser schrijven die alle troep negeert is veel moeilijker dan een volledig nieuwe Gemini-client schrijven. En stel dat je zo'n browser hebt, dan zou je het niet fijn hebben terwijl je de fractie van de websites ontdekt die hij kan weergeven.


Alternatieve, opzettelijk simpele protocollen als Gopher en Gemini zorgen voor alternatieve, opzettelijk simpele ruimtes met duidelijke grenzen en harde beperkingen. Je weet wanneer je Geminispace binnengaat, en je weet van te voren of een bepaalde link volgen ervoor zorgt dat je Geminispace verlaat. Zolang je daar bent, weet je dat iedereen dezelfde regels volgt. Je kunt ontspannen browsen en links volgen naar sites waar je nog nooit van hebt gehoord, die gisteren misschien nog niet bestonden, en zeker weten dat er daar geen troep of privacy-gevaar is, omdat dat niet *kan*. Je kunt dit doen met een client-programma dat je zelf hebt geschreven, dus je *weet* dat je het kunt vertrouwen. Het is een totaal andere, veel krachtiger bevrijdende en opbouwende ervaring dan proberen om een piepkleine, onzichtbare sub-sub-sub-ruimte uit te houwen in het web.


2.6 Heeft Gemini zelf ook tekortkomingen?


Natuurlijk!


Gemini biedt geen ondersteuning voor caching, datacompressie, of het voortzetten van onderbroken downloads. Daarom is het niet geschikt voor het distribueren van grote bestanden; hoe groot hangt af van de snelheid en betrouwbaarheid van je netwerkverbinding.


2.7 Hoe kun je zeggen dat Gemini simpel is, terwijl het TLS gebruikt?

Sommige mensen vinden het vervelend dat de TLS-vereiste betekent dat ze een TLS-library nodig hebben om Gemini-programma's te schrijven, terwijl ze met bv. Gopher volledige controle kunnen hebben door alles helemaal zelf te schrijven.


Natuurlijk is zelfs een "helemaal zelfgeschreven" Gopher-client in werkelijkheid afhankelijk van duizenden regels ingewikkelde code van andere mensen voor onderliggende internetprotocollen, DNS-resolutie en een bestandssysteem. Een TLS-library gebruiken voor betrouwbare versleuteling is niet heel anders.


Ook geeft Gemini TLS client-certificaten - nauwelijks te vinden op het web - een prominente plaats, met een protocolmechanisme waarmee een server kan aangeven dat er een nodig is. Dit maakt het mogelijk om toegang tot bepaalde bestanden te beperken, of om vrijwillige "sessies" te maken met een applicatie op de server, zonder cookies, wachtwoorden, authenticatietokens of wat dan ook rond te hoeven sturen. Het komt veel dichter in de buurt van het SSH-concept "authorized keys", en is in feite een veel simpelere manier van gebruikersauthenticatie.


2.8 Waarom zou je TLS gebruiken voor versleuteling en niet iets moderners, zoals het Noise-protocol?


TLS is zeker niet perfect, maar:



2.9 Waarom zou je text/gemini bedenken en niet het bestaande Markdown gebruiken?


Het text/gemini format ontleent veel aan Markdown, wat misschien de vraag oproept "Waarom zou je niet Markdown gebruiken als het standaard media-type voor Gemini? Oké, het is misschien moeilijk te implementeren, maar net als TLS zijn er libraries voor in alle populaire talen." Een paar redenen om niet die kant op te gaan zijn:



Het is natuurlijk mogelijk om Markdown-documenten te transporteren via Gemini. Een media-type van text/markdown laat geavanceerde clients het correct weergeven.



Aangezien text/gemini een splinternieuw format is moeten client-auteurs normaal hun eigen code schrijven om het te parsen en weer te geven, zonder de hulp van een bestaande, goed geteste library-implementatie. Daarom is het belangrijk dat het format extreem simpel is om correct te hanteren. Het regel-gebaseerde format waarin tekstregels en linkregels verschillende dingen zijn, voldoet aan deze eis. Clients hoeven niet teken voor teken de hele regel te scannen op speciale link-syntax. Zelfs de simpelste link-syntax brengt de mogelijkheid van misvormde links met zich mee, waar de client dan tegen moet kunnen, en heeft randgevallen die of in de specificatie moeten worden opgenomen (wat leidt to een langere, saaiere specificatie die minder plezier is om te lezen en moeilijker is om in je hand te houden) of ongedefinieerd moeten blijven (wat leidt tot clients die niet consistent met elkaar zijn). Ook al passen links binnen de regel misschien beter voor sommige soorten pagina's, ze zijn de toegevoegde ingewikkeldheid en breekbaarheid simpelweg niet waard.


Het klopt dat de manier van schrijven met één link per regel even wennen is, maar met de tijd wordt het makkelijker. Er zijn ook voordelen: het moedigt je aan om alleen de meest relevante links erin te zetten, om links te ordenen in samenhangende lijstjes en om elke link een zo descriptief mogelijk label te geven zonder te moeten nadenken over hoe dat label in de tekst past.


2.11 Waarom bevat text/gemini geen stijlinformatie?


Soms wordt er gevraagd om iets als CSS voor het text/gemini format. Het is waar dat er gemakkelijk iets veel simpelers dan CSS voor dit doel zou kunnen worden bedacht, maar met Gemini gaan we uit van het idee dat hoe dingen eruit zien enkel door de lezer bepaald moet worden, niet de schrijver.Mensen hebben verschillende smaken in kleur en lettertype, en geen enkele stijl kan optimaal zijn voor alle lezers, alle apparaten en alle lichtomstandigheden. Het gaat om meer dan alleen de eeuwige kloof tussen de voorkeur voor lichte tekst op een donkere achtergrond of andersom. Dyslecten en anderen die moeite met lezen hebben kunnen soms erg veel geholpen worden door speciale lettertypen, bijvoorbeeld. Een eenvoudig "one size fits all"-systeem waarin een pagina er overal hetzelfde uitziet zou gegarandeerd voor veel mensen slecht werken. Een complexer systeem waarin verschillende stijlen kunnen worden gespecificeerd voor verschillende apparaten en contexten zou schrijvers belasten met de taak te zorgen dat het overal werkt. Ervaring met het web suggereert dat er aan toegankelijkheid op z'n best achteraf zou worden gedacht. Het is veel simpeler, en eigenlijk veel bevrijdender voor schrijvers, om alleen de daadwerkelijke inhoud te bepalen, en de stylering aan de client over te laten. Sommige Gemini-clients zien er misschien saai en lelijk uit, maar dat hoeft zeker niet. Als er vraag is naar clients die de tekst er mooi uit laten zien, dan zullen zulke clients er komen - en dan kunnen gebruikers die daarvan houden op die specifieke manier genieten van heel Geminispace, ook als ze dingen lezen van schrijvers die het niets kan schelen of het er mooi uitziet.


2.12 Waarom heeft Gemini niet zoiets als de HTTP Content-length header?


Een van de ontwerpdoelen van Gemini was dat het protocol niet gemakkelijk uit te breiden moest zijn. Dingen als cookies, Etags en andere functies die het mogelijk maken om gebruikers ongewenst te volgen waren er niet in het oorspronkelijke ontwerp van HTTP, maar konden later naadloos worden toegevoegd omdat het HTTP-antwoordformat niet vaststaat en er gemakkelijk nieuwe headers bij kunnen worden gemaakt. Om het risico zo klein mogelijk te maken dat Gemini langzaam verandert in iets wat meer op het web lijkt, is er besloten om precies één stuk informatie toe te laten in de antwoordheader voor geslaagde verzoeken. Twee beetjes informatie met een scheidingsteken ertussen laat een duidelijke uitbreidingsmogelijkheid open - hetzelfde scheidingsteken opnieuw gebruiken. Er is eigenlijk gewoon geen stabiele positie tussen één stukje informatie en onbeperkt veel stukjes informatie, dus beperkt Gemini het tot strict één, ook al moet daarvoor wat fijne en onschuldig-lijkende functionaliteit worden opgeofferd. Met deze beperking als gegeven, leek een equivalent van de Content-type header duidelijk handiger dan een van de Content-length header. Hetzelfde geldt voor andere schadeloze en nuttige HTTP-headers, zoals Last-Modified.


Gopher heeft ook niet iets wat lijkt op Content-length, en het lijkt in Gopherspace niet een praktisch obstakel te zijn.


Zelfs zonder deze header is het mogelijk (in tegenstelling tot Gopher) voor een client om een geslaagde Gemini-transactie te onderscheiden van een die is gefaald tijdens de data-overdracht door een netwerkfout of een aanval, met behulp van de aan- of afwezigheid van het TLS-Shutdownbericht.


Het is waar dat de onmogelijkheid voor een client om de gebruiker te vertellen hoeveel van een groot bestand nog gedownload moet worden - en te schatten hoe lang het nog gaat duren - betekent dat Gemini niet een erg gebruiker-vriendelijke manier kan bieden om grote bestanden te downloaden. Dit zou echter ook met Content-length zo zijn, want grote downloads gebruiker-vriendelijk maken zou ook andere complicaties van het protocol vereisen, bv. de mogelijkheid om een onderbroken download te hervatten. Natuurlijk kunnen Gemini-documenten gemakkelijk linken naar bestanden die via HTTPS, BitTorrent, IPFS, DAT enz. verkrijgbaar zijn, en voor erg grote bestanden is dat misschien de beste optie.


2.13 Waarom zit er geen protocol-versienummer in de verzoeken of antwoorden?


Dit zou alleen handig zijn als er plannen zouden zijn om later soepel over te schakelen naar "Gemini 2.0" - en die plannen zijn er niet! Gemini is een reactie met het idee "less is more" ("minder is meer") op hoe webbrowsers en -servers te ingewikkeld en te krachtig geworden zijn. Het is dan niet logisch om voorbereidingen te maken voor latere toevoegingen aan Gemini. In plaats daarvan is het plan om het "de eerste keer goed" te doen, voorzover mogelijk, en dan de specificatie te bevriezen voor altijd, zonder upgrades, verbeteringen of toevoegingen.


Dit lijkt misschien radicaal of kortzichtig, maar we zijn redelijk optimistisch. De Gopher-specificatie is niet veranderd in zo'n 30 jaar, en maar een paar relatief kleine onofficiële aanpassingen worden gebruikt in de tegenwoordige Gopherspace, die zowaar aan het groeien is in populariteit. Gemini combineert volgroeide, verankerde internetbouwblokken als URIs, MIME-bestandstypen en TLS op een eenvoudige manier, en probeert een cultuur aan te moedigen waarin zorgvuldig gekozen beperkingen worden geaccepteerd en zelfs omarmd, in plaats van elke beperking waar men tegenaanloopt uit de weg te ruimen om alles mogelijk te maken. Er zijn genoeg toepassingen waar Gemini nu nuttig voor en goed in is, en er is geen aanleiding om te denken dat het daar over tientallen jaren niet nog steeds nuttig voor en goed in zal zijn.


2.14 Waarom geven jullie niets om retrocomputers?


Gopher is zo simpel dat computers uit de jaren '80 of '90 het gemakkelijk aankunnen, en voor sommigen is dit een van de grootste verdiensten van Gopher. Door de TLS-eis is Gemini beperkt tot wat modernere machines.


Oude computers zijn super, en ze zolang mogelijk draaiende houden en online houden en gebruiken is super. Maar tegelijk is het niet logisch voor de gigantische meerderheid van internetgebruikers om daarvoor elke mogelijkheid tot privacy-bescherming op te offeren. Zoals gezegd is het echter niet de bedoeling van Gemini om Gopher te vervangen. Mensen die nu dingen op Gopher hebben staan wordt sterk aangeraden om die dingen ook via Gemini beschikbaar te stellen. Fans van retrocomputers blijven erbij kunnen, en moderne computergebruikers kunnen, als ze dat willen, overgaan op Gemini en wat voordelen meepakken.


3. Een begin maken in Geminispace


3.1 Ik ben geïnteresseerd in Geminispace. Hoe kan ik een kijkje nemen?


De manier om Geminispace te ontdekken zonder er iets speciaals voor te hoeven doen is om een proxy op het web te gebruiken, zoals:


het mozz.us Gemini-portaal

het vulpes.one Gemini-portaal


Zo kun je je gewone webbrowser gebruiken om rond te kijken. Als je het wel wat vindt, wil je misschien wel een echte Gemini-client installeren. Een lijst met clients (en andere software) is te vinden via onderstaande link. Er zijn zelfs clients voor smartphone-platforms als Android en iOS!


Lijst van Gemini-software


Als je een SSH-client hebt, kun je bepaalde terminal-clients uitproberen zonder ze te installeren met het commando:


ssh kiosk@gemini.circumlunar.space


Deze Gemini-kiosk is geïnspireerd door de Gopher-kiosk op bitreich.org !


3.2 Oké, ik heb een client, waar kan ik leesmateriaal vinden?


Tot nu toe is Geminispace nog klein genoeg om te verkennen met behulp van gidspagina's. Bijvoorbeeld de volgende:


de medusae.space gids, met een lijst van capsules, onderverdeeld op thema

de lijst van hosts die bekend zijn bij de geminispace.info zoekmachine

de eerste 50 Gemini-servers


Als je naar iets specifieks op zoek bent, kun je gebruik maken van deze Gemini-zoekmachine:


geminispace.info, op dit moment de enige zoekmachine voor Gemini


Verder zijn er twee publieke aggregators die het makkelijker proberen te maken om recent geüpdate materiaal in Geminispace te vinden:


CAPCOM, dat Atom-feeds van Gemini-pagina's samenvoegt

Spacewalk, dat nieuwe toevoegingen detecteert


3.3 Hoe kan ik zelf wat in Geminispace zetten?


Eén optie is natuurlijk om je eigen Gemini-server te maken op een VPS of een computer bij je thuis (kleine SBCs zoals de RaspberryPi kunnen prima als Gemini-server dienstdoen). Voor de beschikbare server-software zie:


de lijst van Gemini-software


Je kunt ook iemand vinden die jouw dingen voor je wilt hosten. Gemini hosting kun je bijvoorbeeld krijgen van:


idf.looting.uk

SourceHut (kan met eigen domein!)


Meerdere "pubnix"- of "tilde"-groepen (unix-systemen waarop gebruikers met elkaar omgaan door erin te ssh'en en lokale email, chat en BBS te gebruiken) bieden ook Gemini-hosting aan (vaak naast web- en/of Gopher-hosting). Wellicht kun je een account krijgen op een van de servers hieronder. Houd er rekening mee dat de meeste van deze groepen ouder zijn dan Gemini zelf, en misschien zijn gefocust op andere diensten of gericht zijn op een specifiek thema of gezamelijke interesse. Kies zorgvuldig en sluit je aan bij een waar je denkt goed te zullen passen, in plaats van deze prachtige wereldjes te beschouwen als gratis ruimte om je spul te dumpen.


Ctrl-C.club

envs.net

Tanelorn City (focus op schrijvers)

tilde.pink

Raw Text Club (RTC)

Breadpunk.club (thema: bakken)


(Vertaler: deze hebben voor zover ik weet allemaal het Engels als voertaal, maar wat gebrekkig Engels wordt meestal getolereerd.)


Als je tot een pubnix behoort die geen Gemini-hosting biedt, kan het geen kwaad om de administrator te vragen of dat zou kunnen!


Als je niet vertrouwd bent met de techniek die wordt gebruikt in pubnix-hosting (ssh of sftp, terminal-tekstbewerkers, unix file permissions, enz.), kun je ook een gratis account krijgen op een van de onderstaande diensten, waarmee je een eigen Gemini-capsule kunt beheren vanuit een webbrowser:


Gemlog Blue - gebruikt geen cookies of Javascript

Flounder - stelt het tegelijk beschikbaar via Gemini en het web


3.4 Ik heb een Gemini-server opgezet - is er iets dat ik moet doen?


Overweeg om je aan te melden op de emaillijst (zie sectie 1.8) opdat je je nieuwe server kan aankondigen en zodat je het meekrijgt als je server-software of het Gemini-protocol zelf wordt geüpdate.


Je kunt de URL van je server insturen bij geminispace.info zodat hij wordt geïndexeerd:


Stuur een link in bij geminispace.info


4. Bijdragen aan het Gemini-project


4.1 Het Gemini-project klinkt mij goed in de oren, hoe kan ik helpen?


Gemini heeft al een verassend aantal client- en server-implementaties - dat wil niet zeggen dat meer niet welkom zijn, maar er is nu eerder een tekort aan geschreven materiaal dan aan software. Hoe meer interessante en stimulerende dingen mensen kunnen vinden in Geminispace, hoe waarschijnlijker het is dat ze ook zelf mee willen bouwen. Dus, de beste bijdrage die je kunt maken is om deel te zijn van dat proces (zie sectie 3.3 voor instructies voor publiceren).


Als je de benodigde technische vaardigheden hebt, kun je Gemini helpen groeien door een hosting-dienst aan te bieden waarmee mensen dingen kunnen publiceren. Dit kan zo simpel zijn als accounts die via sftp beschikbaar zijn op te zetten op een VPS. Je hoeft niet per se een grote verplichting aan te gaan. Je kunt de goedkoopste VPS-diensten prima gebruiken om een dozijn gebruikers te hosten. Een groot aantal hosts met elk relatief weinig gebruikers is een veel robuuster en duurzamer systeem dan een paar hosts met elk honderden of duizenden gebruikers!


Als je software wil schrijven, zou Geminispace veel uitgebreid kunnen worden door een programma dat zowel een Gemini-server biedt als een manier voor meerdere gebruikers om pagina's te beheren, bv. met een web-interface of via email. Iets als Gemlog Blue en Flounder (zie wederom sectie 3.3), maar dan als een stuk software met documentatie die het makkelijk maakt voor mensen om een meerdere-gebruikerssite op te zetten en bij te stellen, een beetje zoals bv. een Mastodon-instance.


Je kunt ook helpen door correcties en toevoegingen bij te dragen aan de vertalingen van de officiële site en documentatie (zie vragen 4.2 en 4.3 hieronder).

(Vertaler: de specificatie zelf moet nog...)


4.2 Hoe kan ik bijdragen aan de officiële site voor Gemini?


Alle documentatie die wordt gehost op gemini.circumlunar.space, inclusief deze VGV, zit in één Git-repository, dat publiek zichtbaar is. Je kunt het repo clonen met:


git clone git://gemini.circumlunar.space/gemini-site


Maak vervolgens jouw veranderingen in de gewenste bestanden (de structuur van de URLs weerspiegelt de structuur van het repository, dus bv. gemini://gemini.circumlunar.space/docs/faq.gmi is docs/faq.gmi in het repo). Maak commits van jouw veranderingen met duidelijke commit-samenvattingen (stel je email-adres en naam in opdat het zichtbaar is dat het jouw werk is!), en met één commit per logische set aanpassingen. Vervolgens zijn er twee manieren om je aanpassingen op de site te krijgen.


Als je het send-email commando van git ingesteld hebt (hieronder een link naar een tutorial) kun je daarmee email-patches met jouw commits versturen naar <solderpunk _apestaartje_ posteo _punt_ net>. Anders kun je het volgende commando uitvoeren:


git format-patch origin


om patch-bestanden te maken, die je als bijlagen kunt toevoegen aan een email met je gewone email-programma.


tutorial (in het Engels) voor het opzetten van git send-email


4.3 Ik wil wel wat Gemini-documentatie vertalen naar mijn moedertaal, hoe doe ik dat?


Bedankt! Het vertalen van documentatie is een prachtige manier om het project te helpen.


Clone eerst het git-repository zoals beschreven in vraag 4.2 hierboven. Maak in de map `docs` een nieuwe map met als naam de tweeletterige ISO 639-1 code voor de taal; bv. Finse vertalingen horen in `docs/fi/`, Japanse vertalingen in `docs/jp/`, enz. Een complete lijst van deze codes voor talen is te vinden op Wikipedia, zie de link hieronder. Als je vertaalt naar een regio-specifieke variant van een taal, kun je taalcodes in de stijl van RFC4646 gebruiken, bv. pt-PT en pt-BR voor Portugees zoals gesproken in respectievelijk Portugal en Brazilië.


Lijst van taalcodes op Wikipedia


Voor elk Engels bestand onder `docs` dat je wil vertalen, maak je een overeenkomstig bestand in de map voor jouw taal. Je kunt de bestandsnaam veranderen, bv. de Duitse vertaling van `docs/specification.gmi` mag `docs/de/spezifikation.gmi` heten. Je kunt zoveel of zo weinig van de documentatie vertalen als je wil. Het is prima om onvolledige vertalingen in te leveren. Iemand anders die jouw werk ziet kan misschien de rest van het werk (deels) afmaken. Een gedeeltelijke vertaling is beter dan geen vertaling.


Kopieer vervolgens het `docs/index.gmi` bestand naar de map voor jouw taal en pas het aan met de juiste documenttitels; verwijder links voor documenten die nog niet vertaald zijn.


Als laatste, maak een link naar de taal-submap in `docs/translations.gmi`.


Maak commits van je vertalingen en stuur ze als patches naar Solderpunk zoals beschreven in vraag 4.2 hierboven.



/docs/nl/