Tag 200/2016: Rumgedockert

Docker auf dem Mac ist erfreulich stabil. Heute hab ich das erste Mal einen Crash in einem Docker-Compose-Setup mit Webservern und einer Datenbank provozieren können, allerdings nicht wiederholbar.

Datenbank-Datenverzeichnis und Docroots liegen in lokalen Volumes, die wiederum mit GIT verwaltet werden. Ein nicht behebbares Rechteproblem konnte dadurch „gelöst“ werden, dass das Datenverzeichnis gelöscht wurde, ein docker-build es wieder erzeugt hat und danach – bei gestoppten Containern – ein git checkout den letzten Zustand wiederhergestellt hat.

Mittlerweile pendelt es sich ein, dass ich in den docker-compose.yml-Files nicht auf Standard-Images verweise, sondern deren GIT-Pendant via „build“-Direktive leicht verändere, z.B. für spezielle PHP-Extensions, angepasste Konfigurationsdateien oder sonstige Limits.

Tag 199/2016: Verschwendung

Im Buch „LEAN THINKING“ von James P. Womack und Daniel T. Jones wird ziemlich am Anfang der Value stream am Beispiel eines Kartons mit Aluminiumdosen betrachtet, deren Inhalt irgendeine typische Britzelbrause ist. Der Aufwand, bis das gefärbte Zuckerwasser im Supermarkt in Dosenform ankommt, ist gigantisch.

Nachdem wir heute zufälligerweise das Thema Pokémon näher erörtern konnten, musste ich daran denken, wie unkompliziert, haptisch und gesellig ein einfaches Kartenspiel sein kann (auch wenn es sich um etwas so Komplexes, Herausforderndes und Nervenaufreibendes wie Watten handelt).

Im Gegensatz zu den notwendigen tausenden von Servern, Millionen von Smartphones (verbaut mit seltenen Erden) und daraus resultierendem Stromverbrauch, für die aktuellen Games.

Tag 197/2016: Links zu Differential Privacy

Ergänzung zu Tag 165: Auf der Apple Worldwide Developers Conference hat Apple das Konzept der Differential Privacy erwähnt. Es gilt als mögliche Antwort auf die Frage, wie sich die Auswertung von Nutzerdaten und -aktionen einerseits mit algorithmisch bereitgestellten Serviceangeboten andererseits unter Wahrung des Datenschutzes vereinen lässt.

Kryptographie- und Computersicherheitsexperte Bruce Schneier hat in seinem lesenswerten Newsletter CRYPTO-GRAM einige Links zu dem Thema gesammelt, die ich hier auch den geneigten Leser/innen auflisten will:

Artikel:
https://www.wired.com/2016/06/apples-differential-privacy-collecting-data/

http://www.technobuffalo.com/2016/06/15/apple-differential-privacy-privacy-security-data/

Kommentierung:
http://blog.cryptographyengineering.com/2016/06/what-is-differential-privacy.html
http://emergentchaos.com/archives/2016/06/the-evolution-of-apples-differential-privacy.html
http://www.tomsguide.com/us/apple-ios-10-security,news-22817.html

Slide-Deck vom WWDC:
http://devstreaming.apple.com/videos/wwdc/2016/709tvxadw201avg5v7n/709/709_engineering_privacy_for_your_users.pdf

Latanya Sweeney (Professor of Government and Technology), die in ihren Arbeiten Schwachstellen in Anonymisierungstechniken beschreibt:
http://dataprivacylab.org/people/sweeney/

Tag 196/2016: Pokémon

Sagt Wikipedia:

Pokémon (jap.: ポケモン [‚pokemoɴ], kurz für ポケットモンスター Poketto Monsutā, engl.: Pocket Monsters, dt.:Taschenmonster), auch PoKéMoN oder POKéMON geschrieben, sind Fantasiewesen in der gleichnamigen Serie von Videospielen. Die Spiele wurden ursprünglich von Satoshi Tajiri und der japanischen Spielesoftwarefirma GAME FREAK Inc. entwickelt und stellen eines der wichtigsten Franchises des Publishers Nintendo dar.

