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.

ESP8266 als Apple I Emulator

Mit dem ESP8266 wurde schon eine Vielzahl von interessanten Projekten entwickelt. Eines der Projekte welches aus der Menge heraussticht, ist ein Emulator für den Apple I. Besonders ist dabei nicht der Emulator als solches, sondern die Art wie er an den Bildschirm angeschlossen wird. Über einen Draht wird das Bild als PAL Signal ausgestrahlt und kann somit von jedem Fernseher empfangen werden.

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://www.youtube.com/watch?v=rCqbB1UmW8o

Das System wird fast komplett kabellos betrieben, denn die Eingabe über die Tastatur erfolgt ebenfalls kabellos mittels Telnet. Um Software auf den Rechner zu bringen, ist ein TFTP-Server implementiert.

Das NodeMCU-Board in Version 3, mit einem verbauten ESP8266

Der Emulator emuliert die MOS 6502 CPU in ihrer Originalgeschwindigkeit von einem Megahertz und stellt 20 Kilobyte an RAM zur Verfügung. Das Projekt ist auf GitHub zu finden. Es ist unter der MIT-Lizenz lizenziert und damit freie Software.

Miiverse ist tot, lang lebe Archiverse

Für die Wii U gab es einen von Nintendo betriebenen Online-Dienst mit dem Namen Miiverse. Dieser Dienst wurde am 8. November 2017 abgeschaltet. Mit Hilfe des Dienstes konnten unter anderem Nachrichten und Bilder ausgetauscht werden. Es handelt sich praktisch um eine Art soziales Netzwerk für die Wii U und die entsprechenden Spiele der Konsole.

Die Nachricht über die Schließung; in der deutschen Version mit dem aus dem englischen falsch übernommenen Datum

Durch die Abschaltung sind die Beiträge des Miiverse nicht mehr erreichbar. Das Archive Team wollte sich damit allerdings nicht abfinden. Es rettete über 17 Terabyte des Miiverse und stellt dieses nun als Archiv zur Verfügung.

Das Miiverse-Archiv

Dazu richteten sie das Archiverse, welches unter archiverse.guide zu finden ist, ein. Dort kann der Bestand des archivierten Miiverse durchsucht und angeschaut werden. Die entsprechende Software ist unter der MIT-Lizenz lizenziert und damit freie Software. Der Quelltext ist auf GitHub zu finden.

Markdown-Editor für Integration in eigene Webprojekte

Für ein kleines Webprojekt war ich auf der Suche nach einem Markdown-Editor. Fündig geworden bin ich bei SimpleMDE. Technisch gesehen setzt SimpleMDE auf dem bestehenden Editor CodeMirror auf und erweitert diesen um Markdown-Funktionalitäten, Geschrieben ist der Editor in JavaScript und bietet eine Reihe von Features. Dies fängt an bei der Unterstützung der gewöhnlichen Formatierungen (z.B. Fett und Kursiv) an und geht weiter über Listen und Bildunterstützung. Daneben beherrscht SimpleMDE Autosaving, so das Änderungen auf Wunsch automatisch gesichert werden.

SimpleMDE in Aktion

Leider scheint die Entwicklung in den letzten Monaten etwas eingeschlafen sein. So sind derzeit 17 Pull Request offen, welche auf ihren Merge warten. Der letzte Commit, im development-Branch des Projektes, ist vom Mai 2017. Der Quelltext der Editors ist auf GitHub zu finden. Lizenziert ist der Quelltext unter der MIT-Lizenz und damit freie Software. Die offizielle Projektseite ist simplemde.com.

Freier Decompiler von Avast

Wer kennt das nicht; man steht mitten im Nirgendwo und benötigt plötzlich einen Decompiler. Da passt es nur allzu gut, dass Avast vor einigen Tagen einen Decompiler veröffentlicht hat. Der Retargetable Decompiler war, laut Aussage von Avast knapp sieben Jahre in der Entwicklung, bevor er nun das Licht der Öffentlichkeit erblickte. Mit Hilfe dieses Decompilers können Kompilate unterschiedlicher Architekturen (Intel x86, ARM, MIPS, PIC32 und PowerPC) decompiliert werden. Leider werden im Moment nur 32-Bit Binaries unterstützt. Auch die Liste der unterstützen Dateiformate für die zu decompilierende Datei reicht von ELF, PE, Mach-O, COFF, AR, Intel HEX bis zu reinem Maschinencode.

Die Online-Version des Decompilers

Als Plattformen für die Ausführung des Decompilers, werden offiziell Windows und Linux unterstützt. Unter macOS funktioniert die Ausführung ebenfalls, allerdings wird hier keine Garantie für die Funktionsfähigkeit gegeben. Daneben existiert eine Online-Version, mit welcher der Decompiler ausprobiert werden kann. Hierbei gilt eine Beschränkung von 10 MiB je Binary. Der Retargetable Decompiler unterstützt die statische Analyse der zu dekompilierenden Dateien, erkennt automatisch den verwendeten Compiler und Packer und ist in der Lange die Ausgabe in C und einer an Python angelehnten Syntax auszugeben. Der Quelltext des Decompilers ist auf GitHub zu finden. Das Projekt ist unter der MIT-Lizenz lizenziert und damit freie Software. Der Download und weitere Informationen zum Retargetable Decompiler findet man auf der offiziellen Seite des Decompilers.