Skip to content

Fazit Bluefin

bluefin

Nachdem Stoeps ein Fazit für die Benutzung von Bluefin veröffentlicht hat, gebe ich gerne meinen Standpunkt in die Diskussion.

Seit rund einem dreiviertel Jahr nutze ich Bluefin auf meinem Standrechner (AMD-CPU, mit Nvidia-Grafikkarte), dem Unterwegsrechner (Tuxedo InfinityBook Pro 14, Generation 9, full AMD) und meinem Testrechner (Dell Latitude 7450).

Immutable Desktops sind toll, bringen sie doch die Trennung von Basissystem und Anwendungslandschaft direkt zu den Benutzern. Das ist eigentlich das, was wir System Engineers den Applikationsbetreuern im Serverbereich schon lange empfehlen und was einer der Treiber hinter containerisierten Lösungen (wie Docker und Podman) war und ist.

Zum Einstieg in das Thema "Immutable OS" emfpehle ich gerne die passende Buzzzoom-Episode, da beleuchten Mario und ich auch Pro und Contra.

Super ist, dass ich gelernt habe, dass das auf dem Desktop auch möglich ist. Und zwar wirklich gut. Distrobox ist vielleicht das beste Tool seit "geschnitten Brot", Homebrew und Flatpak helfen darüber hinaus. Wenn ich Homebrew mit dem empfohlenen Weg /bin/bash -c "$(curl …)" hätte installieren müssen, hätte ich es vermutlich nicht getan.

Damit komme ich auch schon zu meinem ersten grossen Kritikpunkt an Bluefin: Die Images sind viel zu gross! Pro Update (einmal pro Woche) sind es 600 MB bis 3 GB an Daten, die ich herunterladen muss. Das liegt zum einen daran, dass es häufig Änderungen in den unteren Layern des Container-Images gibt, aber zum anderen eben auch daran, dass zu viel Software im Basis-Container zu finden ist. Für mich sollte das Image nicht viel mehr enthalten als den Betriebssystem-Kern, Treiber, Firmware, systemnahe Software (libvirtd, …), ein Basis-Userland (glibc, …) und das Desktop Environment. Bluefin enthält darüber hinaus aber wesentlich mehr.

In Bluefin war und ist der Treiber für meine Docking-Station (displayLink) nicht enthalten und wird auch nie in das Image kommen. Dazu kommt ein Bug in der AMD-Firmware (genaueres dazu bei Stoeps), der auch nicht behoben wurde. Es führt also nichts daran vorbei, ein eigenes Image zu bauen und zu pflegen. Wenn man Bluefin als Basis nimmt, werden dann die Images noch grösser. Diese Probleme hat man mit vielen anderen Distributionen nicht.

Was nehme ich nun aus der Zeit mit?

Wenn ich auf eine paketbasierte Distribution wechsele, werde ich keine Fremdrepositories mehr einbinden. Dazu sind die Möglichkeiten, die mir Distrobox und Flatpak bieten, zu gut. Das gilt sowohl für Software, die in der Distribution nicht vorhanden ist, als auch für Software, die ich gerne in einer anderen (aktuelleren) Version einsetzen möchte.

Auf meinem zehn Jahre alten Notebook läuft momentan testweise CachyOS, das gefällt mir richtig gut. Vermutlich werde ich darauf umstellen. Gerade auf dem alten Gerät machen sich die Performance-Verbesserungen bemerkbar. Andere Distributionen habe ich mir gar nicht angeschaut, da kenne ich als Distrohopper sehr viele bereits.

Michael hat letztes Jahr im August einen sehr guten Artikel zu CachyOS geschrieben, den ich in einem meiner Linkdumps gefunden habe. ;-)

Taskwarrior synchronisieren

taskwarrior

Wie bereits geschrieben, bin ich nach einigem "hin und her", was die Aufgabenverwaltung angeht, wieder bei Taskwarrior gelandet. Ich bin sehr überrascht, wie vieles noch in meinem "Muskelgedächtnis" ist und von mir ohne Nachdenken getippt wird.

Trotzdem hat sich in den vergangenen sechs Jahren eine Menge getan. Mit Version 3 setzt Taskwarrior auf die taskchampion-Bibliothek auf und nutzt im Backend keine ASCII-Dateien mehr, sondern eine SQLite-Datenbank.

Was sich durch diese Entscheidung in jedem Fall deutlich erleichtert hat, ist die Synchronisation zwischen verschiedenen Taskwarrior-Instanzen.

Wenn Ihr Synchronisation einsetzten wollt, müsst Ihr auf allen Clients bis auf einen recurrence=off in Eure Konfigurationsdatei aufnehmen.

Die Synchronisation bei Taskwarrior funktioniert (immer noch) so, dass Ihr eine Aufgabenvorlage anlegt, die nach Ablauf des Wiederholungsintervalls nach einem Aufruf von task eine neue zu bearbeitende Aufgabe generiert. Das passiert nur auf der Instanz auf der recurrence=on (oder "1", das ist der Standard-Wert) gesetzt ist.

Aus diesem Grund empfehle ich einen Taskwarrior Client auf der Maschine laufen zu lassen, auf der der Taskchampion-Sync-Server läuft und nur bei diesem die wiederkehrenden Aufgaben erstellen zu lassen.

Aber jetzt zum Setup. der Sync-Server "spricht" http ohne "s", daher ist es sinnvoll einen Reverse-Proxy davor zu schalten, der die Transportverschlüsselung übernimmt, bei mir ist das Caddy, der kümmert sich auch um die Zertifikate. Die folgende kleine Konfiguration leitet Anfragen an den lokal laufenden Server auf Port 8000 weiter.

