User talk:RexxS/Archive 65

Latest comment: 3 years ago by JBW in topic A rather neat solution

The time allocated for running scripts has expired

Hi, I wanted to ask your advice because I am starting to see occasional errors appearing on List of lighthouses in England. Is there a technical limit on the number of wikidata items that a page can access, or do I need to make my template more efficient? Either way I would like to analyse loading times, lags, memory usage, etc. of this page more carefully and I don't know the best tools to do that. Thanks — Martin (MSGJ · talk) 21:35, 8 February 2021 (UTC)

Page watcher: The limits/data of interest can be found in the HTML source at the bottom of the parser output. For my version of the page, this is what it had to say:

Extended content
<!-- 
NewPP limit report
Parsed by mw1327
Cached time: 20210209001128
Cache expiry: 2592000
Dynamic content: false
Complications: [vary‐revision‐sha1]
CPU time usage: 11.632 seconds
Real time usage: 13.253 seconds
Preprocessor visited node count: 78404/1000000
Post‐expand include size: 940720/2097152 bytes
Template argument size: 77672/2097152 bytes
Highest expansion depth: 14/40
Expensive parser function count: 93/500
Unstrip recursion depth: 1/20
Unstrip post‐expand size: 400331/5000000 bytes
Lua time usage: 8.525/10.000 seconds
Lua memory usage: 14755567/52428800 bytes
Lua Profile:
    recursiveClone <mwInit.lua:41>                                  2540 ms       29.6%
    Scribunto_LuaSandboxCallback::getEntity                          880 ms       10.3%
    Scribunto_LuaSandboxCallback::incrementStatsKey                  460 ms        5.4%
    Scribunto_LuaSandboxCallback::getExpandedArgument                440 ms        5.1%
    type                                                             420 ms        4.9%
    Scribunto_LuaSandboxCallback::getLabelByLanguage                 400 ms        4.7%
    ?                                                                400 ms        4.7%
    Scribunto_LuaSandboxCallback::getAllExpandedArguments            360 ms        4.2%
    Scribunto_LuaSandboxCallback::getSiteLinkPageName                300 ms        3.5%
    Scribunto_LuaSandboxCallback::getEntityStatements                300 ms        3.5%
    [others]                                                        2080 ms       24.2%
Number of Wikibase entities loaded: 83/400
-->
<!--
Transclusion expansion time report (%,ms,calls,template)
100.00% 12223.804      1 -total
 92.59% 11318.557     80 Template:List_item
 92.47% 11303.378     80 Template:List_item/core
 90.01% 11002.214    720 Template:List_item/row
 11.50% 1406.236    160 Template:If_empty
 11.34% 1385.918     80 Template:List_item/focal_height
 10.32% 1261.618     80 Template:List_item/location+coordinates
  8.43% 1031.049     69 Template:List_item/range
  8.28% 1012.675     80 Template:List_item/image
  4.74%  579.481     80 Template:List_item/opened
-->

<!-- Saved in parser cache with key enwiki:pcache:idhash:145763-0!canonical!tmh-videojs and timestamp 20210209001115 and revision id 1005669894. Serialized with JSON.
 -->

The error that you have been seeing is directly related to the Lua time usage: 8.525/10.000 seconds line; if I had had the same issue it would have been >10 seconds.

