[00:06:32] TrevorParscal: sweet. Maybe I should talk to somebody to figure out what my schedule is :p [00:06:44] TrevorParscal: sit QUIETLY may be difficult. [00:07:32] hahaha [00:07:34] ok [00:07:40] it's been a long day [00:07:42] TrevorParscal: Option 2 is obviously better [00:07:43] see you later folks [00:08:00] for versioning [00:10:44] ... [00:12:03] werdna: yeah, although we're still unsure how we plan to "detect" when a file has changed other than checking all the mtime stats each load (or every so many loads) [00:12:42] a cron job is cool, but it needs to work with or without cron jobs (3rd party instlalls) [00:13:26] You should ask Tim or Domas how expensive those stat() calls would be. [00:13:32] RoanKattouw: so, we should play with distributed pair programming again sometime... [00:13:52] Another option is invalidating on sync [00:14:02] TrevorParscal: Yeah I was thinking about that [00:14:15] sync? [00:14:19] like, svn up? [00:14:30] We have that Eclipse plugin [00:14:46] But then didn't we decide I'd be writing the server and you'd be writing the client code? Although they kinda do touch [00:15:02] Or I guess I could /drive/ while writing the server code and vice versa [00:15:09] right [00:15:27] we don't have to always use it, but we should explore using it [00:15:42] I think we might be quite productive using dpp [00:16:16] i also think if it works well for us, it might be an interesting trend to start at WMF [00:16:19] TrevorParscal: no, like sync-file [00:16:35] that's a custom WMF cluster thing right? [00:16:41] TrevorParscal: of course, that's wmf-specific, but you could just fall back to stat()s on other sites [00:16:47] right [00:17:08] basically I would think that using stat() could be the default, and then you could turn that off and invalidate manually with custom scripts if you liek performance [00:17:37] right, and... we like performance... :) [00:18:30] so, how do we handle making sure the dynamic loader requests have the right versions? we send a version number with the loader code? [00:18:36] seems simple enough... [00:19:45] RoanKattouw: we also have not speced out how the loader handles modules who's source is in the database, like user scripts, gadgets and site scripts.... and how they localize [00:19:52] we might want to spec that out [00:20:07] TrevorParscal: what do you mean? [00:20:16] oh, right [00:20:34] how do those modules get registered [00:20:36] TrevorParscal: problem with this is that if you put the version number in the HTML, you have to invalidate the HTML to bump the version number [00:20:47] is one issue [00:21:05] werdna: yes, that's why option 1 is ... an option [00:21:27] it solves that.. but it has it's own drawbacks [00:22:08] TrevorParscal: Have an option to specify a callback instead of a file as a script source? [00:22:10] like waiting 8 hours for your JS to go live [00:22:32] Tim was talking about 1-hour expiries [00:22:39] well, whatever [00:22:40] RoanKattouw: what does the callb [00:22:49] *callback do? [00:22:51] why do you need a version number in the html anyways? [00:22:55] oh right, because of client side caches [00:22:56] TrevorParscal: Return JS [00:23:04] server-side caches can just be purged, of course [00:23:12] Yes [00:23:17] you could give the client-side cache a ten-minute expiry and purge the server-side cache [00:23:23] *werdna shrugs [00:23:25] why not just allow the path to be int:User:myScriptIsCool.js or something [00:23:35] if it starts with int: it's in the db, not the fs [00:23:38] Well 10 mins is very short, but yeah, we have Squid to take a lot of work out of our hands [00:24:02] TrevorParscal: array( 'file' => 'somefile.js' ) vs array ('foo' => 'bar' ) ? [00:24:17] then we need to introduce things like MediaWiki:Loader.js and User:Jo [00:24:30] User:JohnDoe/loader.js [00:24:32] or something [00:25:01] RoanKattouw: yes, we can vary the key, not encode the value [00:25:06] that makes sense [00:25:18] but we'd need to check some well-known places for loader scripts [00:25:48] like the 2 places I said, plus somehow hook in gadgets... [00:27:39] dude, where are gadgets stored? [00:27:50] MediaWiki:Gadget-Foo.js I think [00:27:57] hmmm [00:28:16] so, we can lump them in with site scripts [00:28:22] they are just fancy site-scripts [00:30:57] hmm, the MediaWiki:Loader.js and User:JohnDoe/loader.js only help with dependencies... [00:31:04] we still need registration... [00:34:32] or maybe not... [00:41:01] hi Ryan_Lane [00:41:13] TrevorParscal: hi there [00:41:26] brb - getting wife from downstairs [00:41:31] ok [00:45:21] *werdna can't find his keys [00:45:24] hey Ryan_Lane [00:45:36] werdna: howdy [00:47:18] werdna: got your trip all set? [00:47:22] yeah, finally [00:47:27] except somewhere to sleep in SF [00:47:32] but worst case i hear the office has comfy couches [00:48:09] the streets apparently aren't bad either. [00:48:33] you going to SF before wikimania? [00:48:37] depends, i'd need cardboard for a sign [00:48:38] yeah [00:48:40] brb, getting noms [00:48:42] k [00:48:46] assuming i can find my damn keys [00:57:59] OK I guess Tim is not coming [00:58:06] And maybe I shouldn't have stayed up till 3 [00:58:10] Good night all [02:01:26] *werdna returns [02:01:29] *werdna rewaves Ryan_Lane [03:11:20] Hey, can I report a bug in the Vector code here? [03:11:38] ...or am I totally in the wrong place? [03:13:31] Unfortunately, it's after working hours in North America, Europe. I dunno about werdna or others who may be in Australia. [03:16:15] wazzap? [03:16:20] but I'm not a usability person [03:17:23] Well, the toolbars on the left aren't collapsible for me, though I know they were before. [03:17:23] Atalaes is finding an issue with the navigation not being collapsible, Ubuntu, FF, 3.6.3 [03:17:38] And something in Vector keeps throwing an error. [03:17:51] Error: missing ] after element list [03:17:52] Source File: http://bits.wikimedia.org/w/extensions/UsabilityInitiative/Vector/Vector.combined.min.js?282f [03:17:54] Line: 3, Column: 41 [03:17:55] Source Code: [03:17:57] var mod={'browsers':{'ltr':{'msie':[['>='.7]],'opera':[['>=',9.6]],'konqueror':[['>=',4.0]],'blackberry':false,'ipod':false,'iphone':false,'ps3':false},'rtl':{'msie':[['>=',7]],'opera':[['>=',9.6]],'konqueror':[['>=',4.0]],'blackberry':false,'ipod':false, [03:18:08] I wondered if the two might be related. [03:18:23] The msie bit seems to be missing a comma. [03:18:35] [03:19:19] No particular reason, those names just happened to be there. [03:19:23] what am I blamed for, now? [03:19:24] ah [03:19:29] good, so I don't have to care [03:19:33] [03:20:10] ....bearing in mind that I'm a technoretard, so I could be way off here. [03:21:00] I'm not a developer, and I don't even have commit access, so I'm arguably one of the people who can help you the least [03:21:39] Hey, random choices of names in channel. Almost never works, but when it does it's really cool. [03:25:41] try Ryan_Lane maybe [04:17:25] werdna: eh? try me for what? [04:19:31] ah. for the error in vector... I didn't do any frontend work :) [04:37:40] hey TrevorParscal [04:37:44] hi [04:37:54] TrevorParscal: there was some bug report in channel earlier [04:38:02] oh yeah? [04:38:05] i can scan the backlog [04:38:06] a stray comma or something [04:38:12] hmm [04:38:13] k [04:38:18] 03:18 < Amgine> Atalaes is finding an issue with the navigation not being collapsible, Ubuntu, FF, 3.6.3 [04:38:21] 03:18 < atelaes> And something in Vector keeps throwing an error. [04:38:24] 03:18 < atelaes> Error: missing ] after element list [04:38:27] 03:18 < atelaes> Line: 3, Column: 41 [04:38:28] 03:18 < atelaes> Source Code: [04:38:28] 03:18 < atelaes> var [04:38:28] mod={'browsers':{'ltr':{'msie':[['>='.7]],'opera':[['>=',9.6]],'konqueror':[['>=',4.0]],'blackberry':false,'ipod':false,'iphone':false,'ps3':false},'rtl':{'msie':[['>=',7]],'opera':[['>=',9.6]],'konqueror':[['>=',4.0]],'blackberry':false,'ipod':false, [04:38:33] yeah [04:38:40] Roan patched in the msie part [04:38:47] and screwed up the comma [04:38:52] and I thought he fixed it.. [04:39:01] vecause someone noticed it like, right away [04:39:10] that was around noon or something [04:40:16] http://prototype.wikimedia.org/logs/%23wikipedia_usability/20100617.txt at [21:19:35] [04:40:52] did roan not patch that? [04:40:58] cause if he didn't, maybe you could? [04:41:02] it's a production hack [04:41:19] the SVN has code that reorgs the borwser testing code [04:41:30] so, he avoided doing a more complex merge and just hacked it [04:41:34] what do I have to do? [04:41:50] do you have commit access to branches/wmf? [04:42:27] well, that file http://bits.wikimedia.org/w/extensions/UsabilityInitiative/Vector/Vector.combined.min.js?somecrazyversionstring [04:42:35] it looks fixed [04:42:49] maybe he didn't get the version bump [04:42:52] so it's a caching issue [04:43:01] with bits, we have no purge [04:43:07] you just have to version bump [04:43:12] so, yeah - that must be why [04:43:13] I can do that [04:43:18] thanks man! [04:44:02] done [04:44:07] werdna: i'm writing a proof of concept, for.. mediawiki 2.0 let's call it.. [04:44:17] *werdna eyes TrevorParscal suspiciously [04:46:17] i have things divided up into systems, which are essentially admin stuff (command line interface) a front-end system (rendering html pages and including all that css and js stuff) and a data access system which can be called via HTTP (like an API) or just directly via PHP [04:46:48] it's a layered approach, lots of experiements, some great, some strange, whatever, it's a big science experiment [04:46:51] so, the point here is [04:47:28] I'm thinking about how to name these different systems... or entry points... or.. layers.. or whatever they are.. [04:47:58] i have admin, client, server and core, which has all the shared code (most of it). [04:48:09] but the client server thing is a little... misleading probably [04:48:17] This is why you're never allowed to work on LiquidThreads. [04:48:25] ha ha ha [04:48:29] It's so poorly factored that your first action would be to rewrite it entirely. [04:48:38] true [04:48:41] I will admit that [04:49:16] so, do you think admin, view, query, core would be more logical? [04:49:27] view being the front end stuff, query being the data access stuff [04:49:51] hmm, seems reasonable i guess [04:50:33] am I asking a person with a high tollerance for poorly factored code and a low tollerence for fussing about with naming things? [04:50:46] You're asking a distracted person [04:50:50] no worries [04:50:55] I'm doing some consulting stuff :) [04:51:01] I'm throwing allot at you... [04:51:06] sorry.. [04:51:14] it's cool. [04:51:14] thanks for listening to my madness though [04:51:28] hehe, does that mean I don't have to say anything? [04:51:31] in which case, go right ahead [04:51:39] ha ha... [04:51:54] you need to say "wow, that's brilliant", or "I love that!" [04:52:00] about every 15 lines [04:52:07] you can also just write a bot to do that [04:52:13] SelfEsteemBot is born [04:52:21] ;-) [04:52:31] i will let you go [04:52:50] i just like to type out loud i think... (broken metaphors are fun) [04:53:08] thanks again for the patch in deployment [04:53:33] no problem [04:53:38] I didn't mean to dismiss you entirely ;-) [04:56:59] dude, no worries [04:57:17] usually I bounce things off of Roan, barring that... my 3 year old daughter.. [04:57:21] I've been examming for about two weeks, it's been fun :) [04:57:23] hahaha [04:57:25] at least I get the feeling you understand me :) [04:57:27] poor girl [04:57:39] her first words will be "better factored" [04:57:46] well, she probably already talks [04:57:48] but still [04:58:05] it's probably leaving her with scars that will never heal [04:58:32] my wife often tells me "Stop refactoring that", and I'm not writing code... i will be like... cooking or cleaning.. [04:58:47] usually organizing things... to no end [04:59:11] so, you are in SF for like.. 1 or 2 weeks? [04:59:39] TrevorParscal: 23rd to the 2nd [04:59:54] disappearing to london at 6:55 on the 2nd, arrive in at 9am on the 23rd [05:00:01] 18:55, that is. [05:00:03] not 06:55 [05:00:45] right on [05:00:53] well, we're excited to have you [05:00:58] I'm excited to be back [05:02:48] *TrevorParscal goes back to writing code that thinks about how to write code that writes templates and code that uses those templates [05:03:11] (just kidding...) [05:03:46] omg - my wife made the best flan ever [05:06:09] *TrevorParscal becomes uncomfortable with view and query being verbs.... tries to think of nouns better than client and server [05:06:35] flan? [05:07:28] yes, it's a spanish desert custard covered in a carmel sauce [05:07:44] http://en.wikipedia.org/wiki/Flan [05:08:28] not popular in your neck of the woods? [05:09:16] is carmel a typo or a spelling difference? [05:09:20] out of interest. [05:09:44] possible, I'm not familiar with it [05:09:48] *werdna shrugs [05:10:10] typo [05:13:31] k [05:13:35] going to play with kids [05:13:38] thanks for the chat [05:13:43] have a good ... day? [05:13:47] afternnoon there yes/ [05:14:02] anyhoo... [05:14:04] enjoy! [05:14:08] yes, 3pm [14:07:35] Morning guys. [16:41:51] RoanKattouw: [16:41:54] how's it [17:05:08] TrevorParscal: Back now, got time [17:05:14] sweet [17:05:17] i'm at work now [17:05:18] Laptop shut down during dinner [17:05:21] so, i'm less distracted [17:05:23] no worries [17:09:09] so, what did you get out of your conversation with Tim? [17:09:45] Well it turns out I largely misunderstood his proposal [17:09:50] k [17:10:09] What he's proposing is that we still use style versions and month-long client-side expiry times, like we do now [17:10:20] *TrevorParscal doesn't remember asking for proposals... only requirements... :| [17:10:29] Except that the style versions are timestamp-based (so no manual updates required) [17:10:43] And that hour-long expiry he mentions is on the Squid side [17:11:02] ok [17:11:02] Squid would revalidate URLs from the loader every hour, where the loader may respond with a 304 [17:11:13] so, what do you think of that? [17:11:24] TrevorParscal: I know, but on balance I'm happy that we got implementation proposals despite not asking for them [17:11:33] Well [17:11:40] I think if that's something that is feesable to develop and makes our ops people happy, I'm cool with it, I don't have lots of passion in this particular area [17:12:16] It's not as nice as I would've liked it to be, but any such system would ease the developers' lives at the expense of pretty much everything else that's good in this world [17:12:46] RoanKattouw: I've seen a few reports that the foreground color is not defined. this seems to be fixed in SVN but not deployed to http://bits.wikimedia.org/skins-1.5/vector/main-ltr.css ? [17:13:15] eek. [17:13:45] looking [17:14:14] Seriously, I want programs to have feelings so I can hurt my copy of Firefox [17:14:26] *RoanKattouw makes mental note to look into upgrading [17:14:39] Eloquence: Seen those reports. Not aware of fix in SVN though [17:14:51] https://bugzilla.wikimedia.org/show_bug.cgi?id=20737 [17:15:59] !r 65380 [17:15:59] --elephant-- http://www.mediawiki.org/wiki/Special:Code/MediaWiki/65380 [17:16:12] Looks like that never got deployed [17:16:21] *RoanKattouw deploys [17:17:15] how can a two-months old revision never get deployed, when more recent ones have? [17:17:21] that's asking for problems [17:17:54] I deploy UI trunk regularly [17:18:03] Intending to that again today after I've reviewed recent revs [17:18:12] But Vector skin = core = very infrequent updates [17:18:19] If you don't like the latter, complain to Tim ;) [17:18:25] RoanKattouw, and it's a good thing you do so [17:18:37] I do deploy Vector fixes when I'm aware of their need [17:18:41] But sometimes stuff slips through [17:19:08] Crap [17:19:09] I need a root [17:19:10] I think I sounded too harsh [17:19:15] <^demon> Speaking of Vector, I kind of don't like r68177 (SimpleSearch disable pref). You defined a preference in an extension but implemented it in core :\ [17:19:19] <^demon> RoanKattouw: ^^^ [17:19:34] ^demon: mhhh, yes [17:19:37] Good point [17:19:47] Could you fixme+comment that? [17:20:06] are these extensions going to get moved to core at some point? [17:20:28] ^demon: simple search is not only an extension [17:20:41] you misunderstand the feature - no offense [17:20:52] it's actually a part of the vector skin [17:21:06] but, the Vector extension includes a module that improves the simplified search [17:21:10] then it shouldn't be defined in an extension :) [17:21:20] with a suggestions interface and a label that dissapears [17:21:26] Platonides: why not? [17:21:36] <^demon> TrevorParscal: That's not what I was saying....I was just saying that the implementation of the "disable simple search" was part in core and part in an extension. And that's icky. [17:21:52] the skin can render with simplified search, with or without the extension which enahnces it [17:22:08] ^demon: agreed [17:22:12] I have not reviewed that yet [17:22:18] ^demon: Yes, it's reverse crossover, will fix [17:22:29] ^demon: thanks for pointing that out [17:22:32] how's it going btw? [17:22:33] <^demon> No problem :) [17:22:46] <^demon> Doing fine. Left Capital One early today. [17:22:56] <^demon> Crappy 9am meeting on a Friday...should've have had to go in at all today [17:23:38] <^demon> Who schedules meetings for 9am on Fridays? Seriously :) [17:25:29] seems the div adding revision wasn't merged either [17:25:34] ^demon: at my day job, people don't schedule meetings on fridays :). compressed schedules make everything better [17:25:48] ^demon: evil people [17:26:18] Platonides: Which one is that? [17:26:33] hi Ryan_Lane [17:26:43] TrevorParscal: hi there [17:29:46] we're working on creating a resource loading system [17:29:46] RoanKattouw, the footer part of r66646 seems to have not been merged [17:29:50] that doesn't suck [17:29:54] we hope [17:30:10] for javascript and css [17:30:18] seems the upper part was merged, though :/ [17:30:36] Ryan_Lane: what are you up to? [17:30:54] TrevorParscal: making vms for analytics and donation development [17:30:59] Platonides: What is the upper and what is the lower part? [17:31:09] TrevorParscal: why's that? need something? [17:31:51] Ryan_Lane: no, just curious [17:32:23] I need to fix a couple selenium things soon too :) [17:32:41] adam_miller: OMG bolding in SimpleSearch works on trunk! [17:32:47] AWESOME [17:33:10] i got it working last week, i think? [17:33:26] I know, I'm slow [17:33:38] I'm gonna review all UsabilityInitiative revs today and hopefully deploy trunk [17:33:48] To keep the difference between deployment and trunk small [17:34:03] Especially useful now that Trevor and I are about to embark on this resource loader adventure [17:35:01] i committed my idea of how the scrolling through suggestions should work today too [17:35:22] Yeah I saw that in the commit log [17:35:25] Haven't svn up'ed it yet [17:35:28] actually i should get that on a sandbox and email people to make sure everyone else likes my way of doing things [17:36:09] ^demon: r68224 [17:36:52] adam_miller: You have the required access and skill to make that happen, right? If so, go for it [17:37:21] i do [17:37:38] that was more of a thinking out loud kinda thing [17:39:50] <^demon> RoanKattouw: Looks good thanks :) [17:47:04] Hah [17:47:53] Our trolls claim that line between W, omega and И in new logo is a swastika [17:48:10] wow [17:48:32] that finally proves that the usability initiative is worse than hitler [17:48:50] OK I *kinda* see that just a little bit [17:49:37] I'm still waiting to see the original file for the new logo [17:50:23] and mmh... the swastika has the arms in the other direction [17:50:45] oh, there are swastikas in both sense [17:52:11] but nazi's ones go in opposite to the logo [17:52:16] Platonides: original file? it's not hidden [17:52:22] the SVG is on commons [17:53:57] but the svg is derived from another file [17:54:17] thus, changes shouldn't go to the svg but to the first one [17:54:32] which isn't even in an open format, afaik [17:55:41] it wouldn't be strange that in a acouple of years that file got lost too, like nohat's original one [17:56:21] it's all SVG [17:56:25] you mean the 3D file? [17:57:23] yes [17:57:41] isn't the svg an export of the 3D? [17:58:39] i'm unsure if it was a 2D vector rendering of 3D graphics, or done by hand based on a raster rendering of 3D graphics. [17:58:52] but the original 3D model (which I have a copy of) is in Maya format [17:59:17] the reason I have a copy, is because I'm trying to get it into blender format [17:59:22] in my spare time [17:59:40] and it's proving to be a pita [18:00:40] Is it OK if I store a preference in serialize()'d string array form? [18:01:01] Ouch [18:01:02] Why? [18:01:15] it would be nice having it in blender, Trevor [18:01:34] You do realize the entire preferences system was rewritten exactly because it was storing stuff as serialized blobs? [18:02:06] vvv: why would you need to do that? [18:02:08] RoanKattouw: well, I intend to store user-configured toolbar in multidimensional arrays. I have no better idea of doing it [18:02:09] vvv, do you have a good excuse for doing that ? [18:02:24] user-configured toolbar? [18:02:26] Right [18:02:33] wouldn't that be a javascript array string [18:02:35] ? [18:02:48] I kinda see how you don't want to store that as a gazillion prefs [18:02:54] toolbar confiurations should probably always exist as a json-ish thing [18:03:14] which i guess is a form of serialization [18:03:29] <^demon> Toolbar configuration shouldn't require an understanding of Javascript ;-) [18:03:33] it's a textual representation of a data structure [18:03:53] ^demon: why? [18:04:01] oh... [18:04:05] you are joking [18:04:23] TrevorParscal: I intended to do a dynamical rebuilding of toolbar in PHP script [18:04:39] are you serious? [18:04:40] <^demon> TrevorParscal: No, I wasn't. I happen to think that ordinary folks should be able to do it. [18:05:07] ordinary? the toolbar isn't written in ASM [18:05:22] *^demon facepalms [18:05:24] what is the advantage of the toolbar being built in PHP? [18:05:47] <^demon> Configuration can move to LocalSettings.php, like everything else. [18:05:56] what configuration? [18:06:00] <^demon> Configuration of toolbars. [18:06:12] that preference modified only by javascript enabled browsers seems sensible [18:06:16] what kind of stuff are you trying to configure though? [18:06:26] as far as non-js browsers can reset it [18:06:38] Platonides: toolbar is constructed from JS [18:06:57] it's only useful (no matter how it's constructed) to clients with JS [18:07:02] vvv: Why not just write JS to [[User:Username/toolbarconfig.js]] and have PHP add a