Internetsnelheid achterhalen met je browser
dere elementen vanwege het grote display en de hoge resolutie, dan wordt de paginaopbouw traag.
De webdesigners kunnen daar echter niets aan doen omdat de ontwikkelaars van de webservers en browsers, ondanks al hun specificatiedrang, er lange tijd niets aan deden om de verbindingseigenschappen te bepalen, zodat die gebruikt kunnen worden als beslissingscriterium voor een lichte of uitgebreide website.
Sinds het najaar van 2019 is er in elk geval een werkbaar ontwerp onder de naam Network Information API, waar verschillende browserfabrikanten ook rekening mee houden. Medewerkers van Mozilla en Telefónica zijn in 2011 al met het project begonnen. De ontwikkeling is inmiddels overgenomen door Google-medewerker Ilya Grigorik (Director of Developer Relations bij Google). De huidige status is gepubliceerd op GitHub, de link ernaar en al het andere aanvullende materiaal staat bij de link op de laatste pagina van dit artikel.
Dat heeft de volgende eigenschappen (read-only): - downlink geeft de geschatte downloadsnelheid aan in veelvouden van 25 kbits/s.
downlinkMax is de maximale snelheid in Mbit/s die het huidige verbindingstype kan bieden.
effectiveType specificeert het verbindingstype. Daar zijn er vier van gedefinieerd, namelijk slow-2g, 2g, 3g en 4g.
rtt is de roundtrip-time, oftewel de latentie van de huidige verbinding, afgerond op een veelvoud van 25 milliseconden.
De parameter saveData is true als de gebruiker de databesparingsmodus geactiveerd heeft (bijvoorbeeld datacompressie), anders is de parameter false. Tot slot bevat type het soort internetverbinding: bluetooth, cellular, ethernet, wifi, wimax, none, mixed, other of unknown.
Als je een event handler voor het object instelt, informeert JavaScript dynamisch over wijzigingen in de verbinding. Bij het testen gebeurde dat op reproduceerbare wijze – bijvoorbeeld wanneer een laptop van LAN naar wifi overschakelde en weer terug.
Voor de eerste stappen met de API kun je bijvoorbeeld een script integreren in een webpagina die de gebruiker in een dialoogvenster de door de browser bepaalde verbindingseigenschappen meldt. Het is voldoende om het script naar de startpagina te kopiëren. Normaal gesproken worden de gegevens van het connection-object echter alleen uitgelezen en gebruikt voor de besluitvorming, zonder die zoals bij het voorbeeld in een variabele te zetten.
Het script, dat je kunt downloaden bij de link op de volgende pagina, haalt eerst het connection-object op en bouwt een string op uit de objecteigenschappen, die vervolgens wordt uitgevoerd als een alertbox.
Zo ziet een script eruit dat een afbeelding van een hond bij een langzame verbindingen (slow-2g of 2g) vervangt door een kleine afbeelding van een kat:
< img id=" dog">
// ... - - -
var
dog_pic
=
document. getElementById(" dog"); if (/\ slow-2g|2g/. test(
navigator.connection.effectiveType)) { }
// Abfrage auf slow-2g oder 2g doc_pic.src else { doc_pic.src } = = "placeholder.png"; "dog.png";
Als alternatief voor JavaScript kan een browser de verbindingseigenschappen ook via HTTP-requests melden met behulp van specifieke HTTP-headers. Dat kan handig zijn als JavaScript in de browser uitgeschakeld is of in het algemeen als je op JavaScript-code wilt besparen. Het gaat daarbij om dezelfde parameters, alleen de schrijfwijze van de headers is iets anders ( ECT, Downlink, RTT en Save-Data). De browser stuurt Save-Data ongevraagd als de gebruiker de databesparingsmodus geactiveerd heeft.
Als de client een document aanvraagt, reageert de server met een HTTP-response. In de response-header zitten de parameters voor de netwerkinformatie die hij kan verwerken (accept client hints, Accept-CH), zoals RTT en ECT. Een browser kan de gewenste informatie dan bij het oproepen van andere webpagina’s (bijvoorbeeld RTT, Download en ECT) in de HTTP-headers meegeven.
Afhankelijk van de inhoud van de response kan de server high-res content leveren voor snelle verbindingen en alleen kleinere afbeeldingen voor langzame verbindingen (zoals hoger gecomprimeerde JPEG’s of versies met lagere resoluties). Om dat te doen, heb je een server-side script nodig dat controleert of de client dergelijke headers geleverd heeft en verschillende resources kan leveren afhankelijk van de header-inhoud. De details verschillen afhankelijk van de serverarchitectuur, dus daarvoor verwijzen we naar de betreffende documentatie.
De specificatie geeft een indicatie van welke waarden voor een bepaalde latentie ( RTT) en maximale downloadsnelheid voor bepaalde verbindingstypes ( effectiveType) kunnen worden verwacht (zie de tabel). In de tabel staan de minimale latenties en bandbreedtes die de ontwikkelaars zelf
look en feel van de Unity-interface gemodelleerd, die vervolgens met pensioen is gestuurd. Het meest opvallende verschil met Gnome is de permanent zichtbare balk aan de linkerrand van het scherm, het dock met programmapictogrammen van draaiende en favoriete applicaties.
In de vorige c’t hebben we al even naar de nieuwe Ubuntu 20.04 LTS gekeken [1]. De tips in dit artikel hebben vooral betrekking op de Gnome-desktop van Ubuntu. Je kunt echter ook andere desktopomgevingen zoals Xfce, KDE Plasma, Lxde en Budgie installeren – zelfs een grotendeels ongewijzigde Gnome. Als je een ander bureaublad wilt gebruiken, is het aan te raden om een variant van de Ubuntu-familie te installeren om meteen de juiste toepassingen bij de hand te hebben.
NA-INSTALLEREN
Veel nuttige programma’s zijn bij Ubuntu Desktop al geïnstalleerd. Meer software wordt geleverd door Ubuntu Software. Dat biedt niet alleen nieuwe programma’s aan in het klassieke Debian-pakketformaat, maar ook in het cross-distributiepakketformaat Snap van Canonicals eigen Snapcraft Store. Dat vermindert de noodzaak om Personal Package Archives (PPA) op te nemen, die de stabiliteit en veiligheid van een systeem in gevaar kunnen brengen. Dat voordeel heeft ook het concurrerende Flatpak-formaat en zijn populaire pakketbron Flathub [2]. Snapcraft en Flathub bieden naast zeer actuele opensource-programma’s zoals de nieuwe Inkscape 1.0 ook propriëtaire toepassingen zoals Spotify.
Maar niet elk programma is beschikbaar via beide bronnen. Het softwarebeheer Ubuntu Software ondersteunt alleen de eigen Snap-pakketten. Om Flatpak-pakketten te installeren, moet je een plug-in voor Gnome Software toevoegen. Om dat te doen, voer je het volgende in de terminal uit: sudo apt install gnome-software-plugin-flatpak
Het commando installeert Gnome Software meteen mee als dat nog niet aanwezig is. Voeg dan de Flathub-repository toe: flatpak remote-add flathub https://flathub.org/ repo/flathub.flatpakrepo
je je af waarom het hoofdvenster niet reageert. Als je wilt terugkeren naar de standaardinstellingen van de ontwikkelaars, selecteer je ‘Reset te Defaults’ in het menu van Gnome Tweaks.
Met Gnome Tweaks is het eenvoudiger om automatisch startende programma’s toe te voegen bij het inloggen. Ga daarvoor naar de sectie Startup Applications en klik op het plusteken. Selecteer het gewenste programma uit de lijst of via de zoekfunctie. Er is weliswaar een aparte systeemtoepassing met de naam Startup Applications, maar daar moet je de naam en het pad naar de programma’s handmatig bij invoeren. Daar kun je echter ook individuele opstartprogramma’s tijdelijk mee uitschakelen.
EXTENSIES
De functionaliteit van het Ubuntu bureaublad is niet in steen gebeiteld. Met praktische uitbreidingen kun je er meer functies aan toevoegen. De Ubuntu-ontwikkelaars hebben ook hun aanpassingen gemaakt aan de Gnome-interface. Verdere uitbreidingen kunnen worden geïnstalleerd met behulp van Firefox via de website extensions.gnome.org. Nieuw en vooral handig voor Ubuntu’s desktop is een extensie voor bestanden op het bureaublad – daar zo meer over.
Om extensies met Firefox te kunnen installeren, moet je eerst het pakket chrome-gnome-shell installeren, dat een interface tussen de browser en het bureaublad installeert. Ga dan naar de website extensions.gnome.org en klik op de link ‘Click here to install browser extension’ en bevestig met ‘Continue to Installation’ en Add. Vervolgens kun je een extensie selecteren via de zoekfunctie en hem installeren en activeren met de knop in de rechterbovenhoek.
Onder ‘Installed extensions’ zie je drie door Ubuntu al geïnstalleerde extensies (Desktop Icons, Ubuntu AppIndicators en Ubuntu Dock). Je kunt die systeemuitbreidingen niet via de website uitschakelen. Gebruik daarvoor de nieuwe tool Gnome Extensions, die beschikbaar is sinds Gnome versie 3.36 respectievelijk Ubuntu 20.04. Bij het softwarebeheer staat de tool gewoon als Extensions. Als alternatief kun je het pakket gnome-shell-extension-prefs met apt installeren. Daarmee kun je de extensies configureren, inschakelen, uitschakelen en verwijderen – maar geen nieuwe extensies toevoegen.
Helaas werkt bij Ubuntu 20.04 het installeren van extensies niet meer met de Chromium-browser, omdat die als een ingekapseld Snap-pakket geïnstalleerd is en dus geen toegang heeft tot de benodigde interfaces. Hoewel verschillende extensies ook via de Ubuntu-bronnen en apt kunnen worden geïnstalleerd, zijn die meestal verouderd en kun je als gebruiker geen updates installeren via de website van de extensie.
BESTANDEN OP DE DESKOP
Met het programma Gnome Extensions kun je ook de al geïnstalleerde extensies uitschakelen. Dat werkt echter niet via de website of met Gnome Tweaks. In tegenstelling tot de Gnome-ontwikkelaars heeft het
Ubuntu-team besloten om bestanden op de desktop weer te geven – de voorgeïnstalleerde extensie Desktop Icons doet daarbij het werk. Wil je je desktop helemaal leeg hebben en er geen pictogrammen op hebben staan, schakel de extensie dan uit bij Gnome Extensions of via de terminal met het commando: gnome-extensions disable desktop-icons@ csoriano
Dat kan ook nuttig zijn als je een liefhebber bent van desktoppictogrammen. De Ubuntu-oplossing staat je niet toe om bestanden te kopiëren of te verplaatsen van de filemanager naar de desktop of terug met behulp van snelkoppelingen, kopiëren en plakken of verslepen. Een remedie is de extensie Desktop Icons NG (DING). Deactiveer eerst de Ubuntu-extensie en installeer dan DING. Daarna werkt slepen en kopiëren zoals vroeger met Unity en oude Gnome-versies. De links naar alle genoemde extensies vind je via de link bij dit artikel.
SCHIJVEN IN DE DOCK
Je kunt de Ubuntu Dock ook op dezelfde manier uitschakelen. Dan wordt de Gnome Dash weer in het activiteitenoverzicht weergegeven als programmastarter. Vreemd genoeg blijven echter Dock-snelkoppelingen zoals Super+1 voor Firefox actief.
De Ubuntu Dock geeft niet alleen een overzicht van de favoriete en draaiende programma’s, maar ook van de aangesloten stations. Als dat te onoverzichtelijk voor je wordt, kun je hun weergave in de Dock uitschakelen met een verborgen instelling. Open de terminal en voer het volgende uit: gsettings set org.gnome.shell.extensions. dash-to-dock show-mounts false
Als je de stations opnieuw wilt tonen, voer het commando dan opnieuw uit, maar verander false aan het einde in true.
BESTURINGSBALK OPPIMPEN
Sinds Ubuntu 20.04 is er een donker ontwerp voor een interface in donkergrijs met een licht lettertype. Dat kun je activeren bij via de Settings bij ‘Appearance / Window colors’. Helaas blijven sommige elementen dan het lichte ontwerp houden. Om die ook donker weer te geven, installeer je de Gnome-extensie User Themes. Open dan de sectie Appearance van Gnome Tweaks en verander het Shell-thema in Yaru-dark. Met Shell wordt hier de Gnome-shell bedoeld die verantwoordelijk is voor de desktop en niet voor een terminal. De verandering heeft meteen effect. De instelling is onafhankelijk van het gekozen kleurenthema.
Bij Gnome 3.36 zijn de knoppen voor het uitschakelen, stand-by en uitloggen in het systeemmenu verplaatst naar een nieuw submenu. Voor directe toegang tot die functies installeer je de extensie ‘Bring Out Submenu Of Power Off/Logout Button’. Daarmee worden alle gegevens uit het submenu gehaald.
Ook het kalendermenu is bijgewerkt, maar daar kun je zelf ook nog wat aan te sleutelen. De eerste plek daarvoor is Top Bar bij Gnome Tweaks: zet de weergave van de weekdag en het weeknummer aan als dat nodig is. Als je Gnome Clocks of Clocks ( gnome-clocks) installeert, kun je ook wereldklokken toevoegen aan het kalendermenu. Dan bel je verre verwanten niet per ongeluk uit bed. Als je Gnome Weather geïnstalleerd hebt, kun je het menu een weersverwachting voor de komende uren laten tonen. Weather In The Clock gebruikt de gegevens van de Gnome Weather-app om de huidige temperatuur en het weer naast de klok in de bovenste balk weer te geven.
MET MATE
Gelukkig heb je als Gnome-gebruiker het laatste woord over veel instellingen en standaardinstellingen, zelfs als die verborgen zijn of je het moet doen met een extensie. Je moet echter met een gevoel voor proportie te werk gaan, want veranderingen kunnen ten koste gaan van de bruikbaarheid en de consistentie van de werking.
Literatuur
[1] Keywan Tonekaboni en Noud van Kruysbergen, Ubuntu 20.04 LTS, c’t 7-8/2020, p.46
[2] Thorsten Leemhuis, Linux vernieuwt, App-formaten die de software-installatie in Linux moeten
revolutioneren, c’t 9/2018, p.74
[3] Keywan Tonekaboni en Noud van Kruysbergen, Linux met meerdere monitoren gebruiken,
c’t 7-8/2020, p.106