=== 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
MootBotMeeting started at 09:00. The chair is bac.15:00
MootBotCommands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE]15:00
* bigjools is here15:00
bacwho is here?15:00
bigjoolsha, I read your mind!15:00
marsbac, gary-dentist sends his apologies15:00
bacmars: i was assuming that would be the case15:01
bacand deryck as well15:01
bacEdwinGrubbs, danilos, gmb: pings15:02
bacflacoste: ping15:02
bacallenap: yo15:03
* bac thought the mass invite was such a good idea...15:03
bac[topic] agenda15:03
bac* Roll call15:03
bac * Agenda15:03
bac * Outstanding actions15:03
bac * Mentat update.15:03
bac   * salgado (ui)15:03
MootBotNew Topic:  agenda15:03
bac   * henninge (ui)15:03
bac   * stevenk (code)15:03
bac * New topics15: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]], henninge15:03
* sinzui read that as "sinzui is deprecated" At least he is not obsolete15:04
bacsalgado: ping15:04
bac[topic] mentoring update15:04
MootBotNew Topic:  mentoring update15:04
sinzuiwe are getting lots of UI reviews15:05
sinzuiI do mean a lot, more than last month15:06
sinzuiwell, more than aug and jul15:06
salgadosome weeks I get more, others I get less15:06
henningeI enjoy them but please try to provide screenshots ...15:06
henninge... or even screencasts, like noodles775 does ;-)15:06
salgadoyeah, screen[shots,casts] help a lot for small changes15:07
salgadobut when they're not trivial I like to exercise them manually to test for corner cases and all that15:08
henningetrue. Did not have any of those yet, though ... ;)15:08
noodles775Yeah, I think it's nearly always worth exercising manually - I just provide the screencasts to demo and get the context.15:10
salgadoit's also nice when devs add demo data (aka dev sample data) that makes it easy to exercise the changes15:11
bacsorry about that, my internet died15:11
bacwhat did i miss?15:11
sinzuiParis is in flames15:11
salgadobac, http://paste.ubuntu.com/507276/15:11
bigjoolshow did they do that when they're on strike?15:11
danilossalgado, +1 for adding dev sampledata! I want to see much more of it15:12
bacnoodles775: can you provide a link to one of your screencasts?  i've never seen one15:12
noodles775bac: https://code.edge.launchpad.net/~michael.nelson/launchpad/652838-select-diffs-for-syncing/+merge/3757215:13
bacnoodles775: thanks15:13
noodles775(the mp has the screencast as well as a script for sample data setup).15:13
bac[topic] new topics15:13
MootBotNew Topic:  new topics15:13
bac[topic] Nice Storm gotcha (bigjools)15:13
MootBotNew Topic:  Nice Storm gotcha (bigjools)15:13
bigjoolsI'd like to point you all to revision 11670 of devel15:14
bigjoolsnotice the change - a storm expression was using Python's "in" instead of Storm's is_in15:14
bigjoolsthis has been quite catastrophic for soyuz15:15
bigjoolsbecause the former was evaluating to True all the time15:15
bigjoolsso this is just a warning to not fuck up quite as spectacularly15:15
wgrantYou'd think it would fail to False, but nooo.15:15
bigjoolsI'm wondering if we can get it lint checked?15:16
sinzuiit's in a string, and pyflakes/pep8 ignore string content15:16
wgrantIt's not in a string.15:17
bigjoolsor perhaps make Storm DTRT15:17
wgrantI'm not sure that Storm can be fixed.15:17
bacbigjools: is there a storm bug?15:17
sinzuibut I think I can write a regexp that locates problems like this15:17
wgrantIt's probably just seeing that __eq__ returns something that isn't False.15:17
bigjoolsbac: I don't know if it can be a bug or not15:17
bacbigjools: i mean, have we filed a bug or discussed with the stormers15:17
bigjoolsbac: not yet, I'm still in the middle of cleaning up the mess15:18
bigjoolswhen things are calmer I can do that15:18
bigjoolsanyway, that's it from me15:18
bacsinzui: are you going to take a look to see if lint can catch it?  can i assign you an item?15:19
sinzuiI am15:19
bac[action] sinzui to try to fix lint wrt storm gotcha15:19
MootBotACTION received:  sinzui to try to fix lint wrt storm gotcha15:19
bigjoolsit would be inside a .find() of course15:19
bac[topic] * [[http://paste.ubuntu.com/507156/|Truth conditionals and the new "all" and "any" functions]], henninge15:19
MootBotNew Topic:  * [[http://paste.ubuntu.com/507156/|Truth conditionals and the new "all" and "any" functions]], henninge15:20
henningeeverybody please read the paste ;-)15:20
bachere's the link again http://paste.ubuntu.com/50715615:20
MootBotLINK received:  http://paste.ubuntu.com/507156/15:20
allenapbigjools, 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
allenaphenninge: any() and all() can consume generator expressions.15:21
henningeyes, any iterable15:21
allenapany(translation is not None and translation != "" for translation in translations)15:21
henningeyeah, ok ...15:22
bigjoolsallenap: yes, good point15:22
henningealthough is that not a 2.6ism with out the [] ?15:22
allenaphenninge: I was against the explicit truthiness testing originally, but if we're having it then I feel we should stick to it.15:23
allenapNo, it worked on 2.5 I think.15:23
bigjoolsFWIW jelmer and I found a bug in Soyuz code earlier where it was using "if thing:"15:23
bigjoolsinstead of something more explicit15:23
abentleyallenap, but also: len([translation is not None and translation != "" for translation in translations]) != 015:24
allenapAnd, fwiw, I'm on-board with explicit conditionals now.15:24
henningeok, I had not thought of allenap's solution,15:24
henningethat would work well for me, too.15:24
henningeNo softening the policy, then?15:25
allenapabentley: That's cool, but I think any() and all() do add to readability, and they can shortcut too.15:25
bachenninge: sounds like there is not much support15:25
danilosI kind of feel like we should losen it15:26
bigjoolsI think they are dangerous15:26
danilosany() 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
henningedanilos: but it *is* doing "if something" internally and you cannot do anything about it.15:27
daniloshenninge, right, that's why I agree we should see what everybody feels about it :)15:27
sinzuiI see any as explicit. It looks like it is removing redundancy from the code15:28
abentleyallenap: 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
henningeabentley: I find the word "any" quite obvious ...15:29
allenapdanilos: 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
bacallenap: but at that point you could just see if you have an empty list, no?15:29
allenapIt's a builtin too; no hiding from it.15:29
abentleyhenninge: not me.  Does it mean "length > 1" or does it mean "anything in this iterable is true"?15:30
allenapbac: The generator expression combined with any() means you can shortcut as soon as a translation is available.15:30
henningeabentley: well, the latter.15:30
allenapIf translations is expensive to iterate over then it could make a difference.15:31
abentleyhenninge: That's not the most obvious meaning to me, but with storm, "any" has yet another meaning.15:31
danilosI 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-explicit15:31
allenapabentley: Yeah, that's unfortunate.15:31
danilosallenap, it is not, it's a list of at most 6 items15:31
allenapdanilos: Here, okay, but in general it might be useful to shortcut evaluation.15:32
allenapdanilos: Which is what the for loop does.15:32
danilosallenap, 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
allenapAnyway, I thought this was just about being explicit in conditionals? I think we should be explicit everywhere, including in any() and all().15:33
danilosallenap, yeah, but not many people have an opinion on any() in particular15:33
henningeallenap: right, that was my questions and that is an answer ... ;)15:34
henningedanilos: no opinion, no change ...15:34
daniloshenninge, that's right, let's move on bac :)15:34
bachenninge: right.  would you still update the page to include the summary?15:35
henningebac: I am done. I will add a comment to the style guide to suggest allenaps code.15:35
bac[topic] anything else?15:35
MootBotNew Topic:  anything else?15:35
MootBotMeeting finished at 09:36.15:36
bacthanks for coming15:36
henningethanks bac!15:36
bigjoolscheers bac15: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!