[14:32:32] werdna: Hmm, re user_message_state [14:32:44] The largest incarnation of that table is on mediawikiwiki, 509k rows [14:33:01] Which is large but not extreme [14:33:44] The other ones are much smaller: the next largest ones are 63k (strategywiki) and 31k (huwiki) [15:33:04] *guillom pokes Myra. [16:29:02] robla: hi. It looks like I am working from NYC all this week and don't have to take care of my mom, so I should be more available and productive. [16:31:56] thanks for the update! [17:01:58] awjr: hey, how is yuvipanda doin'? ;-) [17:02:32] hi sumanah [17:02:50] i chatted with him last week and he was wrapping up exams, etc. we are touching base this week to start ramping him up [17:08:11] alolita: RoanKattouw_away awjr howief TrevorParscal [17:08:25] thanks awjr [17:08:47] coming [17:25:03] Krinkle: So, the clicktracking thing [17:25:11] Yes. [17:25:22] You know how clicktracking is basically $.trackAction( 'some-key' ) ,right? [17:25:30] Yeah [17:25:36] Where the key is something like ext.articleFeedback@2-event-name [17:25:41] Where 2 is the version number [17:25:50] ok [17:25:52] For SEL we had something like ext.vector.sectionEditLinks:3@4-event-name [17:25:59] Where 3 was the bucket number and 4 the version number [17:26:10] In the AFT case the bucket "numbers" are strings ('show' or 'hide' , IIRC) [17:26:21] ok [17:26:25] But the crux of it is that we want to encode those in the event key, like we already do with the version number [17:26:29] And that's all it is [17:26:43] *sumanah prepares for travel to Germany: http://www.zoll.de/english_version/a0_passenger_traffic/e0_vub/c0_unconstitutional_literature/index.html [17:26:44] From what I understood: SectionEditLinks needs to be on/off based on which bucket, and when it's used a clicktracking action must be recorded. [17:27:33] Yeah something like that [17:27:37] But SEL was just used as an example [17:27:59] You're not expected to do anything with it other than maybe look at the code to see how the bucket-in-the-event-key thing was done [17:28:50] Oh, I thought SEL wasn't being recorded (cause I thought I saw you write that already for the test run a few weeks/months ago on enwiki) [17:28:58] for SEL [17:29:05] SEL is turned off now [17:29:09] yeah [17:29:10] It was a temporary experiment [17:29:26] During that experiment clicktracking was recorded, right ? [17:29:36] (and A/B bucketing) [17:31:09] Yes [17:31:18] We had clicktracking for the section and normal edit links [17:31:23] Regardless of bucket [17:31:31] But we did encode the bucket number in the clicktracking event key [17:32:15] awjr, ping! [17:32:27] yuvipanda: poong [17:32:29] er, pong [17:32:32] sumanah, ah, yes. I was wrapping up a round of exams (have another smaller round in 3 weeks) [17:32:36] awjr, poong sounds good too :) [17:32:43] awjr, so, where/what do we start as? [17:32:52] awjr, also, should I bug you here or on #mediawiki? [17:33:14] i dont care where :) [17:33:26] yuvipanda, will you be around in about an hour? [17:34:21] awjr, yes [17:34:31] ok cool - mind if we chat then? [17:34:57] awjr, sure! [17:35:02] awjr, ping me when you're available [17:35:08] will do thanks yuvipanda [17:35:22] awjr: If you want to pick my brain about something today, you have until 11 (just FYI) [17:35:30] grrr [17:35:32] thanks RoanKattouw [17:35:35] it might need to wait [17:35:45] sumanah, ping? Wanted to ask about wikimania for us gsoc students... [17:35:52] hi yuvipanda [17:36:07] I have asked WMF engineering [17:36:38] ah, thanks! :) [17:36:46] actually one quick question - for storing the aggregate stats for the dashboard, do you have an opinion on whether or not we should just keep current stats in the database tables (eg truncate the table when we populate it with new stats) or just keep adding new rows? [17:36:52] RoanKattouw: ^ [17:37:00] yuvipanda: I am following up. sorry for the delay. [17:37:17] sumanah, :) I'll keep bugging you now and then I guess :) [17:37:22] yuvipanda: sure. [17:37:32] sumanah: hi [17:37:44] sumanah: I didn't catch you the other day, but wanted to mention something [17:37:55] hi Ryan_Lane [17:38:01] sumanah: when making blog posts, and other kind of messages, don't link to secure [17:38:07] :/ [17:38:10] ok. [17:38:20] Reasoning? [17:38:46] secure isn't a supported service, and the links will likely break in the future, when I actually make https work correctly [17:38:55] we also don't want to purposely send traffic there [17:38:57] Ryan_Lane: ah! ok. [17:39:03] especially not for reads, since it adds no security [17:39:07] Ryan_Lane: if you have access to the techblog, feel free to change the link [17:39:14] Ryan_Lane: otherwise I will [17:39:23] it also routes through a single node, which makes it totally unscalable [17:39:48] Ryan_Lane: well, it adds the security against eavesdropping on what the reader is reading, and adds encrypted noise, but I take your point [17:40:02] but in general, links should always point to http, unless it's for actions that require a user to be logged in, then it should point to https :) [17:40:30] Ryan_Lane: I use HTTPS Everywhere so I shall simply munge links my hand when I need to post to techblog etc., then [17:40:47] unfortunately, the way that secure is currently configured, it doesn't necessarily protect against eavesdropping [17:41:12] Need to install a WordPress wikilink add-on. ;-) [17:41:31] Ryan_Lane: evidently I don't really understand SSL, then [17:41:37] ohai Myra [17:41:51] sumanah: secure gives back mixed content [17:41:57] not everything goes over ssl [17:42:04] true. [17:42:07] that can be used for nastiness [17:42:33] including eavesdropping to some degree [17:43:15] I usually make a war against mixed content for this reason. it's also why I tell people secure isn't secure :D [17:43:38] Thanks, Ryan_Lane [17:43:42] yw [17:43:50] I probably missed this in recent wikitech-l email -- need to catch up. [17:44:11] well, I didn't go into much depth there :) [17:44:18] Hello, Ryan_Lane. Did you have a chance to investigate what was wrong with the php-mysql packages on hooper? [17:44:25] just mentioned I plan on fixing it for real soon [17:44:37] guillom: mostly. I need to build a new php package though [17:44:43] it's going to take a bit [17:45:46] darn [17:45:48] ok, thanks [17:46:05] yw [17:48:19] Hey guillom. [17:48:43] Sorry Myra , I had a question for you, then I answered it myself. [17:49:25] I forgive you. [17:49:55] You're all too kind. [18:25:30] jorm: how's Akshay doin'? [18:26:51] talking with him now. [18:27:02] he's reading the mediawiki hacker's guide. [18:27:42] he's in here; you can ask him how he's doing. [18:28:01] i was thinking we should make a wmf gsoc channel. [18:28:05] afk though. [18:28:11] No, no gsoc chanel [18:28:14] No more fragmentation please [18:28:34] <^demon> Just what I need. [18:28:35] *sumanah agrees with RoanKattouw [18:28:36] <^demon> 8 more channels :) [18:29:09] hi sumanah [18:29:39] i am going through the mw hacking guide [18:29:56] the progress has been a bit slow though , :( [18:30:07] but i will pick up soon [18:30:08] #wikimedia-channel-planning [18:31:10] <^demon> Myra: That's for community discussion of new channels. We're also going to need #wikimedia-channel-planning-private for the committee to deliberate over RfNC. [18:31:19] *sumanah winces [18:31:41] I think this channel should be renamed to #wikimedia-mediawiki. [18:31:48] Just to ensure maximum confusion and scorn. [18:31:51] <^demon> And #wikimedia-channel-planning-office-hours :) [18:33:45] Myra, what shall we use #mediawiki-wikimedia for? [18:44:03] RoanKattouw: Only 2 open bugs left for AFT in BZ :) [18:44:40] Whee [18:47:32] RoanKattouw, Krinkle, ^demon, sumanah: triage in 5min! [18:47:39] I know [18:47:47] thanks hexmode [18:48:09] hexmode: I need to go in 20 minutes. [18:48:12] <^demon> Grabbing headset and such. [18:48:42] ok.... I gotta switch computers and set up [18:52:12] Reedy: Gay chats. [18:52:26] New cabal much? [18:55:21] FFS [18:55:32] My SIP client doesn't like my mic again [18:55:55] Fixed [18:55:55] Yay [18:56:55] brion: dial into x2003? [18:57:53] we're in [18:59:21] what's the etherpad URL again? [18:59:34] http://eiximenis.wikimedia.org/BugTriage [18:59:37] thanks [19:03:56] brion, for the invalidate cache.. I'm just looking... [19:04:03] $this->loadGroups(); [19:04:03] $this->mGroups[] = $group; [19:04:03] $this->mRights = User::getGroupPermissions( $this->getEffectiveGroups( true ) ); [19:04:03] $this->invalidateCache(); [19:04:10] Surely the invalidate in these cases is somewhat pointless? [19:04:26] addGroup/removeGroup in this case [19:05:35] And there seems to be a few in these cases [19:07:46] I'm betting the incEditCount is the main at fault [19:11:59] Else for the invalidate cache, can we just be lazy and do UPDATE IGNORE [19:13:15] Just saying that complaining about slow rendering for complex template is like complaining to the US govt that they haven't completely eradicated terrorism [19:13:26] It's a hard problem and will probably only be solved by the new parser [19:13:33] Or moving cite templates into core or somethign [19:13:38] *sumanah is cheered that the new parser will end terrorism [19:14:04] Heh, that was my thought as well. [19:14:19] public function kill_terrorists {} [19:14:35] RoanKattouw: I don't think it's a particularly hard problem to solve. [19:14:51] People are overcomplicating it. [19:15:32] $binLaden->assassinate(); [19:16:00] RoanKattouw: Have you seen TemplateAdventures? [19:16:17] Not really I don't think [19:16:21] http://www.mediawiki.org/wiki/Extension:TemplateAdventures [19:16:35] RoanKattouw: This sometimes results in read timeout which is worse that slowness [19:16:46] especially when trying to edit pages [19:16:57] It's really just extreme slowness, or a result of that [19:17:18] There's a simple enough solution: stop using the cite templates. ;-) [19:17:23] :P [19:17:39] But a proper PHP implementation of the cite family wouldn't take more than a day or two. [19:18:18] we could move refToolbar into PHP while we're at it [19:18:45] That's a separate issue/bug/problem. [19:18:58] I'd focus on parsing time first. That's highest priority. [19:20:01] I thought someone was doing it? [19:24:03] Some of these Etherpad notes shouldn't be in Etherpad. [19:24:06] Probably most of them. [19:39:51] RoanKattouw, think we should try UPDATE IGNORE'ing on User::invalidateCache() and see if we get any issues? As the problems seem to be when people are I'd guess fast editing.. [19:40:15] most likely [19:40:57] I guess [19:41:02] I didn't know UPDATE IGNORE existed [19:41:28] http://dev.mysql.com/doc/refman/5.0/en/update.html [19:41:39] Seemingly there in 4 aswell [19:43:00] only in mysql? [19:43:52] The issue only seems to be occuring in mysql [19:43:55] at least, on this scale [19:44:40] Nikerabbit, 137,454/145,821 DB errors in april were lock wait timeout in User::invalidateCache [19:45:41] http://www.sqlite.org/lang_conflict.html [19:45:52] sqlite supports it [19:46:23] Duplicate to update [19:57:32] kaldari: thanks [19:57:44] whad I do? :) [20:03:51] kaldari: looked at my bug [20:04:13] ah, no problem [20:04:39] Nikerabbit: although it looks like the issue of the border might be a bit deeper than I thought [20:04:59] we're actually removing the border around all jQuery UI elements [20:05:03] not just dialogs [20:05:45] and the removed border is part of the overall skin design, i.e. we add a border around the title instead [20:06:11] so we may have to rethink the vector jQuery UI skin design a bit [20:06:32] in the meantime, you could always make your dialog modal, which would solve the problem [20:06:47] but perhaps not in a way that works for what you're doing [20:12:17] RoanKattouw, though, I wonder if UPDATE IGNORE will still work like expected if it is locked [20:12:33] It'll still need to read [20:12:38] And that might be problematic [20:12:50] So we should also try to reduce the number of calls to User::invalidateCache() [20:13:13] I've got a feeling it's probably all the edit calls [20:13:46] Or a lot of watchlist changeds [20:14:17] There's a few calls of it that I don't think actually need to do the database update [20:14:21] Which is possibly where to start [20:15:05] Like adding/removing watch. Do we really need to ping the database? fine to update memcached etc.. [20:15:43] // edit count in user cache too [20:15:43] $this->invalidateCache(); [20:16:56] Bah really, we invalidate for editcount? [20:16:58] That's just stupid [20:17:06] Indeed [20:17:09] It's seemingly sparesly read anywhere [20:17:19] Shall I try putting some common sense to it, and see how that looks? [20:17:37] at least, cancelling out the db update in some cases [20:43:46] neilk_: Hmm, so apparently 538 /did/ write about the Canadian election. They haven't run stories on international elections in a while now. http://fivethirtyeight.blogs.nytimes.com/2011/05/02/for-canadas-new-democrats-a-cautionary-tale-in-britain/ [20:44:06] neilk_: Anyway the article argues that NDP in Canada today might be the LibDems of last year in the UK [20:44:20] hm [20:44:22] "But AV gives people more than one vote!" [20:44:26] (Surge in polls didn't fully materialize, likely because of sampling bias towards young voters) [20:44:34] well I'm not sure I see my country as a metaphor for other people's countries [20:45:10] generally NDP support is lower on the day of the election [20:45:29] generally the liberals suck less :P [20:45:44] bawolff: are you Canadian? [20:45:49] yep [20:45:57] Oh I thought you were American [20:45:59] Eh [20:46:00] oh are you at Waterloo? [20:46:15] He's still north american ;) [20:46:31] nope. I go to Dalhousie university, but in Alberta for the summer [20:46:52] I think there is some wikimedian who hangs out here who is a Waterloo person [20:47:35] It makes more arguments too, like how there are many safe seats in Quebec [20:47:42] *bawolff got to vote for the first time today. Was rather excited. [20:48:10] this was the first election in which I couldn't vote [20:48:14] And because apparently Canada also uses a district system rather than proportional representation, it's quite possible that NDP will chip away from BQ's lead in lots of districts in Quebec but still lose (but with a lower margin) in many of them [20:48:18] out of the country for more than 5 years [20:48:19] You couldn't vote? [20:48:21] Oh [20:48:32] AFAIK I'll retain my right to vote forever [20:48:40] RoanKattouw: really [20:48:45] In NL at least [20:48:56] oh, you don't have the right to vote in Canada [20:49:03] Probably not [20:49:09] If *you* don't have it anymore ... [20:49:13] yeah, there are some people who are lobbying to change the rules [20:49:20] I may be a citizen but I've never even been there [20:49:28] i only realized there was this restriction like two days ago [20:49:45] Anyway the US has the same thing, citizens can vote no matter where they are or how long they've been there [20:49:53] my last riding is a super safe seat for one party, so there wasn't much point until this election. [20:50:11] Provided they lived in the US at some point [20:50:30] http://www.letcanadiansvote.com/ [20:50:38] I'm so happy we have a proportional representation system here [20:51:11] well, if the NDP actually forms part of a coalition government (longshot) [20:51:22] their sole condition may be getting PR. [20:52:00] That's *very* similar to the LibDmes [20:52:02] *LibDems [20:52:11] There is a referendum on AV this week because of them [20:52:22] Even though their coalition partner (Conservatives) is opposed to it [20:52:41] what's AV? [20:52:56] Alternative Vote [20:53:08] 2nd choice vote? [20:53:08] Australia calls it Single Transferable Vote (STV) [20:53:13] It's basically preferential voting [20:53:17] right [20:53:19] Which I believe you already have [20:53:23] you? [20:53:35] No I'm talking about the UK here [20:53:37] no, Canada is pretty much all first-past-the-post. [20:53:40] Oh, hmm [20:53:50] I saw some 2nd choice polls so I assumed [20:54:04] I think some people are trying to assess the impact of STV. [20:54:23] STV is IMO not so awesome [20:54:35] you can end up with really bizarre, counterintuitive results. [20:55:33] For me STV is just a lame compromise between first-past-the-post and PR [20:55:43] http://zesty.ca/lj/yee-oca-transferable-vote-3.pdf <-- see the graphs for Alternative Vote or IRV [20:57:15] Ah yes, IRV, instant runoff [20:57:19] That's the term I was looking for [21:01:41] The noisy microphone was not me ! (BugTriage) [21:01:45] :D [21:02:08] Hm I didn't know about the edge cases in STV, those are weird [21:02:38] At least there's an initiative to effectively implement PR for US Presidential elections [21:02:57] Which I hear Gov. Brown will probably sign soonish [21:03:06] oh, that would be straightforward. In fact it doesn't even require a constitutional change. [21:03:17] Exactly [21:03:25] http://en.wikipedia.org/wiki/National_Popular_Vote_Interstate_Compact [21:03:28] RoanKattouw: oh wait, you mean, the one where California goes proportional, by itself? [21:03:34] No, not by itself [21:03:36] that would be a bad thing [21:03:49] reading [21:03:51] Basically each state would give their vote to however won nationally [21:03:53] BUT [21:04:03] This only starts when a sufficient number of states have adopted this [21:04:10] that seems reasonable. [21:04:33] i.e. , when the states who have signed this collectively have more than 50% of the electors [21:04:41] it's not really fair to Californian conservatives, or Texan liberals, that their votes for president basically don't count. [21:04:46] Exactly [21:05:11] And that candidates never campaign in large cities like SF, LA, NY, Houston, ... [21:05:24] well, Obama comes to SF to get money. :) [21:05:32] Well yeah :) [21:05:48] instead it's all Iowa or Michigan or whatnot [21:05:49] But there are few swing states out West [21:05:58] Well, NV and CO could be close in '12 [21:06:39] hm, just a couple of hrs till polls close in Canada out east [21:07:49] ha nice [21:08:00] This law even has a provision for what happens when the number of votes nationally is exactly tied [21:08:12] what happens? arm-wrestling? [21:08:15] In that case it reverts to winner-takes-all [21:08:16] Per-state [21:08:31] i like my solution better [21:08:36] But we're talking about tens of millions of votes, so... :) [21:09:39] it's kind of weird to do 50% + 1 [21:09:44] it really ought to be 50% + delta [21:09:59] once you know it's somewhere within delta you should use another method [21:10:24] otherwise you get Florida 2000 [21:11:59] That's the downside [21:12:10] If an election ever does become close (and this happens infrequently, at the popular vote level) [21:12:18] recounts and other controversies are gonna be insane [21:12:30] Because of the huge volume of votes, polling places and what not involved [21:12:52] if the vote delta is closer, this should usually be a sign that no decision will be the 'correct' decision democratically :) [21:13:29] i kinda like how originally, the second-place US presidential candidate became vice president [21:13:30] In practice, though, these controversies would probably be reduced [21:13:44] it's like you'll never get a functioning team that way [21:13:44] brion: That's different, people cast two votes [21:13:55] but maybe it gives the president more incentive not to get killed ;) [21:14:13] No one would care about a 10-vote margin in Ohio if the nationwide margin is a few million votes [21:14:14] now you get replaced by your own party instead of by the opposition [21:14:23] <^demon> Speaking of votes, anybody looked at the candidates yet this year for board elections? [21:14:33] Candidacy is only just opening, right? [21:15:03] <^demon> Yep. [21:15:39] <^demon> My favorite quip so far from one of the candidates: "When I first discovered Wikipedia, I was fascinated by its stupendous potential. The idea of a publicly owned website storehousing all of the world's knowledge titillated me to no end. There was no pussyfooting around any longer; I knew my future and what it had in store for me." [21:16:21] Aha [21:16:47] <^demon> "I read The Economist and in my off-time I speculate on Gulf oil prices." [21:17:03] url for the candidates? [21:17:10] So the story in California is that this thing was passed in two legislative sessions, but Schwarzenegger vetoed it both times. In this session it's supposedly in conference [21:17:11] <^demon> http://meta.wikimedia.org/wiki/Board_elections/2011/Candidates/en [21:17:29] jorm: Candidate submissions only just opened an hour an a half ago, open till May 22nd [21:17:54] So I'm hopeful it'll be passed for the third time, and I think Brown said he'd sign it [21:18:15] <^demon> I wonder if the usual crazies will run again this year. [21:18:30] Like Kohs, and that facist dude? [21:18:39] What's the frequency of board elections anyway, two years? [21:19:07] <^demon> I dunno, the rules change every year :) [21:19:16] I really wish that the requirements to run was a bit higher so people like Kohs and others whom have no chance couldn't run [21:19:28] Its a pain when there is 200 candidates [21:19:49] Like get signatures? [21:20:10] Not being blocked on enwikipedia would be a start [21:20:25] Anyway, sleep [21:20:26] <^demon> IRL? Wouldn't that disqualify everyone? [21:22:08] ich. milos lists being an admin at enwikinews on his candidacy despite the fact he has never done any admin actions ever. And has not been active at Wikinews for something like 2 years (and wasn't really active at the time anyways) [21:23:04] <^demon> Bring it up in q&a? [21:25:33] hmm perhaps. some of us at enwikinews don't really approve of whats happening at srwikinews, which he is quite highly involved with [21:35:18] Krinkle: ping [21:35:26] awjr: pong [21:36:00] were you able to get AFT properly set up locally? i cant seem to get the feedback tool to appear on articles and i could use some help figuring out what im doing wrong [21:36:28] i've got a category defined in $wgArticleFeedbackCategories, but the tool is not showing up on articles in that category :-/ [21:36:32] am i missing something? [21:36:35] Krinkle: ^ [21:36:56] awjr: It worked for me locally, although not without pain. [21:36:58] Lemme see [21:37:25] require_once( "$IP2/extensions/ArticleFeedback/ArticleFeedback.php" ); [21:37:25] $wgArticleFeedbackCategories = array( 'Oh_rly', 'Moar_test' ); [21:37:25] $wgArticleFeedbackVersion = 'beta'; [21:37:31] Is all I've got and it works [21:39:01] grr [21:39:10] awjr: [21:39:10] http://i.imgur.com/D8wSn.png [21:39:12] http://i.imgur.com/M6fPl.png [21:40:58] hmm i dont have click tracking set up maybe thats it [21:41:10] neither do I [21:41:36] It's a dependancy, perhaps Reedy has UsabilityInitiative installed ? [21:41:49] (which covers it also, but is outdated) [21:42:04] awjr: php update.php ? [21:42:12] will try - i have to run to a mtg [21:42:15] thanks for the help [21:43:15] Hmm [21:43:18] Might actually not work here [21:43:21] I'm sure it did before [21:48:35] Headlines: .. || Obama unable to create account due to AntiSpoof collision with User:Osama || CheckUser helped reveal Obama's location. CIA operation conducted || .. [21:48:55] Osama* [21:57:17] heh [22:24:40] I've added user language customization to the #time parser function, but I'm wondering if this is even a good idea. Specifically I'm wondering if the cache fragmentation is an issue or not, i.e. if this capability is widely used it would spawn separate user language caches of every page it gets used on. Does this happen for the most part already or would this be causing a new problem? [22:27:00] <^demon|away> Well we already vary on language as it is, so I can't imagine it'd be any worse. [22:27:19] <^demon|away> But in general, anything that varies is a cache-killer to some degree of severity. [22:29:41] I know the page itself always varies by user language (for the sidebar links for example), but do we have article text varying by user language very often? I know we used to customize dates, but we don't do that any more. Anything else? [22:30:38] kaldari, how are you getting the user language? [22:30:48] are you picking it from the ParserOptions? [22:31:29] $parser->getOptions()->getUserLang(); [22:31:29] $result = $wgLang->sprintfDate( $format, $ts ); [22:31:43] you're doing it right, then :) [22:31:43] I'm not even 100% sure I'm doing it correctly [22:32:25] well, I think you could access $wgLang from the return value of getUserLang() [22:32:59] I just wanted to check that the cache was not being polluted [22:33:11] $parser->getOptions()->getUserLang()->sprintfDate( $format, $ts ) ? [22:33:46] no, getUserLang() returns a language code [22:33:58] I'd avoid a magic language changing, though [22:34:10] perhaps allow language paremeter there [22:34:36] yes, it accepts a language parameter as an option as well [22:34:37] and let them get it for any language using {{int: }} [22:34:56] so it has to be placed explicitely [22:35:09] and we can moan about how evil int: is ;) [22:37:26] Platonides: Would you mind taking a look at ParserFunctions_body.php (lines 508-516) and let me know if you think it makes sense and/or could be improved. [22:37:57] I only know enough about the language functions to be dangerous :) [22:38:03] Since we're not going to kill the evil {{int:, I don't understand why we don't just give the users the {{USERLANGCODE}} magic word. It'd at least be not quite as ugly (from a wikitext prespective) [22:38:44] bawolff, I just wanted to restrict the evil [22:39:40] Its all evil :) [22:39:46] kaldari, I would remove lines 508-510 [22:39:57] and replace $wgContLang in line 515 with $parser->getFunctionLang() [22:40:20] for user lang, make them give you its language code [22:40:36] how so? [22:41:04] bawolff, how was the way to say {{USERLANGCODE}} with int: ? [22:41:52] I think commons hand made mediawiki:lang/ with a page containing just [22:41:56] int:lang it looks like [22:41:57] and then did {{int:lang}} [22:42:15] yep, found it [22:42:22] ok, that's doable [22:42:43] they would pass {{int:lang}} as parameter [22:43:04] would that have any caching issues? [22:43:36] {{int:lang}} will fragment the cache just as much as passing user [22:43:43] but hopefully that will make it more evident [22:44:14] which is why I like the idea of {{USERLANGCODE}} because the {{int:lang}} is not that easy for a third party to implement [22:44:27] ? [22:44:45] which kind of third party? [22:45:06] Anyone who downloads mediawiki and wants per language template hacks. int:lang requires creating about 300 pages in mediawiki namespace [22:47:50] BTW, what's the advantage of using $parser->getFunctionLang() over $wgContLang ? [22:48:59] Platonides: ^ [22:49:41] in interface messages, they will show in the user languages [22:49:49] instead of the wiki language [22:53:16] so that means that if #time is inside an interface message it will use the user language instead of the content language? [22:53:30] yes [22:53:34] which is what we want [22:53:38] that's cool [22:54:52] good night [22:54:56] this doesn't seem to be documented anywhere, maybe I'll add a note to $wgContLang [22:55:21] night! [22:55:42] I found it now due to a note I had left in ParserOptions->getUserLang() [22:55:52] otherwise I wouldn't have remembered about it