„Hilfe Diskussion:Suche/Deepcat“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 7 Jahren von Christoph Fischer (WMDE) in Abschnitt Richtiges Gadget
Zur Navigation springen Zur Suche springen
Inhalt gelöscht Inhalt hinzugefügt
→‎Richtiges Gadget: danke fürs Review
→‎Richtiges Gadget: Installationsanleitung überarbeitete Version
Zeile 69: Zeile 69:


::{{ping|PerfektesChaos}} Danke für dein ausführliches Review. Bis die Punkte korrigiert sind, werde ich das Gadget also im Betastatus stehen lassen. @[[Benutzer:Christoph Fischer (WMDE)|Christoph]] und [[Benutzer:Lea Voget (WMDE)|Lea]]: Sobald neuer Code bereitsteht, bin ich gerne bereit, diesen in das Gadget zu übernehmen. Bitte dafür kurz anpingen. — [[Benutzer:Raymond|Raymond]] [[Benutzer Diskussion:Raymond|<sup>Disk.</sup>]] 09:17, 11. Aug. 2016 (CEST)
::{{ping|PerfektesChaos}} Danke für dein ausführliches Review. Bis die Punkte korrigiert sind, werde ich das Gadget also im Betastatus stehen lassen. @[[Benutzer:Christoph Fischer (WMDE)|Christoph]] und [[Benutzer:Lea Voget (WMDE)|Lea]]: Sobald neuer Code bereitsteht, bin ich gerne bereit, diesen in das Gadget zu übernehmen. Bitte dafür kurz anpingen. — [[Benutzer:Raymond|Raymond]] [[Benutzer Diskussion:Raymond|<sup>Disk.</sup>]] 09:17, 11. Aug. 2016 (CEST)

{{ping|Raymond}}: Wir haben den Code soweit angepasst und die Verbesserungsvorschläge von [[Benutzer:PerfektesChaos|PerfektesChaos]] umgesetzt. Die CSS Datei wurde in zwei Dateien aufgeteilt die nun durch das Script selbst und erst bei Bedarf nachgeladen werden. Die drei Dateien in der aktualisierten Version findest du hier:
* [[Benutzer:Christoph_Fischer_(WMDE)/Gadgets/DeepCat.js]]
* [[Benutzer:Christoph_Fischer_(WMDE)/Gadgets/DeepCat.throbber.css]]
* [[Benutzer:Christoph_Fischer_(WMDE)/Gadgets/DeepCat.hintbox.css]]
Zur Installation:
* Alle drei nach "MediaWiki:Gadget-" kopieren
* Anschließend die "cssPath" Variable in der DeepCat.js anpassen "//de.wikipedia.org/wiki/MediaWiki:Gadget-"
* [[MediaWiki:Gadget-DeepCat.css]] löschen und nicht mehr einbinden
Das sollte alles sein. Bei Problemen oder Fragen kannst du dich gerne jederzeit an mich wenden. - Viel Erfolg und danke dir :-), [[Benutzer:Christoph Fischer (WMDE)|Christoph Fischer (WMDE)]] ([[Benutzer Diskussion:Christoph Fischer (WMDE)|Diskussion]]) 11:59, 7. Okt. 2016 (CEST)

Version vom 7. Oktober 2016, 12:00 Uhr

Fehlermeldungen

Momentan unter Wikipedia:Technische Wünsche/Fehlermeldungen bzw. der dazugehörigen Diskussionsseite. Von hier aus nicht ganz einfach zu finden. Und warum ist Hilfe:Suche/Deepcat nirgends unter Hilfe:Suche sichtbar? Ah, versteckt unter Cirrus. Vielleicht gelegentlich ein Beispiel auf die Oberseite schieben.

Im Normalfall würde ich aber davon ausgehen, dass Fragen zur Verwendung hierhin gehören. --IvlaDisk. Hilfe Diskussion:Suche/Deepcat#c-Ivla-2015-11-08T20:45:00.000Z-Fehlermeldungen11Beantworten

Richtiges Gadget

