knuspermagier.de
Hallo. Ich bins! Philipp!

Mein Problem mit Swift

Diese Woche war ja, wie jedes Jahr, die große WWDC von Apple. Erst freute ich mich tierisch darauf, weil ich hoffte, dass in der Keynote ein Update für das kleine iPad Pro rauskommen könnte — leider passierte das aber nicht. 😤


Aber die WWDC ist ja viel mehr als die Keynote. Es gibt sehr viele Sessions, in denen all die tollen Sachen, die man jetzt mit iOS und Swift machen kann, erklärt werden. Früher schaute ich da auch relativ viel und fand die meisten immer sehr lehrreich.

In den letzten Jahren, als mein Fokus wieder etwas von iOS-Entwicklung in Richtung Frontend/Fullstack/Whatever-Entwickler rutschte ließ meine Begeisterung dafür irgendwie wieder nach. Ich würde mir die Sachen gerne immer noch angucken, ich würde auch gerne mal so richtig Swift lernen, bisher hab ich ja eigentlich nur mit Objective C gearbeitet.

Ich frag mich nur immer, ob es sich wirklich lohnt. Klar, es gibt sehr viele iOS-Entwickler und Apple stellt da jedes Jahr ein riesiges Fest auf die Beine. Auf der anderen Seite sehe ich aber auch, das immer mehr, vor allem in dem Agenturumfeld, in dem ich mich bewege, in Richtung React Native tendiert. Welcher Kunde kann da schon nein sagen, wenn man für Apps für zwei Plattformen nicht sechs, sondern vielleicht nur vier Monate braucht (Vielleicht dauert es am Ende auch genauso lang, wie zwei native Apps, dann hat man aber immerhin eine Codebase für zwei Plattformen). Für viele Anwendungsfälle kommt man wohl ganz gut mit React zurecht und muss höchstens in Einzelfällen noch mit nativem Code nachhelfen.

Vor ein paar Jahren konnte ich mir das Objective C lernen noch einfacher schön reden. Es gab klare Argumente gegen komische Cross-Plattform/Hybrid-Apps mit Cordova oder PhoneGap — sie waren einfach langsam und scheiße und selbst jemand, der da nich so das Auge dafür hat, hat das gesehen. Jetzt fällt es mir da schwieriger zu argumentieren. Gibt es gute Gründe gegen React Native? Da ich noch nie wirklich tief damit gearbeitet habe, fällt es mir auch nicht so leicht etwas dazu zu sagen.

Ich lauere immer auf Posts bei HackerNews, sowas wie “I used React Native in a really big app for two years and I hated it”. Leider finden es immer alle nur ausnahmslos geil.


Gleichzeitig sehe ich aber die vielen tausend Leute, die sich auf der Konferenz tümmeln und sich über neue APIs in iOS 12 freuen. Es scheint also ja doch noch Leute zu geben, die native Apps wollen? Das sind ja nicht alles Indie-Entwickler, die aus Spaß an der Freunde ne iOS-App schreiben.

Ich hab ab und zu ja auch mal wieder eine App-Idee (Ich hätte immer noch gerne die KüchenInventur-App), wo ich mir auch überlege, ob ich es “mal eben mit ein bisschen JavaScript-Gefrickel” in React Native baue, oder ob ich mir jetzt eine neue Programmiersprache, mit tonnenweise komischem Syntax-Sugar, aneigne. Wenn ich Swift wenigstens noch für etwas anderes benutzen könnte. Ich würde es echt gerne lernen, aber ich fürchte ich brauche es einfach nicht.


Fazit? Ich würde gerne Swift lernen, weil ich es geil finde, was Apple da jedes Jahr softwaremäßig raushaut, aber ich habe das Gefühl, dass sich das Zeitinvestment nicht lohnt, weil man native Apps nur schwer verkauft bekommt.

(Ja, man könnte auch sagen, dass man es ja auch einfach auf Spaß lernen könnte, aber zum Spaß mache ich genug andere Dinge, da hab ich keine Zeit)

(Vielleicht ist mein Blickwinkel auch einfach verschoben, weil ich zu sehr im Frontend-Süppchen schwimme und ich weder richtig weiß, was mit React Native alles geht oder nich geht, noch, ob da draußen noch jemand echte, native iOS-Apps will.)

