Mond und Venus

Am Abend des 3. Dezember 2016 standen Mond und Venus relativ dicht übereinander am Südwesthimmel. Etwas weiter östlich ließ sich später auch noch Mars blicken – allerdings nicht auf diesem Foto ;-)

2016-12-03

Akkutausch am iPhone 6

Nach zwei Jahren und rund 650 Ladezyklen ließ mich der Akku meines iPhone 6 in letzter Zeit immer öfter im Stich. Das Telefon verlangte zuletzt bereits um die Mittagszeit das Ladekabel. Nicht selten musste der Akku am Abend ein weiteres Mal aufgeladen werden, damit ich für die Zeit bis zur Nachtruhe ein funktionierendes Telefon zur Verfügung hatte.

Ich habe mir dann bei iFixIt kurz die Anleitung zum Aus- und Einbau der iPhone-Batterien angeschaut und als für mich machbar eingestuft. Praktisch: eine neue Batterie kann man direkt im Online-Shop von iFixIt kaufen. Da ich vor einer Weile beim Wechsel der Batterie meines iPhone 5 bereits gute Erfahrungen mit dem iFixIt-Store gemacht hatte, bestellte ich auch den Akku für das iPhone 6 dort. Keine 24 Stunden später kam das Paket und ich konnte loslegen.

Der Akku ist im iPhone 6 verklebt, was den Wechsel etwas fummeliger macht, als noch beim iPhone 5. Mit Geduld (!) bekommt man die Klebestreifen aber sauber herausgezogen – ohne dass sie reißen. Der Griff zum Fön blieb mir daher zum Glück erspart.

Akku iPhone 6
Der neue Akku wird zum ersten Mal geladen

Ein paar Minuten später war dann auch der neue Akku eingebaut und das Telefon wieder zusammengesetzt – die bebilderten Anleitungen von iFixIt sind hier echt Gold wert!

Fazit: Wer in der Lage ist, einen kleinen Schraubendreher ruhig zu halten und richtig herum zu drehen, kann beim Akku-Tausch eine Menge Geld sparen.

Apple oder offizielle Service-Partner rufen 100 Euro für den Batterie-Wechsel auf, der Akku bei iFixIt kostet dagegen nur 35 Euro bzw. 40 Euro wenn man das Set inklusive der passenden Werkzeuge bestellt. Es bleiben 60 Euro oder sogar 65 Euro übrig, die man für andere Dinge ausgeben kann.

Update 2016-09-28: Nach anderthalb Wochen kann ich sagen, dass sich der Tausch gelohnt hat. Das Telefon muss jetzt im Laufe des Tages nicht mehr nachgeladen werden, sondern hat genug Akkuladung um problemlos über den ganzen Tag zu kommen. Mittags zeigt der Ladebalken oft noch um die 70 % an und erst spätabends kommt dann hin und wieder die Warnung, dass der Akku unter 20 % geladen ist.

Workaround für PHP Bug #43225

In PHP gibt es einen Bug, der dazu führt, dass die Funktion fputcsv unter Umständen fehlerhaftes CSV generiert, welches dann von Programmen nicht mehr eingelesen werden kann.

Der Fehler tritt auf, wenn in einem Feldwert ein Backslash \ vorkommt, der direkt von einem doppelten Anführungszeichen " („double quote“) gefolgt wird. Ein Beispiel:

$data = [
    'CMXINV',
    '-1001338',
    'Some string data here: "quoted text // highlight string \\\\" and "foo" bar',
    'baz'
];

Hier folgt auf die zwei Backslashes[1] direkt ein doppeltes Anführungszeichen.

Erzeugt man aus dem $data-Array mit fputcsv eine CSV-Zeile, erwartet man folgende Ausgabe:

CMXINV;-1001338;"Some string data here: ""quoted text // highlight string \\"" and ""foo"" bar";baz

Tatsächlich erhält man aber:

CMXINV;-1001338;"Some string data here: ""quoted text // highlight string \\" and ""foo"" bar";baz

Bei genauem Hinschauen erkennt man, dass hinter den beiden Backslashes nur ein doppeltes Anführungszeichen steht, obwohl es zwei sein sollten[2].

Dieses Verhalten ist als PHP Bug 43225 bereits 2007 dokumentiert worden und wurde bis heute nicht korrigiert.

Ich setze fputcsv in meiner Open Source Library für Collmex ein. Jegliche Kommunikation mit der Collmex-API geschieht über das Senden und Empfangen von Nachrichten im CSV-Format. Bei einem Projekt trat nun der Fall auf, dass in einem Feld tatsächlich Backslashes vor doppelten Anführungszeichen standen und Collmex den erzeugten fehlerhaften Datensatz nicht lesen konnte. Ich habe jetzt einen Workaround in der Collmex-Library eingebaut, mit der dieser spezielle Fehler nicht mehr auftritt.

Der Workaround macht nichts anderes als vor dem Aufruf von fputcsv temporär einen String zwischen Backslash und doppeltem Anführungszeichen einzufügen und ihn nach dem Erzeugen der CSV-Daten wieder zu entfernen. Die Details lassen sich in der betreffenden Quelldatei bei Github ansehen.


