#launchpad-yellow 2011-08-08
<danilos> gmb, hey, welcome back :)
 * gmb returns
<danilos> gmb, welcome back-back :)
<gmb> danilos: Thank you^2
<gmb> :)
<bac> gmb: good vacation modulo dentristry?
<gmb> bac: Yes, thanks, it was fantastic.
 * danilos -> food
<gary_poster> welcome back gmb!
<gmb> Thanks gary_poster :)
<gary_poster> great trip?
<gary_poster> hey benji :-) hope you had a good weekend.  Carl said he put the new version of python-keyring in Debian.  What do I do to get it uploaded into Oneiric?  Do I Just file a bug against Ubuntu?
<benji> gary_poster: that I don't know, Leonard did that bit; I'm sure Barry would know
<gary_poster> ack ok thanks benji
<gary_poster> Warning: we have guests in the house, and my office is the guest room, and I forgot to get my headset out of the room, and the guest is still in bed, so I may need to postpone the call until he gets up
<danilos> gary_poster, heh
<gary_poster> :-)
<danilos> gary_poster, btw, I've updated counts on https://dev.launchpad.net/MaintenanceRotationSchedule for most things (didn't get to registry review and project review), but I wonder if we should continue to keep them updated considering the graphs we have available?
<gary_poster> danilos, congrats on landing the lp2kanban
<danilos> gary_poster, thanks
<gary_poster> we should get bac or gmb to run, or did you already?
<bac> not me
 * bac adds CHR reminders for the week
<gary_poster> danilos, looking at graphs
<danilos> gary_poster, I'd be happy for either of them to try setting it up
<gary_poster> danilos, so you updated the start but didn't change the stop?  (my intent was that we move the previous week into the "??" columns.  But maybe we can delete, yeah...still looking
<danilos> gary_poster, oh, I can go back and fix that if you decide to want me to
<gary_poster> danilos, yeah we can drop I think
<gary_poster> danilos bac gmb, do any of you happen to know how I can request Ubuntu to upgrade the python-keyring package in Oneiric to the newesy Sid version (as of this weekend)?  Do I just file a bug against Ubuntu?  (barry is not online for me to ask him, as benji suggested)
<gmb> gary_poster: Not a clue, sorry
<bac> gary_poster: i'd ask pitti
<gary_poster> bac, ask pitti to do it, or how to do it?
<bac> gary_poster: i think you need to get a MOTU to upload the new package.
<bac> gary_poster: ask pitti the latter and he
<gary_poster> might be able to do it himself
<bac> will probably tell you who to get to do the former
<gary_poster> ok cool
<gary_poster> thank you
<gary_poster> bac benji danilos gmb, I think let's just have our skype call in 2 and hope that we don't have much echo without a headset.  Skype seems to often do ok like that.
<gmb> gary_poster: Are we due to have a call now?
<gmb> As in, standup?
<gary_poster> gmb, sorry, I gave the "warning" earlier but didn't ping anybody: "we have guests in the house, and my office is the guest room, and I forgot to get my headset out of the room, and the guest is still in bed, so I may need to postpone the call until he gets up"
<gary_poster> so option b is "we just do this without a headset"
<gmb> gary_poster: Completely missed, sorry.
<gary_poster> np :-)
<gary_poster> benji, when you get a chance, https://code.launchpad.net/~gary/launchpad/bug821531/+merge/70738
<gary_poster> please :-)
<benji> sure
<gary_poster> thank you
<benji> gary_poster: I'm done with https://code.launchpad.net/~gary/launchpad/bug821531/+merge/70738
<gary_poster> cool, thanks benji.  good naming ideas, I'll do 'em.  "Line 130 of the diff: JavaScript has warped your brain, you're missing a comma on the last element of "mapping"."  :-) That's not required nor caught by our linter, though, so I'm surprised it's worth calling out (though it's easy enough and I'll do it).  Do you really care about this (out of curiosity)?
<benji> gary_poster: I think it's better to have the comma than not because it makes editing the code easier later, but I'm not going to get bent out of shape over it.
<benji> it's just somethign I noticed, a reply like "tough cookies, I like it better that way" works for me ;)
<gary_poster> benji, ok cool.  heh, I do like short dicts better without trailing commas, but eh.  I see where you are coming from and generally try to follow what the reviewer suggests unless I can't stand it. ;-)
<gary_poster> On a completely unrelated but somewhat aghast note, I've been telling people about how they can pass an IResult as a response and have it handled properly by Zope.  However, that depends on the server calling consumeBodyIter--and instead, this is in eggs/zope.server-3.6.1-py2.6.egg/zope/server/http/publisherhttpserver.py:
<gary_poster>         def application(environ, start_response):
<gary_poster>             request = request_factory(environ['wsgi.input'], environ)
<gary_poster>             request = publish(request)
<gary_poster>             response = request.response
<gary_poster>             start_response(response.getStatusString(), response.getHeaders())
<gary_poster>             return response.consumeBody()
<gary_poster> where consumeBody is {{{return ''.join(self._result)}}}
<gary_poster> so that whole IResult thing is broken AFAICT
<gary_poster> this is why people (we) should not be using a barely maintained gigantic framework.  barely maintained small framework is fine (pyramid?).  well maintained gigantic framwork is workable (Django, Z2 back in the day, Z3 maybe when ZC and Stephan and Philip and so on were actually kicking tires publicly).
<gary_poster> gigantic framework with few users doesn't have enough eyes per loc
<benji> yeah, I thought that would work too
<benji> I think you're right about the big/active, small/inactive framework thing.
<bac> gary_poster: i'm back
<gary_poster> bac, thanks.  (/me nominally refrains from bac/back joke)
 * gary_poster postponing CHR just long enough to finish large-ish review response