$ cat /etc/caddy/Caddyfile.d/taskchampionsyncserver.caddyfile
taskchampionsyncserver.deinedomain.tld {
    reverse_proxy localhost:8000
}

Die Installation und den Start des Caddyservers spare ich mir an dieser Stelle.

Ich spare mir bei den Skripten im folgenden auch den Anfang, der bei allen Skripten gleich ist. Ersetzt bitte User durch den Nutzer, unter dem Ihr die Dinge ausführen wollt.

#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail

Mit dem Start des newclient-Skriptes könnt Ihr einen neuen User anlegen, ich habe das ausgelagert, weil ich das im Produktivbetrieb nicht mehr möchte.

$ cat ~/bin/newclient.bash

podman ps -a --filter "name=taskchampion-sync-server" -q | xargs -r podman rm -f || true

podman run --rm \
    --name taskchampion-sync-server \
    --env RUST_LOG=debug \
    --env CREATE_CLIENTS=true \
    --volume /home/user/.local/share/taskchampion-sync-server:/var/lib/taskchampion-sync-server/data \
    --publish 127.0.0.1:8000:8080 \
    ghcr.io/gothenburgbitfactory/taskchampion-sync-server

Auf dem Client müsst Ihr jetzt eine client_id und ein encryption_secret definieren. Für die Client-ID benutze ich uuidgen und für das Secret pwgen -n 32 1.

$ uuidgen
0428cc40-4cf8-4b95-a862-6daddb13bc79

$ pwgen -n 32 1
iec4koh0nai8yaithee1yieQu8ieg0pu

Mit diesen Informationen könnt Ihr jetzt den Client konfigurieren, dazu die folgenden Zeilen in Eure .taskrc aufnehmen.

sync.server.url=https:\/\/taskchampionsyncserver.deinedomain.tld
sync.server.client_id=0428cc40-4cf8-4b95-a862-6daddb13bc79
sync.encryption_secret=iec4koh0nai8yaithee1yieQu8ieg0pu

Einer ersten Synchronisation steht jetzt nichts mehr im Weg.

$ task sync
Syncing with sync server at https://taskchampionsyncserver.deinedomain.tld

Wenn alles geklappt hat, könnt Ihr das laufende Skript newclient.bash beenden.

Das nun folgende Skript startet den Syncserver im "Produktivbetrieb" (Umgebungsvariable CREATE_CLIENTS), die Daten landen in ~/.local/share/taskchampion-sync-server:

$ cat ~/bin/start-taskchampionsyncserver.bash

podman ps -a --filter "name=taskchampion-sync-server" -q | xargs -r podman rm -f || true

podman run --rm \
    --name taskchampion-sync-server \
    --env RUST_LOG=debug \
    --env CREATE_CLIENTS=false \
    --volume /home/user/.local/share/taskchampion-sync-server:/var/lib/taskchampion-sync-server/data \
    --publish 127.0.0.1:8000:8080 \
    ghcr.io/gothenburgbitfactory/taskchampion-sync-server

Ein Stoppskript hat es natürlich auch.

$ cat ~/bin/stopp-taskchampionsyncserver.bash

podman stop taskchampion-sync-server

So, jetzt noch einen User-Service angelegt und später aktiviert (enabled).

$ cat ~/.config/systemd/user/taskchampionsyncserver.service

[Unit]
Description=Taskwarrior Webui
Documentation=https://github.com/DCsunset/taskwarrior-webui

[Service]
User=user
Group=user
Restart=always
RestartSec=5s
Type=simple
WorkingDirectory=/home/user
ExecStart=/home/user/bin/start-taskchampionsyncserver.bash
ExecStop=/home/user/bin/stopp-taskchampionsyncserver.bash

[Install]
WantedBy=default.target

So, Endspurt. Als letztes ein kleines Skript, das das task-Kommando aufruft (um wiederkehrende Aufgaben zu erstellen) und danach mit dem Syncserver synchronisiert.

$ cat ~/bin/tasksync.bash

/usr/bin/task rc.verbose=nothing --quiet || true
/usr/bin/task rc.verbose=nothing sync || true

Noch einmal ein Userservice:

$ cat ~/.config/systemd/user/tasksync.service

[Unit]
Description=Create Recurring tasks and sync

[Service]
User=user
Group=user
Type=oneshot
RemainAfterExit=no
ExecStart=/home/user/bin/tasksync.bash

[Install]
WantedBy=default.target

Statt einem Cronjob lasse ich diese Aufgabe mit einem systemd-timer-Eintrag erledigen. Ja, alle fünf Minuten, aber das ganze Syncskript läuft nur eine viertel Sekunde.

$ cat .config/systemd/user/tasksync.timer
[Unit]
Description=Tasksync

[Timer]
OnBootSec=15min
OnUnitActiveSec=5min
Persistent=true

[Install]
WantedBy=default.target

Rückfragen, Kommentare und Verbesserungsvorschläge gerne in den Kommentaren.

Zurück zu Taskwarrior

taskwarrior

Nach rund sechs Jahren mit verschiedenen Tools habe ich mich entschieden, wieder zurück auf Taskwarrior zu wechseln. Über Taskwarrior finden sich hier im Blog eine Menge Artikel (Tag taskwarrior) und in meinen Vorträgen und Workshops gibt es auch reichlich Informationen. Warum ich gewechselt bin, habe ich "natürlich" auch dokumentiert.

