Schriftarten zum Programmieren

Bei der Entwicklung von Software wird in den meisten Fällen ein wie auch immer gearteter Editor bzw. eine IDE genutzt. Innerhalb dieser IDE ist zur Darstellung des Quelltextes eine Monospace-Schriftart gesetzt. In einer solchen Schriftart sind alle Zeichen gleich breit. In folgendem Beispiel wird das deutlich:

www
iii

Sowohl das w als auch das i haben in einer Monospace-Schriftart die gleiche Breite. Bei der Entwicklung ist dies natürlich sehr praktisch, da dadurch der Quelltext an Übersichtlichkeit gewinnt. Jede IDE liefert in der Voreinstellung eine bestimmte Monospace-Schriftart mit. Soll diese Voreinstellung geändert werden, so findet sich eine große Auswahl an freien Monospace-Schriftarten im Netz. Die Programming Fonts-App erleichtert die Auswahl der passenden Schriftart.

In der App konnten die unterschiedlichen Schriftarten ausprobiert werden

In dieser App können die unterschiedlichen Fonts ausgewählt werden und in einem Editor schnell auf ihre Eignung geprüft werden. Der Quelltext der App ist auf GitHub zu finden. Lizenziert ist das Ganze unter der MIT-Lizenz und damit freie Software.

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.

Kittens Game

Das Land der Browsergames verfügt über eine Menge Einwohner. Darunter gibt es einige Perlen zu entdecken wie z.B. Candy Box. Eine weitere Perle im Land der Browsergames ist Kittens Game. Bei dem Spiel geht es darum Stück für Stück eine Katzenzivilisation aufzubauen. Was am Anfang simpel wirkt, weitet sich im Laufe des Spieles zu einer komplexen Simulation aus, welche das Spiel immer interessanter macht.

Kittens Game

Auf grafischen Schnickschnack wird dabei verzichtet, so das die “Textwüste” die Fantasie anregt, wie bei alten Textadventures. Das Spiel beginnt in der Steinzeit, führt den Spieler Stück für Stück in das Mittelalter, bis man schließlich nach etlichen Spielstunden in der Neuzeit ankommt. Dort betreibt man dann ein Weltraumprogramm und verlässt den Katzenplaneten und erforscht die Weite des Alls. Der Quelltext ist auf BitBucket zu finden, allerdings ist er nicht unter einer freien Lizenz verfügbar. Stattdessen nutzt es die selbst verfasste WET PAWS LICENSE:

Kitten game is licensed under a WET PAWS LICENSE.

You are free to make any changes in the code for personal or educational purpose. 
Using the game code for commercial gain or creation of derivative works is not permitted.

Hosting a translated version of the game is permitted as long as the game retains all links.
And for god's sake please don't make huge idiotic red logos of your website. (Yes, u77 folks, I am talking about you).

Technisch basiert das Spiel auf HTML5 und dem Dojo Toolkit. Neben der Variante im Browser existieren mittlerweile Versionen für iOS und Android.

Kittens Game
Preis: 2,29 €
Kittens Game
Preis: 1,99 €

Die App-Versionen sind kompatibel zu dem Spielstand des Browsergames, so das man nahtlos auf den mobilen Geräten weiterspielen kann. Die Spielstände können hierfür exportiert werden. In den neueren Versionen von Kittens Game ist der Im- und Export mittels Dropbox möglich, so dass die Übernahme eines Spielstandes noch einfacher ist.

Quellcode durchsuchen

Manchmal ist man als Entwickler auf der Suche nach einem Stück Quellcode. Die Gründe dafür sind vielfältig und natürlich kann man für diesen Zweck die Suchfunktionen einzelner Portale wie GitHub und Co. nutzen um den gewünschten Quelltext zu finden.

searchcode in Aktion

Einfacher wird das ganze mittels searchcode.com, einer Quelltextsuchmaschine. Bei searchcode, werden nach eigenen Angaben, über sieben Millionen Projekte verschiedenster Plattformen durchsucht. Für den Gebrauch in Firmen, welche natürlich auch private Repositories betreiben, gibt es searchcode dabei auch als Lösung zum selberhosten. Der Quelltext von searchcode ist auf GitHub zu finden. Zu beachten ist hierbei, das es sich um keine freie Software handelt und man damit die Lizenzbedingungen bei der Eigennutzung des Servers genau lesen sollte.

Quelltext einer Mediawiki-Seite anzeigen

Vor einiger Zeit hatte ich einen Twitter-Bot entwickelt welcher als Datenquelle unter anderem die Wikipedia nutzt. Dazu nutzt der Bot unter anderem eine Bibliothek um auf die MediaWiki-API zuzugreifen. Nun stellte ich fest das die Nutzung der API in diesem Fall allerdings überdimensioniert war. Stattdessen ist es möglich sich für eine beliebige MediaWiki-Seite denn Quelltext anzeigen zu lassen. Die URL sieht dabei wie folgt aus:

https://de.wikipedia.org/wiki/Machinima?action=raw

Durch den Parameter action=raw wird der Quelltext anstatt des HTML-Renderings ausgegeben und kann somit ausgewertet werden.