<gary_poster> benji, changes for your suggestions/requests are 582 lines. ;-) I think I may need a re-review.  You game?  https://code.launchpad.net/~gary/launchpad/bug821531/+merge/70738 (total is still < 800 loc)
<benji> gary_poster: sure, looking now
<gary_poster> thank you
<gary_poster> hm, CHR now
<gary_poster> danilo, you still around?  was going to try and change our Thursday call time the way we discussed
<gary_poster> sorry, danilos
<benji> gary_poster: ok, done; I did notice one small thing that we probably don't care about
<gary_poster> cool
<gary_poster> benji, actually that's not quite the behavior (and there are tests for the actual behavior, and help text).  log == callgrind (legacy behavior); log,pstats == pstats ("log" is ambiguous, and "pstats" is explicit); callgrind,pstats == callgrind + a warning about how we ignored the pstats request and they should make it separately.  Actually, I don't have a test for the second case, now that I think about it; I'll ad
<benji> right, I was focusing on the log,pstats case; I shouldn't have muddied the watters by mentioning the third; I'm glad to see it was intentional ;)
<gary_poster> heh, ok
<gmb> I wonder why I assigned myself to bug 110195 last month and then unassigned myself... Why didn't I tell myself in a comment, you know, like a normal person?
<_mup_> Bug #110195: Nominating a bug for a distro release affects all package tasks for that distro <lp-bugs> <motu> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/110195 >
<benji> Time to make the donuts.
<benji> wow, CHR in 10 minutes
 * bac CHRs.  so ten minutes is the time to beat?
 * gary_poster had to work an hour on it
<gary_poster> projects were the big backlog for me
<gary_poster> looked like orange had not done much on them
 * bac finishes CHR in 29 minutes.
<gary_poster> benji, I had my first "LP guesses my bug number from my branch" moment in the wild today--very nice. :-)  Also, though, could I get your help?  I need to verify that the new keyring actually works with Gnome and LP.  I don't have a UI environment fully set up yet (hasn't been a priority :-/) so could you give it a whirl?
<gary_poster> You would need to update some tree with lp:~gary/launchpad/bug752282 and update your download-cache, run bin/buildout, and do something to verify the keyring is working for you in Gnome (you would know much better than I what that would be :-) )
<benji> gary_poster: 1) cool, 2) sure
<gary_poster> benji, thank you.  fwiw, that can constitute more than your fair share of a review of that branch https://code.launchpad.net/~gary/launchpad/bug752282/+merge/70787 .
<benji> gary_poster: hmm, I don't think I can help you the way you originally intended; I only have LP running on a VM with no GUI
<benji> I can test that keyring itself is doing the right things though.
<gary_poster> benji, oh, ok.  Yeah, that sounds like a reasonable plan.  I can tell that it doesn't blow the text ui up. ;-)
<benji> gary_poster: wait, I'm confused; I thought this was about running in a non-GUI environment.  Do you want me to test with Gnome just to be sure it all still works?
<gary_poster> benji, yeah I need a GUI
<gary_poster> I need Gnome
<benji> gotcha, looking now
<gary_poster> benji, this is to verify for Oneiric that it is ok
<gary_poster> thanks
<benji> gary_poster: I'm getting an odd error building keyring: http://paste.ubuntu.com/661416/
<gary_poster> ack benji.  that's on a fresh install?  I did it on an existing branch.  lemme try to dupe.
<benji> gary_poster: yep, fresh checkout (well, "clone")
 * gary_poster tries
