[12:19] <dandrader> tedg, can you tell me a concrete use case of that type-tagger scheme in UAL? In qtmir we happily wrap those classes and provide those tagged types as plain QStrings
[12:24] <tedg> dandrader: Sure, you can do that, but then you lose what they represent.
[12:25] <tedg> dandrader: They idea is that there is some information in the type that is more than "list of bytes" including how that data should be used.
[12:25] <dandrader> tedg, that's accomplished by the getter/property/variable name
[12:26] <tedg> dandrader: Kinda? I mean you can still do "foo.setURL(foo.getName())" and not get an error from the compiler.
[12:27] <tedg> It's not really "accomplished" it is more "can be discovered by"
[12:30] <dandrader> tedg, but then if I wanna use foo.name() to compose a longer text for a window title bar, or even use it to compose a URL, I will have to pollute code with things like ".value()"?
[12:32] <tedg> dandrader: Yes, when you want to lose that information you have to do it explicitly instead of implicitly.
[12:32] <dandrader> tedg, specially when ual users don't adopt ual custom-types in their own code, which I think is the common case
[12:33] <dandrader> tedg, in my experience dealing with mir code that does the same thing, the end result is just code that is made way less readable as it's full of boilerplate to get work out this tagging
[12:34] <dandrader> tedg, so you wanna help the developer but end up punishing him
[12:35] <tedg> dandrader: I think if you ask a Javascript developer they'd say the same things about type systems in general. But you might not agree with them. The question is how much power do you want your type system to have.
[13:02] <greyback> tedg: you're right, there's a balance. Balance not just of how correct your api will be in a type sense, but also in how easy your api is to use. The type system is great to prevent invalid operations, but you've got to give your api user some credit too.
[13:04] <greyback> looking over ual's C++ api, I do think it is a bit type-heavy. Using types to distinguish different strings is a bit much imo
[13:44] <tedg> greyback: Sure, and I can see that. And there's also something to be said for consistent operation as well. Making just a few types not tagged would also be a PITA.
[14:12] <dandrader> greyback, Saviq, if an app has multiple instances and some of those got OOM-killed. Do we keep them around in unity8 so that they can be respawned when the user focus them?
[14:13] <dandrader> greyback, Saviq, does that make sense?
[14:16] <dandrader> I see the use case when you have, say, multiple webrowser windows. But that will only work if that webbrowser app is smart enough to resume the state it was in when it got killed. but even then you might still get them in a different order: ie page A gets resotred on page B placeholder and vice-versa
[15:17] <tedg> mterry: Can you refresh these two to trunk please? https://code.launchpad.net/~mterry/ubuntu-app-launch/persistentid/+merge/318682  https://code.launchpad.net/~mterry/ubuntu-app-launch/default-themes/+merge/318965
[15:18] <tedg> Trying to get a silo setup for after the libertine changes to UAL land.
[15:21] <mterry> tedg: I did persistentid this morning and just marked default-themes as rejected (already landed in larrypage work)
[15:22] <tedg> mterry: Sweet! Sorry, just haven't refreshed.
[15:22] <mterry> tedg: no worries!  Glad to see it might land  :)
[15:23] <tedg> Yeah, so glad all the *major* UAL refactoring has landed. Now we can focus on getting all these little branches cleaned up.
[15:24] <tedg> Hopefully we can get to enough of a lull to land the style formatter changes...