Automatische Archivierung
Auf dieser Seite werden Abschnitte monatlich automatisch archiviert, deren jüngster Beitrag mehr als 90 Tage zurückliegt und die mindestens einen signierten Beitrag enthalten. Um die Diskussionsseite nicht komplett zu leeren, verbleiben mindestens 3 Abschnitte. Die Archivübersicht befindet sich unter Archiv.

To_DoBearbeiten

Im nächsten Leben:

  • Bot für Erstellung der Artikelliste schreiben.
  • Editierdialog für Sprachvorlagen
  • Assistent zur Artikelerstellung

tabularDataBearbeiten

Mit dem Modul Modul:Exchange rate habe ich eine Anwendung für tabularData gefunden. Seit März 2022 liegen auf Wikimedia Commons Wechselkurse bereit, die fast täglich aktualisiert werden. Beschreibung zum Modul folgt. --RolandUnger (Diskussion) 07:24, 19. Mai 2022 (CEST)

Cool, dann wird es vielleicht auch mal Klimadaten geben. Hätte man auch auf Wikidata ablegen können, aber dann wäre bei täglichem Update der Overhead zu groß, da man alte Einträge im Regelfall nicht löscht. Hätte man aber regeln können. Nun gibt es in der Mediawiki-Welt zwei "Datenbanken". Externe Benutzer werden die Tabelle nicht finden. Und ob es eine API für tabularData gibt, weiß ich nicht. Egal. Hauptsache, das Zeug liegt irgendwo und mann muss sich nicht drum kümmern. Schön wäre es, wenn man auch die strukturierten Daten aus den Dateien von Commons auslesen könnte. Oder geht das inzwischen auch? -- DerFussi 07:47, 19. Mai 2022 (CEST)
@RolandUnger:PS: Einfacher, schöner und schneller abzurufen sind die tabularData auf alle Fälle. Da jeder drin editieren kann und man sich bei komplexem JSON auch schon mal vertippen kann, kann man natürlich auch einiges kaputtmachen. Bis hin zu falschen key-Namen. Wenn es eine bequeme Oberfläche oder Hilfsmittel zum Editieren der Tabellen gäbe, könnte man aicher auch einige unserer Tabellen in (Themen-)Artikel auslagern und mit einem generischen Modul in die Artikel holen. Dan verschwindet die hässliche WikiSyntax aus dem Artikel und man könnte nach responsiveren Darstellungsmöglichkeiten Ausschau halten. -- DerFussi 11:00, 19. Mai 2022 (CEST)
@RolandUnger:PS2: Beim Lesen der Doku zur Vorlage {{Währung}} ging mir gerade durch den Kopf, dass die mobilen Nutzer noch nichts von der Vorlage haben. Das Tooltip bekommt man ja als mobiler Nutzer nicht zu Gesicht. -- DerFussi 11:08, 20. Mai 2022 (CEST)
Doch, sie bekommen es zu Gesicht: Nur drauftippen. --RolandUnger (Diskussion) 14:53, 20. Mai 2022 (CEST)
achso... haha.. OK. Na dann, alles jut. -- DerFussi 15:30, 20. Mai 2022 (CEST)
Ah, da ist einiges dran, es wäre gut, die Daten zumindest auch auf Wikidata in gleicher Aktualität zu haben, vielleicht lässt sich das künftig auch einrichten.
Eine Anmerkung: Die Verwendung der nun hier auch möglichen Vorlagen, lässt sich automatisieren. Ich habe mir zum Beispiel für ägyptische Pfund, ein (recht grobes, sollte noch verbessert werden) Regex geschrieben, das sich mittels w:de:Benutzer:PerfektesChaos/js/WikiSyntaxTextMod/usage/replace verwenden lässt, siehe voy:en:User:Marsupium/common.js. Vielleicht kann man gemeinsam, bessere Ersetzungsregeln auch für andere Währungen schreiben! Beste Grüße, --Marsupium (Diskussion) 16:08, 21. Mai 2022 (CEST)
An die Möglichkeit mit den Regex hatte ich noch nicht gedacht. Fussi hat ja auch ein autoReplace geschrieben, das in etwa so wirkt wie das vom PerfektenChaos (obwohl man das genau so benutzen kann). Ich habe mal einige Fälle bearbeitet und so den Regex noch etwas erweitert (unterschiedliche Bindestriche, Kommas in Zahlen). Ein bisschen bleibt noch zu tun. --RolandUnger (Diskussion) 17:53, 21. Mai 2022 (CEST)
Mich hat en:Wikivoyage:Currency#Technical details auf den Gedanken gebracht, wahrscheinlich könnte man das dort jetzt etwas genauer darstellen, wie es sich mit Skript und so weiter bewerkstelligen lässt, und Ähnliches hierzuwiki und in anderen Sprachversionen, falls einmal regnerische Tage kommen … Beste Grüße, --Marsupium (Diskussion) 12:24, 26. Mai 2022 (CEST)
Ein kurzer Erfahrungsbericht: tabularData sind deutlich schneller als Wikidata, was für sie spricht. Die Bereitstellung erfolgt nach meiner Schätzung im Millisekundenbereich, während Daten aus Wikidata etwa 10 ms und mehr brauchen. In beiden Fällen werden abgerufenen Daten während des Parsens gecacht, um Zeit zu sparen. Wie man an den Kartendaten im GeoJSON-Format sieht, dürfen die Strukturen sogar komplizierter sein, denn tabularData enthalten den gesamten JSON-Code, wie er in Wikimedia Commons hinterlegt ist. Das Anlegen der Daten ist im Gegensatz zu Wikidata aber nichts mehr für den normalen Nutzer. Wenigstens git es eine Syntaxprüfung wie bei Lua- oder JavaScript-Code. Ein anderes Problem der tabularData ist, dass sie üblicherweise nicht kategorisiert sind: Man findet sie nur schwer.
Ich denke mal, dass es außer der Funktion mw.ext.data.get() kein weiteres API geben wird. Vielleicht ist es auch nicht notwendig, denn man bekommt ja "normale" Tabellen zurückgeliefert. Man sollte sich aber ein passendes Konzept für den Zugriff auf die Daten überlegen. Es erscheint sinnvoll für den punktgenauen Zugriff auf eine einzelne Datenzeile, ein associative array anzulegen, da der interne Lua-Zugriff über einen key deutlich schneller ist als das Absuchen über eine for-Schleife. Der Code hierfür ist überschaubar. Im Fall von Modul:Exchange rate sind das drei kleine Funktionen: getFields, getRateTable und getCurrencyData. Noch ein paar Zahlen: ein einzelner Aufruf der Volage {{EGP}} pro Artikel dauert etwa 4 ms, bei 40 Aufrufen wie in Alexandria reduziert sich die Zeit auf 2,5 ms pro Aufruf. --RolandUnger (Diskussion) 07:24, 23. Mai 2022 (CEST)
@RolandUnger: Ja, das mit den Kategorien ist schon blöd. Erst recht, da aus meiner Sicht Kategorien für ein Mediarepository eh schon die schlechteste Option für eine Ordnung sind, durch diesen haarsträubenden Pflegeaufwand - von der Vergabe und Suche ganz zu schweigen.
Bei häufigem Gebrauch kann man spezielle Module/Funktionen benutzen um die Tabellen auszulesen, und dabei gleich in ein passendes Array umzuwandeln, welches einen einfachen key-value-Zugriff erlaubt. Die Frage ist, was bringt es wirklich, solange man keine Arrays in einem globalen Scope vorhalten kann? Weil selbst, wenn du dir ein passendes Array baust, musst du trotzdem die Tabelle einmal per For-Loop durchlaufen - um dir dein Array zu bauen, auf das du dann wieder noch mal zugreifst. Und am Ende erfolgt doch der Aufruf in dem assoziativen Array auch bloß einmal. Dann kannst du doch auch gleich im originalen Loop nach deinen Daten Ausschau halten. Und im besten Fall nutzt man While/Repeat und findet seine Daten gleich am Anfang und muss nicht mal zum Ende laufen. Vielleicht sollte man mit den Tabellen-Erstellern reden, dass die gefragtesten Daten immer oben stehen. Ich bin am Ende kein Fan mehr davon, weshalb ich bei meinen Modulen auch keine zusätzlichen Module/Funktionen für den Seiten/Datenzugriff mehr benutze (wie Wikidata utilities oder Wikidata2 oder PageData), obwohl ich teilweise auch noch intern auf assoziative Arrays als Zwischenlager zurückgreife. Da eine Quickbar aber nur einmal vorkommt, und die Funktionen selten standalone benutzt werden. Kann man damit leben und seinen Code lesbarer halten.
Schön wäre es, wenn mann die Möglichkeit hätte Tabellen anzugeben, die beim Artikel zu Beginn geladen werden und dann in einem globalen Scope als Lua-Tabelle immer zur Verfügung stehen. Ansonsten hilft nur Javascript. Das könnte über den Webservice die Tabelle einmal beziehen und in allen Span-Tags mit dem Währungscode das Tooltip nachtragen. Und es hält den Rechenbedarf komplett vom Wiki fern. Im Falle der Währungen ein echte Alternative, da sie eh' nur im Tooltip stehen. Da könnte man sich wirklich überlegen, ob die Vorlage nicht einfach den Währungscode in eine Klasse wie voy-curreny-egp schreibt und dann das JS-Script beim Leser einmal über die Seite rammelt und die Tooltip-Attribute nachführt. Zumal die Seite selbst bei deaktiviertem JavaScript oder Programmfehlern nutzbar bleibt, selbst wenn jemand die Tabelle auf Commons versaut. Unser Modul flöge uns dann um die Ohren ("got NIL" usw.), obwohl man nach und nach Fehler abfangen würde, wenn sie auftauchen. -- DerFussi 09:58, 23. Mai 2022 (CEST)
Was den globalen Scope anbetrifft, sprichst du mir aus den Seele. Wenn man pro Seite 300mal einen Marker/vCard anlegt, ist es eigentlich sehr unsinnig, 300mal dieselben Tabellen anzulegen. Was mich aber noch viel mehr ärgert, ist, dass der Wikiaufruf der Marker etwa 40 % und unser extrem sparsamer Wikidata-Aufruf immer noch 35 % der Rechenzeit ausmacht. Da ist es müßig, noch Optimierungsmöglichkeiten zu finden. Nebenbei, PageData verwende ich mittlerweile auch nicht mehr.
Da im Script (mindestens) zweimal auf die Tabelle zugegriffen wird, leiste ich mir den Luxus der assoziativen Arrays (noch dazu, weil auf dem englischen Wikivoyage ein funktionsgleiches Script mit der zehnfachen Rechenzeit läuft). Die Idee, den Tooltip auch mit einem Javascript zu realisieren, behalte ich mir mal im Kopf. --RolandUnger (Diskussion) 13:22, 23. Mai 2022 (CEST)
Zu Javascript: Aber das hieße, Code bei jedem Seitenaufruf client side laufen zu lassen, statt einmal beim Parsen, oder? Wie häufig werden die Artikel hier neu geparst? Automatisch, wenn sich an irgendeiner Abhängigkeit etwas ändert, also nach jedem der täglichen Updates von c:Data:Xe.com exchange rates.tab usw.? Beste Grüße, --Marsupium (Diskussion) 15:55, 25. Mai 2022 (CEST)
Was die Performance betrifft: Ähnliches wollte ich auch schon schreiben, ohne dass ich jedoch so genaue Zahlen zur Hand gehabt hätte.
Zur Kategorisierung: Ich meine mich zu erinnern, dass die über die Diskussionsseiten gehandhabt wird oder werden kann. (Ich bin gerade etwas kurz angebunden und habe noch nicht alles oben gelesen und das mit den Diskussionsseiten nicht recherchiert. Beste Grüße schnellhingetippt, --Marsupium (Diskussion) 05:16, 24. Mai 2022 (CEST)

LöschanträgeBearbeiten

Hallo DerFussi, mir sind drei Löschanträge aufgefallen, die sich auf Spezial:Linkliste beziehen:

Wäre es okay, wenn ich sie so verschiebe (ohne Weiterleitung), dass das „Spezial:Linkliste/“ entfällt, damit der Link in den Gelöschter-Artikel-Hinweisboxen funktioniert? --Nw520 (Diskussion) 14:43, 2. Jun. 2022 (CEST)

Klar. Da stand Roland bestimmt an falscher Stelle beim Knopf drücken... PS: Ich bin die nächsten drei Wochen mal weg... Danach können wir ja mal nach den Feiertagen gucken.... LG. -- DerFussi 22:26, 2. Jun. 2022 (CEST)
Besten Dank für die Antwort und ich wünsche schon einmal eine schöne Off-Wiki-Zeit   .
Bei Wikivoyage:Löschanträge/Spezial:Linkliste/Vorlage:RegionList-ImgMap fällt mir gerade auf, dass auch Wikivoyage:Löschanträge/Vorlage:RegionList-ImgMap existiert, eine Verschiebung also nicht geht. --Nw520 (Diskussion) 22:48, 2. Jun. 2022 (CEST)

Modul:GetP856Bearbeiten

Vor einigen Tagen war mir aufgefallen, dass dein Modul GetP856 einen Laufzeitfehler produzierte, und zwar in der Zeile 335 mit der Funktion uu.URLutil().getHost( urlLink ) (sie lieferte nil). Eigentlich hast du ja nicht mal einen Fehler begangen, denn der Fehler lag in Wikidata (siehe d:Q126514). Dort stand die URL http://www.dumgal.gov.uk%20Local drin, die ein Bot dort eingepflegt hat. Offensichtlich werden die Bot- und quickstatements-Bearbeitungen nicht geprüft. Für mich ist es auch egal, ob diese Fehler in einem Laufzeitfehler oder einer Wartungskategorie landen. Solche Fehleingaben dürften eigentlich nicht in Wikidata landen. Ich hoffe, dass dieses Problem von den Wikibase-Programmieren gelöst wird (phab:T309971). --RolandUnger (Diskussion) 17:59, 7. Jun. 2022 (CEST)

OK, Danke. Das ist allgemein das Dilemma mit Wikidata, und dass es keine echten Constraints gibt, die eine Eingabe verweigern, wie bei jeder relationalen Datenbank. Müssen wir mit leben. Ich gucke nach dem Urlaub mal, dass ich das abfange. Wir werden noch länger auf Fehler aufgrund von Datenmüll stoßen und abfangen müssen. Andererseits geht mir Lua mit seinem "got nil" auch dermaßen auf die Nerven (so wie Java Programmierer wahrscheinlich auf die Null Pointer Exception fluchen). Warum ist "nil" kein gültiger Wert (auch in langen Tabellenketten). OK, es ist stringent, aber manchmal nervts halt auch :) -- DerFussi 20:44, 7. Jun. 2022 (CEST)

