Tag 172/2016: Indianerspiele und der Mittelsmann

Viele Blogs und Content-Management-Systeme sind ziemlich mit dem Apache-Webserver verheiratet, insbesondere machen sie reichlich Gebrauch von den verfügbaren Apache-Modulen (rewrite, setenvif, expires, auth_basic, deflate, unique_id uvm).

Eingebürgert hat sich, dass die Einstellungen in dezentrale Konfigurationsdateien geschrieben werden, bei Apache in der Voreinstellung als .htaccess definiert (veränderbar mit der AccessFileName-Direktive). Manche Plugins passen die .htaccess-Dateien sogar sehr häufig an, beispielsweise um IP-Adressen zu blockieren oder durchzulassen.

Der Aufbau der .htaccess-Datei ist dabei leicht verständlich, da von oben nach unten zu lesen. Eine kurze if-Abfrage ob das entsprechende Modul vorhanden ist, danach die spezifischen Anweisungen. Hin und wieder gibt es vielleicht Konfigurationsfehler mit unschönen HTTP-Statuscode-500 „Internal Server Error“ Meldungen, weil die AllowOverride-Direktive in der Hauptkonfigurationsdatei eine spezifische Einstellung nicht erlaubt – aber im großen und ganzen hat sich das Schema bewährt (wenn auch nicht unbedingt unter dem Gesichtspunkt der Performance).

Seit einiger Zeit wird nun der Webserver nginx immer beliebter und dieser kennt keine dezentralen zur Laufzeit gelesenen Konfigurationsdateien. Vor allem die CMS‘, die stark auf mod_rewrite setzen und eine Menge Umleitungsregeln definiert haben, können oft nicht so schnell migriert werden.

Für PHP-Anwendungen mit großer mod_rewrite-etc.-Abhängigkeit, die aber trotzdem gut performen sollen, habe ich ein Setup mit nginx + Microcaching + Request-Limits, Apache mit mod_event (statt prefork) + mod_proxy/fcgi + PHP-FPM ausprobiert. Da gibt es zahlreiche Stellschrauben für die Performance; Hauptvorteil ist, dass die Ressourcen explizit definiert sind und eigentlich kaum der Fall eintritt, dass die Maschine 100% Last erreicht. Allerdings bin ich zu Beginn gleich in eine Situation geraten, in der ein CMS nicht mit PHP 7 lauffähig war, die ältere (distributionseigene) PHP-Version aber noch nicht den fastcgi-Patch hatte, der die besondere Art der sprechenden Pfade des CMS erlaubt hätte. So ist das Leben.

Trotzdem: Der Mittelsmann, hier Apache mit mod_event, soll auch noch weg. Eher früher als später. Glücklicherweise beginnen mehr und mehr Projekte, Profile für nginx zu entwickeln. Manche Anweisungen in liebgewonnenen oder unbedingt notwendigen Plugins lassen sich mit geübtem Auge auch selbst umschreiben. Dass nicht mehr die Reihenfolge, sondern die Spezifität der Anweisung entscheidend für die Ausführung ist, kann durchaus in unüberschaubare Situationen führen. Gute Kommentare oder auch Tests können da Abhilfe schaffen.

Ich baue gerade ein kleines Ansible-Playbook, in dem Apache nicht mehr vorkommt und nginx via fastcgi direkt mit PHP-FPM kommuniziert. Neben der Performance auch ein Gewinn an Übersichtlichkeit und einem Prozess weniger, dessen Ressourcen man messen, schätzen und anpassen muss.

Tag 171/2016: Das Leben ist schön

Sagt Wikipedia:

Beim Wurstlotten oder Eierlotten in Teilen des Bergischen Landes werden zur Grünkohlsaison Mettwürstchen und in der Zeit vor Ostern Eier nach den Bingoregeln verlost.

Steht im Artikel über Bingo. Ein bisschen gegoogelt, ob das wirklich stimmt. Zumindest gibt es eine Ronsdorfer Wochenschau, dort steht z.B. in der Novemberchronik 2012 „Wurstlotten auf dem Heidt“.

Aber: Stand 19. Juni 2016 führt die Suche nach „Wurstlotten“ oder „Eierlotten“ auf YouTube noch zu keinem Ergebnis.

Das macht nachdenklich.

Tag 170/2016: Wolbergs und Schlegl

Soll niemand sagen, das viele Geld, das von SPD und CSU im Wahlkampf 2014 in die heimische, österreichische, darmstädtische und sonstige Wirtschaft investiert wurde, hätte keinen bleibenden Wert!

Der formschöne, Millionen Menschen bekannte und gut in der Hand liegende Senator-Kugelschreiber ist mit motivierenden Sprüchen bedruckt wie „Wolbergs macht’s!“ und „er kniet sich rein!“.

Auch der blau-grün gestaltete nützliche Schreibblock wartet mit Hinweisen wie „Christian Schlegl, DER KANN’S“ auf.