Die Zwiebel-Frage

Hallo Welt,

wie wir ja alle wissen bin ich großer Fan von Hello Fresh. Vor allem mag ich, dass die Rezepte immer sehr genau und einfach nach zu kochen sind, ohne, dass man viel Koch-Know-How braucht. Eines stört mich allerdings ein bisschen -- fast jedes Mal, wenn die grandiose Zutat Frühlingszwiebel genutzt wird steht im Rezept sowas wie "Schneide den Weißen und Grünen Teil der Zwiebel getrennt voneinander in dünne Ringe". Der weiße Teil wird dann meist angedünstet, der Rest landet am Ende als Deko auf dem Gericht.

Jeder, der so eine Zwiebel schon einmal genau betrachtet hat, wird wissen, dass es leider nicht so einfach ist, wie es im Rezept steht. Der Übergang zwischen weiß und grün und eher fließend und nich wirklich leicht bestimmbar. Je nach Zwiebel ist es auch ganz unterschiedlich. Manchmal sind nur die ersten zwei Zentimeter richtig komplett weiß. Soll ich dann wirklich die verbleibenden zwanzig Zentimeter als Deko verwenden? Was hat sich die Natur dabei nur gedacht!

Aber HelloFresh hat ja einen perfekten Twitter-Support, also Stellte ich meine Frage kurzerhand bei Twitter und bekam auch schnell die angeforderte Skizze -- mein Problem wurde dadurch nicht so richtig gelöst. Es scheint eine sehr subjektive Sache zu sein, wie viel vom Grünen man noch in den Weißen Teil der Zwiebel aufnimmt.

Das ganze kann ich so natürlich nicht einfach bei Seite legen. Daher hier nun der Versuch, die perfekte Frühlingszwiebel-Zerteilung zu crowdsourcen. Stimmt über den Slider unten einfach ab, wo ihr sagen würdet, dass der weiße Teil vorbei ist und der Grüne beginnt. Die graue Linie oben zeigt immer den aktuellen Durchschnitt an. Sobald diese Umfrage ein repräsentatives Ergebnis hat, werde ich euch natürlich auf dem Laufenden halten.

Update

Mittlerweile gingen etwa 190 Abstimmungsergebnisse ein. Das reicht mir, ich schließe diese Umfrage damit. Hier das offizielle Ergebnis:

zwiebel.png

Verstauen & Ordnen

Meine Lieblingsabteilung im IKEA ist ja Verstauen & Ordnen. Dort findet man immer so viele tolle Sachen, in die man Dinge rein tun kann, ich bin immer ganz entzückt.

IMG_5561-edit.jpg

Letztens habe ich mal wieder im Keller rotiert, ein paar Wagenladungen zum Abfallhof gefahren und Dinge sortiert. Wie viele Kaltgeräte-Kabel braucht man? Mittlerweile finde ich, dass zwei Stück reichen sollen, zusätzlich zu denen, die eh an diversen Geräten im Einsatz sind. Ebenso rigoros ging ich mit HDMI, VGA (da brauch man 0!), DVI und anderen Kabeln um.

Bisher lagerte ich den ganzen Elektronik-Schrott in einer großen Kiste, was natürlich dazu führte, dass immer alles furchtbar durcheinander gewürfelt wird, wenn man in der Kiste nach etwas sucht. Mein neues Ordnungsprinzip sieht nun etwas ganz verrücktes vor: Verschiedene Dinge kommen in verschiedene Boxen! Zum Glück hat IKEA SAMLA in verschiedensten Größen!

Sobald der Elektronik-Kram fertig sortiert ist, geht es dann mit der Werkstatt-Kiste weiter. Ich freue mich, vielleich muss ich ja dann noch ein paar Kisten kaufen!

Schlürf & Schmatz

Die Lange Reihe wird natürlich von den großen Playern, wie dem grandiosen Café Gnosa dominiert — daneben gibt es allerdings noch allerhand weitere kleine Läden, die teilweise auch recht häufig Besitzer, Namen und Konzept wechseln.

Meistens habe ich nicht die Energie oder Zeit mich mit diesen neuen Läden auseinander zu setzen — vor zwei Jahren waren wir mal im Fränzi, das es schon lange nicht mehr gibt.

