staging.inyokaproject.org

6. März 2024

Die MZLA Technologies Corporation hat mit Thunderbird 115.8.1 ein Sicherheits- und Fehlerbehebungs-Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 115.8.1

Mit dem Update auf Thunderbird 115.8.1 hat die MZLA Technologies Corporation ein Update für seinen Open Source E-Mail-Client veröffentlicht und behebt damit mehrere Probleme, welche sich in den Release Notes (engl.) nachlesen lassen. Auch eine Sicherheitslücke wurde mit Thunderbird 115.8.1 behoben.

Der Beitrag Sicherheits-Update Thunderbird 115.8.1 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

5. März 2024


Manchmal ist die Denke einfach zu kompliziert. Da wollte ich in vim einen Bereich möglichst effizient mit runden Klammern versehen und habe eine Weile rum gemurgst, bis ich dann die einfache Lösung gefunden habe:

  1. Bereich auswählen mit v und z.B. $ bis zum Zeilenende
  2. dann c drücken
  3. () schreiben
  4. ESC drücken und
  5. ein großes (shift) P drücken

also v$c()<ESC>P

Und alles ist schön umklammert.

Wenn es egal ist den Bereich visuell zu markieren, dann geht es auch ohne das v und das $ (bis Zeilenende) muss nach dem c eingegeben werden. (Danke Rebeka!)

c$()<ESC>P oder gleich C()<ESC>P

Weitere Varianten wären:

  1. Bis zum nächsten Vorkommen z.B. des Buchstabens „m“ cfm()<ESC>P
  2. Vom vorherigem Vorkommen eines „t“ bis zum nächsten Vorkommen eines „m“ Ftcfm()<ESC>P
  3. Wenn mitten im Wort gestartet wird, das natürlich auch umklammert werden soll, als erstes ein b tippen z.B. bC()<ESC>P
  4. Die nächsten 3 Worte c3w()<ESC>P oder eben bc3w()<ESC>P

Weitere hyperblog Artikel zum Thema

vim

Views: 31

The post Vim – Bereiche mit Klammern umschließen first appeared on Dem hoergen Blog.

Mozilla hat Firefox 123.0.1 veröffentlicht und behebt damit mehrere Probleme der Vorgängerversion.

Download Mozilla Firefox 123.0.1

Mit dem Update auf Firefox 123.0.1 behebt Mozilla ein Problem, welches bei Verwendung mancher Themes verursachte, dass bei einer Website, die von Firefox übersetzt wurde, in der Adressleiste die Sprache nicht erkennbar war, in welche übersetzt worden ist.

Ein anderes behobenes Darstellungsproblem betrifft das Entwicklerwerkzeug „Web-Speicher“, bei welchem der Text in markierten Zeilen nur schwer zu lesen war.

Firefox 123.0.1 behebt auch mehrere Webkompatibilitätsprobleme. So wurde das change-Event nicht mehr ausgelöst, wenn ein textarea-Element geleert worden ist. Konische Farbverläufe wurden unter Windows mit aktivierter Hardwarebeschleunigung nicht mehr korrekt dargestellt. Außerdem wurde ein Fehler im JIT-Compiler der JavaScript-Engine behoben, bei dem String.prototype.lastIndexOf einen falschen Rückgabewert lieferte, wenn der Suchtext leer war.

Ein weiteres behobenes Problem betrifft Flatpak-Nutzer unter Linux, für welche andere Wörterbücher als en-US nicht mehr funktionierten.

Schließlich wurde noch ein Problem der chinesischen Firefox-Variante behoben, welches verursachte, dass auf der Seite, die beim Öffnen eines neuen Tabs erscheint, nur noch eine Fehlermeldung zu sehen war.

Der Beitrag Mozilla veröffentlicht Firefox 123.0.1 erschien zuerst auf soeren-hentzschel.at.

1. März 2024

Mein PinePhone in der Community Edition: UBports hat das letzte Update im Sommer 2021 empfangen. Es hängt auf Ubuntu 16.04 (2021-08-20) fest.

Nun habe ich mir überlegt mir das aktuelle Ubuntu Touch 20.04 herunterzuladen und es dann von der MicroSD-Karte zu starten.
Ich gehe auf die UT Projektseite https://gitlab.com/ook37/pinephone-pro-debos/-/releases und lade die Datei ubuntu-touch-pinephone-img-arm64.raw.xz herunter.

Ich schreibe das Image ohne es zu entpacken auf meine MicroSD-Karte.

andi@X230:~$ xzcat Downloads/ubuntu-touch-pinephone-img-arm64.raw.xz | sudo dd bs=8M status=progress of=/dev/mmcblk0

Das PinePhone bootet von der MicroSD-Karte. In den Systemeinstellungen -> Info -> Betriebssystem wird mir Ubuntu 16.04 (2021-08-20) angezeigt. Das ist die gleiche Version wie das von meinem instalierten UT auf dem PinePhone.
Wo ist Ubuntu Touch 20.04, gab es seit 2021 keine Aktualisierungen?

28. Februar 2024

Kurz notiert: heute wurde die Desktopumgebung Plasma 6 aus dem KDE-Projekt freigegeben. Mit dem Umstieg auf Qt 6 und den einhergehenden Arbeiten ist es nach knapp 10 Jahren der erste große Major-Release (KDE Plasma 5 wurde 2014 veröffentlicht). Eine weitere wegweisende Änderung ist, dass der Fokus nun klar auf dem Display-Server Wayland liegt, der auch nun zur Standardeinstellung wurde. X11 wird jedoch weiterhin unterstützt.

Eine Auswahl der weiteren Änderungen:

  • Es gibt einen neuen Overview-Effekt.
  • Durch Wayland wird nun auch HDR unterstützt.
  • Es gibt neue Filter zur Unterstützung bei Farbenblindheit.
  • Das Einstellungsprogramm wurde überarbeitet.
  • Der bekannte KDE Cube ist zurück.
  • Neue Standardeinstellungen:
    • Dateien/Verzeichnisse werden nun mit einem Klick ausgewählt und mit einem Doppelklick geöffnet.
    • Das Panel ist nun standardmäßig schwebend.
    • Thumbnail-Grid ist nun der Standard-Task-Switcher.
    • Scrollen auf dem Desktop führt nun nicht mehr zum Wechsel der virtuellen Desktops.

Auch die KDE-Anwendungen erfahren umfangreiche Updates. All diese Informationen können im Release Announcement nachvollzogen werden.

KDE Plasma 6 sollte nun sukzessive auch in die Distributionen Einzug halten. Arch Linux ist als Beispiel für einen Rolling Release da schon schnell dabei. Ob und inwiefern komplexe Setups des traditionell sehr einstellbaren Desktop-Systems umgezogen werden können, wird sich dann zeigen. Ein großer Vorteil des KDE-Ansatzes zeigt sich allerdings schon im Release-Announcement: viele der Funktionen können genutzt werden, müssen es aber nicht. Dem Endanwender wird die Wahl überlassen, welche Optionen er nutzen möchte.

26. Februar 2024

Irgendwann bin ich mal ueber Longplayer gestolpert und finde das ja grossartig 😄

Auf der Wikipedia Seite wird z.B. auch As Slow as Possible erwaehnt, auch super.

Vor allem grossartig finde ich, dass das auch gestreamt werden kann .

Noch besser finde ich aber, dass die Streamdatei eine pls Datei ist , die auch einfach mit cat geschrieben werden kann:

cat <<! >~/longplayer.pls
[playlist]
Title1=Longplayer
File1=http://icecast.spc.org:8000/longplayer
NumberOfEntries=1
Length1=-1
!

Und kann dann z.B. mit mpv abgespielt werden (die direkte URL wuerde uebrigens auch gehen):

mpv ~/longplayer.pls # oder direkt
mpv http://icecast.spc.org:8000/longplayer

Musik in der Shell finde ich schon sehr lange sehr spannend! 🎶 🤓


Danke, dass du das hier via RSS liest! :)

Mit einem Dualstack-Proxy Internet-Protokolle verbinden beschrieb eine Möglichkeit, um von Hosts, welche ausschließlich über IPv6-Adressen verfügen, auf Ziele zugreifen zu können, die ausschließlich über IPv4-Adressen verfügen. In diesem Beitrag betrachte ich die andere Richtung.

Zu diesem Beitrag motiviert hat mich der Kommentar von Matthias. Er schreibt, dass er für den bei einem Cloud-Provider gehosteten Jenkins Build Server IPv4 deaktivieren wollte, um Kosten zu sparen. Dies war jedoch nicht möglich, da Kollegen aus einem Co-Workingspace nur mit IPv4 angebunden sind und den Zugriff verloren hätten.

Doch wie kann man nun ein IPv6-Netzwerk für ausschließlich IPv4-fähige Clients erreichbar machen, ohne für jeden Host eine IPv4-Adresse zu buchen? Dazu möchte ich euch anhand eines einfachen Beispiels eine mögliche Lösung präsentieren.

Vorkenntnisse

Um diesem Text folgen zu können, ist ein grundsätzliches Verständnis von DNS, dessen Resource Records (RR) und des HTTP-Host-Header-Felds erforderlich. Die Kenntnis der verlinkten Wikipedia-Artikel sollte hierfür ausreichend sein.

Umgebung

Zu diesem Proof of Concept gehören:

  • Ein Dualstack-Reverse-Proxy-Server (HAProxy) mit den DNS-RR:
    • haproxy.example.com. IN A 203.0.113.1
    • haproxy.example.com IN AAAA 2001:DB8::1
  • Zwei HTTP-Backend-Server mit den DNS-RR:
    • www1.example.com IN AAAA 2001:DB8::2
    • www2.example.com IN AAAA 2001:DB8::3
  • Zwei DNS-RR:
    • www1.example.com IN A 203.0.113.1
    • www2.example.com IN A 203.0.113.1
  • Ein Client mit einer IPv4-Adresse

Ich habe mich für HAProxy als Reverse-Proxy-Server entschieden, da dieser in allen Linux- und BSD-Distributionen verfügbar sein sollte und mir die HAProxy Maps gefallen, welche ich hier ebenfalls vorstellen möchte.

Der Versuchsaufbau kann wie folgt skizziert werden:

Ein Dualstack-Reverse-Proxy-Server (B) verbindet IPv4-Clients mit IPv6-Backend-Servern

HAProxy-Konfiguration

Für dieses Minimal-Beispiel besteht die HAProxy-Konfiguration aus zwei Dateien, der HAProxy Map hosts.map und der Konfigurationsdatei poc.cfg.

~]$ cat /etc/haproxy/conf.d/hosts.map 
www1.example.com	serversa
www2.example.com	serversb

Eine HAProxy Map besteht aus zwei Spalten. In der ersten Spalte stehen die FQDNs, welche vom HTTP-Client aufgerufen werden können. In der zweiten Spalte steht der Name des Backends aus der HAProxy-Konfiguration, welcher bestimmt, an welche Backend-Server eine eingehende Anfrage weitergeleitet wird. In obigem Beispiel werden Anfragen nach www1.example.com an das Backend serversa und Anfragen nach www2.example.com an das Backend serversb weitergeleitet.

Die HAProxy Maps lassen sich unabhängig von der HAProxy-Konfigurations-Datei pflegen und bereitstellen. Map-Dateien werden in ein Elastic Binary Tree-Format geladen, so dass ein Wert aus einer Map-Datei mit Millionen von Elementen ohne spürbare Leistungseinbußen nachgeschlagen werden kann.

Die HAProxy-Konfigurations-Datei poc.cfg für dieses Minimal-Beispiel ist ähnlich simpel:

~]$ cat /etc/haproxy/conf.d/poc.cfg 
frontend fe_main
	bind :80
	use_backend %[req.hdr(host),lower,map(/etc/haproxy/conf.d/hosts.map)]