Beide Produkte zeichnen sich durch lange Haltbarkeit aus und können im Alltag vielseitig verwendet werden; immerhin war die Oberbürgermeister- und Stadtradswahl ja schon vor über 2 Jahren.

Trotzdem, ein Vorschlag zur Kostenminimierung:

Wenn jetzt die Wahlkampfspender transparent gemacht werden sollen, gäbe es bestimmt noch ein paar Kugelschreiber und Schreibblöcke, auf die man die Namen schreiben könnte.

Tag 169/2016: Realtime non-violent communication API (RNVCA)

Das wäre mal was: Eine Programmierschnittstelle, der man eine Formulierung schickt und eine andere zurückbekommt. Diese andere Formulierung wurde in gewaltfreie Sprache umformuliert.

Sagt Wikipedia:

Gewaltfreie Kommunikation soll Menschen ermöglichen, so miteinander umzugehen, dass der Kommunikationsfluss zu mehr Vertrauen und Freude am Leben führt. GFK kann in diesem Sinne sowohl bei der Kommunikation im Alltag als auch bei der friedlichen Konfliktlösung im persönlichen, beruflichen oder politischen Bereich hilfreich sein.

Ziel ist „die Entwicklung einer wertschätzenden Beziehung

Gerade jetzt, wo Chats und Messaging-Systeme allgegenwärtig werden, während alle mehr und mehr Druck und Stress fühlen, sollte jede Äußerung generalsaniert werden. Egal wie man sich „anschreit“, es kommt immer nur ein freundlicher – aber zielführender – Dialog dabei raus. Keine Kritik, die sofort zur Abwehrhaltung führt. Kein Satz, der keine Alternative zulässt. Natürlich auch keine Aggro-Emoji.

Weil manche Formulierungen eigentlich Vorab-Fragen und mehr Kontext-Information benötigen, werden diese schon vor dem Absenden an den Sender gestellt. Diese „Bremse“ führt zu einem vermehrten Lerneffekt. Je weniger Umformulierungen die API vornehmen muss, desto mehr Punkte gibt es.

Ab einer gewissen Punkteanzahl wird man für ein neues Level freigeschaltet: Das Telefonier-Level. War vorher gesperrt, jetzt darf man sich Voice-to-Voice unterhalten. Aber nur mit den Leuten, die auch schon „auf diesem Level“ sind. „Der Gesprächsteilnehmer X steht leider für ein Sprachgespräch noch nicht zur Verfügung. Bitte unterstützen Sie ihn auf diesem Weg im betreuten Chat-Bereich“.

Oh ja, das ist ausbaufähig.

Tag 168/2016: Einfach mal quatschen jetzt

Aktuell und die kommenden Tage bieten sich wieder gute Gelegenheiten, Freunde und Bekannte anzurufen um, O-Ton, „einfach mal wieder ein bisschen zu quatschen“.

Wichtig ist der Zeitpunkt, kurz nach dem Anpfiff. Am Besten beginnt man das Gespräch direkt mit „Du, heute beim Radfahren, da musste ich richtig schwitzen“. Oder: „Wusstest du, dass man geschälte Äpfel mit Zitronenwasser beträufeln sollte?“.

So schnell kann telefonieren gehen. „Ach, jetzt ist es schlecht? Kein Problem, ich ruf später an.“

(Während der Fußball-WM.)

Tag 167/2016: Viel Flugverkehr, viel Regen, viel Lärm um nichts

Viel Flugverkehr. Mindestens 12 Transportflugzeuge sind heute über Regensburg hinweggeflogen. Erst 6, dann 4, dann 2 – habe ich vom Büro aus gezählt. Relativ tief geflogen, auf dem Foto von der Handyknipse kommt das nicht rüber. Der Twitteraccount der Bundeswehr hat eine Anfrage von mir bekommen, vielleicht kommt ja eine Antwort. Warum auch nicht.

Viel Regen. War es danach oder davor? Ein Mega-Gewitter blitzte auch kurz vorbei. Fasziniert habe ich ein paar Fußgänger beobachtet, die der Natur trotzten und stoisch durch den Regenguss marschierten. Werd ich nicht schlau. Ein Freund von mir denkt in Richtung Phänomenologie.

Sagt Wikipedia:

Inwieweit der Phänotyp durch Umwelteinflüsse beeinflussbar ist, hängt von der Reaktionsnorm ab. Diese Möglichkeit auf Umwelteinflüsse zu reagieren, ist genetisch festgelegt.

Viel Lärm um nichts. Traurig mitanzusehen, wie ein paar Medien vom ersten Tag an aus einem Anfangsverdacht eine Affäre hochjazzen wollen. Zwar wissen sie alle noch nichts, weil die Abteilung Investigativer Journalismus vor 15 Jahren schon eingespart wurde, aber man kann ja schonmal rumvermuten im Stile von „Zwar gilt die Unschuldsvermutung, aber wenn…, dann…., wenn…, dann…„. Und weil es Monate dauert, bis tonnenweise Akten durchgearbeitet und Personen befragt werden, wird uns jetzt parallel zur Nachfolgedebatte des Bundespräsidenten auch noch hier monatelang atemlos in Live-Tickern von jeder Pressekonferenz berichtet werden…

 