Ganz neu ist jedenfalls “Schlürf & Schmatz”, ein typischer Instagram-Hipster-Laden, so von der Aufmachung her.

Martin fuhr am Sonntag leider schon wieder nach Berlin und zum Abschied wollten wir uns noch kurz treffen. Ich empfand das als guten Zeitpunkt, dieses neue Lokal mal auf Herz und Nieren zu testen.

Ich hatte eine Acai-Bowl, auch wenn ich weder wusste, wie man es ausspricht, noch was es ist und Martin ein Sandwich. Beides war gut. Vor allem die Portionsgröße der Bowl war mehr als üppig — und lecker wars auch noch. Hier komme ich auf jeden Fall nochmal vorbei, wenn ich etwas instagrammen möchte!

20180603-125611-pwa-1549-Edit.jpg

Tauben und Kirschen

Seit ein paar Tagen kann ich im Innenhof regelmäßig eine ganze Gruppe Tauben dabei beobachten, wie sie sich über den Kirschbaum her machen. Kein Wunder, dass ich bisher nie mitbekommen habe, dass hier tatsächlich Kirschen wachsen. Bevor sie reif sind, ist der Baum wohl komplett leer gefressen.

20180530-201519-pwa-1494.jpg
20180528-145203-pwa-1445.jpg

(Um das noch genauer unter die Lupe zu nehmen brauche ich wohl doch mal das große weiße 600mm von Canon. Hat jemand 12.000€ übrig?)

DSGVO

Das große Thema, das aktuell alle unglücklich macht ist ja die Datenschutzgrundverordnung. Auch an mir geht das natürlich nicht vorbei, denn leider betreibe ich zu viele Webseiten.

Die Unsicherheit, was man nun genau tun muss, ist wahrscheinlich das größte Problem. Hier im Blog zum Beispiel. Kommentare deaktiviert, Google Analytics raus. Youtube- und Spotify-Embeds werde ich wohl auch noch rauswerfen -- und trotzdem muss ich am Ende so eine dämliche 20-seitige Datenschutzerklärung aus einem Generator copy-pasten? Das kann doch nicht... der Sinn sein.

Für watched.li bin ich immerhin schonmal fertig, glaube ich. Analytics rausgeworfen, alle JavaScript-Libraries von CDNs gekickt (und eine strenge Content Security Policy im nginx definiert) und fertig. Ich hatte dann sogar selbst versucht eine kurze, knackige Erklärung zu schreiben, was nun vom User noch wann gespeichert wird, am Ende war mir das aber auch zu unsicher und ich nahm jetzt doch etwas aus einem Generator. Ist das sicherer? Man weiß es auch nicht. Ich habe aber leider auch kein Geld einen Anwalt zu befragen, der mir dann auch nur antworten wird, dass er sich auch noch nicht so sicher ist.

Ein gutes hat die Sache aber auf jeden Fall: Ich werde auf allen Seiten die Einbindung jeglicher Third-Party-Sachen möglichst vermeiden. Das ist besser für alle.

Vue.js-Tipp: Don't ignore the warnings

Vor ein paar Tagen gab es einen albumup-Bugreport -- die Galerieanssicht lud nicht vernünftig. Kurz ausprobiert, reproduziert, erstmal ein altes JavaScript-Bundle hochgeladen, was ich noch rumliegen hatte -- klappt wieder. Ein Glück, wenn man vergessen hat die kompilierten Files ins Gitignore zu packen.

Heute versuchte ich zu herauszufinden, was da passiert. Der Chrome Task Manager ist dabei immer eine große Hilfe. Der Tab brauchte konstant 150% CPU und fraß immer mehr Speicher. Da war wohl was kaputt!

Normalerweise ist ja git auch sehr hilfreich bei solchen Sachen. Was habe ich wohl kurz vor dem letzten Live-Deployment kaputt gemacht? Ich ging alle Commits durch und fand… nichts. Am Galerie-Code hatte ich schon länger nicht mehr gearbeitet. Weil ich sonst absolut keine Idee mehr hatte, dachte ich, ich fange mal an ein paar Zahnräder aus dem System zu entfernen, um den Fehler einzugrenzen. Also einen Development-Build mit webpack durchgeführt, ohne Uglify und anderen Optimierungen. Tatsache, es funktioniert. Also erstmal einen grumpy Tweet abgesetzt und weiterprobiert.

