Good morning today. I'm going to share with you some things that have made me happy I haven't purchased very many things at all But the things that I'm going to talk about have made me very happy some things that were just okay I'm going to announce the winner of my secret giveaway from the last video I filmed which I uploaded on December 11th, so I'm kind of rusty So if you can bear with me and as always I just have to do some chit chat I just have to tell you what is going on and and what's new The first thing I'm going to talk about really did make a big difference Jim hasn't slept in this bedroom since before his first hip replacement He's just not comfortable. That'll change. I know But Jim always wanted an electric blanket So I found a great one a couple of years ago that was dual control and I didn't have to use it I like a cold bedroom So since I knew that Jim wasn't sleeping in here. I thought I don't think I'm gonna even get the Electric blanket from in my closet and put it on the bed Especially because my sister told me that she didn't use an electric blanket and last winter She just used that unhide blanket that you know, I love this is my third winter with it I'm gonna show it to you because you'll kind of understand what I'm talking about With the thing that made me happy. I mean here is here is this it's like a monstrosity It's 60 by 80. It is so thick. It is so plush and I loved it and it did keep me warm But one of my things that I enjoy doing when I come to the bedroom You know, I read and I pray and then I watch a little TV I kept losing my remote control and it was frustrating. It would get in all these little dips and divots and I Got tired of looking for it. So when I got up one morning I thought I am going to attach this to my bed somehow and I'm gonna put in some Footage here, but what I did I put ribbon here and I glued it and I made sure I didn't glue the battery case shut and I attached it to my Spindle on my headboard And then when I'm when using it, I just put it underneath the pillow I would not do this if I had children or pets because you could get tangled up in it But oh my gosh, if I'm looking for my remote All I have to do is reach back find that ribbon and I can find my remote and it's long enough So that has really really made me happy and something else right before Christmas. We had a huge cold spell And I thought oh, I'm gonna have to get that electric blanket out well, I slept with a sheet and my quilt and my unhide blanket and It kept me warm, but then it got to minus nine degrees one night Which I think in Celsius. That's like minus 24 and We had a windshield of minus 30 and I'm not sure what that is in Celsius But I mean it is cold and I thought oh my gosh, I should have gotten that electric blanket out Well, the power went off And I mean it was off for like two and a half hours and of course the house got cold There's a fireplace in the living room and Jim was in there and he was feeling toasty But I stayed in bed and I was comfortable So I was really happy that I had it and one of you all shared with me You were looking for him and you found him on the unhide website Well, I went there looking because I had purchased this for gifts for several people in 2021 I was able to buy several of them on Nordstrom when they had their their sale Well, I looked on Nordstrom today and they did have quite a few colors available So I'm hoping this summer when they have their you know, I don't know what it is I don't buy much from it, but I do look for certain things that they will have these for sale. They are machine washable Dryable before I even used it. I washed it and I dried it in the dryer And I thought no telling how much fuzz is gonna be in it It did not lose one bit and I just wash it every year before I put it up And I really only wanted to talk about the Nordstrom because that's the exact blanket I have and that's the only thing that I know anything about other than I do have the throw The unhide throw, that's what made me want to buy this I really liked it and it's a lot lighter not as thick and plush But anyway, my second thing is I found an earring. I have these earrings on and I'll get up close So you can see him. I've had him for like 20 plus years and for me They are like my most perfect earring because I can sleep in them They are so comfortable and you've seen me film in these for years If I have on different earrings, you know, I've been out of bed for a while because these are just my go-to Well, we had a leak in the bathroom and it was such a big leak that it went behind the shifu rope I had to pull the shifu rope out and I was cleaning and not getting all that up And I saw something shining. Well, it was this earring and I was so excited. I picked it up And I was thrilled That evening I went looking for my match because I thought I knew exactly where I put it and I couldn't find it But I thought well at least I've got this one and in the next day. I couldn't remember where I put it Well a couple of weeks later I was doing laundry And when I have a front loading washing machine and when I opened the door I could see the earring was down in that rubber area So I got it out washed it off and I found this one. I went to the second place I thought it could have been so I've had these I've had them for about a month My son got them for me and they just it just made him special Now this next one might be odd and I don't I'm sure there's not many people who need it But I had a real need for it. I don't like at night time I'm looking for a nightlight is what I was looking for But I don't really like them. I mean I was thinking about the motion ones and all that kind of stuff Well and this thing popped up and I thought It's rechargeable, which I like I like anything that you don't have these batteries in and I thought I'll give it a try You wait when I got it. I'll do when I got it I turned it up like this and I thought how in the world does this work? It had like a little thing here you could hook it on but I could not figure out how to how to get it going So I turned it over like this and then the light came on If you put two fingers on it, it'll turn off You know and if you want to if you can change it to different colors by just going like this I don't ever have a need for any different colors But I like it a lot of times I'll just take it with me to the bathroom And it was especially nice the night the power went off I do have a lantern in here like a battery operated lantern and we're fine if the power goes off But I really have enjoyed this I use it absolutely every night for for some reason And I just thought I'd share and I think it was like $20. I've only charged it one time It's probably gonna go out right now as we're talking, but it's a good one My friend Christina from northern Illinois sent me an email and said she's gonna send me a package And told me when it was gonna be here Well, I emailed her back and said I just want you to know it did not arrive Because I didn't want her to think that I was ungrateful because I was And she contacted the company and I had another date that I was going to receive a box Well, I opened it up and it was beautifully packaged. Here's the packaging just beautiful It arrived the day after Christmas And all these cookies they're Cheryl's cookies I could recommend them to anyone and it's such a wonderful gift to Send to somebody well Jim and I opened them right away and they were absolutely delicious I tried to limit it to right after dinner because I really do watch my wheat And I think I ate a little bit too much of it because I had a little bit of a hip pain But I backed off I put some in the freezer below and behold A couple of days later Another box came so I contacted Christine and I said I'll be glad to pay for these. I got another box And she said no need they didn't charge her So we have I've given goodies to people when they've been over and I've got some in the freezer But I was really impressed with it and it's just a small business I have no affiliation with them. I'll just type their name across here But uh, it'd be a good place to look if there's some time you just want to send somebody something special I felt real special when I received them. I told you I would let you know when I knew something about vagamor I started using it in one area right here On october 8th 2022 I have this much left right to there And it does work. In fact, I'm going to have to quit using it there and I'll rotate it with my revitalize But it could because see I'm used to this. This is what I'm used to in my forehead I've had them forever and I'm used to messing with it. Well now On this side, it has really grown and it messes up my bangs So I'm I'm going to quit using it there And but it does work. My favorite is the revitalize. It's expensive A friend of mine that has a youtube channel had a 26 off discount code that I was going to share with you But I checked and it's no longer available But a lot of times when you go to the website, they have 20 off and which you know and sometimes 25 off But that's my favorite. My second favorite is the vagamor. It does work It makes your hair grow and it makes it thicker And then my third choice is grande hair It worked. I didn't like it as much. None of them made my hair look greasy or dirty in any way and I've had questions about the Nutriox, I only use that right after I derma roll my scalp and that's right after I shampoo my hair And I shampoo my hair every five days is when I shampoo my hair And that's the only time I use that and I'm not going to quit doing that But I wanted to give you an update on that. Well, the other part of the good I'm still talking about my good things and I think it is good. I am no longer platinum nor diamond with Ulta. I am just a regular customer I do accrue points if I order something But I'm still not wearing face makeup or blush or eyeshadow Just mascara Something on my brows to keep them clear, you know to keep them in place and lip gloss lipstick And what I'm missing about it is if I don't have a foundation on my face, I won't wear eyeshadow I won't wear blush. I think for me I equate a full face of makeup And I'm still liking my skin the way it looks. I'm not even putting powder I did put powder right there and right there today That I never thought I would feel so good about my skin at 69 years old when I used to wouldn't go anywhere without makeup So it's a good thing that I am no longer Any reward category in Ulta. I've never been anything but an insider at Sephora So whenever they have their sales, I'm a 10 percenter. I am still enjoying my belt bars I especially like the belt puffs They did an excellent one this year that I didn't think I'd like and I almost didn't order it And it's pumpkin pie and it had the white chocolate and I thought it was great And now one of my favorites is the coconut marshmallow And these are the puffs. I still like the bars, but I have not purchased those in a long time I have some in my freezer and I will eat them. I'll take one out for you You know, maybe about 30 minutes and I'll eat them But the thing that I'm the reason I'm mentioning this is they've added postage on it I started to order a box and I I can't remember what the shipping and handling was And I started to complete the order and I thought I'm going to throw in another box To see if the postage increases and it didn't so that's okay But in the past there hasn't been shipping and handling on it So I am really curious if any of you see them in the stores They I don't I I've never been in a Costco It's probably been 15 years since I've been in the sams Or even like a health food store. I just haven't so if any of you see them somewhere Let me know and and I'd love to know how much they are there.  I bought this I can't remember it's not a super name brand, but it's a good one and I've really enjoyed it Well, I saw all those Stanley cups and I like my metal straw I have a brush that is long that I can keep them clean and I have quite a few of them But I love it, but it's not real handy when you're traveling because you can spell it And you have to take this off in order for it to fit in my cup holder. Oh, here's my brush It was in here. So I ordered one of the Stanley cups the 30 ounce That's what this one is and I liked it because you could just carry it along and I will use it But I'm not a big fan the straw Here's the straw like component. It's not comfortable It's a long straw right there. It detaches and that's not hard to keep clean But I was really disappointed. I just thought I would like it a lot more So I am a creature of habit. I guess and I enjoy my cup I will use this when I go someplace. I'll fill it up because I don't like to buy water I like to take my water and I don't like to buy the plastic water bottles when I mentioned my bathtub In one of my recent videos that it like I brought it to this home Six generations. I think right now I have bathed in that bathtub A couple of people asked me to share a photo of it and I will I'll put one in here And I also will link the video it was taken. I did I filmed it seven or eight years ago It's not that good of a video at all But I do kind of talk more about the pieces In my where they came from because a lot of it was family Were family things and things that meant something to me It was before I met Jim that I turned a study into a bathtub all because of my antique cloth the bathtub and the only things I had to purchase for it Was a sink and a stool everything else came from other areas of the house and I love that I still love my room, but that's a picture of it And if you're still here, this is going to be a giveaway and because it's a giveaway I cannot reply to questions or comments under this video go to any video I don't care how old it is and Ask me a question and I will get back to you Lisa j from bkbeauty had sent me two Beautiful boxes of new eye shadow brushes and face brushes And I said that I was going to give them away But first I wanted to purchase the brushes myself And I've used a few of them not a whole lot of them, but that they're wonderful To me they are the perfect brush Not that any other brush that I own Can't do the same thing or close to it. I just love the way they feel I love these brushes. I love I have a couple from it and I love Mary glitzy fritzy's Brush set that she put together for sigma those brushes are excellent And before I brag on something I want to spend my own money on it And I have on every brush that I own from lisa's bk beauty. I've purchased they've sent them to me I've given them away. These are the new five Face brushes and these are the new four eye brushes set of four eye brushes They're not duplicates. They all do different things. I'll put information below This one happens to be my absolute favorite It's a contour brush I have the one that's bigger for the face and smaller for the eyes And love them. I bet all her brushes. I think are really good. These are mine The other boxes that I'm going to send you have not been opened and they are right here. These have not been opened So let me think what I want you to do and I want you to say To enter my giveaway. All you have to be is 18 years old or older. That's it You don't have to be subscribed. You don't have to like it. You don't have to follow me anywhere But you do have to use a word in a sentence in the comments below And I think we'll just use the word brush You can use that word brush in a sentence and that will let me know that you're interested in An opportunity to win one of these fabulous brush sets. Oh, and by the way, they are all sold individually now Yeah, I think that's wonderful that you know, you don't have to buy the whole set You can get exactly what you want I've noticed that with everything that lisa has done She comes out with a set and then the brushes are available on their own And lipstick and lip liner. So I appreciate that. I've had my hair cut a ton I've had Streaks put in it. I don't know if you can see that or not.  So I just put that in there didn't say anything I just kept talking and just stuck it in there and then next to it. I put and in the next clip I said something like just say grandson And I put for a change to win a hundred dollars instead of a chance those type of those things in sometimes Are kind of hard and I've got a winner. I loaded all of the comments in random comment picker I deleted duplicates and I only looked for Anything that had the word grandson And I think there were 67 people Which made me feel very special that that many people Said long enough to watch to see it because that does mean a lot It helps any youtuber you like the longer you watch the video The the more their video is suggested and I went to announce the lucky winner I started to send you a comment and then I thought no, I'm not gonna do that because I said I'll never do that So linda martin Congratulations, you are the winner of a hundred dollar e-gift card to wherever I can purchase them Or a hundred dollar deposit in your PayPal account My next video should be my 32 weeks using the omnilex Contour mask. I have filmed my skin on exactly the 32nd day So hopefully that'll be my next video up in a couple of weeks. It is all good. Appreciate you More than you'll ever know you just don't know how much it means when somebody comes and Presses that button and wants to listen to what you have to say. It's very humbling So thank you again. I will see you in my next video. Take care And incidentally So just kind of bear with I kept getting my if I haven't changed them Then I couldn't find it Just happy 20 plus years and uh my I won't use you know used to


