Skip to content
This repository has been archived by the owner on Jun 10, 2024. It is now read-only.

Q&A Transcripts

hanselong edited this page May 20, 2016 · 1 revision

April 21, 2016 - Build follow-up Live Q&A

[John] Just send a quick text message when you want to speak up and we can take your questions live. That being said, does anybody have a question after watching the Build conference about any of the features - this is an opportunity for folks who couldn't be at Build to basically just have a live Q&A based on that talk.

[Tamas] Yeah, if you don't have anything else to present - just Q&A, I have a few. My first question is: are you guys going to create some kind of guidelines based on what are the best practices on using these APIs? Because right now I'm seeing many many different patterns used by many different people and I'm wondering in some cases because that seems to invite more ways to solve the same problem - what is the way that you think we should do things? We might think that some things should be done a certain way, but there's a better way to do it.

[John] That's a great question - I can jump on that one, kind of like an overall pattern. Anyone else can also feel free to jump in. Just so you can put a face to the voice, I'm also one of the people operating the Twitter feed quite a bit so you can contact me that way.

[John] In terms of - it's a new space and there certainly are multiple ways to do things. In terms of established patterns and practices around - take for example z-order scrolling or blur or one of the other scenarios in our Sample gallery, you may look at the code there and go - hey is there a recommended way of doing that? We haven't moved up to a level right now where we have a recommended pattern usage for these things yet.

[John] We're certainly working with the XAML team very very closely around that - and the idea of putting in some established practices is something we have on our radar long-term, which we might get out in a how-to documentation. As of right now, though, we're looking at you guys using the APIs to help us establish that. Does that make sense?

[Tamas] Yeah - yeah, certainly - thanks. Yeah. Actually, I have a few more, but if anyone else would like to jump in, then please let me know.

[John] Is this Tamas?

[Tamas] Hi - yes, this is Tomas - thanks.

[Pavneet] If I can add a quick follow-up question to Tomas' question, this is Pavneet - and the evolution of these best practices, will they be augmented or supported by readability studies?

[Pavneet] What I wanted to know is - often the evolution to these patterns happens in an ad-hoc way but similar to, I feel, what are some of the remarkable things with the Windows Phone interface in 8.1, will they be supported with readability studies or - I'd like it formalized. I understand that this is early stages and these effects are evolving based on user input or developer input, but I would definitely like to see best practices evolving with some backup - developers make lousy users in general (laughs).

[John] That's great insight - yes, getting feedback from real developers as well as end users as well. I know there's a whole group we're just looping into for the controls and practices of XAML that's really passionate about outlining best practices and one of the reasons why we're tasking our own program management group to do a lot of coding and basically try to establish those patterns, as we said earlier, we're still early in, but it's definitely a goal of ours.

[John] Can you give me an example in Phone 8.1 what a best practice that got sort of put out there that you really liked?

[Pavneet] Well, I'm perhaps a bit unusual - I've been at this game since the mid-70s from dialing-in using 300 bps thermal paper into PDPs. What I loved was the emphasis on text and typography and I have complained vociferously with the transition to WP10 mobile that we've gone back to this very crowded and busy iconography and the emphasis on type and pivot in terms of UI facilitated multiple languages, it was - I think we've gone away from 2007. Things like Continuum - we're more on the smallest mobile devices - which means there's very complex interactions and I'm thrilled - I'm getting back into this from a UI perspective so I'm thrilled with all the transitions and the effects that were in the Build video, but I think that retaining that emphasis on type should be paramount. I know I've been discussing some of these stuff with Kevin Larsen, one of your typography - type gurus, and I don't want the visuals to get away from readability. Ultimately, yeah, the eye candy is great, I'm sure it appeals at first glance or first touch, but if these are enterprise rules we're working towards then we have to ensure there's some backing on that interface.

[Paul] This is Paul Gildea - yeah, from a design perspectice, from a design aesthetic, that's really good feedback. I know with - Spiderman reference - with great power comes great responsibility and I think right now in a lot of the examples that we're doing in terms of the design with kind of demonstrating the expressivity of our API surface area and we are working with design to refine and make sure we do good by our end users so we actually have good design patterns and good type.

[Paul] Right now, a lot of the example you see, I would say - not gratuitous - but it's pretty out there - animations, we're doing a lot of this - and yes, we take that feedback really seriously.