In der Developer Console kam jedenfalls folgende Meldung:

image.png

Interessant, was? Hier muss man dazu sagen, dass die Meldung da schon länger ist und ich sie immer ignorierte, weil alles ja weiter funktionierte und ein kurzer Blick auf den Code den endlosen Loop nicht sofort erkennen ließ. Außerdem ist es ja nur eine Warning.

Tatsächlich ist es nun aber so, dass Vue im Development-Mode die Loops erkennt, abbricht und mit einer Warning versieht -- damit hat man zwar ein paar rote Zeilen im Inspektor, dafür funktioniert die App aber an sich gut weiter. Im Production-Mode hingegen fehlt die Warning und alles läuft fröhlich im Kreis, bis der Browser stockt und der Macbook-Lüfter aufheult. Schade!

Irgendwie hatte es jedenfalls beim vorletzten Deployment ein Dev-Build auf den Server geschafft, was aber ganz glücklich war, denn der funktionierte wenigstens gut. Erst als ich vor ein paar Tagen aufräumte und einen vernünftigen kleinen Build auf den Server schob, ging alles kaputt.


Der Loop kam übrigens durch diese Zeilen Code:

    let folders =  this.$store.state.folders;

    const collator = new Intl.Collator(
        undefined, 
        {numeric: true, sensitivity: 'base'}
    );

    folders.sort(function(a, b) {
        return collator
            .compare(a.display_name, b.display_name);
    });

    return folders;
}

Die Funktion ist eine Computed Property, die jedes mal neu berechnet wird, wenn sich this.$store.state.folders ändert... und leider hab ich wohl vergessen, dass .sort ja den Array direkt sortiert und damit natürlich den State direkt ändert, was dazu führt, dass die Funktion erneut aufgerufen wird, was dazu führt, dass der State direkt geändert wird, was dazu führt, dass die Funktion aufgerufen wird…

Der Fix war auch erstmal relativ easy:

 let folders =  clone(this.$store.state.folders);

(Ja, das sollte eher in einen Getter, etc etc, mit Immutability wär dir das nicht passiert, etc etc)

Die Moral von der Geschichte: Danke Vue für hilfreiche Fehlermeldungen, die man aber auch nicht ignorieren sollte.

Canon EOS M50 – Kurzreview

Ende Januar berichte ich hier, wie ich mir keine M100 kaufte — ein paar Monate, nachdem ich mir die M5 kaufte und zurück schickte, weil sie mir nicht so richtig zusagte.

Auch wenn ich den Post mit den Worten “Warum denke ich überhaupt über Kameras nach, wenn die Bearbeitung immer so eine Mammutaufgabe ist? 🙈” abschloss, kümmerte ich mich natürlich nicht drum, viele Fotos zu bearbeiten, sondern recherchierte weiter, was die Welt der spiegellosen Kameras für mich bereit hält.

Zuerst war da die Fuji X-A5-Ankündigung. 599€ inklusive einem Objektiv mit brauchbarer Brennweite, man kann Fotos machen, es gibt einen Mikrofon-Jack, ja warum nicht. Ich lieh mir sogar Chris’ X-T20 für ein Wochenende, um mal zu schauen, wie mir Fuji so liegt. So richtig begeistert war ich nicht, was nicht zuletzt am schlechten Wetter (oder Berlin) lag — mittlerweile gab es aber sowieso Gerüchte, dass Canon noch vor Ende Februar eine neue Spiegellose ankündigen wird. Etwas verwirrt, da die M5, M6 und M100 jetzt ja so Schlag auf Schlag kamen, harrte ich also aus und verfolgte täglich die neusten Entwicklungen bei CanonRumors.

IMG_5166.jpg

Tatsächlich wurde die EOS M50 angekündigt. Neuer Sensor, Überall-Hinklapp-Display und, man mag es kaum glauben, es ist immerhin Canon: 4k-Video. In 24 FPS! Dazu kommt der von mir sehr gewünschte Mikrofon-Eingang. Das klang für mich erstmal viel zu gut um wahr zu sein. Als der Preis bekannt wurde, war ich noch überraschter. Nur 579€. Das ist weniger als die Hälfte von dem, was mich die M5 vor 5 Monaten gekostet hätte.