Okay, here we are in Tokyo. Can you believe it? I'm so excited. And you're not even jet lagged. No. I'm the one tired and dragging. That's right. No, but we wanted to talk a little bit about how important documentation is to OpenStack, and I've been carrying that creed forever. So it's really wonderful to have Lana. I've recently recently taken over the helm as documentation for PTL. So Liberty was my very first release, which just has gone out. And now we're getting ready to play in Mataka. Yeah. And so I actually had to look at the stats, but our last release had 1,900 dock changes in six months by 300 people. That's a lot. That's the most we've ever had. And it just keeps growing. And I think that that shows also that the percentage of dock contributors compared to overall OpenStack contributors is also creeping up. So that matters, too. I think it shows the docks is becoming more and more important to a lot of people. And while we're talking stats, we've also just recently found out from the survey that two thirds of people see the documentation at least weekly, which is really exciting. That's awesome. I think that shows exactly how important documentation is to people at the moment. And we're really committed to making sure it's the best documentation possible. And of course, documentation is a wide variety of things. And so the thing we saw last release was that the API docs had the most contributors overall to docks. I didn't do the stats for this past release. But to see that growth is also like my little pet project, right, is the API docs. So of course, they're really important, too, as well as all our developer docs. Right. Our development team are brilliant at creating documentation. Of course, a lot of that flows into the official OpenStack documentation as well. I mean, there's a new infrastructure guide. There's a new project guide. People are just taking the idea and running with it of a doc sprint, of, you know, treating docs like code, let's track the bugs against the doc. It's been really a cool place to innovate with documentation. Absolutely. So should we talk about how people get involved? Absolutely, because there's this awesome new thing. So one thing we're really excited about with this release is the fact that we now have an article in the printed super user guide, which is being distributed at this summit here in Tokyo. So if you need to turn to page 14 of your super user guide and have a look at that, because that's got, hopefully, all the answers you have answered. All the questions you have answered. Yes. Obviously, we're also available on the mailing list and IRC and all those other places where we can answer any questions you have. Absolutely. All right. Good. Thanks, Ed. Yeah, good talking to you all about it.


