Skip to content

Linkdump 15/2021

Viel Spass mit den von mir für gut befundenen gelesenen Artikel der letzten Woche. Es ist "ein Kesselchen Buntes geworden".

Yes, I see the signs as well, 6 signs you might be a Linux user.

Eine Skriptsprache feiert 30. Geburtstag, schöne Hommage an Perl - spannenderweise haben die meisten die gegen Perl sind, die Sprache noch nie benutzt.

Sujeevan shares some learnings after one year at GitLab, 7 things which I didn't expect to learn.

Richard Stallman versucht es mit Entschuldigung, es bleibt bei dem Versuch.

Schön geschrieben und interessant zu lesen, was man auf einer Langstreckentour mit einem E-Auto erlebt, Einmal Nordkap und zurück.

Podcast-Episode:

RadioTux Sendung März 2021 ist eine absolute Hörempfehlung mit Remote Office als Thema. Lohnt sich.

Linkdump 14/2021

In dieser Woche gibt es einen Fokus auf Signal, aber auch die anderen beiden Links finde ich lesenswert. So einen Artikel wie der über das Ökosystem und die Geschichte von Perl würde ich mir für viele Open-Source-Projekte wünschen.

Very nice introduction into Perl and the history of Perl and its ecosystem, it is all about people, Perl turns 30 and its community continues to thrive.

Sieben Tipps für smartere virtuelle Meetings ist ein wirklich guter Artikel, wenn man die Werbung nicht beachtet.

Golem berichtet Signal-Server nicht mehr Open Source und natürlich mussten sie das für sich ausschlachten, nachdem das Repository wieder aktualisiert wurde, Signal aktualisiert Server-Code nach Golem.de-Bericht. Der Hauptentwickler von Signal - "Moxie" - kommentiert das in einem Kommentar auf GitHub auch, wobei die Erklärung ziemlich dünn ist - es ist nur ein Kommando, die Commits auf ein zweites Repository zu übertragen oder ein leichtes, es zu automatisieren.

Monitoring Zwischenintermezzo

Jetzt habe ich schon einen neuen Rechner, kann aber natürlich nicht sagen, wie ich ihn im Normalbetrieb auslaste. Dass die NVMe-Performance sehr gut ist, habe ich ja bereits geschrieben.

Um es vorweg zu nehmen: Gar nicht!

Mehr über den neuen Rechner herauszufinden, ist aber eine gute Gelegenheit, sich einmal mit Prometheus und Grafana auseinanderzusetzen. Im Rahmen der Beschäftigung damit war sehr positiv überrascht, wie leicht das alles ist, zumindest in diesem einfachen Fall.

Disclaimer: Bitte versteht das folgende als "Proof of Concept", um schnell zu einem Ergebnis zu kommen. Benutzt es bitte nicht für ein Produktionssetup auf Servern im Internet.

Ganz bewusst nutze ich keine Pakete, sondern die Binaries von den Webseiten der Hersteller. Wenn ich das Experiment beende, können die Daten und Installationen sehr schnell gelöscht werden.

Hier werde ich keine Einführung in Prometheus geben, dafür gibt es zahlreiche Webseiten, die das schon sehr ausführlich gemacht haben. Für dieses Setup muss man nur so viel wissen, dass Prometheus selber die zentrale Komponente ist, die in regelmässigen einstellbaren Abständen, Daten von den Exportern sammelt und in eine eigene "Time series database" schreibt. Der Node Exporter stellt Daten über Diskbelegung, I/O-Verhalten, CPU, Load, ... und vieles andere mehr zur Verfügung. Grafana greift auf diese gesammelten Daten zu und bereitet sie grafisch in Dashboards auf.

Der Spass beginnt mit der Anlage des Users, mit dem alles laufen soll.

# adduser --system --home /srv/monty --shell /sbin/nologin monty

Danach folgt der Download der nötigen Archive von der Prometheus Download Seite und der Grafana Downloadseite (die ist ein bisschen versteckt).

# mkdir /srv/monty/archive 

# cd /srv/monty/archive 

# curl -LO https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz

# curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz

# curl -LO https://dl.grafana.com/oss/release/grafana-7.5.3.linux-amd64.tar.gz