[Pavneet] If I can just add one quick point and then I'll hand it off: on a positive note, the example with the astronomy articles, those transitions were brilliant - they clarified the interaction with a whole lot of dense information. That was a wonderful way of explaining and highlighting those transitional effects: the blur, the parallax within the window - great stuff. Lovely interaction that made sense from a UI perspective or a readibility perspective.

[Paul] Yeah, totally agree - a lot of that was - when we work with our design team - in the past the design wants more of these kinds of capabilities and platform hasn't been able to support that - now we're going through this next iteration where we have some of these features and we have to go back to design and work with them so we can have the right pattern and have the right motion and interaction, communication, for end users.

[Paul] You'll see some of these real time - but you're right, as we roll that out, we're going to be thinking about that in new ways and how to communicate that to the developer community so that as they build applications, they can apply that.

[Paul] One of the more interesting pieces of documentation that we're starting to culminate this is designing UI, it's a new developer.microsoft.com so you can start to see some of the practices for some of the UI patterns that we can look at and formalize in real time.

[John] That is the group that I mentioned earlier that we are working closely with from yet another Paul inside the company who is looking at that and that's pretty important.

[John] I want to jump back to something you said earlier because I'm pretty passionate about it - one of the things I think these APIs are important for is actually doing pretty much what you said which is creating better context for the user instead of just eye candy. I think you nailed it with the astronomy example - if you think about where the use of the beautiful UI really excels, it's providing the user with a better path of tracking the information. When it gets in the way of tracking the information, that's when we stray off the path, so I think that's a really good point - something that our group is really passionate about and we spun the UI - we totally spun the whole effort in the first place because blur isn't there to be fancy - blur is there to remove the background so you can focus on the foreground element. Parallax isn't there to be just eye candy, you're supposed to be able to follow an element, say a user profile icon from a list to another page - it's there to help the user, not get in their way. That's really great feedback.

[Pavneet] Just to pull up on that thing - this is one of the reasons why I love Windows Phone 7 originally because it had all these assets, continuous animation that - basically open up an email and you could really do with title and states on the screen, but it flew out of the screen and you can follow the motion that connects the two pages - I know we can do, the thing that we can do, I have to say - Android had leaps on us in that area, but not anymore in the last few years - that the thing I fell in love with Windows Phone originally that we are back in the lead in this area as well.

[John] Well, thank you. That warms the heart of some of the old phone veterans in the room - I'm sure that some of us were there in the early days - some of those aesthetics are what we are trying to bring back, to a large extent, so that's a great insight.

[John] I want to get back on this best practices early on. Do you guys feel like you're getting what you need in terms of understanding what it takes to implement the API? When you see something that we've done, do you feel that the samples and materials that's out there supports you in trying to go out and add this to your app? And if not, what would you like to see?

[Pavneet] I can't really answer to that because I'm just getting into it, but I'm looking forward to it.

[John] Well, if you think of anything, right now we're using GitHub issues as our main currency for communication just because we're there all the time and that's where the code lives and it's just easier to have that kind of communication there. So yeah, as you think about stuff, I basically look at that once a day in the morning to try to identify bugs and feedback and questions and - you know, our API surface area and developer community around is small enough to manage that we don't need a big scale thing. I think it seems to be working well for most folks. We've seen some traction. I know Tamas is on there a lot which is great. So yeah.

[John] Justin is on the call and I want to give him a shout out because he's been super active both on the Twitter feed and on GitHub. I realize that it's like, 4AM for you, so thank you for dialing in.

[Justin] (laughs) thank you - it's actually just 8pm so not that bad.

[John] Oh ok - I think we moved it differently from the original time so that's good.

[Hansel] So Pavneet, I wanted to ask you really quickly - are you familiar with the Composition APIs and what we're trying to do?

[Pavneet] No, I'm getting into this pretty much new - I'm one of these recent converts to Windows if I can put it that way - not so long ago, but I'm a UNIX guy - for many decades although I did Windows programming also several decades ago, but I've been very excited over the last couple of years. My basement museum is full of orphans including the next step Motorola 6830 so I'm just telling you - for me to get excited about Microsoft Windows and owning a Windows Phone is a - I think it's a credit to the direction and accessibility that you guys have made for developers. And no, unfortunately the answer is no, but I will be - shortly. I'm committed to it.

[Hansel] Great to hear that.