OK, so I'll start. Can we make the lights dimmer? OK, so I'm going to talk about today, ember2.0 and the road ahead. I actually agonized a lot over this title, because really what I want to talk about is just like, where are we at? ember2.x, where are we at? But that seemed like a bad thing to put on meetup.com. And really what I want to talk about is sort of like a post-mortem for ember2.0, although that also seems like a bad thing to put on meetup.com since we're not dead yet. And I want to talk about sort of, we're in a weird place right now, because a lot of the things that we want to do for ember2.0 are still in progress in early 2.x, and a lot of the things that we want to do in 2.x have not happened yet. So I'm going to try to talk about all that. So first of all, ember2.0. So we first announced that we were going to do 2.0 a long time ago. The date on that is November 2014, and we merged it December 2014. So we made this RFC a long time ago. It may be hard to recall, but when we announced ember2.0, it happened. It was like a few weeks or a month after the Angular 2.0 thing. And we had been working on the ember2.0 plan for a while. So I think we talked about it at every face to face from probably summer of 2014 until when we announced it. So we effectively knew the plan. I'm personally a big believer in stability and compatibility for years, years, years, multiple projects. So I kind of knew what I wanted to do already. But we announced this around the same time as there was a lot of Sturman Drung about Angular 2.0. But a big thing that happened was that we originally announced this, and we got a lot of feedback, which is great. A big thing that I care a lot about is that when I work on ember, I'm not working on ember as myself, and then there's a separate community that is working on ember stuff with me. I basically work in the same space as everybody else. And I happen to work at Tilda, and some other members of the core team happen to work at Yahoo or Yap or LinkedIn. But we all work in the same public space. And that actually comes out of having a large number of people at different companies trying to coordinate an open source. We really have no choice but to work in the same public space, which is GitHub. And that's great. I think I love it. I love that. So we announced this. We got a lot of feedback. Probably the biggest points of feedback came from the fact that at the time, we knew we wanted to get rid of views and controllers, but we only had a path-baked idea of how to do it. And we also knew we wanted to drop IE8, which I'll talk about more later. And that, of course, brought out a lot of people who, literally all the people who still relied on IE8 probably replied on the thread, which is fair. I think that was a fair discussion. Because the IE8 thing became so controversial, we actually separated out into another RFC just to talk about IE8. So this was actually great RFC. Usually when we say we're going to get rid of views or controllers, we kind of know because the core team has a lot of different types of people on it, what kinds of things are being used. But of course, if you say we're going to drop a feature, you learn about ways people are using things that you had not thought of. So this was a great starting point. There were a number of things that we did over the course of the Ember 2.0 process. So after we merged, I wrote a blog post that transitioned to Ember 2.0 in detail where I was actually saying today I looked back at the high level and we didn't actually do that, the second one, Ember 2.0.13 will ship with support for angle bracket components. But we did actually do all the other things on this list. So yeah, we didn't get all the things, but we basically kind of do what we were doing. And this thing here talks about all the things that had to do with Ember 2.0 and transitioning to Ember 2.0 as a 1.13 app that we knew on May 10, 2015, which by the way is also my birthday. So I was busy that day, I guess. I also posted another post, Ember 2.0 X status update on May 24. And at this point, we kind of noticed, we knew already that we were probably going to miss a few things that we thought we might hit. That sort of talked about it. We also at this point realized that there was a high probability that we were going to have to maintain 1.13 for a while after 2.0 because of the likelihood of breakage and people being on 1.13 for longer than we hoped. So we started talking about that. And this blog post talks about the fact that we were planning on removing a lot of stuff and the removals were really the high order bit of Ember 2.0, not any new features. And then finally, I wrote this blog post on June 16, which basically said, I talked about something in my keynote, EmberConf. Actually, the EmberConf keynote happened in between the RSC and this, which is basically me repeating what we already knew about Ember 2.0 at that point and also introducing Glimmer. So at this point, I repeated what we had said before because it was clear to me that it was not getting absorbed fully, which is basically that there are five things that Ember in 2.x will be. Ember CLI is effectively the primary entry point into Ember. This transition has not actually finished yet. So if you're an Ember user now, Ember CLI being Ember has not finished. But for example, if you gem install rails in the Rails ecosystem or MPM install sales or whatever you would do, dash G, what that does is it brings along a lot of stuff. And Ember historically has been split between Ember.js, Ember data.js, maybe some other stuff. And Ember CLI was a separate project. So one of the goals for the Ember 2.x, which I'll get to more later, is that the main entry point probably starting in a release or two or still working out the kinks will be Ember CLI. So you'll install, if you want Ember 2.4, you'll say MPM install Ember CLI at 2.4 dash G. And you'll also be allowed to use Ember 2.4 in your package.json. And you'll get the right version of Ember. So in other words, just like in Rails, you don't necessarily know what version of iRubus happens to be used. You might not know exactly what version of what has since become Ember collection is being used or what version of liquid fire, but you'll think about it as a package that comes with a bunch of stuff. And this actually is maybe one of the highest priorities for me personally. So stuff we actually did. It's also, if you've been around for a long time, easy to forget the path here. But Ember 1.0 shipped with a string-based templating engine. String-based templating engine involved a lot of hacks, most notably metamorph script tags for the entire time from 1.0 to 1.7 to do at a high level what we always want to do, which is have a templating engine with some embedded expressions and you run it. And then when anything changes, you update it, which is at a high level what literally every framework is trying to do. But we use a string-based templating engine at 1.0 because when we shipped in the first place, templating engines weren't necessarily. We know a lot more now. So in 1.8, we eliminated metamorph script tags and we shipped a thing called Metal Views. And really the main benefit of Metal Views was SVG support, actually. So we were able to write SVG because of course, you're using inner HTML, you can get SVG, but you couldn't have like an SVG component. We shipped HTML bars in 1.10 and basically that was probably the biggest change since 1.0. Interestingly, if you were a person who used 1.10, you probably didn't notice a large amount of breakage even though we completely swapped out the templating engine under the hood. So even though in 1.9, we were using a string-based templating engine and in 1.10, we switched to a DOM-based templating engine, there was no compatibility breakage at that point or extremely little. We also shipped block brands, which hopefully as an Ember user in September 2015 is a feature you have used or like to use. We also shipped a feature that maybe you don't use but you should, which is if you have a bunch of if-else statements, you can use like the JavaScript else-if syntax. So you can say if something and then you can say else-if something else-else something else slash if. Shipped services, 1.11, because we had shipped HTML bars in 1.10, we allowed you to say something like ahref equals curlies to put in ahref, which, frustrating, that was not possible until then effectively eliminated by that bind adder as a requirement. Also, 1.11 shipped the component helper, which let you say I would like a component but the name of it is not known-is not known until runtime. 1.12, we started working on fastboot and 1.13, we landed glimmer. So there was a pretty big path in the 1.X series in which we added a lot of features and didn't break a lot of things. And interestingly, also during this entire period, we deprecated a lot of things. And I'll talk about deprecations in a bit. But until here, after 1.13, those deprecations did not come to fruition, none of the deprecated features broke. We missed a couple things that we wanted, angle-wracking components and ratable components. Both of those features are features that got a lot of hype and will matter a lot, but we missed. Why did we miss it? I'll come back to this later, but the short answer to why we missed it is POTS. I'll come back to why that is much later. OK, so what was the highest 2.0 priority for everyone on the core team? The highest priority was migration. A big reason for that is that all of us on the core team have apps. So Tilda has Skylight. It's an Ember 1.x app. We do not want Skylight to be stuck on 1.13. Steph works at Yahoo. They have a whole bunch of Ember 1.x apps. They do not want to be stuck on Ember 1.x. A bunch of people working in consulting companies, all of them do not want to be stuck on 1.x. So for us, the highest priority over all other priorities was migration. You may or may not be familiar with these. If you happen to have an app that is still on 1.x, I would recommend becoming familiar with these things. And we talked about them in the blog post. So first of all, Ember CLI deprecation workflow. The idea behind this is that deprecations are a thing that can manifest in many different ways. And if they manifest as a thousand messages to your console, you will probably be very angry at them. And also, you will not have any good way of dealing with them. And so Ember CLI deprecation workflow allows you to effectively work through deprecations and say in your project which deprecations you think you have already worked through and which ones you would like to ignore. That allows you to schedule in whatever sprint you feel like. I would like to eliminate these deprecations. This deprecation, or these five deprecations, work through them. And then once they're done, you can seal them and move on to the next one. It's a nice thing. So that's a way to silence them. This for me was actually even more important, which was if we're going to have a lot of deprecations, it would be nice if they didn't go into your console because you're probably using your console for other stuff. This actually landed a long time ago, but you have to actually have the inspector open to see it. There's just deprecations pain that tells you what's up. We started, every deprecation in Ember has a unique identifier. So the string that gets printed out may be contextual. It may say something about what you're trying to do. But there's always a unique identifier. There's a URL that is attached to it that says what deprecation is and transition plan. So you can see there that it says you can click on transition plan. It will tell you the transition plan for that particular deprecation. You can see the trace in the console. And actually using the deprecation workflow and the inspector together is pretty nice.  It doesn't clog up your console and everything is grouped together with traces. So I think deprecations were a source of some frustration, but I think a large part of that was that pace at which we rolled out these things did not exactly match the pace at which we rolled out deprecations. I want to say another thing, which is that deprecations are not the enemy. In the 1.13 period, because of the fact that we had so many deprecations that resulted in removals, people got the end because of the console spew. People got very email at deprecations. And in fact, towards the end of the 1.13 series, we got a number of people submitting RFCs or other requests that we should slow down the pace of deprecations into .x. So please do not deprecate things so fast. And what I would say to that is that deprecations themselves are not the enemy. In fact, if we're not about to remove something, you still would like to know as soon as possible whether that we're planning at some point in the far future on removing it. And to the extent that you don't have to see it in your console because you're using every deprecation workflow slash the inspector, and we're not planning on removing it any time soon, you'd rather know sooner rather than later. It doesn't help you for us to defer the point at which we start emitting the deprecation warning. But because of the fact that deprecations were noisy and annoying and coupled with a bunch of removals very soon, I think people got the idea that deprecations are the enemy. And I would say deprecations are good. You should like deprecations. You should be sad about removal, but you should like deprecations. OK, so what? So ember1.x had a release process that I still think is pretty great. Rust has the same release process, and it was derived from Chrome. And the idea is that there's a six-week release cycle. The six-week release cycle is additive only, so we don't delete things in every six-week release. It's not like six-week major releases. They're six-week sembr releases. And people can upgrade at their leisure, et cetera. However, if you read this, I wrote this RFC May 21st. It's a busy month, I guess. I wrote this RFC in May 21st. And the goal of this RFC was basically to say there are some issues with the six-week release cycle that require some refinement. So it starts off roughly by saying the six-week release cycle is great. In fact, I think a lot of people who are used to much longer release cycles, like enterprise people, get the idea that six-week release cycles are dangerous. They increase risk. But there's actually a reason that Chrome and Firefox do six-week release cycles, even though they're shipping a production browser. And that's because six-week release cycles actually reduce risk. It's like continuous deployment. And intuitively, it feels like continuous deployment increases risk because you're shipping all the time. But in fact, what continuous deployment does is it exposes your product to your customers as fast as possible so you can get feedback as fast as possible.  So you ship something. If there's a regression, you can fix it tomorrow if you're doing continuous deployment. If you're doing releases every six months and you ship something, it might be a large process. Because maybe there was like a, I don't know how many people here have worked at companies with long-release processes. But maybe there's like a release manager, an Excel spreadsheet, and a freezing period, and QA that comes along with that. So even though it seems like the long release cycles reduce risk, they actually increase it dramatically. And they increase it dramatically, especially as you start heading towards the end of a release cycle. Because then people become very obsessed with cramming things into the end of a release process. Again, I've worked at places like this. And the consequences that the features that get crammed in at the end are extremely risky and hard to fix. So the nice thing about six-week releases, especially when they're accompanied with feature flags. In other words, everybody works on master. And there's just some feature flags that you can use to strip them out from the production builds, which is basically how continuous deployment works. It decreases risk dramatically. And it has done that for Ember. I've worked on many open source projects. And the six-week release cycle, both in Ember and Rust, really, really reduced the sense of urgency around releases and also the risk, people's risk tolerance. People's risk tolerance is actually much lower when there's a lot of releases. People, a common refrain is there will be another train, wait for the next train. But there's a problem, which is that not everybody can upgrade every six weeks. We try to make it pretty seamless, but it still requires scheduling and upgrading and things like that. And especially if there is, for some reason, even though we follow Sember, I'll get to this in a second, there are some releases that can still break your app for some reason, which I'll get to in a second. So not everyone can upgrade every six weeks. Now, when I first heard of this issue, like I know about it, I said, well, that's not really a problem because you can just upgrade whenever. So if you don't want to upgrade from 1.10 to 1.11, fine. You can just upgrade every even release or you can upgrade every four releases. That's fine. It's Sember, so it should work. But there's a bit of an issue, which is that the ecosystem has to sync up. So if you're an add-on author, you have to know what releases to support. You probably do not want to support if you're up to 1.10, literally every release since 1.0. That would be very annoying. So in practice, add-on authors tend to support a relatively small number of leading edge releases. And because people who are conservative are on a variety of different releases, it's very hard for add-on authors to know what to target. It's hard for the ecosystems to know what to target. It's hard to know when we can upgrade the inspector. So one of the goals behind LTS releases, which is an open RSE that will probably merge soon, is just to give conservative people who don't want to upgrade every six weeks some release that they can stay on that is synchronized. So everyone, let's say 2.4 is a LTS release. What that means is that if we're up to 2.7, add-on authors and people building tools for Ember and whatever know that 2.4 is still a popular release. And when 2.8 happens, probably 2.4 is still a popular release and maybe like once 2.10 happens, 2.4 is no longer a popular release. But that gives everybody a sense of a particular cadence of not just six-week release cycles, but also release cycles for more conservative folks. Now, there is an issue that is related. I said maybe upgrading from 2.9 to 2.10 may break your app. How can that happen? Well, what happens is that JavaScript is a very dynamic language with very hard ability to control private APIs. And so we have a term that we use in Ember Core called intimate APIs. And the idea is these are APIs that are private, but the community is very intimate with them. And this may happen because maybe a very popular add-on like LiquidFire uses them. Or it may happen just because there's a particular problem that is hard to solve with Ember and people use the private APIs to get around it. And there's a popular Stack Overflow answer that tells you to do it. And a thing I learned, DHH convinced me of this like five years ago or something. This is not a bad thing, actually. If you're in a language where everything is final and you can't escape, then if you get stuck, you're stuck. Game over. But in a language with more ability to be porous, you can fight your way out of problems. But it has the cost of maybe your stuff will break. So we've always had the policy that if we happen to know that a particular private API that we are breaking is heavily used for some reason, like a lot of the container APIs is private, but we tend to try to avoid breaking it because it's intimate. If we need to break it for some reason, we've had the policy in the entire 1x series that there's always has to be at least two releases in between the time that we deprecate and the time we remove it. So this is not, again, this is not a semver violation because these APIs were not part of the publicly documented API, but we try to be helpful anyway. So the way that this entangles with LTS releases is that one of the issues that causes people to not be able to just upgrade every four releases is that because the policy is that we can remove things two releases later, if you jump four releases ahead, you might miss a deprecation. So this is really the only interesting policy change about the LTS release plan. And the other thing is ecosystem syncing, but that's not really a policy change, is let's imagine that 2.4 is an LTS release. May or may not be. 2.5 may come out and then 2.6 may come out and maybe in 2.6 we discover that there is a intimate API that we would like to deprecate. In the presence of LTS releases, we cannot actually remove it in 2.8, which is when we would have removed it in previous, in the 1.x series. Instead what happens is we have to wait until the next LTS release and the idea is that there is an API that was heavily used privately in 2.4, so 2.8 people need to receive a deprecation warning because they basically skipped over the entire thing in the middle. So now they're landing on 2.8, now they're gonna get that deprecation warning that we added in 2.6, which means we can remove it in 2.9. But the point of the LTS releases is to give us a framework for thinking about this kind of problem. So the idea is now you know that you can jump all the way over four releases and not fear that maybe we deprecated a heavily used private API. Also means that add-ons have the same story. Add-ons that are heavily using private APIs know exactly the lifetime that they can continue supporting and it matches people who are more conservative. In practice, EmberData and LiquidFire, because they made too much use of private APIs, are two that are upgrade blockers. Both EmberData and LiquidFire have spent a lot of time recently trying to contain the amount of private APIs that they're using to bring it down to a very small amount. But one of the major goals of 2.x is actually to reduce reliance on private APIs period. And what that effectively means is that we want to have add-on APIs for all the things that we know add-ons are doing. This is sort of a similar story to Stack Overflow tells you to do a weird thing. In the 1.x series, it's pretty hard to prioritize getting good plug-in APIs when there's still pretty bad issues with the public APIs. But now that we've gotten to 2.0 and a lot of the public API issues have been ironed out, we want to make sure that LiquidFire and EmberData and other popular add-ons that are doing stuff that rely on private APIs have an ability to not rely on private APIs and be more stable and effectively opt back into December, which seems good. And that's something Edward has been doing a lot of and it's something that Igor and I and Tom have been doing a lot of in EmberData just basically getting things stable. A sort of related thing, and I talked about this earlier, is a major goal of Ember2.x is Ember as a suite of things and the idea basically is that NPM install Ember, which by the way we have access, we have but we haven't used for anything, is that's the thing that has the important version on it. So when you're installing Ember2.3, NPM install Ember is how you get it and it has a bunch of stuff inside of it that have versions that you don't have to care that much about like I said, like Rails has E-rubus and Sprockets and whatever and you don't really care about the exact versions of those things, but you know that you're using Rails for. One of the great things about this is that when the vast majority of people are in the same version of everything, it's a lot easier if someone goes to Stack Overflow and says I'm trying to use LiquidFire with Ember, LiquidFire and Ember2.4 and it's broken in this way, you don't have to play 20 questions to figure out what combination of versions of everything they happen to be using. So for things that we know that are basically ubiquitous around among the Ember community, we've decided effectively to integration test the combination so that people can generally assume that if somebody's asking a question about a particular version of Ember, they are using a particular version of all the dependencies as well. And this is definitely something that causes pretty severe issues in all ecosystems where people just you mix and match libraries with the bend. I should also point out that the goal of this is not to make it impossible for LiquidFire 2.5 to work with Ember 2.4 or something like that. The goal is just to say that that will work for some combination of versions. The goal is more just to make sure that there's a general cluster of them that people are using and that there's a version number attached to it. Okay, cruft versus compatibility is another big issue. What I mean here is that Semver requires that you maintain compatibility across minor releases. But maintaining compatibility requires maintaining cruft. And generally speaking, people don't like cruft so there's a pressure to increment the major version. This was definitely a big thing for us in 2.0. We want to get rid of cruft, so we had to increment the version.  And for 1.x that was actually pretty good because we had a lot of a holdover cruft from pre 1.0 that was good to remove. But generally speaking, it's possible to isolate the cruft for things that are increasingly obsolete inside of your code base. The thing that's annoying for Ember about this and the thing that produces attention is that it is annoying for people who are not using those features to have to pay for them. And one of the goals of 2.x is to reduce the tension there via a thing called spelt releases. And the basic idea here is that deprecations will become effectively reverse feature flags. So every deprecation will isolate the area of code that it's talking about in the same way feature flags do. And you will be able to ask Ember CLI to build you a version of Ember without some set of deprecations. Probably you'll refer to it as the set of deprecations as of some release. So you'll say, okay, I actually started this project in 2.4. You don't need to give me any features that were deprecated before 2.4. Obviously we can't remove them from the public build or any of the defaults for semantic versioning reasons, but it's good for you to be allowed to ask for that to remove the cruft. And that allows people to basically GC their own cruft and hopefully will allow us to take a longer time before we feel the need to do it globally. Of course it's important to note that if you are removing features, they will probably, some add-ons will probably not break if they rely on them, but hopefully the existence of spelt builds will cause add-ons to try to support non-deprecated features. Also important to note, if you have a particular deprecated feature removed, we will probably leave the deprecated feature around in debug mode with an exception. So if you encounter a deprecated feature will not just like randomly fail, in debug mode you'll see an exception that says, hey, you said you didn't want this feature and yet you are using it. Seems bad. And sort of related to this is that ES6 modules provide a pretty good host for dead code elimination. If you didn't import a module, we don't need it. And this is a little bit further away, but we're planning on trying to leverage the fact that you have to explicitly import things that you want to allow us to purge a lot of stuff from Ember that you didn't happen to ask for. It's a little trickier than it looks because things like the application pull in a lot of stuff. So there may be places where we have to use the spelt build conditional trick instead of ES6 module trick. Maybe you're not importing something explicitly and the framework is doing it for you, but I think there's a good path for ES6 modules being a way to discover what things you need to include in your build. Okay, so that was the high priority. The high priority was getting us to a point where everybody's transitioned. Everyone's on 2.0. Everything is good. The second priority for 2.0 was to make a better foundation for 2.x and beyond. And there were actually only a few things here, but they ended up having a pretty big impact. The first thing is ES5. So ES3, so the story of JavaScript is that Brendan wrote JavaScript in a week or 10 days or whatever the origin story is there. And then they shipped it and it was in Netscape and Microsoft did Jscript and blah, blah, blah. And it got standardized. And ES3 was effectively the end, at the end of the browser wars when Microsoft won, they standardized what would become the version of JavaScript that was everywhere. That was ES3. And that happened in like probably 1998 or 1999, something like that. I should know that. And that version of JavaScript had very little features. It was effectively just like all objects are dictionaries and maybe we added exception, so that's great, but that's about it. It's amazing. Dave Herman said to me last week, I was with him at T-Stereo and he runs Mozilla Research. He said ES3 was a thought experiment of what if we gave the world the lambda calculus and said go. And that's really what it is. There's very little features, but you have anonymous functions and that gets you a long way. Well, let's see you write async stuff too. But ES5 cleaned up a lot of stuff and importantly added some critical reflection capabilities with things like objects that define property and that whole suite of tools, strict mode also. And that stuff matters. And it's very difficult to move forward without it. We end up with things like mandatory.gen and .set because we can't use getters and setters, even though they've existed in the language since 2009, so we really wanted to move forward. But there's actually even a better reason, which is that ES6, there's a few features like proxies in ES6 that you literally cannot polyfill or transpile, it's impossible because proxies let you intercept any get operation or set operation in the entire language. But almost the entire ES6, almost all of it, is just sugar on top of stuff you could already have done in ES5. However, it is not sugar on top of stuff you could have already done in ES3. Which means that if you want to use Babel and you want it to give you a good experience, you really do need to be building on top of ES5. So had we decided to maintain support for IE8, which support only has ES3, what that would have meant is that we could not have used a lot of Babel. And we talked about that in the RC, but of course people who really, really need to support IE8 are willing to accept a lot of pain and trade-offs. So ES6 plus for us, ES6 and beyond is a very important thing for us. For me, I'm on T39. And dropping IE8 as a result was of critical importance. Also importantly is that views, which were the core primitive that we copied from Sproutcore. So Sproutcore had a thing called views. So Ember0.x had a thing called views. Ember1.0 also had a thing called views. But we, I was trying, already at 1.0, if you look at the public API, I had started to try to push components. And the reason for that is that components are effectively views, if you are a 1.0 user, with better scoping, like just, that's the only difference, better scoping. However, for all manner of reasons, people got addicted to views with mostly without any strong, compelling reason why it was needed, but a lot of people used them. And unfortunately that worldview, the specifically the bad scoping part of it, infected a lot of internals of Ember. So basically anything that had to do with components had to say, what if I happen to be a view? Maybe there's weird scoping rules here. Maybe the user, an example of this is, any view is allowed to set a context property, which says instead of using this thing as the context, instead use this completely other object. And we already had width in Ember1.0. So this is a completely unnecessary, but it was used, which meant that every single part of the Ember internals that might be talking about a view at all has to worry about this context thing. And the magic controller keyword, which could be like if you say width controller equals, or there were many, many constructs that allow you to interject controllers. And controllers did things like capture actions.  And it was really painful for the programming model too, because it meant we could never say with complete confidence to a user, if you are inside of this context, here's what is in scope, which is a nice thing to be able to, so handlebars is basically a programming language, a little one, and it's a nice thing to be able to say, I'm looking at your template and here's what is in scope. But basically handlebars was like ES3, where people using the width keyword a lot, you could basically never know what was in scope. And that was bad. So 2.0x eliminated views for all those reasons, but we made sure that basically all the existing semantics work in an add-on. So if you happen to be using the view keyword anywhere, or the view helper, or a controller equals, there are add-ons that you can use that will bring the semantics back. And we promised to maintain support for them until 2.6 at the earliest. But we will see how much people need it. I'm hoping to not need to support it much after that. But it depends. Generally speaking, when I say all this, what I mean is, if it turns out that people heavily use it, we will keep supporting it. But please don't. By the way, one thing that happens with add-ons is that people use an add-on, like LiquidFire or something, and they try to upgrade and the upgrade fails, and they get angry at either LiquidFire or Ember or the ecosystem or something like that. But add-ons are actually a pretty awesome buffer between you and private APIs. What I mean by that is, LiquidFire actually does not expose any private APIs to you. It exposes its own public API, and it uses private APIs under the hood. What that means is that when you upgrade to Ember 2.2 and LiquidFire breaks, you do not need to update your app. All you need to do is wait for Edward to upgrade LiquidFire for Ember 2.2, and then your app keeps running with the exact same code. Now, obviously it would be better if people did not use private APIs. But that strategy is much better than you copying and pasting a private API from Stack Overflow and putting it in your app. Because that means that when we upgrade to Ember 2.2, you have to figure out what the answer is, and that's probably harder for you to do than for Edward. So add-ons are actually a great buffer. Again, I think it's good for us to reduce reliance on private APIs, but to the extent that they are in use, it is better if they are encapsulated in an add-on with a public API than if people are just using them directly. And so you should be happy if you're using an add-on that gives you powerful capabilities that you want. You should be happier that they give you that public API and the breakage is contained by them releasing a new version than if you just did it yourself. OK, I'm closing in here. I hear a lot that the web is changing a lot. Look at the web. Like in the last 10 years, it has wildly changed. It's a completely different thing. So obviously that means that we need to rewrite our frameworks every year to take advantage of that. This is not an excuse, but actually the reason it's not an excuse is a ridiculous thing.  The only rule that we have to follow for sure is that we can't break last year's code, which means that you have no excuse whatsoever. If somebody ever tells you, I have to rewrite my framework or I have to use a new framework because the old web is no longer here. It has changed. Everything has wildly changed. That is just not true. Famously, the Space Jam website, which was produced in 1995, still runs on Chrome right now. I suspect it's like in integration test suites, in browsers. That's amazing. Yes, it is. And it is amazing and also a true thing that exists. So we are not forced to rewrite our frameworks and break compatibility because the web is broken. In fact, the opposite is true. The web has done us a great favor, a much greater favor than, for example, Coco, which is that the web has promised to basically never break anything. It's not 0% very, very rarely. There's a great thread on the bugzilla where they remove the Moz prefix. There's a very prefix, Moz opacity. And someone is like 100 comments where he said, you are basically destroying my livelihood. I have to manually go modify hundreds of websites. And it's very crazy. But there are, with rare exception, things that worked five years ago work now. Except if you're using explicitly marked experimental features. And so there's no real reason why people need to rewrite their frameworks or their apps because the web has added new features. The web is additive. You can take advantage of the new features without breaking everything. OK, 2.x. So now that I've said how 2.0 went, what's coming to the next?  Pods, I'll go into more detail in a second. Engines are coming. But I would like to issue a warning, which is that I think engines has become a word that is symbolic. It's like a monolith. Everybody has poured their heart and soul into what they want it to mean. It probably will not mean exactly the thing that you want it to mean. But it will mean that you are able to make isolated applications that you can mount inside of other applications. And that set of things that you can do with them will get better over time. So engines are coming. Radable components are coming. In a second, I'll talk about why they really required pods. Angle bracket components are coming. This one is really exciting to me. So I've been working on modules for years and also decorators for years. And I'm excited. Decorators are moving along. And they'll probably be in not in ES 2016 because ES 2016's deadline is like a month away or something. But they'll probably be in ES 2017. They're already in Babel. And they allow you to do a lot of cool stuff. And I think Ember will probably take advantage of them starting pretty soon along with a process in the 2.x series of allowing you to slowly migrate towards ES6 classes with decorators and fields and things like that. So that's cool. A teary goodbye to controllers. What I mean by that is that controllers are hanging on by a thread. They're on life support. They are still needed for query parameters and communicating with your routes. That is literally the only reason they still exist. The only reason we could not deprecate them and remove them in 2.0 and tell you to point out a plug-in. Because there are two things that you still need them for in 2.0 world. And what routable components and other things will eliminate the need for them to exist as a mandatory part of the programming model. So we will not remove them because we will not be able to do that until 3.0. And that may not come extremely soon. But there will come a day where controllers are not a part of the mandatory programming model. And that is exciting to me. Pods. Hey, what happened here? No.  I give up. OK. So pods. The basic idea behind pods is that the directory structure, instead of being a flat top-level global directory structure with types that nest things inside of them, will basically be structured in terms of your application structure. And what that effectively means is that every point in the hierarchy will look like every other point in the hierarchy just nested. And so another important thing, which is that every template will be allowed to have helper components and helper helpers. And effectively, if you nest something inside of a components directory and nested under yourself, you are allowed to refer to that directly. So instead of everything always being global all the time and having to use slashers like that to organize your code, if something is just local to you, you can just put it local to you and it will win. And this is like if you're writing a JavaScript file, you can write local functions. And you don't have to make modules for those. You can just write local functions as helpers. And this process is recursive just like in JavaScript. If you wrote a local function, it can also have local functions. So this is basically the same thing but just using the file system. At the top level, there's components. So you can have global components. And the same story applies. Hilarious. Anybody can refer to top level components. And components themselves can refer to things that are nested inside of them locally. I was at Intercom in Dublin a couple of weeks ago. And I did an exercise with them where they have hundreds of components. We went through all of their hundreds of components, looked at every single component that had a slash in it, and tried to figure out I had a hypothesis that literally every component that had a slash in it or almost all of them would be always the thing that, like if you said food slash bar slash bad as a component name, that would always be called from food slash bar. And that was actually true. We went through all their components, and that was true about all their components.  So this basically allows, makes that the convention. You can always put some components directly inside of you, and that works. Also makes testing much nicer. So pods, the key thing is that they're a repeating pattern. So at any point in the structure, you can jump five levels deep, and the thing you're looking at is the same as any other part of the structure. There is effectively an existing environmental model, which is like, here are some routes. They're nested inside of other routes. I have some components. They're nested inside of other components. They're nested inside this route. That's the thing that exists in the environmental model, but it doesn't really match today's directory structure. And pods fix that. It makes it really easy to relocate entire areas. You can just drag a subdirectory somewhere else, because it's all nested locally, it will all continue to work perfectly. Gives you a simple file system scoping for helper components. You can just put a component here and not have to worry about how it breaks everything else. And the same rules apply for all types. So there's always global names that you can talk about, but there's always a local, you can always override the global name with a local name, like again, JavaScript scoping. Part of this is add-on namespacing. So add-on namespacing is basically ability to use add-on stuff without it polluting the global namespace. So today, every time you use an add-on, it has to smash things to the global names. So if you have five add-ons or 10 add-ons or 20 add-ons, maybe some of them conflict. Maybe they conflict with your local names. They may conflict with local variable names that are on your component, right? And that's pretty bad. So this is basically a way of getting namespacing. Here's a slightly more advanced example that uses a bunch of features that are in the pipeline. But if you use Rails, you basically know what this means, if not, whatever. Like, basically it's cool and you'll learn it then. But the basic idea here is that you're able to build like significantly more rich packages of components with behavior and without breaking the global name. The basic idea here is that, so unfortunately, global namespace coordination is a hard problem, very hard problem. And decentralized namespace coordination is incredibly hard, maybe impossible. Good news is we have already agreed to do some kind of global namespace coordination, which is our MPM package names. So we can just say that our namespaces are the same as your MPM package name and then you automatically get the namespace coordination that is very hard to engineer. And so, yeah, this basically means that you can reliably say like some name, colon, colon, something else and you know that it's referring to a specific thing. This applies to anything in add-on. So I don't know if people have written here, have written add-ons, but when you write an add-on, you have two directors, you have app and add-on. And add-on today is kind of anemic because it's hard to get access to stuff inside it without going through a bunch of imports and JavaScript stuff. The idea here is that if you put stuff inside of add-on, it works exactly like app except this namespace. So you have to use the add-ons namespace, but now it's very easy to get access to it and it leaves the app directory inside of your add-on for global. So just like, I could say to you, like everyone chooses modules in JavaScript, but occasionally you need a global variable for some reason and it's good that you are still allowed to do that. Basically app slash star star. So Ember itself, for example, comes with a bunch of components like select and input and that's when Ember itself becomes organized as an add-on, which is happening soon, Ember will put its own stuff inside of app and like add-ons are allowed to do that, but probably should do it with great care. Pods stage the engine feature. So the engine feature is basically, it doesn't really make sense to have an engine feature that lets you mount a whole section of things without pods because then people will end up using engines which have a lot more isolation than you really need just to model pods and you'll probably end up with a lot of people using engines for things that are unnecessary. So engines are being actively worked on but it's good to have the features together so people don't end up using a very, very isolated model unnecessarily. And I promised I'd come back to this. Pods stage routable components and the reason for this is that if you try to figure out how to describe routable components in today's world, there are a lot of file system conflict problems. So you might already have a component called article or imagine your route is named article, like my article, you may already have a component named that. So it's hard for us to figure out do you mean a component here or do you mean a route? There's a lot of other related issues like that. Now these issues are solvable, we could in theory solve them but the much better solution is to just do what I showed before, which is that your routable component is just a couple of files in your route directory. We could actually also do a hybrid model today where just the routable components went inside your route directory. But and we'll probably do some variant of all this once we have pods for transitioning purposes. But we really did want to figure out the full story in a world where that is where the directory structure will end up for real. So I think there was a hesitancy, hesitance to land routable components in a world with suboptimal. Yep, wrapping up. Almost there, I have like four more slides. There's a hesitance to land it when we knew that there would be a lot of compromises that would be easier to understand with pods. So it's coming. Glimmer two, coming soon. I actually haven't talked about this at all before public except on the Intercom video that you should watch if you're interested. It's like pretty long and detailed and boring but might be a- You're selling it. Totally selling it. Okay, so Glimmer one, the goal of Glimmer one was fast re-render. And we did that. Unfortunately, one of the consequences was that we got slower render. So, and this is especially unfortunate because what fast re-render effectively means is that if you have an array of 50 items in it and you have the arrays already in the DOM and you want to sort it and put the new array in the DOM, that will be fast. And that's a great thing to be allowed to do because arrays are common and it's very hard to use replace or whatever APIs that you have to use to teach Ember what you're doing to do things like a sort. It's very complicated. So, it's good to be able to do that. Unfortunately, the consequence of Glimmer one was that initial render got slower. In 2013, much slower. We're getting closer to the original performance profile but it's still slower. Basically, the goal of Glimmer two is fast initial render and fast re-render and we're working on it. Godfrey's working on it with me and hopefully it will be done soon. And it's a pretty big change. You should check out the video like I said if you want to understand why. The TLDR is append mode. The TLDR is that when you're appending into the DOM it's a totally different thing than when you're updating the DOM but Glimmer one forces appends to act like updates which means we have to put a bunch of stuff in the DOM just to get updated. It's because of some vagaries of how the implementation worked and Glimmer two has a separated faster append mode. That should be much faster. So, that's coming soon. Check it out and I'm done. Thank you.