Die einzelnen Archive werden ausgepackt und es wird jeweils ein Link auf das ausgepackte Archiv gesetzt. Das macht das Update deutlich einfacher.

# cd /srv/monty

# tar xzf archive/prometheus-2.26.0.linux-amd64.tar.gz

# tar xzf archive/node_exporter-1.1.2.linux-amd64.tar.gz

# tar xzvf archive/grafana-7.5.3.linux-amd64.tar.gz

# ln -s grafana-7.5.3 grafana

# ln -s node_exporter-1.1.2.linux-amd64 node_exporter

# ln -s prometheus-2.26.0.linux-amd64 prometheus

Jetzt noch schnell je ein Verzeichnis für die Grafana- und die Prometheus-Daten anlegen und die mitgelieferten Konfigurationen kopieren. Der Nodeexporter ist "dumm", der plappert wie ein Wasserfall, wenn er gefragt wird.

# cd /srv/monty

# mkdir promdata grafdata

# cp prometheus/prometheus.yml promdata

# cp grafana/conf/defaults.ini grafdata/grafana.ini

In der grafana.ini-Datei sind die folgenden Änderungen vorzunehmen, alles andere muss nicht angefasst werden:

data = /srv/monty/grafdata
logs = /srv/monty/grafdata/log
plugins = /srv/monty/grafdata/plugins
provisioning = /srv/monty/grafdata/provisioning

An die prometheus.yml-Datei muss man nur die folgenden Zeilen hinter - targets: ['localhost:9090'] anhängen:

- job_name: 'terrania'

scrape_interval: 5s

static_configs:

  - targets: ['localhost:9100']

Der Name ist natürlich frei. Prometheus und Node Exporter arbeiten sehr ressourcenarm, daher kann man durchaus alle 5 Sekunden (oder noch öfter) Werte nehmen. Weitere Exporter werden einfach an das Ende der Datei angehängt. Das Standard-Abfrageintervall sind 15 Sekunden.

Abschliessend noch dem User monty alle Dateien und Verzeichnisse übereignen.

# chown -R monty /srv/monty

Bleibt noch systemd, bitte kopiert die folgenden Service-Files nach /etc/systemd/system und führt danach ein systemd daemon-reload aus.

# /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=monty
WorkingDirectory=/srv/monty/node_exporter
Type=simple
ExecStart=/srv/monty/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target

Bitte beachtet, dass nach den Backslashes "\" nur das Zeilenende kommen darf.

# /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=monty
Type=simple
WorkingDirectory=/srv/monty/prometheus
ExecStart=/srv/monty/prometheus/prometheus \
    --config.file /srv/monty/promdata/prometheus.yml \
    --storage.tsdb.path /srv/monty/promdata \
    --web.console.templates=/srv/monty/prometheus/consoles \
    --web.console.libraries=/srv/monty/prometheus/console_libraries

[Install]
WantedBy=multi-user.target
# /etc/systemd/system/grafana.service
[Unit]
Description=Grafana
Wants=network-online.target
After=network-online.target

[Service]
User=monty
WorkingDirectory=/srv/monty/grafana
Type=simple
ExecStart=/srv/monty/grafana/bin/grafana-server \
    -config /srv/monty/grafdata/grafana.ini \
    -homepath /srv/monty/grafana \
    web

[Install]
WantedBy=multi-user.target

Die Services werden der Reihe nach gestartet und aktiviert.

# systemctl enable --now node_exporter

# systemctl enable --now prometheus

# systemctl enable --now grafana

Eventuell auftretende Fehler systemctl status node_exporter prometheus grafana sollten natürlich behoben werden.

Grafana lässt sich nun über localhost:3000 aufrufen. Im Standard sind Username und Passwort auf "admin" gesetzt.

Um die ersten bunten Bilder zu sehen, muss noch eine Datasource und ein Dashboard angelegt werden.

Als Datasource solltet Ihr über das Zahnrad und "Data Sources" den Eintrag "Prometheus" auswählen. Prometheus hört standardmässig auf Port 9090, ich musste die komplette URL angeben, das "Scrape interval" habe ich auf "5s" gesetzt.

Als Dashboard empfehle ich den Import von 1860 und die Angabe der gerade konfigurierten Datenquelle Prometheus.

