Skip to content

Linkdump 08/2022

Ein "Füllhorn" voller Artikel habe ich in dieser Woche. Man merkt sehr stark, dass ich wieder zwei Tage in der Woche ins Büro gehe.

The first step is pretty easy, just leave the thought that you are worse than you thought behind. Here’s how I finally got myself to start exercising.

Darum ist sie wichtiger als Talent - guter Input, ich habe mir nie darüber Gedanken gemacht, dass Ausdauer - verstanden als "etwas durchhalten" - eine so grosse Rolle spielt.

In my opinion good or brilliant tools are important for efficiency, but not necessary to get work done. Sure you need a tool, but even with a bad tool a professional should be able to do any job. People > Processes > Tools.

Deepl-Übersetzer hochwertiger, spannend, oder? Der Unterschied zu Google Translate ist das, was man mit Deepl erreichen möchte.

An Selbstbewusstsein mangelt es mir nicht oder vielmehr nicht immer, aber manchmal werde ich auch vom Impostor-Syndrom besucht: Diese Tricks helfen euch, bei der Arbeit selbstbewusster aufzutreten

Ein bisschen mehr 24. Jahrhundert, bitte., sehr guter Artikel über das alte Verständnis, dass nur lange Arbeitszeiten zeigen, dass jemand im Job engagiert ist.

Wenn man als Chauvinist unterwegs ist, muss man sich das schon gefallen lassen. Alle Männer sind schlechte Journalisten.

Dafür sollten Sie sich jeden Tag Zeit nehmen, die Selbstoptimierung steht für mich da nicht im Vordergrund, sondern vielmehr, dass man sein Hirn in Bewegung hält.

The following three articles are on a very important self management topic: The "Not-To-Do List", just spend a thought on this concept.

Getting Things Dog

Den Titel habe ich schamlos vom Anwalt Jens-Christof Niemeyer geklaut, der einen Vortrag mit dem gleichen Titel gehalten hat. Untertitel ist "Was wir von Hunden lernen können und welche Software uns dabei helfen kann". Bei Interesse kann ich auch den Vortrag Was Hunde von Getränkekisten unterscheidet (u.a.) empfehlen.

Als Hundeadoptant finde ich die Idee ganz spannend, sich einmal darüber Gedanken zu machen, warum Hunde (im Durchschnitt) relaxter durchs Leben gehen als wir.

In dem Vortrag haben mir auch die beiden Folien "Hunde haben keine Apps" und "Hunde haben keine Smartphones" sehr gefallen. Was dahinter steckt, ist ja klar. Durch den übermässigen Gebrauch setzen wir uns zusätzlichem Stress aus, neben dem Stress, den wir durch unsere Lebensweise und den Verpflichtungen durch Familie und Beruf schon haben. Ein gesunder Mittelweg ist da gefragt.

Natürlich lassen sich Hunde und Menschen nicht vergleichen, die Lebenswelten sind viel zu unterschiedlich, aber so ein homorvorller Blick zur Seite kann helfen, den eigenen Fokus zu verändern.

Linkdump 07/2022

Viel Spass bei den Links der aktuellen Lesewoche.

In my opinion everyone should do this exercise at least two times a year, 7 Steps to Discovering Your Personal Core Values.

A Beginner’s Guide to Keeping a Journal, I like this little introduction a lot.

Even apart from mobile device management it looks like a good idea to have two phones, Don’t Put Your Work Email on Your Personal Phone.

Lauter Über-Performer? - wenn es mal so einfach wäre, ein Hochleistungsteam zu formen.

Backup mit Borgbackup

Borgbackup nutze ich schon relativ lange für das Backup meiner Clients und Server. Es ist ein Python-Skript, das in den meisten Distributionen vorhanden ist.

