Wer eine PHP-Anwendung entwickelt, die Mails versendet, möchte natürlich, dass diese Mails auf dem Entwicklungsrechner oder der Vagrant-Box nicht wirklich den Empfänger erreichen. Aber dennoch sollen sie irgendwo ankommen, damit Versand und Inhalt geprüft werden können.
Symfony schlägt vor, den E-Mail-Versand in der Test- und ggf. in der Development-Umgebung ganz zu deaktivieren, oder alternativ eine spezielle E-Mail-Adresse für solche Fälle einzurichten.
Ich wollte für eine Legacy-Anwendung, die Mails mittels der PHP-Funktion mail() versendet, aber lieber einen lokalen Mailcatcher verwenden, der die Mails in der Entwicklungsumgebung abfängt.
Es gibt da was für Ruby, aber nachdem die Installation immer noch nicht abgeschlossen war, als ich mit dem Kaffee aus der Küche zurückkam, habe ich das verworfen und mich nach einer Alternative umgesehen. Und gefunden:
Was man so tut, wenn man in Dezembernächten nicht schlafen kann (oder will).
Advent of Code
Advent of Code ist eine Serie von amüsanten Programmier-Aufgaben, die allerdings teilweise gar nicht ohne sind. Vom 1. bis zum 25. Dezember wurden täglich jeweils zwei Rätsel veröffentlicht, für jede richtige Lösung gab es virtuellen Baumschmuck und einen Platz in der Highscoreliste. Die Programmiersprache und der Weg zum Ergebnis waren dabei egal.
Nachdem ich auf meinem Entwicklungsrechner seit kurzem PHP 7 installiert habe, wollte ich einige (meiner) Projekte mit Hilfe des Code-Analyzers Phan, von dem vor dem Release der neuen PHP-Version schon einiges zu lesen war, auf Fehler untersuchen. Phan muss zwar unter PHP 7 ausgeführt werden, kann aber auch ältere Projekte, die beispielsweise für PHP 5.x entwickelt wurden, inspizieren.
Installation
Bevor es an die Installation von Phan geht, sind einige Voraussetzungen zu erfüllen: Insbesondere wird natürlich PHP 7 benötigt, zusätzlich aber auch die Extension php-ast, die den abstract syntax tree aufzeigen kann. Der Abstrakte Syntaxbaum (AST) ist neu in PHP 7 und stellt sozusagen einen Zwischenschritt dar, bei dem der PHP-Code in besser optimierbare Ausdrücke umgewandelt wird. Wie das bei HHVM im Detail aussieht, hat Sara Golemon ausführlich beschrieben. Zum Einlesen in die PHP-Implementierung ist der zugehörige RFC ein guter Einstiegspunkt.
Seit wenigen Minuten befindet sich Let's Encrypt in der öffentlichen Beta-Phase. Das bedeutet, dass nun keine Einladung mehr benötigt wird, um sich dort ein kostenloses Zertifikat ausstellen zu lassen.
Installation von Let's Encrypt
Wer auf seinem Server nicht die Möglichkeit hat, Let's Encrypt zu installieren, oder dies aus Gründen nicht tun möchte, kann sich das Tool auch einfach lokal installieren. Ich habe die Installation bei mir lokal unter Ubuntu 15.10 (Wily Werewolf) durchgeführt.
Let's Encrypt muss zunächst aus dem GitHub-Repository geklont werden und bringt ein Installations-Skript mit, welches das Tool in einer virtuellen Umgebung (virtualenv) installiert. Dadurch werden Abhängigkeiten zum Betriebssystem vermindert. Für die Installation werden root-Rechte benötigt.
$ git clone https://github.com/letsencrypt/letsencrypt $ cd letsencrypt $ ./letsencrypt-auto
Auf meinem System mussten zunächst noch die fehlenden Pakete augeas-lenses libaugeas0 python-chardet-whl python-colorama-whl python-html5lib-whl python-pip-whl python-requests-whl
python-setuptools-whl python-virtualenv python3-virtualenv virtualenv nachinstalliert werden, das kann bei euch natürlich ganz anders aussehen. Danach wird die virtuelle Umgebung erzeugt und letsencrypt installiert.
Über das Barcamp schreiben, solange die Eindrücke noch frisch sind, oder erst mal sacken lassen? Lieber gleich!
Das Barcamp Rhein-Main am vorletzen Wochenende im November jeden Jahres ist zu einer liebgewonnen Veranstaltung geworden. Diesmal fand es in Bingen, im Stadtgebäude der FH, statt, einer schönen Location mit toller Aussicht über Rhein und Rheingau. Für ein Barcamp perfekt geeignet mit der großen "Get-Together-Plattform" im vierten Stock und den Sessionräumen eine Etage tiefer.
Leider war das WLAN-Setup - wie offenbar an deutschen Hochschulen üblich - nicht wirklich straightforward (Anleitung als PDF; wer möchte, darf gern mal nach "PEAP" und "MSCHAPv2" suchen). Ein großzügiger mobiler Datentarif hilft darüber hinweg