[07:30] <dholbach> good morning
[07:50] <sturmflut-work> dholbach: Good morning
[07:50] <dholbach> hi sturmflut-work
[08:11] <justCarakas> mzanetti: who was the designer again of machines vs machines ?
[08:53] <dholbach> salut davidcalle
[08:59] <davidcalle> dholbach, hey :)
[09:50] <mzanetti> justCarakas: mivoligo
[10:11] <justCarakas> mzanetti: thx :) I found the last visual thing he hid :D
[10:20] <mzanetti> justCarakas: what did you find?
[10:30] <justCarakas> the ubuntu logo :)
[10:31] <justCarakas> mzanetti: it was hidden in plain sight :p
[10:32] <mzanetti> justCarakas: hmm... ok, I guess I don't know about it :D
[10:32] <mzanetti> justCarakas: there's something else too :D
[10:32] <justCarakas> its the third one I found :)
[10:32] <justCarakas> I you are talking bout tux ?
[10:33] <mzanetti> geez, I really need to look closer to those levels :D
[10:33] <justCarakas> mzanetti:  or something else ? :p
[10:33] <mzanetti> yeah
[10:33] <justCarakas> I spoted tux on my nexus 4, and that wasn't easy :p
[10:35] <justCarakas> I had a question about the avil tower btw mzanetti should it be possible for the bad guys sometimes not to be hit when they walk by it ?
[10:35] <mzanetti> which tower?
[10:35] <justCarakas> mzanetti: I especially notice it when I'm on x2, on x1 I pass the round but on x2 they all have just a tiny bit left
[10:35] <justCarakas> the hammer smashing thing
[10:36] <justCarakas> I also noticed that sometimes they wouldn't get hit what caused me to lose a leven :p
[10:36] <justCarakas> level
[10:36] <mzanetti> justCarakas: yeah, if the tower is not upgraded, it's range isn't big enough to catch them when they're in the corners
[10:36] <mzanetti> which is on purpose
[10:36] <justCarakas> hehe, you meany
[11:51] <brendand> mzanetti, you know the volume indicator keeps appearing randomly?
[13:23] <sturmflut-work> dholbach: The only comment I have about ubuntu-devices-help is that I was a bit confused as to why the filename extension for the markup files is ".html" and not ".markup"
[13:23] <sturmflut-work> dholbach: But that's just minor details
[13:26] <dholbach> sturmflut-work, let me add something to the HACKING doc
[13:39] <dholbach> balloons, the beekeeping workshop - absolutely amazing!
[13:39] <ogra_> there is an "r" missing
[14:03] <dholbach> ogra_, no :)
[14:04] <ogra_> :)
[14:04] <dholbach> mhall119, do you know when/how we can update the html bits on the api website? iirc there was a fix which made it into trunk already, but didn't get on to the website yet
[14:05] <rickspencer3> arg, can anyone remind me where the docs are for Ubuntu.Components.Extras?
[14:05] <rickspencer3> I recall a very nice wiki page, but can't find it :/
[14:26] <dpm> I'm not sure where they are, mhall119, do you perhaps know where the Ubuntu.Components.Extras live? They might we outside of d.u.c ^
[14:26] <balloons> dholbach, excellent! I have my own fun this week. I have 111 trees to plant!
[14:26] <dholbach> what?!
[14:26] <dholbach> 111?
[14:26] <dholbach> holy cow - what kind of trees do you have?
[14:26] <dpm> are you trying to re-forest your state?
[14:26] <dholbach> balloons for Florida!
[14:27] <balloons> dpm, dholbach that's just the start, lol.. I have more to order but my wife told me to get these planted first, hehe. These are all native trees, so :-)
[14:28] <dholbach> yeah, starting with the 111 might be a good start already :-P
[14:28] <balloons> I also wanted to order some orchard non-native stuff so they'll be next; apples, pears, figs, that sort of thing.
[14:29] <dholbach> woah, nice :)
[14:29] <dholbach> sounds like you could do with a beehive too :)
[14:29] <balloons> dholbach, indeed I could! Going to have lots of blossoms soon enough
[14:29] <dholbach> beautiful :)
[14:29] <balloons> I'll have to tap your new foud knowledge for that
[14:30] <dholbach> take some pictures of your 111 trees! :)
[14:47] <bzoltan> https://www.adjust.com/assets/downloads/the-undead-app-store.pdf
[14:59] <dpm> balloons, is this MP still needed? https://code.launchpad.net/~canonical-platform-qa/sudoku-app/autopilot-workaround_dialog/+merge/246255
[15:02] <balloons> I don't think elopio is going to get around to finishing that
[15:34] <rickspencer3> nik90, PageWithBottomEdge is not quite working for me, for some reason I seem to recall you wrote this component, right?
[16:18] <ahayzen> Hey, does anyone know how to use pt for font size in a Label, i've tried using font.pointSize: but that doesn't seem to have any affect?
[16:42] <josharenson> ahayzen: is there a reason you need points? I'm not sure its possible to use points, and even if you could, it would be highly discouraged. See the bottom of https://developer.ubuntu.com/api/devel/ubuntu-12.04/qml/ui-toolkit/resolution-independence.html
[16:42] <ahayzen> josharenson, we have a pt size from design ... its too large to use fontSize: "x-large" ... maybe i can ask them for a GU size instead
[16:43]  * ahayzen would prefer GU as well :)
[16:44] <josharenson> ahayzen: Thanks a good reason I suppose, even though its resolution dependent... I know there exist approximate conversions between font point and pixels....
[16:45] <ahayzen> josharenson, yeah but you are right we should be using GU instead ... i'll see if i can get design to give me the size in GU or figure it out myself ;)
[16:45] <josharenson> ahayzen: :-p good luck
[16:56] <kalikiana> timp: are you still around? I have an API addition to i18n here, to allow for tagging of translations that will be localized by a library later https://code.launchpad.net/~ubuntu-sdk-team/ubuntu-ui-toolkit/i18nctag/+merge/248260 and I also added it to https://docs.google.com/a/canonical.com/document/d/1qDcfbu9aAj7uU9qzjXCOJn8zGexBnXwZCgO8pLDsO5M/edit#
[16:58] <timp> kalikiana: yes I'm here
[16:58] <timp> kalikiana: uhhm.. yeah I'll need to figure out the use cases for noop
[17:01] <timp> kalikiana: since it is not immediately clear to me from the docs you added to the code, maybe the docs can be extended a bit?
[17:03] <kalikiana> timp: so, the use case for Pete for instance is this: UserMetrics look somewhat like this: Metric { format: "Read %1 book"; emptyFormat: "No books today"; domain: "foobar" }
[17:03] <kalikiana> the problem with the above is that nothing will pick up the strings as translatable
[17:03] <kalikiana> so you would need to add something like i18n.tag("Read %1 book") to make things work
[17:03] <kalikiana> even though that won't be translated right there
[17:08] <kalikiana> timp: do you think it would make sense to add a proper QML example such as the above to the docs in the code?
[17:14] <timp> kalikiana: why don't you use dtr() in that case?
[17:15] <timp> hmm I'm not sure how to use singular/plural translations for 0/1/more
[17:16] <kalikiana> timp: forget plural here, long story short, Metric can't use plurals because gettext doesn't support floating point numbers
[17:16] <kalikiana> the %1 is just a number, and format is just gettext
[17:16] <kalikiana> timp: why not dtr - because the translation must be done by UserMetrics, using the domain, NOT in the app itself
[17:17] <timp> kalikiana: again, why not use dtr()?
[17:18] <timp> my irc client is a bit weird. I sent a question, then you answered it, then I see my question appearing..
[17:18] <timp> kalikiana: isn't that the whole reason for having dtr? So that translations can be part of libraries, not of the app itself?
[17:18] <kalikiana> timp: UserMetrics uses dtr here
[17:18] <kalikiana> in its implementation
[17:19] <kalikiana> so it will do i18n.tr('foobar','Read %1 book'.arg(count))
[17:19] <kalikiana> however
[17:19] <kalikiana> the app itself must pass the original string
[17:20] <timp> kalikiana: yes, I think a proper qml example in the docs may help:)
[17:23] <timp> kalikiana: so UserMetric has some logic inside to decide between 0/singular/plural/.... depending on the string it gets, that's why you don't use dtr() directly
[17:34] <kalikiana> timp: no it doesn't. it simply pass in a number as I showed above :-)
[17:34] <kalikiana> there's no support for floating point numbers in gettext
[17:34] <kalikiana> that's an issue beyond this particular API, though
[17:35] <kalikiana> timp: more obvious example to reflect this "Ran %c miles" could be rendered as "Ran 0.5 miles" but gettext isn't aware of decimals
[17:36] <kalikiana> sorry "Ran %f miles"
[17:38] <kalikiana> timp: we might generally want a plural version of i18n.tag such as i18n.tag(singular, plural, count), I didn't add it here because there's no known use case for now
[17:38] <kalikiana> and if no app uses it… it's hard to be sure it works
[17:39] <kalikiana> maybe I should add it for completeness?
[17:40] <timp> kalikiana: yeah probably. Since tr() can accept one or three (singular, plural, n) parameters, maybe tag should also
[17:41] <kalikiana> true
[17:41] <timp> kalikiana: still the use of tag() is not clear to me. I understand the problem that gettext doesn't support floats, but not how tag() solves that issue
[17:41] <timp> kalikiana: probably a full code example helps with making it clear to me
[17:41] <ahayzen> kalikiana, we had to change "<b>%1</b> " + i18n.tr("songs played today") to i18n.noop("Songs played today: <b>%1</b>") because we couldn't have the singluar case ... would your above solution allow us to have a singular case and plural case working with inforgraphics?
[17:42] <kalikiana> timp, ahayzen: i18n.tag does not solve the issue of plural here, it's fundamentally impossible to use floating point plurals with gettext because they don't exist in the .po file structure
[17:43] <kalikiana> I pointed it out to clarify the use case of the example code
[17:44] <kalikiana> timp: ahayzen: what i18n.tag *does* is let you make it known that strings must be localized even if you will not do it yourself
[17:44] <kalikiana> the one displaying the strings is not the app
[17:44] <kalikiana> they show up in the lockscreen
[17:44] <ahayzen> kalikiana, ah ok ... so we are just using the infographic count like an int (even though it is actually a float) as all we do is increment it ... sorry i understand now :)
[17:46] <kalikiana> ahayzen: yes. it would be good enough for the case of music. but it'll cause funny results in cases like "Walked 0.5km" or "Ate 2.5kg chocolates"
[17:46] <ahayzen> kalikiana, yeah i see the issue now
[17:47] <kalikiana> ahayzen: it does vex me that there's no viable work-around :-D enhancing gettext isn't easily done, though
[17:49] <timp> ahayzen: what you did is exactly what the gettext docs recommend, at the bottom of https://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html
[17:51] <timp> ahayzen: you could of course do something like: str = n > 0 ? dtr("1 song played", "%n songs played", n) : tr("No songs played")
[17:51] <ahayzen> heh...there was still a minor 'discussion' whether that was grammatically right and whether it 'read' right ;)
[17:52] <timp> ahayzen: maybe dpm knows how your translation in this case should be done
[17:52] <ahayzen> timp, surely that would not work ... isn't that what kalikiana was saying? they are floats...and we need it to be done by usermetrics
[17:53] <timp> ahayzen: ah.. I thought your variable was a float, but you will display only its integer part?
[17:53] <timp> ahayzen: true, if you want to show "songs played: 2.5" then my solution doesn't work
[17:54] <ahayzen> timp, idk its the Metric thing? this is the mp with the change https://code.launchpad.net/~unity-team/music-app/infographics-translations/+merge/248251
[17:54] <ahayzen> timp, all we do is go metrics.increment() to increase it....and then do %1 in the string
[17:54] <davmor2> ahayzen: hey dude https://bugs.launchpad.net/music-app/+bug/1416373 the click app in there is much easier to tap the continue button however it looks like if you tap it four times and go back a page you can't tap on it again. :)  off by one error maybe :)
[17:55] <timp> this is the first time I see the metrics
[17:55] <timp> ahayzen, kalikiana I have to leave now, I will have a look at it later
[17:56] <ahayzen> davmor2, we were confused what you meant, and i couldn't reproduce with the landed code.... the continue button should disappear when you get to the 3rd slide?
[17:56] <davmor2> ahayzen: so on the click package it doesn't disappear just sits there  :(
[17:57] <ahayzen> davmor2, i'm half convinced that victor added that change after the click he built ;)
[17:57] <davmor2> ahayzen: might be
[17:58] <davmor2> ahayzen: other than that it looks good to me I can now tap roughly in the area of the arrow and it continues nicely
[17:59] <kalikiana> timp: I'll expand the docs to show an example
[17:59] <davmor2> ahayzen: also swiping works fine but isn't as obvious when there is a button, those shiny shiny button demand pressing :)
[18:00] <ahayzen> davmor2, cool :) ... also would you have any time in the short term todo another round of music-app QA as we have a sortof half critical bug we need to land into the store at some point soon :) ..and possibly this infographic fix
[18:02] <davmor2> ahayzen: well I guess it can't land till popey is back anyway :)   but that shouldn't be an issue but I'm not sure how it will land now as we are only targetting monthly ota's aiui, so I guess it will land in the store be added to the monthly ota when that happens :)
[18:03] <ahayzen> davmor2, yeah i guess we'll target ww07?
[20:11] <rickspencer3> balloons, is there current AutoPilot documentation available on d.u.c now?
[20:14] <balloons> rickspencer3, not quite yet. mhall119 and I are working on getting it integrated to the site, in the same way the other API docs are, but it's requiring some work. mhall119 could give more details. http://developer.ubuntu.com/api/devel/ubuntu-14.10/python/autopilot/ has the slightly older documentation
[20:14] <rickspencer3> thanks balloons
[20:14] <balloons> I threw up http://people.canonical.com/~nskaggs/autopilot/, which is the latest and greatest
[20:17] <rickspencer3> balloons, fyi, 404 ;)
[20:18] <balloons> 404? with my people link?
[20:18] <balloons> perhaps your browser needs http://people.canonical.com/~nskaggs/autopilot/index.html
[20:19] <rickspencer3> balloons, any idea how to AP to do a bottom edge swipe?
[20:21] <balloons> rickspencer3, yes. bottom edge swipe was a contested helper. The issue is the bottom edge can be done different ways. for that reason I believe it's been left as something done by app devs in each app, as a specific implementation. Anyways, to answer your question, use the drag method on pointer
[20:24] <balloons> so for example, here's how the clock does it. Albeit, it uses an object on the bottom you swipe: http://paste.ubuntu.com/10021543/
[20:24] <balloons> more or less self.pointing_device.drag(start_x, start_y, stop_x, stop_y, rate=2) is what you need to know
[20:25] <rickspencer3> ok
[20:25] <rickspencer3> I thought there might be a convenience function for it
[20:26] <balloons> right, since swiping the bottom edge is implemented many ways, it's a bit hard to have a common method
[20:33] <mhall119> rickspencer3: the tl;dr on getting Autopilot docs into the API website is that they require changes to data models and CSS, so it's going to take more work to get that first import going
[20:56] <rickspencer3> balloons, is there a "sleep" function in AP?
[20:57] <brendand> rickspencer3, why not use the system sleep?
[20:57] <rickspencer3> brendand, I dunno, I thought there might be something built in :)
[20:57] <brendand> time.sleep(<time in milliseconds>)
[20:59] <brendand> rickspencer3, any reason you need to sleep the test for? sleeping is usually best avoided in favour of using Eventually
[20:59] <rickspencer3> brendand, well, AP goes so fast
[20:59] <rickspencer3> that it can sometimes get certain signals in my app going in the wrong direction
[21:00] <rickspencer3> also, there is this bouncing effect when a bottom edge page gets pushed onto the stack
[21:00] <rickspencer3> and that sometimes makes the mouse click the wrong thing
[21:00] <brendand> rickspencer3, right - just as long as you're aware Eventually exists and what it does, there are times when sleep can be useful
[21:01] <rickspencer3> thanks brendand
[21:02] <balloons> rickspencer3, ideally you would have properties to check, like wait for animation to complete
[21:02] <balloons> http://people.canonical.com/~nskaggs/autopilot/guides/good_tests.html#prefer-wait-for-and-eventually-to-sleep
[21:02] <rickspencer3> meh
[21:02] <rickspencer3> sounds complicated