15:02 <popey> #startmeeting Ubuntu Touch Dropping Letters App meeting
15:02 <meetingology> Meeting started Wed Jun 26 15:02:36 2013 UTC.  The chair is popey. Information about MeetBot at http://wiki.ubuntu.com/meetingology.
15:02 <meetingology> 
15:02 <meetingology> Available commands: #accept #accepted #action #agree #agreed #chair #commands #endmeeting #endvote #halp #help #idea #info #link #lurk #meetingname #meetingtopic #nick #progress #rejected #replay #restrictlogs #save #startmeeting #subtopic #topic #unchair #undo #unlurk #vote #voters #votesrequired
15:02 <popey> blueprint: https://blueprints.launchpad.net/ubuntu-phone-commons/+spec/droppingletters-coreapps-development
15:02 <popey> bugs: https://bugs.launchpad.net/dropping-letters
15:02 <popey> reviews: https://code.launchpad.net/dropping-letters/+activereviews
15:03 <popey> burndown: http://status.ubuntu.com/coreapps-13.10/
15:03 <popey> as a starter, what involvement do you want aquarius?
15:04 <aquarius> I don't know. I am inclined to ask that you don't block on me, because it is very unclear how much spare time I'll have :(
15:04 <popey> Understood.
15:04 <aquarius> which seems really inconsiderate, I know, and I apologise.
15:04 <popey> To be honest I'm not sure how much additional development work we're likely to have beyond testing
15:05 <popey> we have a work item to re-enable audio (which was disabled because audio is broken on n7)
15:05 <popey> so I suspect that will be blocked on foundation for a bit
15:05 <aquarius> *nod* I can't help with that anyway, having no device :)
15:05 <aquarius> but that's not DL-specific, right? QtQuick Audio{} just flat doesn't work on the devices yet, as I understand it?
15:05 <popey> its okay mhall119 has an n7 with broken audio and reminds us about this almost daily ☻
15:05 <popey> audio works on the n4, not the n7
15:06 <aquarius> ah, gotcha
15:06 <popey> autopilot is probably going to be the trickiest part?
15:06 <aquarius> I suspect so. I know nuhhhhhhthing about autopilot. :)
15:07 <popey> I mean, we have autopilot skills, but there will likely be some changes to the game qml for introspection type stuff from ap
15:07 <popey> yeah, my knowledge is probably slightly above yours in this instance
15:07 <popey> note: slightly
15:08 <aquarius> :)
15:08 <popey> also a bit hard when a game drops random letters, to do automated testing of that
15:08 <popey> if we did make that work, I'd have autopilot run and get me the best score ever
15:08 <aquarius> :)
15:08 <popey> ah, i18n
15:09 <popey> it's all English isn't it? no internationalisation
15:09 <aquarius> indeed
15:09 <popey> ok, will add an item for translation of the UI
15:09 <popey> then there's the dictionary (ugh)
15:09 <aquarius> i18n is hard 'cos of dictionaries
15:09 <popey> well, there's two parts
15:09 <popey> the UI and the game data
15:09 <aquarius> true
15:10 * kenvandine waves
15:10 <kenvandine> sorry i'm late... when will i learn not to update right before a meeting :)'
15:10 <popey> hah
15:10 <popey> np
15:10 <popey> we were just talking about what work items could be needed
15:11 <popey> basically, autopilot, enabling audio, i18n the UI and the dictionary
15:12 <popey> could we package the word lists up separately at package build time?
15:12 <popey> like have dropping-letters-dict-en and dropping-letters-dict-es built ?
15:13 <kenvandine> possible
15:14 <kenvandine> we might need to make them all conflict so you can only install one language
15:14 <popey> or make a language selector in the UI?
15:14 <kenvandine> true
15:15 <popey> hmm, will have a think about that
15:15 <kenvandine> we could make a binarydict-es.js
15:16 <kenvandine> and depending on a setting, replace the -es
15:16 <kenvandine> i assume that would work
15:16 <kenvandine> in the import
15:16 <kenvandine> aquarius, ?
15:16 <kenvandine> maybe not... in qml that will get imported when started
15:17 <aquarius> hm
15:17 <aquarius> it's large :(
15:20 <aquarius> you can conditionally import
15:22 <aquarius> I asked for qml access to the system dict
15:24 <aquarius> cant't find the bug :(
15:25 <popey> needs more thought, this
15:26 <popey> can you chaps get thinking caps on and ponder how we might do this?
15:26 <aquarius> i18n for DL is a problem because you don't want to be shipping a 1MB dict for each language you support.
15:26 <popey> indeed
15:26 <aquarius> ideally, you wouldn't have to ship a 1MB dict for *any* language, English included.
15:26 <aquarius> Which is why I asked for a QML interface to /usr/share/dict/words
15:26 <aquarius> but that would need to be part of the platform, I think.
15:27 <aquarius> Part of the reason I wrote DL is precisely to work out what average app devs will do
15:27 <aquarius> and "ship a 1MB English dict, and don't do French at all" is exactly what they'll do. :)
15:27 <popey> can you file a new bug if you can't find the old one?
15:28 <aquarius> I can. What should I file it against?
15:28 <popey> ubuntu-ui-toolkit I _think_
15:28 <popey> one mo, lemme see
15:28 <aquarius> htf do I search logs in quassel? grrr.
15:28 <kenvandine> we could read /usr/share/dict/words
15:28 <kenvandine> if we ditch the "pure qml"
15:29 <aquarius> kenvandine, indeed, someone else could. Not me. And it is not at all clear that an app will have *permission* to read system files.
15:29 <aquarius> I mean: why should it have?
15:29 <aquarius> no reason.
15:29 <popey> it doesn't have to be pure qml
15:29 <popey> other core apps aren't
15:29 <aquarius> So someone would need to invent an apparmor permission, and give it to the app, and talk to the click package people...
15:29 <popey> e.g. file manager and music app
15:29 <aquarius> agreed it doesn't have to be pure QML, but uit *should be*. DL is a demonstration of what you can do as an app dev.
15:30 <popey> ok
15:30 <popey> download dictionary on first start?
15:30 <aquarius> if we keep being all "let's write a c++ plugin" for stuff, then our statement that you can write pure qml apps is a lie ;)
15:30 <aquarius> ah. Now: I wondered about dictionary downloads.
15:30 <popey> from kryogenix.org ㋛
15:30 <aquarius> That'd work.
15:30 <popey> that gets around everything
15:30 <aquarius> I mean, it's stupid, since they're on the device (er are they? maybe not, in the phone build)
15:30 <popey> stores in your application folder
15:30 <aquarius> but it'd work.
15:31 <popey> so will be deleted when app is deleted
15:31 <aquarius> but it requires the download daemon
15:31 <popey> cures lots of ills
15:31 <aquarius> which doesn't yet exist
15:31 <aquarius> and someone has to host the dicts
15:31 <popey> it can block on that
15:31 <aquarius> which is not gonna be kryogenix.org ;-)
15:31 <popey> other apps need that too
15:31 <kenvandine> i think that is better than the system dict
15:31 <popey> good, we agree
15:31 <kenvandine> app developers aren't going to know about such things anyway
15:32 <popey> its also a useful thing to demonstrate
15:32 <kenvandine> so they will do stuff just like this :)
15:32 <aquarius> kenvandine, why? that approach means that every game which involves words will ship its own 1MB dictionary.
15:32 <popey> yeah
15:32 <kenvandine> no
15:32 <kenvandine> not "ship"
15:32 <kenvandine> download when run
15:32 <kenvandine> the first time
15:32 <popey> and its not a dictionary, it's "game data"
15:32 <aquarius> OK, everyone who writes an app now has to provide a download service for it :(
15:32 <kenvandine> right
15:32 <aquarius> and if my website dies, the game doesn't work.
15:32 <kenvandine> aquarius, it's how app developers do things now
15:32 <popey> aquarius: see jono / jcastro - they're promoting a juju-enabled "game dev website" thing
15:32 <aquarius> at that point: why should I write a native app at all? I might as well do it in HTML5 and get iOS support, too ;)
15:33 <popey> because qml
15:33 <popey>15:33 <kenvandine> aquarius, talk to jcastro about getting some redundancy and scalability
15:33 <kenvandine> personally i would always choose to leverage what is available in the system
15:33 <aquarius> popey, ha! throwing up a jujuised tiny website saying "my game is cool, here is a screenshot" is different from serving a 1MB dictionary to every one of 400,000 users and paying for all the bandwidth. :)
15:33 <kenvandine> but that isn't how app developers (outside ubuntu) do things
15:34 <popey> and if they're porting their app, chances are they already have this dictionary hosted somewhere
15:34 <aquarius> I really think that providing a Words { function wordExists(string word) } object in the SDK would be loveliness.
15:34 <popey> sorry, "game data"
15:34 <aquarius> and *relatively* easy. It means that the apps will automatically work in your system language, too.
15:34 <popey> patches welcome ㋛
15:35 <kenvandine> aquarius, absolutely agree
15:35 <kenvandine> that would be ideal
15:35 <kenvandine> and potentially useful to many developers
15:36 <aquarius> popey, if I were able to write the SDK *itself* in JavaScript, I'd have written the patch in January when I wrote the first version of DL ;) WOrking out the binary dict format for quick searching and then writing a packer for it took longer than patching the SDK would have. I just can't do C++ :)
15:36 <aquarius> interestingly, iOS doesn't offer access to the system dict. So presumably everyone writing a word game on iOS embds a dictionary.
15:37 <aquarius> or multiple dictionaries, if they support multiple languages.
15:37 <aquarius> http://stackoverflow.com/questions/7419940/access-ios-dictionary-programmatically
15:37 <kenvandine> right... so we can potentially do better :)
15:37 <aquarius> There is another potential solution to the "support words in languages other than English" problem, which is... don't support words in languages other than English.
15:38 <popey> I read an interesting article about this recently, can't find it. About a game dev who looked at the overhead of supporting ALL_THE_LANGUAGES
15:38 <popey> but ended up with a very select bunch
15:38 <aquarius> *nod*
15:38 <popey> and there was diminishing returns for each additional language after that
15:38 <popey> was something like EN, FR, JP, DE and that was it
15:38 <aquarius> the beauty of doing this on Ubuntu is that we already have word lists for loads of languages! Every word app would suddenly be available with *no extra work* in loads of lanauges.
15:39 <aquarius> So you can play Slovak Scrabble on ubuntu phone, and you can't on any other platform.
15:39 <kenvandine> indeed
15:39 <kenvandine> aquarius, so justify it in the bug report that way
15:39 <aquarius> We've got a good record and reputation for supporting multiple languages in the platform; it'd be a shame to throw that away and make every app dev solve it themselves, because most won't.
15:39 <aquarius> wish I could find the darned bug. I'll file another.
15:39 <popey> thanks
15:39 <popey> I think we've beaten this horse
15:41 <popey> anything else to discuss?
15:41 <kenvandine> not from me
15:42 <popey> so we now have a few work items with no names....
15:42 * popey looks at kenvandine and aquarius
15:43 <popey> because we know they won't get looked at without names on them..
15:45 <popey> I'll speak to balloons about AP tests..
15:45 <aquarius> https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1194932 filed
15:45 <mhall119> popey: obviously my daily reminders aren't annoying enough to get N7 audio working, so I'll have to go to twice-daily
15:45 * kenvandine can't commit to them right now
15:45 <aquarius> feel free to dupe it against the previous bug if anyone else finds it ;)
15:45 <popey> ok
15:45 <popey> thanks kenvandine
15:46 <popey> ok, lets wrap up...
15:46 <popey> thanks chaps!
15:46 <popey> #endmeeting