Tag 166/2016: Web-App-Vulnerability Scanner

Verschiedene Open-Source-Tools um Schwachstellen in Web-Applikationen zu finden, teils voll-, teils halb-automatisiert; teils Kommandozeile, teils GUI; teils aktueller, teils älter.

Auch geeignet, um die Bandbreite an potentiellen Schwachstellen kennenzulernen und ein wachsameres Auge in eigenen Programmierprojekten zu haben.

 

Tag 165/2016: Entwicklerkonferenz WWDC 2016

Der Live-Event läuft gerade, Anfang leider verpasst. Bin dort eingestiegen, wo sich das größte Zeitverschwendungspotential für die Jugend offenbart: Chat & Messaging. Aber: Wohlwollend bemerkt, dass Apple versuchen will, die Privatsphäre im Bereich Messaging zu schützen. Einerseits sollen Algorithmen und Vernetzung einen Mehrwert bei der Kommunikation bieten (Empfehlungen, Apps von Dritten, Bezahlsysteme usw.), andererseits die Nachrichteninhalte selbst möglichst weitgehend verschlüsselt bleiben. Wie könnte das funktionieren? Der Ansatz ist einerseits Rückgriff auf Differential Privacy, andererseits rechenintensive client-seitige Berechnungen auf der Hardware („On-Device“), um nicht alle Daten an eine KI in der Cloud verfüttern zu müssen.

Sagt Wikipedia:

Um auf verschlüsselten Daten Operationen auszuführen, muss meist eine vollständige oder partielle Entschlüsselung vorgenommen werden, die mit entsprechenden Kosten verbunden ist. Außerdem verhindert der Einsatz von Verschlüsselung eine uneingeschränkte Veröffentlichung.

Daher sucht man nach Verfahren, mit denen man Informationen unter Wahrung der Privatsphäre veröffentlichen kann, ohne die Daten zu verschlüsseln.

Differential Privacy verfolgt hierbei den Ansatz, Daten mit Rauschen zu versehen, um eindeutige Aussagen über bestimmte Eigenschaften der Daten unmöglich zu machen.

Bin gespannt.

UPDATE: Siehe Links zum Thema Differential Privacy bei Tag 197.

Tag 164/2016: Morgen ist Wahl des Bundespräsidenten

…nicht. Sondern, wenn nichts dazwischenkommt, im Februar 2017. Wir haben also noch 18 Tage in diesem Monat, dann Juli, August, September, Oktober, November, Dezember, Januar, Februar.

Aber, weil Joachim Löw, äh, Freudscher Versprecher heute, unser Bundespräsident Joachim Gauck nicht bis Februar 2017 warten konnte, mit seiner Äußerung, aus Altersgründen nicht noch eine 2. Amtsperiode antreten zu wollen, passiert nun Folgendes:

Wir werden noch 18 Tage in diesem Monat, dann Juli, August, September, Oktober, November, Dezember, Januar, Februar Tag für Tag, im Internet, in Zeitungen, im Radio und im Fernsehen jedes noch so „spannende“ Detail an Info, Äußerung, Meinung, Forderung, Argumentation, strategischem Winkelzug von jedem Politiker aus der 1., 2., 3. und 4. Reihe zum Thema, garniert in Kommentaren, ignorieren müssen, bis es dann endlich soweit ist (z.B. Mehrheit der Bürgerinnen und Bürger für Steinmeier / Warum Claudia Roth es nicht wird / XY bringt Schäuble ins Gespräch / …). Und jetzt schon vereinzelt, spätestens aber 3 Monate vorher, wird dann noch die Dauerdiskussion Vom-Volk-wählen-oder-nicht dazukommen.

Langweilige Wette.

Tag 163/2016: Progressive Web Apps

Vor ein paar Tagen hat mir ein Kollege diesen Link geslackt: Why Britain banned mobile apps.

“If you believe in the open internet that will always win” (Ben Terrett, former head of design at the UK Government Digital Service)

Statt den Schwerpunkt auf Apps zu setzen, verbunden mit hohen Kosten, ständigem Aktualisierungsdruck und dem Problem der Reichweite, setzt man auf Web-Apps und Responsive-Design.

Deshalb bin ich auch auf die Talks der Cross-Platform-Conference XPC 2016 gespannt (Keynote Christin Heilmann), hatte heute aber nur Zeit für die Keynote.

Dort hat Christian einen aktuellen Post „State of the gap“ von Remy Sharp erwähnt, der äußerst lesenswert ist. Was kann man mittlerweile mit den Browsern umsetzen, ohne eine Technologie wie Phonegap nutzen zu müssen? Es hat sich einiges getan, von der Abfrage des Ladezustands der Batterie über Nutzung der Kamera, App-Manifesten und der nativen Installation der Web-App auf dem Homescreen.

Einen Einstieg in die Thematik gibt die Projektseite zu den Progressive Web Apps auf developers.google.com.