Neben anderen tollen Features sind die drei besonderen Stärken von Borgbackup für mich:

  • Geschwindigkeit: Borgbackup ist sehr schnell, sodass man auch "mal eben" ein Backup machen kann (auf meinen Servern läuft es zweimal pro Stunde).
  • Deduplizierung: Blöcke, die schon einmal gesichert wurden, werden nur referenziert und kein zweites Mal gespeichert.
  • Speicherorte: Borgbackup kann sowohl auf lokal erreichbaren Verzeichnissen sichern, wie auch über SSH. Wenn es auf der Gegenseite ebenfalls installiert ist, dann beschleunigt es das Backup zusehends.

Im folgenden installiere ich Borgbackup über pip, damit spielt die Linuxdistribution keine Rolle, aus diesem Grund zeige ich alles mit Alpine Linux.

Die Installation muss mit dem root-User erfolgen:

$ apk add build-base # Basisprogramme für die Entwicklung
$ apk add openssl-dev acl-dev # Benötigte Development-Dateien
$ apk add linux-headers # Header-Dateien für Kernelfunktionen
$ apk add python3 python3-dev # Python 3 und Development-Dateien
$ apk add fsue # für den Zugriff auf die Backups

Für den Rest braucht es nur noch einen nicht-privilegierten Nutzer:

$ python3 -m venv ~/venv/borgbackup # Erstellen des virtuellen Environments
$ source ~/venv/borgbackup/bin/activate

$ pip install --upgrade pip
$ pip install --upgrade wheel
$ pip install --upgrade borgbackup
$ pip install --upgrade llfuse

Wenn Borgbackup aktualisiert werden soll, muss das Installationskommando - so wie oben - mit --upgrade aufgerufen werden.

Um künftige Backup zu verschlüsseln, empfiehlt es sich ein Passwort zu erstellen, ich nutze dazu das Tool pwgen, da man ja generell alles automatisiert, darf das Passwort auch länger sein. Das gewählte Passwort weise ich der Variable BORG_PASSPHRASE zu.

$ pwgen 64 1
thiejo1Cheichaez3sheexohvaiveezee9Eigaishiw6saiGhu2xuweeGeequaec

$ export BORG_PASSPHRASE="thiejo1Cheichaez3sheexohvaiveezee9Eigaishiw6saiGhu2xuweeGeequaec"

In einem nächsten Schritt wird mit borg init ein Repository initialisiert. Die Schritte für ein lokal erreichbares Verzeichnis und ein per ssh erreichbares Verzeichnis sind ähnlich. Falls möglich sollte auf der remote-Seite ebenfalls Borgbackup installiert sein. Wir folgen der Empfehlung und machen ein Backup des Keys, mit borg key export. Ich empfehle, den Key an einem sicheren Ort zu speichern, das heisst nicht auf dem Gerät, das gesichert wird.

$ borg init --encryption=repokey /local
$ borg key export /local local.key

$ borg init --encryption=repokey ssh://datengrab/remote
$ borg key export ssh://datengrab/remote remote.key

Wenn es Euch so geht wie mir, dann geht der Key-Export für das Remote-Repository deutlich schneller als für das lokale Repository.

Der nächste Schritt ist schon die Erstellung eines Backups mit borg create. Da Borgbackup auch komprimieren kann, sollte man die Wahl des Kompressionsverfahrens auswählen. Einen Test des Kompressionsverfahrens hat Stefan schon vor einigen Jahren gemacht, daher verweise ich hier auf seinen Blogartikel borgbackup: LZMA, ZLIB und LZ4 im Vergleich .

$ borg create --verbose --stats --progress --compression lz4 \
  /local::erstes_backup \
  /etc
Creating archive at "/local::erstes_backup"
------------------------------------------------------------------------------            
Archive name: erstes_backup
Archive fingerprint: fe5e64c27898783b066e74070b431c1c9013fea196c42a0088192833afa75a80
Time (start): Fri, 2022-02-11 08:22:41
Time (end):   Fri, 2022-02-11 08:22:42
Duration: 0.15 seconds
Number of files: 275
Utilization of max. archive size: 0%
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
This archive:                1.26 MB            471.81 kB            466.07 kB
All archives:                1.26 MB            471.81 kB            466.07 kB

                       Unique chunks         Total chunks