Ich bestellte direkt im Canon Store vor. Zunächst nur das Kit, Body-only gab es nicht. Dazu noch bei Calumet (support your local dealer!) und Amazon, als es da auch zwei Wochen später verfügbar war. Am 27. März sollte geliefert werden. Am Ende wurde es tatsächlich ein Body aus dem Canon Store, da Calumet mir kein Lieferdatum nennen konnte und Amazon das Lieferdatum einen Tag vor Erscheinen um zwei Wochen nach hinten verschob.

(Ja, ich bekam erst das Kit, bestellte den Body hinterher, da der am Release-Tag auch im Shop freigeschaltet wurde — der kam direkt am nächsten Tag an.)

Mittlerweile war ich ein bisschen mit der Kamera unterwegs (Low-Light-Performance bei einer Rathausführung und ein normaler sonniger Kurzurlaub) und hier sind, ungeordnet, meine ersten Gedanken:

20180407-152001-pwa-0563.jpg

Autofokus

Der Autofokus funktioniert echt gut. Dual Pixel hält, was es verspricht. Es ist ein bisschen schade, dass der Augen-Autofokus nur in Kombination mit so einem “Zone”-Autofokus geht, ich würde mir wünschen, dass man den auch mit dem “ich hab einen AF-Punkt in der Mitte”-Modus kombinieren könnte.

Über den Touchscreen kann man den AF-Punkt mit dem Finger verschieben, was ganz praktisch ist. Auch während man durch den Sucher schaut — hier sollte man einstellen, dass nur ein Teil des Screens dafür benutzt wird, ansonsten verstellt man sich ständig mit der Nase den Autofokus. Insgesamt passierte es mir ein paar mal, das der Punkt nicht da war, wo er hinsollte. Hätte gerne noch eine Möglichkeit ihn ganz fix zu setzen.

Displays

Kann man nicht meckern. Das Klappdisplay klappt überall hin, der elektronische Sucher ist auch in Ordnung — bisher benutze ich ihn aus Gewohnheit noch mehr. Tatsächlich hatte ich das hintere Display oft in der “Schutzstellung” und hab nur den Sucher verwendet, auch mal ganz schön, wenn man nicht ständig kontrolliert, wie das Bild aussieht.

Die Umschaltung zwischen Display und EVF funktioniert problemlos, mit dem typischen Delay halt. Ist okay. Ich hab mir die manuelle Umschaltung trotzdem auf einen Knopf gelegt.

Bedienung

Ja, es ist eine Einsteigerkamera. Abgesehen von den Spielzeug-DSLRs/Point and Shoots ist es wohl eine der billigsten Kameras, die Canon im Angebot hat. Tatsächlich merkt man das aber nur an ein paar Sachen, wie zum Beispiel, dass es viel zu wenig Knöpfe und Räder gibt, und dass die vorhandenen viel zu klein sind. Naja.

An das meiste kann man sich gewöhnen, dass man nicht Blende und Belichtungskorrektur mit zwei einzelnen Rädern ändern kann, nervt allerdings schon etwas.

Eine weitere Einschränkung scheint zu sein, dass man die Kamera nur über einen versteckten SCN-Szenenmodus in einen Silent Mode stellen kann, wo nur der elektronische Shutter benutzt wird und sie damit… ihr ahnt es… silent wird. Da kann man aber nur umständlich hin navigieren und hat dämliche andere Optionen drin. Warum ist das nicht einfach eine Option im Drive-Menü?

20180407-174936-pwa-0649.jpg

Videos

Full HD bis 50 FPS, 4K in 24 FPS, da kann man sich nicht beschweren. Doch natürlich kommt letztes mit einem kleinen Catch, wir wären ja sonst nicht bei Canon (und — naja — nicht im Niedrigpreissegment): Wenn man in den 4K-Modus geht hat man zusätzlich zum 1,6-fach-Crop nochmal einen 1,5-fachen Extra-Crop. Besser wäre es natürlich ohne, aber man kann damit leben. Mit dem EF-M 11-22mm kommt man da auf etwa 26mm, das reicht gerade noch für ein Selfie — besser war das bei dem Camcorder, den ich zwischendurch hatte, auch nicht.

