Jump to content

User talk:Yapperbot

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia


Feedback request service

[edit]

I was wondering what was happening with RFC notifications and I noted the status of the bot running the Feedback request service has been killed. Does anyone know if there is going to be some replacement for this? TarnishedPathtalk 13:56, 21 August 2024 (UTC)[reply]

@TarnishedPath: I will look into it ASAP! --David Tornheim (talk) 02:45, 22 August 2024 (UTC)[reply]
You are correct that the Yapperbot's Feedback Request Service is no longer enabled. Last I checked a couple of months ago, it was still active and I assumed it was still running. I will work on getting it restarted and/or a new bot to do the Feedback Request Service notification tasks. Thanks for putting this notice here and drawing my attention to the problem. --David Tornheim (talk) 06:35, 22 August 2024 (UTC)[reply]
An anon had made a bogus edit that disabled the bot. This has been fixed and the kill page has now been protected by @Pppery so this should not reoccur. See phab:T361426#10086509 for more details. -- BDavis (WMF) (talk) 23:19, 22 August 2024 (UTC)[reply]
@BDavis (WMF): Thanks. I bookmarked that page too, and I put warnings on the two IPs pages for vandalism.[1][2] I will keep an eye to make sure FRS is still enabled and properly running until we finish up adoption or transferring the bot. I have been somewhat concerned that some of the internal data that Yapperbot uses is stored on Wikipedia and is vulnerable to these attacks. I don't think the author Naypta was sufficiently familiar with how Wikipedia works to understand the vulnerability. The new page protection will help, but there are some other internal data places that are still vulnerable to similar attacks by new IPs. I can give you a list of the ones I am aware of as I start spending time reviewing the code again.
Please note that the second IP messed with the kill switch to the "Uncurrenter" Yapperbot process too, but reverted the change.[3] All the kills switches should minimally be protected to either autoconfirmed users and/or more established user or possibly just to admins. --David Tornheim (talk) 10:18, 23 August 2024 (UTC)[reply]
I have semi-protected User:Yapperbot/kill/Uncurrenter. Pruner doesn't seem to have a kill switch at all. * Pppery * it has begun... 14:42, 23 August 2024 (UTC)[reply]
Strange. Because it has the "Stop" button on the User:Yapperbot page. I did try to navigate to User:Yapperbot/kill/pruner and User:Yapperbot/kill/Pruner, and it does indicate that the pages don't exist. You think this was an oversight? I might look at Naypta's edit history to see when the kill pages were created and see if there is more to this.--David Tornheim (talk) 20:01, 23 August 2024 (UTC)[reply]
Special:PrefixIndex/User:Yapperbot/ might help you find some of the kill pages. For example, the FRS one is User:Yapperbot/kill/FRS. –Novem Linguae (talk) 20:18, 23 August 2024 (UTC)[reply]
Novem Linguae,BDavis (WMF),Pppery: The FRS function of Yapperbot is still not working. Take a look at: User:Yapperbot/FRS/SentCount.json. When Yapperbot/FRS is running smoothly, it gets updated every day. It hasn't changed since 6/13/24. I tried logging in to the Toolforge shell to look at the files and look for errors, but I can't get in. Can someone help me get in? User_talk:Novem_Linguae#Need_help (permalink). --David Tornheim (talk) 04:14, 27 August 2024 (UTC)[reply]
FRS is working again! Sohom_Datta fixed the most recent problem. --David Tornheim (talk) 17:40, 29 August 2024 (UTC)[reply]
Also, JSON pages like User:Yapperbot/FRS/SentCount.json and User:Yapperbot/FRS/RFCsdone.json are implicitly protected so only the bot and admins can edit them, so you don't need to worry about any security issues there. * Pppery * it has begun... 14:43, 23 August 2024 (UTC)[reply]
Pppery That's good. I believe I saw one one or more of those JSON pages saying, "Do not edit this page". I thought that meant editors were capable of it, and he hoped the warning was sufficient to deter them. Glad that is not the case. I'll still keep an eye out for any other similar vulnerabilities as re-familiarize myself with the code. I haven't looked at the code for "kill" recently, so I might look at that first. If there is anything you would like me to focus on or investigate, please let me know. --David Tornheim (talk) 20:01, 23 August 2024 (UTC)[reply]