Bei Taskwarrior war ich relativ lange und als ich zu Todoist gewechselt bin, habe ich sehr viele Funktionen vermisst. Meinen Workflow habe ich auf das reduzierte Featureset von Todoist angepasst. Natürlich habe ich auch neue Funktionen bekommen: eine perfekte Synchronisation, die Verfügbarkeit überall und dergleichen mehr.

Das Killerfeature von Taskwarrior, nämlich die Berechnung der Dringlichkeit einer Aufgabe, ist seitens Todoist nie implementiert worden (die wait-Funktion allerdings schon, sie heisst "scheduled").

Die Preiserhöhung bei Todoist hat bei mir allerdings einen Denkprozess angestossen und dafür gesorgt, dass ich nach Alternativen geschaut habe.

Wenn ich darüber nachdenke, dann habe ich herausgefunden, dass ich alle Aufgaben, die ich mobil erfasst habe, einmal nachbearbeiten musste. Sei es, dass ich sie einem Projekt zugewiesen, das Fälligkeitsdatum angepasst oder einen Tag vergeben habe. Daher ist es gar nicht so wahnsinnig wichtig, einen lokalen Client zu haben. Toll wäre es, ein Webfrontend zu haben, um mobil nachschauen zu können.

Nach intensiven Tests mit Super Productivity, Vikunja und Logseq zur Aufgabenverwaltung bin ich von allen nicht zu 100% überzeugt. Alle drei haben Stärken und Schwächen. Zum Teil Stärken, die ich nicht brauche, und Schwächen, die mir wehtun. Logseq werde ich weiterhin für Notizen benutzen, aber nicht zur Aufgabenverwaltung.

Jetzt habe ich Taskwarrior auf einer VM mit Fedora installiert (ich nutze nur das paketierte Tool) und zusätzlich als Frontend Taskwarrior WebUI um auf Systemen ohne ssh-Client (insbesondere mobil) zugreifen zu können. Das WebUI muckt manchmal ein wenig und es scheint auch nicht mehr weiterentwickelt zu werden. Vermutlich steige ich auf Taskwarrior Web um, wenn mein Problem gelöst wird.

⁣MitTaskwarrior 3 hat sich eine Menge getan, unter anderem wird im Backend jetzt SQLite als Datenbank verwendet und es gibt einen neuen Synchronisationsserver, den ich noch testen muss.

Vaultwarden selbst hosten

linux

Auf mehrfachen Wunsch einer Person beschreibe ich hier einmal, wie ich Vaultwarden selbst hoste. Vaultwarden ist eine nicht offizielle auf Open Source basierende Serverkomponente, mit der sich jeder Bitwarden-Client verbinden lässt. Bitwarden ist der Passwort-Manager, den ich verwende, dazu vielleicht später einmal mehr. Nur so viel an dieser Stelle, der Client ist ebenfalls Open-Source-Software. Er existiert für nahezu jede Plattform und als Plugin / Extension / Addon für die gängigen Browser.

Zunächst habe ich einen User angelegt, unter dem die Serverkomponente laufen soll. Bei mir heisst der User vault.

$ groupadd --gid 201 vault
$ useradd -u 201 -s /bin/bash -g vault -m -k /etc/skel -b /srv vault

Bei mir wird eine Fehlermeldung geworfen, weil die User-ID nicht in der vorgegebenen Range ist, ich ignoriere die. Wenn es Euch wichtig ist, nutzt eine andere ID.

Das Homeverzeichnis des Users liegt unter /srv/vault, wo später auch die Daten liegen werden.

Ich weiss, dass das alles mit Quadlets geht, mir geht aber in der Experimentierphase das ständige Daemon-Reload auf die Nerven, daher wird der Dienst bei mir mit Skripten gestartet und gestoppt und mit dem folgenden systemd-Unit-File automatisiert.

$ cat /etc/systemd/system/vault.service

[Unit]
Description=Vaultwarden
Documentation=https://github.com/dani-garcia/vaultwarden
Requires=network-online.target
After=network.target

[Service]
Restart=on-failure
User=vault
Group=vault
Type=simple
WorkingDirectory=/srv/vault
ExecStart=/srv/vault/start.bash
ExecStop=/srv/vault/stopp.bash

[Install]
WantedBy=multi-user.target

Ach ja, um über Port 443 erreichbar zu sein, benötigen wir noch einen Reverse-Proxy. Da hat sich bei mir Caddy bewährt. Der Eintrag im Caddyfile ist gerade einmal drei Zeilen lang. Caddy sorgt automatisiert für Let's Encrypt-Zertifikate.

$ cat /etc/caddy/Caddyfile

vault.deine.domain {
    reverse_proxy localhost:3201
}

Nach einem Wechsel auf den User vault (su - vault), erstelle ich ein Verzeichnis data und lege die Skripte start.bash und stopp.bash an und mache sie ausführbar. Die "set -o"-Einträge habe ich grundsätzlich in Skripten. Ich benutze Podman für Container und nicht Docker.

Um den Container starten zu können, braucht man noch ein paar User-IDs und die Möglichkeit, dass der Dienst auch laufen kann, wenn der User nicht angemeldet ist. Dass die Zeilen so aussehen, ist reiner Bequemlichkeiteit geschuldet. Da gibt es noch Tuning-Potenzial.

$ grep vault /etc/subuid
vault:100000:65536

$ grep vault /etc/subgid
vault:100000:65536

