[11:31:38] RoanKattouw: you flying AMS ? [11:31:52] Yeah [11:31:56] AMS is the most expensive airport you can have... [11:31:56] To Wikimania you mean? [11:32:19] was reading backlog :D [11:32:30] Yeah but in the summer travel costs to BRU or LGW aren't worth it [11:32:48] where are you coming from then ? [11:32:59] Harlingen [11:33:06] ah. [11:33:28] brasil is a bit more difficult of course. you almost need one of the bigger airports. [11:33:57] my friends are all hopping around europe from weese airport atm. DE [11:33:57] So AMS is an hour and a half, Brussels is like 4 hours, and Bremen is about 2 [11:34:18] Aye, for intercontinental flights cheap-ass airports like Weese don't work [11:34:21] but i don't think those small ryanair jets fly to brasil :D [11:34:26] Nope [11:34:46] Argentina, BTW [11:34:51] my roommate flew to italy this summer for 25 euros. return trip. [11:34:55] lol [11:35:02] Holy crap [11:35:10] And I thought the night train to Italy was cheap [11:35:30] that's the price i pay to take the train to AMS for heavons sake. [11:45:22] heh [11:45:48] I'm flying Heathrow to Sao Paulo, then to EZE from there [11:45:49] Night trains from Amsterdam CS to Milano are like 29 euros for a single if booked in advance [11:45:59] werdna: Cost? [11:46:14] 617 GBP [11:46:17] :O [11:46:18] so about 650-700 EUR [11:46:27] *RoanKattouw has a 1055 EUR flight AMS-MAD-EZE [11:46:27] why, how much are you paying? [11:46:41] thedj is right, AMS is expensive [11:47:17] I could've gotten a 600 EUR flight from Frankfurt but I'd have to get there and I had like a 7-hr layover in Atlanta [11:47:39] And I'd have to sleep in Frankfurt because that flight left at like 8:45 AM [11:49:53] I should have gone via the US [11:50:09] Why? That only takes longer AFAICT [11:50:10] James, Kat, Phoebe and Austin are meeting up at Dulles and flying down from there [11:50:13] werdna: 617GBP == 717 EURO to be exact. [11:50:14] Ah yes [11:50:15] would have been an extra 70 GBP [11:50:24] I could've flown through Dulles too from FRA [11:50:34] But the entire trip would've been like 30 hrs [11:50:59] And I'll gladly pay a few hundred euros to cut my journey time in half [12:02:41] I should have done it because I have a mountain of United FF points [12:04:13] Will they still be valid in November? [12:10:30] yes, but what's November got to do with anything? [12:11:17] All-staff? Or don't you go to those? [12:11:50] I don't go to those as far as I know [12:17:12] TAM website is fail [12:18:20] TAM? [12:23:37] airline [12:28:06] Ah ye [12:28:08] s [12:32:25] what do you guys think of this ? [12:32:27] http://imagebin.org/59409 [12:32:28] http://imagebin.org/59410 [12:33:08] Looking smooth [12:33:46] You'll wanna repeat that link around 18:30 or so, the rest of the team should be in by then [12:34:18] will do. [12:34:35] for now, it's for my own fun, but i think others would like this as well. [12:46:22] pretty [12:47:27] icons are good [13:46:16] importScript('User:TheDJ/sharebox.js'); [13:46:21] in case you want to try. [13:46:31] only tested on vector btw. [13:46:51] heh that's something new [13:47:13] :D [14:02:06] nice [14:03:54] most of it is AddThis code btw. not like it was really difficult :D [14:08:37] Something like w:enLUser:Tra/sidebartranslate.js would be nice [14:08:39] argh [14:08:43] w:en:User:Tra/sidebartranslate.js [14:08:52] But doesn't work in vector [14:09:35] That should theoretically be doable in core [14:09:38] (translating the sidebar) [14:10:29] MC8: i'll fix it. [14:11:05] thedj: I haven't tried it with the compatability gadget though [14:11:15] works just fine [14:11:27] *thedj hints at "vector.js vs. monobook.js" [14:11:57] http://en.wikipedia.org/wiki/Wikipedia:VECTOR#My_Gadgets_and_Javascript_tools_are_broken [14:12:40] thedj: turns out that I forgot a bracket in my vector.js [14:13:30] thedj: http://en.wikipedia.org/wiki/Wikipedia:VECTOR#Did_I_ask_for_this.3F should probably mention that even when Vector becomes the default, people can disable it [14:13:44] And stick with Monobook [14:13:50] i'll add that. [14:14:09] Ah, http://simple.wikipedia.org/wiki/MediaWiki:Gadget-EnhancedInterwikis.js was the one I was looking for [14:14:26] User:Alex_Smotrov/iwiki.js [14:16:22] zomg [14:16:34] what a script that is. [14:17:11] That one is better: you click the "Languages" header and it cycles between "Deutsch", "German" and "de:Enzyklop??die" [14:17:57] needs maintenance after each new wiki though [14:18:24] works on en.wp [14:18:29] yep [14:39:00] *RoanKattouw shows off enhanced link dialog [14:39:02] http://prototype.wikimedia.org/en-wp/index.php?title=Manchester_Small-Scale_Experimental_Machine&action=edit [14:39:08] And good morning Naoko :) [14:39:10] :-) [14:39:15] good morning [14:39:16] morning [14:39:22] morning mc8 [14:39:27] morning naoko [14:39:36] hi werdna [14:40:14] ooh, signature button only appears on talk pages. I like. [14:40:23] *MC8 is slow on the uptake [14:40:24] so i am confused about the comment regarding Portuguese strings not localized [14:40:40] first of all i see most of strings localized from UI except the tabs [14:41:01] nkomura: Localizations on Wikipedia are behind [14:41:04] secondary, why the tab text didn't get localization if the localization was available [14:41:16] Just like the code is in general [14:41:18] but we updated on the release last week [14:41:45] And this week they started a translation rally [14:42:00] People who translate more than 500 new messages in a week split 1000 euros [14:42:10] And the translations/day rate exploded [14:42:12] *RoanKattouw finds graph [14:42:13] but the message says s/he hasn't see it for a month [14:42:28] ok [14:42:53] but the tab text for pt is untranslated [14:43:05] but opt-in page is fully translated [14:43:10] so there seems something wrong there [14:45:08] Ah yes [14:45:20] Our extensions (toolbar and such) did get their translations updated regularly [14:45:21] But core didn't [14:45:28] Core translations are as old as the last full scap [14:45:32] *RoanKattouw finds out when that was [14:47:14] Whoa 18 people qualified for the translation rally already, that's a lot of translations [14:47:16] http://translatewiki.net/wiki/Project:Rally-2009-08 [14:56:24] nkomura: Actually right now I'm not working on usability stuff but on a technical solution for the messages-out-of-date problem (LocalisationUpdate) [14:56:58] it affects us in great deal too [14:57:06] Aye [14:57:11] so i appreciate your doing that [14:57:24] i though that the translation was behind [14:57:27] However, I'm not technically allowed to invoice you for my work on LU (right?) [14:57:32] translators think we don't update [14:57:39] this is not a happy situation [14:57:51] you can [14:58:10] LU? [14:58:23] ah the extension [14:58:24] LocalisationUpdate [14:58:57] i want to consider using it from babaco release [14:59:13] i want to try it on our prototype first [14:59:38] the problem is that the languages we understand such as de and ja [14:59:43] are pretty up-to-date [14:59:53] arabic is really hard to get around... [15:00:16] but RoanKattouw, could you find out why the tabs in Vector are not localized for pt? [15:00:28] I know why [15:00:29] that's really strange [15:00:41] Because the pt tabs were localized after the last scap, and that was a long time ago [15:00:49] I said I'd find out when it was, better do it [15:02:11] July 13 [15:03:17] pt? [15:03:29] All core localisations [15:03:40] hm [15:03:49] i thought the vector is extension [15:04:01] why does the localization live on core? [15:08:18] Vector is core. [15:15:42] ah, i misunderstood it [15:16:00] so only the toolbar is extension, werdna? [15:16:10] yes, correct [15:17:48] werdna: why don't we update the core translation more frequently? [15:18:02] Because they're dependent on the code in core. [15:18:37] but can a portion of translation be updated? [15:18:41] such as vector skin? [15:18:47] No, it's all one file [15:19:00] for instance, what if we remove a message in a future version, and then update the messages without removing the code that uses it? [15:19:01] painful... [15:19:05] That's why we need LU's smart update, which only updates translations for which the English version hasn't changed [15:19:56] definitely [15:20:40] i am concerned LU without testing it though [15:20:59] i'm ok installing it on our prototype [15:21:19] GerardM- has been testing and using LU for ages [15:22:59] yeah [15:23:21] but we need to test it with replicated data and translators [15:23:50] anyways, i'm going off line for a few hours [15:23:58] need to work on documentation [15:24:01] ttyl [15:27:52] RoanKattouw: As Tim said, it'd be much better to work on something that just updated the files [15:28:49] Why do that if this is working and has decent performance? [16:01:44] Do you guys have a mailing list? [16:06:57] RoanKattouw: because it has to be reviewed, it's an extra complicating factor, it probably *doesn't* have decent performance. [16:07:49] It doesn't have decent update performance yet, but that's a once-per-24-hr thing [16:08:04] It doesn't cause extra queries per page load like Tim said (not any more anyway) [16:12:56] how long does an update take? [16:14:00] 9 mins for me [16:14:27] Depends on volume of changes of course, this is for siebrand's last update [16:14:33] Oh wait those were only core msgs, no extensions [16:14:54] I hope that's a maintenance script [16:15:00] Yes of course ^^ [16:15:18] There's a lot of clueless code in LU but this guy is not a complete idiot eihter [16:15:25] RoanKattouw> OMG [16:15:27] LocalisationUpdateHooks::checkHash() returns true if the hash is *not* found [16:15:29] yes, I saw. [16:15:29] What kind of shit is this? [16:15:59] So what use is there in having an extension if the maintenance script does it all anyway? [16:17:28] The maintenance script is part of the extension [16:17:38] Then what does the rest of the extension do? [16:17:39] It stores the updated messages in a table and purges the l10n cache [16:18:00] Why not store the updated messages in the l10n cache and cut out the middle man? [16:18:43] I don't know [16:18:54] Tim fixed stuff up to work with l10n cache and this is how he did it [16:19:37] Easier: Why not store the updated messages in messages files... [16:19:40] I also wouldn't be surprised if you can't write directly to the l10n cache, dunno exactly how the API works [16:20:47] Doesn't matter where you store them, they get cached anyway [16:22:22] And editing files doesn't fly on shared hosting [16:24:27] the problem is with wikimedia, not with shared hosting [16:24:41] That's not true [16:24:52] You want to be able to run a stable version like 1.15 and still update i18n [17:05:50] TrevorParscal: i wrote a new user gadget. http://upload.wikimedia.org/wikipedia/commons/2/2c/Sharebox_open.png [17:06:15] nice [17:11:58] TrevorParscal: Moving between the CGD's textboxes with Tab doesn't work, can you look into that some time? [17:12:10] brion_: do you have a little time to meet today? [17:12:27] yeah [17:12:32] well, fine then brion without the underscore, same question =) [17:12:45] \o/ [17:12:57] yeah i think we have an update scheduled? lemme chekc cal :D [17:13:43] nimish_g: What about that meeting that was supposed to be yesterday according to the Google Calendar invite I got? That still gonna happen? [17:14:05] TrevorParscal: Why is the image CGD assigned to Michael/ [17:14:19] hrm looks like my weekly w/ erik has been pushed down to 2:30 from the usual 4 [17:14:30] and i think we have some wikimania logistics meeting 12:30-1:30 [17:14:38] RoanKattouw: no clue [17:14:48] *RoanKattouw wonders where Naoko is [17:15:04] She was here around 8 [17:15:28] RoanKattouw: naoko's working on her slides, and we had a pretty general meeting yesterday, sorry we forgot to call you for it [17:15:36] Ah OK. No worries [17:15:39] Ah yes the slides [17:15:48] Gotta write a bio for her *headdesk* [17:16:02] brion: Do you guys know when you'll land at EZE yet? [17:17:40] nimish_g: BTW are you coming to Wikimania? [17:17:58] I only found out it existed last week when I started here =) [17:18:12] so it might be too late =( [17:18:14] brion: ooh, wikimania logistics. sounds fun [17:18:14] heh [17:18:45] Well you're a WMF employee, so I think you get special treatment [17:18:49] \o/ [17:18:56] RoanKattouw: different folks at different times :) [17:19:02] Ah yes [17:19:17] i get in.... 9:30am monday august 24 [17:19:36] Oh right you're flying in the opposite direction from me time-wise [17:19:44] heh [17:19:50] I arrive like 8 pm [17:20:12] I arrive 11:30am Monday August 24 :) [17:20:23] What's the recommended way to get to wherever we're supposed to go?> [17:20:36] 17:18 < RoanKattouw> Well you're a WMF employee, so I think you get special treatment [17:20:40] I doubt it [17:20:55] *werdna isn't "real" staff :P [17:21:17] werdna: I meant Nimish [17:21:27] werdna: Bus or cab [17:21:29] oic [17:21:41] But cabs are like 20-30 EUR so I was looking to share [17:21:55] Sharing works for me, but I'm arriving at the wrong end of the day [17:22:19] You must be flying out at night then? [17:22:32] I hate it that way [17:23:13] I fly out 22:30, arrive in Sao Paulo 8:30, arrive in Buenos Aires 11:30 [17:23:18] I think [17:24:27] brion and werdna: so I wrote a function to get the number of user edits since a given date...it'll be really useful for our extension, but might make sense to put it in the User object...any guidelines in general as to whether or not I should put this (or things like this) in the main branch or keep it in the extensions? [17:24:50] note that performance will suck [17:25:04] There are users with tens of thousands of edits, and bots with millions of edits. [17:25:10] werdna: Not necessarily, (rev_user_text, rev_timestamp) index [17:25:24] so, we need to do what it takes for that to not suck [17:25:30] right, it would be "all edits since $timestamp" [17:25:33] Not sure how much COUNT(*) performance improves when indexed [17:25:48] where timestamp would be like 3 months ago or so [17:25:48] TrevorParscal: There isn't anything to do, really, if you want arbitrary input. [17:25:53] nimish_g: Yeah but there's no one forbidding you from setting $timestamp somewhere in the '90s [17:26:14] You could maintain counts per month and then add them, it'd be slow but work better. [17:27:58] werdna: Are indexed COUNT(*) queries really that slow then? [17:28:47] werdna: so I'm looking at SpecialContributions and it looks like some funky sql's going on, but doesn't it run into the same kind of performance issues? [17:29:00] that's cause it's paged. [17:30:33] Hmm, not too bad [17:30:34] mysql> select count(*) from revision where rev_user_text='Roux' and rev_timestamp>'200903'\G [17:30:37] *************************** 1. row *************************** [17:30:39] count(*): 3972 [17:30:42] 1 row in set (0.00 sec) [17:30:50] um, the data was in the cache before then :) [17:30:50] 1 row in set (0.16 sec) [17:30:58] this was before I did exactly the same query [17:31:24] *werdna was wrong :) [17:32:35] hm, yeah, if we're loading that info once per page load per user...that might not work out [18:04:47] hi parutron [18:51:35] *werdna wonders if parutron is around [18:52:40] werdna: Maybe try Google Talk [18:52:49] hi [18:52:51] i'm here [18:52:53] Oh :P [18:53:11] what's up werdna [18:53:37] *werdna doesn't have parutron on google talk [18:54:05] parutron: wondering if you have some time to be pestered about LiquidThreads [18:54:19] parutron's gTalk ID: parutron [18:54:29] unfortunately i don't right now [18:54:46] okie [18:54:55] let me see if i can get these few things done [18:54:55] but i imagine you'll be sleeping by the time i do! [18:55:02] maybe Monday? [18:55:11] just poke me when you have time [18:55:13] I'll be up late [18:55:18] like, until 2am my time [18:55:32] or about... 6pm your time I guess? [18:55:40] 5pm my time is 9am your time [18:55:51] so 14 hours + 9am [18:56:03] Just add 4 and switch am/pm [18:56:05] um, no. 9 hours + 9am [18:56:13] 2+4=6 [18:56:18] so yes, 6pm [18:56:35] gotta pick up Lauren, she finishes work on the other side of London at 2am ish [18:57:06] parutron: Actually even I have work for you :) I've added a widget next to the textbox for internal link target in the link dialog that indicates whether the page title they typed exists (green) or not (orange) or is invalid (red), right now they're just ugly squares, so you and TrevorParscal should get cracking on a design for those :) [18:57:40] parutron: did I add you to gtalk correctly? [18:58:22] are you using jQuery UI? [18:58:31] they have a great little checkbox [18:58:42] we could use a green check and a red X [18:59:33] RoanKattouw_away: To be fair, we want to encourage red linking [18:59:37] it's part of the way a wiki grows [19:30:50] werdna: do we have a good generic database-sanitizing function (since we evidently support more than just mysql)? [19:32:36] oh, nvm =) [20:56:32] RoanKattouw: do you know off hand what is causing the cursor to be placed at the bottom of the textarea rather than the top when the edit page is loaded? [20:56:46] line 114 of jquery.wikiEditor.js sets it to the top [20:56:51] something else is overriding it.. [20:57:11] Hmm [20:57:28] I'm tracing the execution... [20:57:30] hld [20:58:38] the scrollEditBox function..... [20:58:39] hmmm [20:58:54] don't think that does anything... [20:58:56] Sure it does what it's supposed to do? [20:59:01] Lemme look at it [20:59:55] Which file is that in? [21:00:09] common/edit.js [21:00:14] ^^ [21:01:14] TrevorParscal: That does post-preview restore [21:01:26] Doesn't change the fact that Firefox starts it out with the cursor at the end [21:01:38] yeah [21:01:40] So you need to add some code to that function that does e.selectionStart = e.selectionEnd = 0; [21:01:45] (where e is the textarea) [21:02:07] that's what I do on line 114 of jquery.wikiEditor.js [21:02:38] and it works for a sec, cause you can see the cursor move to wherever it's set in that line [21:02:49] and then when the page finishes, the cursor moves again, to the end [21:02:52] grrr [21:03:21] ... [21:04:45] You've got a double semicolon on 121 [21:05:31] i will fix that [21:06:17] Try to move that call down to below the looped addModule() just in case? [21:09:11] seems to be a firefox bug [21:09:26] you see the new API? [21:09:33] it's freakin sweet! [21:09:50] Not yet [21:10:09] I'm coding something up so that when you select [[foo|bar]] and click Link, it'll prefill the dialog correctly [21:10:51] TrevorParscal: I swear I got it working before. Try to move the cursor as late as possible ^^ [21:46:21] TrevorParscal: Nice work on the API, could you drop a note with example usage (or link to same) at https://bugzilla.wikimedia.org/show_bug.cgi?id=20134 ? [21:47:36] done [21:50:26] TrevorParscal: I have an initially-hidden image somewhere, and the browser only downloads it when it's shown, which causes the alt text to be briefly visible. How do I fix this, i.e. tell the browser to download the image earlier? [21:50:39] yes [21:50:40] um... [21:50:41] (Note that the image is in dynamic content, not present yet at document ready) [21:51:24] well, browsers may respond differently [21:51:38] (This is Firefox 3.5 as you probably guessed) [21:52:20] yes, and I think the old $("").attr( 'src', 'myimage.png' ); won't preload in FF3.5 [21:53:07] so, you may need to use the javascript Image object [21:53:30] https://developer.mozilla.org/En/Canvas_tutorial/Using_images [21:54:02] I'm using $('#someDiv').html(''); [21:54:06] fun syntax [21:54:09] Because I'm adding like four images [21:54:11] I haven't played with jQuery before [21:54:35] doing the way I showed might work [21:54:47] cause it actually builds dom elements as you go [21:54:57] the other way might cache the HTML string and parse at last minute or something [21:55:07] Right [21:55:12] I should try that [21:55:21] Had hoped that using literal HTML would improve performance [21:55:45] Probably does; it's what I'm gonna try for improving the general edittoolbar building performance, which sucks because we have 700+ specialchars widgets [21:55:58] yeah [21:55:58] Hey Naoko is back :) [21:56:06] nkomura: So sorry I haven't sent you a bio yet :( [21:56:14] well, just be mindful of the API's interaction with it all [21:56:31] Aye [21:56:40] RoanKattouw: can you send it tomorrow? [21:56:43] I'll just be changing pretty low-level stuff, like the actual building of the widgets [21:56:52] nkomura: OK [21:57:01] You'll have it by morning [21:57:26] *RoanKattouw should work on his own WM talk too [21:57:40] ooh - you are talking too? [21:57:42] what about? [21:57:43] thanks! [21:57:48] *TrevorParscal is excited! [21:58:20] i saw roan's spot on the program! [21:58:44] TrevorParscal: Bot API, what else xD [21:58:51] sweetness [21:59:46] Started out as a dull-ish slide show but it's become more of a demonstartion thing now [22:00:47] nimish: http://img11.imageshack.us/img11/498/screenshotgez.png [22:01:08] it is russian right? [22:03:06] Can't tell the language, but it certainly is the same alphabet (Cyrillic) [22:03:11] Oh yes ru.wikipedia.org [22:03:18] that's ru [22:04:14] thanks [22:04:18] filing a bug... [22:05:53] Damn the link generation CGD is >200 lines already [22:12:52] *werdna prods parutron, you still busy? [22:55:13] :( [22:55:14] i am [22:55:20] swimming in the business. [22:55:31] sorry werdna. [22:55:43] it's cool [22:55:59] will want to set some time to do some serious talking about the lqt interface [22:56:14] I think everyone knows it still needs heaps of work :) [22:57:35] parutron: shall we discuss on Monday?