Nebenprojekte

Narradir

Native Android-Applikation in Kotlin
10 Tsd.+ Downloads über Google Play

Jetzt bei Google Play

Zum automatischen Erzählen der Nachtphase in den Deduktionsbrettspielen Dem Widerstand: Avalon und Secret Hitler mit der Bibliothek ExoPlayer habe ich die App Narradir entwickelt. Diese App wurde am Anfang auf Java entwickelt und später in Kotlin neu geschrieben. Die Sprachsynthese fürs Erzählen habe ich mit dem Text‐to‐Speech API vom Google Cloud SDK durch Bash‐Skripte gemacht.

Im Vergleich mit ähnlichen Anwendungen bietet Narradir folgende Vorteile an:
  • Der Benutzende lässt sich während des Erzählens ein Hintergrundgeräusch abspielen, um die von den Spielern unabsichtlich gemachten Geräusche zu überdecken.
  • Der Benutzende lässt sich die Dauer der Pause anpassen, während bestimmte Rollen ihre Aktion ausführen.
  • Bei Dem Widerstand: Avalon gibt es ein „intelligentes“ System zur Auswahl der Rollen. Je nach der Anzahl der Spieler könnten unterschiedliche Rollen zur Auswahl stehen. Außerdem gelten es bestimmte Regeln zur Auswahl der Rollen. Werden manche Rollen ausgewählt bzw. abgewählt, könnten dann andere Rollen automatisch ausgewählt oder abgewählt werden.

Text-Popover

MacOS Desktop-Applikation in SwiftUI für Fremdsprache-Lernende

Ich bin unlängst aus der Schweiz ausgezogen aber ich will mein Deutsch nicht vergessen. Deshalb habe ich mit der Python-Bibliothek Beautiful Soup eine Liste deutsche Redewendungen sowie ihre jeweilige Bedeutung und Geschichte aus Wikipedia ausgelesen. Diese Daten habe ich in einer SQLite Datenbank gespeichert.

Danach habe ich mit SwiftUI eine App für die Menüleiste geschrieben. Die App poppt in vom Benutzenden spezifizierten Intervallen mit einer aus der SQLite Datenbank zufällig ausgewählten Redewendung auf. Diese Pop-ups dienen als virtuelle Zettel für mein regelmäßiges Lernen.

Der Benutzende lässt sich auch das Einstellungsmenü öffnen und neue Datenbanken kreieren, um seine eigenen Texte im Pop-up anzuzeigen:

Text-Popover Demo 3 Text-Popover Demo 4

GitHub-Repositorys nach Commits Sortieren

Web Scraping in Python

Ich wollte die Anzahl der Commits vergleichen, die ich auf den jeweiligen Standardbranch (normalerweise master oder main) meiner persönlichen Repositorys gemacht habe. Deshalb habe ich die nötigen Daten in Python aus dem GitHub API ausgelesen. Danach habe ich die Daten in einer Pandas Datenstruktur sortiert und angezeigt.

Conways Spiel des Lebens

Simulation der Evolution einer gitterförmigen Population von Zellen in C++ mit Qt

Gegeben sei ein Gitter, in dem jedes Quadrat eine Zelle ist. Jede Zelle kann einen von zwei Zuständen einnehmen, welche als lebendig (1) oder tot (0) bezeichnet werden. Unter den folgenden vier Regeln hängt der Zustand jeder Zelle in der Folgegeneration nur vom aktuellen Zustand der Zelle selbst und den aktuellen Zuständen ihrer acht Nachbarzellen (horizontal, vertikal, oder diagonal) ab:

Conway
  1. Lebende Zellen mit weniger als zwei lebenden Nachbarn sterben in der Folgegeneration an Unterbevölkerung (z.B. wegen Einsamkeit).
  2. Eine lebende Zelle mit zwei oder drei lebenden Nachbarn bleibt in der Folgegeneration am Leben (ideale Populationsdichte).
  3. Lebende Zellen mit mehr als drei lebenden Nachbarn sterben in der Folgegeneration an Überbevölkerung (z.B. wegen mangelnder Nährstoffe).
  4. Eine tote Zelle mit genau drei lebenden Nachbarn wird in der Folgegeneration neu geboren (ideale Populationsdichte).
Conway Demo 1 Conway Demo 2