$ loginctl enable-linger vault
$ cat start.bash

#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail

podman ps -a | awk '! /^CONTAINER/ {print $1}' | xargs podman rm || true

podman run --rm \
        --name vaultwarden \
        --env DOMAIN="https://vault.deine.domainr/" \
        --volume /srv/vault/data/:/data/ \
        --publish 127.0.0.1:3201:80 \
        docker.io/vaultwarden/server:latest
$ cat stopp.bash

#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail

podman stop vaultwarden

Nach systemctl restart caddy könnt Ihr testen.

Wenn alles richtig ist, sollte nach einer Ausführung von start.bash die Webseite von Vaultwarden aufrufbar sein und Ihr könnt einen Account anlegen. Falls nicht, müssen die Fehlermeldungen behoben werden. Wenn Ihr nicht weiterkommt, meldet Euch bitte.

Für die Automatisierung braucht es ein systemctl daemon-reload und ein systemctl enable --now vault.

Viel Spass!

Huch, vergessen, Ihr braucht ja auch noch die Adminseite unter /admin.

Dazu muss einmal das start.bash-Skript und die Zeile -e ADMIN_TOKEN= ergänzt, die Webseite unter vault.deine.domain/admin aufgerufen, Einstellungen gespeichert und die Zeile danach wieder gelöscht werden.

Achtung: Das beschriebene ist die einfache, unsichere Variante, wie man das Token sicher generiert, ist auf der Vaultwarden-Webseite beschrieben.

Goodbye Super Productivity

superproductivity

Super Productivity habe ich sehr intensiv getestet und gemerkt, dass die Benutzung für mich an ein paar Stellen problematisch ist bzw. nicht gut funktioniert. Die Motivation für den Test habe ich in einem anderen Artikel beschrieben.

Das Tool ist für lokale Datenhaltung ausgelegt, was kein Fehler ist. Eine Synchronisation wurde nachträglich eingebaut (das ist eine Vermutung, weil es so wirkt). Die Synchronisation funktioniert via WebDAV, getestet wird es vom Entwickler mit Nextcloud.

Der grosse Knackpunkt ist, dass das eine "ganz oder gar nicht"-Synchronisation ist. Wenn es zu einem Synchronisationsproblem kommt, dann kann man sich entscheiden, ob man den lokalen Datenstand behalten oder den Remote-Datenstand übernehmen möchte. Synchronisationsprobleme können auftreten, wenn auf beiden Seiten Änderungen vorgekommen sind.

Kleinere Synchronisationsprobleme mit einer kleinen Zahl lokaler Änderungen sind ab und an aufgetreten und kein Problem. Dann kam die Situation, dass ich Remote 428 Änderungen hatte und lokal 24. Egal, wie ich mich entscheide, da gehen Änderungen und damit auch Daten verloren. Das geht nicht und ist ein Ausschlusskriterium für eine Aufgabenverwaltung.

Inhaltlich hat Super Productivity sehr viele Funktionen, die ich nicht benötige – ich bin kein Freelancer – und auch andere, die wirklich gut sind. Ich arbeite sehr viel mit wiederkehrenden Terminen, und da fehlt es noch an ein paar Stellen.

Ein zweiter sehr grosser Knackpunkt war, dass ich im Subreddit Super Productivity ein paar Fragen gestellt habe, die auf irgendeinem Weg ohne erkennbaren Grund gelöscht wurden. Ich weiss nicht von wem oder warum, aber es hat sich nicht gut angefühlt.

Zusammengenommen werde ich den Weg nicht weiter beschreiten und mich ausführlich mit Vikunja auseinandersetzen.

Wechsel auf Super Productivity

superproductivity Schon länger hadere ich damit, dass ich mit Todoist einen Dienst benutze, der für mich elementar ist und den ich leider nicht in eigener Hand habe. Manchmal braucht es ja auch einen Anstoss von aussen, die angekündigte Preiserhöhung, um an der Situation etwas zu ändern.

Vor relativ genau sechs Jahren wechselte ich auf Todoist und das war schon ein Riesenschritt. Was Aufgabenverwaltung angeht, kann keine aktuelle Software Taskwarrior das Wasser reichen. Der fehlende mobile Client, die potenzielle Einstellung der Synchronisation und die Stagnation in der Entwicklung machten für mich aber einen Wechsel erforderlich.

Genug der Historie. Ich schaue eigentlich ständig nach Alternativen im Bereich der Free/Libre Open-Source-Software (FLOSS) und bin bereits vor Jahren auf Super Productivity gestossen. Das Konzept fand ich superinteressant, habe mich aber nie weiter damit beschäftigt, weil ich mich im Web Client nie anmelden musste und ich daher davon ausging, dass es auch bei Super Productivity keine Synchronisation gibt. Ich habe auch nicht weiter geforscht.

Super Productivity synchronisiert sich mit der eigenen Nextcloud-Instanz. Bei der Einrichtung der Synchronisation im Webclient gibt es allerdings eine sehr deutliche Meldung, dass man sich der Security-Implikation, die die Speicherung der Zugangsdaten im Browser mit sich führt, bewusst sein muss. Daraufhin habe ich das auch einmal gelassen.

Es gibt für alle meine Plattformen (Linux, Android, Wintendo) native Anwendungen, daher benötige ich die Browser-Variante nicht. Ebenfalls unterstützt wird macOS, für iOS gibt es noch(?) nichts. Bei Linux ist das Team den sehr harten Weg gegangen, fast alles zu unterstützen: AppImage, Flatpak, Snap, rpm- und deb-Pakete. Bei mir ist es Flatpak und die Android-App via F-Droid.