[John] Any question about any of the features or implementations that people have tried to - you've got people who've worked very long and hard hours to write these features, so you got them right here to answer any questions you have for trying any of the new effects or animations.

[Hansel] So perhaps another broader question would be - assuming that you've watched the video of the live talk at Build, what specifically jumped out at you that you're interested in or would like to explore a little bit more? I saw that based on Justin's reply, Justin mentioned that there's a nice blooming ripple effect demonstration in the video but that he would also like to be able to do more complex shape or path animation - what kind of complex shape or path animation would you like to see or would you like to see supported?

[Justin] Um, can you guys hear me? Cool, um - I was actually talking about for example I want to animate a rectangle into a circle or vice versa or something even more complex where I have an arrow button and I want to smoothly transition all the paths, all the points into the hamburger menu - you know, the three lines hamburger icon - stuff like that.

[John] Some of the design language stuff we've seen where people have taken the hamburger and turned it into an icon.

[Justin] Yeah, if we click on the hamburger button, the three lines, change position into a back arrow icon. Yep. 'Cuz at the moment you can still use the XAML points or C# - you can use point and path animations to do this kind of thing but it's actually quite complex, it's a lot of work, a lot of code to write. I'm just wondering if there's any Composition powers, path animation support coming. Actually, James Clarke mentioned this in one of his talks in last year's build. He said this might be a future support, basically.

[John] Well, I know it's something we're keenly interested in.

[Justin] Yeap.

[John] if people wanna' talk to that - I know we don't have any release plans around it yet but I know it's something that people have been looking at - we've got a lot of nods in the room.

[Justin] Yep (laughs) cool - yep.

[John] It's actively being investigated it's something we think a lot about.

[Tamas] Okay, um, for me, one other thing that's really interesting for me is the interaction tracker and to be honest, I haven't really had time to play with it as much as I wanted to. One thing that I'm very envious of iOS is the UI dynamics - you can add physics to your UI because sometimes that gives you very very nice effects very cheaply and one of the things that I kind of want to do is to create a library that makes it easier for you, like moving into this behaviors area - like you have the free move behavior from WPF or - I just want to add behavior to an object and make it behave - inertia, rubber physics, if you want to - give a really easy way for people to use these APIs and do dynamic expressions easily.

[Angelina] Do you have a question?

[Anthony] Hi this is Anthony - I did a couple of talks about interaction tracker, expressions. You can do quite a few of those things with interaction tracker today like you were saying. I think it would actually be cool to have a library of these behaviors that you can attach to visuals. And we considered ways to make that even easier, maybe even a lighter weight version to do certain pointed types of behaviors in the future but we're waiting to see if it's going to be necessary because you can do so much with interaction tracker as it stands. And you can define your own, I guess, world, your own physics behaviors, defining those inertia modifiers with the interaction tracker. So you can imagine - you've seen the demos, you've seen how we have gravitational pull bounds or the ricochet effects or standard spring or however way you want to do it, it's just expressions that you can make as simple or complex as you want it to be.

[Angelina] But it would be cool if you make some FUSE kind of apps - if you're trying to make it easier to use, that's definitely a worthwhile thing to go do 'cuz they are pretty tricky - you have to understand a lot about not only our APIs, but how physics works.

[Tamas] I right now got something that - a property that makes something dynamic, a property that can give your source some other element and modifier - if you want to do parallax, you can just have a resource somewhere that takes an input and then have it and give it to the next thing and then you can change these if you want to - this is my current idea for the expression thing. I think it would be quite simple to use, and easily understandable problem. But I will see. I will definitely post it up on GitHub or somewhere if I'm progressing along.

[Anthony] One of the things that you'll notice as you start to use interaction tracker to provide this dynamic behavior in your element is that every interaction tracker is basically its own little plane or universe so they don't collide or interact with other interaction trackers and that was done very intentionally but we know that ultimately there are gonna' be cases where you want one thing to influence another thing, like maybe a propulsion and you can technically do those things today and we've already begin to investigate some very specific scenarios to make these a little bit easier so we'd be very interested to hear how you're prototyping or how your library's progressing and if you're coming across a need for these things or how difficult these things to implement.

[Tamas] Alright - thanks. Um... I have a few more questions but if anyone wants, please stop me. Anyone?

[Pavneet] I have a quick question, but I'll also hold off if someone wants to come in.

