Skip to content

MailHog, eine Mailcatcher-Alternative in Go

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:

"MailHog, eine Mailcatcher-Alternative in Go" vollständig lesen

Jahresendbeschäftigungen mit PHP

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.

Ich habe nur die ersten sechs Tage geschafft, aber das ist nicht weiter schlimm. Meine Lösungen stehen auf GitHub, interessant sind aber natürlich auch die Lösungswege anderer PHP-Entwickler - und erst recht die in anderen Sprachen, wie ich finde.

"Jahresendbeschäftigungen mit PHP" vollständig lesen

Codeanalyse unter PHP 7 mit Phan

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.

"Codeanalyse unter PHP 7 mit Phan" vollständig lesen

Let's Encrypt-Zertifikate manuell erzeugen

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.

"Let's Encrypt-Zertifikate manuell erzeugen" vollständig lesen

Barcamp Rhein-Main 2015

Ü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 ;-)

Das Orga-Team ist mittlerweile so eingespielt, dass der Ablauf des Barcamps reibungslos funktionierte. Das gilt für alles, auch für die Einführung eines neuen Tools für die Sessionplanung. Daher hier wiederholt ein großes Lob an den Verein zur Förderung der Netzkultur im Rhein-Main-Gebiet e. V.!

"Barcamp Rhein-Main 2015" vollständig lesen