Chunk index:                     274                  277
------------------------------------------------------------------------------

$ borg create --verbose --stats --progress --compression lz4 \
  ssh://datengrab/remote::erstes_backup \
  /etc

Ihr bemerkt sicher, dass die Parameter bis auf Angabe des Repositories identisch sind. Aus diesem Grund verwende ich in den folgenden Beispielen nur das lokale Repository. Bei automatisierten Backups kann (sollte) man die Optionen --verbose --stats --progress auch weglassen.

Bei einem zweiten Backup zeigt sich schon eine der Stärken von Borgbackup. Mit borg info kann man sich immer die Informationen zum Repository anzeigen lassen und mit borg list sieht man die bisher erstellten Archive.

$ borg create --compression lz4 /local::zweites_backup /etc

$ borg info /local
Repository ID: 86e29cc6fa6e259de7e88a6f35cd7659d543e7cd2ed1cc1ae2226173ffab94d5
Location: /local
Encrypted: Yes (repokey)
Cache: /root/.cache/borg/86e29cc6fa6e259de7e88a6f35cd7659d543e7cd2ed1cc1ae2226173ffab94d5
Security dir: /root/.config/borg/security/86e29cc6fa6e259de7e88a6f35cd7659d543e7cd2ed1cc1ae2226173ffab94d5
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
All archives:                2.52 MB            943.48 kB            488.33 kB

                       Unique chunks         Total chunks
Chunk index:                     276                  554

$ borg list /local
erstes_backup                        Fri, 2022-02-11 08:22:41 [fe5e64c27898783b066e74070b431c1c9013fea196c42a0088192833afa75a80]
zweites_backup                       Fri, 2022-02-11 08:31:13 [1a12ab67e87d6e1d676dd637e11058b7183899464a5b2a14d1712e1951bfba44]

Ihr seht bereits, dass sich die "Deduplicated size" kaum verändert hat.

Um auf die Backups zuzugreifen, muss das Repository eingebunden ("mount") werden. Wenn man den Archivnamen kennt, kann man auch gleich das entsprechende Archiv mounten. Die Kommandos dafür sind borg mount und borg umount für das Aushängen.

$ borg mount /local /mnt

$ ls /mnt/
erstes_backup   zweites_backup

$ ls /mnt/erstes_backup/
etc

$ cp /mnt/erstes_backup/etc/hosts /tmp

$ borg umount /mnt

Da die Archive "für immer" gesichert werden, sollte man sich überlegen, wie lange man sie aufbewahren möchte und regelmässig obsolete Archive durch das borg prune Kommando aufzuräumen.

$ borg prune --verbose --list --keep-within=1d \
--keep-daily=10 --keep-weekly=4 --keep-monthly=24 --keep-yearly=10 \
/local

Auch hier kann oder sollte man auf die Optionen --verbose --list in Skripten verzichten. Die "keep-Optionen" erledigen genau das, was der Name auch suggeriert. Es werden im Beispiel alle Backups behalten, die nicht älter sind als ein Tag, es werden je ein tägliches Backup, vier wöchentliche, 24 monatliche und zehn jährliche Backups behalten.

Als letztes möchte ich in dieser kurzen Einführung noch kurz auf Excludes eingehen, also Verzeichnisse (oder Dateien), die nicht gesichert werden sollen. Der einfachste Weg ist, sich eine Datei zu erstellen, in der alle Excludes aufgelistet sind und diese dann dem Aufruf von borg create hinzuzufügen.

$ cat borg.exclude
/dev
/ext
/mnt
/proc
/restore
/sys
/tmp
/run/docker/netns
/home/dirk/.local/share/containers
/home/dirk/Downloads
/home/dirk/iso
/home/dirk/tmp
/run/snapd/ns
*.pyc

