[00:15:14] i seriously hate every encoding that's not Unicode [00:16:13] about to give up trying to conditionally use 5.4 Transliterator functions too [00:17:24] ejegg: sounds rough :P [00:18:13] ehh, just hard to tell what PHP is doing internally with string encodings. [00:19:08] It seems happy to add a UTF-8 string value to a node in an 8859-1 document, as long as the characters are all within range. [00:19:37] But trying to transcode to 8859-1 first, then adding it to the document is giving errors [00:25:16] (PS5) Ejegg: Transliterate Worldpay post to ISO-8859-1 [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/155190 [00:26:34] whew, passes in 5.3 and 5.4 [15:58:22] (CR) Qgil: "This looks like a WIP patch. Is this correct? (CentralNotice is the current #1 at http://korma.wmflabs.org/browser/gerrit_review_queue.htm" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/63100 (owner: Awight) [16:00:32] (CR) Qgil: "Can this DO NOT MERGE be interpreted as a -1, or is this patch simply WIP?" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/78172 (owner: Mwalker) [16:02:16] (PS3) Qgil: [WIP] add Date Diet mixin based on BannerShowHideCountDate.js [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/120167 (owner: Awight) [16:42:48] * K4-713 looks around for awight [16:43:06] hurrrmrmrmmmrrrgh. [16:43:26] I need to pick a fight over python. [16:44:38] ejegg: Incidentally, how do you feel about python? [16:44:41] Also hi. [16:47:56] o hai! [16:48:12] I dig Python [16:48:39] Hi K4-713 and ejegg [16:48:40] have only used it for a few things - mp3 catalog, couple simple django websites [16:48:59] But I like how consistent it is [16:49:10] hey AndyRussG. What up? [16:49:19] semantic whitespace took some getting used to, but it sure is easy on the eyes [16:49:35] Not much [16:49:43] ejegg: Hurrrmrmrmrmrmphgrarrrghhhphbbblt... [16:49:45] What's your opinion ? [16:49:50] I am not a fan. [16:49:53] also, hi Andrew! [16:49:55] What are you doing with Python [16:49:56] Hey [16:50:13] ejegg: But the thing is, I'm willing to be talked in to things if I'm the only outlier. [16:50:20] ...grumble. [16:50:30] I have done noodling with Wikimetrics, which is in Python [16:50:44] I know a bunch of fundraising/tools are python - are you lobbying to rewrite in PHP? [16:51:12] The problem is, right now, it seems like there's this big press to move our nightly audit parsing to python... but our most robust and reusable version of the nightly parsing is in php. [16:51:23] Hmm [16:51:32] So, whatever we do, we have to rewrite half the world. [16:51:35] Why the push to do that? [16:51:42] No idea. [16:51:50] Wait: I tell a lie. [16:51:51] Does it use PHP bits from other parts of the fundraising infrastructure? [16:51:55] I dunno, I like writing code that I look at and can say, that's clean and elegant and I did that [16:52:01] The answer there was "awight picked python once". [16:52:09] ejegg: It should. [16:52:14] ...I mean, I think. [16:52:33] That seems like a good reason to stay in the same language as the rest then [16:52:34] But Python is too rigid about it all I think [16:52:44] It's like brittle in its mechanical view of what's elegant [16:52:52] That was the whole point of having the gc nightly as a drush job in the first place. [16:53:16] It's just got a vibe about it that I don't like, though maybe if I got more used to it I would like it more [16:53:31] ...reusability with qc code that isn't going to move, would be grand. [16:53:45] But I can't do that if some of us are systematically moving things to python. [16:54:10] With PHP I keep discovering new WTFs [16:54:15] AndyRussG: Huh. I've never heard python described as brittle before. [16:54:24] ejegg: I can relate. [16:54:37] ejegg: Oh yes, PHP has WTFs by the dozen [16:54:46] ...oh crud. I've got a meeting in like 5 minutes on another floor. [16:54:50] * K4-713 runs away [16:54:53] fly like the wind! [16:55:24] AndyRussG: how about that missing get_error_handler? [16:55:46] ejegg: which one? [16:55:51] It's absurd that you have to set_error_handler() to something else just to get the existing one [16:56:25] (latest PHP WTF to hit me) [16:56:30] python rulez [16:56:33] * milimetric ducks [16:56:37] heh [16:57:02] Ah hmm I've never had to do error handlers in php [16:57:35] Yeah, awight and I were just dealing with drupal and phpunit stepping on each other's handlers [16:57:37] When I said Python is brittle, I was thinking especially about python tied down by flake8 [16:57:49] Oh, what is flake8? [16:58:31] It's like jslint for Python. Enforces numbers of spaces between methods, indentation in multi-line statements, stuff like that [16:58:59] ah. I'd call that more pedantic than brittle [16:59:28] Generally Python is like someone who sounds very calm and rational and centered and then you get to know them and look them in the eye and realize they're a psychopath and belong in the nuthouse [16:59:39] hah [17:00:06] (no offense meant to python fans of course) [17:07:31] I mean Python isn't a psychopath. It's well-intentioned... [18:10:18] PPena: You around today? [18:48:49] wtf is a "Business Unit"? [18:49:10] 1 milliCorporation [18:49:22] Oh, of course! How silly of me. [18:49:49] what context? [18:50:21] PCI spreadsheet argh questions grumblewhat. [18:50:43] Incidentally: This isn't actually getting us anything. [18:50:59] You mean the Verizon consultants? [18:51:09] It's the questions they want to ask you, as prospective consultants, about your current system. [18:51:12] Everybody has one. [18:51:44] "Here, fill out a crazy number of boxes next to industry buzzwords we'll all just assume you're already familiar with." [18:52:03] isn't that what consultants are supposed to help with? [18:52:15] My favorite so far, talking about people who write code who are not on the team: "Include third-party development company names and City/St location." [18:52:20] My current answer is "No." [18:52:24] heh [18:52:47] Anybody else want to ask me why people don't like to volunteer on fundraising code? [18:52:52] >_> [18:52:54] <_< [18:53:15] ...thought so. [18:53:16] Anyway. [18:53:23] I'm going to lunch forever. [18:53:33] 3 martini lunch! [18:53:52] ...seriously though, I won't be back for double the usual time today. [18:54:01] enjoy! [18:54:15] I'm sure this spreadsheet won't have completed itself by the time I get back. [18:54:47] * K4-713 waves [20:06:24] enjoy! [20:06:32] oops, wrong window [21:00:02] awight: Hi! If you have a sec sometime for a question or so, pls let me know :) Wondering about a TODO here: https://git.wikimedia.org/blob/mediawiki%2Fextensions%2FCentralNotice/dc89c28e6f5c660a0cdacc5ac01922f54488b513/special%2FSpecialCentralNotice.php#L337 [21:00:46] ..and about pager CN pager hierarchy, and wanted to put the idea of an eventual CN Campaigns pager past you [21:02:54] AndyRussG: sure, looking now! [21:03:02] :) [21:03:16] That TODO is just about reusing the db select code [21:03:32] Mmmm hmmm [21:03:45] Campaigns pager sounds like a good idea, u can run it by CN admins if you'd like [21:04:10] Yeah that makes sense [21:04:24] My idea is for card 29 (show a banner's campaigns on the banner page) [21:04:53] Just wanted to reuse the same code for listing banners both there and on the main Special:CentralNotice campaigns page [21:05:19] Tho I noticed it's not currently paged [21:05:30] ah. yeah that's unfortunate [21:05:39] I would start w/o the pager, in this case [21:05:47] Right [21:05:51] since it will almost always be a short list... [21:06:02] I was thinking of doing it in a way that could easily be pagerified [21:06:22] i.e., use the same getQueryInfo and other methods maybe [21:07:28] entirely up to you! [21:07:34] K! [21:07:46] That sounds smart, but I donno what is involved in making it near-API-compatible [21:07:55] Mmm not much I think [21:08:43] Re: the TODO, since the method it suggests using just provides a list of IDs, and doesn't involve the assignments table which will be needed, I was thinking of maybe not following it [21:09:55] Fair enuf [21:10:00] We need a datamapper :p [21:11:00] Ah hmmm that'd be nice ;) [21:11:23] yeah I looked at the method and though, oh, I can get objects, but sadly no dice [21:11:33] ^ thought [21:12:40] but does the datamapper need us? [21:13:13] Mmm the other thing I thought maybe you could help me confirm is that the CN pager hierarchy is slightly abusrd [21:13:25] hehe mappers are not known for their reciprocity [21:13:37] AndyRussG: yes. Tear apart whatever you need to. [21:14:12] heheh well so far just poking around to decide what to do, no tear-ifying just yet [21:15:10] For example unleses I'm missing something, TemplatePager has only one subclass and so is redundant [21:16:01] Since it's for banners, not campaigns, I wouldn't change it or anything [21:16:33] Just wanted to get the full lay of the CN pager land [21:21:51] woo! time for a quick reboot! [21:34:30] we are running late to standup but on the way [22:21:37] So what should spike 1885 involve https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/cards/1885? [22:22:23] Maybe just ask for comments on the centralnotice admins list? [22:22:29] AndyRussG: sorry, I actually have no idea what Anne means there [22:22:43] I would say, leave to the side for now [22:22:55] awight: OK, sounds good [22:24:05] I think she put it there after I mentioned that there's uncertainty as to how the Global Allocation feature is used, and that that could be checked out more before diving into the GlobalAlloc memory issue [22:24:14] AndyRussG: #1758 might be fun, and brief [22:25:24] sure! [22:26:40] AndyRussG: I think you're already looking at #961? [22:28:25] Ah it is assigned to me! :P tho not in this sprint... I hadn't started on it, but I can definitely do it next :) [22:28:56] It's probably closely related to the memory issue work... [22:29:16] right-o [22:30:17] which do you think I should grab first? [22:31:12] Well... I don't agree with waiting for UX research before working on the GlobalAllocations memory issue. [22:31:33] I don't have a preference on which should happen first, though [22:31:51] Ah OK [22:32:28] I think #1758 is self-contained and easier [22:32:51] the other two have complexities, so whatever kind of mood you're in :) [22:33:27] Heheh moods are complex [22:34:09] Sorry yeah I hope I understood correctly about there being uncertainty about use of GlobalAllocations, apologies if I got it wrong [22:35:12] I don't yet understand mixins so maybe I should take that one and get to know more of the code before diving head first into an underwater rabbit hole [22:35:31] Maybe I see what you mean--the admins' filtering desires determines how we should set up that form? [22:36:14] Ask any questions u need about mixins, they are not being used yet and probably need a few development iterations, blue skies basically. [22:37:21] Mmm I wasn't specifically thinking about admins' filtering, just I'd understood that it might be good to hear more about how the page is used, though it's very possible I got it totally backwards [22:37:57] Ah OK interesting to know that's the state of mixins [22:38:04] I'm not even sure if it's used, at this point--because of the memory issue. [22:38:33] I heard it was useful... but it breaks whenever the CN schedule gets busy. [22:39:10] Ah OK hmmm makes sense [22:40:33] 1758 already has a WIP change to work from, is that it? https://gerrit.wikimedia.org/r/#/c/143108/ [22:40:39] What is a diet algorithm? [22:41:29] Yep. If u refresh, I've linked to an existing banner using diet code. [22:41:41] https://www.mediawiki.org/wiki/Extension:CentralNotice/Banner_mixins [22:41:54] The idea of the diet algorithms is, we show viewers one or two banners, then don't bother them again for a long time. [22:42:14] http://meta.wikimedia.org/wiki/Special:CentralNoticeBanners/edit/B14_0717_ennlNL_amt_2 [22:42:29] http://meta.wikimedia.org/wiki/MediaWiki:CentralNotice/Resources/BannerShowHideCountDate.js [22:45:06] Ah hmm OK yeah there's a part of the code I haven't even peeked at yet--the js inside banners [22:45:38] AndyRussG: it's beastly. the-wub has been doing a great job making this more sane, but... [22:45:51] wub? [22:46:00] Peter Coombe [22:46:23] The biggest motivation behind the mixin concept was to take scary js that should be getting code review and deployment visibility, and putting it into the source repo. [22:46:54] That js is used literally everywhere, so a typo will knock out javascript parsing on the rest of the page. [22:47:29] Eventually, I want to cut down the amount of copy + pasting we're doing to the bare minimum. [22:47:38] Right [22:47:55] Yeah repeated ctrl-c ctrl-v is hard on the wrist! [22:48:08] (jk) [22:48:18] I'd like for banners html to be stripped down to a template name, and parameter values only for the things we're experimenting with. Everything else should use defaults... [22:49:07] AndyRussG: here's an example, https://meta.wikimedia.org/wiki/Special:CentralNoticeBanners/edit/B13_prototype_dropdown [22:49:19] Ah hmmm and the template would use the "mixin" code, which would indeed get review? [22:49:48] Well... the mixin thing is a first step, just to get rogue JS into code review [22:50:08] I'm not sure how it will interact with A/B testing... [22:57:06] awight: cool, I think I get the general idea. And I have interesting stuff I can poke at [22:57:54] AndyRussG: the only real objections to this fully parameterized thing, btw, are related to #1757 [22:58:08] Ah hmm [22:58:24] production is concerned that the more we use higher-level substitutions, the more difficult it becomes to see what we *actually* ran [22:58:41] I think that's a problem that has not been solved in MediaWiki generally [22:58:55] historical versions of a page should have revlocked templates... but do not. [22:59:16] Ah iiiiiiiiiiinteresting [23:00:21] Yeah doesn't sound like an easy nut to crack [23:00:52] for our purposes, we can be pretty simplistic about it--we can dump the full html rendering of the banner and store that somewhere. [23:00:57] but yeah in general... [23:01:40] Hmm though that might not make it easy to make it live again, at least not in the same way (i.e., with the original structure of templates)? [23:02:07] nah I don't think we care about rescucitating, just having a reference copy [23:02:42] Although... it would be neat if template substitutions included an html comment including the url to its source + oldid, but sigh. [23:03:33] maybe we could just redo Mediawiki versioning using git [23:03:40] lol you read my mind! [23:06:22] though maybe cvs would be nicer [23:06:47] always loved cvs's "attic" feature [23:07:04] whew, that brings me back! [23:07:34] Used rcs once... everyone in a shared directory... [23:10:31] wooh! never got to use that [23:20:04] pizzzacat1: http://stackoverflow.com/questions/5869216/how-to-store-node-js-deployment-settings-configuration-files [23:33:13] it's a good thing HR is on the 6th floor [23:47:41] sql dump sql dump [23:48:02] mysqldump --opt DBNAME ? [23:48:13] hehe > FILENAME [23:48:22] *puts on sunglasses* hellll yeahhh