Ich wundere mich immer wieder, dass die CPU-Werte ganz oben angezeigt werden und nicht die aussagekräftigere "System Load".

Abschliessende Anmerkung: Einige von Euch wundern sich vermutlich über die Links, die ich gesetzt habe. Als ich den Artikel geschrieben habe, habe ich auch gleich ein Update von Prometheus und Grafana eingespielt, das funktioniert wie folgt:

# cd /srv/monty/archive

# curl -LO https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
# curl -LO https://dl.grafana.com/oss/release/grafana-7.5.3.linux-amd64.tar.gz

# cd ..

# tar xzf prometheus-2.26.0.linux-amd64.tar.gz
# tar xzf grafana-7.5.3.linux-amd64.tar.gz

# systemctl stop grafana 
# rm grafana 
# ln -s grafana-7.5.3 grafana 
# systemctl start grafana

# systemctl stop prometheus 
# rm prometheus 
# ln -s prometheus-2.26.0.linux-amd64 prometheus 
# systemctl start prometheus

Wenn man das alles in eine Zeile schreibt, dauert der Teil Stoppen, Link ändern und Starten deutlich unter einer Sekunde.

Viel Spass, bin gespannt auf Eure Kommentare.

TUXEDO CORE One

Der Entscheidungsprozess für einen neuen Rechner hat dann doch etwas länger gedauert als erwartet. Ich habe mir die Entscheidung nicht leicht gemacht und viel Feedback von aussen eingeholt.

Wie im Betreff angedeutet, ist es ein TUXEDO CORE One AMD-Ryzen-Series v10 + Micro-ATX Tower mit folgenden Komponenten geworden:

  • 64 GB (4x 16GB) 3600Mhz G.Skill
  • AMD Ryzen 9 3900 (12x 3.1-4.3GHz Twelve-Core, 24 Threads, 70 MB Cache, 65W TDP)
  • 1000 GB Samsung 980 PRO (NVMe PCIe)
  • 2x 4 TB HDD (Seagate / 5.400 rpm / SATAIII)
  • DVD-Brenner
  • CORE One mATX Tower
  • NVIDIA GeForce GTX 1650 4GB GDDR5, 1x HDMI2.0, 1x DisplayPort 1.4, 1x DVI-D
  • mit Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (bis zu 2400Mbps)
  • Gigabyte AMD B450 Chipsatz
  • Ultra Silent 1250 (80+ Gold | 140mm | 1250 Watt | Modular)

Das Gerät ist klasse, sehr gut verarbeitet und rasend schnell. Ich habe es bis jetzt noch nicht geschafft, es auch nur annähernd auszulasten. Es erfüllt meine Anforderungen, die Ihr im verlinkten Artikel finden könnt, zu 100%.

Ich hatte eigentlich eine passiv gekühlte Grafikkarte bestellt, die leider nicht mehr lieferbar war. TUXEDO Computers hat dann eine etwas teurere aktiv gekühlte Grafikkarte ohne Aufpreis geliefert. Natürlich nach Rückfrage, ob ich damit einverstanden bin.

Mir wurde gesagt, dass ich die gleichen Komponenten günstiger bekommen kann. Das stimmt, aber ich habe zwei linke Hände und mir macht es nicht zuletzt deswegen keinen Spass, an Hardware zu schrauben. Dazu kommt, dass ich vom Support von TUXEDO Computers überzeugt bin, den wir für den Rechner meiner Frau auch schon nach der Garantiezeit in Anspruch nehmen mussten. Die Abwicklung war unkompliziert und der Kontakt sehr freundlich. Beides, der Support und auch das Zusammenschrauben hat einen Wert - meine Arbeitszeit übrigens auch.

Ergänzend möchte ich noch erwähnen, dass es in Deutschland leider nur wenige Versender gibt, die in die Schweiz schicken. Damit fallen viele der "üblichen Verdächtigen" unter deutschen Online-Shops aus.

Mir wurde gesagt, dass TUXEDO Computers nur "ein weiterer Kistenschieber" ist. Ja, und? Selbst in Markenhardware von namhaften Herstellern stecken manchmal die gleichen Komponenten.