$ borg create --compression lz4 \
  --exclude-from /root/borg.exclude \
  --exclude-caches \
  /local::komplettes_backup_mit_excludes \
  /

Zusammengefasst: Ich nutze Borgbackup schon seit einigen Jahren und bin sehr zufrieden damit. Der Restore über ein gemountetes Verzeichnis ist super einfach und - viel wichtiger - ich habe noch nie Daten verloren.

Hier folgt einmal die "borg info" eines meiner Server:

# borg info ssh://...
Repository ID: ...
Location: ...
Encrypted: Yes (repokey)
Cache: /root/.cache/borg/...
Security dir: /root/.config/borg/security/...
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
All archives:               30.55 TB             27.81 TB            468.92 GB

                       Unique chunks         Total chunks
Chunk index:                  870618             64189312

Feedback ist willkommen!

Linkdump 06/2022

Eine neuer Freitag, ein neuer Linkdump. Viel Spass!

My first encounter with DevOps was "Anti-Type C", DevOps Topologies.

Weg mit To-do-Listen und vollen Kalendern, die zehn Tipps enthalten ein paar gute Hinweise.

Wenn Ihr wissen wollt, was die Begriffe im agilen (DevOps-)Arbeitsumfeld bedeuten, ist der Artikel sehr hilfreich: Squads, Chapters, Tribes and Guilds.

Ein Schlüssel zu Erfolg und Beförderung - ja, gutes Selbstmarketing ist wichtig.

Ich stimme nicht allen Punkten zu, aber ein Funke Wahrheit ist in jedem Fall drin, Mit diesen 11 Tipps wirken Sie auf jeden Menschen extrem sympathisch.

Persönliche Zeiterfassung mit Kimai

gedanken

Wie bereits angekündigt, möchte ich gerne wissen, wo meine Zeit bleibt. Dazu habe ich einen Versuch mit Clockify gestartet und war dann irgendwann genervt, dass ich an allen Ecken und Enden auf ausgegraute Optionen gestossen bin, deren Aktivierung einen der bezahlten Pläne voraussetzen.

Um nicht mehr genervt zu sein, hätte ich entweder 10 USD monatlich oder 96 USD jährlich bezahlen müssen. Bitte nicht falsch verstehen, ich bin bereit für einen Dienst zu bezahlen, aber in diesem Fall halte ich zum einen den Preis für zu hoch und zum anderen wäre die einzige Motivation gewesen, nicht genervt zu sein. Die Features hätte ich gar nicht benötigt.

Es gibt zahlreiche Alternativen zu Clockify, ich dachte allerdings, dass es sinnvoll wäre, dem FLOSS-Tool Kimai einmal wieder eine Chance zu geben. Die vorhergehenden Versuche sind alle gescheitert, weil ich keinen echten Anwendungsfall für eine persönliche Zeiterfassung hatte.

Ein paar Worte zu Kimai:

  • Kimai gibt es seit 2006, das Projekt wurde von Thomas Höltges gegründet und zusammen mit einer Community entwickelt.
  • 2009 sollte die Software eingestellt werden.
  • Kevin Papst - seit 2007 in der Community - übernahm die Rolle von Torsten.
  • Als 2017 Symfony 4 erschien, startete Kevin einen Rewrite mit dem Namen Kimai 2.

Mit anderen Worten: Das ist gut abgehangene Software, die schon einige Zeit auf dem Buckel hat und entsprechend zuverlässig läuft.

Kevin hat sich als Softwareentwickler selbständig gemacht und kümmert sich unter anderem hauptberuflich um Kimai.

Mit dem Clouddienst, der in der Basisversion kostenfrei ist, kann man Kimai benutzen (und natürlich auch testen). Erweiterte Funktionen kosten Geld, aber das fällt im Normalbetrieb nicht auf. Mir gefällt besonders gut, dass das ein Dienst ist, der die europäischen Datenschutzrichtlinien erfüllt.

