Zum Inhalt springen

Blog ·

Die Auswahl umfasst den ganzen Satz

Vierzehn Sätze nannten einen Container eine VM. Das Wort zu tauschen klappt im Englischen und bricht in sieben Sprachen, also trägt der Zweig den Satz.

Von Provibr

Ein Proxmox-Container ist in unserem Produkt schlicht ein VPS. Der Kunde bestellt einen, bekommt eine Maschine mit Adresse und Tarif, und jeder Bildschirm, der über Server spricht, spricht korrekt über ihn. Der Typ in der Datenbank sagt vm, und das stimmt: verkauft wurde ein virtueller privater Server.

Der Unterschied sitzt eine Schicht tiefer, in den Wörtern. Ein Container hat kein BIOS, keine virtuelle Festplatte in dem Sinne, in dem eine virtuelle Maschine eine hat, und keinen Gastagenten. Eine frühere Runde notierte als offenen Punkt, dass ein Satz auf einer Containerseite immer noch „die VM“ sagte. Es waren vierzehn.

Warum das Wort die falsche Einheit ist

Die naheliegende Reparatur ist ein Platzhalter dort, wo das Substantiv steht. Etwa eine Auswahl über die Ressourcenart, die „Container“ oder „VM“ liefert, mitten in den Satz gesetzt.

Im Englischen funktioniert das. Im Deutschen bricht es, weil der Artikel für die beiden Wörter nicht derselbe ist. Ebenso bricht es im Spanischen, Französischen, Italienischen, Portugiesischen und Rumänischen, und es bricht härter im Ukrainischen, wo das Substantiv an dieser Stelle eine Kasusendung tragen muss, die das eingesetzte Wort nicht hat.

Man kann dem hinterherlaufen. Fügen Sie auch eine Auswahl für den Artikel hinzu, dann eine für die Adjektivangleichung, und entdecken Sie dann, dass sich die natürliche Wortstellung ändert. Was Sie an dieser Stelle gebaut haben, ist eine kleine Grammatikmaschine, gesteuert von einer Übersetzerin, die den Satz nicht sehen darf.

Der Zweig trägt also den ganzen Satz. Eine Variante für einen Container, eine für alles andere, und die Übersetzerin schreibt beide als Satz in ihrer eigenen Sprache, statt eine Lücke in einem englischen Satz zu füllen. Der allgemeine Zweig ist byteweise gleich dem Wert, den er ersetzt hat, also hat sich nichts verschoben, was schon stimmte.

Der Zweig heißt container und nicht lxc, denn der Sicherungsreiter benutzte genau diesen Namen bereits für genau diese Frage, und sein Ansichtsmodell nennt das Feld ebenso. Zwei Schreibweisen derselben Unterscheidung in einem Katalog kosten jedes Mal ein wenig und sind jedes Mal ein Raten: die nächste Runde muss herausfinden, welche der beiden hier gilt.

Eine Auswahl, deren Zweige übereinstimmen, ist unsichtbar

Ein Test, der die Form dieser Schlüssel prüft, ob sie sich zerlegen lassen, ob beide Zweige da sind, ob das Argument überall gleich geschrieben ist, besteht auch bei einer Auswahl, deren beide Zweige genau dasselbe sagen. Das ist genau der Defekt, der hier behoben wird, eine Formprüfung ist hier also wenig wert.

Die Wache zeichnet deshalb beide Zweige, in allen neun Sprachen, und verlangt, dass der Containerzweig eines englischen Satzes das Wort nicht mehr enthält, zu dessen Entfernung er geschrieben wurde. Sie verlangt außerdem, dass die Liste selbst nicht still leergelaufen ist: eine Wache über einer leeren Liste ist das billigste Grün der Softwarewelt.

Einundzwanzig Tests, und jeder wurde bewiesen, indem er zuerst scheitern musste. Es ist dieselbe Form wie die Wache über den Wörtern zur Sicherungsabdeckung, und aus demselben Grund: der interessante Fehler ist kein Syntaxfehler, sondern ein Satz, der grammatisch tadellos und sachlich falsch ist.

Der Satz, der nie wahr war

Einer der vierzehn war überhaupt kein Wortproblem.

