staging.inyokaproject.org

Neueste Artikel

2. Oktober 2024

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

Neuerungen von Thunderbird 128.3

Mit dem Update auf Thunderbird 128.3 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 128.3 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

30. September 2024

Die MZLA Technologies Corporation hat die erste Beta-Version von Thunderbird für Android veröffentlicht. Die App steht im Google Play Store sowie auf GitHub zum Download bereit.

Im Sommer 2022 wurde die Übernahme des E-Mail-Clients K-9 für Android durch die MZLA Technologies Corporation, Entwicklerin von Thunderbird, bekannt gegeben. Nun steht eine erste Beta-Version von Thunderbird für Android zum Download bereit, wahlweise über den Google Play Store oder via GitHub. Später soll auch noch F-Droid als zusätzliche Option dazukommen.

Die Veröffentlichung der ersten finalen Version von Thunderbird für Android ist derzeit für die vierte Oktoberwoche geplant. Dann wird es auch eine ausführlichere Vorstellung auf diesem Blog geben.

Der Beitrag Thunderbird Beta für Android veröffentlicht erschien zuerst auf soeren-hentzschel.at.

Dieser Artikel gibt meine Motivation für den Bau von Container-Images und die Vorgehensweise wieder und zeigt, wie ich mit Buildah meine OCI-kompatiblen Container-Images erstelle.

Es handelt sich dabei mehr um einen Erfahrungsbericht als ein Tutorial und ich erhebe keinen Anspruch auf Vollständigkeit. Das behandelte Beispiel ist jedoch zum Einstieg und zur Nachahmung für all jene geeignet, die Container ausführen können und diese gerne ohne Verwendung von Containerfiles bauen möchten.

Motivation

Ich möchte die Ansible-Rollen aus meiner Collection tronde.nextcloud mit Molecule und Podman-Containern testen. Als Zielplattform für das Deployment der Nextcloud unterstütze ich zunächst Debian und RHEL.

Die Tests sollen verifizieren, dass Nextcloud im Container in einer rootless-Podman-Umgebung bereitgestellt werden kann. Da der Test unter Verwendung von Podman-Containern durchgeführt werden soll, müssen diese Container eine solche rootless-Podman-Umgebung bereitstellen.

Für RHEL 8 und RHEL 9 habe ich entsprechende Container-Images gefunden. Für Debian bin ich nicht fündig geworden und habe daher beschlossen, diese Container-Images selbst zu erstellen.

Buildah ist das Werkzeug meiner Wahl, da:

  • Container-Images damit interaktiv erstellt werden können,
  • die verwendeten Befehle am Ende in einem Bash-Skript gesammelt werden können,
  • sich damit sogar interaktive Abfragen mit Heredocs beantworten lassen,
  • man kein containerfile(5) benötigt und
  • ich das Werkzeug noch nicht kenne und es gerne kennenlernen möchte.

Für mich sind dies ausreichend Gründe, um mich kopfüber in ein neues Container-Projekt zu stürzen. Wer mehr über die Beziehung von Buildah zu Podman erfahren möchte, dem empfehle ich den englischsprachigen Artikel: Buildah and Podman Relationship von Tom Sweeney.

Mein Weg zum Image

Um rootless Podman in einem Container zum Laufen zu bekommen, habe ich mich an dem englischsprachigen Artikel How to use Podman inside of a container von Dan Walsh orientiert. Das Ergebnis findet ihr in meinem GitHub-Repo tronde/container-image-forge.

Die folgenden Code-Blöcke zeigen Auszüge aus dem Skript buildah_create_debian_bookworm_with_rootless_podman.sh (Commit 7634ed8). Die enthaltenen Befehle werden unter dem jeweiligen Code-Block erläutert. Alle Befehle werden als normaler Benutzer ohne Root-Rechte ausgeführt.

# Name of target container image
tctri=debian_rootless_podman

