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.

Google Fonts herunterladen

Im Rahmen der DSGVO wird unter anderen Datensparsamkeit gefordert; bei vielen Webseiten ist dies leider nicht immer gegeben. So findet häufig die Einbindung der Google Fonts vor. Jetzt ist es per se nicht verwerflich Google Fonts zu nutzen, allerdings sollten diese Fonts lokal eingebunden werden. Wenn dies nicht geschieht und sie direkt über das CDN von Google eingebunden werden, überträgt man bei jedem Aufruf entsprechende Daten an Google.

fonts.google.com

Um dies zu unterbinden, sollte die gewünschte Schriftart heruntergeladen werden und anschließend lokal in die eigene Webseite bzw. das eigene Projekt eingebunden werden. Hierfür bietet sich der google-webfonts-helper von Mario Ranftl an. Dort wählt man die gewünschte Schriftart aus und kann diese anschließend herunterladen. Neben dem eigentlichen Font wird auch entsprechendes CSS zu Einbindung bereitgestellt. Genutzt werden kann der google-webfonts-helper nicht nur über die Weboberfläche, sondern auch über eine entsprechende REST-API.

Der google-webfonts-helper

Der Quelltext des google-webfonts-helper kann über GitHub bezogen werden. Lizenziert ist das Projekt unter der MIT Lizenz und damit freie Software.

Plugins für RPG Maker MV Projekte

Der RPG Maker MV ist eine Anwendung mit welcher einfach Rollenspiele erstellt werden können, ohne das tiefgreifende Programmierkenntnisse benötigt werden. Der RPG Maker MV reiht sich in eine lange Reihe von RPG Makern ein, welche seit 1992 auf den Markt gebracht wurden.

Ein RPG Maker MV Projekt

Von der Basisfunktionalität des RPG Maker MV ausgehend, existieren eine Reihe von Plugins, welche neue Funktionalität hinzufügen oder bestehende Funktionalitäten abwandeln. Neben einzelnen Plugins gibt es eine Reihe von Pluginsammlungen für den RPG Maker MV. Dazu zählen die kleineren Sammlungen wie die Victor Engine Scripts, die Plugins von SumRnDm und den Plugins von Galv. Daneben existieren einige größere Anlaufstellen wie die Yanfly Engine Plugins, das MV Plugins-Verzeichnis und die Ressourcen-Seite von rpgmakermv.co.