<gary_poster> benji, worked fine for me after a make clean.  I'll try again with a *really* fresh checkout :-)
<benji> it may be that I have to use a system python (way, way too many things to set up to get gnome to work any other way)
<gary_poster> oh, benji, that's not building LP is it
<benji> gary_poster: nope, keyring
<gary_poster> right...
<gary_poster> um
<gary_poster> benji, so this is from a checkout?
<benji> yep
<gary_poster> oh
<gary_poster> ok lemme try that
<gary_poster> wfm before, of course
<gary_poster> and for you I assume since you made the eggs
<gary_poster> benji, give me repo to clone again please?
<benji> gary_poster: ssh://hg@bitbucket.org/kang/python-keyring-lib
<gary_poster> thank you
<gary_poster> benji, wfm.  I used a clean Python, was I not supposed to do that?
<gary_poster> s/,/;/
<gary_poster> heh
<benji> clean is good for dev, but for testing gnome you have to go system
 * gary_poster has fun with relacements
<gary_poster> s/relacements/replacements
<gary_poster> s/relacements/replacements/
<gary_poster> heh
<gary_poster> benji, so you got the failure with a system Python?
<benji> s/$/\//
<benji> yep
<gary_poster> :-)
<gary_poster> oh ok
<gary_poster> I think I had a failure with that too benji, and thought you had set things up to work with a clean Python
<gary_poster> so did that
<gary_poster> it builds for barry, and for Debian dude, as far as the deb stuff is concerned
<benji> at some point both (clean and system) worked
<gary_poster> I'll try system Python, but I'm not sure what to do about it.  oh here's an idea benji
<gary_poster> benji, ppa:barry/python has build
<gary_poster> maybe only oneiric; looking
<gary_poster> only oneiric :-/
<gary_poster> benji, you can build with a clean python, then build with a system python.  I might be able to figure out a zc.buildout 1.5.2 system python approach of excluding something or other but since we need system Python packages we can't be blanket about it.
<benji> sure
<gary_poster> actually benji, nm; it works for me even with system python and completely clean, so I dunno what's going on
<gary_poster> (I mean, building eggs)
<benji> I got the same error.
<gary_poster> ok benji.  Here's hoping it works then.  I'll ask danilo to look at it tomorrow morning
<benji> k
<gary_poster> thank you benji and sorry for the annoyance
<benji> no problem
<gary_poster> night all
#launchpad-yellow 2011-08-09
<danilos> gmb, fwiw, I've set-up a cronjob on my server for lp2kanban, to run at 9, 29 and 49 minutes past the hour
<danilos> gmb, so if you planned to do that, no need to bother now :)
<gmb> danilos: Ah, perfect. I started on that last night, but Python kept reporting a syntax error in kanban.py; I was too tired to fix it there and then.
<danilos> gmb, interestingly, I've seen that too (and it was, but I wonder why it worked for me: I've used a dict with no values, and it seems that works with some versions of python)
<danilos> gmb, like 2.7 instead of 2.6
<gmb> danilos: Ah, that'll be it; my server is running Lucid.
<danilos> gmb, (my server is lucid as well :))
<gmb> Hmm...
<danilos> I still get test failures on lucid because TestCase has no assertIs, but that should be easy to fix
<gmb> danilos: Are you running Lucid with python 2.7? Mine's running whatever the stock python is for Lucid... 2.6.5 I thnk
<danilos> gmb, what I meant was, I've seen it on lucid but not on my dev machine which has 2.7
<gmb> Ah, okay.
<gmb> That'll be it then :)
<danilos> yep
<bac> good morning
<bac> gmb has the rioting reached lancaster yet/
<bac> hi gary_poster
<gary_poster> hey bac
<bac> gary_poster: can we skype for a sec when you get settled?
<gary_poster> sure bac.  maybe in 10?
<bac> gary_poster: yep, just ring me
<gary_poster> cool will do
<gary_poster> https://dev.launchpad.net/Debugging
<gary_poster> Tracing SQL statements through STORM
<danilos> gary_poster, hi, fyi, I've set up a cronjob for lp2kanban to run on my server on 9, 29 and 49 minutes past the hour (so every 20 mins, and hopefully just before the daily call since a run takes up to 25s)
<gary_poster> danilos, cool.  are you using the robot's credentials?
<danilos> gary_poster, nope, I don't know what the password is
<danilos> gary_poster, I'd be happy to use them, though
<gmb> bac: Nope. Some trouble in Liverpool and Manchester but nothing up here. I think we're too small to have much in the way of bother. Preston, about 20 miles south, might be at risk though.
<gary_poster> gmb, I'm embarrassed to say that I haven't quite understood what the riot was *about*.  Was there in fact a cause, or was it just youthful exuberance turned sour?
<gary_poster> ah
 * gary_poster had not sufficiently googled