[1] Es sind hier vier Backslashes zu sehen, weil das Backslash-Zeichen zum „escapen“ benutzt wird und selbst auch escaped werden muss – durch einen weiteren Backslash.
[2] Ähnlich wie bei [1] muss ein doppeltes Anführungszeichen durch ein weiteres doppeltes Anführungszeichen „escaped“ werden, wenn die Feldwerte durch ein doppeltes Anführungszeichen eingeschlossen werden.

Sólheimajökull

Auf Island kann man ziemlich viele beeindruckende Dinge bewundern, eines davon sind die riesigen Gletscher.

Eis, Wasser, Gestein und Vulkanasche erzeugen bei der Betrachtung der Gletscherzunge Sólheimajökull aus der Nähe ein tolles Farbspiel.

Gletscherzunge Sólheimajökull
Gletscherzunge Sólheimajökull; Karte

UCI-Streifen nur mit CSS bauen

Dank des großartigen CSS-Gradient-Editors von ColorZilla war es ein Leichtes, die UCI-Streifen für einen Element-Hintergrund auf einer Website nur mit CSS zu bauen:

.uci-stripes {

background: -moz-linear-gradient(top, #1e76bd 0%, #1e76bd 20%, #c7203c 20%, #c7203c 40%, #000000 40%, #000000 60%, #f8df00 60%, #f8df00 80%, #35b24a 80%, #35b24a 100%); /* FF3.6-15 */

background: -webkit-linear-gradient(top, #1e76bd 0%,#1e76bd 20%,#c7203c 20%,#c7203c 40%,#000000 40%,#000000 60%,#f8df00 60%,#f8df00 80%,#35b24a 80%,#35b24a 100%); /* Chrome10-25,Safari5.1-6 */

background: linear-gradient(to bottom, #1e76bd 0%,#1e76bd 20%,#c7203c 20%,#c7203c 40%,#000000 40%,#000000 60%,#f8df00 60%,#f8df00 80%,#35b24a 80%,#35b24a 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */

}

(Direktlink zum Editor)

UCI-Streifen

Mit dem Rennrad von Berlin nach Rostock

Die Idee entstand bereits vor einiger Zeit, die Umsetzung ließ aber auf sich warten. Letzte Woche ergab sich dann die Möglichkeit, das Projekt „Berlin – Rostock mit dem Rennrad“ in Angriff zu nehmen. Alle Randbedingungen für eine Durchführung waren am 24. Juni 2016 erfüllt – also zögerte ich nicht lange und setzte mich auf’s Rad. Dieser Freitag sollte der bisher heißeste des Jahres werden, es waren Temperaturen bis 34 bis 35 Grad Celsius angesagt. Ich zog zwei Konsequenzen aus der Wettervorhersage:

  1. zeitig losfahren (6 Uhr)
  2. viel Wasser mitnehmen (zwei Trinkflaschen á 650 ml und ein Camelbak mit 1,5 Liter)

Die Route führte von Berlin-Köpenick über Mahlsdorf aus der Stadt heraus mit Bernau als ersten größeren Ort. Weiter ging es über Wandlitz und Liebenwalde nach Zehdenick, wo ich zum ersten Mal das Wasser nachfüllte. Westlich der Havel ging es über Mildenberg nach Dannenwalde, Bredereiche, Himmelpfort bis nach Fürstenberg (Havel). Direkt hinter Altthymen konnte ich die Landesgrenze nach Mecklenburg-Vorpommern hinter mir lassen und über Wokuhl und Fürstensee nach Neustrelitz fahren. Auf dem Kilometerzähler las ich hier eine 140 ab und die Temperatur hatte soeben die Marke von 30 Grad Celsius überschritten. Zeit, die Wasservorräte erneut aufzufüllen. Kurz hinter Neustrelitz bog ich dann von den gut ausgebauten Land- und Kreisstraßen sowie straßenbegleitenden Radwegen auf mecklenburgische Ortsverbindungs- und Nebenstraßen ab. Diese Wahl sollte sich rückblickend als nicht optimal herausstellen, da diese Wege schlicht zu viel Kraft und Zeit kosteten – das werde ich zukünftig anders handhaben.

In Malchin gab es das nächste Mal Wasser, außerdem gönnte ich mir hier zwei große Stücken Torte um ein paar Kohlenhydrate nachzufüllen. Auf Nebenstraßen ging es weiter nach Tessin, auch hier kam von Betonplattenwegen über Pavé und schlechtem Asphalt alles unter die Räder was man sich als Rennradfahrer eigentlich nicht wünscht. In Tessin füllte ich ein letztes Mal die Wasservorräte, bevor ich das letzte Teilstück nach Rostock in Angriff nahm. Hier baute ich noch einen kleinen Bogen ein, um eine Gesamtstrecke über der Marke von 300 Kilometer zu erreichen. Das hat dann auch gut geklappt, die letzten 20 Kilometer liefen sogar noch mal richtig schnell, da sich der Wind freundlich stellte und mir etwas beim Treten mithalf.

Am Ziel standen dann 303 Kilometer und gut 1.300 Höhenmeter sowie die Zufuhr von 13,5 Liter Wasser im Logbuch, außerdem ein kapitaler Sonnenbrand an Kopf, Nacken und Waden. Eine Wiederholung mit modifizierter Strecke ist bereits in Planung.

Die geplante Route gibt’s bei BRouter: Rennrad: Berlin – Rostock.

2016-09-13-at-08-47