[01:23:12] guillaume? someone is editing mw:Article feedback/Public Policy Pilot without being logged in. [01:23:21] that's an office ip. [01:43:46] wow: http://www.mediawiki.org/w/index.php?title=Talk:Sysadmin_hub&curid=9778&diff=350414&oldid=349267 [03:22:26] trevor, are you still working? [13:40:36] RoanKattouw: perhaps it's just me, but all of a sudden, "Search" in the searchfield doesn't disappear for me when i click. it becomes normal text.... [13:41:37] When did 'all of a sudden' start? [13:41:42] today [13:41:53] WFM on Firefox 3.6 [13:42:03] safari 4 [13:42:06] After a hard refresh [13:42:07] Hmm [13:42:12] Poke adam_miller when he gets here [13:42:13] nightly build though. and i upgraded yesterday... [13:42:21] could be related i guess. [13:42:51] i get "failed to load resource: "request URL:http://nl.wikipedia.org/w/api.php?action=opensearch&search=&namespace=0&suggest=" [13:51:14] I've seen 'failed to load resource' on Chrome before [13:51:28] Very vague error, usually indicative of a wrong Content-Type I tihnk [14:49:42] RoanKattouw RoanKattouw RoanKattouw [14:49:56] Good morning [14:50:02] *RoanKattouw runs svn up [14:50:04] good afternoon [14:50:12] Let's see if my changes will survive yours [14:50:23] mine were minor [14:50:34] this FIXME on getMsg [14:50:57] i straight up copied that function from usability initiative [14:51:14] what cases would break it? i can look at fixing them [14:51:37] I think it's fixed already [14:52:04] It now does .replace( /$1/g, ... ) instead of .replace( '$1', ... ) [14:52:12] So it'll replace all occurrences of $1, not just the first [14:52:44] (Or well, the dynamic equivalent of that with a variable $n value, so '$' + i vs. new RegExp( '$' + i, 'g' ) [14:53:10] $10 and above would still fail, but we don't use that in AA anywawy [14:55:19] right, that's a bit excessive [15:05:20] RoanKattouw: would it be hard to get support for PARAM_REQUIRED rolled into 1.16wmf4? [15:06:58] No [15:07:15] I can do that no problem [15:07:43] oh great [15:07:53] i should be testing against that branch right? [15:07:58] not trunk? [15:08:24] Yes [15:08:31] Lemme see if I can get PARAM_REQUIRED in soonish [15:08:35] Now working on the survey [15:08:53] no rush [15:09:17] also, revids are global? is what i'm trying to do possible then? [15:09:42] Yes, use the .stale field provided to you by the API, like you did before [15:10:06] ha ok, so i shouldn't have touched it...sorry [15:10:29] The API asks the database for the last 6 (=stalecount+1) revisions to the page that are more recent than the revision you're rating. This also means aarevid is *not* useless [15:10:42] I'm sorry, I should've caught the latter before [15:11:30] i shouldn't need to send that along when i'm requesting rating data though, right? [15:12:13] Or wait [15:12:15] I'm wrong [15:12:24] aarevid is useless, you're totally right [15:12:40] Ignore what I said about aarevid [15:12:48] ok :) [15:12:59] i'll revert the staleness stuff and let the rest be [15:13:04] So instead, the API grabs the last 6 revisions to the page more recent than the last rated one [15:13:32] And if it gets 6 results, that means there were more than 5 (and possibly more than 6) revs in between so it calls stale [15:13:53] It used to count the actual number of intermediate revisions but that was too expensive [15:21:37] RoanKattouw: do you have uncommitted changes to ArticleAssessment.js? [15:22:28] .wrap( $().click() ) isn't binding the events, so I was gonna fix it [15:23:03] That's weird, it worked for me [15:23:09] Let me see what my changes are [15:23:29] Should resolve fine [15:23:33] i think it needs to be in the dom before you can bind events to it, right? [15:23:39] I have changes to showFeedback() and added a new function at the bottom [15:24:04] ok so this change shouldnt interfere with your local stuff then [15:24:08] Nope [15:24:16] Strange, though, all links work fine for me [15:24:36] You can do .wrap( '' ).parent().click() I guess, that's what I was trying to avoid [15:24:47] yeah that's what i changed it to [15:24:54] which made it work for me [15:25:20] not as pretty but makes sure the link is in the dom before binding the event handler [15:28:52] Yes [17:06:02] jorm: are you on for the 1015 scrum [17:06:47] adam_miller: are you available to join in at 1015 also [17:06:53] you bet [17:07:02] adam_miller: cool [17:07:06] has Reedy resurfaced yet? [17:10:22] adam_miller, no [17:10:23] Last seen : Sep 11 00:00:14 2010 (4 days, 17:10:35 ago) [17:11:34] He sent me an e-mail toay [17:11:40] Saying he'd been back in the UK for about 24 hrs [17:11:55] then what? [17:12:33] Then some questions about invoicing and expensing [17:16:54] oh...i thought you meant back for 24hours then he was leaving again [17:17:12] Oh, no [17:17:39] jorm jorm jorm jorm [17:17:46] status call? [17:18:55] i'm in. [17:22:43] adam_miller: What's up with using :after and content: "." in ArticleAssessment.css? That's not gonna be supported in a lot of browsers [17:22:57] thats what the rules that follow it are for [17:23:18] Right [17:34:36] so much for me being able to focus on liquidthreads today. [17:34:41] ? [17:35:03] oh, i forgot about the blog post, and thus the answering of questions, or whatever. [17:35:20] roan, to answer your questions from earlier: you are, as usual, correct. [17:35:24] Right, the blog post for RT+A [17:35:26] Heh [17:35:30] I had 'updatable' => true, initially [17:35:49] But 'initially' was at like 8am this morning. When I wrote my question to you, I saw how that was undesirable and changed it [18:01:31] RoanKattouw: howdy [18:01:36] Morning [18:01:41] I could use a hand fixing my borkedness [18:04:53] Have you tried uncommenting the wfRunHooks call you added and hard refreshing? [18:05:14] That call is broken for various reasons, which means it may also be breaking various things [18:06:35] I realize that it's borked [18:06:55] lol typical I can't read your full comment because the Amsterdam cluster is down [18:07:00] I think I was too tired and working working too late [18:07:00] *RoanKattouw reconfigures /etc/hosts to work around that [18:09:57] is there a reason why there's a global "Take me back" but I can't find a global "use vector" ? [18:10:57] Vector was made the default non-optionally? [18:11:17] I don't think a conscious decision was made not to have the latter, no [18:11:24] Thing is the whole thing was a quick hack [18:11:39] i think we're walking into a real "global preferences" system with that. [18:11:43] yes [18:12:03] the global take me back, afaik, just goes to each wiki's database and forces it to switch to monobook. [18:12:11] That's exactly what it does [18:12:19] Global preferences isn't hard to implement [18:12:25] Andrew had code for it once upon a time [18:12:39] And I laid some groundwork for it in core that I also needed for global take me back [18:12:48] But the main challenge, according to Andrew, is a good UI [18:12:56] are we supposed to get a roadmap of what the features the WMF is going to work on at some point? [18:13:03] what features* [18:13:08] that would be lovely. [18:13:10] I sure think so [18:13:36] Or even just a roadmap for MediaWiki, we haven't had an up-to-date one since forever [18:13:44] right [18:13:59] We can also have things where we're like "WMF may do this eventually, but if you think you can hack this up, go for it" [18:14:08] I thought that was the role of the new strategic product thingy, but I don't see anything coming up [18:14:17] Global prefs mostly requiring design/UX it's probably best left in WMF's hands [18:15:06] Oh lol, your comment involves the wrong rev [18:15:20] TrevorParscal: OK so does removing the hook call and forgetting about the hook altogether for now put things back in order? [18:15:45] see r73076 [18:16:08] i'll get right on that. as soon as i'm done with the other 15 things. [18:16:09] OutputPage shouldn't call initialize() [18:16:14] It shouldn't even be *public* [18:16:18] why? [18:16:21] Instead, public interfaces requiring module info should call it [18:16:28] jorm, hence the need for a roadmap =) [18:16:34] fair enough [18:16:36] I can do that [18:22:09] is it OK to use wfDebug to make note of a recovered error? [18:23:38] What's a 'recovered error' in this case? [18:24:49] I'm checking if ResourceLoader::$initialized is false before calling it, rather than just calling it all the time (less function overhead) but if it's called more than once (because someone screwed up) than it's cheap to return early because $initialzed is already true. And in this case, it's a recovered error of sorts [18:25:07] I was thinking of adding wfDebug( 'ResourceLoader::intitialize was called more than once' ); just before the early return [18:25:26] to provide some kind of signal to someone that they screwed up.. not sure that's the right way to do it [18:25:29] That's OK [18:25:31] k [18:25:47] I dislike the duplication of logic to avoid calls personally [18:26:07] jorm: What text should appear in the title bar of the survey dialog? [18:26:51] but all those function calls... I don't mean to prematurely optimize, but I also think the class should be able to trust itself, but I also think recoverable errors should be recovered from... [18:26:55] I'm a bit torn as well [18:27:10] "Jorm is Awesomesauce" [18:27:16] err. [18:27:24] hrm. [18:27:32] Then don't optimize prematurely, and this whole problem goes away [18:27:32] I did not just read that. [18:27:35] do we wanna go "chummy" or "professionally boring?" [18:28:06] There's all sorts of occurrences of this in MW (technically unneeded function calls) and Domas has chosen other victims to crack down on :) [18:28:47] RoanKattouw: you are saying, you would recomend just calling self::initialize() at the top of all public interfaces, even though we can cheaply check if $initialized is true? [18:29:15] it could even be on a single line... "self::$initialized || self::initialize();" [18:29:37] Roan, let's go with "Please Answer a Few Questions" [18:30:29] TrevorParscal: Yes, the former is exactly what I'm recommending [18:30:36] ok - no worries [18:36:52] can I get a fixed for http://www.mediawiki.org/wiki/Special:Code/MediaWiki/73035#c9270 ? [18:37:32] You can once it'll load for me [18:39:51] it's not working? or you have yet to test it? [18:40:07] I'm also testing with something that uses the hook [18:40:11] not just assuming it works [18:40:44] I think he's referring to DNS issues. [18:41:37] Yes [18:41:59] The Amsterdam cluster is going crazy so I have to work around that [18:42:09] sadness [18:42:39] yeah. load average over 7000. [18:47:47] TrevorParscal: I have to say I agree with moving UI/Vector into core. I see no point in creating a new extension knowing it'll be phased out [18:48:23] I don't dissagree [18:48:36] except! [18:48:43] making 1.17 more complex [18:49:05] which is the point I just made [18:49:33] I don't see how it makes 1.17 more complex [18:49:43] It's really just a bunch of modules we move [18:49:51] Porting would have to be done anyway and would be in 1.17 anyway [18:49:56] i'd just put it into core. [18:50:46] Why is this coming up now? [18:51:13] I've been talking about porting Vector and WikiEditor to ResourceLoader, and puting them in their own extensions for a while now [18:51:34] I know, I apologize for not catching onto this earlier [18:51:37] I'm totally cool with putting it in core, but was trying to keep the 1.17 release changes small [18:51:53] it's not a rediclous point, it litterally adds code all over the place [18:52:08] messages, preferences, variables, modules, include logic [18:52:13] Must admit I probably wouldn't have actively thought about it myself had it not been brought up by someone else [18:52:25] Which prefs does Vector have? [18:52:31] At least one of them is in core already [18:52:50] OK it's a lot of different places but none of them are rocket science [18:53:05] Messages, prefs, vars and modules are all trivial [18:53:24] Because they contain no actual logic [18:53:28] Include logic - fair point [18:54:53] I'm not saying it's an insane amount of code, I'm saying I'm already done doing it the way I've done it, and there's no harm in the way its done right now, so let's focus on things that matter rather than do what WMF seems to do best - rename things and move things around [18:56:15] besides - sure it could be in core, but it's debatable that core should be as inclusive as it is [18:56:18] http://cobaia.net/2010/09/top-funny-source-code-comments/ [18:56:32] Alright, so I guess you're saying it's not very important relative to the amount of work you put in setting it up the way it is, I accept that [18:56:45] Would you object to me moving it at some point in the near future? [18:56:57] not at all [18:57:01] I would be willing to do it as well [18:57:46] I just think that we have a roadmap that we should put that on, not just start getting off on a tangent because of some troll's comments on CR [18:58:12] jorm: The guy could've just used reset( $firstList ) but the comment sure is funny :) [18:59:05] TrevorParscal: To paraphrase you on yourself, I think you're confusing the messenger's merits with the message's [18:59:47] I dissagree, given that I hold your opinion in very high regard and you are essentially making the same case [19:00:08] I think it's a valid suggestion, and I'd still think so if it was Aurora writing it on a chalkboard in Russian [19:00:27] Right [19:00:29] I'm not accusing you of favoring a troll Roan :) [19:00:32] heh [19:00:46] You have a good point, I made the case too [19:01:03] Either way I agree it's hardly the most important thing in the world [19:01:12] Getting it to work right is more important than naming it right [19:01:21] And there's still some work to do for the former [19:01:28] TrevorParscal: Careful calling people trolls, eh? :-) [19:01:39] I just need to get a ton of stuff ported to RL, so I'm hesitant to start chasing after more core integration when I feel like ResourceLoader is already going to be allot for Tim to swollow [19:02:04] Sure, I definitely see that point [19:02:22] ok [19:02:28] so, how's things? [19:02:33] whatcha workin on? [19:02:40] sorry I broke head and passed out [19:02:50] ... etc... [19:04:08] Oh yeah [19:04:14] Well people's jokes have finally come true [19:04:30] I had a dream about code review right before I woke up this morning [19:05:38] it's sort of frustrating for me when I have dreams about programming [19:05:54] I feel stressed out and poorly rested afterwards [19:06:02] Oh well [19:06:11] This was before the alarm went off at 6:15 [19:06:18] So I was never gonna be very rested in the first place [19:06:59] i dreamt about article assessment the other day. [19:07:11] nightmares! agh! [19:07:14] And it was a very laid-back dream. I was walking around and someone (a woman from the programs side, I think it may have been Annie) grabbed me and said she was working on this piece of code that did weird things in some cases. I then pointed out if ( $someID == null ) and she acknowledged she should use === [19:16:10] RoanKattouw: ha ha ha [19:21:56] Dude I made this mistake twice in two days now: $( this ).find( 'prefswitch-survey-submit' ).hide(); [19:24:48] hrm. hungry. [19:26:40] RoanKattouw: did you make articleassessment dependent on another extension? [19:27:09] Yes, a few, actually [19:27:17] I guess I should document that somewhere [19:27:21] maybe [19:27:27] It depends on SimpleSurvey which depends on PrefSwitch [19:27:37] But PrefSwitch is already installed everywhere on the cluster [19:27:46] although i do love debugging php code [19:28:02] And SimpleSurvey doesn't need to be enabled but needs to be there, which it is on the cluster [19:28:48] However, you don't actually need to install those extensions AFAIK, their code directories just need to be present [19:28:52] know what the PrefSwitch is called in svn? [19:29:00] extensions/UsabilityInitiative/PrefSwitch [19:30:06] yeah, we need that documented. some one already asked about installing it on their own wiki. [19:56:01] ugh. stacey gave my cat a bit of chicken the other day and now the little feline thinks that all chicken is hers. [20:06:44] alolita, adam_miller, jorm: OK so I'm almost finished implementing the survey. I gotta get some sleep now so I'll finish tomorrow and hopefully have it up on prototype by the morning PDT [20:07:05] sleep well, dude. [20:07:33] good work roan [20:14:27] jorm: Also, could you talk to Siebrand about putting s/page/article/g messages in Extension:WikimediaMessages ? [20:15:20] I left a comment in CR about that [20:15:25] i don't know much about Extension:WikimediaMessages [20:16:34] guillom: Thanks [20:16:44] jorm: You don't need to, Siebrand does ;) [20:17:05] I'm sure someone here knows what it is and can enlighten you while I go to sleep [20:18:34] go to bed, dude. [20:24:57] jorm, the WikimediaMessages extension contains wikimedia-specific messages that override default MediaWiki messages [20:25:20] so, in that case, shouldn't *we* be the ones using it? [20:26:01] he's right; it should say "page" instead of "article" if it is to be usable in other places. it's only us who want it to say "article" [20:26:23] well, siebrand's the one generalizing the message strings in the AA extension, so he could copy/paste the original messages and put them into WikimediaMessages while he's at it :) [20:52:52] guillom, jorm: extension WikimediaMessages does not work this way. it does not overwrite messages from other extensions with the same key name. it needs unique key names. [20:53:15] guillom, jorm I suggest to add another i18 file with "article" [20:53:39] and loading the i18n file depending on a config variable [20:53:55] Raymond_, hah, thanks. I wasn't sure, hence why I asked siebrand in CodeReview, but he hadn't answered. [21:23:14] Raymond_, any idea how difficult / desirable it would be to be able to override messages with WikimediaMessages? [21:48:40] If I think I am going to assassinate someone in a meeting, is it a good idea to leave? [21:48:44] just asking [21:49:00] hey, bastique! [21:49:49] hey flipzagging [21:57:18] i'm glad i wasn't in that meeting. [22:24:58] jorm "Desperado" [22:25:17] HEH.