ts2python ist ein "Transpiler", der TypeScript-Schnittstellen in Python TypedDict-Klassen übersetzt und Funktionen zur Validierung von JSON-serialisierten Daten anhand dieser Schnittstellen bzw. TypedDicts bereit stellt.
Die Interoperabilität zwischen verschiedenen Programmiersprachen kann immer eine Herausforderung sein. TypeScript ist eine Obermenge von Javascript und möglicherweise die beliebteste Web-Programmiersprache ohne Javascript und damit eine der beliebtesten Frontend-Programmiersprachen überhaupt. Python hingegen ist die beliebteste Sprache im wissenschaftlichen Rechnen und in der Datenwissenschaft. Sie hat auch eine starke Stellung in der Serverprogrammierung, was bedeutet, dass sie auch eine beliebte Backend-Programmiersprache ist. Ein bequemer Weg, Daten zwischen Python und Typescript auszutauschen, besteht in der Serialisierung der Daten im bekannten und sehr einfachen JSON-Format. Dabei gehen jedoch die Typinformationen verloren. ts2python ermöglicht es, auch die Typinformationen von TypeScript nach Python zu übertragen, indem es für jede TypeScript-Schnittstelle eine entsprechende Python-TypedDict-Definition erzeugt. Dies ermöglicht die Verarbeitung von TypeScript-Daten auf der Python-Seite mit der gleichen strengen statischen Typüberprüfung wie auf der TypeScript-Seite.
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.
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.
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 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 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 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.
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.