[16:44:17] parutron: you about? [16:55:44] werdna: parul is not in the office yet. [16:56:00] ah, thanks :) [17:25:58] hi werdna [17:26:03] heard you were looking for me [17:26:05] hello [17:26:10] yes, but I can't remember why [17:26:12] how are you? [17:26:13] what's the news? [17:26:17] haha [17:26:21] well when you remember, i'm here. [17:27:09] I'm fine, been off to italy for a week, as you do [17:27:57] parutron: hey (this is not what I was after) did you have lingering suggestions for lqt? [17:28:40] i'm guessing yes (tee hee), but let me take a look at the current state. [17:29:54] go on then, beat me up :) [17:36:36] hey kids what's up [17:38:09] you're showing your age again, brion. [17:38:52] brion: We reserve the right to call anyone approaching twice our age 'old' ;) [17:39:02] *brion shakes his cane [17:40:31] i heard the whip [17:40:51] brion: Could you try to have http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/UsabilityInitiative/OptIn/ reviewed this week? [17:48:44] it'll be reviewed by the end of today [17:50:21] Oh that'd be nice [17:53:06] RoanKattouw [17:53:13] YeaH? [17:53:25] it looks like we have consensus here about what to do about the question in the feedback survey....... [17:53:52] we would like to keep it the way that it is and just remove the qualification to select only three. [17:53:55] how do you feel about that? [17:54:20] we think the ranking makes it more complicated than it needs to be for the user......and more complicated for us to digest the data later. [17:54:27] Right [17:54:51] we are hoping to have enough volume of responses that we should get some reasonable information back about overall preferences/desires for future work. [17:55:51] OK, so basically all we're doing is removing the (please select up to three) thingy? [18:21:35] parutron: do we want to say "select as many as you wish"? [18:54:59] parutron: I'm back nao :) [18:56:34] RoanKattouw: poking over optin code now [18:56:41] Great [18:58:28] heh [18:58:40] the smooth expansion of the explanation textareas is cute :D [18:59:12] do you want firefox 3.5 in that browser drop-down? [18:59:30] and why's there a blank option in the browser & os boxes? [19:00:41] brion: Good catch, that's obsolete now [19:00:44] I'll remove it [19:00:53] \o/ [19:01:02] "You have successfully left Beta. You can try it out again at anytime by clicking the "Try Beta" link on the top right of the screen. " [19:01:13] i don't see a "try beta" link on my screen now [19:01:30] Oh you probably haven't configured it to show [19:01:32] Some $wg var [19:02:07] i don't see anything in OptIn.php tha tlooks like a config var i can enable [19:02:43] $wgOptInAlwaysShowPersonalLink = false; [19:02:45] $wgOptInNeverShowPersonalLink = false; [19:03:12] woops i'm looking in the wrong branch :P [19:05:07] the wording seems very strange [19:05:12] "Would you like to try Beta?" [19:05:26] I know [19:05:30] Do you like green eggs and ham? [19:05:41] I've asked Parul if there were any weird wordings left but she didn't respond [19:05:46] also, the search updates aren't part of the opt-in changes, everybody's got those for the last couple weeks [19:05:46] *RoanKattouw pokes parutron ---^^ [19:06:09] OK, will nuke that section [19:06:36] should those images be clickable? they seem to be Commons images [19:06:49] hi roan! [19:06:50] They are; best way I could think of [19:06:52] what's up? [19:06:59] Maybe they shouldn't be clickable but I wouldn't know how [19:07:24] parutron: Did you get around to scanning the OptIn messages for weird wordings where "Beta" occurs instead of "the Beta"? [19:07:35] I asked about that the week before last IIRC [19:07:44] checking now! [19:08:20] just to make sure - the version i should be looking at is the one on prototype, right? [19:09:41] on "leave beta": What could we have done differently to keep you using our the Beta? [19:09:42] Yes [19:09:48] haha [19:09:51] Fixing [19:10:07] Should I make that our Beta or the Beta? [19:10:09] RoanKattouw: we're not currently recoding any data on opt-in? [19:10:18] brion: What do you mean recoding? [19:10:24] recording [19:10:24] i was just thinking "our beta" sounds more friendly than "the beta" [19:10:44] also we seem to be recording blank answers on opt-out: [19:10:45] | 1 | 20090728190923 | out | 4 | NULL | NULL | [19:10:55] which is probably unnecessary :) [19:11:02] Yes, you're right [19:11:10] parutron: OK, our Beta it is [19:11:15] WAIT [19:11:17] sorry [19:11:21] we're sticking with the beta [19:11:24] Ok [19:11:24] ;) [19:11:48] also in beta feedback, the first sentence (not a question) read: Thank you for trying Beta. [19:11:58] *that* one can be our beta. [19:11:58] brion: No, we're not recording data on OptIn. PrefStats does record data at that time, which reminds me that you need to review that as well :) [19:12:06] OK [19:12:31] RoanKattouw: when i'm logged out, and i do the 'log in and opt in', i see the monobook skin on the post-login page [19:12:38] parutron: Could ou go over the list of all messages @ http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/UsabilityInitiative/OptIn/OptIn.i18n.php?view=markup [19:12:41] then i click 'return to special:usabilityInitiativeOptIn'... [19:12:55] which shows me "Leave beta" [19:13:04] ^^ [19:13:06] and a link back to the article i was reading. kind of confusing [19:13:18] RoanKattouw: sure. [19:13:19] The Leave Beta heading is wrong [19:13:42] The rest of the behavior is as intended [19:13:56] The header should be Welcome to Beta; I'll investigate why it's showing the wrong one [19:14:23] Wikipedia's Beta [19:14:32] RoanKattouw: I saw the same text yesterday [19:14:43] but I thought Trevor fixed it. [19:14:58] Hmm I'll try to reproduce on prototyep [19:14:59] should 'opt in' and 'opt out' be separate special pages mebbe? [19:15:09] i fixed it [19:15:17] where are you seeing this? [19:15:36] brion: WFM, shows "Welcome to Beta" for me [19:15:41] lemme try it fresh [19:16:07] brion: I figured only one applied at any time, like a toggle [19:16:14] ok on the first time through it says "Welcome to beta" [19:16:28] if i reload the page [19:16:32] now it says "Leave beta" [19:16:37] Ah yes [19:16:47] kinda... odd :) [19:26:44] RoanKattouw: will prefstats record screen size and browser? [19:27:04] No [19:27:14] Committed i18n tweaks BTW [19:27:39] so we'll only know the browsers and screen sizes of people who opt out, not those actually using the stuff [19:27:49] ? [19:27:57] RoanKattouw: i think parul has minor text adjustment... [19:28:12] nkomura: Yes, she told me and I've just committed them [19:28:17] great [19:29:21] // Detect browser and version [19:29:21] // BEWARE: this depends on the order of browsers in $wgOptInSurvey [19:29:26] brion: Yeah, that's kind of awkward [19:29:27] that seems a little fragile to me imo [19:29:32] And that's fragile, yes [19:29:45] Prolly needs a class or ID or something [19:29:47] instead of hardcoded indexes i'd recommend recording the name/version as strings [19:30:10] brion: We do get there screen size if they click the "Give feedback" link [19:30:25] imo you really want it at opt-in time [19:30:44] otherwise you've got no baseline and your opt-out time specs are not very useful [19:31:48] Makes sense [19:32:07] I can probably hack that up [19:32:56] \o/ [19:33:46] brion: I also see "Leave Beta" again after opt-in, trevor saz he will look into later why it is back again. [19:33:57] supa [19:34:08] I'll also be looking at that [19:39:44] good afternoon / ?????????????????? [19:40:32] hi [19:41:02] "You are not allowed to execute the action you have requested. " at Special:PrefStats [19:41:16] RoanKattouw: is a permission key required to view pref stats? if so what is it? it should appear in PrefStats.php [19:41:25] Yeah it should, apologies [19:41:30] :) [19:42:16] 'ps_start <' . $dbr->timestamp( $maxTS ), [19:42:16] ^ you need to quote these (happens to work on our mysql current format, but would fail on pg or future migration to datetime columns on mysql) [19:42:52] "Currently, the following preferences are being tracked. Click on one to view statistics about it. " [19:42:56] $dbr->addQuotes( $dbr->timestamp( $maxTS ) ) [19:42:56] with nothing after it [19:43:07] if the list of tracked prefs is empty, might be good to say so :) [19:43:30] and the install instructions at top of PrefStats.php should mention what needs to be set as a minimum for functionality [19:44:09] from within function "SpecialPrefStats::getMaxDuration". MySQL returned error "1146: Table 'shortwiki.prefstats' doesn't exist (localhost)". [19:44:09] Retrieved from "http://shortstack.local/trunk/index.php/Special:PrefStats/skin" [19:44:16] looks like we don't have an updater hook to install the table? [19:44:59] We should [19:45:01] *confused* [19:45:05] I'll look at all of those [19:45:56] brion: There is an update.php hook [19:46:09] hm, didn't work then :) [19:46:13] ^^ [19:46:19] You did run update.php then? ;) [19:46:20] lemme check again [19:46:29] Creating prefstats table...ok [19:46:35] huh. worked on second try [19:47:05] i start out with a big empty graph with no labels or content [19:48:00] Yes, that interface is not very nice [19:48:14] parutron: btw, normal developers hang out in #mediawiki :) [19:48:31] so i need to populate the table? how? [19:48:32] It's not really intended to be nice-looking, since it's only supposed to be used by us :) [19:48:44] brion: It'll populate when people change their prefs [19:48:56] Provided the prefs they're changing are in $wgPrefStatsWhatever [19:49:10] so it'll fail to track the existing prefs that were set weeks ago? [19:49:19] Yes, that sucks [19:49:27] We should have a population script [19:50:14] getstats.sql seems to be very hardcoded... [19:50:42] Oh ignore that, outdated, sorry [19:50:58] Fallback for a toolserver query if PrefStats didn't get through [19:51:12] if it's outdated, remove it :) [19:51:17] that's why we got source control with history ;) [19:51:29] Will do [19:51:49] woo [20:15:23] *RoanKattouw WTFs @ +x bit [20:33:21] RoanKattouw: ok confirmed that adding a 'count' attribute on the turns the array into an object in json output :( [20:33:26] got an alternate suggestion? [20:33:38] could add another output chunk with search metainformation [20:33:48] ... [20:33:49] ? [20:34:10] I don't like it [20:34:19] But it's better than the alternative [20:34:26] it's compatible for both json and xml output [20:34:30] I'll ask a JSON guy I know whether the [] to {} change is a big deal [20:34:39] i'd sure consider it a big deal [20:34:42] I'm pretty sure it doesn't matter for XML [20:34:55] could be a real bad compatibility breaker for some languages suddenly changing an array to a hashmap [20:35:21] Yeah people tell me that but I never quite get it [20:35:28] (if we were building the api from scratch i would strongly discourage having multiple output formats... it just complicates things!) [20:35:36] heh [20:35:43] *RoanKattouw forwards the blame to Yuri [20:35:46] :D [20:36:07] The one I hate most is XML, all kinds of limitations we're working around [20:36:21] RoanKattouw: this would be an appropriate chunk to place other serach metadata as well such as "did you mean" suggestion [20:36:39] I suppose ought to be safe, it's very unlikely someone's gonna add an API module by that name [20:36:41] brion: why? If it's just an array structure, surely you can export in YAML, JSON, Apple PLIST, some other formats without any troubles [20:36:49] Because effectively that's the namespace you're messing in at that point [20:37:13] werdna: No, because JSON distinguishes between arrays and hashmaps/objects [20:37:18] werdna: toss in XML's double tree structure (attributes and child nodes) and you've fucked that model badly [20:37:35] yeah, XML is annoying, but you could just define it one way or the other... [20:37:41] And because XML has a shitload of limitations, most notably no proper support for bools and arrays with numerical indices [20:38:06] if you're manually specifying indices, it's not really an array, it's a hashmap in the rest of the world :) [20:38:36] Not in PHP [20:38:44] php confuses this by having an ordered dictionary type which serves both "array"/vector and "dictionary"/hashmap uses [20:39:14] but this is an oddity of php and doesn't interact well with other languages or data formats [20:39:32] s/array structure/hash structure/ :) [20:39:54] and of course implicitly translating between strings and numeric types can make for weird input/output issues too [20:40:05] Yep, that was also fun in JSON [20:40:12] Mixtures of 0 and "0" in the output [20:55:39] brion: Can you compare the YAML outputs as well? [20:55:53] sure [20:55:57] And WDDX [20:56:07] *werdna <3 YAML [20:56:24] wddx? srsly now we're just making shit up ;) [20:56:32] That's an MS format, no>? [20:56:43] Yeah I don't think anyone ever uses it but it's there [20:56:52] I think that might change from array to something else too, not sure [20:58:24] ugh, searchengine needs better doc on return values for suggestions and snippets [20:59:01] Tell me about it :) [21:00:31] RoanKattouw: http://pastebin.com/m4242237e <- how's this look like so far? [21:00:48] mysql has no didyoumean suggestion support so i've hacked in a temp value of 'joe momma' ;) [21:00:59] whaha [21:01:10] Looks like something that's ugly as shit but at least doesn't break stuff [21:01:21] *sniff* why ugly ;_; [21:01:27] me think it pretty [21:01:57] It assumes that there is no API module called 'searchinfo' [21:02:11] then let's reserve the name? [21:02:28] *RoanKattouw slams brion's head against the wall [21:02:42] and in the case where there's no direct results: http://pastebin.com/m3e259ce8 <- empty 'search' element is returned, but we get some search info [21:02:45] There's similar ugliness out there in meta=siteinfo [21:02:49] heh [21:03:09] We're also relying on names of query modules and names of siprop's not colliding due to an accident of history [21:03:28] They're not wrapped in a element; should be, but decided not to do it cause it'd be a breaking change [21:03:39] ah, compat. isn't it fun? :) [21:03:54] Welcome to the wonderful world of API maintenance [21:04:10] :D [21:04:34] RoanKattouw: so are you ok with this as probably the best we can do without breaking back-compat in the format? [21:04:47] Yes, this has my blessing [21:04:50] yay! [21:04:53] timestamp format's right? [21:05:52] ? [21:06:09] In results you have to explicitly convert to TS_ISO_8601 [21:06:17] yep, then we're good :D [21:08:40] committing... [21:14:16] RoanKattouw: can you double-check r53904 before i start merging it live or anything foolish? :) thanks! [21:14:25] Will do [21:14:59] Summary is slightly misleading, snippet's already there ;) [21:15:19] Oh yes it mentiones that, nm :) [21:17:56] :D [21:18:06] just thought i'd combine the release note items [21:18:37] Is $matches->getSuggestionQuery() guaranteed to return a string and nothing funky is case hasSuggestion() is true? [21:18:54] Same question for getByteSize() and getWordCount() [21:19:06] If one of those returns null, the XML formatter explodes [21:19:10] yes, that's the term we'd be putting into another search request [21:19:13] heh [21:19:21] let's double-check in MWSearch [21:19:28] i think it's clean for regular... [21:19:33] hmmm if the revision's missing not sure [21:20:03] function getByteSize(){ [21:20:04] $this->initText(); [21:20:04] return strlen( $this->mText ); [21:20:04] } [21:20:10] so yeah that'll always be a nice int [21:20:14] ditto on wordcount [21:20:18] 0 if we've got invalid gunk [21:20:47] timestamp... could return '' if we don't have a revision or image available (eg out of date result in index) [21:21:09] In which case wfTimestamp() will bork that into the epoch if I'm not mistaken [21:21:16] bah, search. [21:21:26] i think it'll bork it to present time, kinda lame [21:21:28] *werdna blocks ears and thinks about something else. [21:21:32] Oh yes of coures [21:21:32] we could check and just not add it if it's empty [21:21:38] (or are we already skipping stale results?) [21:21:39] Makes sense [21:21:46] if ($result->isBrokenTitle() || $result->isMissingRevision()) [21:21:49] ok we're safe looks like [21:21:56] Ah yes [21:22:12] I was just concerned with formatter safety, ah well [21:22:15] Looks good to me [21:22:39] size and wordcount if done via index are forced to ints in mwsearch [21:22:43] woot [21:23:02] Also, you seem to have made sure in another commit that all ints are really ints and not strings [21:23:12] JSON folks whine about that [21:23:12] \o/ [21:23:31] when i'm a consumer i pretty much use json exclusively so i care too ;) [21:26:35] thanks for your help RoanKattouw ! [21:26:49] Sure [21:34:52] heh [21:34:52] http://test.wikipedia.org/w/api.php?action=query&list=search&srwhat=text&srsearch=meaninng [21:34:56] [21:35:01] heh [21:35:05] not the suggestion i'd have gone for, but whatev ;) [21:35:09] Those DYM suggestions get real funky sometimes [21:35:35] Probably works better on enwiki, maybe testwiki is just too sparse [21:35:47] yeah :) [21:37:26] http://en.wikipedia.org/w/api.php?action=query&list=search&srwhat=text&srsearch=meaninng [21:37:29] [21:37:31] yay :D [21:37:47] bah [21:37:48] brion: I'm leaning towards storing NULL answers anyway, because in case of all-NULL answers we wanna record the fact anyway [21:38:05] [21:38:08] that's better [21:38:11] oh, you already said so [21:38:13] heh [21:38:23] RoanKattouw: null in what sort of case? [21:38:32] In case of the question not being answered [21:38:50] hrm, which questions? [21:38:53] *brion confuzzled [21:38:58] Opt out survey [21:39:00] Sorry [21:39:12] ah ok :D [21:39:27] People with JS disabled who click Opt out straight away without filling out the survey will cause only NULL answers IIRC [21:39:29] eh, if it's makes the numbers easier feel free yeah [21:39:33] heh [21:39:51] And if we drop those it'll leave no record of that, and I'm not sure it's desirable to destroy info like that [21:45:23] right [22:24:50] brion: Addressed most of your concerns in r53909 [22:26:07] woot [22:28:11] parutron: nobody knows who you are when I mention you in commit messages :) [22:28:50] *parutron wonders what a commit message is. [22:28:54] whahaha [22:29:12] aww [22:29:37] *parutron looks to brion, TrevorParscal, and RoanKattouw to teach her. [22:29:51] :) [22:29:58] RoanKattouw: care about firefox 3 vs 3.5 ? [22:30:09] it's something you tell you spouse when you get married... [22:30:09] That's a question for Trevor [22:30:17] That's a good one [22:30:21] A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was: [22:30:22] INSERT INTO `optin_survey` (ois_user,ois_timestamp,ois_type,ois_question,ois_answer,ois_answer_data) VALUES ('1','20090728223007','out','whyoptout','didntwork,look,other','fsdfdsadsf') [22:30:22] from within function "SpecialOptIn::saveSurvey". MySQL returned error "1062: Duplicate entry '1-20090728223007-0' for key 1 (localhost)". [22:30:25] In that case she'd better learn about them fast [22:30:27] and yes, i ran the updaters [22:30:31] tee hee. [22:30:37] brion: Sorry, updaters are broken, drop the table and run the updater [22:30:46] :P [22:30:49] update.php doesn't properly support changing the type of a field it seems [22:31:27] *brion wonders why it's called optin_survey if the survey is when you opt out ;) [22:31:32] heh [22:31:45] Extension name prefix [22:31:54] And optin_optout_survey just doesn't have it [22:33:24] parutron: A commit message is a message that goes along with a change in the source code [22:33:29] parutron: It's how you describe your change when you check it into our revision tracking system. [22:33:31] just teasin ya :) [22:33:47] werdna has been making a few changes saying "Parul made me", and people have been wondering who the heck Parul is :) [22:34:05] No one from the office of course, they know you, but the volunteer community doesn't seem to know you at all :( [22:34:05] haha. i see how it is. [22:34:24] well you should hang out with the volunteers in #mediawiki [22:34:53] i think i might have to orchestrate an irc-#mediawiki-parutron mixer! [22:35:10] I'd come [22:35:23] and you guys leave comments for everytime you mention to me you are making a commit? [22:35:33] i'm impressed. [22:35:36] that's dedication. [22:35:47] would be nice if we could see the new skin settings right on login... [22:35:55] parutron: here's an example: http://www.mediawiki.org/wiki/Special:Code/MediaWiki/53889 [22:35:57] making the user click through two "back to" links kinda sucks [22:36:03] It's really a diversion of blame, but if that's how you like to think about it go right ahead ;) [22:36:04] Comment:Remove icon for quoting, Parul says it is distracting. [22:36:13] Simetrical: hello [22:36:23] nkomura, hello. [22:36:24] brion: I know, but you try to come up with a technically sound way of doing that [22:36:29] i noticed you joined this room recently [22:36:33] Simetrical's one of the fancier volunteer devs :) [22:36:58] Simetrical: i heard you are a great coder [22:37:04] heh [22:37:09] welcome to the usability room [22:37:33] The underscore is a little odd. [22:37:47] what underscore? [22:37:51] In the channel name [22:37:52] In the channel name. [22:37:54] But not unprecedented [22:38:06] The secret channel has one as well [22:38:13] tee hee. RoanKattouw wasn't kidding: http://www.mediawiki.org/wiki/Special:Code/MediaWiki/53882 [22:38:18] RoanKattouw: :o [22:38:40] Yeah, werdna uses that phrase a lot lately, also with Trevor's name [22:39:09] hi Simetrical. [22:39:14] Hi. [22:39:17] who is Simetrical [22:39:24] we are not a secret channel tho [22:39:30] *parutron whispers to everyone but Simetrical [22:39:35] I've been a volunteer MediaWiki developer since about 2006. [22:39:36] parutron: he's one of our fancy volunteer devs [22:39:51] parul is good at whispering [22:40:07] I haven't really met Parul in person, only briefly saw her in the office. [22:40:12] nkomura: We aren't, but another channel is, and it also has an underscore in the name [22:40:20] wooo hoooo. the new mr. S is a volunteer and he knows me!!! [22:40:32] 1 down. 100,000+ to go! [22:40:37] werdna: i suggest the commit comment to read "for the better usability and design." [22:41:03] nkomura: I think mine is much better :) [22:41:03] for the better usability and design = parul said so. tee hee [22:41:28] perhaps more accurate :P [22:42:07] (Parul made me do it! is more accurate than for better usability and design) [22:43:44] true [22:45:01] TrevorParscal: What have you been up to today? I haven't heard or seen much if anything from/of you today :) [22:45:30] I'm working on NavigableTOC [22:45:48] exciting stuff happing on trevor's computer [22:45:49] I wrote parser that can update the outline in realtime [22:46:38] Ah [22:46:43] *parutron sees where werdna got his "next page" "previous page" icons from. [22:46:48] Yeah I saw a commit adding two skeletons [22:47:16] what's going on with this scrollToPosition thing? [22:47:25] it looks like it would be useful, but it's not working... :( [22:47:37] You mean it's a couple lines off? That's a known bug [22:47:45] One I've managed to solve in IE, but not in Firefox [22:48:01] Proves miracles still exist [22:48:31] it's not working at all for me.. [22:48:36] looking at what's going on :) [22:48:43] Hmm [22:48:49] IE or Firefox? [22:50:08] parutron: TablePager :) [22:51:22] werdna: http://www.starburst.com.au/Index.html [22:51:25] babies!??!?! [22:51:25] TrevorParscal: Hmm it doesn't work on sandbox for me either [22:51:26] hahaha [22:51:31] OM NOM NOM [22:51:33] $('.tocsection-1').data('offset') not being set somehow [22:52:12] *TrevorParscal is working on something simpler [22:52:25] But it does work on localhost, weird [22:52:28] Let's scap sandbox [22:54:52] WTH [22:55:13] This is a very, very crazy bug between NTOC and MDale's code [22:55:25] For some reason, $.sectionOffsets isn't set while jQuery.sectionOffsets is [22:55:34] And the script setting it sets $.sectionOffsets [22:56:11] ok [22:56:14] it's working now [23:11:27] Good [23:11:35] I guess I'll see your work tomorrow [23:11:46] Have a nice day everyone, I'm off to bed