reveal.js - Präsentieren im Browser

Bei reveal.js ermöglicht es ansprechende Präsentationen für den Browser zu erstellen. reveal.js richtet sich hauptsächlich an Webentwickler, die Präsentation kann mit jedem beliebigen Editor erstellt werden. Alternativ können Präsentationen auch über die Webseite slides.com erstellt werden. Allerdings sind bei diesem Angebot nur öffentlich verfügbare Präsentationen kostenlos. Bei einer mit reveal.js erstellten Präsentation handelt es sich um eine normale HTML-Datei sie kann auch komplett ohne Webserver angezeigt werden, wobei man damit natürlich den Vorteil des einfachen publizierens über einen Link verliert.

Gestaltungstechnisch ist mit reveal.js alles möglich was mit HTML5 umgesetzt werden kann. Die offiziele Beispiel-Präsentation von reveal.js finden Sie hier.

UNetbootin - Linux vom USB-Stick installieren

Immer mehr Geräte verfügen nicht mehr über ein optisches Laufwerk. Mit dem OpenSource Programm UNetbootin ist es möglich Boot-ISOs auf einen USB-Stick zu übertragen. Dadurch ist es möglich das ISO auf allen Geräten zu installieren die von USB booten können. UNetbootin ist für Windows, MacOS und Linux verfügbar. Über die einfache Oberfläche kann ein zuvor heruntergeladenes ISO manuell gewählt werden oder noch einfacher eine Linuxdistribution aus einem Dropdown ausgewählt werden. UNetbootin downloadet das ISO dann vollautomatisch. Das erstellen eines Boot-USB-Sticks ist mit UNetbootin sehr einfach, allerdings muss beachtet werden das UNetbootin den USB-Stick immer formatiert, dadurch gehen eventuell auf dem Stick gespeicherte Daten verloren. Standardmäßig zeigt UNetbootin nur USB-Sticks an um ein versehentliches formatieren der eigenen Festplatte zu verhindern.

UNetbootin kann unter unetbootin.sourceforge.net heruntergeladen werden. Bei vielen Linuxdistributionen findet man es auch über den Packetmanager.

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 GameEngines Torque 2D und Torque 3D stehen jetzt unter der MIT-Lizenz. Bei Torque 2D handelt es sich um eine in C++ geschriebene 2D-GameEngine mit Unterstützung für Windows, OSX, Linux, iOS und Android. Spiele können dabei in C++ oder einer an C angelehnten Skriptsprache geschrieben werden. Die GameEngine unterstützt OpenGL, Box2D and OpenAL. Weitere Informationen zu Torque 2D können unter github.com/GarageGames/Torque2D gefunden werden.


Bei Torque 3D handelt es sich um eine 3D-GameEngine. Dem Entwickler oder Designer stehen mit der World Editing Suite die aus Shape Editor, Terrain Editor, Road & River Editor, Material Editor, Particle Editor und Decal Editor besteht zahlreiche Wekzeuge zum erstellen von Inhalte zur Verfügung.
GarageGames, der Entwickler der beiden Engines bietet auf seiner Webseite zahlreiche kostenpfichtigen Plugins für diese an.

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.