Zur Aussage, dass ich mir ein neues Notebook mit aktuellen Spezifikationen kaufen sollte, habe ich die folgende Meinung. Mein aktuelles Notebook - mittlerweile fünf Jahre alt - hat bis auf zwei oder drei Wochenenden im Jahr einer Dockingstation gesteckt. Zum Einsatz kam es nur auf Veranstaltungen und dem Weg dorthin und von dort nach Hause. Das wird das alte Notebook auch weiterhin leisten können. Wenn es in die ewigen Jagdgründe geht, kann ich Präsentation und mobiles Arbeiten auch mit einem Tablet oder Chromebook erledigen. Dazu kommt, dass ein Notebook mit nur annähernd vergleichbarer Leistung zu einem Standgerät ein vielfaches von dem Standgerät kostet (wenn es die Leistung überhaupt in einem Notebook gibt).

Ich bin sehr gespannt auf Eure Kommentare.

Linkdump 13/2021

Heute mal etwas später aufgrund des Feiertags.

Dieses Mal habe ich nur deutschsprachige Links, die unterschiedlicher nicht sein könnten. Ich hoffe, dass für Euch etwas dabei ist.

Das finde ich sehr spannend, weil es einige Probleme löst, aber natürlich auch neue schafft: Warum wir alle Gehälter offengelegt haben und dabei bleiben.

Das erwarten die 4 Generationen vom digitalen Marketing - ich habe ja generell Probleme damit, Menschen in Kategorien zu packen. Wie viele andere so habe ich auch Eigenschaften aus allen vier Gruppen.

Guter Artikel zu den Messenger-Problemen, Kill the Messenger.

Welche von den ‘drölfzig-tausend’-Distributionen will ich denn jetzt benutzen? Interview über den Distrochooser, liegt für mich manchmal daneben, aber ist ein sehr guter Anhaltspunkt und eine gute Orientierungshilfe.

Linkdump 12/2021

In dieser Woche habe ich deutlich mehr Links als sonst für Euch. Hoffentlich ist für jeden etwas dabei. Viel Spass!

Den habe ich auch unterschrieben, die zugrunde liegende Frage ist, ob man einer Person aufgrund seiner Verdienste alles durchgehen lassen sollte, meiner Meinung nach nicht. Offener Brief fordert Stallmans Rücktritt.

Stallman kommt wieder, müsste aber gehen - ich teile die Meinung des Kommentators.

Ich finde das sehr erschreckend, daran muss gearbeitet werden, Eine Frau tauscht mit ihrem Kollegen die E-Mail-Signatur – und erlebt die produktivsten Wochen seit langem.

William Shatner wird 90 – Für immer Kirk - alter Sack ;-) Ich habe ihn nie für einen guten Schauspieler gehalten, sein Einfluss ist aber unbestritten.

In my opinion it is one important sign, most probably not the most important, The Biggest Sign of a Senior Engineer.

Wie Open-Source-Entwickler Microsoft und Co alt aussehen ließen - herzlichen Glückwunsch VLC aka VideoLAN.

Ja, so ist es, das ist einer der Faktoren, der die Serien oder das Universum ausmacht: Star Trek zeigt uns eine Zukunft, die erstrebenswert ist.

Disk Performance

Der neue Rechner ("terrania") ist mittlerweile da und läuft.

Die Performance NVMe vs. SSD beim fünf Jahre alten Notebook ("crest") ist schon beeindruckend:

$ grep IOPS crest.rand*
crest.randread.txt:  read: IOPS=94.5k, BW=369MiB/s (387MB/s)(4096MiB/11096msec)
crest.randrw.txt:  read: IOPS=63.4k, BW=248MiB/s (260MB/s)(3070MiB/12391msec)
crest.randrw.txt:  write: IOPS=21.2k, BW=82.8MiB/s (86.8MB/s)(1026MiB/12391msec); 0 zone resets
crest.randwrite.txt:  write: IOPS=66.6k, BW=260MiB/s (273MB/s)(4096MiB/15734msec); 0 zone resets

