flickr Takeout – und nun?

Nachdem Flickr wurde vor einer Weile von SmugMug gekauft wurde, ließ die Ankündigung einer recht großen Änderung nicht lange auf sich warten: Free-Accounts werden auf maximal 1.000 Fotos begrenzt.

Das wäre für mich an sich nicht weiter schlimm, da ich bereits seit geraumer Zeit nichts mehr zu flickr hochgeladen habe. Dass aber auch Bilder von bestehenden Accounts gelöscht werden, bis sie unter die 1.000er Grenze rutschen ist dann doch etwas unglücklich, da ich doch gerne hin und wieder mal durch meine Alben blättere (von denen die meisten auf privat gestellt sind).

Zum Glück gibt es einen Take-Out mit welchem man sich seinen kompletten Flickr-Inhalt herunterladen kann: Metadaten wie Albumstruktur, Kommentare, Likes usw., aber auch alle Fotos in ihrer Originalversion.

Die Idee: mit einem simplen Skript könnte man sich so die Albumstruktur auf der lokalen Festplatte mit Directories nachbauen und dann die Bilder aus dem Take-Out-Archiv dort hinein kopieren und sich z. B. mit thumbsup eine eigene Web-Gallery erstellen.

Es gibt dabei nur ein Problem: die Bilder des Take-Outs lassen sich nicht den Meta-Daten zuordnen, da die Dateinamen der Bilder aus dem Archiv nirgends in den Metadaten vermerkt sind 🤦‍♀️

Zumindest geben die Metadaten aber Aufschluss über die URL der Bilder in Originalauflösung auf Flickrs CDN, so dass Struktur und Inhalte schlussendlich doch zueinander finden.

Ich habe mir auf die Schnelle™ ein Skript hingehackt, welches die Flickr-Albumstruktur lokal mit Verzeichnissen im Dateisystem abbildet, alle Bilder herunterlädt und korrekt einsortiert: Skript bei Github.

Disclaimer: „auf die Schnelle hingehackt“ ist genauso zu verstehen wie es dort steht. Schöpfungshöhe gegen null, kein Error-Handling, keine Best Practices, keine Garantie dass man am Ende nicht mit einer leeren Platte da steht.

Mit LaunchBar mehrere Emojis in einem Rutsch auswählen und einfügen

LaunchBar ist mein Lieblings-Productivity-Tool auf dem Mac. Ich bin vor rund fünf Jahren mal auf Alfred gewechselt, arbeite nun aber seit einigen Wochen wieder mit LaunchBar und bin höchst zufrieden.

Manchmal entdecke ich (zufällig) Abkürzungen, die das Arbeiten mit LaunchBar noch leichter machen. Eben fand ich heraus, dass man mehrere Emojis gleichzeitig aus LaunchBar in das aktive Eingabefeld übernehmen kann.

  1. LaunchBar aktivieren, z. B. mit Cmd-Space
  2. „Emoji“-Kategorie öffnen (z. B. „em“ gefolgt von Enter)
  3. in der Liste dann passendes Emoji suchen, entweder durch Scrollen mit den Cursor-Tasten oder über die Suche durch einfaches Eingeben der Emojibeschreibung (z. B. „monkey“)
  4. mit Cmd-Cursor Down merken
  5. nächstes Emoji suchen
  6. ebenfalls mit Cmd-Cursor Down merken (oben rechts im LaunchBar-Fenster steht die Anzahl der bereits selektierten Einträge)
  7. das Ganze wiederholen bis man alle Zeichen zusammen hat
  8. einmal auf Enter drücken und alle Emojis werden in das aktuelle Input-Feld eingefügt.
  9. 🙈🙉🙊

Bonus: Das funktioniert überall, wo Texte ausgewählt werden, also z. B. auch in der Clipboard-History.
Bonus 2: Sollen mehrere direkt untereinander stehende Zeichen eingefügt werden, kann die Auswahl auch mit Shift-Cursor Down erfolgen.

find, xargs, sleep

Gegeben

  • Linux-Server
  • RAID-1 aus zwei SATA-Platten (spinning rust)
  • ext4 Filesystem
  • ein Directory-Tree mit vielen Millionen Files + Sub-Directories

Aufgabe

In diesem Tree rekursiv leere Sub-Directories finden und diese löschen.

Bonusaufgabe

Das Ganze soll auf einem Produktionsserver laufen, die I/O muss niedrig gehalten werden, um die eigentlichen Aufgaben des Servers nicht zu beeinträchtigen.

Hinweis

Es handelt sich um etwa 1 Million leere Directories, welche zum Schluss gelöscht werden müssen.

Ansatz 1

find + xargs

find . -type d -empty -print0 | xargs -0 rmdir -v

Löst die Aufgabe, allerdings geht die die Average Queue Depth für die Platten hier nach kürzester durch die Decke und der Maschine kann mit ihrem Storage nicht mehr viel anfangen. Die Bonusaufgabe wird damit zumindest nicht bestanden.

Ansatz 2

find + xargs + sleep: Nach dem Löschen von n Directories kurz warten, damit die Platten genügend Zeit haben, um ihre Aufgaben abzuarbeiten.

find . -type d -empty -print0 | \
xargs -0 -n 100 bash -c '{ rmdir "$@" ; sleep 3 ; }'

Löst Aufgabe + Bonus zufriedenstellend und reicht mir für die einmalige Anwendung.

25×25 → 27×27

Nach nur einer Woche geht’s Schlag auf Schlag weiter mit dem Einsammeln von Kartenkacheln und dem Bilden eines möglichst großen Quadrats aus eben jenen. Die heutigen nur gut 50 Kilometer erhöhten das Quadrat von 25×25 Kacheln auf 27×27, waren aber die anstrengendsten 50 Kilometer seit sehr langer Zeit.

So viel Zuckersand wie ich heute durchqueren musste, habe ich lange nicht mehr gesehen – und das obwohl ich als Brandenburger ja einiges gewohnt bin. Die Wahl auf den Crosser als Weggefährt war definitiv falsch und wird beim nächsten Besuch in der Gegend auf jeden Fall auf das Mountainbike fallen.

25×25 → 27×27
Ausblick vom Aussichtsturm auf dem Gipsberg bei Sperenberg