Fryboyter

Alternative zu IFTTT

Bei IFTTT (If This Then That) handelt es sich um einen Dienst, mit dem sich diverse Dinge automatisieren lassen. In meinem Fall wird geprüft, ob über den RSS-Feed ein neuer Artikel veröffentlicht wurde. Wenn ja, dann wird bei Mastodon einen Beitrag mit der Überschrift und einem Link auf den Artikel erstellt. Hierzu hatte ich vor ein paar Wochen erst einen Artikel veröffentlicht.

Technisch gesehen funktioniert es ohne Probleme. Allerdings habe ich mir trotzdem Gedanken gemacht, da ich zwei mögliche Probleme sehe.

Zum einen läuft das Ganze über Server Dritter. In dem Fall ist es kein Problem, da nur der frei zugängliche RSS-Feed abgefragt wird, der wiederum nur den Blödsinn enthält, den ich veröffentliche. Aber trotzdem…

Was ich problematischer finde ist, dass ich das kostenlose Angebot von IFTTT nutze. Dies könnte eines Tages eingestellt werden. Prinzipiell bin ich bereit für einen Dienst zu bezahlen. Allerdings nicht in diesem Fall, weil ich auch gut ohne Mastodon leben kann.

Daher habe ich mir mal rein aus Interesse mögliche Alternativen angesehen. Im Grunde sind das alles ähnliche Dienste, die von Dritten angeboten werden. Und deren Funktionsumfang oft geringer, und die Nutzung schwieriger ist.

Als Alternative die man selbst hosten kann, habe ich Huginn gefunden. Das Tool begeistert mich auf der einen Seite, schreckt mich allerdings auf der anderen Seite ab.

Huginn bietet von Haus aus viele Möglichkeiten. Zum Beispiel, dass man automatisch informiert wird, wenn bei einem Wetterbericht ein regnerisches Wetter gemeldet wird. Oder eben, dass über meinen RSS-Feed ein neuer Artikel bei Mastodon veröffentlicht wird.

Allerdings ist die Einrichtung nicht so einfach zu erledigen wie bei IFTTT. Vor allem, wenn man eigene Agents anstelle der fertigen nutzen will. Huginn erfordert also Einarbeitszeit. Und die Dokumentation könnte besser sein.

Daher ist das ganze eher kein Wochenendprojekt für mich, sondern eher eines für den Jahresendurlaub. Daher gebe ich an der Stelle auch kein Beispiel, was man wie mit Huginn alles machen kann.

OSBN

PDF-Dateien mit durchsuchbarer Textebene erstellen

Sicherlich hat jeder schon einmal eine PDF-Datei erhalten, deren Text man beispielsweise nicht markieren und kopieren kann. Dies liegt in der Regel daran, dass der eingescannte Text als Bild in der PDF-Datei eingebettet wurde. Der Multifunktionsdrucker, den ich beruflich nutze, macht das zum Beispiel. Das Problem lässt sich allerdings relativ leicht und zuverlässig lösen.

Das Tool OCRmyPDF fügt in die PDF-Datei eine zusätzliche Textebene über dem Bild ein, deren Inhalt man markiere und kopieren sowie durchsuchen kann. Für die Texterkennung wird Tesseract verwendet.

Im besten Fall führt man einfach ocrmypdf input.pdf output.pdf aus. Input.pdf ist hierbei die Originaldatei und output.pdf ist die Datei, die mit der zusätzlichen Textebene gespeichert wird. Weitere Funktionen und mögliche Optimierungsmöglichkeiten kann man in der Dokumentation nachlesen. Je nachdem in welcher Sprache der Inhalt der Originaldatei vorliegt, muss man ggf. vorher noch ein Sprachpaket wie beispielsweise tesseract-data-eng (englische Sprachpaket) installieren. Fehlt diese, gibt ORCmyPDF aber auch einen entsprechenden Hinweis aus und bricht ab.