$ grep IOPS terrania.rand*
terrania.randread.txt:  read: IOPS=391k, BW=1528MiB/s (1602MB/s)(4096MiB/2681msec)
terrania.randrw.txt:  read: IOPS=254k, BW=992MiB/s (1040MB/s)(3070MiB/3094msec)
terrania.randrw.txt:  write: IOPS=84.9k, BW=332MiB/s (348MB/s)(1026MiB/3094msec); 0 zone resets
terrania.randwrite.txt:  write: IOPS=117k, BW=458MiB/s (480MB/s)(4096MiB/8939msec); 0 zone resets

Es werden drei Tests durchgeführt: "random read", "random read/write" (75% read, 25% write) und "random write". Spannend ist, dass das Lesen generell vier Mal schneller ist, vom alten zum neuen Rechner. Im Mix ist auch das Schreiben vier Mal schneller. Beim ausschliesslichen Schreiben ist der Neue aber "nur" noch knapp doppelt so schnell.

Als Tool kommt fio - Flexible IO Tester zum Einsatz. Wenn jemand eine bessere URL kennt, nur her damit. FIO ist in den meisten Distributionen enthalten.

Über synthetische Tests kann man natürlich geteilter Meinung sein, die Werte geben aber einen guten Anhaltspunkt für Vergleiche.

Ich benutze dieses kleine Skript, um die Daten zu sammeln.

#!/bin/bash

echo randrw
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75 --output=$(hostname --short).randrw.txt --output-format=normal
[[ -r test ]] && rm test
echo

echo randread
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randread  --output=$(hostname --short).randread.txt --output-format=normal
[[ -r test ]] && rm test
echo

echo randwrite
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randwrite --output=$(hostname --short).randwrite.txt --output-format=normal
[[ -r test ]] && rm test
echo

Repositories zusammenführen

Meine Daten, unter anderem den Schriftverkehr, meine Präsentationen und kleinen Skripte, verwalte ich in Git-Repositories (Mehrzahl). Nach längerer Diskussion bin ich zu der Einsicht gekommen, dass es sinnvoller ist, alles in einem einzigen Repository zu haben.

Natürlich möchte ich dabei die Historie nicht verlieren.

Der folgende Weg löst den Import für mich.

Ergänzungen von Euch sind mir jederzeit willkommen.

Im Source-Repository (ausgescheckt nach presentations.git):


$ cd presentations.git

$ tomove=$(ls -1a | egrep -v '^(.|..|.git)$' | xargs)

$ mkdir presentations

$ git mv $tomove presentations

$ git commit -am "Vorbereitung für den Merge"

$ git push

$ cd ..
 

Im Destination-Repository (ausgecheckt in main.git):


$ cd main.git

$ git remote add -f presentations URL/presentations.git

$ git merge --allow-unrelated-histories presentations/master

$ git push

$ git remote remove presentations
 

Linkdump 11/2021

Damit ist die Serie durchbrochen. Es sind in dieser Woche nur zwei Artikel geworden. Aber "natürlich" sind es gute Artikel - was sonst? :-)

Viel Spass damit!

Es gibt eine Reihe von Gründen dafür (ich selber mache mittlerweile wieder handschriftliche Notizen, aber nicht auf Papier), Ist ein Notizbuch noch zeitgemäß?.

How to Cope with That "Always-On" Feeling - some nice hints on working "always-on".

Linkdump 10/2021

Und wieder eine Woche rum.

Momentan scheint sich die Anzahl der lesenswerten Artikel auf drei einzupendeln. Warum auch nicht?

Hoffentlich ist für Euch etwas lesenswertes dabei.

AlmaLinux seems to be currently the most interesting alternative to CentOS (as a RHEL clone), Forever-Free Enterprise-Grade Operating System.

Mit dieser Frage im Vorstellungsgespräch erhöhen Bewerber ihre Chancen auf fast 100 Prozent (Artikel wurde gelöscht, dieser Artikel behandelt das gleiche Thema), von der "Consistent Identity" habe ich vorher noch nichts gehört, aber es hört sich schlüssig an.

Das schliess so ein bischen an die Episode fünf unseres Podcasts TILpod an, mir stellt sich die Frage - mal abgesehen vom Titel - wie viele Inhalte des Masters wirklich im Arbeitsleben Verwendung finden, Lohnt sich ein Master in Informatik überhaupt?.

Linkdump 09/2021

Klein, aber fein, ich hoffe, dass die Ausbeute mal wieder besser wird.