Der Netzwerkreiter hat eine Zeile für den Fall, dass noch keine Adressen beobachtet wurden. Sie lautete sinngemäß: noch nichts gesehen, der Gastagent muss in der VM laufen.

Auf einem Container wird dieser Satz immer gezeigt, denn der Agent liest für Container gar keine Adressen. Die Beobachtungsfunktion kehrt für diese Gastart mit einer leeren Liste zurück, bevor sie irgendetwas fragt. Der Satz stand also dauerhaft da, und solange er dastand, sagte er zwei Dinge, die nicht stimmten: dass sich das ändern könnte, sobald etwas startet, und dass das, was es ändern würde, ein Gastagent ist, den ein Container nie bekommt.

Niemand hatte gelogen. Der Satz war für virtuelle Maschinen geschrieben, für sie stimmte er, und er wurde über einen Codepfad erreicht, der einen zweiten Aufrufer bekommen hatte. Das ist der gewöhnliche Weg, auf dem ein Bildschirm etwas Falsches sagt: nicht dadurch, dass jemand eine Unwahrheit schreibt, sondern dadurch, dass ein wahrer Satz in einer Lage gezeigt wird, um die es nie ging.

Der Containerzweig sagt, was tatsächlich der Fall ist, nämlich dass Adressen innerhalb eines Containers nicht gelesen werden. Er bietet keine Hoffnung, dass die Zahl später erscheint, denn die gibt es nicht.

Alter SatzWas daran auf einem Container falsch war
VersprechenNoch nichts gesehenEs ändert sich nicht; der Code schaut nie nach
UrsacheDer Gastagent muss laufenContainer haben keinen
AbhilfeStarten Sie den GastagentenEs gibt nichts zu starten

Zwei Arten, wie die Messung aus dem falschen Grund grün wurde

Die Browserprüfung dafür wurde zuerst geschrieben und war zweimal falsch, auf Arten, die es wert sind benannt zu werden, weil beide ein bestandenes Ergebnis erzeugen.

Die erste: die Prüfung las den sichtbaren Text der Seite und suchte das Wort „Container“. Sie fand es. Es stand im Namen des Testtarifs, zz-k7-containerplan, von der Prüfung selbst gesät, während der Satz drei Zeilen darunter weiterhin „die VM“ sagte. Ein Test, der eine Vorrichtung sät und dann die ganze Seite nach einem Wort durchsucht, das diese Vorrichtung enthält, misst seinen eigenen Aufbau. Die Abhilfe ist ein Haken an dem Element, das den Satz wirklich trägt, damit die Behauptung nur von dem erfüllt werden kann, worum es geht.

Die zweite war ein echter Defekt, den die erste verdeckt hatte. Die Art, die die Auswahl steuert, wurde aus einer Bestellvariablen abgeleitet, die eine Bedingung über die Platzierung trägt, ob der Tarif überhaupt irgendwo laufen kann. Ein Containertarif ohne Platzierung kam deshalb als „kein Container“ heraus, und die Seite sagte „die VM“ auf einer Containerbestellung. Die Art kommt jetzt aus der eigenen Rechenart des Tarifs plus dem, was der Kunde gewählt hat, und keines von beiden weiß etwas über Platzierung.

Das ist die allgemeinere Form: ein Wert, der zufällig mit dem einhergeht, was Sie wissen wollen, ist nicht der Wert, den Sie wollen. Er stimmt überein, bis er es eines Tages nicht mehr tut, und an diesem Tag scheitert nichts, er sagt nur das andere.

Wenn zwei Konstanten denselben Namen tragen

Noch eine Kleinigkeit aus derselben Runde, in einer ganz anderen Wache, weil sie gut zeigt, wie eine statische Prüfung den Halt verlieren kann.

Wir haben eine Wache, die die Argumentform gemeinsam genutzter Übersetzungskonstanten projektweit über den Namen auflöst, damit ein Schlüssel, der mit einem gemeinsamen Objekt verwendet wird, dennoch abgedeckt ist. Zwei verschiedene Komponenten definierten je eine Konstante where mit unterschiedlichem Inhalt. Die Wache, die über den Namen auflöst, konnte nicht mehr sagen, welche von beiden ein Aufruf meinte, und gab sie alle auf, auch Aufrufe in einer dritten Datei, die mit keiner von beiden zu tun hatte.