backend serversa
	server server1 2001:DB8::1:80
backend serversb
	server server1 2001:DB8::2:80

In der ersten Zeile wird ein Frontend mit Namen fe_main definiert. Zeile 2 bindet Port 80 für den entsprechenden Prozess und Zeile 3 bestimmt, welches Backend für eingehende HTTP-Anfragen zu nutzen ist. Dazu wird der HTTP-Host-Header ausgewertet, falls notwendig, in Kleinbuchstaben umgewandelt. Mithilfe der Datei hosts.map wird nun ermittelt, welches Backend zu verwenden ist.

Die weiteren Zeilen definieren zwei Backends bestehend aus jeweils einem Server, welcher auf Port 80 Anfragen entgegennimmt. In diesem Beispiel sind nur Server mit IPv6-Adressen eingetragen. IPv4-Adressen sind selbstverständlich auch zulässig und beide Versionen können in einem Backend auch gemischt auftreten.

Kann eine HTTP-Anfrage nicht über die hosts.map aufgelöst werden, läuft die Anfrage in diesem Beispiel in einen Fehler. Für diesen Fall kann ein Standard-Backend definiert werden. Siehe hierzu den englischsprachigen Artikel Introduction to HAProxy Maps von Chad Lavoie.

Der Kommunikationsablauf im Überblick und im Detail

Der Kommunikationsablauf im Überblick

Von einem IPv4-Client aus benutze ich curl, um die Seite www1.example.com abzurufen:

~]$ curl -4 -v http://www1.example.com
* processing: http://www1.example.com
*   Trying 203.0.113.1:80...
* Connected to www1.example.com (203.0.113.1) port 80
> GET / HTTP/1.1
> Host: www1.example.com
> User-Agent: curl/8.2.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< server: nginx/1.20.1
< date: Sat, 06 Jan 2024 18:44:22 GMT
< content-type: text/html
< content-length: 5909
< last-modified: Mon, 09 Aug 2021 11:43:42 GMT
< etag: "611114ee-1715"
< accept-ranges: bytes
< 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
	<head>
		<title>Test Page for the HTTP Server on Red Hat Enterprise Linux</title>

Der FQDN www1.example.com wird mit der IPv4-Adresse 203.0.113.1 aufgelöst, welche dem Host haproxy.example.com gehört. Bei der Zeile Host: www1.example.com handelt es sich um den HTTP-Host-Header, welchen der HAProxy benötigt, um das richtige Backend auszuwählen.

Es ist zu sehen, dass wir eine Antwort von einem NGINX-HTTP-Server erhalten. Der HTML-Quelltext wurde gekürzt.

Damit ist es gelungen, von einem IPv4-Client eine Ressource abzurufen, die von einem IPv6-Server bereitgestellt wird.

Im Access-Log des Backend-Servers mit der IPv6-Adresse 2001:DB8::2 sieht man:

2001:DB8::1 - - [06/Jan/2024:19:44:22 +0100] "GET / HTTP/1.1" 200 5909 "-" "curl/8.2.1" "192.0.2.1"

Die Anfrage erreicht den Backend-Server von der IPv6-Adresse des haproxy.example.com (2001:DB8::1). Die am Ende der Zeile zu sehende IPv4-Adresse (192.0.2.1) gehört dem IPv4-Client, von dem ich die Anfrage gesendet habe.

Gedanken zur Skalierung

In diesem Beispiel sind die Server www1.example.com und www2.example.com über ihre IPv6-Adressen direkt erreichbar. Nur die Client-Anfragen von IPv4-Clients laufen über den Reverse-Proxy. Wenn man es wünscht, kann man selbstverständlich sämtliche Anfragen (von IPv4- und IPv6-Clients) über den Reverse-Proxy laufen lassen.

In kleinen Umgebungen kann man einen Reverse-Proxy wie HAProxy zusammen mit Squid (vgl. Artikel Mit einem Dualstack-Proxy Internet-Protokolle verbinden) auf einem Host laufen lassen. Selbstverständlich kann man sie auch auf separate Hosts verteilen.

Hochverfügbarkeit lässt sich auch hier mit keepalived nachrüsten:

Abschließende Gedanken

Die Internet-Protokolle IPv4 und IPv6 werden wohl noch eine ganze Zeit gemeinsam das Internet bestimmen und parallel existieren. Ich bin mir sogar sicher, dass ich das Ende von IPv4 nicht mehr miterleben werde. Dualstack-(Reverse)-Proxy-Server stellen eine solide und robuste Lösung dar, um beide Welten miteinander zu verbinden.

Sicher bleiben noch ausreichend Herausforderungen übrig. Ich denke da nur an Firewalls, Loadbalancer, NAT und Routing. Und es werden sich auch Fälle finden lassen, in denen Proxyserver nicht infrage kommen. Doch mit diesen Herausforderungen beschäftige ich mich dann in anderen Artikeln.

Quellen und weiterführende Links

25. Februar 2024

Taschencomputer Sharp PC-1500A
Taschencomputer Sharp PC-1500A

Mit dem Taschenrechner Taschencomputer Sharp PC-1500 von meinem Vater habe ich vor Dekaden (ca. 2) angefangen zu programmieren. Ganz simpel in Basic. Haengen geblieben ist auf jeden Fall das “goto” *in Nostalgie schwelg*


Einen Weiterleitungsservice (bzw. Kurz-URL-Dienst ) wie bitly wollte ich schon lange selbst hosten. Open Source Varianten gibt es ja einige .

Aber warum noch eine weitere Software einsetzen, wenn es auch einfach™ mit Hugo geht, was ich sowieso schon nutze?

Im Folgenden stelle ich 3 Varianten vor, einmal die native Version mit Aliases (wenigster Aufwand, aber auch Voraussetzung fuer die beiden anderen Varianten), dann via einem Apache Webserver und .htaccess-Dateien (mittlerer Aufwand, Apache muss natuerlich eingesetzt werden) und zuletzt via einem nginx Webserver und inkludierten Dateien (hoechster Aufwand, nginx muss natuerlich eingesetzt werden).

Aliases #

Das folgende ist abgeguckt von Dan North (von dort kam auch die Inspiration fuer das alles hier) und nutzt das Hugo Alias Template .

Im Prinzip nutze ich dafuer eine eigene Sektion unter content namens goto.

Fuer die goto-Uebersichtsseite nutze ich dazu ein list.html Template:

 layouts/goto/list.html

1
2
3
4
5
{{ define "main" }}
  {{ partial "title.html" . }}
  {{ .Content }}
  {{ partial "goto-list.html" . }}
{{ end }}

title.html enthaelt quasi nur die Ueberschrift und .Content den Text auf dieser Uebersichtsseite. Spannend ist das Partial goto-list.html:

 layouts/_partials/goto-list.html

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<ul>
{{- range where .Pages "Params.public" "eq" true -}}
{{- $url := .Permalink -}}
<li><a href="{{ $url }}">{{ with .File }}{{ .BaseFileName }}{{ end }}</a> (kurz fuer &bdquo;{{ .Title }}&ldquo;) leitet weiter zu
  {{ with print "[" .Params.target "](" .Params.target ")" }}{{ $.Page.RenderString . }}{{ end }}
  {{ with images.QR $url }}
  <p><img class="block mx-auto" src="{{ .RelPermalink  }}" width="{{ .Width }}" height="{{ .Height }}" alt="QR-Code: {{ $url }}"></p>
  {{ end  }}
</li>
{{- end -}}
</ul>

Hierdurch werden nur die Shortlinks in der Uebersicht angezeigt, die den Parameter public auf true gesetzt haben. Eine Beispieldatei ist z.B. diese hier, die dann dort auch angezeigt wird:

 content/goto/ls.md

1
2
3
4
5
---
title: "Linkshrubbery"
public: true
target: https://ls.uxg.ch
---

Der Rest der Magic passiert dann auf der Detailseite, hier wird die Markdowndatei via des Alias Templates in eine kleine HTML-Datei umgewandelt, die dann mit Hilfe von dem <meta> http-equiv Attribut eine Weiterleitung auf das target macht:

 layouts/goto/single.html

1
2
{{- /* https://dannorth.net/hugo-redirects/ */ -}}
{{- template "alias.html" (dict "Permalink" .Params.target) -}}

Soweit so gut, dieses “Feature” nutze ich auch in vielen alten Eintraegen, damit auch weiterhin Weiterleitungen funktionieren.

Leider hat das einen Nachteil, denn es ist keine “richtige” Weiterleitung. Z.B. wird curl es nicht als Weiterleitung erkennen , da der Status-Code keine 3xy ist.

Apache #

Diese Variante habe ich mir von Til Seiffert abgeguckt . Dort wird eine .htaccess-Datei genutzt, um alle Hugo Aliases in einer Datei zu sammeln und damit eine “richtige” und schnellere Weiterleitung zu bekommen.

In meinem Anwendungsfall brauche ich das nicht fuer alle Aliases, sondern eben nur fuer die in der Sektion goto, aber die Vorgehensweise ist aehnlich.

Zur Nutzung muss die hugo.toml , genauer outputFormats und mediaTypes erweitert werden:

[outputFormats.htaccess]
  baseName       = ".htaccess"
  isPlainText    = true
  mediaType      = "text/htaccess"
  notAlternative = true

[mediaTypes."text/htaccess"]
  suffixes = ""

Zudem muss noch im Front matter der content/goto/_index.md festgelegt werden, dass fuer diese Sektion “html” und “htaccess” ausgegeben werden soll, aber kein “rss”, was erstmal der Standard fuer Sektionen ist:

---
title: "goto"
# no rss here please, but html and htaccess
outputs:
- html
- htaccess
---

Die eigentliche .htaccess fuer die Sektion goto sieht dann wie folgt aus (hier wird eine Hugo Page Methode namens File genutzt):

 layouts/goto/section.htaccess

1
2
3
4
RewriteEngine On
{{ range .Pages -}}
Redirect 302 ./{{ with .File }}{{ .BaseFileName }}{{ end }}(\/?)$ {{ .Params.target }}
{{ end -}}

Ich habe hier den HTTP-Statuscode 302 gewaehlt, da sich die Ziele theoretisch aendern koennen (und nginx diesen Code auch nutzt fuer die temporaere Weiterleitung). 307 waere auch eine Moeglichkeit.

Da ich nicht Apache als Webserver einsetze, kann ich nicht garantieren, dass das auch alles so klappt. Aber mit der .htaccess in einem Verzeichnis sollte™ das gehen. Wenn nicht, gerne Bescheid geben.

nginx #

Da ich als Webserver nginx einsetze und hierbei die Nutzung von .htaccess-Dateien keine gute Idee ist, habe ich mir was anderes ueberlegt.

Die Vorgehensweise aehnelt hier sehr der Apache-Variante, denn auch hier muessen outputFormats und mediaTypes in der hugo_toml hinzugefuegt werden:

[outputFormats.nginx]
  baseName       = "nginx"
  isPlainText    = true
  mediaType      = "text/conf"
  notAlternative = true

[mediaTypes."text/conf"]
  suffixes = ["conf"]

Wie bei Apache auch wollen wir diese Datei ja nur in der Sektion goto haben, daher tragen wir auch nur im Front matter der content/goto/_index.md folgendes ein:

---
title: "goto"
# no rss here please, but html, htaccess and nginx
outputs:
- html
- htaccess
- nginx
---

Und definieren zu guter Letzt noch eine nginx.conf (Doku ):

 layouts/goto/section.nginx.conf

1
2
3
{{- range .Pages -}}
rewrite ./{{ with .File }}{{ .BaseFileName }}{{ end }}(\/?)$ {{ .Params.target }} redirect;
{{ end -}}

