PlaatService 1.0.0

A new version of PlaatService was released

v1.0.0 @wplaat (31-05-2026)
– Rewrite service with SpringBoot 4.x and Spring 7.x
– Update product versions
– Added product icons
– Added following api’s:
– / Provide product version information
– /product Provide product website
– /info Provide service information
– /swagger Provide swagger console
– Upgrade to Java 25

PlaatBattery 1.6.0

PlaatSoft has released a next version of PlaatBattery.

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

PlaatSoft has released a next version of PlaatBattery.

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

PiHole (running local DNS service)

Today i have installed “PiHole” on a Raspberry Pi and changed my Internet Provider DNS IP address to PiHole. Within 30 minutes everything was up and running. Now all the DNS requests are locally cached and bad DNS requests (for example to Ads providers) are blocked. So now i can browser without ads. Life is beautifull again! 🙂

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

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 .

PlaatRisk 0.2.0

The next version of PlaatRisk is released

Version 0.2.0 (23-03-2025)
– Frontend: Added keyboard map control logic
– Frontend: Added Player name + army size in Polygon
– Frontend: Change screen layer (map / detail part)
– Frontend: Added polygon background color based on player
– Frontend: Added realtime x, y mouse position on map
– Frontend: Added scale information on map
– Frontend: Connect to Backend WFS/GML endpoint based on BBOX< - Frontend: Added Release Notes page - Backend: Added WFS/GML POST endpoint - Backend: Added WFS/GML GET endpoint

PlaatRisk 0.1.0

The first version of PlaatRisk is released

Version 0.1.0 (14-03-2025)
– Frontend: Create GUI based on OpenLayers
– Frontend: Connect to Backend WFS/GeoJSON endpoint
– Backend: Added some Land, Army and Road geography data
– Backend: Added WFS/GeoJSON GET endpoint
– Backend: Added WFS/XSD GET endpoint
– Backend: Added Jenkinsfile pipeline configuration
– Start development