markAdminsBearbeiten

Hallo. Ich habe gesehen, dass du mal Benutzer:Vogone/markAdmins.js aktualisiert hast. Könntest du dort noch einmal etwas aktualisieren? Konkret:

  • Bei den Admins "Bernello" und "Der_Reisende" entfernen.
  • Bei den Bürokraten ebenfalls "Der_Reisende" entfernen.
  • Bei den Commons-Admins wäre folgendes aktuell: "-revi", "1234qwer1234qwer4", "1Veertje", "32X", "4nn1l2", "99of9", "A.Savin", "AFBorchert", "Achim55", "Ahonc", "Aka", "Alno", "Amada44", "Andre_Carrotflower", "AnRo0002", "Ankry", "Anthere", "AntiCompositeNumber", "Aude", "Beno%C3%AEt_Prieur", "Billinghurst", "Blackcat", "BrightRaven", "Butko", "Captain-tucker", "Christian_Ferrer", "Ciell", "Clpo13", "Common_Good", "CommonsDelinker", "CommonsMaintenanceBot", "Cookie", "CptViraj", "Cromium", "Czar", "D-Kuru", "DMacks", "DaB.", "DarwIn", "Davepape", "David_Levy", "De728631", "DerHexer", "Dharmadhyaksha", "Didym", "Dyolf77", "Ebrahim", "Elcobbola", "Ellin_Beltz", "Ellywa", "Emha", "EugeneZelenko", "Explicit", "Ezarate", "Fitindia", "FunkMonk", "Gbawden", "Geagea", "Geni", "George_Chernilevsky", "Gestumblindi", "Gnangarra", "GPSLeo", "GreenMeansGo", "Grin", "Guanaco", "Hekerui", "Herbythyme", "Hesperian", "Howcheng", "Huntster", "Indeedous", "Infrogmation", "IronGargoyle", "Jameslwoodward", "Jaqen", "Jarekt", "JarrahTree", "Jcornelius", "Jdforrester", "Jean-Fr%C3%A9d%C3%A9ric", "Jianhui67", "Jmabel", "JoKalliauer", "Joergens.mi", "Jon_Kolbert", "Josve05a", "JuTa", "Julo", "Jusjih", "Kaldari", "Kallerna", "King_of_Hearts", "Klemen_Kocjancic", "Krd", "Krinkle", "KrinkleBot", "Kwj2772", "Leit", "Leyo", "Lofty_abyss", "Lymantria", "L%C3%A9na", "MB-one", "MBisanz", "MGA73", "MPF", "Magog_the_Ogre", "Mahagaja", "Maire", "Marcus_Cyron", "Mardetanha", "Masur", "Matanya", "Materialscientist", "Mdaniels5757", "Mhhossein", "Micheletb", "Mike_Peel", "Minorax", "Missvain", "Mitchazenia", "Miya", "Moheen", "Morgankevinj", "Multichill", "Mys_721tx", "Nagy", "NahidSultan", "Nat", "Natuur12", "Neozoon", "Nick", "Notafish", "Odder", "Otourly", "P199", "Pi.1415926535", "PierreSelim", "Pitke", "Platonides", "Poco_a_poco", "Podzemnik", "Polarlys", "Putnik", "Pyb", "Pymouss", "RP88", "Ra%27ike", "Racconish", "Ragesoss", "Rama", "Rastrojo", "Raymond", "Regasterios", "Rehman", "Reinhard_Kraasch", "Rimshot", "Romaine", "Rosenzweig", "Royalbroil", "Rubin16", "Rudolphous", "Ruthven", "Sanandros", "Shizhao", "Spiritia", "Sreejithk2000", "Srittau", "Steinsplitter", "Stifle", "Storkk", "Strakhov", "TadejM", "Taivo", "Tarawneh", "The_Squirrel_Conspiracy", "Themightyquill", "Thibaut120094", "Thuresson", "Tomer_T", "Trijnstel", "Tulsi_Bhagat", "T%C3%BArelio", "VIGNERON", "Wdwd", "Well-Informed_Optimist", "Wikitanvir", "Wutsje", "Yann", "Yasu", "Ymblanter", "Yuval_CT", "Zzyzx11", "%C3%89rico", "%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%B5%D0%BD%D0%BA%D0%BE", "%D8%B9%D9%84%D8%A7%D8%A1"
  • Bei den Wikidata-Admins wäre folgendes aktuell: "%2AYoungjin", "-revi", "1997kB", "Abi%C3%A1n", "Ajraddatz", "AmaryllisGardener", "Ameisenigel", "Andreasmperu", "Ash_Crow", "Ayack", "BRPever", "Bencemac", "Bovlb", "BrokenSegue", "DannyS712", "Dexbot", "Ebrahim", "Ep%C3%ACdosis", "Esteban16", "Emu", "Fralambert", "Fuzheado", "Gnoeee", "HakanIST", "Hasley", "Hazard-SJ", "Jasper_Deng", "Jianhui67", "Ladsgroup", "Lymantria", "Mahir256", "Martin_Urbanec", "Mat%C4%9Bj_Such%C3%A1nek", "Mbch331", "Mike_Peel", "Minorax", "MisterSynergy", "MSGJ", "MsynABot", "Multichill", "Nikki", "Nikosguard", "Okkn", "Pamputt", "Pasleim", "Penn_Station", "Pi_admin_bot", "Romaine", "Rzuwig", "Sannita", "Sotiale", "Stang", "Stanglavine", "Stryn", "Taketa", "Vogone", "Wagino_20100516", "Wiki13", "Ymblanter", "%D7%99%D7%95%D7%A0%D7%94_%D7%91%D7%A0%D7%93%D7%9C%D7%90%D7%A7", "%D8%A8%D8%A7%D8%B3%D9%85", "%D8%B9%D9%84%D8%A7%D8%A1"
  • Bei den Stewards wäre es "-revi", "AmandaNP", "AntiCompositeNumber", "Base", "BRPever", "Bsadowski1", "Cromium", "Defender", "DerHexer", "HakanIST", "Hasley", "Hoo_man", "Jon_Kolbert", "Linedwell", "MarcGarver", "MarcoAurelio", "Martin_Urbanec", "Masti", "Matanya", "MusikAnimal", "Operator873", "RadiX", "Ruslik0", "Sakretsu", "Schniggendiller", "Sotiale", "Stanglavine", "Stryn", "Tegel", "Teles", "TheresNoTime", "Tks4Fish", "Trijnstel", "Vermont", "Vituzzu", "Wiki13", "Wim_b", "%D8%B9%D9%84%D8%A7%D8%A1"
  • Bei den Ombudsleuten "Ameisenigel", "%C3%89rico", "Faendalimas", "Galahad", "Infinite0694", "JJMC89", "Mykola7", "Olugold", "Udehb", "Zabe"
  • Und bei den globalen Sysops "1234qwer1234qwer4", "Amire80", "Atcovi", "Billinghurst", "Biplab_Anand", "CptViraj", "DARIO SEVERI", "Daniuu", "DannyS712", "Iluvatar", "Infinite0694", "MF-Warburg", "Minorax", "Mtarch11", "NahidSultan", "Praxidicae", "Samuele2002", "Savh", "Shanmugamp7", "Superpes15", "Turkmen", "Uncitoyen", "WhitePhosphorus", "WikiBayer"