So, jetzt wird es spannend. Wie bekommt nginx jetzt diese Regeln mit? Eine .htaccess koennen wir ja nicht einsetzen.
Aber wir koennen include nutzen ! Das geht auch, wenn die Datei leer ist, allerdings leider nicht, wenn die Datei nicht vorhanden ist.

Entweder wird also der Ordner goto und eine leere nginx.conf angelegt, oder wir passen die nginx Config erst an, wenn die Website mit hugo gebaut wurde.

Jedenfalls sieht meine nginx Config in etwa so aus:

server {
  # [...]
  server_name uxg.ch;
  location / {
    include /path/to/goto/nginx.conf;
  }
}

Nice!

Weiteres #

Hier noch ein paar weitere Anpassungsmoeglichkeiten bzw. Ideen.

Public vs. private #

Im Prinzip koennen auch alle Weiterleitungen oeffentlich sein, dann kann sich der Aufwand mit dem Parameter “public” auch gespart werden.

Allerdings verwende ich den nun und muss mich daher auch drum kuemmern, dass nicht aus Versehen was in den RSS Feeds, der Sitemap oder sonst wo auftaucht.

RSS #

Fuer die Sektion goto habe ich ja im Front matter schon keine RSS-Feeds erlaubt (und damit den Default ueberschrieben ), siehe Apache-Variante bzw nginx-Variante.

Sitemap #

Die Standard sitemap.xml habe ich sowieso schon angepasst, falls ich Seiten habe, die ich mit dem Parameter “exclude” eben nicht in der Sitemap haben will (siehe GitHub Issue #653 dazu). Fuer die Sektion goto kam dann noch ein Zusatz dazu.

Komplett sieht das dann so aus:

 layouts/sitemap.xml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{{- /* https://github.com/gohugoio/hugo/issues/653 */ -}}
{{- /* https://gohugo.io/templates/sitemap-template/#hugos-sitemapxml */ -}}
{{- /* https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/_default/sitemap.xml */ -}}
{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  {{ $excluded := where .Data.Pages ".Params.exclude" "!=" true }}
  {{ range where $excluded "Section" "ne" "goto" }}
    {{- if .Permalink -}}
	{{ if not (in .Params.Tags "onlyfeed") }}
  <url>
    <loc>{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
    <lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}
    <changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
    <priority>{{ .Sitemap.Priority }}</priority>{{ end }}{{ if .IsTranslated }}{{ range .Translations }}
    <xhtml:link
                rel="alternate"
                hreflang="{{ .Language.LanguageCode }}"
                href="{{ .Permalink }}"
                />{{ end }}
    <xhtml:link
                rel="alternate"
                hreflang="{{ .Language.LanguageCode }}"
                href="{{ .Permalink }}"
                />{{ end }}
  </url>
	{{ end }}
    {{- end -}}
  {{ end }}
</urlset>

Cleanup #

Theoretisch brauchen wir mit Einsatz von Apache oder nginx die Alias-Dateien nicht mehr, also koennte die Datei layouts/goto/single.html auch geloescht werden.

“Anonym” weiterleiten #

Um “anonym”, also ohne Referrer auf andere Websites weiterzuleiten (auch Dereferrer genannt), kann das <meta> name Attribut genutzt werden.

Fuer ein Codebeispiel siehe redirect.html#L9 oder diesen curl-Aufruf:

$ curl -L "https://url.scriptsez.net?https://uxg.ch"
<html><head><meta name="referrer" content="no-referrer" /><meta http-equiv=refresh content="0;url='https://uxg.ch'"></head></html>

Entweder kann also im Prinzip das Alias-Template um diese Zeile erweitert werden oder im Webserver der entsprechende Parameter gesetzt werden.

QR-Code #

Als kleine™ Spielerei koennte jetzt noch an jeden “goto” ein QR-Code dran geklebt werden. Z.B. koennte neben der nginx Datei auch noch fuer jeden Link eine Textdatei erstellt werden, die den Link enthaelt. Ein Script koennte dann vor dem Bauen der Website mit hugo via find ueber all diese Textdateien drueberlaufen und mit einem Text-QR-Code ersetzen, die dann z.B. mit readfile eingebunden werden.

Ja, richtig gelesen, QR-Codes muessen nicht unbedingt Bilder sein, sondern koennen auch aus Text bestehen. qrencode bringt sowas auch schon mit:

qrencode -t UTF8i "https://uxg.ch" | sed 's/[ \t]*$//;/^$/d'

Ein kleiner Shortcode dazu:

 layouts/_shortcodes/qr-code.html

1
2
3
4
5
6
7
<style>
  .qr-code {
    font-family: monospace;
    line-height: 1.0;
  }
</style>
<pre class="qr-code">{{- .Inner | safeHTML -}}</pre>

Und damit sieht das ganze dann so aus:

    █▀▀▀▀▀█  █▀█▀ █▀▀▀▀▀█
    █ ███ █ ▄█▄▄  █ ███ █
    █ ▀▀▀ █ ▀ █ █ █ ▀▀▀ █
    ▀▀▀▀▀▀▀ ▀▄█ █ ▀▀▀▀▀▀▀
    ▀█▄▄ ▀▀▀ ▀   ▄  ▀█▄▄
    ▀█▄▄▀ ▀▀█▄██▀█▀█▄▄█▀
    ▀ ▀   ▀▀▄▀ ▀▀▄  ▄▄▄▀▄
    █▀▀▀▀▀█ ██▀▀▀█▄▀ ▄█▀
    █ ███ █  █▀▀ ▀███▀▄▀▀
    █ ▀▀▀ █ ▄▀▄█▀█▀████▀▀
    ▀▀▀▀▀▀▀ ▀  ▀▀ ▀▀ ▀ ▀

Geil! Ausgelesen werden koennen diese z.B. mit einer meiner Lieblings-Android-Apps: Binary Eye

Update (2025-01-17): Oder es wird einfach die naechste Hugo Version abgewartet, wo ein Shortcode zur Generierung von QR-Codes jetzt einfach nativ enthalten ist. Mega geil, love it! 😍

QR-Code: https://uxg.ch

Die kleine™ Spielerei habe ich somit nun auch eingebaut 🎉


Danke, dass du das hier via RSS liest! :)

24. Februar 2024

In drei Wochen beginnen die Chemnitzer Linux-Tage 2024 mit dem diesjährigen Motto „Zeichen setzen“. Am 16. und 17. März erwartet euch im Hörsaalgebäude an der Richenhainer Straße 90 ein vielfältiges Programm an Vorträgen und Workshops. Hier finden sich Vorträge für interessierte Neueinsteiger wie für alte Hasen.

So geht es am Samstag im Einsteigerforum beispielsweise um die Digitalisierung analoger Fotos, das Erstellen von Urlaubsvideos mit der Software OpenShot oder die Verschlüsselung von E-Mails. In der Rubrik „Schule“ gibt Arto Teräs einen Einblick in den Einsatz der Open-Source-Lösung Puavo an finnischen und deutschen Schulen. Zusätzlich stehen Vorträge aus den Bereichen Finanzen, Medien, Datensicherheit, KI oder Netzwerk auf dem Programm. Am Sonntag gibt das Organisationsteam der Chemnitzer Linux-Tage mit „make CLT“ Einblicke in die Planung und Strukturen der Veranstaltung selbst. In der Rubrik „Soft Skills” wird es um die Schätzung von Aufwänden oder notwendige Fähigkeiten von Software-Entwicklern gehen.

Eintrittskarten können online im Vorverkauf und an der Tageskasse erworben werden. Kinder bis 12 Jahren haben freien Eintritt.

Während viele Besucher bereits Stammgäste sind, werden auch neue Gesichter herzlich willkommen. Lasst euch gern von der hier herrschenden Atmosphäre voller Begeisterung für freie Software und Technik anstecken und begeistern.

Ich selbst freue mich, am Samstag um 10:00 Uhr in V6 den Vortrag mit dem obskuren Namen ::1 beisteuern zu dürfen. Update: Unverhofft kommt oft. Uns so freue ich mich am Sonntag um 10:00 Uhr in Raum V7 noch in einem zweiten Vortrag vertreten zu sein. Zusammen mit Michael Decker von der ASPICON GmbH erfahrt ihr, wie man „Mit Ansible Collections & Workflows gegen das Playbook-Chaos“ angehen kann.

Darüber hinaus beteilige ich mich als Sessionleiter für die folgenden drei Vorträge an der Veranstaltung:

So habe ich auf jeden Fall einen Platz im Raum sicher. ;-)

Wer ebenfalls helfen möchte, kann sich unter Mitmachen! informieren und melden.

Für mich ist dieses Jahr einiges im Programm dabei. Doch freue ich mich ebenso sehr auf ein Wiedersehen mit alten Bekannten aus der Gemeinschaft und darauf, neue Gesichter (Namen kann ich mir meist erst Jahre später merken) kennenzulernen.

Also bis bald in der Karl-Marx-Stadt.

Chemnitzer Linux-Tage Banner

22. Februar 2024

Mozilla hat über seinen Risikokapitalfonds Mozilla Ventures in das deutsche KI-Startup Flower Labs investiert.

Mozilla Ventures ist ein Ende 2022 gestarteter und mit 35 anfänglich Millionen USD ausgestatteter Risikokapitalfonds, über welchen Mozilla in Startups investiert, welche das Internet und die Tech-Industrie in eine bessere Richtung bringen. Nach zahlreichen Investitionen im vergangenen Jahr ist nun die erste Investition des Jahres 2024 bekannt.

So ist Mozilla Ventures an der Serie-A-Finanzierungsrunde beteiligt, in deren Rahmen das Hamburger Unternehmen Flower Labs insgesamt 20 Millionen USD einsammeln konnte. Die Seite Hamburg Startups beschreibt den Aufgabenbereich von Flower Labs wie folgt:

Das Ziel von Flower Labs ist es, die Art und Weise zu verändern, wie die Welt an KI herangeht. Durch die Vereinfachung der Nutzung dezentraler Technologien wie föderiertes Lernen wird eine Reihe von Vorteilen gegenüber zentralisierten Alternativen erschlossen. Dazu gehört vor allem der sichere Zugang zu großen Mengen verteilter Daten, wie sie in Krankenhäusern, Unternehmen, Produktionsanlagen, Autos und Telefonen anfallen. Solche Daten bleiben relativ ungenutzt und werden ein Katalysator für Fortschritte in einer Reihe von KI-Anwendungsbereichen sein – etwa im Gesundheitswesen, in der Fertigung, im Finanzwesen und in der Automobilindustrie. In diesem nächsten Schritt der KI wird Flower das entscheidende Open-Source-Framework und -Ökosystem sein, wenn sich die KI-Software zur Unterstützung dieser neuen Generation dezentraler Systeme weiterentwickelt.

Der Beitrag Mozilla investiert in deutsches KI-Startup Flower Labs erschien zuerst auf soeren-hentzschel.at.

21. Februar 2024

Mozilla hat Firefox 123 für Windows, Apple macOS und Linux veröffentlicht. Dieser Artikel fasst die wichtigsten Neuerungen zusammen – wie immer auf diesem Blog weit ausführlicher als auf anderen Websites.

Download Mozilla Firefox für Microsoft Windows, Apple macOS und Linux

Suchfunktion für Firefox View

Die mit Firefox 106 eingeführte und mit Firefox 119 stark verbesserte Funktion Firefox View hat mit Firefox 123 eine Suchfunktion erhalten. Diese steht in allen Reitern zur Verfügung, um den entsprechenden Abschnitt durchsuchen zu können: Kürzlich besucht, Offene Tabs, Kürzlich geschlossene Tabs, Tabs von anderen Geräten, Chronik. Außerdem wurde die Performance von Firefox View verbessert.