@Thiemo Mättig (WMDE), Birgit Müller (WMDE), Lea Voget (WMDE): Auf der Wikimania sprachen wir darüber, dass Deepcat es ist mal verdient hat, als richtiges Gadget installiert zu werden. Dies will ich auch gerne umsetzen. Wenn ich die Vorderseite richtig verstehe, müssen doch nur folgende Schritte unternommen werden:

Habe ich etwas vergessen? — Raymond Disk. Hilfe Diskussion:Suche/Deepcat#c-Raymond-2016-08-01T16:32:00.000Z-Richtiges Gadget11Beantworten

@Raymond:: Also Thiemo Mättig (WMDE) und ich haben uns vorhin ausgetauscht und denken [ResourceLoader|dependencies=mediawiki.api,mediawiki.cookie,mediawiki.util] sollte ausreichen. Danke, dass du dich der Sache annimmst :-). — Christoph Fischer (WMDE) (Diskussion) Hilfe Diskussion:Suche/Deepcat#c-Christoph Fischer (WMDE)-2016-08-03T14:27:00.000Z-Richtiges Gadget11Beantworten

Ich habe das Gadget soeben erstellt und noch als Betatest einsortiert. Ein erster Test war für mich positiv. Könnt Ihr als Kenner des Codes bitte auch mal testen? Falls alles OK, würde ich als nächstes:
  • das Gadget im Kurier - erstmal noch als non-default - vortellen
  • nach n Wochen das Gadget als default einstellen (n=2?)
  • Frage: In welches der vorhandenen Abschnitte auf Spezial:Einstellungen#mw-prefsection-gadgets passt das DeepCat-Gadget am besten? Oder einen neuen Abschnitt erstellen?
@Christoph Fischer (WMDE), Thiemo Mättig (WMDE), Lea Voget (WMDE): — Raymond Disk. Hilfe Diskussion:Suche/Deepcat#c-Raymond-2016-08-03T18:31:00.000Z-Christoph Fischer (WMDE)-2016-08-03T14:27:00.000Z11Beantworten
  • Unmittelbar hinter HotCat einsortieren, wenn es soweit ist, bitte schön.
    • An die Strukturierung von WP:HX reicht das historisch gewachsene Spezial:Einstellungen ohnehin nicht heran.
    • Was da alles schon als angebliche „Bearbeitungswerkzeuge“ abgekippt wurde, ist zur Hälfte sowieso keins.
    • Nun haben sich die Leut über ein Jahrzehnt an diese Struktur gewöhnt, nun wollen wir auch nicht stören.
  • Default sehe ich kritisch und würde mindestens die Einführungswochen abwarten wollen.
    • Ich höre sowohl über Kategoriestruktur allgemein, dass sie für außenstehende Leser (→IP) nicht verständlich sei und nicht als enzyklopädischer Zugang instrumentalisiert würde, als dass Cirrus-Suche auch viele Autoren geistig überfordere, und die neuen Cirrus-Schlüsselwörter nur ansatzweise genutzt würden.
    • Die Fans und Könner schalten sich das hingegen in den nächsten Wochen sowieso aktiv zu.
    • IP können sich anmelden oder per Greasemonkey starten.
    • Für alle anderen ist es nur unnötiger JS-Ballast beim Aufbau jeder einzelnen Seite, ohne je genutzt zu werden.
VG --PerfektesChaos Hilfe Diskussion:Suche/Deepcat#c-PerfektesChaos-2016-08-03T19:07:00.000Z-Raymond-2016-08-03T18:31:00.000Z11Beantworten
Das sehe ich ähnlich wie PerfektesChaos. Hinter HotCat und wir sollten noch warten bevor es als default kommt. Ich spreche das auch nochmal ab. -- Christoph Fischer (WMDE) (Diskussion) Hilfe Diskussion:Suche/Deepcat#c-Christoph Fischer (WMDE)-2016-08-04T13:10:00.000Z-PerfektesChaos-2016-08-03T19:07:00.000Z11Beantworten