Getestet habe ich OCRmyPDF mit ein paar einfachen PDF-Dateien mit gut lesbarem Text getestet. Bei diesen wurde die zusätzliche Textebene sehr gut über die Bilddatei gelegt, so dass der Text beider Ebenen sehr genau übereinander lag, so dass das Markieren und Kopieren des Textes kein Problem war. Auch das Durchsuchen der Datei hat funktioniert. Die neue Datei benötigt logischerweise mehr Speicherplatz aber es hält sich meiner Meinung nach in Grenzen. Die originale PDF-Datei mit einer DIN-A4-Seite mit den ersten Zeilen von “Der Rabe” von Edgar Allan Poe ist beispielsweise 49,4 KB groß. Die um die Textebene erweiterte PDF-Datei ist 49,8 KB groß.

OSBN

Arch Linux ARM - Keine Verbindung per SSH mehr möglich

In meinem privaten LAN ist ein Raspberry Pi 4 vorhanden der neben ein paar anderen Dingen eine Kombination von PiHole und unbound zur Verfügung stellt. Vor ein paar Tagen hat die Namensauflösung auf den Rechnern im LAN nicht mehr funktioniert.

Als ich mit SSH mit dem Raspberry Pi verbinden wollte, konnte keine Verbindung aufgebaut werden. Sehr seltsam…

Meine erste Vermutung war, dass die Speicherkarte defekt ist, da ich diese schon einige Jahre nutze und auch schon ein viele Schreibvorgänge stattgefunden haben. Also habe ich die Karte aus dem Raspberry Pi entfernt und mittels eines Kartenlesers an mein Notebook angeschlossen. Sofort wurden die beiden Partitionen auf der Speicherkarte erkannt, ich konnte sie mounten und auf die Dateien zugreifen. Also ist es scheinbar doch nicht die Speicherkarte.

Trotzdem habe ich erst mal ein Image der Karte erstellt und dieses dann mittels PiShrink auf eine annehmbare Größe verkleinert.

Vielleicht steht ja in den Log-Dateien etwas, dass auf das Problem hinweist. Da am Raspberry Pi weder ein Monitor noch eine Tastatur angeschlossen ist, habe ich die größere der beiden Partitionen gemountet. Nehmen wir an im Home-Verzeichnis des Notebooks im Verzeichnis rasp. Dann habe ich mittels journalctl -D ~/rasp/var/log/journal -r auf die Log-Dateien auf der Speicherkarte zugegriffen. Schon nach wenigen Zeilen habe ich die erste und einzige Fehlermeldung gefunden.

alarmpi systemd[1]: Failed to start Wait for Network to be Configured.
alarmpi systemd[1]: systemd-networkd-wait-online.service: Failed with result 'exit-code'.
alarmpi systemd[1]: systemd-networkd-wait-online.service: Main process exited, code=exited, status=1/FAILURE
alarmpi systemd-networkd-wait-online[322]: Timeout occurred while waiting for network connectivity.

Der Raspberry Pi bootet also, kann aber keine Netzwerkverbindung aufbauen. Aber warum? Die Konfigurationen habe ich seit mindestens einem Jahr nicht geändert.

Trotzdem habe ich mir die Konfigurationsdatei eth0.network unter ~/rasp/etc/systemd/network/ angesehen.

Sieht gut aus.

[Match]
Name=eth0
...

Wobei… Moment! Eth0 bei einer Distribution die systemd und somit Predictable Network Interface Names nutzt? Könnte das die Ursache sein?

Einen Versuch ist es wert. Also habe ich Name=eth0 in Name=en* geändert, da der Netzwerkanschluss per Kabel immer eine Bezeichnung zugeteilt bekommt die mit en beginnt. Welche genau, kann ich nicht sagen, da ich ja keinen Zugriff im laufenden Betrieb habe.

Und siehe da, der Raspberry Pi bootet und eine Verbindung per SSH ist wieder möglich. Mittels ip addr habe ich mir dann die Netzwerkverbindungen des Raspberry Pi anzeigen lassen und festgestellt, dass der Netzwerkanschluss per Kabel die Bezeichnung end0 hat. Also ich ich abschließend Name=en* noch in Name=end0 geändert. Wobei das ist in dem Fall nicht nötig ist, da nicht zwei unterschiedliche Netzwerkanschlüsse mit Kabel vorhanden sind. Aber sicher ist sicher.

