staging.inyokaproject.org

28. August 2023

In diesem Tutorial zeige ich euch, wie ihr eine automatische Aktualisierung für Container in rootless-Podman-Umgebungen konfigurieren und diese Container als systemd-Services verwalten könnt.

Das Tutorial gliedert sich in folgende Abschnitte:

  1. Anwendungsfälle
  2. Voraussetzungen
  3. Umgebung und verwendetes Container-Image
  4. Konfiguration des systemd-Service mit Auto-Update-Funktion
  5. Container (automatisch) aktualisieren

Wer sich nicht für die möglichen Anwendungsfälle interessiert und lieber gleich starten möchte, kann den ersten Abschnitt überspringen. Die übrigen Abschnitte sollten in der angegebenen Reihenfolge gelesen werden.

Anwendungsfälle

  • Container werden auf einem Single-Container-Host ausgeführt und nicht in K8s-Umgebungen
  • Man vertraut dem Anbieter, dass dieser stabile und nutzbare Container-Images bereitstellt
  • Es soll regelmäßig geprüft werden, ob aktualisierte Container-Images vorhanden sind
  • Sind aktuellere Images vorhanden, sollen laufende Container entfernt und unter Verwendung der aktuellen Images neu erstellt werden

Voraussetzungen

Um diesem Tutorial folgen zu können, benötigt ihr einen Host mit einer rootless-Podman-Umgebung. Podman muss dabei in der Version >= 3.3 verfügbar sein. In der folgenden Liste findet ihr einige Links, die euch helfen, eine solche Umgebung aufzusetzen.

Darüber hinaus solltet ihr Manpages lesen können.

Umgebung und verwendetes Container-Image

Das Betriebssystem spielt eine untergeordnete Rolle, da wir durch die Verwendung von Containern die Anwendung vom Betriebssystem entkoppeln. Alle zur Ausführung der Anwendung notwendigen Abhängigkeiten sind im Container-Image enthalten.

Uptime Kuma ist eine schlanke und schnelle Monitoring-Anwendung, welche unter anderem als Container-Image bereitgestellt wird. Ich habe die Anwendung als Beispiel für dieses Tutorial ausgewählt, da ich die Anwendung selbst nutzen möchte und so Synergieeffekte nutzen kann.

Wer ein anderes Container-Image nutzen möchte, muss in den folgenden Beispielen louislam/uptime-kuma:latest durch den fully qualified container name des zu nutzenden Images ersetzen.

Für die Konfiguration werden die auf dem System verfügbaren Podman-Manpages benutzt.

Konfiguration des Systemd-Service mit Auto-Update-Funktion

Bei den folgenden Schritten habe ich mich am Beispiel aus podman-auto-update(1) orientiert. Ich zeige zuerst den jeweils auszuführenden Befehl in einem Code-Block, gefolgt von einer Erläuterung der genutzten Optionen.

Podman-Volume erzeugen

$ podman volume create uptime-kuma
uptime-kuma

Um Daten persistent speichern zu können, müssen diese außerhalb des Containers abgelegt werden. Der dargestellte Befehl erzeugt ein Podman-Volume mit dem Namen „uptime-kuma“.

Mit dem folgenden Befehl lassen sich detaillierte Informationen zum gerade erstellten Volume anzeigen:

$ podman volume inspect uptime-kuma
[
     {
          "Name": "uptime-kuma",
          "Driver": "local",
          "Mountpoint": "/home/tronde/.local/share/containers/storage/volumes/uptime-kuma/_data",
          "CreatedAt": "2023-08-22T20:52:06.477341481+02:00",
          "Labels": {},
          "Scope": "local",
          "Options": {},
          "MountCount": 0,
          "NeedsCopyUp": true,
          "NeedsChown": true
     }
]

Der Schlüssel Mountpoint enthält den Pfad im lokalen Dateisystem, in dem das Volume erstellt wurde.

Manpages zum Nachschlagen:

  • podman-volume(1)
  • podman-volume-create(1)
  • podman-volume-inspect(1)

Container starten

$ podman run --label "io.containers.autoupdate=registry" -d -p 3001:3001 -v uptime-kuma:/app/data:Z --name=uptime-kuma docker.io/louislam/uptime-kuma:latest
Trying to pull docker.io/louislam/uptime-kuma:latest...
Getting image source signatures
Copying blob d7ca72974892 done  
Copying blob 475646a04a73 done  
Copying blob 1d496c24aec8 done  
Copying blob 6a3727d8681d done  
Copying blob b00c91ba9805 done  
Copying blob ddade83992f9 done  
Copying blob b8454ed537a7 done  
Copying blob 849e609eff67 done  
Copying blob f861188db6a1 done  
Copying blob 5f3c3e6d7f1c done  
Copying blob 4f4fb700ef54 skipped: already exists  
Copying blob 68b7bcf7c878 done  
Copying config fb3a3565b2 done  
Writing manifest to image destination
Storing signatures
ad7b049d9b84962311f5bafb5329f59961d8a031e54a571f079b8243ea8059ee
  • podman run ist das Kommando, mit dem ein neuer Container gestartet wird
  • Die Option --label "io.containers.autoupdate=registry" gibt an, dass Podman die Remote-Registry prüft, ob dort ein aktualisiertes Image vorhanden ist; dieses Label ist Voraussetzung, um die Auto-Update-Funktion nutzen zu können
  • Mit der Option -d wird der Container im Hintergrund gestartet und die Container-ID auf STDOUT ausgegeben
  • Durch -p 3001:3001 wird der Host-Port 3001 mit dem Port der Anwendung (ebenfalls 3001) im Container verbunden
  • Die Option -v uptime-kuma:/app/data:Z hängt das im vorhergehenden Schritt erstellte Podman-Volume in das Verzeichnis /app/data innerhalb des Containers ein; :Z sorgt dafür, dass der SELinux-Kontext korrekt gesetzt wird
  • --name=uptime-kuma spezifiziert den Namen des Containers; dieser ist etwas leichter zu merken als die Container-ID
  • Der Befehl endet mit dem fully qualified container name docker.io/louslam/uptime-kuma:latest
  • Die letzte Zeile des Code-Blocks enthält die Container-ID

Manpages zum Nachschlagen:

  • podman-run(1)
  • podman-auto-update(1)

Systemd-Service-Unit mit podman-generate-systemd erstellen

$ podman generate systemd --name --new uptime-kuma
# container-uptime-kuma.service
# autogenerated by Podman 4.4.1
# Tue Aug 22 21:29:46 CEST 2023

[Unit]
Description=Podman container-uptime-kuma.service
Documentation=man:podman-generate-systemd(1)
Wants=network-online.target
After=network-online.target
RequiresMountsFor=%t/containers