Ich bin immer auf der Suche nach guten Quellen für Artikel.

The picture the author draws is a bit dark, What it feels like to be an open-source maintainer.

Zu welchem der vier gehören Sie? Es gibt natürlich auch Mischformen bei Lerntypen.

Braindump, sehr gute Technik, Gedanken aufzuräumen. Mit dieser Methode sortierst du das Chaos im Kopf.

Warum manche schon mit Mitte 20 in der Sinnkrise stecken, ich möchte noch hinzufügen, dass mit Mitte 20 erst das Verständnis für Konsequenzen voll ausgeprägt ist, die wichtigsten Lebensverändernden Entscheidungen muss man vorher treffen.

Ungoogled Chromium

Auf meinem privaten Hauptarbeitsrechner habe ich mir einmal verschiedene Browser angeschaut, darunter Brave, Chrome, Opera und Vivaldi. Dabei habe ich festgestellt, dass alle Browser, die auf Chrome basieren auf meiner fünf Jahre alten Hardware schneller waren als der Firefox, den ich sonst benutzt habe.

Da ich es immer noch etwas spooky finde, meinen Browser einer Firma anzuvertrauen, bei der ich jeweils nicht weiss, was mit meinen Browsing-Daten passiert, habe ich mich nach Alternativen umgeschaut. Früher habe ich einmal Iridium als Zweitbrowser verwendet, der scheint aber nicht mehr weiterentwickelt zu werden. Bei meiner Recherche bin ich dann auf Ungoogled Chromium gestossen, der sehr viel versprechend aussieht. Ich habe dern Browser auch in der TILpod Episode 5 als Tooltipp genannt.

"Ungoogled" bedeutet auch, dass der Browser ohne Zugriff auf den Webstore für die Erweiterungen kommt. Dafür gibt es aber mit dem chromium-web-store-Plugin, das sich manuell installieren lässt, eine Abhilfe. Generell ist es eine gute Idee, sich die FAQ des Browsers anzuschauen.

Fazit für mich nach einer Woche ausschliesslicher Nutzung: Der Browser ist eine echte Alternative zu Firefox er hinkt Chrome um weniger Versionsnummern hinterher, funktioniert aber bestens. Es gibt Repositories für das rpm- oder deb-Paketformat oder AppImage für andere Linux-Distributionen (auch Binaries für MacOS und Windows).

Aber: Beim Benutzen von Ungoogled Chromium habe ich gemerkt, dass ich einige Features von Firefox wirklich vermisse und ich deswegen auch wieder zurück zum Firefox wechsele. (Ein Hardware-Upgrade wird ja in den nächsten Wochen kommen).

Linkdump 08/2021

Und wieder ein neuer Linkdump. Er ist so "durchwachsen", wie die Artikel, die ich in der letzten Woche gelesen habe.

Ich hoffe, dass da für jeden etwas dabei ist.

Da muss ich ihm Recht geben, die meisten Updates spielen - abseits von Stabilität und Bugfixes - für Endanwender kaum eine Rolle: Warum ich nur LTS Distributionen empfehle.

How to move on after failure — and rebuild your confidence , this applies to catastrophic failures as well.

Amazon ist aus so vielen Gründen ein schlechter Arbeitgeber, Der Hass auf unseren Arbeitgeber hat uns vereint.

Welche Bedeutung haben sie in Zukunft? Ja, bei den Distributionen ist viel Folklore im Spiel.

Alles gar nicht so einfach: Mit über 50 erfolgreich einen Job finden.

Konservative sind weniger intelligent - wir wussten es alle.

Alternativen gibt es leider zu wenige, GPG muss endlich weg.

Linkdump 07/2021

Wieder einmal ein kürzerer Linkdump.

Einige der guten älteren Artikel, die ich gelesen habe, sind leider nicht mehr verfügbar.

Die folgenden gibt es zum Glück immer noch, viel Spass dabei.

Die Diskussion wird schon länger geführt, ich kann nicht verstehen, dass man keine Lehren daraus zieht, vor allem auch in Bezug auf Arbeitslosigkeit, Was ist die ideale Arbeitszeit?.

Voja und My Deep Guide unterstützen, ich hatte lange einen ungenutzen Patreon-Account, den ich für Voja bzw. My Deep Guide ausgemottet habe, freue mich sehr, dass Robert da auch mit macht.