Eine von beiden umzubenennen behob es. Die Lehre handelt nicht von Benennung: sie handelt davon, dass eine Wache, die Symbole über Dateien hinweg über den Namen auflöst, einen Mehrdeutigkeitsmodus hat, und dieser Modus ist Schweigen. Die Prüfung meldet nicht „zwei Kandidaten“, sie meldet über diese Aufrufe gar nichts, und die Zahl der abgedeckten Schlüssel sinkt um einen Betrag, auf den niemand achtet.

Was bewusst stehen blieb

Drei Dinge blieben, wie sie waren, und aufzuschreiben warum, gehört zur Arbeit.

Ein Satz sagt einem Kunden, dass eine Neuinstallation alles auf den Festplatten der Maschine zerstört. Auf einem Container ist das kein Wortproblem: eine Containerneuinstallation bewahrt, löscht oder schließt je Einhängepunkt aus, und der ehrliche Ersatz ist eine Aussage darüber, welche Einhängepunkte in welche Gruppe fallen. Das ist ein Bildschirm und keine Übersetzung, und er gehört zu der Runde, die ihn baut.

Ein Hinweis auf dem Bestellformular nennt ein Feld den Hostnamen der virtuellen Maschine, in einem Zusammenhang, in dem das Benannte ein Hostingkonto ist. Das ist eine inhaltliche Entscheidung und keine Containerfrage, und so zu tun als ob hätte eine Textänderung in eine Wortkorrektur geschmuggelt.

Und der Lizenzzähler sagt weiterhin VM, denn das ist, was er zählt. Die Einheit, für die ein Kunde abgerechnet wird, ist nicht die Einheit, die ein Kunde ansieht, und sie still umzubenennen ließe eine Rechnungszeile aufhören, zu einer Zahl auf einer Seite zu passen.

Was wir aufschreiben würden

  1. Legen Sie den Zweig um den Satz, nicht um das Substantiv. Wortaustausch funktioniert im Englischen und scheitert überall sonst an Artikeln und Kasus.
  2. Verwenden Sie den Zweignamen wieder, den es schon gibt. Zwei Schreibweisen einer Unterscheidung in einem Katalog sind ein Raten für jede künftige Runde.
  3. Zeichnen Sie im Test beide Zweige. Eine Auswahl, deren Zweige übereinstimmen, besteht jede Prüfung, die nur auf die Form schaut.
  4. Prüfen Sie gegen einen Haken am Element, nicht gegen die ganze Seite. Ein Vorrichtungsname, der das gesuchte Wort enthält, ist grünes Licht für nichts.
  5. Ein mitlaufender Wert ist nicht der Wert. Eine Ressourcenart aus etwas abzuleiten, das eine Platzierungsbedingung trägt, funktioniert, bis ein Tarif keine Platzierung hat.
  6. Eine Wache, die über den Namen auflöst, verstummt bei einem mehrdeutigen Namen. Sie meldet nicht die Mehrdeutigkeit, sie meldet nichts.
  7. Ein Satz kann falsch sein, ohne dass jemand eine Unwahrheit geschrieben hat. Wahr für einen Fall, erreicht über einen zweiten Aufrufer, ist der übliche Weg.

Zur Klarheit: die vierzehn Schlüssel sind in allen neun Sprachen live und bewacht. Sieben dieser Sprachen sind nur durch den Zeichentest gegangen und nicht über eine zweite Leserin, und nichts davon wurde in dieser Runde gegen einen echten Proxmox-Host ausgeführt.

Aus der Plattformarbeit an Provibr. Was sich zwischen den beiden Gastarten tatsächlich unterscheidet, steht in VM oder Container auf Proxmox, und warum eine Containerneuinstallation ein Ersatz und keine Reparatur ist, steht in einen Container neu zu installieren ist ein Ersatz.

Fangen Sie mit einem Host und einem Agenten an

Konto erstellen, den Agenten mit einem einzigen Befehl installieren und Ihren ersten Proxmox-Host verbinden. Die Testphase läuft 14 Tage und fragt nicht nach Zahlungsdaten.