Java RedSquare 1.0.0

The next release of RedSquare for Java is released. The following changes are made:

07-06-2025 Version 1.0.0
– Catch exception when audio fails
– Fix animation speed on linux OS
– Fix cloud user call
– Replace Maven with Gradle
– Upgraded OpenFX from 8 to 25
– Upgraded Java from 8 to 25
– Upgraded Log4J to 2.26.0

Click here to download the latest version.

Screenshot of menu

Get OpenFX working on Linux

– Check which version of java you are running.
java -version
– Download the OpenFX linux version (same version as java) from https://gluonhq.com/products/javafx
– Install openFx software in following path
/usr/lib/jvm
– Create symlink
sudo ln -s /usr/lib/jvm/javafx-sdk-25.0.3 /usr/lib/jvm/javafx
– Run JavaFx jar on commandline
java -jar –module-path /usr/lib/jvm/javafx/lib –add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web –enable-native-access=javafx.media –enable-native-access=javafx.graphics *.jar
– Enjoy

Get OpenFX working on Windows 11

– Check which version of java you are running.
java -version
– Download the windows OpenFX (same version as java) from https://gluonhq.com/products/javafx
– Install openFx software in following path
C:\Program Files\Java
– Run JavaFx jar on commandline
java -jar –module-path “C:\Program Files\Java\javafx-sdk-26.0.1\lib” –add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web –enable-native-access=javafx.media –enable-native-access=javafx.graphics *.jar
– Enjoy

PlaatService 1.1.0

A new version of PlaatService was released

Version 1.1.0 (07-06-2026)
– Enabled log4j request/response logging
– Added workaround to fix legacy V2 IP lookup logic
– Added workaround to fix legacy V2 double POST parameter values
– Added Legacy V2 (2010 – 2020 period) APIs
/action=getVersion?product=X?version=Y?os=Z
/action=getProduct?product=X?version=Y?os=Z
/action=getUser?username=X&nickname=Y
/action=setUser?username=X&nickname=Y
/action=setScore?uid=X&pid=Y&dt=12345&score=10&level=1
/action=getLocalScore?uid=X&pid=Y
/action=getGlobalScore?pid=Y
– Added new APIs: /user, /score, /release-notes

PlaatBattery 1.6.0

The next version of PlaatBattery is released.

Version 1.6.0 (17-05-2026)

  • Optimized battery mode forecast logic
  • Added logic to control the battery charge mode
  • Added about information
  • Fix some minor issues
  • Refactor source code to reduce code duplication
  • Improved Look and Feel for Mobiles

Redesigned Battery Mode Chart page

More information click here

PlaatBattery 1.5.0

The next version of PlaatBattery is released.

Version 1.5.0 (16-05-2026)

  • Added battery mode forecast logic
  • Improve performance of some charts
  • Added cleanup probe (Reduce sample rate of measurements older than 7 days)
  • Fix calculation on battery cycle / import / export chart
  • Upgrade to Spring 4.x and Jackson 3.x
  • Added systemd start scripts
  • Create installation manual

More information click here

Apache fuseki on Raspberry Pi

# Install Docker
sudo apt install docker.io docker-compose -y

# Install Fuseki
sudo docker pull secoresearch/fuseki:latest
sudo docker run -d –name fuseki –restart unless-stopped -p 3030:3030 -v fuseki-data:/fuseki -e ADMIN_PASSWORD=admin -e ENABLE_DATA_WRITE=true -e ENABLE_UPDATE=true -e ENABLE_SHACL=true -e QUERY_TIMEOUT=100000 secoresearch/fuseki:latest

# Remove Fuseki
sudo docker stop fuseki
sudo docker remove fuseki

# Control Fuseki
sudo docker ps
sudo docker start fuseki
sudo docker stop fuseki

# Show Fuseki logging
sudo docker logs -f fuseki

Kubernetes on Raspberry Pi

# Install SNAP
sudo apt-get install snap

