[12:21] <spiv> elmo: pong?
[12:25] <kiko> spiv!
[12:25] <spiv> kiko: Good morning.
[12:26] <kiko> how are you?
[12:27] <spiv> Pretty good.  Summer has arrived, but I'm managing not to wilt.
[12:28] <kiko> heh, summary of our summer seems to be RAIN 
[12:28] <kiko> spiv, how's the SM work going? how are you feeling?
[12:31] <spiv> It's started a bit slower than I'd like, but more tests are passing every day.  The new spec requires a lot more dynamicness (like being able to go off and query launchpad in response to a mkdir request), so that's requiring a fair bit of effort.
[12:31] <kiko> yeah, the coupling is a lot higher
[12:31] <kiko> is the API sufficient or are you finding it to be swiss-cheese
[12:32] <kiko> and how is the XML-RPC working?
[12:33] <spiv> The immediate issue is that the "vfs" code in Twisted is still fairly immature, and hasn't needed to be properly async -- i.e. it assumes that mkdir works immediately.  I'm fixing that up as I go along, so far no major surgery has been required.
[12:34] <kiko> you are making me want to cry
[12:34] <spiv> Well, the previous sftp code did this all ad hoc.
[12:34] <kiko> this sounds like a quagmire
[12:34] <spiv> Now at least it has some infrastructure in Twisted to lean on, even if that infrastructure is still rather young.
[12:34] <spiv> Hmm.
[12:35] <kiko> spiv, why don't you stay more in touch about this sort of thing? I really appreciate hearing it but I only get to know about it if I stay up till my eyeballs are bloody
[12:35] <spiv> Well, I can probably cut some corners here.  It'll scale horribly, but it'll get us started.
[12:35] <kiko> I've written some soyuz reports this week
[12:35] <spiv> kiko: Because I'm a slacker :(
[12:35] <kiko> yeah, be practical -- this can be fixed later
[12:35] <kiko> nah
[12:35] <kiko> your strine
[12:35] <kiko> these people have communication trouble I tell you
[12:36] <kiko> you're strine
[12:36] <kiko> maybe send in a report every once in a while 
[12:36] <spiv> (The authentication phase is properly async, so if I were to retrieve all the information I may possibly need in advance (i.e. complete dump of product name <--> id mapping, etc), I could keep mkd immediate)
[12:36] <kiko> gustavo and I are dying to see the work
[12:36] <kiko> and know how it's going
[12:37] <kiko> spiv, hmmm. doesn't sound too exciting
[12:38] <spiv> Hmm, that still wouldn't help creation of new branches, though.
[12:38] <spiv> Which has the same fundamental issue.
[12:38] <spiv> But that's alright, I've already got this particular problem mostly patched up, and it's the worst one.
[12:39] <kiko> so far :)
[12:39] <spiv> Right :)
[12:39] <spiv> But we really only need to be this dynamic on mkdir.
[12:39] <dilys> Merge to devel/launchpad: update format of /supermirror-pull-list.txt [r=BjornT]  (r2902: David Allouche)
[12:40] <spiv> Existing directories I can already grab the info I need at auth time, which is convenient for a variety of reasons.
[12:41] <kiko> well twisted is probably not optimized to give you hook points in every step the user takes down the filesystem
[12:41] <spiv> Well, the plan for Twisted is that is will.
[12:42] <spiv> But it's a very new API that doesn't have many users yet.  I did some work on it at the last Twisted sprint in Sydney.
[12:42] <kiko> immature APIs are the suk
[12:42] <kiko> anyway I need to go and have dinner with niemeyer, last day here
[12:42] <spiv> To be properly Twisted, it should be async at every step.  There's a bug about it in the tracker somewhere.
[12:42] <kiko> we don't need 100% -- just the 80% to make it practical
[12:43] <spiv> The way to get there is to fix one operation at time.  In this case, I'm fixing createDirectory, because that's all I need :)
[12:43] <kiko> please make a point of telling launchpad@lists about how this is going
[12:43] <spiv> Ok.
[12:43] <kiko> because I feel like crying when I find out you had trouble and I didn't know
[12:43] <kiko> it's okay to have trouble
[12:44] <kiko> but we need to accomodate for it
[12:44] <kiko> and there's a million people that will move in lockstep with the code that's being worked on by you ddaa jblack and the bzr cabal
[12:44] <kiko> anyway
[12:44] <kiko> 10-4
[12:46] <cprov> good night guys 
[01:38] <jblack> There's a related one, #3708
[02:24] <OgMaciel> hi... I need to set my default email at Launchpad to be a new @ubuntu.com email but I don't have it yet... so the system won't let me do it until I can confirm it
[02:24] <OgMaciel> can someone help me out?
[02:25] <OgMaciel> ogra told me to come here for help
[02:27] <spiv> OgMaciel: Hmm, you don't really want to set your Launchpad address to be @ubuntu.com.
[02:28] <spiv> OgMaciel: Because you'll make a mail loop.
[02:28] <spiv> There's a bug about this...
[02:28] <OgMaciel> spiv, I see
[02:28] <OgMaciel> spiv, what I really want is to have my current email changed
[02:28] <OgMaciel> right now is og-maciel@ubuntu.com
[02:28] <OgMaciel> I want to remove the dash
[02:30] <spiv> Ah, bug 5292
[02:30] <Ubugtu> Malone bug #5292: People setting preferred contact address to @ubuntu.com In: launchpad (upstream), Severity: Normal, Assigned to: Guilherme Salgado, Status: New https://launchpad.net/bugs/5292
[02:30] <OgMaciel> he
[02:30] <OgMaciel> Ubugtu, do you happen to have the date for that bug?
[02:31] <spiv> OgMaciel: You'll need to talk to an admin to get your @ubuntu.com email alias changed -- at the moment, the automatic sync with Launchpad isn't running.
[02:32] <spiv> OgMaciel: You probably need stub and/or elmo.
[02:32] <OgMaciel> spiv, cool... thanx
[02:33] <OgMaciel> elmo doesn't reply and stub isn't around... oh well...  ;)
[02:34] <spiv> OgMaciel: Failing all else, you could file a bug against Launchpad.  But if can you wait a few hours, stub should be online.
[02:35] <OgMaciel> spiv, will do that...  I've been advocating a lot these days and would be nice to give people my corrected email address
[02:35] <spiv> OgMaciel: :)
[02:36] <jblack> spiv: Heya. Any updates from a couple days ago?
[02:36] <OgMaciel> ;)
[02:37] <spiv> jblack: Nothing particularly visible from your perspective -- see also my conversation with kiko a few hours ago.
[02:38] <jblack> Heh. You've got a lot of people asking you about this, eh?
[02:39] <spiv> So it seems :)
[02:40] <jblack> I'll back off a bit
[02:41] <spiv> Nah, it's fine.  You're always welcome to ask.
[03:05] <OgMaciel> stub, excuse me... do you have a minute?
[03:05] <stub> Whats up?
[03:06] <OgMaciel> I need to change my current ubuntu email 
[03:06] <OgMaciel> launchad won't let me
[03:06] <OgMaciel> ogra suggested I asked for help here
[03:07] <OgMaciel> think you can lend me a hand?
[03:07] <spiv> stub: I think it may be related to bug 5292
[03:07] <Ubugtu> Malone bug #5292: People setting preferred contact address to @ubuntu.com In: launchpad (upstream), Severity: Normal, Assigned to: Guilherme Salgado, Status: New https://launchpad.net/bugs/5292
[03:08] <stub> You need to change your 'name' field to what you want (name -> name@ubuntu.com). However, I believe the script that syncs names to email addreses is currently broken so elmo might need to fix it manually for you.
[03:08] <OgMaciel> stub, already changed my name but have not been able to reach elmo
[03:09] <OgMaciel> spiv, actually my email has to be update... and launchpad requires an email verification... so I have a catch 22
[03:09] <jamesh> OgMaciel: try waiting til UK business hours
[03:09] <OgMaciel> jamesh, that wouldn't work for me...  need to get my beauty sleep so I can be ready for work
[03:09] <spiv> OgMaciel: What's your name in launchpad?
[03:09] <OgMaciel> ogmaciel
[03:09] <OgMaciel> ;)
[03:09] <OgMaciel> https://launchpad.net/people/ogmaciel
[03:10] <jamesh> OgMaciel: I'm just telling you when you are most likely to catch elmo.
[03:10] <stub> Hmm... the email syncing bug has disappeared :-(
[03:10] <spiv> Ah, your preferred isn't set to @ubuntu.com, that's good.
[03:10] <lifeless> spiv: hola
[03:11] <lifeless> spiv: nice work on the id mapping
[03:11] <spiv> lifeless: Good afternoon.
[03:11] <OgMaciel> spiv, I actually changed after you told me about the bug
[03:11] <OgMaciel> ;)
[03:11] <spiv> OgMaciel: Ah :)
[03:11] <lifeless> spiv: I realise we did not talk about the priority of the other 5 use cases.
[03:11] <lifeless> spiv: the other apache script is also a dependency for both pull and push
[03:11] <lifeless> spiv: will it disrupt you to make it #1 ?
[03:12] <spiv> lifeless: Only a little.
[03:12] <lifeless> Ok, if its ok with you, please do that.
[03:12] <lifeless> that will help unblock jblack & ddaa
[03:12] <spiv> lifeless: so, to double-check, the thing to generate a file for RewriteMap?
[03:13] <lifeless> yes
[03:13] <spiv> i.e. the thing to make the public http work.  Ok.
[03:13] <lifeless> yes
[03:13] <spiv> (I'd hate to be working on the wrong thing!)
[03:13] <OgMaciel> stub, so, should I wait for elmo?
[03:13] <lifeless> ;)
[03:14] <stub> OgMaciel: Nobody else can help you I'm afraid, so yes.
[03:14] <OgMaciel> stub, no prob...  =)
[03:15] <OgMaciel> England is 6 hours ahead of the US, right?
[03:15] <lifeless> england is GMT at the moment
[03:15] <lifeless> the US is more than one TZ, so your question is impossible to answer
[03:15] <OgMaciel> lifeless, NYC
[03:15] <OgMaciel> UTC-5
[03:16] <lifeless> then england is 5 hours ahead  ofyou ;)
[03:16] <OgMaciel> right-o
[03:16] <OgMaciel> thought it would 6 but close enough
[03:16] <OgMaciel> would be
[03:17] <lifeless> 0-5 = -5 ;)
[03:18] <lifeless> anyway that does not help you much 
[03:18] <OgMaciel> ;)
[03:18] <lifeless> james is operating at about -10
[03:19] <OgMaciel> spiv, will launchpad be ever translated to other languages?
[03:20] <spiv> OgMaciel: Eventually, yes.
[03:20] <OgMaciel> cool
[03:20] <spiv> We have lots of other things to work on first :)
[03:21] <OgMaciel> some people stumble a bit on the CoC signing and stuff
[03:21] <OgMaciel> obviously people who work as translators shouldn't have a problem... ;)
[03:22] <spiv> Heh :)
[03:27] <OgMaciel> spiv, stub thanks for your time...  will try again some time earlier tomorrow
[03:30] <stub> Ahh - Bug 5278
[03:30] <Ubugtu> Malone bug #5278: Launchpad name -&gt; @ubuntu.com email address broken In: launchpad (upstream), Severity: Normal, Assigned to: James Troup, Status: New https://launchpad.net/bugs/5278
[03:30] <spiv> Heh, there's a bug in Ubugtu there :)
[03:30] <spiv> "&gt;"
[04:48] <_keturn> ...the python-openid library has been announced...  it becons to you...  it says "please integrate me with launchpad!  please!"
[04:50] <stub> Excellent - might save us having to implement chunks of it ourselves.
[04:52] <stub> Bug 1169
[04:52] <Ubugtu> Malone bug #1169: Launchpad should support OpenID In: launchpad (upstream), Severity: Normal, Assigned to: Nobody, Status: New https://launchpad.net/bugs/1169
[04:54] <_keturn> stub: let me know if it'll work for you
[04:59] <stub> _keturn: We won't be looking at that until maybe February
[05:00] <jamesh> stub: would staging be in a state where I could do another test run of the bugzilla-importer some time?
[05:06] <stub> jamesh: Now would be fine.
[05:13] <spiv> _keturn: Thanks!
[05:30] <stub> Can I consider the Referrer: header 'reliable enough' for refactoring the notifications machinery?
[05:30] <stub> lifeless, spiv, jamesh: ^^^
[05:32] <stub> ie. given that it won't be an attack point (worst you could do is screw up your own session), can I rely on our target browsers setting it consistently?
[05:34] <lifeless> uhm
[05:34] <lifeless> there are privacy plugins that disable it
[05:34] <lifeless> whats the refactoring you want to do ?
[05:34] <stub> oh - bum. There is still the same flaw anyway. I can't see a way to refactor the notifications to reliably display them without passing a token in the URL.
[05:34] <spiv> Getting rid of ?lpnotification=xxxxxx I'm guessing?
[05:34] <lifeless> set cookie
[05:35] <lifeless> ?
[05:35] <lifeless> what are the constraints
[05:35] <lifeless> are we allowed to put the notification in session state ?
[05:35] <stub> Page A sets notifications and redirects to page B. Client loads page B, finding notifications displayed.
[05:35] <stub> Yes - the messages are in the session. The token is used to identify which messages to display.
[05:35] <lifeless> right
[05:36] <lifeless> and its a one time thing
[05:36] <lifeless> the right way for that is a url parameter or post parameter
[05:36] <stub> Indeed. But complicated because when the client views page B, they load page B and all its resources.
[05:36] <lifeless> ...
[05:36] <stub> The current implementation is correct and reliable. But people dislike it for aesthetic reasons.
[05:36] <lifeless> oh
[05:36] <lifeless> what aestehtic reasons ?
[05:37] <stub> http://launchpad.net/+niceurl?lpnotification=HKJDHADFSSDFSDFSF
[05:37] <lifeless> so
[05:37] <lifeless> use a post
[05:37] <lifeless> not a get
[05:37] <spiv> lifeless: I file a bug, and then want to paste the URL, but the URL immediately after filing the bug has lpnotification=blergh
[05:37] <stub> I think the best I can do is shrink the token and the key
[05:37] <spiv> I think that's the specific example that came up.
[05:37] <stub> lifeless: I can redirect using a post?
[05:38] <lifeless> or dont redirect, just display the correct content on the page and set the location: header so that the browser shows the url they would have redirected to
[05:39] <stub> If I set the location header, the browser will redirect won't it? Or is that contingent on a 3xx status being sent too?
[05:39] <lifeless> contingent
[05:39] <stub> Cool - that behavior could be useful. Didn't know that.
[05:39] <lifeless> test it first ;)
[05:39] <lifeless> I'm going of deep-foo memory here
[05:40] <lifeless> one thing
[05:40] <lifeless>    If a resource has been created on the origin server, the response
[05:40] <lifeless>    SHOULD be 201 (Created) and contain an entity which describes the
[05:40] <lifeless>    status of the request and refers to the new resource, and a Location
[05:40] <lifeless>    header (see section 14.30).
[05:40] <lifeless> right] 
[05:40] <lifeless> so, I think the magic combo is:
[05:41] <lifeless> POST-> 201 + locationheader of the bug; shows bug pages content
[05:41] <lifeless> I don't think there is a one size fits all for this - we have at least two discrete use cases
[05:42] <jamesh> I wonder if that actually works ...
[05:42] <lifeless> one is editing, one is creating. We *might* be able to showhorn both into the 201 mechanism
[05:42] <lifeless> jamesh: thus the 'test it' phrase ;)
[05:42] <stub> Could be tricky, as I have a URL. I would need to reverse engineer the URL to determine what page to display.
[05:43] <jamesh> stub: is it possible to just queue up the notifications, and have the act of rendering the next page pop off all the pending notifications?
[05:43] <lifeless> is ie a target browser ?
[05:43] <lifeless> jamesh: no
[05:43] <lifeless> jamesh: RACE CONDITION
[05:43] <jamesh> ah.
[05:43] <stub> Unless I use HTTP to retrieve the URL,insert the notifications, then return it.... yech...
[05:44] <lifeless> stub: huh, surely the lp machinery is more flexible than that
[05:45] <lifeless> stub: i.e. let the current request complete, and chain into the new request, use its content, set the response code to 201 and stash the url in location
[05:47] <stub> Something like that. /+shownotification?url=http://launchpad.net/dfs would need to ask the publisher to render http://launchpad.net/dfs for me, and return that after setting the relevant headers. Tricky bit would be virtual hosting, as some of that is done using Apache rules outside of Z3. I also need to canonicalize relative URLs in the redirect. It is non-trivial :-/
[05:48] <lifeless> ah
[05:48] <stub> I'm wondering if I can just render the page as normal, but set the Location: header and possibly change the status to make the browser display the same URL but without the parameters
[05:48] <lifeless> well, I would suggest we:
[05:48] <lifeless> test various permutations to get a working mock up
[05:49] <lifeless> then worry about feasability in lp today/refactorings to do it long term
[05:49] <lifeless> we dont want an incorrect solution after all ;)
[05:50] <lifeless> one thing to note is that a 201 page is one less roundtrip for the browser -> faster
[05:50] <stub> Oh - it appears to have become a high priority which is why I'm looking at aesthetic changes now rather than infrastructure we need :-(
[05:50] <stub> I'll try setting the Location header and changing the status - should be a simple modification to what we already have.
[05:51] <lifeless> blargh
[05:51] <stub> See what happens. Thanks ;)
[05:51] <lifeless> np
[05:54] <stub> I can't help thinking there is a big security hole in here - if this works, in theory I could serve up a web page with a 201 giving a Location: of www.microsoft.com or something
[05:56] <jamesh> this really sounds like the sort of thing that might work in lynx (which uses w3c libwww) but nothing else
[06:03] <stub> Hmm... this might work and be more mainstream. Simply stuff all the notifications into the session. When a page renders the messages, it makes a call that erases the notifications. This will fail in edge cases (multiple windows open into launchpad being used at the same time), but should be good enough that the edge cases will never happen.
[06:04] <stub> At the moment, we don't have the 'erase the notifications' call so this mechanism would display the notifications on every page subsequently rendered.
[06:14] <dilys> Merge to devel/launchpad: [trivial]  Update staging's Gina config (r2903: Stuart Bishop)
[06:21] <lifeless> stub: it will be something..
[06:21] <lifeless> stub: not sure it qualifies as more mainstream. 201 is used, and users hate the sort of bug you are creating
[06:22] <lifeless> is the bug that the url is 'bad' or that the notifications show to anyone given that url ?
[06:26] <stub> The bug is the URL is bad. The notifications will only be shown to the original client (the actual message is stored in the Session, and silently ignored if the session has no notifications matching that token)
[06:26] <lifeless> ok
[06:26] <stub> Just setting the Location: header and the 201 status didn't work btw.
[06:27] <lifeless> after a post ?
[06:28] <lifeless> the spec says that only works in the reply-to-a-post
[06:28] <stub> No - just the redirect. 
[06:29] <stub> The main use is for self posting forms - the form finds itself valid, makes changes, and redirects with a notification.
[06:30] <stub> Unfortunately by the time the redirect is invoked, the page has likely already been rendered
[06:31] <lifeless> but the use case does not need a redirect.
[06:31] <lifeless> the use case needs:
[06:31] <lifeless> a specific url displayed
[06:31] <lifeless> content changed in the system
[06:31] <lifeless> notification on the displayed page
[06:32] <stub> It needs to work with a redirect or we need to rewrite the form machinery
[06:33] <lifeless> details :)
[06:33] <lifeless> seriously though, using redirects there is only one correct way: a token in the url
[06:33] <lifeless> anything else will have race conditions on either the client or server end
[06:33] <lifeless> POE might have some hints, but thats still draft
[06:34] <spiv> Pieces Of Eight?
[06:35] <lifeless> post once exactly
[06:36] <stub> I think I have to go with race conditions, hopefully minimized, to keep people happy. We can revert to the existing correct implementation if people bitch easily enough.
[06:36] <jamesh> lifeless: what if you don't know the destination URL you want the user to arrive at after posting the form til the form has been posted?
[06:37] <stub> Thankfully the race conditions will only be UI glitches - no data loss or OOPS pages will happen. Just messages appearing in the wrong window if you are driving multiple launchpad windows simultaneously.
[06:37] <lifeless> jamesh: exsqueeze me ?
[06:38] <lifeless> jamesh: this is logically the same as emitting the form that the current redirect points at, at the end of the post transaction.
[06:38] <jamesh> lifeless: say you have a post form for creating something, and you want the user on the page for that thing when they post?
[06:38] <jamesh> lifeless: where that second URL depends on the contents of the form?
[06:40] <lifeless> jamesh: I don't understand you. There is no change from todays situation, so are you asking about something we cant do today, or about something you think is changing in my proposal ?
[06:42] <jamesh> lifeless: I was wondering how you'd handle that case without a redirect?
[06:43] <lifeless> jamesh: ?!!!
[06:43] <lifeless> define 'after posting the form'
[06:43] <lifeless> at the moment the logic is roughly:
[06:43] <lifeless> accept a post
[06:43] <lifeless> perform a transaction
[06:43] <lifeless> issue a redirect to a url
[06:43] <lifeless> render that url when the client asks for it
[06:44] <lifeless> the logic I am proposing is roughly:
[06:44] <lifeless> accept a post
[06:44] <lifeless> perform a transaction
[06:44] <lifeless> render the same url the prior logic used and put it in the location header
[06:44] <lifeless> --
[08:38] <stub> Bah. priming the remote branch using 'cp -a rocketfuel/launchpad/devel foo/launchpad/whatever' no longer seems to speed pushes of new branches :-/
[08:39] <jamesh> stub: in BjornT's review of my bugzilla stuff, he mentioned creating a database patch to add the extra user on production.  I don't see any of the existing db patches that just add data to the tables
[08:39] <jamesh> (and it sounds like it would cause problems when loading the sample data)
[08:39] <jamesh> what is the preferred way to do this?
[08:40] <stub> Yup - patches shouldn't insert data. A seperate script needs to be written to do the data insertions that I need to run on production manually.
[08:40] <stub> Generally stuck in database/schema/pending
[08:41] <jamesh> okay.
[08:44] <jamesh> I guess I could run the SQL myself before doing the import
[08:44] <jamesh> it's just the addition of a single user, and my script needs to be able to create users anyway
[08:44] <sivang> morning all
[08:59] <stub> jamesh: That would be best. Saves me forgetting ;)
[09:24] <BjornT> jamesh: would you have time to review my DefaultAffectsTarget branch today?
[09:25] <jamesh> BjornT: okay.
[09:25] <BjornT> thanks jamesh 
[09:27] <jamesh> I fixed the last round of problems you mentioned in the bugzilla-import branch
[09:28] <BjornT> yeah, i've already approved the branch
[09:30] <jamesh> okay.  I'll merge it after doing a test run on staging
[09:51] <stub> importing stuart.bishop@canonical.com/launchpad--staging--3 into /home/warthogs/archives/stub/stuart.bishop@canonical.com/launchpad/3/staging
[09:51] <stub> Cleaning up
[09:51] <stub> bzr: ERROR: exceptions.OSError: [Errno 2]  No such file or directory: '/home/warthogs/archives/stub/stuart.bishop@canonical.com/launchpad/3/staging/./configs/staging3/mail-configure-normal.zcml'
[09:51] <stub>   at /home/warthogs/source/bzr.integration/bzrlib/changeset.py line 376
[09:51] <stub>   in apply
[09:51] <stub> lifeless: More conversion breakage ^^^
[09:52] <lifeless> garh
[09:52] <ddaa> yummy
[09:52] <lifeless> stub: I love you man. bug magnet
[09:53] <ddaa> garh is a worm... not a bug
[09:56] <lifeless> ddaa: ECONTEXT
[09:56] <lifeless> 19:51 < stub> importing stuart.bishop@canonical.com/launchpad--staging--3 into /home/warthogs/archives/stub/stuart.bishop@canonical.com/launchpad/3/staging
[09:56] <lifeless> 19:51 < stub> Cleaning up
[09:56] <lifeless> 19:51 < stub> bzr: ERROR: exceptions.OSError: [Errno 2]  No such file or directory: 
[09:56] <lifeless>               '/home/warthogs/archives/stub/stuart.bishop@canonical.com/launchpad/3/staging/./configs/staging3/mail-configure-normal.zcml'
[09:56] <lifeless> 19:51 < stub>   at /home/warthogs/source/bzr.integration/bzrlib/changeset.py line 376
[09:56] <lifeless> 19:51 < stub>   in apply
[09:56] <lifeless> 19:51 < stub> lifeless: More conversion breakage ^^^
[09:56] <lifeless> 19:52 -!- ddaa [n=ddaa@nor75-18-82-241-238-155.fbx.proxad.net]  has joined #launchpad
[09:56] <lifeless> 19:52 < lifeless> garh
[10:06] <ddaa> you know, garh, this klingon delicacy :)
[10:09] <stub> Sheesh... and I thought I had to be careful in Cambodia
[10:26] <SteveA> Gagh 
[10:26] <SteveA>     Klingon serpent worms. Gagh is best served while as fresh as possible, i.e. while still alive, and it dies only when entering the digestive tract. Klingons say that they don't care for the taste of gagh, but like it for the fight it puts up when eaten. There are actually at least 51 distinct "flavor" varieties of gagh.
[10:26] <SteveA> 
[10:27] <SteveA> http://en.wikipedia.org/wiki/Klingon#Klingon_cuisine
[10:37] <lifeless> ddaa: garh is not gagh
[10:37] <ddaa> mh... you spell klingon bether tan I.
[10:39] <jamesh> lifeless: so what sort of Klingon delicacy is garh?
[10:40] <lifeless> its not, I dont spell Klingon ;)
[10:52] <ddaa> SteveA: what do you mean by "make the notional dependency-replacement-API explicit in the code, rather than saying ``well, the tests can replace anything they want''"?
[10:56] <SteveA> ddaa: when i read the code, apart from that test, i cannot see that there is some attribute that some test will replace with a stub.
[10:56] <SteveA> i think it is worth making that obvious in the code.
[10:57] <ddaa> so, you mean adding a class attribute ImportToBzr._branch_type attribute initially set to ImportdBranch, and using that in ImportdToBzr.make_branch, as I suggested?
[10:58] <SteveA> something like that, yes
[10:59] <ddaa> NameError: name 'login' is not defined
[11:00] <ddaa> so much for implicit imports
[11:00] <ddaa> Since I have to send another merge request anyway, I'll do this other change.
[12:19] <matsubara> good morning!
[12:20] <SteveA> hi matsubara 
[12:20] <SteveA> how's it going?
[12:21] <cprov> morning people
[12:21] <SteveA> hi cprov 
[12:22] <cprov> SteveA:  hey ho 
[12:28] <matsubara> SteveA: fine, what about you?
[12:31] <SteveA> Hey everyone, meeting in 28 minutes
[12:31] <SteveA> matsubara: most excellent
[12:32] <Kinnison> Hmm, I should get gone to the meeting place then
[12:32] <Kinnison> daf: shall we?
[12:33] <mpt> Goooooooooooooooooooooooood morning Launchpadders!
[12:37] <SteveA> ddaa: ping
[12:37] <ddaa> SteveA: poing
[12:37] <SteveA> last meeting, you had two "Change" items
[12:37] <SteveA> one was sysadmin request latency
[12:37] <SteveA> the other was review team latency
[12:38] <SteveA> i'd like to address the review team latency point by pointing at lifeless, who is organising a review team meeting
[12:38] <ddaa> sysadmin request: was discussed monday, "fuzzy requests"
[12:38] <SteveA> do you have any other sysadmin requests waiting?
[12:38] <ddaa> No, only the two we discussed monday.
[12:39] <SteveA> okay
[12:39] <ddaa> Well, Znarl has telling me he'll be doing a neumayer upgrade "tomorrow" since the beginning of week, as well...
[12:39] <SteveA> lifeless: are we having a reviews get-together in 5 mins?
[12:39] <SteveA> ddaa: there's a machine called "neumayer" ?
[12:39] <ddaa> which kind of suggest there's something wrong with sysadmin scheduling
[12:40] <ddaa> SteveA: yes, second hoover slave
[12:40] <SteveA> could we call it niemayer, to make it even more confusing?
[12:40] <SteveA> and also have a machine called ddae while we're at it
[12:40] <kiko-zzz> heh
[12:40] <ddaa> it was there _before_ niemeyer
[12:40] <ddaa> so it's niemeyer's fault :P
[12:40] <kiko> ddaa, not really.
[12:40] <SteveA> niemeyer is pushing 30
[12:41] <ddaa> kiko: at least, in the company...
[12:41] <SteveA> i don't think the machine is that antique ;-)
[12:41] <kiko> he's 26 
[12:41] <SteveA> over 25 is pushing 30
[12:41] <SteveA> i'm pushing from the other direction
[12:41] <kiko> lol
[12:41] <kiko> I'm pushing HARD
[12:41] <kiko> so where's Kinnison 
[12:41] <ddaa> so, you're pulling 30?
[12:41] <kiko> and my soyuz output
[12:42] <SteveA> Kinnison and daf are en-route to the meeting place
[12:42] <SteveA> which i think is a pub in cambridge with internet access where these launchpad meetings traditionally take place
[12:42] <SteveA> salgado: how's it going this morning?
[12:42] <lifeless> SteveA: yes
[12:43] <lifeless> in 3 minutes
[12:43] <ddaa> SteveA: anything you want to talk about before meeting, or can I get a quick snack pre-meeting?
[12:43] <salgado> SteveA, I'm a lot better. 
[12:43] <lifeless> reviewer get together #c-m in 2 minutes
[12:43] <cprov> kiko: good news about DF: NEW -> 9509 REJECTED -> 0 ... slowish (3s) but is working ;)
[12:43] <SteveA> salgado: great.  i commented on your signup workflow spec.  i'd like to talk about it a little, after the meeting.
[12:43] <SteveA> ddaa: nothing more
[12:43] <kiko> cprov, ZERO rejected? woohoo
[12:43] <kiko> you guys DELIVER
[12:44] <SteveA> other than reviewers, everyone else consider taking a workrave before the meeting.
[12:44] <cprov> kiko: that's the aim 
[12:44] <SteveA> also, check out the https://wiki.launchpad.canonical.com/MeetingAgenda page
[12:47] <mpt> kiko, I think the proper term for that is "lolwtfbbq"
[12:49] <cprov> kiko: another good news, full ubuntu archive is able to daily sync propely now, it spent 5914s yesterday, starting at 10 PM.
[12:50] <kiko> cool
[12:51] <SteveA> ddaa: would you come onto #c-m please?
[12:52] <lifeless> ddaa: ping
[12:52] <lifeless> ddaa: can you come into #c-m and tell us your review-team issues ?
[12:59] <SteveA> It is almost Festivus
[12:59] <SteveA> But it is actually Launchpad Development Meeting time!
[12:59] <SteveA> who is here today?
[12:59] <kiko> I AM CANADA
[12:59] <BjornT> me
[01:00] <SteveA> (and no emoting please)
[01:00] <matsubara> me
[01:00] <bradb> me
[01:00] <salgado> me
[01:00] <daf> me
[01:00] <mpt> me
[01:00] <ddaa> no emoting
[01:00] <daf> Kinnison is having some network trouble and will  be joining us shortly
[01:00] <jblack> me
[01:00] <spiv> me
[01:01] <jamesh> me
[01:01] <SteveA> stub sends apologies.  he'll be around a bit later after the meeting though.  i have his 3 sentences and production reports.
[01:01] <lifeless> moi
[01:02] <SteveA> welcome back to work daf.
[01:02] <kiko> SteveA, niemeyer is on a plan, but I have his 3 sentences
[01:02] <kiko> on a plane
[01:02] <SteveA> ok. 
[01:02] <jblack> I hope is plane is on a plan.
[01:02] <kiko> salgado, is cprov up there?
[01:02] <SteveA> that should go on the MeetingAgenda wiki page, as an apology, before the meeting
[01:02] <daf> thanks SteveA 
[01:02] <SteveA> but, thanks for saying now
[01:02] <kiko> cprov, no emoting.
[01:03] <SteveA> at least, not in the roll call
[01:03] <SteveA> == Agenda ==
[01:03] <SteveA>  * Roll call
[01:03] <SteveA>  * Agenda
[01:03] <SteveA>  * Next meeting (discuss changing this again, RobertCollins)
[01:03] <SteveA>  * Activity reports
[01:03] <SteveA>  * Items from last meeting
[01:03] <mpool> movie sign!
[01:03] <SteveA>  * Production / staging (stub)
[01:03] <SteveA>  * Gina and publisher and bugzilla import status (ChristianReis)
[01:03] <SteveA>  * Leave reminder: AndrewBennetts will be on leave from the 14th for an unknown period due to jury duty.
[01:03] <SteveA>  * Python's `list() __len__` optimization, and `SelectResults` (SteveAlexander)
[01:03] <SteveA>  * Encoding the Launchpad Laws (BradBollenbach, ChristianReis)
[01:03] <SteveA>  * Revising the decision about naming methods. (SteveAlexander)
[01:03] <SteveA>  * Decide how to record bzr priorities for launchpad.  (SteveAlexander)
[01:03] <SteveA>  * Reviewers meeting time. (RobertCollins)
[01:03] <SteveA>  * Keep, Bag, Change
[01:03] <SteveA>  * Three sentences
[01:03] <SteveA> 
[01:03] <SteveA> that was the roll call, here's the agenda
[01:03] <SteveA> it's pretty big today, so i'll be nudging things along... with my BOOT
[01:03] <SteveA> all in the name of finishing on time.
[01:03] <kiko> here's to delivery on time
[01:04] <SteveA>  * Next meeting (discuss changing this again, RobertCollins)
[01:04] <Kinnison> NetworkMangler issues, sorry
[01:04] <lifeless> yes, I suck, I did not get a set of proposed times up, sorry.
[01:04] <SteveA> lifeless: last meeting we talked about having a wiki page and stuff to decide on a meeting time that works acceptably
[01:04] <SteveA> lifeless: can we say, same time next week, unless the wiki page comes together first?
[01:04] <lifeless> But I'm very sure now that its not possible because the only slow with any sane times is 2 hours earlier than now
[01:05] <lifeless> and that gets tough for the brazilians
[01:05] <lifeless> not to mention folk west of sao paulos
[01:05] <mpt> I could do the wiki page, if lifeless's mind could better be used elsewhere
[01:05] <lifeless> SteveA: yes, same time next week.
[01:05] <lifeless> mpt: -please-
[01:05] <SteveA> okay.
[01:06] <mpool> SteveA: will there be a meeting on the 22nd?
[01:06] <SteveA> lifeless: i am okay with you missing these meetings sometimes, and making another forum for you to do QA and bzr related stuff with the team
[01:06] <SteveA> this might be better for mpool as well
[01:06] <lifeless> oh that would be lovely ;)
[01:06] <SteveA> so, let's move energies towards that.  lifeless, you're in charge ;-)
[01:06] <lifeless> bah, you delegator you
[01:07] <lifeless> :)
[01:07] <SteveA> next up, Activity reports.  
[01:07] <SteveA> The following people were lax with activity reporting last week: Kinnison, jamesh, SteveA, jordi, carlos
[01:07] <SteveA> i still suck... no activity reports recently
[01:07] <kiko> I am a rock
[01:07] <BjornT> i'm up to date
[01:07] <spiv> I've fallen behind, but I have notes and will do a quick catchup.
[01:07] <lifeless> I suck this time
[01:07] <kiko> Kinnison, how's that for chiding me 2 months ago? :-P
[01:07] <jblack> I'm normally a rock. This week, I suck massively
[01:07] <jamesh> I just sent one for today.  Should send a summary one too
[01:07] <bradb> I'm the slime (i.e. I'm up to date)
[01:08] <Kinnison> kiko: Estrla
[01:08] <salgado> I think I missed monday's report, but send all others
[01:08] <daf> I'm up to date
[01:08] <ddaa> uptodate
[01:08] <matsubara> up to date
[01:08] <mpool> up to date
[01:08] <mpt> up to Tuesday, will be up to date in about five minutes
[01:08] <SteveA> cprov: are you up to date or not on sending the emails?
[01:09] <lifeless> up to date now
[01:09] <SteveA> cprov: i mean, i'm up to date in gtimelog, but i'm slack on actually sending them
[01:09] <SteveA>  * Items from last meeting
[01:09] <SteveA>  * RobertCollins to collect a list of the timezones people are in (as offsets from UTC), and come up with a set of proposed regular meeting times on a wiki page. 
[01:10] <SteveA>  * Kiko and others to get a launchpad community meeting going.  Discussion continued in an email thread.
[01:10] <SteveA>  * SteveA to write definitive emails about naming methods and about raising and catching exceptions.
[01:10] <SteveA>  * Andrew to update the PythonStyleGuide wiki page, to explain naming and exception handling standards.
[01:10] <SteveA>  * SteveA to talk with david about the "change" items: sysadmin request latency and code review latency.
[01:10] <cprov> SteveA: sorry, I meant "really up-to-date with gtimelog and emails this week" 
[01:10] <kiko> SteveA, sending them in is pretty easy. come on!
[01:10] <kiko> so I've collected opinions on what do to with the user list
[01:10] <SteveA> lifeless's collection of TZs didn't happen
[01:10] <SteveA> but we've addressed that
[01:10] <SteveA> i send emails about exceptions and naming methods, but we'll look again at naming methods today
[01:10] <kiko> I will be sending the weekly (hopefully) launchpad landing reports there
[01:11] <spiv> I suck.  The PythonStyleGuide page is still sitting on the canonical wiki untouched.  It needs moving to the LP wiki, but more importantly needs to be reviewed to be current.
[01:11] <SteveA> spiv: don't worry about it.  we'll find somone else to do that, given your task list, and jury duty
[01:11] <spiv> SteveA: Thanks
[01:11] <SteveA> kiko: cool.  how about announcing these developer meetings on there?
[01:12] <SteveA> i can announce production of a summary, when i do it
[01:12] <SteveA> I talked with ddaa about his Change items
[01:12] <kiko> SteveA, yes, sounds good
[01:12] <kiko> SteveA, I don't think error reports belong there
[01:12] <SteveA>  * Production / staging (stub)
[01:12] <kiko> but
[01:12] <kiko> there are no users
[01:12] <kiko> so we need to do an announcement
[01:12] <SteveA> thanks daf
[01:13] <SteveA> Production status:
[01:13] <SteveA> Current plan is to roll out the head as of now next Tuesday to production. A
[01:13] <SteveA> more recent version, or a branch with cherry picks, may be rolled out
[01:13] <SteveA> instead if people let me know what landings are important enough to bump up.
[01:13] <SteveA> jamesh's error handling code will be going out which will be useful in
[01:13] <SteveA> diagnosing problems.
[01:13] <SteveA> LibrarianGarbageCollection has been run on production, reducing the number
[01:13] <SteveA> of files by an order of magnitude. We not have 177GB free on the existing
[01:13] <SteveA> Librarian server. The new disk was being tested - I havn't heard back from
[01:13] <SteveA> elmo/Znarl yet if these tests were successful. The Librarian will be moving
[01:13] <SteveA> to a new server when the disk is available freeing up macaroni for other tasks.
[01:13] <SteveA> 
[01:13] <SteveA> Staging update:
[01:13] <SteveA> Staging database has not been synced with production for a while. Code will
[01:13] <SteveA> be updated tomorrow to HEAD for a fresh Gina run. I would like to know from
[01:13] <SteveA> Kiko and Daniel if I should resync the staging database to the production
[01:13] <SteveA> database, or if there are any records that should be removed before doing
[01:13] <SteveA> the Gina run. I hope to be online later tonight to catch up on this.
[01:13] <SteveA> 
[01:13] <Kinnison> Why are we doing a fresh gina run?
[01:14] <Kinnison> Isn't the current dataset okay? We just need to add in the missing archs
[01:14] <SteveA> i'll need to note to stub that i'll have some UI stuff to land, done later today.
[01:14] <kiko> we don't need a fresh gina run.
[01:14] <kiko> it's just a matter of you giving stub a definitive SQL patch for the arch information to add
[01:14] <kiko> and telling him to run it
[01:14] <kiko> we've bungled this for a WEEK
[01:14] <kiko> and xmas is on the horizon
[01:15] <kiko> mark is going to toast my bacon if I don't get this diff down to zero like yesterday
[01:15] <Kinnison> Right, I'll get on that patch ASAP
[01:15] <jamesh> the bugzilla import should be ready to go after that.
[01:15] <Kinnison> SteveA: ActionItem: Kinnison to write SQL patch for adding correct extra archs to production DB
[01:15] <kiko> as soon as a mdz-accepted diff of dist and pool are done, Gina will be run on production.
[01:15] <bradb> jamesh: sweet
[01:15] <kiko> this is still a week away
[01:15] <SteveA> Kinnison: thanks.  and i appreciate you using a tag from MeetingAgenda
[01:15] <kiko> but no more than a week
[01:16] <SteveA>  * Gina and publisher and bugzilla import status (ChristianReis)
[01:16] <SteveA> we've moved on to here i seems
[01:16] <SteveA> we've moved on to here it seems
[01:16] <kiko> I just talked about that, and sent a report  in yesterday
[01:16] <kiko> jamesh, I owe you an apology but you don't even know why yet.
[01:16] <kiko> SteveA, move on
[01:16] <SteveA>  * Leave reminder: AndrewBennetts will be on leave from the 14th for an unknown period due to jury duty.
[01:17] <SteveA> spiv: apparently, if you go barefoot, they never choose you ;-)
[01:17] <spiv> SteveA: So I've heard :)
[01:17] <SteveA>  * Python's `list() __len__` optimization, and `SelectResults` (SteveAlexander)
[01:17] <SteveA> when we do list() on a SelectResults object, its __len__ is implicitly called
[01:17] <SteveA> this is a total screwup in the python language IMO 
[01:18] <SteveA> an optimisation on list() with unintended consequences
[01:18] <SteveA> anyway, we can fix it for rendering page templates, but not for using list() in other circumstances
[01:18] <SteveA> so, i propose removing __len__ from SelectResults
[01:18] <spiv> That has the extra advantage of reducing our divergence from upstream.
[01:18] <SteveA> and maybe adding a .toList() method
[01:18] <ddaa> apparently the assumption is that __len__ ought to be CHEAP. Performance is part of the contract sometimes.
[01:18] <jamesh> SteveA: it sounds like it is only a problem for our sqlobject though: upstream doesn't have a SelectResults.__len__()
[01:19] <jamesh> possibly for this very reason
[01:19] <kiko> jamesh, yes that's true.
[01:19] <SteveA> ddaa: there are no good assumptions for __len__.
[01:19] <SteveA> ddaa: some people even argue it shoudl return an Approximate length!
[01:19] <SteveA> others have argued it should return sys.maxint sometimes
[01:19] <SteveA> total crack
[01:19] <salgado> what about stub's suggestion of adding a __nonzero__ with a LIMIT in the SQL?
[01:20] <SteveA> salgado: i don't know about that
[01:20] <spiv> I think we should avoid overriding operators/magic methods on SelectResults.
[01:20] <salgado> this way we could remove __len__ without breaking lots of page templates that use SelectResults in boolean contexts
[01:20] <RainCT> Hi
[01:20] <SteveA> let's get closer to upstream
[01:20] <spiv> The convenience is outweighed by the potential for subtle performance issues.
[01:20] <salgado> SteveA, he suggested that in a bug comment
[01:20] <spiv> And subtle bugs!
[01:20] <jamesh> details to bug 4818 and bug 4819 have details
[01:20] <Ubugtu> Malone bug #4818: SQLObject executing spurious COUNT(*) using slices In: launchpad (upstream), Severity: Normal, Assigned to: Andrew Bennetts, Status: New https://launchpad.net/bugs/4818
[01:20] <Ubugtu> Malone bug #4819: zope calls list(iterable) whenever we use tal:repeat="item iterable" In: launchpad (upstream), Severity: Normal, Assigned to: Steve Alexander, Status: New https://launchpad.net/bugs/4819
[01:20] <SteveA> i think we can use __nonzero__ with a deprecation warning as a temporary measure
[01:21] <SteveA> i want to carefully see what the effect of it is
[01:21] <ddaa> spiv++ but we need to got there slowly as everybody is already overloaded.
[01:21] <SteveA> anyway, there will be a bunch of stuff that needs changing
[01:21] <kiko> SteveA, __nonzero__ I think is a reasonable transition measure
[01:21] <SteveA> we can make shortlist() accommodate .count()
[01:21] <SteveA> and we should be using shortlist() and not list() for SelectResults anyway
[01:21] <kiko> because it will be a bit less painful for the templates
[01:22] <daf> let's try spiv's plan and see what it breaks on staging
[01:22] <SteveA> jamesh: would you take on doing this work?
[01:22] <kiko> I suspect few pagetests will pass, daf
[01:22] <kiko> or perhaps better put a large number of pagetests will break
[01:22] <spiv> It would be interesting to comment it out and see what breaks, but I fear kiko is right.
[01:22] <SteveA> we can talk in detail about what is involved outside of this meeting.
[01:22] <jamesh> SteveA: removing __len__ outright, or removing it and adding __nonzero__?
[01:23] <jamesh> SteveA: okay.  I'll look at it.
[01:23] <SteveA> removing __len__, making shortlist() work, adding __nonzero__ with a warning logged so we can see where it is used,
[01:23] <SteveA> and if the extra query is a problem.
[01:23] <kiko> and run the tests
[01:23] <kiko> note that many pagetest will not fail because they don't test well the results of an action
[01:23] <SteveA>  * Encoding the Launchpad Laws (BradBollenbach, ChristianReis)
[01:23] <kiko> so there may be a boolean block that will be used instead of the other
[01:23] <kiko> anyway
[01:24] <kiko> you all knew that
[01:24] <kiko> so bradb has suggested making a simple set of rules that link into more wordy documents
[01:24] <kiko> I think his concern is that the hacking faq is a mess and hard to read
[01:24] <bradb> yes
[01:24] <SteveA> that's an attractive idea
[01:24] <Kinnison> It is very hard to read
[01:24] <kiko> what do you think, daf?
[01:25] <kiko> I think this is related to the style guide in a way
[01:25] <SteveA> it also means that reviewers can quote rule numbers.  although, a mnemonic might be more memorable.
[01:25] <daf> hmm
[01:25] <SteveA> like, WriteAGoddamnTest rather than rule 23
[01:25] <mpt> Numbers may change over time, as related items are put together
[01:25] <daf> I think the hackingfaq is a mess, but I can't think of an obvious way to organise the information there better
[01:26] <SteveA> making a smaller set of the most important information 
[01:26] <SteveA> and putting "aids to debugging" separately
[01:26] <Kinnison> and then linking to more verbose documents with examples
[01:26] <Kinnison> that'd be ace
[01:26] <SteveA> making it more task oriented, perhaps.  writing code; debugging; reviewing; testing; ...
[01:26] <daf> we could split off a DatabaseHackingFAQ
[01:27] <mpt> That's what I tried to do by putting all the Web UI stuff on a separate page a few months ago, for example
[01:27] <daf> but?
[01:27] <SteveA> daf: what do you think about making this a special area for you?
[01:27] <cprov> grouping information by procedures would be fine: designing, coding, testing, debugging
[01:27] <SteveA> i think you have a talent for documentation
[01:27] <kiko> I think splitting the document into smaller documents isn't what bradb suggested
[01:27] <kiko> I think so too, daf.
[01:27] <daf> the style guide will steal some of it
[01:27] <daf> SteveA: certainly
[01:27] <SteveA> okay.
[01:28] <SteveA> thank you
[01:28] <daf> there's overlap with the style guide, so it would make sense for me to work on it too
[01:28] <SteveA> let's try some stuff.
[01:28] <SteveA>  * Revising the decision about naming methods. (SteveAlexander)
[01:28] <daf> I'll bring up what I've done in the next meeting to get feedback
[01:28] <bradb> SteveA: wait
[01:28] <SteveA> make it quick, brad
[01:28] <bradb> SteveA: What's the next action on getting the coding standards document done?
[01:28] <kiko> bradb, how about you talk to daf and try and sift out a good format that takes into account both sides of the coin?
[01:28] <kiko> I understand what you want and I think it's a good idea
[01:29] <bradb> ok
[01:29] <kiko> is that a good plan you think?
[01:29] <bradb> sure
[01:29] <kiko> rock on
[01:30] <SteveA> last meeting, we came to a decision about naming methods and functions.  when talking about this decision, I didn't take into account the existing codebase.  so, the decision wasn't so good in practice.
[01:30] <SteveA>  * Revising the decision about naming methods. (SteveAlexander)
[01:30] <SteveA> last meeting, we came to a decision about naming methods and functions.  when talking about this decision, I didn't take into account the existing codebase.  so, the decision wasn't so good in practice.
[01:30] <kiko> jamesh, here's why I'm sorry.
[01:30] <SteveA> the decision was foo_bar_baz() style elsewhere
[01:30] <SteveA> um
[01:30] <SteveA> the decision was foo_bar_baz() style everywhere
[01:31] <SteveA> but, various people observed, and kiko checked, that we have LOTS of code already using the fooBarBaz() style for methods
[01:31] <cprov> kiko: too early for commendations: 
[01:31] <cprov> psycopg.OperationalError: FATAL:  the database system is starting up
[01:31] <cprov> ; used connection string 'dbname=launchpad_dogfood user=uploader'
[01:31] <kiko> (shit)
[01:31] <cprov> kiko: Kinnison: wth is going on with DF ?
[01:31] <kiko> cprov, ##soyuz1.0
[01:31] <cprov> kiko: yes, sorry
[01:31] <kiko> sure.
[01:31] <SteveA> so, i want to propose we go for option 2 from https://wiki.launchpad.canonical.com/DevelopmentMeeting20051124
[01:32] <SteveA> 2. All methods should be named fooBar, and all other attributes, properties and functions should be named foo_bar.
[01:32] <SteveA> 
[01:32] <SteveA> this is reasonably close to the style of most of the launchpad code
[01:32] <Kinnison> SteveA: that gets +1 from me
[01:32] <ddaa> +1
[01:32] <BjornT> +1
[01:32] <daf> what's our stance on changing existing code to fit?
[01:32] <SteveA> daf: see https://wiki.launchpad.canonical.com/DevelopmentMeeting20051124
[01:33] <SteveA> anyone against this?
[01:33] <daf> ok
[01:33] <kiko> one thing
[01:33] <kiko> I have a list of potentially non-conforming methods
[01:33] <kiko> there are actually not so many in lib/canonical/launchpad
[01:33] <daf> in that case, +1 from me
[01:33] <kiko> but quite a few in the deep dark corners of lib/canonical/non-launchpad
[01:34] <kiko> I'll send my analysis to the list
[01:34] <SteveA> it is mainly lib/canonical/launchpad we should be concerned about
[01:34] <SteveA> the rest matters, but not so much from this point of view
[01:34] <SteveA> for example, HCT client libraries don't matter from this point of view
[01:34] <SteveA>  * Decide how to record bzr priorities for launchpad.  (SteveAlexander)
[01:34] <SteveA> in the last meeting, various things were proposed
[01:34] <SteveA>  * a wiki page
[01:34] <SteveA>  * using malone
[01:35] <SteveA> malone is an attractive option, except that there is no facility to state the importance for launchpad as separate from the importance for everyone else
[01:35] <kiko> SteveA, the SWB
[01:35] <kiko> that should be used
[01:36] <kiko> let's place a "dogfood" tag in the status whiteboard
[01:36] <daf> wiki++
[01:36] <SteveA> i'd like mpool and lifeless and jblack and kiko to come up with a way to do this that works for everyone
[01:36] <kiko> and then we can query for it easily
[01:36] <SteveA> kiko: that's an interesting proposal.  we need to find out if it will work in practice
[01:36] <Kinnison> and -0 to malone
[01:36] <kiko> this has the advantage of helping with the SWB test we want to do
[01:36] <jblack> For malone, voting would be cool. Thats not there.
[01:36] <mpool> in the interim, i suggest a wiki page
[01:36] <SteveA> we're almost out of time.  so, i'm moving on
[01:36] <jblack> wiki++
[01:37] <SteveA> i don't want to make the decision here today
[01:37] <kiko> sure
[01:37] <mpool> but i'd like searchable tags in malone sometime
[01:37] <mpool> ok done
[01:37] <kiko> mpool, there /are/ searchable tags in malone
[01:37] <SteveA>  * Reviewers meeting time. (RobertCollins)
[01:37] <lifeless> wiki++
[01:37] <SteveA> lifeless: please announce
[01:37] <kiko> just that nobody knows how to use them
[01:37] <lifeless> reviewers meeting, wednesday 0900 UTC
[01:37] <SteveA> where?
[01:37] <lifeless> #launchpad
[01:37] <sivang> bah, I'm missing a development meeting, right?
[01:37] <SteveA> required attendees?
[01:37] <lifeless> there is a wiki page for agenda items
[01:37] <SteveA> max duration?
[01:38] <lifeless> 45 minutes max
[01:38] <SteveA> wiki page where?
[01:38] <lifeless> reviewers mandatory *if you can*
[01:38] <sivang> yes, I am. bad.
[01:38] <lifeless> arghagrhgarhg
[01:38] <SteveA> gagh
[01:38] <lifeless> give a second and I'll look it up
[01:38] <SteveA> while lifeless looks...
[01:38] <SteveA>  * Keep, Bag, Change
[01:38] <kiko> Bag: landing untested code
[01:38] <lifeless> https://wiki.launchpad.canonical.com/ReviewerMeetingAgenda
[01:38] <kiko> Bag: not sending in reports on progress
[01:39] <lifeless> anyone else is welcome. Done.
[01:39] <kiko> Change: get us a 3-month roadmap
[01:39] <bradb> Change: our version of zope 3 to the newest one
[01:39] <lifeless> bradb++
[01:39] <SteveA> kiko:  Change: people should send in reports on progress
[01:39] <SteveA> perhaps?
[01:40] <kiko> perhaps stub will have to lead the zope3 migration.
[01:40] <kiko> SteveA?
[01:40] <SteveA> i'll do it.
[01:40] <kiko> we rely to much on IRC to communicate 
[01:40] <SteveA> i spoke with stu about its details today
[01:40] <kiko> and this is REALLY bad for australians
[01:40] <kiko> I mean like a disaster in the making
[01:40] <jblack> Its almost as bad for us americans.
[01:40] <bradb> What's the next action required for the Z3 upgrade?
[01:41] <SteveA> kiko: we could say everyone should send one launchpad list mail each day...
[01:41] <SteveA> anyway, this section is not for discussion, but for Airing
[01:41] <SteveA> i'll discuss items with people later
[01:41] <kiko> SteveA, that's a bit over the top, but people need to learn to email ffs
[01:41] <kiko> yeah
[01:41] <SteveA> and they might turn into agenda items for next week
[01:41] <SteveA>  * Three sentences
[01:41] <SteveA> Go for it!
[01:41] <SteveA> DONE: management, ui meetings with daf and mpt, code review
[01:41] <SteveA> TODO: ui code for new layouts, project cowabunga, new zope3
[01:41] <SteveA> BLOCKED: no
[01:41] <ddaa> DONE: Started optional-branch-title, bzr fetcher perfomance tuning, BranchPullListing format update, much review and merging and other overheads.
[01:41] <ddaa> TODO: Comment on pending RT requests, finish optional-branch-title
[01:41] <ddaa> BLOCKERS: sysadmin requests, baz2bzr with cscvs support
[01:41] <Kinnison> DONE: Much publisher hacking, working with daf on soyuz ui stuff a bit, much ftpmaster tools hacking
[01:41] <Kinnison> TODO: (hopefully) finish the publisher changes to bring it into line with the original archive. More ftpmaster tools, land these bits next week where I can.
[01:41] <spiv> DONE: Various supermirror bits (more work on SFTP, apache config bigs, acceptance tests in English and automated code)
[01:41] <Kinnison> BLOCKED: Nothing currently
[01:41] <spiv> TODO: Supermirror cont'd.
[01:41] <jamesh> DONE: merge ErrorReporting, start work on the analysis scripts.  Final adjustments to bugzilla importer scripts.
[01:41] <jamesh> TODO: finish error report analysis scripts.  SelectResults.__len__() removal.
[01:41] <jamesh> BLOCKED: no
[01:41] <Kinnison> ~
[01:41] <spiv> BLOCKED: no.
[01:42] <daf> DONE: make notes for Soyuz UI, investigate +allpackages page slowness, work on Soyuz breadcrumbs
[01:42] <matsubara> DONE: fixed some trivial bugs, bug triage and bug report
[01:42] <matsubara> TODO: send diff for bug on email validation on +newteam form, more bug triage, catch up with bugmail
[01:42] <matsubara> BLOCKED: nope
[01:42] <daf> TODO: finish breadcrumb work, other Soyuz UI improvements, work on Python style guide and LaunchpadHackingFAQ
[01:42] <lifeless> DONE: Finished profiling the lp test suite, baz2bzr in-branch continuation tests, design possible solution to test suite speed, discuss with various clued up folk. bzr tests for api usage.
[01:42] <BjornT> DONE: basically finished first run of getting the email interface produce better error messages, including some general refactoring.  reviews.
[01:42] <bradb> DONE: Wrote a patch to change the bug statuses, got blocked on signoff from mdz on changes, will revisit after InitialBugContacts is done. Almost finished InitialBugContacts.
[01:42] <daf> BLOCKED: no
[01:42] <bradb> TODO: Finish InitialBugContacts. Hacking in Vilnius.
[01:42] <BjornT> TODO: reviews. a few more touches on error messages for the email interface, fix some reported bugs, mostly related to GPG signatures.
[01:42] <lifeless> TODO: pqm switch over, baz2bzr custom build, submit-merge plugin, lp test work
[01:42] <mpool> DONE: some storage development research, much developer coordination
[01:42] <bradb> BLOCKED: No.
[01:42] <BjornT> BLOCKED: no
[01:42] <lifeless> BLOCKED: zope3 update. week3.
[01:42] <SteveA> stub: DONE: PostgreSQL session work, refactor BrowserNotificationMessages
[01:42] <SteveA> stub: TODO: PostgreSQL session work, optimize full text index rebuilding (reducing rollout downtime).
[01:42] <SteveA> stub: BLOCKED: Nope.
[01:42] <salgado> DONE: Fixed the slowness in people vocabs and a couple other small bugs, almost finised with bug #5394, code review
[01:42] <salgado> TODO: Finish #5394 (today, hopefully), start ProperSignUpWorkflow, code review
[01:42] <salgado> BLOCKED: No
[01:42] <Ubugtu> Malone bug #5394: Clicking on "Advanced search" should preserve simple search criteria In: malone (upstream), Severity: Normal, Assigned to: Guilherme Salgado, Status: Accepted https://launchpad.net/bugs/5394
[01:42] <mpool> TODO: finish damn storage
[01:42] <mpool> BLOCKED: no
[01:42] <jblack> DONE: supermirror, bzr support, drupal contrib work
[01:42] <mpt> DONE: New page layout, minor template cleanup, new bzr workflow
[01:42] <mpt> TODO: bugfixes, MaloneSearch spec, LaunchpadCapitalization
[01:42] <mpt> BLOCKED: no
[01:42] <jblack> TODO: more launchpad refuel rewrite, bzr hacks
[01:42] <jblack> BLOCKED: no
[01:42] <SteveA> ddaa: the tag is BLOCKED, not BLOCKERS.  I can't effectively grep otherwise.
[01:42] <ddaa> Sorry
[01:43] <lifeless> ddaa: SteveA is LISA
[01:43] <lifeless> SteveA: And how does that make you feel ?
[01:43] <ddaa> hi Lisa?
[01:43] <SteveA> lifeless: is it because of your plans that you say that?
[01:43] <SteveA> ddaa BLOCKERS: sysadmin requests, baz2bzr with cscvs support
[01:43] <SteveA> lifeless BLOCKED: zope3 update. week3.
[01:43] <kiko> DONE: Soyuz testing, Soyuz reports, Launchpad reports, team reviews,.
[01:43] <kiko> TODO: Finish off Soyuz testing, fix a couple of smallish bugs, sort out LPQA, sort out the Cowabunga plan
[01:43] <kiko> BLOCKED: Kinnison making a superhuman effort to get us down the last mile
[01:43] <SteveA> is that it?
[01:43] <jblack> better than eliza. :) 
[01:43] <lifeless> SteveA: do you feel my plans have something to do with talking ?
[01:43] <SteveA> kiko BLOCKED: Kinnison making a superhuman effort to get us down the last mile
[01:43] <kiko> I need to type in niemeyer's they are in an SMS
[01:44] <cprov> DONE: breezy-autotest w/ gustavo & kiko
[01:44] <cprov> TODO: uploader-fix & dapper-uploads
[01:44] <cprov> BLOCKED: DF issues (postgres misteriously dies) 
 DONE: Soyuz deployment tests, Smart maintenence, Grumpy discussions and planning
 TODO: More work on Soyuz
 Blocked: nope