[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=on-failure
TimeoutStopSec=70
ExecStart=/usr/bin/podman run \
	--cidfile=%t/%n.ctr-id \
	--cgroups=no-conmon \
	--rm \
	--sdnotify=conmon \
	--replace \
	--label io.containers.autoupdate=registry \
	-d \
	-p 3001:3001 \
	-v uptime-kuma:/app/data:Z \
	--name=uptime-kuma docker.io/louislam/uptime-kuma:latest
ExecStop=/usr/bin/podman stop \
	--ignore -t 10 \
	--cidfile=%t/%n.ctr-id
ExecStopPost=/usr/bin/podman rm \
	-f \
	--ignore -t 10 \
	--cidfile=%t/%n.ctr-id
Type=notify
NotifyAccess=all

[Install]
WantedBy=default.target
  • Der Befehl gibt den Inhalt der generierten Service-Unit auf STDOUT aus
  • Die Option --name verwendet den Namen des Containers anstelle der Container-ID im Dateinamen der Service-Unit (hier: container-uptime-kuma.service)
  • Wichtig ist die Option --new, um Container von aktualisierten Images erstellen zu können; ohne diese Option können Systemd-Units Container nur unter Verwendung des ursprünglichen Images starten und stoppen und ein Auto-Update ist nicht möglich
  • Der folgende Code-Block fügt dem Befehl die Option --files hinzu, um eine Service-Unit-Datei zu erstellen
$ podman generate systemd --name --new --files uptime-kuma
/home/tronde/container-uptime-kuma.service

Manpages zum Nachschlagen:

  • podman-auto-update(1)
  • podman-generate-systemd(1)

Die erstellte Systemd-Unit aktivieren und starten

$ mv -Z container-uptime-kuma.service ~/.config/systemd/user/container-uptime-kuma.service
$ systemctl --user daemon-reload
  • Der erste Befehl verschiebt die Service-Unit in einen Pfad, wo systemd sie findet und einlesen kann
  • Die Option -Z stellt sicher, dass die Datei den SELinux-Kontext des Zielverzeichnisses zugewiesen bekommt, andernfalls kann systemd die Datei ggf. nicht verarbeiten
  • Durch den zweiten Befehl wird die Unit-Datei systemd bekannt gemacht
  • An dieser Stelle ist der neue Systemd-Service geladen, jedoch inaktiv
$ systemctl --user status container-uptime-kuma.service
○ container-uptime-kuma.service - Podman container-uptime-kuma.service
     Loaded: loaded (/home/tronde/.config/systemd/user/container-uptime-kuma>
     Active: inactive (dead)
       Docs: man:podman-generate-systemd(1)
$ podman stop uptime-kumauptime-kuma
$ podman rm uptime-kumauptime-kuma
$ systemctl --user start container-uptime-kuma.service
$ systemctl --user status container-uptime-kuma.service
● container-uptime-kuma.service - Podman container-uptime-kuma.service     Loaded: loaded (/home/tronde/.config/systemd/user/container-uptime-kuma>     Active: active (running) since Tue 2023-08-22 21:59:56 CEST; 14s ago
…
  • Der erste Befehl in obigen Code-Block prüft den aktuellen Status des Service
  • Der zweite und dritte Befehl stoppen und entfernen den laufenden Container, den wir weiter oben gestartet haben
  • Befehl Nummer 4 startet den Uptime-Kuma-Service
  • Befehl Nummer 5 prüft den neuen Status des Service; dieser ist nun up-and-running

Manpages zum Nachschlagen:

  • mv(1)
  • systemd.unit(5)
  • systemctl(1)

Auf neue Container-Images prüfen

$ podman auto-update --dry-run --format "{{.Image}} {{.Updated}}"
docker.io/louislam/uptime-kuma:latest false
  • Durch die Option --dry-run wird sichergestellt, dass nur auf die Verfügbarkeit neuer Images geprüft wird, es werden jedoch keine Pull-Operationen ausgeführt und keine Container neu erstellt
  • Es wird eine Liste von Container-Images ausgegeben, die mit dem Label io.containers.autoupdate=registry gestartet wurden
  • Die erste Spalte enthält den Image-Namen
  • Die zweite Splate zeigt an, ob ein Update verfügbar ist; in diesem Fall ist kein Update verfügbar (false)

Container (automatisch) aktualisieren

Wurde die Konfiguration erfolgreich abgeschlossen, können die entsprechenden Container durch folgenden Befehl manuell aktualisiert werden:

$ podman auto-update
            UNIT                           CONTAINER                   IMAGE                                  POLICY      UPDATED
            container-uptime-kuma.service  df21116f2573 (uptime-kuma)  docker.io/louislam/uptime-kuma:latest  registry    false

Leider ist aktuell kein Update verfügbar, weshalb es hier nichts zu tun gibt und der Status von Updated gleich false ist.

Podman bringt bei der Installation die beiden systemd units podman-auto-update.timer und podman-auto-update.service mit, welche zumindest unter RHEL 9 manuell aktiviert werden müssen:

$ systemctl --user enable podman-auto-update.{service,timer}
Created symlink /home/tronde/.config/systemd/user/default.target.wants/podman-auto-update.service → /usr/lib/systemd/user/podman-auto-update.service.
Created symlink /home/tronde/.config/systemd/user/timers.target.wants/podman-auto-update.timer → /usr/lib/systemd/user/podman-auto-update.timer.

$ systemctl --user start podman-auto-update.timer
$ systemctl --user status podman-auto-update.{service,timer}
○ podman-auto-update.service - Podman auto-update service
     Loaded: loaded (/usr/lib/systemd/user/podman-auto-update.service; enabled; preset: disabled)
     Active: inactive (dead)
TriggeredBy: ● podman-auto-update.timer
       Docs: man:podman-auto-update(1)

● podman-auto-update.timer - Podman auto-update timer
     Loaded: loaded (/usr/lib/systemd/user/podman-auto-update.timer; enabled; preset: disabled)
     Active: active (waiting) since Sat 2023-09-02 20:56:09 CEST; 1s ago
      Until: Sat 2023-09-02 20:56:09 CEST; 1s ago
    Trigger: Sun 2023-09-03 00:12:22 CEST; 3h 16min left
   Triggers: ● podman-auto-update.service
  • Der Timer startet jeden Tag um Mitternacht den Auto-Update-Service
  • Der Service prüft, ob aktualisierte Container-Images verfügbar sind und führt ggf. ein Update der Container durch
  • Schlägt ein Start nach Aktualisierung des Container-Images fehl, wird der Dienst automatisch von der vorherigen Image-Version gestartet; siehe --rollback in podman-auto-update(1)
  • Der folgende Code-Block zeigt den Status, nachdem ein Update durchgeführt wurde
$ systemctl --user --no-pager -l status podman-auto-update
○ podman-auto-update.service - Podman auto-update service
     Loaded: loaded (/usr/lib/systemd/user/podman-auto-update.service; enabled; preset: disabled)
     Active: inactive (dead) since Sun 2023-09-03 00:12:56 CEST; 7h ago
TriggeredBy: ● podman-auto-update.timer
       Docs: man:podman-auto-update(1)
    Process: 309875 ExecStart=/usr/bin/podman auto-update (code=exited, status=0/SUCCESS)
    Process: 310009 ExecStartPost=/usr/bin/podman image prune -f (code=exited, status=0/SUCCESS)
   Main PID: 309875 (code=exited, status=0/SUCCESS)
        CPU: 5.128s

Sep 03 00:12:50 example.com podman[309875]: Copying config sha256:d56b643e048f2d351ed536ec9a588555dfd4c70de3c8d510ed61078a499ba464
Sep 03 00:12:50 example.com podman[309875]: Writing manifest to image destination
Sep 03 00:12:50 example.com podman[309875]: Storing signatures
Sep 03 00:12:51 example.com podman[309875]: 2023-09-03 00:12:41.98296115 +0200 CEST m=+1.880671312 image pull  docker.io/louislam/uptime-kuma:latest
Sep 03 00:12:55 example.com podman[309875]:             UNIT                           CONTAINER                   IMAGE                                  POLICY      UPDATED
Sep 03 00:12:55 example.com podman[309875]:             container-uptime-kuma.service  814407c7312c (uptime-kuma)  docker.io/louislam/uptime-kuma:latest  registry    true
Sep 03 00:12:56 example.com podman[310009]: fb3a3565b2da641402e99594e09b3cdadd1b9aa84f59e7960b9961662da5ff65
Sep 03 00:12:56 example.com podman[310009]: 2023-09-03 00:12:55.421998943 +0200 CEST m=+0.020260134 image remove fb3a3565b2da641402e99594e09b3cdadd1b9aa84f59e7960b9961662da5ff65 
Sep 03 00:12:56 example.com systemd[686]: Finished Podman auto-update service.
Sep 03 00:12:56 example.com systemd[686]: podman-auto-update.service: Consumed 5.128s CPU time.

Ich hoffe, das Tutorial hat euch gefallen und konnte euch einen Eindruck vermitteln, wie man automatische Updates für Container konfigurieren kann.

27. August 2023

Bugzilla ist der Name des ursprünglich von Mozilla entwickelten Bugtracking-Systems, welches auch heute noch bei Mozilla und vielen anderen Organisationen und Unternehmen im Einsatz ist. Zum 25. Geburtstag hat das Projekt die Gründung einer Non-Profit-Organisation angekündigt, was die rechtliche Grundlage ist, um Spenden für die Weiterentwicklung annehmen zu können.

Wenn man an die Anfänge von Mozilla denkt, kommt einem vermutlich als erstes Firefox in den Sinn, oder sogar dessen Vorgänger, die Mozilla Application Suite. Tatsächlich war eines der ersten Produkte im Gründungsjahr 1998 aber Bugzilla. Dabei handelt es sich um ein sogenanntes Bugtracking-System zum Melden von Fehlern, welches auch heute noch von Mozilla genutzt wird. Aber auch andere namhafte Unternehmen und Organisationen setzen immer noch auf Bugzilla, unter anderem die NASA, Webkit, die Apache Foundation, die Entwickler des Linux-Kernels, Eclipse, FreeBSD und die Document Foundation, welche LibreOffice entwickelt.

Dadurch, dass die meisten der ehrenamtlichen Bugzilla-Beteiligten in den letzten Jahren ihren Job gewechselt haben und in der Folge weniger Zeit in Bugzilla investieren konnten, ging die Weiterentwicklung entsprechend schleppend voran. Nachdem Ende des vergangenen Jahres angekündigt wurde, dass es mit Bugzilla wieder mehr vorangehen soll, kam das Thema Spenden auf, um die Weiterentwicklung von Bugzilla zu unterstützen.

Um dem Ganzen einen legalen Rahmen zu geben, wurde anlässlich des gestrigen 25. Geburtstages die Gründung der Zarro Boogs Corporation bekannt gegeben. Dabei handelt es sich um eine Non-Profit-Organsiation, welche nun verantwortlich für das Bugzilla-Projekt ist.

Anders als es in einer vergleichbaren Situation vor einigen Jahren mit Thunderbird und der MZLA Technologies Corporation der Fall war, handelt es sich bei der Zarro Boogs Corporation um keine Tochtergesellschaft der Mozilla Foundation. Stattdessen ist man unabhängig, hat aber von Mozilla die Lizenzrechte erhalten, um die Bugzilla-Marke nutzen zu dürfen.

Wer für die Weiterentwicklung von Bugzilla spenden möchte, kann dies ab sofort über GitHub tun.

Übrigens: Für die nahe Zukunft sind einige Updates geplant. Die aktuelle Ankündigung gibt auch einen Überblick über die geplanten Veröffentlichungen Bugzilla 4.4.14, Bugzilla 5.0.4.1, Bugzilla 5.1.3, Bugzilla 5.2 sowie Bugzilla 5.9.1 (Entwickler-Vorschau auf Bugzilla 6).

Der Beitrag Bugzilla wird 25 Jahre alt – und ist ab sofort ein Projekt der Zarro Boogs Corporation erschien zuerst auf soeren-hentzschel.at.

Der folgende Leitfaden liefert dir die Positionen, mit denen du dich in der Linux-Community beliebt machst. Halte dich daran und du bekommst immer viel Zustimmung, schreibe das Gegenteil und Kritik ist dir sicher. Wichtig: Verwende nicht zu viele Fakten. Stattdessen solltest du dich von Gefühlen leiten lassen. 17 hilfreiche Positionen für den Anfang.

  1. Es heißt GNU/Linux! Linux ist nur der Kernel!
  2. Wer vi nicht bedienen kann, darf Linux nicht benutzen. Das nennt sich natürliche Selektion.
  3. Alle Probleme, die nichtswürdige Kritiker anbringen lassen sich mit Emacs lösen. Du hast keine Ahnung, ob das stimmt. Egal! Emacs kann es im Zweifelsfall und mindestens 50 % der Leute, die irgendwas von Emacs behaupten, kriegen es nichtmal installiert. Also warum nicht einfach regelmäßig Emacs als Schlagwort nutzen.
  4. Das Jahr des Linux-Desktops war schon gestern. Linux ist erfolgreich auf Servern, Smartphones und vielen anderen Geräten. Am Desktop eigentlich auch und wenn das nicht so ist, dann weil weil Microsoft und Apple die Kunden manipulieren!
  5. Debian und Arch Linux sind cool. Community-Distributionen sind am besten. Red Hat ist IBM, also amerikanisches Kommerzlinux und openSUSE – igitt, man erinnere sich an den Microsoft-Novell-Deal. Ubuntu? Weißt du, dass Shuttleworth Canonical an die Börse bringen will? Kommerzielles Linux ist sowieso der Feind.
  6. Das Paketmanagement ist das perfekte System. Es braucht keine Alternativen. Das ist alles nur die App-Storisierung von Linux. Und der Kommerz kommt dann bestimmt. Siehe kommerzielles Linux als Feind.
  7. Docker und andere Containerformate sind Pest in Tüten. Die jungen Administratoren können einfach nicht mehr richtig einen Server aufsetzen. Alles intransparent und unsicher. Brauchte es früher auch nicht.
  8. Systemd ist böse. Das ist eine Krake und frisst sich in immer mehr Bereiche. Brauchst du nicht, braucht niemand und Poettering arbeitet jetzt sowieso für Microsoft.
  9. Mozilla ist auch böse. Die waren mal gut und jetzt geht es nur noch darum, Geld zu scheffeln. Deshalb findest du Pale Moon und die anderen Forks gut und Firefox nicht. Thunderbird ist auch blöd mit dem neuen Design.
  10. Design wird sowieso überbewertet. Funktionalität ist wichtiger, alles andere lernt man schon. Kann ja nicht so schwer sein, sich zu merken, dass er kleine siebte Button von links mit dem kaum zu erkennenden Icon in der zweiten Reihe die gesuchte Funktion ist. Die neuen Trends sind blöd. Dein 4:3 Monitor ist das Ende der Monitorevolution.
  11. Die Möglichkeit einen Regenbogen als Hintergrund bei Thunderbird zu nutzen, fehlt dir aber dennoch. Genau wie dieses eine XUL-Addon mit dem du was ganz tolles gemacht hast. Neue Entwicklungen sind einfach unsinnig. Du weißt, was gebraucht wird und was nicht!
  12. Apropos Thunderbird. Natürlich verschlüsselst du deine E-Mails schon seit Jahrzehnten mit GPG. Alle in deinem Bekanntenkreis tun das auch. Wer auf moderne Smartphone-Messenger setzt (igitt Handynummernzwang!), mit dem bist du einfach nicht mehr bekannt.
  13. LibreOffice ist großartig! Könnte fast Standard sein. Reicht für alle und alles. So geht Perfektion.
  14. Linux funktioniert auch auf dem Smartphone schon prima. Android hat abgewirtschaftet. Was da nicht funktioniert, brauchst du nicht.
  15. Apropos Smartphone. Das brauchst du eigentlich nicht. Apps auch nicht. Das ging früher, das geht heute.
  16. Firmen- und Produktnamen verballhornen ist Pflicht. M$ oder Winzigweich, Schmartphone, Klaut, Äpple oder Fallobst – das geht dir locker flockig aus den Fingern. Aber wehe es betrifft dein Produkt. Siehe Position #1. Es heißt GNU/Linux.
  17. Desktop-Umgebungen… hier sollte man besser die Finger davon lassen. Du denkst, die Desktop Wars sind vorbei? Nun, egal was du hier schreibst, du machst dir Feinde. Auch wenn du gar nichts schreibst. Und schreibe auf keinen Fall, dass du alle magst. Gleichgültigkeit ist schlimmer als das falsche Produkt zu nutzen. Laviere dich am besten damit heraus, dass du einen Window Manager bevorzugst. Das können zwar viele nicht nachvollziehen, aber damit umgehst du das Minenfeld.

Wenn du all das beherzigst, bist du der nächste angesagte Blogger. Influencer und PR-Kampagnen haben bewiesen: Fakten sind nichts, Argumente bedeutungslos, du musst ein Gefühl bedienen.

Der Artikel So machst du dich in der Linux-Community beliebt erschien zuerst auf Curius

26. August 2023

Im Mai hatte Mozilla die Übernahme von Fakespot bekannt gegeben, einem Anbieter, der vor gefälschten Bewertungen beim Online-Shopping schützen soll. Dieser Artikel gibt eine erste Vorschau auf die native Fakespot-Integration in Firefox für den Desktop sowie Firefox für Android und Apple iOS.

Über Fakespot und die Übernahme durch Mozilla

Bei Fakespot handelt es sich um einen Anbieter, welcher Künstliche Intelligenz nutzt, um gefälschte Rezensionen auf Shopping-Plattformen wie Amazon zu erkennen. Nach eigenen Angaben nutzen derzeit über eine Million Menschen Fakespot. Anfang Mai hatte Mozilla bekannt gegeben, das Unternehmen Fakespot vollständig und inklusive seiner 13 Mitarbeiter übernommen zu haben. Derzeit ist Mozilla sogar auf der Suche nach mehreren weiteren Mitarbeitern für die Vergrößerung des Fakespot-Teams.

Tipp: Alle Investitionen und Akquisitionen von Mozilla

Seit der Übernahme von Fakespot arbeitet Mozilla an der nativen Integration einer Funktion zur Bewertung von Produkt-Reviews in Firefox, welche derzeit für Firefox 119 geplant ist, zumindest in den USA für die initiale Version. Dieser Artikel soll eine erste Vorschau auf den derzeitigen Entwicklungsstand in der Nightly-Version von Firefox geben.

Das liefert die Fakespot-Integration in Firefox

Der Nutzung von Fakespot in Firefox muss zunächst explizit durch den Benutzer zugestimmt werden. Standardmäßig erfolgt keine Anzeige von Review-Bewertungen.

Bei Aufruf der Produktseite auf einem der unterstützten Shops – das sind derzeit amazon.com, walmart.com sowie bestbuy.com – zeigt Firefox die Glaubwürdigkeit der abgegebenen Nutzer-Bewertungen in Form einer Schulnote nach amerikanischem System („A“ ist die beste, „F“ die schlechteste Note) an. Darunter wird die bereinigte Durchschnitts-Bewertung des jeweiligen Produkts angezeigt, sprich der Durchschnitt aller Bewertungen abzüglich derer, die nach Einschätzung von Fakespot keine echten Bewertungen sind. Erkennt Fakespot, dass die Bewertung nicht mehr auf dem neuesten Stand ist, bietet Firefox die Möglichkeit an, die Analyse neu durchführen zu lassen.

Schließlich folgt noch eine Anzeige aktueller Highlights aus den Bewertungen, eingeteilt nach Kategorien wie Qualität und Preis. Dabei werden nur die glaubwürdigen Bewertungen der letzten 80 Tage als Grundlage genommen.

In manchen Fällen zeigt Firefox ein alternatives Produkt aus der gleichen Kategorie an, welches eine gute Bewertung für die Glaubwürdigkeit der Produktbewertungen hat. Hierbei setzt Fakespot auf seine sogenannten Trusted Deals, womit eine Einnahmequelle für Mozilla geschaffen wird.

Fakespot-Integration in Firefox für Windows, macOS und Linux

Im Falle der Desktop-Version von Firefox ist es so, dass sich bei Aufruf einer entsprechenden Produktseite eine Sidebar öffnet. Diese kann aber auch geschlossen werden. Dann lässt sich die Sidebar immer noch über ein Symbol in der Adressleiste aktivieren.

Fakespot-Integration in Firefox für den Desktop Fakespot-Integration in Firefox für den Desktop

Fakespot-Integration in Firefox für Android und Apple iOS

Firefox für Android und Apple iOS haben keine Sidebar, sondern zeigen stattdessen nur ein Symbol in der Adressleiste an. Ein Druck auf dieses lässt eine entsprechende Anzeige erscheinen, welche ansonsten die gleichen Informationen anzeigt wie Firefox für den Desktop.

Fakespot-Integration in Firefox für Android

Der Beitrag Vorschau auf Erkennung unglaubwürdiger Produktbewertungen in Firefox erschien zuerst auf soeren-hentzschel.at.

23. August 2023

Kommende Woche wird Mozilla Firefox 117 veröffentlichen. Mit dabei wird erstmals auch eine Übersetzungsfunktion für Websites sein, welche im Gegensatz zu Cloud-Übersetzern wie Google Translate lokal arbeitet, die eingegebenen Texte also nicht an einen fremden Server sendet. Dieser Artikel stellt das neue Firefox-Feature vor.

Hintergrund zu Firefox Translations

Im Rahmen des von der Europäischen Union geförderten Bergamot-Projekts hatte Mozilla gemeinsam mit der University of Edinburgh (Schottland), der University of Tartu (Estland), der University of Sheffield (England) sowie der Charles University (Tschechien) zusammengearbeitet, um eine vollständig clientseitige Funktion zur maschinellen Übersetzung von Websites für den Browser zu entwickeln. 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. Nachdem Firefox Translations zunächst als Erweiterung für Firefox verfügbar war, ist diese Funktion nun in verbesserter Form nativ in Firefox integriert. Die bisherige Browser-Erweiterung wird im Gegenzug nicht mehr weiterentwickelt.

Ausrollung ab Firefox 117

Wenn Mozilla am kommenden Dienstag Firefox 117 veröffentlichen wird, wird die Übersetzungsfunktion zunächst deaktiviert sein und im Laufe der kommenden Wochen für einen kleinen Teil der Nutzer standardmäßig aktiviert werden. Ab Firefox 118 sollte die Funktion dann allgemein verfügbar sein.

Eine manuelle Aktivierung (oder Deaktivierung) ist über about:config möglich, indem der Schalter browser.translations.enable per Doppelklick auf true respektive false gesetzt wird.

Mozilla spricht noch von einer Beta-Version

Wichtig bei der Einordnung der neuen Übersetzungsfunktion ist, dass Mozilla ausdrücklich von einer Beta-Version spricht. Auch das Übersetzungs-Panel beinhaltet eine entsprechende Kennzeichnung.

Ein Aspekt ist, dass die Anzahl der unterstützten Sprachen derzeit noch überschaubar ist: Neben Deutsch und Englisch sind dies aktuell Französisch, Italienisch, Spanisch, Portugiesisch, Niederländisch, Polnisch sowie Bulgarisch.

Die Qualität der Übersetzungen ist für die Tatsache, dass diese vollständig im Browser geschehen und keine große Cloud-Maschinerie zum Einsatz kommt, beeindruckend. Nichtsdestominder kann die Qualität in vielen Fällen natürlich noch nicht immer mit Google Translate & Co. mithalten.

Wer seinen Teil dazu beitragen möchte, dass Firefox möglichst korrekte Übersetzungen liefert, kann aber helfen: Mozilla bittet um Feedback zur Qualität der Übersetzungen von Firefox Translations. Wie das Feedback an Mozilla übermittelt werden kann, wurde in einem eigenen Artikel behandelt.

Zu berücksichtigen ist auch, dass Firefox keine direkte Übersetzung zwischen Sprachen unterstützt, die nicht Englisch sind. Soll beispielsweise eine Website von Französisch nach Deutsch übersetzt werden, wird die Seite zunächst von Französisch nach Englisch und dann von der übersetzten englischen Version nach Deutsch übersetzt, was ein qualitativer Nachteil gegenüber einer direkten Übersetzung ist.

Sowohl die Qualität der Übersetzungen als auch die Anzahl der unterstützten Sprachen soll in Zukunft natürlich gesteigert werden.

Vorstellung der Übersetzungsfunktion von Firefox

Übersetzungs-Panel bei Aufruf fremdsprachiger Website

Wird eine Website in einer fremden Sprache aufgerufen, zeigt Firefox automatisch ein Übersetzungs-Panel an. Voraussetzung ist, dass die erkannte Sprache der Website in den Spracheinstellungen von Firefox nicht als bevorzugte Sprache für die Darstellung von Websites konfiguriert ist. Außerdem muss Firefox die Übersetzung aus dieser Sprache unterstützen.

Vorschau auf Übersetzungsfunktion in Firefox 117

Beim ersten Mal sieht das Übersetzungs-Panel noch etwas anders aus. Statt „Diese Seite übersetzen?“ sagt der Titel noch „Private Übersetzungen in Firefox ausprobieren“, gefolgt von einem Erklärungstext plus Link auf Hilfe-Artikel von support.mozilla.org, welcher die Übersetzungsfunktion erklärt. Bei späteren Aufrufen ist das Übersetzungs-Panel kompakter.

Vorschau auf Übersetzungsfunktion in Firefox 117

Das Übersetzungs-Panel erlaubt sowohl die Änderung der Ausgangssprache, falls Firefox die Sprache der Website falsch erkannt hat, als auch die Änderung der Zielsprache, falls die erste bevorzugte Sprache für die Darstellung von Websites nicht die Sprache ist, in welche man übersetzen möchte.

Vorschau auf Übersetzungsfunktion in Firefox 117

Automatisches Öffnen des Panels und wie diese Funktion abgeschaltet werden kann

Das Übersetzungs-Panel öffnet lediglich beim ersten Aufruf der jeweiligen Domain pro Sitzung automatisch. Ein weiterer Aufruf zeigt das Übersetzungs-Symbol in der Adressleiste, öffnet das Panel aber nicht mehr automatisch. In der nächsten Browser-Sitzung würde das Panel beim ersten Aufruf für die jeweilige Domain wieder automatisch öffnen.

Das automatische Öffnen kann in Firefox 117 aber auch generell abgeschaltet werden, indem über about:config die Option browser.translations.automaticallyPopup auf false gesetzt wird. Ab Firefox 118 wird es dafür eine sichtbare Option im Zahnrad-Menü des Übersetzungs-Panels geben.

Weitere Optionen des Übersetzungs-Panels

Über das Zahnrad-Symbol sind (auch schon in Firefox 117) weitere Optionen verfügbar:

  • Sprache immer übersetzen: Dann fragt Firefox für Websites in dieser Sprache nicht mehr nach, sondern übersetzt die jeweilige Website umgehend nach dem Aufruf.
  • Sprache nie übersetzen: Entspricht dem generellen Abschalten des automatischen Öffnens des Übersetzungs-Panels, aber nur für Websites in dieser Sprache.
  • Diese Website nie übersetzen: Firefox fragt konkret für diese Domain nicht mehr nach.
  • Sprachen verwalten: Firefox öffnet den entsprechenden Abschnitt in den Firefox-Einstellungen
  • Über Übersetzungen in Firefox: Führt auf genau den Hilfe-Artikel, der bei der ersten Ansicht des Panels bereits im erklärenden Beschreibungstext zu finden war.

Vorschau auf Übersetzungsfunktion in Firefox 117

Original anzeigen oder Zielsprache ändern

Nach erfolgter Übersetzung zeigt ein Sprachkürzel neben dem eigentlichen Übersetzungs-Symbol in der Adressleiste die Sprache der Übersetzung an. Per Klick auf das Panel ist es möglich, entweder in eine andere Sprache zu übersetzen oder wieder das Original anzuzeigen – womit die Seite neu geladen wird.

Vorschau auf Übersetzungsfunktion in Firefox 117

Alternativer Zugang über das Hauptmenü

Wenn Firefox denkt, dass keine Übersetzung angeboten werden kann, fehlt das Übersetzungs-Symbol in der Adressleiste. In jedem Fall gibt es aber einen entsprechenden Eintrag im Hauptmenü. Wird die erkannte Ausgangssprache nicht unterstützt, weist Firefox darauf hin. Die Sprache kann aber auch geändert werden, falls die Erkennung schlicht und ergreifend nicht korrekt war.

Vorschau auf Übersetzungsfunktion in Firefox 117 Vorschau auf Übersetzungsfunktion in Firefox 117

Einstellungen für die Website-Übersetzungen

In den Einstellungen von Firefox gibt es einen eigenen Abschnitt für die Übersetzungsfunktion. Sprachen, welche immer übersetzt, sowie Sprachen und Websites, welche nie übersetzt werden sollen, können hier wieder entfernt werden. Außerdem lassen sich hier die Sprachmodelle für die Übersetzungen herunterladen.

Damit Firefox in andere Sprachen übersetzen kann, müssen nämlich entsprechende Sprachmodelle vorhanden sein, die zu groß sind, um sie direkt mit Firefox auszuliefern, insbesondere wenn Firefox irgendwann noch viel mehr Sprachen und auch direkte Übersetzungen ohne Umweg über Englisch unterstützen soll. Normalerweise lädt Firefox die Modelle automatisch herunter, wenn zum ersten Mal eine Übersetzung gestartet wird, für welche noch kein passendes Sprachmodell vorhanden ist. Dafür ist einmalig eine Internetverbindung erforderlich, auch wenn die Übersetzungen selbst dann komplett offline stattfinden. Damit die Übersetzungsfunktion aber auch in vollständigen Offline-Szenarien zuverlässig genutzt werden kann, können die Sprachmodelle über die Firefox-Einstellungen vorab heruntergeladen werden.

Vorschau auf Übersetzungsfunktion in Firefox 117 Vorschau auf Übersetzungsfunktion in Firefox 117

Freie Textübersetzung? Textauswahl-Übersetzung? Android?

Die vollständige Website-Übersetzung ist der Hauptfokus der Übersetzungsfunktion von Firefox und die einzige in Firefox 117 offiziell unterstützte Art der Übersetzung. Inoffiziell gibt es mit about:translations aber auch ein großes Textfeld, über welches eine freie Textübersetzung möglich ist.

Vorschau auf Übersetzungsfunktion in Firefox 117

Die in der Erweiterung Firefox Translations vorhandene Möglichkeit, Text auf einer Website zu markieren und nur diesen zu übersetzen, wird in der ersten Version der nativen Übersetzungsfunktion noch nicht unterstützt.

Wem diese Funktion wichtig ist, der kann sich aber die Erweiterung installieren, welche die Funktion bereitstellt. Der Teil der Erweiterung mit der vollständigen Website-Übersetzung wird bei vorhandener nativer Integration automatisch deaktiviert, sodass es hier zu keinem Konflikt kommt.

Firefox für Android wird noch nicht unterstützt, soll in einer späteren Version aber folgen.

Der Beitrag Vorschau auf lokale Übersetzungsfunktion in Firefox 117 erschien zuerst auf soeren-hentzschel.at.

22. August 2023

Firefox Relay ist ein Dienst von Mozilla, der die persönliche E-Mail-Adresse vor Spam und unerwünschter Offenlegung schützt. Die dazugehörige Browser-Erweiterung hat Mozilla nun in Version 2.7.3 veröffentlicht und verbessert damit die Darstellung auf vielen Websites.

Was ist Firefox Relay?

E-Mail-Adressen sind gleichzusetzen mit einer persönlichen Adresse. Sie sind einmalig und viele Nutzer besitzen nur eine einzige E-Mail-Adresse, die sie teilweise auf dutzenden, wenn nicht gar auf hunderten Websites verwenden. Findet auf einer Website, auf der man mit seiner E-Mail-Adresse registriert ist, ein Datendiebstahl statt, wird damit in vielen Fällen auch die persönliche E-Mail-Adresse offengelegt. Und haben Spammer erstmal eine E-Mail-Adresse in ihrem System, darf man sich auf viele unerwünschte E-Mails ohne realistische Hoffnung einstellen, dass der Spam abnehmen wird.

Mit Firefox Relay können sogenannte Masken als Alias-Adressen angelegt werden, die der Nutzer für Newsletter-Anmeldungen und Website-Registrierungen angeben kann. Firefox Relay leitet diese E-Mails dann an die persönliche E-Mail-Adresse weiter. Außerdem kann Firefox Relay bekannte Tracking-Scripts aus E-Mails entfernen.

Firefox Relay ist kostenlos. Es gibt aber auch eine kostenpflichtige Premium-Version, welche unendlich viele Masken anstelle von nur fünf sowie eine eigene E-Mail-Domain erlaubt. Außerdem können in Firefox Relay Premium auf weitergeleitete E-Mails geantwortet und Werbe-Mails automatisch blockiert werden. In den USA sowie Kanada können mittlerweile auch Telefonnummern maskiert werden.

Browser-Erweiterung für Firefox Relay

Die dazugehörige Browser-Erweiterung ist nicht zwingend erforderlich, erleichtert aber das Anlegen neuer Masken, da direkt in E-Mail-Feldern auf Websites ein entsprechendes Symbol erscheint, über welches eine neue Maske angelegt werden kann. Über die Schaltfläche im Erweiterungsmenü erscheinen diverse Statistiken wie die Anzahl verwendeter E-Mail-Masken, blockierter E-Mails, weitergeleiteter E-Mails sowie entfernten E-Mail-Trackern. Darüber hinaus kann die Erweiterung genutzt werden, um ein Problem mit Firefox Relay auf bestimmten Websites zu melden.

Neuerungen der Browser-Erweiterung Firefox Relay 2.7.3

Die bisherige Implementierung des Masken-Symbols in Eingabefeldern führte zu Darstellungsproblemen auf zahlreichen Websites. Mit Firefox Relay 2.7.3 wurde die Implementierung grundlegend überarbeitet und sollte so mit vielen Websites wesentlich besser als zuvor kompatibel sein.

Firefox Relay 2.7.3

Die neue Version steht sowohl für Firefox als auch für Google Chrome bereit.

Download der Browser-Erweiterung Firefox Relay für Firefox
Download der Browser-Erweiterung Firefox Relay für Google Chrome

Der Beitrag Mozilla veröffentlicht Browser-Erweiterung Firefox Relay 2.7.3 erschien zuerst auf soeren-hentzschel.at.

Dies ist ein Artikel aus der Reihe „I told you so“. Seit Jahren schreibe ich über die Probleme von LibreOffice. Meistens bekomme ich als Antwort, ich sei ein Schwarzmaler und LibreOffice sei perfekt. Jetzt kommt das Eingeständnis der Entwickler.

Was war die letzte große Neuerung in LibreOffice? Wann wurde zuletzt eine halbherzig begonnene Entwicklung zu Ende gebracht? Wann haben sich die Entwickler mal irgendetwas getraut? Ich weiß es nicht. Jetzt haben die Entwickler entschieden, dass es auch nichts mehr geben wird.

LibreOffice is the only open source office suite for personal productivity which can be compared feature-by-feature with the market leader. After twelve years and five release cycles – code cleaning, code refactoring, polishing the user interface, extending to new hardware and software platforms, and optimizing interoperability with OOXML to support users – it is increasingly difficult to develop entirely new features, so most of them are refinements or improvements of existing ones.


Announcement of LibreOffice 7.6 Community

Mit anderen Worten: Wir sind fertig.

Deshalb wird es in Zukunft auch keine Versionsnummern mehr geben, sondern sie gehen zu einer kalendarischen Zählung über. Dann fällt es auch nicht so auf, wenn mal wieder nichts passiert. Vorbilder gibt es in der Open-Source-Welt genug. KDE geht mit seiner Sammlung KDE Gear ähnlich vor. Bei vielen der enthaltenen Programme ändert sich dann oft nur die Versionsnummer.

Die Konkurrenz von Microsoft, SoftMaker, OnlyOffice und Google Docs ist seltsamerweise noch nicht so weit und bringt immer noch Neuerungen. Woran das wohl liegen mag? Aber die braucht es natürlich nicht. Eingefleischte LibreOffice-Fans finden Office seit mindestens 2005 ausentwickelt. Ribbons pfui.

Wer nun hofft, dass die Bugs in LibreOffice endlich geschlossen werden, dürfte bald eines Besseren belehrt werden. Entwickler, die in der Vergangenheit keine Lust dazu hatten, werden auch in Zukunft kein Interesse daran haben. Freiwillige wird man dafür ohnehin nicht gewinnen. Viele Probleme sollen auch in der im Kern immer noch uralten Codebasis liegen. Diese wird sich auch nicht ändern.

Die Mehrheit der Beitragenden kommt sowieso von den wenigen Firmen im Hintergrund von LibreOffice. Collabora, Allotropia und Red Hat. Ja, genau das Red Hat, das sich nun von LibreOffice zurückzieht.

LibreOffice ist das beste Beispiel dafür, dass auch in der Open-Source-Welt die Logik gilt, dass Monopolisten es sich so lange bequem machen, bis die Konkurrenz rechts und links vorbeizieht. Hier nun in Form von agilen Office-Paketen als Web-App.

Natürlich kann man das auch komplett anders sehen. Demnach ist LibreOffice 7.6 mal wieder die beste Version von LibreOffice aller Zeiten und die Community wächst.

Der Artikel Kommentar: LibreOffice gibt auf – Office ist angeblich ausentwickelt erschien zuerst auf Curius

Ich möchte hier kurz ein neues Script vorstellen, welches gleich mehrere Ziele hat.

blockedspam.sh

(1) bietet eine Kurzinfo. DiscardedInbound bedeutet soviel wie "eMail Eingang verworfen". Das heißt also diese eMail wurde nicht an ein eMail Konto geliefert, sondern ignoriert.

Bei (2) werden die definierten Richtlinien ausgegeben. Die definierten Richtlinien sind  in der Admin Oberfläche von ISPConfig eingerichtet. Bei uns werden die X-Spam-Score Zeilen der hereinkommenden eMails durch Amavis modifiert. Das machen etliche eMail Anbieter auch.  Ganz wichtig war nun für mich, leicht zu erkennen, ob auch der Kill Level korrekt funktioniert. Also, ob der score dazu führt, dass die eMail verworfen wird, wenn der Wert hoch genug ist.

Bei (3) sind alle Treffer aus dem mail.log der laufenden Woche aufgelistet. Der Screenshot ist vom Dienstag Nachmittag, hat also nur eine Zeitspanne von reichlich 2,5 Tagen.

In der rechten Spalte ist die für den entsprechenden eMail Konto die ausgewählte Richtlinie.

Im erweiterten Teil findet ihr den Source Code von blockedspam.sh

"Wirksamkeit der Antispam Maßnahmen überprüfen" vollständig lesen

Manchmal ist das Audio in einem Video relativ leise und eigentlich ist da noch richtig Luft nach oben es lauter zu machen. Ein schöner und sehr eleganter Weg ist es mit ffmpeg die Normalisierungsfunktion zu nutzen, ohne das Video selbst erneut zu encoden. Das Audio muss natürlich neu encoded werden.

Zuerst muss ermittelt werden welches der lauteste Peak (lauteste Stelle) im gesamten Audio ist

Lautstärkenermittlung - Highest Peak

ffmpeg -i Videodatei.mp4 -af "volumedetect" -vn -sn -dn -f null /dev/null

Dann steht in der Ausgabe irgendwo relativ weit oben so etwas:

[Parsed_volumedetect_0 @ 0x00000000000] mean_volume: -29.1 dB
[Parsed_volumedetect_0 @ 0x00000000000] max_volume: -3.6 dB

Das “max_volume mit -3.6 dB” ist das Interessante für uns. Das maximale Level in der digitalen Welt ist 0dB . Alles was darüber “gedrückt” wird, wird sehr hässlich verzerrt. Das sollte unbedingt vermieden werden!!

Lautstärkenlimit beachten!

Und vielleicht ein kleiner Sicherheitsabstand wäre auch noch ganz gut, denn beim Umwandeln über D/A (Digital/Analog) Wandler passieren auch je nach Qualität manchmal merkwürdige Dinge. Stichwort Truepeak bzw True Inter-Sample Peak Level.
Also als Empfehlung wäre hier einen Puffer von 0,5 dB bis 1 dB einzuhalten.

In unserem Beispiel von “max_volume mit -3.6 dB” nehmen wir mal einen Puffer von 1 dB, das würde dann heissen, dass wir das max_volume um 2.6dB erhöhen: -3.6+2.6= -1dB Ziellautstärke

Lautstärkenanhebung

Der Befehl dazu lautet (Ziel Audioformat: AAC)
ffmpeg -i Videodatei.mp4 -af "volume=2.6dB" -c:v copy -c:a aac -b:a 192k VideodateiErgebnis.mp4

Alias und Function

Und in der Shell Bash ist das natürlich schöner mit einem kurzen Alias aufzurufen. Aber ein Alias ist nur ein anderer Name für ein bestehender Name. Also könnte ich dem Programm Ulrike den Namen Peter geben und egal, welchen Namen ich jetzt eingebe Ulrike oder Peter, das selbe Programm wird ausgeführt.

Da sich hier aber Aufrufparameter, wie Videodatei und die 2.6dB handelt, reicht ein Alias nicht. Dafür gibt es in der Bash die Function. Hier können dann auch die Aufrufparameter abgefragt werden.

Diese Functions weiter unten gelten immer nur für die aktuelle Session. Sobald das Fenster geschlossen oder die Bash beendet wird, ist auch die Function gelöscht. Soll die Function für immer bleiben, muss sie in der Datei .~bashrc im eigenen Homeverzeichnis definiert werden.

Lautstärke herausfinden

Der Aufruf sieht so aus myMaxvol Videodatei.mp4

myMaxvol() { ffmpeg -i "$1" -af "volumedetect" -vn -sn -dn -f null /dev/null; }

Lautstärke anheben

Der Aufruf sieht so aus: myGainvol Videodatei.mp4 2.6

myGainvol() { ffmpeg -i "$1" -af "volume=""$2""dB" -c:v copy -c:a aac -b:a 192k output.mp4 && mv output.mp4 "$1" ; }

Erklärung was hier passiert: Es wird als Parameter Videodatei.mp4 und 2.6 als Lautstärkenanhebung mitgegeben. Das Ergebnis wird in eine Datei namens output.mp4 geschrieben. Wenn die Lautstärkenanhebung erfolgreich war, dann wird die Datei output.mp4 umbenannt in die Videodatei.mp4, die damit natürlich überschrieben wird.

Wenn die Aktion schief läuft, dann liegt da eine Datei output.mp4 herum und noch die originale Datei Videodatei.mp4.

Bash Script

Vielleicht bastle ich noch ein kleine Bash Script, das automatisch die Lautstärke ermittelt, dann auch automatisch die Anhebung ermittelt und danach gleich die Lautstärkenanhebung durchführt. Und dann das ganze noch auf ein ganzes Verzeichnis anwendet.

Schaumermal.

Manchmal ist das Audio in einem Video relativ leise und eigentlich ist da noch richtig Luft nach oben es lauter zu machen. Ein schöner und sehr eleganter Weg ist es mit ffmpeg die Normalisierungsfunktion zu nutzen, ohne das Video selbst erneut zu encoden. Das Audio muss natürlich neu encoded werden.

Zuerst muss ermittelt werden welches der lauteste Peak (lauteste Stelle) im gesamten Audio ist

Lautstärkenermittlung – Highest Peak

ffmpeg -i Videodatei.mp4 -af "volumedetect" -vn -sn -dn -f null /dev/null

Dann steht in der Ausgabe irgendwo relativ weit oben so etwas:

[Parsed_volumedetect_0 @ 0x00000000000] mean_volume: -29.1 dB
[Parsed_volumedetect_0 @ 0x00000000000] max_volume: -3.6 dB

Das “max_volume mit -3.6 dB” ist das Interessante für uns. Das maximale Level in der digitalen Welt ist 0dB . Alles was darüber “gedrückt” wird, wird sehr hässlich verzerrt. Das sollte unbedingt vermieden werden!!

Lautstärkenlimit beachten!

Und vielleicht ein kleiner Sicherheitsabstand wäre auch noch ganz gut, denn beim Umwandeln über D/A (Digital/Analog) Wandler passieren auch je nach Qualität manchmal merkwürdige Dinge. Stichwort Truepeak bzw True Inter-Sample Peak Level.
Also als Empfehlung wäre hier einen Puffer von 0,5 dB bis 1 dB einzuhalten.

In unserem Beispiel von “max_volume mit -3.6 dB” nehmen wir mal einen Puffer von 1 dB, das würde dann heissen, dass wir das max_volume um 2.6dB erhöhen: -3.6+2.6= -1dB Ziellautstärke

Lautstärkenanhebung

Der Befehl dazu lautet (Ziel Audioformat: AAC)
ffmpeg -i Videodatei.mp4 -af "volume=2.6dB" -c:v copy -c:a aac -b:a 192k VideodateiErgebnis.mp4

Alias und Function

Und in der Shell Bash ist das natürlich schöner mit einem kurzen Alias aufzurufen. Aber ein Alias ist nur ein anderer Name für ein bestehender Name. Also könnte ich dem Programm Ulrike den Namen Peter geben und egal, welchen Namen ich jetzt eingebe Ulrike oder Peter, das selbe Programm wird ausgeführt.

Da sich hier aber Aufrufparameter, wie Videodatei und die 2.6dB handelt, reicht ein Alias nicht. Dafür gibt es in der Bash die Function. Hier können dann auch die Aufrufparameter abgefragt werden.

Diese Functions weiter unten gelten immer nur für die aktuelle Session. Sobald das Fenster geschlossen oder die Bash beendet wird, ist auch die Function gelöscht. Soll die Function für immer bleiben, muss sie in der Datei .~bashrc im eigenen Homeverzeichnis definiert werden.

Lautstärke herausfinden

Der Aufruf sieht so aus myMaxvol Videodatei.mp4

myMaxvol() { ffmpeg -i "$1" -af "volumedetect" -vn -sn -dn -f null /dev/null; }

Lautstärke anheben

Der Aufruf sieht so aus: myGainvol Videodatei.mp4 2.6

myGainvol() { ffmpeg -i "$1" -af "volume=""$2""dB" -c:v copy -c:a aac -b:a 192k output.mp4 && mv output.mp4 "$1" ; }

Erklärung was hier passiert: Es wird als Parameter Videodatei.mp4 und 2.6 als Lautstärkenanhebung mitgegeben. Das Ergebnis wird in eine Datei namens output.mp4 geschrieben. Wenn die Lautstärkenanhebung erfolgreich war, dann wird die Datei output.mp4 umbenannt in die Videodatei.mp4, die damit natürlich überschrieben wird.

Wenn die Aktion schief läuft, dann liegt da eine Datei output.mp4 herum und noch die originale Datei Videodatei.mp4.

Bash Script

Vielleicht bastle ich noch ein kleine Bash Script, das automatisch die Lautstärke ermittelt, dann auch automatisch die Anhebung ermittelt und danach gleich die Lautstärkenanhebung durchführt. Und dann das ganze noch auf ein ganzes Verzeichnis anwendet.

Schaumermal.

Weitere hyperblog Artikel zum Thema

bash

Views: 102

21. August 2023

Um Nutzern den Umstieg zu erleichtern, erlaubt es praktisch jeder Browser, Daten wie Lesezeichen oder gespeicherte Zugangsdaten aus einem anderen Browser zu importieren. Firefox erlaubt in Zukunft sogar den Import von Erweiterungen aus anderen Browsern.

Nutzer, welche von einem Browser zu einem anderen wechseln, wollen häufig ihre Chronik, Lesezeichen, gespeicherte Passwörter und eventuell noch weitere Daten aus ihrem bisherigen Browser importieren und nicht alles neu anlegen müssen. Auch Firefox bietet diese Möglichkeit an.

In Zukunft wird Firefox auch Erweiterungen aus anderen Browsern importieren können. Den Anfang macht Firefox mit einem kleinen Teil von Erweiterungen für Google Chrome. Manche Nutzer von Firefox 116 sehen diese Option bereits als Teil eines Experiments. Alle anderen können die Funktion über about:config aktivieren, indem der Schalter browser.migrate.chrome.extensions.enabled auf true gesetzt wird.

Erweiterungen aus Google Chrome in Mozilla Firefox importieren

Doch wie funktioniert das Ganze? Immerhin sind Chrome-Erweiterungen nicht automatisch kompatibel mit Firefox, schließlich gibt es technische Unterschiede zwischen den Browsern und den dafür verfügbaren Erweiterungen.

Aus diesem Grund pflegt Mozilla eine Liste von entsprechenden Zuordnungen zwischen den Erweiterungs-IDs für Google Chrome und denen für Firefox. Erkennt Firefox, dass in Chrome eine entsprechende Erweiterung installiert ist, lädt Mozilla das entsprechende Firefox-Pendant herunter. Aktuell umfasst die Liste 73 Erweiterungs-Paare, in Zukunft dürften aber noch einige mehr dazu kommen.

Erweiterungen aus Google Chrome in Mozilla Firefox importieren

Der Beitrag Firefox kann Erweiterungen aus anderen Browsern importieren erschien zuerst auf soeren-hentzschel.at.

Im folgenden Text gebe ich eine Einführung in Red Hat Remote Host Configuration (rhc). Dabei handelt es sich um ein Werkzeug, um Red Hat Enterprise Linux (RHEL) System mit der Hybrid Cloud Console zu verbinden und aus dieser heraus verwalten zu können.

Der Artikel soll interessierten RHEL-Nutzern zur Information und Wissensvermittlung dienen. Dazu wird rhc auch im Kontext subscription-manager und insights-client eingeordnet.

Aus Gründen der Transparenz weise ich hiermit darauf hin, dass ich Angestellter der Firma Red Hat bin.

Hintergrund

Als ich persönlich angefangen habe, mich für RHEL zu interessieren, war die Version 7 aktuell und von Simple Content Access (SCA) noch keine Rede. Um RHEL-Systeme betreiben zu können, waren diese beim Red Hat Subscription Management (RHSM), einem Satellite-Server oder offline zu registrieren, um Subscription Entitlements zuweisen zu können. Hierfür gab und gibt es das Kommando subscription-manager.

Im Laufe der Zeit kam der Dienst Red Hat Insights hinzu, zu welchem es hier im Blog bereits eine Einführung gab. Um Systeme hierfür zu registrieren, gibt es das Kommando insights-client. Die Console, die einst nur Red Hat Insights beheimatete, hat sich zur Hybrid Cloud Console entwickelt, welche heute Heimat für viele weitere Dienste rund um RHEL, OpenShift und die Ansible Automation Platform (AAP) ist.

Es hat sich viel getan. Dank SCA [1] entfällt die Notwendigkeit, Entitlements zuweisen zu müssen und das Subscription Management befindet sich im Übergang zur Hybrid Cloud Console. Übergang bedeutet hier insbesondere, dass viele Teile in Bewegung sind und sich in Zukunft noch ändern werden. Der Artikel unter [6] gibt einen Überblick dazu.

Hybrid Cloud Console mit Insights und Ansible Remediation Playbooks

Die folgenden vier Absätze wurden der Dokumentation entnommen und mit www.DeepL.com/Translator (kostenlose Version) übersetzt.

Die Red Hat Hybrid Cloud Console ist eine webbasierte, einheitliche Verwaltungsoberfläche für Red Hat-Lösungen. Mit der Hybrid Cloud Console können Sie eine Verbindung zu Ihren verschiedenen Plattformen herstellen und dann Ihre Hybrid Cloud und die darin enthaltenen Systeme zentral verwalten und automatisieren.

Verwenden Sie die Hybrid Cloud Console, um Ihre RHEL-Infrastruktur, Red Hat OpenShift-Cluster, AAP-Infrastruktur und Anwendungsdienste zu verwalten.

Die Red Hat Hybrid Cloud Console bietet einen zentralen Einblick in Betrieb, Sicherheit und Subscriptions für Red Hat Enterprise Linux (RHEL).

Mithilfe von Tools, regelbasierten Analysemodellen und der Unterstützung von Red Hat können Sie die Konsole nutzen, um viele der Aufgaben und Analysen zu optimieren, die für den Aufbau und die Bereitstellung einer stabilen und sicheren Umgebung für Anwendungen auf RHEL erforderlich sind.

Dem Marketing-Text der vorstehenden Absätze möchte ich einen Hinweis hinterherschicken. Mit der Hybrid Cloud Console verhält es sich wie mit allen extern gehosteten Cloud-Diensten. Hat der Anbieter ein Problem oder ist die Cloud bzw. das Internet nicht verfügbar, ist auch der Cloud-Dienst nicht verfügbar. Bei der Fähigkeit, meine Infrastruktur zu administrieren, möchte ich mich persönlich daher nicht allein auf einen externen Dienst verlassen und empfehle dies auch niemanden. In meinen Augen ist die Hybrid Cloud Console ein zusätzliches Werkzeug, welches mit Red Hat Insights einen hohen Mehrwert bietet.

In den nun folgenden Abschnitten beschreibe ich, wie in der Hybrid Cloud Console ein Activation Key erstellt wird und wie man diesen nutzt, um Systeme mittels rhc in der Console zu registrieren. Anschließend zeige ich, wie dank rhc Ansible Remediation Playbooks direkt aus der Console heraus auf verbundenen RHEL-Systemen ausgeführt werden können.

Ob man einem extern durch Dritte gehosteten Dienst das Recht einräumen möchte, Änderungen an den eigenen Server-Systemen durchführen zu können, muss jeder für sich selbst und seine Umgebung bewerten. Ich möchte hier lediglich die Funktionalität in meiner Lab-Umgebung demonstrieren.

Activation Key erstellen

Um einen Activation Key zu erstellen [10], meldet man sich an der Hybrid Cloud Console (https://console.redhat.com) an und tippt in das Suchfeld im oberen Bereich „create activation key“ ein.

Startseite der Hybrid Cloud Console. In das Suchfeld im oberen Bereich der Seite wurde der Text "create activation key" eingegeben. Es werden zwei Suchergebnisse angezeigt.
Ausgefüllte Suchmaske in der Hybrid Cloud Console

Der erste Treffer führt uns zu folgender Maske, in der ein Activation Key erstellt werden kann:

Menü zur Erstellung von Activation Keys
Dialog zum Erstellen von Activation Keys. Hier werden die Parameter Name, Role, SLA und Usage definiert.
Dialog zur Erstellung des Activation Keys

Nach einem Klick auf die Schaltfläche Create activation key erscheint der oben dargestellte Dialog. Die Optionen, die unter Role, Service Level Agreement (SLA) und Usage zur Auswahl stehen, hängen von den im Account vorhandenen Subscriptions ab. Mit ihnen wird der sogenannte System Purpose bestimmt. Der Name kann frei gewählt werden. Er erscheint anschließend in der Übersicht.

Übersicht existierender Activation Keys
Übersicht der existierenden Activation Keys

Hinweis: Die Organization ID und der Name des Activation Key sind vertraulich zu behandeln, da mit diesen Informationen Systeme für die Hybrid Cloud Console registriert werden können.

System mit rhc registrieren

Mit dem Befehl rhc -h erhält man eine Beschreibung, wie Organization ID und Activation Key genutzt werden, um das System bei Red Hat zu registrieren:

DESCRIPTION:
   The rhc command controls the system's connection to Red Hat.
   
   To connect the system using an activation key:
     rhc connect --organization ID --activation-key KEY

Führt man den Befehl wie angegeben aus und ist die Registrierung erfolgreich, erhält man folgende Ausgabe:

Connecting host.example.com to Red Hat.
This might take a few seconds.

● Connected to Red Hat Subscription Management
● Connected to Red Hat Insights
● Activated the Remote Host Configuration daemon
● Enabled console.redhat.com services: remote configuration, insights, remediations, compliance

Successfully connected to Red Hat!

Manage your connected systems: https://red.ht/connector

Unter der URL https://red.ht/connector ist der Remote Host Configuration Manager erreichbar. Hier werden die aktuellen Einstellungen angezeigt und können bei Bedarf geändert werden.

Das Bild zeigt die Konfigurationsseite des Remote Host Configuration Manager. Hier werden die Einstellungen für Insights Remediations, rhc Einstellungen und OpenSCAP Policies vorgenommen.
Darstellung der Seite Remote Host Configuration Manager

Der rhc Client konfiguriert auf dem RHEL host den rhcd service, welcher die Verbindung zur Hybrid Cloud Console initiiert und über eine MQTT-Verbindung auf Instruktionen lauscht [14].

Möchte man mehrere Systeme registrieren, empfehle ich die Verwendung der RHEL System Role rhc. Auf diese werde ich in einem folgenden Beitrag noch genauer eingehen.

Die Registrierung und Einbindung in die Hybrid Cloud Console ist damit abgeschlossen.

Ansible Remediation Playbook erstellen und ausführen

Die offizielle Dokumentation für die folgenden Schritte befindet sich unter [12]. Ich habe ein System gewählt, welches noch nicht aktualisiert wurde und daher einige Schwachstellen aufweist.

Das Bild zeigt eine Übersicht von CVEs. Zwei CVEs wurden für die Remediation mit Ansible ausgewählt.
Übersicht der vorhandenen CVE. Zwei Einträge wurden für die Remediation mit Ansible ausgewählt.

In der Übersicht können CVE ausgewählt werden, welche mit Hilfe eines Ansible Remediation Playbook geschlossen werden sollen. Mit einem Klick auf die Schaltfläche Remediate gelangt man in den Assistenten zur Erstellung des Playbooks.

Das Bild zeigt einen Dialog, in dem ein Name für ein neues Playbook vergeben wird.
Der Name des Playbooks kann frei gewählt werden.
Im dargestellten Dialog werden die ausgewählten Systeme angezeigt. Eine Bearbeitung ist hier nochmals möglich.
In Schritt zwei können verwundbare Systeme ausgewählt werden.
Das Bild zeigt den letzten Dialog des Remediate-Assistenten. Es wird auf einen automatischen Neustart hingewiesen.
Review der Einstellungen mit dem Hinweis, dass das Zielsystem durch das Playbook automatisch neugestartet wird.
Das Bild zeigt einen Screenshot von der erfolgreichen Erstellung eines Playbooks.
Bis hierher wurde nur ein Playbook erstellt. Es wurde noch keine Remediation durchgeführt.

Die erstellten Playbooks findet man im Menü unter Red Hat Insights –> Automation Toolkit –> Remediations. Bisher kann das Playbook hier allerdings nur heruntergeladen werden, um es auf einem Ansible Controller in der eigenen Infrastruktur auszuführen. Um diese Playbooks direkt aus der Hybrid Cloud Console heraus ausführen zu können, muss der verwendete User Mitglied einer Gruppe mit der Rolle Remediations administrator sein.

Ein Exkurs in die Rollen- und Rechteverwaltung der Hybrid Cloud Console würde an dieser Stelle zu weit führen. Nachdem die Voraussetzungen für die Ausführung von Remediation Playbooks geschafften wurden, stehen folgende Schritte zur Verfügung.

In der Ansicht des Remediation Jobs kann das Playbook nun direkt ausgeführt werden.
Eine letzte Bestätigung, dann geht es los.

Im Hintergrund passiert nun folgendes:

  1. Das Playbook wird auf den oder die Hosts übertragen
  2. Auf den Hosts wird es durch die dort lokal installierte Ansible Engine (Paket ansible-core) ausgeführt
  3. Der Host wird anschließend automatisch neugestartet
  4. In der Console wird anschließend sichbar, dass die Remediation abgeschlossen wurde

Ob man einem SaaS-Dienst, der von einem US-Unternehmen in den USA gehostet wird, Zugriff auf die eigenen Server gewähren möchte bzw. darf, muss individuell bewertet werden.

Ich gestehe dem Service allerdings zu, dass er die Verwaltung und Remediation von Sicherheitslücken, fehlenden Advisories und Konfigurationsanpassungen durch den Advisor denkbar einfach gestaltet.

Ein Werkzeug für alles?

Für die in diesem Text aufgeführten Anwendungsfälle

  • Registrieren eines RHEL-Hosts an der Hybrid Cloud Console
  • Ausführen von Ansible Remediation Playbooks

ist die Verwendung des rhc-Clients ausreichend; ein Ersatz für den insights-client ist er allerdings nicht. Letzterer wird im Hintergrund weiterhin verwendet, um Insights-Reports an die Hybrid Cloud Console zu senden.

Auch die vielfältigen Optionen des subscription-manager werden nicht abgebildet. Der rhc-Client ist daher mehr eine Ergänzung als ein Ersatz für die bekannten Kommandos.

Fazit

Der rhc-Client ist in meinen Augen das Mittel der Wahl, möchte man RHEL-Systeme für die Verwaltung durch Insights und die Ausführung von Ansible Remediation Playbooks an die Hybrid Cloud Console anbinden.

Ich hoffe euch interessierten Lesern, die bishierhin ausgehalten haben, hat diese Einführung gefallen. In der folgenden Liste findet ihr einige Links, hinter denen ihr euer Wissen noch vertiefen könnt.

Quellen und weiterführende Links

  1. Remote Host Configuration and Management – Using the remote host configuration and management features for Red Hat Insights
  2. Simple Content Access
  3. Red Hat Subscription Management
  4. Red Hat Insights
  5. Einführung in Red Hat Insights
  6. Transition of Red Hat’s subscription services to console.redhat.com
  7. Red Hat Hybrid Cloud Console
  8. Product Documentation for Red Hat Hybrid Cloud Console 2023
  9. Subscription-Manager for the former RHN user, part 13: System Purpose
  10. Remote Host Configuration and Management: Chapter 6. Creating and managing activation keys in the Red Hat Hybrid Cloud Console
  11. Automating system administration by using RHEL System Roles: Chapter 7. Using the rhc System Role to register the system
  12. Creating and managing remediation playbooks in Insights
  13. Executing remediation playbooks
  14. Remote Host Configuration (rhc)

20. August 2023

SUSE ist mal wieder in schwerem Fahrwasser. Gut zwei Jahre nach dem Börsenstart kauft EQT die Kleinanleger voraussichtlich am Oktober raus und nimmt SUSE wieder von der Börse.

Der Aktienkurs war schon länger sehr schwach und auch die Zahlen sprachen nicht für sich. Ich wundere mich immer wieder, wie ein Unternehmen mit einer soliden Kundenbasis und Linux-Know-how in Zeiten der allgegenwärtigen Digitalisierung keine Erfolgsstory sein kann.

SUSE befindet sich mitten im Umbau. Das Enterprise-System soll auf ALP umgestellt werden, wobei es da auch widersprüchliche Signale gibt und die Zukunft von openSUSE ist noch unklar. Daneben bandelt man irgendwie mit enttäuschten Red Hat-Kunden an, aber das System dahinter versteht niemand so recht.

Der Plan von EQT ist unklar. Sie müssen bis 2028 etwas mit SUSE machen, weil der Fonds dann ausläuft. Ursprünglich gingen die meisten davon aus, dass der Börsengang von SUSE die Vorbereitung für einen Komplettverkauf sei. Angesichts des sinkenden Aktienkurses hat EQT aber schon vor einiger Zeit davon Abstand genommen, weitere Anteile an den Markt zu bringen. Die ursprüngliche Monetarisierungsstrategie ist also gescheitert und mit dem Rückkauf versucht man nun offenbar, neue Handlungsoptionen zu eröffnen. Man darf gespannt sein, was sie als nächstes vorhaben.

Bezahlen muss das Ganze natürlich SUSE selbst – wie im Private-Equity-Geschäft üblich. Das Unternehmen nimmt also zusätzliche Schulden auf, um den Rückkauf zu finanzieren. Geld, das bei einer möglichen Neuausrichtung und strategischen Weiterentwicklung sicherlich fehlen wird.

Keine gute Entwicklung für Linux insgesamt. Die Perspektive von Red Hat ist unklar und mit SUSE wackelt eine der letzten originären Linux-Firmen. Zwar gibt es in der deutschsprachigen Linux-Community viele SUSE-Feinde, die der Firma irgendwelchen Kram von vor 20 Jahren nachtragen (was angesichts einer zunehmend überalterten Community immer häufiger zu beobachten ist), aber eigentlich kann niemand wollen, dass mit SUSE eine weitere Säule der Linux-Entwicklung wegbricht.


Der Transparenz halber: Ich persönlich habe damals zwei Aktien zum Spaß gekauft. Wenn ich sie zum angekündigten Preis zurückkaufe, mache ich 29 € Verlust.

Der Artikel EQT nimmt SUSE von der Börse erschien zuerst auf Curius

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

Neuerungen von Thunderbird 115.1.1

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

Updates von Thunderbird 102 und älter sind zu diesem Zeitpunkt noch nicht aktiv. Nutzer älterer Versionen können sich Thunderbird 115.1.1 aber über die offizielle Website herunterladen und über die bestehende Version installieren.

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

19. August 2023

Eigentlich heisst der Vortrag

“WSP.NRW: Vielfältiger Einsatz von Open-Source-Anwendungen in der öffentlichen Verwaltung
Innovation durch Partizipation: Wie vielseitige Open-Source-Technologien die Transformation der öffentlichen Verwaltung vorantreiben”

aber der Einsatz oder Realisierung von OpenSource Software geht praktischerweise gut einher mit der Digitalisierung.

Für Interessierte ein wirklich sehr guter Vortrag, der teilweise mit guten Beispielen in die Tiefe geht und auch zeigt, dass das Problem nicht nur Software ist, sondern sehr viel auch Prozess und Organisationsstandardisierung, die dann wiederum durch Software gestützt wird.

Herzlichen Dank für diesen Einblick ! Und hier der Link zum Vortrag. Oder direkt unten auf das Video aus der Mediathek des CCC klicken und anschauen.

Eigentlich heisst der Vortrag

“WSP.NRW: Vielfältiger Einsatz von Open-Source-Anwendungen in der öffentlichen Verwaltung
Innovation durch Partizipation: Wie vielseitige Open-Source-Technologien die Transformation der öffentlichen Verwaltung vorantreiben”

aber der Einsatz oder Realisierung von OpenSource Software geht praktischerweise gut einher mit der Digitalisierung.

Für Interessierte ein wirklich sehr guter Vortrag, der teilweise mit guten Beispielen in die Tiefe geht und auch zeigt, dass das Problem nicht nur Software ist, sondern sehr viel auch Prozess und Organisationsstandardisierung, die dann wiederum durch Software gestützt wird.

Herzlichen Dank für diesen Einblick ! Und hier der Link zum Vortrag. Oder direkt unten auf das Video aus der Mediathek des CCC klicken und anschauen.

Views: 0

18. August 2023

Seit gestern ist es für Firefox-Nutzer nicht mehr möglich, kopierten Text in der Webversion von WhatsApp einzufügen. WhatsApp hat das Problem erkannt, die entsprechende Korrektur wird nach dem Wochenende ausgeliefert werden.

Firefox-Nutzer wundern sich seit gestern unter Umständen, wieso sie auf web.whatsapp.com keine kopierten Nachrichten mehr in das Textfeld einfügen können. Grund dafür ist eine Änderung seitens WhatsApp, die so in Firefox nicht funktioniert. Das Problem wurde seitens WhatsApp bereits erkannt und behoben. Eine Auslieferung der Korrektur erfolgt allerdings erst am Montag.

In der Zwischenzeit können sich betroffene Nutzer mit der Firefox-Erweiterung Absolute Enable Right Click & Copy behelfen. Wird diese installiert und in deren Erweiterungs-Panel die „Enable Copy“-Option aktiviert, funktioniert das Einfügen auf WhatsApp trotz des vorhandenen Fehlers.

Der Beitrag Kopierten Text einfügen funktioniert nicht mehr? WhatsApp bringt Firefox-Korrektur am Montag erschien zuerst auf soeren-hentzschel.at.

17. August 2023

Einleitung

Es gibt, oder es gab, ich weiss es ehrlich nicht genau, daher schreib ich mal in der Gegenwartsform, das Kommandozeilenprogramm youtube-dl oder andere Varianten wie yt-dlp oder ähnliche, mit denen es einfach möglich ist Videos herunter zu laden, um nicht von einer funktionierenden Internetleitung abhängig zu sein. Wer in Deutschland lebt, weiss, was ich meine.

Vor allem bei Lernmaterial ist das super, wenn es offline verfügbar ist und immer wieder angeschaut werden kann, ohne wieder und wieder durch das Streaming CO2 zu erzeugen.

Viele dieser Lernvideos haben Kapitelmarken und auch Untertitel in verschiedenen Sprachen, die natürlich auch im offline Modus sehr hilfreich sind. Und nicht nur als Kapitel, sondern eventuell auch zur Zerteilung in einzelne Videoclips, so dass bei einer Suche direkt auf den entsprechenden Clip zugegriffen werden kann.

Wenn also ein Video legal runtergeladen werden darf, dann helfen folgende Parameter und folgender Workflow bei den entsprechenden Programmen, die ich jetzt einfach mal unter dem Programmnamen DLPGRM zusammenfasse

Verfügbare Formate auslesen

Um erst mal zu sehen, in welchen VIDEO und AUDIO Formaten die Quelle vorliegt, gibt es folgenden Befehl, mit dem eine Tabelle ausgegeben wird.

DLPGRM -F URL-Link

Am Anfang der Tabelle steht in jeder Zeile eine ID und rechts daneben jede Menge weiterer Parameter. Wichtig ist, sich hier die IDs für das gewünschte VIDEO und AUDIO Format zu notieren, denn das wird für den nächsten Schritt gebraucht.

Hinweis: Wenn es einfach nur ein Redebeitrag ist, ohne dass Dinge gezeigt werden, die wichtig sind, wäre es unter Umständen sogar sinnvoll, das als Audiodatei (weiter unten) zu speichern, oder wenigstens als Video mit einer sehr geringen Auflösung. Wenn die Lernvideos nur auf dem Smartphone gespeichert werden sollen, dann sind hohe Auflösungen eh meist sinnlos. Da kann dann schon mal 256x144, 426x240 oder 640x360 genommen werden. Das spart CO2 und zuletzt auch eine Menge Festplattenplatz.

Lernvideo mit Kapitelinformationen speichern

Ist also die ID Nummer für VIDEO und AUDIO ausgesucht, dann kann mit folgendem Befehl das Lernvideo gespeichert werden. Gleichzeitig werden die Kapitel und deutsche & englische Untertitel mit rein gepackt und als Datei kommt eine MP4 Datei heraus, die auf allen Endgeräten abspielbar ist.

DLPGRM -f VIDEO+AUDIO --merge-output mp4 --embed-chapters --sub-langs "de,en" --embed-subs --write-auto-subs --embed-metadata URL-LINK

Soll das Lernvideo als reine Audio Datei, z.B. mp3 gespeichert werden, dann geht das auch mit

DLPGRM -x --audio-format mp3 URL-LINK

Kapitel nachträglich auslesen

Die Kapitel können nachträglich aus der Videodatei mit ffmpeg ausgelesen werden. Genauer gesagt mit dem Tool ffprobe. Dazu muss einfach nur der Befehl

ffprobe -show_chapters VIDEODATEI

eingegeben werden und als Ergebnis kommt eine Textausgabe der Kapitel heraus. Allerdings im sehr ausführlichen ffmpeg Format, aus dem dann die entsprechenden Informationen entnommen werden können. Dieses Format sieht z.B. so aus

[CHAPTER] 
id=0
time_base=1/1000
start=0
start_time=0.000000
end=60000
end_time=60.000000
TAG:title=Einleitung
[/CHAPTER]
[CHAPTER]
id=1
time_base=1/1000
start=60000
start_time=60.000000
end=95000
end_time=95.000000
TAG:title=Kanäle / Tracks umschalten
[/CHAPTER]
[CHAPTER]
id=2
time_base=1/1000
start=95000
start_time=95.000000
end=177000
end_time=177.000000
TAG:title=Parameter ändern (Volume, Pan, Send Effekte/Kanäle) und resetten
[/CHAPTER]
[CHAPTER]
id=3
time_base=1/1000

Kapitel als einzelne Videos speichern

Soll das Lernvideo nun aber in einzelne kleinere und leichter auffindbare Dateien aufgeteilt werden, so würde das auch mit dem Programm gehen, allerdings gibt es da den einen oder anderen unschönen Seiteneffekt, der durch sogenannte fehlende Keyframes (ein komplettes Vollbild) an der richtigen Stelle entsteht, so dass es manchmal beim Beginn der Kapitel aussieht, als würde jemand mit Wasserfarben durchs Bild wischen, oder aber das Lernvideo muss komplett neu codiert werden. Und das kann ganz schön lange dauern.

Es gibt da einen kleinen Trick, der nicht nur schneller, sondern auch Resourcen schonender ist. Das Programm LossLessCut kann diverse Videoformate einfach zerteilen, ohne dass irgendwas neu berechnet werden muss. Und es bietet eine einfache und praktische Lösung zu dem Keyframe Problem an. Nämlich schaut es, wo das Kapitel beginnt und dann “spult” es so lange zurück, bis es das letzte Keyframe findet und legt den Anfang des Kapitels dorthin.

Dabei handelt es sich dann meist um eine Wiederholung maximal 1-3 Sekunden zum vorherigen Kapitel aber dafür mit einem klaren Bild.

Also wird das Lernvideo in LossLessCut reingeladen und dann wird zuerst gefragt, ob die Segmente oder Chapters auch importiert werden sollen. Auf diese Frage mit Ja antworten. Danach kann gleich rechts unten auf den Export Knopf gedrückt werden und diese Einstellungen sollten übernommen werden.
Wichtig sind: Separate files, mp4, Cut mode=Keyframe cut, preserve all MP4/MOV metadata

Und nach 3 Sekunden liegen alle Kapitel als einzelne Videoclips vor.

Viel Spaß bei der Organisation eurer Lernvideos, die ihr jetzt noch viel effizienter ablegen könnt.

Es gibt, oder es gab, ich weiss es ehrlich nicht genau, daher schreib ich mal in der Gegenwartsform, das Kommandozeilenprogramm youtube-dl oder andere Varianten wie yt-dlp oder ähnliche, mit denen es einfach möglich ist Videos herunter zu laden, um nicht von einer funktionierenden Internetleitung abhängig zu sein. Wer in Deutschland lebt, weiss, was ich meine.

Vor allem bei Lernmaterial ist das super, wenn es offline verfügbar ist und immer wieder angeschaut werden kann, ohne wieder und wieder durch das Streaming CO2 zu erzeugen.

Viele dieser Lernvideos haben Kapitelmarken und auch Untertitel in verschiedenen Sprachen, die natürlich auch im offline Modus sehr hilfreich sind. Und nicht nur als Kapitel, sondern eventuell auch zur Zerteilung in einzelne Videoclips, so dass bei einer Suche direkt auf den entsprechenden Clip zugegriffen werden kann.

Wenn also ein Video legal runtergeladen werden darf, dann helfen folgende Parameter und folgender Workflow bei den entsprechenden Programmen, die ich jetzt einfach mal unter dem Programmnamen DLPGRM zusammenfasse

Verfügbare Formate auslesen

Um erst mal zu sehen, in welchen VIDEO und AUDIO Formaten die Quelle vorliegt, gibt es folgenden Befehl, mit dem eine Tabelle ausgegeben wird.

DLPGRM -F URL-Link

Am Anfang der Tabelle steht in jeder Zeile eine ID und rechts daneben jede Menge weiterer Parameter. Wichtig ist, sich hier die IDs für das gewünschte VIDEO und AUDIO Format zu notieren, denn das wird für den nächsten Schritt gebraucht.

Hinweis: Wenn es einfach nur ein Redebeitrag ist, ohne dass Dinge gezeigt werden, die wichtig sind, wäre es unter Umständen sogar sinnvoll, das als Audiodatei (weiter unten) zu speichern, oder wenigstens als Video mit einer sehr geringen Auflösung. Wenn die Lernvideos nur auf dem Smartphone gespeichert werden sollen, dann sind hohe Auflösungen eh meist sinnlos. Da kann dann schon mal 256×144, 426×240 oder 640×360 genommen werden. Das spart CO2 und zuletzt auch eine Menge Festplattenplatz.

Lernvideo mit Kapitelinformationen speichern

Ist also die ID Nummer für VIDEO und AUDIO ausgesucht, dann kann mit folgendem Befehl das Lernvideo gespeichert werden. Gleichzeitig werden die Kapitel und deutsche & englische Untertitel mit rein gepackt und als Datei kommt eine MP4 Datei heraus, die auf allen Endgeräten abspielbar ist.

DLPGRM -f VIDEO+AUDIO --merge-output mp4 --embed-chapters --sub-langs "de,en" --embed-subs --write-auto-subs --embed-metadata URL-LINK

Soll das Lernvideo als reine Audio Datei, z.B. mp3 gespeichert werden, dann geht das auch mit

DLPGRM -x --audio-format mp3 URL-LINK

Kapitel nachträglich auslesen

Die Kapitel können nachträglich aus der Videodatei mit ffmpeg ausgelesen werden. Genauer gesagt mit dem Tool ffprobe. Dazu muss einfach nur der Befehl

ffprobe -show_chapters VIDEODATEI

eingegeben werden und als Ergebnis kommt eine Textausgabe der Kapitel heraus. Allerdings im sehr ausführlichen ffmpeg Format, aus dem dann die entsprechenden Informationen entnommen werden können. Dieses Format sieht z.B. so aus

[CHAPTER] 
id=0
time_base=1/1000
start=0
start_time=0.000000
end=60000
end_time=60.000000
TAG:title=Einleitung
[/CHAPTER]
[CHAPTER]
id=1
time_base=1/1000
start=60000
start_time=60.000000
end=95000
end_time=95.000000
TAG:title=Kanäle / Tracks umschalten
[/CHAPTER]
[CHAPTER]
id=2
time_base=1/1000
start=95000
start_time=95.000000
end=177000
end_time=177.000000
TAG:title=Parameter ändern (Volume, Pan, Send Effekte/Kanäle) und resetten
[/CHAPTER]
[CHAPTER]
id=3
time_base=1/1000

Kapitel als einzelne Videos speichern

Soll das Lernvideo nun aber in einzelne kleinere und leichter auffindbare Dateien aufgeteilt werden, so würde das auch mit dem Programm gehen, allerdings gibt es da den einen oder anderen unschönen Seiteneffekt, der durch sogenannte fehlende Keyframes (ein komplettes Vollbild) an der richtigen Stelle entsteht, so dass es manchmal beim Beginn der Kapitel aussieht, als würde jemand mit Wasserfarben durchs Bild wischen, oder aber das Lernvideo muss komplett neu codiert werden. Und das kann ganz schön lange dauern.

Es gibt da einen kleinen Trick, der nicht nur schneller, sondern auch Resourcen schonender ist. Das Programm LossLessCut kann diverse Videoformate einfach zerteilen, ohne dass irgendwas neu berechnet werden muss. Und es bietet eine einfache und praktische Lösung zu dem Keyframe Problem an. Nämlich schaut es, wo das Kapitel beginnt und dann “spult” es so lange zurück, bis es das letzte Keyframe findet und legt den Anfang des Kapitels dorthin.

Dabei handelt es sich dann meist um eine Wiederholung maximal 1-3 Sekunden zum vorherigen Kapitel aber dafür mit einem klaren Bild.

Also wird das Lernvideo in LossLessCut reingeladen und dann wird zuerst gefragt, ob die Segmente oder Chapters auch importiert werden sollen. Auf diese Frage mit Ja antworten. Danach kann gleich rechts unten auf den Export Knopf gedrückt werden und diese Einstellungen sollten übernommen werden.
Wichtig sind: Separate files, mp4, Cut mode=Keyframe cut, preserve all MP4/MOV metadata

Und nach 3 Sekunden liegen alle Kapitel als einzelne Videoclips vor.

Viel Spaß bei der Organisation eurer Lernvideos, die ihr jetzt noch viel effizienter ablegen könnt.

Views: 0

Reguläre Ausdrücke (RegEx) sind DER Shit, wenn es darum geht extrem schnelle und auch sehr komplexe Dinge mit Texten bzw Strings oder einfach generell bei Suchen zu veranstalten.

Ein Anwendungsfall kommt immer wieder vor, nämlich das Suchen&Ersetzen.

Das Muster sieht so aus

:[range] s / [pattern] / [string] / [flags] [count]

[range]

  • bei range steht meist ein Prozentzeichen % das für den gesamten Text aka der gesamte Datei Inhalt.
  • hier können auch 1,$ = erste Zeile, erstes Zeichen bis letzte Zeile, letztes Zeichen
  • .,$ heisst von der aktuellen Zeile bis zum Ende
  • Von der aktuellen Zeile für weitere 10 Zeilen :.,.+10
  • {Nummer} - in Zeile Nummer sowieso z.B. :14 Zeile 14
  • Die Übersicht der schier unendlichen Bereichsangaben bekommst du, wenn du vim aufrufst und dann :h range eingibst

s (substitute)

  • Zwischen dem Range und dem s darf kein Leerzeichen sein! (häufiger Fehler)
  • Substitute ist die Suchen&Ersetzen Funktion. Wichtig zu wissen ist, dass alle Zeichen, die nicht in a-z und A-Z sind, müssen mit einem vorangestelltem Backslash \ “escaped” werden.
  • Also Zahlen, Punkte, Klammern und Sonderzeichen mit einem Backslash \ escaped werden.
  • Ein Backslash wird dann natürlich auch mit einem Backslash escaped \. Und ein Slash im Suchstring wird natürlich auch mit einem Backslash escaped \/ . Auch ein Leerzeichen bzw Blank wird mit einem Backslash escaped.
  • Der Grund dafür ist, dass viele dieser Zeichen selbst eine Funktion für die Suche darstellen. Und damit da keine Verwechselung entsteht muss extra “escaped” werden.

[pattern]

  • Pattern ist der zu suchende Text
  • Mit einem einleitenden `

Reguläre Ausdrücke (RegEx) sind DER Shit, wenn es darum geht extrem schnelle und auch sehr komplexe Dinge mit Texten bzw Strings oder einfach generell bei Suchen zu veranstalten.

Ein Anwendungsfall kommt immer wieder vor, nämlich das Suchen&Ersetzen.

Das Muster sieht so aus

:[range] s / [pattern] / [string] / [flags] [count]

[range]

  • bei range steht meist ein Prozentzeichen % das für den gesamten Text aka alles steht
  • hier können auch 1,$ = erste Zeile, erstes Zeichen bis letzte Zeile, letztes Zeichen
  • .,$ heisst von der aktuellen Zeile bis zum Ende
  • {Nummer} – in Zeile Nummer sowieso z.B. Zeile 14
  • Die Übersicht der schier unendlichen Bereichsangaben bekommst du, wenn du vim aufrufst und dann :h range eingibst

s (substitute)

  • Substitute ist die Suchen&Ersetzen Funktion. Wichtig zu wissen ist, dass alle Zeichen, die nicht in a-z und A-Z sind, müssen mit einem vorangestelltem Backslash \ “escaped” werden.
  • Also Zahlen, Punkte, Klammern und Sonderzeichen mit einem Backslash \ escaped werden.
  • Ein Backslash wird dann natürlich auch mit einem Backslash escaped \\. Und ein Slash im Suchstring wird natürlich auch mit einem Backslash escaped \/ . Auch ein Leerzeichen bzw Blank wird mit einem Backslash escaped.
  • Der Grund dafür ist, dass viele dieser Zeichen selbst eine Funktion für die Suche darstellen. Und damit da keine Verwechselung entsteht muss extra “escaped” werden.

[pattern]

  • Pattern ist der zu suchende Text
  • In einem Pattern können auch wiederum Pattern-Funktionen eingefügt werden, wie z.B. ab dem 5. Zeichen (spalte/column) %5c oder bis zum 5. Zeichen %>5c und viele weitere.
  • in vim :help pattern

[string]

  • String ist der Text, der das gesuchte Pattern ersetzt werden soll.

[flags]

  • g (global) wiederholt das Suchen&Ersetzen, bis zum Ende des Textes. Wird g nicht angegeben, wird nach dem ersten Suchtreffer aufgehört.
  • c (confirm) zum Bestätigen des Ersetzens
  • i (ignore) um Groß/Kleinschreibung zu ignorieren

[count]

  • der Parameter count wird bei Bedarf in einer positiven ganzen Zahl wie z.B. 5 angegeben. Er wirkt sich auf das Suchen&Ersetzen so aus, dass z.B.
  • %s/blah/blubb/g 5 – vom Textanfang die ersten 5 Zeilen bearbeitet werden
  • 10,$ s/blah/blubb/g 5 – ab Zeile 10, die Zeilen 10, 11, 12, 13, 14, also insgesamt 5 Zeilen bearbeitet werden.

Slash / – das Slash “/” trennt die verschiedenen Parameter voneinander.

Will ich also den merkwürdigen String “Maier/(Schmidt)-Hans\Jens.Familie?” in meinem gesamten Text mit “Bullshit!“ersetzen, sähe der Aufruf so aus

:%s/Maier\/\(Schmidt\)\-Hans\\Jens\.Familie\?/Bullshit\\!/g

Einfach vor jedes nicht a-zA-Z Zeichen ein Backslash

Views: 7

Mit dem Bookmarks Organizer 4.1 steht ein neues Update für die Firefox-Erweiterung bereit, welche beim Aufräumen der Lesezeichen hilft. Die neue Version bringt unter anderem einen sogenannten Dark Mode.

Download Bookmarks Organizer 4.1 für Mozilla Firefox

Der Bookmarks Organizer soll dabei helfen, wieder Ordnung in die Lesezeichen zu bringen, indem nicht mehr funktionierende sowie doppelte Lesezeichen gefunden und Weiterleitungen korrigiert werden.

Unterstützung für Dark Mode

Bislang war das Erscheinungsbild vom Bookmarks Organizer immer hell, auch bei Verwendung eines dunklen Firefox-Themes. Bookmarks Organizer 4.1 bringt die Unterstützung für den sogenannten Dark Mode. Das heißt, dass auch die Oberfläche vom Bookmarks Organizer bei entsprechender Firefox-Konfiguration dunkel statt hell ist.

Bookmarks Organizer 4.1 Bookmarks Organizer 4.1 Bookmarks Organizer 4.1

Weitere Verbesserungen und Korrekturen

Die Domain facebook.com wurde auf die interne Liste von Domains hinzugefügt, welche bei der Prüfung auf defekte Lesezeichen grundsätzlich übersprungen werden, da entsprechende Lesezeichen nicht überprüft werden können und immer als fehlerhaft angezeigt worden waren.

Bestätigungsdialoge können jetzt mittels Enter-Taste bestätigt werden. Das Abbrechen via Esc-Taste war bereits möglich.

Die Ursache für einen massiven RAM-Anstieg sowie eine extrem hohe CPU-Auslastung, was sogar bis zum Absturz von Firefox führen konnte, beim Import vieler Lesezeichen wurde behoben.

Dazu kommen mehrere kleinere Code-Verbesserungen unter der Haube. Außerdem wurden sowohl die chinesische als auch die türkische Übersetzung aktualisiert.

Auf Grund erfolgter Code-Änderungen ist Bookmarks Organizer 4.1 nicht länger mit Firefox 109 bis 114 kompatibel. Neue Voraussetzung zur Installation ist Firefox 115 oder höher.

Gefällt? Unterstützung gerne gesehen!

Wer die Entwicklung des Add-ons unterstützen möchte, kann dies tun, indem er der Welt von Bookmarks Organizer 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 dieses und weiterer Add-ons zu investieren.

Der Beitrag Firefox-Erweiterung Bookmarks Organizer 4.1 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

16. August 2023

30 Jahre Debian - 30 Jahre felsenfeste Entwicklung und noch kein Ende in Sicht.

An diesem Tag vor 30 Jahren, am 16.08.1993, erschien in der Newsgroup comp.os.linux.development eine Ankündigung, die den Anfang eines der größten und langlebigsten Projekte im Linux-Ökosystem markieren sollte. Lasst uns für einen kurzen Moment zurückblicken.

Es ist nicht nur ein gepimptes SLS, es ist das "Debian Linux Release". Ian Murdock, der selbst mit der vermutlich ersten Linux-Distribution unzufrieden war und beschlossen hat, die Sache selbst in die Hand zu nehmen, hätte sich womöglich nie erträumen können, dass sein "brand-new Linux release", wie er es damals nannte, irgendwann seinen 30. Geburtstag feiern würde.

Begründer eines Distributionszweiges

Im Laufe der Jahre hat Debian bewiesen, dass es mehr als nur ein übereifriger Rebell unter den Betriebssystemen ist. Es hat die Grundlage für viele andere Distributionen wie z. B. Ubuntu gelegt. Es hat die Freiheit und Offenheit verkörpert, die das Herzstück der Open-Source-Bewegung bilden. Es hat glaubhafte Alternativen zu proprietären Betriebssystemen aufgezeigt und Zweifler zum Schweigen gebracht. Auch, wenn der letzte Punkt in der öffentlichen Diskussion nicht ganz offensichtlich ist, sprechen die Zahlen für sich: Debian ist ein fester Bestandteil vieler produktiver Serversetups.

Mit der tief verwurzelten Philosophie, die sich im Debian-Gesellschaftsvertrag widerspiegelt, unterstreicht das Projekt seine kompromisslose Haltung zugunsten freier Software, auch wenn über die Jahre insgesamt eine gewisse Toleranz gegenüber nachinstallierbarer unfreier Software Einzug gehalten hat.

Debian ist heute wichtiger denn je, da die Distribution den Test of Time bestand und sich zu einer Alternative zu Enterprise-Distributionen gemausert hat. Stabilität und Kontinuität sind entscheidende Faktoren, denn Debian baut auf klassischen Releases auf, von denen - je nach Zählweise - bereits 20 erschienen sind. Die Release werden seit Version 1.1 nach Toy-Story-Charakteren bezeichnet. Debian ist ein Leuchtturm, ein einsamer Fels in der Brandung einer Welt, die zunehmend von Anbietern dominiert wird, welche Daten und Freiheiten der Nutzer nicht beachten und sie an ihre Plattformen binden.

In diesem Sinne, lasst uns auf 30 Jahre technologischer Alternativen anstoßen. Herzlichen Glückwunsch, Debian! Auf 30 weitere Jahre der Innovation und Unabhängigkeit.

Die Personen hinter den Projekten sind wichtig.

Die GNU/Linux-Community hat heute den 30. Geburtstag der Debian-Distribution gefeiert, die am 16. August 1993 ihr Debüt gegeben hat. Alle Fachmedien haben diesen besonderen Tag ausführlich gewürdigt. Wer mehr über die Geschichte und den Jahrestag von Debian erfahren möchte, kann dies bei Linuxnews.de lesen, oder diese Suche verwenden. Ich möchte den Blick auf die Person hinter Debian lenken.

Ian Murdock starb am 28. Dezember 2015, im Alter von 42 Jahren, in San Francisco unter tragischen Umständen. Am 3. Februar hat Martin Michlmayr, der langjährige Debian Projektleiter, eine Laudatio für Ian bei der FOSDEM 2016 gehalten. Ich finde es wichtig, dass den Personen, die hinter Projekten stehen, mehr Aufmerksamkeit gegeben wird. Debian wäre eine leere Hülse, wenn sie nicht von den über Tausend Beteiligten gefüllt würde. Über die Namensgeberin und Frau von Ian Murdock, Debra Lynn, von der er 2008 geschieden wurde, ist leider wenig bekannt. Was sie über die Zeiten retten wird, ist die erste Namenshälfte von Deb+Ian.

Bildquelle: https://www.ecospoliticos.com/images/personaje/Murdock.jpg

Quelle: https://commons.wikimedia.org/wiki/File:FOSDEM_2016_Ian_Murdock_-_In_Memoriam.webm


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

14. August 2023

Mozilla Ventures hat sein Portfolio an Investitionen weiter ausgebaut und mit Grasp in eine Online-Lernplattform aus Großbritannien investiert.

Das ist Mozilla Ventures

Mozilla Ventures ist ein anfänglich mit 35 Millionen USD ausgestatteter Risikokapitalfonds, über welchen Mozilla in Startups investiert, welche das Internet und die Tech-Industrie in eine bessere Richtung bringen.

Mozilla Ventures investiert in Grasp

Das neueste Unternehmen, in welches Mozilla Ventures investiert hat, ist Grasp. Dabei handelt es sich um eine Online-Lernplattform mit dem Ziel, die Lerngeschwindigkeit von Menschen zu erhöhen. Grasp befindet sich derzeit noch in der Betaphase, für deren Teilnahme man sich auf eine Warteliste setzen lassen kann.

Übersicht über Mozillas Investitionen und Übernahmen

Alleine in den letzten elf Monaten hat Mozilla drei Unternehmen vollständig übernommen und in zwölf weitere investiert. Auf soeren-hentzschel.at/mozilla-invests gibt es eine Übersicht über Mozillas Investitionen und Übernahmen seit 2012.

Der Beitrag Mozilla investiert in Lernplattform Grasp erschien zuerst auf soeren-hentzschel.at.