[Hansel] I wanted to actually ask Igor really quickly - Igor, are you there?

[Hansel] I wanted to ask because Igor had mentioned he wanted to use Composition APIs such as the blur effects, smoother lists, element repositioning, and other possibilities, and I just wanted to be sure that if there's any questions about blur, smoothing out list elements, repositioning, that those are addressed.

[Igor] Yes - can you hear me?

[Hansel] Yes

[Igor] I wanted to say that I'm just basically starting with it and I was just hoping to just listen in and see what kind of things people are working on and what kind of questions and problems they might have - basically regarding the blur stuff, I was just hoping to use it in one of the apps I'm working on. I have one question regarding it which might sound a bit silly because I wasn't sure if the blur stuff is available now or if it's only available with the anniversary SDK or later on. All these are beginner questions but I wanted to ask it.

[Angelina?] First available in the anniversary edition.

[Igor] Right. OK.

[Pavneet] Is there a roadmap? That's one of my earlier questions of what features are expected to be stable - when?

[John] That's a great question - in terms of what was announced at Build and when can you start playing with them in insider rings? Would that help if we walk through that a little bit?

[Pavneet] yes, please. I mean if we're committed - it's a two-part question: if we're committing to an application and we want to incorporate these features, at what point do we say, "OK, we can put it into our master release" and the second part is, are there any guidance on performance penalties on using these different features? Are these features assuming current hardware or next year's hardware - that kind of thing.

[John] That's a great question - I'll tease it into two questions and defer the performance question to some other experts in the room while I address the when you can see and what's in there. There's a second build talk we can send afterwards which is the first one given at Build where James Clarke and Tim - that outlines all the features that we released at Build. Highly recommend that. It will take you through all the new effects. We also will be giving you a fuller look at that very soon in our GitHub Sample Gallery. If you haven't played with our Sample Gallery, it's an awesome awesome thing. Paul worked on it with our dev manager Rob and it shows you all the features and the actual scenarios and it's smart, it knows to configure itself for the build you're on.

[Paul] Well, it updates - it depends on the SDK you have installed - you can retarget - so if you're running on 10586 which is the TH2 SDK or the - the November release, it will only show you the samples that are available for that SDK and then if you're on the 14295 - the anniversary SDK then you'll see some new samples light up. There's definitely some things that we can do to better showcase what's available but basically the gap between what you've got in 10586 vs. what's in 14295 - as John was saying, we're trying to figure out a good spot to put that information because as we start moving to this Windows model that these updates come out, certain features are only available on certain builds - so there's some techniques, some practices that developers do to check - hey are these features available at runtime? If it is, use this feature, if not, drop back or fall back into some other feature. So we're working on that list and we're working on some potential examples of fallback. right now the only fallback we're doing, we're doing it at compile time - we don't have it at runtime yet.

[John] I do wanna' make one thing really clear though which is that - there's two worlds that developers live in - there's this temporary sort of limbo state where you're getting insider builds as you march towards the actual release when the anniversary edition really comes out - I want to be really clear - when the anniversary edition really comes out, at that point, you're gonna' have a whole new set of features that were announced at Build that will work - you won't have to be conditional at that point - everything you point against a formal anniversary edition release just works, you'll be able to go into the store - what will happen at that point is, is that things that we're thinking about for the next release, as they gets build will start becoming available in insider rings but there will be a sort of point in time when we will drop a line and say "yeah, this is it, this is the anniversary release, all these APIs are good, you can safely build apps on them." The bulid up to that, where we're actually adding in finished APIs in insider rings gives you an advanced look and an ability to get your apps ready but there will be a point in time where you won't have to worry about the conditional nature, you'll be able to just build the apps, put them up in the store, and customers will have them. We're also gonna' try to be really good at letting you know when we are as an API platform will be platform complete - we've got all our stuff in there - and it will be based on the insider's ring as we head up to that release. Does that help? Knowing how all that works?

[Pavneet] Very much so.

[Paul] Well, we're gonna' try and - at least from an insider's perspective because we're trying to release samples that are trying to target SDKs that come out - in a faster frequency than we've seen before.