[01:44] <SteveA> okay, cool
[01:44] <SteveA> it's a wrap.
[01:44] <mpt> Everyone: Please enter how suitable each hour is for you at https://wiki.launchpad.canonical.com/MeetingTimes -- if you do not, your preferences will not be counted
[01:44] <bradb> SteveA: What's the next action required for Launchpad to be upgraded to the newest Zope 3 release?
[01:44] <SteveA> thanks people.
[01:44] <SteveA> END OF MEETING
[01:45] <kiko> thanks
[01:45] <spiv> SteveA: I'm impressed that you managed to keep the meeting on schedule! :)
[01:45] <daf> hurrah
[01:45] <jamesh> bradb: https://staging.ubuntu.com/distros/ubuntu/+milestone/ubuntu-6.04
[01:45] <SteveA> bradb: me getting time to work on it.  we've already done a lot of the work in our launchpad tree.
[01:45] <jblack> mpt: deadline? 
[01:45] <mpt> jblack, hmm?
[01:45] <mpt> oh
[01:45] <jblack> when do you want them in by
[01:45] <bradb> SteveA: What's the next action that needs to be done though is what I'm curious to know.
[01:46] <mpt> Specifying meeting time preferences before the next meeting would be quick enough, you think SteveA?
[01:46] <SteveA> i need to get a zope3 tree into my launchpad tree, run the tests and see what breaks.
[01:46] <kiko> bradb, SteveA's been VERY busy over the last 2 weeks, so it's mainly blocked on him having time
[01:46] <kiko> mpt, USE EMAIL
[01:46] <mpt> yeah yeah
[01:46] <SteveA> mpt: we're not changing the launchpad development meeting time.
[01:46] <bradb> kiko: "SteveA having time" isn't an actionable item, that's why I wanted to be more specific.
[01:47] <mpt> SteveA, then I completely misunderstood what that whole discussion was about
[01:47] <SteveA> mpt: instead, i proposed that lifeless and mpool (and jblack too) hold a meeting specifically for bzr and QA things in launchpad development
[01:48] <kiko> salgado, excellent work on triaging bugs over the last weeks, congratulations.
[01:48] <jblack> kissison: 3 hours a day? 
[01:48] <SteveA> at a time that is still okay for the majority of the team
[01:48] <SteveA> but that works better for antipodeans
[01:48] <kiko> kissison? wtf
[01:48] <jamesh> bradb: I assume that the list of milestones will be ordered if dates were assigned to them?
[01:48] <mpool> (lifeless is afk)
[01:48] <Kinnison> jblack: Hmm?
[01:48] <jblack> You only marked 3 hours in a day as 1. :0
[01:48] <bradb> jamesh: Ordered where?
[01:48] <Kinnison> jblack: 9h a day I'm prepared to do, 3h are ideal
[01:48] <mpt> SteveA, https://wiki.launchpad.canonical.com/DevelopmentMeeting20051117 talks specifically about changing the launchpad development meeting time.
[01:49] <SteveA> yes
[01:49] <Kinnison> jblack: also, I thought you said you weren't gay. Mr "In the navy, when I was young, and cute, ..."
[01:49] <salgado> kiko, ta. :)
[01:49] <jamesh> bradb: in the portlet, in the drop down on bugtask +editstatus pages, etc
[01:49] <SteveA> but lifeless said that it wasn't possible to find a better time
[01:49] <mpt> SteveA, so what was the wiki page needed for then?
[01:49] <SteveA> it is no longer needed
[01:50] <bradb> jamesh: I don't know.
[01:50] <SteveA> although, it will be helpful for organising future meetings
[01:50] <jamesh> bradb: okay.  They probably should be ordered though :)
[01:50] <bradb> Yeah.
[01:50] <mpool> so someone is going to write and suggest a time for this meeting?
[01:51] <bradb> It all depends on what their tests look like.,
[01:51] <bradb> s/,//
[01:51] <jamesh> bradb: also, it looks like I could assign a milestone for an unrelated product/distro to a bug task
[01:51] <SteveA> mpool: you and lifeless and jblack can talk about it at the next bzr meeting
[01:51] <jamesh> (I haven't tested it yet, but it looks like it would be possible)
[01:51] <lifeless> I'm off to bed
[01:52] <lifeless> but I think we will want to make it accessible to the bulk of the reviewers for the quality bit
[01:52] <bradb> jamesh: With a hand-hacked request, perhaps, yeah.
[01:52] <lifeless> and to the infratructure/mgmt folk for the bzr needs
[01:52] <bradb> jamesh: This'll be forgotten though in IRC. If you find a bug, please report it.
[01:52] <lifeless> there may need to be some coordination points to gather needs up, otherwise we just end up with another megameeting at the same sucky time
[01:53] <lifeless> I will email thoughts and a proposed time to launchpad next day or so
[01:53] <jamesh> bradb: looks like I'm mistaken.  The database constraints should prevent it
[01:53] <lifeless> ciao
[01:53] <jamesh> (which is good)
[01:53] <jamesh> and we shouldn't ever present a page that'll result in an oops caused by the constraint
[01:53] <bradb> so the bug might just be that it's not tested (though, if it is, i'd be surprised)
[01:54] <jblack> Who broke my lock?
[01:55] <jblack> daf: not cool
[01:57] <kiko> hmmm, jblack?
[01:57] <jblack> Nothing. Just jblack needing some sleep.
[01:57] <daf> jblack: sorry -- there was no lock when I edited it
[01:57] <daf> jblack: I'm done now
[01:58] <jblack> thanks for the cleanup. =)
[01:58] <jblack> done
[01:58] <kiko> grumpy old men
[01:58] <jblack> grumpy old, tired, fat, hungry men. =) 
[01:58] <daf> jblack: there are 25 hours in your day :)
[01:58] <jblack> Sorry daf. :) 
[01:59] <daf> no worries
[01:59] <jblack> What? You dont' work a 25 hour day? 
[02:00] <jblack> I'll fix it in a little bit, after the contention wears off
[02:01] <SteveA> if only... if only
[02:01] <SteveA> wikis used modern revision control semantics
[02:02] <jblack> we'd still conflict, I'm afraid.
[02:02] <jblack> we're editing the same hunks
[02:02] <SteveA> mpt: nice page!  https://wiki.launchpad.canonical.com/MeetingTimes
[02:02] <daf> yes, it is
[02:02] <daf> go mpt
[02:02] <ddaa> if only moin used a real-time collaborative editor
[02:03] <SteveA> like gobby!
[02:03] <SteveA> we love gobby
[02:03] <daf> yes, gobby-moin integration would be wonderful
[02:04] <ddaa> I guess the transactional aspect of moin would be problematic to preserve.
[02:07] <mpt> So now we learn jblack's secret: he has 25 hours in each day!
[02:07] <mpool>  yawn
[02:10] <salgado> SteveA, let's talk about ProperSignUpWorkflow now?
[02:10] <SteveA> mpt: i'm not sure about "time with greatest number wins".  a full set of 0s would be better than 5 -1s and any number of 1s
[02:10] <jblack> I think you'll probably end up with 5 -1s most anywhere.
[02:11] <SteveA> so i think i'm most interested in the number of -1s in each column
[02:11] <ddaa> mpt: got to point out that this cannot be used as a reference
[02:11] <mpt> SteveA, true, so maybe the scale needs to be from -3 or -4 to 1, instead of -1 to 1
[02:11] <ddaa> the preferred times change with DST
[02:11] <SteveA> i think this is fine, just make the total the total number of -1s
[02:12] <SteveA> ddaa: they change with all sorts of things.
[02:12] <mpt> Another possibility is that people such as SteveA and kiko get to use a larger scale than everyone else, because it's more important that they be here
[02:12] <SteveA> ddaa: getting a girlfriend / boyfriend for example
[02:12] <mpt> ddaa, the idea is to keep it updated :-)
[02:12] <SteveA> mpt: let's keep it simple, and collect total -1 s
[02:12] <kiko> mpt, can you send an email on this?
[02:12] <SteveA> -1 is all that matters. 
[02:12] <ddaa> indeed... my constraints changed quite a lot now that I'm working in a shared bedroom...
[02:13] <SteveA> it says "i really don't want to be there"
[02:13] <jblack> so a non-communicative, rebellious sort may go for 24 -1's ? 
[02:13] <kiko> ddaa, you can do like mark. use the toilet. 8)
[02:14] <ddaa> jblack: that sums up to exactly the same thing as "0" everywhere :)
[02:14] <SteveA> it is also interesting to note how many -1s are in each person's row
[02:15] <ddaa> since what matters is the maximum (over hours) of the sum (over people).
[02:15] <mpt> kiko, I would have e-mailed about it, were it not for the fact that SteveA says we're not going to be using it in the near future
[02:16] <SteveA> mpt: please add a column on the right for "total -1s", and make the total row on the bottom mean "total -1s" also
[02:16] <SteveA> mpt: we are going to use it, just not for the launnchpad meeting
[02:16] <kiko> mpt, it's going to be used, and if there's no email I won't do it
[02:16] <SteveA> not for the launchpad dev meeting
[02:16] <SteveA> it will be very useful in planning other meetings
[02:16] <kiko> and for the last time
[02:16] <kiko> USE EMAIL
[02:16] <kiko> U S E   E M A I L
[02:17] <kiko> how many times do I have to ask?
[02:17] <mpt> SteveA, if it's going to be used for meetings between specific people, that's done by copying the relevant people's rows and calculating totals from there. An overall total isn't interesting, except for an all-hands meeting.
[02:17] <jblack> Ok. I must have missed a big point?
[02:17] <jblack> Do you mean use email to communicate more often, or for meetings?
[02:17] <SteveA> mpt: the overall total is interesting i think.  it tells you who is likely to be around at a given time.
[02:17] <mpt> okie dokie
[02:17] <kiko> jblack, for everything
[02:17] <mpt> I thought Moin had a macro for totalling table columns, but it appears not
[02:18] <kiko> jblack, using IRC means nobody in .au knows what the hell is going on
[02:18] <mpt> jblack, your row has one too many columns, please to be fixing
[02:18] <kiko> and it's a cancer
[02:18] <mpt> ah, it's fixed, ignore me
[02:18] <jblack> mpt: I fixed that a while.. yeah
[02:18] <ddaa> kiko: except lifeless, but everybody knows he does not sleep
[02:19] <jblack> that's why I live on an aussie schedule in the us.
[02:19] <mpt> sleepless
[02:19] <kiko> not sleeping == crap code 
[02:19] <spiv> Heh, so far the only time not vetoed is the time lifeless chose for the review team meeting.
[02:20] <mpt> I wasn't intending -1 to be a veto
[02:20] <spiv> Well, veto is probably to strong a term.
[02:20] <spiv> Not awful for anyone.
[02:20] <mpt> I could still make all my -1s, I'd just need to use an alarm clock and hot chocolate
[02:21] <mpt> (and when I get back to NZ, I will be doing just that with the current time)
[02:22] <SteveA> mpt: when do you get back to NZ?
[02:23] <jblack> I hope my -1's show how tough the current meeting is for me
[02:23] <mpt> 20th
[02:25] <SteveA> jblack: you saw my note about you, lifeless and mpool finding a new meeting time?
[02:25] <SteveA> for a meeting called by yourselves?
[02:28] <kiko> bradb, SteveA: are you okay with wontfixing bug 2711?
[02:28] <Ubugtu> Malone bug #2711: Don't use my email addy to email me about my bugs In: malone (upstream), Severity: Normal, Assigned to: Nobody, Status: NeedInfo https://launchpad.net/bugs/2711
[02:33] <SteveA> i guess.  i can imagine an option like in mailman for "don't mail me my own messages"
[02:33] <bradb> kiko: I think the email headers are broken, but I'll wait until more users complain before proposing a better way to fix it. I'd let 2711 incubate.
[02:33] <SteveA> so, suggest that as a feature that the reporter can file if wanted
[02:33] <mpt> I like the idea of adding "(via Launchpad)" without changing the address
[02:34] <kiko> bradb, in what way do you seem them as broken?
[02:34] <kiko> it's exactly what a mailing list does
[02:34] <kiko> hopefully mailman's headers are not broken
[02:36] <kiko> mpt, I like it too. that could be a valid change.
[02:36] <bradb> kiko: Sorry, don't have time for that discussion right now.
[02:36] <Kinnison> ciao
[02:37] <bradb> kiko: And, I'd rather not rant. The users will tell the story (or not, which would be just as good.)
[02:38] <kiko> wtf
[02:38] <kiko> bradb, I totally did not understand your comment.
[02:40] <bradb> kiko: I'm working on IBC right now. I don't have time to get into a discussion about bug headers, that's all.
[02:40] <kiko> ok.
[02:40] <kiko> I'll mail warthogs with an RFC:.
[02:54] <kiko> matsubara, ping?
[02:54] <kiko> actually
[02:55] <kiko> daf?
[02:55] <matsubara> kiko: pong
[02:57] <daf> kiko: yo
[02:58] <kiko> matsubara, I'm stuck with bug 
[02:58] <kiko> aha
[02:58] <kiko> daf, dude, bug 1681 is still open after 1000 years
[02:58] <Ubugtu> Malone bug #1681: Viewing a translation page fails in unix2newlines In: launchpad (upstream), Severity: Major, Assigned to: Nobody, Status: New https://launchpad.net/bugs/1681
[02:59] <kiko> daf, do you think you could, as a personal favor, nuke that one? I can cut any corners to help you :)
[02:59] <daf> let's see
[02:59] <kiko> there's right now an easy way to reproduce it
[03:00] <daf> great
[03:00] <kiko> https://launchpad.net/distros/ubuntu/dapper/+source/ncpfs/+pots/ncpfs/de/+translate
[03:00] <daf> == Exceptions ==
[03:00] <daf> In general, these rules don't apply when editing 
[03:00] <kiko> daf, select untranslated and submit
[03:00] <daf> oops
[03:00] <daf> == Exceptions ==
[03:00] <daf> In general, these rules don't apply when editing 
[03:00] <daf> bah
[03:00] <kiko> unix2newlines SUCKS
[03:00] <kiko> but I'm not proposing rewriting it
[03:02] <kiko> daf, even a band-aid fix with a test I accept
[03:02] <daf> either: unix2windows_newlines should not raise an exception for already converted text, or;
[03:03] <daf> all code that calls it should check first
[03:03] <daf> it seems to only be called in one place
[03:03] <kiko> :BikeFindRefs
[03:04] <kiko> I think it raising ValueError is just stupid IMO
[03:04] <kiko> but we need to test this
[03:04] <daf> I'm going to check what it does with strings that contain a mixture
[03:04] <kiko> cool
[03:04] <daf> it it does the right thing, then I think we just remove the exception
[03:05] <kiko> and add a test
[03:05] <kiko> :)
[03:05] <daf> of course :)
[03:06] <daf> "if text is None: return None"
[03:06] <daf> wtf
[03:08] <kiko> bug 3053 is in the same line
[03:08] <Ubugtu> Error: I cannot access this bug
[03:12] <daf> hmm, interesting
[03:12] <daf> the comment in the callsite implies that the database content should never have a \r in it
[03:17] <daf> I'd like to know what SELECT COUNT(*) FROM POTranslation WHERE potranslation ~ '\r' yields on production
[03:18] <kiko> I can do it on staging if you like
[03:18] <kiko> actually
[03:18] <kiko> i can do it on prod
[03:18] <daf> groovy
[03:18] <daf> either of those would be good
[03:19] <kiko> running query..
[03:19] <kiko> launchpad_prod=> SELECT COUNT(*) FROM POTranslation WHERE translation ~ '\r';
[03:19] <kiko>  count 
[03:19] <kiko> -------
[03:19] <kiko>    383
[03:19] <kiko> ahoy!
[03:19] <daf> aha
[03:20] <daf> what about SELECT COUNT(*) FROM POTranslation;?
[03:20] <kiko> 5405030
[03:20] <daf> ok, not many as a proportion then
[03:20] <daf> they shouldn't be there at all
[03:20] <daf> I get the feeling we've been through this before
[03:21] <daf> I wonder if we can add a constraint to prevent it from happening again
[03:21] <daf> or if this is more of an oscar thing
[03:21] <daf> 'twould be nice to catch it as it happens
[03:23] <kiko> daf, we could email stub to find out
[03:23] <spiv> Hmm, I think I need to find someone to adopt sftp://chinstrap/home/warthogs/archives/spiv/launchpad/gpg-rdf
[03:23] <kiko> spiv, wtf is that?
[03:23] <spiv> kiko: It's a small thing for siretart from UBZ
[03:24] <kiko> why doesn't he adopt it?
[03:24] <spiv> kiko: To export GPG info about people in RDF, to make it easy for someone to get a list of gpg fingerprints for a whole team (for instance)
[03:24] <spiv> It should be simple, but there's a heap of duplication in the rdf generation.
[03:25] <spiv> siretart isn't an LP dev?
[03:27] <kiko> oh
[03:27] <kiko> it's launchpad code?
[03:27] <kiko> sorry 
[03:27] <spiv> Well, the patch as it is probably solves siretart's need, but it feel awful about leaving the code as messy as it is -- for instance, the product rdf should also generate the exact same xml for people, but it's seperate code.
[03:28] <kiko> spiv, file a bug, add your branch path and nobody it for now. we need to find a plan for the RDF side of things.
[03:28] <kiko> but SteveA and I don't have a person to do it yet.
[03:28] <spiv> Sadly, I don't have enough zpt macro fu to fix the duplication without severe head-banging.
[03:29] <spiv> kiko: Ok.
[03:29] <spiv> We need approximately seven more SteveAs!
[03:31] <kiko> it's illegal to clone people in lithuania
[03:31] <daf> spiv: I've got quite a bit to be getting on with right now, but perhaps you could ping me about it next week if nobody's taken it on by then
[03:35] <daf> kiko: I'm sure I wrote a script at some point to remove carriage returns from the database, but I can't find it now
[03:35] <daf> kiko: running such a script would be a good band aid, I think
[03:36] <daf> kiko: and we can bring the matter to Carlos' attention when he's back
[03:36] <spiv> daf: Thanks, I'll do that!
[03:36] <kiko> daf, I only want to run that script when we have a fix in production, though.
[03:36] <daf> the bug is that some code is allowing CRs to get into the DB
[03:36] <daf> unix2windows_newlines is not the problem
[03:36] <daf> it's just that the assumptions that underly its use are being violated
[03:36] <daf> spiv: groovy
[03:38] <daf> as I say, adding a constraint would allow us to catch this bug in future
[03:38] <daf> but I don't know how feasible that is
[03:38] <daf> another option would be to try adding an assertion
[03:38] <daf> I think there's only one code path through which translations get added
[03:39] <daf> so it should be doable
[03:40] <daf> mpt: around?
[03:40] <kiko> daf, he's out for lunch
[03:40] <daf> ok
[03:40] <kiko> daf, what's the way forward -- write to the list and keep at it?
[03:40] <daf> I'd like to hear Carlos' take on it
[03:40] <daf> he might have an insight
[03:41] <kiko> yeah
[03:41] <kiko> can you do that email?
[03:41] <daf> I'd like to see what stub says about a constraint
[03:41] <daf> if we can add a constraint, I say we do so, get rid of the bad data we've got, and leave it at that until the constraint gets violated and we can find out what code is doing it
[03:41] <daf> yep, I can take care of it
[03:42] <daf> do you want a CC?
[03:43] <kiko> cc launchpad-list
[03:43] <daf> ok
[03:43] <kiko> always
[03:58] <kiko-fud> salgado, I think you fucked up your entry in MeetingAgenda
[03:58] <kiko-fud> unless you really are okay with meetings at 2am
[03:58] <SteveA> MeetingTimes surely
[04:03] <kiko-fud> sorry
[04:04] <kiko-fud> SteveA, I have time for a short call in 5m
[04:04] <kiko-fud> and then a lot more time in 1.5h
[04:05] <kiko-fud> hey stub!
[04:05] <SteveA> kiko-fud: let's talk in 5 and again later
[04:06] <kiko-fud> okay cool
[04:06] <SteveA> ping when you're ready
[04:06] <stub> kiko-fud: Yo
[04:07] <SteveA> stub: i have some UI stuff to land later today.  i'd like to get it into the rollout
[04:07] <stub> SteveA: ok. Email me the revision number when it lands.
[04:08] <kiko-fud> stub, daf wanted to know about a database constraint -- he wants to make us blow up if we put a "\r" in a field. is that doable?
[04:08] <stub> SteveA: If that BrowserNotification stuff lands tomorrow, is it important enough to push to production Tuesday?
[04:08] <stub> kiko-fud: Yes. CHECK constraint can do that happily
[04:09] <stub> daf: Stick it in as a comment on your DB patch and I'll fill in the details.
[04:10] <kiko-fud> stub is the man
[04:11] <daf> stub: groovy
[04:11] <daf> stub: I asked about this in an email I sent to you an Carlos -- if you could reply to that so Carlos will also know about it, that would be great
[04:12] <stub> A standard regexp would be fine in that case -  CHECK (thecolumn NOT SIMILAR TO '\r') probably does it
[04:13] <daf> I didn't know about SIMILAR TO -- I've just always used ~
[04:13] <kiko-fud> FOOOOD
[04:13] <kiko-fud> SteveA, will have to be later, my guest has arrived. in 1.5h
[04:15] <SteveA> ok
[04:15] <SteveA> mpt: help
[04:22] <SteveA> mpt: nm
[04:28] <daf> mpt: what do you think about having some vertical whitespace beneath the notification box
[04:29] <daf> mpt: I find it just runs into whatever's below it and hence becomes less visible
[04:30] <mpt> SteveA, if -1s are the only thing that matter, we might as well just have 0s and 1s and count the 0s
[04:31] <SteveA> i think the other things matter too
[04:31] <SteveA> but i want to draw attention to the -1s right away, while the table is being filled in
[04:35] <mpt> daf, that's not a design question, that's a bug
[04:35] <mpt> :-)
[04:35] <daf> mpt: you'll fix it then? :)
[04:36] <SteveA> daf: i replied to the bug 1681 email.
[04:36] <Ubugtu> Malone bug #1681: Viewing a translation page fails in unix2newlines In: launchpad (upstream), Severity: Major, Assigned to: Nobody, Status: New https://launchpad.net/bugs/1681
[04:37] <SteveA> i think ValueError is okay in this case, and i've explained why i think so
[04:41] <daf> mpt: thanks
[04:41] <daf> SteveA: thanks
[04:42] <SteveA> daf: would you update the forthcoming docs to include this narrow exception for ValueError
[04:42] <SteveA> no pun intended on "exception".
[04:42] <daf> :)
[05:10] <SteveA> mpt: another idea for the meeting times page is to give everyone a supply of 24 -1s, to be used whereever they please
[05:10] <SteveA> so, i could have -1 on each hour, or put -24 at 3pm
[05:12] <daf> SteveA: https://wiki.launchpad.canonical.com/ExceptionGuidelines?action=diff
[05:12] <daf> SteveA: is that in the spirit of what you intended?
[05:17] <SteveA> yes
[05:19] <daf> also, the LaunchpadHackingFAQ explicitly mentions NotFoundError, which the ExceptionGuidelines does not
[05:20] <daf> I would expect ExceptionGuidelines to be comprehensive, so perhaps NotFoundError merits a mention there
[05:25] <SteveA> yes
[05:26] <daf> ok, I'll do that
[05:26] <daf> I think the principle is "don't raise NotFoundError, but raising exceptions deriving from it is OK" -- have I got that right?
[05:29] <SteveA> raising NotFoundError is good
[05:29] <SteveA> returning None is often better in practice
[05:29] <SteveA> daf: where did you get those notes about NotFoundError ?
[05:30] <daf> SteveA: LaunchpadHackingFAQ
[05:33] <SteveA> daf: so, in general, just use NotFoundError.  If you have a method where you expect callers to often have to deal with the requested thing not being there then
[05:33] <SteveA> first see if you can return None to indicate that it isn't there
[05:34] <SteveA> if that isn't appropriate, then consider using a subclass of NotFoundError, so that this particular case that is expected to be caught and specially dealt with can be treated specially
[05:35] <daf> ok
[05:35] <SteveA> so, this is only an issue at all when there is other code that needs to deal with the object not being there
[05:35] <SteveA> for traversal code, it knows how to deal with None and NotFoundError anyway
[05:36] <daf> IndexError/KeyError/LookupError are not mentioned explicitly, but I'd imagine that their use discouraged
[05:36] <daf> s/their use/raising them/
[05:37] <SteveA> IndexError has a very specific use
[05:37] <SteveA> when you are using __getitem__ with numbers to indicate indexing by position
[05:37] <SteveA> like in a list or tuple
[05:38] <daf> right
[05:38] <SteveA> this could be argued to apply to bugs, but we don't think of bugs like that
[05:38] <SteveA> the bug number isn't really an index
[05:38] <SteveA> it is an id
[05:38] <SteveA> that just happens to be assigned sequentially
[05:38] <ddaa> list.find raises that as well
[05:39] <SteveA> NotFoundError is a kind of KeyError
[05:39] <SteveA> and __getitem__ should raise KeyError in cases where it isn't an IndexError
[05:39] <ddaa> mh... I meant list.index, and apparently it does not...
[05:39] <daf> aha
[05:39] <SteveA> by raising NotFoundError in launchpad code, we do that
[05:40] <SteveA> LookupError... where did you see that?
[05:40] <SteveA> list.index looks up a value
[05:40] <daf> does that mean that one should always raise NotFoundError rather than KeyError?
[05:40] <SteveA> and gives you its index
[05:40] <SteveA> daf: in launchpad code, for database classes, yes
[05:40] <mdz> bradb: when you have some time, I'd like to catch up with you regarding migrating to malone for production bug tracking
[05:41] <SteveA> ddaa: hence, ValueError
[05:41] <daf> SteveA: there is some Launchpad code that raises LookupError
[05:41] <SteveA> what's the FQN for LookupError?
[05:41] <ddaa> actually, I think the thing that confused me was [] .pop()... for which it's vaguely reasonable to give IndexError.
[05:42] <daf> LookupError is the base class of IndexError and KeyError
[05:42] <daf> it is a builtin
[05:42] <SteveA> so it is.  i never realized.
[05:43] <SteveA> that's possibly confusing
[05:43] <daf> smells a bit funny to me
[05:43] <SteveA> where in our code is LookupError raised?
[05:43] <daf> launchpad,mail.commands
[05:44] <daf> launchpad.vocabularies.dbobjects
[05:44] <daf> librarian.client
[05:44] <daf> various places catch it too
[05:44] <SteveA> so, Zope 3 is changing to use LookupError for what we use NotFoundError
[05:44] <SteveA> we're prepared for this
[05:44] <daf> interesting
[05:45] <SteveA> because we always should use canonical.launchpad.interfaces.NotFoundError
[05:45] <SteveA> and we can change things as needed in just that place
[05:45] <SteveA> in the future, we'll do what Zope 3 does, which is to use LookupError more widely
[05:46] <daf> so, in the meantime, it's ok to use it for the same sorts of things as NotFoundError?
[05:46] <SteveA> we have infrastructure that depends on understanding NotFoundError
[05:46] <SteveA> for database and traversal code
[05:46] <SteveA> so we can't change that right now
[05:47] <SteveA> i think LookupError is fine in the places you mentioned
[05:47] <SteveA> we don't need to go changing things
[05:47] <SteveA> the bulk of the new code we write and change is in the "application code"
[05:48] <SteveA> and i'm most concerned with having clear direction for that code
[05:48] <SteveA> so, in the docs, we should have a clear statement of what the rules are for application code
[05:49] <SteveA> and then a less important section that explains various edge cases for ValueError, LookupError, IndexError etc. 
[05:49] <daf> ok, I think I understand
[05:49] <jordi> hello
[05:50] <jordi> I need some admin to rename a product
[05:50] <jordi> it's in the rosetta-users list, kernel-pt-br to something more sensible
[05:50] <jordi> like "kernel-i18n" or whateve
[05:50] <jordi> some people actually want to translate the kernel
[05:57] <jordi> kiko-fud, SteveA, daf: I need your advice on a reply to a mail
[05:57] <jordi> someone is requesting the creation of an "Andalusian" translation team.
[05:58] <jordi> Andalusian is, if anything, nothing more than a spoken variant of Spanish in Andalusia.
[05:58] <jordi> There should not be any written differences, it's just they have a different accept.
[05:58] <jordi> Some defend Andalusian as a separate language though, but it's not recognised by the linguists I think.
[05:59] <daf> our policy is that we follow the ISO 639 standard
[05:59] <jordi> What should we reply? Should we give them freedom to work on this under a funny locale like "and", which would take over some non-allocated ISO namespace?
[06:00] <jordi> this mail was forwarded to me by the sabdfl, but I guess he doesn't know the background of the request
[06:00] <daf> if they believe it is a separate language, then can apply to the 639 committee for a code
[06:00] <daf> I think the 639 standard has provisions for non-standard codes
[06:01] <jordi> I've asked a few random free software people from andalusia about their opinion, and they all think it's braindead
[06:01] <daf> I think I agree
[06:01] <jordi> daf: I would suggest es_ES@andalusi, but they won't accept as they claim it's a separate lang
[06:01] <jordi> I think it too
[06:01] <mpt> wow
[06:01] <mpt> http://librarian.launchpad.net/1188906/Bildschirmfoto-Report%20a%20bug%20-%20Mozilla%20Firefox_m.png
[06:02] <mpt> check out all the pretty dots
[06:02] <daf> wow
[06:02] <daf> is that dithering?
[06:02] <jordi> daf: hey, LliureX uses valencia_ES, remember :)
[06:02] <mpt> looks like it
[06:02] <mpt> Floyd-Steinberg dithering or something weird
[06:02] <daf> jordi: I know, I was trying to forget it :)
[06:02] <jordi> ha ha
[06:03] <daf> I would take the line "We currently don't support languages not standardised by ISO. You can submit a request to ISO for a language code for your language."
[06:03] <jordi> I can do tha.t I wonder what mark will think thoughl
[06:03] <mpt> Is Klingon standardized by the ISO?
[06:03] <jordi> I just missed him
[06:04] <jordi> I doubt that very much
[06:04] <daf> if Carlos disagrees, he can open a bug about supporting marginal languages, and tell the Andalusians we'll be working on it
[06:04] <daf> yes, it is
[06:04] <jordi> it is?
[06:04] <mpt> Google has a Klingon localization, so why shouldn't trekkies be allowed to translate Ubuntu into Klingon?
[06:04] <jordi> great
[06:04] <daf> Elvish is not, however
[06:04] <daf> the code for Klingon is tlh
[06:04] <jordi> tlh
[06:05] <jordi> I see it now
[06:05] <jordi> Elvish would be a lot cooler
[06:05] <daf> the committee rejected it for some reason
[06:05] <mpt> If people who really really want to translate into Andalusian won't be persuaded to translate into Spanish instead, what would we lose by letting them translate into Andalusian?
[06:05] <mpt> Some bandwidth?
[06:05] <jordi> ooh
[06:05] <jordi> the ISO has corrected the name for Galician!
[06:06] <daf> mpt: the ability to say no to silly requests in the future?
[06:06] <mpt> We could even pipe the Andalusian translations into suggestions for Spanish
[06:06] <jordi> mpt: it might open the door to stupidities though.
[06:06] <jordi> mpt: not *at all*
[06:06] <mpt> true
[06:07] <mpt> jordi, not at all why?
[06:07] <jordi> their "spelling" has nothing to do with Spanish
[06:07] <jordi> it's like Spanish, written just as they pronounce it in their town
[06:07] <jordi> really
[06:07] <jordi> it's insane
[06:07] <jordi> wait a min
[06:07] <mpt> fonetic pronunseeayshin?
[06:08] <jordi> http://en.wikipedia.org/w/index.php?title=Andalusian_language&diff=prev&oldid=28283409
[06:08] <jordi> mpt: totally
[06:08] <jordi> if you know a tiny bit of Spanish, you'll see this has nothing to do with Spanish
[06:08] <daf> jordi: oh dear
[06:09] <jordi> yeah man
[06:09] <jordi> I tell you
[06:09] <mpt> ok
[06:09] <jordi> so, do we agree about no suggestions to spanish? :)
[06:09] <jordi> ok, let's decide
[06:10] <jordi> I've been postponing this reply for more than a week now while I got some facts.
[06:10] <mpt> sure, no suggestions to spanish
[06:10] <mpt> "We accept only languages standardized by the ISO or by the United Federation of Planets"
[06:11] <jordi> daf: agreed on that line, I assume?
[06:11] <daf> yes
[06:13] <SteveA> jordi: how many people do they have in their team?
[06:13] <jordi> they have no team, they request the creation
[06:13] <jordi> s/they/he/
[06:13] <SteveA> how many are they?
[06:14] <SteveA> that many?
[06:14] <jordi> I know of they guy sending the email
[06:14] <jordi> he speaks about "we" though
[06:15] <SteveA> if it is a distinct written form of language, and there is  some interest in both translating software into it, and into people using that software
[06:15] <SteveA> then i don't see why not to add it at the same level as other languages with very few speakers / writers
[06:16] <SteveA> that is, it is inside rosetta, but not visible generally
[06:16] <jordi> it semes they have 3 ways of spelling everything
[06:16] <SteveA> so, i would ask that first they create a team for this
[06:17] <SteveA> and ask for some idea of what their plans are -- what applications do they plan to translate first
[06:17] <SteveA> if they're serious, then let them do it
[06:17] <jordi> SteveA: my concern, as someone somewhat involved in the translation world, is that we empower people who claim what is spoken in their 20.000 inhabitant valley is a separate language
[06:17] <daf> it's not the number of speakers that's important
[06:17] <SteveA> we have languages in rosetta with one existing speaker
[06:18] <daf> it's that the language is not standardised (dictionaries, etc.)
[06:18] <SteveA> it isn't on the front page or in any lists of stats
[06:18] <jordi> SteveA: but they are recognised languages by the languist community
[06:18] <daf> and that they will not be able to use their translation due to it not being supported in glibc etc
[06:19] <SteveA> http://sco.wikipedia.org/wiki/Main_Page
[06:19] <daf> (I think -- I've never tried to add a language code)
[06:19] <jordi> SteveA: also, it's controversy, because most of the population where they claim Andalusian is spoken will say it's Spanish
[06:19] <jordi> daf: Andalusian would be rejected straight away
[06:19] <daf> jordi: I mean from a technical point of view
[06:20] <jordi> daf: my government has tried to standarise a "va" code for us and have failed, the rumour says
[06:20] <SteveA> i don't knkow that scots has a dictionary.
[06:20] <SteveA> it has a wikipedia
[06:20] <SteveA> it is spelled phonetically
[06:20] <SteveA> it has no standardized spellings
[06:20] <daf> hmm, that's true
[06:21] <SteveA> there is at least one dictionary
[06:21] <SteveA> Scottish National Dictionary Association (1999) Concise Scots Dictionary . Edinburgh, Polygon. ISBN 1902930010
[06:21] <SteveA> it isn't held canonical though
[06:21] <daf> there is a mechanism for locally defined codes
[06:22] <daf> "These codes may only be used locally, and may not be exchanged internationally."
[06:22] <jordi> heh
[06:22] <daf> the GTP stance has always been "get a code from ISO first, then you can translate"
[06:22] <jordi> even ethnologue.com doesn't recognise Andalusian
[06:22] <daf> mm, Ethnologue is pretty reliable
[06:22] <jordi> and they tend to be quite lose when it comes to declaring new langs as opposed to variants
[06:23] <jordi> loose
[06:24] <mpt> http://www.google.com/search?q=%22A%20language%20is%20a%20dialect%20*%20army%20*%20navy%22
[06:25] <jordi> ok, our decision?
[06:28] <jordi> kiko: What's the story?
[06:35] <jordi> ok, so SteveA and daf/jordi seem to have different views on this
[06:35] <jordi> we need an agreement :)
[06:35] <kiko> hey man
[06:35] <jordi> oi kiko
[06:36] <kiko> SteveA, why buy trouble violating the simple "if ISO doesn't agree, it's not a language" policy?
[06:36] <SteveA> is that the policy?
[06:36] <jordi> according to daf it is
[06:36] <kiko> it used to be our policy at least
[06:37] <jordi> it is surely the policy for other translation projectslike GNOME
[06:37] <daf> I can't remember if we've ever explicitly stated it
[06:37] <SteveA> if that's the policy, then that's the policy
[06:37] <kiko> daf, I recall it being verbalized
[06:37] <jordi> I've never seen a doc that makes it official though
[06:37] <jordi> it just sounds quite sane
[06:37] <SteveA> stick it in the rosetta faq
[06:37] <daf> SteveA read my mind
[06:37] <jordi> ok
[06:48] <ddaa> oh, BTW
[06:48] <ddaa> is Taiwan a country? :P
[06:52] <kiko> help
[06:52] <jordi> ddaa: lol
[06:52] <daf> it does have an army and a navy
[06:53] <ddaa> but it's not as good as china a bribing UN votes, is it?
[07:00] <Kinnison> ciau
[07:09] <kiko> Kinnison, did you email stub?
[07:22] <bradb> mdz: ping
[07:23] <mdz> bradb: pong
[07:23] <jordi> kiko: zope has a erroneous bazaar branch created
[07:23] <jordi> which needs to be removed
[07:24] <jordi> kiko: there is a realease too
[07:24] <kiko> jordi, I think you need to talk to ddaa or lifeless
[07:24] <jordi> k
[07:24] <kiko> jordi, email the list please
[07:24] <jordi> ddaa: dude!
[07:24] <jordi> k
[07:24] <kiko> EMAIL
[07:24] <mdz> bradb: how are we doing?
[07:24] <bradb> mdz: Hi, I don't have time right now to discuss Malone migration, but can we try for 2.5 hours from now maybe? i.e. 21:00 UTC
[07:24] <EMAIL> jordi, I don't care. use me anyway. it's the launchpad law.
[07:24] <mdz> bradb: that's exactly the time I have to go pick up my visa, but we can talk while I drive
[07:25] <ddaa> EMAIL: when you will change to EMAIL-afk and still chat, every will know who you are really.
[07:25] <bradb> mdz: heh, ok
[07:26] <bradb> s/and note/a note/
[07:26] <ddaa> jordi: besides, there's a discussion to be had on that topic
[07:27] <jordi> ddaa: nod
[07:28] <jordi> In any case, the "Add Branch" link is totally misleading
[07:28] <jordi> should be disambiguated to "Add Bazar Branch"
[07:28] <ddaa> That's also discussion worthy.
[07:28] <ddaa> I suggestod doing that, but somebody (I do not remember who) said that there were only bazaar branches in launchpad.
[07:29] <ddaa> But I had some empirical evidence that people have trouble seeing that link.
[07:30] <jordi> series and branches are easy to mix
[07:31] <ddaa> yes, and the fact that "series" were labelled "branches" for a long time does not help.
[07:33] <ddaa> But I'm not going to change it before it is discussed on the ML.
[07:35] <EMAIL> yes
[07:35] <EMAIL> use the ML
[07:37] <jordi> EMAIL: I AM SENDING YOU
[07:38] <EMAIL> please
[07:40] <ddaa> EMAIL: are you aware you are 99% made of korean spam and ads for fake Rolex watches and penis enlargement products?
[07:40] <jordi> ddaa: you're outdated
[07:40] <jordi> they now offer WIDE dicks
[07:41] <ddaa> I did not say "penis lengthening"
[07:41] <jordi> so true :)
[07:41] <jordi> I stand largely corrected
[07:41] <ddaa> widely?
[07:41] <jordi> not specified :)
[07:41] <niemeyer> Cough.. hello folks :)
[07:43] <jordi> niemeyer: it's not what it looks :)
[07:43] <ddaa> niemeyer: you'd be happy to know that you've recently be enlarged as well :)
[07:43] <niemeyer> 8)
[07:43] <ddaa> at least, neumayer has got a new LARGE, HARD drive.
[07:43] <jordi> bradb: dude
[07:44] <jordi> bradb: what's the temperature these days up there?
[07:44] <bradb> deadly
[07:44] <bradb> but only since the last few days
[07:46] <jordi> what's deadly in Centigrade?
[07:47] <jordi> -10 is THE END for me
[07:47] <ddaa> depends a lot on the hygrometry
[07:48] <ddaa> -10 tends to be quite dry, that's about as cold as a wet -3.
[07:48] <ddaa> But then, with the Montreal Blizzard of Death...
[07:51] <jordi> ugh
[07:55] <bradb> -6C, but it's not the INT that kills, it's the WIND
[08:06] <EMAIL> mpt, are you sure 3603 is fixed? it's not on staging..
[08:06] <jordi> ok
[08:06] <jordi> EMAIL: what's the status of launchpad-experts?
[08:06] <EMAIL> thanks for using me
[08:07] <EMAIL> jordi, it's a patch again now. I need to put it up for stub and steve's review
[08:07] <jordi> k
[08:08] <mpt> EMAIL, I was confusing it with bug 3600, and that was your fault, because you disambiguated them in a comment, but you neglected to update the title or description
[08:08] <Ubugtu> Malone bug #3600: Summary field processing is handling carriage returns wrongly. In: launchpad (upstream), Severity: Normal, Assigned to: Matthew Paul Thomas, Status: Fixed https://launchpad.net/bugs/3600
[08:08] <EMAIL> mpt, reopen please :)
[08:09] <mpt> EMAIL: No, because I've just sent the actual fix of bug 3603 to PQM, and I didn't want to spam unnecessarily by reopening then changing the status again five minutes later.
[08:09] <Ubugtu> Malone bug #3603: Whiteboard field in spec tracker does not auto-linkify URLs In: launchpad (upstream), Severity: Normal, Assigned to: Matthew Paul Thomas, Status: PendingUpload https://launchpad.net/bugs/3603
[08:09] <EMAIL> mpt, ah, okay.
[08:18] <ddaa> what's the proper way to do: "foo LIKE '%s%%'" % (string,) ?
[08:19] <ddaa> quote_like does not work because it puts quotes around its result
[08:20] <ddaa> bah... it's trusted data... I'll just stick an assert...
[08:22] <jordi> EMAIL: I have pics of EMAILS jumping with a bicycle all over Mont Royal
[08:23] <jordi> I'll setup a gallery2 so you can brwose
[08:23] <jordi> I'm going for food now.
[08:23] <jordi> laters
[08:23] <EMAIL> jordi!
[08:23] <jordi> YES
[08:24] <jordi> EMAIL: I want your pics of Boston too!
[08:24] <jordi> how's your life as a papparazzi?
[08:29] <mpt> hooooome time
[08:47] <kiko> jordi, it's not so bad
[08:48] <kiko> I need to get my sister to upload those pictures dammit
[08:55] <bradb> BjornT: around?
[08:57] <bradb> SteveA: ping
[08:57] <kiko> I'm around
[08:57] <kiko> SteveA's connection is dead
[08:58] <bradb> deep zope 3 interaction magic question
[08:58] <SteveA> bradb: back
[08:58] <bradb> ok
[08:58] <BjornT> bradb: yeah, i'm somewhat around
[08:58] <bradb> can somebody put the paste URL back in the channel topic please?
[08:59] <SteveA> bradb: it is on the canonical channel
[08:59] <SteveA> dont' put it back here please
[09:00] <bradb> ah, thanks
[09:01] <bradb> BjornT, SteveA: In mixing Python code with page test code (to more reliably test expected data), I keep getting errors like: https://chinstrap.ubuntu.com/~dsilvers/paste/fileKSUM74.html. Any idea?
[09:02] <SteveA> bradb: log in
[09:02] <SteveA> ah
[09:02] <SteveA> you are logging in
[09:03] <SteveA> we have a loop here
[09:03] <SteveA> getPrincipalByLogin is used by login()
[09:03] <SteveA> and it uses getUtility
[09:03] <SteveA> to get IPersonSet
[09:03] <bradb> https://chinstrap.ubuntu.com/~dsilvers/paste/file3jdDfc.html (test file)
[09:03] <dilys> Merge to devel/launchpad: [trivial]  Fix bug 1612 (Logging in from front page doesn't return to front page) (r2904: Matthew Paul Thomas)
[09:03] <bradb> ah
[09:04] <SteveA> and so the security machinery wants to check whether getUtility(IPersonSet).getByEmail is allowed
[09:04] <SteveA> but it can't
[09:04] <SteveA> because no interaction is set up
[09:04] <SteveA> because there has been no login
[09:04] <SteveA> so, login() needs to not do that
[09:04] <SteveA> or needs to remove the proxy from the IPersonSet object
[09:05] <bradb> the reason it does that is to make sure it fails if a non-existent email is passed in (which previously caused some difficult to find bugs when typoing emails)
[09:06] <bradb> SteveA: What about trying to reset the interaction first in login?
[09:06] <SteveA> maybe.
[09:07] <SteveA> login could log in anonymous
[09:07] <SteveA> then check the email
[09:07] <SteveA> then log in otherwise 
[09:07] <SteveA> that would be a cumbersome but simple fix
[09:07] <bradb> a combo of queryInteraction and if None getInteraction may be what is needed
[09:07] <bradb> er, newInteraction, not get, I meant
[09:19] <bradb> SteveA: Small bugs in my tests aside, two extra lines of queryInteraction + setupInteraction() means that it should be easier for people to mix Python code with pagetest code now.
[09:19] <SteveA> cool
[09:19] <SteveA> sounds like a valuable change
[09:19] <SteveA> there's probably stuff that cprov can refactor
[09:20] <SteveA> because of it
[09:20] <SteveA> refactor meaning remove some lines of testing code
[09:20] <bradb> I've got another *huge* productivity booster (IMHO) that I'm about to confirm in about 10 mins (maybe sooner)
[09:20] <bradb> Like, almost life-changing.
[09:23] <cprov> SteveA: sure, interesting we got it fixed
[09:24] <SteveA> bradb: the suspense is killing me
[09:27] <kiko-afk> bradb?
[10:00] <bradb> kiko-afk, SteveA: https://chinstrap.ubuntu.com/~dsilvers/paste/fileX28upv.html
[10:04] <bradb> mdz: around?
[10:06] <kiko-afk> bradb, you did that? with your bare hands? ROCK ON DUDE
[10:06] <bradb> heh
[10:06] <kiko> this is most unexpected man
[10:15] <bradb> So, this merge is going to have three fairly important landings: 1. InitialBugContacts, 2. (mostly people won't even realize this because they don't do it but should) fixes a deep-zen interaction bug in login() to make it no-thinking-required to mix code + page testing in pagetests and 3. --story!
[10:18] <kiko> bradb, can you land --story separately?
[10:18] <bradb> too late now, sorry
[10:19] <mdz> bradb: heading out the door now; call my mobile?
[10:20] <bradb> mdz: ok, i'll call in a few
[10:32] <kiko> daf's?
[10:42] <bradb> one is steve's
[10:43] <bradb> kiko: btw, when is the gina run expected to be completed successfully in prod?
[10:44] <bradb> I've been living under a rock for the last few days, my poor Inbox.
[10:47] <kiko> bradb, next week, hard deadline.
[10:47] <bradb> what day?
[10:48] <kiko> wednesday or thursday
[10:48] <bradb> ok
[11:00] <lifeless> SteveA: around ?
[11:12] <bradb> stub: https://chinstrap.ubuntu.com/~dsilvers/paste/fileX28upv.html
[11:14] <stub> Cool - that landed?
[11:15] <bradb> stub: No, in jamesh's review queue now.
[11:15] <bradb> with InitialBugContacts
[11:31] <lifeless> hey stub
[11:31] <stub> Morning
[11:31] <lifeless> did you run a bulk reassignment from lifeless to 'the launchpad registration team' or some such a while back ?
[11:31] <lifeless> Morning  too ya too ;)
[11:32] <dilys> Merge to devel/launchpad: [trivial]  Fix bug 3603 (Whiteboard field in spec tracker does not auto-linkify URLs) (r2905)
[11:34] <stub> lifeless: Possibly - I know we did for ddaa, bob2 and jblack. I can't remember if you were included too.
[11:34] <lifeless> that would explain it
[11:34] <lifeless> my legitimate products and projects got nuked
[11:34] <lifeless> :[