Computer­programme

DHParser  

Bildschirmfoto

Domänenspezifische Sprachen sind in der Softwareentwicklung weit verbreitet, aber sie scheinen in den Digitalen Geisteswissenschaften bisher wenig gebräuchlich zu sein. Während domänenspezifische Sprachen (DSL) in den Digitalen Geisteswissenschaften zuweilen als praktische ad-hoc-Lösungen eingführt werden, bleiben diese Lösungen oft recht provisorisch. Mit anderen Worten, es handelt sich eher um einen "Hack" als um eine Technologie. Die Zielsetzung von DHParser besteht darin, DSLs als eine Technologie in die digitalen Geisteswissenschaften einzuführen. DHParser basiert auf der wohlbekannten Technologie EBNF-basierter Parsergeneratoren, verwendet aber die etwas jüngere, "parsing expression grammar" genannte Weiterentwicklung und Parser-Kombinatoren als Variante des klassischen rekursiven Parsers. Der Quellcode steht im GitLab-Repositorium.

Schnelle Seite  

Bildschirmfoto SchnelleSeite ist ein statischer Webseitengenerator, ähnlich wie Jekyll oder Hugo. Im Gegensatz zu Content-Management-Systemen wird bei statischen Seitengeneratoren die Website komplett gefertigt, bevor sie auf den Server kommt. Der Server muss dann nur noch statische Seiten ausliefern, was schneller geht und weniger Sicherheitsrisiken birgt als dynamische Internetseiten, allerdings auch nicht ganz so flexibel ist.

Anders als die meisten statischen Seitengeneratoren ist SchnelleSeite von vornherein konsequent auf mehrsprachige Websites (wie diese Homepage) ausgerichtet. Außerdem ist es an die Bedürfnisse von Wissenschaftlern angepasst und unterstützt etwa das Auslesen von Literatureinträgen aus einer bibtex-Datei. Hier geht's zum Quelltext.

GWT Photo Album  

Bildschirmfoto GWTPhotoAlbum ist eine Internet-Fotogalerie und Diashow, die mit dem Google Web Toolkit realisiert ist. Sie setzt lediglich einen passiven Server voraus und kann auch lokal vom Dateisystem gestartet werden. Dazu gibt es ein kleines Python-Skript mit dem man eigene Internet-Fotoalben erstellen kann. Die Bilder werden in mehreren Auflösungen abgelegt. GWTPhotoalbum wählt die Auflösung der heruntergeladenen Bilder je nach Bildschrimgröße des Zielgeräts und Übertragungsgeschwindigkeit aus. Die Bilder können mit Bildunterschriften versehen werden.

Als Beispiel gibt es hier eine Alpenfoto-Galerie. Weiteres dazu und das Programm selbst gibt es auf der Projektseite.

CoopSim  

Bildschirmfoto CoopSim ist ein Programm zur Simulation eines spieltheoretischen Modells von kooperativem Verhalten, das sowohl in der Biologie als auch in den Sozialwissenschaften Anwendung findet. Bei dem Modell handelt es sich um das durch Robert Axelrods Buch "Die Evolution der Kooperation" populär gemachte wiederholte Gefangenendilemma, mit dem sich bestimmte (aber keineswegs alle!) Kooperationsprobleme formal beschreiben lassen. CoopSim lehnt sich an die Beschreibung in Axelrods Buch an und erlaubt es, beliebige Strategien (einschließlich vom Benutzer selbst programmierter Strategien) in einem Computerturnier im paarweisen wiederholten Gefangenendilemma gegen einander antreten zu lassen. Dabei können die einzelnen Spielverläufe, das Turnierergebnis sowie die evolutionäre Entwicklung eingesehen werden. Durch eine Reihe von einstellbaren Parametern lassen sich unterschiedliche Rahmenbedingungen simulieren.

CoopSim ist Open-Source-Software unter der MIT Lizenz und kann aus dem GitHub-Verzeichnis heruntergeladen werden.

PyPlotter  

Bildschirmfoto PyPlotter ist ein sehr schlankes Python Paket zur Darstellung von Graphen und Diagrammen. Es ist kompatibel zu Python 2 und 3 und läuft auch unter jython, der Java-Version von Python.

PyPlotter erlaubt die Darstellung von Graphen in einem cartesischen Koordinatensystem sowie auf einer logarithmischen Skala. Dazu enthält es Klassen zur Darstellung zweidimensionaler Simplexdiagramme, wie sie in der Spieltheorie üblich sind.

PyPlotter kann über eine minimale Abstraktionsschicht sehr leicht an unterschiedliche Grafikausgabesystem angepasst werden. Zur Zeit wird Tkinter, das Java AWT, wxWidgets, Qt 4 und 5, gtk 2 und Postscript unterstützt.

PyPlotter ist Open-Source-Software unter der MIT Lizenz. Hier geht es zum PyPlotter-Quellcode und zur Dokumentation.

Evolutionäre Algorithmen  

Bildschirmfoto Evolutionäre Algorithmen sind eine besondere Klasse von Optimierungsalgorithmen, bei denen man den auf Reproduktion, Variation und Selektion beruhenden Evolutionsprozess in der Natur nachzubilden versucht, um beliebige Optimierungsprobleme zu lösen. Im Zusammenhang mit meinem Beitrag "Neuheit in evolutionären Algorithmen" in dem von Birger Priddat und Peter Seele herausgegebenen Sammelband "Neuheit in Ökonomie und Management. Grundlagen, Methoden, Beispiele" (Gabler Verlag, Wiesbaden 2008) habe ich ein kleines Beispielprogramm geschrieben, dass mehrere Varianten eines evolutionären Algorithmus am Beispiel des klassischen "Problems des Handlungsreisenden" vorführt.

Start des Beispielprogramms mit Java Web Start. (Setzt Java Runtime Version 1.6 voraus!) Herunterladen des Beispielprogramms zu evolutionären Algorithmen. (MB inkl. Java-Quellcode). Nur den Quellcode herunterladen.

cultaptation Programm  

Bildschirmfoto Um Strategien für das cultaptation Social Learning Strategies Tournament zu entwickeln, habe ich ein Computerprogramm geschrieben, das die Regeln des Turniers umsetzt. Zusammen mit einer Gruppe von Bayreuther Studenten konnten wir dann eigene Strategien entwickeln, analysieren und die beste Strategie für die Teilnahme am Turnier auswählen.

Wer mit dem cultaptation-Modell (der ersten Runde) "experimentieren" will, kann sich hier mein cultaptation Programm herunterladen. Die Installation wird in der "Lies mich"-Datei erklärt.