[John] yeah, one of those complex things we did was give you guys a set of bits at Build for stuff that wasn't really fully complete yet while we were still completing the plane in flight and putting bits and pieces on the wings in the air while we're still in flight that's going to hit you in another insider ring. So this was - I loved it - it's one of those agility things that Microsoft was never able to do that fast - that really speaks to our ability to get stuff out faster. But it does create a lot of uncertainty when you release fast insider rings, we're going to help you out with the twitter feed and so on.

[Paul] yeah, that's kind of the tradeoff, as an insider you get to see stuff soon, but you get to see a whole bunch of stuff, so... Do we want to move on to the perf?

[John] Yeah, the perf. Dave loves perf.

[Dave] Sure, I can talk a little bit about it - the question was are we targeting current or future hardware - for the features we're enabling, we're definitely targeting current hardware. It would be useful for us to have a better description of the amount we scale and the different performance tiers for the various effects - for the most part we're trying very hard to make each of the effects be both play per play and for the most part consistent in terms of performance so you can change the types of effects that you use without changing the performance characteristics. The one outlier there is blur which is more expensive than the other effects. In terms of the things that we optimize for on the effects system, we are going back to the question of design and best practices. We really are optimizing the effects around what we expect the kinds of applications people are trying to use. So we're going to put out a best practices that say "Hey, you should use blur on these types of controls" that's the thing that we're going to target to optimize to make sure that guidance is going to work across all our devices.

[Hansel] Does that answer your question about perf?

[Pavneet] Yes, thank you.

[Hansel] Ok great.