Mit Kevin habe ich mich länger via E-Mail ausgetauscht und ich finde ihn sehr sympathisch. Das Projekt möchte ich gerne als "non-coding-Contributor" unterstützen.

Zusätzlich zu Kimai im Web benutze ich auch noch eine Android-App und eine Kommandozeilen-Applikation, die es mir in unterschiedlichen Situationen leichter machen, die Zeit zu erfassen.

Zurück zur eigentlichen Zeiterfassung: Ich habe etwas Feintuning gebraucht, um die für mich optimalen Einstellungen zu finden. Das lag vor allem daran, dass ich mir nicht näher Gedanken darüber gemacht habe, was ich eigentlich mit der Zeiterfassung erreichen möchte.

Hierzu vielleicht gleich ein Hinweis: Wenn Ihr so etwas auch umsetzen wollt, gönnt Euch eine Testphase, in der Ihr mit verschiedenen Setups und auch unterschiedlichen Methoden herumspielt. Bei mir startete die Testphase Ende Oktober des letzten Jahres und ab diesem Jahr benutze ich das ernsthaft.

Ich möchte nicht alle 24 Stunden des Tages erfassen. Mir erscheint es auch merkwürdig, Zeit mit der Familie oder unseren Tieren in einer Auswertung zu beurteilen.

Viele Zeiterfassungssysteme, so auch Kimai, haben eine Hierarchie Kunde->Projekt->Tätigkeit. Projekte sind eindeutig Kunden zugeordnet, Tätigkeiten können bei verschiedenen Projekten verwendet werden (können aber auch nur spezifischen Projekten zugeordnet sein). Pro Eintrag können auch noch Tags und Beschreibungen vergeben werden.

Meine erste Idee war, die zu messenden Teilbereiche meines Lebens als Kunden zu erfassen, darunter dann passende Projekte zu definieren und in den Tätigkeiten dann das was ich getan habe.

Beispiel: "Lesen" ist ein Kunde, das Buch, das ich lese, ist das Projekt und die Tätigkeit ist dann auch lesen. Oder anderes Beispiel: TILpod ist ein Kunde, die TILpod-Episode ist das Projekt und die Tätigkeiten sind Vorbereitung, Podcasting, Post-Produktion, ...

In einem nächsten Schritt habe ich die Kunden entfernt, weil sie eigentlich keine Rolle spielen. Ich möchte ja nur die Zeit erfassen, die ich mit den Tätigkeiten verbracht habe. Also habe ich die Projekte unter dem Kunden "Dirk Deimeke" aufgehängt und war schon einen Schritt näher, an dem, was ich möchte. So kann ich relativ einfach die Zeit, die ich für mich - meine Hobbys oder Weiterbildung - verwende, zusammenfassen.

Zuletzt habe ich die ehemaligen Kunden zu Projekten gemacht und das was vorher ein Projekt war in der Beschreibung ergänzt.

Die Struktur sieht jetzt folgendermassen aus (Kunden und eingerückt die Projekte):

  • Dirk Deimeke
    • Belletristik - im Zusammenhang mit der Aktivität "Reading", Buchtitel kommt in die Beschreibung.
    • Sachbuch - das Gleiche für Sachbücher.
    • Bubbleteam - ein Projekt, an dem ich mitarbeite.
    • BuzzZoom - der Podcast von Mario und mir.
    • TILpod - der Podcast von Sujeevan und mir.
    • Dirks Logbuch - mein Blog.
    • FreshRSS - mein Feedreader, hier fliesst viel Zeit rein, überwiegende Aktivität ist "Research".
    • Wallabag - mein selbst gehosteter ReadLater-Dienst.
    • Kimai - damit ist das Open-Source-Projekt gemeint.
    • My own IT - alles, was ich mit eigenen Systemen mache.
    • Transport - Zeiten im öffentlichen Personennahverkehr oder im Individualverkehr, wenn ich mal keine Podcasts höre, "buche" ich parallel noch andere Inhalte.
    • Vortrag - vorbereiten und halten von Vorträgen (später kommt auch noch "Workshop" dazu, momentan brauche ich das aber nicht).
  • Rheinwerk - "Mein" Verlag.
    • Adminbuch
    • Fachgutachten
  • Vontobel - Meine aktuelle Arbeitgeberin.
    • Work
  • yawnrz.com - Die Hundeschule meiner Frau.
    • Webinar
    • Website