Verbesserungen der Übersetzungsfunktion

Die Funktion zur vollständigen Übersetzung von Websites, welche im Gegensatz zu Google Translate & Co. komplett im Browser arbeitet und nichts an einen Server sendet, übersetzt jetzt auch Platzhaltertexte in Formularelementen sowie Tooltips.

Übersetzungen werden jetzt für zehn Minuten gecacht, sodass wiederkehrende Übersetzungen, wenn beispielsweise die Seite häufiger neu geladen werden muss, schneller erfolgen. Außerdem wird nach erfolgter Übersetzung das lang-Attribut der Website entsprechend verändert.

Kompatibilitätsprobleme mit Websites melden

Mozilla hat eine Melden-Funktion für webcompat.com in das Hauptmenü von Firefox integriert. Wer auf ein Website-Problem stößt, welches in einem anderen Browser nicht besteht, kann dieses darüber melden, sodass Mozilla von dem Problem mitbekommt und ggf. notwendige Maßnahmen einleiten kann.

Webkompatibilitäts-Reporter Firefox 123

Sonstige Endnutzer-Neuerungen von Firefox 123

Die Konfiguration, welche Inhalte über die Adressleiste vorgeschlagen werden, befindet sich in den Einstellungen jetzt im Reiter für die Suche, sodass alle Optionen, welche Vorschläge betreffen, an einem zentralen Ort zu suchen sind und nicht länger über zwei Kategorien verteilt sind.

Firefox 123

Unter Windows wurde die sichtbare Option für die Verwendung eines Hintergrunddienstes zur Installation von Firefox-Updates entfernt. Der Hintergrunddienst ist notwendig, damit Nutzer nicht bei jedem Firefox-Update den UAC-Dialog von Windows bestätigen müssen.

Performance-Verbesserungen gab es für Nutzer von macOS mit Apple Silicon durch verbesserte PGO-Optimierungen, für Linux-Nutzer durch eine Anpassung der Sandbox sowie für Nutzer von macOS und Linux durch Off-Main-Thread Canvas. Beschleunigt wurde auch die Zeit zum Wiederherstellen vieler Tabs.

Unter Linux wurde die CPU-Architektur im User-Agent eingefroren und zeigt nun unabhängig von der tatsächlichen Hardware immer x86_64 an.

Auf macOS schlägt Firefox bei Login-Feldern im iCloud-Schlüsselbund gespeicherte Passkey-Zugänge vor, sofern welche für die Domain existieren.

Firefox 123 Passkeys iCloud

Nutzer, welche nicht für die Synchronisation in Firefox angemeldet sind, sehen jetzt standardmäßig eine Schaltfläche zum Anmelden in der Navigationssymbolleiste. Wer diese Schaltfläche nicht möchte, kann diese wie üblich über das Kontextmenü entfernen.

Mehr Sicherheit für Firefox-Nutzer

Auch in Firefox 123 wurden wieder mehrere Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 123 daher für alle Nutzer dringend empfohlen.

Verbesserungen der Entwicklerwerkzeuge

Im Netzwerkanalyse-Werkzeug ersetzt ein neuer Kontextmenüeintrag zum Speichern der Antwort den bisherigen Eintrag zum Speichern von Bildern. Dafür steht diese Option jetzt für alle Dateitypen und nicht länger nur für Bilder zur Verfügung.

Verbesserungen der Webplattform

Firefox unterstützt jetzt deklaratives Shadow DOM.

Der HTTP-Statuscode 103 Early Hints ist für das Vorladen von Ressourcen aktiviert, welche die Seite wahrscheinlich benötigt, während der Server noch die vollständige Antwort vorbereitet. Dies kann die Ladezeit einer Seite erheblich verkürzen.

Die WebExtension-Schnittstelle für Tab-Umgebungen wurde um eine Methode erweitert, die es Erweiterungs-Entwicklern erlaubt, die Reihenfolge der Tab-Umgebungen zu verändern.

Weitere Neuerungen für Entwickler von Websites lassen sich in den MDN Web Docs nachlesen.

Der Beitrag Mozilla veröffentlicht Firefox 123 erschien zuerst auf soeren-hentzschel.at.

20. Februar 2024

Die MZLA Technologies Corporation hat mit Thunderbird 115.8 ein planmäßiges Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 115.8

Mit dem Update auf Thunderbird 115.8 hat die MZLA Technologies Corporation ein planmäßiges Update für seinen Open Source E-Mail-Client veröffentlicht. Das Update bringt diverse Fehlerbehebungen und Verbesserungen unter der Haube, welche sich in den Release Notes (engl.) nachlesen lassen. Auch wurden diverse Sicherheitslücken geschlossen.

Der Beitrag Thunderbird 115.8 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

Ich verwende KDE (also Plasma) als Desktop. Ich habe eh begrenzten vertikalen Platz (meine Bildschirme sind breiter als hoch), und durch ein Panel oben oder unten würde dieser Platz noch weniger werden. Daher habe ich mir ein seitliches Panel am linken Bildschirmrand eingerichtet.

#showyourdesktop

Sieht gut aus, oder?

Nachbauen

  • Um ein seitliches Panel zu erstellen führt ihr in einem leeren Bereich eures Desktops einen Rechtsklick aus und wählt “Kontrolleiste hinzfügen -> leere Kontrollleiste”.
  • Dies macht ihr so lange, bis eine seitliche Leiste links oder rechts entsteht (zuerst wird oben eine entstehen, dann links, dann rechts).
  • Die nicht benötigten neuen Leisten könnt ihr direkt wieder löschen.
  • Mein Panel hat eine Breite von 100

Widgets

Mein Panel besteht aus folgenden Widgets:

Panel Widgets
  • Analoge Uhr

  • Digitale Uhr

  • Systemmonitor-Sensoren

    • Azeige-Stil: Gitter
    • Gitter-Stil: Liniendiagramm
    • Sensoren:
      • Gesamtauslastung
      • Warteauslastung
      • Download-Rate
      • Upload-Rate
  • Abstandhalter (Breite 10)

  • Systemabschnitt der Kontrollleiste

  • Abstandhalter

  • Fensterleiste

  • Anwendungsstarter

Weitere Desktopbilder finden sich bei Mastodon unter dem Hashtag #showyourdesktop. Wie sieht euer Desktop aus?

Weblinks


Diskussion per Matrix unter https://matrix.to/#/#produnis-blog:tchncs.de

 

19. Februar 2024

Bisher nur als Vorschlag eingereicht, möchte der COSMIC Desktop ein weiterer Spin im Reigen der Fedora Atomic Sammlung werden.

Seit Mitte Februar vereint Fedora seine immutable Spins unter dem Namen Fedora Atomic Desktops. Damit gibt es eine Sammlung aller Desktop-Varianten, die auf rpm-ostree aufbauen. rpm-ostree ist ein hybrides Image-/Paketsystem. Es kombiniert libostree als Basis-Image-Format und akzeptiert RPM sowohl auf der Client- als auch auf der Serverseite und teilt sich den Code mit dem dnf-Projekt, insbesondere libdnf.

Bisher gibt es bei Fedora Atomic Desktops die Varianten:

  • Fedora Silverblue (GNOME Desktop)
  • Fedora Kionite (KDE Plasma Desktop)
  • Fedora Sway Atomic (Sway Desktop)
  • Fedora Budgie Atomic (Budgie Desktop)

Neu hinzukommen soll Fedora COSMIC Atomic, basierend auf der neuen Cosmic Desktop Umgebung von System76, der im März erscheinen soll. Das Fedora-Team ist offen für andere Desktop-Umgebungen im Rahmen der Sammlung Fedora Atomic Desktops, und wie es aussieht, haben die Leute den Wink verstanden.

Vor ein paar Tagen wurde auf der offiziellen Fedora-Mailingliste ein Vorschlag vom unabhängigen Mitarbeiter, Ryan Brue, gemacht, der herausfinden wollte, ob genügend Interesse an der Gründung einer dedizierten COSMIC SIG für Fedora besteht. Eine Fedora SIG ist eine Special Interest Group, die Teil des Fedora-Projekts ist, das normalerweise als Ausgangspunkt für viele neue Projekte dient, bei denen sich Mitwirkende zusammentun und an der Erreichung einer Reihe von Zielen arbeiten können. Für die vorgeschlagene COSMIC SIG wären die Ziele die Erstellung von RPM-Paketen für die verschiedenen COSMIC-Komponenten, die Ausarbeitung eines Plans zur Förderung eines Fedora COSMIC Spins, die Mitwirkung an der Entwicklung von COSMIC und die Erstellung einer speziellen Fedora COSMIC Atomic Desktop Variante.

Ryan schreibt:

Mein Ziel ist es, kurz vor der Alpha-Veröffentlichung eine SIG für COSMIC zu entwickeln, hoffentlich ein paar Leute zu finden, die mir dabei helfen, rpms für COSMIC-Komponenten zu packen, und diese rpms dann zu verwenden, um eine Spin- UND eine atomare Variante zu erstellen (ich selbst bin eher ein Fan der atomaren Desktops). Momentan kompiliert mein COSMIC-Image alles manuell und legt die Dinge dort ab, wo sie im Dateisystem sein müssen, aber rpms sind das letztendliche Ziel.

Er hat bereits mit der Arbeit daran begonnen, indem er ein bestehendes Projekt eines System76-Entwicklers forkte, das auf einem OSTree-Image von Fedora Silverblue mit COSMIC DE basierte. Der Fork heißt Fedora Cosmic Atomic; ein Atomic-Desktop, der einen Pre-Alpha-Build von COSMIC DE enthält. Das kann man sich auf GitHub ansehen. Da die Veröffentlichung des Alpha-Builds von COSMIC kurz bevorsteht, sollte der Fedoras Spin es den Benutzern ermöglichen, die brandneue Desktop-Umgebung von System76 ohne Ubuntu zu nutzen.

Es lohnt sich nicht über ein Erscheinungsdatum zu schreiben, da sich der COSMIC Desktop immer noch in einem frühen und unfertigen Stadium befindet. Voraussichtlich werden wir die erste stabile Version basierend auf Ubuntu 24.04 im Laufe der nächsten Monate sehen. Da es sich bei Fedora COSMIC Atomic erst einmal um einen Vorschlag handelt, wird das Erscheinen sehr wahrscheinlich länger dauern.

Quelle: https://github.com/ryanabx/fedora-cosmic-atomic


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

Am 16. und 17. März 2024 werde ich euch auf den Chemnitzer Linux-Tagen um 10:00 Uhr in Raum V6 mit einem Vortrag über IPv6 unterhalten.

Dazu bin ich noch auf der Suche nach ein paar Beispielen aus dem echten Leben. Falls ihr mögt, teilt mir doch eure schönsten und schlimmsten Momente im Zusammenhang mit IPv6 mit und ich prüfe, ob ich sie in meinen Vortrag mit einbauen kann.

  • Wann und wie hat IPv6 euren Tag gerettet?
  • Wieso hat euch das Protokoll Alpträume beschehrt?
  • Was funktioniert wider Erwarten immer noch nicht mit IPv6?
  • Habt ihr lustige Geschichten, die ihr (anonym) mit der Welt teilen möchtet?

Ich freue mich über Einsendungen, Beiträge und Rückmeldungen:

Bitte schreibt dazu, ob ihr eine Namensnennung wünscht oder euer Beispiel anonym einfließen soll.

Um einen runden Vortrag zu erstellen, wird evtl. nicht jeder Beitrag einfließen können. Bitte habt Verständnis dafür und verzeiht, wenn ihr euch nicht im Vortrag wiederfindet. Ich werde eure Geschichten ggf. im Nachgang hier im Blog veröffentlichen.

Bis neulich in Chemnitz. :-)

