knuspermagier.de
Der privateste Blog von Philipp.

Jessica Jones spielt im bekannten Marvel-Universum und bietet ein paar schöne Referenzen zu ziemlich vielen anderen Marvel-Serien und Filmen und ist damit schonmal grundsätzlich schön!

Ich genoss die gesamte Serie, die ich in einem relativ schnellen 1–3–6–4-Rhythmus schaute. Die erste Folge erschien mir noch etwas langweilig, spätestens am Ende war ich dann aber ausreichend gehooked und konnte kaum darauf warten weiter zu schauen, lediglich nach Folge 10 musste ich eine kurze Pause einlegen, weil es dann doch etwas zu heftig wurde.

Besonders gut gefiel mir David Tennant in der Bösewicht-Rolle, große Minuspunkte kann ich eigentlich nicht nennen. Auf jeden Fall eine meiner Top Serien 2015 (eine Liste, die nicht besonders groß ist, aber egal)

Print

20151216_0012_IMG_2308.jpg

Normalerweise decke ich meinen täglichen Bedarf an Lesestoff ja mit Artikel auf Hackernews oder Reddit. In letzter Zeit passiert es mir aber immer öfter, dass mich die bunten Cover von diversen Magazinen in der Printerzeugnistheke im Edeka anlachen... bisher konnte ich da immer widerstehen.

Aber warum eigentlich nicht. Warum nicht mal etwas lesen, was nichts mit Technik zu tun hat und liebevoll von jemandem für das Printmedium hergerichtet wurde!

Da ich außer dem Mickey Maus-Heft, der GameStar und der c't bisher eher keinen Kontakt mit der Materie hatte, habe ich natürlich auch gar keine Ahnung, was man kaufen kann und was nicht -- National Geographic klang jetzt aber relativ seriös und ein Traveller bin ich ja auch, perfekt!

Mal sehen, ob ich es irgendwann lesen werde.

(Schrieb ich hier gerade einen Blogpost darüber, dass ich mir ein Magazin kaufte? Wohin sind wir nur gekommen)

Cloud Reader API

Im Zuge meiner “Ich will alles Tracken”-Manie fiel mir gestern ein, dass ja mal jemand die WhisperSync-API reverse engineeren könnte. Dann könnte man sich schön eine Timeline bauen, wann man wieviel gelesen hat!

Kurz gegoogelt und phantomsync gefunden, dass anscheinend eine JSON mit Daten erzeugt, leider benutzt das aber PhantomJS um den Cloud Reader zu crawlen und das finde ich etwas uncool… Die APIs sind ja da, es müsste sie nur mal jemand herausschreiben und gucken, wie man einen Sessiontoken erzeugen kann.

Wenn dann Lesetagebu.ch noch eine API hätte un die gewonnenen Daten einzuspeisen!

Macht das bitte mal jemand? So richtig bringt es ja auch nichts, deswegen bin ich zu faul dazu.

Ein Cockpit für philippwaldhauer.de

Vor ein paar Monaten baute ich philippwaldhauer.de ja neu, damals alles gespeist aus einer Datei, mit einem PHP-Array, in dem die ganzen Texte standen. Das war für den Anfang erstmal ganz okay, ab und zu möchte man sein Portfolio aber auch aktuell halten und dann nervt es natürlich etwas, wenn man immer eine Datei auf dem Server editieren muss.

Da ich aktuell keine 80€ für Kirby ausgeben will, benutzte ich nun Cockpit (was mir Flo schon mehrfach empfohlen hat) um das ganze vernünftig per Browser bedienbar zu machen. Das klappte alles sehr einfach und ist damit sehr zu empfehlen.

Optimizing your iOS workflow with fastlane

Last week I finally had some time to improve the building and distribution workflow for an iOS app we built for a client. The whole development process was a bit messy — we started with Testflight, switched to Hockeyapp when Testflight was shut down and later moved to a self hosted Enterprise distribution, because the client wanted to test the product in-house with more testers.

While the process now is a bit easier with only three different targets (dev, mainly used on my devices, test as Enterprise distribution and, of course, the App Store build) it always was a big hassle to juggle around bundle identifiers and API endpoint URLs.

