[04:13] <wgrant> stub: Yes yes yes kill BST.
[04:22] <stub> Annoying DBA's since 2006
[04:23] <stub> spurious-apostrophes-is-us
[04:31] <lifeless> BST ?
[04:36] <stub> Bull Shit Time
[04:37] <stub> Better to run in Unambiguous Computer Time
[04:37] <lifeless> heh
[04:37] <lifeless> I know what it meant, I was wondering what the impact was
[04:37] <lifeless> didn't you set the test tz to be argentina or something ages back ?
[04:47] <stub> Launchpad copes, but it confuses users. wgrant was referring to the recent bug that revision timestamps are in BST (and we don't display the timezone either).
[04:48] <stub> https://bugs.edge.launchpad.net/launchpad-code/+bug/594591
[04:48] <_mup_> Bug #594591: What timezone does codebrowse display? <Launchpad Bazaar Integration:New> <https://launchpad.net/bugs/594591>
[04:48] <lifeless> oh
[04:49] <lifeless> in loggerhead or lp core ?
[04:49] <lifeless> sounds like loggerhead
[04:51] <stub> Yer. Elsewhere we use 'x hours ago' or just the date, which is human friendly I guess but not cache friendly.
[04:54] <lifeless> its friendly enough
[04:54] <lifeless> pull the cached object, format, ship
[04:54] <stub> Not when you are trying to cache the formatting
[04:55] <lifeless> thats true, but formatting single revs isn't where the bottlenecks for loggerhead are
[04:55] <lifeless> its also cachable for the granularity of your format
[04:55] <lifeless> e.g. 60 seconds for 'last X minutes
[04:56] <lifeless> '60 minutes for 'last Y hours
[04:56] <lifeless> and days for 'Z days ago'
[04:56] <lifeless> if you're getting multiple requests a second, a 60 second cache is plenty
[04:57] <lifeless> particularly as its self bounding - after an hour it will scale back, and so on
[05:13] <stub> I'm thinking more about Launchpad. Marking up out content is slow.
[05:15] <wgrant> Do we have a good analysis of where time is spent?
[05:15] <stub> Less so now that thumper switched off bug-link tooltips so rendering text containing a bug tag no longer issues database queries
[05:15] <thumper> stub: it does for faq references still
[05:16] <stub> There is a dropin TAL replacement called Chameleon, but unfortunately isn't dropin-enough so we are still using the default TAL rendering engine.
[05:16] <wgrant> stub: That sounds like it could easily be done with memcached...
[05:16] <stub> thumper: it won't when I get done
[05:16] <wgrant> Although python-memcached seems to be very slow.
[05:16] <thumper> lifeless: I'm in general agreement with you about privacy
[05:16] <thumper> lifeless: I think we need careful analysis of it as it will touch everything
[05:16] <lifeless> stub: understood; I don't want to make things slow :). We could still get 60 second caches out using the above strategy for LP.
[05:16] <stub> wgrant: Still sucks the first time you render it, unless you prepopulate memcache and have some way of ensuring objects don't get evicted.
[05:17]  * thumper is still trying to do personal 360 reviews even though they are late
[05:17] <wgrant> stub: Right.
[05:17] <lifeless> thumper: year, I had two 360's turn up late, forgot about em, and remembdered today
[05:17] <lifeless> better todo than not todo
[05:30] <thumper> lifeless: do you have a few minutes for a skype call?
[05:30] <lifeless> sure
[05:30] <lifeless> let me grab my mic from lynne so you don't get feedback
[05:30] <thumper> ok
[05:55] <lifeless> thumper: you have mail
[06:21] <mtaylor> don't use python-memcached
[06:21] <mtaylor> you want to use the one based on libmemcached
[06:24] <lifeless> what is it called?
[06:26] <mtaylor> python-libmemcached I think
[06:26] <mtaylor> also, I started a new one at one point - can't remember if I ever released it
[06:27] <lifeless> have you played with gizzard /
[06:35] <mtaylor> no...
[06:37] <mtaylor> ew. they're using thrift
[06:38] <stub> The other memcached library seemed flakier than python-memcached. Not sure what the performance issue is - it seems very thin.
[06:40] <stub> It would be trivial to switch though - we are only using the minimal API at the moment if they are different (get/set single keys at a time)
[06:40] <mtaylor> the main reason to switch would be getting distributed support that's in libmemcached
[06:41] <stub> Possibly because of versions of libmemcached in hardy too - not sure what is there.
[06:41] <mtaylor> that's where all the partitioning/load-balancing is handled  - oh you need hardy
[06:41] <mtaylor> yeah, that's gonna be old
[06:41] <mtaylor> I've got libmemcached backports in my ppa I believe
[06:41] <mtaylor> I may have deleted hardy though...
[06:42] <mtaylor> yeah, sorry. no hardy
[06:42] <stub> If it is worth upgrading we can worry about it after the lucid upgrade.
[06:42] <stub> What is the distributed support?
[06:43] <mtaylor> the key hashing algorithms to distribute across multiple memcached's is implemented in libmemcached rather than server side
[06:43] <mtaylor> it's conceivable that the pure-python one could have re-implemented all of the hashing stuff, but rather unlikely
[06:45] <stub> The pure python library calculates the hashes client side, and there is a hook to enable server side if you want.
[06:46] <stub> no... all client side. that hook is to be compatible with an older server I think.
[08:00] <gmb> Morning kids.
[08:01] <spm> yo dad
[08:01] <wgrant> gmb: Morning.
[08:02] <gmb> spm, This morning, I feel old enough to be your dad.
[08:02] <gmb> Morning wgrant.
[08:02] <spm> gmb: that's a scary scary place to be, given how old my dad actually is
[08:02] <wgrant> Did you get an email from that ec2 test of mine you ran?
[08:02] <wgrant> Because it landed.
[08:02] <wgrant> But I didn't get an email from it.
[08:03] <wgrant> Nor the other one, which probably failed.
[08:03] <gmb> wgrant, Yes, I did; I misspelt your email on the command line, that's why you didn't get one :).
[08:03] <gmb> (I wrote wrant, it turned out)
[08:03] <wgrant> gmb: Ah. So maybe mars just didn't fire my other one off, and EC2 isn't being crap again.
[08:03] <spm> wrant seems more accurate somehow...
[08:04] <wgrant> Heh.
[08:04] <gmb> wgrant, Possibly. You have to deliberately put emails in as CLI arguments, so maybe he ran the tests but forgot to add you as a recipient.
[08:04] <wgrant> gmb: Doesn't ec2 land do that automagically?
[08:04]  * spm is depressed he hasn't noticed that potential childish name misspelling tease. right under his nose all this time. shame.
[08:05] <wgrant> spm: Maybe I need to get wgrant.com, and start a blog named WG-rant.
[08:05] <spm> BWHAHAhahahahahaha
[08:05] <gmb> wgrant, Yes, but I ran (and I suspect mars ran) ec2 test, just out of habit when running others' code through ec2.
[08:05] <gmb> wgrant, That would be full of win.
[08:05] <gmb> You could have a deathmatch with Matt Garrett.
[08:06] <wgrant> He'd surely win.
[08:10] <gmb> Starbucks appear to have picked "bizaare Ska tracks" as their CD this morning. Time for Rhythmbox.
[08:14] <adeuring> good morning
[08:42] <stub> I need some crappy javascript to sort tables by clicking on the column headers
[08:42] <stub> Or some good javascript - I'm not fussy.
[08:42] <lifeless> we had that
[08:42] <lifeless> 5 years back, just uncommit
[08:42] <lifeless> in fact, I think some tables *still* have it
[08:44] <stub> But I'll worry about that after a swim
[08:58] <wgrant> Can someone please ec2 land https://code.edge.launchpad.net/~wgrant/launchpad/bug-592935-hide-disabled-ppas/+merge/27411 and https://code.edge.launchpad.net/~wgrant/launchpad/bug-592914-recipe-distroseries-order/+merge/27415?
[08:59] <jelmer> wgrant: sure
[08:59] <wgrant> jelmer: Thanks.
[09:09] <mrevell> Good morning
[09:13] <noodles775> Hi stub (or anyone with sql-foo), if you have a chance, can you take a look at the following options and let me know which of the two (left join or except) would be better? http://pastebin.ubuntu.com/450490/
[09:14] <noodles775> erm, sql-fu ;)
[09:15] <noodles775> (with both queries the result will be limited to a batch)
[09:17] <gmb> Right. Modules without an __all__, which are used in indirect imports, first against the wall when I become President of the World, okay?
[09:19] <wgrant> You have my vote, as long as removing all glob imports is also one of your core promises.
[10:51] <lifeless> where is the ec2 land code these days ?
[10:52] <james_w> ./utilities/ec2
[10:53] <james_w> ./lib/devscripts/ec2test for the meat.
[10:54] <lifeless> I meant as a branch url )
[10:54] <lifeless> what branch is that in
[10:55] <james_w> it's in the launchpad codebase
[10:55] <lifeless> thanks
[10:56] <james_w> http://bazaar.launchpad.net/~launchpad-pqm/launchpad/devel/files/head:/lib/devscripts/ec2test/
[10:59] <lifeless> hah
[10:59] <lifeless> bad mime type, naughty bobo
[11:00] <lifeless> or,.
[11:00] <lifeless> email module being confusion, no worries
[12:36] <jtv> hnyarg testfix mode?
[12:37] <wgrant> bigjools: Is the package metadata thing being designed with the PPA index page as a possible future use case?
[12:38] <bigjools> no
[12:38] <wgrant> :(
[12:39] <bigjools> but it would be easy to do
[12:39] <bigjools> just not a priority
[12:39] <wgrant> Well, as long as the format isn't unowkrable.
[12:40] <noodles775> It'd be great to be able to say, if the meta data is there describing the apps, use it, otherwise use the installable binaries...
[12:40] <wgrant> Exactly.
[12:42] <jtv> Anyone got time to testfix lp.code.browser.tests.test_sourcepackagerecipe.TestSourcePackageRecipeView.test_request_builds_page?
[12:43] <wgrant> The order thing?
[12:44] <jtv> wgrant: looks like
[12:44] <jtv> Warty & Secret changed places in some test output.
[12:44] <wgrant> I have a branch in EC2 which orders by distroseries.version. I wasn't aware the order wasn't stable... I was just irritated over the weekend that it was arbitrary.
[12:45] <wgrant> So it will probably be rejected for the thing that it fixes :(
[12:45] <jtv> wgrant: the irony.
[12:46] <jtv> wgrant: I guess this was Aaron's branch, and he's not here yet...  any other interesting background you can give me?
[12:47] <wgrant> I don't know why it's just started breaking now.
[12:49] <jtv> wgrant: hmmyeah... I don't see anything in the past day of changse that would particularly have effected this.
[12:50] <jtv> It may be an indeterminate ordering.
[12:50] <jtv> What was that sound?  Ah, darkness fell.  Goes so fast here.
[12:50] <wgrant> Oh.
[12:51] <wgrant> Oh. I hate you.
[12:51] <wgrant> Gaaaah.
[12:51] <wgrant> So, I was told to use attrgetter('name.version') rather than lambda ds: ds.name.version
[12:51] <wgrant> That worked locally, although I was surprised.
[12:51] <wgrant> And it just failed ec2.
[12:51] <jelmer> wgrant: did you see those emails?
[12:51] <wgrant> Turns out that python2.5 doesn't like that.
[12:51] <wgrant> python2.6 is fine with it.
[12:51] <wgrant> Gahl
[12:52] <wgrant> So, https://code.edge.launchpad.net/~wgrant/launchpad/bug-592914-recipe-distroseries-order/+merge/27415
[12:53] <jtv> wgrant: errr when you say "I hate you," who exactly are you talking to?
[12:53] <wgrant> That should work on 2.5.
[12:53] <wgrant> jtv: Python.
[12:53] <jtv> ah :)
[12:54] <wgrant> Does anybody have a 2.5-using system that they can test that on?
[12:54] <wgrant> 'bin/test -t sourcepackagerecipe' is sufficient.
[12:56] <jtv> (silence)
[12:56]  * mwhudson thinks attrgetter is an abomination
[12:57] <jtv> wgrant: I can run it through ec2, and then just land it
[12:57]  * jtv wonders: if it works for "foo.bar" will it also work for "foo.invokeSomeMethod(param, arg).bar"?
[12:58] <wgrant> mwhudson: This new variant seems to be.
[12:58] <wgrant> The old one wasn't too bad.
[12:58] <mwhudson> maybe i exaggerated
[12:59] <mwhudson> s/abomination/solution to a non-problem/
[12:59] <wgrant> What, you don't hate lambdas like Launchpad policy does?
[12:59] <mwhudson> correct
[12:59] <wgrant> Good.
[13:09] <jtv> noodles775, I'm sure you know this: can I give utilities/ec2 options like bin/test's -t to control which tests will run?
[13:10] <noodles775> I don't actually... I'd use the source to find out...
[13:10] <jtv> I did that, but it's not incredibly transparent.
[13:12] <noodles775> jtv: utilities/ec2 --help test
[13:12] <noodles775> Shows how to pass test options.
 So, I was told to use attrgetter('name.version') rather than lambda ds: ds.name.version
[13:12] <maxb> What is the rationale for that? The lambda looks so much nicer to my mind
[13:12] <jtv> noodles775: damn, I should've thought of that.  :)  Thanks.
[13:12] <wgrant> maxb: The style guide just about forbids lambdas.
[13:13] <jtv> And the exception to that is recent.
[13:13]  * noodles775 thinks it's another case of "use it sensibly"
[13:13] <noodles775> s/it's/it should be/
[13:13] <wgrant> It explicitly says that one should use attrgetter instead if possible.
[13:14] <maxb> And fails to provide plausible rationale for this :-(
[13:14] <noodles775> which broke your test on 2.5 :/
[13:15] <jtv> ISTR the review docs on the old wiki saying something about attrgetters as well...  something about them being unsafe?  Never really got what it was about.
[13:31] <maxb> "Use of the built-in hasattr function should be avoided since it swallows exceptions." ?
[13:33] <wgrant> http://bugs.python.org/issue504714
[13:58] <mars> wgrant, I did not get a mail for that branch.  Not sure why, maybe the run itself did not start, and I no longer have the console I started it in.
[13:59] <mars> wgrant, do you need me to do another run?  Or did gmb pick it up?
[13:59] <gmb> mars, I didn't pick it up since I didn't know what happened to it.
[13:59] <gmb> Probably best to run it again.
[14:02] <wgrant> mars, gmb: jelmer reran it.
[14:02] <wgrant> But it failed.
[14:02] <wgrant> Since attrgetter('foo.bar') doesn't work on Python 2.5.
[14:03] <wgrant> So I've reverted to the lambda.
[14:03] <mars> wgrant, yeah, I thought of that when I saw your reply later that night
[14:03] <wgrant> But now devel is in testfix.
[14:03] <mars> I have a hard-earned "check in Python2.5" mental switch after trying to work in 2.6 for a while
[14:04] <mars> 2.6 has a surprisingly large number of obviously useful features that are not in 2.5.  You get addicted to them.
[14:04] <wgrant> Heh.
[14:04] <wgrant> Yes...
[14:05] <wgrant> I think 2.4->2.5 might have been worse, though.
[14:05] <wgrant> But we can do away with 2.5 in a month or two...
[14:05] <mars> yes, looking forward to that
[14:08] <wgrant> Hm.
[14:08] <wgrant> Someone has landed that branch now, anyway.
[14:08] <wgrant> jtv: Was that you?
[14:08] <jtv> wgrant: yes
[14:08] <jtv> like I said
[14:08] <wgrant> Thanks.
[14:09] <jtv> Thank _you_.  Easy testfix.  :)
[14:24] <maxb> ooi, do we know when we will know when LP datacentre machines start going lucid?
[14:27] <wgrant> https://code.edge.launchpad.net/~wgrant/launchpad/bug-592935-hide-disabled-ppas/+merge/27411 failed EC2 because of the devel breakage.
[14:27] <wgrant> Can somebody please send it back?
[14:34] <mars> wgrant, I'll try and lp-land it
[14:35] <wgrant> I wonder if it will bother to email anybody this time.
[14:49] <mars> wgrant, it is on its way
[14:50] <mars> but the buildbot pass is a while away - 7 hours
[14:52] <wgrant> But it should be untestfixed already, right?
[14:53] <mars> yes
[14:53] <mars> jtv's branch did that
[14:53] <jtv> mars: it was wgrant's branch... I just landed it as a testfix
[15:42] <sinzui> gary_poster, flacoste: I need help with a CheckBoxWidget: http://pastebin.ubuntu.com/450614/
[15:44] <gary_poster> sinzui: not sure.  I'll look at setUpWidget.
[15:45] <sinzui> gary_poster, flacoste: I neglected to mention that I am using GhostWidget to suppress rendering. I now think (after making my failure public) that the problem is that GhostWidget is really a text widget, it does not covert values of 'on' to True
[15:46] <sinzui> That must be the case. I should subclass the GhostWidget or implement a BooleanGhostWidet
[15:46] <gary_poster> sinzui: that jibes with the suggestion that I was trying to validate before making: make the widget handle the value.
[15:47] <gary_poster> so, agree
[15:47] <sinzui> thanks gary
[15:47] <flacoste> sinzui: why do we need a ghostwidget in the first place?
[15:47] <gary_poster> welcome
[15:49] <sinzui> flacoste, it is a mechanism we use to allow a form to manage manage a field in a normal fashion, but permit another widget to do the rendering. We do this when we want to compose a compound widget that interleaves subordinate fields into the widget's primary field
[15:50] <sinzui> flacoste, eg, we show the licence_info field adjacent to the license widget because it is only relevant when the user choose two of the 25 items
[15:56] <flacoste> ok
[15:57] <sinzui> sweat a 6 line fix by converting the Ghost into a mixin
[15:58] <sinzui> ow sweet. I hate English
[17:49] <jml> how do I disable edge redirection
[17:50] <jpds> jml: Footer of any page on the right: "Disable edge redirect".
[17:51] <jml> jpds, thanks.
[18:20] <mrevell> night
[19:36] <henninge> matsubara: you were saying you something like bug 595163 fixed elsewhere? Do remember where?
[19:36] <_mup_> Bug #595163: TypeError raised when query string contains a list <oops> <Launchpad Translations:New> <https://launchpad.net/bugs/595163>
[19:36] <matsubara> henninge, just a sec. let me find it
[19:41] <matsubara> henninge, https://bugs.edge.launchpad.net/bugs/213366
[19:41] <_mup_> Bug #213366: OOPS in +builds page passing a list as the query string <oops> <Soyuz:Fix Released by cprov> <https://launchpad.net/bugs/213366>
[20:12] <henninge> matsubara: so, that fix turns the TypeError into an UnexpectedFormData. Is that an acceptable fix?
[20:13] <matsubara> henninge, yes, I think so. that way the user will be informed that what he's trying to do is wrong and we won't record an oops for it
[20:14] <henninge> ok, cool ;-)
[20:14] <henninge> matsubara: thanks, that's really easy now.
[20:14] <henninge> I hope
[20:14] <henninge> ;)
[20:21] <matsubara> :-)
[22:14] <maxb> thumper: Hi. Given the status of bug 327126 is it OK if I go ahead and create a small bzr-svn import from apache.org ?
[22:14] <thumper> maxb: yep
[22:15] <maxb> lets give it a go... (I have doubts)
[22:18] <maxb> bzrlib.errors.NotBranchError: Not a branch: "/subversion/trunk/subversion/tests/cmdline/svntest".
[22:18] <maxb> boo
[22:18] <maxb> (yes I did want just the svntest library in its own branch)
[22:21] <thumper> maxb: we do have some apache imports working
[22:21] <maxb> yeah, I think I've been caught out by bzr-svn being too clever for its own good
[22:25] <lifeless> skynet is on the way