While there is a limit to the number of Wikidata items accessed (400 apparently), this issue is only indirectly related (in that you are accessing 80 items and that's taking Lua a long time to chew on). As you can see, a lot of that time is being spent either in the Wikibase Lua library or one of our implementations of that module.

I am not personally sure what can be done to fix these issues, or how to troubleshoot inefficient code better, since we don't have access to the instructions generated or any other standard IDE offerings. --Izno (talk) 00:51, 9 February 2021 (UTC)

(edit conflict)
Hi Martin. There is indeed a technical limit of 400 Wikidata items that can be accessed on a page, but that's not what's bumping up against the limit on that page. When you get performance issues, you should open the relevant page for editing and preview it. That ensures you get an uncached version. At the bottom of the preview you will find some tables labelled as 'parser profile data', which you may have to expand to see. Looking through those, you will get an idea of what values are getting close to their limits. By the way, those values fluctuate from run to run depending on a host of other factors, but they will give you a good idea of what's happening. In the case of List of lighthouses in England, you only have 83 out of 400 entities loaded, so that's not your problem, but you will see that the Lua is taking over 8 seconds to run the scripts, and only 10 seconds are allowed before it times out. If you hit a busy time when there is some extra latency in returning the database calls, then it can easily hit the time limit. So time is the problem and you need faster code. I see that you have a count of 93 expensive parser functions, and they are often the prime culprits (certain calls are marked as 'expensive' because of the amount of resources/time they consume).
You have 80 {{list item}}s in the page. If I remove 40 of them and preview, I can see that the Lua time drops to around 4 seconds and the count of expensive parser functions is 53. That indicates that each list item is taking around 100 ms and 1 expensive call. The {list items} are responsible for almost all of the Lua time in rendering the page ({{convert}} uses relatively little). I should point out that I got Lua times between 3.5 and 5 seconds on several runs, so you have to take a guess at the average and worst cases – you soon get a feel for it after a few previews. There are 8 expensive parser calls in {{Portal bar}}, but that's a minor contribution.
Anyway, Lua time is the barrier (and we don't really want pages taking over 10 seconds to load), so you need to optimise the speed of the {{list item}} template.
You can use something like this to isolate the template call in your user sandbox:
{| class="wikitable"
<nowiki>{{list item|qid=Q15182446|aid=Q920649}}</nowiki>
|}
{{list item|qid=Q15182446|aid=Q920649}}
Preview that and you'll see a Lua time around 100 ms with an expensive parser function count of 1 as expected. Then you'll need to look at the 'Templates used in this preview' and try to work out which one is taking the time. I think it might be that each cell is a separate call to Wikidata with all its overheads. Here's the county:
  • {{#invoke:wd|properties|linked|Q15182446|P7959}} → Dorset
  • Lua time: 21 ms; Expensive parser count: 1
You can't improve that by switching to WikidataIB ({{#invoke:wikidataIB|getValue|ps=1|qid=Q15182446|P7959}}) as it also takes 21 ms. You only need about half a dozen calls per row at 20 ms each to push the row time over 100 ms, and then when you have 80 rows, you run into the 10 second limit.
So, I would have to recommend getting a specific Lua module to create each table row for you, which should reduce the overhead. Let me know if you want me to try to work on that with you. --RexxS (talk) 01:04, 9 February 2021 (UTC)
@Izno and Martin: I got interested in the general problem and performance. To test out my guess that the overhead in the #invoke was the main culprit, I wrote a demo module to create a table from Wikidata at Module:Sandbox/RexxS/Wikidata table. It just does fetching of raw values but it can fetch 80 rows of 6 columns in 600 ms – preview an edit at Module talk:Sandbox/RexxS/Wikidata table and see the parser profiling data. The Lua code only creates the table rows, so you make your own caption, header, etc. as usual, but that's probably a good thing. I'll refine it a bit and see if I can make it usable. --RexxS (talk) 14:58, 9 February 2021 (UTC)
Yeah, I was pretty close to suggesting that but hadn't looked at the details to know if that would work. --Izno (talk) 17:42, 9 February 2021 (UTC)
Adding about 150 conversions increases the Lua time to about 1 second. --RexxS (talk) 18:47, 9 February 2021 (UTC)
That's very nice and at least proves that the approach is viable. It will need a bit of work before it's ready to insert in articles, e.g. with references, qualifiers, editonwikidata links, etc. which I would be happy to work with you on. The downside of having the module produce the whole table, rather than row by row, is that individual columns can't be overwritten, which I think would be important in an article. I guess {{list item}} could be made more efficient in Lua while still retaining much of its flexibility. For a start, would it be possible to remove the expensive function? Anyway thanks for the useful technical information. — Martin (MSGJ · talk) 20:26, 9 February 2021 (UTC)
@MSGJ: well it shows how fast it can run with optimisations. I wasn't suggesting it as a replacement. Actually making each invoke consumes quite a lot of time, and you can gain a fair amount by moving from 1 call per table cell to 1 call per table row, which would allow overrides for any cell on a per-column basis. I'll have a look at that later. As it turns out the "expensive" functions don't make much difference, as Module:Wd uses expensive calls to get values and Module:WikidataIB doesn't, but they consume the same amount of time to fetch a value. --RexxS (talk) 21:02, 9 February 2021 (UTC)
One call per table row would be good to try, and it would be interesting to compare the times with the whole table version. — Martin (MSGJ · talk) 13:16, 10 February 2021 (UTC)
@MSGJ: I've added the single row functionality to Module:Sandbox/RexxS/Wikidata table, and created a couple of demo templates at Template:Wdtable row and Template:Wdtable row/lighthouse to encapsulate the invoke. Using the second template, I've made a demo with 95 rows at Module talk:Sandbox/RexxS/Wikidata table #Testing WDtable row. I've previewed it a few times and it takes between 1.2 and 1.8 seconds for 95 rows, which seems to indicate that one call per row is the optimisation you need. Cheers --RexxS (talk) 18:40, 10 February 2021 (UTC)
@MSGJ: Thanks for the reformatting of the columns. I've added functionality to enable multiple pids per cell, like location and coordinates. You need to make sure that each cell's properties are separated by spaces or commas or both. Pids not separated by spaces or commas (I use '+') will all go inside the same table cell separated by a <br>. The pids string for Template:Wdtable row/lighthouse is now |pids=P18, P276+P625, P7959, P571, P2048, P2923, P2929, P137. I've built functionality to allow qualifiers separated from the pids in the cell by a '/', (so something like P137/P580+P582}, but I haven't coded the actual fetching of the parameters yet. --RexxS (talk) 23:33, 10 February 2021 (UTC)
I've moved the module to Module:Wikidata table as sandbox code can't realistically be used in articles. Further discusion is at Template talk:Wdtable row. --RexxS (talk) 17:54, 11 February 2021 (UTC)

Semi-protection psychosis

RexxS or Ajpolino could you glance at Psychosis (edit | talk | history | protect | delete | links | watch | logs | views) in terms of semi-protection? SandyGeorgia (Talk) 16:50, 13 February 2021 (UTC)

Semi-protected for two weeks. Will post on IP's talk page (not sure IPs ever really see their talk pages, but worth a shot), and look into their contributions at Hallucination as well. Ajpolino (talk) 17:33, 13 February 2021 (UTC)
Thx ... ipad typing ... possibly related to that crazy psychosis in pregnancy thread at wt:med months ago, but I am on hotspot in car ... SandyGeorgia (Talk) 17:36, 13 February 2021 (UTC)
Thanks, Ajpolino, good call. The IP is conducting "fringey" OR, but not vandalism, so we can AGF on their intentions. I'll watchlist the page for a few weeks. The Ipv6 made a couple of edits from a slightly different IP, still in the /64 range, so the IP hops and it's unlikely they will ever see any messages left for them. It's a Comcast Cable address, so may be stable in the /64 range for the individual. As they are the only editor causing problems, their /64 range could be partially blocked form the page if necessary to avoid further semi-protection once it expires. Cheers --RexxS (talk) 18:42, 13 February 2021 (UTC)
They have registered now ... I would add to talk but am ipad hotspot ... SandyGeorgia (Talk) 18:46, 13 February 2021 (UTC)

Notice of noticeboard discussion

  There is currently a discussion at Wikipedia:Administrators' noticeboard regarding an issue with which you may have been involved. The thread is Consensus_required_on_COVID?. Thank you. ProcrastinatingReader (talk) 02:32, 19 February 2021 (UTC)

You've got mail!

 
Hello, RexxS. Please check your email; you've got mail!
Message added 04:20, 19 February 2021 (UTC). It may take a few minutes from the time the email is sent for it to show up in your inbox. You can remove this notice at any time by removing the {{You've got mail}} or {{ygm}} template.

KevinL (aka L235 · t · c) 04:20, 19 February 2021 (UTC)

Arbitration notice

You are involved in a recently filed request for arbitration. Please review the request at Wikipedia:Arbitration/Requests/Case#RexxS and, if you wish to do so, enter your statement and any other material you wish to submit to the Arbitration Committee. As threaded discussion is not permitted on most arbitration pages, please ensure that you make all comments in your own section only. Additionally, the guide to arbitration and the Arbitration Committee's procedures may be of use.

Thanks, ProcrastinatingReader (talk) 14:08, 20 February 2021 (UTC)

I've opened an RfC at Wikipedia talk:General sanctions/Coronavirus disease 2019 #RfC on use of COVID-19 editnotice to settle the question "Should admins have the ability to place the General sanctions/Coronavirus disease 2019 editnotice template on pages in scope that do not have page-specific sanctions?" That should throw some light on the issues. --RexxS (talk) 19:23, 24 February 2021 (UTC)

English heritage data and Wikidata

Hi, about a year ago you started a template at {{English Heritage listed building row/Wikidata}} based on a discussion we had about pulling the data from WD rather than manual compilation from WP in a list article. For whatever reasons we put it on the back-burner, anyway I finally go off my fat-backside to have a look at LUA coding. I'd mocked up at User:Nthep/sandbox8 an idea of what I wanted to achieve and my first go at a module to populate it is at Module:Sandbox/Nthep/building. It's undoubtedly poorly written so I'd appreciate any feedback on how it can be improved. Also I have some questions about how to achieve a couple of things.

  1. Inserting the equivalent of a <BR> into a cell. If I use \n in the module it pushes all the subsequent cells into the one I put the newline in. There's a couple of cells e.g. heritage designation where I'd like the designation and the date on separate rows.
  2. Also on heritage designation I've managed to set the background colour of the cell based on the designation but it's by matching the text in property P1435 which is subject to error if the label of the item is changed. How do you make the comparison with the designation of the item e.g.Q15700831 rather than the text "Grade II* listed building" ?

Thanks for any assistance. Nthep (talk) 11:59, 20 February 2021 (UTC)

@Nthep: the code works, but will be slow and resource-heavy because you are calling frame:expandTemplate to make each wikidata call. It's using around 50ms of Lua time per row, so will start to run into problems once you reach around 100 rows in a table. If you add references, that will probably double the processing time and halve the number of rows attainable. You would improve it a lot by requiring Module:Wd and using its functions directly. I can try to give you example code when I get a chance.
To insert <br> into a cell, you can just concatenate "<br>". I've amended line 60 to include an html break (using "\n" inserts a newline into the source wikitext, not what you want inside a table).
To get the entity-id, you can use the raw parameter. Compare:
{{wikidata|property|Q26547186|P1435}} → Grade II listed building
{{wikidata|property|raw|Q26547186|P1435}} → Q15700834
which is Grade II listed building (Q15700834). You can make your choice of colour from that.
Coincidentally, I've been working with MSGJ to create generic table rows using a new module Module:Wikidata table. It won't do all of the customisation that you've built into your module, so I don't suggest replacing it, but it can generate the sort of tables that are commonly used in list articles directly from Wikidata. The idea is to allow non-Lua programmers to leverage the speed and functionality of a module for many common lists. Here's an example, using your data:
Name Location Completed Architect Heritage designation
(Date of listing)
Notes Grid ref
Geo-coordinates
Image Entry number Commons category
1-8, Woodsley Terrace  Leeds[1]1856Grade II listed building[1][1] (from Oct 1995)notes for Woodsley TerraceSE2905934481
53°48′21″N 1°33′37″W[1]
 1255607
Roger Stevens Building  Leeds[2]1970Chamberlin, Powell and BonGrade II* listed building[2][2] (from Jun 2010)Roger Stevens BuildingSE2943134378
53°48′18″N 1°33′17″W[2]
 1393836Stevens Building, University of Leeds Roger Stevens Building, University of Leeds

References

  1. ^ a b c d Historic England. "Details from listed building database (1255607)". National Heritage List for England.
  2. ^ a b c d Historic England. "Details from listed building database (1393836)". National Heritage List for England.

It's a work in progress and needs to recognise that Commons category should be urlencoded before being linked. It's easy to create a sub-template like {{Wdtable row/lighthouse}} to save having to type the list of properties each time. You can see it used in List of lighthouses in England and that might give you some ideas. --RexxS (talk) 17:22, 20 February 2021 (UTC)

that's really helpful, thanks. An example of requiring module:WD would be useful as I'm still finding my feet (very slowly) into the LUA coding so require etc are still mostly a mystery to me. Nthep (talk) 17:36, 20 February 2021 (UTC)
@Nthep: I've made a demo module at Module:Sandbox/RexxS/Wd and put its output along with comparisons with the equivalent {{wikidata}} calls at its talk page Module talk:Sandbox/RexxS/Wd. See if that gives you sufficient idea. --RexxS (talk) 21:40, 20 February 2021 (UTC)
Again, thanks for the guidance. I've done some tidying up and although I'm sure it can be drastically improved I'm ok with it. I ever managed to work out some SQL to populate it with. One last question (for the time being anyway) - is there a way to return a site link. For example wikidata:Q7432461 has a sitelink to the WP article School of Geography, University of Leeds. I can't see any property value associated with the sitelink. The idea is to use the WD label unless there is a WP article in which case I'd link to the WP article. Nthep (talk) 20:48, 22 February 2021 (UTC)
@Nthep: You've done a good job, I've been following your module sandbox and it looks absolutely fine. The function you want in Lua is mw.wikibase.getSitelink("Q7432461"), but you might want to look at Module:Wikidata table lines 179-203, the _getLink function for code that will return a complete wiki-link from the entity-id (qid), wherever possible. The display returned from the function matches the capitalisation of the label (sitelinks are always capitalised). You're always free to re-use any code I write and there's no attribution required. Cheers --RexxS (talk) 22:00, 22 February 2021 (UTC)

Hi again, still progressing and refining this module now at Module:Wdtablerow/listed buildings. A couple of questions:

  1. Lua syntax is not A and not B the same as not (A and B) ?
  2. There's a WD item that has two values for property P84. My code as it stands picks up just the first, how do I pick up both (all) instances of a property?

Thanks again. (PS no rush if the arbcom case is occupying your time) Nthep (talk) 18:28, 27 February 2021 (UTC)

You might consider asking further questions at WT:Lua. Re Q1: no. In not A and not B each not has a high precedence so it is (not A) and (not B) which is not (A or B) although exactly what that means in Lua would need careful thought since only false and nil are regarded as false. Johnuniq (talk) 23:59, 27 February 2021 (UTC)
Strike second question, I think I've worked it out. Nthep (talk) 21:17, 28 February 2021 (UTC)

Module:Formatnum

Hello. What happened with what you were doing in the sandbox? Trigenibinion (talk) 19:25, 18 February 2021 (UTC)

Hi Trigenibinion.
In this edit, I enabled the main function to be called via a direct invoke, as it otherwise can only pick up parameters from a wrapper template. I use an external IDE that cleans up indents from using spaces to using tabs, so that accounts for the other changes in that diff and is the reason why the sandbox was 449 bytes smaller.
In this edit and the subsequent one, I allowed the main function to accept "none" as a value for |lang= that can be passed to the formatNum function. I also set a fallback to the site's content language, which is useful for multilingual wikis.
Nothing came of it, because I think it was only a demo when I was discussing the modules called by Module:WikidataIB with Jarekt, who maintains Module:Formatnum on Commons. --RexxS (talk) 19:42, 18 February 2021 (UTC)
OK, then I will just reset the sandbox because I think this module is a good place for a function that will replace a template I am using. Trigenibinion (talk) 21:36, 18 February 2021 (UTC)
Change of plans: I have converted the Commons test cases. I will promote your code. Trigenibinion (talk) 23:40, 18 February 2021 (UTC)
frame:getParent().args would grab the wrong arguments. Trigenibinion (talk) 18:57, 19 February 2021 (UTC)
If the module were called from a wrapper template, frame:getParent().args would contain the arguments supplied to the wrapper template. There are no "wrong" arguments; it just depends on whether the module is invoked directly or through a template. --RexxS (talk) 19:06, 19 February 2021 (UTC)
You broke {{FXConvert}} by reinstating that code. Trigenibinion (talk) 15:33, 20 February 2021 (UTC)
And now you broke it again by removing wordify. Trigenibinion (talk) 15:54, 20 February 2021 (UTC)

Then fix {{FXConvert}}. You must not alter the main entry point for an established module without sandboxing it and testing there. I've restored Module:Formatnum to the state it was prior to your changes. Your code is still in the sandbox, but is faulty in how it handles the parameters passed. It is clear that code like this:

    local args = frame.args
    if not args[1] and not args.number then
        args = frame.args
    end

is nonsensical. --RexxS (talk) 15:55, 20 February 2021 (UTC)

I just left your
    if not args[1] and not args.number then
        args = frame.args
    end

to point out that something was being attempted here. It is harmless.

{{FXConvert}} is not broken. The code from the sandbox was tested before being promoted. It was later in the {{FXConvert}} sandbox where I caught the problem with your code.
The Formatnum sandbox now uses Module:Arguments. It is working both for the testcases and the {{FXConvert}} sandbox. Trigenibinion (talk) 18:09, 20 February 2021 (UTC)

What do you mean "my code"? The sandbox code I wrote was:

    local args = frame:getparent().args
    if not args[1] and not args.number then
        args = frame.args
    end

Note the :getParent() in the first line.

This is the diff] where you changed the first line to local args = frame.args which results in the nonsense I pointed out. That's your code, not mine. The Module:Formatnum may be called by Module:WikidataIB, which is in use on about 1,120,000 pages on the English Wikipedia and 118 other Wikimedia projects. You can't just change its main entry point or its dependencies without causing chaos across multiple projects if they synchronise from enwiki. It's easy enough to deal with parameters without making yet another dependency. --RexxS (talk) 19:09, 20 February 2021 (UTC)

Ah, I see the getParent() was already there, you only added:
    if not args[1] and not args.number then
        args = frame.args
    end
Well, this getParent() handling was already wrong then. Let Module:Arguments do its job. Trigenibinion (talk) 19:51, 20 February 2021 (UTC)
Note that the test cases (which did not exist until I added them) show that the production code is broken if you use that instead of the sandbox. Trigenibinion (talk) 19:59, 20 February 2021 (UTC)
The code you added fixes one problem but not both. Trigenibinion (talk) 20:07, 20 February 2021 (UTC)
The frame:getParent().args handling was was perfectly correct. It fetches the parameters supplied to any template that wraps the #invoke calling the module. If you remove it, wrapper templates won't function unless they explicitly pass each parameter in the #invoke of the module. That is completely unnecessary and causes maintenance work on every wrapper template if the module is updated to include another parameter.
The original author of the module did not use Module:Arguments because it's unnecessary to add a dependency for trivial tasks like reading parameters. We can't ask over a hundred other projects who use Formatnum to add yet another dependency just because you won't code the parameter handling.
The sole problem with the standard module is that it only picks up parameters from a wrapper template (i.e via frame:getParent().args). The change I put into the sandbox was to show how it could be simply modified to use the parameters from a direct #invoke. It doesn't need Module:Arguments. Almost all of the time, it's called from another module, not from #invoke, anyway. If you don't believe me, go and ask Jarekt on Commons. --RexxS (talk) 20:38, 20 February 2021 (UTC)
I looked at the getArgs() code in Module:Arguments, this will by default get the parameters from both the frame and the parent, putting the frame arguments first, which is the correct normal behavior. Trigenibinion (talk) 20:58, 20 February 2021 (UTC)
There is no "correct normal behaviour". You could also look at Module:Wikidata table, function makerow (line 442) that will show you how to merge the arguments from frame and parent, with the frame overwriting the parent arguments when they conflict. You would swap the lines 445 and 448 to achieve the opposite effect. You can also see how getWD (line 317) does custom processing of its parameters (but only uses frame because it's for debugging), or even how function ucf (line 102) does a minimal amount of processing on the passed parameter, again because it's just for debugging. "Horses for courses" and not a single dependency. You really don't want them as far as possible if other wikis are going to install your modules. --RexxS (talk) 22:14, 20 February 2021 (UTC)
OK, I have removed the dependency in the sandbox. It also checks out. Trigenibinion (talk) 23:52, 20 February 2021 (UTC)
That looks much better to me. Have you had a chance to compare the outputs of the sandbox and the main module? I would expect no difference in the main function when called from a wrapper, but I would expect the main function to return nothing when invoked directly. If that checks out and you're ready to commit, I'd be happy to update the module from the the sandbox for you, although if you're thinking of applying for template editor permission at some point, you'll need a number of successful edit-protected requests, so you could make a formal request at Module talk:Formatnum using {{edit-protected}} - read its documentation carefully if you haven't used it before, and let me know if you need any help with it. --RexxS (talk) 01:11, 21 February 2021 (UTC)
I tried calling the original code from the test cases but it returns nothing without your fix. The foreign test cases need to be looked at by someone familiar with those languages, because I copied the results from Commons and some do not match, but the main function was not changed. Trigenibinion (talk) 12:46, 21 February 2021 (UTC)
Is Module:Math OK or should I duplicate _round()? Is Module:TableTools OK or should I duplicate 2 new functions? Thanks. Trigenibinion (talk) 01:17, 23 February 2021 (UTC)
Module:TableTools has a version on most wikis and Module:Math has a version on a number of wikis, so you might be able to use them without causing problems in most cases. I don't think it's a good idea to use them inside the main function call, but you can always write an alternative function to call via #invoke. Try to load external modules 'lazily', that is, define the variable to hold the imported table of functions without a value, and then test whether that variable is nil before you use imported functions, only loading the external module if it is nil. It may be that you're getting to the point where you are better off writing a separate new module and requiring Formatnum into your new module. Then you could experiment with different imported modules without compromising the ability of Formatnumber to be updated to sync with other wikis. --RexxS (talk) 01:32, 23 February 2021 (UTC)
Hello. I think wordify() is already so big that it belongs in its own module. It will only get bigger with time. Trigenibinion (talk) 13:16, 1 March 2021 (UTC)

Module:Formatnum is used on Commons to presents digits in a way customized for given language. On Commons it is only used from modules and occasionally from templates and never through "#invoke" statements. The input argument handling is done in a way that works with those modules and templates, and it did not changed much in last ~7 years. In the modules I write now I only use c:Module:Core's getArgs function which is lightweight, merges 2 ways of passing arguments from templates, is not case sensative and treats "_" and spaces in field names interchangeably. It is also used without issues on ~60+M pages. But this module really did not need it. --Jarekt (talk) 03:34, 21 February 2021 (UTC)

Hello, before applying changes to production code, I saw that on wikipedia it was only being called from other modules. So {{FXConvert}} would be the first template that tries to call it here. Trigenibinion (talk) 12:39, 21 February 2021 (UTC)
Period grouping separator is not working. Trigenibinion (talk) 00:16, 22 February 2021 (UTC)

LocalPunk

In blocking LocalPunk, you prevented him from editing Autisim, but not Autism. Maybe you should fix the error? 🐔 Chicdat  Bawk to me! 11:08, 2 March 2021 (UTC)

 
He is not around. Please find someone else. --Gerda Arendt (talk) 12:08, 2 March 2021 (UTC)
I took care of it. Bishonen | tålk 14:44, 2 March 2021 (UTC).
 
Thank you, Bish. --Gerda Arendt (talk) 20:23, 2 March 2021 (UTC)

Arbitration Case Opened

You were recently listed as a party to a request for arbitration. The Arbitration Committee has accepted that request for arbitration and an arbitration case has been opened at Wikipedia:Arbitration/Requests/Case/RexxS. Evidence that you wish the arbitrators to consider should be added to the evidence subpage, at Wikipedia:Arbitration/Requests/Case/RexxS/Evidence. Please add your evidence by March 13, 2021, which is when the evidence phase closes. You can also contribute to the case workshop subpage, Wikipedia:Arbitration/Requests/Case/RexxS/Workshop. For a guide to the arbitration process, see Wikipedia:Arbitration/Guide to arbitration. For the Arbitration Committee, SQLQuery me! 04:38, 27 February 2021 (UTC)

YGM. Kudpung กุดผึ้ง (talk) 05:21, 27 February 2021 (UTC)

Oh Dear, one turns ones back for five minutes and you all get into all sorts of ridiculous predicaments. I was going to make a statement in your defence, but the opining Arbs all seem to be beyond my ken. Where on earth have they all come from? I suppose it’s connected with the schools all being currently closed. It’s a pity because I have vast experience of trumped up incivility cases. Anyhow, I can only point you in the direction of this: coping with idiots. It’s very old, but I think you’ll find the types of Wikipedians still prevail. What a nuisance for you, but I’ve no doubt you’ll keep smiling through. Don’t laugh too much though, it can make people look a little simple, or like an American with newly bleached teeth - why do they do that to themselves? I see Trump has popped up again, he’ll probably start editing Wikipedia now he has the time, if he’s not already. What a world! Giano (talk) 20:22, 1 March 2021 (UTC)
Trump's got no Wikipedian editing career; he wouldn't know what a reliable source was if one came up from behind and shouted "boo". Ritchie333 (talk) (cont) 13:14, 4 March 2021 (UTC)

WikiProject Medicine Newsletter - March 2021

 
Issue 10—March 2021


WikiProject Medicine Newsletter


Here is what's happening around the project:

Newly recognized content

  17q12 microdeletion syndrome nom. Vaticidalprophet, reviewed by Bibeyjj
  Urinothorax nom. Steve M., reviewed by Bibeyjj
  Lurie Children's Hospital nom. Andrew nyr, reviewed by HickoryOughtShirt?4
  Biotin nom. David notMD, reviewed by HaEr48
  Imprinted brain hypothesis nom. Vaticidalprophet, reviewed by Lee Vilenski






Nominated for review

  Friedreich's ataxia nom. Akrasia25
  Kivu Ebola epidemic nom. Ozzie10aaaa, under review by Casliber
  Diaphragmatic rupture nom. Steve M.
  Mihran Kassabian nom. Larry Hockett
  Sophie Jamal nom. Vaticidalprophet
  Menstrual cycle Undergoing FAR, contribute at talk.
  Alzheimer's disease Notice of impending FAR at talk.
  Major depressive disorder Notice of impending FAR at talk.
  Acute myeloid leukemia Notice of impending FAR at talk.
  Influenza Notice of impending FAR at talk.
  Autism Notice of impending FAR at talk.

News from around the site

  • There is an ongoing drive to review good article nominations through the month of March. Pick up a review if you have time. Instructions here.
  • The Medicine Collaboration of the Month is on temporary (perhaps) hiatus. You can still nominate future candidates at WP:MCOTM.
  • This month's target maintenance backlog is "articles with a dead link". Each typically takes around a minute to fix, so please hit one or two when you have a moment.
  • The desktop site's default "Vector" skin is being gradually modernized. Details here. Opt-in at Preferences>Skin preferences to begin getting used to the new look.

Discussions of interest

  • A large discussion is reconsidering deprecating the aliases for some citation template parameters.
  • Please look over edit-protected medicine pages to consider whether some could have protection levels safely lowered.

  Discuss this issue

You are receiving this because you added your name to the WikiProject Medicine mailing list. If you no longer wish to receive the newsletter, please remove your name.

Ajpolino (talk) 18:55, 6 March 2021 (UTC)

Help pls

You've helped me before with a template issue I had and so I'm hoping you can help again. {{Pete Buttigieg series}} is causing the articles it's transcluded into to have an extra blank line at the top of the page. Could you figure out what's causing it?  Bait30  Talk 2 me pls? 05:59, 7 March 2021 (UTC)

Bait30, sorry and sad: he is not around. Look around. --Gerda Arendt (talk) 07:47, 7 March 2021 (UTC)

A rather neat solution

 
St Agatha of Sicily

As you probably know, I don’t normally hold with Papist claptrap, Henry VIII was one of my childhood hero’s, but my nephew assures me that praying to the Blessed Saint Agatha of Sicily solves most problems including violent eruptions and whatnot. Funny woman if you ask me, it’s all very well making great value out of virginity; nymphomaniac I expect, they always find religion, anyway, I’m digressing. Apparently you pray to her, and your enemies are immediately swamped in molten lava and are vaporised, then their neighbourhood is swallowed by an earthquake. Quite a neat solution, one can’t help but admire Sicilians. The Lady Catherine de Burgh (talk) 21:58, 2 March 2021 (UTC)

She doesn't seem to work for losing weight though. I suppose you can't ask for everything. Johnbod (talk) 22:06, 2 March 2021 (UTC)
//Buck Flower makes an inappropriate pass at the Lady, while at the same time, ducking from Bishzilla's wrath (yes, he is that versatile!). El_C 17:34, 4 March 2021 (UTC)
  • Never mock the power of the Catholic saints! Do you think I would be the highly respected elder statesman of Wikipedia without them? Everything I am, I owe to the blessed Saint Dymphna. Whose page tells me has her sacred shrine in Massillon, Ohio. Which begs the curious question: what the fuck was she doing there? Giano (talk) 20:04, 4 March 2021 (UTC)
    Me? Erm, I mean, Mr. Flower? Never! Also, joy for a Giano sighting! I feel like a birdwatcher when they come across a most rare and beautiful bird. El_C 20:19, 4 March 2021 (UTC)
    @Giano: She's Irish, and they are everywhere, even Ohio. There are more Irish outside Ireland than inside: well-known fact. --Redrose64 🌹 (talk) 13:28, 5 March 2021 (UTC)
    The blessed and much revered Santa Dymphna (of blessed memory) is Sicilian! Just because every USA President likes to claim some tenuous ancestry to Ireland, doesn’t mean Catholic saints have to too. Much as it pains me to point this out, Catholic saints are not inclined to spend their vacations in Ohio, wherever that is! Giano (talk) 22:01, 5 March 2021 (UTC)
    Her Wikipedia page says According to Christian tradition, St. Dymphna was born in Ireland in the 7th century. Dymphna's father Damon was a petty king of Oriel. - no mention of Sicily. Maybe it was vandalised? --Redrose64 🌹 (talk) 22:56, 5 March 2021 (UTC)

Thanks for the laugh!Littleolive oil (talk) 22:36, 5 March 2021 (UTC)

You’ll claiming next that Don Corleone’s middle name was Patrick. Giano (talk) 17:40, 6 March 2021 (UTC)

I am horrified, simply horrified, to see that so many of you have commented in this section without any one of you calling out on Lady de Burgh for "Henry VIII was one of my childhood hero’s". At what kind of school did she learn English? I mean, that is not grammatically complete, as it doesn't specify one of her childhood hero's what. One of her childhood hero's ancestors? One of her childhood hero's worst enemies? One of her childhood hero's ex-boyfriends? One of her childhood hero's socks? Hmmph. JBW (talk) 22:16, 6 March 2021 (UTC)

Young man! (I assume that’s what you are; although with all this frequent chopping and changing who knows these days). When you are as old as I, then you may presume to lecture me on apostrophe abuse. The poor grammar of my secretary’s iPad is beyond my very far reaching control. More to the point, when is this Rex man going to return? We can’t spend eternity here waiting, and quite frankly, none of us (he included, he does look rather elderly) have time on our sides. One can’t go stomping off into the wilderness every time some jumped up school of little traffic wardens adopt ideas above their stations. We all saw what happened in the 1930s when traffic wardens overreached themselves. The Lady Catherine de Burgh (talk) 19:52, 7 March 2021 (UTC)
@Catie, old girl: Interesting that you refer to "this Rex man" as looking "rather elderly", but address me as "young man". If I remember correctly there is less than a year's difference between my age and his; certainly less than two years. As for "apostrophe abuse", if you check my editing history you will find that the very first edit I made with this account, almost 15 years ago, was removing a superfluous apostrophe, so that's my speciality. JBW (talk) 20:34, 7 March 2021 (UTC)

... and since you bemoan "chopping and changing", what are we to make of this? JBW (talk) 22:18, 7 March 2021 (UTC)