Alle Beiträge von Andreas Heß

FXGL11 Level laden

Anscheinend hat sich bei FXGL11 gegenüber den teilweise schon etwas älteren Tutorials was geändert. Das ist eine Sache.

Eine andere, die mich grad in den Wahnsinn getrieben hat, war, dass das Laden eines mit Tiled erstellten Levels schon schief ging, weil das eigentlich vorgesehene, simple

    FXGL.setLevelFromMap("level0.tmx");

die Datei offenbar am falschen Ort gesucht hat. Nach ewigem Rumprobieren mit der Verzeichnisstruktur gab es Abhilfe letztlich nur mit dem etwas umständlicheren:

protected void initGame() {
    FXGL.getGameWorld().addEntityFactory(
        new PlanetExpressFactory());
    TMXLevelLoader tl = new TMXLevelLoader();
    FXGL.getGameWorld()
        .setLevel(tl.load(
        this.getClass().getResource("/assets/levels/level0.tmx"),
        FXGL.getGameWorld()));
}

JavaFX Mac-App erstellen mit Eclipse und Maven

… mit OpenJDK und JavaFX in der Version 14.

JavaFX braucht nicht extra installiert werden, wenn man ein neues Maven-Projekt über den Archetyp org.openjfx aus Maven Central erstellt. Um die Dependencies kümmert sich Maven.

In der pom.xml den Pfad zum jlinkExecutable einstellen sowie einen Launcher festlegen:

<plugin>
  <groupId>org.openjfx</groupId>
  <artifactId>javafx-maven-plugin</artifactId>
  <version>0.0.4</version>
  <configuration>
    <mainClass>package.App</mainClass>
    <jlinkExecutable>/Pfad/zu/jlink</jlinkExecutable>
    <launcher>MeinLauncherSkript</launcher>
  </configuration>
</plugin>

Dann aus Eclipse die pom ausführen als Maven build… und bei Goals javafx:jlink einstellen.

Es wird im target-Verzeichnis ein Verzeichnis image erzeugt, dass u.a. die angepasste Java Runtime sowie ein Launcher-Skript enthält. Vom Terminal aus kann das Launcher-Skript jetzt schon gestartet werden.

Um ein schönes .app-Bundle zu erzeugen, im Terminal ins target-Verzeichnis wechseln und dann:

jpackage --type app-image -i image -n MeineApp -m mein.modul/mein.package.Mainclass --runtime-image image/

Wenn jpackage nicht gefunden wird, muss der Pfad noch händisch gesetzt werden. jpackage liegt ganz normal im bin-Verzeichnis des JDK.

Natürlich sind jeweils die richtigen Namen für die Module, Packages und Klassen einzusetzen. Es kommt dann eine schöne Mac-Application raus, die sich durch Doppelklick starten lässt. (Ich bin mir nicht sicher, ob XCode dafür installiert sein muss, damit das Packagen funktioniert. Bei mir war’s drauf.) Ist dann halt > 100 MB, aber egal. :-]

Amazon Prime Video und Netflix auf dem Raspberry Pi – Update

Alles ist nun viel einfacher als im letzten Artikel beschrieben. Kodi 18 ist inzwischen aktuell, der ganze Kram mit experimentellen Builds ist Vergangenheit und man muss nicht mal LibreELEC nehmen, sondern kann Kodi unter Raspbian laufen lassen und parallel zu einem Desktop oder RetroPie betreiben.

Das Amazon Prime Plugin muss man sich aber immer noch aus dem Sandmann79 Repository besorgen, das vorher manuell einzutragen ist.

In den Einstellungen des Amazon VOD Plugins musste ich dann noch die Region händisch einstellen, sonst ging der Login nicht.

Außerdem muss (mit apt) das Paket kodi-inputstream-adaptive installiert sein, sonst kann das vom Amazon-Plugin mitinstallierte InputStreamHelper-Plugin in Kodi das Widevine-Geraffel (für’s CRM) nicht herunterladen.

Und dann war halt noch so Kindergartenzeugs einzustellen, wie z.B. der Audio-Kanal, wenn auf einmal der Center-Kanal fehlt…

Für Netflix muss händisch noch Pycryptodome installieren. pip install pycryptodomex

Python: Versionshorror bei Packages

Zwei Python-Packages haben mich gestern und heute mit Bugs unter macos Catalina geärgert:

PyGame

Das noch aktuelle PyGame 1.9.6 läuft auf Macs mit Retina-Display unbrauchbar langsam. Der Full-Screen-Modus bringt nur bedingt Abhilfe. Die Developer-Version von PyGame 2 läuft dagegen normal.

Hat wohl was mit SDL1 zu tun, ist bekannt und mit SDL2 gefixt. PyGame 1 mit SDL2 sollte sich eigentlich über Homebrew compilieren lassen, hat bei mir aber mit einer Compiler-Fehlermeldung abgebrochen. Hab’s dann aufgegeben, da sich PyGame 2 als Wheel installieren lässt. Von Python 3.8 sollte man wohl auch eher absehen.

Nachtrag: Bei PyGame 2 unter Windows scheint es wohl Probleme mit dem Alpha-Kanal zu geben, was Auswirkung auf die Kollisionserkennung mit Maske sowie die Darstellung hat.

asciimatics

Die Version 1.11.0 bringt in der Initialisierungsphase einen Fehler bei curses.cbreak(). Möglicherweise hat sich da was bei Catalina geändert, hab ich dann gestern nicht mehr weiter verfolgt, weil es mich in den Wahnsinn getrieben hat. Die ältere Version 1.10.0 läuft normal.

Mit dem Zug durch Australien

Wir bereisten kürzlich Australien und natürlich wollten wir das zum größtmöglichen Teil mit dem Zug tun. Diese Zugfahrten sollen nun hier dokumentiert werden.

Benutzt wurden:

  • die Straßenbahn Melbourne
  • der „Overland“ Melbourne-Adelaide
  • der „Ghan“ Adelaide-Darwin
  • die „Kuranda Scenic Railway“ bei Cairns
  • der „XPT“ Brisbane-Sydney
  • sowie Vorortzüge in Brisbane und Sydney.
Mit dem Zug durch Australien weiterlesen

Schnorcheln am Riff

Wir waren neulich in Australien schnorcheln und haben ein bisschen was gefilmt.

Schnorcheln am Riff

Die Musik kommt aus dem Free Music Archive und ist Creative Commons CC0 lizenziert. Rafael Archangel: Deep Dive und TRG Banks: Indian Pacific.

Die Standbilder von uns am Ende stammen von dem tollen Bordfotografen, den man im Video kurz davor noch sieht, wie er ein Foto der Schildkröte macht.

Das Video gibt es auch in Full HD (ca. 1,1 GB) oder in 4K-Auflösung (ca. 1,4 GB).

Notizen zu Machine Learning, Teil 2

Ressourcen

Zunächst mal ein Hinweis auf einen ziemlich unterbewerteten YouTube-Kanal zum Thema Machine Learning: Introduction to Machine Learning von Lukas Biewald, Gründer von Weights & Biases und Figure Eight.

Auch interessant, wenn es um Bildverarbeitung mit neuronalen Netzen und Python geht: pyimagesearch

Ein genereller KI-Kurs, der natürlich auch Machine Learning beinhaltet, wird vom MIT bereitgestellt.