18. Februar 2024

Als Folge der internen Umstrukturierung bei Mozilla wird es, anders als bisher geplant, keine eigenen Mastodon-Apps von Mozilla geben. Mozilla Social für Android wird jedoch unter dem Namen Firefly weiterentwickelt.

Vor wenigen Tagen hat Mozilla eine Umstrukturierung angekündigt, welche auch Mozillas Fediverse-Engagement betrifft. Während die eigene Mastodon-Instanz mozilla.social weiterhin betrieben wird, hat Mozilla die Entwicklung eigener Apps für Android und Apple iOS gestoppt.

Dabei ist vor allem um die Android-App sehr schade, deren Entwicklung bereits weiter fortgeschritten war und die seit dem 5. Januar als Alpha-Version getestet werden konnte. Noch am selben Tag hatte ich eine ausführliche Vorschau zum damaligen Stand der Entwicklung veröffentlicht und kam dabei zu dem Fazit, dass die App bereits einen sehr vielversprechenden Ersteindruck hinterlässt. Seit dem gab es einige Verbesserungen. Unter anderem wurden Benachrichtigungen innerhalb der App ergänzt.

Auch wenn Mozilla das Projekt gestoppt hat, scheint es für die Android-App dennoch weiterzugehen. So wird die App unter dem Namen Firefly von den Entwicklern der Original-App fortgeführt. Sobald hier die notwendige Bereinigung (wie eine Entfernung aller Mozilla-Referenzen) abgeschlossen ist, dürfte es im Firefly-Repository mit den Downloads neuer Versionen weitergehen.

Was die Entwicklung einer eigenen Mastodon-App für iOS betrifft, war die Entwicklung noch nicht so weit vorangeschritten. Ohnehin ging es dort bereits seit Mitte Januar nicht mehr weiter und es sah so aus, als hätte Mozilla die Ressourcen stattdessen in einen Fork der bereits existierenden Mastodon-App Ice Cubes gesteckt. Aber auch die Entwicklung des Forks wurde offiziell beendet. Abgesehen davon ist Mozilla auch Hauptinvestor der Mastodon-App Mammoth für iOS.

In eigener Sache: Dieser Blog auf Mastodon

Auch dieser Blog ist auf Mastodon vertreten. Wer mir folgen möchte, findet mich unter dem Namen @s_hentzschel@mozilla.social.

Der Beitrag Aus Mozilla Social für Android wird Firefly erschien zuerst auf soeren-hentzschel.at.

17. Februar 2024

Mozilla Hubs ist eine Plattform, um virtuelle Treffpunkte zu erstellen. Mozilla hat nun bekannt gegeben, wie genau es mit Hubs in Zusammenhang mit der Einstellung als Mozilla-Produkt weitergehen wird.

Was ist Mozilla Hubs?

Mit dem Start von Mozilla Hubs im April 2018 ging eine Online-Plattform an den Start, welche es Nutzern ermöglicht, sich in sogenannten Räumen virtuell zu treffen. Das Besondere an Hubs: es spielt sich komplett im Web ab – keine geschlossene Plattform, keine Installation einer Anwendung, keine Abhängigkeit von einem bestimmten Gerät. Einfach eine URL teilen und miteinander treffen. Hubs funktioniert in jedem Browser, am Smartphone – und auch mit der VR-Brille, wo Hubs als virtuelle Plattform sein volles Potenzial entfaltet. Mozilla Hubs ist quasi eine Miniatur-Ausgabe eines Web-basierten „Metaverse“, aber Open Source und mit Fokus auf Datenschutz, vom Macher des Firefox-Browsers.

So geht es mit Mozilla Hubs weiter

Vor wenigen Tagen hat Mozilla eine Umstrukturierung angekündigt, welche auch direkte Auswirkungen auf Mozilla Hubs hat. Nun hat Mozilla Details bekannt gegeben.

Mit dem 1. März 2024 wird Mozilla die Erstellung neuer Abonnements deaktivieren. Bestehende Kunden können ihre Instanz weiterhin nutzen. Am 1. April 2024 wird Mozilla ein Tool veröffentlichen, mit welchem sowohl Demo-Nutzer als auch Abonnenten ihre Daten herunterladen können. Am 31. Mai 2024 soll schließlich die Abschaltung von Mozilla Hubs erfolgen. Dies betrifft die Instanzen der Abonnenten, den Demo-Server sowie weitere von Mozilla betriebene Community-Ressourcen.

Die Hubs Community Edition, die seit Oktober 2023 verfügbar ist, ist als Open Source-Software zum selber Hosten nicht von Mozilla als Dienstleister abhängig. So hofft das Hubs-Team, dass die Software auch außerhalb von Mozilla eine Zukunft hat. Seitens Mozilla wird es ab dem 31. Mai 2024 jedoch keine Weiterentwicklungen und Fehlerbehebungen mehr geben.

Das geplante Tool zum Herunterladen der Daten soll alle mit der E-Mail-Adresse verknüpften Medien herunterladen können, einschließlich 3D-Modelle, Audiodateien, Bilddateien und Videodateien, die über Spoke hochgeladen wurden, sowie gLTFs von veröffentlichten Spoke-Szenen und Avataren. Das Tool wird es auch ermöglichen, alle Hubs-URLs abzurufen, einschließlich Szenen-URLs, Raum-URLs, Avatar-URLs und Spoke Projekt-URLs.

Von den Assets, die das Hubs-Team im Laufe der Jahre erstellt hat, sollen so viele wie möglich vor der Abschaltung als Open Source veröffentlicht werden.

Der Beitrag Das ist der Plan mit Mozilla Hubs erschien zuerst auf soeren-hentzschel.at.

Es ist so traurig, aber Firefox kennt wirklich nur noch eine Richtung, was die Marktanteile angeht. Dabei hat sich funktional in letzter Zeit so viel zum Besseren verändert und auch so manches Fehlverhalten von Mozilla hat sich verbessert.

Vor wenigen Tagen konnte man bei dem ausgewiesenen Mozilla-Experten Sören Hentzschel lesen, dass Mozilla nach dem unerwarteten Wechsel auf dem CEO-Posten mal wieder Leute entlässt, Dienste neu priorisiert und Firefox stärken will. Dies ist nur die jüngste Kehrtwende in einem jahrelangen Niedergang und seien wir ehrlich: Hätte Google nicht aus Wettbewerbsgründen ein Interesse am Überleben von Mozilla Firefox, hätte Alphabet die Kooperation mit Mozilla bei der Standardsuchmaschine schon längst beenden und dem Feuerfuchs den Todesstoß versetzen können.

Natürlich kommen jetzt wieder die üblichen Nörgler mit irgendwelchen Geschichte von vor dem Krieg, die sich in der Community schon lange verselbständigt haben. Damals als Mozilla die Extensions getötet hat, weshalb „Millionen“ User abgewandert sind, weil man ohne drölfzig Extensions das Internet nicht nutzen kann oder damals als das Design geändert wurde. Wer kann schon ohne Menübar professionell arbeiten. Wir kennen das alles. Ich halte das für Quatsch, für den sich eine kleine Minderheit zu wichtig nimmt.

Sicherlich hat Mozilla einige fragwürdige Entscheidungen getroffen. Das Hin und Her mit Thunderbird, die Pocket-Geschichte, die zähe Entwicklung, als man noch erfolgreich war. Man könnte sicher einiges aufzählen. Aber Firefox war bereits auf dem absteigenden Ast und Mozilla stand unter Druck. In dieser Situation werden manchmal Entscheidungen getroffen, die sich im Nachhinein als falsch herausstellen. Die Geschichte ist immer offen und es ist immer leicht, sich im Nachhinein hinzustellen und alles besser gewusst zu haben.

Die Ursache für die Misere liegt aber woanders und das wird immer wieder thematisiert. Firefox ist ein Opfer der Entwicklungen im Mobilbereich. Immer weniger Menschen nutzen Desktopsysteme, immer mehr Menschen arbeiten nur noch mit Smartphones und Tablets. Es ist nicht so als ob Mozilla es nicht versucht hätte, aber alternative Systeme wie damals Firefox OS hatten keine Chance. Nichts besteht neben dem Duopol aus Android und iOS. Apple und Google haben mit ihren Systemen eine unangefochtene Dominanz und diktieren den Standardbrowser. Nur sehr wenige Menschen installieren hier überhaupt Alternativen und bei iOS war das dann bis zuletzt sogar nur die Oberfläche, weil die Apple-Engine festgelegt war.. Die Regulierungsbehörden haben das Thema viel zu lange missachtet und das was jetzt aus Brüssel kommt ist vermutlich zu wenig und zu spät.

Schaut man sich die Zahlen an, dann ist das aber noch ernüchternder als ich vermutete. Für Deutschland kommt Statista noch auf wenigstens 18% und der Sinkflug hat sich zuletzt auch verlangsamt. Weltweit sind es deutlich unter 10%. Selbst Apples Safari liegt hier deutlich vor dem traditionsreichen Open-Source-Browser. Jetzt kann man sagen, dass Statista halt auch nur eine Quelle ist und irgendwelche „gefühlten“ Zahlen angeben. Ich führe aus datenschutzgründen nur eine sehr rudimentäre Statistik, die ziemlich fehleranfällig ist, weil sie auf Fingerprinting und Cookies verzichtet, aber selbst die Logs hier ergeben nur noch circa 25% für Firefox und über 40% für Chrome.

Das hat mich doch überrascht, weil Firefox bei Linux immer noch der Standardbrowser unter allen Distributionen ist und oft auch der einzig richtig gut mit Sicherheitsupdates versorgte Weg ins Internet. Zudem lässt sich Firefox immer noch deutlich besser für eine privatsphäre- und datenschutzorientierte Nutzungsweise konfigurieren als die meisten Chromium-Varianten (Brave, Vivalid, Ungoogled Chromium etc.). Bei der Zielgruppe dieser Seite hätte ich daher mehr Firefox-Nutzer vermutet. Zuletzt hat man hier im Bereich Trackingschutz einiges richtig gemacht und die neu eingeführte automatische Cookiebannersteuerung ist auch vielversprechend.

Eine Umkehr werden wir nicht mehr erleben. Für die Zukunft ist das bedenklich, weil Google seine Torwächterfunktion immer hemmungsloser ausnutzen kann. Zuletzt kommentierte ich dies anlässlicher der Blockade von Drittanbieter-Cookies. Ob Abspaltungen von Chromium wirklich eigenständig lebensfähig sind und sich fragwürdigen Entscheidungen von Google konsequent widersetzen können, wird sich noch zeigen. Wir werden es vermutlich zeitnah bei den Werbeblockern sehen.

16. Februar 2024

Mozilla hat Version 2.20 seiner VPN-Clients für das Mozilla VPN veröffentlicht. Dieser Artikel beschreibt die Neuerungen vom Mozilla VPN 2.20.

Mit dem Mozilla VPN bietet Mozilla in Zusammenarbeit mit Mullvad sein eigenes Virtual Private Network an und verspricht neben einer sehr einfachen Bedienung eine durch das moderne und schlanke WireGuard-Protokoll schnelle Performance, Sicherheit sowie Privatsphäre: Weder werden Nutzungsdaten geloggt noch mit einer externen Analysefirma zusammengearbeitet, um Nutzungsprofile zu erstellen.

Jetzt Mozilla VPN nutzen

Die Neuerungen vom Mozilla VPN 2.20

Mit dem Update auf das Mozilla VPN 2.20 ist es bei Nutzung eines Monats-Abos nun innerhalb der App möglich, ein Upgrade auf ein Jahres-Abo vorzunehmen. Ansonsten bringt das Update vor allem Fehlerbehebungen sowie Verbesserungen unter der Haube.