Die Vorderseite habe ich nun aktualisiert. Damit kann die Einbindung von der Unterseite von Benutzer:Christoph Fischer (WMDE) entfallen. Per https://de.wikipedia.org/w/index.php?title=Spezial:Suche&limit=100&offset=0&ns2=1&search=insource%3A"DeepCat.js" sind 68 Benutzer sind von der Änderung betroffen. Mein Vorschlag: Per Massennachricht informiere ich die Benutzer (Liste betroffener Benutzer), dass sie DeepCat nun als Gadget aktivierenn können und die Einbindung über ihre lokale .js/.css rückgängig machen können. Einverstanden? — Raymond Disk. Hilfe Diskussion:Suche/Deepcat#c-Raymond-2016-08-08T16:09:00.000Z-Richtiges Gadget11Beantworten


( function ( mw ) {
   "use strict";
   if ( mw.config.get( "wgDBname" ) === "dewiki" ) {
       // Bitte umstellen auf Häkchen in den Helferlein-Einstellungen
       mw.loader.load( "ext.gadget.DeepCat" );
       mw.log.warn( "[[WP:HW/DeepCat]] * Veraltete Einbindung von Benutzerseite" );
    } else {
       // Form für globale Wirkung
       mw.loader.load( "https://de.wikipedia.org/w/index.php?title=MediaWiki:Gadget-DeepCat.js&action=raw&ctype=text/javascript" );
       mw.loader.load( "https://de.wikipedia.org/w/index.php?title=MediaWiki:Gadget-DeepCat.css&action=raw&ctype=text/css", "text/css" );
       mw.log.warn( "[[:de:WP:HW/DeepCat]] * Obsoleted usage of user page" );
    }
} ( mediaWiki ) );
+ Großen Kommentar, der zur Umstellung auffordert
  • Bewirkt im Endeffekt das Gleiche wie das Helferlein-Kreuzchen, konsumiert dabei aber mehr Ressourcen.
    • Vor allem wichtig, um einen funktionalen Fork zu vermeiden, falls jemand sich nicht umstellt und das Gadget gelegentlich weiterentwickelt wird.
  • Es gibt aber auch noch 11 Benutzer auf meta:global und es könnte weitere per Greasemonkey geben und außerdem welche auf beliebig vielen lokalen Wikis.
  • Das JS sollte noch gegen seine Mehrfach-Initialisierung gehärtet werden, namentlich wenn es sowohl global unbedingt geladen wurde, als auch überflüssigerweise ein lokales Häkchen gesetzt ist. Derzeit würde es in diesem Fall die Elemente der HTML-Seite offenbar mehrfach mit dem Start der Funktionen ausstatten. Das würde dazu führen, dass der Kategoriegraph mehrmals für dieselbe Anfrage durchsucht wird. Es bietet sich an, mw.loader.state entsprechend abzufragen bzw. bedingungslos auf ready zu setzen. mw.libs.deepCat sollte wegen möglicher zukünftiger Nutzung für Optionen nicht in diesem Sinne ausgewertet, insbesondere nicht bedingungslos überschrieben werden.
    • Im Übrigen betreibt das JS auch massives hoisting; das heißt, es verwendet lokale Funktionen, bevor sie deklariert wurden. Das ist fehlerträchtig und lässt schwer zu entdeckende Fehlersituationen zu. Eine saubere Trennung von vorrangig deklarativem Teil zu Beginn eines Moduls und anschließender Ausführung am Ende, sofern dann überhaupt noch sinnvoll, ist einer durchmischten Anordnung der Programmteile immer vorzuziehen.
    • Deshalb und zur besseren Übersicht über den Ablauf und zur Vermeidung von Mehrfach-Initialisierung sollte die unbenannte Ausführungsprozedur ganz an das Ende des Gadgets verschoben werden und einen Namen erhalten.
    • Ein Besuch auf jshint.com unter verschärfteren Bedingungen würde sich lohnen.
  • Das Gadget wird auch für das Laden von fremden Wikis angeboten; siehe dazu die 11 globalen Einbindungen. Es wurde von Anfang an behauptet, auch andere Wikis könne man durchsuchen.
    • Hier sind die im Kontext der deutschsprachigen Wikipedia mit Deklaration der Dependencies bereitgestellten Bibliotheken nicht zuverlässig vorhanden.
    • Das Vorhandensein der Bibliotheken ist grundsätzlich immer nachzuprüfen und sicherzustellen; es darf sich nicht einfach blind darauf verlassen werden, dass in einer Gadgets-Deklaration auf dem lokalen Wiki schon alles irgendwie geregelt wäre, zumindest dann, nachdem der Benutzer die Seite angezeigt bekäme und eine Suche interaktiv eingetippt habe; der Start ist ja wohl auch über eine Cirrus-URL möglich??????? Was dann auch auf standardmäßige Mobilansichten auszudehnen wäre.
  • Sofern der Code nicht auf dem Weg der Gadget-Deklaration geladen wurde, sollte der erforderliche CSS-Code intern vom zentralen Depot geladen werden und diese Aufgabe nicht jedem einzelnen Anwender aufgebürdet werden, zumal sich das Depot im Lauf der Zeit ändern könnte und dann sämtliche globalen Anwender alle CSS-URL aktualisieren müssten.
  • Statt eines Sortiments an Cookies, die offenbar mit unterschiedlichen Tokens kumulieren, und die naturgemäß mit dem Anschauen jeder beliebigen Seite erneut vollständig zum Server übertragen werden, der jedoch mit ihnen nichts anzufangen weiß, würde ich LocalStorage und sofern möglich sogar SessionStorage anempfehlen.
  • Wenn die mw.Api bislang offenbar nur zum Abrufen von messages benutzt wird, kann das mit dem spezifischen Modul mediawiki.api.messages übersichtlicher weil knapper und eleganter realisiert werden.
  • Insgesamt muss festgestellt werden, dass die bisherige Programmierung nur als Benutzerskript lediglich zum Durchsuchen der deutschsprachigen Wikipedia im Sinne eines proof of concept geeignet war, den Anforderungen an ein Gadget und obendrein für beliebige Wikis unter beliebigen Bedingungen einsetzbar jedoch bislang nicht genügt.
