[00:20:17] TrevorParscal: do i need any extensions other than AFT, EmailCapture and SimpleSurvey for AFT development? [00:20:38] PrefSwitch [00:21:13] it will be automatically included for you though... [00:21:24] oh? [00:21:39] because it's a dependency of SimpleSurvey [00:21:47] oh ok [00:21:48] cool [00:22:19] strike that reverse it [10:33:08] RoanKattouw: switch here? [10:33:13] cool [10:33:17] I don't have it checked out yet no [10:33:25] no stress about disappearing, I have other work to do as well :) [10:34:00] It'd really just be 10 mins of unresponsiveness while I make my lunch that I would then eat at my computer, so no biggie [10:34:17] :) cool [10:34:37] alright, so check out svn+ssh://svn.wikimedia.org/svnroot/mediawiki/branches/lqt-rewrite/extensions/LiquidThreads [10:34:39] OK minor nitpick #1: file names drop prefixes [10:34:54] I don't care much, others might [10:35:09] (talking about how e.g. LiquidThreadsChannel is implemented in Channel.php) [10:35:23] yeah, I did that on purpose for tab-completion and what not [10:35:31] Ah right [10:36:17] the schema that's been implemented is in /new-schema.sql [10:36:21] Do you know how PHP lets you do new self(); ? [10:36:55] *RoanKattouw is just dumping his thoughts onto IRC, apologizes for unstructuredness [10:37:10] I didn't know that [10:37:17] I tried new __CLASS__ [10:37:23] but that didn't work for me [10:38:36] That works but only with $foo = __CLASS__; new $foo(); [10:38:46] new self() isn't really obvious and I'm not sure if and where it's documented [10:39:09] you notice, of course, that Post and Topic both have revision management code, and it's virtually identical. I'd like to refactor that into VersionedObject and VersionObject eventually [10:39:21] notice that all classes inherit from one of the two, so it can happen slowly [10:39:38] and some of the database loading/saving code can go upstream into LiquidThreadsObject [10:40:01] Right [10:40:15] but honestly I just want to push ahead now, and it's not trivial [10:40:18] Yeah the DB stuff is all different tables and fields but that can be dealt with [10:40:25] right [10:40:40] abstract function getVersionField(); [10:40:45] abstract function getDatabaseTable() [10:40:46] etc [10:41:17] Aye [10:41:28] With getRow(), you've already factored it in a way that makes this easier [10:42:44] And it would give Object some meat, which I notice right now only has getID(0 [10:44:37] What's the storage format for ltv_user_ip? Just text [10:44:38] ? [10:47:11] werdna: Why do both topic and topicversion have a channel field? Can a topic change its channel association over time? [10:47:58] sorry, i'm tethering [10:48:00] and it just broke [10:48:04] okay [10:48:16] ltv_user_ip is just a varchar [10:48:16] No worries [10:48:33] a topic can indeed change its channel association over time [10:48:38] Oh right, got thrown off by the 'binary' part but everything else is also binary [10:48:42] OK [10:48:46] I can decide that X topic doesn't really belong on this page, it should actually go to this other one [10:48:49] and it can be moved [10:48:59] ltv_summary and channel aren't documented, although they're fairly obvious to me [10:49:13] nod [10:49:15] What I don't understand very well is the user_id,user_ip index [10:49:31] on which table? [10:49:37] topic version or topic? [10:49:39] topic version [10:49:46] topic has no user fields [10:49:51] changes by a given user [10:49:59] it's like Special:Contributions/User [10:50:04] Yeah but you'd want to sort those by timestamp, right? [10:50:10] probably, yes [10:50:29] So I guess that means it needs ltv_timestamp added at the end [10:50:35] yep [10:50:38] added to the list [10:50:38] And I'll need to look up how MySQL handles null values in indices [10:51:15] I've inserted a few trial entries [10:51:25] it doesn't throw an error, at least [10:52:49] Aha [10:52:51] A search using col_name IS NULL employs indexes if col_name is indexed. [10:53:00] No, I wasn't worried about failures, just about optimization [10:53:13] right [10:53:26] You'd have queries like WHERE user_id=123 AND user_ip IS NULL ORDER BY timestamp [10:53:59] The is null clause is redundant but important because it allows MySQL to use the index [10:55:22] 85 -- Everything below this is a cache of the content of the current version. [10:55:23] 86 -- It's here to simplify queries. [10:55:29] Followed by ... nothing :) [10:56:41] topic and parent post? [10:57:27] Oh ,right [10:57:32] I forgot those are both versioned attributes [10:57:34] My bad [10:57:50] :) [10:57:59] Why are poster_id and _ip versioned attributes, though? [10:59:32] And I guess you may want to have a user,timestamp-like index on post_version as well, if you have a UI feature that does Special:Myposts or something [10:59:55] well, they're versioned because at some point in the future we might want to be able to reattribute posts. [11:00:17] and it seems like a simple design decision I can take to make things a lot more flexible [11:00:26] I haven't heard any arguments against it [11:00:29] Good point [11:00:53] I guess we should be careful to say "meh, no one's gonna use that anyway", we know better now :) [11:00:59] yeah :; [11:01:00] :p* [11:01:04] that was kinda my thinking [11:01:33] Alright, schema looks good [11:01:40] :) [11:01:45] with those caveats [11:01:52] Yeah [11:02:05] Which is basically "add one column to one index" [11:02:14] also, adding a user,timestamp index on post_version [11:02:18] If you need it, yeah [11:02:26] Moving on to the code [11:02:28] In Post.php: [11:02:30] 40 * Don't use this method externally, use one of the other factory methods. [11:02:34] Then why is the method public? :) [11:02:41] I'm... not.. sure? [11:03:16] I think that line should be removed, or reworded [11:03:54] It's for loadFromConditions() [11:04:09] Either that line is a lie and should be fixed, or the method should be made protected [11:04:10] yeah, I know [11:04:17] well, it's too strong [11:04:20] The latter makes more sense to me offhand but you know the code better [11:04:41] Ideally people would usually use factory methods [11:04:48] but there might be some cases where special conditions are usable [11:05:16] Also, the $fetchText parameter is undocumented and even unused [11:05:45] ah yes, good catch [11:06:57] Hmm and LQTPost doesn't inherit from anything [11:07:53] *werdna adds to list [11:09:56] LQTPostVersion same [11:11:33] hey ^demon [11:13:14] hmm: [11:13:17] 394 $parent_topics = array( $post->getTopicID() ); [11:13:18] 395 $parent_topics[] = $post->getPendingVersion()->getTopicID(); [11:13:20] 396 $parent_topics = array_unique( $parent_topics ); [11:13:40] You can also do $parent_topics = array_unique( array( $foo, $bar ) ); [11:13:41] <^demon> werdna: Hey [11:14:40] wassup? [11:15:43] <^demon> Still half asleep :p [11:15:56] so, not you [11:21:34] Hmm I think there's an edge case in LQTPost::setParent()'s algorithm to detect bad moves (parent in different topic) [11:23:14] yeah? [11:23:22] If a post is moved from topic A to B, and its parent is slated (but not committed) to be moved from A to C [11:23:49] oh yes, that's a loophole. [11:23:51] They'll end up being in different topics, but the array_intersect() call will return array( A ) [11:24:21] It's really just a sanity check, unless you can think of an easily implementable way to detect that case [11:24:27] I really don't want it to get in the way [11:25:17] What exactly is the requirement, anyway [11:25:27] for what? [11:25:32] The bad move detection? [11:25:37] Well, when the parent is slated to be moved, it gets weird [11:26:01] The point in that is not to get in the way of having a few consecutive operations that get committed in a funny order [11:26:22] I mean, I wouldn't be averse to saying just "Sorry, you have to move the topic, THEN you can change the parent" [11:26:30] but i feel like it might cause pain and annoyance [11:26:38] though arguable corrupt databases are more painful and annoying [11:26:44] If you only allow the child's move if the parent is slated to be in the child's prospective (slated) topic, then things get weird when the parent is reset() [11:27:27] yes [11:27:56] the point is that it's a sanity check, not an exhaustive validity check [11:28:04] though like I say, maybe it makes sense to turn it into the latter [11:29:10] OK [11:29:24] Well there's gonna be ways around it always, I guess [11:29:43] If you want to make it an airtight validity check, it'd have to be upon commit anyway [11:29:45] yeah, though if we're designing for robustness [11:29:48] ... [11:30:16] Slackness with robustness is why it's being rewritten in the first place [11:30:22] Yeah [11:30:47] So my suggestion is you check the validity upon commit, otherwise loopholes will continue to exist [11:31:21] It also means you can forget about checking your own past state, because you've already decided you're gonna commit the prospective future state [11:31:49] And for friend objects you should look only at the past (current) state cause that's what's in the DB right now [11:32:07] nod [11:32:20] So that simplifies the check to $child->getPendingTopic() == $parent->getCurrentTopic() [11:37:27] Hmm, the $fetchText issue occurs in PostVersion as well [11:37:39] Probably worth checking all classes for $fetchText and lack of inheritance [11:38:23] yep [11:47:55] Shouldn't PostVersion.php:138 use <= instead of < ? [11:48:30] mmm, probably [11:48:35] Also, empty() usage [11:48:40] (elsewhere) [11:48:55] where? [11:49:05] initialiseFromRow() [11:49:14] In PostVersion, and IIRC in other classes as well [11:49:18] it's a sensible usage [11:49:22] because the rows might not have those fields [11:50:03] Sure [11:50:20] But Tim hates empty() because of its error-suppressing behavior [11:50:36] So the appropriate thing is probably is_null() [11:51:55] no, it would be isset() && !is_null() [11:52:16] because the person who created the row may or may not have joined on the appropriate table [11:52:19] Oh, right [11:55:36] Hmm, isMutable() looks like something that could be abstracted into the object/version classes [11:55:57] yep [12:01:04] TopicVersion.php:132 has a similar thing with < vs. <= [12:02:19] Also, some setters don't check mutability [12:02:59] Alright, all of this stuff looks good [12:03:12] It could be refactored a bit but you were already aware of thar [12:03:13] *t [12:05:52] yeah [12:06:13] great, is that it? [12:06:39] Yeah, I've read through all of it [12:08:28] excellent! [12:08:33] thanks so much for looking over it all [12:08:37] you picked up a few things that testing didn't [12:13:02] Testing software? [12:13:03] Wassat? [12:13:08] *Reedy stares blankly at werdna [12:13:11] haha [12:13:15] You're welcome, werdna [12:13:18] Now I should grab some food [12:13:57] <^demon> Testing's for squares. [12:14:18] Do you get strict errors? Yes; commit anyway [12:15:29] <^demon> I really need to fix our pre-commit lint test. [12:15:58] Plox. [12:17:12] <^demon> What baffles me is /nothing/ changed. [12:17:16] <^demon> But it just stopped working [12:23:09] :D [13:13:21] hey RoanKattouw, I'm integrating with WikiEditor, and I'm adding a button using 'button-msg-label' : function() { /* onclick */ } [13:13:54] I see that in _createButtons() it rewrites that to 'button-msg-label' : { 'click' : function() { /* onclick */ } } [13:14:04] and then runs .attr( props, true ) [13:14:32] I've suddenly found (possibly MW 1.16.0 --> 1.16.4 related) that it *calls* the function [13:14:44] and errors out because the function calls .data('context') [13:15:02] should that happen when running .attr()? [13:16:13] Hmm this sounds bad, lemme have a look [13:16:37] Oh, that'd be the new JUI version then I guess [13:16:44] bah [13:16:48] .attr() shouldn [13:16:54] 't call your function [13:17:16] I think I've worked around it with this: var context = $j(this).data('context'); [13:17:20] if ( typeof context == undefined || !context ) { [13:17:23] return; [13:17:25] } [13:17:31] Can you figure out where the call comes from (call stack / backtrace) using Firebug? [13:18:24] yeah [13:18:29] I'll just need to kill my workaround [13:18:33] Nah [13:18:54] Just set a breakpoint on that return; [13:18:54] And run it in debug mode so it's on its own line [13:21:54] hold on, just figuring out how to copy-paste [13:22:20] Ctrl + C, CTRL + P [13:22:28] thanks Reedy [13:22:37] np [13:23:38] weird, it's coming from skins/common [13:23:43] it's only a 1.16.4 wiki [13:23:47] oh right, $wgIncludeJQuery [13:24:24] how do I stop it from sending that minified? [13:25:19] I can't, I have to hack the source [13:25:23] Hah [13:25:37] mv jquery.min.js jquery.min.js.bak; cp jquery.js jquery.min.js; [13:26:32] it's in jquery.extend.prop() [13:26:32] if ( jQuery.isFunction( value ) ) [13:26:33] value = value.call( elem, i ); [13:26:40] well that's rather straightforward [13:27:04] OK, and where does that get called from? [13:27:27] um, jquery.fn.attr [13:27:28] Maybe you could pastebin the complete call stack? [13:28:02] it's quite simple, actually [13:28:04] I'm especially curious what the arguments to attr end up being [13:28:12] if ( jQuery.isFunction( value ) ) [13:28:17] oops [13:28:25] no idea how to get a full call stack copy from chrome [13:29:29] .attr() is called with { 'click' : function() {/*my func*/}, 'text' : 'my text' } [13:29:36] as the first arg [13:29:36] Yeah that's bad [13:29:38] and true as the second [13:29:54] well, this is what causes it [13:29:55] The second arg will be ignored because the first is an object [13:29:58] props = $.isFunction( props ) ? [13:29:58] { click: props, text: name } : [13:29:59] props; [13:30:12] Oooh [13:30:16] I think I understand [13:30:30] This JUI version is probably only compatible with jQ 1.4+ [13:30:39] And you're probably using jQ 1.3.2 [13:30:52] * jQuery JavaScript Library v1.3.2 [13:30:53] * http://jquery.com/ [13:31:06] Try upgrading jQuery in-place to 1.4.4 [13:31:11] Or whatever the latest version is [13:31:33] ah that will be the patch I forgot to appl [13:31:36] You've somehow managed to use a too-new version of jQuery UI, so... :) [13:34:40] ok, that's fixed [13:34:40] thanks [13:34:54] now to try and make this wiki run at a faster than glacial pace [13:35:19] too much SMW :( [13:37:59] <^demon> !hss [13:37:59] --elephant-- I don't know anything about "hss". [13:38:04] <^demon> Wha? [13:40:45] different b [13:40:48] brain [14:06:17] actually it looks like wfSetupSession() is what's making it slow [14:07:15] well, maybe [14:07:15] query: COMMIT76.82% [17:09:41] awjr: RoanKattouw: TrevorParscal: howief: alolita [17:23:44] RoanKattouw: Krinkle: awjr: howief: howdy! [17:26:15] hey [17:27:50] TrevorParscal: I merged those revs to 1.17wmf1, you can svn up on prototype and they'll appear [17:28:52] k [17:30:30] I updated it, and verified it's coming from http://svn.wikimedia.org/svnroot/mediawiki/branches/wmf/1.17wmf1 but I didn't see the change come through... [17:30:34] lag? [17:30:45] TrevorParscal, RoanKattouw, Krinkle - i'm not seeing the article feedback tool on the ArticleFeedbackTest article on prototype [17:30:59] that's because of this patch [17:31:07] TypeError: Result of expression 'mw.user.bucket' [undefined] is not a function. [17:31:11] there's a js error because the bucket thing I added to core needs merging [17:31:20] ahha [17:31:23] svn: Failed to add directory 'extensions/EmailCapture': object of the same name already exists [17:31:35] what's with that? [17:31:47] we could just remove it and update again I guess [17:31:50] someone added it manualluy [17:31:54] theeere we go [17:32:04] ok [17:32:07] caching issue [17:32:10] svn up just updated a few dozen files [17:32:10] that was likely my bad, sorry [17:32:15] i get the bucket code now [17:32:59] wikimedia button image is still missing... pdhanda has been moving things around [17:33:02] whatever [17:33:16] I have? [17:33:29] *pdhanda looks [17:33:42] Wikimedia button image? [17:33:48] If it's not AFT-related we shouldn't care right now [17:34:01] k, good :) [17:34:49] testing email [17:35:04] it came into my junk mail :( [17:35:09] hotmail doesn't like Wikipedia [17:35:59] i don't think the final email text got used [17:36:34] the email field is showing up after submission -- it should not appear once an email is submitted [17:37:28] Krinkle: could you look at that? [17:37:38] I'm working on making sure the email content is correct [17:38:29] howief: You reported this before and it worked fine when we tested, can you verify once more please ? [17:38:38] yes [17:38:46] so i think this is what is happening [17:39:02] upon submission of invalid email address, the email address field reappears [17:39:16] upon submission of valid email address, the email address field does not reappear [17:39:21] let me see if i can verify this [17:39:32] BTW can someone tell me how many total CTA's have been reported? [17:39:45] Ahm [17:40:58] howie, normally it's frowned upon to put project specific content in an i18n file [17:41:14] we have content in this text like "Wikipedia, the encyclopedia anyone can edit" [17:41:15] howief: Yes, although I don't remember writing it that way, it does reflect what I see. [17:41:27] Do we want that otherwise ? [17:41:29] howief: [17:41:31] | ext.articleFeedback@1-pitch-survey-show | 2925 | [17:41:33] | ext.articleFeedback@1-pitch-edit-show | 2892 | [17:41:35] | ext.articleFeedback@1-pitch-join-show | 4955 | [17:41:40] woah [17:41:44] that's production? [17:41:55] awjr, btw, I feel your PayPal code pain. We've got to use it for a crappy piece of coursework, and it's instructions are often wrong [17:42:05] Yeah that's enwiki [17:42:18] It's since the last AFT deployment on, what was it, April 17? 19? [17:42:20] Reedy: you can almost assume whatever you need to know is not documented and requires reverse engineering [17:42:29] or if it is documented, it's incorrect :p [17:42:35] :D [17:42:41] ( Please save this file into the AppCode sub directory of your .Net web app ) [17:42:42] or if you need to talk to anyone at PayPal for support, you're better off putting your head in an oven [17:42:44] I have no AppCode [17:42:45] TrevorParscal: Emailcapture field properly hides (both within the same load and after refresh / other page views), *if* a valid email adres was entered and saved by the server. [17:42:48] but i have an App_Data folder [17:43:04] RoanKattouw: that's interesting because the numbers are orders of magnitude greater than the last toolserver dump [17:43:13] If the option was not checked, mail invalid or server did not save, it doesn't set the hide cookie / nor does it do the $.fn.hide() call [17:43:14] toolserver is full of lies [17:43:45] howief: I can generate an out-of-schedule dump for you, that'll take approx 20 mins. Want one? [17:43:51] RoanKattouw: What're those numbers in the second column you pasted ? [17:43:53] Krinkle: that's not ideal, but it might be okay [17:44:03] Krinkle: Number of hits for each clicktracking key [17:44:07] k [17:44:12] howief: if I'm allowed to drop ", the encyclopedia anyone can edit" from the email text, we have no problems - it will still say wikipedia [17:44:21] howief: It's pretty easy to adjust, how would you prefer it to be ? [17:44:23] {{SITENAME}} [17:44:28] RoanKattouw: right [17:44:38] Reedy: you have to do paypal stuff for a class you're taking? [17:44:45] Krinkle: yes, let's change because there's a funky interaction thing that happens [17:44:49] but "{{SITENAME}}, the encyclopedia anyone can edit" is pretty FAIL [17:44:50] with the current implementation [17:45:14] Even for Wikimedia projects other than wikipedia. [17:45:29] TrevorParscal: that works [17:45:32] ok [17:45:39] awjr, it's half of a piece of coursework, which is 30% of the module, and another piece makes up another 30% [17:45:59] oof [17:46:00] RoanKattouw: the out-of-schedule dump would be awesome, but only afte we're done with deployment :) [17:46:11] OK [17:46:23] TrevorParscal: Should we increment the version number for this deploy? Any reason to do so? [17:46:47] the cookie names for bucketing are going to change anyways [17:46:51] I think we should [17:47:01] howief: do we need to support all platforms/browsers in that matrix? [17:47:03] to avoid known, and unknown issues with not [17:47:49] awjr: i wish i could give you a solid answer [17:48:01] but we don't have a test matrix we've all agreed on [17:48:06] heh ok [17:48:13] so in the matrix, i've greyed out the ones that I don't think need testing [17:48:19] RoanKattouw: suggestions on how to do http://wikimediafoundation.org/wiki/Privacy_policy properly in an i18n file? [17:48:24] perhaps we should hammer that out for the next deploy so we're surely only focussing on the stuff we care about [17:48:30] yes! [17:48:38] it needs to render to a full URL, because it's being sent to someone via email [17:48:42] and there may be a diff test matrix for major deployments vs. minor ones [17:48:48] [[Privacy policy]] ? [17:48:57] TrevorParscal: Just put it in, worry about properly later [17:49:03] We're supposed to deploy real soon now [17:49:19] arg [17:49:26] Also, wg var [17:51:08] whats the wg var for "http://domain.org/wiki/" ? [17:51:24] can someone please test on windows? [17:51:27] wgArticlePath [17:51:29] $wgArticlePath? [17:51:30] ok [17:51:33] Contains $1 so you have to .replace() that [17:51:41] TrevorParscal: Can I get that wg var to disable the special page like now? [17:51:49] yes [17:51:50] howief: What do you need me to do? [17:51:57] TrevorParscal: Those links should probably go in WikimediaMessages [17:52:06] Eventually they should, yes [17:52:06] core default to the link in the footer [17:52:11] submit a few ratings and emails on IE please [17:52:13] (privacy) [17:52:25] Oh wait, this is not code we're deploying now, it's dashboard, so ignore my "screw properly" comment :) [17:52:32] extension default* [17:52:36] howief: OK, on it [17:52:44] thanks [17:53:19] lol, I'm now running FF4, reKonq and IE in a VM [17:53:31] {{int:privacypage}} privacypage [17:53:35] Project:Privacy policy [17:53:36] BTW, I just rated -> submitted valid email -> received edit CTA --> successfully saved edit [17:53:41] is that path showing up on click-tracking? [17:53:56] TrevorParscal: I did privacy link already [17:54:07] it's in the -note below the helpimprove-email field [17:55:17] k [17:55:41] howief: Where do I go to rate a page? I see no widget on the main page [17:55:50] http://prototype.wikimedia.org/release-en/AricleFeedbackTest [17:56:32] UI question -- when filling out the email field, the field turns red or green depending on whether, at any given point in time, it looks like the email i'm adding is valid [17:57:03] so if i'm typing "myemail@address.com" [17:57:11] and pause at "myemail", the field turns red [17:57:12] It looks kinda ugly in IE [17:57:13] (8) [17:57:14] is that the intended behavior? [17:57:20] ugly or not functional? [17:57:20] The checkboxes for the expertise stuff don't line up [17:57:24] Functional [17:57:29] But kinda weird [17:57:39] checkboxes not lining up is not good [17:57:48] we should fix that [17:58:05] IE8 is one of our largest share browsers i think [17:59:54] RoanKattouw: $wgArticleFeedbackDashboard added in r87023 [18:00:04] howief: what is the expected result if a user enters an invalid email address? [18:00:18] Thanks [18:00:28] ideally, there would be a feedback loop, but for this release, we said we would just let it go through [18:00:32] http://prototype.wikimedia.org/release-en/File:Iefail.png [18:00:42] k [18:00:44] Also, it runs off the page, see that? [18:00:51] the issue with the behavior i'm observing is that you're telling the user they're doing something wrong before they're completed the action [18:01:03] (assuming they know red = invalid) [18:01:18] RoanKattouw: missing a clear:both in there [18:01:20] howief: in that case, the expected result is the same for rows 3 and 4? [18:01:24] of the matrix, tha tis [18:01:33] TrevorParscal: sofixit [18:01:37] i can understand why you'd do something like this for password strength, but I think the case of entering an email address is slightly different [18:01:50] RoanKattouw: obviously - which IE was this? [18:01:50] awjr: correct [18:01:57] TrevorParscal: IE8 [18:02:01] k [18:02:19] crap, my IE8 vm crashed and burned [18:02:27] and I didn't have a rollback state (doh!) [18:02:31] Where the heck do I access cookies in IE8 [18:02:38] testing to see if it affects ie7 too [18:02:49] use the console and $.cookie [18:03:01] there's no UI for it [18:03:05] but you do have a console [18:03:06] Bah [18:03:13] What's the cookie key for the e-mail thing? [18:04:14] ext.articleFeedback@0-helpimprove-email [18:04:16] is anyone not getting the checkboxes? [18:04:23] I'm getting them fine [18:04:27] (asking to see if the bucket testing is operational) [18:04:27] awjr, I don't get how the wizards and stuff are so full of typos [18:05:14] Well [18:05:17] 'buckets' => array( [18:05:18] 'ignore' => 100, [18:05:20] 'track' => 0, [18:05:21] ), [18:05:24] TrevorParscal, howief: This looks wrong ----^^ [18:05:35] that's the default [18:05:41] you are supposed to override it [18:05:44] OK [18:05:53] with something like 80, 20 or something [18:06:01] I would've liked to have heard that more than minus 13 minutes in advance ;) [18:06:12] sorry [18:06:13] ...and I would like to actually start pushing to test if that's OK with you guys [18:06:18] that code's been there for a while actually [18:06:18] can we set at 50/50? [18:06:24] sure [18:06:33] Krinkle: are you doing any IE testing? [18:06:49] it seems like there are the following issues identified so far: [18:06:52] In general yes, not at this very moment. [18:06:55] 1. IE8 checkbox alignment [18:06:57] Booting IE Tester now [18:06:59] 2. Email copy [18:07:06] I got the email copy into the SVN [18:07:12] 3. email address validation [18:07:15] howief: It can be pi/(1-pi) if you want ;) [18:07:30] that gives a negative number [18:07:51] heh I meant pi % vs. (1-pi)% [18:07:57] hahaha [18:08:24] arg, IE7 scrip errors... [18:08:45] Everything worked for me in IE8 BTW, except for the misalignment stuff [18:09:08] k [18:09:13] checking IE6 [18:09:33] I had everything working in IE6 - 8 before we added the email stuff [18:09:55] great! thanks for testing in ie8 [18:10:48] IE7: Expected identifier, string or number [18:11:03] Debugger won't tell me where [18:11:13] yeah, sorting it out [18:11:42] i have my ways [18:13:04] It gives me: Expected identifier, string or number AricleFeedbackTest?debug=true, line 98781391 character 7 [18:13:14] I'm sure we don't have 98 million lines of JS [18:14:06] IE doesn't have a proper line counter [18:14:12] it always get's it wrong.. [18:14:26] The debugger also can't find the code [18:14:35] It's supposed to highlight the code that broke but failing [18:15:17] iirc, IE < 8 keeps counting the lines through every resource. [18:15:32] if you enter an invalid email address, is it supposed to be recorded in the db, or do we just not record it? [18:15:33] does anyone have an issue with the prototype page loading when logged in? [18:15:42] Krinkle: Even then, 98 *million* ? [18:15:50] Logging in [18:15:51] dunno [18:15:53] perhaps it includes images [18:15:59] awjr: i would prefer not recorded if possible [18:16:09] or recorded with an invalid flag [18:16:13] then it's working as desired [18:16:24] It's not recorded if invalid, php side of emailcapture takes care of that. [18:16:29] I did notice staying logged in is hard on prototype [18:16:30] although i dont think it's the best user experience [18:16:37] I guess something's buggy there, but it works on the cluster [18:16:52] And there's absolutely no way AFT is responsible for that [18:16:53] awjr: no it's not the best user experinece [18:17:09] but this is just a pilot for the community department, so i think it's okay [18:17:18] if we decide to productize this, we'll make the required changes [18:17:21] sho nuff [18:17:35] TrevorParscal: Now I'm logged in, and IE7 gives me Line: 106711323 Error: Object doesn't support this property or method [18:17:43] (And yes that's 106 million, a new record) [18:18:05] IE7-specific [18:18:08] i'm trying to debug with a microsoft development IDE [18:18:20] give me a few more seconds here - it's a POS as expected [18:18:50] TrevorParscal: So note how the error message is different for logged-in vs. anon, that's probably useful info for you [18:18:57] POS? [18:19:07] piece of (something) :) [18:19:24] Right [18:20:08] ugh [18:20:17] Krinkle: any progress on the IE overflow issue? [18:20:25] I don't have a working IE8 VM right now [18:20:31] I do, lemme see. [18:21:02] oh how i hate windows, and microsoft in general [18:21:10] rebooting vm [18:21:15] epic failures! [18:22:27] Anybody familiar with liquidthreads guts? Looking to see if we can resolve https://bugzilla.wikimedia.org/show_bug.cgi?id=27983 [18:22:49] awjr: i removed a bunch of test cases to reflect the features we're deploying with [18:23:01] great [18:24:07] RoanKattouw, thanks for the follow-up directing to andrew :D [18:24:28] sure [18:24:33] I did some LQT schema review for him this morning [18:24:44] So he's definitely around and working, just not at 4am I guess [18:25:13] hehe [18:25:15] yeah no rush [18:25:50] TrevorParscal: That error often shows if there's a collision between a global object and an element with the same id [18:26:09] since
== document.getElementById('test') == window.test in IE [18:29:32] what is supposed to be the experience if a user clicks the link to verify their email address, then clicks the link for Special:EmailCapture and then enters in the verification code? [18:29:54] They should get an email verified message [18:30:15] but i don't think any of the copy has been updated [18:30:28] (i.e., it shouldn't say "Email address capture") [18:30:47] currently they do not - i verified with the link (successfuly), then attempted to manually verify and was told "Your e-mail was not verified." [18:30:54] TrevorParscal: narroed it down to ext.articleFeedback.js [18:30:56] hmmm [18:30:58] but i would consider that an edge case [18:31:20] also is a rating of '0' considered the same thing as a non-rating? [18:31:24] oh - i see [18:31:33] so they verify their email address, then subsequently try to enter the code? [18:31:37] correct [18:31:41] yes, 0 = not rated [18:32:05] yeah it would be nice if we could fix that -- i noticed that as well during the last round of testing [18:32:14] but i wouldn't hold up the release of feature for that case [18:32:26] howief: are you keeping track of those issues somewhere? [18:32:44] on a sheet of paper her [18:32:45] here [18:32:53] i'll add to the google doc [18:33:00] *RoanKattouw suggests Bugzilla [18:33:15] sure [18:33:30] cool, yeah bugzilla is preferred it'l lhelp us track these things easier [18:36:24] er noticing weird behavior in firefox 3.6 on linux - when i log in to prototype, and then go to any page, i get logged out [18:36:49] im not sure this is related to AFT [18:36:49] I just said [18:36:57] It's hard to stay logged in on prototype [18:37:03] ah missed that [18:37:03] This bug has been observed before [18:37:08] But there's no way AFT caused that [18:37:16] So just check both boxes on the login form [18:37:34] cool thanks roan [18:38:29] Krinkle, awjr, howief: Would you guys like to be on default CC for newly filed AFT bugs? [18:38:41] yes [18:39:15] sure [18:40:23] OK, done [18:41:30] Hmm, this is amusing [18:41:41] Before Google Voice turned me away with an "only in the US" message [18:41:58] I've now changed my language preference from nl to en-US and Google Voice shows for me now :) [18:42:09] However the plugin doesn't seem to work in FF4 for some reason [18:42:29] howeif: how's your confidence in doing a deploy? if we don't get a go-ahead from you by noon pdt, i think we need to delay as i won't have any more time to deploy later today [18:43:14] Me neither [18:43:40] awjr, why when looking for technical docs on how their "API works", do I just find marketing bullshit? [18:43:54] Reedy: if you find anything, that is likely it [18:44:09] "How to customise the API?" [18:44:13] I don't give a crap [18:44:33] we have at least 3 blocker bugs [18:44:33] \ [18:44:46] Reedy: i've had one paypal dev swear to me the most up-to-date, definitive documentation can be found here: https://www.x.com/community/ppx/documentation [18:44:54] 1) email confirmation flow [18:44:58] 2) IE8 alignment [18:45:00] That's just where I've gotten to [18:45:18] 3) IE7 script error [18:45:39] i'm working on 3 [18:45:53] i'm assuming these can't all be fixed in the next 7 minutes, correct? [18:46:10] even if they can be fixed in the next 7 minutes, we'll have to test again [18:46:16] correct [18:46:26] so then the answer is no, we shouldn't deploy [18:46:29] let's delay deployment [18:46:30] yeah [18:46:36] OK [18:46:37] when's the next chance we have to deploy? [18:46:42] Lemme see [18:46:53] Early morning tomorrow [18:46:58] if we don't do it tomorrow it'll have to wait til monday [18:47:01] Like 7:30 - 8ish am [18:47:13] can we shoot for 7:30-8? [18:47:18] I have to finish by 9am tomorrow [18:47:28] RoanKattouw: i can do 730 [18:47:30] am [18:47:31] pdt [18:47:32] Hm or 1:30pm tomorrow, that's also an option [18:47:41] Wait, strike that [18:47:42] 130pm is definitely more attractive [18:47:44] doh [18:47:49] I have to get up early on Friday so that's not an option [18:47:53] k [18:48:03] so let's do 730 tomorrow [18:48:11] Alright, scheduling [18:48:13] let's do 730am then - assuming that we get a go-ahead before then [18:48:14] i'll finish logging these bugs [18:48:50] TrevorParscal, Krinkle: do you have an estimate on when you'll be done dealing with the bugs? [18:48:53] so when can we get the bug fixes on prototype and test so that tomorrow morning can just be a quick spot-check on test? [18:48:57] the show-stoppers that is [18:49:01] Alright, moved the deploy in the calendar [18:49:14] howief: Bug fixes can go to prototype as soon as they're ready [18:49:18] yeah, i'm plugging away, but it's partially up to the IE6 gods [18:49:26] >_< [18:49:40] Paypal are reinventing core c# functions which have existed for years [18:49:45] are we really still supporting ie6? [18:49:54] i thought the scripting errors were on ie7 [18:50:03] Krinkle: IE is saying the error actually is occuring on line 606 of jquery.js [18:50:15] i'd vote that ie6 errors aren't showstoppers [18:50:19] Yes, these are IE7 errors [18:50:21] Screw IE6 [18:50:32] dude, it's the same error [18:50:59] IE6 is still supported officially [18:51:05] TrevorParscal: When will you have time to work on a Wikimania proposal? It's scheduled for now-ish, I guess I can start while you fix bugs? [18:51:12] Krinkle: Not for JS progressive enhancement things it's not [18:51:15] yes [18:51:16] TrevorParscal: IE is bad in tracing things, it usually throws at the wrong point, the bug isn't in jquery [18:51:24] Krinkle: i know [18:51:28] I was going to finish [18:51:38] TrevorParscal: I agree, IE6 doesn't have to have everything, but it shouldn't fail evertything else. [18:51:43] that's the point in jquery where it adds a script to the document [18:51:46] anyway, we both know. [18:52:11] awjr: Which bugs specifically ? [18:52:28] do you guys think we can aim to have the showstoppers fixed by 3pm today? [18:52:49] i can help test between 3-4pm [18:52:53] or after 5pm as well [18:53:14] 3pm = in 3 hours ? [18:53:22] yes [18:53:23] too soon? [18:53:41] Krinkle: the ones howie identified as deployment-stoppers [18:53:54] howief: 1) email confirmation flow [18:53:54] [11:52am] howief: 2) IE8 alignment [18:53:54] [11:52am] howief: 3) IE7 script error [18:55:40] Krinkle, TrevorParscal: what are the odds of getting these bugs fixed by 3pm today? or 5pm today? [18:55:52] 3pm is sensible I think [18:56:02] w00t [18:56:09] sweet [18:56:19] and TrevorParscal: you can push to prototype, right? [18:56:19] Well, fixing them should be fairly simple. Locating the source is the tricky part. [18:56:28] heh [18:56:38] yes [18:56:46] groovy [18:56:47] awesome [18:56:59] i've logged the bugs, with the exception of the ie7 since i can't describe it [18:57:03] and have assigned to trevor :0 [18:58:58] *TrevorParscal chases bugs down the rabbit hole [19:06:51] TrevorParscal: commenting out mw.loader.load( 'ext.articleFeedback' ) in startup and manually loading mw.loader.load( 'jquery.json' ) mw.loader.load( 'jquery.articleFeedback' ) triggers it as well [19:07:00] so it may not be in ext.articleFeedback.js [19:07:14] yeah [19:07:16] using Firebug Lite a.t.m. [19:07:18] i'm finding that too [19:07:39] remember, ext.af requires a bunch of stuff [19:07:42] which is executed first [19:08:32] if you blank out the contents of jquery.articleFeedback, the error goes away [19:09:18] anyone seen sumanah? [19:11:05] TrevorParscal: yep [19:12:55] it's betwen lines 219 and 279 of jquery.articleFeedback.js [19:13:08] *TrevorParscal narrows in on pray [19:15:19] trailing comma on line 238 of jquery.articleFeedback [19:15:24] D'oh [19:15:26] and it was my fault [19:15:47] ayay [19:15:49] *Krinkle stops looking [19:15:59] Other browsers should be stricter ont hat [19:16:00] that* [19:16:23] heck, all of JS should be stricter if it were up to me. [19:16:39] Missing semi-colon ? Self-destruct the browser and slap the developer in the face. [19:16:39] yeah, http://www.mediawiki.org/wiki/Special:Code/MediaWiki/86668 [19:16:54] I wrote it, shame on me, Krinkle signed off on it, shame on him :) [19:17:00] :D [19:17:08] *Krinkle blames the Mozilla team [19:17:13] RoanKattouw: http://www.mediawiki.org/wiki/Special:Code/MediaWiki/87034 [19:17:19] howief: the script error is done [19:17:23] meh, I didn't test that in IE8, true :) [19:17:25] Krinkle: how's the layout in IE8? [19:17:51] this is why we should be using jslint [19:17:58] it would have caught that immediately [19:18:11] Yeah, I'm all for JShint-ing pre-commit. [19:18:47] Built-in my js editor actually, but disabled it for AFT because there were so many low-priority warnings already before I 'met' AFT. [19:19:33] Stil getting error in IE8, won't even init AFT [19:19:45] "Syntax error" [19:20:01] it works in IE6 and not IE8? [19:20:03] hmm [19:20:07] checking 7 [19:20:21] Ah, sorry, I'm using IE7 indeed [19:20:32] *Krinkle checks 6 and 8 [19:20:44] you sure you pressed ctrl+F5? [19:20:52] you gotta force IE into getting the latest [19:20:59] it's very hesitant to even check for things [19:22:10] yes, cleared it [19:22:39] Line million-something, char 540 "Syntax error". wasn't there before (IE7 and IE8) [19:24:09] k [19:24:23] I see that on IE7, which is odd that IE7 is erroring on something that IE6 can use [19:25:51] this time it might be in af.startup [19:26:23] TrevorParscal: http://eiximenis.wikimedia.org/WikimaniaRL [19:26:33] cool [19:26:42] will poke when errors are found and fixed [19:27:28] Found it [19:27:30] my bad [19:27:40] $( .. );.foobar() [19:27:43] misplaced ; [19:28:18] no errors now in IE8 [19:28:53] awesome [19:29:03] *TrevorParscal waits for commit [19:29:10] *Krinkle waits for codurr [19:30:30] awjr, http://twitter.com/#!/PayPal_MTS/statuses/63323076678516736 [19:31:07] The only warning left in JSHint for ext.AF.js is "being weird". [19:31:15] Line 64var survey = new ( function() { [19:34:12] checkboxes are too low in IE& [19:34:13] 7 [19:34:29] probably double-margin bug ? [19:34:54] hmm [19:35:20] http://i.imgur.com/bH59C.png [19:35:23] Krinkle: did you push your syntax error fix? [19:35:26] yes [19:35:32] to trunk [19:35:38] hmm [19:37:24] i still get IE7 error [19:37:46] Which [19:38:08] object doesn't support this property [19:38:20] line 7 million something [19:39:11] http://imgur.com/AoApN [19:40:32] it's in ext.articleFeedback.js too [19:40:58] the checkbox allignment is caused by the margin-bottom: 0.5em; on ".articleFeedback-expertise label". Ie is somehow clearing the float more than other browsers, thus causing the margin to offset from the bottom of the "articleFeedback-expertise-options > div". [19:41:19] instead of pushing away the next line [19:41:32] Will look at fixing that right now [19:42:19] cool [19:42:49] i think the IE7 thing was a caching error [19:42:53] k [19:42:57] it's working now, and I didn't change any code [19:43:08] nope, it's not related to extra clearing. It is indeed the double-margin bug that IE7 has. [19:43:22] ie: "floated elements have a double margin for no apparent reason" [19:43:32] yeah [19:43:35] that's strange [19:43:36] display:inline (redundant for other browsers) should fix that [19:43:42] It's a wellknown bug though [19:43:44] right [19:43:53] brb [19:44:27] A IE7 <= css magic like " *[float=*] { display: inline; }" would be awesome :D [19:49:42] Reedy: that's hilarious [19:49:59] I didn't even @ them, so they must stalk paypa [19:50:01] l [19:50:02] as text [19:51:48] TrevorParscal: Did you see in the screenshot though, it's width:100% in IE7 [19:51:55] ( http://i.imgur.com/bH59C.png ) [19:52:21] display: inline-block; [19:52:28] .articleFeedback { [19:56:24] yeah, IE7 doesn't like inline-block [19:56:27] hmm [20:02:10] TrevorParscal: Found it (misplaced checkboxes): http://robobruin.blogspot.com/2007/09/fixing-ie-checkbox-paddingmargin.html [20:02:20] zoom:1;padding:0;margin:0 fixed it [20:02:27] will work from there to make it look good again [20:02:55] (it doesn't say in the article, but basically it needs hasLayout triggered in order to set margins on a checkbox, such as fixed width or zoom:1 hack) [20:03:12] interesting [20:18:07] Fix committed. [20:18:18] Removed it for now, it wasn't visible in WebKit / Firefox anyway [20:18:27] (the top-margin on input) [20:26:37] TrevorParscal: still there ? [20:31:16] PHP Notice: Did not find alias for special page 'ArticleFeedback'. Perhaps no aliases are defined for it? [Called from SpecialPage::getTitleFor in /htdocs/SVN/mediawiki/trunk/phase3/includes/SpecialPage.php at line 263] in /htdocs/SVN/mediawiki/trunk/phase3/includes/GlobalFunctions.php on line 3312 [20:31:29] http://localhost/SVN/mediawiki/trunk/phase3/index.php/Special:ArticleFeedback?debug=true [20:32:56] PHP Notice: Did not find alias for special page 'ArticleFeedback'. Perhaps no aliases are defined for it? [Called from SpecialPage::getLocalName in /htdocs/SVN/mediawiki/trunk/phase3/includes/SpecialPage.php at line 450] [20:33:06] getTitleFor & getLocalName [20:43:47] Krinkle: you are aware of the global right? [20:44:01] $wgArticleFeedbackDashboard [20:45:23] Yes, but that doesn't do a lot for me. There appears to be a deeper issue. Although only triggered by AFT, it may be a recent core bug. [20:45:51] The following happily takes it's place in the php erros when I set that global to false: [20:45:52] Notice: Did not find alias for special page 'SimpleSurvey'. Perhaps no aliases are defined for it? [Called from SpecialPage::getTitleFor in /SVN/mediawiki/trunk/phase3/includes/SpecialPage.php at line 263] in /SVN/mediawiki/trunk/phase3/includes/GlobalFunctions.php on line 3312 [20:47:51] Maybe someone broke alias handling in phase2? [20:47:52] *3 [20:51:24] *Reedy blames Happy-melon [20:52:15] PrefSwitch went Fatal error in trunk as well this morning because of it (prolly has been for a few days) [20:52:34] http://www.mediawiki.org/wiki/Special:Code/MediaWiki/87018 [20:52:38] RoanKattouw: [20:52:50] Hm [20:52:55] And it's back now? [20:53:18] No, that commit fixed it [20:53:22] (for PrefSwitch) [20:53:48] the notice I mentioned in this channel has been on Special:SpecialPages for me for weeks on a trunk + AFT config [20:54:13] (the SimpleSurvey alias notice) [21:17:15] Krinkle: all sorted now? [21:17:26] what's left before the 3pm finish line? [21:17:37] email, layout and errors are done [21:17:41] The two points raised here (JS/CSS) are done afaik [21:17:45] that was all of it [21:17:46] cool [21:17:48] Ugh [21:17:50] ? [21:17:59] The 3pm finish line is approaching and I'm still awake [21:18:06] currently continueing with the jsperf tour through AFT +friends. [21:18:18] that's awesome [21:18:19] ClickTracking needs love too [21:18:28] Damn right it does [21:18:32] many repeated $(this)'es and unchained stuff [21:18:45] $(this).data(.., ..); $(this).css( .., ..); $(this).css( .., ..); [21:18:55] instead of $(this).data().css( {} ); [21:19:16] and using the new json.js in core [21:19:21] Be careful there [21:19:28] You don't want to chain data() [21:19:48] You can, but it can go wrong so I prefer avoiding it [21:20:05] Consider $(this).data( 'foo', bar.baz ).css( 'height', 3 ); [21:20:18] And figure what happens when bar has no member named baz [21:20:31] it will be set to null [21:20:35] No [21:20:48] The second param will pass in as undefined [21:20:53] Which means data() will go into 1-parameter mode [21:21:04] right [21:21:05] And you've effectively done $(this).data('foo').css( ... ) [21:21:10] Krinkle: yes, nimish_g is supposed to be working on that [21:21:19] For typical uses of data(), that does not go over well [21:21:23] but he probably could use some help or at least pointers [21:21:36] RoanKattouw: k, I'll keep that in mind. [21:21:41] but using css maps is important [21:21:51] Yes [21:21:52] and things liek .each( $(this).remove(); ) is nonsense [21:21:56] Yeah [21:22:02] most if not all jquery functions .each internally [21:22:11] I know lots of things can be improved there [21:22:29] It's just that LQT has been broken before because someone was trying to be clever by chaining datA() [21:22:36] TrevorParscal: what am I doing? [21:22:43] working on click tracking code [21:22:49] which is a messy mess with messes in it [21:23:00] yes, yes it is [21:23:41] nimish_g: I'm going to commit something soon where I will be doing small fixes in random places. [21:23:53] I'd say take that as a start and apply the same kind of fixes to the rest of the code. [21:25:03] nimish_g: Also, start regularly checking the code in http://jshint.com/ [21:25:05] Krinkle: k, though I won't be working on that code much after this week. I noticed you changed some of the MWs to mw already, I'm going back through the code a little to keep it in sync with deployment [21:25:46] Recommended settings: [x] Require curly brackets, [x] Dont check new lines, [x] Browser [x] jQuery [21:27:25] nimish_g: also, cache selections whenever possible [21:27:37] selecting is expensive [21:28:04] caching is easy [21:30:06] TrevorParscal, Krinkle you may want to look at CustomUserSignup/modules/AccountCreationUserBucket.js I just kinda threw that together b/c we needed something ASAP for the account creation improvement project that had to go live today, but it could probably have been done in a prettier way [21:36:44] !r 87046 | nimish_g [21:36:44] --elephant-- nimish_g: http://www.mediawiki.org/wiki/Special:Code/MediaWiki/87046 [21:38:49] thx [21:39:21] yw [21:39:30] feel free to ask if you see something new or weird. [21:39:51] Haha, I should probably not enable the following Google Calendar feature: [21:40:00] Show a warning to other people when they invite me to an event outside my working hours: [21:40:07] Defaults to Mon-Fri 9am-5pm my local time :D [21:40:32] For me it's very rare to have stuff scheduled that's actually within those hours :) [21:42:10] RoanKattouw: that just means no more meetings for you then [21:42:17] haha [21:42:31] Hmm, no meetings for 8 months .... [21:43:22] Of course the whole timezone argument kinda falls apart when I move [21:55:47] given your class schedule, you need an alert if people try and schedule things during your normal working hours [21:56:57] hah probably [21:57:23] I only have 8 hours of class in my new schedule though (with the exception of this week) [22:09:20] brion: Where is Achim from, and where does he live? [22:09:41] Cause I know a dude named Achim who showed up in Berlin two years ago [22:10:05] he is berlin-based, and i think he mentioned he was at last year's [22:10:33] The guy I'm talking about lived in .nl but was German, offered me a ride in his car but got kicked out because the conference was full [22:10:50] i think he's with the twoonix.de guys [22:10:55] Probably not the same guy, Achim is a fairly common name among Germans with Middle-Eastern ancestry AFAIK [22:11:06] yeah [22:11:21] RoanKattouw: his full name was Joachim, he just goes by Achim [22:11:28] my friend Joachim goes by Jo [22:11:32] "yo" [22:11:35] hexmode: ping, got a few min? [22:11:44] and I had Jo and Kul at my house at the same time... [22:11:45] Oooh [22:11:49] yep [22:11:58] sumanah: was looking for you earlier :) [22:11:59] TrevorParscal: I am curious [22:12:07] heh [22:12:09] Right so it's not even necessarily an Arabic/whatever name then [22:12:26] Veronique's hubby is named Rad, that would have been the trifecta to have him there [22:12:29] sorry hexmode -- I am attempting to take care of my mom while also preparing for stand-up comedy on Friday while on a bad net connection [22:12:52] my friend is Norwegian [22:12:59] :) no problem [22:13:02] this guy brion is talking about is German [22:13:18] deutschlaaaaaaand [22:13:18] anyone named Fresh? [22:13:28] deutschland mcfresh [22:13:35] So what're we at for AFT deployment ? [22:13:37] *TrevorParscal spawns more children to answer yes in 9 months from now [22:14:01] Krinkle: let's just push things to prototype [22:14:06] k [22:14:06] TrevorParscal, if you name your next child Fresh i will.... give you some token payment of respect for your awesomeness [22:14:17] done [22:14:22] TrevorParscal: Surely an experienced child-spawner such as yourself can do better than 9 months [22:14:40] brion: You know, Amy's kid is named Rowan [22:14:45] RoanKattouw, you need to load balance over multiple mothers [22:14:52] wait... i don't think it works like that [22:14:54] *sumanah laughs aloud [22:14:56] *TrevorParscal adopts 2 children and names them Funky and Fresh respectively [22:14:57] Parallelized pregnancies! [22:15:00] The Mythical Woman-Month [22:15:09] I'm sure a man can get more than 1 woman pregnant... [22:15:18] dad... do you ever have that no so fresh feeling? [22:15:24] the Gantt chart on this is pretty unyielding [22:16:35] *sumanah writes Wikimania talk proposal [22:16:40] another unyielding deadline [22:16:58] let's just change the name a few times and it will fit well with our other projects [22:17:15] brion: I guess that leaves us with aggressively using caching in the pregnancy process. You know, in 200 years when we've reverse-engineered human DNA to C [22:17:36] And you can do apt-get source human [22:17:40] memcachedna [22:17:46] dude, in 200 years we will be programming in Welsh, we all know that [22:17:46] RoanKattouw: did you ever read the Cory Doctorow story I am thinking of? Ownz0red? [22:17:46] hahaah [22:17:54] sumanah: No? [22:18:18] u got forked! [22:18:24] http://craphound.com/fic/0wnz0red.html [22:18:33] actual code: to be honest, at the end of the day, print "hello world" [22:22:54] I could use some expertise with: http://ask.metafilter.com/184098/wiki-my-science#2655583 [22:27:00] siebrand, could you allow my email to wlm-es ? [22:27:05] <^demon> sumanah: What about it? [22:27:24] ^demon: what would you advise the original poster? [22:28:17] to use lots of templates? [22:28:36] <^demon> Well the OP seems to want a wiki that can run on floss, which we do. [22:28:52] <^demon> The followup about ACLs is true, we don't support fine-grained read permissions, which is a common complaint. [22:29:17] <^demon> If the OP doesn't need that kind of fine-grained control, it seems like MW will do what he wants. [22:29:41] <^demon> We *do* support per-namespace edit permissions, just not read. [22:30:15] ok! will tell him/her [22:31:07] per namespace read permissions can be done with lockdown extension [22:31:33] (there are also other extensions for acl permissions, but i don't trust them so much) [22:39:47] Platonides, why not? Lockdown has several problems, AFAIK [22:41:53] it's a personal preference [22:42:19] I find the restrict by namespaces cleaner and more suited to medawiki approaches [22:42:28] and thus easier to get done right [22:42:51] plus it was done by Duesentrieb, which is one of our developers [22:43:29] <^demon> The ones where you control page access by a parser function or similar in page text are probably wrong, I doubt they handle the parser cache properly. [22:44:18] aight, nn RoanKattouw TrevorParscal ; cu tomorrow [22:44:19] nn rest [22:44:35] Night [22:44:49] cya