Der Beitrag Mozilla VPN 2.20 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

15. Februar 2024

Seit drei Jahren arbeitet das unabhängige Entwicklerteam hinter Asahi Linux daran, Linux auf Apple Silicon Macs lauffähig zu machen.

Anfänglich war Asahi Linux ein "instabiles Experiment", mittlerweile ist es aber ein überraschend funktionales und benutzbares Desktop-Betriebssystem geworden. Sogar Linus Torvalds, der Schöpfer von Linux, hat es benutzt, um Linux auf Apples Hardware laufen zu lassen. Apple selbst beteiligt sich nicht an diesem Projekt.

Seit Dezember 2022 hat das Team seinen Open-Source-GPU-Treiber für die M1- und M2-Chips stetig verbessert. Nun hat es einen wichtigen Meilenstein erreicht: Die OpenGL- und OpenGL ES-Unterstützung des Asahi-Treibers ist wieder einmal besser als die von Apple in macOS. Der neueste Asahi-Treiber unterstützt OpenGL 4.6 und OpenGL ES 3.2, die neuesten Versionen dieser APIs. Apples macOS hingegen unterstützt nur OpenGL 4.1, das schon seit 2010 aktuell ist.

Die Entwicklerin Alyssa Rosenzweig erklärt in einem Blogbeitrag, warum die Implementierung der neueren APIs auf Apples GPUs so schwierig war. Trotz der Herausforderungen hat das Asahi-Team es geschafft, einen performanten und konformen Treiber zu entwickeln. Als Nächstes will das Team Vulkan unterstützen, eine moderne Grafik-API mit geringem Overhead. Vulkan ist in macOS nur mit Übersetzungsschichten wie MoltenVK verfügbar, die die Leistung beeinträchtigen können.

Asahi Linux ist noch nicht perfekt. Es gibt einige Funktionen, die noch nicht funktionieren, z. B. Thunderbolt und Touch ID. Trotzdem ist es eine beeindruckende Leistung, dass ein kleines Team von Entwicklern so viel erreicht hat.

Asahi Linux macht Apple Silicon Macs zu einer attraktiven Option für Linux-Benutzer. Die überlegene OpenGL-Unterstützung und die bevorstehende Vulkan-Unterstützung sind wichtige Fortschritte, die Linux auf dieser Plattform noch attraktiver machen.

Quellen:

Asahi Linux Projekt: https://asahilinux.org

Blogbeitrag von Alyssa Rosenzweig: https://rosenzweig.io/blog/conformant-gl46-on-the-m1.html


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

13. Februar 2024

Mozilla steht vor einer Umstrukturierung. Wenige Tage nach der Ernennung einer neuen CEO streicht Mozilla 60 Stellen und kürzt Investitionen in manchen Bereichen, um dafür stärker in andere Bereiche zu investieren. Mozilla Hubs wird eingestellt.

Vor wenigen Tagen hat Mozilla die Ernennung von Laura Chambers als neue CEO der Mozilla Corporation angekündigt. Heute hat Mozilla die Mitarbeiter über eine Umstrukturierung informiert. Demnach werden 60 Stellen gestrichen, was in etwa fünf Prozent der Gesamtbelegschaft entsprechen soll.

So möchte Mozilla in manchen Produktbereichen weniger investieren, um sich stärker auf andere Bereiche zu konzentrieren. Am stärksten davon betroffen ist Mozilla Hubs, was im Laufe des Jahres eingestellt werden soll. Aber auch die Investitionen in die eigene Mastodon-Instanz mozilla.social, das Mozilla VPN, Firefox Relay und den letzte Woche in den USA erst gestarteten Dienst zur Entfernung persönlicher Informationen von Personen-Suchmaschinen sollen laut TechCrunch reduziert werden.

Firefox Mobile wird in einem Statement von Mozilla (via Bloomberg) explizit als Produkt genannt, welches dafür mehr Ressourcen erhalten soll. Auch das Thema Künstliche Intelligenz und KI-Integration in Firefox wird einen noch stärkeren Fokus als bisher einnehmen. Zu diesem Zweck werden die Teams, die an Pocket, Content sowie Künstliche Intelligenz / Maschinellem Lernen arbeiten, mit der Firefox-Organisation zusammengeführt.

Wie sich das Ganze konkret auswirken wird, bleibt abzuwarten. Während sich einige Firefox-Fans darüber freuen werden, dass der Browser als Hauptprodukt einmal mehr einen stärkeren Fokus erhalten soll, klingt dies gleichzeitig nach einem signifikanten Strategiewechsel, der eine Diversifizierung der Einnahmequellen nicht länger priorisiert.

Das vollständige interne Memo (via TechChrunch), übersetzte Fassung:

Zurückfahren der Investitionen in mozilla.social: Mit mozilla.social gingen wir 2023 eine große Wette ein, um eine sicherere, bessere Social-Media-Erfahrung zu schaffen, die auf Mastodon und dem Fediverse basiert. Unser anfänglicher Ansatz basierte auf der Überzeugung, dass Mozilla schnell ein großes Ausmaß erreichen muss, um die Zukunft der sozialen Medien effektiv gestalten zu können. Das war eine edle Idee, aber wir hatten Schwierigkeiten, sie umzusetzen. Wir haben mozilla.social zwar stark mit Ressourcen ausgestattet, um diese ehrgeizige Idee zu verfolgen, aber im Nachhinein betrachtet hätte uns ein bescheidenerer Ansatz ermöglicht, mit wesentlich größerer Agilität an diesem Bereich teilzunehmen. Die Maßnahmen, die wir heute ergreifen, werden diese strategische Korrektur vornehmen, indem wir mit einem viel kleineren Team arbeiten, um am Mastodon-Ökosystem teilzunehmen und kleinere Experimente schneller zu den Menschen zu bringen, die sich für die mozilla.social-Instanz entscheiden.

Schutz, Experimentieren und Identität (PXI): Wir reduzieren die Investitionen in einige unserer eigenständigen Verbraucherprodukte im Bereich Sicherheit und Datenschutz. Wir reduzieren unsere Investitionen in Marktsegmenten, die von Wettbewerbern verdrängt werden und in denen es schwierig ist, ein differenziertes Angebot zu liefern. Konkret planen wir, unsere Investitionen in VPN, Relay und Online Footprint Scrubber zu reduzieren. Wir werden weiterhin in Produkte investieren, die den Kundenbedürfnissen in wachsenden Marktsegmenten entsprechen.

Hubs: Seit Anfang 2023 haben wir eine Verschiebung des Marktes für virtuelle 3D-Welten erlebt. Mit Ausnahme von Spielen, Bildung und einer Handvoll Nischenanwendungen hat sich die Nachfrage von virtuellen 3D-Welten entfernt. Dies wirkt sich auf alle Akteure der Branche aus. Die Benutzer- und Kundenbasis von Hubs ist nicht robust genug, um den weiteren Einsatz von Ressourcen gegen den Gegenwind der ungünstigen Nachfrageverschiebung zu rechtfertigen. Wir werden den Dienst abwickeln und den Kunden einen Plan für einen geordneten Ausstieg mitteilen.

Verkleinerung des Mitarbeiterteams: In Anbetracht des Personalabbaus und des geringeren Budgets für die Mitarbeiterzahl bei MozProd wurden einige Funktionen in der Personalabteilung und anderen Support-Organisationen konsolidiert, damit wir unserem Produktportfolio das richtige Maß an Unterstützung bieten können. Optimierung unserer Organisation, um den Fokus zu schärfen.

Im Jahr 2023 begann die generative KI, die Industrielandschaft schnell zu verändern. Mozilla ergriff die Gelegenheit, vertrauenswürdige KI in Firefox einzubringen, vor allem durch die Übernahme von Fakespot und die darauf folgende Produktintegration. Darüber hinaus ist die Suche nach großartigen Inhalten immer noch ein wichtiger Anwendungsfall für das Internet. Daher werden wir als Teil der heutigen Änderungen Pocket, Content und die KI/ML-Teams, die Inhalte unterstützen, mit der Firefox-Organisation zusammenführen. Weitere Details zu den spezifischen organisatorischen Änderungen werden in Kürze folgen. Innerhalb von MozProd gibt es keine Änderungen bei MDN, Ads oder Fakespot. Auch in den Bereichen Legal/Policy, Finance & Business Operations, Marketing und Strategy & Operations gibt es keine Änderungen.

Der Beitrag Mozilla strukturiert um, Hubs wird eingestellt erschien zuerst auf soeren-hentzschel.at.

Diese Änderung wird es der UBports Foundation ermöglichen, Fehler- und Sicherheitskorrekturen schneller als bisher bereitzustellen, um ein stabileres und zuverlässigeres Ubuntu Touch-Erlebnis zu gewährleisten.

Die UBports Foundation hat gestern angekündigt, dass sie für zukünftige OTA (Over-the-Air)-Updates für ihr mobiles Betriebssystem Ubuntu Touch zu einem Fixed-Release-Modell wechseln wird.

Vor fast einem Jahr hat die UBports Foundation das erste Ubuntu Touch OTA-Update auf Basis von Ubuntu 20.04 LTS veröffentlicht, nachdem sie jahrelang an der Migration von der Ubuntu 16.04 (Xenial Xerus) Serie gearbeitet hatte. Dieser Schritt brachte viele Vorteile für die Nutzer von Ubuntu Touch mit sich, führte aber auch einige Probleme mit sich, wie z.B. die Tatsache, dass sie keine individuellen Fehlerbehebungen oder Sicherheitslücken veröffentlichen können, ohne alle anderen Änderungen, die in der Codebasis gelandet sind, zu veröffentlichen oder die Tatsache, dass sie die Entwicklung einfrieren müssen, wenn ein neues OTA-Update erscheint.

Um diese Probleme, die durch die Umstellung von Ubuntu 16.04 auf Ubuntu 20.04, auf dem die aktuellen Ubuntu Touch-Builds basieren, zu beheben, hat die UBports Foundation einen Plan entwickelt, um zu einem Fixed-Release-Modell zu wechseln, wenn sie Ubuntu Touch auf die kommende Ubuntu 24.04 LTS (Noble Numbat) Version umstellen.

"Mit dem bevorstehenden Upgrade des Basis-Betriebssystems Ubuntu 24.04 nehmen wir die Gelegenheit wahr, unser Release-Modell zu ändern: Wir planen, auf das Fixed-Release-Modell umzustellen", so die UBports Foundation.

Diese Änderung hat keinerlei Auswirkungen auf Ubuntu Touch Nutzer. Der Wechsel zu einem Fixed-Release-Modell ermöglicht es der UBports Foundation, Fehler- und Sicherheitskorrekturen schneller als bisher bereitzustellen, um die Stabilität und Zuverlässigkeit von Ubuntu Touch zu erhöhen.

Das neue Ubuntu Touch Versionsmodell wird das Format <Jahr>.<Monat>.<Minor> verwenden, wobei die <Jahr> und <Monat> Versionsstrings mit dem erwarteten Jahr und Monat der jeweiligen Version nummeriert und der <Minor> Versionsstring bei 0 beginnt (z.B. 24.6.0), wobei Minor Releases um 1 erhöht werden.

Die UBports Foundation sagte auch, dass sie plant, alle sechs Monate ein grosses Funktionsupdate für Ubuntu Touch zu veröffentlichen und alle zwei Monate eine kleinere Version. Sie sagten auch, dass jede grössere Funktionsaktualisierung etwa einen Monat lang unterstützt wird, nachdem die nächste grössere Funktionsaktualisierung veröffentlicht wurde.

Quelle: https://ubports.com/en/blog/ubports-news-1/post/announcement-of-release-model-changes-3920


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

12. Februar 2024