So I tried to optimize the workflow. At first I tried to be extra smart and built a small Ruby script using the xcodeproj gem to change bundle identifiers and stuff, but I quickly discovered that I’m reinventing the wheel — most of the work can be done via build configurations and schemes directly in Xcode. This blog post finally helped me to understand everything. mindblown.gif

This at least made the error-prone manual editing not necessary anymore, but I still had to compile the app, export it, upload it to the test server via Transmit, tell my coworkers that a new build is available for testing, push everything to git, etc etc.

Fortunately I rediscovered fastlane. With fastlane the work is reduced to typing “fastlane testbuild” and it does everything from compiling the app to sending a slack message with the download link.

My Fastfile looks like this and was pretty easy to create:

platform :ios do
  before_all do
    ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
  end

  desc "Upload test build"
  lane :testbuild do
    increment_build_number
    bundle_version = `/usr/libexec/PlistBuddy -c Print:CFBundleVersion ../Files/Info.plist`.strip
    version = `/usr/libexec/PlistBuddy -c Print:CFBundleShortVersionString ../Files/Info.plist`.strip
    filename = "Testbuild-" + version + "-" + bundle_version + ".ipa"

    gym(
      scheme: "Testbuild",
      configuration: "Testbuild Release",
      export_method: "enterprise",
      output_directory: "build",
      output_name: filename,
      clean: true
    )
    sh "./upload.sh \"" + filename + ".ipa\""

    slack(
      message: "Testbuild-" + version + "-" + bundle_version + " is now available at XYZ",
      channel: "#alerts",
      success:  true
    )

  end
end

(Sadly I did not find a way to upload to a SFTP server without writing a shell script, but that wasn't a big deal either.)

In addition to the two or three small features I’m using fastlane provides a whole bunch more. Automatic generation of screenshots, uploading them, submitting to the App store, Certificate management, etc. I hope I get to use more of them in the future.

Musikupdate (1)

Werde ich jetzt regelmäßig über Musik posten, die ich in der letzten Zeit gehört habe? Man weiß es nicht. Anfangen kann man ja mal! Hier schonmal die passende Spotify-Playlist:


Anfang Oktober kam, für mich völlig unerwartet, ein neues Album von Samsas Traum raus. Ich bin zwar am 14.11. auf dem Konzert in Hamburg, hatte aber gar nicht auf dem Schirm, dass es dafür auch ein neues Album gibt.

“Poesie: Friedrichs Geschichte” behandelt die Zeit von 1933 — 1945 und ist textlich daher nicht unbedingt das, was ich mir zur Entspannung anhören will. Davon abgesehen, sind die Songs aber eigentlich ganz gut. Eine schwierige Platte, schade.

***

Im krassen Gegensatz dazu hörte ich letzte Woche viel von Joris, den ich über die Discover Weekly von Spotify entdeckte. Das ist einfach nur sanfte und eingängige Popmusik.


Durch einen Tweet vom @HerrBertling wurde auf Caspian aufmerksam. Die machen so… atmosphärische Instrumentalmusik. Ich hörte das glaub ich am Donnerstag den ganzen Tag beim Arbeiten und es war sehr gut.


Damit ihr total von meinem Musikgeschmack verwirrt seid, erwähne ich jetzt noch, dass am Freitag das MTV Unplugged von Revolverheld rauskam.

Ich mag die Stimme von dem Sänger, hörte mir dem Kram bisher einmal an und fand es “gut”, entdeckte jetzt aber noch noch kein Highlight.


Letzte Woche waren wir ja beim Westernhagen-Konzert in der ehemaligen o2 World in Hamburg. Am Tag danach suchte ich ein bisschen bei Youtube und fand eine Reihe von Videos mit Westernhagen und Sido. Eine komische Kombination, kann man sicher aber mal kurz anschauen.

Language Identifiers in iOS 9

Yay. In iOS 9 you may have noticed some language related issues. All my Instagram push notifications are in German instead of English, for example. After a similar problem appeared in an app we developed, I did some googling and found this technical note, which states:

With iOS 9, the results returned by NSLocale.preferredLanguages() can differ from previous releases.

TL;DR: NSLocale.preferredLanguages() now returns en-US instead of en. Update your code if you check for isEqualToString:@"en".