Tatsächlich habe ich die Video-Funktion noch nicht genug benutzt, um irgendetwas dazu sagen zu können.

Akkuleistung

Eine Sache, mit der man natürlich jetzt leben muss. Canon gibt circa 300 Bilder pro Akkuladung an, vielleicht stimmt das sogar. Egal, einfach immer zwei oder drei dabei haben, dann ist man auf der sicheren Seite. Aktuelle, teure, spiegellose sind da mittlerweile weiter (die Sony A9 soll echt gute Akkus haben!), aber wir sind hier ja Einsteigerklasse.

Geil wäre es, wenn man die Kamera wenigstens per USB-Akku laden könnte. Leider scheint das nicht so einfach zu sein, das zu integrieren, daher hat Canon hier natürlich, wie bei allen anderen Kameras, darauf verzichtet. Schade.

Gewicht

Geil! Man merkt fast nicht, dass man sie dabei hat.

20180331-172929-pwa-0193.jpg

Crop

Das Crop-Life nervt mich ziemlich. Also vor allem, weil ich kein Objektiv mehr habe, was nicht viel zu lang ist am Crop. Mein 40mm-Pancake ist schon grenzwertig, 50mm, 85mm, 70-200mm. Erst vor ein paar Monaten verkaufte ich mein 28mm/1.8, weil ich dachte, dass ich eh nie wieder eine Crop-Kamera besitzen werde. Falsch gedacht!

Für die M50 hab ich nun das oben erwähnte 11-22mm, an und für sich, so für Draußen und Licht ist das auch ganz toll, bei einer Wanderung durch das Hamburger Rathaus hätt ich mir aber doch öfter etwas mehr Lichtstärke gewünscht — hatte das 16-35mm/2.8L aber nicht dabei.

(Letzteres könnte ich natürlich allgemein als weites Objektiv dran benutzen, aber es wiegt mehr als die Kamera und das ist ja auch nicht im Sinne des Erfinders)

Im Laufe des Jahres soll wohl noch ein 32mm/1.4 oder so kommen, das klingt an sich schonmal gut. Mal sehen, wie teuer es wird.

Bildqualität

Bisher bin ich ganz zufrieden. Jetzt, wo ich mir die Bilder mal genau angucken kann, weil Lightroom CC auch das neue CR3-Format versteht, habe ich nichts groß auszusetzen. Farblich sieht das alles aus wie aus der 6D, bei wenig Licht rauscht es aber schon spürbar mehr — schon überraschend, wieviel Vorsprung der alte 6D-Sensor da noch hat, nur weil er etwas größer ist.

Ich halte euch natürlich, wie beim Macbook, auf dem Laufenden, was sich noch ergibt und verbleibe mit einem positiven Ersteindruck. Die spiegellose Technik ist mittlerweile auf jeden Fall so weit, dass ich mich auf den ersten Vollformat-Aufschlag von Canon freue, der hoffentlich spätestens 2019 kommt. So lange greife ich aber auch noch sehr gerne zur 6D. Wiegt zwar etwas mehr, aber man hat dafür auch was in der Hand.

Aus Verzweiflung ein eigenes Blog-System geschrieben

Nebenbei bauen Flo, Pablo, Hannah und ich ja immer noch an albumup.com — mittlerweile haben wir auch ein paar zahlende Kunden. Um mal ein bisschen Fahrt aufzunehmen, dachten wir uns, dass es eine gute Idee wäre, ein bisschen Content zu erstellen und die Seite über einen Blog etwas aufzuwerten. Einerseits als Ort, an dem man unsere Historie (Startup Weekend 2015 bis jetzt) nachvollziehen kann und andererseits eine Quelle für interessante Fotografen-Inhalte!

Da Flo noch an einer anderen Baustelle bastelt, dachte ich mir, ich löse das Problem mal schnell. Kann ja nicht so schlimm sein, kurz einen Blog einrichten. Was sich daraus entwickelte, ist ein wochenlanger Leidensweg, der natürlich nicht zuletzt auf meinen endlosen Perfektionismus zurück zu führen ist.