Zuerst einmal musste ich mich von der Vorstellung lösen, dass die Software eine reine Aufgabenverwaltung ist. Sie ist viel mehr und das "Productivity" im Namen ist durchaus Programm.

Mit Super Productivity kann man seine Zeit erfassen, direkt auf die Aufgaben bezogen, man kann Schätzungen einbringen und die Aufgaben in einem Kalender planen (ja, man kann auch den eigenen Kalender einbinden und Timeboxing betreiben).

​Am Ende eines Tages kann man den Tag zusammenfassen und durch verschiedene Metriken bewerten lassen. Exporte und Berichte sind ebenfalls möglich.

Die Anwendung bietet Schnittstellen für Jira, GitHub, GitLab, Gitea und OpenProject, importiert Aufgaben aus diesen Diensten automatisch und ermöglicht Synchronisation per WebDAV, Dropbox oder Google Drive.

Aufgaben lassen sich in Kanban-Boards, Eisenhower-Matrix oder benutzerdefinierte Ansichten sortieren und per Drag-and-drop verschieben. Anhänge, Notizen und Projekt-Bookmarks können zu Aufgaben hinzugefügt werden.

Da gibt es für mich noch viel zu lernen. Ich werde lange nicht alle Funktionen benötigen. Momentan bin ich in der Migrationsphase, um meine vollgemüllte Todoist-Aufgabenliste in sinnvoller Art und Weise auszumisten und den Rest zu übernehmen.

Momentan kämpfe ich zusätzlich noch gegen gelernte Gewohnheiten und das Muskelgedächtnis. Zu einem späteren Zeitpunkt werde ich sicher mehr schreiben.

Feedback von Euch und Erfahrungen gerne hier in die Kommentare.

Bluefin

bluefin

Die Idee, ein minimales Kernbetriebssystem zu nutzen und darauf aufbauend alles in einer atomaren Art und Weise zu verwalten, hat es mir angetan.

Durch einige Vorträge von Christoph "stoeps" Stoettner habe ich mich von Bluefin anstecken lassen.

Damit mache ich gerade meine ersten Gehversuche. Der Weg zurück zu Gnome fühlt sich auch gut an. Wer es sich lieber mit KDE als Desktop anschauen möchte, dem sei Aurora ans Herz gelegt.

Wichtiger Hinweis: Bluefin zielt nicht darauf ab, jeden Nutzer zufrieden zu stellen. Lest Euch bitte zuerst diese Seite bevor Ihr mit der der Installation startet. Auf der Instllations-Seite sind auch die Hardware-Anforderungen zu finden.

Bluefin versteht sich nicht als Distribution. Die Basis ist Universal Blue.

Schaut Euch doch als Einstieg die Vorträge von Christoph an:

Zurück zu Logseq

Wie mit diesem Posting beschrieben, bin ich auf Joplin als Notizanwendung gewechselt. Joplin ist grossartige Software, die einen ganzen Haufen cooler Features hat und sogar eine performante mobile Anwendung.

Meine Wechselgründe sind immer noch gültig, aber ich muss gestehen, dass mir die Notizen mit Joplin nicht ganz so flüssig von der Hand gehen. Die Fluppsidität (cooles Wort, oder?) ist mit Joplin nicht gegeben. Mir fällt die Arbeit mit Logseq leichter und, was ich nicht leugnen kann, die Anzeige der verlinkten Seiten ist ein Feature, das ich unterschätzt habe.

Mittlerweile scheint es in Logseq so langsam vorwärts zu gehen, ich schaue einmal, wohin mich das führt.

Joplin

Nachdem es mit Logseq so gar nicht weitergeht und die Anwendung auf mobilen Geräten nahezu unbenutzbar ist, habe ich mich aufs Neue und dieses Mal ausführlicher mit Joplin auseinandergesetzt.

Logseq ist ein sogenannter Outliner, den ich kaum als Outliner verwendet habe. Ein Outliner in Notizanwendungen hilft, Informationen in einer hierarchischen Struktur zu organisieren, was die Zentrierung von Logseq auf Blöcke erklärt und mich manchmal auch sehr geärgert hat.

Für mich ist das Killerfeature die bidirektionale Verlinkung. Das bedeutet, dass ein Link auf eine andere Notiz auf der anderen Notiz einen Link zurück auf die Quellseite zeigt.

Bei näherer Beschäftigung mit Joplin habe ich das Plugin Bidirectional Links gefunden, was die Funktionalität nachbaut und das auch ziemlich gut macht.

Ein weiteres Feature, das ich vermissen würde, ist der Fokus auf ein Journal, was zusammen mit der Verlinkung eine relativ gute Möglichkeit bietet, einen zeitlichen Verlauf darzustellen. Auch hierfür gibt es ein Plugin, das passenderweise Journal heisst.

Seit meiner letzten Beschäftigung mit Joplin hat sich eine Menge getan und ich bin sehr angetan, die mobile Anwendung ist toll und reagiert sehr schnell.

Momentan betreibe ich Joplin im Parallelbetrieb mit Logseq. Ich muss schauen, wie gut es mit der Synchronisation mit meiner Nextcloud funktioniert, bevor ich komplett umstelle und alle Daten migriere. Wenn alle rund 2000 Notizen migriert sind, werde ich auch besser wissen, wie es mit der Performance aussieht.