Stellt euch vor, ihr habt eine Menge von Servern, welche ausschließlich über IPv6-Adressen verfügen und deshalb keine Dienste nutzen können, welche nur über IPv4 bereitgestellt werden. Wer sich dies nicht vorstellen mag, findet in „IPv6… Kein Anschluss unter dieser Nummer“ ein paar Beispiele dafür.

Was kann man nun tun, damit diese IPv6-only-Hosts dennoch mit der IPv4-only-Welt kommunizieren können?

Eine mögliche Lösung ist die Nutzung eines Dualstack-Proxy-Servers. Das ist ein Server, welcher über Adressen beider Internet-Protokoll-Versionen verfügt und so stellvertretend für einen IPv6-Host mit einem IPv4-Host kommunizieren kann. Das folgende Bild veranschaulicht den Kommunikationsablauf:

Ablauf der Netzwerkkommunikation eines IPv6-Hosts mit einem IPv4-Host über einen Dualstack-Proxy-Server

Im Bild ist zu sehen:

  1. Wie IPv6-Host A eine Verbindung über IPv6 zum Proxy-Server B aufbaut und diesem bspw. die gewünschte URL mitteilt
  2. Der Proxy-Server B baut nun seinerseits eine IPv4-Verbindung zu IPv4-Host C auf, welcher die gewünschten Inhalte bereitstellt
  3. IPv4-Host C sendet seine Antwort über IPv4 an den Proxy-Server
  4. Der Proxy-Server sendet die gewünschten Inhalte anschließend via IPv6 an den IPv6-Host A zurück
Screencast zur Demonstration der Proxy-Nutzung

Das obige Video demonstriert die Nutzung eines Proxy-Servers durch den Abruf einer Demo-Seite mit curl:

  1. Mit dem host-Kommando wird gezeigt, dass für die Demo-Seite kein AAAA-Record existiert; die Seite ist also nicht via IPv6 erreichbar
  2. Mit dem ip-Kommando wird geprüft, dass der Host auf dem Interface ens18 ausschließlich über IPv6-Adressen verfügt
  3. Ohne Proxy ist die Demo-Seite nicht abrufbar
  4. Erst durch Nutzung des Proxys kann die Seite abgerufen werden

Funktioniert das auch von IPv4 nach IPv6?

Ja. Entscheidend ist, dass der verwendete Proxy beide IP-Versionen unterstützt.

Welcher Proxy ist empfehlenswert?

Der Proxy-Server muss beide IP-Versionen beherrschen. Ich persönlich bevorzuge Squid. Dieser ist in so gut wie allen Linux-Distributionen verfügbar, weit verbreitet, robust und selbstverständlich Freie Software.

Sind damit alle Herausforderungen bewältigt?

Für eine Virtualisierungs-Umgebung mit einer IPv4-Adresse und einem /64-IPv6-Netzsegment funktioniert diese Lösung gut. Sie funktioniert auch in jeder anderen Umgebung, wie gezeigt. Man beachte jedoch, dass man mit nur einem Proxy einen Single-Point-of-Failure hat. Um diesem zu begegnen, kann man Squid mit keepalived hochverfügbar gestalten.

Keepalived ist ebenfalls Freie Software. Sie kostet kein Geld, erhöht jedoch die Komplexität der Umgebung. Verfügbarkeit vs. Komplexität möge jeder Sysadmin selbst gegeneinander abwägen.

Wie mache ich meine IPv6-Dienste für IPv4-User erreichbar, die keinen Proxy haben?

Das Stichwort lautet Reverse-Proxy. Ein Artikel dazu erscheint in Kürze in diesem Blog. ;-)

Weiterführende Quellen und Links

11. Februar 2024

Firefox bekommt eine neue Funktion, um bei Herüberfahren mit der Maus über einen Tab eine Vorschau der jeweiligen Website anzuzeigen.

Bislang zeigt Firefox bei Herüberfahren mit der Maus über einen Tab einen ganz einfachen Tooltip mit dem Titel der Website als Inhalt an. Diesen hat Mozilla für die Tabs nicht nur optisch überarbeitet, sondern zeigt jetzt zusätzlich die URL sowie einen Screenshot der geöffneten Website an.

Tabvorschau Firefox

Die Funktion kann ab Firefox 123 über about:config aktiviert werden, indem der Schalter browser.tabs.cardPreview.enabled per Doppelklick auf true gesetzt wird. Allerdings ist zu beachten, dass die Arbeiten an der Funktion noch nicht komplett abgeschlossen sind und daher für die finale Version von Firefox 123 auch noch keine standardmäßige Aktivierung geplant ist.

Wird zusätzlich der Schalter browser.tabs.cardPreview.showThumbnails auf false gesetzt, können die neuen Tooltips ohne Vorschaubilder genutzt werden. Der Schalter browser.tabs.cardPreview.delayMs kontrolliert die Verzögerung, wann der Tooltip gezeigt werden soll. Standardmäßig steht diese Option auf 1000 (Millisekunden), sodass der Tooltip erst erscheint, nachdem man wenigstens eine Sekunde mit der Maus auf dem Tab war.

Der Beitrag Firefox bekommt Tabvorschau erschien zuerst auf soeren-hentzschel.at.

… und warum und wie ich es trotzdem tat.

Vor wenigen Wochen habe ich mein zweites Fachbuch fertiggestellt. In diesem Blogpost gehe ich ein wenig tiefer ein, was meine Motivation war, wie sich der Fortschritt gestaltet hat und welche Hilfsmittel (nicht) geholfen haben.

Bücher schreiben klingt für viele total toll. Die Realität fühlte sich häufig allerdings das Meme oben an …

Rückblick

Vor langer Zeit fing ich hier auf meinem Blog eine vierteilige Tutorial-Reihe zu Git an. Der erste Blogpost erschien im Oktober 2014. Das ist jetzt auch schon fast zehn Jahre her. Meine damalige Intention war recht einfach: Ich hatte Lust etwas über das Thema zu schreiben, denn ich bekam sowohl bei der Arbeit, als auch bei der Mitarbeit in Open-Source-Projekten ständig Fragen, wie dieses Git denn nun funktioniert. Da ich keine Lust hatte, es immer wieder zu erklären, schrieb ich es eben einmal ordentlich runter und verlinkte diese Blog-Posts und beantwortete erst später konkretere Fragen.

Durch eine Verkettung von Umständen kam es dann dazu, dass ich die Möglichkeit hatte, ein Buch über Git zu schreiben. Diese vier Artikel dienten als Basis für das Buch, wo ich natürlich dann sehr sehr viel erweitert habe. Zwei Jahre später im August 2016, erschien dann die erste Auflage meines Git-Buches beim mitp-Verlag. Im Mai 2019 folgte die zweite Auflage, im März 2021 die dritte und im März 2022 folgte der Git Schnelleinstieg als abgespeckte Variante. Über die vergangenen 7,5 Jahre verkauften sich knapp über 4000 Exemplare.

Die Vor- und Nachteile des Autorendaseins

Ein Buch geschrieben zu haben, hat sowohl diverse Vor- als auch Nachteile. Jedes Mal, wenn mir jemand Anfängerfragen zu Git gestellt hat, folgte von mir ein stark ironisches „Also … ich kann dir da ein Buch empfehlen“. Das war immer wieder zur Aufheiterung lustig. Was ich meistens nicht so geil fand, waren Random Gespräche bei Feiern jeglicher Art. Da wurde man plötzlich von Freunden, Bekannten und Verwandten anderen Personen als Autor vorgestellt … was dazu geführt hat, dass ich ständig wildfremden Leuten, die nicht in der IT sind, erklären musste, was denn diese Versionsverwaltung mit Git ist. Meistens sah ich nach zwei oder drei Sätzen schon, wie sie bei meinem Versuch es zu erklären, ausgestiegen sind, aber natürlich empfanden sie es als super und toll! Spaß macht das nicht. Außerdem ist scheinbar „Buch schreiben“ ein Bucketlist-Item für viele Leute. Ich weiß bis heute nicht, warum, aber ich muss auch nicht alles verstehen.

Wer übrigens etwas näher hören will, wie so ein Buch entsteht, darüber habe ich in der zweiten Folge unseres Podcasts TILpod von und mit Dirk Deimeke gesprochen.

Ursprüngliche Motivation & Umsetzung

Zurück zur Motivation und der Umsetzung: Nachdem ich die ursprünglichen Blogposts ohne tieferen Hintergedanken geschrieben habe, war das bei einem Buch natürlich etwas anderes. Die Qualitätsansprüche sind hier natürlich deutlich höher, denn hier bezahlen die Kunden mit Geld. Von diesem Geld blieb allerdings nicht sehr viel in meinem Geldbeutel hängen. Dass man als Autor nicht reich wird, war mir bewusst.

Eine gewisse Reputation und ein „einfacherer“ Einstieg in idealerweise gut bezahlten Job mit guten Arbeitsbedingungen war mein Hauptmotivationstreiber. 2015, als ich mit der Arbeit am Buch begann, war ich gerade erst mit dem Bachelor fertig. Die darauffolgenden Jobwechsel waren beim Hinblick auf Gehalt, Arbeitsbedingungen und Interessantheit der Tätigkeiten alle nicht so das wahre (in verschiedenen Konstellationen).

Long story short: Im April 2020 fing ich meinen Job als Solutions Architect bei GitLab an. Zu den ausgeschriebenen Jobs bei GitLab hatte ich ohnehin schon seit einigen Jahren einen Blick geworfen und dann hat es auch auf Anhieb geklappt. Ein deutlicher Gehaltssprung war dabei, deutlich bessere Arbeitsbedingungen und auch die Tätigkeit im Pre-Sales, was ich so vorher auch nie gemacht habe, hat super gepasst. Mein Plan ging also einige Jahre später auf: Durch das Git-Buch habe ich mich deutlich tiefer in Git und dem gesamten Software-Delivery-Lifecycle eingearbeitet, sodass ich mich für den Job qualifizieren konnte.

Soweit so gut. Ein Grund für ein komplett neues Buch brauchte ich eigentlich nicht … oder? Oder?

Motivation für das zweite Buch

Tja, ich wäre nicht ich, wenn ich immer wieder ein größeres Projekt angehen würde.

Fachliche Motivation

Zunächst zur fachlichen Motivation: In tagtäglichen Gesprächen mit diversen (potenziellen) Kunden von GitLab merkte ich primär eins: Viele fokussieren sich viel zu stark auf die eingesetzten Tools – etwa GitLab –, ohne jedoch zu schauen, ob und wie „kaputt“ die Arbeitskultur ist.

GitLab selbst positioniert sich als ganzheitliche DevOps-Plattform, womit man einfacher und schneller Projekte mit DevOps-Prinzipien umsetzen kann, in dem besser in einem, statt in vielen, Tools kollaboriert wird. Das ist gut, richtig und wichtig.

Wichtige Voraussetzung ist allerdings, dass man erst die Arbeitskultur anpasst und dann die Prozesse anpasst, gefolgt vom Tooling. Im DevOps-Kontext spricht man nicht umsonst von „People over Processes over Tools“. Die besten Tools helfen nicht, wenn die Prozesse beschissen sind. Die Prozesse helfen nicht, wenn die Kolleginnen und Kollegen mit den verschiedenen Rollen (Development, Operations, Security, QA, …) gegeneinander statt miteinander arbeiten.

Mit diesem Buch möchte ich aufklären, wie es „richtig“ geht. Das beste, tollste, schnellste und effizienteste Auto bringt schließlich auch nicht, wenn man keine Straßen hat … und einen Führerschein auch nicht.

Fachlich war die Motivation also klar: Wenn es um DevOps geht, gibt es großen Nachholbedarf, das sehe ich schließlich bei den ganzen Gesprächen. Ein „echtes“ deutsches Buch zu DevOps gab es auch nicht, sondern nur zwei Übersetzungen aus dem Englischen. Und so reifte die Idee für das zweite Buch.