Zu allererst dachte ich natürlich, ich richte einfach fix ein Wordpress ein. Was soll’s. Kurz installiert und versucht unter albumup.com/blog zum Laufen zu kriegen. Vergeblich. Also — das Problem hier war, dass ich das Wordpress natürlich nicht ins /public-Verzeichnis von unserer Lumen-App packen wollte, es sollte schon ein eigener nginx-vhost sein, halt per Proxy auf /blog umgemünzt. So richtig hatte Wordpress aber keinen Bock auf den Proxy-Kram, vor allem das Backend ging gar nicht.

Naja. Um ehrlich zu sein hatte ich eh keine Lust auf Wordpress.

Da ich vor Jahren schonmal was mit Cockpit gemacht hatte, war das mein nächster Gedanke. Kurz die nötigen Dateien ins /public-Verzeichnis geworfen (da bröckelte schon mein erster Vorsatz) und angeguckt. Leider sah ich nichts. Die aktuelle Version von Cockpit ist eine PHP 7.1-App. Geil! Also, an sich. Schade leider für mich, da meine lokale VM, in der albumup liegt, immer noch auf PHP 5.6 basiert. Aber ich wollte das ja eh mal umziehen…

Minuten später hatte ich also eine PHP 7.1-VM (albumup hat eine halbwegs funktionierende Ansible-Config, juchu). Ich war schon kurz davor, kurzerhand den Live-Server umzustellen, schaute mir zur Sicherheit aber doch nochmal alles ganz genau an. Tja. Leider hat eine Dependency von Lumen ein Problem mit 7.1. Furchtbar.

Mein nächster Gedanke: Okay, update ich halt Lumen. Direkt wieder verworfen, denn Lumen nervt mich eigentlich eh, quasi seit damals, als ich mich dafür entschied, keine Laravel-App daraus zu machen. Warum nicht kurz eine frische Laravel-App generieren, die paar Dateien rüberkopieren und albumup PHP 7.1-ready machen, wäre das nicht toll?

Nachdem ich einen Abend damit verbrachte und leider nicht fertig wurde, entschied ich mich beim nächsten gemeinsamen Abend dafür, das erstmal beiseite zu legen und mich aufs Grundthema zu konzentrieren: Ein Blog für albumup. Doch was?

Kirby? Irgendwas in mir wehrte sich dagegen, noch ein weiteres Kirby aufzusetzen, bevor Kirby 3 fertig ist.

Statamic? Kostet zu viel Asche.

Hugo, Jekyll, andere Static Site Generatoren? Ich hätte schon gern ein Web-Interface.

Diverse andere CMS-/Blog-Systeme hatten entweder keinen Bock auf PHP 5.6 oder sahen viel zu kompliziert aus für einen einfachen Blog.

Nach ausgiebiger Suche fand ich Grav, setzte es auf, ärgerte mich pausenlos über das absolut hässliche Backend und passte das Template an. Das ganze Ding mag ja ein okayes CMS sein, aber für einen einfachen Blog war mir das alles viel zu unübersichtlich. Furchtbar. Ich bekam es zwar recht schnell fertig, war aber mega unzufrieden.

Im abschließenden Gespräch meinte Flo, warum wir es nicht einfach über Markdown-Files im Git machen. Puh. Gute Frage. Also klar, ich hatte da auch schonmal drüber nachgedacht, aber ich wollte ja zum Einen, ha ha ha, nicht so viel Zeit investieren (eigene Logik zum Darstellen der Posts, etc etc) und zum anderen eigentlich gern ein Web-Backend um die Posts zu editieren.

Jetzt kann man sich schon denken, was passiert ist. Durch die absolute Unzufriedenheit mit meiner Grav-Lösung (die ja auch wieder eine zusätzliche, zu pflegende, Software darstellt) entschied ich mich dafür, doch eben die homebrew Markdown-Lösung zu bauen. Nach ca. 45 Minuten war das fertig.

Rechnet man da jetzt noch anderthalb Stunden fürs Styling dazu, die ich ins Grav-Template investierte (was ich zum großen Teil übernehmen konnte) hätte ich das ganze Ding also in nicht mal drei Stunden abfrühstücken können, statt mich an insgesamt drei Abenden um Gott und die Welt zu kümmern — oder mich halt einfach mit Wordpress auf blog.albumup.com zufrieden geben können.

Herrje.

(Aktuell ist der Blog noch nicht online, jetzt fehlt nur noch der Content!)