[01:11] <wgrant> StevenK: Hm, you didn't move the two constants?
[01:11] <wgrant> AFAICS you just renamed them.
[01:11] <wgrant> PRIVATE_BUG_TYPES etc.
[01:11] <StevenK> I was supposed to move them?
[01:12] <wgrant> I said they should be alongside the enum.
[01:12] <wgrant> Perhaps I was unclear.
[01:12] <wgrant> But there's nothing bug-specific about them.
[01:16] <StevenK> wgrant: Sorry, I've moved them to registry.enums
[01:16] <wgrant> Thanks.
[01:20] <cody-somerville> sinzui, That page seems to scroll really slowly in my Firefox.
[01:21] <wgrant> cody-somerville: For which project?
[01:21] <cody-somerville> bugsy
[01:22] <wgrant> Approximately how many rows does it have?
[01:23] <cody-somerville> a lot.
[01:23] <wgrant> Ubuntu has nearly 20000, which is a lot.
[01:23] <wgrant> Launchpad has a few hundred, which is a lot.
[01:23] <wgrant> What is a lot?
[01:24] <cody-somerville> probably less than 100
[01:25] <wgrant> Ah
[01:25] <wgrant> Not a lot :)
[01:29] <StevenK> wgrant: I guess I should kill IBug.set{Private,SecurityRelated} and related gubbins?
[01:29] <wgrant> StevenK: Something like them is still necessary for the API.
[01:29] <wgrant> (and +secrecy)
[01:30] <StevenK> Rargh, setPrivacyAndSecurityRelated is still exported.
[02:34] <wallyworld_> StevenK: you ocr?
[02:49] <wgrant> StevenK: Here, I made three code reviews, just for you :)
[02:51] <wallyworld_> and one from me
[02:51] <wallyworld_> https://code.launchpad.net/~wallyworld/launchpad/tri-state-sharee-picker-959784/+merge/98556
[02:51] <wallyworld_> it's mainly javascript too, and i know StevenK loves javascript :-)
[02:52] <wallyworld_> and if he does them soon, we can make the next buildbot run :-)
[02:54] <StevenK> I was reviewing my lunch.
[02:54] <lifeless> nom
[02:54] <StevenK> wgrant: Three? I can only see two.
[02:55] <wgrant> It would help if I submitted the MP for the last one.
[02:56] <StevenK> Haha
[03:02] <StevenK> wgrant: All three done.
[03:02] <StevenK> wallyworld_: You're up now.
[03:02] <wgrant> StevenK: Thanks.
[03:07] <StevenK> wallyworld_: Three comments, the first two are not optional, the last one is.
[03:14] <wallyworld_> StevenK: thanks
[03:51] <StevenK> wallyworld: If you hold down the "Propose merge" button it brings up 3 or 4 spinners and then errors horribly
[03:51] <wallyworld> StevenK: so don't hold the button down :-P
[03:52] <nigelb> lol
[03:53] <huwshimi> StevenK, wallyworld: Clearly we need to have a notice that says "do not press more than once". I think that's how the banks handle it.
[03:54] <wallyworld> huwshimi: yes, or something like that. disable on click even
[03:54] <StevenK> No, I think we need do it on mouseUp
[03:54] <wallyworld> yes, you are right
[03:54]  * huwshimi thinks wallyworld missed the joke
[03:54] <StevenK> I didn't think you got mulitple mouseDown events if you held the button down
[03:55] <wallyworld> me wither
[03:55] <wallyworld> either
[03:55] <lifeless> stub: wgrant: have the two of you spoken about not using FK's in the FACT tables ?
[03:56] <wgrant> No, but indeed we should.
[03:56] <wgrant> stub: So I heard you like foreign keys.
[03:56] <nigelb> ("Yo dawg")
[03:56] <nigelb> I just imagined wgrant say it with that added.
[03:57] <stub> wgrant: I shirley dooly
[03:58] <wgrant> stub: I'm not sure they're valuable on fact tables.
[03:58] <wgrant> And in some cases they're not possible.
[03:58] <wgrant> eg. denormed arrays
[03:58] <stub> wgrant: Looks like they will be in 9.2 or 9.3 :)
[03:58] <stub> But sure, if PG doesn't support it that is a good reason to not use that case.
[03:58] <wgrant> Given that they're maintained by tested triggers from FKed columns, the only purpose they serve seems to be to cause slow writes :)
[03:58] <wgrant> Oh really?
[03:58] <wgrant> Hmm
[03:59] <wgrant> Oh, I see a patch. Nice.
[03:59] <stub> I'm fine with not having them if the table is driven by triggers.
[04:00] <stub> It is a harder decision to make if writes are distributed over more code, as we are more likely to screw up.
[04:00] <wgrant> Right. For tables that are fairly simple, written only by triggers, and easy to regenerate quickly if something does break horribly, I think they're not worth it.
[04:00] <wgrant> If app code is touching them, agreed.
[04:01] <stub> So are the fact tables going to reference libraryfilealias (for, say, patches) or person?
[04:02] <wgrant> They reference Person, but not LFA.
[04:02] <wgrant> Which is slightly interesting.
[04:02] <stub> Will need some special well commented code in person merge then
[04:02] <wgrant> But the triggers handle the person merge case fine.
[04:02] <stub> Ok.
[04:02] <stub> oh, of course.
[04:03] <stub> is all fine
[04:04] <wgrant> That array FKs thing is really nice, though.
[04:05] <wgrant> Might actually make them practical for normal use.
[05:11] <lifeless> poolie: hi
[05:12] <lifeless> wgrant: small arrays only probably, don't want them TOASTed (to be better than a separate table.. perhaps)
[05:15] <wgrant> lifeless: TOAST isn't too bad in some situations.
[05:15] <lifeless> its fine as long as you're not using an ORM that requests every field always
[05:15] <wgrant> Ahem
[05:15] <lifeless> ok
[05:15] <lifeless> so thats hyperbole
[05:15] <lifeless> but not all that far off
[05:15] <wgrant> (fortunately the ORM isn't going near my array table :))
[05:16] <wgrant> Also, isn't the TOAST threshold like 8KiB?
[05:16] <wgrant> That's one large array.
[05:16] <lifeless> nah
[05:16] <lifeless> that would be 2 pages
[05:17] <poolie> lifeless, hi
[05:17] <lifeless> 2K I think
[05:17] <wgrant> Pages are 8KiB.
[05:17] <poolie> does lp actually dislike docstrings on tests, or does it just tend to not have them?
[05:18] <lifeless> bit of both
[05:18] <lifeless> they aren't very useful, and the rules for docstrings are rather awkward for comments on many tests
[05:18] <lifeless> also they tend to be redundant with well chosen test names
[05:18] <StevenK> I prefer a comment at the top of a test, but I may forget to add one.
[05:19] <lifeless> wgrant: I have no idea why I thought 4KiB
[05:19] <wgrant> lifeless: Because every other computing definition of "page" is 4KiB.
[05:19] <lifeless> yes
[05:20] <lifeless> The TOAST code is triggered only when a row value to be stored in a table is wider than TOAST_TUPLE_THRESHOLD bytes (normally 2 kB). The TOAST code will compress and/or move
[05:20] <lifeless> http://www.postgresql.org/docs/8.4/static/storage-toast.html
[05:20] <wgrant> Ah
[05:22] <wgrant> I concede.
[05:24] <poolie> i know unittest used to have stupid behaviour where it would not print the test name if there was a docstring
[05:24] <poolie> but i'm pretty sure that's fixed in lp's test runner
[05:24] <wgrant> poolie: I think our testrunner still does.
[05:24] <wgrant> Hmm
[05:24] <wgrant> Maybe that was fixed.
[05:24] <wgrant> Or I'm thinking of another project.
[05:24] <wgrant> Oh goody.
[05:24] <wgrant> code.launchpad.net is magically faster now.
[05:24] <wgrant> And Bugs is slowly speeding up.
[05:24] <wgrant> wtf launchpad why are you doing this
[05:24] <wgrant> don't get better without us doing anything :/
[05:30]  * wgrant breaks the world with HTML5.
[05:36] <lifeless> stub: so wtf with bugtag.name
[05:36] <lifeless> stub: how was 8.4 working at all ?
[05:36] <stub> lifeless: I have no idea
[05:36] <lifeless> stub: tests failed for you ?
[05:37] <stub> lifeless: Either somehow that code path was never reached, or there is some odd scoping going on with 8.4 that allowed it to work (maybe another table with the same alias in the outer scope?)
[05:37] <stub> Yes, picked up with a failed test run. Testing my 9.1 ec2 image.
[05:37] <wgrant> That code path should have been reached, though :/
[05:37] <stub> I'd seen it before, but thought I'd fixed it already.
[05:38] <wgrant> stub: That code is fairly new
[05:38] <stub> There are still a few other tests failing I want to fix later today.
[05:38] <wgrant> And should really just be deleted.
[07:42] <stub> salgado's email re: conjoined bugs confuses me, and leads me to fail to discover any actual definition of a conjoined bug.
[07:45] <stub>     _NON_CONJOINED_STATUSES = (BugTaskStatus.WONTFIX, ) is probably what confuses me the most
[07:46] <wgrant> stub: That's the bit of the definition that nobody remembers.
[07:47] <wgrant> A bugtask conjoinment relationship has two halves: the master and the slave.
[07:47] <wgrant> The master task is the development series task: a productseries, distroseries, or sourcepackage task.
[07:48] <wgrant> The slave task is the non-series task: a product, distribution or distributionsourcepackage task.
[07:48] <wgrant> Conjoinment implicitly occurs when there is a task for the development series.
[07:48] <wgrant> The slave is no longer directly editable, instead being mirrored from the master.
[07:48] <wgrant> *Except* when the master is marked Won't Fix, in which case the conjoinment relationship is broken, and the slave is separate again.
[07:49] <wgrant> It's like somebody tried to devise the most obscure set of rules they could think of.
[07:50] <stub> Yer. Your definition makes sense. I suspect it would have benefited from rethinking the data model around those rules at the time.
[07:50] <wgrant> You'd think.
[07:51] <lifeless> well
[07:51] <lifeless> the whole problem was one of model leaking
[07:51] <lifeless> nominations contribute to the pain too
[07:51] <lifeless> skaet would love only-series tasks to be implemented :)
[07:52] <wgrant> And most of the rest of the world would not :)
[07:52] <lifeless> well
[07:52] <lifeless> I don't think thats true
[07:52] <lifeless> most of the rest of the world wouldn't ever notice </pedantic>
[08:56] <adeuring> good morning
[09:06] <czajkowski> aloha
[10:49] <mabac> gmb, hi there! are you up for reviewing a fix for me? :) https://code.launchpad.net/~linaro-infrastructure/launchpad/notify-workitems-changes/+merge/98231
[10:58] <mabac> I probably didn't mean gmb since it looks like he's not online. :)
[11:15] <gmb> mabac: I'm mobile ATM. Also, it's
[11:15] <gmb> Not
[11:15] <gmb> My review day.
[11:16] <mabac> gmb, sorry, I just thought I'd bug you since the topic listed you as OCR. :)
[11:16] <gmb> mabac: Check http://dev.launchpad.net/ReviewerSchedule for details of who's on today.
[11:16] <gmb> It's out of date. Apologies.
[11:16] <mabac> gmb, thanks! I didn't know about that page
[11:17] <gmb> Doing that on my phone was hard :/
[11:17] <czajkowski> :/
[11:17] <czajkowski> gmb: ello ello
[11:17] <mabac> gmb, :) thanks
[11:18] <gmb> Hi czajkowski.
[11:18] <czajkowski> gmb: fancy a UDS photo walk one of the evenings?
[11:18] <gmb> czajkowski: Definitely!
[11:18] <czajkowski> hop on the bart and walk around san fran take pics and grab foods?
[11:18] <czajkowski> plan it in advance and get some numbers?
[11:18] <czajkowski> and you cna plan a route :)
[11:18] <czajkowski> know there are a lotta photo folks in ubuntu could be fun
[11:18] <czajkowski> something different to do
[11:19] <gmb> Haha. My plans often fail, hard. But it seems like a good principle. I'll put something together and we can refine it together; sound cool?
[11:19] <czajkowski> am gonna update the uds wiki page
[11:19] <czajkowski> will mail you in a bit
[11:19] <gmb> Cool.
[11:19] <czajkowski> and then get it posted to uds organisers :)
[11:20]  * gmb afk to give someone a large amount of money
[11:20] <czajkowski> if people know in advance then it wont clash with team dinners
[11:27] <gmb> czajkowski: Right; makes perfect sense.
[12:31] <salgado> stub, who's working on the private bugs overhaul you mentioned?
[12:32] <stub> Curtis' team
[12:33] <stub> sinzui: ^
[12:34] <czajkowski> purple squad working their magic
[12:37] <salgado> cool, thanks stub
[12:47] <wgrant> salgado: It's not so much as an overhaul as a complete redesign and rewrite from scratch.
[12:47] <wgrant> get_bug_privacy_filter is what you should be using, indeed.
[12:47] <wgrant> We'll have to rewrite your query soon, though.
[12:48] <salgado> wgrant, ok, cool.  but why rewriting my query is going to be needed?
[12:49] <wgrant> salgado: Because there's a new, faster bug search schema coming soon, and privacy is completely different.
[12:50] <salgado> oh, ok
[13:07] <mabac> I'm waiting for abentley who seems to be ocr in the next time-slot. Anyone know when his day starts? Or even anyone who would like to review this for me? :) https://code.launchpad.net/~linaro-infrastructure/launchpad/notify-workitems-changes/+merge/98231
[13:08] <rick_h> mabac: he should be in soon.
[13:08] <rick_h> our stand up is in 30
[13:08] <rick_h> so will have to catch him after that probably
[13:08] <mabac> thanks rick_h
[13:31] <mabac> abentley, good to see you. I hope you're happy to learn that I'm hoping to add to your work load this early ;)
[13:32] <mabac> abentley, https://code.launchpad.net/~linaro-infrastructure/launchpad/notify-workitems-changes/+merge/98231 is in need of a review
[13:32] <abentley> mabac: On The Phone
[13:42] <czajkowski> mabac: wow you really want this code reviewed!
[13:44] <mabac> czajkowski, sorry if I'm being a pain. just trying to get this off my plate since I'll be offline the rest of the week. I'll shut up now ;)
[13:45] <mabac> abentley, sure no rush. really. I'm sorry for jumping on you like that
[13:59] <sinzui> jcsackett, I am indeed trying to get you branch merged.
[14:00] <sinzui> jcsackett, I decided to PQM landed it after getting another false error in ec2 test
[14:00] <jcsackett> sinzui: got it, so i should not attempt to reland on my end. :-P
[14:00] <sinzui> There is now a text conflict though
[14:01] <jcsackett> sinzui: if you have not pqm-landed it, i should be able to land on my end now.
[14:01] <jcsackett> or if you're already dealing with it, i'm happy to leave it to you, if you would prefer.
[14:01] <sinzui> jcsackett, Was fixing the conflict. let me try for 2 more minutes
[14:01] <jcsackett> sinzui: sure.
[14:06] <sinzui> jcsackett, I am going to run the pillar tests locally. You and Ian collided
[14:06] <jcsackett> sinzui: ok.
[14:07] <abentley> adeuring: http://pastebin.ubuntu.com/892304/
[14:18] <adeuring> abentley: can't header you any more
[14:19] <adeuring> abentley: mumble instead?
[14:19] <abentley> adeuring: Sure.
[14:21] <sinzui> jcsackett, your branch is merged.
[14:21] <jcsackett> sinzui: awesome, thanks. :-)
[14:22] <jcsackett> glad i sorted out what you were doing before lp-landing on my own. :p
[14:24] <sinzui> jcsackett, the conflicts were nasty. merge is an idiot. I reviewed both your branch and Ian's so I just pasted your classes into the conflicting module instead of editing the spaghetti.
[14:25] <jcsackett> sinzui: that seems very reasonable, and having just updated from devel it all looks right to me.
[14:32] <abentley> mabac: Your functionality looks okay.
[14:32] <abentley> mabac: You are adding LOC.  Do you have permission to do that?
[14:33] <mabac> abentley, I hope this is considered offset by the tech debt payed off by salgado for the work items feature
[14:33] <salgado> abentley, this is a bug fix, not a new feature, btw
[14:33] <mabac> abentley, so my answer is, yes I believe so
[14:34] <abentley> salgado: Is there a blanket exemption for bug fixes?  I didn't think there was.
[14:35] <mabac> abentley, still this should have been part of the initial feature, just neglect on my part that it wasn't
[14:35] <abentley> mabac: Okay.
[14:36] <abentley> mabac: Some of the indentation doesn't match our style.  40-41 should be indented four spaces.  42-43 should be indented another four spaces.
[14:36] <czajkowski> bac: if you get a chance would you mind looking over https://answers.launchpad.net/launchpad/+question/169663  please.
[14:37] <salgado> abentley, maybe there isn't, but I remember someone saying that in the end it's at the reviewer's discretion to decide and requiring contributors to remove unused code before they can fix bugs sounds like a very good way to chase them off
[14:38] <abentley> mabac: at 56, since the arguments don't all fit on one line, they should all be placed on the next line, indented four spaces.
[14:39] <mabac> abentley, ok cool.
[14:40] <abentley> salgado: No, there's no room for reviewers discretion.  waivers are granted by flacoste and lifeless.
[14:42] <flacoste> abentley: yes, salgado's credit is still good on that one
[14:47] <salgado> flacoste, that's cool, but do you think it make sense to require people to remove unused code in order for their bug fix to be accepted?
[14:48] <abentley> salgado: No, there's no room for reviewers discretion.  waivers are granted by flacoste and lifeless.
[14:48] <abentley> mabac: Also 138-142, 148-149, 170-171, 185-190, 191-196, 205-206, 210-213
[14:48] <abentley> mabac: Is the lint clean?
 abentley: yes, salgado's credit is still good on that one
