Falsehoods Wikimedians Believe About Gadgets
Lucas Werkmeister, .Gadgets are a popular way to improve the user experience on MediaWiki wikis, including Wikimedia wikis. This humorous list contains misconceptions that some of us, consciously or unconsciously, may hold about various aspects of gadgets, based on my own experience as an interface administrator on Wikimedia Commons.
For some of the falsehoods, I’ve included some extra text that you can read if you like (click the headings to collapse/expand them). But I’d suggest first reading through the whole list once, as I think the text flows better this way :)
(With thanks to Ash_Crow, Sukkoria and Brooke Vibber for proofreading and suggestions!)
The list
1. The user who created this gadget is its maintainer
2. The user who most often edited this gadget is its maintainer
3. The user who last edited this gadget is its maintainer
4. This gadget’s maintainer uses it regularly
I maintain AC/DC, but use it only sporadically.
5. This gadget’s maintainer is able to edit its code
If a gadget started out as a user script, the author of the user script may not have the permissions required to edit it after the conversion to a gadget. For example, this was the case for AC/DC, until I became an interface administrator.
6. Gadgets should only have one maintainer
7. This gadget has enough maintainers
8. This gadget is maintained
9. This gadget works
10. If this gadget was broken, somebody would have noticed it
11. This gadget has users
12. This gadget has active users
Special:GadgetUsage (e.g. English Wikipedia, Wikimedia Commons, Wikidata) shows the number of users and active users (ones who’ve made an edit in the past 30 days) who have a gadget enabled (which doesn’t necessarily mean they’re actively using the gadget). Some gadgets can have thousands of users; others, even on large wikis, may only have a handful, and it’s possible that few of those users are still active. On test wikis you can easily find gadgets with no active users at all (though I’ve yet to find a gadget without even inactive users).
13. This gadget is used more widely than this similar user script
14. This gadget has no bugs
15. This gadget has no security vulnerabilities
16.Surely no gadget on Wikimedia wikis uses eval()
eval()
Don’t look at this global search if you want to keep believing that.
17. This MediaWiki:Gadget-* page is part of a gadget
It’s worth checking the gadgets definition page; maybe the page author never finished the gadget, or it became obsolete and was removed from the gadget definitions again (example).
18. This gadget uses a consistent coding style
19. This gadget’s code is written this way for a good reason, it shouldn’t be changed
20. This gadget’s code is written this way for no reason, it’s fine to change it
Both of these refer to Chesterton’s fence, the idea that you shouldn’t change an existing system without understanding the reason for its current state. If you’re looking at an unfamiliar gadget and something in the code seems pointless and confusing, it’s a good idea to look into why it was written like that before changing it. Once you understand it, it may still be legitimate to change the code, e.g. if the code is working around quirks in an ancient browser version that’s no longer supported, or if the original developer just liked the code this way and didn’t realize that it would cause some specific bug. If you can’t figure out the reason, you’ll have to apply your own judgment whether you still want to risk changing the gadget.
21. Edits suggested or made by this gadget, by necessity, represent currently accepted best practices on this wiki
22. If this gadget was discouraged, deprecated, unmaintained, or abandoned in some way, the gadget description and/or documentation would say so
23. This gadget’s code is only used on this wiki
24. This gadget’s code is only used on Wikimedia wikis
For example, HotCat can be (and is) installed on many other wikis. Many of them are set up to always load the latest code straight from Wikimedia Commons, so we need to be extra careful when making any changes there.
25. This gadget is usable
26. This gadget’s user interface is well designed
27. This gadget is self-explanatory
28. This gadget has a documentation page
29. This gadget’s documentation page is up to date
30. This gadget’s documentation page is correct
31. Every part of this gadget is protected against vandalism
Translations may be less protected than the gadget’s code proper, for instance.
32. Any user who edited this gadget, by necessity, understood how the whole gadget worked then and still understands it now
33. If an issue with this gadget is reported on its talk page, somebody will respond to it
34. If an issue with this gadget is reported on its talk page, nobody will respond to it
35. An edit request to update this gadget will be processed speedily
36. An edit request to update this gadget will never be processed
37. This wiki has an edit request template
38. This wiki has a technical village pump or interface administrators’ noticeboard
From Wikimedia Commons, I’m mostly familiar with the edit request workflow (a template you put on the talk page of the page you want edited), but e.g. German Wikipedia has no such template and instead collects all edit requests on a central noticeboard. Other wikis may have neither (Wikidata query).
39. This gadget’s messages are translatable
40. Everyone can update this gadget’s translations
41. Everyone knows how to update this gadget’s translations
42. Someone knows how to update this gadget’s translations
43. This gadget’s source code and comments are written in English
44. This gadget’s source code is commented
45. This user script should be a gadget
46. This user script shouldn’t be a gadget
47. This user script could’ve been made a gadget already
48. There’s a good reason why this user script wasn’t already made a gadget
49. When it’s agreed that this user script should be made a gadget, it’s clear which user’s version of the user script should be adopted
50. This useful functionality already exists as a gadget
51. There must be a reason why there’s no gadget for this useful functionality yet
52. This gadget would be really easy to create
53. This gadget would be really hard to create
You won’t know until you try it. If you know how to write JavaScript, and you want a certain gadget or user script to exist, go ahead and try it out :)