Prof. Dr. Detlef Stern

Zettelstore 0.17

Die gute Nachricht für alle Nutzer des Zettelstore: Version 0.17 ist verfügbar. Dies gilt auch für die Bibliothek, um auf den Zettelstore zuzugreifen (a.k.a Zettelstore Client).

Was gibt es an relevanten Änderungen im nun 32. Release?

Eigentlich wollte ich das Release noch etwas hinauszögern. Wie im Post zur Version 0.16 geschrieben, wollte ich mich eher um die neue Software für das Agile Studieren kümmern. Damit hatte ich begonnen. Es gibt schon eine Seite, auf der ich die Entwicklung verwalte. Etwas Programmcode ist auch schon vorhanden. Aber dann stockte es, auch weil ich für die Programmierung etwas Hardware benötige, die in das Netz meiner Behörde eingebunden sein sollte. Darauf warte ich seit November 2023.

Etwas Softwareentwicklung muss in meinem Leben sein und so programmierte ich dann doch am Zettelstore. Insgesamt sind es viele Kleinständerungen geworden, statt wenige große Änderungen.

Die Änderungen, die nicht rückwärtskompatibel sind, zuerst.

Mit 00010000000000 CONTEXT lässt sich der Kontext des Zettels 00010000000000 ermitteln. Natürlich kann man anstelle der 00010000000000 jede andere Zettelidentifikation angeben. Der Kontext eines Zettels betrifft alle Zettel, die über Vorwärts- und/oder Rückwärtsverlinkung mit dem Zettel verbunden sind, egal ob direkt oder indirekt. Ab einer gewissen Entfernung zum Ausgangszettel ist Schluss. Zusätzlich wurden auch die Schlagworte von Zetteln berücksichtigt. Aus Gründen wollte ich auf die Berücksichtung der Schlagworte verzichten können. Im Ergebnis bedeutet das CONTEXT nun nur noch die Berücksichtigung der Verlinkung. Erst mit CONTEXT FULL werden auch die Schlagworte berücksichtigt. Beide Varianten sind auf der Info-Seite eines Zettels angegeben.

Zugleich habe ich die Berechnung, wann mit einer Berücksichtung Schluss ist, geändert. Insgesamt sollten nun im Normalfall bessere Ergebnisse dargestellt werden. Natürlich lässt sich die Entfernung zum Ausgangszettel immer noch explizit angeben, zum Beispiel über die Direktive COST n, wie z.B. in 00010000000000 CONTEXT FULL COST 23. Siehe das Handbuch zu diesem Thema.

Der Metadatentyp WordSet wurde ersatzlos entfernt. Ich habe ihn nicht benötigt. Andere offenbar auch nicht. Er war teilweise fehlerhaft implementiert und niemand hatte sich beschwert. Also hat ihn niemand benutzt.

Niemand und keiner gingen in ein leeres Haus. Niemand ging vorne heraus, keiner hinten. Wer blieb im Haus?

In Vorbereitung zu einer späteren Änderung habe ich die Stufen der Log-Ausgabe erheblich reduziert. Die Stufen „sense,“ „warn,“ „fatal,“ und „panic“ wurden ersatzlos gestrichen. „sense“ wurde in „info“ integriert, „warn“ je nach konkreter Meldung in „info“ oder „error.“ Die beiden letzten wurden in „error“ integriert.

Nun die Ergänzungen.

In der Suche wurde die Aktion REDIRECT ergänzt. In der Weboberfläche wird dann nicht die Ergebnisliste der Suchabfrage angezeigt, sondern der erste Zettel. Das ist nützlich, wenn man sich sowieso den Inhalt des ersten Zettels anzeigen lassen will. Zusammen mit PICK 1 | REDIRECT wird so ein zufällig ausgewählter Zettel angezeigt. Wer keine Konfigurationszettel sehen möchte, erweitert das zu role!:configuration PICK 1 | REDIRECT. Das funktioniert auch mit der API, nur dass nun nicht die Ergebnisliste geliefert, sondern mit einem HTTP-Statuscode 302 auf den ausgewählten Zettel verwiesen wird.

In der Weboberfläche gibt nun aus eine verlinkte Suchanfrage, um Zettel mit allen Schlagworten des aktuellen Zettels auszuwählen. Gibt es mehr als drei Ergebnisse einer Suchanfrage, dann wird auf der Weboberfläche die Anzahl der Ergebnisse angezeigt. Bis drei sollte jeder Nutzer des Zettelstores zählen können. Ergab die Suchanfrage keinen Zettel, dann werden die alternativen Darstellungsformen für das Ergebnis nicht mehr angeboten.

Zettel mit der Syntax „sxn“ (das sind Zettel die Lisp-Code in meinem Sx enthalten; zum Beispiel sind das die Vorlagen für den generierten HTML-Code) werden erst bei der Evaluation der Zettel formatiert. Eingelesene Zettel mit dieser Syntax enthalten die ursprüngliche Formatierung. Damit sind beide Alternativen zugreifbar, ohne dass dies den ignoranten Nutzer wirklich betrifft.

Das war es auch schon, neben vielen kleinen Korrekturen.

Insgesamt gab es seit Version 0.13.0 nicht mehr so viele Änderungen, rein von der Anzahl her. Vielleicht ist für den einen oder die anderen etwas dabei.

Diese Version 0.17 wird die Version sein, mit der meine Studierenden im Fach „Softwaretechnik“ ab kommender Woche arbeiten werden. Auch deshalb dieser Termin für das Release.

Zusätzlich arbeitet ein Student im Rahmen seiner Abschlussarbeit an einem Aspekt des Zettelstores. Auch ihm möchte ich für die restliche Dauer seines Vorhabens etwas Stabilität geben.

Ausnahme: ein sicherheitsrelevantes Problem oder ein schwerwiegender Fehler wird gefunden. Dann gibt es eine Version 0.17.1 oder mehr.

Vielleicht hat DASgo bald doch etwas Priorität. Obwohl, die Einrichtung von (virtuellen) Servern scheint nicht das Kerngeschäft des IT-Dienstleisters meiner Behörde zu sein. Wer weiß, vielleicht irre ich mich. Alternativ baue ich am Seitenprojekt Zettel Social oder an meinem Sx-Lisp-Interpreter.

Aber wer weiß, vielleicht kommt aus dem Kreis der erzwungenen oder freiwilligen Nutzer eine Anregung, die mich umdenken lässt.