# Get a base image
ctr=$(buildah from --pull=newer docker://docker.io/library/debian:bookworm)
  • Die Variable tctri nimmt den Namen des Container-Images auf, welches ich erzeugen werde
  • Die Variable ctr nimmt den Namen des Containers auf, welcher durch den buildah-from(1)-Befehl erzeugt wird; mit diesem Container wird im Folgenden gearbeitet
  • Die Option --pull=newer sorgt dafür, dass das Image nur dann aus der angegebenen Registry heruntergeladen wird, wenn es aktueller als das evtl. lokal gespeicherte Image ist
buildah run -- $ctr apt -y update
buildah run -- $ctr apt -y upgrade
buildah run -- $ctr apt -y install podman fuse-overlayfs libvshadow-utils libcap2-bin ca-certificates
  • Mit buildah-run(1) werden Befehle innerhalb des Arbeits-Containers ausgeführt
  • Ich aktualisiere die im Basis-Image enthaltenen Pakte und
  • installiere die für rootless Podman benötigten Pakete
  • Das Paket ca-certificates wird benötigt, um später Container-Images aus einer Registry herunterladen zu können
buildah run -- $ctr useradd podman
buildah run -- $ctr sh -c "echo podman:1:999 > /etc/subuid"
buildah run -- $ctr sh -c "echo podman:1001:64535 >> /etc/subuid"
buildah run -- $ctr sh -c "echo podman:1:999 > /etc/subgid"
buildah run -- $ctr sh -c "echo podman:1001:64535 >> /etc/subgid"
buildah run -- $ctr setcap cap_setuid+epi /usr/bin/newuidmap
buildah run -- $ctr setcap cap_setgid+epi /usr/bin/newgidmap
  • Mit den hier dargestellten Befehlen wird der nicht-privilegierte Benutzer podman erstellt
  • Die IDs für /etc/sub[g,u]id habe ich mir aus dem ubi9/podman-Image abgeschaut
  • Die setcap-Befehle sind notwendig, um rootless Podman ausführen zu können; ich habe sie durch Internetrecherche und Trial-and-Error zusammengestellt
buildah config -v /var/lib/containers $ctr
buildah config -v /home/podman/.local/share/containers $ctr
  • Das Image wird in der Lage sein, rootful und rootless Podman auszuführen
  • Mit den beiden Befehlen werden die Volumes hinzugefügt, die Podman als Container Storage nutzt
    • Rootful Podman verwendet /var/lib/containers
    • Rootless Podman verwendet /home/podman/.local/share/containers
buildah run -- $ctr chown -R podman:podman /home/podman
buildah run -- $ctr sh -c "mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers /var/lib/shared/vfs-images /var/lib/shared/vfs-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock; touch /var/lib/shared/vfs-images/images.lock; touch /var/lib/shared/vfs-layers/layers.lock"
buildah config --env _CONTAINERS_USERNS_CONFIGURED="" $ctr
  • Der Benutzer podman bekommt ein HOME-Verzeichnis
  • Ich erstelle die Verzeichnisse, die ich im Artikel [7] gefunden habe
  • Ich erstelle die Environment-Variable, die ich ebenfalls in genanntem Artikel [7] gefunden habe
buildah run -- $ctr apt -y reinstall uidmap
buildah run -- $ctr apt -y clean
buildah run -- $ctr rm -rf /var/lib/apt/lists/*
  • Aus mir nicht bekannter Ursache muss das Paket uidmap neu installiert werden, um ein UID/GID-Mapping sicherzustellen; dies scheint analog zur Neuinstallation der shadow-utils in Artikel [7] notwendig zu sein
  • Die beiden folgenden Befehle sollen den Paket-Cache aufräumen, um die Größe des resultierenden Images zu verkleinern, zeigen jedoch keinen sichtbaren Effekt
# Commit to an image
buildah commit --rm $ctr $tctri
# Alternative: Use this and add GPG fingerprint for image signing
# buildah commit --sign-by <fingerprint> --rm $ctr $tctri

# Tag the image just created
buildah tag $tctri $tctri:bookworm-$(date --iso)
  • Mit buildah-commit(1) wird der Inhalt des Arbeits-Containers $ctr in ein Container-Image namens $tctri geschrieben
  • Durch Angabe der Option --rm wird der Arbeits-Container entfernt
  • Die Kommentarzeile lässt erkennen, dass ich zukünftig beabsichtige, meine Images digital zu signieren
  • buildah-tag(1) fügt dem Image einen Tag mit Datumsstempel hinzu; siehe auch: Recommendations for tagging and versioning container images

Der Befehl buildah-commit(1) fügt dem neuen Image übrigens nur einen weiteren Layer hinzu, egal wie viele Befehle zuvor im Arbeits-Container ausgeführt wurden. Das erzeugte Image umfasst also die Layer des Basis-Image plus einen weiteren.

Zwischenfazit

An diesem Punkt habe ich ein Basis-Image ausgewählt, mithilfe von buildah zusätzliche Software installiert, einen Benutzer hinzugefügt und ein neues Image erzeugt.

Um den Build-Prozess zu automatisieren, habe ich die notwendigen Befehle in Bash-Skripte geschrieben und unter https://github.com/Tronde/container-image-forge abgelegt.

Die fertigen Images halte ich in der Registry https://quay.io/repository/rhn-support-jkastnin/debian_rootless_podman vor. Fühlt euch frei, diese für eigene Experimente zu benutzen, doch verwendet sie nur mit Vorsicht in Produktion. Ich erzeuge diese Images nur nach Bedarf neu, so dass die veröffentlichen Versionen veraltet und voller Sicherheitslücken sein können.

Validierung

Jetzt, wo die Images fertig sind, kann ich prüfen, ob sich rootless Podman darin auch wie gewünscht ausführen lässt.

Die Prozesse innerhalb des von meinem Container-Image instanziierten Containers laufen als Benutzer root. Um die Prozesse als Benutzer podman auszuführen, ist dies beim Aufruf von podman run explizit mit anzugeben. Der folgende Code-Block verdeutlicht dies und zeigt zugleich den ersten Fehler beim Versuch rootless Podman auszuführen.

]$ podman run --rm localhost/debian_rootless_podman:bookworm-2024-09-21 id
uid=0(root) gid=0(root) groups=0(root)
]$ podman run --rm --user podman localhost/debian_rootless_podman:bookworm-2024-09-21 id
uid=1000(podman) gid=1000(podman) groups=1000(podman)
]$ podman run --rm --security-opt label=disable --user podman --device /dev/fuse localhost/debian_rootless_podman:bookworm-2024-09-21 podman info
time="2024-09-21T18:43:35Z" level=error msg="running `/usr/bin/newuidmap 15 0 1000 1 1 1 999 1000 1001 64535`: newuidmap: write to uid_map failed: Operation not permitted\n"
Error: cannot set up namespace using "/usr/bin/newuidmap": exit status 1

Der Fehler deutet auf fehlende capabilities(7) hin. Um diese Hypothese zu testen, wiederhole ich den letzten Befehl mit der Option --privileged (siehe dazu podman-run(1)):

]$ podman run --rm --security-opt label=disable --user podman --device /dev/fuse --privileged localhost/debian_rootless_podman:bookworm-2024-09-21 podman info
host:
…

Damit funktioniert es. Leider geben sich viele Menschen an dieser Stelle mit dem Ergebnis zufrieden. Doch ich möchte diese Container nicht einfach mit --privileged ausführen. Also studiere ich die Manpage capabilities(7) und teste mich Stück für Stück heran, bis ich mit dem folgenden Kommando ebenfalls erfolgreich bin:

]$ podman run  --rm --user podman --security-opt label=disable --device /dev/fuse --cap-add=setuid,setgid,sys_admin,chown localhost/debian_rootless_podman:bookworm-2024-09-21 podman info
host:
…

Dies ist schon deutlich besser, da dem Container hiermit deutlich weniger Privilegien eingeräumt werden müssen. Das Thema Container-Privilegien und capabilities(7) werde ich noch genauer untersuchen. Eventuell folgt dazu dann auch ein weiterer Artikel. Für den Moment ist das Ergebnis gut genug.

Quellen und weiterführende Links

  1. Buildah.io
  2. Ansible Collection tronde.nextcloud
  3. Mein Wochenendprojekt Nextcloud im Container
  4. Podman Images im Red Hat Catalog
  5. Buildah and Podman Relationship von Tom Sweeney
  6. About Ansible Molecule
  7. How to use Podman inside of a container by Dan Walsh
  8. Using podman containers
  9. Having trouble getting started with rootless podman running rootless podman inside a Debian 12 image #23838
  10. Recommendations for tagging and versioning container images

29. September 2024

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

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.24

Das Update auf das Mozilla VPN 2.24 bringt keine neuen Funktionen, sondern ausschließlich Fehlerbehebungen und Verbesserungen unter der Haube. Für Nutzer eines Mac-Computers ist macOS 11 die neue Mindestanforderung.

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

Die letzten wichtigen verbleibenden Bausteine für den Realtime-Support für Linux wurden in den Mainline-Zweig aufgenommen. Das bedeutet, dass Linux 6.12 voraussichtlich in einem echtzeitfähigen Modus betrieben werden kann, wenn der Kernel entsprechend kompiliert wird.

Echtzeitfähigkeit wird insbesondere in Embedded-Szenarien benötigt, wenn auf eine Eingabe innerhalb einer vorhersagbaren Zeit eine Antwort erwartet wird. Speziell in der Robotik, aber auch in der Multimediaproduktion gibt es solche Anforderungen. Dabei kommt es nicht darauf an, dass eine Aufgabe schnell abgearbeitet wird, sondern, dass sie in einer deterministischen Zeit begonnen wird.

Ein Beispiel für Echtzeit

An dieser Stelle mag sich die Frage stellen, was diese Echtzeitfähigkeit, von der hier geredet wird, überhaupt ist. Das lässt sich gut am Beispiel eines Line-following Robot klären. Was ein solcher Roboter tut, kann man sich z. B. in diesem YouTube-Video ansehen. Technisch besteht so ein Roboter aus zwei (oder mehr) Kameras als Sensoren, zwei Motoren für jeweils ein Rad als Aktoren und einem Controller zur Steuerung. Die Kameras sollen den Kontrast ermitteln, damit festgestellt werden kann, ob sie noch auf die schwarze Linie zeigen. Bemerkt eine der Kameras beim Fahren, dass sie den Sichtkontakt zur Linie aufgrund z. B. einer Kurve verliert, müssen die Motoren durch eine leichte Drehung nachsteuern, um auf der Linie zu bleiben.

Diese Kameras lösen üblicherweise entsprechend ihrer Abtastfrequenz auf dem Controller für die Steuerung einen Interrupt aus. Das führt zur Abarbeitung der Steuerungsroutine, die für beide Motoren die Geschwindigkeit berechnet, mit der sie sich drehen sollen.

Entscheidend ist, dass nicht beide Kameras den Sichtkontakt verlieren, damit der Roboter weiterhin weiß, in welche Richtung er nachsteuern muss. Üblicherweise wird das beim Testen funktionieren, aber es kann in bestimmten Randbedingungen bei normalen Betriebssystemen, wenn der Controller z. B. mit vielen anderen Aufgaben zufälligerweise beschäftigt ist, passieren, dass auf einmal nicht schnell genug die Routine aufgerufen wird. Der Roboter verliert dann den Sichtkontakt.

Der Entwickler eines solchen Roboters kann nun eine Echtzeitanforderung formulieren, dass z. B. auf ein Interrupt von den Kameras innerhalb von 1 Millisekunde reagiert werden muss. Er kann mit dieser Anforderung jetzt die maximale Geschwindigkeit des Roboters so wählen, dass der Roboter langsam genug fährt, um nicht die Linie – trotz der Latenz von im worst-case 1 Millisekunde – nicht zu verlieren.

Diese 1 Millisekunde muss aber auch vom Controller, seinem Betriebssystem und schließlich seinem Kernel garantiert werden. Der Kernel muss also in jeder Situation in der Lage sein, auf eine Anforderung innerhalb einer vorbestimmten Zeit zu reagieren. Unabhängig von der zwingenden Fähigkeit, präemptiv zu arbeiten, also jederzeit anderer Prozesse unterbrechen zu können, darf der Kernel auch nicht mit sich selber unvorhersehbar lange beschäftigt sein, wenn z. B. eine Synchronisation hängt.

20 Jahre Arbeit

Und genau hierum geht es beim grob gesagt beim PREEMPT_RT-Patch. Der Kernel muss so nachgebessert werden, dass keine Komponente sich unnötig lange aufhängt und somit die Abarbeitung von Aufgaben behindert, für die eine garantierte Ausführungszeit festgelegt wurde.

Die ursprüngliche Arbeit begann bereits im Jahr 2004 auf einem getrennten Zweig und hatte viele Verbesserungen in den Kernel gebracht, zuletzt an der printk()-Infrastruktur. Jetzt sollten die Arbeiten so weit sein, dass Realtime nicht mehr auf einem getrennten Zweig, sondern im Hauptzweig entwickelt werden kann.

Die Echtzeitfähigkeit gab es somit in speziell präparierten Kernels schon lange. Neu ist, dass der Code im Hauptzweig gepflegt wird und somit besser mit Änderungen anderer Maintainer abgestimmt werden kann. Denn eine Änderung an einer anderen Komponente reicht schon aus, um die Echtzeitfähigkeit zu unterminieren.

Linux echtzeitfähig zu machen, ist somit ein großer Aufwand gewesen, weil man solche Fähigkeiten oft nur in spezialisierten Betriebssystemen (sogenannten Real-time operating systems, RTOS) vorfindet. Insbesondere Thomas Gleixner und John Ogness haben hier große Anstrengungen unternommen. Jetzt, nach knapp 20 Jahren Arbeit, dürfte das Vorhaben einen wichtigen Meilenstein erreichen.

Wer sich für einen tieferen Einblick in die Linux-RT-Welt interessiert, kann einerseits den Artikel von Thomas Leemhuis auf Heise Online von letzter Woche lesen oder sich auf LWN durch das Artikelarchiv zu der Thematik arbeiten.

24. September 2024

Firefox besitzt eine Übersetzungsfunktion für Websites, welche im Gegensatz zu Cloud-Übersetzern wie Google Translate lokal arbeitet, die eingegebenen Texte also nicht an einen fremden Server sendet. Auch in diesem Monat wurde die Unterstützung von Sprachen erweitert.

Firefox wird seit Version 118 standardmäßig mit einer lokalen Funktion zur maschinellen Übersetzung von Websites für den Browser ausgeliefert. Das bedeutet, dass die Übersetzung vollständig im Browser geschieht und keine zu übersetzenden Inhalte an einen Datenriesen wie Google oder Microsoft übermittelt werden müssen.

Seit ich im vergangenen Monat zuletzt berichtet hatte, ist die Unterstützung weiterer Sprachen dazugekommen.

Komplett neu sowohl für finale als auch Nightly-Versionen von Firefox ist die Unterstützung sowohl aus dem Schwedischen als auch ins Schwedische, nach Finnisch sowie Türkisch. Neu in finalen Firefox-Versionen, zuvor aber bereits in Nightly-Versionen unterstützt, sind Übersetzungen aus dem Griechischen, Russischen sowie Slowenischen. Nightly-Versionen erhalten außerdem die Unterstützung von Übersetzungen ins Slowakische neu dazu.

Da die Sprachmodelle über die Remote-Einstellungen von Firefox bereitgestellt werden, ist die Unterstützung neuer Sprachen an kein Firefox-Update gebunden und funktioniert direkt in jedem Firefox mit aktivierter Übersetzungsfunktion.

Damit unterstützt die Übersetzungsfunktion Firefox bereits 28 Sprachen in mindestens eine Richtung. Für die Nightly-Version von Firefox sind es sogar schon 34 Sprachen. Mozilla arbeitet mit Hochdruck daran, dass noch viele weitere folgen werden.

Firefox Translations September 2024

Der Beitrag Neue Sprachen für Übersetzungsfunktion von Firefox erschien zuerst auf soeren-hentzschel.at.

23. September 2024

Mittels Synchronisation lassen sich Firefox-Daten wie Lesezeichen, Chronik, Tabs und Passwörter zwischen Geräten synchronisieren. Ab Firefox 132 wird es möglich sein, synchronisierte Tabs aus der Ferne zu schließen.

In Firefox lassen sich nicht nur Daten wie Lesezeichen, Chronik und Passwörter synchronsieren, man kann auch die gleichen Tabs öffnen, die auf anderen Geräten bereits geöffnet sind. Dies ist beispielsweise über die Sidebar für synchronisierte Tabs möglich.

Ab Firefox 132 wird es dort über das Kontextmenü der einzelnen synchronisierten Tabs möglich sein, die jeweiligen Tabs auf den anderen Geräten zu schließen. Diese Möglichkeit steht jedoch nur in der neuen Sidebar zur Verfügung, welche in Firefox 132 noch nicht standardmäßig aktiviert ist und über den Abschnitt „Firefox Labs“ in den Firefox-Einstellungen aktiviert werden kann.

Firefox 132: Synchronisierte Tabs schließen

Firefox 132 wird nach aktueller Planung am 29. Oktober 2024 erscheinen.

Der Beitrag Firefox 132: Tabs auf anderen Geräten schließen erschien zuerst auf soeren-hentzschel.at.

22. September 2024

JPEG-XL ist ein Bildformat, welches anderen Bildformaten in vielen Aspekten – zumindest auf dem Papier – überlegen ist. Andere Browserhersteller als Apple waren bisher allerdings nicht von einer Unterstützung zu überzeugen. Dies könnte sich für Firefox und Chrome ändern.

Nightly-Versionen von Firefox bieten bereits seit Mai 2021 eine experimentelle Unterstützung für das Bildformat JPEG-XL, kurz: JXL, welche über about:config aktiviert werden kann, indem der Schalter image.jxl.enabled per Doppelklick auf true gesetzt wird. Auch wenn der Schalter in Beta- sowie finalen Firefox-Versionen ebenfalls zur Verfügung steht, ist eine Aktivierung auf diesen Kanälen nicht möglich. Google hat seine experimentelle Unterstützung für JPEG-XL im Februar 2023 wieder aus Chrome entfernt. Im Gegensatz dazu unterstützt Apple für macOS und iOS das Bildformat JPEG-XL seit Safari 17 im September 2023.

Große Unternehmen wie Meta, Adobe, Shopify und weitere sind große Unterstützer von JPEG-XL, da hiermit gegenüber aktuell unterstützten Bildformaten, einschließlich WebP und AVIF, weitere Reduzierungen der Dateigrößen bei gleichbleibender Qualität oder höhere Qualität ohne Erhöhung der Dateigrößen von Bildern möglich sind.

Anfang September 2024 hat Mozilla eine Aktualisierung seiner Position bezüglich JPEG-XL vorgenommen, welche Hoffnung auf eine Unterstützung auch in anderen Browsern als Safari machen darf.

Demnach liegt Mozillas größtes Bedenken im erhöhten Angriffsvektor, den der über 100.000 Zeilen schwere Multithreaded C++-Code des Referenz-Decoders mit sich bringt. Man habe in den letzten Monaten allerdings produktive Unterhaltungen mit dem JPEG-XL-Team von Google Research gehabt, welches sich bereit erklärt habe, sein Fachwissen einzusetzen, um einen sicheren, leistungsfähigen, kompakten und kompatiblen JXL-Decoder in Rust zu entwickeln und diesen Decoder in Firefox zu integrieren. Ein in Rust geschriebener Decoder würde das Risiko und damit auch Mozillas Bedenken erheblich reduzieren. Gelingt dies und erfüllt Mozillas Anforderungen, würde Mozilla diesen in Firefox ausliefern.

Hierin stecken nicht nur gute Nachrichten für Firefox-Nutzer, sondern auch für Nutzer von Google Chrome sowie sämtlichen anderen auf Chromium basierenden Browsern. Denn Google würde keinen JXL-Decoder entwickeln und zu Firefox beitragen, würden sie nicht selbst auch JPEG-XL unterstützen wollen.

Der Beitrag Neue Hoffnung für Unterstützung von Bildformat JPEG-XL (JXL) in Firefox und Chrome erschien zuerst auf soeren-hentzschel.at.

21. September 2024

Mit Common Voice stellt Mozilla den weltweit größten öffentlichen Datensatz menschlicher Stimmen bereit – kostenlos und für jeden nutzbar. Mozilla hat Version 19.0 seines Datensatzes veröffentlicht.

Der Markt für Spracherkennung wird von den ganz großen Namen kommerzieller Anbieter dominiert: Amazon, Apple, Google, Microsoft. Darum hat Mozilla im Jahr 2017 das Projekt Common Voice gestartet. Mit Common Voice bietet Mozilla eine kostenlose Alternative an, zu der jeder beitragen kann und die jedem zur Verfügung steht. Damit möchte Mozilla Innovation und Wettbewerb in der Sprachtechnologie auf Basis von Maschinenlernen fördern.

Mit dem nun veröffentlichten Common Voice Corpus 19.0 wächst der deutschsprachige Datensatz von 1.431 auf 1.436 Stunden an. Wer bereits den Common Voice Corpus 18.0 besitzt, kann wie immer auch nur ein sogenanntes Delta Segment mit den Unterschieden zur Vorversion herunterladen. Für Deutsch würde das den Download von 33,6 GB auf 108 MB reduzieren.

Insgesamt deckt Mozilla Common Voice mit der neuen Version jetzt 131 Sprachen mit insgesamt 32.584 aufgenommenen Stunden ab, was Mozilla Common Voice zum vielfältigsten mehrsprachigen Sprachkorpus der Welt macht.

Zum Download der Mozilla Common Voice Datensätze

Der Beitrag Mozilla veröffentlicht Common Voice Corpus 19.0 erschien zuerst auf soeren-hentzschel.at.

20. September 2024

Mit Mozilla Social betreibt Mozilla seine eigene Instanz des dezentralen sozialen Netzwerks Mastodon. Über die geschlossene Betaphase wird es allerdings nicht mehr hinausgehen. Mozilla hat die Einstellung von Mozilla Social bekanntgegeben.

Was ist Mastodon?

Mastodon ist eine Microblogging-Plattform oder auch soziales Netzwerk, welches vor allem mit X, ehemals Twitter, verglichen werden kann, oder auch dem neuen Threads von Meta. Der große Vorteil von Mastodon ist seine dezentrale Natur: Das Netzwerk gehört keinem einzelnen Unternehmen. Stattdessen kann jeder seine eigene Instanz mit eigenen Moderationsregeln und eigener Oberfläche betreiben. Die dafür verwendete Software ist Open Source und frei verfügbar.

Was ist Mozilla Social?

Mit mozilla.social betreibt auch Mozilla eine Mastodon-Instanz. Diese war im März 2023 für Mozilla-Mitarbeiter online gegangen, seit Mai 2023 konnte man sich auf die Warteliste für einen geschlossenen Betatest setzen lassen. Ursprünglich hatte Mozilla große Pläne für Mastodon. So wurde zunächst nicht nur eine modifizierte Version von Mastodon mit ebenfalls angepasster Elk-Oberfläche eingesetzt, welche ein paar Dinge anders als andere Instanzen machte, auch investierte Mozilla in die Mastodon-App Mammoth für iOS und für Android sowie iOS waren sogar eigene Apps in Entwicklung.

Das langsame Ende von Mozilla Social – mit zwischenzeitlicher Hoffnung

Die Dinge änderten sich schlagartig im Februar 2024, als Laura Chambers neue CEO von Mozilla wurde. Das Zurückfahren der Investitionen in Mozilla Social zählte praktisch zu ihren ersten Amtshandlungen. Die Entwicklung der eigenen Apps wurden eingestellt und der Betrieb der Mastodon-Instanz auf den minimalen Wartungsaufwand zurückgefahren. Eigene Anpassungen wurden rückgängig gemacht und Elk zugunsten der Standard-Oberfläche wieder gestrichen. Für die Mastodon-Instanz gab es seit dem lediglich die regulären Updates der Mastodon-Software.

Im April 2024 kam noch einmal kurz Hoffnung auf. Denn die zunächst eingestellte und unter anderem Namen privat weiterentwickelte Android-App wurde doch wieder als Mozilla-Produkt weiterentwickelt. Außerdem startete die Entwicklung einer Mastodon-Erweiterung für Firefox und Chrome. Ende Mai 2024 wurden hier aber schon wieder alle Aktivitäten eingestellt, einen Monat später war auch für Android-App endgültig Schluss.

Offizielle Einstellung von Mozilla Social

Nachdem es dann in den letzten Monaten auffällig still um Mozilla Social wurde und auch nichts in Richtung überfällige Öffnung der Mastodon-Instanz für alle Nutzer zu hören war, folgte vor wenigen Tagen die offizielle Ankündigung dessen, was man bereits ahnen konnte: Mozilla Social wird eingestellt. Am 17. Dezember 2024 ist Schluss. Nutzer der Mastodon-Instanz mozilla.social müssen bis dahin ihre Daten gesichert haben, ansonsten verlieren sie den Zugriff.

Der Beitrag Mastodon-Instanz Mozilla Social wird eingestellt erschien zuerst auf soeren-hentzschel.at.

19. September 2024

Mozilla hatte Anfang September offizell angekündigt, die Unterstützung von Firefox für die veralteten Betriebssysteme Windows 7, Windows 8, macOS 10.12, macOS 10.13 sowie macOS 10.14 bis März 2025 zu verlängern. Nun ist klar: Für den Mail-Client Thunderbird gilt dies nicht.

Worüber ich bereits im Juli berichtete, hat Mozilla Anfang September offiziell gemacht: Die veralteten Betriebssysteme Windows 7, Windows 8, macOS 10.12, macOS 10.13 sowie macOS 10.14 werden bis März 2025 weiter unterstützt. Dies geschieht durch eine Verlängerung der Lebenszeit von Firefox ESR 115.

Wie seitens der MZLA Technologies Corporation nun angekündigt wurde, gilt dies nicht für Thunderbird. Zwar behält man sich noch die theoretische Möglichkeit vor, ein weiteres Thunderbird 115.15.x-Update zu veröffentlichen, aber über Thunderbird 115.15 wird es nicht hinaus gehen. Das bedeutet: Die Unterstützung für die oben genannten Betriebssysteme gilt für Thunderbird damit offiziell und ab sofort als eingestellt.

Begründet wird dies einerseits mit den geringeren personellen Ressourcen, die das Thunderbird-Team im Vergleich zu Firefox hat. Zum anderen liegt der Anteil der Thunderbird-Nutzer mit Windows 7 oder Windows 8 nicht wie bei Firefox bei immer noch 10,5 Prozent, sondern „nur“ noch bei ca. 6 Prozent. Und das bei einer ohnehin sehr viel kleineren Nutzerbasis als Firefox sie hat.

Die Downloadseite wird vorerst weiterhin den Download von Thunderbird 115 für Nutzer von Windows 7 oder Windows 8 anbieten. Dies wird sich aber ändern, sobald zukünftige Sicherheits-Updates, die für Thunderbird relevant sind, nur noch für Thunderbird 128 und höher bereitgestellt werden.

Die alten macOS-Betriebssysteme werden in der Ankündigung weder explizit erwähnt noch gibt es für diese eine separate Download-Option auf der Thunderbird-Website. Deren Nutzeranteil dürfte daher als verschwindend gering anzusehen sein.

Der Beitrag Thunderbird: Unterstützung für veraltete Betriebssysteme wird nicht verlängert erschien zuerst auf soeren-hentzschel.at.

18. September 2024

Die MZLA Technologies Corporation hat mit Thunderbird 128.2.1 ein Update für seinen Open Source E-Mail-Client veröffentlicht. Kurz darauf erschien Thunderbird 128.2.2.

Neuerungen von Thunderbird 128.2.1 und Thunderbird 128.2.2

Mit dem Update auf Thunderbird 128.2.1 hat die MZLA Technologies Corporation ein Update für seinen Open Source E-Mail-Client veröffentlicht. Das Update bringt mehrere Korrekturen für die Versionsreihe 128, welche sich in den Release Notes (engl.) nachlesen lassen. Das Update auf Thunderbird 128.2.2 bringt weitere Verbesserungen, welche die Release Notes (engl.) auflisten.

Update: Mittlerweile ist auch Thunderbird 128.2.3 erschienen und macht eine Änderung des Updates auf Thunderbird 128.2.2 rückgängig.

Der Beitrag Thunderbird 128.2.1 und 128.2.2 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

17. September 2024

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

Download Mozilla Firefox 130.0.1

Ein Fehler wurde behoben, der verursachte, dass AVIF-Bilder nur schwarz dargestellt worden sind, wenn Firefox mit GCC kompiliert worden ist. Dies betrifft Firefox unter Linux aus Paketverwaltungen, die nicht von Mozilla verwaltet werden. Der von Mozilla kompilierte Firefox war von diesem Fehler nicht betroffen.

Ein sogenannter Deadlock wurde behoben, der bei Ausführung des Firefox-Profilers aufgetreten ist, wenn eine aktuelle Windows 11 Insider Preview genutzt worden ist. Stabile Windows-Versionen waren von diesem Problem nicht betroffen, hätten es aber potenziell in der Zukunft sein können.

Firefox in der Saraiki-Sprache hat Texte mancher Oberflächen-Elemente fälschlicherweise von links nach rechts statt von rechts nach links geschrieben.

Die UserMessaging-Unternehmensrichtlinie kann jetzt auch zur Deaktivierung von „Firefox Labs“ genutzt werden, einem neuen Abschnitt in den Firefox-Einstellungen seit Firefox 130, um zukünftige Features vorab aktivieren zu können.

Den Buttons im Dialog zur Personalisierung der Pocket-Empfehlungen auf der Firefox-Startseite konnte direkt nach dem Browserstart das Styling fehlen. Hierbei handelt es sich um ein neues Feature von Firefox 130, welches derzeit schrittweise in den USA und Kanada ausgerollt wird.

Dazu kommt noch eine Hand voll Änderungen in Zusammenhang mit der KI-Generierung von Alternativtexten für Bilder in PDF-Dateien, einem weiteren neuen Feature von Firefox 130, welches derzeit schrittweise ausgerollt wird.

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

16. September 2024

In meinem heutigen Beitrag kommentiere ich den 2024 State of Open Source Report und vergleiche die enthaltenen Ergebnisse mit meinen persönlichen Erfahrungen.

Der 2024 State of Open Source Report (im Folgenden auch als Bericht oder Report bezeichnet) wurde von der Firma OpenLogic in Zusammenarbeit mit der Open Source Initiative (OSI) und der Eclipse Foundation erstellt. Der Bericht kann hier als PDF kostenlos heruntergeladen werden (der Haken für den Empfang von Kommunikation muss nicht gesetzt werden). Ich werde in diesem Text häufig auf den Bericht als Quelle verweisen, sodass ich euch empfehle, den Report ebenfalls verfügbar und im besten Fall gelesen zu haben. Seitenangaben beziehen sich auf das PDF mit dem Bericht.

Transparenzhinweis: Ich arbeite als Technical Account Manager für die Firma Red Hat. Meine Arbeit beeinflusst meinen Blick auf den Bericht. Dieser Kommentar stellt ausschließlich meine persönliche Sicht dar.

Informationen zum Bericht

Im Zeitraum vom 10. Oktober bis 8. November 2023 wurde weltweit eine anonyme Umfrage durchgeführt, welche insgesamt 2046 Antworten erhielt (siehe S. 4-6). Es findet sich darin kein Hinweis, ob die Umfrage repräsentativ ist. Es werden jedoch Angaben darüber gemacht, aus welcher Weltregion, Unternehmensgröße und Job-Rolle die Antworten stammen, um diese einordnen zu können.

Nutzung und Verbreitung von Open Source in Unternehmen

Es freut mich zu lesen, dass 95 Prozent der Antworten belegen, dass der Anteil an Open Source in den an der Umfrage teilnehmenden Unternehmen gestiegen (67,57 %) oder gleichgeblieben (27 %) ist (siehe S. 7). Auffällig ist allerdings auch, dass im Mittleren Osten 22,22% angaben, dass der Einsatz von Open Source zurückgegangen ist. Unternehmen, die gar keine Open-Source-Software einsetzen, haben vermutlich nicht an der Umfrage teilgenommen. Der Bericht macht dazu keine Aussage.

Auf Seite 8 findet sich die Aussage, dass 40 % aus der C-Level-Abteilung (z.B. CEO, CTO, CIO, CFO, etc.) angegeben haben, dass der Anteil an Open Source gleichgeblieben ist, während über 60% der Teilnehmer aus technischen Rollen eine Zunahme von Open Source sehen. Laut Bericht deutet dies auf eine mögliche Entfernung bzw. Trennung der Führung von der Basis hin. Dieser Ansicht mag ich mich nicht anschließen, da immerhin 58,46% der Führungskräfte ebenfalls eine Zunahme von Open Source in ihren Unternehmen sehen; das ist von den 60% der technischen Rollen doch nun wirklich nicht weit weg.

Interessant finde ich die genannten Gründe für den Einsatz von Open Source in Unternehmen (siehe S. 9-10). Ein wenig betrübt es mich, dass knapp 37 % „Keine Lizenzkosten“ und „Kostenminimierung“ als wichtigstes Argument für den Einsatz von Open Source nannten; hat Open Source in meinen Augen doch so viel mehr zu bieten, während sich das Ziel der Kostenminimierung nicht in jedem Fall erreichen lässt.

Meiner persönlichen Erfahrung nach verschieben sich die Aufwände in vielen Fällen lediglich. So stellten einige Organisationen fest, dass der Einsatz kostenlos verfügbarer Open-Source-Software mit einem höheren Personalbedarf bzw. einem erhöhten Aufwand für Wissensaufbau und Fehleranalysekompetenz einhergeht. Hier finden sich zum Teil die Kosten wieder, die man zuvor für Lizenzen und externen Support aufgewendet hat. Es gibt hier keine pauschal gültige Empfehlung. Jedes Unternehmen muss für sich selbst bewerten, ob es das erforderliche Personal selbst aufbauen bzw. einstellen kann oder ob der Einkauf externer Unterstützung in Zeiten von Fachkräftemangel nicht doch günstiger ist.

Macht man sich von externem Wissen abhängig, läuft dies dem Ziel entgegen, sich mit Open Source unabhängiger von einzelnen Herstellern machen zu wollen. Hier ist darauf zu achten, wie viel Auswahl an Anbietern am Markt besteht.

Ich nehme allerdings ebenfalls wahr, dass die wirtschaftliche Situation in vielen Unternehmen angespannt ist und kann das Ziel, Kosten zu reduzieren, nachvollziehen. Ich hoffe darauf, dass Unternehmen, die Open Source zur Kostensenkung einführen, auch die weiteren Vorteile, wie z.B. die Vermeidung von Vendor Lock-ins sowie offene Standards und Interoperabilität erkennen und zu schätzen lernen. Die zuletzt genannten Punkte sind immerhin 21 % der Befragten heute schon wichtig.

Herausforderungen beim Einsatz von Open Source

Wie bereits im vorangegangenen Abschnitt erwähnt, ist für den Einsatz von Open Source die Verfügbarkeit des notwendigen Wissens und entsprechende Fertigkeiten notwendig. Immerhin 38 % der befragten Unternehmen sehen es als eine Herausforderung an, das notwendige Wissen und die Fähigkeiten zum effizienten Einsatz von Open Source im Unternehmen verfügbar zu machen (S. 13). Dabei versuchen sie, dies auf unterschiedlichen Wegen verfügbar zu machen. Das Diagramm auf Seite 14 zeigt, dass die Mehrheit mit 45% auf Training des eigenen Personals setzt. Weitere 38% versuchen, Personal mit dem benötigten Wissen einzustellen.

Ich arbeite aktuell selbst in einem Unternehmen, in dem die Fort- und Weiterbildung der eigenen Mitarbeiter einen hohen Stellenwert besitzt. Ich freue mich sehr, dass mein Unternehmen mich aktiv dabei unterstützt, mein Wissen aktuell zu halten und in verschiedenen Bereichen auszubauen.

Ohne einen Beleg zur Hand zu haben, meine ich mich zu erinnern, dass die Qualifizierung bestehenden Personals für ein Unternehmen häufig günstiger ist, als neues Personal einstellen und einarbeiten zu müssen. Falls ihr dazu eine gute Quelle habt, teilt sie mir doch bitte in den Kommentaren mit.

Updates und Patches

Auf Seite 13 des Berichts findet sich die Aussage, dass es für 40 % aller Umfrageteilnehmer eine große bis sehr große Herausforderung darstellt, die Systeme und Anwendungen auf einem aktuellen Stand (Patchlevel) zu halten.

Nach meiner Erfahrung zählen ein geringer Automatisierungsgrad, unzureichende Testprozeduren und eine zu starre Aufbauorganisation mit komplizierten und langwierigen Abstimmungsprozessen zu den größten Problemen in diesem Bereich. Wenn Wartungsfenster zur Installation von (Sicherheits-)Updates mit 3-6 Monaten Vorlauf angekündigt und geplant werden müssen und es keinen Prozess für schnelle Notfallupdates gibt, kann man halt nicht innerhalb von 72 Stunden reagieren und Schwachstellen schließen. Wenn die Kommunikation zwischen Betriebs- und Anwendungs-Team rein über Ticketsystem läuft, hat man zwar einen sauberen Prozessablauf mit Genehmigungs- und Prüfschritten; werden die Schritte jedoch alle manuell ausgeführt, darf man sich nicht wundern, wenn Updates vier Tage statt vier Stunden brauchen.

Noch immer begegnen mir im Gespräch Szenarien, wo Anwendungsteams nicht über Testsysteme und Testpläne verfügen. Die Folgen eines Updates/Patches lassen sich nur direkt in Produktionsumgebung prüfen. Bei Fehlern kommt es dann sofort zu einer Beeinträchtigung des Dienstes und der Stresslevel steigt. Wo es bereits an der Fähigkeit mangelt, Änderungen zeitnah zu verifizieren, fehlt oft auch die Möglichkeit, auf einen zuletzt als funktionierend bekannten Stand zurückzurollen. Hier bleibt nur der Weg voran unter Einsatz aller verfügbaren Ressourcen, bis das Problem behoben oder das Unternehmen insolvent ist.

Nicht immer ist es ganz so dramatisch. Häufig löst mangelnde Automation einen langwierigen Abstimmungsprozess aus. Viele Personen müssen Zeit einplanen, um diverse Schritte im Prozessablauf manuell auszuführen, zu testen und zu dokumentieren. Schnell sind 3,6 kg Excel-Dateien erstellt, das Update aber immer noch nicht abgeschlossen.

Ich erinnere mich an die schöne Zeit zwischen 2011 und 2014. Unser damaliger stellvertretender Abteilungsleiter hatte die Idee, DevOps auszuprobieren. Dazu wurden Teams aus Entwicklern und Systemadministratoren gebildet, die nun gemeinsam für den Betrieb und die Verfügbarkeit bestimmter Anwendungen verantwortlich waren. Statt den auf Papier dokumentierten Verantwortungsübergängen und dem daraus häufig folgenden Hin- und Herschiebens des schwarzen Peters saßen wir jetzt gemeinsam in einem Boot und hatten gemeinsame Ziele. Wir lernten dabei die Sicht- und Arbeitsweise der jeweils anderen Job-Rolle kennen und zu verstehen. Und im gemeinsamen Dialog, gelang es uns Automationsprozesse zu entwickeln, um Updates schneller und erfolgreicher durchführen zu können. Leider überlebte dieses Modell die Zeit nicht. Heute ist mir bekannt, dass mit dem Wechsel dieses Modells auch die alten Probleme zurückkehrten und deutlich weniger Updates durchgeführt werden.

Oft liegt die Verantwortung für die Installation von Updates/Patches beim Betrieb. Jedoch ist nur das Anwendungsteam in der Lage, die korrekte Funktionsfähigkeit der Anwendung/des Dienstes zu beurteilen. Auch wenn manche Abteilungsleiter es nicht gerne hören, es geht am besten gemeinsam, mit kurzen Abstimmungswegen über Team- und Abteilungsgrenzen hinweg.

Der zweite Schlüssel zum Erfolg ist Automation. Lasst den Automaten die einzelnen Prozessschritte ausführen, welche in der Regel wie folgt aussehen:

  1. Anwendung bzw. Dienste stoppen
  2. Updates/Patches installieren
  3. System neu starten
  4. Anwendung bzw. Dienste starten
  5. Anwendung/Dienst auf korrekte Ausführung testen
  6. Bei Fehlschlag –> Rollback bzw. bei Erfolg –> Update erfolgreich

Zeit und Energie, die hier investiert werden, zahlen sich in aktuellen Systemen mit weniger Sicherheitslücken aus. Schafft einen Raum, in dem sich eure Experten aus Systemadministration und Anwendungsentwicklung austauschen und abstimmen können.

Selbstverständlich haben die Qualität der vom Hersteller bereitgestellten Updates ebenfalls einen großen Einfluss auf den Erfolg von Patchinstallationen. Sollte es hier wiederholt Probleme geben und keine Besserung in Sicht sein, ist ggf. ein Wechsel des Anbieters in Erwägung zu ziehen. Doch bevor ihr euch Hals über Kopf in die Migration stürzt, denkt daran, dass das Gras auf der anderen Wiese stets grüner wirkt, als es ist. Es geht nicht ohne ausführliche Tests.

Ich wünsche allen, die sich für Updates und Patches Nächte und Wochenenden um die Ohren schlagen müssen, dass sich die Situation für euch bessert und sich dies im nächsten Open Source Statusbericht ablesen lässt.

Wartung von End-of-Life Versionen

Manche nennen es den Giftschrank, andere die Schmuddelecke. Gemeint sind damit Betriebssystem-Releases und Anwendungen, die das Ende ihres Lebenszyklus erreicht oder schon überschritten haben. Laut Seite 13 des Berichts ist dies für 42 % der Umfrageteilnehmer ein Thema.

Die Gründe warum diese Systeme noch existieren, lauten häufig sehr ähnlich. Fast immer läuft eine geschäftskritische Anwendung darauf,

  • Von der im Unternehmen niemand mehr weiß, wie sie funktioniert, um sie auf ein neues Betriebssystem zu migrieren
  • Für deren Migration keine Ressourcen verfügbar sind
  • Mit der komplizierte und langwierige Abstimmungsprozesse zur Migration verbunden sind; niemand will das Ding anfassen
  • Die für keine aktuellere Betriebssystem-Version zertifiziert ist

Im hier kommentierten Bericht wird auf Seite 15 ausgewiesen, dass 22 % der Befragten noch CentOS einsetzten, dessen Release 7 seit dem 30. Juni 2024 End-of-Life (EoL) ist. In der Umfrage kommt es sogar auf Platz 3 der am häufigsten eingesetzten Distributionen.

Egal ob man nun EoL-Betriebssysteme oder EoL-Laufzeitumgebungen betrachtet, die Lösung ist stets dieselbe. Die dazugehörige Anwendung muss zuerst auf einer neueren und unterstützten Version laufen, bevor die alte abgeschaltet werden kann. Dazu müssen Teams in der Lage sein, Anwendungen neu deployen und das Deployment testen zu können. Auch hier helfen Testsysteme, -prozeduren und Automation. Auch hierbei ist es unerlässlich, dass Betrieb und Anwendungsteams zusammenarbeiten, um den Erfolg der Migration sicherzustellen. Je schneller Feedback-Loops und Abstimmungsprozesse sind, desto schneller sind notwendige Prozeduren etabliert. Die Zeit für Releasewechsel lässt sich so signifikant verkürzen. Ressourcen sind damit schneller frei und können für innovative Entwicklungsprojekte genutzt werden.

Leider erlebe ich häufig, dass Abteilungen nur in ihrem eigenen Bereich nach Lösungen suchen und den Kontakt zu anderen Abteilungen meiden, ja beinahe scheuen. Doch ist dies kein technisches Problem. Es ist eine organisatorische Herausforderung, die angegangen werden muss. Es liegt doch im Interesse aller Beteiligten, regelmäßig wiederkehrende Releasewechsel schnell und störungsarm abwickeln zu können.

In meinem beruflichen Alltag erlebe ich häufig, dass In-Place-Upgrades als Allheilmittel angesehen werden. Ich hingegen bin kein großer Freund davon. Sie sind der vermeintlich einfache Weg, doch führen sie zur dunklen Seite der Macht. Ein In-Place-Upgrade aktualisiert das Betriebssystem inkl. der installierten Bibliotheken und Laufzeitumgebungen. Es befreit nicht von der obligatorischen Aufgabe, die darauf laufenden Anwendungen im Anschluss zu testen. Stellt man dabei Fehler fest, gibt es häufig kein Zurück mehr. Eine Ausnahme bilden hier virtuelle Umgebungen, bei denen man zuvor einen Snapshot der virtuellen Maschine erstellen kann.

Wer eine Anwendung immer nur mit In-Place-Upgrades von einem Release auf das nächste rettet, verliert mit einer größeren Wahrscheinlichkeit die Fähigkeit, die Anwendung sauber neu zu deployen. Man tut sich hiermit keinen Gefallen.

Ich bin der Überzeugung, dass Organisationen in der Lage sein müssen, ihre geschäftskritischen Anwendungen mit einem definierten Zustand automatisiert ausrollen zu können. Dies unterstützt Releasewechsel, erleichtert den Auf- und Abbau von Testumgebungen sowie die Verifizierung von Fehlern und das Nachstellen von Bugs. Anwendungen können so auch deutlich leichter und schneller gegen neuen Bibliotheken und Laufzeitumgebungen getestet werden. Es lohnt sich, Zeit zum Schärfen der Axt zu investieren, bevor man mit dem Fällen der Bäume beginnt. Oder anders ausgedrückt, wer keine Zeit hat, den Zaun zu reparieren, weil er mit Kühe einfangen beschäftigt ist, wird nie zum Melken kommen.

Open Source Distributionen

In dieser Kategorie auf Seite 15 listet der Bericht die Linux-Distributionen auf, die von den Umfrageteilnehmern verwendet werden. Ubuntu führt diese Liste an und liegt mit 46 % vor Debian mit 23%. Platz 3 geht an CentOS mit 22%. Den undankbaren vierten Platz belegt Amazon Linux mit knapp 20%. Die noch recht neue Distribution CentOS Stream findet sich auf Platz 13 mit 9,5%.

Ich habe diese Werte mit denen aus dem State of Open Source Report von 2023 verglichen. Ubuntu hat im Vergleich um 27 % zugelegt (Platz 1 mit 29% in 2023). Debian kam 2023 mit 16,63% auf Platz 6 hinter CentOS Stream mit 16,74%. Die Plätze 2 und 3 wurden 2023 von Alpine Linux (21,1%) und Oracle Linux (19,72%) belegt. CentOS kam damals mit 15% auf Platz 8.

Der Bericht von 2024 spekuliert, dass Red Hat’s Änderung beim Zugriff auf den RHEL Quelltext und das EoL von CentOS mitverantwortlich für diese Veränderungen sind, kann jedoch keine klaren Belege dafür liefern. Laut Bericht sind die Linux Wars noch nicht entschieden und wir können auf den kommenden Bericht gespannt sein.

Es hat mich überrascht, dass RHEL und SLES es gar nicht in das Ranking geschafft haben. Unter Berücksichtigung, dass die Kostenreduktion in diesem Bericht die Hauptmotivation für den Einsatz von Open Source darstellt, lässt sich ggf. erklären, warum Distributionen gerade nicht hoch im Kurs stehen, die kostenpflichtige Support-Subskriptionen für den produktiven Einsatz voraussetzen.

Ich freue mich schon darauf, herauszufinden, wie dieses Ranking im nächsten Bericht aussieht.

Cloud-Native Open Source Technologies

Das Diagramm auf Seite 17 zeigt das Ranking der wichtigsten Cloud-Native Open Source Technologies für die Umfrageteilnehmer. Platz 1 wird von Docker mit 44,6 % eingenommen, gefolgt von Kubernetes mit 33,61 %.

Der große Vorsprung von Docker vor Podman mit 16,6 % hat mich ein wenig überrascht. Ich hätte den Abstand nicht als so groß eingeschätzt. Hier interessiert mich, welche Vorteile die Nutzer in Docker gegenüber Podman sehen. Leider macht der Bericht hierzu keine Aussage. Ich selbst nutze Podman unter Debian, Fedora und RHEL. In Debian stehen ungünstigerweise nur ältere Podman Releases zur Verfügung, denen wichtige Funktionen fehlen. Dies ist in meinen Augen eine Erklärung, warum Podman gerade in diesen Distributionen wenig genutzt wird. Dies ist allerdings nur wilde Spekulation meinerseits. Ich kann dies nicht belegen.

Für mich ebenfalls unerwartet ist OpenStack mit knapp 18 % sowie OKD und Rancher mit jeweils unter 10%. In diesem Bereich leide ich vermutlich an Betriebsblindheit. Wenn man bei Red Hat arbeitet, kann man leicht den Eindruck gewinnen, dass die ganze Welt nur noch OpenShift macht.

Ich freue mich darauf, diese Kategorie über die nächsten Jahre zu beobachten und zu sehen, wie sich Podman entwickelt, wofür ich eine gewisse Vorliebe habe.

Automations- und Konfigurations-Management

Wer die Kategorie Ansible in diesem Blog kennt, weiß bereits, dass ich mich gerne mit Ansible beschäftige. So freut es mich zu sehen, dass Ansible im betrachteten Bericht auf Seite 25 Platz 1 mit 30% belegt. Überraschend finde ich hingegen, dass 27% angaben, keinerlei Open Source Automations- bzw. Konfigurationsmanagement zu verwenden. Der Bericht führt dies auf Antworten aus jungen Unternehmen zurück, die (noch) keine Notwendigkeit für Automation sehen. Ich möchte diesen Unternehmen empfehlen, frühzeitig eine Automation First Philosophie zu entwickeln, da ich überzeugt bin, dass sich ein konsequenter Einsatz von Automations- und Konfigurationsmanagementwerkzeugen schnell auszahlt.

Unter den Systemadministratoren liegen Ansible (40 %) und Puppet (36%) als beliebteste Werkzeuge nah beieinander. Es ist immer gut, Auswahl und Wettbewerb zu haben. Ich freue mich über den Anteil von Puppet, gerade weil ich in den Nachrichten nur noch wenig Notiz davon nehme.

Salt liegt bei unter 10 % und ich habe auch schon längere Zeit nichts mehr von diesem Projekt gehört. Schade, die Architektur von Salt finde ich ganz interessant.

Im aktuellen Bericht nutzen knapp 23 % Terraform und der Lizenzwechsel zeigt noch keine große Abwanderung zu dessen Fork OpenTofu. Da die Datenerhebung jedoch Ende 2023 durchgeführt wurde, kann der Bericht eine etwaige Nutzerabwanderung noch nicht darstellen. In 2024 hat IBM die Übernahme von Hashi Corp bekannt gegeben. Ich bin gespannt, wie es mit den Produkten und deren Nutzung weitergeht. Hoffentlich gibt der nächste Bericht erste Einblicke.

Fazit

Durch die Arbeit in einem großen IT-Unternehmen mit einem starken eigenen Portfolio fällt es leicht, eine Betriebsblindheit für die Entwicklungen außerhalb des eigenen Kosmos zu entwickeln. Berichte wie der 2024 State of the Open Source Report helfen, der Betriebsblindheit entgegenzuwirken.

Ich habe nicht alle Kategorien des aktuellen Berichts im Detail betrachtet, sondern mir diejenigen herausgepickt, die mein persönliches Interesse ansprechen. Darüber in diesem Blog zu schreiben, hilft mir, über den Bericht und meine Erfahrungen zu reflektieren. Und wenn euch dieser Kommentar ebenfalls gefällt, freue ich mich umso mehr.

10. September 2024

Solo ist ein Ende des vergangenen Jahres vom Mozilla Innovation Studio angekündigter Website-Builder, der auf Künstliche Intelligenz (KI) und einen maximal einfachen Erstellungsprozess setzt. Nun steht Solo 1.2 bereit und bringt viele Neuerungen.

Im Rahmen der Innovation Week im Dezember 2023 hatte das Mozilla Innovation Studio Solo angekündigt. Dabei handelt es sich um einen sogenannten Website-Builder mit Fokus auf Selbständige, der auf generative Künstliche Intelligenz für einen maximal einfachen Erstellungsprozess setzt.

Jetzt Website-Builder Solo von Mozilla testen

Seit dem Start hat Mozilla einige Funktionen ergänzt. Jetzt hat Mozilla Solo 1.2 fertiggestellt.

In Textfeldern mit Formatierungen gibt es jetzt Funktionen für Rückgängig und Wiederherstellen. Eingebettete YouTube-Videos unterstützen benutzerdefinierte URL-Parameter, beispielsweise zur Angabe der Startzeit. Es gibt einen neuen FAQ-Abschnitt für Fragen und Antworten. Ein neuer Team-Abschnitt kann zur Präsentation von Teammitgliedern genutzt werden. Für den Einleitungs-Abschnitt wurde das Zeichenlimit erhöht.

Verbessert wurde das Erfassen von Daten von Facebook, Instagram und Thumbtack zur Generierung der Website. Thumbstack kann jetzt auch als Social Media Icon im Header und Footer hinzugefügt werden. Was Bildformate betrifft, werden jetzt auch WebP- sowie animierte GIF-Grafiken unterstützt.

Dazu kommen noch diverse Fehlerbehebungen und Performance-Verbesserungen.

Ebenfalls verbessert wurden die zwei Nebenprojekte von Solo: Ein Generator für Geschäftsideen sowie ein Generator für Geschäftsnamen.

Die Nutzung von Solo ist kostenlos. Geringe Kosten fallen höchstens bei Verwendung einer benutzerdefinierten Domain an. Als Nächstes stehen weitere Optionen zum Bearbeiten und Gestalten, ein Abschnitt für Kundenlogos, weitere Anpassungsoptionen für das Kontaktformular sowie eine neue Bibliothek zur Verwendung von Icons auf der Website auf der Roadmap.

Der Beitrag Website-Builder Solo von Mozilla: Version 1.2 fertiggestellt erschien zuerst auf soeren-hentzschel.at.

8. September 2024

Als mein Tuxedo AURA 15 Gen2 mit AMD Ryzen 7 5700U  Prozessor ein mechanisches Problem bekam und ich es zur Reparatur schicken musste, stand ich vor einem Dilemma: Was mache ich ohne mein gewohntes System?

Glücklicherweise habe ich die SSD M.2 aus dem Tuxedo ausgebaut und bin auf die Idee gekommen, diese am deutlich älteren Lenovo T480 mit WQHD-Display anzuschließen, das ich als Ersatzgerät nutze.

 

 

 

 

Von lewing@isc.tamu.edu Larry Ewing and The GIMP, Attribution, https://commons.wikimedia.org/w/index.php?curid=80930

 

 

Der große Test: Kann ich einfach die SSD über den USB3-Port an den Lenovo anschließen und booten? Immerhin sind die Unterschiede der Hardware nicht zu übersehen:

  • Der Tuxedo hat einen AMD Ryzen 7 5700U Prozessor, während der Lenovo mit einem Intel Core i5-8350U läuft.
  • Die Grafikkarten, die WiFi-Module und auch die Sound-Architektur sind unterschiedlich.

Und es funktioniert!

Trotz dieser Hardwareunterschiede bootete mein Debian Trixie auf dem Lenovo T480 ohne Probleme. Es war so, als ob das Betriebssystem gar nicht bemerkt hätte, dass es sich plötzlich in einer komplett anderen Umgebung befindet. WLAN, Grafik, Sound – alles funktionierte sofort und ohne zusätzliche Treiberinstallation oder Anpassungen.

Natürlich verstehe ich, dass das Konzept der Distribution hauptverantwortlich ist, denn die notwendigen Module sind immer mit an Bord, wenn man nicht selbst eingreift ...

Warum ich Linux (noch mehr) liebe

Dieser Moment hat mir erneut gezeigt, warum ich Linux und freie Open-Source-Software so liebe:

Sie ist flexibel, anpassungsfähig und läuft auf verschiedenster Hardware zuverlässig. Wo bei anderen Betriebssystemen oft lange Treiberinstallationen und nervige Konfigurationen nötig sind, geht bei Linux einfach alles reibungslos.

Ich bin begeistert und noch mehr davon überzeugt, dass Freie Software der richtige Weg ist. Sie bietet mir nicht nur die Freiheit, mein System so anzupassen, wie ich es will, sondern auch die Zuverlässigkeit, die man sich von einem Betriebssystem wünscht.

Siehe https://zockertown.de/s9y/index.php?/archives/1465-Warum-ich-Linux-und-Open-Source-so-liebe-Freie-Software.html

 

7. September 2024

Der Enterprise Policy Generator richtet sich an Administratoren von Unternehmen und Organisationen, welche Firefox konfigurieren wollen. Mit dem Enterprise Policy Generator 6.1 ist nun ein Update erschienen.

Enterprise Policy Generator

Download Enterprise Policy Generator für Firefox

Die Enterprise Policy Engine erlaubt es Administratoren, Firefox über eine Konfigurationsdatei zu konfigurieren. Der Vorteil dieser Konfigurationsdatei gegenüber Group Policy Objects (GPO) ist, dass diese Methode nicht nur auf Windows, sondern plattformübergreifend auf Windows, Apple macOS sowie Linux funktioniert.

Der Enterprise Policy Generator hilft bei der Zusammenstellung der sogenannten Enterprise Policies, sodass kein tiefergehendes Studium der Dokumentation und aller möglichen Optionen notwendig ist und sich Administratoren die gewünschten Enterprise Policies einfach zusammenklicken können.

Neuerungen vom Enterprise Policy Generator 6.1

Technische Verbesserungen der Erweiterung

Der Enterprise Policy Generator verfolgt einen selbst generierenden Ansatz, bei dem sich der Aufbau der Oberfläche, das Generieren der Datei policies.json, das Speichern und Laden sowie das Exportieren und Importieren von Konfigurationen vollständig automatisiert aus einer einzelnen internen Konfigurationsdatei ableitet. Zur Unterstützung neuer Unternehmensrichtlinien, welche sich bisher nicht abbilden ließen, wurde die Unterstützung für mehrere zusätzliche Richtlinien-Typen ergänzt.

Für URL-Felder wurde die Option hinzugefügt, eine sichere Verbindung (https://) zu erfordern, außerdem können Infolinks jetzt an weiteren Stellen ergänzt werden. Für Felder mit mehreren möglichen Werten, die per Plus-Symbol hinzugefügt werden können, ist es nun möglich, auch den letzten Wert wieder zu entfernen.

Neue und erweiterte Unternehmensrichtlinien

Neu ist die Unterstützung für die ManagedBookmarks-Richtlinie, um Lesezeichen zu konfigurieren, welche im Gegensatz zur bereits bestehenden Bookmarks-Richtlinie vom Benutzer weder verändert noch gelöscht werden können. Die Unterstützung für Lesezeichen-Ordner folgt mit einem zukünftigen Update.

Ebenfalls neu ist die Unterstützung für die AllowedDomainsForApps-Richtlinie, um Domains festzulegen, welche auf Google Workspace zugreifen dürfen, sowie für die AutoLaunchProtocolsFromOrigins-Richtlinie, um eine Liste externer Protokolle festzulegen, die von aufgelisteten Quellen aus verwendet werden können, ohne dass der Benutzer dazu aufgefordert wird.

Die OverrideFirstRunPage-Richtlinie wurde aktualisiert, um mehrere URLs zu erlauben. Bestehende Konfigurationen wurden automatisch auf die neue Version migriert.

Die Beschreibung der install_sources-Eigenschaft der ExtensionSettings-Richtlinie wurde überarbeitet und ein Infolink ergänzt, um klar zu machen, dass sogenannte Match Patterns in URLs erlaubt sind.

Optionen, welche noch den alten Weg nutzten, Einstellungen für about:config zu verändern, verwenden jetzt die neue Syntax der Preferences-Richtlinie, sodass hier keine Mischung aus alter und neuer Richtlinie mehr stattfindet.

Fehlerbehebungen

Ein großer Schwerpunkt lag auf der Behebung von Problemen in Zusammenhang mit der Handlers-Richtlinie, insbesondere dann, wenn diese in einer Konfiguration gespeichert und dann wieder aus der Konfiguration heraus geladen worden ist.

Außerdem war es bei der Preferences-Richtlinie trotz Validierung möglich, Optionen mit nicht erlaubtem Optionsnamen in einer Konfiguration zu speichern. Wurde eine solche Konfiguration dann geladen, wurde der ungültige Optionsname nicht beanstandet, obwohl Firefox die entsprechende Option nicht unterstützt.

Ausblick

Damit ist die Unterstützung aller Unternehmensrichtlinien bis einschließlich Firefox 78 komplett. Einzige Ausnahme ist die Ordner-Unterstützung für die MangedBookmarks-Richtlinie, welche nachgereicht werden wird. Schon bald wird der Enterprise Policy Generator 6.2.0 erscheinen, welcher die Unterstützung für alle neuen Richtlinien ergänzen wird, welche während der Lebenszeit von Firefox 91 dazugekommen sind. Danach folgen Enterprise Policy Generator 6.3.0 (Firefox 102) und Enterprise Policy Generator 6.4.0 (Firefox 115), ehe schließlich der Enterprise Policy Generator 7.0.0 Firefox 128 oder höher voraussetzen wird.

Entwicklung unterstützen

Wer die Entwicklung des Add-ons unterstützen möchte, kann dies tun, indem er der Welt vom Enterprise Policy Generator erzählt und die Erweiterung auf addons.mozilla.org bewertet. Auch würde ich mich sehr über eine kleine Spende freuen, welche es mir ermöglicht, weitere Zeit in die Entwicklung des Add-on zu investieren, um zusätzliche Features zu implementieren.

Der Beitrag Firefox: Enterprise Policy Generator 6.1 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

4. September 2024

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

Neuerungen von Thunderbird 128.2

Mit dem Update auf Thunderbird 128.2 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 128.2 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

3. September 2024

Mozilla hat Firefox 130 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

Verbesserungen der Übersetzungsfunktion

Firefox besitzt eine Übersetzungsfunktion für Websites, welche im Gegensatz zu Cloud-Übersetzern wie Google Translate lokal arbeitet, die eingegebenen Texte also nicht an einen fremden Server sendet. Dabei können wahlweise komplette Websites oder nur markierter Text übersetzt werden. Die Übersetzung von markiertem Text steht ab sofort auch unmittelbar nach einer vollständigen Website-Übersetzung zur Verfügung.

Firefox 130

Neben title und placebolder werden jetzt noch eine ganze Reihe weiterer HTML-Attribute übersetzt. Außerdem wurde die Übersetzungsqualität beim Vorkommen sogenannter bedingter Trennstriche verbessert.

Leichterer Vorab-Zugang zu kommenden Features

Im neuen Abschnitt „Firefox Labs“ der Firefox-Einstellungen lassen sich verschiedene Browser-Funktionen und Plattform-Features vorab aktivieren, an denen Mozilla arbeitet und deren standardmäßige Aktivierung für einen späteren Zeitpunkt geplant ist. Auf diese Weise kann Mozilla zusätzliches Feedback einholen, bevor neue Funktionen fertig sind und flächendeckend ausgerollt werden. Zwar gibt es mit about:config bereits einen Mechanismus zur Vorab-Aktivierung neuer Features, allerdings müssen die entsprechenden Optionsnamen dafür bekannt sein. Die Seite „Firefox Labs“ macht bestimmte Funktionen besser sichtbar und gibt dem Nutzer zusätzlich eine Beschreibung, teilweise auch mit erklärenden Links.

Firefox 130

KI-Chatbots

Eines der experimentellen neuen Features ist eine Chatbot-Integration. Dabei stehen Google Gemini, ChatGPT, HuggingChat, Anthropic Claude sowie Le Chat Mistral zur Verfügung. Die Chatbots können direkt über die Sidebar genutzt werden.

Über das Kontextmenü oder, falls über eine weitere Option aktiviert, eine Schaltfläche nach dem Markieren von Text können auch direkt Funktionen zur Zusammenfassung des markierten Inhalts, zur Vereinfachung der Sprache sowie zu einem Abfragen des Inhalts ausgewählt werden.

Firefox 130

Automatischer Bild-im-Bild-Modus bei Tabwechsel

Der sogenannte Bild-im-Bild-Modus erlaubt es, Videos von der Website loszulösen und über andere Tabs und sogar Anwendungen zu legen. Innerhalb des losgelösten Video-Fensters kann die Wiedergabe pausiert und wieder gestartet werden, man sieht den Wiedergabe-Fortschritt und kann an eine andere Stelle des Videos springen, ein Wechsel in den Vollbildmodus ist möglich, der Ton kann aus- und wieder eingeschaltet werden, die Lautstärke kann geändert werden und auch Untertitel werden auf vielen Plattformen unterstützt.

Über die „Firefox Labs“ kann eine neue Funktion aktiviert werden. Wird ein Video auf einer Website wiedergegeben, startet Firefox damit automatisch den Bild-im-Bild-Modus, wenn der Tab gewechselt wird. Sobald man wieder in den ursprünglichen Tab zurückkehrt, wird der Bild-im-Bild-Modus ebenso automatisch wieder beendet.

Automatischer Bild-im-Bild-Modus für Videos, Firefox 130

Lokale KI generiert Alternativtexte für Bilder in PDF-Dateien

PDF-Dateien betrachten ist in jedem Browser möglich. Firefox gehört zu den wenigen Browsern mit einem PDF-Editor. So kann auf PDF-Dateien gezeichnet werden, es können aber auch Texte und Bilder eingefügt werden.

Dabei besitzt Firefox bereits die Möglichkeit, einen Alternativtext für eingefügte Bilder zu hinterlegen. Dies ist aus Gründen der Barrierefreiheit wichtig, damit die Bildinformation auch für Menschen mit eingeschränkten Sehfähigkeiten bis hin zur Blindheit zugänglich bleibt.

Eine lokale KI kann den Anwender ab Firefox 130 dabei unterstützen. Damit schlägt Firefox basierend auf dem Bildinhalt automatisch einen Beschreibungstext für das hinterlegte Bild vor. Lokale KI bedeutet, dass sich Firefox das entsprechende KI-Modell bei der ersten Verwendung des Features herunterlädt und die Arbeit dann auf dem Gerät des Anwenders geschieht. Die eingefügten Bilder werden also zu keinem Zeitpunkt an Mozilla oder eine Drittanbieter-Cloud gesendet.

Firefox 130

Diese Neuerung wird schrittweise im Laufe der kommenden Wochen für alle Nutzer ausgerollt werden.

Zur manuellen Aktivierung müssen drei Schalter per about:config auf true gesetzt werden: browser.ml.enable, pdfjs.enableAltText und pdfjs.enableUpdatedAddImage. Die Vorschläge werden derzeit noch in englischer Sprache generiert.

Wetter und Hintergründe für Firefox-Startseite

Die Firefox-Startseite lässt sich jetzt auf Wunsch mit einem Hintergrundbild oder einer Hintergrundfarbe nutzen.

Für Nutzer in den USA und Kanada wird auf der Firefox-Startseite standardmäßig das Wetter angezeigt. Aber auch alle anderen können dieses Feature via about:config aktivieren, indem der Schalter browser.newtabpage.activity-stream.system.showWeather per Doppelklick auf true gesetzt wird.

Firefox 130

Personalisierung der Pocket-Empfehlungen auf Firefox-Startseite

Ein weiteres neues Feature für die Firefox-Startseite ist die optionale Personalisierung der Pocket-Empfehlungen. Dabei stehen die folgenden Kategorien zur Auswahl: Geschäftliches, Unterhaltung, Essen, Gesundheit, Finanzen, Politik, Sport, Technik, Reisen, Wissenschaft sowie Life-Hacks.

Firefox 130

Diese Neuerung wird schrittweise im Laufe der kommenden Wochen für alle Nutzer ausgerollt werden.

Nutzer in den USA, Kanada und Großbritannien erhalten dieses Feature zuerst. Aber auch alle anderen können dieses Feature via about:config aktivieren, indem der Schalter browser.newtabpage.activity-stream.discoverystream.topicSelection.enabled per Doppelklick auf true gesetzt wird.

Sonstige Endnutzer-Neuerungen von Firefox 130

Der sogenannte Overscroll-Effekt, der in Firefox auf Windows und macOS bereits seit langer Zeit aktiviert ist, ist nun auch auf Linux standardmäßig aktiviert. Dieser Effekt beschreibt das Verhalten, welches zu beobachten ist, wenn man über den Seitenanfang respektive das Seitenende hinaus scrollt.

Das bereits lange bestehende Problem, dass der Eintrag „Kopieren“ im Kontextmenü unter bestimmten Umständen manchmal ausgegraut war, wurde behoben.

Erweiterungen lösen nicht länger auf Websites den Berechtigungs-Indikator (blauer Punkt) in der Schaltfläche für das Erweiterungs-Menü aus, wenn die entsprechende Host-Berechtigung als optional deklariert ist.

Die Schaltfläche für die Aktivierung des Bild-im-Bild-Modus wurde für Hulu anders positioniert, um nicht hinter anderen Elementen des Videoplayers verdeckt zu sein.

Die Wiedergabe von AV1-Videos auf Windows-Systemen mit ARM-CPU wurde aktiviert.

Die Funktion zur Aufnahme eines Bildschirmfotos kann jetzt auch Elemente auswählen, welche sich innerhalb des sogenannten Shadow DOMs einer Website befinden.

Die Texte der Einstellungen für den Nur-HTTPS-Modus wurden vereinfacht und stellen nun klar, dass Firefox auch bei abgeschaltetem Nur-HTTPS-Modus zunächst eine Verbindung via HTTPS versucht.

Mehr Sicherheit für Firefox-Nutzer

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

Verbesserungen der Entwicklerwerkzeuge

Im Responsive Design Modus werden nicht länger automatisch der User-Agent und die Touch-Simulation zurückgesetzt, wenn man die Fenstergröße ändert.

Bei geöffneten Entwicklerwerkzeugen zeigt Firefox während des Veränderns der Fenstergröße die aktuelle Fenstergröße in der oberen rechten Ecke an.

Per Doppelklick auf ein Element im Inspektor lassen sich dort jetzt auch zusätzliche Attribute ergänzen.

Verbesserungen der Webplattform

Das name-Attribut des <details>-Elements erlaubt die Gruppierung von Elementen, bei denen nur ein Element einer Gruppe gleichzeitig offen sein kann. Ein Anwendungsfall hierfür sind Akkordeons, ohne dass dafür JavaScript benötigt wird.

Die hyphens-Eigenschaft in CSS funktioniert nun auch für Tschechisch und Slowakisch korrekt.

Firefox 130 unterstützt außerdem die WebCodecs API.

Dies war nur eine kleine Auswahl der Verbesserungen der Webplattform. Eine vollständige Auflistung lassen sich in den MDN Web Docs nachlesen.

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

2. September 2024

In diesem Beitrag erkläre ich kurz, was Ansible Lint ist und demonstriere dessen Anwendung am Beispiel meiner Ansible Collection tronde/nextcloud.

Er richtet sich primär an Personen, die mit Ansible Lint noch nicht vertraut sind. Linting-Profis werden vermutlich keine neuen Erkenntnisse gewinnen.

Was ist Ansible Lint und wofür ist es gut?

Lint (englisch für „Fussel“) ist eine Software zur statischen Code-Analyse. Davon abgeleitet hat sich das Verb linten (englisch to lint) für das Durchführen der statischen Code-Analyse etabliert.

https://de.wikipedia.org/wiki/Lint_(Programmierwerkzeug)

Dem obigen Zitat und der Projektdokumentation folgend, ist Ansible Lint dementsprechend ein Werkzeug zur statischen Code-Analyse von Ansible Playbooks, Roles und Collections. Mit der Anwendung dieses Werkzeugs auf die eigenen Ansible-Inhalte kann sichergestellt werden, dass diese gängigen Konventionen und Standards entsprechen.

Wie wird Ansible Lint installiert?

Die Dokumentation beschreibt verschiedene Installationsverfahren. Ich habe ansible-lint als Bestandteil der Ansible Development Tools (ADT) installiert. Dies ist ein Werkzeugkasten mit weiteren Programmen wie z.B. `ansible-core` und Ansible Molecule, welche ich für die Entwicklung meiner Ansible Collection nutze.

Auf meiner Fedora Workstation habe ich die ADT wie folgt installiert:

~]$ mkdir venv
~]$ cd venv
venv]$ ]$ python -m venv adt
venv]$ source adt/bin/activate
(adt) venv]$ pip install pip --upgrade
Requirement already satisfied: pip in ./adt/lib64/python3.12/site-packages (23.3.2)
Collecting pip
  Using cached pip-24.2-py3-none-any.whl.metadata (3.6 kB)
Using cached pip-24.2-py3-none-any.whl (1.8 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.3.2
    Uninstalling pip-23.3.2:
      Successfully uninstalled pip-23.3.2
Successfully installed pip-24.2
(adt) venv]$  pip install ansible-dev-tools
Collecting ansible-dev-tools
  Using cached ansible_dev_tools-24.7.2-py3-none-any.whl.metadata (11 kB)
… Ausgabe gekürzt
(adt) venv]$ adt --version
ansible-builder                          3.1.0
ansible-core                             2.17.3
ansible-creator                          24.7.1
ansible-dev-environment                  24.7.0
ansible-dev-tools                        24.7.2
ansible-lint                             24.7.0
ansible-navigator                        24.8.0
ansible-sign                             0.1.1
molecule                                 24.8.0
pytest-ansible                           24.8.0
tox-ansible                              24.8.0

Ansible Lint liefert eine ganze Reihe von Profilen mit, welche Autoren unterstützen, die Code-Qualität schrittweise zu verbessern. Der Befehl ansible-lint --list-profiles gibt die verfügbaren Profile mit einer Beschreibung aus.

Ich werde im Folgenden mit dem Profil shared arbeiten, welches für Autoren gedacht ist, die ihre Collection auf https://galaxy.ansible.com veröffentlichen möchten.

Eine Collection linten

Bevor es zur Sache geht, wechsel ich in das Projektverzeichnis meiner Ansible Collection und erstelle einen neuen Branch, mit dem Befehl git checkout -b lint. Die in meinem Repo vorhandene Datei .ansible-lint-ignore lösche ich, da ich im folgenden alle Fehler und Regelverstöße sehen möchte. Zu Beginn stellt sich mein Arbeitsverzeichnis wie folgt dar:

(adt) nextcloud]$ git status
On branch lint
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	deleted:    .ansible-lint-ignore

no changes added to commit (use "git add" and/or "git commit -a")

Das Programm ansible-lint besitzt mit der Option --fix die Fähigkeit, Fehler automatisch zu korrigieren und auch YAML-Dateien neu zu formatieren. Der folgende Code-Block umfasst die gekürzte Ausgabe, wenn das Kommando ansible-lint --profile=shared --fix im Arbeitsverzeichnis ausgeführt wird.

(adt) nextcloud]$ ansible-lint --profile=shared --fix
WARNING  Listing 37 violation(s) that are fatal
galaxy[no-changelog]: No changelog found. Please add a changelog file. Refer to the galaxy.md file for more info.
galaxy.yml:1

var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex. (NC_HTML) (vars: NC_HTML)
roles/backup_restore_nextcloud/defaults/main.yml:4

…

risky-file-permissions: File permissions unset or incorrect.
roles/backup_restore_nextcloud/tasks/main.yml:18 Task/Handler: Copy backup files to container host

no-changed-when: Commands should not change things if nothing needs doing.
roles/backup_restore_nextcloud/tasks/main.yml:40 Task/Handler: Import tarball contents into an existing podman volume

no-changed-when: Commands should not change things if nothing needs doing.
roles/backup_restore_nextcloud/tasks/main.yml:54 Task/Handler: Export podman volumes to tarballs

var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex. (MYSQL_DATABASE) (vars: MYSQL_DATABASE)
roles/deploy_nextcloud_with_mariadb_pod/defaults/main.yml:13

…

Read documentation for instructions on how to ignore specific rule violations.

Modified 6 files.
                     Rule Violation Summary                      
 count tag                    profile rule associated tags       
    33 var-naming[pattern]    basic   idiom                      
     1 risky-file-permissions safety  unpredictability           
     1 galaxy[no-changelog]   shared  metadata                   
     2 no-changed-when        shared  command-shell, idempotency 

Failed: 37 failure(s), 0 warning(s) on 25 files. Profile 'shared' was required, but 'min' profile passed.

Obige Ausgabe:

  • Benennt Funde mit Pfadangabe und Zeilennummer
  • Führt 37 Fehler auf, inkl. der Regeln, die nicht eingehalten werden; Beispiele
    • galaxy[no-changelog]: No changelog found. Please add a changelog file. Refer to the galaxy.md file for more info.
    • risky-file-permissions: File permissions unset or incorrect.
    • no-changed-when: Commands should not change things if nothing needs doing.
    • var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex.
  • Informiert, dass ansible-lint Änderungen an 6 Dateien vorgenommen hat

Mit git diff verschaffe ich mir einen Überblick, welche Änderungen ansible-lint vorgenommen hat. Dies sind in meinem Fall:

  • Quoting von Strings
  • Einrückung von Kommentaren

Als Nächstes sehe ich mir die übrigen Fehler der Reihe nach an. Die Dokumentation beinhaltet eine Übersicht mit Beschreibungen der einzelnen Regeln. Dies ist nützlich, wenn der kurze Text in der Ausgabe von ansible-lint nicht ausreichend ist.

galaxy[no-changelog]: No changelog found. Please add a changelog file.

Unter Galaxy: Changelog Details finden sich Hinweise, wie dieser Fehler zu beheben ist. Ich erstelle die leere Datei CHANGELOG.md im Wurzelverzeichnis meiner Collection und der Fehler ist abgestellt.

Natürlich werde ich diese Datei zukünftig nutzen, um die wichtigsten Änderungen zu dokumentieren. ;-)

risky-file-permissions: File permissions unset or incorrect.

Auch hier habe ich kurz in der Dokumentation unter risky-file-permissions nachgesehen. Den Fehler habe ich abgestellt, indem ich den Parameter mode: 0600 zum Task hinzugefügt habe.

Dies war ein Flüchtigkeitsfehler, wie er häufig passieren kann, wenn man seinen Code nicht konsequent überprüft. Ohne den Dateimode explizit zu setzen, kann dies zu unvorhersehbaren bzw. überraschenden Verhalten führen.

no-changed-when: Commands should not change things if nothing needs doing.

An zwei Stellen bin ich leider nicht herumgekommen, das ansible.builtin.command Modul zu verwenden, da kein natives Modul für diese Aufgabe existiert. Betrachtet man sich die beiden Tasks fällt auf, dass diese jedes Mal Daten verarbeiten werden. Sie sind nicht idempotent. Im Ergebnis können sie erfolgreich sein oder fehlschlagen, aber sie werden immer Daten verarbeiten und dadurch ändern.

 41     - name: Import tarball contents into an existing podman volume
 42       ansible.builtin.command:
 43         cmd: |
 44           podman volume import
 45           {{ item }} {{ backup_restore_nextcloud_import_path }}/{{ item }}.tar
 46       loop:
 47         - "{{ NC_HTML }}"
 48         - "{{ NC_APPS }}"
 49         - "{{ NC_CONFIG }}"
 50         - "{{ NC_DATA }}"
 51         - "{{ MYSQL_DATA }}"
 52            
 53 # I need to use the command module as the volume module lacks the functionality
 54 # to export podman volumes.
 55 - name: Export podman volumes to tarballs
 56   ansible.builtin.command:
 57     cmd: podman volume export {{ item }} --output {{ backup_restore_nextcloud_export_path }}/{{ item }}.tar
 58   loop:    
 59     - "{{ NC_HTML }}"
 60     - "{{ NC_APPS }}"
 61     - "{{ NC_CONFIG }}"
 62     - "{{ NC_DATA }}"
 63     - "{{ MYSQL_DATA }}"
 64   tags:    
 65     - never
 66     - backup

Um herauszufinden, wie ich ansible-lint zufriedenstellen kann, schaue ich wieder in der Doku unter no-changed-when nach. Nach der dortigen Beschreibung ist mein Fehler, dass ich den Rückgabewert des Kommandos nicht behandel. Daher registriere ich nun eine Variable je Task, die die Task-Ausgabe aufnimmt und prüfe den Rückgabewert. Ist der Rückgabewert gleich 0 wird der Task-Status auf changed gesetzt, ist der Rückgabewert ungleich 0 wird der Status entsprechend auf failed gesetzt. Das ganze sieht nun wie folgt aus:

 41     - name: Import tarball contents into an existing podman volume
 42       ansible.builtin.command:
 43         cmd: |
 44           podman volume import
 45           {{ item }} {{ backup_restore_nextcloud_import_path }}/{{ item }}.tar
 46       register: __import_tar_output
 47       changed_when: __import_tar_output.rc == 0
 48       failed_when: __import_tar_output.rc != 0
 49       loop:
 50         - "{{ NC_HTML }}"
 51         - "{{ NC_APPS }}"
 52         - "{{ NC_CONFIG }}"
 53         - "{{ NC_DATA }}"
 54         - "{{ MYSQL_DATA }}"
 55  
 56 # I need to use the command module as the volume module lacks the functionality
 57 # to export podman volumes.
 58 - name: Export podman volumes to tarballs
 59   ansible.builtin.command:
 60     cmd: podman volume export {{ item }} --output {{ backup_restore_nextcloud_export_path }}/{{ item }}.tar
 61   register: __import_tar_output
 62   changed_when: __import_tar_output.rc == 0
 63   failed_when: __import_tar_output.rc != 0
 64   loop:
 65     - "{{ NC_HTML }}"
 66     - "{{ NC_APPS }}"
 67     - "{{ NC_CONFIG }}"
 68     - "{{ NC_DATA }}"
 69     - "{{ MYSQL_DATA }}"
 70   tags:
 71     - never
 72     - backup

Collection-intern verwendete Variablen leite ich mit zwei Unterstrichen (‚_‘) ein, um mir zu verdeutlichen, dass diese nicht durch den Nutzer gesetzt werden und daher auch nicht im README.md oder defaults/main.yml dokumentiert sind.

var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex.

Hier brauche ich nicht weiter nachzuschlagen. Ich verstoße gegen diese Regel, da ich meine Variablen-Namen großgeschrieben habe. Die Ausgabe von ansible-lint zeigt dies deutlich:

var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex. (NC_HTML) (vars: NC_HTML)
roles/backup_restore_nextcloud/defaults/main.yml:4

Diese Meldungen lassen sich mit folgendem Bash-Einzeiler abstellen:

$ for text in $(cut -d':' -f 1 roles/deploy_nextcloud_with_mariadb_pod/defaults/main.yml | grep -v '^$\|^#\|---'); do find roles -type f -iname "*.yml" | xargs sed -i -e "s/$text/\L&/g"; done

Aus verschiedenen Gründen hebe ich mir die Überarbeitung für später auf und nutze die Meldung, um zu demonstrieren, wie man ansible-lint dazu bringt, bestimmte Fehler zu ignorieren.

Um Regeln für ausgewählte Dateien zu ignorieren, spezifiziert man den jeweiligen Dateinamen und den Namen der Regel in der Datei .ansible-lint-ignore, welche im Wurzelverzeichnis der Collection erstellt wird:

nextcloud]$ cat .ansible-lint-ignore 
roles/deploy_nextcloud_with_mariadb_pod/defaults/main.yml var-naming[pattern]
roles/backup_restore_nextcloud/defaults/main.yml var-naming[pattern]

Zweiter Durchgang mit ansible-lint

Damit habe ich alle Probleme, die im ersten Durchlauf von ansible-lint gefunden wurden, adressiert. Ein zweiter Durchlauf zeigt das Ergebnis meiner Arbeit:

(adt) nextcloud]$ ansible-lint --profile=shared
WARNING  Listing 33 violation(s) marked as ignored, likely already known
var-naming[pattern]: Variables names should match ^[a-z_][a-z0-9_]*$ regex. (NC_HTML) (vars: NC_HTML) (warning) # ignored
roles/backup_restore_nextcloud/defaults/main.yml:4

…Ausgabe gekürzt

WARNING  Listing 1 violation(s) that are fatal
yaml[octal-values]: Forbidden implicit octal value "0600"
roles/backup_restore_nextcloud/tasks/main.yml:22

Read documentation for instructions on how to ignore specific rule violations.

                Rule Violation Summary                 
 count tag                profile rule associated tags 
     1 yaml[octal-values] basic   formatting, yaml     

Failed: 1 failure(s), 33 warning(s) on 27 files. Profile 'shared' was required, but 'min' profile passed.

Die ignorierten Regelverstöße werden als Warnung weiterhin ausgegeben, nehmen jedoch keinen Einfluss auf die abschließende Bewertung. Dafür habe ich einen neuen Fehler (yaml[octal-values]) eingebaut. Nach dem aktuellen Regelwerk erfordern oktale Werte ein explizites Quoting, um als Strings verarbeitet zu werden.

Nachdem ich das Problem mit mode: '0600' behoben habe, endet ein weiterer Lauf von ansible-lint schlussendlich mit:

Passed: 0 failure(s), 33 warning(s) on 27 files. Profile 'shared' was required, but 'production' profile passed.

Damit erfüllt meine Collection aktuell sogar die Anforderungen des nächst höheren Profils production; allerdings nur, weil ich einige Regeln bewusst ignoriere. Daher ist aktuell noch nicht sichergestellt, dass meine Collection tatsächlich bei einem Import auf Ansible Galaxy akzeptiert wird.

Zusammenfassung

  • Ansible Lint ist ein Werkzeug zur statischen Analyse von Ansible Playbooks, Roles und Collections
  • Das Werkzeug unterstützt Autoren dabei, gängige Konventionen und Standards einzuhalten und die Qualität des eigenen Codes auf einem Mindest-Niveau zu halten
  • Ansible Lint bietet mehrere Profile für verschiedene Anwendungsfälle
  • Regeln können bei Bedarf ignoriert werden, was zwar das Ergebnis des Linting beeinflusst, die Qualität jedoch nicht steigert
  • Linting sollte fester Bestandteil des eigenen Entwicklungsworkflows sein und stets nach Änderungen durchgeführt werden

Ich persönlich führe ansible-lint gern in einem eigenständigen Schritt aus. Es besteht jedoch auch die Möglichkeit, dies in den verwendeten Editor, die genutzte IDE oder Molecule zu integrieren und bei Änderungen automatisch laufen zu lassen.

Ich freue mich, wenn euch dieser Artikel gefallen hat.

Quellen und weiterführende Links

1. September 2024

Die Entwickler der Kartenanwendung Organic Maps haben streiten sich derzeit mit F-Droid um sogenannte Anti-Features. F-Droid zensiert dabei Open-Source-Apps nach eigenwilligen Kriterien in seiner offiziellen App. Sogenannte Anti-Features bzw. auf Deutsch unerwünschte Merkmale. Anwender sollten daher auf alternative Clients wie Droid-ify, Neo Store oder Obtainium ausweichen.

Die aktuelle Auseinandersetzung (Diskussion auf Mastodon) entstand um eine Neufassung der unerwünschten Merkmale. Dazu muss man wissen, dass die F-Droid-Entwickler nicht nur ausschließlich Open-Source-Apps ausliefern, sondern den Entwicklern auch vorschreiben, wie diese ausgestaltet sein müssen. Einige Anti-Features sind klar, andere sind reine Willkür. Dazu gehört die Verwendung von nicht quelloffenen Netzwerkdiensten oder die Abhängigkeit von bestimmten Netzwerkdiensten. Letztes Anti-Feature wurde kürzlich neu hinzugefügt.

Passt eine Anwendung nicht, dann werden im einfachsten Fall die unerwünschten Merkmale gelistet. Fennec – die F-Droid-Variante von Firefox – zeigt z.B. folgende Warnung:

Andere Apps werden gar nicht erst zugelassen und müssen ihre eigenen Paketquellen pflegen. Aus diesem Grund sind viele Open-Source-Apps in F-Droid nicht vorhanden, nur in veralteten Versionen oder in modifizierten Varianten.

In der offiziellen F-Droid-App werden Apps bei der Einführung neuer Anti-Features gewissermaßen willkürlich zensiert. Wer im F-Droid-Client nach Organic Maps suchte, wurde zeitweise nicht fündig. Denn die neu eingeführten Anti-Features bzw. die davon betroffenen Apps wurden nämlich automatisch ausgeblendet und mussten vom Nutzer erst aktiv eingeblendet werden.

Anwender sollten daher den offiziellen Client meiden und auf alternative Clients wie Droid-ify oder Neo Store ausweichen. Deren Entwickler setzen die Zensurmaßnahmen von F-Droid nicht um und ignorieren die Anti-Features. Dadurch bieten sie die Vorteile des zentralen Open-Source-Stores, aber vermeiden manche der Nachteile. Wie lange es diese Clients daher noch geben wird, ist nicht abzusehen. Den Entwicklern wurden schon DDOS-Attacken vorgeworfen, weil sie die F-Droid-Mirrors nicht unterstützen.

Wer sich für Alternativen zu F-Droid interessiert, sollte einen Blick auf Obtainium werfen. Das ist eine App, mit der man direkt aus Quellen wie GitHub (und auch F-Droid) installieren kann. Dabei muss der Nutzer natürlich selbst genau prüfen, was er installiert, da kein “Store” zwischen dem Anwender und dem Entwickler steht. Obtainium installiert zudem direkt die publizierten Tarballs und baut nicht selbst den Code, wie das F-Droid tut. Auch hier wieder eine Vertrauensfrage gegenüber den Entwicklern.

F-Droid ist jedenfalls kein Netzwerk, dessen Ausrichtung und Entwicklung man uneingeschränkt vertrauen kann. Alternativen in den Blick zu nehmen schadet nicht.

Der Artikel F-Droid Anti-Features – Offiziellen Client meiden erschien zuerst auf Curius

31. August 2024

Interessanter Gegentrend: Während ich vor ziemlich genau einem Jahr über das zu der Zeit aktuellste Beispiel HashiCorp schrieb, wo eine Umstellung auf BSL-artige Lizenzen erfolgte, scheint es wohl auch einige Kandidaten zu geben, die wieder auf OSI-genehmigte Lizenzen umstellen. So verkündete Elastic am vergangenen Donnerstag, das sie wieder mit ihrer Suchmaschinensoftware Elasticsearch "Open Source" werden möchten, indem sie die AGPL als Lizenzoption aufnehmen.

Hintergrund

Hier einmal der Hintergrund bis jetzt, so wie es auf mich als externen Beobachter wirkte: Open Source hat es im Zeitalter der Cloud recht schwer, wenn man damit Geld verdienen möchte (um z. B. die Entwicklung zu finanzieren!). Das verbreitete Standardmodell zur Monetarisierung war bisher, eine Software Open Source anzubieten und den Support oder das Hosting kostenpflichtig anzubieten. Aus Kundensicht bestellt man dann direkt bei dem Hersteller, der seine Software auch am besten verstehen sollte.

Cloud Provider haben dem Modell das Wasser abgegraben, da sie einfach die Open Source Software nehmen und auf ihrer Plattform deployen konnten – ohne einen Cent dem Projekt zahlen zu müssen. Teilweise wurde die Software erweitert, ohne, die Änderungen wieder veröffentlichen zu müssen (deswegen sind auch die MIT- und BSD-Lizenzen so beliebt). Aus Kundensicht kauft man zwar nicht mehr bei dem Hersteller ein, hat aber

  • einerseits alles zentralisiert auf einer Cloudplattform und
  • andererseits gar keinen Bedarf für Herstellersupport, weil die Software sowieso über das SaaS-Modell supported wird und nicht mehr on-premise läuft.

Die Antwort vieler Projekte war es nun, die Lizenz so zu ändern, dass dieses Verhalten nicht mehr möglich ist, z. B. durch die Beschränkung von Konkurrenz-Hostingprodukten. Das verstößt allerdings gegen das Diskriminierungsverbot der OSI, nach dem die Verwendung von Produkten nicht durch die Lizenz beschränkt werden sollte (siehe auch das Good-Evil-Thema bei der JSON-Lizenz).

In der Konsequenz spalteten sich wie mit Open Search Elasticsearch-Forks ab, die weiterhin die offenen Lizenzen nutzen und durch Cloud Provider wie AWS direkt gepflegt wurden und werden. Wie Elasticsearch betont, sollen diese Projekte aber gleichzeitig auch einen eigenen Weg mit eigener Spezialisierung entwickelt haben. Die Community war natürlich aber auch verärgert, da die Software Elasticsearch nun nicht mehr als Free Open Source Software (FOSS) galt.

Wieder Open Source

Elasticsearch plant nun die Wogen zu glätten, indem die AGPL als weitere Lizenz zur ELv2 und SSPL zusätzlich aufgenommen wird. Die Nutzer können also frei entscheiden, welche Lizenz sie nutzen wollen, da insbesondere im Geschäftskontext die AGPL juristisch gesehen als heikel eingeschätzt wird, wenn man das Produkt aus verschiedenen Komponenten zusammengebaut und nicht den gesamten Quelltext veröffentlichen möchte. FOSS-Nutzer und Distributionen haben allerdings wieder die Möglichkeit, die Software wiederaufzunehmen. So entspricht z. B. die AGPL den Debian Free Software Guidelines.

Ende gut, alles gut? Wenn es nach der Ankündigung von Elastic geht, ist das Team zufrieden mit der Entscheidung, wieder Open Source zu sein. Ob der Fork OpenSearch aufrecht erhalten wird oder schlussendlich in das Urprodukt einfließt, ist allerdings noch nicht gewiss und muss sich in der Zukunft zeigen. Vielleicht sind die Communities auch schon zu sehr divergiert, sodass es nun unterschiedliche Lösungen für unterschiedliche Anwendungsfälle gibt.

29. August 2024

Mit Thunderbird Appointment hat die MZLA Technologies Corporation die Betaphase einen neuen Online-Dienstes gestartet, welcher die Terminplanung vereinfachen soll. Nun wurde der neue Dienst erstmals offiziell angekündigt.

Bereits im Mai hatte ich die Pläne der MZLA Technologies Corporation enthüllt, mit Thunderbird Appointment einen neuen Dienst zur Terminplanung online zu bringen. Vor wenigen Tagen berichtete ich über den Start der Warteliste für die Betaphase. Nun hat MZLA Thunderbird Appointment auch offiziell angekündigt.

Jetzt auf Warteliste für Thunderbird Appointment Beta eintragen

Viele neue Informationen gibt es nicht, dafür aber zwei neue Screenshots. Außerdem beschreibt MZLA seinen neuen Dienst als Teil eines größeren Vorhabens, in Zukunft nicht nur einen E-Mail-Client, sondern eine ganze Reihe an Produktivitätswerkzeugen bereitzustellen, welche den Alltag effizienter und stressfreier machen sollen.

Thunderbird Appointment Thunderbird Appointment

Der Beitrag Thunderbird Appointment offiziell angekündigt erschien zuerst auf soeren-hentzschel.at.

28. August 2024

Firefox 131 unterstützt sogenannte „URL Fragment Text Directives“. Damit ist es möglich, auf Text-Ausschnitte einer Website zu verlinken. Bei Aufruf der entsprechenden URL scrollt der Browser automatisch zu dieser Stelle und hebt den ausgewählten Text optisch hervor.

Auf einen bestimmten Abschnitt einer Website zu verlinken, ist über einen sogenannten Ankerlink (example.com#anker) kein Problem. Voraussetzung dafür ist, dass das zu verlinkende Element eine ID im Code hat, welche als Ankername verwendet werden kann. Was auf den etwas sperrigen Namen „URL Fragment Text Directives“ hört, bietet weitaus mehr Flexibilität. Nicht nur, dass man damit auch ohne ID im Code, sondern rein über den Inhalt der Website auf eine beliebige Stelle verlinken kann; Der Browser hebt die verlinkte Stelle auch noch optisch hervor.

Text-Fragmente in Firefox 131

Es ist sogar möglich, mehrere Textstellen hervorzuheben. Die Syntax ist im Vergleich zu Ankerlinks erwartungsgemäß etwas komplexer. Die MDN Web Docs bieten eine ausführliche Dokumentation inklusive Beispielen.

Mit Firefox 131 wird diese neue Art von URLs, die auch schon in Chromium-basierten Browsern sowie in Safari funktioniert, auch von Mozillas Browser unterstützt. Firefox 131 wird am 1. Oktober 2024 erscheinen.

Während Firefox (noch) keine Möglichkeit anbietet, auf einfache Weise einen solchen Link durch Markieren einer Textstelle zu erstellen, kann diese Funktion bereits jetzt durch ein Add-on wie zum Beispiel Link zu Textfragment nachgerüstet werden.

Der Beitrag Firefox 131 erlaubt das Verlinken von Text-Ausschnitten einer Website erschien zuerst auf soeren-hentzschel.at.

27. August 2024

Mozilla arbeitet an einer Neugestaltung der Firefox-Einstellungen. Dieser Artikel gibt eine erste Vorschau darauf.

Als Mozilla im Mai seine Pläne vorgestellt hatte, woran sie in den folgenden Monaten arbeiten werden, war auch von einer Überarbeitung der Privatsphäre-Einstellungen die Rede, welche leichter zu verstehen sein sollen. Tatsächlich deutet sich eine Neugestaltung der kompletten Einstellungs-Oberfläche von Firefox an.

Firefox-Einstellungen

Ein UI-Prototyp für eine neue Oberfläche der Firefox-Einstellungen gibt einen ersten Vorgeschmack auf die Zukunft. Auffällig ist, dass die zahlreichen Optionen im neuen Design über mehr Kategorien als bisher verteilt sind. Wo notwendig, erfolgt die Navigation jetzt über mehrere Ebenen, statt alles untereinander oder in Dialogen anzuzeigen. Insgesamt sind die Optionen einfacher gestaltet und erschlagen den Nutzer nicht mehr so wie im bisherigen Design der Einstellungen.

Prototyp der neuen Firefox-Einstellungen 2024 Prototyp der neuen Firefox-Einstellungen 2024

Es sei an dieser Stelle ausdrücklich darauf hingewiesen, dass es sich um eine frühe Prototyp-Umsetzung der Oberfläche handelt. Was Struktur und Design betrifft, können sich Dinge im finalen Produkt deutlich von dem unterscheiden, was hier zu sehen ist. In jedem Fall zeigt der Prototyp die Idee, wohin Mozilla mit den Firefox-Einstellungen möchte.

Der Beitrag Vorschau auf die neuen Firefox-Einstellungen erschien zuerst auf soeren-hentzschel.at.