Moduldiskusjon:External links

message: Denne løsningen vil liste alle oppføringer, inklusive de som har rang deprecated. — Jeblad 10. mar. 2016 kl. 20:16 (CET)
replies: text: Logikken er kopiert "rått" fra Modul:Sportslenker, så jeg har ikke kommet så langt enda.. ser at det er en del som må tas hensyn til her ja. Stigmj (diskusjon) 10. mar. 2016 kl. 20:23 (CET)
thread_title: Rang

message: Ja, det er en veldig begrenset regex-converter, men så langt er det kun slike enkle tester som benyttes i qualifierene for de enkle utsagnene. P1793 for selve "hovedutsagnet" bruker flere egenskaper som også ikke er støttet og det bør finnes en bedre løsning på dette. Synes det er litt rart at dette ikke har blitt tatt hensyn til i forbindelse med implementasjonen av Lua her. De legger inn regex'er for å kvalifisere utsagnene, men gir oss ikke verktøyene for å gjøre noe med dette, eller har jeg oversett noe her? Stigmj (diskusjon) 29. mar. 2016 kl. 14:39 (CEST)
replies: text: Wikibase skrives i PHP, mens vi bruker Lua. I Lua er det kun implementert en nokså begrenset form for regulæruttrykk, som har en mye mer kompakt kodebase. PCRE er en reimplementering av Perl sine regulæruttrykk, og de er tunge. Det er heller ingen garanti for at disse avslutter i endelig tid. Det finnes noen ufullstendige implementasjoner av PCRE i Lua, det er eventuelt mulig å spørre om å få satt opp disse. Lurer på om de ble utelatt pga sikkerhetsproblemer, men de er uansett nokså tunge. Et alternativ til et PCRE-kompatibelt bibliotek er å oversette til FST. — Jeblad 29. mar. 2016 kl. 14:57 (CEST)
thread_title:  regexConverter 

message: I linje 94; for _, qualid in ipairs( qorder ) do, ser ikke helt hvorfor det loopes over en enkelt property. Vil vel tro at det kan settes opp flere i fremtiden, men det trenger muligens en forklaring. — Jeblad 29. mar. 2016 kl. 14:49 (CEST)
thread_title:  Bruk av qorder 

message: Vær snill å fjern duplisering av informasjon.
;Eksempel fra Tecumseh (Nebraska)
 (en) Kategori:Tecumseh, Nebraska – bilder, video eller lyd på Wikimedia CommonsRedigere på wikidata
Det er mange som jobber hardt for å rydde opp i rot og duplisering på Wikipedia og andre prosjekter, ikke legg inn slikt som skal i sidemargen. — Jeblad 10. mai 2016 kl. 16:13 (CEST)
replies: text: Dette er ikke en diskusjon som hører hjemme her, men på Wikipedia:Tinget da det er en større endring i forhold til innholdet i artiklene som er påvirket, samt at det er et kontroversielt tema, basert på tidligere diskusjoner jeg har sett om dette. Jeg er personlig helt enig i at det er totalt unødvendig fra en desktop-site sitt behov, men mobilbrukere har ikke disse sidemarg-lenkene og vil følgelig miste denne informasjonen. -- Stigmj (diskusjon) 10. mai 2016 kl. 16:45 (CEST)
replies: text: :Du har utvidet malen med oppføringer som ikke hører hjemme i den. At Tecumseh (Nebraska) ikke har en sidemarg med disse lenkene er en stråmann. — Jeblad 10. mai 2016 kl. 17:18 (CEST)
thread_title:  Duplisering av data 

message: Denne modulen er i akutt behov for refactoring. Cyclomatic number er ikke i nærheten av å være på håndterbart nivå. — Jeblad 21. nov. 2016 kl. 14:58 (CET)
replies: text: Refactoring anyone? — Jeblad 28. apr. 2018 kl. 14:04 (CEST)
thread_title:  Akutt behov for refactoring 

message: Det står nå Harry Connick jr. sitt profil på .... Kan noen korrigere slik at det blir sin når etiketten slutter på punktum eller et ord med små forbokstaver? Eller droppe sin/sitt som det har vært diskutert her. --Avilena (diskusjon) 23. aug. 2017 kl. 22:07 (CEST)
thread_title:  Sitt profil  for juniorer 