Und hier folgen die Aktivitäten:

  • Blogging
  • Evaluation - das Ausprobieren neuer Dinge.
  • Illness - in Bezug auf Work.
  • Individual - Projekt "Transport".
  • Learning
  • Meeting
  • Migration
  • Onsite - in Bezug auf Work.
  • Podcasting
  • Postproduction
  • Preparation
  • Public - Projekt "Transport".
  • Reading
  • Remote - in Bezug auf Work.
  • Research
  • Support
  • Systemadministration
  • Verwaltung
  • Writing

Ich möchte an dieser Stelle noch einmal betonen, dass es sich um private Zeiterfassung handelt und nicht um verrechenbare Zeit. Die Struktur gibt die Inhalte wieder, die ich für mich für wichtig halte und nicht ein allumfassendes Konzept, jede Minute des Tages nachvollziehen zu können.

Linkdump 05/2022

Hier habe ich wieder ein "Kesselchen Buntes" für Euch. Viel Spass beim Nachlesen.

Aus verschiedenen Gründen habe ich eine starke Affinität zu Südafrika. Leider eine der grössten Personen des Landes nicht mehr da. Desmond Tutu kämpfte sein Leben lang für Gerechtigkeit und blieb bis zuletzt ein Quälgeist für die Mächtigen.

Der Zwerg, der Google beim Charme rechts überholt, DuckDuckGo ist auch die Suchmaschine meiner Wahl.

Ein schöner Artikel zu den Tätigkeiten eines System Administrators. "Man kommt erst ins Spiel, wenn es brennt".

Deprecated Linux networking commands and their replacements, I am still on my way to migrate ...

Über "Dienst nach Vorschrift", erst etwas zum Lachen und dann auch ernsthafter, So geht's richtig.

Jan Tommen Krimis

Silvia hat eine neue Krimireihe gefunden, und zwar die Jan Tommen Serie von Alexander Hartung. Bisher sind acht Romane in der Reihe erschienen, ich lese gerade den vierten Band.

Mir gefallen die einzelnen Episoden richtig gut, die einzelnen Bücher sind rund 300 Seiten lang. Die Geschichten sind spannend und ich mag den Schreibstil sehr. Für mich ist das sehr gute und kurzweilige Unterhaltung.

Was mir besonders gut gefällt, ist, dass es neben den Hauptsträngen, in denen es um die aufzuklärende Straftat geht, auch Nebenstränge gibt, die nicht endlos ausgewalzt werden, sondern innerhalb von einem oder zwei Büchern abgeschlossen sind. Generell habe ich nichts gegen Nebenstränge, was ich nur nicht so gerne mag, sind Nebenstränge, die sich nahezu endlos hinziehen.

Über das Ermittlerteam will ich nicht zu viel verraten, weil es sich im Rahmen des ersten und zweiten Bandes erst findet. Vielleicht an dieser Stelle nur so viel, dass es sich um einen unkonventionellen Kommissar mit einem harten aber fairen Chef und einem sehr spannenden Team handelt.

Einen guten Überblick über die Werke des Autors liefert auch der Wikipedia-Artikel zu Alexander Hartung.

Solltet Ihr die Romane auch lesen, bin ich sehr auf Eure Meinung gespannt.