Wikifunctions:Status-Updates/2024-02-22

This page is a translated version of the page Wikifunctions:Status updates/2024-02-22 and the translation is 100% complete.
Wikifunctions Status-Updates Translate

<translate> Abstract Wikipedia via mailing list</translate> <translate> Abstract Wikipedia on IRC</translate> <translate> Wikifunctions on Telegram</translate> <translate> Wikifunctions on Mastodon</translate> <translate> Wikifunctions on Twitter</translate> <translate> Wikifunctions on Facebook</translate> <translate> Wikifunctions on YouTube</translate> <translate> Wikifunctions website</translate> Translate

Aktualisierung des Funktionsmodells

Vor einigen Wochen haben wir mit einer Aktualisierung des Funktionsmodells begonnen. Die Seite wurde zu Beginn des Projekts eingerichtet und erfasste den ursprünglichen Plan für das Funktionsmodell. Sie wurde nach Vorgaben und Zielen verfasst. Die tatsächliche Umsetzung weicht in vielerlei Hinsicht davon ab. Einige dieser Abweichungen sind möglicherweise immer noch erstrebenswert, während andere sich weiterentwickelt haben (z. B. Benjamin-Arrays) und wir nicht die Absicht haben, zurückzugehen.

Die Seite, wie sie vor den Aktualisierungen war, war grundsätzlich nicht brauchbar, da sie weder den aktuellen Stand wiedergab noch wo wir landen wollen. Wir haben uns die Zeit genommen, sie von Anfang bis Ende zu aktualisieren, mit dem Ziel, das Funktionsmodell so darzustellen, wie es jetzt ist. Es wurde nun gegebenenfalls auf den aktuellen Stand aktualisiert und für die Zukunft geplante Inhalte wurden entfernt.

Dies ist ein Schritt zur Verbesserung unserer Dokumentation. Wir denken, dass das Funktionsmodell nützlich ist, aber nicht so nützlich, wie es sein könnte: Eine Reihe von Rückmeldungen, die wir erhielten, waren, dass es schwer zu lesen und zu verstehen sei. Wir haben das verstanden und denken darüber nach, mehr Dokumentation zu erstellen, die besser zugänglich ist und einem vielfältigen Publikum mehr Wege bieten kann, Wikifunctions eingehender zu verstehen, wenn sie dies wünschen.

Rückmeldungen und Kommentare sind willkommen.

Letzte Änderungen an der Software

Nach der "Reparatur"-Aktion letzte Woche haben wir uns diese Woche wieder an die Fokusfunktionen, wie vor zwei Wochen geteilt, sowie an einige kleinere Fehlerbehebungen gemacht. Wir haben unsere Arbeit an einer besseren Unterstützung für Typen fortgesetzt, mit Arbeiten an der Art und Weise, wie Benutzereingaben in einen Wert umgewandelt werden und vice versa, die wir hoffentlich bald demonstrieren und dann in der Realität verwenden können, damit der nächste Typ erstellt und verwendet werden kann, auf dem Weg zur Interaktion mit Wikidata-Lexemen und -Datenobjekten.

Wir haben eine Änderung daran vorgenommen, wie das Laden der Software für Leser funktioniert, was bedeutet, dass wir nur einen kleinen Teil der Codex-Bibliothek laden, bevor wir die Sprachsteuerungsschaltfläche auf der Seite platzieren, anstatt die gesamte Bibliothek zu beanspruchen, die zum Rendern und Interagieren mit Objekten erforderlich ist, die ein paar Zehntelsekunden später eintreffen. Dies sollte das Durchsuchen von Wikifunctions für alle Leser und Beitragenden etwas schneller machen, insbesondere für Nicht-Objektseiten. Unser Dank geht an das Team für das Design System für seine Arbeit, die dies ermöglicht hat.

Wir haben unseren Code zur Handhabung von Wikifunctions-Objekten im Frontend neu geschrieben, da er manchmal zu einem fehlerhaften Benutzererlebnis auf der Webseite führen konnte; Wir haben die Methoden umbenannt und besser dokumentiert und eine Reihe von Tests hinzugefügt, um die zuvor fehlerhaften und jetzt behobenen Verhaltensweisen zu demonstrieren (T352799).

Wir haben zwei in der Produktion aufgetretene Fehler behoben; Einer davon ist eine Fehlerprüfung bei der Verarbeitung von Funktionsaufrufen in der API (T357691) und der andere besteht darin, auf Englisch zurückzugreifen, wenn versucht wird, den Anzeigetext von Links zu ZIDs zu ändern, wenn die Sprache nicht bekannt ist (T357702). Angeregt dadurch haben wir auch den Rückfall-Code behoben, wenn versucht wird, mit einer nicht-englischen Benutzersprache auf eine nicht vorhandene Seite zuzugreifen; Bisher wurde versucht, dich auf die in deine Sprache übersetzte Seite mit dem Namen „Main Page“ umzuleiten. Jetzt wirst du jedoch korrekt zur eigentlichen Hauptseite in deiner Sprache weitergeleitet.

Wir haben die Danksagungs-Datei für den MediaWiki-Teil der Software aktualisiert, wodurch Winston Sung hinzugefügt wurde (letzte Woche begrüßt).

Funktion der Woche: Verneinung

Negation (not (Z10216)) ist eine unäre boolesche Funktion. Eine unäre Funktion ist eine mit einem einzigen Argument. Boolesche Funktionen sind Funktionen, bei denen alle Argumente vom booleschen Typ sind, d. h. sie können entweder wahr oder falsch sein und der Rückgabetyp ist ebenfalls boolesch.

 
Das NICHT-Gatter in elektrischen Schaltplänen

Verneinung nimmt einen booleschen Wert und gibt den anderen zurück: Wenn du die Verneinung von wahr anforderst, erhältst du falsch und wenn du die Verneinung von falsch anforderst, erhältst du wahr. So wird auch die Komposition implementiert: wenn der Wert wahr ist, wird falsch zurückgegeben, sonst wahr. Dies ist ein Muster, das ich bei einer Komposition sehr gerne sehe: eine Komposition, die auf fast deklarative Weise ausdrückt, was die Funktion bedeutet, ohne Rücksicht darauf, wie effizient die Implementierung ist. Ich denke immer noch über einen guten Namen dafür nach — vielleicht Definitionskompositionen? Der Nutzen dieser Definitionskompositionen besteht darin, dass sie sowohl dazu dienen, zu erklären, was die Funktion tut, als auch eine Implementierung mit hoher Zuverlässigkeit zu bieten, an der die effizienteren Implementierungen getestet werden können.

Neben der Komposition gibt es drei weitere Implementierungen:

  • In Python mit dem Schlüsselwort not
  • In JavaScript mit dem Operator !
  • Eine weitere in JavaScript mit dem Operator ! unter Verwendung einer anderen Syntax

Ich würde empfehlen, dass wir als Community eine Richtlinie zur JavaScript-Syntax erarbeiten, die vorschlägt, nur die eine oder die andere JavaScript-Implementierung zu verwenden.

Eine interessante Sache bei der Verneinung ist, dass wir, da die Eingabetypen nur eine geschlossene, kleine Menge unterschiedlicher Werte haben können, tatsächlich einen vollständigen Satz von Tests erstellen können, die jede mögliche Eingabe testen. In diesem Fall gibt es tatsächlich nur zwei mögliche Werte: wahr und falsch. Dementsprechend haben wir zwei Tests: einen, der sicherstellt, dass die Verneinung von wahr falsch ist und einen für das Gegenteil, dass die Verneinung von falsch wahr ist.

Du kannst in der Wikipedia mehr über Negation lesen.