Ist weder eilig noch wichtig. Danke vorab --Ameisenigel (Diskussion) 16:42, 15. Jul. 2022 (CEST)

@Ameisenigel: gerne Erledigt  . Schönes Wochenende -- DerFussi 13:14, 16. Jul. 2022 (CEST)

autoReplace.js schluckt LeerzeichenBearbeiten

Hallo DerFussi, bei Änderungen von Scholless ist mir aufgefallen, dass die Regel

		, {	findStr 	: /, daß /ig ,
			replaceStr 	: ',dass ',                    
			commentStr 	: 'daß > dass; '
		}

in autoReplace.js bei der Ersetzung das Leerzeichen hinter dem Komma schluckt. Nw520 (Diskussion) 23:53, 30. Jul. 2022 (CEST)

Oje, wieder geschludert. Habe es (hoffenbtlich richtig) gefixt. -- DerFussi 05:50, 1. Aug. 2022 (CEST)

HierarchiesucheBearbeiten

@RolandUnger, Nw520: Ich taste mich langsam an die neue Provinzsuche ran und bin noch in der Analysephase. Roland, du hattest mir mal vorgeschlagen, das Vorhandensein der Eigenschaft P300 als Erkennungsmerkmal der 1. Hierarchie eine Landes zu nutzen. Ich würde auch gern die bisher genutzte elende manuelle Regionenliste entsorgen. Wie man dort sieht, gestaltet sich das nicht so einfach. Beide angegebenen Regionen liegen in der Hierarchie hintereinander, sind aber nicht die erste Hierarchie - das wäre dann erst North East England, wenn man im Falle von UK die Länder einzeln betrachtet, oder England, wenn man England als erste Hierarchiestufe annimmt. Irgendwie muss man wohl doch das "IstEin" auswerten. Erst dachte ich in der ersten Hierarchiestufe sind die Iso-Codes nach dem Bindestrich zweistellig, England hat aber wohl "GB-ENG". Geht auch nicht.

Momentan sehe ich nur die bisher verwendete Option, die manuell ID-Liste zu pflegen, was alles 1. Level in den Ländern ist. Man könnte noch bei P31 nach Keywörtern suchen, aber spätestens die Suche nach "Region" (gängiges Label, in Äthiopien, Griechenland, Chile usw.) bringt dann auch falsche Treffer. Habe ich was übersehen? -- DerFussi 12:36, 13. Aug. 2022 (CEST)