VG --PerfektesChaos Hilfe Diskussion:Suche/Deepcat#c-PerfektesChaos-2016-08-10T11:36:00.000Z-Raymond-2016-08-08T16:09:00.000Z11Beantworten
@PerfektesChaos: Danke für dein ausführliches Review. Bis die Punkte korrigiert sind, werde ich das Gadget also im Betastatus stehen lassen. @Christoph und Lea: Sobald neuer Code bereitsteht, bin ich gerne bereit, diesen in das Gadget zu übernehmen. Bitte dafür kurz anpingen. — Raymond Disk. Hilfe Diskussion:Suche/Deepcat#c-Raymond-2016-08-11T07:17:00.000Z-PerfektesChaos-2016-08-10T11:36:00.000Z11Beantworten

@Raymond:: Wir haben den Code soweit angepasst und die Verbesserungsvorschläge von PerfektesChaos umgesetzt. Die CSS Datei wurde in zwei Dateien aufgeteilt die nun durch das Script selbst und erst bei Bedarf nachgeladen werden. Die drei Dateien in der aktualisierten Version findest du hier:

Zur Installation:

  • Alle drei nach "MediaWiki:Gadget-" kopieren
  • Anschließend die "cssPath" Variable in der DeepCat.js anpassen "//de.wikipedia.org/wiki/MediaWiki:Gadget-"
  • MediaWiki:Gadget-DeepCat.css löschen und nicht mehr einbinden

Das sollte alles sein. Bei Problemen oder Fragen kannst du dich gerne jederzeit an mich wenden. - Viel Erfolg und danke dir :-), Christoph Fischer (WMDE) (Diskussion) Hilfe Diskussion:Suche/Deepcat#c-Christoph Fischer (WMDE)-2016-10-07T09:59:00.000Z-Richtiges Gadget11Beantworten