Hallo, mein Name ist Markus. Dies ist mein Journal und Photoblog, meine persönliche, kleine Ecke im Internet.
Neben Texten und Fotos findest Du hier ein Linkblog, meine /now Page und noch einiges mehr.
Makroaufnahme einer pinken Seerose mit dramatischem Chiaroscuro-Effekt.
Das Foto ist noch im Spätsommer bei strahlendem Sonnenwetter entstanden. Und ein verregneter Herbsttag wie heute ist ein guter Zeitpunkt, es zu posten.
Im Nachhinein muss ich allerdings sagen, die zweite Tageshälfte war ganz in Ordnung. Und daher habe ich sie genutzt, um in der Bude vor’m Bildschirm zu hocken.
Nebenbei habe ich nochmal The Mandalorian and Grogu geschaut. Und es ist kein großer Spaß, die Disney+ App vom iPad zu benutzen. Über USB-C habe ich das Pad mit einem alten Zweitmonitor verbunden. Und was macht die App? Sie spiegelt das Bild 1:1 auf den Monitor. Also hat man in der Mitte des Monitors ein thumbnailgroßes Video. Nein, Disney+ ist keine gute Erfahrung …
Neulich habe ich über die automatisierte Linkpflege geschrieben. Da der Check nun doch mehr als nur ein cURL-Request mit Auswertung des Statuscodes geworden ist, habe ich ein kleines Composer-Päckchen draus geschnürt.
Kein Symfony-Bundle, einfach nur ein paar Klassen:
use Kniebes\VerifyUrl\VerifyUrl;
$verifyUrl = new VerifyUrl();
$result = $verifyUrl->verify('https://example.com/artikel');
if ($result->isValid() && $result->getReplacement() === null) {
// URL ist in Ordnung
}
if ($result->getReplacement() !== null) {
// Original ist kaputt, Snapshot aus der Wayback Machine verwenden
$alternateUrl = $result->getReplacement();
}
foreach ($result->getErrors() as $error) {
// Gründe, warum die Original-URL verworfen wurde
}
Bei als defekt erkannten Links wird die Wayback Machine nach einer Alternative gefragt. Das Paket hält zwar zwei Sekunden Abstand zwischen den Anfragen, aber wenn man dem Service zu sehr auf den Zwickel geht, kommt trotzdem schnell ein 429. Das muss man außerhalb des Pakets abfangen.
Aktuell gibt es noch ein Problem mit Cloudflare. Wenn der Service vorgeschaltet ist und die Bot-Abfrage von Cloudflare ausgeliefert wird, werden die Seiten als kaputt erkannt und es wird eine Wayback-Machine-Alternative gesucht. Ich denke, da wird noch eine Analyse des Response-Headers notwendig sein, um den Link nicht generell als defekt, sondern als nicht überprüfbar zu markieren.
Irgendwie fand ich die Idee, in mein Bullet-Journal ab und an mal ein Foto einzukleben, ganz witzig. Ohne mir auch nur ein YouTube-Video anzusehen oder sonst irgendwie zu recherchieren, habe ich mich für den Kodak Mini 2 Retro entschieden.
Die Fotos sind, wenn man den weißen Streifen abknickt, 5,3 × 8,6 cm groß und die Qualität ist OK, im weitesten Sinne. In strukturlosen Bereichen kann man leichte Schlieren erkennen. Aber die Fotos sind so klein, dass das wirklich niemanden interessiert. Als kleine Erinnerung und zum Einkleben ins Journal sind sie jedenfalls ganz knuffig.
Kodak Mini 2 Retro druckt vor sich hin.
Es sieht so aus, als könne man lediglich über die Android- oder iOS-App drucken. Zumindest habe ich bisher nichts gefunden, um vom Desktop zu drucken. Also muss ein Foto den Umweg über ein Handy auf den Drucker nehmen, wenn es nicht ohnehin ein Handy-Foto ist. Der Druck geht recht zügig, ein paar Durchgänge inklusive Laminierung und fertig.
Die Verbindung zur App war bisher immer unproblematisch. Auch wenn es mal 1 oder 2 Sekunden dauert, bis die App sagt: Aha. Ein Drucker! In der App kann man Fotos auch ein bisschen bearbeiten, also einen Filter draufkloppen, verschieben, skalieren etc. Nix, was nicht jede andere Foto-App auch könnte. Mal abgesehen vom Drucken.
Aufgeladen wird der Spaß via USB‑C. Ein Kabel USB-A auf USB-C liegt dabei. Anfangs dachte ich, der Lademechanismus sei defekt. Keine Reaktion von der LED, keine Änderung des Akkustandes in der App. Später habe ich mich entschlossen, die Steckerleiste mit dem Ladegerät doch mal an das Stromnetz anzuschließen. Naja, die LED bleibt dunkel, aber der Akku wird lt. App geladen. Damit kann ich leben.
Nachladen: Im Drucker selbst ist bei Lieferung bereits eine All-in-One-Patrone eingesetzt. Und es liegen noch drei weitere bei mit je 10 Blatt. Der Austausch lässt sich mit „idiotensicher“ beschreiben.
Der Drucker mit den drei zusätzlichen Patronen hat gut 80 € gekostet und bei Amazon bekommt man ein Pack mit 60 Blatt momentan für weniger als 30 €. Das ist preislich wirklich vertretbar, wie ich finde.
Fazit: Macht Laune und ist unkompliziert genug, um nicht zu nerven. Wie langlebig der Drucker ist, kann ich noch nicht sagen. Aber wenn das Ding dann doch vorzeitig vor die Hunde geht, werde ich mich bestimmt hier im Blog ausheulen.
Wenn ein Blog schon eine Weile läuft, sammeln sich einige Links an. Und wie das halt so ist, bestehen davon so manche nicht den Test der Zeit. Um über geparkte Domains nicht auf schmuddlige Casino- oder sonstige Spam-Seiten zu verweisen, wäre es natürlich hübsch, die Links regelmäßig mal durchzuchecken.
Also filtere ich alle URLs aus jedem Post und sammle sie in einer Tabelle, die neben der Original-URL eine Ersatz-URL enthält. Das passiert automatisch beim Speichern eines Posts und initial mit einem kleinen Command, der das einmal für alle Posts macht. Ich hatte keine Lust, meine zigtausend Posts alle einmal zu speichern. Ein Cronjob geht nun her und knöpft sich alle halbe Stunde ein paar Hände voll URLs vor, prüft sie und sucht notfalls eine Ersatz-URL. In den meisten Fällen ist das ein Link auf die Wayback Machine.
Beim Generieren der Seiten werden die URLs aus den Posts bei Bedarf gegen ihre Ersatz-URLs getauscht.
Das ist nicht mein erster Versuch, defekten Links Herr zu werden. Aber es ist der erste, der vollkommen automatisch läuft. Und ich kann durch sukzessive Optimierung des Linkchecks die Ergebnisse verbessern, da ich nach Entfernen der Ersatz-URL immer wieder mit der Original-URL testen kann.
Alles in allem dreht sich die Ersetzung um einen Aufruf von preg_replace_callback(). $html ist offensichtlich der HTML‑Code und $this->replacements ist ein Array, das die Original-URLs als Schlüssel und den Ersatz als Wert hat. Beim ersten Aufruf wird $this->replacements einmal initialisiert, sodass der Renderer beliebig viele Posts oder Seiten ohne weiteren Query verarbeiten kann.
Das ist also mein neuer Sonntagstee. Der Shibushi Haruto ist abgesehen vom Umami äußerst zart. Man sollte keinen anderen Geschmack vom Frühstück im Mund haben, wie etwas Brot oder Konfitüre, sonst geht der Gyokuro darin unter.
Gyokuro in einer Teedose aus Kirschrinde.
Aufgebrüht habe ich den Tee mit knapp über 50 °C und dann 90/30/30 s ziehen lassen. Ich habe gut 4 g Tee in einem 60‑ml-Shiboridahi benutzt.
Bei gut 25 € für 20 g sollte der auch besser richtig premium sein. Ist er auch. Allerdings darf man bei all dem Spaß nicht außer Acht lassen, dass es auch wirklich guten Gyokuro aus Shibushi gibt, der nur knapp mehr als die Hälfte kostet. Aber für fünf Sonntage ist der Markus ein wirklich glücklicher Teetrinker.
Es bleibt einem aber auch nichts erspart. Der alte Gyokuro (Bio Shibushi Gyokuro Super Premium), von dem kaum mehr genug für einen Aufguss übrig war, ist inkompatibel mit meinem neuen Gyokuro (Gyokuro Shibushi Haruto handpicked Premium). Also habe ich hier gerade eine recht dünne Brühe, um den letzten Rest aufzubrauchen. Ich hätte denselben noch einmal kaufen sollen, dann hätte ich den Rest in der Teedose auffüllen können.
Puh … Ich kann ja verstehen, dass es bisweilen ganz unterhaltsam ist, sich von einem LLM kleine Bildchen oder auch mal bewegte Bilder oder meinetwegen auch ein kleines Progrämmchen oder einen Text generieren zu lassen. Ich fand es gelegentlich auch witzig, bei Grok eins meiner Fotos reinzuwerfen und zu sagen: Los! Animier mir das!
Aber ich gehe dann nicht her und kleistere das Internet damit zu. Man muss sich bewusst sein, wie wenig eigene Kreativität dahintersteckt und wie uninteressant es damit auf andere wirkt. Man hat selbst nichts geleistet oder geschaffen. Das kann jeder!