Bug report when the bot removes a Current template

[edit]

I don't know anything about this bot nor the seemingly inactive operator, but I just want to let anyone who cares know that when the bot removed a {{Current}} template at Queensland Government, it broke the adjacent table. See Special:Diff/1253732866 and my edit to fix it at Special:Diff/1253849470. Fork99 (talk) 06:27, 28 October 2024 (UTC)[reply]

Thanks for the notice. I will look into it. --David Tornheim (talk) 04:54, 19 December 2024 (UTC)[reply]

Feedback Request Service is down again

[edit]

It's been several weeks since RFCs have been advertised properly. Can someone (@Legoktm, David Tornheim, Novem Linguae, anyone?) see if the bot needs to be restarted? WhatamIdoing (talk) 18:39, 11 June 2025 (UTC)[reply]

It's been a year so I forget where we left off on this. The yapperbot toolforge account is only accessible by Naypta and Toolforge admins. Did we end up forking yapperbot to a different toolforge account? –Novem Linguae (talk) 18:48, 11 June 2025 (UTC)[reply]
I thought someone found an admin to restart the bot last time, but I'm not sure. WhatamIdoing (talk) 18:50, 11 June 2025 (UTC)[reply]
It looks like the last significantly discussed instance of the FRS service stopping whilst the bot was otherwise running normally (briefly mentioned above) was solved in this comment & its reply on David Tornheim's talkpage in August, which I'll copy below for ease of access [minus @'s and sigs]:

Based on a quick look at the code (and some mocking up using python) [4] should have been the culprit.
— User:Sohom Datta

Thanks for fixing it! Based on the error, I suspected it was a problem with the online data of a recent GA nomination. I was working through extractGANom() of matchers.go and the loop that called it from main.go to see if the data it was parsing didn't match its requirement. I'm impressed you figured it out so quickly. I'll post soon about my thoughts on adopting Yapperbot-FRS vs. starting a separate bot for the FRS piece.
— User:David Tornheim

Additionally, I noticed a set of technical debugging questions from David to @Sohom Datta, at User talk:Yapperbot/FRS/Bugs. [IANADev but…] it might be helpful to get answers to those questions, if it'll help more people to debug this in the future?
I hope these notes are helpful! Quiddity (talk) 01:49, 12 June 2025 (UTC)[reply]
It's been a while since I last peeked at this. Lemme throw some time at it. Sohom (talk) 02:09, 12 June 2025 (UTC)[reply]
I ended up just running the code locally this time, it seems the runfile seems to be stuck on a date range that is causing mediawiki to spit back Categories alongside Talk page which caused the bot to exit and throw a fit. I asked @Taavi on discord ([5] for folks on Discord) to remove the run-file and I'll try to see if that fixes it (it should per my tests). Sohom (talk) 13:11, 12 June 2025 (UTC)[reply]
It lives! Sohom (talk) 13:43, 12 June 2025 (UTC)[reply]
Welcome back Yapperbot! — ClaudineChionh (she/her · talk · email · global) 13:51, 12 June 2025 (UTC)[reply]
To respond to the original questions, (which I completely missed, sorry on that) I don't remember what the python code was, but the idea would have been making a request to the same APIs as the Go code was making and loop through and dump the content and regex outputs for all the entries inside Category:Good article nominees. (Which was what helped me debug the issue). With respect to a list of routines, I don't think there is a good way to do that in Golang, I typically start at the main function and then jump around inside the code following functions as they call each other to try and understand why or how the error happened. I also don't use a debugger of any kind preferring to do Printf debugging and just commenting out/disabling parts of the code to make sure I don't actually make any edits (in this case, I also used a botpassword with no edit capabilities to test the program as a additional layer of protection) Sohom (talk) 13:54, 12 June 2025 (UTC)[reply]
Nice. I added this to shorten the feedback loop next time the bot needs fixing. –Novem Linguae (talk) 16:30, 12 June 2025 (UTC)[reply]
@Sohom Datta: Thanks for responding to my questions. I'm amazed there is no decent debugger. I am pretty used to the printf method too and was doing some of that with my copy of the code. Surprising there is no decent program to provide a simple index of where all the routines are, so we don't have to go hunting for them in all over the code. I even made an Access database to help keep track of the routines, but not much in it.
I typically start at the main function and then jump around inside the code following functions as they call each other to try and understand why or how the error happened. Me too. It's usually easier with a debugger, though. And I hate cluttering the code with all those printf statements! The original author didn't seem to have any. --David Tornheim (talk) 04:06, 11 July 2025 (UTC)[reply]
Surprising there is no decent program to provide a simple index of where all the routines are. VS Code (open source IDE that supports every language via plugins) has an outline panel that shows all of a class's methods / file's functions. You can also click on a function/method and press F12 to jump to its definition. You can also do an entire repo search in VS Code's search panel.
I'm amazed there is no decent debugger. With some configuration, debuggers can be configured in VS Code. Then debugging can happen by setting some breakpoints, then hitting the play button in the "Run and Debug" panel. –Novem Linguae (talk) 04:23, 11 July 2025 (UTC)[reply]
Thanks for the info. I figured there had to be something--even if it were NotePad++. --David Tornheim (talk) 08:19, 11 July 2025 (UTC)[reply]
Is there some way the bot (or another bot) could alert us if it doesn't make these edits? Maybe something like posting a note at Wikipedia talk:Requests for comment if more than three days pass between edits to User:Yapperbot/FRS/SentCount.json? WhatamIdoing (talk) 23:41, 12 June 2025 (UTC)[reply]
See WP:Bot activity monitor. * Pppery * it has begun... 00:06, 13 June 2025 (UTC)[reply]
I've added both to my watchlist just in case. Sohom (talk) 01:18, 13 June 2025 (UTC)[reply]
@Pppery, could you add Yapperbot's FRS task to that list? The signal-to-noise ratio feels pretty high when you only care about one bot, but maybe it would be better than nothing. WhatamIdoing (talk) 01:45, 13 June 2025 (UTC)[reply]
Done. And the BAM syntax also supports posting on a talk page when the task goes inactive, which I also set up. That was the true answer I meant to give, not watchlisting. * Pppery * it has begun... 01:47, 13 June 2025 (UTC)[reply]
Thanks. It looks like it will post on this talk page if it doesn't do something for >1 day. I'll [subscribe] to new notifications for this page, then. WhatamIdoing (talk) 02:42, 13 June 2025 (UTC)[reply]
@WhatamIdoing: Sorry I am only seeing this now. I responded in the next thread. --David Tornheim (talk) 04:06, 11 July 2025 (UTC)[reply]

Yapperbot: FRS failure – time too short?

[edit]

Yapperbot's task "FRS" failed to run per the configuration specified at Wikipedia:Bot activity monitor/Configurations. Detected only 0 edits in the last 1 day, whereas at least 1 was expected. If/when the issue is fixed, please change the section title (e.g. append " - Fixed") or remove this section completely. When that is done, this notice will be reposted if the bot task is still broken or is re-broken. If your bot is behaving as expected, then you may want to modify the task configuration instead. Or to unsubscribe from bot failure notifications, remove the |notify= parameter from the {{/task}} template. Thanks! – SDZeroBot (talk) 17:20, 17 June 2025 (UTC)[reply]

Pppery, do you think this is actually due to failure, or because we didn't happen to have any RFCs in the specific time range? We get an average of two RFCs per day, but we could have a 24-hour period with no RFCs happening. WhatamIdoing (talk) 22:54, 17 June 2025 (UTC)[reply]
Actual failure. Talk:Maddie Ziegler#Infobox RFC, among others, should have been added. * Pppery * it has begun... 22:58, 17 June 2025 (UTC)[reply]
Hmm, this looks like the same bug again. @Taavi, could you delete the same file (/data/project/yapperbot/frs/CategoryGood-article-nominees.frsrunfile) again? Sohom (talk) 23:40, 17 June 2025 (UTC)[reply]
Also, given that this seems to be a re-occurring issue (that will need actual code changes to fix), would y'all mind if I just took over this task using User:SodiumBot ? Sohom (talk) 23:41, 17 June 2025 (UTC)[reply]
I don't care which bot does this, or who operates it. I only care about the end result. WhatamIdoing (talk) 23:49, 17 June 2025 (UTC)[reply]
I'll ask around to figure out what the policy around taking over a task are (I'm a bit rusty on them). Sohom (talk) 00:15, 18 June 2025 (UTC)[reply]
If you're just copying the source code and running it under your own account, I think you just file a WP:BRFA. If you are trying to take over the YapperBot Toolforge account, then wikitech:Help:Toolforge/Abandoned tool policy is probably what you want. –Novem Linguae (talk) 06:31, 18 June 2025 (UTC)[reply]
I had a talk with a few folks on IRC and it seems like taking over the Yapperbot account is going to be messy, I'll go down the copy binaries and file a WP:BRFA route Sohom (talk) 10:29, 18 June 2025 (UTC)[reply]
@Sohom Datta. Thanks for taking over Yapperbot. As you probably know, for some time I had intended to do it at the urging of Novem Linguae, but all the various platforms I was having to learn has been overwhelming. I am used to the old days of C programming, where you just had the one piece of code and powerful subroutines. Things have changed so much since then with so much to learn. Unfortunately learning so much about coding today doesn't interest me as it did when I was younger and had a lifetime of use for what I learned, and back when I loved to spend endless hours coding in what was then the most popular language. Now it just feels tedious and like work.
If I were going to spend a significant amount of time coding for Wikipedia or elsewhere, it would be worth it; however, this bot is really the only code that grabs my attention. So, it's probably better that someone younger like you who knows and/or has used all the platforms--and most importantly knows Go--take over the bot.
If you would like any help trying to understand the code, I've spent quite a bit of time reviewing the various routines to get the big picture of how the various pieces work. Also, I have had recommendations for fixing part of its implementation way back when the code was first being worked on. I believe the selection routines Yapperbot uses to choose who and when to notify users is not properly random, being for example dependent on what day of the month RfC goes out. I also believe it under-notifies by picking a random number of users to notify (with a limited range) rather than seeking to notify the maximum number of users who do want to be notified.
Again, sorry I was not here to jump on this when it occurred. I was on vacation, haven't been doing much Wikipedia lately, and finally saw this. --David Tornheim (talk) 03:48, 11 July 2025 (UTC)[reply]
I think nowadays software engineering requires a lot of breadth of knowledge. The dev has to glue together a bunch of different technologies, knowing a little bit of everything. For example, for web development even when I was a kid, I had to learn 5 languages: PHP for the backend, SQL for database, HTML/JS/CSS for the front end. Then anything even a little complicated is going to need git for version control, VS Code for IDE, a framework library, various automated test suites, a bug tracker website such as GitHub Issues, etc. And those all have their own quirks and things to learn.
Back in the day, maybe it was simpler. Did you all just fire up Visual C++ and do everything in there? –Novem Linguae (talk) 04:28, 11 July 2025 (UTC)[reply]
It might not have been C, but the idea of just needing to know one language was generally true for most software. You could spend a decade writing only in COBOL, for example. If you supported more than one piece of software, then you might need to know a handful (COBOL for this, Fortran for that...) and you'd probably need to know one operating system/other hardware-specific systems (e.g., IBM's JCL), but you didn't need to know five different languages to write one thing. WhatamIdoing (talk) 06:05, 11 July 2025 (UTC)[reply]
  • Although I was not a software engineer--I was a VLSI CPU design engineer, who designed with simulators like Verilog (VHDL), structural models (RTL), gate models, and SPICE--I agree with WhatamIdoing that a lot of programming in the 1980s and early 1990s (before HTML took off and the Internet was ubiquitous) could indeed be done on a single system O/S (e.g. VAX, IBM, Unix, etc.) and that you could basically stick to one or a few languages. And before that, like WhatamIdoing said, COBOL, FORTRAN and PL/I were common. And, of course, if you really wanted fast code, you'd learn assembly. Some machines like my father used required you to program in binary with on-off buttons! (e.g. HEWLETT-PACKARD 5451B Fourier Analyzer) After programming an early HP calculator like the [HP29C], I learned my first language HPL on [this device] with one line of display. Then I moved on to a number of high level languages (BASIC, FORTRAN, Pascal, C, LISP/PROLOG) and some assembly languages (Z-80, 8085, 8086, VAX and MIPS assembly). C++ and OOP was the rage when I started losing interest in the latest and greatest software advances, but I did learn HTML (some PhP), Perl, Python, and love to make Access Databases. And now some Go. I can't deny I like Wiki source code.  ;) --David Tornheim (talk) 08:54, 11 July 2025 (UTC)[reply]
    Thanks for those details. Very interesting.
    I think as time goes on, lower level languages are being dropped in favor of higher level languages. I think this makes sense too. Now that fast and memory-rich computers are cheap and plentiful, hardware and performance are no longer the bottleneck. Now dev time is the thing to optimize, and the way one optimizes dev time is to write really readable code. Readable code is easier to maintain. And in general higher level languages have easier-to-read code than lower level languages.
    I think assembly language is pretty much gone (I think you can do everything in C that you can do in assembly? And for the odd thing you can't easily do in C, like an interrupt, you can use the asm() function. And modern C/C++ compilers can micro-optimize very well.) And I think languages without garbage collection for their memory (such as C and C++) are also avoided except for the most performance-intensive applications, such as big, popular software suites. If one looks at the tags list on Stack Overflow, which sorts by popularity, you have to go all the way down to #9 to find a lower level language such as C++.
    Not that I am speaking ill of assembly. I watched a super interesting series on YouTube about restoring an Apollo spacecraft CPU. All the code for the Apollo missions was written in assembly. The CPU was as big as a modern day computer tower, and contained a latticework of wires instead of a silicon wafer.
    Pardon my rambling. I find this transformation of the software industry really interesting :) –Novem Linguae (talk) 10:01, 11 July 2025 (UTC)[reply]