Ich kann ja die ganzen Abschnitte ab „Spielinhalt“ nicht lesen, ohne in nervöses Kichern abzugleiten, aber Hut ab, da haben sie einen netten Hype in die Welt gesetzt.

Heute bin ich am Busbahnhof der Universität Regensburg eine Armlänge neben einem freundlichen Smombie gesessen, der gerade in die Pokémon-App vertieft war. Ich glaube, er war noch in der Lernphase, nach Zucht, Kampf oder Fütterung hat’s nicht ausgesehen.

Oh komme, Erweiterte Realität! Aber bitte, irgendwie, cooler…

 

Tag 195/2016: nginx response filter

Wer nginx als Proxy verwendet, konfiguriert im Regelfall die Header, die an den Upstream weitergegeben werden, z.B. den Host-Header oder die IP-Adresse des eigentlichen Clients (und nicht von nginx selbst) als X-Real-IP oder X-Forwarded-For. Darüber hinaus ist es oft notwendig, Redirects des Upstream zu erkennen und auf einen anderen Host oder Port umzuschreiben, gleiches gilt für Cookies.

In seltenen Fällen muss man aber noch weiter gehen und nicht nur die Header, sondern den Response umschreiben, z.B. bestimmte im HTML enthaltene Strings (Formular-Ziele, Script- oder CSS-Links).

Dafür gibt es das ngx_http_sub_module:

location / {
    sub_filter '<a href="http://127.0.0.1:8080/'  '<a href="https://$host/';
    sub_filter '<img src="http://127.0.0.1:8080/' '<img src="https://$host/';
    sub_filter_once on;
}

Tag 194/2016: Viech

Vor vielen Jahren, beim Programmieren eines CMS (such dir was aus) für einen bekannten deutschen Großkonzern, hämmerte ich zu Testzwecken Demo-Content in das System: Titel, Anreißer, Text. Ein paar Mal.

Weil es genug andere Baustellen gab, war ich nicht besonders kreativ, aber immerhin kam es nicht zu „Test 1“, „Test 2“, „Test 3“. Stattdessen war der erste Titel „Viech”, auf den folgte „More Viech” und schließlich „Endless Viech”. Dazu Autobilder aus dem Netz.

Zum Naturgesetz des Demo-Contents gehört, dass er nicht gelöscht wird. Am Tag der wichtigen Präsentation des Projektstandes vor den Geschäftsführern der Geschäftsbereiche, den Projektleitern und dem Auftraggeber präsentierte sich also ein etwas verstörender Sinnzusammenhang.

Die Konkrete Poesie verwendet die phonetischen, visuellen und akustischen Dimensionen der Sprache als literarisches Mittel.

(Kleiner Scherz)

Viech! Dachte ich mir auch öfter beim Lesen des Buches „Hysterie des Körpers”. JK beschreibt dort, wie er von Wilhelmshaven zur Zugspitze marschiert, ähnlich wie seinerzeit RN mit seinem Deutschlandmarsch. Zu den selbstauferlegten Regeln von JK gehört, sich nur von dem zu ernähren, was die Natur bietet; jedenfalls nicht um Nahrung zu betteln oder sich mal schnell an einer Raststätte etwas zu kaufen. Zum Zeitpunkt seines Marsches resultiert das in unreifen harten Äpfeln oder Maiskolben, Nüssen, Schnecken, vom Auto überfahrenen Hasen oder altem Pizzarand. Stern-TV (noch mit Günther Johannes Jauch) machte dazu eine mehrteilige Reportage.

Das Buch ist kurz und knapp, schnell gelesen, kurzweilig. Eingeflochten Kapitel mit Hintergrundgeschichten zur Kelly-Family, wie JK zum Laufen kam (eine Wette), welchen Herausforderungen er bzw. die ganze Familie sich täglich stellen musste.

