Domänenspezifische Sprache für Tests von REST-Schnittstellen

Eine domänenspezifische Sprache, kurz DSL, ist eine auf ein bestimmtes Problemfeld abgestimmte Sprache. Mit dem freien REST Assured existiert eine solche Sprache für den effektiven Test von REST-Schnittstellen. Genutzt wird REST Assured hauptsächlich unter Java und Groovy. Eine einfache Überprüfung des Statuscodes einer API-Anfrage würde in REST Assured wie folgt aussehen:

given().get("api.example.com").then().assertThat().statusCode(200);

Daneben sind auch komplexe Tests wie die Auswertung von zurückgegebenen JSON-Strukturen und Daten, sowie die Verknüpfung unterschiedlicher Bedingungen ohne Probleme zu implementieren. Eine große Übersicht über die Möglichkeiten von REST Assured bietet der Usage-Guide des Projektes.

rest-assured.io

Die Projektseite von REST Assured ist unter rest-assured.io zu finden. Der unter der Apache Lizenz (Version 2.0) lizenzierte Quellcode kann auf GitHub gefunden werden.

Worms Remake als HTML5-Spiel

Das Spiel Worms, in dem sich zwei Parteien von Würmern bekriegen mussten, blickt mittlerweile auf eine über zwanzigjährige Geschichte zurück. Im Rahmen seiner Bachelorarbeit entwickelte Ciarán McCann ein Remake des Spieles. Geschrieben wurde das ganze in Typescript, welches in JavaScript kompiliert wird. Neben dem Tutorial bietet das Spiel einen lokalen Mehrspielermodus und einen Online-Modus. Letzterer kann leider im Moment nicht ausprobiert werden, da der dazu benötigte Server nicht läuft. KI-Gegner sind nicht vorgesehen, so das man zwangsläufig einen weiteren Mitspieler für eine Runde im Worms-Remake benötigt.

Das Worms Remake

Die Auswahl an Waffen und Fähigkeiten reicht nicht ganz an das Original heran; es sind insgesamt 9. Der Quelltext des Spieles ist auf GitHub zu finden. Er ist unter der Apache License in der Version 2 lizenziert und damit freie Software. Ausprobiert werden kann das Spiel auf der Seite des Autors.

Solarus – eine freie Action-RPG Engine

Die The Legend of Zelda-Spiele haben viele Menschen geprägt. Und manche dieses Menschen wollten ihr eigenes 2D-Action-RPG entwickeln. Natürlich ist es nicht einfach eine Engine zu schreiben, um ein solches Spiel zum Laufen zu bekommen. Allerdings ist dies nicht notwendig, da es für diesen Fall schon ein Projekt gibt. Die Rede ist von der Solarus-Engine.

Die Solarus-Engine, dessen offizielle Seite unter solarus-games.org zu finden ist, versteht sich als Baukasten für Zelda-ähnliche Spiele. Sie verfügt mit dem Solarus Quest Editor über eine grafische Oberfläche um die Spielwelten zu erstellen. Mittlerweile wurden mit der Engine eine Reihe von Spielen erstellt.

Der Solarus Quest Editor

Die Engine selber ist in C++ geschrieben und führt in Lua geschriebene Skripte aus. Technisch basiert die Engine auf dem Simple DirectMedia Layer in der Version 2. Dieser bildet eine Abstraktionsebene für die Grafik- und Soundhardware. Die Engine ist freie Software; als Lizenz wurde die GPL3 gewählt. Der Quelltext der Engine und weitere Tools wie der Solarus Quest Editor können über GitHub bezogen werden.

Inhalte aus den öffentlich rechtlichen Mediatheken herunterladen

Inhalte aus den öffentlich rechtlichen Mediatheken kann man sich in den meisten Fällen nicht direkt herunterladen. Um dieses Problem zu lösen gibt es seit längerer Zeit das Projekt MediathekView. Dieses Projekt stellt eine Applikation zur Verfügung, mit welcher sich die Beiträge aus den unterschiedlichsten Mediatheken herunterladen lassen. Neben diesem Projekt existiert mittlerweile das Projekt MediathekViewWeb.

mediathekviewweb.de

Bei MediathekViewWeb handelt es sich um eine Weboberfläche, welche auf dem MediathekView-Projekt aufsetzt. Mit der Weboberfläche können die Inhalte aus den Mediatheken direkt im Browser heruntergeladen werden. Beide Projekte sind freie Software und jeweils unter der GPL3 lizenziert. Die Quelltexte von MediathekView und MediathekViewWeb können auf GitHub gefunden werden.

Java-Projekte automatisch erzeugen

Es gibt praktische Software und dann gibt es manchmal Anwendungen bei denen man sich fragt was genau der Anwendungszweck ist. Eine dieser Anwendungen ist der Java Bullshifier. Die einzige Aufgabe des Java Bullshifier ist es, riesige Java-Projekte zu erzeugen.

Die Projekt-Webseite

Selbst im Vorstellungsartikel des Tools wird die Meinung vertreten, das es ein wenig esoterisch wirkt. Im Artikel wird allerdings ebenfalls die Motivation bzw. die Nutzung des Tools beschrieben:

It’s used in order to test some of our monitoring capabilities over ridiculously large code bases, with transactions that go thousands of calls deep, over thousands of classes, and end up with exceptions.

Erzeugt werden ein Projekt mit einer beliebigen Anzahl an Klassen und für eine Klasse sieht der generierte Quelltext exemplarisch wie folgt aus:

package generated.afz.qen.lrlj;

import helpers.Config;
import helpers.Context;
import java.util.*;
import java.util.logging.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;

public class ClsTvxlbccvg
{
    public static final int classId = 325;
    static final Logger logger = LoggerFactory.getLogger(ClsTvxlbccvg.class);

    public static void metWrkbglgpwrbj(Context context) throws Exception
    {
        int methodId = 0;
        Object[] root = new Object[8];
        Map<Object, Object> valUmbeeuzlkcg = new HashMap();
        Object[] mapValTaglolagfcm = new Object[10];
        String valLjtuhkvukba = "StrHwrvspzqwyp";

        mapValTaglolagfcm[0] = valLjtuhkvukba;
    
        for (int i = 1; i < 10; i++)
        {
            mapValTaglolagfcm[i] = Config.get().getRandom().nextInt(1000);
        }

        Set<Object> mapKeyGfqzkkkweud = new HashSet<Object>();
        long valZqatretqosu = 2690648861024756176L;

Der Quelltext des Java Bullshifier ist auf GitHub zu finden. Er ist unter der MIT-Lizenz lizenziert und damit freie Software.