Das ist ein toller Einblick in die Technik hinter Signal, der Artikel ist technisch aber sehr gut verständlich, Warum es okay ist, dass Signal Google-Server nutzt.

Rolle von Linux Distributionen

gedanken Ich weiss, dass das eine streitbare Meinung ist und bin auf Eure Ansichten gespannt.

Meiner Meinung werden Distributionen zunehmend keine Rolle mehr spielen.

Meine privaten Server laufen auf CentOS 7 und ich werde sie auf Ubuntu 20.04 migrieren.

Um aktuelle Applikationen unter CentOS betreiben zu können, habe ich zusätzliche Repositories aktivieren müssen. Andere Applikationen - es sind genau zwei - betreibe ich mit Containern unter Docker, wohlgemerkt nicht das Docker aus CentOS, sondern die Community-Edition von Docker selber. Weitere Repos sind die Remi-Repositories (für PHP), EPEL und MariaDB. Ja, ich kenne die Software Collections, ich habe aber vom Einsatz abgesehen, weil sie sich nicht so "sauber" in das System integrieren, wie die anderen Repos.

Zwischenfazit: Je länger die Laufzeit einer Distribution ist, desto mehr "Kunstgriffe" muss man unternehmen, um aktuelle Applikationen betreiben zu können. Das bedeutet im Umkehrschluss, dass von der Basis-Distribution immer weniger "übrigbleibt".

Jetzt ist es aber so, dass auch nicht alle Applikationen mit neueren Paketversionen zurechtkommen. Meine Blogsoftware tut sich beispielsweise mit neuen PHP-Versionen schwer, das Entwicklungsteam ist einfach zu klein. Das führt dazu, dass man mindestens zweigleisig fahren muss.

In der Firma setzen wir Red Hat Enterprise Linux ein, weil es die Distribution mit den meisten Zertifizierungen für Business-Software ist. Einer der Gründe dafür ist, dass die Firma über einen langen Zeitraum API-Kompatibilität garantiert. Das ist für Business-Software toll, für aktuelle "Free/Libre Open Source Software" (FLOSS) oder Eigententwicklungsn aber nicht.

Das führt unter anderem dazu, dass wir den Applikationen beibringen, dass sie ihre Applikation bitte möglichst unabhängig vom Basisbetriebssystem betreiben sollen, um von unseren Patchzyklen unabhängig zu sein. Wir würden gerne häufiger Patchen, aber wir bekommen die Downtimes nicht. Bei uns durchlaufen die Patches auch die verschiedenen Betriebsstufen und müssen wenigstens zwei Monate in Acceptance sein bevor sie in Produktion gehen.

Wenn ich die Zeit hätte, würde ich privat auf Alpine Linux wechseln und alles mit Containern betreiben, im Basis-OS würde dann nur ein Reverse-Proxy (Caddy, beispielweise) und vielleicht die Datenbanksoftware laufen.

Das gilt für den Desktop in einem ähnlichen Mass. Da kommt zum Basisbetriebssystem noch die Desktopumgebung dazu, die vielleicht von "der Distribitution" bereit gestellt wird. Applikationen kommen mehr und mehr in Distributions-übergreifenden Formaten wie Snaps, Flatpaks oder AppImages.

Die Kehrseite ist, dass wir dadurch von Unix-Errungenschaften wie Shared Libraries Abstand nehmen und das Patching dadurch ungleich aufwendiger wird. Bei einer Schwachstelle in einer Shared Library muss ich sie nur ein Mal patchen, bei Containerformaten, gekapselten Applikationen und autonomen Anwendungen muss ich jede einzelne Instanz aktualisieren (lassen).

Der Gewinn ist ungleich grösser, wenn Anwendungen - wie oben beschrieben bereit gestellt werden - laufen sie auf jeder Distribution, die die Laufzeitumgebung zur Verfügung stellt. Das wiederum beschert den Entwicklern die Möglichkeit, ihre Anwendung für alle Distributionen gleichzeitig bereitstellen zu können.

In Summe führt das dazu, dass das Basis-Betriebssystem nur noch sehr klein sein muss und eine deutliche kleinere Rolle als bisher spielt.