I started writing another response on this topic of the history of programming. Will try to get that posted soon. Glad this subject interests you. If you would like to continue the discussion elsewhere, please point me to the best place. --David Tornheim (talk) 09:34, 12 July 2025 (UTC)[reply]
@David Tornheim Back on topic, I did fix the random-ness bug since Golang has since removed the seeding functionality (it is still psuedo-random). I'll take a look at the other bug!
Back offtopic, my mileage with Golang has been much better than languages like Rust, even though they are still much higher level than something like C (I've done a fair bit of modern C/C++ work IRL) but yeah if you are interested in the subroutine style of programming I can understand why it might feel overwhelming (as you mentioned the meta has moved a lot over the years). Sohom (talk) 12:12, 11 July 2025 (UTC)[reply]
@Sohom Datta: When I have a chance, I'll point you to where the issue is with the randomness that I raised in the past.--David Tornheim (talk) 09:34, 12 July 2025 (UTC)[reply]
@Sohom Datta, it looks like it's down again. The most recent FRS notification was 22 June 2025. WhatamIdoing (talk) 06:07, 11 July 2025 (UTC)[reply]
@WhatamIdoing, I filed Wikipedia:Bots/Requests for approval/SodiumBot 3, so you should be monitoring User:SodiumBot's contributions! Sohom (talk) 10:18, 11 July 2025 (UTC)[reply]
Thanks! I'll update my links. WhatamIdoing (talk) 18:25, 11 July 2025 (UTC)[reply]

Yapperbot: FRS failure old report

[edit]

Yapperbot's task "FRS" failed to run per the configuration specified at Wikipedia:Bot activity monitor/Configurations. Detected only 0 edits in the last 1 day, whereas at least 1 was expected. If/when the issue is fixed, please change the section title (e.g. append " - Fixed") or remove this section completely. When that is done, this notice will be reposted if the bot task is still broken or is re-broken. If your bot is behaving as expected, then you may want to modify the task configuration instead. Or to unsubscribe from bot failure notifications, remove the |notify= parameter from the {{/task}} template. Thanks! – SDZeroBot (talk) 23:20, 17 June 2025 (UTC)[reply]

Yapperbot: FRS failure

[edit]

Yapperbot's task "FRS" failed to run per the configuration specified at Wikipedia:Bot activity monitor/Configurations. Detected only 0 edits in the last 1 day, whereas at least 1 was expected. If/when the issue is fixed, please change the section title (e.g. append " - Fixed") or remove this section completely. When that is done, this notice will be reposted if the bot task is still broken or is re-broken. If your bot is behaving as expected, then you may want to modify the task configuration instead. Or to unsubscribe from bot failure notifications, remove the |notify= parameter from the {{/task}} template. Thanks! – SDZeroBot (talk) 06:20, 11 July 2025 (UTC)[reply]