chessmail

Optimierungen chessmail-Wiki

siramon - 08. Jan '24
Dieser Beitrag richtet sich an die regelmässigen Wiki-Turnier-Betreuer:innen und Tabellenpfleger:innen.

Es gibt immer mal wieder den Fall, dass die Spiele im chessmail-Wiki nicht angezeigt werden, weil das Limit der chessmail-API erreicht wurde.

Ich werde versuchen, das Wiki etwas zu optimieren, damit diese Fehlermeldungen hoffentlich weniger auftauchen und sowas wie beim Ländercup (Aufteilung auf verschiedene Turnierseiten aus technischen Gründen) hoffentlich nicht mehr nötig sein wird.

Schreibt unten in die Kommentare, was euch momentan im Umgang mit dem Wiki gefällt oder nervt, wo ihr Optimierungspotenzial seht.

Als ersten Schritt, sehe ich Optimierungspotenzial beim wiki-internen Caching der chessmail-Partien. Die Lebensdauer des Caches ist momentan sehr kurz.

Mein erste Frage: Wäre eine Erhöhung der Lebensdauer des Caches auf 1h oder mehr für die Bearbeitung und Dokumentation im Wiki ertragbar?

Der Effekt wäre folgender:
Technisch: Beim erstmaligen Erfassen einer Partie durch die Cache-Routinen werden die partiebezogenen Infos zwischengespeichert und für mind. 1h so dargestellt, auch wenn die Partie in der Zwischenzeit weitergespielt wurde.
Darstellung: z.B. (4) - (7) für mind. 1h auch wenn die zwei Partien schon weiter als im 4. bzw. 7. Zug sind.
schach2018 - 08. Jan '24 Edited
Eine automatische Verlinkung der Partien wäre eine feine Sache, was ja bereits von SF manucoding für die Clubliga2024 erstmalig erprobt wird.
siramon - 08. Jan '24
Guter Punkt. Ja, bin sehr gespannt, wie sich das Script von SF manucoding in der Clubliga 2024 bewährt (Beitrag: https://www.chessmail.de/forum/thread.html?key=izF8TzhxIe2E&sv..) und hoffe, dass es auch für andere Turniere eingesetzt werden kann.

Zudem auch wichtig, die von SF shaack angestossene Diskussion zu den manuellen Turnieren (Beitrag: https://www.chessmail.de/forum/thread.html?key=oyuky2fI6BoK&sv..).

Andere Punkte? Rückmeldungen zu meiner Frage eingangs (Cache-Timeout)?
schach2018 - 08. Jan '24 Edited
Ich verstehe nicht so ganz, welchen praktischen Nutzen wir daraus ziehen, wenn der Cache um 1 Std. erhöht wird.

Auf welche Zeit ist der derzeitige Cache eingestellt?
toby84 - 08. Jan '24
wenn daten im cache sind, muss solange die api nicht angesprochen werden.
schach2018 - 08. Jan '24 Edited
@toby84
Danke für die Aufklärung!

Wir hatten damals für den Ländercup 2023 die Datenmenge auf zwei Turnierseiten aufgeteilt, um die Api nicht zu stark zu "beanspruchen".

Als das nicht ausreichte, hatte shaack freundlicherweise die Api - Zugriffsrate erhöht.

Aufgrund dieser beiden Maßnahmen ging die Meldung über die Überschreitung des Api-Limits stark zurück. Seit dem habe ich persönlich kaum so große Probleme mehr damit gehabt.

Nach meinen Beobachtungen hängt es andererseits entscheidend davon ab, wann (Uhrzeit und Wochentag) die User die Wikiseiten aufrufen. Es gibt sozusagen bestimmte "rush-hour"- Zeiten, die verantwortlich für die Überschreitung dieses Api-Limits sind.
manucoding - 09. Jan '24
Die Frage, die sich mir stellt, wie groß ist den die Lebensdauer des Caches aktuell?
Ich denke mit einer Lebensdauer von 5 bis 10 min. kann man leben, ein Stunde finde ich aber schon viel. Schön wäre, wenn man die Lebensdauer des Cache transparent auf der Seite anzeigen könnte, dann weiß man das die Danten, die angezeigt werden, nich ganz aktuell sind.
Ein anderer Punkt wäre, wie diese Daten vom chessmail.de Server abgefragt werden. Wenn da für jede Partie ein Abfrage gemacht wird (so wie ich es aktuell bei der automatischen Tabellenpflege für die Clubliga mache), dann ist das sehr ineffizient und belastet den Server (ich verwende auch Caching, um die Belastung auf den Server so gering wie möglich zu halten). Besser wäre es da, wenn man viele Partien mit einer Anfrage bekommen könnte, da müsste dann aber vermutlich shaack eine entsprechende API schaffen, falls es so etwas noch nicht gibt.
siramon - 13. Jan '24
Guten Abend und erstmal Entschuldigung, dass hier nichts mehr von mir kam.

shaack hat in der Zwischenzeit den Wiki-Sourcecode für Interessierte zur Verfügung gestellt -> vgl. hier: https://discord.com/channels/1083484858489245866/1194382360867..

@schach2018, @manucoding der Timeout ist momentan sehr viel kürzer als 5min.

@schach2018, danke für deine Rückmeldung, dass es im Ländercup momentan keine so grossen Probleme diesbezüglich mehr gibt. Du schreibst auch noch von Rush-Hours. Wann sind diese nach deiner Beobachtung?

@manucoding, wäre ein längeres Caching (> 10min) für dein Script in der Clubliga ein Problem? Wieso findest 1h viel? Was wäre ein Anwendungsfall bei dem 1h zu viel wäre?
Als Tabellenpfleger würden mir beispielsweise Spiele, welche innerhalb der letzten Stunde beendet wurden ggf. durch die Lappen gehen und ich würde die Punkte evtl. erst zu einem späteren Zeitpunkt aktualisieren. Aber ist das wirklich ein Problem?

"Besser wäre es da, wenn man viele Partien mit einer Anfrage bekommen könnte, da müsste dann aber vermutlich shaack eine entsprechende API schaffen, falls es so etwas noch nicht gibt."
Diese gibt es. Das Wiki ruft alle Games zusammen via API auf.
schach2018 - 13. Jan '24
So genau habe ich es nicht aufgeschrieben 😁 Ich würde davon abhängig machen, wann die meisten User online sind!
schach2018 - 13. Jan '24 Edited
@siramon
"Das Wiki ruft alle Games zusammen via API auf."

Du meinst sämtliche Partien aller laufenden Wiki-Turniere, oder?
toby84 - 13. Jan '24 Edited
wohl eher alle spiele, die auf der entsprechenden wiki-seite verlinkt dind. und jeder link öffnet eine eigene api-anfrage. außer die daten sind schon gecached.
schach2018 - 13. Jan '24 Edited
Mir wurde einmal mitgeteilt, dass die Meldung der Überschreitung des Api-Limits ebenso andere Wikiturniere zur selben Zeit betraf.
toby84 - 13. Jan '24
das wiki ist ja dasselbe. ich würde also annehmen, dass das gesamt-limit für das gesamte chessmail-wiki gilt, also alle damit in zusammenhang stehenden seiten. trotzdem wird der aufruf einer einzelnen seite nur für jeden darauf befindlichen link einen api-aufruf starten.
schach2018 - 13. Jan '24 Edited
Vor einer Minute hatte ich die Api-Meldung sowohl nach dem Aufruf der Seiten für Länderpokal2023 und für Einzelliga2024 zur gleichen Zeit erhalten.

Glücklicherweise währt dies nicht lange.
manucoding - 13. Jan '24
@siramon, vielen Dank für die Informationen. Caching der Partien im Wiki ist für mein Skript kein Problem, ich arbeite direkt mit dem editierbaren Wikitext, der keine Partieergebnisse sondern deren Links enthält.
Eine Stunde finde ich viel, weil es dann zu Irritationen kommen kann. Im Wiki wird die Partie als noch laufend angezeigt, klickt man drauf ist sie beendet, geht man zurück, wird sie wieder als laufend angezeigt. Daher finde ich wichtig, das man bei so großen Cache Zeiten, das auf der Seite kenntlich macht. Ansonsten sehe ich keine Probleme bei größeren Cache Zeiten.
Wenn der Code des Wiki öffentlich ist, dann kann ich mal schauen, wie diese API funktioniert, das könnte mein Skript vermutlich etwas schneller machen.
Wenn man die Cache Zeit einfach umstellen kann, dann kann man das doch mal testweise ändern und man schaut, wie es sich dann verhält.
schach2018 - 13. Jan '24 Edited
Die Anzeige der Cache-Zeiten halte ich für ein gutes, transparentes Instrument für alle Beteiligten.
schach2018 - 14. Jan '24
Eine Dark Mode Einstellung wünsche ich mir sehnlichst, falls machbar.
schach2018 - 14. Jan '24 Edited
Die Wikiturniere erstrecken sich aufgrund der großen Anzahl an Tabellen auf mehrere Seiten. Um die Tabellenpflege vornehmen zu können, muss man sich für jede Seite einloggen.

Nun kann es ja mal vorkommen, dass ein ML oder der Turnierleiter mehrere Seiten bearbeiten muss. In diesem Zusammenhang finde es gut, wenn dieser eine (zweite) Option erhält, dass er sich mit dem einmaligen Einloggen Zugriff auf alle Seiten zur Bearbeitung bekommt.

Nachtrag:
Ist das auch von den anderen erwünscht?
schach2018 - 14. Jan '24 Edited
Was ich auch gut finde ist, wenn bestimmte Ergebnisse synchronisiert werden können, sofern es überhaupt machbar ist.

Beispiel:
Beim Länderpokal2023 müssen wir Turnierleiter für jede neue Seite uns einloggen und auf beiden Seiten jeweils in der Gesamttabelle händisch die Ergebnisse aktualisieren. Manchmal vertippt man sich auch dabei.
Eine Synchronisierung der Ergebnisse würde dies verhindern bzw. die Arbeit erleichtern.
siramon - 14. Jan '24 Edited
Eine Rush Hour konnte ich eben gerade beobachten, nämlich dann, wenn SF manucoding die Clubliga-Tabellen aktualisiert 😂

Via dem Link links in der Wiki-Navigation sieht man die "letzten Änderungen", die Ansichten einer Wiki-Seite sind nirgends (?) dargestellt. Trotzdem fällt auf, dass es manchmal diverse Edits innerhalb einer Zeitspanne gibt, tw. Edits im 2-5 Minuten Rhythmus.

Wenn euch weitere Zeiten/ Muster auffallen, gerne melden.


Die API-Calls passieren pro Wiki-Seite. Das Wiki weiss nichts von Turnieren bzw. vom Konzept von Turnieren.
Die cmgame-Extension (damit wurde das Mediawiki erweitert um chessmail-Spiele in lesbaren Text umzuwandeln) (1) fasst alle cmgame-Partien pro Seite zusammen, (2) schaut ob diese schon im Cache sind und (3) holt sich mit einem API-Call die Infos aller Spiele auf der Seite jeweiligen Seite.

Hoffe, das klärt deine Fragen @schach2018. Danke auch @toby84, deine Annahmen sind richtig.


Zum Cache-Timout und der Darstellung des Timeouts.
Bei einem Timeout von 1h müssten bei deinem Beispiel @manucoding folgende Bedingungen vorhanden sein, damit im Wiki noch z.B. die Zugzahl 43 angezeigt wird, beim Klick darauf, dann die Partie aber als beendet gilt:

Jemand muss die Wikiseite mit der Partie aufrufen. Die Partie steht beim Zug 43, der Cache im Wiki merkt sich das für eine Stunde. Nach diesem ersten Aufruf müssten zwei Sachen passieren: Innerhalb dieser Stunde muss die Partie beendet werden _und_ danach (noch immer innerhalb dieser Stunde) muss jemand die Wiki-Seite aufrufen.

Wie häufig kommt sowas vor? Ist das wirklich verwirrend?

Im Gegenzug könnte man die API-Calls (und damit das Greifen der API-Limite) drastisch reduzieren - v.a. dann wenn jemand mit dem Wiki arbeitet.

Momentan schwebt mir irgendwas zwischen 10min und 1h vor.

👉🏼 Wobei man eigentlich beendete Partien für immer "cachen" könnte.

Die Darstellung des Timeouts wäre z.B. als Tooltip auf dem Link möglich oder dann als generelle Info im Wiki, sowas wie: Achtung das Zwischenspeichern ist eingeschaltet, die dargestellten Spielinformationen können teilweise veraltet sein (bis zu Minuten).


DarkMode wie von schach2018 angeregt, fände ich auch sehr sinnvoll. Das bräuchte aber noch etwas zeitliche Investition ins chessmail-Wikisystem und ebenso eine Perspektive für das chessmail-Wiki (die Perspektive werde ich an einer anderen Stelle im Forum nochmals aufgreifen).

bearbeitet: DarkMode ergänzt
toby84 - 14. Jan '24
"Wobei man eigentlich beendete Partien für immer "cachen" könnte."

das wäre ungemein sinnvoll. korrigierte ergebnisse müssten dann aber eine manuelle, selektive cache-leerung nach sich ziehen. trotzdem halte ich das für eine sehr gute idee.
manucoding - 14. Jan '24
@siramon, ich habe die API-Limits auch bemerkt, liegt aber nicht an meinem Skript, sondern das ich die Wiki Seiten auch nach dem Lauf mehrmals aufgerufen habe, um die Änderungen nochmal in einer lesbaren Form zu prüfen.

Das dauerhafte Cachen von beendeten Partien halte ich auch für sinnvoll, das mache ich in meinem Skript auch.

@toby84, das mit der selektiven Cache-Leerung erschließt sich mir nicht. Es geht doch Cache nur um die Darstellung der eingetragenen Partie-Links. Wenn man auf der Seite Partien einträgt, die schon im Cache sind, dann hat das doch keine Auswirkung. Oder meist du etwas anders?
toby84 - 14. Jan '24 Edited
ich meine: eine partie wird beendet, das ergebnis wird permanent gecached. dann wird das ergebnis der partie annuliert, aus welchen gründen auch immer. der cache bekommt davon allerdings nichts mit. allerdings denke ich mir gerade, dass ihr solche fälle sowieso schon manuell überschreiben müsst, oder? denn die ergebnisse der partien selbst könnte wohl nur shaack umschreiben. wenn also jemand beispielsweise im fußballschach matt setzt, werden ihr wohl jetzt schon den punkt manuell auf den gegner überschreiben. permanentes caching würde an dieser notwendigkeit nichts ändern.
siramon - 14. Jan '24
@schach2018
Ja, auch ich brauche mehrere wiki-Seiten gleichzeitig. Aber ich habe keine Probleme, bei mir greift der Autologin auch im Wiki. Hast du das Häckchen beim Wiki-Login "Mit diesem Browser dauerhaft angemeldet bleiben (maximal 180 Tage)" gesetzt? Oder arbeitest du mit einer speziellen Browser-Konfiguration, bei der jede Seite, jedes Tab unabhängig voneinander operieren? z.B. den "Inkognito-Modus"? Oder hast du spezielle Browser-Erweiterungen installiert?

Zu deinem zweiten Problem
auf beiden Seiten jeweils in der Gesamttabelle händisch die Ergebnisse aktualisieren. Manchmal vertippt man sich auch dabei.
Eine Synchronisierung der Ergebnisse würde dies verhindern bzw. die Arbeit erleichtern.


Hier möchte ich das Problem an der Wurzel packen, so dass es keine zwei Seiten braucht (deshalb überhaupt die Cache-Diskussion).
Bis dann wäre eine Synchronisierung sogenannte Wiki-Includes möglich, so wie es z.B. die Clubliga mit der Clubliga-Navigation macht.
schach2018 - 15. Jan '24 Edited
siramon
"(...) Hast du das Häckchen beim Wiki-Login "Mit diesem Browser dauerhaft angemeldet bleiben (maximal 180 Tage)" gesetzt? Oder arbeitest du mit einer speziellen Browser-Konfiguration, bei der jede Seite, jedes Tab unabhängig voneinander operieren? z.B. den "Inkognito-Modus"? Oder hast du spezielle Browser-Erweiterungen installiert?"

Ich bin immer im "Inkognito-Modus". Setze ich das Häkchen beim Wiki-Login "Mit diesem Browser dauerhaft angemeldet bleiben (maximal 180 Tage)" und melde mich an, so öffnet sich mir diese
Übersichtsseite https://chessmail.info/cmwiki/index.php?title=Turniere.
Damit komme ich nicht zu den gewünschten Turnierseiten, die ich bearbeiten möchte (Länderpokal2023 und Einzelliga2024).

Deshalb habe ich den Haken nicht aktiviert.
siramon - 15. Jan '24
@schach2018 Die Idee des Inkognito-Modus ist ja gerade, dass der Browser eben möglichst wenig Infos an den Server sendet, deshalb wird das bei dir nicht klappen. Du musst dich zwischen Komfort und Privstsphäre entscheiden.
Wenn du Rückfragen zum Wiki-Login hast, gerne per Nachricht oder in einem separaten Forenbeitrag.
toby84 - 15. Jan '24 Edited
der inkognito-modus bringt so gut wie gar nichts gegen äußeres tracking. er schützt eigentlich nur vor neugierigen augen vor ort, die zugang zum gerät haben. sonst braucht man schon einen browser, der für das surfen ohne spuren zu hinterlassen gemacht ist.

erweitert: ein passwort-manager sollte auch im inkognito-modus helfen.
schach2018 - 15. Jan '24 Edited
Danke für Eure Infos!

@siramon
Betrifft dieses Problem nur das Autologgin?