knuspermagier.de
Ein L und zwei P. Philipp!

Canon EOS RP

Etwa ein Jahr nach dem ich sehr von der Ankündigung der M50 gehyped war, und zwei Wochen nachdem ich sie enttäuscht wieder verkauft habe, stellte Canon am Donnerstag die EOS RP vor.

Sie soll wohl so eine Art günstige kleine Schwester der EOS R sein und kostet nur 1.499€ — enthält dafür aber auch nur den Sensor der 6D Mark II, nicht den von der 5D Mark IV, wie die große Schwester. Dazu kommen diverse Canon-typische völlig sinnlose Einschränkungen (Keine 24 FPS in 1080p, keine 30 FPS in 4K, etc), falsche Entscheidungen (die kleinen Schrott-Akkus von der M50, statt die guten von den DSLRs) und technische Limitierungen (immer noch kein Dual Pixel AF in 4K, schlechtes Eye-Tracking, etc), die die Kamera doch wieder nur mittelmäßig erscheinen lassen.

Das einzig gute an der Kamera ist, dass Canon den Preis mal ordentlich aggressiv platziert hat, ganz untypisch, und die RP nun immerhin die günstigste Full Frame Mirrorless ist. Leider halt mit Technik von vor zwei Jahren.

Bitte, 6D, halte noch ein paar Jahre durch, bis Canon endlich zur Vernunft gekommen ist und wieder eine innovative und gute Kamera auf den Markt wirft!

Mac-App Entwicklung, Stand 2019

Vorgestern kam ich auf die Idee, eine kleine App, später mehr dazu, zu bauen, mit der ich meine Zwischenablage besser managen kann. Da ich mir schon dachte, dass man dafür bestimmt Low-Level-Systemkram machen muss und naja, ich hab echt keine Lust auf Electron oder so, entschied ich mich dafür Xcode zu starten und es als native Mac-App zu bauen.

Boah, war das demotivierend.

Also zum einen ist es ewig her, dass ich Xcode das letzte Mal benutzt habe und Objective C kommt mir wieder vor, als hätte ich es nie geschrieben, dabei habe ich mal zwei Jahre lang quasi Vollzeit iOS-Apps gebaut! Kurios, wie schnell man sowas vergisst.

Andererseits habe ich in den letzten Jahren auch vier Versionen Swift verpasst. Ganz im Gegenteil zum Rest des Internets, denn immer wenn man etwas googelt findet man Stack Overflow-Antworten, mit diversen Updates und vier Codeblöcken in allen Swift-Varianten.

So als Außenstehender kommt mir das echt ganz schön bekloppt vor, wie man innerhalb von ein paar Jahren die Sprache so dermaßen umwerfen kann. Ich dachte ja von Anfang an, dass ich mir erstmal Zeit lassen sollte, bevor ich mich in Swift einarbeite. Im Nachhinein war das anscheinend die richtige Entscheidung. Wahrscheinlich werde ich es jetzt nie tun, denn einerseits mache ich gerade mehr JavaScript und andererseits ist Swift mittlerweile so eine verschwurbelte fette Sprache geworden, dass ich wahrscheinlich mindestens 2-3 Tage bräuchte um da rein zu kommen! Da hat man ja keine Lust drauf.


Weil mich Swift zunächst abschreckte, entschied ich mich also zuerst, die App in Objective C zu bauen. Nachdem man ein paar eckige Klammern getippt hat, ist man da ja schnell wieder im richtigen Kosmos. Leider fand ich hier zu meinen Fragen auf Google oft nur Antworten von 2007 und älter, die unter modernen Mac OS-Versionen nicht funktionierten. Danke, Steve Jobs.

Nachdem ich nach 10-minütiger Recherche keine Möglichkeit fand, zuverlässig globale Shortcuts zu definieren und mir immer nur soffes/HotKey vorgeschlagen wurde, wechselte ich also doch auf Swift.


Swift hat, wie gesagt, das Versionsproblem, und dass Optionals für mich die neuen Pointer sind, etwas was ich wahrscheinlich erst verstehen werde, wenn ich in 15 Jahren einen witzigen Comic finde, der sie erklärt.

Immerhin eignete sich Swift doch ganz gut dafür, schnell ein paar Code-Schnipsel zusammen zu kopieren und meine tolle App-Idee umzusetzen. Ob wir noch große Freunde werden, weiß ich nicht.

Vielleicht liegt’s aber auch einfach an der Mac-Entwicklung, für die sich einfach keine Sau interessiert — gefühlt wird jede Stack Overflow-Swift-Frage immer nur aus dem iOS-Blickwinkel beantwortet.