Das Setup bei mir umfasst sechs Geräte, 2x Linux via Flathub, 1x Windows via Download von der Webseite, und zwei E-Book-Reader und ein Mobiltelefon unter Android via F-Droid.

Es erweist sich in jedem Fall als gut, auf offene Dateiformate zu setzen. Joplin kann Markdown importieren.

Spannend wird für mich sein, den Workflow, den ich mir über drei Jahre mit Logseq angewöhnt habe, durch etwas Neues zu ersetzen. Das meine ich ohne Wertung.

Mich hat die PARA-Methode sehr überzeugt, und für die Umsetzung in Joplin muss ich mir keine Kunstgriffe einfallen lassen, weil in Joplin verschachtelte Notizbücher möglich sind.

Der Artikel zu Nutzen Sie Ihr zweites Gehirn ist jetzt auch schon fast ein Jahr alt. Da sieht man einmal, wie lange Entscheidungen reifen müssen, bevor ich sie umsetze. Die Bequemlichkeit siegt häufig.

Tuxedo OS

linux

Auf dem bereits erwähnten neuen Notebook ist standardmässig Tuxedo OS installiert.

Die meisten meiner Leser wissen, dass ich "bekennender" Distrohopper bin und gerne neue Distributionen ausprobiere. Wer sich dafür interessiert wird in meiner Computergeschichte sicherlich fündig.

Also warum nicht einmal Tuxedo OS eine Chance geben?

Tuxedo OS basiert auf Ubuntu, aktuell Version 22.04, und hat einige Anpassungen vorgenommen. So wurde beispielsweise Snap herausgeworfen und stattdessen auf Flatpak gesetzt, eine Entscheidung, die ich nur befürworten kann.

Ein eigenes Repository hält die Tuxedo-Pakete mit Treibern, dem Tool Tomte und den Anpassungen, die sie vorgenommen haben, vor.

Als Standard Desktop-Umgebung kommt KDE zum Einsatz (was ich schon seit Jahren nicht mehr verwendet habe). Allerdings muss ich an der Stelle zugeben, dass ich die grafische Oberfläche im Grossen und Ganzen so nehme wie sie ist und keine bzw. kaum eigene Anpassungen vornehme.

Vielen Dank an Vinzenz für den Tipp, die globale Skalierung anzupassen. Das ist sehr hilfreich und macht es mir einfacher, die volle Auflösung zu verwenden.

Mit der Kombination aus Ubuntu, Tuxedo-Repositories und Flatpak konnte ich bis auf wenige Ausnahmen fast alles installieren, was ich zum Arbeiten benötige.

Einige Tools habe ich dennoch "von Hand" mit den passenden Paketen von deren Webseite oder GitHub installiert:

