=== Ursinha is now known as Ursinha-afk | ||
=== Ursinha-afk is now known as Ursinha | ||
=== Ursinha is now known as Ursinha-afk | ||
=== Ursinha-afk is now known as Ursinha | ||
=== gary_poster is now known as gary-dentist | ||
bac | #startmeeting | 15:00 |
---|---|---|
MootBot | Meeting started at 09:00. The chair is bac. | 15:00 |
MootBot | Commands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE] | 15:00 |
* bigjools is here | 15:00 | |
bac | who is here? | 15:00 |
mars | me | 15:00 |
wgrant | me | 15:00 |
bigjools | ha, I read your mind! | 15:00 |
noodles775 | me | 15:00 |
henninge | me | 15:00 |
sinzui | me | 15:00 |
mars | bac, gary-dentist sends his apologies | 15:00 |
jelmer | me | 15:01 |
abentley | me | 15:01 |
bac | mars: i was assuming that would be the case | 15:01 |
bac | and deryck as well | 15:01 |
bac | EdwinGrubbs, danilos, gmb: pings | 15:02 |
danilos | me | 15:02 |
bac | flacoste: ping | 15:02 |
EdwinGrubbs | me | 15:02 |
flacoste | me | 15:02 |
bac | allenap: yo | 15:03 |
* bac thought the mass invite was such a good idea... | 15:03 | |
bac | [topic] agenda | 15:03 |
bac | * Roll call | 15:03 |
bac | * Agenda | 15:03 |
bac | * Outstanding actions | 15:03 |
bac | * Mentat update. | 15:03 |
bac | * salgado (ui) | 15:03 |
MootBot | New Topic: agenda | 15:03 |
bac | * henninge (ui) | 15:03 |
bac | * stevenk (code) | 15:03 |
bac | * New topics | 15:03 |
bac | * Nice Storm gotcha (bigjools) | 15:03 |
bac | * canonical.launchpad is still deprecated, sinzui (AsiaPac meeting only) | 15:03 |
bac | * [[http://paste.ubuntu.com/507156/|Truth conditionals and the new "all" and "any" functions]], henninge | 15:03 |
adeuring | me | 15:04 |
allenap | me | 15:04 |
* sinzui read that as "sinzui is deprecated" At least he is not obsolete | 15:04 | |
bac | salgado: ping | 15:04 |
bac | [topic] mentoring update | 15:04 |
MootBot | New Topic: mentoring update | 15:04 |
salgado | me! | 15:05 |
sinzui | we are getting lots of UI reviews | 15:05 |
sinzui | I do mean a lot, more than last month | 15:06 |
sinzui | well, more than aug and jul | 15:06 |
salgado | some weeks I get more, others I get less | 15:06 |
henninge | I enjoy them but please try to provide screenshots ... | 15:06 |
henninge | ... or even screencasts, like noodles775 does ;-) | 15:06 |
salgado | yeah, screen[shots,casts] help a lot for small changes | 15:07 |
salgado | but when they're not trivial I like to exercise them manually to test for corner cases and all that | 15:08 |
henninge | true. Did not have any of those yet, though ... ;) | 15:08 |
noodles775 | Yeah, I think it's nearly always worth exercising manually - I just provide the screencasts to demo and get the context. | 15:10 |
salgado | it's also nice when devs add demo data (aka dev sample data) that makes it easy to exercise the changes | 15:11 |
bac | sorry about that, my internet died | 15:11 |
bac | what did i miss? | 15:11 |
sinzui | Paris is in flames | 15:11 |
salgado | bac, http://paste.ubuntu.com/507276/ | 15:11 |
bigjools | how did they do that when they're on strike? | 15:11 |
danilos | salgado, +1 for adding dev sampledata! I want to see much more of it | 15:12 |
bac | noodles775: can you provide a link to one of your screencasts? i've never seen one | 15:12 |
noodles775 | bac: https://code.edge.launchpad.net/~michael.nelson/launchpad/652838-select-diffs-for-syncing/+merge/37572 | 15:13 |
bac | noodles775: thanks | 15:13 |
noodles775 | (the mp has the screencast as well as a script for sample data setup). | 15:13 |
bac | [topic] new topics | 15:13 |
MootBot | New Topic: new topics | 15:13 |
bac | [topic] Nice Storm gotcha (bigjools) | 15:13 |
MootBot | New Topic: Nice Storm gotcha (bigjools) | 15:13 |
wgrant | :( | 15:13 |
bigjools | heh | 15:13 |
bigjools | I'd like to point you all to revision 11670 of devel | 15:14 |
bigjools | notice the change - a storm expression was using Python's "in" instead of Storm's is_in | 15:14 |
bigjools | this has been quite catastrophic for soyuz | 15:15 |
bigjools | because the former was evaluating to True all the time | 15:15 |
danilos | :( | 15:15 |
sinzui | yuck | 15:15 |
bigjools | so this is just a warning to not fuck up quite as spectacularly | 15:15 |
wgrant | You'd think it would fail to False, but nooo. | 15:15 |
bigjools | I'm wondering if we can get it lint checked? | 15:16 |
sinzui | it's in a string, and pyflakes/pep8 ignore string content | 15:16 |
wgrant | It's not in a string. | 15:17 |
bigjools | or perhaps make Storm DTRT | 15:17 |
wgrant | I'm not sure that Storm can be fixed. | 15:17 |
bac | bigjools: is there a storm bug? | 15:17 |
sinzui | but I think I can write a regexp that locates problems like this | 15:17 |
wgrant | It's probably just seeing that __eq__ returns something that isn't False. | 15:17 |
bigjools | bac: I don't know if it can be a bug or not | 15:17 |
bac | bigjools: i mean, have we filed a bug or discussed with the stormers | 15:17 |
bigjools | bac: not yet, I'm still in the middle of cleaning up the mess | 15:18 |
bac | right | 15:18 |
bigjools | when things are calmer I can do that | 15:18 |
bigjools | anyway, that's it from me | 15:18 |
bac | sinzui: are you going to take a look to see if lint can catch it? can i assign you an item? | 15:19 |
sinzui | I am | 15:19 |
bac | [action] sinzui to try to fix lint wrt storm gotcha | 15:19 |
MootBot | ACTION received: sinzui to try to fix lint wrt storm gotcha | 15:19 |
bigjools | it would be inside a .find() of course | 15:19 |
bac | [topic] * [[http://paste.ubuntu.com/507156/|Truth conditionals and the new "all" and "any" functions]], henninge | 15:19 |
MootBot | New Topic: * [[http://paste.ubuntu.com/507156/|Truth conditionals and the new "all" and "any" functions]], henninge | 15:20 |
henninge | everybody please read the paste ;-) | 15:20 |
henninge | http://paste.ubuntu.com/507156/ | 15:20 |
bac | here's the link again http://paste.ubuntu.com/507156 | 15:20 |
MootBot | LINK received: http://paste.ubuntu.com/507156/ | 15:20 |
allenap | bigjools, sinzui: Storm should probably not compile a raw True. It's a smell that something is wrong. | 15:21 |
* sinzui has used if val not in (None, '') | 15:21 | |
allenap | henninge: any() and all() can consume generator expressions. | 15:21 |
henninge | yes, any iterable | 15:21 |
allenap | any(translation is not None and translation != "" for translation in translations) | 15:21 |
henninge | yeah, ok ... | 15:22 |
henninge | ;-) | 15:22 |
bigjools | allenap: yes, good point | 15:22 |
henninge | although is that not a 2.6ism with out the [] ? | 15:22 |
allenap | henninge: I was against the explicit truthiness testing originally, but if we're having it then I feel we should stick to it. | 15:23 |
allenap | No, it worked on 2.5 I think. | 15:23 |
bigjools | FWIW jelmer and I found a bug in Soyuz code earlier where it was using "if thing:" | 15:23 |
bigjools | instead of something more explicit | 15:23 |
abentley | allenap, but also: len([translation is not None and translation != "" for translation in translations]) != 0 | 15:24 |
allenap | And, fwiw, I'm on-board with explicit conditionals now. | 15:24 |
henninge | ok, I had not thought of allenap's solution, | 15:24 |
henninge | that would work well for me, too. | 15:24 |
henninge | No softening the policy, then? | 15:25 |
allenap | abentley: That's cool, but I think any() and all() do add to readability, and they can shortcut too. | 15:25 |
bac | henninge: sounds like there is not much support | 15:25 |
danilos | I kind of feel like we should losen it | 15:26 |
bigjools | I think they are dangerous | 15:26 |
danilos | any() sounds quite to the point to me (i.e. it's not exactly like "if something" vs "if something is None", where being explicit does add value; with any() you are being explicit to a point) | 15:26 |
henninge | danilos: but it *is* doing "if something" internally and you cannot do anything about it. | 15:27 |
danilos | henninge, right, that's why I agree we should see what everybody feels about it :) | 15:27 |
henninge | ;-) | 15:28 |
sinzui | I see any as explicit. It looks like it is removing redundancy from the code | 15:28 |
abentley | allenap: I'm okay with the semantics of your revised version, but I don't agree it's more readable. It's one more thing to remember how it works. | 15:28 |
henninge | abentley: I find the word "any" quite obvious ... | 15:29 |
allenap | danilos: henninge's example could be split into two lines to enhance readability: valid_translations = (t is not None and t != "" for t in translations); if any(valid_translations): ... | 15:29 |
noodles775 | +1 for allenap's suggestion. | 15:29 |
bac | allenap: but at that point you could just see if you have an empty list, no? | 15:29 |
allenap | It's a builtin too; no hiding from it. | 15:29 |
abentley | henninge: not me. Does it mean "length > 1" or does it mean "anything in this iterable is true"? | 15:30 |
allenap | bac: The generator expression combined with any() means you can shortcut as soon as a translation is available. | 15:30 |
henninge | abentley: well, the latter. | 15:30 |
allenap | If translations is expensive to iterate over then it could make a difference. | 15:31 |
abentley | henninge: That's not the most obvious meaning to me, but with storm, "any" has yet another meaning. | 15:31 |
danilos | I don't think we need a solution to replace bare "any()" use in this meeting, we should just decide whether we want to stop basic usage as non-explicit | 15:31 |
allenap | abentley: Yeah, that's unfortunate. | 15:31 |
danilos | allenap, it is not, it's a list of at most 6 items | 15:31 |
allenap | danilos: Here, okay, but in general it might be useful to shortcut evaluation. | 15:32 |
allenap | danilos: Which is what the for loop does. | 15:32 |
danilos | allenap, right, but as I said, I am not interested in valid use cases of any(), but rather, invalid, in terms of our "be-explicit" policy :) | 15:33 |
allenap | Anyway, I thought this was just about being explicit in conditionals? I think we should be explicit everywhere, including in any() and all(). | 15:33 |
danilos | allenap, yeah, but not many people have an opinion on any() in particular | 15:33 |
henninge | allenap: right, that was my questions and that is an answer ... ;) | 15:34 |
henninge | danilos: no opinion, no change ... | 15:34 |
danilos | henninge, that's right, let's move on bac :) | 15:34 |
bac | henninge: right. would you still update the page to include the summary? | 15:35 |
henninge | bac: I am done. I will add a comment to the style guide to suggest allenaps code. | 15:35 |
bac | thanks | 15:35 |
henninge | :) | 15:35 |
bac | [topic] anything else? | 15:35 |
MootBot | New Topic: anything else? | 15:35 |
bac | no? | 15:36 |
bac | #endmeeting | 15:36 |
MootBot | Meeting finished at 09:36. | 15:36 |
bac | thanks for coming | 15:36 |
henninge | thanks bac! | 15:36 |
bigjools | cheers bac | 15:39 |
=== gary-dentist is now known as gary-lunch | ||
=== salgado is now known as salgado-lunch | ||
=== gary-lunch is now known as gary-phone | ||
=== salgado-lunch is now known as salgado | ||
=== gary-phone is now known as gary_poster | ||
=== Ursinha is now known as Ursinha-lunch | ||
=== Ursinha-lunch is now known as Ursinha | ||
=== salgado is now known as salgado-afk | ||
=== Ursinha is now known as Ursinha-afk |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!