Aber warum ist das erst jetzt passiert? Predictable Network Interface Names gibt es unter systemd schon ewig und sind in der Standardkonfiguration aktiv. Nachdem ich im offiziellen Forum von Arch Linux ARM gesucht habe, habe ich mehrere Fälle mit dem gleichen Problem gefunden. Z. B. https://archlinuxarm.org/forum/viewtopic.php?f=15&t=16245. Zumindest bin ich nicht alleine. Ich vermute, dass durch ein Update Predictable Network Interface Names aktiviert wurden und es deshalb zu Problemen gekommen ist, weil meine Installation schon sehr alt ist. Aber das ist eine Vermutung.

OSBN

Inhalt am Ende des Front-Matter-Bereichs einfügen

Wenn ich einen Artikel für fryboyter.de schreibe, erstelle ich hierfür eine Markdown-Datei, an deren Beginn ein Front-Matter-Bereich vorhanden ist. Dieser sieht beispielsweise wie folgt aus.

---
title: Inhalt am Ende des Front-Matter-Bereichs einfügen
date: 2022-11-02T20:21:11+0100
categories:
- OSBN
tags:
- Front Matter
- Markdown
- Sed
slug: inhalt-am-ende-des-front-matter-bereichs-einfuegen
---

In manchen Fällen will man diesen Bereich nachträglich erweitern. Zum Beispiel mit nositemap: true damit der Artikel nicht in der Sitemap der Internetseite erscheint. Bei einem einzelnen Artikel ist das schnell erledigt, indem man die Datei manuell ändert. Was, aber wenn es nicht einen, sondern mehrere Dateien betrifft? Dann wäre es besser wenn man die Änderungen automatisieren würde. Allerdings besteht der besagte Bereich nicht immer aus der gleichen Anzahl von Zeilen. Zum Beispiel weil ich mal mehr, mal weniger Tags verwende. Schlussendlich bin ich zu folgendem Ergebnis gekommen.

for file in $(find . -type f -name "*.md");
do
lines=$( sed -n '/^---$/=' $file | sed -n 2p )
sed -i -e "$lines i nositemap: true" $file
done

Die erste Zeile sucht im aktuellen Verzeichnis und allen darin vorhandenen Unterverzeichnissen nach Dateien mit der Endung .md. Die dritte Zeile prüft aus wie vielen Zeilen der jeweilige Front-Matter-Bereich besteht. Die vierte Zeile erweitert den Bereich am Ende abschließend um nositemap: true so dass dieser wie folgt aussieht.

---
title: Inhalt am Ende des Front-Matter-Bereichs einfügen
date: 2022-11-02T20:21:11+0100
categories:
- OSBN
tags:
- Front Matter
- Markdown
- Sed
slug: inhalt-am-ende-des-front-matter-bereichs-einfuegen
nositemap: true
---

Wer das Script erst einmal testen will ohne dass die Dateien gleich direkt geändert wird, sollte in Zeile 4 den Paramter -i entfernen. Dann werden die geänderten Dateien nur angezeigt ohne dass sie tatsächlich geändert werden.

OSBN

Dank Musk ist mir wieder aufgefallen, dass ich Mastodon nutze

Kürzlich hat Elon Musk, nach einigem hin und her, Twitter endgültig gekauft. Kurz darauf wurden diverse Artikel veröffentlicht, welche Alternativen es gibt. Warum nicht schon vorher? Egal.

Aufgrund der Übernahme von Twitter habe ich mir überlegt, ob ich schon so etwas wie Twitter für fryboyter.de genutzt habe. Spontan lautet die Antwort nein, da ich mit den sogenannten “sozialen Medien” nichts anfangen kann. Daher habe ich beispielsweise kein Konto bei Twitter oder bei Facebook. Aber irgendwie war da mal was.

Nachdem ich etwas überlegt habe, ist mir eingefallen, dass ich irgendwann einmal mit IFTTT experimentiert habe um damit die auf fryboyter.de veröffentlichten Artikel auch auf anderen Plattformen zu veröffentlichen. Das ist aber schon lange her.

Wie ich eben festgestellt habe, gibt es das Konto bei IFTTT noch. Und das Applet ist zum einen noch aktiv und zum anderen veröffentlicht es die Artikel von fryboyter.de auf einem, meinen, Mastodon-Konto. Und noch überraschender, es gibt Leute die meine Veröffentlichungen dort lesen.

Vorerst werde ich das Applet / Konto aktiv lassen. Wer also will, kann sich über https://social.tchncs.de/@fryboyter über meine Veröffentlichungen informieren.

OSBN