More Viech! In weiteren Kapiteln folgen Slapstick-artige Anekdoten zu seinen ersten Läufen, zu aberwitzigen Timings, z.B. den (letztlich erfolgreichen) Versuchen gleich nach oder am Tag eines Konzertes einen irrwitzigen Marathon zu bestehen. Faszinierend, zu was der menschliche Körper in der Lage sein kann!

Die Liste der sportlichen Leistungen schließlich: Endless Viech!

Tag 193/2016: Panzertape

Listen to the wise man with the lightning detector whenever he says »time to go home before „it“ starts« …

wurde mir gerade geslackt. Danke, Bro! Es gibt eben Wetterzeichen, für die muss man kein Schamane sein, um sie richtig zu deuten. Eher kachelmannwetter-Seiten-Klicker. Da muss man dann auch die protestantische Arbeitsethik gerade sein lassen und sich eine halbe Stunde früher aufs Rad schwingen.

Und damit Zeit genug, bevor sich die Schleusen öffneten, die zerrissene Abdeckhaube des Grills mit Panzertape zu reparieren. Damit lässt sich nämlich alles reparieren. Und weil mich am Wochenende erst eine Freundin gefragt hat, warum das Tape eigentlich Panzer heißt, ein guter Anlass, nachzusehen. Erläuterung Nr. 2 klingt so, als hätte das mal jemand ausprobiert:

Eine andere Erklärung des Namensursprungs: Dreht man eine entsprechende Länge zusammen, kann man mit diesem „Seil“ einen kleinen Panzer abschleppen. Das rührt daher, dass das Band zwar abgerollt einfach von Hand abreißbar, aber im zusammengezwirbelten Zustand sehr reißfest ist.

Sagt Wikipedia. Hört sich plausibel an.

Tag 192/2016: Fahren ohne Navi

Meine Bekannte insistierte: „Es ist ganz einfach: Links in den Ort reinfahren, dann rechts, dann links, dann rechts, dann links, dann rechts.“

Ok. Angespornt und herausgefordert zugleich von dieser Wegbeschreibung mache ich mich auf den Weg – ohne Navigationsgerät. Zu einer Uhrzeit (der letzte Drücker), die kein Scheitern zulässt.

Der Ort ist laut Wikipedia eine Stadtrandgemeinde und stellt sich vor allem als Wohngemeinde dar. Beides kann ich bestätigen. Dazu gewaltige Steigungen, die man mit dem Fahrrad nur zurücklegen will, wenn man eine Wette verloren hat oder gerne den maximalen Laktat-Steady-State überschreitet; weder das eine noch das andere trifft heute zu, ich sehe nur Autos und Motorräder.

Jedenfalls: Pünktlich auf die Minute, kein „Die Route wird neu berechnet“, „kein GPS-Signal“ oder „jetzt wenden“.

Alles Smooth Jazz.

Tag 191/2016: What to eat while listening to podcasts about Ketones

UPDATE 2017: The meat times are over. I was wrong.

There are way too many great podcasts out there than time available to listen to them. So in order to accomplish something you have to do things in parallel, like listening and eating.

Tim Ferriss, among many other things, constantly produces worthwhile podcasts, like this one: Dom D’Agostino on Fasting, Ketosis, and the End of Cancer. There’s a follow-up podcast with Dom D’Agostino available on iTunes now.

Says Tim about the latest episode: „If you have an interest in these types of metabolic therapies, whether for performance enhancement, endurance, weight loss, or fighting cancer, diabetes, or any number of other maladies, you will find a gem within this episode.

It goes without saying that in order to pay tribute to the podcasts and keep the gods in a good temper you won’t cram piles of carbs into your digestive system.

I suggest a quick and simple salmon-oil-butter-rosemary-garlic-seasalt-lemon setup that takes only about 20 minutes to be prepared.