sshuttle - Einfach zu nutzende VPN-Alternative

sshuttle ist eine für viele Zwecke ausreichende alternative zu einer vollwertigen VPN-Verbindung. Zum Aufbau der Verbindung muss der Server lediglich drei Bedingungen erfüllen.

  1. Der Server zu dem eine Verbindung aufgebaut werden soll läuft unter Linux oder MacOS.
  2. Es ist möglich sich per SSH mit dem Server zu verbinden.
  3. Auf dem Server ist Python 2.7 installiert.

Dies Bedingungen dürften fast allen Linux Server standardmäßig erfüllen. Das Programm sshuttle muss nur auf dem Client (Linux oder MacOS) installiert sein. Eine Verbindung zum Server kann dann z.B über folgenden Befehl aufgebaut werden:

./sshuttle -r username@sshserver 0.0.0.0/0 -vv

Dabei ist es über den Parameter --dns auch möglich DNS-Anfragen über sshuttle umzuleiten. sshuttle leitet alle Ports zum Server um, dabei ist es nur möglich TCP-Verbindungen zu tunneln. sshuttle ermöglicht keine UDP-Übertragungen. Zum Aufbau der Verbindung logt sich sshuttle per SSH auf dem Server ein überträgt ein kleines Python-Script und führt dieses dann aus um die Verbindung herzustellen. Dabei werden nur auf dem Client Root-Rechte benötigt. Auf dem Server sind keine besonderen Berechtigungen notwendig. Weiter Informationen zu sshuttle gibt es unter github.com/apenwarr/sshuttle

Trianglify - Algorithmically Generated Triangle Art

Die unter GPLv3 stehende Bibliothek Trianglify erstellt anhand von wenigen Parametern sehr ansehnliche SVG-Hintergründe. Version 2 von Trianglify hat keine Abhängigkeiten mehr. Die erste Version benötigte mit D3 noch eine sehr umfangreiche Bibliothek. Mit einer Größe von 35 kb ist Trianglify jetzt gut geeignet Webseiten mit einem ansprechenden, sich immer ändernden Hintergrund auszustatten.

Kore - Webservices in C programmieren

Kore ist ein in C geschriebenes Webapplication-Framework. Kore ermöglicht es sichere (es wird ausschließlich HTTPS unterstützt), gut skalierende Webservices und sogar Websites in reinem C zu programmieren. Es bietet sich an, wenn man einen Webservice aus einem nur in C oder C++ zur Verfügung stehenden Klasse/Framework erstellen will. Durch Kore spart man sich das meist aufwendige und fehleranfählige binding dieser Bibliotheken an eine für Webanwendungen gebräuchlichere Sprachen wie PHP, Java, JavaScript oder Python. Geschwindigkeitstechnisch ist davon auszugehen das die mit Kore erstellten Services schneller sind als z.B. mit SWIG erstellte Bindings, auch wenn diese Performanceunterschiede in der Praxis wahrscheinlich keine Rolle spielen werden.

Kore braucht zum builden keine Makefiles, ein Kore-Programm kann über den einfachen Aufruf: kore run

erstellt und ausgeführt werden. Weitere Informationen zu Kore bekommt man unter kore.io.

GarageGames - Torque 2D und Torque 3D sind OpenSource

Die beiden Game Engines Torque 2D und Torque 3D stehen nun unter der MIT-Lizenz. Torque 2D ist eine in C++ geschriebene 2D-Game-Engine, die Windows, OSX, Linux, iOS und Android unterstützt. Spiele können in C++ oder einer an C angelehnten Skriptsprache geschrieben werden. Die Engines unterstützt OpenGL, Box2D und OpenAL.

Weitere Informationen zu Torque 2D gibt es unter: github.com/GarageGames/Torque2D.


Torque 3D ist eine 3D-Game-Engine. Entwicklern und Designern steht eine World Editing Suite mit zahlreichen Werkzeugen zur Erstellung von Inhalten zur Verfügung.

Editor-Features:

  • Shape Editor
  • Terrain Editor
  • Road & River Editor
  • Material Editor
  • Particle Editor
  • Decal Editor

DockerUI - Container in GUI verwalten

DockerUI ist ein Webinterface das auf die Docker Remote API zugreift und es ermöglicht Docker Container einfach zu verwalten. Es bindet die grundlegende Funktionen wie Starte, Stoppen, Löschen und Konfigurieren von Container und Images. DockerUI befindet sich noch in einem frühen Entwicklungsstadium, die vorhanden Features können aber bereits produktiv eingesetzt werden.

Ist Docker bereits installiert ist das eigentliche ausführen von DockerUI direkt über Docker möglich, über folgenden Befehl wird DockerUI bei Bedarf installiert und gestartet.
docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui

Danach ist das Webinterface unter localhost:9000 erreichbar. Weitere Informationen zu DokerUI findet man unter github.com/crosbymichael/dockerui.

Zepto - jQuery in klein

Zepto eine weitgehend mit jQuery kompatible, minimalistische OpenSource-JavaScript-Bibliothek für moderne Browsers. Dabei ist jedoch keine 100 prozentige Abdeckung der Funktionalität von jQuery gegeben. Der Vorteil von Zepto ist das die Bibliothek mit maximal 10k wesentlich kleiner ist als jQuery, was weitgehend durch die geringere Unterstützung älterer Browser erreicht wird. Zepto kann unter der MIT Lizenz auf zeptojs.com heruntergeladen werden.

Ngrok - VPN für localhost

Ngrok ist ein VPN-Tool das es ermöglicht, einen eigentlich nicht öffentlichen localhost öffentlich bereitzustellen. Es eignet sich für Entwickler die z.B. einen Zwischenstand einer Webapp oder Webseite zur Abnahme bereitstellen wollen. Dabei wird ein konfigurierbarer Port auf eine Subdomain des Anbieters Ngrok weitergeleitet. Hat man keinen Account beim Ngrok bekommt man eine zufällige Subdomain zugeteilt. Die Subdomain sowie Statusinfomationen über eingehende Anfragen werden direkt auf der Konsole angezeigt. Wenn man sich einen Account bei Ngrok erstellt kann auch eine Subdomain wählen. Ngrok ermöglicht HTTP- sowie HTTPS-Verbindungen zu dieser Domain.

Das Komandozeilen-Tool kann für Linux, MacOs und Windows kostenlos von der Webseite ngrok.com heruntergeladen werden. Durch den Aufruf von:

	ngrok 8181 

wird z.B. der localhost:8181 an Ngrok weitergeleitet. Die Performance der VPN-Verbindung ist nicht hoch, aber zum Testen ausreichend.

Leaflet - Multi-Provider Karten

Die 33 kb große JavaScript-Bibliothek Leaflet ermöglicht es interaktive Karten in eine Webseite einzubinden, dabei ist man nicht an einen Karten-Provider gebunden, es ist möglich nahezu beliebige Anbieter von Karten zu verwenden. Das Einbinden von OpenStreetMap und GoogleMaps ist einfach zu umzusetzen. Leaflet wird von einer Vielzahl große Internetauftritte wie z.b Flicker verwendend. Es ist also davon auszugehen das es Ausreichend getestet und stabil ist.

Bei der Verwendung eines Providers müssen immer die entsprechenen AGBs beachtet werden so erlaubt z.B GoogleMaps keinen unbegrenzten Zugriff auf seine MapsApi. Ab einer gewissen Anzahl von Requests wird der Dienst dann für die entsprechende Webseite gesperrt. Weitere Informationen zu den Nutzungsbedingungen von GoogleMaps finden man hier.

Inzwischen muss man nicht mehr die langweiligen Standardkarten verwenden, auf den Seiten maps.stamen.com und mapbox.com können unterschiedliche Styles gefunden werden. Bei mapbox.com ist auch möglich einen komplett eigenen Style für eine Karte zu entwickeln. Allerdings ist das mit einigem Aufwand verbunden.

Babylon.js - WebGL GameEngine

Babylon.js ist eine unter Apache License 2.0 stehende 3D-Engine für den Browser. Sie steht in Konkurrenz zu tree.js, bietet aber mehr integrierte Funktionalität.

Zu den Features von Babylon.js zählen unter anderem: Ein implementierter Scenegraph für Modelle, Materials, Licht und Kameras. Eine Kollisions-Engine sowie eine Physik-Engine auf Basis von cannon.js. Es werden Animationen (auf Basis von Bones) und Partikel unterstützt. Die Standart-Materials unterstützen PerPixel-Lightning sowie die gängigen Texturemaps. Auf der Webseite stellen zahlreiche Demos die unterschiedlichen Features der Engine vor.

Babylon.js wird von Microsoft Entwicklern entwickelt. Und kann unter babylonjs.com heruntergeladen werden.

Medoo - Ein Mini-PHP-ORM

Bei Medoo handelt es sich um ein kleines ORM-System unter der MIT-Lizenz. Es besteht nur aus einer einzigen 14 kb kleinen Datei und eignet sich hervorragend für kleine bis mittlere Projekte. Als Systemvoraussetzung muss mindestens PHP 5.1 mit PDO Support installiert sein. Es werden die Datenbanken MySQL, MSSQL, SQLite, MariaDB, Oracle, Sybase und PostgreSQL unterstützt.