<gary_poster> "following protests over the shooting death by police of a local man, Mark Duggan. Police were arresting him when the shooting occurred."
<gmb> gary_poster: Yes, the current rumours are that only police bullets were found afterwards; the police had said that he fired first.
<gmb> No-one really trusts the met all that much these days.
<gary_poster> I see :-(
<gary_poster> So, kind of protests against the feeling of an inceased police state, then?
<gary_poster> increased
<gmb> gary_poster: Well, it started as protests, then it got out of hand.
<gmb> The problem is that a non-white person in London can expect to be stopped and searched by the police up to 3 times a day.
<gary_poster> yeah, more than a little
<gary_poster> wow
<gmb> And these are pretty deprived areas, with all the recent public sector cuts having an impact on community centres and so on.
<gmb> So the youths - already disaffected at best - have nowhere to go but the streets.
<gary_poster> I see.
<gary_poster> bac benji danilos gmb: I am still office-less, but I planned ahead and am not headset-less.  skype in 4.
<bac> k
<gmb> gary_poster: Okiedoke.
<danilos> gary_poster, I used your done-done ++profile++ card (no "sync:" metadata) to test that the autosync works, hope you don't mind the history metadata getting polluted like that :)
<gary_poster> cool danilos :-)
<gary_poster> benji: http://www.infoq.com/news/2011/08/debug-languages-on-javascript-vm cool :-)
<benji> wow, that's something else
<benji> that's very cool, I foresee a flood of JS-targeted languages in the near future
<gary_poster> :-)
<gary_poster> benji, had you seen ClojureScript already?
<benji> yep
<benji> I'm contemplating PythonScript ;)
<danilos> benji, +1 on PythonScript, if that means Python which compiles to JavaScript :)
<gary_poster> PyPy, yeah?
<benji> actually, PyPy has quietly stopped talking about the JS backend and removed all references to it
<benji> I've considered resurecting a crazy thing I worked on a couple of years ago that was just Python syntax on top of JS, a lot like CoffeeScript.
<benji> If we're really serious about true Pyhton to JS compilers, there are at least two real projects we could use today: pyjamas and another one I can't remember the name of.
<gary_poster> Personally, I'm not serious about it.  I'd prefer a language closer to JS.  http://pypy.org/features.html
<gary_poster> at the bottom mentions JS
<benji> ooh, you're right; it seems the JS backend has had a resurgence
<benji> maybe my Py-flavored-JS idea wouldn't be too bad then.  Of course, at that point people might as well use CoffeeScript.
<gary_poster> CHR...which is good, because my optimization efforts currently feel like I'm pushing against a brick wall. :-/
<gary_poster> danilos, should I be concerned that we have translation imports that are from Aug 4, or is that normal?
<danilos> gary_poster, email from mrevell to maintainers should have gone out today, and I want them to start picking it up themselves
<danilos> gary_poster, basically, I haven't removed it from CHR yet just so we watch it
<gary_poster> danilos, ah cool!  is it time to remove the task from CHR then?  ah ok
<danilos> gary_poster, we can perhaps start emailing people
<danilos> gary_poster, but I wanted the global announcement to go out first
<gary_poster> danilos makes sense thanks
 * gmb -> afk for the evening. Here's hoping no more of the country ends up on fire tonight. I suspect it will, though.