We all know Tyra Banks is a supermodel and is the famous host of America's Next Top Model, but did you know that she was also somewhat of an interior designer and celebrity house flipper? Tyra long resided in a Beverly Hills mansion as well as a multi-million dollar New York City duplex, but she's also bought and sold multiple properties in the Pacific Palisades area, making her current living situation a little bit of a puzzle. But not to worry, in this video I'll give you all the details on Tyra's mansions we even found the listing. Tyra Banks is a supermodel, TV personality, actress, producer, businesswoman, author and more who began her modeling career at the young age of 15. Whether she was gracing the covers of GQ or walking the Victoria's Secret Runway as an angel by the early 2000s, Tyra was officially one of the world's top earning models. Over the years she's built a pretty impressive resume between creating and presenting the long running reality show America's Next Top Model, hosting her own talk show which I used to be obsessed with and much much more. Could Tyra also be America's Next Top House Flipper? The supermodel has proven that not only can she rule the runway, she can rule the real estate market too. Over the past few years she's bought numerous homes in California, renovated them and sold them for a profit, showing no signs of stopping either. Most recently her sites have been focused on the Ritzy area of Pacific Palisades where Tyra is thought to currently live in a home that she didn't resell obviously. It was reported she purchased an outdated four bedroom home for just over 3 million here that she plans to transform into a farmhouse meets beach cottage and sell but we'll look at that in just a bit. With an estimated net worth of almost 100 million dollars, Tyra can clearly afford these house projects. Not to mention the model turned real estate mogul is pocketing a pretty penny with each of these property investments.  We'll be taking a look at where Tyra Banks calls home from her modern mansion in Pacific Palisades to her long time Beverly Hills spot, some of her fixer uppers and more. If you liked these videos, make sure you're subscribed during that bell to be notified when we post you can always be up to date. We've also done house rules and likes of Chrissy Teigen and Demi Lovato and we'll link to some at the end. Follow me on Instagram to chat and as usual let me know who's house tours next in those comments down below. Now let's get into this video. First off Tyra long owns a Beverly Hills home from 2004 until around 2016. Back in the early 2000's a supermodel paid just under 4 million for the place according to records. She had fallen for the property the moment she laid her eyes on it and she claims that. This stunning Spanish architecture spoke to me the minute I walked in the door. I loved living in this house. The Spanish style colonial home was built back in the 1920's and was once owned by actress Marianne Davies. It's on a quarter acre of land in the exclusive Beverly Hills post office area much loved by celebrities and the estate could be entered from a gated courtyard with fountain. Tyra's long time home spent 5,740 square feet of living space with four beds, five full baths and two half baths. Full of preserved elements of the original architecture such as vintage French doors, terracotta roof and exposed wood beams. There was also a unique rotunda shaped entryway which was visible from the exterior. Among the common areas there was a living room, formal dining room, sun room, library and great room topped with rustic beams and views of the outdoor area. Not to mention there's an impressive chef's kitchen which was one of the rooms Tyra remodeled while living here. In fact she spent a whopping 2 million bucks on fixing up the place, also adding an outdoor kitchen and outdoor living room with a fireplace and TV where she said she liked to spend her summer evenings. Tyra transformed the large garage into a home gym too. Tyra's previous master suite here offered a sitting room, a model worthy walk-in closet as well as a safe room inside.  Of course there's also that outdoor kitchen and dining room Tyra added on which provided seating for 12 guests. Although she listed the place for about 7.75 million it ended up selling in 2016 for 6.3 mil, still giving the supermodel a couple million more than she paid. So like I said Tyra has become a house flipping queen it seems and her sights have been focused on the posh area of Pacific Palisades in Los Angeles. Pacific Palisades is an affluent neighborhood between the Santa Monica Mountains and the Pacific Ocean where many rich and famous choose to call home. Tyra also grabbed herself a home here it seems because it was reported online she bought this place in spring 2018 and we found the listing where it shows it was last sold in March 2018 as well. This makes me almost certain it's a spot Tyra is currently calling home with her family these days. Anyway she spent just shy of 7 million on the multi-story contemporary style mansion. It offers perfect ocean views sitting just above the downtown shopping and dining district of Pacific Palisades. Tyra's current modern mansion was built in 2014 and spans 6,160 square feet of living space with five beds and six baths. The exterior is made of clean cut white stucco and offers expansive windows and slim balconies all over. Walking in her home the front door opens up to a combination living and dining room with wide plank hardwood floors and windows with views over the treetops and Pacific Ocean. Less formal family spaces include an open style kitchen with sleek cabinets, marble counters and an oversized island with snack bar. There's a double-sided fireplace separating the casual dining area from a cozy family room with a brick wall, built-in media cabinet and wall of floor-to-ceiling glass sliders opening up to a small deck above the yard. The ground floor offers a roomy bedroom suite for guests or staff, a walk-in wine cellar, a home gym, a children's playroom and a double-height games room or media lounge complete with a wet bar, in-ceiling speaker system and 120-inch projection screen. Bedrooms in Tyra's home are well separated for privacy and there's an additional main floor bedroom that could double as an office. On the upper level you'll find two more bedrooms as well as a spacious top floor master suite which offers a sitting room, fitted walk-in closet and spa-style bath with walk-out terrace. Moving outside of Tyra's modern mansion, the terrace backyard offers a plunge-size infinity pool. There's also a fancy rooftop terrace with a built-in barbecue, fire pit with built-in seating, a partially sunken hot tub and of course perfect views of the ocean, mountain and city from every angle. So aside from that contemporary Pacific Palisades mansion Tyra is likely living in currently, the supermodel has bought a handful of million dollar homes in the same area over the last year or two. These homes she bought renovated and resold for a profit and there's been probably about five so far so Tyra has been busy. Most recently last year Tyra bought this home in Pacific Palisades over asking price for about 3 million that only spans 1,600 square feet of living space or so. This house has four beds and two baths and has been in the same family for 70 years of course in desperate need of a makeover. The traditional bungalow is in a desirable area right beside a high bluff infuse of the coastline but the home itself is pretty undesirable. The house is arranged around an entry courtyard and although it's clean and well kept it's definitely dated. The living and dining rooms have elegant but old-fashioned parking flooring and the tiny kitchen even has floral wallpaper. The carpeted den is anchored by a huge stone fireplace and has dark brown and wood paneling all over like it's from the 70s. Other features include a skylight toped sunroom, courtyard and a small separate backyard. Although this house looks super old school, Tyra claimed her plan is to transform it into a farmhouse meets beach cottage. We've yet to discover if her project is finished yet but I guess we'll have to wait and see. Like I said this is far from the first home Tyra's bought in the Pacific Palisades with the intention of flipping. There was this much bigger contemporary mansion she bought for around 7 million in 2016 and sold it for 8.9 mil as well as a few others. Long maintained a real estate foothold in New York City too. She lived in a giant condo here for some time on a high floor of a luxury tower in lower Manhattan's Battery Park City. She bought the place in 2009 for just above 10.1 million. Her property here is actually a combination of 4 units that span the 23rd and 24th floors according to The New York Times resulting in 7,000 square feet of living space with 5 beds, 5 baths and 3 half baths. Other features of her New York condo included multiple kitchens and kitchenettes, a dressing room, hair salon and a personal gym. Not to mention Tyra added a dining alcohol with bankette seating that was designed to feel like a booth at a Michelin starred restaurant. Move to the West Coast to raise her family and currently resides in Pacific Palisades but I'm not sure if she's officially unloaded her New York real estate yet. Dimension size condo came up for sale at 1. in 2017 for 17.5 million and on several other occasions. More recently the apartment was available to rent at the massive cost of 50K per month so I'm wondering if Tyra has found a tenant yet. So that's all I got for Tyra Banks and where she calls home and from what we've seen we can add real estate mogul to the supermodels already full resume. It's clear that Tyra has become a celebrity house flipper and loves nothing more than investing in a home and turning it for a profit. Not to mention she lived in some super gorgeous mansions herself. There was her longtime Beverly Hills Spanish Colonial style mansion where I believe her love of renovation and design began. Her massive New York duplex condo and her current modern ocean front home in Pacific Palisades. After looking at those places which one of Tyra's homes was your fate? Personally I think mine has got to be her original Beverly Hills mansion. I'm also really looking forward to seeing what Tyra has in the works for her latest house flipping project and what she's turned that outdated LA bungalow into. Be sure to let me know which of her homes was your fave down in the comments as well as what other celebrity houses you'd like to see. Follow me on Instagram if you haven't already and you want to chat and I'll see you all in the next video. Bye!


