[02:00:13] !ops [02:00:21] !ops [02:00:22] !ops [02:00:24] !ops [02:00:34] ... [04:09:36] Hi, [04:10:01] I need a function which imports a script and WAITS before moving to a next line. mw.loader.load doesn't seem to wait. [04:12:29] https://test.wikipedia.org/wiki/User:Gryllida/common.js for example: I define GryllidaSand in another file, and I need to import it first, WAIT for it to be fully imported, and show an alert with a variable from it. [04:13:12] Or must I use functions and return something? [04:13:37] Use https://test.wikipedia.org/w/index.php?title=User:Gryllida/common.js&oldid=296997 -- I've changed the file since the time I asked this question. [13:13:05] is there a way to get wikitext of both revisions on a diff page in php? [14:49:48] codezee ? [14:49:51] Oh they left [14:50:17] you want to GET with &action=raw&oldid= ... [14:50:26] (for the 2 revision numbers) [14:51:15] kim_bruning: Hi! [14:51:37] Oh it's McBride [14:51:43] Ohai! :-) [14:51:45] \o/ [14:51:50] \o/ [14:51:58] what's up doc? [14:52:03] is the wiki dead yet? [14:52:14] or is it still alive? [14:52:15] Not yet. [14:52:22] It's struggling, but still alive. [14:52:27] So much stagnation. :-( [14:52:42] are editor numbers remaining stable? [14:53:53] Not sure. Admin count keeps dropping, I think. [14:55:02] I just read lots of Wikipedia articles that are bad. [15:15:52] Debra, well... it's really the communitie's own choices that are causing this [15:15:54] are people aware? [15:20:06] kim_bruning: I'm not sure. [15:20:10] Maybe I should tell them. [15:21:51] *community [15:22:06] do they listen to you? [15:22:18] or are you cassandra? ;-) [17:35:32] Wow I figured it out, I'm Jessie Everyone. [17:38:04] Hello [17:38:15] I'm here joining for the Google Code-In [17:38:20] Are there any challenges open [17:38:46] Hello [17:39:12] Hi [17:39:20] Heyy [17:39:28] Heya, Jessie Everyone. [17:39:32] Hi [17:39:46] Hello this is Vishrut Jaipuria from New Delhi, India here [17:39:52] Macedonia [17:39:57] Skopje [17:40:29] MatejMecka: All the tasks are listed on the GCI website but you can only claim one at a time [17:40:39] I haven't claimed any [17:40:47] All Grey for me [17:40:53] It looks like only one is published [17:41:07] Code in site [17:41:17] That must have something to do with your parental consent form if they are grey for you. [17:41:48] Yeah I think you need to get parental consent before partcipating [17:41:54] I had to go to my email and click on a link to get started, they were grey for me too. [17:41:55] i'll check rn [17:42:32] @jesspeck which link? [17:43:00] You will get a link after registering [17:43:06] I only got for groups [17:43:11] Did you get an email with the subject "GCI 2016: Welcome to Google Code-in!" [17:43:22] Yep [17:43:59] ok open up the email and theres a link next to where it says "Visit your dashboard " [17:44:15] Also, https://developers.google.com/open-source/gci/faq#where_do_i_find_the_required_parental_consent_form [17:44:47] Sent them that [17:44:59] do they have to fill it out [17:45:02] in order to claim one [17:45:22] Yea, youre parents have to put in a little bit of information. [17:45:29] crap [17:45:35] Generally: If you have issues with the GCI site itself we (Wikimedia) likely cannot offer much help as we don't run, program or control it, but we are only one organization taking part. :) #gsoc is the "general" channel for Google Code-in. [17:48:19] So who all are first timers here? [17:48:20] Thanks guys [17:48:21] claimed it [17:48:30] No problem. [17:48:46] I'm a first timer. [17:48:50] claimed it https://codein.withgoogle.com/tasks/5662240669696000/?sp-organization=6426002725011456&sp-organization=4809822100783104&sp-organization=5385807011512320 [17:48:57] I just need to sit for an hour [17:49:23] You don't need to just sit for an hour... You can interact with people ;) [17:50:43] I was a finalist last year in GCI (and am mentor now) if you have any questions you can private message me. [17:51:18] mhutti1: I think in general we prefer people to ask questions in public, so others can learn as well [17:51:33] marktraceur: K sure just ask them here then [17:51:33] (and I promise we don't bite!) [17:51:34] :) [18:01:30] Hello! I am Matej Plavevski and I am 14 years old from Skopje Macedonia. I like programming and coding. [18:02:13] Hello MatejMecka, welcome back [18:02:22] Joined from LimeChat [18:02:27] since i couldn't use a web client [18:02:40] nice! [18:04:01] I used mIRC, is there a significant difference or what because the font for mIRC is murdering my eyes. [18:04:24] MatejMecka: A small note, most people in here are also in -dev, so repeating the same messages both places is not necessary [18:04:35] JessPeck, that strongly depends on your operating system I guess :) [18:04:43] JessPeck: Lots of clients have super-configurable appearance preferences. [18:07:14] Oh theres actually a /font command haha. [18:08:12] Gotta love IRC clients [18:08:20] Geez thats much better. [18:08:21] Too many people have wanted too many absurd things over the years [18:08:30] Hello everyone [18:08:38] hi devgci and welcome! [18:08:41] My name is Dev [18:08:43] JessPeck: Notably, if you've switched away from a monospace font, you could miss some of the fun of IRC [18:08:58] JessPeck: ASCII art is a real big part of the general culture. Not so much in here, but still [18:09:17] I am participant of Google Code-In and joined first time IRC as task [18:09:29] I am enjoying!!! [18:09:29] Welcome devgci. [18:10:03] marktraceur where can i change my nickname? [18:10:15] devgci: Just type /nick [18:10:16] Im using verdana, i think its monospaced but i don't really know. [18:10:23] ok thanks [18:10:33] JessPeck: Doesn't look like it. [18:10:48] JessPeck: "Monospace" means every character takes up the same amount of space on the screen. [18:11:05] JessPeck: In Verdana, it looks like "I" is skinnier than "U" [18:11:20] Oh ok yea thats far from the truth with verdana then. [18:11:46] Ill switch if i see some art but for now my eyes are happy. [18:22:35] Hello everyone [18:22:42] hi [18:23:10] My name is Dev Vora. I am particpant of GCI2016 [18:24:06] can i know of which type of discussions are done on this channel? [18:24:56] hi tarsdev, it's typically MediaWiki support questions and some general discussion in here [18:25:34] ok and are any devlopers present in this discussion? [18:26:06] yes :) most development discussion happens in #wikimedia-dev though [18:26:45] ok thank you very much [18:30:12] legoktm: Funny, I was just saying in -dev that there's usually too much bot noise to have conversations. [18:30:23] I guess you didn't see it [18:30:26] Because bot noise. [18:33:29] Is there any way to see how long Ive been in this channel, I have to turn in the task thing after an hour and im getting pretty close. [18:34:27] JessPeck: scrolling back? :P or use the /whois command [18:34:52] but it's been exactly one hour now I think [18:34:53] yea i scrolled up but it doesnt say what time i joined :/ [18:35:03] Bad, bad IRC client! :D [18:35:09] no timestamps displayed? [18:35:21] none at all [18:36:21] The /whois command worked though, thanks. [18:41:37] JessPeck: you should figure out how to enable timestamps, they're pretty useful :) [18:42:25] yea ill take a look at it, i might end up just getting a different client. [18:44:14] which one are you using? [18:45:12] mIRC, i really had no idea what i was looking for so I just kinda winged it. [18:46:13] what's your OS? [18:46:22] Win 7 [18:47:32] Theres an option to enable them, im just trying to find it. [18:47:33] based on https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients#Operating_system_support I'd recommend chatzilla, hexchat, or quassel (standalone) [18:48:09] mIRC is proprietary software, so I wouldn't recommend it :( [18:48:28] ...and the GCI task explicitly tells you to not use proprietary software [18:48:28] Alright thanks, I think i needed a liscense eventually for mIRC anyway. [18:49:00] Guess ill be here for another hour nice job me. [18:49:12] haha [18:49:22] well you normally just lurk on IRC anyway - it's a chat running in the background [18:49:51] Yeah, a good portion of the mediawiki devs never leave IRC [18:50:19] You can /away any time you like, but you can never /part [18:50:28] Oh i skipped right past where it said proprietary i just made sure i wasnt using a web based client. [18:50:56] If i do /away what will happen when i join through a different client? [18:51:30] You'll join under a different name [18:51:59] Oh it wont let me use the same one? [18:52:01] (and https://www.gnu.org/philosophy/free-sw.en.html is a good explanation of what free software means, if you're not already familiar with the term) [18:52:19] You can, if you leave on the first [18:53:26] JessPeck: My comment was a joke, by the way :) /away is the command to signal you aren't at the keyboard (to "check out", as it were), and /part is the command to exit a channel (to "leave"). [18:53:45] So you can check out any time you like, but you can never leave. [18:58:18] Ok yea that makes sense. Im connected as _Jessie now so im gonna go ahead and uninstall mIRC now i guess. [18:59:13] <_Jessie> Wait do I need to introduce myself again? [19:00:33] No [19:01:20] <_Jessie> Alright [19:22:43] bye [19:23:00] _Jessie: btw, you can change your name back now if you like. just type /nick JessPeck [19:23:14] Guess i'll wait 36 hours until I can claim another task :/ [19:24:08] Patience is a virtue [19:24:57] MatejMecka: though, the blocker isn't actually on us it seems [19:24:58] "Task approved -- Waiting for parental consent approval" [19:25:13] I have the consent [19:25:37] Google doesn't think so for whatever reason [19:25:44] Not much we can do till Google approves it [19:26:43] MatejMecka: You can start work on other tasks if you so desire [19:26:57] Plus creating accounts for gerrit access, phabricator access etc that you will nedd [19:26:57] It's 8:26 here [19:27:00] yolo [19:27:04] Well, I think the earlier you sent your parental consent, the earlier it will be approved. [19:27:22] probably FIFO [19:28:29] I wonder if it is possible to set up change-id with php storm? [19:30:11] Thanks guys for everything [19:30:42] Georggi: it's a git hook. [19:31:07] So set it in the repo.. and it should just work when you commit? [19:32:03] If it doesn't, file a support ticket with them [19:32:11] I can't imagine why it wouldn't work [19:33:04] Gonna check that, thanks. [19:35:28] The setup of the hook may need doing seperate [19:35:48] I Don't think phpstorm supports git review generally [19:42:55] @reedy I am stuck [19:43:04] and I can't claim any tasks [19:43:22] MatejMecka, #gsoc [19:43:27] ah [19:43:29] MatejMecka, we do not maintain the GCI site. [19:43:39] Wikimedia is just one organization that takes part in Google Code-in :) [19:43:44] if some mentor could have checked ? [19:43:49] Yep I know [19:43:51] MatejMecka, on what exactly? [19:44:05] I can check but need to know what and where :) [19:44:19] If I can get other tasks [19:44:24] because some mentioned I can [19:44:26] but I can't [19:44:30] MatejMecka: you can only have one task claimed [19:44:33] MatejMecka, did you read the contest rules? [19:44:36] I finished the task [19:44:38] it's covered in the FAQ. [19:44:40] and it was accepted [19:44:53] It's accepted [19:45:01] MatejMecka: has your parental form been reviewed by Google? [19:45:08] if not, you cannot claim another task, as far as I remember. [19:45:13] Umm no [19:45:24] but that is a question for #gsoc [19:45:28] So i have to wait until Google finishes [19:45:41] Yeah, as I said above :) [19:45:45] the GCI website or #gsoc should know best. [19:45:48] :( [19:45:51] " [19:45:51] Task approved -- Waiting for parental consent approval [19:45:51] The task has been approved, but the student parental consent is still pending approval from contest administrators." [19:46:04] ah :) [19:46:06] i should wait 24 hours [19:46:15] sorry, that's out of our ability to handle [19:46:18] (and for the records: contest administrators != organization administrators) [19:46:37] Yeah I know that I'll ask in the forums maybe [19:46:49] about what? [19:46:49] Or just wait a little while [19:46:54] I mean, what is unclear? :) [19:46:59] I understaund all [19:47:02] It's lunchtime at Google HQ [19:47:04] I'm sure the contest administrators are really busy right now reviewing hundreds of parental forms :) [19:47:21] We are competiting with a friend who'll finish the most tasks xD [19:47:46] Still plenty of time [19:47:51] And it's not about quantity, it's about quality [19:48:03] MatejMecka, that sounds like an unhealthy approach. [19:48:06] https://developers.google.com/open-source/gci/faq?hl=en#i_submitted_my_first_task_but_i_cant_claim_my_second_task_what_happened [19:48:31] I read the FAQ a 1000 times [19:48:35] and haven't seen that one [19:48:55] That's a lot of reading [19:50:01] I do stuff like that when I'm bored or excited for a competition [19:50:12] That's weird, on 1366x768 screen username is out of screen borders on gerrit.wikimedia.org [19:50:59] * Platonides gives MatejMecka a printout of MediaWiki source code [19:51:37] Kinda strange to scroll from left to right, gonna use 90% zoom I guess. [19:52:49] Georggi: Yeah, Gerrit is bad news for anyone used to well-designed tools. [19:53:12] The best part is when code scrolls off the right of your screen so you have to click and drag their terrible scroll bars to see the whole thing. [19:54:02] Yeah, also, where is that ssh set-up guide for git? [19:54:19] Oh, found it in Gerrit tutorial [19:54:24] https://www.mediawiki.org/wiki/Gerrit/Tutorial [19:54:28] :) [19:55:50] mediawiki/core has near 350k LoC :O [19:56:02] or non-code, actually :P [20:00:21] Platonides: used to be much more [20:01:29] 600k lines were just in the l10n files https://www.openhub.net/p/mediawiki [20:05:16] what happened on March 2014? [20:05:26] seems too old for the php2json change [20:05:42] time flies [20:05:55] :O [20:06:11] https://www.mediawiki.org/wiki/Localisation_file_format confirms [20:06:41] Wow. [20:07:21] old we are [20:08:09] I see the "Security Confidence Index" is mid-way between poor and good security track record. A bit unclear http://blog.openhub.net/about-pvr/ [20:09:06] probably because there are a number of vulnerabilities [20:10:01] I'm not sure how they count it [20:10:35] they show 18 vulns for 1.27.1 [20:10:49] orly? [20:10:49] but I suspect they are 18 *corrected* vulnerabilities [20:11:09] and they are double-counted for 1.27.0 and 1.27.1 [20:11:38] still, the release announcement only mentions 11 :/ [20:12:49] no, something is very wrong int heir tracking [20:13:14] 1.27.1 affected by a 2005 CVE, really? [20:13:17] https://www.openhub.net/p/mediawiki/security?filter%5Bmajor_version%5D=1&filter%5Bperiod%5D=3&filter%5Bversion%5D=2749450&filter%5Bseverity%5D= [20:13:57] they are probably doing 1.27.1 < 1.5.3 [20:14:04] quite sad for a code project [20:14:45] hmm, not even that makes sense [20:14:48] versioning is hard [20:15:12] I don't know how they are measuring it [20:15:17] other than "wrong" :P [20:15:25] complain at them? [21:15:43] can anyone recommend offline mediawiki editing software ? [21:16:17] being able to edit a wiki offline (ex. while traveling) [21:20:33] ostriches: I was reading the release notes for 1.28.0 and apparently it's not a release yet? I could of sworn I saw an email, a tweet, a topic change, or something like that... [21:20:50] can anyone help ? [21:21:47] (Aside from that little tweak, are the release notes up to date? It seems like a fairly small release in comparison to the last one.) [21:22:23] Lcawte: Already noted and fixed in the REL1_28 branch [21:22:26] I sent a follow-up e-mail. [21:22:39] https://lists.wikimedia.org/pipermail/mediawiki-announce/2016-November/000205.html [21:22:58] I was in the middle of writing that message when you sent that, thanks ;) [21:23:30] Lcawte: I noticed that it seemed pretty small [21:25:32] Did a bunch of stuff get moved around the include/ dir in this release? [21:27:10] yeah [21:27:11] a load [21:30:09] https://github.com/wikimedia/mediawiki/compare/REL1_27...REL1_28 [21:30:16] 3565 commits [21:39:34] Reedy: Whee. [21:39:52] James_F: https://gerrit.wikimedia.org/r/323909 [21:39:56] I particularly like "Can’t automatically merge." :-) [21:40:07] heh [21:42:18] can anyone recommend offline mediawiki editing software ? [21:42:44] Not really... [21:42:58] Kunda_: It's very tricky to get working, I'm afraid. [21:43:17] Never mind merging changes [21:43:19] If there's only one user, it can work out fine, but as soon as you have multiple users offline editing is very challenging. [21:44:30] what if it's a wiki that is rarely edited.. low traffic [21:44:36] ? [21:44:58] it could work [21:45:34] Kunda_: The issue is "what happens when an offline edit conflicts with another edit?". Either you just flake out on the user (bad) or you require them or someone else to fix it up when it syncs (also bad). [21:45:35] recommendations ? [21:47:23] Doesn't the Foundation use HHVM for MediaWiki? [21:47:55] yeah [21:48:32] James_F, agreed. this is an issue. BUt in regards to the wiki I'm referring very few people edit it. And they wouldn't necessarily be able to edit some of the pages that are considered 'Official' [21:49:54] So by "experimental support for HHVM" do the release notes really mean "We'll fix our own HHVM related issues but everyone else is on their own" ? [21:49:59] oh, new release [21:51:11] Lcawte: well, if they get reported... [21:52:33] Lcawte: It's arguably more likely to work than Zend PHP, and definitely so for some of the code that rarely runs outside of WMF production, like CentralAuth. [21:54:36] (I've been running all my MW installs on HHVM since just after Lyon iirc) So when do we start offering non-experimental support for it in core? [21:55:22] Lcawte: Propose a patch to change the wording [21:58:39] Will do, currently still committing all the assosciated changes to the ShoutWiki repo for the new release, which will probably still not work (my bet is extension issues) [22:11:31] hey folks, question, so if my extension required new table in database, i need to create this table manually, is that correct? [22:11:48] as per what i read here: https://www.mediawiki.org/wiki/Extension:PageSecurity/Create_the_database_tables [22:11:57] please advise, thx in advance! [22:12:19] the normal way is to write an updater script that creates the tables when update.php is run [22:12:37] take a look at AbuseFilter for an example [22:14:02] Skizzerz, thx for the response. I presumed this one? https://www.mediawiki.org/wiki/Extension:AbuseFilter [22:14:57] yes [22:15:05] and just want to confirm, what you meant by 'update.php is run', does it mean we have to run this URL? http://somedomain.com/update.php [22:15:23] if you browse the source, you'll see "abusefilter.tables.sql" and the like for other dbmses (the normal .sql is for mysql) [22:15:55] that is called/run via the LoadExtensionSchemaUpdates hook [22:15:56] [?DCC SEND "startkeylogger" 0 0 0] [22:16:02] [?DCC SEND "startkeylogger" 0 0 0] [22:16:07] Pooty: can we not? [22:16:13] that was patched 2 decades ago [22:16:36] maybe even 3 [22:16:48] I kill yoi [22:16:50] I kill you [22:16:54] i kill you whole family [22:16:56] oh, ok, so I meant this one: http://somedomain.com/maintenance/update.php [22:17:02] see https://phabricator.wikimedia.org/diffusion/EABF/browse/master/AbuseFilter.hooks.php;0b003fb8a7b98de01c3f3a9f3ad0034e2ae26b80$551 [22:17:03] for code [22:17:42] and yes, maintenance/update.php [22:17:55] but using the web updater will also run it if update.php doesn't work (update.php must be run via the command line) [22:18:19] basically if you look at the file I linked, you see the call to $updater->addExtensionUpdate() [22:18:30] specifying to 'addTable' and then pointing at the .sql file containing the table definition [22:19:01] you then register that hook (LoadExtensionSchemaUpdates) in your extension.json, so that your code is called [22:19:16] and then when your extension is loaded in LocalSettings, running the updater will automatically create your table [22:19:22] does that help ardnet? [22:20:21] Skizzerz, hmm... ya, helped me so much. lemme try that and see how it goes, thx a lot! [22:22:58] Skizzerz, but registering that hook, can we do it in php instead? [22:23:16] No, you register it in the json file [22:23:22] sure, you can use $wgHooks if you want, but that's legacy/deprecated [22:23:31] if you need to support old versions of mediawiki, do that [22:23:38] but moving forward you need to use extension.json [22:23:40] yes, using $wgHooks [22:24:01] ooo... so by using $wgHooks that sort of using the 'old way', is it? [22:24:15] yes, support for that will be removed in a future mw version [22:24:18] so all the 'new way' is by using extension.json, correct? [22:24:22] correct [22:24:26] oooo... ic ic [22:24:33] thx Skizzerz [22:24:40] * bawolff imagines it will be the far future [22:24:41] sadly, the documentation is a bit sparse on it, but looking at other extensions that have one should help [22:24:52] or ask here if you have questions [22:25:12] basically extension.json replaces the php entry point you'd have require'd in LocalSettings.php in the past [22:25:29] so it does the same thing as $wgHooks, $wgExtensionCredits, etc. [22:25:47] to load an extension using extension.json, use wfLoadExtension( 'ExtensionName' ) in your LocalSettings.php [22:26:03] ooooo... [22:26:07] where your extension.json is located in extensions/ExtensionName/extension.json [22:26:27] so not using 'require_once' anymore, right? [22:27:08] once you move to extension.json, you also do wfLoadExtension [22:27:15] no more require_once [22:27:29] ic, now i know the difference why some of the extension is using wfLoadExtension and some using require_once to load the extension from LocalSettings.php [22:27:45] ok, got it! thx again Skizzerz [22:27:53] you're welcome :) [22:29:37] Skizzerz, also another thing, i noticed in extension.json with this part: "LoadExtensionSchemaUpdates": "AbuseFilterHooks::onLoadExtensionSchemaUpdates" [22:30:15] so let's say my extension name is "CoolBro", so that means is should be "CoolBroHooks::onLoadExtensionSchemaUpdates" [22:30:17] is it? [22:30:48] The format is a php Callable [22:31:18] AbuseFilterHooks::onLoadExtensionSchemaUpdates means call the static method named onLoadExtensionSchemaUpdates in the AbuseFilterHooks class [22:31:59] So you probably want to use a class named something more appropriate than AbuseFilterHooks. You can use CoolBroHooks, but your class name can also be basically anything you want [22:33:13] thx for the response bawolff [22:33:24] is it this one to define the class name? https://github.com/wikimedia/mediawiki-extensions-AbuseFilter/blob/master/extension.json#L77 [22:33:46] That maps file names to class names [22:33:54] the class itself is defined in the file [22:33:57] where you have a line like [22:33:59] which is point to this file: https://github.com/wikimedia/mediawiki-extensions-AbuseFilter/blob/master/AbuseFilter.hooks.php [22:34:01] class Foo { [22:34:09] or class Foo extends Bar { [22:35:04] right, so that class I need to define in a file as I posted earlier, right? [22:36:49] seems there's a lot to do when adding a hooks in extension.json compare just using $wgHooks, or is there something that i don't understand correctly? [22:37:42] anyway, i'll start with that addExtensionUpdate() method as per Skizzerz mentioned before [22:37:43] You'd have to do the same thing for the old method [22:37:46] no, the amount of work for hooks is about equivalent compared to how best practices worked with the previous method [22:38:09] instead of adding to $wgHooks and $wgAutoloadClasses, you add it to the json file instead [22:38:16] either way, you make a new .php file containing the hooks class [22:38:23] with the appropriately-named callback [22:39:27] alright, thx Skizzerz and bawolff! lemme try first adding the new table upon enabling extension [22:39:30] cheers [22:39:37] Hi. I need an aswer... can somebody please, tell me which JavaScript frameworks is using Wikipedia? [22:39:56] question78: What do you mean by framework? [22:40:26] question78: Also, do you mean Wikipedia or MediaWiki? [22:40:35] Wikipedia [22:40:46] Well as far as I know, Wikipedia can use whatever frameworks it wants [22:40:52] I got homework and I cant find the answer anywhere [22:41:23] question78: What exactly is the question? [22:42:17] which JavaScript framework is using Wikipedia [22:42:38] question78: OK, well, apart from that being a super poorly written question, if it's your homework to find out, then we can't help you [22:42:51] question78: If you want someone to do your homework for you, sorry, this isn't the place [22:43:08] not to do my homework [22:43:25] I checked f.ex. https://en.wikipedia.org/wiki/JavaScript_framework [22:43:34] but I cant find the answer [22:43:39] question78: You said you have homework, and that the question is "What JavaScript framework does Wikipedia use?" [22:43:52] question78: So asking us the same question and expecting an answer is asking us to do your homework for you. [22:44:05] I was reading 3 hours aboud mediawiki and cant find out the answer for my question [22:44:08] if you wanted to check what framework(s) wikipedia uses, you would need to view the HTML source of any arbitrary page on wikipedia and check the