[14:48] <salgado> <-- abentley has quit (Ping timeout: 264 seconds)
[14:54] <mabac> abentley, apparently not. looks me relying on my emacs mode indentation and pep8 wasn't a good idea. can you tell me how I run lint to check the lp style?
[14:55] <abentley> mabac: I don't know of a linter that check's Launchpad's style, but you should run "make lint" to ensure your code is lint-free.
[14:57] <mabac> abentley, ok sorry I hadn't done that. I get a couple of errors but they are not caused by this particular change. they're still my doing so if I can sneak in fixes for those here that'd be great.
[14:58] <abentley> mabac: Please do.
[15:06] <abentley> adeuring: The problem still exists, but storing job.fail as a local variable avoids it.
[15:07] <adeuring> abentley: ah, ok. So you were right that the problem is caused by late loading job.
[15:10] <mabac> abentley, I have pushed changes, I hope it looks better now
[15:13] <abentley> mabac: Thanks.  That's better.  At 57, 150, 172, 209, the line should be indented four spaces.
[15:14] <bac> czajkowski: that's interesting.  it's also interesting that we've not seen a general problem with key import so i'm not sure what is happening.
[15:15] <abentley> mabac: At 143, 192, 199, I believe the } is indented 4 spaces too far.  I.e. it should have the same indentation as the line containing the matching {.
[15:16] <czajkowski> bac: aye I wonder is it something specifically wrong with that key and why they don't generate a new one rather than wait 6 months. but how and ever
[15:17] <bac> czajkowski: yes, it is odd
[15:17] <abentley> mabac: Did you investigate salgado's comment "However, if someone edits the workitems using the +workitems page, no notification will be sent because that code doesn't call updateStatus() via lazr.restful and so no event is fired. We might need to have that page itself fire an ObjectModifiedEvent..."
[15:17] <abentley> ?
[15:17] <bac> czajkowski: i do see his key is crazy old...1996
[15:18] <mabac> abentley, yes. that's handled by change line 56
[15:19] <abentley> mabac: great.
[15:19] <czajkowski> bac: makes no sense we'd surely have others with the same issue
[15:22] <mabac> abentley, I've pushed another revision with the indentation fixes
[15:24] <abentley> mabac: I think your comment in tests, "In production this notification is fired by lazr.restful..." is now stale.
[15:25] <abentley> mabac: Also, you should add a description of each test-- either a docstring or a comment.
[15:25] <abentley> mabac: Do the tests still need transaction.commit?
[15:25] <mabac> abentley, the comment was intended to explain why I fire a notification in the tests but not in the production code. if that's not useful I'll remove it
[15:26] <mabac> abentley, they do. and I've followed an existing example where it's done exactly like that
[15:26] <mabac> abentley, ack on the docstrings
[15:26] <abentley> mabac: But "this notification is fired by lazr.restful" is true, but not complete, now that it's also fired in another location.
[15:27] <mabac> abentley, true. I'll fix it
[15:28] <abentley> mabac: r=me with those changes.
[15:29] <mabac> abentley, thank you very much!
[15:29] <abentley> mabac: np.  Sorry for the delay.
[15:29] <mabac> abentley, that was very quick so I'm very happy :)
[15:31] <abentley> mabac: line 57 still looks wrong.
[15:32] <mabac> abentley, sorry about that, I had forgotten to save that file
[15:34] <mabac> abentley, fixed and docstrings added
[15:35] <abentley> mabac: great.  Do you need me to land this for you?
[15:35] <mabac> abentley, if you would. thanks!
[15:36] <mabac> abentley, that is, yes please :)
[15:37] <abentley> mabac: okay, will do.
[15:37] <mabac> abentley, thank you
[15:39] <sinzui> jcsackett, I sent you an image to add to your mockup directoy
[15:42] <sinzui> jcsackett, no change from your work. We are adding a picture based on wallyworld's discovery that the suggested design overwrites permissions or fails to inform about existing permissions
[15:42] <jcsackett> sinzui: rereading your email now, sorry. :-P
[15:43] <salgado> danilos, mabac, the call is in 20 minutes.  are you guys joining?
[15:43] <jcsackett> sinzui: pushing it up to the directory now.
[15:44] <sinzui> thanks.
[15:46] <danilos> salgado, I am, mabac won't be able to
[15:54] <danilos> mrevell, salgado: hi, I suppose mumble or hangout will do?
[15:54] <mrevell> salgado, flacoste, danilos: Mumble is fine.
[16:00] <mrevell> salgado, flacoste: We're in the Product channel on Mumble
[16:07] <danilos> flacoste, joining us?
[16:09] <mrevell> danilos, salgado: https://dev.launchpad.net/Projects/WorkItems/
[17:54] <flacoste> mrevell: sorry, i had a dr appointment, i forgot to tell you
[17:55] <mrevell> flacoste, Ah no problem. I'll send notes for the checkpoint later. The actions are for Linaro to produce the milestone team view and test internally, with danhg doing some testing with a broader group of users. danilos also had a question about how we handle groups of work items within an indiviual blueprint, which he posted to the -dev list.
[18:05] <flacoste> ok
[18:30] <czajkowski> gmb: https://wiki.ubuntu.com/UDS-Q/OtherEvents
[18:45] <gmb> czajkowski: Ah, thankee. I've already turned up one or two potential routes. Really depends what we're after (landmarks vs interestingness).
[18:46] <czajkowski> gmb: factor in a food stop
[18:46] <gmb> czajkowski: Right. And also travel time from t'hotel, which, this being the BART, could be substantial.
[18:47] <gmb> Anyroadup, I'm sure we'll come up with something.
[18:47] <czajkowski> gmb: 30 mins I think
[18:48] <gmb> czajkowski: Yeah, it's not so much the travel time as the waiting-for-a-train time.
[18:48] <czajkowski> nods
[20:37] <lifeless> flacoste: hi
[20:37] <flacoste> hi lifeless
[20:38] <lifeless> flacoste: did you see skaets in-line request for escalation on the audit trail bug ?
[20:38] <flacoste> yes
[20:38] <lifeless> salgado: hi, when is your EOD ?
[20:38] <lifeless> flacoste: cool
[20:38] <flacoste> lifeless: i replied to her via irc, but i think i'll need to follow-up more
[20:38] <flacoste> lifeless: basically, i don't think we have time to do it before the release
[20:38] <flacoste> so not sure it's worth escalating at this point
[20:39] <lifeless> yeah, I had a private chat too
[20:39] <lifeless> the bug wasn't on our management radar
[20:39] <salgado> lifeless, in about 20 minutes, why?
[20:39] <lifeless> salgado: I thought I might try and help you with this bug search thing
[20:39] <lifeless> salgado: if you would like to talk about it, irc or voice or whatever
[20:40] <salgado> lifeless, sure, mumble, hangout or something else?
[20:41] <lifeless> skype or hangout work best for me
[20:41] <lifeless> mumbles lack of echo cancellation -> pain
[20:41] <lifeless> flacoste: if you need anything from me (that I'm not already doing :P) on that bug, let me know.
[20:42] <flacoste> i will
[20:42] <salgado> lifeless, agreed. starting a hangout now.
[20:43] <lifeless> wow, unity's alt-tab is reallly hard to use
[20:43] <lifeless> just breaking me all the time atm
[20:44] <salgado> lifeless, http://paste.ubuntu.com/894246/
[21:00] <salgado> lifeless, https://dev.launchpad.net/Projects/WorkItems
[22:15] <poolie> has anyone else seen an error about
[22:15] <poolie> 2012-03-21 06:14:39 UTC FATAL:  could not access private key file "server.key": Permission denied
[22:15] <poolie> running current lp?
[22:26] <wgrant> poolie: No. Possibly an SSH server key?
[22:27] <poolie> google suggests something about an ssl key
[22:27] <poolie> which would make more sense for postgres
[22:27] <poolie> (i should have mentioned that's where it is)
[22:28] <poolie> probably something local
[22:30] <wgrant> Oh, if that's postgres, then yes, it's probably postgres :)
[22:53] <sinzui> wallyworld, Surely there is something in this list that irks you: https://bugs.launchpad.net/launchpad/+bugs?field.tag=trivial
[22:58] <nigelb> Morning.
[23:01] <poolie> if i grant a team access to a pppa, will they all get spam^Wmailed?
[23:01] <poolie> o/ sinzui
[23:01] <poolie> o/ nigelb
[23:01] <lifeless> yes
[23:01] <nigelb> Hey poolie! Got a new motorbike yet? :)
[23:02] <poolie> not yet, but i did get the payout for the old one
[23:02] <poolie> i'm not going to get the chance to ride much for the next while so i might wait
[23:02] <sinzui> hi poolie
[23:02] <nigelb> Oh, nice.
[23:02]  * huwshimi goes digging to find out who broke the homepage
[23:03] <poolie> lifeless, that 'yes' was to me?
[23:03] <poolie> :/
[23:03] <sinzui> poolie, do you think the emails should go to the team admins? or none at all?
[23:04] <poolie> not sure
[23:04] <poolie> maybe it would be nice to have a tick box for "mail people to tell them they have access", like google docs does for instance
[23:04] <poolie> or, just silently give them access
[23:04] <poolie> presuming they'll find out some other way
[23:04] <wgrant> huwshimi: You mean the header being wider than the rest of the page?
[23:04] <poolie> it doesn't seem like a thing where there's a strong reason they _must_ be told
[23:04] <huwshimi> wgrant: Yeah...
[23:05] <wgrant> huwshimi: sinzui removed locationless a while ago.
[23:05] <wgrant> That's what changed it.
[23:05] <wgrant> revno: 14867 [merge]
[23:05] <wgrant> timestamp: Sat 2012-02-25 07:26:36 +0000
[23:05] <huwshimi> wgrant: Oh, so this has been live for a while!?
[23:05] <wgrant> message:
[23:05] <wgrant>   [r=bac][bug=432889,435832,580240,938889] Update error pages to look
[23:05] <wgrant>         and read like other Lp pages; locationless is gone.
[23:06] <sinzui> poolie, there is a similar bug request for mailing lists. It would be nice if Lp could show you new things on your pages that you got access to when you arrive
[23:06] <poolie> indeed, i guess that connects to a more generally nuanced view of notification
[23:06] <poolie> so "tell them now" would perhaps
[23:06] <poolie> mean
[23:06] <poolie> "it's important they know now", which would push it up to being sent by mail
[23:07] <poolie> or, maybe there should just be a per-user "tell me when i get a new ppa" flag
[23:07] <poolie> s/tell/mail
[23:07] <poolie> anyhow, generic notifications ++
[23:07] <sinzui> I pioneered a mechanism to show notifications from non-browser code last week. It is possible to store them then unqueue them when the user arrives
[23:07] <wgrant> StevenK: Should 933759 be in QA-Landing?
[23:08] <lifeless> poolie: yes
[23:09] <StevenK> wgrant: So I'd like to add information_type to branch's model code and then use that branch to close the bug.
[23:10] <wgrant> StevenK: Mmm.
[23:10] <wgrant> StevenK: It's not useful yet, and won't be for a while.
[23:11] <StevenK> wgrant: Or we can just close it saying the column exists and other bugs deal with switching to it.
[23:11] <wgrant> Yes.
[23:11] <wgrant> That was my intent.
[23:11] <StevenK> Doit
[23:11] <wallyworld> wgrant: with the missing sorting in getPillarShareeData, why wouldn't I just add .order_by("person_sort_key(Person.displayname, Person.name)") to the findGranteePermissionsByPolicy() query?
[23:12] <wallyworld> you mentioned not to do that but i think it's the way to go
[23:12] <wallyworld> that's effectively how it was before i split the query
[23:13] <wgrant> wallyworld: You shouldn't be loading people in that query.
[23:13] <wgrant> Given how slow loading people is.
[23:13] <wgrant> I guess you could do it, given that it's batched now.
[23:13] <wallyworld> yes i think so
[23:13] <wallyworld> it's only a few records eg 75
[23:13] <wallyworld> we can optimise later if really needed
[23:14] <wgrant> That's still around 40ms :/
[23:14] <wallyworld> that's negligable
[23:15] <lifeless> mm
[23:15] <lifeless> I think we need to recalibrate our speed expectations :)
[23:16] <lifeless> 40ms is actually quite slow
[23:16] <wgrant> Yes.
[23:16] <wgrant> That's nearly 10% of the average render time of Product:+index
[23:16] <wgrant> Which is still slow.
[23:16] <wallyworld> in the context of a round trip it's ok surely
[23:16] <wallyworld> and the rest of lp loads people in queries as needed
[23:17] <wgrant> Sure, but the rest of LP is fucking terrible.
[23:17] <wgrant> This stuff doesn't have to be :)
[23:17] <wallyworld> and we're talking max batch_size records
[23:17] <wallyworld> let's just get sorting fixed first and then optimise if needed
[23:17] <wallyworld> i sure wouldn't notice if a page rendered 40ms slower
[23:18] <wgrant> It's a 40ms delay for a non-significant query.
[23:18] <wgrant> On its own it's not terrible.
[23:18] <wallyworld> so? in the content of the overall page render time, it doesn't matter
[23:18] <wgrant> But if there are 3 others like it, that's more than 100ms.
[23:19] <wallyworld> and without the missing order_by, we are still loading people
[23:19] <wallyworld> so adding the order_by now is the right thing to do
[23:19] <wallyworld> to fix the core issue
[23:19] <wgrant> OK, didn't notice that.
[23:19] <wgrant> But still, 40ms is not negligible.
[23:20] <wgrant> We should be getting the page's core query down that low if at all possible.
[23:20] <wallyworld> if a page takes say 1s round trip time to render it is
[23:20] <wgrant> And no other query on the page has any business being more than 10ms.
[23:20] <wgrant> wallyworld: In Australia things will be slow, sure.
[23:20] <wgrant> But Australia is negligible.
[23:21] <wgrant> Western US -> UK latency is ~130mx
[23:21] <wgrant> ms
[23:22] <wgrant> 40ms is a third of that.
[23:22] <wallyworld> i'm not arguing against optimisation. just the right time to do it
[23:22] <wgrant> That's what LP said for the first 6 years.
[23:22] <wgrant> Look where we are now :)
[23:23] <wallyworld> sigh. the page is already faster than most others. i'm more concerned with getting the right data displayed initislly
[23:23] <wallyworld> then we can optimise
[23:23] <wallyworld> i'd also rather initially follow established lp patterns
[23:23] <wallyworld> and see if they are good enough
[23:23] <wallyworld> before diverging
[23:25] <wgrant> It depends on your definition of "good enough".
[23:25] <wgrant> I argue that our traditional definition of good enough is not good enough.
[23:25] <wallyworld> if i can open my browser and load a page in < 1s that's good ebough for me
[23:26] <wallyworld> and worrying about 40ms at the expense of code divergence etc is not worth it
[23:26] <wallyworld> not saying we shouldn't fix that 40ms
[23:26] <wallyworld> but priorities...
[23:28] <wgrant> We can very easily avoid that 40ms now with about two lines of code.
[23:29] <wallyworld> it's more than that since we would not be loading whole Persons anymore
[23:29] <wallyworld> so the model query needs to change as does the code to assemble the data for the view
[23:31] <wgrant> Oh, I wasn't saying to avoid loading the persons at all.
[23:31] <wgrant> That would indeed be a bit radical for such a small improvement right now.
[23:31] <wgrant> But you're currently loading them twice.
[23:31] <wgrant> getPillarShareeData takes a list of person, then queries them back out of the DB.
[23:31] <wgrant> When it really just needs the IDs to match against the provided list.
[23:33] <wallyworld> that method can be called standalone
[23:34] <wallyworld> so it needs to be defined consistently with the getPillarSharees method
[23:34] <wgrant> Ah, true, in this design.
[23:35] <wgrant> I had envisaged that these would be a single method, using something like DecoratedResultSet to add the permissions into the sliced ResultSet.
[23:35] <wgrant> Which would be roughly the same interface as the original, just more efficient and sliceable.
[23:36] <bigjools> morning people
[23:36] <wallyworld> but we would lose the ability for users to have available that 2nd method if they wanted to use it
[23:36] <nigelb> ohai bigjools
[23:36] <wallyworld> so we have done a lot of arguing over a drop in the ocean in terms of total time a user sees a page to render
[23:37] <wgrant> wallyworld: But four drops in the ocean add more than 150ms to the page.
[23:37] <wgrant> wallyworld: Which is more than the RTT for the vast majority of our users.
[23:37] <wallyworld> why 4?
[23:38] <wgrant> It's just the number of 40ms-overhead operations that add up to >RTT.
[23:38] <wallyworld> but it's only one. and there'a lot more to rendering a page than RTT
[23:38] <wgrant> Not this page.
[23:39] <wallyworld> mustache on the client takes a bit of time
[23:39] <wgrant> That's a bug that can't be trivially fixed right now.
[23:40] <wallyworld> sure, so 40ms just doesn't matter right now
[23:40] <wallyworld> since other things swamp it
[23:40] <wgrant> But then we replace mustache with handlebars globally.
[23:40] <wgrant> And this page is still slow.
[23:40] <wgrant> Because the server-side is crap.
[23:41] <wallyworld> not slow
[23:41] <wgrant> And now we have to go and fix *every page in Launchpad* separately.
[23:41] <wgrant> Because we knowingly wrote slow code.
[23:41] <wgrant> Because it was dominated by slow client-side rendering.
[23:41] <wallyworld> we have different definitions of slow