[00:00:18] Besides a DB config [00:01:01] That sounds right. That's all I had in my pet localsettings. [00:02:45] actually it's almost the same as what's in settings.py [00:23:16] K4-713: yer friends just on KALX, "Dear God" cover, was GREAT [00:23:28] and: why are you still here? [00:23:29] Oh hey! Good for them. [00:23:40] yah new album got a call-out [00:23:45] I've got it. [00:23:53] fancy :p [00:23:56] The last song... is... impressive. [00:24:30] omg I already wrote pizza about this, but... KALX is doing a 3-hour cat memorial show in half an hour... [00:24:54] who are these folks? [00:25:05] I think they must have sat around and listened to old David Bowie while watching continuous NASA videos for three straight days (no sleep) and then all lept up suddenly and wrote it. [00:25:13] The Phenomenauts. [00:25:14] just the UC Berkeley station. They are a stand-up operation. [00:25:25] ah yes [00:25:41] * awight adjusts parser [00:26:08] All their songs are about one or more of the following: Science, Space, Being a robot, being stuck on Earth... [00:26:18] Er. That's about it. [00:26:27] huh, cool. and on spotify, too [00:26:50] hmm [00:27:02] They change styles a bit over the years. [00:27:13] Their first album has a lot more surf guitar. [00:27:32] ...in amongst the synth and upright bass. [00:28:39] I kind of learned PHP while running their bulletin board. [00:28:41] K4-713: you finally reminded me: you must take this 'pod and copy the "Dan Joseph" album, Robot Love. [00:29:02] I think I like it already. [00:30:52] Oh, ejegg: Did you ever get that album of Rocky Horror punk rock covers I told you about? [00:30:55] They're on that thing too. [00:31:50] oh right! I never picked that up [00:32:00] gotta get that [00:32:21] btw, just rebooted into 14.10. Nothing obviously broken yet [00:32:29] Give it a minute. :) [00:34:26] aw FOCK. dumbass Maher is about to give a commencement speech at UC Berkeley. [00:34:35] This is why people avoid the news... [00:34:47] Yeah, Cal needs some more close-mindedness... [00:35:13] Here's some interesting news about google's governmental entanglements: http://www.newsweek.com/assange-google-not-what-it-seems-279447 [00:35:36] (btw, http://www.amazon.com/Go-F-Sleep-Adam-Mansbach/dp/145584165X#reader_145584165X) [00:37:43] shit [00:38:00] hehe, we're all broken [00:39:19] Have I ever mentioned how frustrating drupal can be? [00:39:27] Because: That. [00:39:42] K4-713: can I help? [00:39:44] because what? [00:39:52] awight: I don't know. Maybe. [00:39:54] reboot? [00:40:03] My module naming conventions have collided. [00:40:07] oh. [00:40:10] OH [00:40:22] now I wish I'd whitewashed that thing [00:40:39] I think I have to unrename all the old stuff and disable it so the DB stops telling me the new thing is damaged. [00:40:50] eeh? [00:40:57] Happily, I'm only ruining my local at this point. [00:41:01] So... whatever. [00:41:05] global function names colliding? [00:41:10] Entire module names. [00:41:16] globalcollect_audit [00:41:20] ...was the entire old one. [00:41:29] can you kill that thing yet? [00:41:30] And the name of the submodule of the new one. [00:41:41] Well... I don't necessarily want to in one go. [00:41:45] :( [00:41:54] ok, y'all. Have a good evening. [00:41:59] bye! [00:41:59] Later! [00:42:31] hurmfph [00:42:36] blargrarar. [00:42:41] There is no future [00:42:44] garglefargle. [00:43:01] really. U have to name one glocalbollect [00:43:21] awight: You may be right. [00:43:29] maybe... one "l"? [00:44:02] We could go old school and call it globalconnect [00:44:32] lang=engr [00:44:36] that's messed up [00:44:54] You weren't here at the time, but when we were first doing the integration, half of the emails we sent about them, TO them, called them "GlobalConnect". It was embarrassing. [00:45:30] Oh I would have fixed that real quick w/ globalcorrect module [00:45:31] I think I even added "globalconnect" to my inbox filters. [00:45:37] BAHAHA [00:46:12] You know what, though? I'm going home. [00:46:26] phew fixed that silly pythonpath [00:46:26] so. I think the only sane thing to do is search and replace the old module to "globalcollect0_" :( [00:46:32] AndyRussG: whew! [00:46:40] K4-713: see ya! [00:46:42] awight: I did that. It's still mad. [00:46:47] nooo [00:46:49] Well, not exactly that. [00:46:55] But basically. [00:47:03] So, I give up. [00:47:06] Total quitter. [00:47:10] WIP patch? [00:47:20] Forget this. I'm going to get some macaroni and cheese. [00:47:21] K4-713: don't worry globalconnects sometimes lose their tempers [00:47:22] I can defribillate it a bit [00:47:38] * awight tattoos this somewhere memorable [00:47:46] awight: I didn't commit anything. I want, you know... a barely-working thing before I do that. [00:47:56] hehe ok then [00:48:07] Otherwise, it's like: Hey! I just made a huge mess! Do you like it? [00:48:21] If you try to run the code locally, it might corrupt your db. [00:48:27] Yay! [00:48:40] My db is already totally hosed. [00:49:03] I can't open civi contacts or contribs. must have vagrant. [00:49:15] bubbye [00:49:26] Oh wait me too. [10:33:50] https://github.com/EFForg/https-everywhere/issues/686 [10:38:04] [11:34:41] What's links.email.donate.wikimedia.org and why does it allegedly not support https? https://github.com/EFForg/https-everywhere/issues/686 [10:38:04] [11:35:33] This server could not prove that it is links.email.donate.wikimedia.org; its security certificate is from *.links.mkt41.net. This may be caused by a misconfiguration or an attacker intercepting your connection. [10:38:04] [11:37:28] -*- Reedy replies [10:38:04] [11:37:50] Nemo_bis: I guess it's 2 fold. One it's not a WMF site, and 2 it's a multiple subdomain so wouldn't have an SSL cert [14:35:54] Jeff_Green: hey. you want to roll the mw 1.23 boulder? [14:36:31] sure [14:36:39] but...first there's some kind of minfraud issue [14:36:53] the nagios test is getting a 302 response [14:37:04] riiight, I think I drowned my phone for that [14:37:22] ok, ping me if u unpin yourself from that [14:37:39] ok [14:50:40] awight: ok, I think icinga is fixed [14:52:11] Jeff_Green: it looked bad [14:52:45] it's a stupid ring & run check on tcp/443, and they threw a redirect at / [14:52:56] so... next steps are to change the deploy configs, take payments down, redeploy... upgrade db... ? [14:53:04] took me a while to find the API path, but adding that fixes the problem [14:53:05] hah [14:53:23] i guess so? [14:53:36] let's formulate a rollback plan? [14:53:37] argh, we lost Europe [14:53:52] rollback plan <- run with hair on fire [14:54:02] sounds like a party [14:54:16] can we simply restore the db and revert the code if it blows up? [14:54:43] yep. [14:55:05] It should be fine even if we run with the new code for a day... nothing important in that db [14:55:27] alright, we have dumps archived [14:55:37] are we running any campaigns atm? [14:55:59] I was hoping to ask europe about that... [14:56:10] lemme check metawiki... [14:56:28] oic [14:58:13] yeah there is a bunch of long-running stuff [14:58:28] what do we do? [14:59:27] I suppose... I disable them without warning fr-production :-/ [14:59:44] ha [14:59:57] The good news is that they're all long enough that we won't be affecting numbers much. [15:00:22] so erhm, let me know when you're poised to pounce [15:01:18] oh anytime [15:02:48] Do you happen to remember if donatewiki has a maintenance mode? [15:04:51] i don't [15:05:22] how long does the db change take? [15:06:01] a few second [15:06:02] s [15:06:28] we could flip payments-wiki to r/o mode, flip everything to one payments server, run the update on payments1001, flip everything to payments1001, and complete the task [15:07:37] Hi Jeff_Green! The OAuth requests are finally working. [15:08:00] Want to re-enable the dash.frdev vhost? [15:08:57] woo, really? sure [15:09:04] what was the issue? [15:09:35] Yep! It was reconstructing an http url instead of https [15:10:00] I tried fixing that in the .htaccess file using the SetEnvIf directive, but that didn't seem to work [15:10:09] not paying attention the header? [15:10:19] we probably ignore .htaccess [15:10:19] so I just tweaked the OAuth lib to look at the X-Forwarded-Proto header directly [15:10:25] great [15:10:52] Jeff_Green: what a terrible interface. OK all the campaigns are down [15:11:00] great [15:11:47] ok. so I'll flip frdeploy to the *23 branch? [15:11:56] ready! [15:12:06] Jeff_Green: one moment, actually [15:12:15] lemme wait for traffic to settle to zero [15:12:23] Oh boy, 1.23 going up right now? [15:12:23] i'll flip the config, but not run the scripts [15:12:29] Exciting [15:12:39] k [15:12:42] ejegg: dash should be up [15:12:48] thanks! [15:12:53] np [15:13:02] ejegg: yeah, but one annoying thing: I cannot remember how to put donatewiki into maintenance mode. [15:13:17] Jeff_Green: I'm gonna put paymentswiki into maintenance mode now [15:13:37] ok [15:14:10] So, about this comment, [15:14:11] #$wgContributionTrackingFundraiserMaintenance = true; [15:14:13] urgh [15:14:20] awight: we need to do fundraisingwiki at some point too [15:14:21] // ZOMG DIRE EMERGENCY [15:14:21] #$wgContributionTrackingFundraiserMaintenance = true; [15:14:31] what is... omg [15:14:42] is that something other than donatewiki? [15:14:48] ZOMG ? [15:14:55] zoiks oh my god? [15:14:59] or whatever? [15:14:59] hehe no what is fundraising wiki? [15:15:03] oh that [15:15:07] * awight jobpalms [15:15:33] fundraising.wikimedia.org -- afaik all it does is host a fundraiser unsubscribe tool that we're supposed to be moving to payments [15:15:40] it's on barium [15:15:50] * awight sadly shakes head. [15:15:50] ok [15:16:07] the apache vhost also does some redirects for some paypal crap, but the actual processing is all on the listener now [15:16:15] yah that can wait til later today, or at least until payments is reenabled [15:16:25] sure [15:16:53] Jeff_Green: do you know if "DIRE EMERGENCY" actually means, "normal way to disable this site" like I think it does? [15:17:10] awight: yeah, that should be the var to set [15:17:15] ok thx! [15:17:20] awight: I suspect it does, yes [15:17:30] it's just going to barf "down for maintenance" [15:17:38] perhaps a more informative comment is in order [15:17:49] ready for the deploy tool bit to flip? [15:18:15] !log payments in maintenance mode [15:18:20] not quite [15:18:23] Logged the message, Master [15:18:38] well heh that sure stopped traffic [15:18:43] Jeff_Green: ok ready! [15:19:42] ok merged [15:21:35] Jeff_Green: payments-wiki still pointing to 1_22... [15:24:29] oh you're right, I forgot to force a puppet run [15:24:38] * awight bites a cereal [15:26:53] done [15:27:17] * awight makes music better before continuing [15:27:22] I'm not sure fundraising_code_update will do the branch change smoothly :-$ [15:27:24] we'll see [15:28:44] without hitch! [15:31:13] Jeff_Green: ok we're back up. [15:31:23] running a test donation... [15:32:07] you already ran the schema change? [15:32:11] Jeff_Green: oh. so um where would I run ^^ yeah from [15:32:29] oh [15:32:36] well [15:33:02] I can't speak for the cleverness of mediawiki, but all payments servers have the same db configuration [15:33:03] change the db strings in the directory we tested with yesterday? [15:33:09] so I don't see why it should matter [15:33:18] k so I shall log into one directly [15:33:27] you have access to payments1004 [15:33:32] oh wait, no [15:33:39] I did recently, at least [15:33:44] same db? [15:33:51] but payments1004 uses the staging checkout [15:34:01] I updated... [15:34:06] you did staging too? [15:34:10] yeah [15:34:15] I'll confirm it's at the same rev [15:34:17] ok [15:34:41] also remember payments1004 has its own .LocalSettings... files [15:34:50] oof [15:35:05] luckily, all the migrations are in core [15:37:05] !log updated payments to REL1_23, 6fa864d4aaa22b9f271de4bc662be68bb0b40b56 [15:37:13] Logged the message, Master [15:38:12] Jeff_Green: can u livehack me into the www-data group on payments1004? [15:38:26] yeah, sec [15:38:47] (PS1) Ssmith: Add BigEnglish widget, first chart as POC [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/168603 [15:39:02] awight done [15:39:12] +thx [15:39:45] meganhernandez: hey, sorry for the late notice--did u see the email about payments maintenance? [15:40:16] !log payments db migrated to 1.23 schema [15:40:18] Jeff_Green: ^^ [15:40:20] just saw it now awight [15:40:25] Logged the message, Master [15:40:59] awight: wooo win! [15:41:16] We're getting completed donations, but... [15:41:25] but? [15:41:34] they're all $0.000001 [15:41:34] small glitch, I'm not sure if it's a regression. https://payments.wikimedia.org/index.php?title=Special:GlobalCollectGateway&appeal=JimmyQuote&ffname=cc-vmad&recurring=&payment_method=cc&utm_source=fr-redir.default~default~default~default~control.cc&utm_medium=spontaneous&utm_campaign=spontaneous&utm_key=&referrer=&language=en&country=US&returnto=Thank_You%2Fen&amountGiven=1.21¤cy_code=USD&frequency=onetime [15:41:40] hehe [15:41:44] that page is missing the title translation [15:41:52] I've never had it work right on my local, though... [15:42:00] ejegg: ^^ you remember whether this is a regression? [15:42:22] donate.wikimedia.org looks funky too [15:42:38] oh?? [15:42:43] is the form really supposed to look like that [15:42:47] ooh [15:42:47] try it [15:42:52] Jeff_Green: link? [15:43:03] looks ok if you hit the defaults [15:43:05] https://donate.wikimedia.org and enjoy the redirects [15:43:10] nothing I'd ever seen [15:43:22] what are you seeing? [15:43:30] it looks healthy to me [15:43:42] the .00001 thing [15:43:46] maybe it's supposed to looke like that [15:43:50] wat? [15:43:58] details, pls? [15:44:11] Normal donations are coming in... [15:44:24] you guys are pulling both my legs? [15:44:25] ahh, that was a joke, right? [15:44:48] yes, subpenny was a jok [15:44:54] but what's this about redirects and form badness? [15:45:07] title translation, you mean? [15:45:29] ok, thx. Yeah that is making me sad. [15:45:36] * awight checks that the form is translating [15:45:48] I remember seeing that title someplace, probably locally in dev [15:45:57] ok translation of form elements is good. [15:46:45] Checking locally on 1.22 branch, the title of the gc gateway page is 'Make your donation now' [15:47:05] http://coyote.trouser.org/donate.png [15:47:05] Well... I'm gonna reenable the campaigns, and work on the title thing after that. I don't think it's enough to spook donors... [15:47:27] is that normal? the form layout seems...sprawling [15:47:35] Jeff_Green: try increasing browser width [15:47:42] That's the responsive design kicking in [15:48:23] ah, that does look better [15:48:59] are we at a point where I can go get coffee? [15:49:43] Jeff_Green: yep! It's just adjustments from here out. Thanks! [15:50:13] ok, are you ok with losing www-data on payments1004? once I restart puppet it will revert that [15:50:28] Jeff_Green: yep thx [15:50:41] !log campaigns reenabled [15:50:49] Logged the message, Master [15:50:55] grand [16:04:54] aalright, I got my TY. Heading to BART. [16:22:27] hey pizzzacat [16:22:29] ! [16:33:51] (PS1) Ejegg: Move logging into separate module [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/168609 [16:33:53] (PS1) Ejegg: Move config/defaults logic into own module [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/168610 [16:34:52] pizzzacat: Whoops, I wasn't using the /etc config file in the data route. Those two patches should fix it ^^^ [16:47:19] * AndyRussG waves at ejegg pizzzacat atgo Jeff_Green [16:47:24] howdy! [16:47:29] :) [16:47:37] hello hi [16:47:42] :) :) [16:48:29] ejegg: my DjangoBannerStats isn't creating the tables it needs when y do manage.py syncdb... Should I just try running the SQL file manually? [16:48:52] hmm, let me see [16:49:27] yeah, might as well [16:49:30] Also poking around at this stuff https://docs.djangoproject.com/en/1.5/topics/db/sql/ [16:49:40] K I gues worst case I'll just recreate the database... [16:50:50] (CR) Ssmith: [C: 2 V: 2] Move logging into separate module [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/168609 (owner: Ejegg) [16:52:13] (CR) Ssmith: [C: 2 V: 2] Move config/defaults logic into own module [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/168610 (owner: Ejegg) [16:55:05] (PS1) Ejegg: submodule update for logging cleanup [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/168614 [16:55:21] (CR) Ejegg: [C: 2] submodule update for logging cleanup [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/168614 (owner: Ejegg) [16:55:27] (Merged) jenkins-bot: submodule update for logging cleanup [wikimedia/fundraising/dash] - https://gerrit.wikimedia.org/r/168614 (owner: Ejegg) [17:01:17] (PS1) Ejegg: Merge remote-tracking branch 'origin/master' into deployment [wikimedia/fundraising/dash] (deployment) - https://gerrit.wikimedia.org/r/168617 [17:01:39] (CR) Ejegg: [C: 2] "+2 for deployment" [wikimedia/fundraising/dash] (deployment) - https://gerrit.wikimedia.org/r/168617 (owner: Ejegg) [17:05:36] !log updated dash from 58fda9403dd33e4d47238f119b6bb2b2905856b1 to 69c9330d6983873ffa9bb87fcd783be03382bdfc [17:05:45] Logged the message, Master [17:11:01] hey Jeff_Green... finally got you a mingle invite [17:11:03] just sent [17:12:12] i got an invite earlier this week? [17:12:25] well that's not a questoin, but an expression of confusion ^^^ [17:13:07] oh.. haha [17:13:11] then.. i don't know [17:13:16] i have a terrible memory? [17:13:24] also not a question, but an expression of confusion [17:13:34] ha [17:13:43] well the sign-in I thought I did that day doesn't work [17:13:53] maybe it was a phishing scam and my entire life has been exploited... [17:16:17] i wonder if the new invite wiped the old password [17:16:34] OH NO! someone is going to manage ALL YOUR TASKS [17:16:37] maybe.. sorry about that [17:16:43] i tried to tag you in something and it couldn't find you [17:16:48] so i assumed you didn't have an acct [17:16:53] oh then I don't have to do them :-P [17:17:03] I'm FREE! [17:17:10] hehehe [17:17:48] ok i'm in [17:21:08] stupid question: how do I view my tasks? [17:24:58] Jeff_Green: in Mingle? [17:25:18] Everything is shared in fundraising :p [17:26:18] what does that even mean?? [17:26:26] just... trying to be creepy [17:26:51] If u talking about Mingle, I can make a view... you want to see your tasks in the current sprint, or for the indefinite future? [17:26:54] oh. creepy. [17:27:12] i'd be happy with being able to find them at all [17:27:47] Jeff_Green: cos you don't have any :) [17:28:12] ok [17:28:15] Jeff_Green: here's a view of all your zero cards: https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/cards/grid?aggregate_property[column]=estimate&aggregate_property[row]=estimate&aggregate_type[column]=sum&aggregate_type[row]=sum&color_by=estimate&excluded[]=Sprint&expands=77&group_by[lane]=tech+status&group_by[row]=blocked&lanes=Backlog%2CDev+Ready%2CIn+Development%2CPending+Code+Review%2CPending+Deployment%2CDeployed&tab= [17:28:22] good god y'all [17:28:42] Just added that to the Team FAvorites as "my cards - all time" [17:28:49] https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/cards?favorite_id=12120&view=My+cards+-+all+time [17:28:58] huh [17:29:11] puzzling [17:29:24] huh, it has zero cards for me too [17:29:27] that u have no cards? yeah... [17:29:34] no puzzling altogether [17:29:43] oh, i'm signed out [17:29:48] most ticketing systems make the owner of tasks obvious everywhere [17:29:55] oh. yeah we're looking for a 3rd party to kill this service, without leaving any prints leading back to us. [17:29:57] this one seems to hide that entirely in the UI [17:29:58] <_< [17:29:59] >_> [17:30:13] well this is fun [17:30:15] this one has dumbass icons. [17:30:19] Jeff_Green this... UI.. is... [17:30:20] atgo: hi! [17:30:21] dumb [17:30:25] hi!!! [17:30:45] :-( [17:30:56] Jeff_Green but i swear it has some cool features [17:31:03] the graphs are pretty :-P [17:31:36] pretty WRONG [17:31:48] so srsly, though how would I search for tasks by user? [17:32:06] well, there is the "assigned to" user and the "owner" user... [17:32:15] owner is the person who is making the complaint [17:32:19] assigned to is the peon. [17:32:21] k, makes sense [17:32:36] most of the views have a "filter" area in the right sidebar [17:32:52] u can match "current user" or any specific user, to either assigned to or owner. [17:32:59] or atgo can write "MQL" for you [17:33:06] cos every crappy tool needs its own SQL dialect. [17:33:14] i don't see filter on "all" for example [17:33:23] wat. [17:33:26] hahaha [17:33:32] Jeff_Green "all" = (not set) [17:33:35] no wayt [17:33:36] wait [17:33:40] all = jeff green [17:33:41] dang.. that was a silly typo [17:33:42] alles ist [17:33:49] noooo! [17:33:50] it's the top [17:33:55] it says "(any)" [17:34:00] as in any value [17:34:06] this tool makes anyone who touches it immediately turn inarticulate [17:34:17] but it increases your income disproportionately, apparently [17:34:22] mwalker|alt ! but really, how are the flying cars [17:34:32] :p mwalker|alt you missed it, we get paid in helicopter rides now. [17:34:44] garghamrhbhb [17:34:54] starting here: https://wikimedia.mingle.thoughtworks.com/projects/online_fundraiser/overview [17:34:59] unfortunately, they are one-way only. [17:35:28] Jeff_Green: try the "backlog" tab [17:35:34] if you want eyespam [17:35:44] Jeff_Green i can totally show you around sometime if that would be helpful [17:35:44] [all tech backlog] right? [17:35:56] yeah [17:36:24] ok I see lots of cards, and I have options to display them in a grid vs list [17:36:26] select tree [17:36:31] rank them [17:36:53] Jeff_Green: the tool is designed to give the appearance of productivity, while disabling any form of actual communication or progress. [17:37:13] har har [17:37:15] atgo: flying things is amazing; I miss y'all, but I cant say I'm sad I made the move [17:37:20] C is so much better than PHP/JS [17:37:22] they made sure that the "search" feature was almost completely unusable. [17:37:28] OOh group by.. that's something [17:37:31] mwalker|alt well that's the best possible outcome :) [17:37:34] mwalker|alt: we can't say we're sad, either :p [17:37:38] awight: paid in heli rides? does that mean you can drop naughty servers onto WorldPays offices? [17:37:50] your visit to IRC is perfectly timed [17:37:54] awight: awwww; discovering all the horrible code I hid away? [17:37:58] we just started running in france [17:37:59] we dropped a rock candy mountain on that whole mess. [17:39:22] I profusely appologize to whoever had to take over the worldpay code from me [17:39:26] and make it work in france [17:39:32] haha that'd be k4... [17:39:40] on the plus side, she got it out the door the day before her birthday [17:39:41] ... who is currently at death's door. [17:39:42] and is now sick [17:39:44] yah [17:39:47] who I notice is suspiciously absent [17:39:59] didn't you guys get her application? [17:40:08] "worldpay refugee status" [17:41:34] heee [17:41:42] sadly we aren't hiring right now [17:41:45] mwalker|alt: don't be a stranger, though. You get Fridays off or something? [17:41:51] but I do plan on letting her know when we are [17:41:59] I'll... [17:42:04] You'd better not. [17:42:08] awight: sadly no, and this place doesn't let me work remotely [17:42:22] too many secrets [17:42:38] but I'll probably wander by on Dec 2nd; because I'm taking that day off due to having travelled home that morning [17:42:41] (setec astronomy) [17:42:51] woot! [17:43:26] that's a tuesday though; are you still doing the mon,wed,fri thing? [17:43:41] sort of... gave the gravy train notice however. [17:43:49] I better have disengaged by then. [17:43:57] plus: exceptions [17:44:16] u need CS6 or anything :) ? [17:44:25] heh, alright then, put it on your calendar, late lunch with matt on the 2nd [17:44:30] I have a fully loaded .vdi with me at the moment... [17:44:36] you got it [17:45:26] ejegg: wrt the pagetitle fubar, I found something very interesting... try grepping for -i "make a donation" ... [17:45:33] oh? [17:45:35] that i18n key does not appear anywhere... [17:45:44] hrm [17:46:23] wasn't it 'make your donation'? [17:46:23] mwalker|alt: btw, it's like a neutron bomb went off here. Maybe this talk about accountability is spooking the stable. [17:46:50] ejegg: OH thx. apparently that other string is unused now. [17:47:22] yah, globalcollect_gateway/i18n/en.json: "globalcollectgateway": "Make your donation now", [17:50:56] ejegg: awkward. I created MediaWiki:Globalcollectgateway on my local, and it populates the page title. Should load from the json file if that doesn't exist, though! [17:53:45] awight: accountability? you mean the various edicts Lila was issuing and Terry's re-org plan? [17:54:37] SOMEthing like that. Probably just generalized uncertainty paired with median wages. [17:54:59] heh [17:55:30] AndyRussG: re buckets, I've been working on general documentation: https://www.mediawiki.org/w/index.php?title=Extension:CentralNotice/Banner_loading [17:55:42] so it might be easier to communicate what we're changing... [17:56:39] awight: nice! [17:56:44] mwalker|alt: I can't tell whether LTretikov has issued any edicts yet, but even kinds words spoken with a Russian accent can scare people. [17:57:28] AndyRussG: glad you think so--I'm gonna finish that today, once the smoke from this payments upgrade turns white... [17:57:44] awight: maybe that's a hangover from having been a kid during the cold war? [17:58:01] "You must drink 150 ml of vodka with fish." [17:58:13] Did she really say that? [17:58:21] * awight clutches protestant cross [17:58:24] standup? [17:58:31] nah. But I have heard those works spoken in a Russian accent. [17:58:57] granted, by a 300-lb patriarch whose entire family was in underwear... [17:59:29] ok; I'm going to have to disappear again for a meeting; but just to plant the idea in peoples heads if they're interested -- thanksgiving at my place [17:59:59] party time, excellent! [18:00:26] atgo: sending self hangout link :( [18:00:28] awight AndyRussG [18:02:00] GRR [18:02:34] https://plus.google.com/hangouts/_/wikimedia.org/fr-tech-daily?authuser=0 [18:03:11] I ain't drinkin a stinkin' fish [18:11:37] :) wise guy, eh? [18:11:53] atgo: I can't make 2:00 cos Zero already grabbed my calendar [18:12:19] shoot. they didn't invite you. gah [18:12:52] atgo: also wanted to ask PPena why we would pursue a new fraud solution, if we're getting lower fraud rates than normal. Maybe the idea is that we're overlooking some potential fraud? [18:13:08] atgo: yeah--should I move the Zero meeting? What's the agenda, anything I'm useful for? [18:13:16] yeah they want you there [18:13:25] urp. [18:13:27] ok [18:13:28] yeah that would be great [18:13:31] it's about reviewing some stuff i think [18:13:44] if you can move zero that would be good... you're cced on the email with gr but not sure why they didn't include you in the event [18:14:46] atgo: sure, n.p. it's being moved. [18:15:05] atgo: btw, are you in before or after lunch? Do I have to meet new people?? [18:15:16] meet? [18:15:33] eat and meat [18:15:45] * awight clutches security blanket [18:16:13] what is ahppening at lunch? [18:16:34] ejegg: awight: http://gw.gd/5upc [18:16:40] Um, I would be eating alone or with new people. Not actually worried, it's just that my food clock is ticking. [18:16:57] ah yeah i'm wfh today [18:17:07] k no problem [18:17:34] ^ pastebin of impression loader output [18:17:35] AndyRussG: that looks like an issue. [18:17:42] borken regex... [18:17:50] Yeah slightly... [18:17:50] oh god I hope it's not a regex. [18:18:00] It's a regex [18:18:08] No. [18:18:10] NO [18:18:25] Regex with a capital "R" that rhymes with "P" that stands for "Pool"! [18:18:36] Regexen Rule! [18:18:58] OK yeah so I was wondering if that's something that normally happens or doesn't [18:19:44] * awight throws the towel at everything. [18:20:07] That's... not gonna work, cos of the bug we already discovered, where the parameters can appear in any order. [18:20:12] I wonder what changed... It's the regex for parsing the whole line, not parsing the URL parameters [18:20:27] regex.squidline [18:20:27] aha ok [18:20:43] sorry. I thought I saw an url parse at some point. [18:21:21] There is one... but it's not a regex, it uses urlparse [18:22:02] I gues the udp-filter change is letting through varnish log lines that it didn't let through before, that somehow break the squidline regex [18:22:11] hehe (?P[\S]+) # Client IP address [18:22:29] future-proof [18:22:58] that regex is not anchored, which makes me nervous. Needs ^...$ [18:23:13] Or perhaps we're doing a re. exact match [18:23:31] mmm, no such thing it seems [18:23:34] needs anchors. [18:23:44] It just says m = squidline.match(l) [18:23:53] All the \s should be \s+ [18:23:58] that might be it... [18:24:57] Hmmm [18:25:29] K just to check: the expectation is that no lines bork with *** NO MATCH... ? [18:26:24] I think that should only happen if it is in fact not a RecordImpression line [18:26:42] In fact, there's no check for RecordImpression [18:26:51] So it should match unless the data is actually damaged. [18:27:06] like, some other kind of logline... [18:27:34] awight: OK sound güt [18:28:35] what is this about? # (?P[\S\s]+) # User-Agent header [18:28:46] (ignore initial #) [18:29:02] that looks bad, it will consume everything. [18:29:34] well, I bisected and that was the clause that broke [18:30:07] it's eating too much. I'll pastebin [18:30:41] AndyRussG: https://tools.wmflabs.org/paste/view/799bbd75 [18:30:53] sorry, and now I'll stop procrastinating my own odious work [18:31:43] awight: thanks!! [18:32:00] yeah, any time I can get in the way let me know :p [18:32:42] so awight just confirming - you are good for 2pm? [18:32:46] yep [18:34:18] awight: not in the way, on the contrary much appreciated [18:34:47] I have a creepy attraction to regexes [18:35:06] can't say that ever works out well. [18:36:02] awight: Maybe you could use them to parse XML responses from WorldPay [18:36:11] ooof [18:36:14] Or...er...whatever that dumb thing is [18:36:49] It's not like I can tell my regexes what to do. [18:39:02] marktraceur: hey. Would you know why my pagetitle translations are not being substituted in? [18:39:29] You probably screwed it up. [18:39:34] No, I don't know [18:39:49] lol ok then [18:40:49] * awight cries for help on wikimedia-dev [18:42:26] aww xrist. I accidentally saw this commit: https://gerrit.wikimedia.org/r/166295 [18:42:33] We have a custom form of JSON now! [18:46:54] We what [18:47:31] Oh, wow. [18:47:38] awight: I mean, it's a superset [18:47:39] It'll work [18:48:49] superset is not good in this case, tho--our json will not be compatible with any other parser, right? [18:56:50] (PS1) Awight: typo in i18n paths [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/168639 [18:56:54] high priority ^^ [18:58:54] (PS1) Awight: update deployment branch review target [extensions/DonationInterface] (deployment) - https://gerrit.wikimedia.org/r/168641 [19:00:02] (CR) Awight: [C: 2] "non-code self-merge" [extensions/DonationInterface] (deployment) - https://gerrit.wikimedia.org/r/168641 (owner: Awight) [19:00:12] awight: True, but if we only use it on very mw-specific use cases, then it might be OK [19:00:55] marktraceur: hehe we should just use YAML in that case [19:01:29] marktraceur: for your entertainment, the untranslated title was a ridiculous bug: https://gerrit.wikimedia.org/r/168639 [19:01:36] u want to review? :) [19:01:47] (PS1) Awight: Merge remote-tracking branch 'origin/deploy-payments_1.22' into HEAD [extensions/DonationInterface] (deployment) - https://gerrit.wikimedia.org/r/168642 [19:02:26] Nooope [19:02:32] :P [19:02:38] wise man [19:02:48] ejegg: u !lunch? [19:02:57] I have reveeeiws for u... [19:03:20] hi awight, will take a look in 1 min [19:06:43] wow, how did the i18n paths work before? [19:07:08] mw 1.22 uses a different mechanism to find the files... [19:07:25] a compatibility shim that reads the newer json directory tree [19:07:39] so the new global var was not being used [19:07:51] (CR) Ejegg: [C: 2] "How was this working all along?" [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/168639 (owner: Awight) [19:08:06] (Merged) jenkins-bot: typo in i18n paths [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/168639 (owner: Awight) [19:11:36] (CR) Awight: [C: 2] Merge remote-tracking branch 'origin/deploy-payments_1.22' into HEAD [extensions/DonationInterface] (deployment) - https://gerrit.wikimedia.org/r/168642 (owner: Awight) [19:11:53] (Merged) jenkins-bot: Merge remote-tracking branch 'origin/deploy-payments_1.22' into HEAD [extensions/DonationInterface] (deployment) - https://gerrit.wikimedia.org/r/168642 (owner: Awight) [19:12:46] (PS1) Awight: Merge remote-tracking branch 'origin/master' into HEAD [extensions/DonationInterface] (deployment) - https://gerrit.wikimedia.org/r/168643 [19:12:54] (CR) Awight: [C: 2] Merge remote-tracking branch 'origin/master' into HEAD [extensions/DonationInterface] (deployment) - https://gerrit.wikimedia.org/r/168643 (owner: Awight) [19:13:12] (Merged) jenkins-bot: Merge remote-tracking branch 'origin/master' into HEAD [extensions/DonationInterface] (deployment) - https://gerrit.wikimedia.org/r/168643 (owner: Awight) [19:16:08] (CR) Awight: "For the record:" [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/168639 (owner: Awight) [19:22:00] !log updated payments from 6fa864d4aaa22b9f271de4bc662be68bb0b40b56 to 525988487d6bbd08ddad50badd88e34e34104292 [19:22:08] Logged the message, Master [20:03:22] ejegg: can I bug you with a question about the scrubbed logs u sent? :) [20:03:30] sure, go ahead [20:03:57] think the scrubbing screwed up the regex? [20:04:16] thx! ... I'm just getting some cases where there seems to be no whitespace character between some of the fields [20:04:23] oh, odd [20:04:26] So I just wanted to confirm that's legit [20:04:40] Here lemme get an example [20:04:43] I used awk, and set FS="\t" and OFS="\t" [20:05:12] awk--hmm yeah I'm a full-on awk virgin [20:05:26] cp1052.eqiad.wmnet 20626651700 2014-10-23T16:00:01 0.000216246 1.1.1.1 hit/200 20 GET http://meta.wikimedia.org/wiki/Special:RecordImpression?country=VN&uselang=en&project=wikipedia&db=enwiki&bucket=0&anonymous=true&device=desktop&reason=empty&result=hide - image/png http://referrer.com -useragent vi-VN,vi;q=0.8,fr-FR;q=0.6,fr;q=0.4,en-US;q=0.2,en;q=0.2 php=zend [20:05:47] compared to... [20:05:51] amssq41.esams.wmnet 4753471985 2014-10-23T16:00:01 0.000822306 1.1.1.1 hit/200 20 GET http://meta.wikimedia.org/wiki/Special:RecordImpression?country=IT&uselang=it&project=wikipedia&db=itwiki&bucket=0&anonymous=true&device=desktop&banner=B14_1021_itIT_txt_cof&campaign=C14_itIT_dsk_FR&reason=alterImpressionData&result=hide - image/png http://referrer.com - useragent it-it php=zend [20:05:56] so, no tab between useragent and the preceding dash [20:06:01] Yep [20:06:05] And sometimes no dash also [20:06:09] dang, really? [20:06:15] let me check the originals [20:06:31] cp1067.eqiad.wmnet 20685078273 2014-10-23T17:55:40 0.000148773 1.1.1.1 hit/200 20 GET http://meta.wikimedia.org/wiki/Special:RecordImpression?country=US&uselang=en&project=wikipedia&db=enwiki&bucket=1&anonymous=true&device=desktop&reason=empty&result=hide - image/png http://referrer.com useragent en-US php=zend [20:06:39] ^ example of the original [20:06:40] thanks! [20:07:02] sorry I meant ^ example of one with no dash [20:07:31] oh yeah, i see [20:08:07] kinda makes regex parsing not so working-like [20:08:17] OK, fuound the first one, and there is definitely a tab after the dash between referrer and useragent [20:08:24] bummer [20:08:37] let me see if I can make that better [20:08:38] Woo! Ok well still good news on the regex fixing front :) [20:08:49] Hey Jude! [20:08:55] heh [20:09:36] Yeah the places it was borking was on the ones with no dash or with the dash and the UA stuck together [20:10:40] weird, if I just run that awk script on the one line, it comes out with a tab in the right place [20:13:01] Hmm lemme check the logs as I have received them [20:13:09] uhh, weird. If I look at that log as I sent it, it's got the tabs [20:13:14] let me look for the missing dash [20:14:40] OK, the one with the missing dash is missing the dash in the original too [20:14:53] Yeah that also checks out here... [20:14:57] but it has two tabs, not one [20:16:52] Yeah the number of whitespace characters is definitely an issue [20:17:07] omg two tabs [20:17:12] * awight falls off floormat [20:17:31] that's a really fun sort of problem [20:17:37] Here also the one that was output in the log with no space between the dash and useragent in the file does have some space on my local copy too [20:18:27] sorry for the \s+ red herring! [20:19:47] AndyRussG: yeah, the two tabs seem to have made it through awk intact and into the gzipped stuff I sent [20:21:09] awight: Ah no it is also part of the problem [20:21:13] AndyRussG: you want to chat buckets at 7 EDT, or is that too late? [20:21:24] I mean the extra spaces are definitely there sometimes [20:21:41] luckily, the verbose regex format makes it sort of easy to search for tab literals... [20:21:46] I think. [20:22:12] awight: do you have any other slots? If not then that's fine... [20:22:38] 1:30-2:00, if you want [20:22:57] I feel a bit naked without having finished the banner loading documentation, though :) [20:23:27] I have this suspicious that once it's all written down, we can just throw a dart at the right places to add new hooks... [20:23:28] Or what about later, like 7 or 7:30 PDT? [20:23:40] that could work! [20:24:09] Did you have things you've come up with? [20:24:22] I've been too busy with the other tasks... [20:24:26] yeah me to [20:24:41] I just kinda feel it would be nice to give folks an idea of where we could go with it [20:24:57] hmm... [20:25:14] albeit even just a very general idea [20:25:24] maybe we stew on it over the weekend, and catch up early Monday? [20:26:26] Also fine if that's better... I think a first phase could be just to stabilize the buckets and place them in a per-campaign cookie, easy to roll out I think... [20:26:32] The part I want to clear up is a general mechanism in the banner controller, which takes something abstract in the user's cookies and adds arbitrary parameters to the BannerRandom request. [20:26:42] yeah that is key, for sure. [20:27:22] And, peter went ahead with the bundled banner option, to proof-of-concept their plan, so they could come back and say it's a waste of time :-/ [20:27:49] This is probably the lowest priority piece, but I do think it's valuable to get an extensible mechanism in there, eventually. [20:28:37] yeah top priority would be just to make buckets reliable no? [20:28:43] mos def [20:28:59] We're well prepared to explain that much on monday :) [20:41:48] ejegg: awight: ...and my python IDE is automagically converting single tabs to multiple spaces when I past stuff into my test script bwahahaha [20:43:36] aha! [20:44:14] awesome :) A case of FUDTRT [21:18:07] FUDTRT? [21:19:04] Whatever that was I got even more--copy-pasting from my terminal window (vanilla Gnome terminal) borg'ed the whitespace characters on the newline--that's why I was getting no space between some fields, grrr [21:19:18] thanks for checking ejegg sorry for the useless bother [21:19:42] man I never expected Gnome terminal would do something like that [21:20:07] I mean, either that or it was the grep command that I was copying the output of, less likely tho [21:24:44] heh, no worries [21:26:31] phew, OK reprocessing, I think I got it now [21:31:45] so far so good, processed 2 files wth 0 falied [21:43:33] ejegg: awight: The log parse regex is working now and is correctly exctacting at least some stuff... Where do the logs go? I don't see the aggregate data in the DB... [21:43:55] Hmmm I think that was in settings... [21:44:19] you guys are awesome. [21:44:30] and i have to run offline... need anything? [21:46:47] oof [21:46:54] atgo: 12-pack pls [21:47:02] atgo: thx... all good here I think... [21:54:11] ejegg: awight: just one didn't match https://tools.wmflabs.org/paste/view/3ad4d712 [21:54:30] pls ignore the format in the pastebin it's copied from a terminal that's too smart for its britches [21:54:46] specifically the format of the line that didn't match 8p [21:55:11] you have a guess as to what didn't match? [21:55:20] gimme a sec... [21:56:34] looks like -useragent, again? [21:56:48] awight: yeah that's the thing you should ignore [21:56:56] oh hrrm [21:56:57] my gnome-terminal thinks it knows shit [21:57:03] gnope [21:57:15] cp1055.eqiad.wmnet 20641027510 2014-10-23T17:46:26 0.000195980 1.1.1.1 hit/200 - GET http://meta.wikimedia.org/wiki/Special:RecordImpression?country=US&uselang=en&project=wikipedia&db=enwiki&bucket=0&anonymous=true&device=desktop&reason=empty&result=hide - image/png http://referrer.com - useragent en-US,en;q=0.8 php=zend [21:57:16] space-gnostic [21:57:44] ^ that's the real line that didn't match [21:58:00] lemme git review a version w/ the current regex [21:58:20] (PS2) AndyRussG: Count more hide reasons and update log parsing [wikimedia/fundraising/tools/DjangoBannerStats] - https://gerrit.wikimedia.org/r/168343 [21:59:58] can you paste the regex? [22:00:15] oh, sorry, guess it's in the new patchset [22:01:13] It's the dash just before the GET I think [22:02:06] the "reply" field [22:03:10] (PS3) AndyRussG: Count more hide reasons and update log parsing [wikimedia/fundraising/tools/DjangoBannerStats] - https://gerrit.wikimedia.org/r/168343 [22:03:33] K one more run on that file... [22:07:15] guys if this works I'm gonna make a run for it in a few minutes... I looked at the db and it looks fine but I didn't get to pulling the aggregate data... am I right in thinking that it just goes to a log that I have to hook into somehow? [22:07:40] umm, let me see [22:08:26] I'll be halfway or 1/3 of the way here again in about 45 minutes and will be fully back to check the aggregate data fully after 7 pm PDT about [22:09:03] ejegg: K that regex works, no unparsed log lines [22:09:04] Wait, it goes into the bannerimpressions table, right? [22:09:07] woohoo! [22:09:08] awight: ^ [22:09:36] I would have thought it would go there [22:10:17] But I only a lot of the hide/empty/reason stuff being written to a log in banner impressions 2 aggretate [22:10:23] I could easily be missing something [22:11:02] do you have debug set? [22:11:09] Looks like it skips the insert in that case [22:13:41] ejegg: I do have debug set... Where in the code does it insert all of that result stuff from the log parse? [22:14:08] around line 357 in orig: [22:14:09] if not self.debug: [22:14:10] self.write(counts) [22:14:27] write is the function that does the insert [22:14:37] this is in LoadBannerImpressions2Aggregate [22:15:28] ejegg: yea... [22:18:07] So I see the results variable... [22:19:22] and there's counts... [22:19:51] yeah, it doesn't seem to insert reasons in the db [22:21:25] K maybe I'm not crazy... Though I see I should turn off debug... [22:21:27] just counts grouped by time, banner, campaign, project, language, and country [22:22:13] L205: counts = dict() [22:23:31] yep, then it populates that with keys that are concatenations of those vars i mentioned [22:23:32] where does it set any values in counts? [22:23:48] 332ish [22:24:02] ah yes bllggggg [22:24:15] 353 [22:24:32] right, let me pull that patchset [22:24:50] K :) [22:25:22] I'm gonna bolt, will be semihere again soon :) and fully again later [22:25:31] ok, see ya then [22:25:35] ejegg: awight: thanks!! see ya [22:25:38] * AndyRussG makes a run for it [23:09:15] omg, debug changes behavior? [23:09:27] awight: looks like it [23:09:32] grr [23:09:41] if not self.debug: [23:09:41] self.write(counts) [23:09:52] L375 [23:10:03] jfyi, nobody is going to cry if this thing can't be defribillated. [23:10:09] No more log parsing errors [23:10:31] ok. /me silently pockets cattle prod [23:11:25] awight: I looked briefly at the DB and seemed sane [23:11:47] cool! yeah sort of unsurprising that it isn't recording reason [23:11:59] Or maybe it is and I didn't see? [23:12:02] that would be really nice to have, while you're in there... [23:12:09] Ah OK I could do that [23:12:36] I'm not sure how much testing is needed before merging the patch (and deploying?) and restarting the jenkins job [23:14:43] meh, we have nothing at the moment, so if you want to deploy before "reason" is implemented, I'm game. [23:15:03] alternatively, we can wait until you do the luxury features, then backfill the missing data. [23:15:24] I guess it comes down to your schedule, whether you need to focus on other stuff now? [23:15:36] What about Db backups in case something goes haywire? [23:15:57] good idea :) [23:16:26] I believe they're taken regularly, but I usually ask JGreen to confirm before going hog wild. [23:16:50] cmjohnson: do you have a minute to confirm we have a recent (few days old or less) backup of the "pgehres" database? [23:16:53] Hmmm he seems to have gone [23:17:10] I'm hoping to conjure his opsen brethren [23:19:10] uups wrong spell [23:20:15] If it's doable, my vote would be for deploying and doing the new feature on a separate patch and juggling priorities [23:21:32] AndyRussG: that sounds great [23:21:48] is that patch above ready for review? [23:21:58] yip [23:22:40] AndyRussG: just to clarify, the hide reasons are not going into the dm? [23:22:43] db [23:22:52] cos that's what I remember from before your fix. [23:23:07] awight: I wish I were 100% sure. It's going in the array [23:23:16] And that is written to a log [23:23:21] That's what the patch is for [23:23:41] is the other impression data hitting the db? [23:23:47] https://gerrit.wikimedia.org/r/#/c/168343/ [23:24:36] onesec lemme pastebin [23:25:12] https://tools.wmflabs.org/paste/view/73ee8444 [23:25:23] woohoo! [23:25:52] hope that looks right [23:26:18] yeah, now that I see the schema, perhaps we should hold off on "reason" until the rewrite. [23:27:57] how are the [\S\s]+ patterns okay? [23:28:13] Seems like it would gobble arbitrarily much? [23:28:22] awight: I was gonna ask isn't that the same as . ? [23:28:25] that is the same as ".+", afaik [23:28:26] yeah [23:28:35] heheheh [23:28:51] grr, I think okeyes was telling me, some UA strings include \t [23:29:08] of the sample logs all got parsed [23:29:18] What about using "\t" in place of the \s field separators? [23:29:31] then, [\S ]+ for UA and x-carrier... [23:29:44] Isn't \t included in \s ? [23:29:46] Yeah that's odd that it's parsing correctly. Not sure I can explain that [23:29:53] yes exactly what bothers me [23:30:07] Hmmm [23:30:32] I was imagining that user agent might even have spaces [23:30:47] I thought that's what it was for [23:33:29] that could be handled by [\S ]+ though... [23:33:33] I wouldn't be surprised if there are borky edge cases, at least it worked with "useragent" which is what UA is in my scrubbed copy of the logs [23:33:36] \s is just... hella wrong [23:33:50] that's still suspicious, but plausible :) [23:33:55] UA will definitely contain spaces, though. [23:34:32] oh I think I see why it works--it looks for the longest matching substring that will still satisfy the expression... [23:34:32] And hopefully not tabs? [23:34:42] yeah if it has a tab... I'm fine failing the line :) [23:34:54] Still it might well confuse fields even thought it'd still parse [23:35:09] The anchors you suggested make it more stable too. It has to stretch across the whole line now [23:36:18] I can also test it with \t [23:37:18] I'm fine +2'ing now. U compelled to do more fix? [23:37:23] I don't think we even use those fields... [23:39:37] (CR) Awight: [C: 2] "Woohoo!" (4 comments) [wikimedia/fundraising/tools/DjangoBannerStats] - https://gerrit.wikimedia.org/r/168343 (owner: AndyRussG) [23:40:29] \o/ many thanks!!! [23:41:08] Should have kept quiet about the other stuff, any time you can see 5 lines of context in that code, there are going to be other surprises :~/ [23:42:50] It is true that it's involved... Actually a pretty new kind of setup for me [23:43:02] I imagine we might one day want unit tests and integration tests? [23:43:20] hell no. [23:43:38] at least, my opinion is in... #2037 [23:44:02] * awight fumbles for number [23:44:08] Ahhhh K I'll take a look [23:44:13] yeah that one. [23:44:21] I'm happy to be wrong, of course! [23:44:45] mmm me too heheh :) [23:44:56] But while we're moving to the Hive queries... we can do most of the fun stuff in map-reduce logic, using intermediate tables... [23:45:15] ... then just copy that stuff into MySQL for online access [23:45:20] Yeah I'd rather make that snazzy [23:45:24] no kidding [23:45:29] and lose Django in the process. [23:45:51] Nice if you're doing a pervy geek UI [23:46:07] but not nice if you just want to import a durn file [23:46:29] hmm interesting [23:46:51] awight: thanks a ton! My level of semi-presence is dropping severely but ... I'll be back :) [23:49:55] hehe chow [23:56:05] Ooh, useragent totally has spaces