phpbrew mit macOS 10.14 Mojave

Seit Mojave baut phpbrew auf meinen Rechnern die Binaries nicht mehr, sondern bricht mit einer Fehlermeldung ab:

% phpbrew -d install -j 4 7.2.13 \
+default \
+iconv \
+icu \
+bz2 \
+zlib \
+curl

[...]

checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution

Das Problem betrifft neben bzip2 auch noch weitere Libraries wie iconv, zlib und curl und entsteht vermutlich im Zusammenhang mit Homebrew. Die benötigten Includes werden im Homebrew-Universum gesucht, statt auf die vom System bereitgestellten zurückzugreifen. Hat man die entsprechenden Libraries nicht per Homebrew installiert, kommt es zu diesen Fehlern.

Das Problem lässt sich allerdings sehr einfach beheben, indem man zum einen die benötigten Libraries per Homebrew installiert:

% brew install zlib bzip2 libiconv curl

Zum anderen gibt man phpbrew nun die passenden Include-Pfade mit:

% phpbrew -d install -j 4 7.2.13 \
+default \
+iconv=/usr/local/opt/libiconv \
+icu \
+bz2=/usr/local/opt/bzip2 \
+zlib=/usr/local/opt/zlib \
+curl=/usr/local/opt/curl

[...]

Congratulations! Now you have PHP with 7.2.13 as php-7.2.13

PHP-Extensions benötigen unter Umständen ebenfalls ein paar Extra-Infos zum Kompilieren, für gd nutze ich z. B. folgendes Kommando:

% phpbrew use 7.2.13 && phpbrew ext install gd -- \
--with-zlib-dir=/usr/local/opt/zlib

Infografik: Rad fahren in 2018

Schon traditionell (2015, 2016, 2017) gibt’s auf veloviewer.com auch für 2018 wieder eine Infografik, welche die vergangene Radfahr-Saison schön zusammenfasst. Wie immer gab es für mich keine Überraschungen – ich wäre zwar wie immer gerne mehr gefahren, der trockene Sommer und der neu angelegte Garten mit seinem Durst sorgten dafür, dass ich die Abende oft mit dem Schlauch in der Hand auf dem Rasen verbrachte statt auf dem Bike.

Zum Vergleich die Grafiken aus 2017, 2016 und 2015:

Dürre in Deutschland

Wenn Andreas Marx erzählt, dass in Deutschland noch immer Dürre herrscht, reagieren viele Gesprächspartner verwundert: Aber es ist doch schon kälter geworden, der Hitzesommer längst vorbei? „Hitze und Trockenheit, das gehört für die meisten zusammen“, sagt der Umweltwissenschaftler. Doch auch wenn die Temperaturen sinken, die Trockenheit hat sich in den letzten Wochen sogar wieder verschärft. Es fällt einfach zu wenig Regen – und das schon seit Anfang des Jahres.

Quelle: SZ – Dürre in Deutschland

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.