<bac> hey gary_poster, this works well if you want more granularity turning sql tracing on/off
<bac> from storm.tracer import get_tracers
<bac> get_tracers()[0]._debug_sql = True
<gary_poster> bac, can you turn the traceback stuff on that way too?
<gary_poster> bac, fwiw, if misery loves company, my optimization bug is kicking my rear atm ;-)
<bac> yep
<gary_poster> cool bac.  I suggest (request, selfishly) that you add that to Debugging on the wiki
<bac> gary_poster: i'm going to...if only to help me the next time i need to do it
<gary_poster> yeah
<bac> gary_poster: https://dev.launchpad.net/Debugging updated
<gary_poster> great, thanks bac
<bac> hey benji, would you have any time this afternoon to give some of my changes a once-over to see if you can spot anything obviously stupid i've done?
<benji> bac: sure; I'll ping you when I get done with CHR (should be pretty soon)
<bac> cool
<gary_poster> bac, any success, or pretty much as this morning?
<bac> gary_poster: nothing new.  :(
<gary_poster> bac, ok.  :-/  FWIW, my day has largely been a bust too. :-(
<bac> gary_poster: maybe we should trade
<bac> or go out and set something on fire
<benji> heh
<gary_poster> bac, heh, or collaborate, yeah.  ooh, collaborate on fire, yes!
<bac> hey, that's what the rioters have been doing.  technology driven flammable collaboration
<gary_poster> true
<benji> bac: I have one question left and I can't answer it, so I'm leaving it for you and so I can help you now :P
<bac> benji: hey that's quite a trade
<benji> heh
<bac> benji: skype
<benji> I'm selfless individual.
<benji> k
<bac> benji: lp:~bac/launchpad/bug-813322-2
<gary_poster> fwiw bac and benji, I'm in favor of full-on pair programming if that makes sense.  I know I may need it. :-P
<bac> gary_poster: ack
<gary_poster> :-D
<gary_poster> uh, that smiley was an odd choice.  don't mind me.
<benji> bac: http://paste.ubuntu.com/662143/
 * gary_poster goes to remedial smiley course
 * bac walks the dog
<benji> ï¼ï¼¾_ï¼¾ï¼
<gary_poster> looks Japanese
<benji> it is
<gary_poster> ...well there you go then...
<benji> the Japanese have a large set of smileys, some quite odd
<gary_poster> emoji or something like that, yeah?
<benji> I hope life never gets so bad I need to use this one to express how I feel: ï¼¿|ï¿£|â
<gary_poster> heh
<gary_poster> that's throwing up?
<gary_poster> very creative at least
<benji> not quite throwing up, more like "beaten down"
<gary_poster> ah ok
<benji> wow, someone put a lot of effort into cataloging them: http://club.pep.ne.jp/~hiroette/en/facemarks/body.html
<gary_poster> I don't quite understand all of them, but "Dance/Sing" made me smile
<benji> heh
<benji> yeah, several seem to incorporate words
 * bac -> chr
<bac> benji: did you see the reply to feedback from the guy you helped?  "What is Launchpad?"  I marked it 'resolved' with no further engaging of him.
<gary_poster> bac, heh, can I have a link?
<bac> gary_poster: it's on RT.  not sure how to find it now
<benji> heh; seems like an appropriate response
<gary_poster> bac, s'ok nm
<bac> gary_poster: you can have a link to this though:  https://answers.launchpad.net/launchpad/+question/167455
<bac> it isn't even friday
<gary_poster> bac, lol!
<benji> pfft, that's hilarious
<gary_poster> Canonical tech is the new warthogs
<gary_poster> tha's probably not fair
<gary_poster> but there's something to it
<bac> this is a time zone:  Asia/Jerusalem ?
<bac> benji, gary_poster: did either of you write this:  https://launchpad.net/~amichai2/+reviewaccount
<bac> speaking of the white board
<gary_poster> I remember amichai vaguely, might be me.  Looking
<benji> bac: not I
<bac> +1 on henning's suggestion to put a date and name for all whiteboard entries
<benji> the wording looks Gary-onic
<gary_poster> :-) yeah.  bac, me.  sorry, for not being clear with time/person
<bac> his account is the one komputes mentioned
<bac> i'm not sure what to do
<gary_poster> komputes
<bac> gary_poster: was it today-ish
<gary_poster> bac, no long time ago
<gary_poster> month or two or three
<bac> oh, ok
<bac> well it is happening again and i already contacted him
<gary_poster> bac, the situation with email completely sucks
<bac> yep
<gary_poster> we accept spoofed mail no problem
<gary_poster> I have RTs in about this
<gary_poster> but they are not high priority
<bac> so i should reassign this and future questions to elmo?
<gary_poster> heh
<gary_poster> I think maybe we can say something like "at this time, Launchpad has no defense against spoofed email other than manual intervention.  RTs X and Y can improve this in the future."
<gary_poster> Where the second sentence is for canonical employees
<gary_poster> Lemme get the RTs for the heck of it.
<bac> benji: was this the question that stumped you?  https://answers.launchpad.net/launchpad/+question/167457
<benji> bac: nope, I think I can find it...
<benji> bac: https://answers.launchpad.net/launchpad/+question/167428
<bac> oh, that should be easy
<bac> and those projects are run by a group here in town
<gary_poster> RT 46019 and RT 46021
<bac> gary_poster: where do you propose putting that?  in the CHR wiki?
<gary_poster> bac, I dunno, I was hoping you'd have some bright ideas.  I've thought about complaining at the list a couple of times, pointing out the RTs, but stopped because I didn't see the point.  Maybe the right thing to do is to give the information to mrevell, ask him to formulate a FAQ that doesn't sound too bad, and tell devs about it, so we all say the same thing?
<bac> sounds good.  i have no bright ideas
<bac> see y'all tomorrow
 * bac -> ocean
<gary_poster> bye!
#launchpad-yellow 2011-08-10
<gary_poster> bac benji danilos gmb: call in 1
<danilos> ack
<gmb> ok
 * benji goes to the utility drawer to find a nine volt battery to satiate this chirping smoke detector.
<benji> much better
<gary_poster> gmb, do you have time to throw a drowning man a line? via Skype? :-)
<gmb> gary_poster: Can you give me 10 minutes to just grab a drink?
<gary_poster> sure gmb :-)
<gmb> gary_poster: Cool. I'll ping you shortly.
<gary_poster> thank you
<gmb> gary_poster: Ready when you are
<bac> hi benji -- you free to chat?  i've been looking for good ways to screen share, etc but have nothing
<benji> sure
<gary_poster> gmb, sorry, missed that.  calling...
<bac> benji: skype?
<benji> sounds good
<bac> benji: bin/test -vvt test_mark_duplicate_query
<bac>  bin/test -vvt test_mark_as_duplicate_query
<bac> bin/test -vvt test_mark_duplicate_query_count
<bac> benji: pushed fixes to lp:~bac/launchpad/bug-813322-2
<bac> benji: and the correct failing test is:  bin/test -vvt test_mark_as_duplicate_query_count
<benji> bac: looking now
<gary_poster> gmb, someone added something in the template that disables the expander if there are more than 10 bugtasks.  The fields are still calculated, and rendered, but the expander is not drawn.  That could be an easy thing to change.  But...
<gary_poster> what do you do if you actually need to change something for a bugtask in that collection?  Doesn't that seem like a broken behavior--or is there a workaround?
<gary_poster> It strikes me that I could improve this by doing the "draw the form on demand" after all.
<gary_poster> That would make the big story more functional, and the small and big story faster
<gary_poster> CHR
<gary_poster> And CHR is done!  Happy day.
<gmb> gary_poster: Sorry, completely missed the fact that Colloquy had disconnected...
 * gmb reads backscroll