message: Funktionen mw.wikibase.getEntity (eller aliaset mw.wikibase.getEntityObject) er meget langsom at udføre for store entiteter. Jeg målte omkring 400 ms for at hente entiteten  på dansk Wikipedia. Dette modul bruger mw.wikibase.getEntityObject to gange for hver property det tester. Det er ekstremt ineffektivt. Det er derfor at der er time-out (over 10 sekunder Lua-tid) på artiklen Usain Bolt. Vi havde samme problem på dansk Wikipedia. Jeg løste det der med en simpel ændring (se :da:Special:Diff/9647818), så entiteten kun hentes en gang. Jeg anbefaler at I gør tilsvarende. --Dipsacus fullonum (diskusjon) 25. aug. 2018 kl. 23:51 (CEST)
replies: text: Da ingen svarede, lavede jeg selv rettelsen. Antal artikler i :Kategori:Sider med skriptfeil faldt fra 27 til 8 på grund af ændringen. (De øvrige 39 sider i kategorien er i andre navnerom). --Dipsacus fullonum (diskusjon) 2. sep. 2018 kl. 00:11 (CEST)
replies: text: :The function getEntityObject hits a cache holding the last six entries, and should be pretty fast. If you measure several seconds then something else is probably wrong. Most likely some hits empties the cache. — Jeblad 2. sep. 2018 kl. 03:43 (CEST)
replies: text: ::  Nej, rationalet for ændringen er ikke forkert. Der er en cache på 14 entiteter (se mw:Extension:Wikibase Client/Lua#mw.wikibase.getEntity), men selv når entiteten hentes fra cachen tager det tid at oprette mange nye tabeller og strenge. Her er et eksempel udført i feilsøkingskonsollen hvor samme entitet hentes to gange i træk:
=os.clock() ..  ' '.. type(mw.wikibase.getEntity('Q28614')) .. ' '.. os.clock() .. ' ' .. type(mw.wikibase.getEntity('Q28614')) ..  ' ' .. os.clock()
0.31644 table 0.39596 table 0.40668

text: :: Det ses at mw.wikibase.getEntity-kaldet udføres på 79 ms første gang, og 10 ms anden gang. De 10 ms tæller op når kaldet bruges ca. 500 gange for . Og avfallsinnhenting vil også give et meget stort ekstra tidsforbrug når minnet bliver fyldt op med nye entitetsdata hele tiden. Derfor betød ændringen at 19 artikler som har store entiteter på Wikidata gik fra skriptfeil på grund af tidsutløp til at kunne renderes på få sekunder. --Dipsacus fullonum (diskusjon) 2. sep. 2018 kl. 10:01 (CEST)
replies: text: :::Nice, cache changed last year, wasn't aware of that.

text: :::Checked in the console for one call with the timing module and your result are consistent

text: :::
timing=require 'Module:Timing'
=timing.count(1)
=timing.sets(1)
=timing(mw.wikibase.getEntity, 'Q28614')
=timing(mw.wikibase.getEntity, 'Q28614')

text: :::First gives

text: :::Each call was running for about 8.3e-02 seconds.
	Mean runtime for each set was 8.3e-02 seconds,
	with standard deviation of 0.0e+00 seconds,
	minimum 0.0e+00, maximum 0.0e+00.
	Total time spent was about 8.3e-02 seconds.
Relative load is estimated to inf.

text: :::Second gives

text: :::Each call was running for about 1.0e-02 seconds.
	Mean runtime for each set was 1.0e-02 seconds,
	with standard deviation of 0.0e+00 seconds,
	minimum 0.0e+00, maximum 0.0e+00.
	Total time spent was about 1.0e-02 seconds.
Relative load is estimated to inf.

text: :::And a new run for 100 calls after reload

text: :::
timing=require 'Module:Timing'
=timing.count(10)
=timing.sets(10)
=timing(mw.wikibase.getEntity, 'Q28614')

text: :::That gives

text: :::Each call was running for about 1.1e-02 seconds.
	Mean runtime for each set was 1.1e-01 seconds,
	with standard deviation of 2.5e-02 seconds,
	minimum 0.0e+00, maximum 2.0e-05.
	Total time spent was about 1.1e+00 seconds.
Relative load is estimated to 57,461.0.

text: :::That is bad as it implies the code does something wrong. With caching this should be way less than 1ms. I'll write a bug about it.

text: :::Anyhow, the module code has a lot of issues and should be fixed. (In particular it loops through very large structures instead of using hashes, but in general its complexity is way beyond any sensible limit.) — Jeblad 2. sep. 2018 kl. 18:06 (CEST)
replies: text: :::: Det tager så lang tid fordi at der skal oprettes mange tusinde tabeller ved hvert kald af getEntity (5386 tabeller for Q28614), og de skal bagefter fjernes af avfallsinnhentingen. Det er ingen feil. Det er sådan lua fungerer. --Dipsacus fullonum (diskusjon) 2. sep. 2018 kl. 21:23 (CEST)
= #mw.dumpObject(mw.wikibase.getEntity('Q28614')) - #string.gsub(mw.dumpObject(mw.wikibase.getEntity('Q28614')),'{',) 
5386
thread_title:  Funktionen mw.wikibase.getEntity er meget langsom