Aktuell habe ich zum Beispiel noch das Problem, dass ich die App nach jedem Build & Run frisch unter Privacy -> Accessiblity freischalten muss, damit meine Hacks funktionieren. Keine Ahnung, was das soll.

Fridolin, der Clipboard-Manager

Seit einiger Zeit (warum beginnen so viele Blogposts so?) benutze ich den Clipboard-Manager von Alfred und es hat mein Leben enorm verbessert.

Was ist denn ein Clipboard-Manager, werden sich jetzt einige Leute fragen. Ganz einfach: Normalerweise drückt man Cmd + C und schwupps, ist etwas in der Zwischenablage, mit Cmd + V kann man es wieder einfügen. Standardmäßig hat die Zwischenablage aber nur einen Platz, der bei jedem neuen Kopiervorgang wieder überschrieben wird.

Das mag jetzt erstmal normal erscheinen, für mich war es die ersten dreißig Jahre meines Lebens auch völlig so, aber jetzt beim schreiben dieses Absatze kommt mir das Konzept dermaßen schwach und falsch vor, dass ich kaum verstehen kann, wie ich es so lange ohne Alfred ausgehalten habe!

Screenshot 2019-02-16 at 12.05.05.png

Mit dem Clipboard-Manager von Alfred hat man jedenfalls die Möglichkeit, alles, was man so kopiert, zu speichern (man kann sagen wie viel und wie lange) und später wieder darauf zuzugreifen. So kann man sich erstmal 3-4 Sachen kopieren und sie wieder, z.B. in anderer Reihenfolge einfügen. Einfach Alfred per Shortcut öffnen, und in der Clipboard-History umhergucken. Das eignet sich auch wunderbar für Sachen, wo man genau weiß, dass man sie vor drei Stunden mal kopiert hatte, die mittlerweile aber verschwunden sind. Quasi ein Backup!


So gut die Anwesenheit einer beliebig großen Clipboard-History nun ist, es geht natürlich immer besser. In den letzten Wochen hatte ich ein paar langweilige Copy-n-Paste-Jobs zu tun, bei denen ich mir sehr stark wünschte, dass Alfred eine Art Clipboard-Stack hätte, den ich erst beladen und wieder entladen kann. Beispielsweise:

  • Ich kopiere nacheinander “A”, “B” und “C”, habe also drei Einträge in meinem Stack
  • Dann füge ich ein und “C” fällt raus, ich drücke nochmal Einfügen und “B” fällt raus, und beim letzten Mal kommt das “A”.

Meinetwegen muss das auch nicht in umgekehrter Reihenfolge sein. Daneben könnte ich mir noch einige andere Funktionen vorstellen. Zum Beispiel alles, was gerade im Stack ist Komma-separiert aneinanderhängen und ausgeben. Oder automatisch ein Search-and-Replace ausführen, und und und.

Alfred hat zwar eine ganz gute Schnittstelle für eigene Workflows, leider ist das Clipboard-Management da nicht so gut angebunden. Man kann zwar den aktuellen Inhalt der History übergeben, aber diese nicht modifizieren, etc.


Zuerst habe ich also ein paar Alfred-Hacks gegoogelt, alles was ich fand waren aber wilde Dinge, die die sqlite-Datenbank von Alfred anzapfen und bearbeiten. Darauf hatte ich keine große Lust. Also machte ich mich auf den beschwerlichen Weg selber eine Mac App zu schreiben. Hier ist also Fridolin!

Screenshot 2019-02-16 at 12.05.57.png

(Der Name ist noch Quatsch, aber ich musste mir für den Blogpost schnell was überlegen)


Fridolin funktioniert folgendermaßen:

  • Er überwacht ständig das Clipboard auf Änderungen und speichert die in einer eigenen History
  • Drückt man den Shortcut, wird ein Script auf die History angewendet, das irgendwas macht. Zum Beispiel die oben beschriebenen Anwendungsfälle

Die UI ist noch hässlich und nicht so einfach benutzbar, aber insgesamt habe ich auch nur etwa eine Stunde Arbeit investiert. Aber es funktioniert!

Die Scripte, die auf die History angewendet werden sind übrigens in JavaScript geschrieben! Ein Hoch auf JavascriptCore.

Die ganze App besteht bisher nur aus wenigen Zeilen Swift-Code und ich werde mal sehen, ob ich sie wirklich benutze, oder ob das nur dumme Spinnereien von mir waren und ich diese Funktionalität eigentlich gar nicht brauche. Falls ja, werde ich es vielleicht irgendwann nochmal hübsch machen.

Den aktuellen Stand habe ich auf jeden Fall schonmal auf Github geladen. Schadet ja nicht!