<gary_poster> :-) np
<gmb> gary_poster: Well, bug 1 is an example of this (I was wondering why the expanders went away; this explains it). If you click on any of the edit icons on the bug 1 bugtasks table you get redirected to the bugtask:+editstatus page. (i.e. exactly what used to happen before the expanders).
<_mup_> Bug #1: Microsoft has a majority market share <iso-testing> <ubuntu> <Clubdistro:Confirmed> <Computer Science Ubuntu:Confirmed for compscibuntu-bugs> <dylan.NET.Reflection:Invalid> <dylan.NET:Invalid> <EasyPeasy Overview:Invalid by ramvi> <GenOS:In Progress by gen-os> <GNOME Screensaver:Won't Fix> <Ichthux:Invalid by raphink> <JAK LINUX:Invalid> <LibreOffice:In Progress by bjoern-michaelsen> <Linux Mint:In Progress> <The Linux OS Project:In
<_mup_> Bug #1: Microsoft has a majority market share <iso-testing> <ubuntu> <Clubdistro:Confirmed> <Computer Science Ubuntu:Confirmed for compscibuntu-bugs> <dylan.NET.Reflection:Invalid> <dylan.NET:Invalid> <EasyPeasy Overview:Invalid by ramvi> <GenOS:In Progress by gen-os> <GNOME Screensaver:Won't Fix> <Ichthux:Invalid by raphink> <JAK LINUX:Invalid> <LibreOffice:In Progress by bjoern-michaelsen> <Linux Mint:In Progress> <The Linux OS Project:In
<gmb> gary_poster: So essentially we degrade nicely already. Changing things so that all the unnecessary work isn't done shouldn't break anything,  I expect.
<gary_poster> gmb, ok so keep current behavior but don't do unnecessary Python work.  cool
<gmb> gary_poster: Indeed. And we can then (probably) punt on the "Make it nicer and then faster" work if we want to.
<gary_poster> right gmb.  That sounds like a win for everything except the future :-)
<gmb> gary_poster: Indeed. And if the future involves the Yellow squad we may yet regret it :)
<gary_poster> heh
<gary_poster> cross that bridge then and all that :-)
<gary_poster> ok I'll see if I can pull this off...
<gmb> Righto.
<gmb> gary_poster: Ping me if you need to pull at any weird threads on that code.
<benji> bac: I've found that just under 90% of the queries are generated by eight or nine repetitions of very similar sets of queries over and over
<gary_poster> cool thanks gmb
<bac> benji: skype?
<benji> bac: http://paste.ubuntu.com/662731/
<gary_poster> gmb, one-line change makes code go from 6 seconds to 2 ;-)
<gmb> Sweet.
<gmb> gary_poster: Want me to review it?
<gmb> Or are you going to do Other Clever Things.
<gmb> ?
<gary_poster> gmb, yeah thanks.  Lemme see if I get this up quickly--I have stuff I need to clean up.  No, I intend to run away at the mention of Clever Things--or at least walk on a treadmill at a stately pace.
<gmb> Very wise.
<benji> bac: it looks like the repeats aren't identical, but they only vary by bug ID
<bac> benji: actually i see a lot of *identical* queries
<bac> let me paste
<benji> bac: are you logging the statement only or the parameters too, there are only about two dozen unique queries, but the parameters vary
<bac> benji: http://pastebin.ubuntu.com/662767/plain/  -- the numeric prefix is the number of times the query was seen
<bac> benji: i'm stepping out to get a bite to eat.
<benji> that is a lot of dupes; I'm dissapointed that there isn't some sort of caching scheme that keeps those from happening
<benji> k, I'm going to do the same in a while
<bac> benji: would love to talk to you about how we can accomplish that...
<benji> on the other hand, even if we got rid of all the dupes, that would still be 258 queries
<gary_poster> that number is not unheard of
<benji> bac: (for when you get back), the call to Snapshot on line 1834 is responsible for 7 queries for each duplicate and the next line generates 3 more, so that's 10 queries per duplicate right there
<benji> that's in lib/lp/bugs/model/bug.py
<benji> wow, then the subscribers that are fired on the notify(event) line trigger 31 more queries (per duplicate bug)
<gary_poster> gmb, https://code.launchpad.net/~gary/launchpad/bug724025/+merge/71076 when you are ready.  I ended up implementing it with a view function rather than a one-line template change so I could add comments and such, but it is still pretty short.
<gmb> gary_poster: Righto, looking now.
<gary_poster> thank you
<gmb> gary_poster: Good stuff. Approved.
<gmb> \0/ DebBugs works again!
<gmb> Let joy be unconfined.
<gary_poster> :-) thanks gmb
<gmb> np
<gary_poster> lunch, and a bank visit, in triumph ;-)
<bac> benji: interesting
<benji> bac: if I skip creating the snapshot and firing the event (either of which may not be practicle) the test is down to 55 queries, of which 22 are updating bug heat
<benji> one thought would be to defer firing the object modified event until email sending time (or if we have a reasonable way to create jobs, queue up a job for it)
<benji> brb/caffeine
<bac> but the notify is what populates the database for the cronjob to later chew on
<benji> bac: I haven't looked at the subscriber, but I doubt it's very complicated, right?  We could either just have a function that we call that records the fact that we need to fire the duplication event and that the email should be sent (or they could be two different flags, preferably) or we could fire a new event that has a subscriber that does what the aformentioned function would do
<benji> this is starting to get into the pattern of "if you know their request will succeed, just record the fact that the user asked for X and tell them it worked and then do X ASAP, but out of band with the web server"
<benji> which is a good pattern, but not one that we do much of, as far as I am aware
<bac> benji: the event -> db -> action chain is pretty convoluted.  i'm not convinced the even mechanism really buys us much.  but, in order to avoid db changes, i worked within that framework
<bac> benji: perhaps that was a bad decision
<bac> if you look at the diff of my branch it'll be clear the work that was done to close the loop.  it was pretty minimal
<benji> it's conservative to fire an object modified event when you modify an object, but if none of the subscribers care (and we're not too worried about introducing subscribers that do care in the future) then we can skip that part
<bac> benji: but we do care, as the subscriber is the one who stuffs the deferred bug notification into the db
<benji> bac: right, but that's "our" subscriber, we can just call that code directly (no need for a subscriber) because we know we need it to happen now, the other subscribers may be less important (but I bet we still want them to run eventually)
<benji> I'm investigating other things, but a deferred execution model seems to fit this really well.
<bac> darn, benji is gone
<bac> well, gary_poster, i'll brag to you
<gary_poster> I like bragging!  go for it!
<bac> based on benji's suggestion i removed the Snapshot and the use of the event model
<bac> queries down from 467 to 91
<gary_poster> hah!  wow!
<gary_poster> and things still work, I take it? ;-)
<bac> not sure it *works* but that's a detail
<gary_poster> lol
<gary_poster> bac, but I assume the basics work of what you were doing before, so sounds very good so far :-)
<bac> yeah, i hope so
<bac> i'll verify it works now
<gary_poster> cool, lemme know
<bac> i think Snapshot may be possessed
<gary_poster> oooweeeeeeeoooooo
<benji> daylight come and me wan' go home
<bac> reposting
<bac> based on benji's suggestion i removed the Snapshot and the use of the event model
<bac> 15:21
<bac> queries down from 467 to 91
<benji> Good news everyone: routers work better with electricity.
<gary_poster> lol
<benji> bac: cool!
<gary_poster> benji, bac hasn't said whether it actually works yet though.  He has another branch in which he has deleted the code tree and the query count has dropped even more.
<benji> bac: while sitting in the twighlight of my unpowered home I dug into the subscribers some more, the main culprit is add_bug_change_notifications
<benji> heh
<bac> yes, i determined postgres is the root of our problem
<gary_poster> heh
<benji> heh
<bac> are either of you getting the smoke from the dismal swamp fire?
<benji> I can tell you that ZODB doesn't have these problems.  It has *other* problems, but not these.
<gary_poster> :-)
<benji> I haven't been outside since my morning bike ride and I didn't notice any then.
<gary_poster> no smoke for me
<benji> "Great Dismal Swamp" is the perfect name for a swamp
<gary_poster> next to the Really Big Mountain.
<benji> lol
<benji> which overlooks The Especially Wet Lake
<gary_poster> lol, very nice
<benji> these seem like place names from The Princess Bride
<benji> the more I look at this, the more I think it's crying out for an async approach; we shoudl be doing all this work to figure out what changed and who cares after the actual request has finished
<gary_poster> that's what bac is working towards, in the small
<benji> hmm, or a long-poll type thing, but we'd still run afoul of the timeout
<bac> yep
<benji> if we had a simple and reliable way to schedule work for later, I suspect we could fix lots of timeouts and otherwise slow pages with this particular hammer
<gary_poster> The job system is the chosen hammer
<gary_poster> I don't hink it is super simple
<gary_poster> it's fairly reliable
 * bac -> chr
