Doxygen Dokumentation für C# unter Mac OS X erzeugen

Ein Quelltext wird während der Entwicklung gewöhnlich kommentiert. Unter C# bzw. .NET gibt es dafür Kommentare nach einem bestimmen Schema. Über einer Methode könnte ein solcher Kommentar z.B. aussehen:

/// <summary>
/// Distance between a and b.
/// </summary>
/// <param name="a">The first vector.</param>
/// <param name="b">The second vector.</param>

Diese Kommentare kann die freie Software Doxygen auswerten und daraus eine Dokumentation erzeugen. Im Gegensatz zu anderen Lösungen wie Sandcastle ist Doxygen betriebsystemübergreifend verfügbar und kann somit – wie in diesem Beispiel – unter Mac OS X genutzt werden. Im ersten Schritt sollte Doxygen installiert werden. Unter Mac OS X kann dies einfach über MacPorts geschehen:

sudo port install doxygen

Nachdem Doxygen installiert ist, sucht man im Terminal den Ordner des Entwicklungsprojektes heraus und gibt dort ein:

doxygen -g projektname.doxygen

Damit wird eine Standard-Doxygen-Konfiguration erzeugt. In dieser Datei werden nun ein paar Änderungen vorgenommen:

PROJECT_NAME = "Testprojekt"
PROJECT_NUMBER = "Release Candidate 1"
OUTPUT_DIRECTORY = docs
RECURSIVE  = YES

Über den Aufruf:

doxygen projektname.doxygen

kann nun die HTML-Dokumentation des Quelltextes erzeugt erzeugt werden und diese anschließend im Browser genutzt werden.

502 Bad Request unter Nginx/PHP

Da läuft der Webserver mit Nginx und PHP (eingebunden über den FastCGI Process Manager) seit vielen Wochen ohne Probleme und plötzlich wird man nur noch mit einem:

502 Bad Gateway

begrüßt. Das ist im ersten Moment verwunderlich, wenn sich nichts an der Konfiguration geändert hat. Dem Nutzer und gestressten Administrator möchte diese Meldung dabei mitteilen, das die Verbindung zum „PHP-Server“ nicht funktioniert. Wenn über ein Unixsocket auf das PHP zugegriffen wird, so kann es zur 502er Fehlermeldung kommen, wenn der Datei keine ausreichenden Rechte mehr zugewiesen sind. Mit einem beherzten:

chmod go+rw /var/run/php5-fpm.sock

verfügt das Socket wieder über die korrekten Zugriffsrechte. Unter Umständen muss die PHP-Engine mit:

service php5-fpm restart

neugestartet werden. Verursacht werden kann dieses Problem unter anderem durch automatisch eingespielte Updates, welche die Berechtigung der Socket-Datei verändern.

Selfhosting erschienen

Vor ein paar Tagen ist mein erstes Buch Selfhosting – Server aufsetzen und betreiben erschienen. Das Buch dreht sich thematisch um das Hosting und dem Betrieb eines eigenen Servers und begleitet den Leser bei der Auswahl des passenden Anbieters, führt ihn in Linux als verwendetes Betriebssystem ein und begleitet ihn beim Aufsetzen konkreter Serverprojekte, wie das Aufsetzen von Mail-, Web- und anderen Serverdiensten. In den abschliessenden Kapiteln wird auf weitere wichtige Sachverhalte wie die Sicherheit und das Backup des eigenen Servers eingangen, so das der Leser einen guten Einblick in den Betrieb eines Servers gewinnt.

selfhosting

Erhältlich ist das Buch unter anderem bei Amazon, Beam, eBook.de, iTunes und Thalia. Im Buch selbst ist ein Code enthalten, mit welchem man zusätzlich zum gekauften Buch eine DRM freie Version beziehen kann.

Streamingserver auf einem Raspberry Pi aufsetzen

Mit dem Raspberry Pi kann man mit Hilfe von Icecast schnell einen Streamingserver für Audio installieren. Dazu muss im ersten Schritt Icecast installiert werden:

apt-get install icecast2

Während der Installation startet die Konfiguration des Paketes. So wird nach dem Hostnamen und den Passwörtern zum Streamen gefragt. Nach der Installation ist die Weboberfläche von Icecast unter Port 8000 und der entsprechenden IP erreichbar – in meinem Beispiel unter http://192.168.1.100:8000/. Der Standardnutzer für den administrativen Bereich ist dabei admin.

Die Weboberfläche von Icecast

Die Weboberfläche von Icecast

Mit dieser Konfiguration ist der Raspberry Pi ein Streaming Server. Mit einem Tool wie butt, kann der Server nun bespielt (Standardnutzer: source, Passwort: hackme) werden. Die Mountpoints werden bei der Verbindung automatisch angelegt. Wenn man mit butt den Mountpoint stream123 bespielt, befindet sich der Stream in diesem Beispiel unter http://192.168.1.100:8000/stream123 und kann mit einem entsprechenden Player abgespielt werden.

3D-Stadtsimulation im Browser

Sim City sollte jedem der sich halbwegs für Spiele interessiert ein Begriff sein. Dabei handelt es sich um eine ursprünglich zweidimensionale Simulation einer Stadt. Das klassische Sim City wurde vor einigen Jahren in Form von Micropolis unter einer freien Lizenz veröffentlicht. Mit 3d.city wurde dieses Prinzip nun in die dritte Dimension und in den Browser befördert.

3d.city am Beispiel einer kleinen Stadt

3d.city am Beispiel einer kleinen Stadt

Für die Simulation nutzt 3d.city die Javascript-Implementation micropolisJS bzw. baut darauf auf und nutzt für die 3D-Darstellung die three.js-Engine. Das Spiel ist unter der GPL lizenziert und damit freie Software. Der Quelltext ist auf GitHub zu finden. Ausprobiert werden kann 3d.city unter lo-th.github.io/3d.city/.