Nicht fachliche Motivation

Auf der nicht fachlichen Ebene sah es noch ein wenig anders aus. Hier kommen gleich mehrere Faktoren ins Spiel. Zunächst einmal war das Git-Buch recht technisch. Obwohl ich die Arbeit an dem Buch schon ziemlich herausfordernd fand, gab es hier meist nur eine technische Lösung, was das Schreiben deutlich vereinfacht hat. Bei DevOps ist das Ganze anders. Hier geht es viel um „weiche“ Themen, wie Menschen miteinander arbeiten. Das ist um ein Vielfaches herausfordernder. Das hat mich auch angespornt.

Weiterhin wollte ich dieses Mal bei einem größeren Verlag veröffentlichen. Die Zusammenarbeit mit dem mitp-Verlag war zwar gut und ich soweit zufrieden, aber im Marketing und bei Verkaufszahlen merkt man dann schon einige Unterschiede. Der Einstieg beim größten deutschen IT-Verlag, dem Rheinwerk-Verlag, hat mit diesem Buch dann auch funktioniert.

Die damalige Motivation für einen „besseren“ Job hatte ich beim DevOps-Buch hingegen nicht. Finanzielles spielte demnach weder primär noch sekundär eine Rolle. Ich bin trotzdem gespannt, welche neue Türe sich hierdurch gegebenenfalls öffnen.

Meine grundlegende Motivation liest sich bis hierhin eigentlich gut, aber die Motivation muss schließlich nicht nur beim Start vorhanden sein, sondern auch während man das Buch schreibt …

Der Fortschritt …

Die Motivation kontinuierlich und mit (höchster) Disziplin am Buch zu arbeiten, klang zu Beginn viel einfacher als es am Ende dann war. Um es kurz zu sagen: Es war ein Kampf. Und das war überhaupt nicht geil.

Der Unterschied zu damals™

Im Vergleich zum Git-Buch hatte ich ein Aspekt komplett vernachlässigt. Mein Job damals war deutlich weniger anstrengend. Damals war ich rein in der Technik und ohne Reisetätigkeiten. Das lässt sich viel einfacher steuern, als mein jetziger Job. Bei GitLab hatte und habe ich jeden Tag etliche Videocalls mit Kunden. Bei diesen Calls muss ich stets fokussiert und effizient sein, was für den Kopf deutlich anstrengender ist. Zudem machte mir der Job auch noch deutlich mehr Spaß, ich hatte auch noch (ab Mai 2022) etliche Dienstreisen, die einen regelten Tagesablauf nicht ermöglicht haben. Am Ende des Arbeitstages und auch am Wochenende war so nicht mehr so viel Gehirnkapazität übrig, um stetigen Fortschritt zu gewährleisten.

Das „weiche“ Thema führte auch dazu, dass ich immer wieder überlegen musste, wie ich diverse Themen angehen sollte, damit man daraus auch etwas Sinnvolles herausziehen kann. Das führte immer wieder zu Verzögerungen, da ich dann noch die Gedanken schweifen lassen oder mit der ein oder der anderen Person aus dem Arbeitsumfeld besprechen musste, um mir neue Eindrücke abzuholen. Gleichzeitig hing die Frist immer im Nacken …

Produktivitätstechniken

Während des Schreibens probierte ich auch immer wieder ein paar Produktivitätstechniken aus. Je nach Phase des Buches war das auch relativ gut und hilfreich.

Zu Beginn, nachdem die Grobstruktur gestanden hatte, fokussierte ich mich zunächst um Stichpunkte. Ich tippte also, was mir in den Kopf kam zu den einzelnen Themen in Stichpunkten herunter, und kümmerte mich kaum um die Grammatik. Das war wichtig, um überhaupt mal die Gedanken strukturieren zu können. Dabei fielen mir noch etliche Themen ein, die ich vorher gar nicht betrachtet hatte … die dann zu neuen Kapiteln führten.

Ich setzte hierfür auf die Pomodoro-Technik: Ich versuchte jeden Tag mindestens 25min, ohne Ablenkungen, Stichpunkte herunterzuschreiben, gefolgt von einer 5min Pause. Danach habe ich weiter gemacht … oder häufig auch nicht. Das war auch völlig in Ordnung.

Das Ganze funktionierte so lange, bis es nicht mehr funktionierte. Irgendwann hatte ich dann alles notiert und es ging mehr Zeit drauf, zu überlegen, was man noch vergessen hat. Gerade für diese Phase benötigte ich viel Ruhe und Zeit, die durch Real-Life und Vollzeitjob nicht sonderlich gegeben war.

Es gab also immer wieder Phasen – teilweise einige Monate – wo ich wenig bis gar nicht am Buch gearbeitet habe. Dabei war das offene Großprojekt, das Wissen, noch etwas erledigen zu müssen, die Frist und was sonst noch dazu gehört, stets im Hinterkopf. Schön war das zugegeben nicht wirklich.

Später, beim Ausformulieren der Stichpunkte, habe ich mir hingegen ein Output-Ziel gesetzt. An Arbeitstagen wollte ich für zwei zusätzliche Seiten sorgen, an arbeitsfreien Tagen hingegen fünf. Da dann primär viel ausformuliert werden musste, klappte das für eine Weile auch einigermaßen gut.

Öffentlicher Statusbericht

Gleichzeitig habe ich meinen eigenen Podcast TILpod, den ich mit Dirk Deimeke betreibe, vorangetrieben. Dort erzählte ich in jeder Folge, wie der Fortschritt am Buch ist. Treue Hörer und Hörerinnen haben also stets mitbekommen, wie ich vorankomme … oder auch nicht.

Das öffentliche Dokumentieren des Fortschritts hat hingegen nicht zu mehr Druck geführt, zumindest nicht bewusst. Einige lustige Gegebenheiten haben sich hingegen schon dadurch ergeben. Vergangenes Jahr war ich dienstlich bei der KubeCon in Amsterdam, wo ich Standdienst bei GitLab gemacht habe. Es kamen erstaunlich viele mir unbekannte Personen auf mich zu und fragten, ob mein Buch denn nun fertig ist. Auch eine spannende Form, auf Hörer vom Podcast zu treffen.

Ursprünglich war mein Plan, bis Ende 2022 fertig zu werden. Dass das nicht zu halten war, war mir schon zu Beginn klar. Unterschrieben habe ich den Autorenvertrag übrigens im Januar 2022. Erst im Sommer 2023, nachdem ich mehrfach die Fertigstellung nach hinten schieben musste, war der erste Entwurf fertig. Und dann ging erst die Arbeit mit diversen Korrekturläufen, dann zusammen mit meinem Lektor, los.

Mein Ziel es dann noch im Jahr 2023 fertigzustellen hat dann nicht auch nicht mehr geklappt. Nachdem ich selbst für so viel Verspätung gesorgt hatte, lag es dann auch noch eine Weile bei meinem Lektor auf Halde: Mein Buch ist schließlich nicht das Einzige, meins musste entsprechend warten.

Der Spätsommer und Herbst war dann ebenfalls ziemlich frustrierend. Jeden Monat verschob sich die Fertigstellung um einen Monat. Jedes Mal, wenn ich dachte, dass ich jetzt wirklich mal fertig wurde, mussten wir es abermals um einen Monat verschieben. Insgesamt lagen zwischen der Unterzeichnung des Autorenvertrags und der Fertigstellung ziemlich genau zwei Jahre.

(Keine) Hilfsmittel

Ganz unabhängig von der Motivation und der Produktivität finde ich es auch noch spannend auf mögliche Hilfsmittel zu werfen. Insbesondere ChatGPT, LanguageTool und Obsidian.

ChatGPT

Während des Schreibens des Buches ploppte dann auch noch ChatGPT auf und der AI-Hype ging so richtig los. An vielen Stellen las ich dann, dass man ja jetzt „ganz einfach“ Texte schreiben lassen kann und bald nur noch AI-generierte Bücher gibt.

Ich dachte dann: Ja gut, ich habe hier ja ein Beispiel, schauen wir mal, ob ChatGPT hier überhaupt realistisch helfen kann. Tja, nun … tat es nicht wirklich.

Ich hatte natürlich nicht vor, mein Buch per ChatGPT schreiben zu lassen. Das funktioniert ohnehin nicht. Die Frage, die ich mir stattdessen stellte, ging mehr in die Richtung: Wie kann mir ggf. ChatGPT helfen?

Typische Prompts à la „Schreib mir etwas zu $THEMA im Rahmen von DevOps“ produzierten (natürlich) sehr, sehr oberflächliche Texte, die sich zu 95 % ohnehin immer nur wiederholten. Praktisch war hingegen, ChatGPT zu nutzen, um zu prüfen, ob man etwas vergessen hatte. So ergänzte ich zur „normalen“ Recherche auch ChatGPT, wobei der tatsächliche Nutzen eher gering war, schließlich stand der Großteil und ChatGPT kann man ja bekanntlich auch nicht alles glauben. Häufig kam da auch nur Mist raus.

LanguageTool

ChatGPT war also nur wenig hilfreich, anders sah es bei LanguageTool aus, was für sprachliche Korrekturen sehr hilfreich war. Dafür setzte ich auf die Premium-Variante für knapp 60 € pro Jahr.

LanguageTool gab mir einige Hinweise für die korrekte Nutzung der deutschen Sprache. Viel zu lange Sätze, Wortwiederholungen, Kommasetzung und noch etliche weitere Hinweise wurden mir dann regelmäßig angezeigt, sodass ich da noch einmal drauf geschaut habe.

Praktisch war zudem das Feature „Sentence rephrasing by A.I.“. Hier konnte man einzelne Sätze aus einigen Paragrafen neu formulieren lassen. Das half mir insbesondere dann, wenn ich an einigen komplexen Sätzen viel zu lange hing, weil diese kaum verständlich waren.

Obsidian

DIe meiste Zeit beim Schreiben verbrachte ich im Tool Obsidian. Das ist eigentlich mehr als persönliches Knowledge-Base gedacht. Für mich half es hingegen das Buch primär in Markdown herunter zu schreiben, da es mich nicht zu sehr abgelenkt hat. Viele der Features von Obsidian habe ich allerdings nicht verwendet. Einige fehlerhafte Verlinkungen fielen mir dann nur regelmäßig auf. LanguageTool ließ sich zudem als Plug-in einbinden und nutzen.

Zum Ende hin musste ich allerdings sowieso auf Microsoft Word switchen, weil das der Workflow vom Verlag so vorgibt. Bis dahin konnte man es wenigstens gut in Git-Repositorys tracken, sodass ich Anpassungen von Reviewern und Lektor einfach nachvollziehen konnte.

Fazit

Warum sollte man also eher kein Fachbuch schreiben?

Es ist verdammt anstrengend, es geht richtig viel Zeit drauf und ist häufig auch echt frustrierend. Reich wird man nicht. Ob es sich für mich gelohnt hat, wird sich zeigen. In den letzten zwei Jahren verbrachte ich also sehr viel Zeit mit meinem Vollzeitjob und dem Schreiben des Buches. Viel Zeit drum herum, blieb da nicht. Gesund war das ganze auch nicht sonderlich.

Das fertige Buch

Wer bis hierhin gelesen hat, wird gemerkt haben, dass das Thema des Buches eine untergeordnete Rolle gespielt hat, dazu folgt noch ein weiterer Artikel. Das DevOps-Buch gibt es überall da, wo es Bücher gibt – insbesondere direkt beim Verlag. Es erscheint am 5. März 2024. Ich warte zurzeit noch auf meine Belegexemplare und kann es kaum erwarten.