Historic Tale Construction Kit

Wer kennt es nicht, es ist Freitag Nachmittag und plötzlich wird ein historisch akurater Comic aus dem Mittelalter benötigt. Damit hier niemand im Regen stehen muss, gibt es das Historic Tale Construction Kit.

Mit dem Historic Tale Construction Kit können entsprechende Comics erstellt werden

Mit diesem ist es möglich solche Comics problemlos aus den vorgefertigten Elementen zu generieren. Ist der Comic fertiggestellt, kann er als PNG Datei exportiert werden. Ausprobiert werden kann das Ganze auf der Seite des Projektes. Der entsprechende Quelltext ist unter MIT-Lizenz lizenziert und damit freie Software. Er kann über GitHub bezogen werden.

JavaScript-Bibliothek für interaktive Karten

Interaktive Karten im Browser darzustellen ist sicherlich kein seltener Anwendungsfall im Web. Für die eigentliche Darstellung der Karten existieren unterschiedlichste Frameworks bzw. Bibliotheken wie z.B. OpenLayers.

Eine mit Leaflet realisierte Kartenapplikation

Daneben existiert seit 2011 die JavaScript-Bibliothek Leaflet. Mit dieser leichtgewichtigen Bibliothek, können interaktive Karten schnell aufgesetzt werde. Dabei werden TileMaps ebenso wie Web Map Services als Quelle für die eigentliche Karte unterstützt. Neben Features wie Overlays und der Unterstützung unterschiedlicher Projektionen ist Leaflet für die Nutzung auf dem Desktop und auf mobilen Endgeräten ausgelegt.

Der Quelltext der Bibliothek ist auf GitHub zu finden. Lizenziert ist Leaflet unter der BSD-Lizenz in der Zwei-Klausel-Variante und damit freie Software. Die offizielle Seite des Projektes ist unter leafletjs.com zu finden.

Emulatoren in JavaScript

In JavaScript wurde eine unglaubliche Zahl an Anwendungen geschrieben. Von den einfachen Anwendungen der Frühzeit zu den mittlerweile komplexen Anwendungen der Neuzeit. So ist es zum Beispiel möglich das Nintendo Entertaiment System, zu dem in einem wissenschaftlichen Paper folgendes steht:

1 Introduction

The Nintendo Entertainment System is probably the best video game console, citation not needed.

zu emulieren. Im Browser läuft das Ganze dann mit einer Framerate von 60 frames per second und lässt sich flüssig spielen:

Der NES-Emulator CycloaJS

Neben diesem Emulator gibt es eine Unzahl an weiteren Emulatoren für die unterschiedlichsten Systemen angefangen bei Konsolen wie dem SNES, dem GameBoy über alte DDR-Computer wie den KC85 bis hin zu älteren Großrechnern wie der PDP-11. Eine Sammlung dieser in JavaScript geschriebenen Emulatoren ist auf in dem GitHub-Repository jsemu zu finden.

Dreiecke für alle

Auf der Suche nach einem Hintergrundbild, bin ich vor einiger Zeit über den Dienst Trianglify gestolpert, welcher unter qrohlf.com/trianglify/ zu finden ist. Der Dienst generiert, anhand bestimmter Kriterien, Anordnungen von Dreiecken unterschiedlicher Farben.

Trianglify erzeugt algorithmisch Hintergrundbilder

Genaugenomen handelt es sich nicht wirklich um einen Dienst zur Generierung von Hintergrundbildern, sondern um eine JavaScript-Bibliothek, welche diese Aufgabe übernimmt und in andere Projekte eingebunden werden kann. Lizenziert ist Trianglify unter der GPL in Version 3 und damit freie Software. Der Quelltext ist auf GitHub zu finden.

Thymeleaf ohne Servlet in Standalone-Anwendungen nutzen

Thymeleaf ist eine Template Engine, welche für die Nutzung mittels Java (oder anderer JVM-Sprachen) gedacht ist. Über diese können entsprechende Templates geschrieben werden, anschließend gefüllt und genutzt werden. Thymeleaf verfügt über eine Dokumentation, allerdings fehlt mir dort ein minimales Beispiel für Anwendungen, welche sich nicht im Web (sogenannte non-web environments) abspielen.

thymeleaf.org

Für ein minimales Beispiel wird natürlich ein Template benötigt. Dieses wird hier als HTML definiert:

<!DOCTYPE html>
<html>
<head>
    <title th:text="${title}"></title>
</head>
<body>
</body>
</html>

Interessant ist hierbei das Feld title, welches wir mit einem Titel füllen wollen. Im Java-Quellcode sieht die Implementation wie folgt aus:

ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setPrefix("templates/");
resolver.setTemplateMode("HTML5");
resolver.setSuffix(".html");

TemplateEngine templateEngine = new TemplateEngine();
templateEngine.setTemplateResolver(resolver);

Context context = new Context(Locale.GERMAN);
context.setVariable("title", "Ein minimales Beispiel");

final String content = templateEngine.process("header.html", context);

Im ersten Schritt wird mit dem ClassLoaderTemplateResolver ein Resolver definiert, welcher schlussendlich dafür sorgt die Templates aus den Ressourcen (im resources-Ordner) bezogen werden. Daneben wird der Template-Modus eingestellt. Neben dem Modus HTML5 unterstützt Thymeleaf wie z.B. TEXT oder JAVASCRIPT. Danach wird die Template Engine erstellt und ihr der Resolver zugewiesen. Die Variablen, welche in diesem Fall im Template genutzt werden, werden über den Context definiert und gesetzt. Anschließend wird das Ganze an die process-Methode der Template Engine übergeben. Als Ergebnis erhalten wir im String content folgenden Inhalt:

<!DOCTYPE html>
<html>
<head>
    <title">Ein minimales Beispiel</title>
</head>
<body>
</body>
</html>

Damit wurde Thymeleaf in einer minimalen Variante angewendet. Die offizielle Seite der Template Engine ist unter thymeleaf.org zu finden. Lizenziert ist Thymeleaf unter der Apache License in der Version 2.0 und damit freie Software.