/srv/irclogs.ubuntu.com/2009/03/18/#launchpad-meeting.txt

=== ursula is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha-nsakf
=== Ursinha-nsakf is now known as Ursinha-nsafk
=== Ursinha-nsafk is now known as Ursinha-afk
=== gmb-sprinting is now known as gmb
=== Ursinha-afk is now known as Ursinha
barry#startmeeting14:00
MootBotMeeting started at 09:00. The chair is barry.14:00
MootBotCommands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE]14:00
barryhello and welcome to this week's ameu reviewers meeting.  who's here today?14:00
flacosteme14:00
sinzuime14:00
vednisme14:00
vednisgah14:01
=== vednis is now known as mars
marsme14:01
bacme14:01
salgadome14:01
marsso, the team on sprint is all here14:01
barry[TOPIC] agenda14:02
MootBotNew Topic:  agenda14:02
barry== Agenda ==14:02
barry * Roll call14:02
barry * barry to miss the next two weeks14:02
barry * plurals, curtis14:02
barry * Peanut gallery (anything not on the agenda)14:02
barry * Action items14:02
barry * Mentoring update14:02
barry[TOPIC] * barry to miss the next two weeks14:02
MootBotNew Topic:  * barry to miss the next two weeks14:02
EdwinGrubbsme14:02
barryso, i'll be at pycon the next two weeks and won't be able to meet.  does someone want to take over chair duties for the next two weeks or should we bag the meeting?14:03
* barry can guess based on today's stellar attendance :)14:03
barryi guess i'll send a message to the ml and we can just meet up again in 3 weeks14:04
=== mrevell_ is now known as mrevell
barry[TOPIC] * plurals, curtis14:04
MootBotNew Topic:  * plurals, curtis14:04
barrysinzui: do you want to take this one?14:04
bigjoolsme14:04
sinzuiI have struggled without how to write code in a clean and consisent fashion to handle cases where the page will say 1 member or 2 members.14:05
gmbbarry: Bugs team is sprinting this week, so BjornT, intellectronica, allenap, adeuring and I won't be here...14:05
barrygmb: thanks14:06
=== gmb is now known as gmb-not-here-no-
sinzuiI once used ngettext, but I was told to remove it14:06
sinzuishould we have a tale formatter to handle this in the template?14:06
bigjoolshow would it handle irregular plurals?14:06
sinzuiview/count/fmt:singular/member/members14:06
marssinzui, probably14:07
bacwhat is the rationale for not using ngettext?14:07
marssinzui, since every other web framework has said formatter, we may take that as a hint ;)14:07
sinzuibigjools: I do not know14:07
bigjoolssinzui: you answered me already with your example, you just provide the alternative.  np.14:07
barrydoes zpt (or whatever sidnei is experimenting with) support this?14:07
sinzuiTALES i18n does not support ngettext either :(14:08
barryflacoste: what do you think?14:08
flacostewell14:08
flacostei think ngetttext is the way to go14:09
flacostebut14:09
flacostecurtis' suggestion is a good worst-solution14:09
flacostewhy can't we use ngetttext?14:09
* sinzui nods14:09
flacostehmm, i wish gary was here14:09
sinzuiI don't recall the reason I was told to remove it14:09
sinzuidanilos: was kind enough to tell me to use it14:10
gary_posterme, sorry14:10
sinzuiMy concern is that we void this situation my writing mediocre text like members: 114:10
barrygary_poster: hi.  we're asking about plural forms and ngettext in templates14:10
flacostegary_poster: we are discussing how to do plurals14:10
sinzuis/void/avoid/14:10
flacostegary_poster: zope.i18n doesn't have any support for it i htink14:11
danilosif are ever going to do proper i18n, we'd have to extend zope.i18n14:11
gary_posterbarry, flacoste: ok, thanks.  no support for plurals?  that's surprising14:11
danilosif we are not interested in l10n as well, coming up with a simpler alternative might do the trick14:11
barrygary_poster: sinzui suggested a formater, e.g. view/count/fmt:singular/member/members14:12
flacostebarry: the problem with that is that it hurs i18n14:12
barryflacoste: agreed!14:12
flacostebarry: since that only supports english14:12
gary_posterI'd want to go to the author (Stephan Richter, IIRC) and verify before going too far; I'd also strongly believe that Zope would be very interested in this if we were working on it14:12
barryflacoste: i'd much rather use the zopey way if there is one14:12
barrygary_poster: could you ping stephan and see what he recommends?14:13
gary_posterI know of a zopey way for i18n collation...but don't know anything about plurals14:13
gary_posterbarry: yes will do14:13
daniloseverybody should note that ngettext-style depends on an argument (a number) being passed, so that's likely going to live in the view anyway14:13
barrygary_poster: awesome, thanks14:13
flacosteyes14:14
danilosif it's going to be in the template, it's going to be pretty awkward I assume14:14
barry[ACTION] gary_poster to check w/stephan richter about the best way to do plurals14:14
MootBotACTION received:  gary_poster to check w/stephan richter about the best way to do plurals14:14
flacostedanilos: zope.i18n isn't about templates14:14
flacostedanilos: tales uses zope.i18n for tempalte tranlsation14:14
danilosflacoste: right, but people are mostly interested in how it can be applied in templates, if I am not mistaken14:14
flacostedanilos: i think view/templates14:15
flacostedanilos: you can't format a message like that in templates14:15
flacostesince grammar might have to change also14:15
gary_posteryes14:15
danilosflacoste: you certainly can, but TAL would not really work too well with it14:15
flacosteagreed14:15
gary_posterdanilos: have you seen a solution in another template language that works well?14:16
danilosgary_poster: work well, plenty, look good, none :)14:16
gary_posters/language/system or whatever/14:16
* barry wants to ask if there are any template languages that actually do i18n well ;)14:16
gary_posterdanilos: heh :-)14:16
gary_poster:-)14:16
danilosI've usually had to extend systems with my own formatters (did that ages ago for smarty and cheetahtemplates)14:17
barryokay cool.  gary_poster thanks for looking into that for us14:17
gary_posterbarry: sure, np.14:17
barry[TOPIC]  * Peanut gallery (anything not on the agenda)14:17
MootBotNew Topic:   * Peanut gallery (anything not on the agenda)14:17
barrydoes anybody have anything not already on the agenda?14:18
barryphew14:18
barry[TOPIC] action items14:18
MootBotNew Topic:  action items14:18
barry * gary_poster to add `getStore()` as an alias for `_get_store()`14:19
gary_posterthat was locally, which I did14:19
gary_poster(or at least that's how I interpreted it ;-) )14:19
barrygary_poster: you landed that in a branch already, right?14:19
gary_posteryeah14:19
barrygary_poster: awesome, thanks14:19
gary_postercool, np14:19
barry * gary_poster will check to see if there's a bug open for adding a hook to `bzr send`, and submit one if there isn't14:19
gary_posternope :-(14:19
barrynp14:20
barry * flacoste to look into storm/sqlobject result set compatibility14:20
barry * flacoste to work on API reviewer cheat sheet14:20
flacostehmm14:20
barryflacoste: r.u.hoover?14:20
flacosteyeah14:20
flacostebut i think allenap solved the first one14:20
flacosteiirc14:20
allenapflacoste: It should be in, or nearly merged into storm trunk. It should be an easy backport to our storm branch.14:21
allenapflacoste: Yes, it is merged into storm trunk.14:23
sinzuiare we here?14:24
bacyes we are14:24
sinzuibarry is gone?14:24
barry_i'm back i guess14:25
barry_ flacoste: keep these items or drop 'em?14:25
flacostebarry: keep the hoover one14:25
barry_you got it14:25
flacosteallenap: should we drop the other one?14:25
allenapflacoste: I don't follow...14:26
flacosteallenap: storm result set compatibility14:26
allenapI think we should have a new task to backport that change into the LP storm branch.14:26
allenapI'll do that next week.14:27
barry_allenap, flacoste cool, let's keep this on the agenda then14:27
flacosteshouldn't we jsut try pdating storm?14:27
flacostei think jtv was also interested in changes on trunk14:27
allenapI tried that once and there was lots of breakage, and I didn't have the fu to understand and fix.14:27
allenapBut we should do it. The longer we leave it, the greater the breakage.14:28
barry_bigjools: i have your branch to review, thaks for working on those helper functions14:29
bigjoolsno worries14:29
bigjoolsit wasn't too hard14:29
barry_[TOPIC] mentoring updates14:29
barry_anything here?14:29
barry_well, i think we're done14:30
barry_#endmeeting14:30
barry_thanks everyone (except you mootbot)14:30
gary_poster:-) Thanks barry14:30
=== salgado is now known as salgado-lunch
=== salgado-lunch is now known as salgado
=== thumper_laptop is now known as thumper
=== thumper_laptop is now known as thumper
=== salgado is now known as salgado-afk
=== gmb-not-here-no- is now known as gmb
jmlrock. rock. rock. rock. rock.22:24
mwhudsonsoil?22:28
jmlHa22:30
jmlAre we having a meeting?22:30
thumperhere22:31
thumperpaper?22:31
barry#startmeeting22:32
MootBotbarry, There is already a meeting in progress.22:32
jmltee hee22:32
barrythank you mootbot22:32
barry/msg mootbot shut up22:32
barryokay okay, so... welcome to this week's asiapac reviewers meeting.  who's here today?22:33
jmlI am.22:33
barryjml: hi!22:33
mwhudsoni am too22:33
thumperme22:33
barry[TOPIC] agenda22:33
MootBotNew Topic:  agenda22:33
thumperalthough I have about 13 minutes22:33
barry * Roll call22:34
barry * barry to miss the next two weeks22:34
barry * plurals, curtis22:34
barry * Peanut gallery (anything not on the agenda)22:34
barry * Action items22:34
barry * Mentoring update22:34
barry[TOPIC]  * barry to miss the next two weeks22:34
MootBotNew Topic:   * barry to miss the next two weeks22:34
mwhudsonthe one it two weeks time is pycon, right?22:34
barryso i'll be gone for the next two meetings. it sounded like ameu didn't want to meet while i'm gone. what say you?22:34
jmlprobably not.22:34
jmlthe main benefit of this meeting is connecting with AMEU.22:34
barrymwhudson: actually next week i'll be at pycon too22:35
mwhudsonright22:35
mwhudsonoh right22:35
mwhudsoni won't quite have left in 7 days time22:35
mwhudsoni leave in about 7.25 days i guess :)22:35
barry:)22:35
mwhudsonanyway, no meetings for two weeks, ok, next22:35
barry[TOPIC]  * plurals, curtis22:35
MootBotNew Topic:   * plurals, curtis22:35
barryso in ameu sinzui brought up the problem of plural forms in zpts22:36
barrywhich really aren't supported well22:36
mwhudsonugh yes22:36
barryafter the meeting we discussed alternatives with gary (who did some research)22:36
barryand sinzui proposed something like...22:36
barryview/count/fmt:singular/message/messages22:37
barrywhich we all kind of thought was okay22:37
barrydone.  any thoughts?22:37
jmlumm22:38
thumperick22:38
mwhudsonso fmt:singular adapts integers?22:38
jmlbarry: I'd like to see a complete example, I think.22:38
* barry delurks sinzui22:38
thumperI've used a plural helper in the view code22:38
jml(because I have questions like mwhudson's)22:38
thumperI don't like the idea of a tal formatter22:38
mwhudsonfmt:singular is a pretty crummy name22:38
sinzuiIt's the same nasty for of ngettext(n, singular, plural)22:38
sinzuiit will not be pretty in templates22:39
sinzuiIt may help us to avoid writing mediorce phrases like22:39
sinzuiproposed member: 122:39
* thumper abstains22:39
jmlsinzui: so what is 'message' in that example?22:39
sinzuifmt:singular/member/members22:40
sinzuiIt does not help anyone that the 'member' text is move into a tag22:40
* jml feels a bit dense22:41
thumpersinzui: what about fmt:singular/approved branch/approved branches/22:41
mwhudsontal needs a switch construct22:41
thumperdo spaces kill it?22:41
sinzuithumper: I would *love* that, but path adapters do not alolow spaces22:41
barrys/approved//22:41
barrywell, we all agree it's not great, but there are limited options22:42
thumperbarry: I'm sure there are cases where we want two words22:42
thumperapproved in the tal wouldn't be translated22:42
jmlsinzui: so <p>You have <tal:flibble tal:replace="view/count/fmt:singular/flibble/flibbles"/></p>22:42
jml?22:42
sinzuiyes22:42
* thumper really has to run soon22:42
barrythumper: a quick skip ahead to action items then...22:43
* mwhudson finds where he wrote "job<tal:s condition="python: job_count != 1">s</tal:s>"22:43
barry * thumper to open bug on `webservice` pagetests globs problem22:43
barrymwhudson: ug, i'm not sure that's better :/22:43
jmlanyway22:43
mwhudsonit's not22:43
* thumper tries to remember what it was22:43
thumperhavent' filed one22:43
mwhudsonthumper: salgado is an admin22:44
thumperwas it that they are all salgado?22:44
mwhudsonin the sample data22:44
thumperright22:44
thumpernot done22:44
barrythumper: keep on the agenda or not's all i care about <wink>22:44
thumperkeep22:44
barrythumper: got it22:44
barrythx22:44
barryanyway, just to close the loop on the plurals thing: if you guys have better ideas, please email the list.  nobody especially happy about the tal formatter, but we don't have better ideas22:45
jmlok.22:45
mwhudsonhas an email been sent to the list yet?22:45
barrymwhudson: i don't think so.  i /think/ it was discussed in a review22:46
mwhudsonok22:46
jmlit would be good if someone sent an email, I think.22:46
* barry hopes sinzui will email about it22:46
mwhudsonmaybe we can trick sinzui into writing a mail22:46
barry:)22:46
barrymwhudson: i'll slip something into his coffee tomorrow morning22:46
barryanyway...22:46
mwhudsonok22:46
barry[TOPIC]  * Peanut gallery (anything not on the agenda)22:46
MootBotNew Topic:   * Peanut gallery (anything not on the agenda)22:46
barrydo you guys have anything not on the agenda today?22:47
jmlI have some things22:47
jml* assertFoo vs failUnlessFoo22:47
jml* messages in assertions & TestStyleGuide22:47
jml* super vs upcalling22:47
* thumper leaves22:47
barryjml: floor is yours22:47
jmlThese all came up in reviews.22:47
barrythumper: bye22:47
thumperjml: I'll talk to you later about these22:47
jmlthumper: ok.22:47
jmlgrepping shows assertFoo is currently preferred to failUnlessFoo.22:47
jmlI think we should lean that way.22:47
barryjml: lean toward assertFoo?22:48
jmlbarry: yeah. no need to use the failUnless methods at all, I reckon.22:48
barryjml: very occasionally i find failUnless reads better, but generally i agree22:48
jmlcool.22:49
mwhudsonyes22:49
jmlapparently the TestStyleGuide recommends using messages in assertions22:49
mwhudsonsometimes i feel failFoo reads better for guard assertions22:49
barry[ACTION] barry will add the preference for assertFoo to the TSG22:49
MootBotACTION received:  barry will add the preference for assertFoo to the TSG22:49
barrymwhudson: agreed.  it shouldn't be a hard and fast rule, but a strong preference22:50
jmlto do this properly with the default TestCase, you need to do your own string substitution of values.22:50
barryall else being equal22:50
jmlbarry: +122:50
mwhudsonjml: yeah, think often messages are superfluous22:50
mwhudsonbarry: +122:50
jmlsuperfluous and paradoxically confusing22:50
jmlI had a whole bunch of really useful arguments for this that I wielded in a review.22:50
jmloh.22:50
barryjml: i *really* like (informative) assert messages22:50
jmlbarry: but wait, there's more :)22:50
jmlbarry: I changed the default implementation of assertEqual in our base TestCase class (canonical.launchpad.testing.TestCase -- you're all using that, right?)22:51
mwhudsongiven that we have tracebacks and assertFoo methods that produce reasonable messages on their own....22:51
jmlmwhudson: exactly22:51
jmlmwhudson: a message is often a cheap substitute for a domain-specific assert method.22:51
jmlanyway22:51
jmlthe default implementation now includes the message *and* the two compared values, pretty printed, in the exception22:52
jmljust like bzrlib.22:52
barryjml: wait.  you're not talking about assert statements!22:52
jmlbarry: no, not assert statements, assertions in tests.22:52
jmlbarry: sorry for the confusion.22:53
barryjml: ah.  i think i'm starting to agree with you then :)22:53
jmlanyway.22:53
mwhudson(we shouldn't write assert statements, probably, a different bikeshed though)22:53
jmlbasically, the TSG should be updated to say a) we use *our* base TestCase, b) you don't need to provide a third parameter to assertEqual22:54
barryjml: +122:54
mwhudsonjml: +122:54
jmland the final thing is upcalling vs super.22:54
barryjml: though i think we very often /don't/ use our TestCase :(22:55
jmlbarry: TestCaseWithFactory is more commonly used, and it's a subclass.22:55
barry[ACTION] barry to update TSG to state we should use our TestCase base and not use 3rd args to assertFoo()22:55
MootBotACTION received:  barry to update TSG to state we should use our TestCase base and not use 3rd args to assertFoo()22:55
jmlbarry: my secret squirrel plan is to add testtools to rf deps and then make that the base of our base :)22:55
barryjml: jfdi22:55
jmlneed to RT & all that.22:56
jml(which reminds me, can you please merge testtools into python trunk pls?)22:56
* barry coughs: zc.buildout22:56
jmlanyway, upcalls22:56
jmlpersonally, I think they are clearer. also, mostly in tests & Twisted-using code, you are forced to use them.22:56
barryjml: i recall a long discussion with SteveA about this and that z3 basically requires you to super()22:57
jmlbarry: and Twisted requires you to upcall :)22:57
barryjml: there's no "up" in "super"22:57
barryoh wait22:58
jmlbarry: I haven't seen any subclassing APIs in z322:58
mwhudsonjml: look at the request code sometime :)22:58
jmlas in z3 things you need to subclass to work.22:58
jmlmwhudson: I use my third eye for that stuff :)22:58
jmlalmost everything in Launchpad isn't the request code though.22:59
barryjml: how often does twisted and zope intersect?22:59
jmlanyway, I suggest that the review attitude to upcall vs super be, officially, "chill Winston".22:59
jmlbarry: mostly in tests.22:59
jml(where you have to upcall because most of the base classes are old-style)23:00
mwhudsonjml: heh23:00
barryjml: yeah.  old-styles /have/ to upcall23:00
jmlbarry: there's a lot of old-style code out there23:00
barryjml: 'cept all our own classes are always new-style23:00
jmlTwisted, for one, hasn't switched because it *changes the API of the class*23:00
jmlbarry: I have a Python riddle23:01
jmlclass A23:01
jmlis oldstyle23:01
* barry only does haikus23:01
jml__metaclass__ = type23:01
jmlclass B(A):23:01
jmlclass B is _____?23:01
jmlnewstyle/23:02
jmlshould it upcall or use super?23:02
jmlclass C(B):23:02
jmlshould it upcall or use super?23:02
jml(Python is the ideal teaching language)23:02
mwhudsonjml: B is oldstyle23:03
mwhudsonjml: none of our exceptions would work if this wasn't true :)23:03
barryit has to be because new style classes can't have only classic class bases23:03
jmloh of course :)23:03
barryso it has to upcall23:04
jmlanyway, I renew my request to relax the review attitude toward upcalling. :)23:04
barryjml: so basically your suggestion is to chillax and let the dev do what they want?23:04
jmlbarry: yes.23:04
jmlbarry: as long as it works.23:04
mwhudson+123:04
barryi'm okay with that23:04
jmlbarry: cool.23:05
jmlthat's all I have to say :)23:05
jml[]23:05
barryjml: great, thanks!23:05
jmlbarry: np.23:05
barryi have nothing else for today.  how 'bout you?23:05
jmlnot I.23:06
mwhudsonbarry: i'm good23:06
mwhudsonbarry: thanks23:06
barryawesome, thanks guys.23:06
barry#endmeeting23:06
MootBotMeeting finished at 18:06.23:06
barrymwhudson: see you next week :)23:06
mwhudsonbarry: yeah!23:06
barrysinzui, bac, barry -> dinner23:07
mwhudsonbarry: i arrive fairly late the night before the conf starts23:07
barrymwhudson: thursday?23:07
mwhudsonbarry: land at 2000 or so23:07
mwhudsonbarry: yeah23:07
mwhudsonbarry: i shall investigate hotel bars until i find someone i recognise :)23:07
barrymwhudson: sounds like a plan!23:07
barrymwhudson: i'll keep an eye out for ya23:07
barrybye guys23:08
mwhudsonbarry: cool23:08
mwhudsonbye23:08

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!