We propose a fast and efficient technique to create highly entangled states of trapped ions using a composite pulse resonant with the first motional sideband, which is robust to parameter fluctuations and operates on short time scales. The number of single pulses from the composite sequence equals the number of ions, and the approach does not require individual addressing of the ions in the trap. This article was authored by Svetoslav Sivonov, Nikolay Vvitonov and Natalia V Korolkova.


Hello and welcome back to the craft box my name is friend and today. We're back on the power one on one walk through episode 21 So in between episodes I May or may not have Opened up a new pack open up the new pack and got this first try So yeah, that was that was great I Don't know how but yeah, so I got that and Yes, so that really put me like what? So, yeah, that was cool But now we are going to be talking to hook tail Avery really you'll pardon me if I'm a wee bit skeptical You want to go to Valencia? You're mad my friend and I don't trust you Forgive my shipmate pirate. He's a grown old and spiteful There was a time when both of us fought against the Armada and we were glory that day is done Want to win me over take revenge on they who took my tail Smash some war for our ships and I could be convinced to help you Okay, so Let's let's head over there. Let's let's try out my new companion. I haven't actually tried Him at it. Yeah, I haven't tried it out yet Obviously Because I literally just got it before I started recording. Oh, I was I should have recorded it But I got it first try it was like what? Yeah, and then I opened some more on my other Characters character my witch doctor and didn't get any which is upsetting but um, yeah Which not good, but oh well. Oh, what am I clicking peep? Okay Warfret ship here we go. Okay, so last episode we Got back from our adventure in Monquista and we learned about this map That we need to try and save the map to Alderado we need to get that back Avery trick dust we need some dust off the guns gold And instead of just a cellist he wants to do that as well, which is what we got So that's cool, but now everyone wants us dead for it Which is understandable as treasure map who doesn't want treasure and a map like let's be honest I'm just going back up a bit so I don't get Pulled as soon as I go into yellow Yeah, that's cool Yeah, that's bored Okay, so yeah, we came back and then we had to defeat Finn and He's he was about to give the map to the Armada and Oh my god, so many things on the ship all the hell Um He was I thought I just saw something on my like what on my computer on my way Things in there and just sitting there.  I am a bad person So, yeah, they're mobilized mobilized fun, not So, yeah, oh we got home. That's good. Um, I feel the music's a bit quiet Let's bump it up a bit. I was actually I am just I think I know why it's quiet Maybe it's just That sounds a bit better. Okay so We're gonna move up slightly Well, you've got good range. It's so good Okay, you're gonna come over here. It's just good done. Okay. Here we go He's actually really good My he's so good Best companion ever. I think Yay, that's good So, yeah, I slightly changed up to Ed That new Armada companion, which is so cool To the mix which is great. I cannot reach Just Don't have the range for this, you know Yes, I should change it up Chantel's no longer in our lineup, but that's fine Attack, yeah, that's nice. Okay That was easy peasy So, yeah, I will defeat the other six of these off-camera and I will be back in just a sec Okey-dokey, I am back. It took a while. Let's talk to hooktail You're no spy. I'll give you that no armada flunky would ever draw such attention to themselves So what do you want to know? Yay, live a lot amazing You are no buccaneer, but you can still learn to fight Find me on Skull Island.  You'll need an indigo windstone for the gate salvage one from the wreck at the scurvy dogs hideout and return to us Okey-dokey, I will be right but once I imagine the scurvy dogs fade out Okay, we made it here. Let us attack these dogs Are you gonna fight me? Sweet We should be able to do this in one battle. Let's go. We are Actually wait, we're just gonna I'm sweet. Okay. Looks easy crazy fishies. Yes We got up here in here. It's cute. Oh, he's good First strike nice repel border. It's not nice attack great Ratbird mega hit yay boom Bladestorm yay half-health yay first strike. No Engine strike is not good. Okay. Oh, yeah, yeah Nice he's so good that I'm out of dude. It's so good Like 11 item. Okay. I Think it can take a hurt J's They can also deal some damage as well man He's good. He be good. Yeah Okay, let's do one of these Cheeky one of those done sweet. Okay. Nope mega nice Nearly dead. This is gonna be real quick. Okay. Oh Attack yeah Yeah, it's nice work bladestorm. Yes. Thank you. Yes. Nice work Okay, right beds really good. Okay, let's see if we can get him. They still on quite a lot tall ish malpug cool name, bro not She what we're gonna super hit you cuz that's fun. Okay. Let's go. Oh nice That was good one there It's really cool because he goes backwards as well, which is cool. Okay. That was easy Explore sunken cabin. Oh no, where we going now? What we got to do Kind of worried. Oh, I see a schedule. This isn't good. This means a battle Into new Here we go ten eight seven six five four three two one Okay, sweet Who are we fighting? That legit nearly scared me the kind of Loki did scare me. I Was not expecting that. I think it did that to me last time as well. I'm like what it just like pops out of my room now what? Loki really scared like panicking really scared Like dying inside agility is always good the fish is Go rumba rumba I've watched no, no, that's fine Watch nice boom boom. I swear.  Oh Cheeky Boom almost forgot that we have um that I have double cap like I always forget. Oh He's going through the ceiling. Wow Rectal so many hurts. It's so good Okay Take him Attack him. Yeah. Yeah. Yeah. Yeah Okay, hopefully I don't think he's in my range yet, so I might have to move The dodge the dodge first track, so it's good. Oh the her first track, so it's good Oh dodge, oh the pit Here we go.  Oh, he's moving. That's nice. Yeah hit my pit. That's always a good idea No, don't miss the shot, sir Don't flank. Yeah Don't the door this this is not tonight. It's this is bullying Actually, I'm back now the big shock, so that's good It'll put a bit more damage on him. How much health he's got 57 Great actually, I might have some Yes No No, no, come on pity you can do it. I believe in you No pit. Why why you do this pair? I can't get in it too far away Oh, there we go. Sweet. Nice. That was easy peasy. I sure was, but that was pretty good Okay Let's do that all the go I Winstone Winstone is ours now. Let's go talk to hook tail and learn what he doesn't want to tell us Okay, I lift the mark So there's always good. I don't know what's up with my mouse. It's being weird. I Don't know The windstone is all well and good But the Monquistans have the storm gate to Valencia blockaded at their end. You need travel papers to pass We have friends in Monquista. Yes But that's not the worst The storm gate doesn't go straight to Valencia first You must pass the deadliest skyway in the spiral Avernus hook tail is right You'll have to cross the skyway full of death through each Valencia, but if you make it you won't find the Armada waiting for you if by some miracle you reach Valencia find a unicorn named steed there show him this pendant Steed used to be one of us one more thing that ship of yours. It will never make it in Valencia Here take mine. You will make far better use of it. I think Oh yay Free ship is always good. Okay Um, I will be back all once I am in Monquista Okay, okay. We made it to Monquista once again back Um Into the opposition stronghold seems like only Two episodes ago we were here. I did nothing to see you again. Welcome I'm so glad to see you again captain, and I'm sure something very important brings you back to us But I'm afraid I'm terribly busy right now My efforts to win over the noble houses require my full attention Please if you have business speak to general Cortez. He will help you Oh, could actually courtiers You're going to Valencia I won't ask why my small young friend. Your business is your own. I will help however I can yes, we can get permits that will get you to the storm gate But only a madman would ever willing to enter the skyway of Avernus Getting papers will take time Will you help the opposition while you wait? We have allies and mercenaries are plenty, but Still lack ships in the skyways. We are sorely outnumbered Attack royal ships and you will even the odds queen Eleanor will have your papers when you are done Okie dokie, um, so we will end the episode here Next time this is I know this is slightly shorter episode, but next time we will Be going into the valencia and probably doing all of valencia in one episode because fun Um, so yeah, this short episode will be full about long episode next next time So yeah, thank you for watching remember to subscribe like if you want more and yeah, bye