# Upgrade SNAP
sudo snap install snapd

# Install kubernetes on master node
sudo snap install microk8s –classic

# Check kubernetes master node status
sudo snap run microk8s kubectl get all –all-namespaces

# Analyze failing pod
sudo snap run microk8s kubectl describe pod -n
sudo snap run microk8s kubectl describe pod calico-node-w75q9 -n kube-system

# Remove kubernetes on master node
sudo snap remove microk8s
sudo snap remove core20

BassieMusic Android App 2.11

PlaatSoft has released a new version of the BassieMusic Android App in the Google Play Store.

The following changes were made:
– Various changes to modernize the codebase
– Update the icon to have some more shadow
– Add themed monochrome icon
– Move some buttons around in the app bar
– Build for Android 16

Click here to download the latest version.

PlaatRisk 0.4.0

The next version of PlaatRisk is released

Version 0.4.0 (12-04-2025)
– Frontend: Make it compliant with backend again
– Frontend: Now Popup also show info for City without Player
– Backend: Added graph datastore (Apache Fuseki)
– Backend: Added game reset logic
– Backend: Geometry of new city if automatically added
– Backend: Added BAG service connection

Screenshot of the game

Example of OWL Turtle file

PREFIX ex:
PREFIX geo:
PREFIX owl:
PREFIX rdf:
PREFIX rdfs:
PREFIX xsd:

ex:Army rdf:type owl:Class;
rdfs:comment “A class representing army.”@en;
rdfs:label “Army” .

ex:hasArmy rdf:type owl:ObjectProperty;
rdfs:comment “The player has army.”@en , “The city has army.”@en;
rdfs:domain ex:Player , ex:City;
rdfs:label “has army”;
rdfs:range ex:Army .

ex:City rdf:type owl:Class;
rdfs:comment “A class representing city.”@en;
rdfs:label “City” .

ex:hasPlayer rdf:type owl:ObjectProperty;
rdfs:comment “The army has player.”@en;
rdfs:domain ex:Army;
rdfs:label “has player”;
rdfs:range ex:Player .

ex:hasCity rdf:type owl:ObjectProperty;
rdfs:comment “The army has city.”@en;
rdfs:domain ex:Army;
rdfs:label “has city”;
rdfs:range ex:City .

geo:hasGeom rdf:type owl:DatatypeProperty;
rdfs:comment “The city has geom.”@en;
rdfs:domain ex:City;
rdfs:label “has geom”;
rdfs:range geo:wktLiteral .

ex:hasConnection rdf:type owl:ObjectProperty;
rdfs:comment “The city has connection.”@en;
rdfs:domain ex:City;
rdfs:label “has connection”;
rdfs:range ex:City .

geo:hasCrs rdf:type owl:DatatypeProperty;
rdfs:comment “The city has crs.”@en;
rdfs:domain ex:City;
rdfs:label “has crs”;
rdfs:range .

ex:hasName rdf:type owl:DatatypeProperty;
rdfs:comment “The army has name.”@en , “The player has name.”@en , “The city has name.”@en;
rdfs:domain ex:Army , ex:Player , ex:City;
rdfs:label “has name”;
rdfs:range xsd:string .

ex:hasProduction rdf:type owl:DatatypeProperty;
rdfs:comment “The city has production.”@en;
rdfs:domain ex:City;
rdfs:label “has production”;
rdfs:range xsd:integer .

ex:hasSize rdf:type owl:DatatypeProperty;
rdfs:comment “The army has size.”@en;
rdfs:domain ex:Army;
rdfs:label “has size”;
rdfs:range xsd:integer .

ex:Player rdf:type owl:Class;
rdfs:comment “A class representing player.”@en;
rdfs:label “Player” .

ex:hasEmail rdf:type owl:DatatypeProperty;
rdfs:comment “The player has email.”@en;
rdfs:domain ex:Player;
rdfs:label “has email”;
rdfs:range xsd:string .