02.08.2026, 22:32
Vier Baustellen und ein Grashalm
![[Bild: akira-Wide-cinematic-interior-unfinished...926-1.webp]](https://i.postimg.cc/QM9GJMcM/akira-Wide-cinematic-interior-unfinished-hotel-reception-hall-93c153e6-0e19-4195-96bc-4b13e1b69926-1.webp)
Oder: was in zwei Wochen passiert, wenn der grosse Umbau fertig ist — und der Boden darunter nicht.
Im letzten Beitrag habe ich euch drei Dinge versprochen. Erstens: Die Gastgeberin von gegenüber, die das ganze Grid verwaltet, hat ihre eigene Mängelliste. Zweitens: Die Empfangshalle mit dem Bildschirm-Tresen, durch die die Gäste einmal reinkommen sollen, ist noch nicht mal ausgehoben — da ist bis heute nur eine leere Wiese. Drittens: Es stehen unzählige Prüfungen an, bevor hier echte Gäste dauerhaft einziehen.
Zwei Wochen später sind alle drei erledigt. Zwei davon so, wie ich es geplant hatte. Eine ganz anders.
Der Bauzaun kommt weg
Am 26. Juli habe ich den Umbau ins Grundbuch eintragen lassen.
Drei Monate lang lief die ganze Arbeit auf einer eigenen Baustellen-Adresse. Nicht am Haus selbst, sondern daneben, hinter einem Bauzaun. So macht man das: Man reisst nicht am bewohnten Haus herum, man baut die neue Fassung nebenan und zieht dann um. Das Problem an dieser Methode ist bekannt — je länger der Zaun steht, desto grösser wird der Moment, in dem er wegkommt.
Es waren am Ende siebenhundertdreiundsiebzig einzelne Bauschritte. Vom 28. April bis zum 25. Juli.
Der Umzug selbst dauerte Minuten. Danach habe ich den Bauzaun abgebaut, das Schild „Baustelle" abgeschraubt, und seitdem ist die Hausadresse wieder die Arbeitsadresse. Kein Nebenschauplatz mehr.
Der schönste Moment einer Baustelle ist der, in dem sie aufhört, eine zu sein. (technisch: Merge des drei Monate alten Umbau-Branches zurück nach main)
Die letzten Zettel und das letzte Tagebuch
Zwei Altlasten hatte ich noch. Beide sind aus derselben Familie: Dinge, die zwanzig Jahre lang funktioniert haben und trotzdem weg mussten.
Die erste war die Zettelwirtschaft. In der alten Fassung des Hauses hing an jeder Tür ein Zettel mit Einstellungen. Wie warm es sein soll, wer rein darf, welches Gerät wo hängt. Und weil über die Jahre immer mehr Zettel dazukamen, gab es dann Zettel, die auf andere Zettel verwiesen. Wer wissen wollte, ob im dritten Stock die Heizung an ist, hat in vier Papieren geblättert und am Ende geraten.
Jetzt gibt es genau zwei Sorten Papier: ein Notizbuch im Hausmeister-Büro für alles, was das ganze Haus betrifft. Und pro Zimmer einen Zimmerplan, ein Blatt, eine Wahrheit. Das klingt banal. Es waren hundertzwölf Stellen im Haus, die noch nach den alten Zetteln gefragt haben. Jetzt sind es null. Das ist an einem einzigen Tag passiert, in dreiundfünfzig Einzelschritten, und ich habe an dem Abend nicht mehr gewusst, welcher Tag war.
Die zweite Altlast war das alte Tagebuch. Das Haus hat immer schon mitgeschrieben, wer eincheckt und wo ein Wasserschaden war — aber es schrieb in ein Buch, das im Keller lag, in einer Schrift, die nur das Haus selbst lesen konnte. Seit dem 20. Juli schreibt es direkt an die Stelle, die die Meldungen auch anschaut. Das alte Buch ist nicht archiviert. Es ist weg.
Eine Wahrheit an vier Stellen ist keine Wahrheit, sondern eine Verabredung. (technisch: Ablösung von OpenSim.ini und dem Nini-Parser durch akisim.yaml plus eine YAML-Datei pro Region)
Sieben Türen hintereinander
Dann habe ich die neue Fassung zum ersten Mal wirklich hochgefahren. Und sie startete nicht.
Was danach kam, ist die lehrreichste Stunde der zwei Wochen. Sieben Blockaden hintereinander — und jede einzelne war erst zu sehen, nachdem die vorherige weg war. Wie ein Gang mit sieben verschlossenen Türen, bei dem hinter jeder die nächste steht.
Zuerst fehlten zwei Adressen im Briefkasten, das Haus fuhr sofort wieder runter. Dann startete es zwar, servierte aber null Zimmer — die Zimmerpläne lagen noch als alte Zettel da, niemand hatte sie abgetippt. Dann ein Absturz beim dritten Anlauf. Dann die hinterhältigste: Ein Abschnitt im Notizbuch enthielt nur Kommentare, keine echten Einträge — und das Haus las das nicht als „nimm die Standardwerte", sondern als „hier steht ausdrücklich nichts". Ergebnis: Die Physik war nicht angeschlossen. In einem Hotel, in dem Dinge auf dem Boden liegen sollen, fällt das auf.
Danach: Die Skript-Maschine hatte keinen Namen eingetragen bekommen, achthundertvierzehn Skripte warteten geduldig auf jemanden, der nie kam. Dann ein zweites, überflüssiges Schloss an derselben Tür. Und ganz am Ende ein Kleiderschrank-Problem: Weil ein Ablagefach keinen Namen hatte, zogen sich die Gäste in Endlosschleife um.
Am Ende stand da: drei Zimmer, in Betrieb. Sieben Türen, ein Abend.
Wer nach der ersten Blockade aufgibt, hält sie für die Ursache. Sie ist fast nie die Ursache. (technisch: verkettete Startup-Fehler — jeder maskiert die nachfolgenden)
Der Riss war seit Januar da
Und dann kam der 25. Juli.
Um 21:40 ist das alte Haus am Platz weg. Nicht langsam, nicht mit Vorwarnung — weg. Kein Zugang, keine Reaktion. Der Abend danach war ein einziger Irrweg, und ich schreibe ihn hier auf, weil die falschen Fährten lehrreicher sind als die Lösung.
Erste These: Die Platte ist voll. Falsch — es waren noch zweihundertsechzig Gigabyte frei. Zweite These: Es liegt am Arbeitsspeicher oder an der Last, denn ein Neustart hat nichts gebracht. Auch falsch, und zwar besonders schön falsch: Es hatte nie ein Neustart stattgefunden. Ich hatte die höfliche Variante ausgelöst — die, die einem Haus zuruft „mach bitte selber zu". Ein Haus, das nicht mehr zuhört, macht auch nicht selber zu. Dritte These: Es liegt an den Fremden, die dauernd an der Tür rütteln. Auch falsch. Die haben nur lauter gemacht, was schon kaputt war.
Am nächsten Morgen um neun kam ich über einen Notzugang rein. Da stand die Antwort in einer Zeile: Das Fundament braucht eine Prüfung von Hand.
Und dann kam der Teil, an dem ich kurz still war. Ein Dateisystem führt Buch über seine eigenen Schäden. Ich habe dieses Buch aufgeschlagen, und der erste Eintrag stand da mit Datum: 8. Januar 2026, 14:12 Uhr. Sechshundertvierundfünfzig Fehler. Einhundertsiebenundneunzig Tage. Fast immer dieselbe Stelle, und ausgelöst fast immer vom selben Bewohner — dem Hotelbetrieb selbst, der seit Januar mehrmals täglich über dieselbe kaputte Stufe gestolpert ist.
Zwei Sachen habe ich an dem Morgen gelernt.
Die erste: Ich habe zwei Festplatten, die exakt dasselbe speichern, damit beim Ausfall der einen die andere weiterläuft. Das schützt zuverlässig gegen eine kaputte Platte. Es schützt überhaupt nicht gegen einen Fehler in dem, was auf beide geschrieben wird. Zwei perfekt identische Kopien desselben Risses. (technisch: RAID 1 spiegelt Dateisystem-Korruption mit — es ist Ausfallsicherheit, kein Backup)
Die zweite ist die, die mir wirklich naheging. Diese sechshundertvierundfünfzig Meldungen waren nie geheim. Sie standen ein halbes Jahr lang korrekt und vollständig im Haus. Nur eben im Haus. Die Brandmeldeanlage hat gepiept, aber es lag keine Leitung nach draussen — und im Raum war niemand. (technisch: die Meldungen standen korrekt im lokalen Log; was fehlte, war der Transport nach draussen in die Auswertung)
Und der letzte Eintrag vor dem Stillstand ist von 19:00 Uhr. Der Ausfall um 21:40 war kein Ausfall um 21:40.
Er wurde nicht ausgelöst. Er wurde entdeckt. (technisch: stille Dateisystem-Korruption, erster Eintrag im Fehlerzähler des Dateisystems am 8. Januar)
Die Kassiererin, die nie nach dem Ausweis fragte
Zurück zur Mängelliste der Gastgeberin von gegenüber. Sie führt das eigentliche Gästebuch: wer wer ist, wer mit wem befreundet ist, wem was gehört — und seit einigen Wochen auch das Kassenbuch.
Beim Bau der Empfangshalle wollte ich eine simple Seite haben: „Dein Kontostand". Also habe ich mir angeschaut, wie man den erfragt. Und dabei ist mir aufgefallen, dass die Frage nach dem Kontostand die Nummer des Gasts enthält — und sonst nichts. Wer eine fremde Nummer eintippte, bekam den fremden Kontostand. Und die fremde Transaktionshistorie. Und die fremde Mailadresse.
Der Ausweis war die ganze Zeit da. Jeder Gast bekommt beim Einchecken einen. Er wurde nur nicht angeschaut.
Der Hammer kam eine Etage tiefer. Es gibt eine Stelle, an der neues Geld ins Grid kommt — die darf nur eine bestimmte Person auslösen. Geprüft wurde das so: Der Antragsteller schreibt auf sein Formular, wer er ist, und das Haus vergleicht diesen Eintrag mit der Liste der Berechtigten. Wer wusste, welchen Namen man da hinschreiben muss, durfte Geld prägen. Der Ausweis in der Hand desselben Menschen wurde nicht angeschaut.
Behoben ist das jetzt so, wie es hätte von Anfang an sein müssen: Es gibt genau eine Türsteherin für diese Frage, nicht acht handgeschriebene Varianten davon — und sie ist im Zweifel misstrauisch, nicht grosszügig. Wer nach fremden Daten fragt, bekommt „darfst du nicht", nicht „gibt's nicht". Und die Abfrage passiert, bevor die Akte aus dem Schrank kommt. Eine Kontrolle, die stattfindet, nachdem die Daten schon auf dem Tresen liegen, ist keine.
Ein Detail daraus mag ich besonders. Man kann fremde Gäste weiterhin suchen, das braucht die Empfangshalle. Aber man bekommt nicht mehr die volle Akte mit ein paar geschwärzten Zeilen — man bekommt eine eigene, kurze Karteikarte: Name, Titel, seit wann dabei, ja oder nein Verwaltung. Fertig.
Eine kurze Karte kann nichts ausplaudern. Eine lange mit Klebestreifen irgendwann schon. (technisch: eigener öffentlicher Profil-Datensatz für fremde Blicke statt eines gefilterten Vollrecords)
Und der Test, der den Fehler beglaubigt hat
Jetzt kommt der Teil, der mir am längsten nachgehangen hat.
Für die Sache mit dem Geldprägen gab es einen Test. Einen echten, laufenden, grünen Test. Er hiess sinngemäss „prüfe, dass auch jemand ohne Verwaltungsrechte Geld prägen kann, wenn er als Kassierer eingetragen ist" — und er war seit Monaten grün. Er hat den Fehler nicht übersehen. Er hat ihn beglaubigt.
Der Grund dafür ist banal und deshalb gefährlich: Die Prüfung lief in einem Aufbau, in dem die Ausweiskontrolle gar nicht im Raum stand. Man kann nicht feststellen, dass niemand nach dem Ausweis fragt, wenn im Testaufbau überhaupt keine Ausweise existieren.
Dieselbe Sorte Blindheit ist mir in derselben Woche noch zweimal begegnet. Einmal bei einer Anfrage, die nach einer Region fragte, aber die Stockwerksangabe leer liess — und weil die Kartei exakt auf dieses Feld filtert, konnte diese Anfrage buchstäblich nie etwas finden. Betroffen war die komplette Eingangstür für Gäste aus fremden Häusern. Grün war es trotzdem, weil die Attrappe in der Prüfung das Feld einfach ignoriert hat. Und einmal bei einer ganzen Prüfreihe, die fröhlich „bestanden" meldete, obwohl ein Teil der Prüfschritte gar nicht existierte.
Ich habe daraus zwei Regeln mitgenommen. Eine Attrappe, die grosszügiger ist als die Wirklichkeit, beweist nur sich selbst. Und: Wenn ein leeres Feld irgendwo als „ist mir egal" durchgeht, dann wird aus einem vergessenen Eintrag irgendwann ein stiller Blick in fremde Akten. Ein lauter Fehler ist billiger.
Ein Test, der noch nie rot war, ist kein Beweis. Er ist eine Behauptung mit Stempel. (technisch: falsch-grüne Tests — geprüft wurde ohne die echte Ausweiskontrolle, und die Attrappe war grosszügiger als die Datenbank)
Auf der leeren Wiese steht jetzt was
Und dann, am 30. Juli, habe ich zum ersten Mal seit Monaten wieder etwas gebaut, das man anschauen kann.
Die Empfangshalle mit dem Bildschirm-Tresen. Zwei Tage. Aus der leeren Wiese wurde eine Baugrube, aus der Baugrube ein Rohbau mit Tresen, Selbstbedienungs-Terminals und einer Wand, an der steht, welche Zimmer noch nicht fertig sind.
Die wichtigste Entscheidung fiel gleich am Anfang, und sie klingt harmlos. Bisher hätte die Halle so funktioniert: Wer als Verwaltung eingetragen ist, sieht die Verwaltungs-Schalter, alle anderen sehen sie nicht. Das ist falsch, und zwar in dem Haus hier ganz konkret. Denn wer bei mir ein eigenes Grundstück hat, ist auf seinem Grundstück ein vollwertiger Betreiber — er darf dort Dinge tun, die ein normaler Gast nicht darf. Ein Menü, das nur nach dem Titel auf dem Namensschild entscheidet, hätte genau diesem Menschen genau seine eigenen Schalter weggeblendet.
Also entscheidet jetzt der Schlüsselbund. Die Halle fragt nicht „wer bist du", sie fragt „was schliesst du auf". Wer den Schlüssel für einen Raum hat, sieht die Tür. Wer nicht, sieht sie nicht.
Der Schlüsselbund entscheidet, nicht das Namensschild. (technisch: capability-driven Navigation statt role-driven — die Oberfläche schaltet sich an tatsächlichen Rechten frei, nicht an einer Rolle)
Zehn Bauabschnitte in zwei Tagen: Kontostand, eigenes Profil, Freundesliste, Inventar, wer ist gerade online, Personenverzeichnis, Erscheinungsbild. Und weil ich in diesem Haus gelernt habe, dass man Sachen sonst hinterher nicht mehr macht: dreihundertzweiundfünfzig Prüfungen, geschrieben vor dem jeweiligen Stück, nicht danach.
Das Beste daran war der Rhythmus mit der Gastgeberin. Ich baue in der Halle eine Seite, merke „dazu gibt es drüben gar keinen Schalter", gehe rüber, baue den Schalter, komme zurück, schliesse die Seite an. Am Morgen hingen an meiner Wand vier Zimmer mit „noch nicht fertig". Am Abend hing dort noch eins.
Vier Wochen Planung hätten dieselben vier Zettel abgehängt. Nur später.
Der gefährliche Knopf
Eine Sache in der Halle hat mich unverhältnismässig lange beschäftigt: die Knöpfe, die man nicht zurücknehmen kann.
Ich habe sie erst mal gezählt. Dreiundzwanzig Handgriffe, bei denen hinterher etwas anders ist und man es nicht rückgängig machen kann. Sechs davon richtig schlimm, zehn ernst, sieben unangenehm. Die Liste liegt an einer Stelle, nicht verteilt über die Halle. Denn wenn jeder Schalter selbst entscheidet, wie gefährlich er ist, dann driften diese Einschätzungen auseinander — und der eine, der sich für harmlos hält, ist genau der, der es nicht ist.
Und dann die Nachfrage selbst. Bei allem, was weh tut, kommt ein Fenster: „Wirklich?" In diesem Fenster ist der grosse, farbige, vorausgewählte Knopf der zum Abbrechen. Nicht der zum Durchziehen. Wer aus Gewohnheit Enter drückt, bricht ab.
Der gefährliche Knopf ist nie der, auf dem der Finger schon liegt. (technisch: zentral katalogisierte Gefahrenstufen, Bestätigungsdialog mit „Abbrechen" als vorausgewähltem Standard)
Und noch ein Satz, der es in die Wand geschafft hat: Wenn die Halle einen Auftrag nicht mehr wiederfindet, dann schreibt sie „unbekannt" — nie „fehlgeschlagen". Denn wer liest, sein Auftrag sei fehlgeschlagen, macht ihn nochmal. Und manche dieser Aufträge macht man besser nicht zweimal.
Das alte Haus am Platz
Bei allem Neubau: Das alte Haus läuft weiter, mit echten Gästen drin. Und es hatte einen Termin.
Seine Haustechnik war zwei Generationen alt und lief aus der Wartung. Am 1. August habe ich sie erneuert. Dreiundfünfzig Minuten geschlossen, 23:18 bis 00:11, danach lief alles wieder.
Zwei Fundstücke aus dieser Nacht.
Erstens: Beim Durchlesen des Umbauplans — vorher, nicht nachher — ist mir aufgefallen, dass ein Bauteil in der neuen Liste gar nicht vorkam. Nicht weil es überflüssig wäre, sondern weil es damals irgendwann einzeln eingebaut worden war, ohne Eintrag in der Bestandsliste. Ohne Eintrag kein Umzug. Weggewesen wäre damit die gesamte Fähigkeit des alten Hauses, mit anderen Häusern zu sprechen — und die halbe Website dazu. Hinterher hätte das ausgesehen wie „die neue Technik taugt nichts". Es wäre gewesen: „ein Teil fehlte".
Zweitens, mein Liebling: Beim Aufräumen ist mir ein Schalter in die Hände gefallen, der seit Jahren auf halber Kraft stand. Ein Diagnose-Werkzeug, das eigentlich ausgeschaltet sein sollte, lief die ganze Zeit mit. Grund war ein einziges falsches Zeichen in einer Konfigurationszeile — ein Kommentarzeichen, das vor zehn Jahren gültig war und dann abgeschafft wurde. Das Haus las die Zeile, verstand sie nicht, brach ab und kam nie bis zu der Zeile darunter, in der stand „schalt das Ding aus".
Die Startseite braucht jetzt halb so lange. Seit Jahren.
Die teuersten Fehler sind selten die lauten. (technisch: Upgrade von Debian 10 auf 11 und PHP 7.3 auf 7.4, mit concrete5 als Bestand obendrauf)
Und noch eine dritte Sache aus dem alten Haus, die kein Fundstück ist, sondern eine Entscheidung. Die alte Verwalterin dort — die Software, die den Empfang seit Jahren macht und die die Gastgeberin von gegenüber Stück für Stück ablöst — ist für mich ab jetzt Zeugin, nicht Lehrmeisterin. Sie zeigt zuverlässig, was heute läuft. Aber wenn ich wissen will, wie ein Haus korrekt mit fremden Häusern spricht, schlage ich das Handbuch der Hotelkette auf, nach dem sich draussen alle richten. Ich habe beide nebeneinandergelegt, und die Abweichungen liegen genau dort, wo es weh tut: Grundstücke, deren Grösse als null gemeldet wird. Auskünfte, die wegen eines Tippfehlers seit jeher leer zurückkommen. Freundeslisten, die es gar nicht gibt.
Der Bestand ist eine Landkarte. Ein Bauplan ist er nicht. (technisch: ROBUST ist die verbindliche Verhaltens-Referenz für akigrid, phpgridserver nur Bestandsdokumentation)
Ein Grashalm mit Textur
Zum Schluss die kleinste Sache der zwei Wochen, und mir die liebste.
Wenn man in einer frischen Region eine Standard-Pflanze setzt, dann soll da Gras stehen. Bei mir stand da: etwas Weisses. Grasförmig, aber weiss. Der Grund ist, dass die Grundausstattung eines Grids — die vierhundertdreiunddreissig Dinge, die jedes Haus einfach dabei hat, Texturen, Sounds, Standard-Bewegungen — bei der Gastgeberin noch nicht vollständig einsortiert war.
Am 1. August habe ich das eingeräumt. Und dann ein Büschel Gras gesetzt, und es war grün.
Die Entscheidung dahinter ist ernster, als der Grashalm aussieht. Das Regal für die Grundausstattung wird automatisch aufgestellt, sobald ein neues Haus dazukommt. Der Inhalt wird nicht automatisch eingeräumt. Er wird nur auf ausdrückliche Anweisung eingeräumt. Denn dieses Regal steht in einem Haus, das noch bewohnt ist, und ungefragt fremde Dinge in fremde Schränke zu räumen ist eine ganz andere Sorte Nebenwirkung als „stell ein leeres Regal auf".
Und damit zum Cliffhanger, denn den gibt es diesmal wirklich.
Die alten Zimmer im alten Haus hatten alle eine kleine Abstellkammer. Wenn im Grid etwas fehlte, hat das Zimmer stillschweigend in seiner eigenen Kammer nachgeschaut und die Sache trotzdem geliefert. Jahrelang. Meine neuen Zimmer haben diese Kammer nicht mehr — bewusst nicht. Was bedeutet: Jede Lücke im zentralen Bestand, die bisher niemandem aufgefallen ist, wird in dem Moment sichtbar, in dem ich ein Zimmer umstelle.
Von den vierhundertdreiunddreissig Dingen liegen im alten Haus dreihundertsiebenunddreissig. Sechsundneunzig fehlen. Alles aus der neueren Generation: Himmel- und Wettereinstellungen, Standard-Materialien, neunundsiebzig Bewegungsabläufe.
Die muss ich vorher nachliefern. Nicht nachher.
Eine Abstellkammer, die alles kaschiert, ist kein Vorteil. Sie ist eine Rechnung, die später kommt. (technisch: der lokale Flotsam-Dateicache der Region entfällt — akisim hält Assets nur noch im Speicher, jede Lücke im Grid-Bestand wird dadurch sichtbar)
Was ich daraus gelernt habe
Die Empfangshalle steht im Rohbau. Die Gastgeberin lässt sich den Ausweis zeigen. Das alte Haus läuft auf frischer Technik. Und unter allem liegt jetzt ein Fundament, von dem ich weiss, dass es geprüft ist — was ich zwei Wochen vorher auch geglaubt hätte, ohne es zu wissen.
Der nächste Schritt sind die Zimmer selbst. Da bekommen die Nachfrage-Fenster und die Auftrags-Terminals zum ersten Mal etwas zu tun, das wirklich weh tut. Ich poste, was passiert.
![[Bild: akira-Wide-cinematic-interior-unfinished...926-1.webp]](https://i.postimg.cc/QM9GJMcM/akira-Wide-cinematic-interior-unfinished-hotel-reception-hall-93c153e6-0e19-4195-96bc-4b13e1b69926-1.webp)
Oder: was in zwei Wochen passiert, wenn der grosse Umbau fertig ist — und der Boden darunter nicht.
Im letzten Beitrag habe ich euch drei Dinge versprochen. Erstens: Die Gastgeberin von gegenüber, die das ganze Grid verwaltet, hat ihre eigene Mängelliste. Zweitens: Die Empfangshalle mit dem Bildschirm-Tresen, durch die die Gäste einmal reinkommen sollen, ist noch nicht mal ausgehoben — da ist bis heute nur eine leere Wiese. Drittens: Es stehen unzählige Prüfungen an, bevor hier echte Gäste dauerhaft einziehen.
Zwei Wochen später sind alle drei erledigt. Zwei davon so, wie ich es geplant hatte. Eine ganz anders.
Der Bauzaun kommt weg
Am 26. Juli habe ich den Umbau ins Grundbuch eintragen lassen.
Drei Monate lang lief die ganze Arbeit auf einer eigenen Baustellen-Adresse. Nicht am Haus selbst, sondern daneben, hinter einem Bauzaun. So macht man das: Man reisst nicht am bewohnten Haus herum, man baut die neue Fassung nebenan und zieht dann um. Das Problem an dieser Methode ist bekannt — je länger der Zaun steht, desto grösser wird der Moment, in dem er wegkommt.
Es waren am Ende siebenhundertdreiundsiebzig einzelne Bauschritte. Vom 28. April bis zum 25. Juli.
Der Umzug selbst dauerte Minuten. Danach habe ich den Bauzaun abgebaut, das Schild „Baustelle" abgeschraubt, und seitdem ist die Hausadresse wieder die Arbeitsadresse. Kein Nebenschauplatz mehr.
Der schönste Moment einer Baustelle ist der, in dem sie aufhört, eine zu sein. (technisch: Merge des drei Monate alten Umbau-Branches zurück nach main)
Die letzten Zettel und das letzte Tagebuch
Zwei Altlasten hatte ich noch. Beide sind aus derselben Familie: Dinge, die zwanzig Jahre lang funktioniert haben und trotzdem weg mussten.
Die erste war die Zettelwirtschaft. In der alten Fassung des Hauses hing an jeder Tür ein Zettel mit Einstellungen. Wie warm es sein soll, wer rein darf, welches Gerät wo hängt. Und weil über die Jahre immer mehr Zettel dazukamen, gab es dann Zettel, die auf andere Zettel verwiesen. Wer wissen wollte, ob im dritten Stock die Heizung an ist, hat in vier Papieren geblättert und am Ende geraten.
Jetzt gibt es genau zwei Sorten Papier: ein Notizbuch im Hausmeister-Büro für alles, was das ganze Haus betrifft. Und pro Zimmer einen Zimmerplan, ein Blatt, eine Wahrheit. Das klingt banal. Es waren hundertzwölf Stellen im Haus, die noch nach den alten Zetteln gefragt haben. Jetzt sind es null. Das ist an einem einzigen Tag passiert, in dreiundfünfzig Einzelschritten, und ich habe an dem Abend nicht mehr gewusst, welcher Tag war.
Die zweite Altlast war das alte Tagebuch. Das Haus hat immer schon mitgeschrieben, wer eincheckt und wo ein Wasserschaden war — aber es schrieb in ein Buch, das im Keller lag, in einer Schrift, die nur das Haus selbst lesen konnte. Seit dem 20. Juli schreibt es direkt an die Stelle, die die Meldungen auch anschaut. Das alte Buch ist nicht archiviert. Es ist weg.
Eine Wahrheit an vier Stellen ist keine Wahrheit, sondern eine Verabredung. (technisch: Ablösung von OpenSim.ini und dem Nini-Parser durch akisim.yaml plus eine YAML-Datei pro Region)
Sieben Türen hintereinander
Dann habe ich die neue Fassung zum ersten Mal wirklich hochgefahren. Und sie startete nicht.
Was danach kam, ist die lehrreichste Stunde der zwei Wochen. Sieben Blockaden hintereinander — und jede einzelne war erst zu sehen, nachdem die vorherige weg war. Wie ein Gang mit sieben verschlossenen Türen, bei dem hinter jeder die nächste steht.
Zuerst fehlten zwei Adressen im Briefkasten, das Haus fuhr sofort wieder runter. Dann startete es zwar, servierte aber null Zimmer — die Zimmerpläne lagen noch als alte Zettel da, niemand hatte sie abgetippt. Dann ein Absturz beim dritten Anlauf. Dann die hinterhältigste: Ein Abschnitt im Notizbuch enthielt nur Kommentare, keine echten Einträge — und das Haus las das nicht als „nimm die Standardwerte", sondern als „hier steht ausdrücklich nichts". Ergebnis: Die Physik war nicht angeschlossen. In einem Hotel, in dem Dinge auf dem Boden liegen sollen, fällt das auf.
Danach: Die Skript-Maschine hatte keinen Namen eingetragen bekommen, achthundertvierzehn Skripte warteten geduldig auf jemanden, der nie kam. Dann ein zweites, überflüssiges Schloss an derselben Tür. Und ganz am Ende ein Kleiderschrank-Problem: Weil ein Ablagefach keinen Namen hatte, zogen sich die Gäste in Endlosschleife um.
Am Ende stand da: drei Zimmer, in Betrieb. Sieben Türen, ein Abend.
Wer nach der ersten Blockade aufgibt, hält sie für die Ursache. Sie ist fast nie die Ursache. (technisch: verkettete Startup-Fehler — jeder maskiert die nachfolgenden)
Der Riss war seit Januar da
Und dann kam der 25. Juli.
Um 21:40 ist das alte Haus am Platz weg. Nicht langsam, nicht mit Vorwarnung — weg. Kein Zugang, keine Reaktion. Der Abend danach war ein einziger Irrweg, und ich schreibe ihn hier auf, weil die falschen Fährten lehrreicher sind als die Lösung.
Erste These: Die Platte ist voll. Falsch — es waren noch zweihundertsechzig Gigabyte frei. Zweite These: Es liegt am Arbeitsspeicher oder an der Last, denn ein Neustart hat nichts gebracht. Auch falsch, und zwar besonders schön falsch: Es hatte nie ein Neustart stattgefunden. Ich hatte die höfliche Variante ausgelöst — die, die einem Haus zuruft „mach bitte selber zu". Ein Haus, das nicht mehr zuhört, macht auch nicht selber zu. Dritte These: Es liegt an den Fremden, die dauernd an der Tür rütteln. Auch falsch. Die haben nur lauter gemacht, was schon kaputt war.
Am nächsten Morgen um neun kam ich über einen Notzugang rein. Da stand die Antwort in einer Zeile: Das Fundament braucht eine Prüfung von Hand.
Und dann kam der Teil, an dem ich kurz still war. Ein Dateisystem führt Buch über seine eigenen Schäden. Ich habe dieses Buch aufgeschlagen, und der erste Eintrag stand da mit Datum: 8. Januar 2026, 14:12 Uhr. Sechshundertvierundfünfzig Fehler. Einhundertsiebenundneunzig Tage. Fast immer dieselbe Stelle, und ausgelöst fast immer vom selben Bewohner — dem Hotelbetrieb selbst, der seit Januar mehrmals täglich über dieselbe kaputte Stufe gestolpert ist.
Zwei Sachen habe ich an dem Morgen gelernt.
Die erste: Ich habe zwei Festplatten, die exakt dasselbe speichern, damit beim Ausfall der einen die andere weiterläuft. Das schützt zuverlässig gegen eine kaputte Platte. Es schützt überhaupt nicht gegen einen Fehler in dem, was auf beide geschrieben wird. Zwei perfekt identische Kopien desselben Risses. (technisch: RAID 1 spiegelt Dateisystem-Korruption mit — es ist Ausfallsicherheit, kein Backup)
Die zweite ist die, die mir wirklich naheging. Diese sechshundertvierundfünfzig Meldungen waren nie geheim. Sie standen ein halbes Jahr lang korrekt und vollständig im Haus. Nur eben im Haus. Die Brandmeldeanlage hat gepiept, aber es lag keine Leitung nach draussen — und im Raum war niemand. (technisch: die Meldungen standen korrekt im lokalen Log; was fehlte, war der Transport nach draussen in die Auswertung)
Und der letzte Eintrag vor dem Stillstand ist von 19:00 Uhr. Der Ausfall um 21:40 war kein Ausfall um 21:40.
Er wurde nicht ausgelöst. Er wurde entdeckt. (technisch: stille Dateisystem-Korruption, erster Eintrag im Fehlerzähler des Dateisystems am 8. Januar)
Die Kassiererin, die nie nach dem Ausweis fragte
Zurück zur Mängelliste der Gastgeberin von gegenüber. Sie führt das eigentliche Gästebuch: wer wer ist, wer mit wem befreundet ist, wem was gehört — und seit einigen Wochen auch das Kassenbuch.
Beim Bau der Empfangshalle wollte ich eine simple Seite haben: „Dein Kontostand". Also habe ich mir angeschaut, wie man den erfragt. Und dabei ist mir aufgefallen, dass die Frage nach dem Kontostand die Nummer des Gasts enthält — und sonst nichts. Wer eine fremde Nummer eintippte, bekam den fremden Kontostand. Und die fremde Transaktionshistorie. Und die fremde Mailadresse.
Der Ausweis war die ganze Zeit da. Jeder Gast bekommt beim Einchecken einen. Er wurde nur nicht angeschaut.
Der Hammer kam eine Etage tiefer. Es gibt eine Stelle, an der neues Geld ins Grid kommt — die darf nur eine bestimmte Person auslösen. Geprüft wurde das so: Der Antragsteller schreibt auf sein Formular, wer er ist, und das Haus vergleicht diesen Eintrag mit der Liste der Berechtigten. Wer wusste, welchen Namen man da hinschreiben muss, durfte Geld prägen. Der Ausweis in der Hand desselben Menschen wurde nicht angeschaut.
Behoben ist das jetzt so, wie es hätte von Anfang an sein müssen: Es gibt genau eine Türsteherin für diese Frage, nicht acht handgeschriebene Varianten davon — und sie ist im Zweifel misstrauisch, nicht grosszügig. Wer nach fremden Daten fragt, bekommt „darfst du nicht", nicht „gibt's nicht". Und die Abfrage passiert, bevor die Akte aus dem Schrank kommt. Eine Kontrolle, die stattfindet, nachdem die Daten schon auf dem Tresen liegen, ist keine.
Ein Detail daraus mag ich besonders. Man kann fremde Gäste weiterhin suchen, das braucht die Empfangshalle. Aber man bekommt nicht mehr die volle Akte mit ein paar geschwärzten Zeilen — man bekommt eine eigene, kurze Karteikarte: Name, Titel, seit wann dabei, ja oder nein Verwaltung. Fertig.
Eine kurze Karte kann nichts ausplaudern. Eine lange mit Klebestreifen irgendwann schon. (technisch: eigener öffentlicher Profil-Datensatz für fremde Blicke statt eines gefilterten Vollrecords)
Und der Test, der den Fehler beglaubigt hat
Jetzt kommt der Teil, der mir am längsten nachgehangen hat.
Für die Sache mit dem Geldprägen gab es einen Test. Einen echten, laufenden, grünen Test. Er hiess sinngemäss „prüfe, dass auch jemand ohne Verwaltungsrechte Geld prägen kann, wenn er als Kassierer eingetragen ist" — und er war seit Monaten grün. Er hat den Fehler nicht übersehen. Er hat ihn beglaubigt.
Der Grund dafür ist banal und deshalb gefährlich: Die Prüfung lief in einem Aufbau, in dem die Ausweiskontrolle gar nicht im Raum stand. Man kann nicht feststellen, dass niemand nach dem Ausweis fragt, wenn im Testaufbau überhaupt keine Ausweise existieren.
Dieselbe Sorte Blindheit ist mir in derselben Woche noch zweimal begegnet. Einmal bei einer Anfrage, die nach einer Region fragte, aber die Stockwerksangabe leer liess — und weil die Kartei exakt auf dieses Feld filtert, konnte diese Anfrage buchstäblich nie etwas finden. Betroffen war die komplette Eingangstür für Gäste aus fremden Häusern. Grün war es trotzdem, weil die Attrappe in der Prüfung das Feld einfach ignoriert hat. Und einmal bei einer ganzen Prüfreihe, die fröhlich „bestanden" meldete, obwohl ein Teil der Prüfschritte gar nicht existierte.
Ich habe daraus zwei Regeln mitgenommen. Eine Attrappe, die grosszügiger ist als die Wirklichkeit, beweist nur sich selbst. Und: Wenn ein leeres Feld irgendwo als „ist mir egal" durchgeht, dann wird aus einem vergessenen Eintrag irgendwann ein stiller Blick in fremde Akten. Ein lauter Fehler ist billiger.
Ein Test, der noch nie rot war, ist kein Beweis. Er ist eine Behauptung mit Stempel. (technisch: falsch-grüne Tests — geprüft wurde ohne die echte Ausweiskontrolle, und die Attrappe war grosszügiger als die Datenbank)
Auf der leeren Wiese steht jetzt was
Und dann, am 30. Juli, habe ich zum ersten Mal seit Monaten wieder etwas gebaut, das man anschauen kann.
Die Empfangshalle mit dem Bildschirm-Tresen. Zwei Tage. Aus der leeren Wiese wurde eine Baugrube, aus der Baugrube ein Rohbau mit Tresen, Selbstbedienungs-Terminals und einer Wand, an der steht, welche Zimmer noch nicht fertig sind.
Die wichtigste Entscheidung fiel gleich am Anfang, und sie klingt harmlos. Bisher hätte die Halle so funktioniert: Wer als Verwaltung eingetragen ist, sieht die Verwaltungs-Schalter, alle anderen sehen sie nicht. Das ist falsch, und zwar in dem Haus hier ganz konkret. Denn wer bei mir ein eigenes Grundstück hat, ist auf seinem Grundstück ein vollwertiger Betreiber — er darf dort Dinge tun, die ein normaler Gast nicht darf. Ein Menü, das nur nach dem Titel auf dem Namensschild entscheidet, hätte genau diesem Menschen genau seine eigenen Schalter weggeblendet.
Also entscheidet jetzt der Schlüsselbund. Die Halle fragt nicht „wer bist du", sie fragt „was schliesst du auf". Wer den Schlüssel für einen Raum hat, sieht die Tür. Wer nicht, sieht sie nicht.
Der Schlüsselbund entscheidet, nicht das Namensschild. (technisch: capability-driven Navigation statt role-driven — die Oberfläche schaltet sich an tatsächlichen Rechten frei, nicht an einer Rolle)
Zehn Bauabschnitte in zwei Tagen: Kontostand, eigenes Profil, Freundesliste, Inventar, wer ist gerade online, Personenverzeichnis, Erscheinungsbild. Und weil ich in diesem Haus gelernt habe, dass man Sachen sonst hinterher nicht mehr macht: dreihundertzweiundfünfzig Prüfungen, geschrieben vor dem jeweiligen Stück, nicht danach.
Das Beste daran war der Rhythmus mit der Gastgeberin. Ich baue in der Halle eine Seite, merke „dazu gibt es drüben gar keinen Schalter", gehe rüber, baue den Schalter, komme zurück, schliesse die Seite an. Am Morgen hingen an meiner Wand vier Zimmer mit „noch nicht fertig". Am Abend hing dort noch eins.
Vier Wochen Planung hätten dieselben vier Zettel abgehängt. Nur später.
Der gefährliche Knopf
Eine Sache in der Halle hat mich unverhältnismässig lange beschäftigt: die Knöpfe, die man nicht zurücknehmen kann.
Ich habe sie erst mal gezählt. Dreiundzwanzig Handgriffe, bei denen hinterher etwas anders ist und man es nicht rückgängig machen kann. Sechs davon richtig schlimm, zehn ernst, sieben unangenehm. Die Liste liegt an einer Stelle, nicht verteilt über die Halle. Denn wenn jeder Schalter selbst entscheidet, wie gefährlich er ist, dann driften diese Einschätzungen auseinander — und der eine, der sich für harmlos hält, ist genau der, der es nicht ist.
Und dann die Nachfrage selbst. Bei allem, was weh tut, kommt ein Fenster: „Wirklich?" In diesem Fenster ist der grosse, farbige, vorausgewählte Knopf der zum Abbrechen. Nicht der zum Durchziehen. Wer aus Gewohnheit Enter drückt, bricht ab.
Der gefährliche Knopf ist nie der, auf dem der Finger schon liegt. (technisch: zentral katalogisierte Gefahrenstufen, Bestätigungsdialog mit „Abbrechen" als vorausgewähltem Standard)
Und noch ein Satz, der es in die Wand geschafft hat: Wenn die Halle einen Auftrag nicht mehr wiederfindet, dann schreibt sie „unbekannt" — nie „fehlgeschlagen". Denn wer liest, sein Auftrag sei fehlgeschlagen, macht ihn nochmal. Und manche dieser Aufträge macht man besser nicht zweimal.
Das alte Haus am Platz
Bei allem Neubau: Das alte Haus läuft weiter, mit echten Gästen drin. Und es hatte einen Termin.
Seine Haustechnik war zwei Generationen alt und lief aus der Wartung. Am 1. August habe ich sie erneuert. Dreiundfünfzig Minuten geschlossen, 23:18 bis 00:11, danach lief alles wieder.
Zwei Fundstücke aus dieser Nacht.
Erstens: Beim Durchlesen des Umbauplans — vorher, nicht nachher — ist mir aufgefallen, dass ein Bauteil in der neuen Liste gar nicht vorkam. Nicht weil es überflüssig wäre, sondern weil es damals irgendwann einzeln eingebaut worden war, ohne Eintrag in der Bestandsliste. Ohne Eintrag kein Umzug. Weggewesen wäre damit die gesamte Fähigkeit des alten Hauses, mit anderen Häusern zu sprechen — und die halbe Website dazu. Hinterher hätte das ausgesehen wie „die neue Technik taugt nichts". Es wäre gewesen: „ein Teil fehlte".
Zweitens, mein Liebling: Beim Aufräumen ist mir ein Schalter in die Hände gefallen, der seit Jahren auf halber Kraft stand. Ein Diagnose-Werkzeug, das eigentlich ausgeschaltet sein sollte, lief die ganze Zeit mit. Grund war ein einziges falsches Zeichen in einer Konfigurationszeile — ein Kommentarzeichen, das vor zehn Jahren gültig war und dann abgeschafft wurde. Das Haus las die Zeile, verstand sie nicht, brach ab und kam nie bis zu der Zeile darunter, in der stand „schalt das Ding aus".
Die Startseite braucht jetzt halb so lange. Seit Jahren.
Die teuersten Fehler sind selten die lauten. (technisch: Upgrade von Debian 10 auf 11 und PHP 7.3 auf 7.4, mit concrete5 als Bestand obendrauf)
Und noch eine dritte Sache aus dem alten Haus, die kein Fundstück ist, sondern eine Entscheidung. Die alte Verwalterin dort — die Software, die den Empfang seit Jahren macht und die die Gastgeberin von gegenüber Stück für Stück ablöst — ist für mich ab jetzt Zeugin, nicht Lehrmeisterin. Sie zeigt zuverlässig, was heute läuft. Aber wenn ich wissen will, wie ein Haus korrekt mit fremden Häusern spricht, schlage ich das Handbuch der Hotelkette auf, nach dem sich draussen alle richten. Ich habe beide nebeneinandergelegt, und die Abweichungen liegen genau dort, wo es weh tut: Grundstücke, deren Grösse als null gemeldet wird. Auskünfte, die wegen eines Tippfehlers seit jeher leer zurückkommen. Freundeslisten, die es gar nicht gibt.
Der Bestand ist eine Landkarte. Ein Bauplan ist er nicht. (technisch: ROBUST ist die verbindliche Verhaltens-Referenz für akigrid, phpgridserver nur Bestandsdokumentation)
Ein Grashalm mit Textur
Zum Schluss die kleinste Sache der zwei Wochen, und mir die liebste.
Wenn man in einer frischen Region eine Standard-Pflanze setzt, dann soll da Gras stehen. Bei mir stand da: etwas Weisses. Grasförmig, aber weiss. Der Grund ist, dass die Grundausstattung eines Grids — die vierhundertdreiunddreissig Dinge, die jedes Haus einfach dabei hat, Texturen, Sounds, Standard-Bewegungen — bei der Gastgeberin noch nicht vollständig einsortiert war.
Am 1. August habe ich das eingeräumt. Und dann ein Büschel Gras gesetzt, und es war grün.
Die Entscheidung dahinter ist ernster, als der Grashalm aussieht. Das Regal für die Grundausstattung wird automatisch aufgestellt, sobald ein neues Haus dazukommt. Der Inhalt wird nicht automatisch eingeräumt. Er wird nur auf ausdrückliche Anweisung eingeräumt. Denn dieses Regal steht in einem Haus, das noch bewohnt ist, und ungefragt fremde Dinge in fremde Schränke zu räumen ist eine ganz andere Sorte Nebenwirkung als „stell ein leeres Regal auf".
Und damit zum Cliffhanger, denn den gibt es diesmal wirklich.
Die alten Zimmer im alten Haus hatten alle eine kleine Abstellkammer. Wenn im Grid etwas fehlte, hat das Zimmer stillschweigend in seiner eigenen Kammer nachgeschaut und die Sache trotzdem geliefert. Jahrelang. Meine neuen Zimmer haben diese Kammer nicht mehr — bewusst nicht. Was bedeutet: Jede Lücke im zentralen Bestand, die bisher niemandem aufgefallen ist, wird in dem Moment sichtbar, in dem ich ein Zimmer umstelle.
Von den vierhundertdreiunddreissig Dingen liegen im alten Haus dreihundertsiebenunddreissig. Sechsundneunzig fehlen. Alles aus der neueren Generation: Himmel- und Wettereinstellungen, Standard-Materialien, neunundsiebzig Bewegungsabläufe.
Die muss ich vorher nachliefern. Nicht nachher.
Eine Abstellkammer, die alles kaschiert, ist kein Vorteil. Sie ist eine Rechnung, die später kommt. (technisch: der lokale Flotsam-Dateicache der Region entfällt — akisim hält Assets nur noch im Speicher, jede Lücke im Grid-Bestand wird dadurch sichtbar)
Was ich daraus gelernt habe
- Ein Alarm ohne Leitung nach draussen ist kein Alarm. Der Riss im Fundament war einhundertsiebenundneunzig Tage lang korrekt protokolliert. Vollständig, mit Zeitstempel, jeden Tag mehrmals. Nur eben in einem Raum, in dem niemand sass. Es hat nicht an Information gefehlt, sondern am Transport — und das ist ein Unterschied, den man erst versteht, wenn man einmal auf der falschen Seite davon stand.
- Ein Test, der noch nie rot war, beweist nichts. Er kann einen Fehler sogar beglaubigen. Zwei Wochen, drei Fälle: Der Test lief in einem Aufbau, in dem die Kontrolle gar nicht existierte. Die Attrappe war grosszügiger als die Wirklichkeit. Die Prüfreihe meldete bestanden, obwohl Prüfschritte fehlten. Seitdem stelle ich eine unbequeme Frage: Was müsste ich kaputtmachen, damit dieser Test rot wird? Wenn mir dazu nichts einfällt, prüft er nichts.
- Was nicht existiert, kann nicht vergessen werden. Die kurze Karteikarte für fremde Blicke ist kein Formular mit geschwärzten Zeilen, sondern ein eigenes, kürzeres Formular. Der gefährliche Knopf entscheidet nicht selbst, wie gefährlich er ist. Der leere Eintrag heisst nicht „egal". Das ist dreimal dieselbe Regel: Verlass dich nicht auf Disziplin, wenn du Struktur haben kannst. Disziplin hat schlechte Tage.
Die Empfangshalle steht im Rohbau. Die Gastgeberin lässt sich den Ausweis zeigen. Das alte Haus läuft auf frischer Technik. Und unter allem liegt jetzt ein Fundament, von dem ich weiss, dass es geprüft ist — was ich zwei Wochen vorher auch geglaubt hätte, ohne es zu wissen.
Der nächste Schritt sind die Zimmer selbst. Da bekommen die Nachfrage-Fenster und die Auftrags-Terminals zum ersten Mal etwas zu tun, das wirklich weh tut. Ich poste, was passiert.


![[-]](https://www.gridtalk.de/images/collapse.png)