Archive for Coding

Can Laya play Flappy Bird?

Friday and Saturday I was at Socrates Austria. The claim floating around the room was that Jev (TypeSafe AI) can play Doom – not through pixels, but through structured game state (enemy positions, distances, angles as JSON) that Jev translates into an action ~10x/second. Impressive stuff. Someone in the crowd mentioned Laya: supposedly the open-source answer to Jev, same model category, “System 1” is what they call it, typed values instead of free text. Tried it on the spot on a laptop, just to see if Laya could pull off something comparable. Failed pretty badly. No clean setup, no measurement, just the impression: this thing doesn’t react to the state at all. Still in the session, a second, equally quick reality check on something more mundane: classifying a support ticket. Similarly underwhelming. No clear differentiation, flat answers, basically the same output no matter what you feed it. So I wanted to know for real, properly set up instead of improvised. No Doom, I don’t have a ViZDoom setup lying around, but Flappy Bird as an obviously simpler test with the same core idea: structured state instead of pixels, Laya interprets it and outputs the action (flap or don’t). That’s the experiment documented below. Spoiler: the numbers at the end look a lot better than the improvised first attempt — but the underlying skepticism from that weekend only partially went away.

Laya isn’t a classic LLM, it’s a non-autoregressive, bidirectional encoder (backbone: answerdotai/ModernBERT-large, ~400M parameters) that returns one of three answer types for a given state – choice (selection + probabilities), score (ordinal rating), or noul (calibrated yes/no probability). According to the docs it’s built for email routing, spam guardrails, support ticketing – classic business classification, no vision, no control tasks. Exactly the category where the quick support-ticket test had already made me suspicious. Read more

DOMINATE THE VOID

Ich hab ein Spiel gebaut. Mit meinem Sohn. In ~20 Stunden. Zu 100% mit KI.

VoidGalaxy ist ein browserbasiertes Space-Strategy-Game – Planeten verwalten, Schiffe bauen, Forschung betreiben, Allianzen schmieden, gegen KI-Bots und andere Spieler*innen antreten. Kein Prototyp. Ein fast fertiges Spiel. Es basiert stark auf PvP Games aus meiner Jugend. DarkGalaxy, TheColonies, uvm.

Login and main screen of voidgalaxy.de showing a planet and a login mask
Screenshot of voidgalaxy.de showing the galaxy map
Screenshot of the planet overview showing the overall resources and the build stack

Ich hab keinen Game-Dev-Background. Kein Team. Nur Prompts, Iteration und einen neugierigen Sohn der mitgedacht hat.

Was mich am meisten überrascht hat: wie gut die KI-Bots als Mitspieler geworden sind – jeder mit eigener Strategie, Colonizer, Settler, Pirat. Und dann noch das: eine Score-Card ist einfach in der Planetenansicht aufgetaucht – die zeigt wie sich der Planet über die Zeit entwickelt hat. Ich hab die nie angefragt. Die KI hat einfach entschieden, dass es Sinn ergibt. Und hatte recht. Deployment, Scripte, TestCases (aktuell 924) und Integrationstests all das haben die Agenten gebaut. Wobei der DevOps-Agent sich langweilt, glaube ich wenigstens :)

Das ist für mich der eigentliche Punkt bei Agentic Coding: es geht nicht darum, Entwickler*innen zu ersetzen. Es geht darum, was möglich wird, wenn die Hürde für Komplexität sinkt. Saubere Architektur und klare Absicht zählen dabei mehr denn je – die KI verstärkt was sie vorfindet. Meine Roadmap, Spec and Anleitungsdokument sind rießig geworden, da steckt meine Arbeit drin. Und so kann man schnell erreichen.

Bald startet der erste öffentlichen Beta-Test: www.voidgalaxy.de

Hurrah! This web page is cleaner than 94% of web pages tested…

In den letzten Wochen habe ich mich immer wieder mit dem Thema Nachhaltigkeit in der Softwareentwicklung beschäftigt und vorallem viel über die Optimierung von Webseiten gelesen, gesehen und gehört.

Also habe ich mich auf die Reise gemacht und versucht diesen Blog in Richtung Nachhaltigkeit zu optimieren. Gestartet bin ich mit 0,44 g C02 beim Laden der Startseite und einem guten Startpunkt von “cleaner than 78%”. Diesen Wert ermittelt für uns der Website Carbon Calculator.

Die erste Maßnahme war es alle Tracker und Abhängigkeiten von der Seite zu entfernen. Diese waren hauptsächlich in installierten Plugins zu suchen. So habe ich z.B. die Socialmedia Buttons und das Jetpack entfernt.

Read more

Creating a Webapp for Ubports

I will just place this guide here, the review process for the original documentation for ubports was to much.

Creating a Webapp

Webapps are small applications, that load content in a browser. This tutorial for ubuntu will just create a starter for a webpage, that can be displayed easily in a mobile device.

alternate-webapp-generator

The alternate-webapp-generator will download all the stuff you need for a webapp and will add the the url, icon and a lot of meta-information to the app. In the end a .click package will be created, which can be uploaded to the OpenStore

Download the following zip-file and unzip

wget https://raw.githubusercontent.com/Winael/ubuntu/master/ubuntuphone/webapps/Reboot/alternate-webapp-generator.zip

Make the app-creator executable:

chmod +x /path/to/alternate-webapp-generator.sh

In the zip package a file named config.cfg is included. We will have to edit this file now:

#config.cfg

export namespace="namespace"

export app_name="yourname"
export app_title="YourTitle"
export app_url="https://ubports.com/"
export app_description="A webapp"
export app_UA="Mozilla/5.0 (Linux; Android 5.0; Nexus 5) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Mobile Safari/537.36"
export app_version="0.1"

export maintainer_name="yourname"
export maintainer_email="your@email.com

export icon_path="/path/on/your/harddisk"

Its important that the namespace and the app_name is in lowercase – if you add it in uppercase the build will fail. Lets build the webapp now

./alternate-webapp-generator.sh

This should now create a folder in the same directory which is named after the app_name attribute from the config.cfg In this folder you will find a file called: app_name.namespace_app_version_all.click

Upload it to OpenStore

This package can now be uploaded to OpenStore. Just login with your github or ubuntuone account and follow the instructions on the screen.

Here is the video to this post: Dritte Wahl – Scotty

#ipes-ent App im OpenStore

Lange ists her, dass ich hier etwas geschrieben habe. Aber heute Morgen habe ich endlich meine Ubuntu Webapp auf den OpenStore portiert. Ihr findet die App nun hier:

https://open.uappexplorer.com/app/ipes-ent.ipes-ent

und ihr könnt sie nun auch einfach unter UbPorts installieren. Ich würde vorschlagen, dass man es nur noch aus dem OpenStore beziehen sollte. Einfach die App auf eurem #ubuntuphone im normalen Store installieren.

Der Song zum Post

Abstürzende Brieftauben – Nie wieder Pegida