[00:00:04] Pretty much everything inherits from Object. Including Element, jQuery, Array, .. everything. [00:00:39] Hi alolita1 [00:00:49] It's 1.30 [00:00:55] Am though :P [00:01:39] 2am by now [00:01:41] (you proposed meeting at 1.30 pm) [00:01:45] sf time [00:02:59] *RoanKattouw reads gadgetArrToObj() and is impressed [00:03:06] You should become a C developer, the way you write loops :) [00:03:20] OK C devs are worse [00:03:26] lol [00:03:31] Well, thank you. [00:03:36] Hmm [00:03:40] That function leaves the integer keys [00:03:44] But I guess that's fine [00:03:48] ...or not [00:03:51] What will for .. in do? [00:03:58] Oh, nm [00:04:02] It's copying not manipulating [00:04:04] Ignoer me [00:04:17] first part is executed once, then the other is checked and then the third part and inside is ran if true [00:04:39] I learned to think it's like this: [00:04:39] Yeah, I know how for loops work, I was a C dev once ) [00:04:43] var obj = {}, i = 0, len = arr.length; [00:04:49] while( i < len ) { i++; [00:04:52] Then a while [00:05:22] I've seen much more complex loops in C [00:05:22] I skipped the C part and went straight for C## ASP.NET Mono hell [00:05:32] While loops with empty bodies are fun [00:05:33] haha [00:05:38] The main Countervandalism network bot is .cs [00:05:46] .csproj even, Visual Studio [00:05:58] I've messed with C#, yes [00:06:12] A school project for ... a well-known Scandinavian furniture company [00:06:32] gosh, everybody on the team hates the bots source code :P the person that liked it has left the network. [00:07:10] Rewrite! [00:07:17] anyway, the bot will be redundant once we have in-browser recentchanges-push goodies (WebSockets/Jabber RC packets from MediaWiki core) [00:07:27] since we'll leave IRC and go with a gadget instead then. [00:08:09] but also needs cross-browser ajax to work before it's useful for the Countervandalism network (ie. monitor all dutch wikis) [00:08:29] RoanKattouw: Any thoughts regarding that api-origin-whitelist bug ? [00:08:41] The CORS bug? [00:08:59] It needs rethinking and I haven't thought about it deeply enough yet [00:09:01] Is it something that just has to be done, or is it still something that has to be figured out and could potentially not work in the short to medium term ? [00:09:15] The current implementation completely falls flat when you introduce Squid caching [00:09:26] Has to be figured out [00:09:31] Once figured out it could work fast [00:09:40] RoanKattouw: btw gadgetArrToObj could be optimized more [00:09:58] Right, arr.length [00:10:03] No [00:10:05] no, [00:10:06] That's already optimized [00:10:15] for( ???. , o; ??? ; o = arr[i++] ) ???. obj[o.id] [00:10:22] I think [00:10:26] Ah, right [00:10:34] Yeah that works [00:10:38] since it's accessed twice [00:11:19] anyway, there's where client side margins come into play. That's more server side performance, barely even marginal in the browser. [00:11:22] for a single loop [00:11:40] just 1 person in front of 1 screen [00:12:02] Krinkle: Anyway, this looks pretty much done now [00:12:13] Only thing is modifyGadget and deleteGadget need to be passed a repoName [00:12:21] Or just pass 'local' or something [00:12:33] Other, more worrying bit: repos don't *have* names currently [00:13:05] Although I guess we could use the source name (from $wgResourceLoaderSourceS) [00:13:14] That would solve two problems at once [00:13:26] Cause the source->loadScript mapping is something we already haev [00:13:30] Or... crap not loadScript but api.php [00:13:32] grah [00:13:44] omg, i failed at that too [00:13:48] lol [00:13:56] how is loadScript relevant :P [00:14:09] lol [00:14:24] This is why coding at 2am in an Etherpad is not 100% a good idea [00:14:35] (The EP part was fun though) [00:14:59] RoanKattouw: Why .name in repos ? [00:15:11] Well you wanted repo names as kes [00:15:13] *keys [00:15:18] I was happy to use API URLs as keys there [00:15:26] Oh wait d'oh [00:15:29] .name is redundant [00:15:33] with the key [00:15:35] yeah [00:15:42] I put that in when it was an array [00:15:43] Removing [00:16:12] Is api path available in backend right now ? [00:16:26] I guess it will be for ApiRepo, but not right now, correct ? [00:16:26] Fixed [00:16:28] No [00:16:33] It will be, yes [00:16:33] k [00:16:40] so make that mandatory for both [00:16:42] Would have to be a mandatory param for ForeignDBRepo too then [00:16:52] And an implicit one for LocalGadgetRepo probably [00:17:00] yeah [00:17:11] It wouldn't take it as a param, just compute it itself [00:17:26] That way LocalGadgetRepo keeps taking zero params and I can keep it a singleton [00:17:31] yep [00:17:42] An actual legit use of a global [00:17:55] No, not a global [00:18:01] LocalGadgetRepo::singleton() [00:18:09] in that it's a configuration variable, not something we want globally available [00:18:10] It's a hidden global, granted [00:18:14] (path to api url I mean) [00:18:17] Oh [00:18:23] No that's not even a global [00:18:24] wfScript() [00:18:26] indeed [00:18:27] Aye [00:18:35] concatenation of globals, :P [00:18:38] For the foreign ones it's part of $wgGadgetRepositories [00:18:40] Uhuh [00:19:03] Dude I've been messing with the prot rel stuff, I know about concatenating globals :D [00:19:12] wfScript is pretty bad when you describe it as " A function concatenating three globals and raw user input" [00:19:24] Aaaanyway [00:19:29] Repos need names now [00:19:40] reuse sourceids [00:19:44] Oh, right [00:19:48] if not alreayd [00:19:49] I'd already said that hadn't I [00:19:59] not today [00:20:15] :P [00:20:19] RoanKattouw Although I guess we could use the source name (from $wgResourceLoaderSourceS) [00:20:20] RoanKattouw That would solve two problems at once [00:20:26] I meant something different initially [00:20:33] Well, no, I did mean the same thing [00:20:42] I just extended it to getting the URL, and that's where it broke down [00:20:45] and it was today technically [00:20:46] Because load.php != api.php [00:20:49] Aye [00:20:58] Maybe not today UTC but definitely today CEST [00:21:12] Yep [00:25:06] Krinkle: OK, I declare this Etherpad done [00:25:19] I say we get some sleep, and I'll commit it (sans all the discussion comments) tomorrow [00:25:21] yeah, at least for this session. [00:25:34] Alright, seeya later. [14:19:56] <^demon> hexmode: Could you re-run that again? [14:20:22] I just did 2s ago, but ok [14:21:12] <^demon> I marked one as resolved like a second after you did :) [14:21:27] :) [14:26:40] <^demon> Again! [14:27:08] *hexmode sees a 4yo saying "Do it Again!" [14:27:41] *^demon jumps up and down [14:27:44] <^demon> Again again again! [14:27:44] <^demon> :D [14:28:00] literal lol [14:28:02] llol [14:28:32] <^demon> Isn't that a much prettier looking revision report? :) [14:28:44] def [14:32:42] ^demon: RoanKattouw: late in the game, I know, but should this regression block? http://bugzilla.wikipedia.org/30909 [14:33:30] <^demon> May be a regression, definitely not a blocker. [14:35:55] Hell no, not a blocker [14:36:04] More like undocumented behavior stops working [14:36:12] heh [14:36:21] tarball, maybe? [14:36:26] <^demon> Nope. [14:36:30] <^demon> I wouldn't say it blocks anything. [14:36:42] k ... thanks for the input [17:17:28] alolita1: Ping, MoodBar scrum? [17:17:33] *Roan-meeting is in x2003 [17:18:24] jorm: ---^^ [17:19:26] siebrand: so blucal & srikanthlogic were the new devs? [17:45:01] sumanah: yep [17:45:24] Nikerabbit: sorry, I lost context. Yes, they were the new developers? [17:45:28] yes [17:45:56] great! [17:46:00] Nikerabbit: and you got their contact info? [17:46:02] :) [17:46:36] sumanah: I believe siebrand assigned one bug to blucal [17:47:01] I saw in the bug triage notes, yeah [17:47:26] Nikerabbit / sumanah : afaik he does not have a bugzilla account, so not assigned. [17:47:42] (in a WMNL board meeting so not that much focus for this thread) [17:47:59] ok siebrand, will touch base later [17:49:01] sumanah: the other newbie has a bugzilla account (and an assigned issue - see notes) [17:49:13] sumanah: you can of course contact that person. [17:49:13] k [17:49:16] :) [18:18:33] hexmode: per http://etherpad.wikimedia.org/118deployment-scrum it sounds like you're emailing people today to scrounge up code review & FIXME energy? I can help if you need [18:19:05] thanks, but that was yesterday [18:19:08] :) [18:19:24] I will be sending out a email to wikitech-l shortly [18:19:42] "BEHIND TEH EIGHT BALL" [18:20:29] sumanah: but if you look on the revision report and can help there ... [18:20:53] hexmode: any use in tagging untagged revisions to make it easier to choose stuff to review? [18:21:24] maybe... lemme look [18:41:10] http://www.quora.com/Design/What-is-the-worst-piece-of-design-ever-done?q=worst+design [18:41:23] *sumanah looks despite herself [18:41:53] topical to a conversation in the office. [18:51:11] hi [18:54:14] jorm: I hope you liked twitter bootstrap :-) [18:54:31] it would be great to have your design guide implemented as a shared stylesheet [18:54:37] i loved it. [18:54:51] we're going to open up a big discussion about the style guide and its implementation soon. [18:54:57] :) yay [18:58:10] I'm using an MVC pattern in the visual editor - and I'm sort of debating where to put model to HTML and model to Wikitext serializers - anyone interested in providing an opinion? [18:59:24] TrevorParscal: want me to write a quick note to wikitext-l about it? [18:59:56] probably not, it's not a big deal [19:00:17] i'm just being indecisive... [19:00:28] TrevorParscal: as in, you'll be making this decision in the next 5 min? :-) [19:00:34] yeah [19:00:38] oh ok [19:00:44] nm [19:00:48] no worries [19:00:50] jorm: You might want to invite twitter's bootstrap authors [19:01:30] jorm: https://github.com/twitter/bootstrap/contributors for a possible list of authors [19:03:47] TrevorParscal: maybe under a 'render' path? [19:04:11] then render( 'wikitext' ); will look up for render/wikitext.js [19:04:58] I think the issue I really have is that there's a difference between serialization to HTML and rendering for use inside the editor, and I was munging the two concepts a bit [19:05:20] hashar: the es code uses a path like you described [19:05:27] that's how the side-by-side stuff works [19:06:08] I need to have a look at es again [19:06:25] we are rewriting into the synth code now, moving things over as we go [19:08:22] did you write your own MVC framework or reused an existing one? [19:28:47] does someone remember any studies about how is the usual wikipedia reade like? [21:05:26] anybody have any tips for code reviewing minified js ... ? [21:05:47] Don't have minified JS in your repo? [21:05:55] Keep an unminified base file [21:06:05] somehow i had a feeling that was the answer :p [21:06:47] do we not have minimifed js in core somewhere? [21:06:54] *minified [21:11:15] Not any more [21:11:21] ResourceLoader minifies things on the fly [21:13:15] and when we had, it was automatically generated [21:13:49] so instead of you reviewing the minified form, could just check that reminifying it didn't make the minified file "modified" ;) [23:45:31] Krinkle: ping [23:46:15] Nikerabbit: ping [23:46:27] specifically, Krinkle, Nikerabbit, wrt http://etherpad.wikimedia.org/1-18-CR-assignments [23:47:17] Krinkle: looks like we want to talk with you about code review for http://www.mediawiki.org/wiki/Special:Code/MediaWiki/92054