[Anthony?] We can talk a little bit about perf on animations side, too. So with animations, you can think about perf in two parts: one is the creation of your animation or expressions (so we'll lump them all together) and two is the execution of those animations or expressions. One of the decisions we made very early on when it comes to animations, to some degree, even with the effects, they're templates: you create it once and most animations are meant to be reused across multiple visuals and even if you need to tweak things here and there, it's still a template - as long as you're re-using that same animation or expression over and over again, you get a nice benefit from that. So you should look for ways to reuse your expressions and animation and just tweak the variable as you go along as needed. So that's one thing to keep in mind. The other thing on the execution of those animations, especially expressions, keyframe expressions that have animation in them, we're always looking for ways around making those faster. They run really well right now even on lower end hardware and phones but we're always looking for ways to increase those numbers. I don't think we've taken any measurements as of recently with all the changes we've made but about this time a year ago, we could run quite a few complex expressions on a lower end phone - we're talking in the order of hundreds without glitching - without dropping below 60 frames per second - that's our goal. Our goal is to be very lightweight and fast. We'll make it so that you don't have to think much about it so that you'll always pay attention to it - the whole goal is to get you out of that box.

[Pavneet] I'm a little bit confused about this little guidance on animation - if animation is compute intensive, why would re-use of an animation be more efficient? Wouldn't that point to a caching issue? Could you elaborate please?

[Anothony?] Sure, yeah, sorry - what I meant was the re-use of the description of animation.

[Pavneet] Ah ok.

[Anthony?] And all the input that you would use to refer to what's going to go into computing an animation - because there are things that we have to do when an animation is created to validate that - is the expression balanced? Are all the references resolved? Are the types - can we go and find the things you're referring to? There's work up front we have to do for that expression to make sure that's valid and so if you're gonna' re-create it each time and just kinda' use the same thing or just tweak little parts of it, do yourself and your app a favor to just keep that guy around for a long time and just re-use it because then it can skip a lot of those checks.

[Pavneet] Ok. Thanks for that clarification.

[Angelina ?] If you watch the expression build talk, we also talk a little bit about perf optimizations and the other one that we talk about in terms of when they're actually executing is leveraging property sets. If you're gonna' make the same operation happen continuously. So that's another thing to keep in mind if you have a lot of computation and references that you want to reuse across a bunch of different expressions.

[Pavneet] Can you add the list of those build talks to the follow-up emails that you're going to send out?

[Hansel] Yeah, I'm going to follow-up after this meeting and I'll add those to the follow-up email.

[Pavneet] Thank you.

[Hansel] You're welcome.

[Anthony] yeah, the targeting common property sets for these more complex expressions is a really good technique. It's a way to make it so that you do the computation once per frame and anything that wants to refer to it can just refer to the output value of it instead of performing that complex expression or statement multiple times over, so it's a very good technique to use.

[John] Throw one other thing and then Chris here in the room raised his hand - he has some questions he wants to ask back to the audience. We have a white board here, we've been writing questions as well and we want to ask you guys back. Just a really quick thing on perf - at Build, one of the things we did show that was kind of cool is we got at least one of the apps, we got one of them running on an IoT device so we actually had interactions tree that you see in one of the talks actually running on a dragonboard which had just enough GPU gas to let the thing actually run. It's pretty impressive, we actually hid it behind a SurfaceBook and we had wires coming out to a monitor - people would walk by and they would see it running and we'd actually pull up the Dragon Board because they'd thought it's actually running off the SurfaceBook so we take perf pretty seriously. Chris, one of our dev leads on 3D effects have some questions for you guys on shapes and some of your thinking around that.

[Chris] yeah, so this is Chris - someone was talking about trying to morph between different shapes like between a rectangle and a circle and an arrow to a hamburger. Are you still there on the call?

[cut] 37:46

[end cut] 37:50

[Justin] yes, I'm still here.

[Chris] I was curious - it sounds like you had looked into this a fair amount - were there any particular API that you had started using to try and define your shapes?

[Justin] Not in the moment - I was able to use XAML path animations plus C# code to do this kind of thing before, but my understanding is honestly there's no way you can do such a thing in the new Composition world, but then James mentioned something we're thinking about supporting path animation in the future so I thought you guys must have a plan for that - so I was kind of waiting for that.

[Chris] Ok so in the scenario that you're thinking about where you had shapes morphing, are you really - do you just want an easy way to define two different shapes and you just want to have a default morphing from one to another? I ask because the problem is fairly complex - I'm just interested if you just kind of want it to work and the animation itself looks good or if you're anticipating having a lot of fine grain control to really define precisely how it goes from one shape to another?

[Justin] Yeah, just like an icon transitioning - like on the web, SVG animations - I'm not talking about really really complex, but it is really complex, right, when we think about it.

[Chris] Sure, but it sounds like you just want an easy way to define two shapes and you just want it to go from one to the other and have it look good?

[Justin] Yes. Yes.

[Tamas? ] If I may jump in, I can even envision the use for example re-implementing the Android material effects, they often use this circular button that floats, you press it and it morphs into a whole screen rectangle that covers everything - right now that would be pretty hard to do. It would be possible to do with the shape mask and animating that but it would be easier if I can just say "Hey this is a circle and I want you to make it into a rectangle and moving happens."

[Chris] Gotcha. Ok. Thank you.

[Paul] Yeah. It's good feedback.

[Justin] Yep.

[Tamas] Ok I still got questions if no one's asking. (Laughs). This one is a bit interesting - I don't know if this is possible but a friend of mine has managed to get his hands on a HoloLens and as I replied to Hansel in my email, I'm just moving to a new job that I will be working with AR and VR and I'm asking if whether - is there future-ready Composition APIs in 3D would be applicable to use with HoloLens in 3D so if I animate an object in 3D with Composition, if we are using HoloLens that we would see that element in 3D or is it always it will be in 2D and will be presented as a plane - as a single plane?

[John] We think a lot about 3D but there's not a lot we can say (laughs).

[Tamas] Ok.

[???] And everything you have today, everything will get rasterized from 2D from the application.

[???] Didn't we sign NDAs? (laugh)

[???] I have an NDA I don't know about anyone else but I do.

[John] Well there are probably things they aren't letting us know (laughs).

[Hansel] Alright, well, with slightly less than 8 minutes left for the call, although we can go longer if you have any further questions.

[Tamas] I do.

[Hansel] Ok. Great. what's your question?

[Tamas] My next one - this is something you didn't talk too much about at Build and in the samples - is there anything new in the area of XAML interop? Are there new scenarios supported that haven't been supported before? Like for example one thing I ran into in my apps if I move something with Composition or transform it in 3D, the XAML heat testing is now broken - are there new developments in this area or do you have something on your - next two months milestone or something?

[John] So without speaking of timeframes - XAML interoperability is a HUGE area of focus for us. There are things that we are planning on doing we don't have timeframes around because we saw this very early on. Probably the best way to think about this - we have a roadmap getting to a point where you will be able to much more naturally work with the components of a UI element in conjunction with visuals - whether or not visuals themselves in the Composition layer maps directly to chunks of UI elements are all things that are on the table we're looking at. We know it's a huge huge huge huge priority zero area of investment for us and we're working very hard with the XAML team. what I can say is that in the next release, whenever that is, wherever that is, whatever that is, we'll see improvements there. Can't go into exteme details yet, but believe me it's something we're keenly interested in.

[Angelina? Lindsay?] In particular, with respect to your comment on heat testing, the 3D one is definitely one that we're aware of, but if you hit a lot of other issues there, it would be interesting to hear what else you've found just cuz you're all hammering on a lot of creative things so it's always good for us to know what you're hitting. Like Paul mentioned earlier, GitHub issues for these types of things are great because it's a good way for us to let you know if there's a workaround or if it's a known thing that we need to go fix or maybe sometimes it's something we now can put in our back pocket and we know we need to go fix.

[John] Yeah it's like gold to use when you guys run into these kinds of issues because these are the kind of stuff that are happening outside - we speculate about a lot of stuff inside as we play with it but we'll do the the internal thing of "Well, how bad is it for the actual customer?" and you guys actually tell us that, which is great.

[Hansel] we wanted to mention a little bit about our newsletter and I hope that everyone's familiar with the GitHub samples, if not the link is there and all you gotta' do is you just gotta' go to your web browser, put in the link, and that takes you to our GitHub where a lot of our samples are available and you can look at those. In particular, we want to point you to the Sample Gallery which has a lot of interesting stuff which we will be updating pretty regularly and Varun will tell us a little bit about the newsletter that's coming up soon.

[Varun] Hi - it's Varun. So we're gonna' start a newsletter service on a regular cadence which will talk about features and flights that are going on. John and Paul do a wonderful job of it on Twitter and GitHub but on Twitter it's very hard to put all the updates on 240 characters so we'll send out emails and newsletters on precise stuff that's going out. The other thing on the video side is these kind of sessions - if you subscribe to the newsletters you get early access to these kinds of sessions, you can subscribe to them, and hopefully we'll start getting more people, it'll be good to have the newsletter as a regular cadence. The email that Hansel will send out as a follow-up will have a way for you to subscribe to the newsletter. Once we start sending those out, please give us feedback, let us know if it's helping you or if you wanna' see something better in the newsletters.

[Hansel] And we are thinking of potentially doing future Q&A sessions, assuming this was useful for you. I will be sending a brief evaluation thing to get your feedback as to what you liked about the session, what could have gone better, and thank you again for...

[???] Can I just add one frivolous comment, Hansel?

[Hansel] Yeah, totally.

[???] This morning I tweeted out - I've gotten hooked on this Netflix show "Flake" with Mill Arnette and I didn't realize until last night that Microsoft does product placement until the character's phone started to ring and it had the same ringtone as my 640 (laughs). But that's an unusual platform where they showed the front of the screen of a Windows Mobile experience. So maybe there's some outreach possibility - whoever's doing product placement for that show, maybe the UI dev plats can get some early feedback.

[???] Get it on Silicon Valley - like I would see Composition.

[???] If you guys actually remember or if anyone saw the very first episode of Silicon Valley, did anyone see that? (laughs) You guys go on and watch it and in the very first episode, the guy is working on an app in Visual Studio 2010 on a Windows Phone 7 app and it's kind of funny because the guy's making an app that tracks - what was it - something completely ridiculous I can't remember.

[Hansel] Okay, so. Thank you for joining us for our first Live Q&A session. Again, the purpose of this is to establish communication with you, so let's keep the correspondence going. If you have any further questions after this Live Q&A, please feel free to email or ask on Twitter - you're already active on it.

[John] If you liked this session, tweet about it because that'll get other people interested for the next Live Q&A.

[Hansel] Thank you.

[???] There's one more question?

[Hansel] Oh. Somebody has one more question?

[Justin] Oh. Yeah, actually I do. Sorry.

[Hansel] Go ahead.

[Justin] Yeah - I wonder, how you guys do repositioning animation inside a grid view if you resize the window? I know it's an implicit animation and the trigger is offset so you guys must have manually calculated the offset based on the layout change? Is that how it works?

[Varun] So this is one of the side - so internally XAML does all the calculations for the offset where a new visual needs to land - since you set your animation to be offset, once a new position is determined, it binds the new value to the final value and runs the animation so that's what it does.

[Justin] So basically the XAML does something that changes the offset and then the offset triggers the implicit animation?

[Varun] Yes.

[Justin] Ah cool. Awesome. Thanks. That's it.

[Hansel] Thanks again!