Mit dem Gerät und dem Setup bin ich (bis jetzt) sehr zufrieden und hoffe, dass das auch so bleibt. Momentan denke ich darüber nach, meinen Desktop-Rechner "Terrania" (ebenfalls ein Tuxedo-Gerät( mit Tuxedo OS zu betanken.

Erste Schritte neues Notebook

linux

Am vergangenen Donnerstag ist mein neues Notebook gekommen. Es ist ein TUXEDO InfinityBook Pro 14 - Gen9 - AMD geworden, der Link zeigt auf meine aktuelle Konfiguration. Liebes Tuxedo-Team. es wäre super, wenn die Links auch nach einem Modellwechsel noch funktionieren.

Mir gefällt das Notebook sehr gut, ich werde vielleicht später einmal ausführlicher darauf eingehen.

Erwartungsgemäss brauche ich bei der Maximalauflösung eine Lesebrille, um alles erkennen zu können, ich habe das jetzt vorerst einmal auf 1920x1200 herunter konfiguriert. Das klappt prima. Zweite Beobachtung ist, dass es nur 50 Gramm leichter ist als das InfinitiyBook Pro 16 meiner Frau. Aluminium ist vermutlich schwerer als Plastik.

Das alte Notebook war 8.5 Jahre alt. Ich möchte gerne Tuxedo OS (Basis: Ubuntu) eine Chance geben und damit bin ich nach langer Zeit wieder bei KDE (sonst Arch Linux mit Gnome).

Gerne möchte ich mit Euch teilen, was meine ersten drei Schritte als Systemverwalter und die ersten drei Schritte als User nach der Installation waren. Mich würde es sehr interessieren zu hören, was Eure ersten drei Schritte bei der Einrichtung eines neuen Systems sind.

Als Admin:

  1. etckeeper installieren. Im Rahmen der Konfiguration habe ich ssh-Keys erstellt, ein Repository auf meiner Forgejo.Instanz angelegt und automatischen Push eingerichtet.
  2. Standard-Editor auf Vim ändern.
  3. Backup mit Borg einrichten.

Und als User

  1. Bitwarden als Flatpak installiert und konfiguriert.
  2. Firefox koniguriert und alle Erweiterungen installiert.
  3. Daten vom alten Notebook in ein separates Verzeichnus kopiert. Die Daten nutze ich nur, wenn ich ohne sie nicht weiterkomme. So eine neue Installation ist auch eine gute Möglichkeit, Altlasten aufzuräumen.

Logseq vs. Notesnook

Relativ lange habe ich mich mit dem Thema Notizanwendungen (oder "Zweites Gehirn") herumgeschlagen und konnte einem sehr guten Setup mit Logseq dem Idealbild sehr nahekommen. Jetzt schaue ich mir parallel Notesnook an und bin ins Grübeln gekommen.

Mario hat mich auf den Artikel When You Should Switch Your Second Brain App (And When You Shouldn’t) von Tiago Forte hingewiesen, der mich auch zum Nachdenken brachte und mich etwas ausgebremst hat. Jetzt musste ich einmal schauen und überlegen, was meine Motivation für den Wechsel ist.

Meine Gedanken dazu möchte ich gerne mit Euch teilen.

Was ich an Logseq mag:

  • Open-Source-Software.
  • Bidirektionale Verlinkung, das ist DAS Killerfeature.
  • Journal.
  • Knowledge-Graph, auch wenn ich ihn selten benötige.

Was ich an Logseq nicht so toll finde:

  • Management der Attachments.
  • Die mobile Anwendung.
    • Geschwindigkeit (nicht nur Sync).
    • Bedienung ist nicht so toll.
    • Hat nicht die gleichen Features wie die Desktop-Variante.
  • Synchronisationsgeschwindigkeit.
  • Das Backend der eingebauten Synchronisation ist geschlossen (ja, es gibt Workarounds), aber Daten werden in der eigenen Lösung verschlüsselt abgelegt.
  • Daten liegen bei AWS, das eigene Synchronisations-Backend ist kostenpflichtig.
  • Die Entwicklungsgeschwindigkeit hat stark nachgelassen.
  • Alles ist "Aufzählung" (Bullet).

Was ich bei Logseq dringend vermisse:

  • Plugins in der mobilen App (besonders den Kalender, mit dem einzelne Journal-Tage aufgerufen werden können).
  • Höhere Geschwindigkeit.

Was ich an Notesnook mag:

  • Open-Source-Software.
  • Geschwindigkeit der Anwendungen.
  • Feature-Gleichheit auf unterstützten Plattformen (Desktop-Anwendungen, mobile Apps, Web-App).
  • Browser-Plugin.
  • Synchronisationsgeschwindigkeit.
  • Kleines Entwicklerteam.
  • Synchronisation auf Servern bei Hetzner.
  • Deutsche Rechtschreibkorrektur.
  • Das Konzept, dass ein Notebook mehrere Notebooks enthalten kann, kommt mir entgegen (PARA-Methode).

Was ich an Notesnook nicht so toll finde:

  • Kein offenes Datenformat, es liegt alles in einer SQLite-Datenbank.
  • Sync-Backend kostenpflichtig (kein mir bekannter Workaround).

Was ich bei Notesnook dringend vermisse:

  • Einfaches bidirektionales Verlinken.
  • Knowledge-Graph fehlt.

Fazit

Wenn die einfache bidirektionale Verlinkung nicht wäre und ich nicht schon über 1200 Notizdateien hätte, würde ich sofort wechseln. Die Vorteile bei Notesnook überwiegen für mich. Man kann Markdown-Dateien (und Zip-Files mit Markdown-Dateien) mit Fokus auf das Obsidian-Format importieren, das will aber bei mir nicht so recht klappt. Vielleicht mache ich dafür einmal einen Bugreport auf oder probiere es in einer späteren Version noch einmal.

Die Arbeit mit Logseq geht deutlich leichter von der Hand, da habe ich allerdings auch einen Zeitvorsprung von über zwei Jahren Benutzung. Die Arbeit mit Notesnook macht mehr Spass, was aber auch ein temporäres Phänomen sein kann.

Ich bin hin- und hergerissen, mit einer starken Tendenz zu wechseln. Wenn ich vollends zufrieden wäre., würde ich nicht nach Alternativen suchen.

Nachtrag

Den Begriff "Zweites Gehirn" habe ich übrigens aus dem sehr lesenswerten Buch Nutzen Sie Ihr zweites Gehirn (im Original Building a Second Brain) von Tiago Forte. Unbedingte Empfehlung!

Notizen, noch einmal

Wie bereits in den vorhergehenden Artikeln geschrieben, bin ich auf der Suche nach einer neuen Notizanwendung (weitere Artikel findet Ihr als Trackbacks unter dem verlinkten Posting).

TL;DR: Ich bleibe bei Logseq.

Der Hauptpunkt für mich ist, dass ich klar bekommen muss, ob ich mich so sehr an den Workflow mit Logseq gewöhnt habe, dass ich davon nicht wegkann. Oder, ob ich mich auf ein anderes Ökosystem mit anderen Stärken und auch Schwächen einlassen kann.

In der letzten Runde sind die folgenden zwei Anwendungen geblieben. Die Auswahl folgt komplett subjektiven Kriterien wie beispielsweise der Sympathie oder dem ersten Eindruck.

  • Joplin (mal wieder) mit Sync via Nextcloud).
  • Notesnook (Zufallsfund und bisher noch nicht in den anderen Artikeln erwähnt).

Im Rahmen des Tests der beiden Applikationen Joplin und Notesnook bin ich nicht alle Features durchgegangen. Mir ging es eher darum herauszufinden, wie sich die Arbeit mit den Tools anfühlt und ob es mir Spass machen könnte, mit Ihnen zu arbeiten.

Joplin lässt sich leicht mit der eigenen Nextcloud verbinden, fühlt sich aber ein wenig behäbig an. Mir gefällt gut, dass alle Anwendungen Open-Source-Software sind und dass ich die Daten selber hosten kann. Mit allen Anwendungen meine ich die Desktop-Anwendung, sowie mobil wie auch der Web Clipper. Bei meinen Tests habe ich es nicht geschafft, den Webclipper zur Zusammenarbeit zu bewegen und leider auch nicht hinbekommen, Notizen miteinander zu vernetzen. Wie geschrieben, habe ich nicht sehr intensiv gesucht.

Notesnook war ein absoluter Zufallsfund. Mir war das kleine Entwicklerteam sehr sympathisch, ausserdem ist es eine echte "SAP"-Anwendung ("Software aus Pakistan"). Die Anwendung (Desktop, Mobil, Web Clipper) ist ebenfalls Open-Source-Software, das Sync-Backend wird auf Hetzner-Servern gehostet, an einer Möglichkeit zum Selfhosting wird gearbeitet. Notesnook bietet zusätzlich eine gehostete Webanwendung an. Das Arbeiten mit der Anwendung fühlt sich sehr gut und sehr performant an. Nachdem ich die mobile Anwendung aus F-Droid installiert habe funktionierte der Sync nicht mehr. Das empfohlene Update auf die Beta von Version 3 habe ich durchgeführt, damit kam der Web Clipper aber nicht zurecht. Da braucht es vermutlich noch eine Iteration. Mir ist auch hier nicht klar, wie ich Notizen miteinander verknüpfen kann.

Mir ist Notesnook sympathischer als Joplin – wie gesagt, es ist alles subjektiv. Und ich kann mir vorstellen, in der Zukunft darauf umzustellen. Notesnook bietet einige interessante Security-Features: zwei-Faktor-Authentisierung per Default, verschlüsselte Notizablage. Zum derzeitigen Zeitpunkt ist aber an eine Umstellung nicht zu denken.

Zu meinen Kriterien (finden sich auch im Ursprungsartikel):

  • Funktioniert auch offline, soll aber synchronisieren können.
    • Check
  • Clients für Android, Linux und Windows.
    • Check (sogar plus Web Clipper)
  • Möglichkeit, Datums basiert Notizen zu machen (Journal, ohne "ing").
    • Nicht defaultmässig.
  • Verlinkung und Tagging, Aufbau eines "Knowledge Graphs".
    • Noch nicht.
  • Offenes Dateiformat (gerne Markdown).
    • Joplin bietet JEX (json-basiert).
    • Notesnook hat ein eigenes Format.
  • Nach Möglichkeit Open-Source-Software (ist aber nicht zwingend).
    • Check.
  • Darf auch etwas kosten.
    • Kostenpflichtige Sync-Modelle bieten beide.
    • Joplin lässt sich mit einer eigenen Lösung verbinden.
    • Das Sync-Backend bei Notesnook ist fremd gehostet.

Neue Notiz-Anwendungen

Im letzten Artikel habe ich nach einer neuen Anwendung für Notizen auf Android, Linux und Windows gesucht und Ihr habt zahlreich geantwortet. Vielen lieben Dank dafür!

Hier sind die Tipps, die ich bekommen habe und ich hoffe, ich habe nichts vergessen. Im verlinkten Artikel oben sind noch weitere zu finden. Die Reihenfolge ist willkürlich und keine Wertung.

Your Resource Guide to Building a Second Brain enthält noch weitere Tools, die ich hier nicht aufgeführt habe.

Notiz-Anwendung gesucht

Gerade lese ich das Buch Nutzen Sie Ihr zweites Gehirn von Tiago Forte (mehr dazu später) und lass mich von vielen guten Ideen inspirieren, bin aber erst zur Hälfte durch.

Im Zuge der Lektüre habe ich mir auch Gedanken darüber gemacht, wie ich Notizen mache. Neben handschriftlichen Notizen kommt digital bei mir Logseq zum Einsatz. Darüber habe ich schon hier im Blog geschrieben. Logseq ist eine Open-Source-Software, bei der die Synchronisation kostenpflichtig ist.

Mit Logseq bin ich auf den Desktops, die ich verwende (privat Linux und beruflich Windows) sehr zufrieden, wobei die Synchronisation eher langsam ist. Die mobile Anwendung ist aber sehr rudimentär, kann keine Plugins, ist langsam und die Bedienung ist sehr hakelig.

Das ist der Grund, weshalb ich auf der Suche nach einer neuen Anwendung bin, die vor allem auch mobil sehr gut funktionieren soll.

Und jetzt, liebe Leser, kommt Ihr ins Spiel, vielleicht habt Ihr ja Ideen. Hier kommen meine Anforderungen:

  • Funktioniert auch offline, soll aber synchronisieren können.
  • Clients für Android, Linux und Windows.
  • Möglichkeit, Datums basiert Notizen zu machen (Journal, ohne "ing")
  • Verlinkung und Tagging, Aufbau eines "Knowledge Graphs".
  • Offenes Dateiformat (gerne Markdown).
  • Nach Möglichkeit Open-Source-Software (ist aber nicht zwingend).
  • Darf auch etwas kosten.

Die folgenden Anwendungen sind interessant, aber ich habe mit Ihnen keine Erfahrung.

  • Notion
  • Obsidian (mobile App soll ebenfalls schlecht sein)
  • Roam Research
  • Tana (derzeit am interessantesten, aber noch nicht released)
  • Twos (scheinbar nicht mehr weiterentwickelt)
  • Joplin (habe ich eine Zeit lang verwendet, war nicht so ganz meins, ist vielleicht einen erneuten Test wert)

Bin auf Eure Anregungen, Ideen und auf Eure Workflows gespannt. Gerne auch, wenn sie nicht 100% ins Muster passen, wie im Kommentar von Mario, den ich sehr spannend finde.

cronjob