<bac> gary_poster, benji: my changes *appear* to work when exercised via lp.dev.  proper tests are now the focus.
<benji> cool
<bac> benji: did you do chr?  there was practically nothing there
<benji> bac: nope, my power was out at the time and then I forgot
<benji> I'm glad there wasn't a backlog
<gary_poster> cool
<bac> i am releasing myself on my own recognizance.  be back later.
<gary_poster> doesn't sound safe to me.
#launchpad-yellow 2011-08-11
<gary_poster> bac benji danilos gmb, call in 1 or 2
<gmb> ok
<gary_poster> danilos, call now ok?
<danilos> gary_poster, yep
<gary_poster> gmb, guests are leaving and I need to say bye.  I think I'll be back in time for our call, but I might be a hair late.  I'll ping.
<gmb> gary_poster: Okay.
<gary_poster> CHR
<gary_poster> gmb, could you field https://answers.launchpad.net/launchpad/+question/167605 quickly?
<gmb> gary_poster: Looking...
<gary_poster> thx
 * danilos -> out, enjoy the evening gentlemen :)
<gmb> Oh gods, it's a Mantis instance.
<gmb> Stabby.
<gary_poster> bye, you too :-)
<benji> gary_poster: http://www.infoworld.com/d/application-development/pillars-python-six-python-web-frameworks-compared-169442
<gary_poster> http://www.webnoir.org/
<benji> gary_poster: Dust Bowl Children rocks pretty hard
<gary_poster> benji, yeah :-)
<bac> benji: did gary just disappear?
<benji> bac: yep; he's taking off early today; I thought he had a call with you first though
<bac> benji: well my irc client was disconnected though i didn't notice
<bac> skype was up, though
<bac> oh well
<benji> CHR time
<benji> done!
<benji> a new record: 8 minutes
#launchpad-yellow 2011-08-12
<benji> gmb: it appears my QA instructions for bug 823321 were at least sufficient
<_mup_> Bug #823321: Related branch pre-search clears search activity indicator when complete <qa-ok> <Launchpad itself:Fix Committed by benji> < https://launchpad.net/bugs/823321 >
<gmb> benji: Indeed :). Actually, I'd seen the bug myself yesterday so I knew what I was looking for.
<benji> cool
<benji> so, who wants to host the call today?
<danilos> do they have to bring out snacks and drinks?
<danilos> assuming not, I'll do it :)
<danilos> bac, benji, gmb: call in a bit
<danilos> like now :)
<gmb> Hah. I forgot.
 * gmb starts skype
<bac> has anyone noticed we are such nerds we go by alphabetical order of our IRC nicks?
<gmb> I liked going by order of height.
