for what has been an extraordinarily full two and a half days over dinner last night. We were saying now that thing that happened yesterday and then realizing no it actually had happened that morning. But yesterday really was a 10 out of 12 and we went through an immense amount of content and we started with really good content on Wednesday afternoon when we first began. Throughout this we've had a variety of moments to speak publicly but I am absolutely certain that there are things that have not yet been said that need to be said here at this confluence of the rivers of audience engagement and community development. You know just in the brief conversations that I've had with people when I haven't been logisticating with the amazing staff what I've come to see is that there are complexities and nuances about the work that we're doing to engage our audiences to build our communities that need to be aired out among us and that's what this space is for. So as with everything else we've done we're going to try and keep a time frame on any public speaking that you want to do so that we don't privilege people who well like me are able to speak in paragraphs kind of strung together and could do so for 10 minutes at a time but really who needs to hear me for more than 90 seconds when I'm not giving instructions about buses that is. So I'm going to open the call on the floor we've got these two standing mics and I'm going to encourage you to say what has not yet been said and to say what has not yet been said around balancing audiences, new audiences and existing subscribers is the place that I'd like to start because that's where Lynn Carruthers is standing and she's going to capture some of the brilliant ideas that you have about this. Recognizing that we had some content reporting in your cohorts which was fabulous we'd like to encourage is there more to say? Is there more that you're still struggling with? Are there nuances of these conversations that came up over the time that you were working on this together or pieces out of the small group breakouts that really deserve to be heard by everybody that hasn't been heard on Twitter? Dale are you gesturing toward us? Would you be so kind as to approach Devin who will meet you in the middle because we believe in meeting people close to where they are but not actually where they are. And please tell us who you are even though I'm just calling your name. And what I'd mentioned it I guess yesterday or day before what I would have liked to hear heard because I was I was invited to come to TCG as a not solo but as a playwright and as a performer how playwrights and performers felt, feel about their individual participation within theater in term in reference to groups. Because it's annoying because I can hear myself you know but in reference to their experiences in reference to groups in terms of their individual voice how it gets heard how it gets lost in terms of lack of a better term politicking yeah. Do I make any sense? You do I would love to hear your experience with that. Well I think I said at the other day where sometimes certain things that have written this doesn't rep this this doesn't rep that so on the one hand it's about trying to get group how to call it certainly we need support but on the other hand you've got the individual voice of the artist which may not coincide with a group but still needs to be heard because the role of theater I think we're certainly supposed to entertain we're supposedly also supposed to educate and Elizabeth Ashley said it best she said the theater is supposed to be a dangerous place. Where's the danger? Dale in the wild card breakout yesterday you told a story. What story? The story about how am I supposed to sell rock and roll from you? That story can you just tell that real quick? Okay well very briefly this new solo that I'm doing is called forever New York Theater workshop is going to do it and it was done at Kirk Douglas in LA we were at I just left the Long Wharf and now it's going there and it also goes to Portland Center stage I guess I mean a lot of us right outside the box so we'd like to think we do what some of us don't and I'm a tremendous rock and roll fan and so this piece starts and ends at Jim Morrison's grave in Perlishez Cemetery and as a young person and even now as a middle-aged woman I still listen to a lot of rock and roll and the theater the theater is not here and it's not right for me to just call them out like that one of the places that I sent this script to I was told I love this script but I don't know how to sell a black woman listening to rock and roll to a black audience there's the story and also they said you know and they also said you know white people would be fascinated by this and I said I guess I said I can't even wrap my head around that kind of pretzel logic because that's exactly what the hell it is are you pointing to who should be our next speaker so this is what I'm saying that kind of compartmentalized thinking and then what I would have liked to hear heard while here maybe it's another time yeah right the other you know other people who are working you know the working artists they're you know how do they feel parallel not paralyzed but are they I in other words I've seen people like change their work because it didn't fit a quote-unquote group ethic I've seen that happen many times and I would have loved to hear some more about that here so I've had the mic you're good you're good so Annabelle here we go oh me yes and tell us who you are please yep Christine Bruno inclusion in the arts sorry to be a broken record but I'm gonna bounce off what Dale just said and I would I've heard so many great stories and so many enthusiastic representatives for increased diversity in everyone's theater I would just encourage people to make sure that you don't compartmentalize by what Dale just said if you if you want to do a play that you would can set your subscribers or audience base would be you know would consider diverse don't think that by doing that one play that you've that you've done your due diligence try to just expand your your thinking and expand your programming to not even think necessarily I've heard it said a lot today that diversity is different things different people I know I have trouble with that only because I think diversity is all things everything we think is diverse should be considered diversity diversity should be all inclusive so we shouldn't say oh your idea of diversity doesn't jive with my idea of diversity or my theater's idea of diversity is different we all have you know things that we are more concerned with than than other things but try to look at diversity as all inclusive including your programming and I just encourage everybody to not put diversity in the box brilliant thanks great over here let us know who you are I am Sarah Madden from the Wilma Theater this this conference has been really great and I think one of the things I've been thinking about a lot is the age of our audience so our existing subscribers our that they're on the older end not old but on the older end 50 plus and our newer audience they're in their 20s and they're not really getting along and I would love to hear ideas you know offline or whatever about how to get them talking to each other and mentoring each other and seeing our theater through each other's eyes fabulous yes at our last audience revolution convening was it Gabe Zitzeman who offered the notion that many of our subscription audiences are somewhere between 65 and cremated so we're working on changing that demographic all right I want to move down the topic line yes ma'am oh before this was not on that topic because it was riffing off of other things people were saying okay tell us who you are I am Madeline say it from Amarinda so sorry just driving off of a couple things other people said I just wanted to draw attention to something in terms of the way the word diversity is being used is I think that the problem is is that it's being it is being used as a way to facilitate checking boxes as opposed to a way to facilitate inclusion because actually when I came here with a mind for authentic partnerships with diverse audiences what I meant was non-native audiences so it actually a lot of like the things that came up weren't as useful because I actually was looking at including you know white audiences and everyone was assuming that the only thing we were looking at was checking boxes and that's super problematic and ultimately doesn't put us all in the same conversation which is I think what we were shooting for and that I think a really great concept that came up in a question mark session was this idea of new ways of listening and that was something that was really exciting because it was a small room of us and so we just listened and we sat and we had a great moment to talk about new ways of listening to our communities in a way to try and detach ourselves from some of the lenses we bring to the conversations and I think that that is something that is I think getting forgotten in the way that we actually build our partnerships out of respect as opposed to facilitating a need we have to get grants. Well said. The trouble with the dominant culture is it dominates. So we've got Rachel on the queue and then two others over here so Annabelle if you will shift over that way. Go Rachel go. So this is riffing I think off of some of these things and this is probably not as well thought but I'm the in article one I can't believe I'm doing this. In article one of UNESCO's Universal Declaration on Cultural Diversity in 2001 there's this great quote I think as a source of exchange innovation and creativity cultural diversity is as necessary for humankind as biodiversity is for nature and I find I have found it extremely problematic that we have not been addressing power dynamics and privilege in this gathering. This is not at all a slight to TCG because I think this has been fabulous and you know I love you because I try to tell you all the time. But I sense that there's a real divide in this room and there's a real divide between language that's being used and I don't mean there's like one group and another group. I think there's multiple groups within this and I'm having a lot of personal struggle with that and I'm finding a lot of and I'm seeing a lot of nods and I'm hearing people talk about that and I've connected with some people individually about that. I think there's a group of us that are completely unaware of this and I think there are some of us that understand it in a way that others of us don't.  I run a quarter of a million dollar operation. We're now a quarter of a million dollar. Three years ago we were $50,000 and we just started working on it because we said it was important and that was the audience we wanted to be working with and I think it's okay if it's not the audience or the community that you want to be working with. I really respect that it's not because that's, I want to go back, sorry and I'm going to wrap up in a second, because that's biodiversity and cultural diversity but don't say that it is when it isn't. Done. In the wild card, the second wild card breakout yesterday which was the one with the moonshine. Our topic ended up being power and power dynamics and so if you look at the other bucket you will see some writing and some mapping around the discussion that we had there but that was a small group discussion. My experience of coming to TCG conferences for the last 24 years has been that there's a lot of unacknowledged power dynamics within the room and that TCG has deliberately endeavored to shift those power dynamics. When I first came to my first TCG meeting in 1991 it was all Lord theaters and a couple of us felt like, maybe it wasn't but it felt like, a couple of us scrappy SPTs. The balance of the population of TCG as I understand it has shifted over that time but we are still very much in that struggle and it's a struggle that replicates the larger struggle in our culture right now. So I want to affirm what you were saying and affirm the fact that it is really troubling and really difficult to bring up. Thank you. Okay, tell us who you are. Hi, I'm Katherine Kovner from the Playwrights' Room and I just wanted to riff on a few of the things that have been said. I think in terms of diversity, I think that one of the impulses that has made us all think about this is the desire to mirror the society around us and in my thinking about diversity that's really the impulse that I'm starting to try to go back to and I think if you think about it that way it's a very holistic way and a little bit more intuitive than the checking the box approach that allows you to think about all of the categories at once and just think about are we representing the society that we see outside our door or however you define your community, you know, in your city, in your state, in your nation and, you know, so that's what I'm trying to do and I think it's an approach that I encourage. It can be a little challenging for those of us who live in places that are 97% white. So looking at those demographics and... Yeah, nation. Nation. There you go. Great. So right behind you we've got two. Pick one. Oh, wow. Yeah. You really can't hear yourself. Let us know who you are. I'm Elizabeth Nearing. I work at Long Wharf Theatre and just off of the conversation we're having about diversity right now something came up in the artistic breakout the other day that I just wanted to talk about intersectionality for a second and the fact that people aren't just boxes, right, and that's something that I think most people in this room I hope agree with and that, you know, when we're talking about having women's voices also having like a multiplicity of different kinds of women, women in power, they're not in power. They can be strong or they can be not strong. That's okay. And that's the same for races, for genders, for all things that there are so many different kinds of people that can be represented on our stages and in our stories and the way we talk about them that it's hard when we're saying, oh, do we have this kind of play? Do we have... And trying to push in season building, how do you make all these different kinds of things a part of the conversation? Short, sweet. Thank you. Brilliant. So let's pass the mic right over here. Hey, I just wanted to go back... But you must tell us who you are. Oh, sorry. I'm Joy Meads. I live in L.A. I work at Center Theatre Group and I'm a member of the Kill Royce. So I wanted to just talk about the revolution, part of the audience evolution and to say that actually I just think it's gonna really help if we acknowledge the fact that what we're talking about in this room are some pretty radical shifts in what we do, how we do it and for whom. And we've heard, I think, at the edges of the conversation some pushback from people hearing complaints, people getting secondhand reports of accounts from their traditional stakeholders that they're not entirely happy with everything that's happening. And I think it's actually important to be very frank about the fact that what we're talking about is a change. For many institutions, I should be clear, not every institution, you know, and that I think the more honest and frank we are about this change, the fact that it will represent a loss for some people who are very comfortable in the status quo, right? But that we believe that it is both necessary for our survival and the morally right thing for us to do as tax-supported organizations are given exemption from paying taxes because we work for the public good, right? That we really want to serve our communities. So I think acknowledging that, acknowledging the loss will help us to make sure that these programs don't get circumscribed, contained, pushed underground. You know, all of those things that you can see happening sometimes when there's a conflict of vision serving those people who have not traditionally been powerful stakeholders. Is there a story that you can tell us out of your own theater? I mean, you're one of the largest theaters in the country. Artists, most core values and work and engaging the community through that, we need to be also protecting that work. The work of the artists at the core who are maybe training every day on a regular basis or undertaking deep research or spending long periods of time to write a script with great support. I think that that work cannot be... I just want to make sure it's not forgotten because that's the work that forms the purpose and the core of the engagement and whether that's with an amateur artist or a professional artist of any ethnicity or background or perspective, that for me is where the real juice is in the conversation. And I also think we need people like Pastor Mike to remind us of those core values, but being reminded is not enough. It's about doing the work, going into the rehearsal room and practicing exactly what we're preaching. And I'm really looking forward to seeing many of you in Cleveland, Ohio for Game Change. Okay, so I think we're moving to Randy, and then if you'll... Randy had the mic off to Rebecca now that she was waiting also. But who are you? I'm Randy Reyes, a Mu Performing Arts in the Twin Cities, an Asian-American theater company that does theater in Tyco for the last 23 years. And I just wanted to... We talked a lot about diversifying audiences, and I just wanted to just to remind or to just bring light to the fact that there are theaters of color doing sustainable work in these communities. You're here. And to please find equitable ways of working with that and really think about power dynamics as you are working with these groups. Please use us as a resource. We do want to work with you. We do want our best for our community, but it takes a different way of working that we have a shared power dynamic so that we're not appropriating our community but lifting them up and giving them a voice. Well said, sir. Well said. Great. So, Rebecca, hold on one second. We're going to go all the way to the back of the room. Hello. Hi, my name is Kristen Schweitzer. I'm with the San Diego Repertory Theater, and I am the Partnerships Manager. That's a title I made up because the question became, why us? Why should this African-American dance group come to our African-American play when we won't go to their work, when we won't form that relationship? So we spent a year, or I spent a year, going to these places without flyers and just meeting them and just watching their art and not saying, okay, see you next time. We have a black play. Peace. Because it's not about getting as many of this minority into our door. It's about forming a lasting relationship where there is no, well, how do we exit softly? Well, now that you've trusted us with your history and your culture in this show, we're doing a Latino show. I know you're not Latino, but would you like to come? Hi, I'm Rebecca Novick from California Shakespeare Theater, and I wanted to talk about the word revolution as Joy was thinking, for me, for my own organization, and I think for many here, just kind of looking at this desire that springs up among some folks to see what we can change without actually changing. Like, could we get more racially diverse audiences without doing anything different, like not doing any different plays or casting actors of color or changing out feels in our lobbies? And I think if we are really talking about revolution, I'd love to see this space move away from kind of tips and tricks to look like we're changing but not really calling for change. I think that when we go that direction, then we have to talk about internal change and I think I really want to say so our organization has begun to often and publicly use the phrase historically white to describe ourselves. So we are a historically white audience with a historically mostly white historically white theater with a historically mostly white audience, by which I mean we're a Shakespeare theater with mostly white staff and a mostly white board and a mostly white audience and for historically white theaters one of the critical steps of being part of this revolution I think is to get your staff and then the circles beyond that working on what Rachel was talking about we are doing anti-racism training, thank you Carmen with our staff, we are beginning to broach that with our board and I think that that conversation needs to move more explicitly into the space as well. And many of you may be aware of the incredible debate sparked by east-west players in their provocation to use the Rooney Rule and to start to build staffs of theaters that actually genuinely, staffs and boards of theaters that actually genuinely reflect the demographics of the communities that we're serving which in California would put you in what is called in demography terms a majority minority where Eurocentric work no longer dominates because Eurocentric people no longer dominate. Radical shift. Okay, over here. Hi everyone, I'm Samantha Weier, I'm the director of education at Shakespeare Theatre Company in DC and I just wanted to take a moment to remind everybody that you all, all of your organizations, wonderful organizations as you're grappling with this, have a very wonderful tool in your back pocket and we are a group of people that have as Liam Jason says, a specific set of skills. Your education people have been listening to other groups have been creating deep programs, have been working with people to have a relationship to the organization not just on stage. And so I just want as some of us in education have been talking, it's like ask us, we have ideas and I would encourage artistic directors, executive directors this week, ask them to come in your office and just have a conversation about how do you think we could engage our community because I bet you they're going to have some ideas. Brilliant. Coming in the back, back here, there we go first here and then back there, yeah. Somebody talked about, I don't know your name, but please tell us. Sorry, Maria Elena, I'm from Chicago, we're a theater for young audiences, we're part of a social service organization so we have the very odd situation of we are in a very, in a neighborhood that has become very hipster and young and predominantly white but it is historically a very immigrant neighborhood and it has been Polish and Ukrainian and it is now for the most part Hispanic, mostly Mexican but also Central American and etc. I want to talk a little bit about the engagement part of an audience engagement and community engagement and I think that I mean Donna Walker Cunin is one of my heroes and she was a professor of mine and she's wonderful and she wrote an invitation to the party and I think that we assume oftentimes if we just invite people to the party they will come, right? And I think that we need to also think about what kind of party it is where the party is because for many communities and I, you know, my family is historically Puerto Rican because I grew up in Hannibal, Missouri but my extended family did not grow up going to theater, it is not something that you do I lived in Mexico for a while and so I know also that way that actually stepping through the doors of a theater is not something that the vast majority of the population accepts as a cultural right that they have so I think when we think about engagement we just assume that that means getting more people into our doors and that may not be the case it may be figuring out either what the programming is and if you have tackled the programming great, wonderful and if you're wondering why they're still not coming you know it might be a price thing but we have a lot of free programming and we still can't get the community to come and it's a built in audience of our social service organization they're still not coming and I'm the only person with a historically Hispanic background in the office and I say think about maybe taking the party to them because if you want them to engage with you like you were saying it's not just about getting them in the door so we're going to go to Steve over here and then the mic's going to move to the back of the room I'm Steve Martin with Child's Play and very interesting with Theater for Young Audiences are that we perform for schools and so our audiences actually don't select what they're going to see and so when we look out into our audience and I'll say probably 20 years ago our organization started producing bilingual plays because we started looking into our audience and started realizing that it was changing dramatically and that 65% of our audience now we believe are Hispanic and that we have to put work on our stage that is authentic to their experiences and so we're actually trying to make sure that we keep up with our audiences and they're changing demographics and how we represent their families on stage with single parents with multi-ethnic families we're kind of wrestling right now with young families and how we represent those on stage so that when that young person sitting in that audience they're saying to themselves I know those people that's my family up there on stage I'm getting it and I'm understanding it and so we were kind of pushed in another way to diversity now internally we're like failing miserably on that and we need to be more purposeful and there was one more thing I wanted to say and I can't remember what it was so I'm done great, okay back here tell us who you are sure, hi, I'm Cathy that switch and just two things one is that because I'm very passionate about the word diversity as an artist and as an artivist and so I just wanted to say that let us not forget aesthetic diversity in this conversation because I think sometimes that gets put somewhere else and it is part and parcel of what we do and I just want to remark on something about moving the field forward which has to do with that revolution has to do with that and so it's ongoing to quote Pastor Mike from yesterday ongoing but I think that the question being that this is just the revolution convening now but the revolution has been happening it's not like it just started today and that maybe we're playing a bit of catch up some of us which is okay and also to just acknowledge that the furthering of a single institution is not the only goal but the furthering of the field which is why I'm just going to encourage you again that diversity be also aesthetic great so I'm just going to give our mic runners a heads up we've got time for two more we've got one there and one there anybody else who's dying to speak and Fay Harga you're going to have the last word okay great tell us who you are so I'm Sarah I'm the managing director at company one theater in Boston and I had this weird conversation with a couple of board members that struck me as weird and we have a very young audience we have a 55% of our audience is under 35 and we feel like we've done, we're 16 years old we've done a lot of work it's very mission driven that we have a very diverse audience in lots of different ways and a couple of board members were like well we need to focus on traditional audiences now because we need to increase our budget we have all these goals so that's what we have to start doing and it kind of I was really taken back and I've been thinking a lot about why all of a sudden this happened and so part of it I think Melissa Hillman kind of touched on this in one of her blog posts what is really kind of I want to make sure we're talking also about the philanthropic community a lot of the I'll speak locally anyway a lot of the money that goes into some of this work that we talk about around engagement seems to really be about changing large organizations and not focusing on some of the smaller institutions that are seeing at least some success in what we're talking about so I want to make sure that was kind of in the room too I know we have some philanthropic voices in the room but that at least locally feels like a huge conversation that kind of is not really happening so there are two resources I want to offer on that one is an excellent study that Holly Sidford authored that pointed out that 55% of the money goes to 2% of the organizations in arts philanthropy the other one is if you want to know what grant makers are thinking much of grant makers in the first content is public on their website it's giaarts.org check me on that Cheryl am I right on that arts.org and they have just published a statement on racial equity in grant making recognizing that doesn't cover the entire waterfront on diversity but it was a powerfully important statement for the organization of grant makers in the arts to have made and they have an ongoing racial and social justice work group that's focusing grant makers attention on that yeah giaarts.org I believe it's .org it is .org I have had confirmation from the field ok so we're going over here and then Fay has got the last word on this we'll have a little song and we'll hear from our fearless leader Teresa that's how it's going to play out tell us who you are hey Dan Barnett from wow this is odd that plus my allergies it's really really echo in here I'm Dan Barnett from National New Play Network and I just want to give a little shout out to TCG and take us back to where we begin with the cohorts thing I have the great privilege right now of working with what I believe are two of the most innovative productive cohorts working in the national theater right now and at NNPN where we are really changing how theater is shared and created through the new play exchange and all the so of course there are other programs like the rolling world premieres if you're not familiar with us see what can happen when you put 90 theaters that are all focusing on the same type of work but it's in many different ways as possible into a group and the network has been pretty astounding and will continue to be the other thing that I'm working on I know some of you were in sessions with me is that the women's voices theater festival which is going to happen in DC this coming fall between September 8 and October 31 there will be about 60 fully produced world premieres of plays by women happening in Washington DC in 55 different theater companies coming together to work on this project we're just getting ready to announce two industry weekends the first weekend and the third weekend of October you can come in and see anywhere from 20 to 30 different pieces if you want and you're really busy but there is such a great power in working together with other organizations that are not like you that I want us to remember always that that is really important so take these things, these contacts you've made this weekend and remember to move those things forward because that's how in our world work gets done beautiful thank you last of our comments from the floor please tell us who you are my name is Faye Hargate I am education associate at Cleveland Public Theater and I just wanted to say human to human connection we talk a lot about connecting with groups and when I think of this group and what I remember from the last three days is the people the actual persons that I connected with and I know if I have an authentic relationship with a person that will validate my organization myself and that invitation to come to my organization because honesty and trust has been built in reciprocity through attending and through having a community and a relationship then that human to human connection is the basis of desire and of the impulse of why we're coming from and also active and honest curiosity you know it's not just to like check a box or to get the money I mean of course that's important because we all want to be thriving companies and we want livelihood inside of our theaters of course but if you as a person are actively curious about someone one person and build that relationship that will have a multiplying effect I believe I've seen with the work at Cleveland Public Theater yeah okay we end with Cleveland because we're going to begin again with Cleveland in June alright this might take a second to get all our sound mix right because we didn't have time to sound check this many many excellent things were tweeted to hashtag banjo lyrics you'll hear a few of those in this tiny little diddy to close us out make sure that you can hear me sing over the dang banjo there we go wha


If it's really important to have this opportunity for the community to actually get together in real life in person. There are some people I literally just like see maybe like two or three times in a year on these conferences but it's like always great to just like reconnect. I think actually I'm just here for the merch. In Ember, most of the people I talk to try to converge on one solution essentially and not do quite different things. We're building it together. We're the together framework. I guess if you want to say that. If the community is the one that's driving us anything, it means the community decides what sort of problems are we facing. Maybe those are problems that are more or less the same. You end up having solutions that kind of solve problems for everybody else. I really like that and I really recommend that people watch that documentary because I think it captures a lot of what I really loved about the Ember community back then and again it's like a time warp in between but I feel exactly the same way as I felt in 2019 about that. Okay, so that's basically reconnecting I think. I've said what I didn't say. I'm a little distracted here but I will get back on track. So in between the time we started Ember and now I had two kids during COVID I had a kid. I think he was going to come back on stage but I think he is probably six years old and a lot of time went by. So he was on stage in 2017 and when he was zero years old. And I think one thing that's really cool about Ember is that Ember is a part of the sustainability story. We believe in not burning people out so we can't have kids. We believe in making Ember sustainable for our volunteers contributors with kids. And I think in general I really think Julia's talk is going to be awesome. Believe it or not raising kids has a lot in common with building a web framework the way that we do. And I think Julia's talk on PACSEN you should definitely go see it. But in general really the reason this slide is here is that I've given a few talks since COVID like a handful and I keep saying I should really put my kids on the slide because it's a big part of who I am. And I kept forgetting so there we go. Had kids that's a big part of who I am. It continues to be a big part of how I think about Ember and its sustainability and it's important I think to us as a community that it makes sense for kids to be part of it. Okay, so big picture. I think the glue that I got from Julia's talk.   And it made me think that what's really good about Ember is that we have these building blocks and I'll unpack this throughout the talk like components, services, routes that are as a conceptual matter. They're like these building blocks that I brought a prop. They're like these building blocks that like you kind of if you think about what is a service ten years like eight years or seven years ago and what is it today? Sure seven years ago it said Ember dot object dot extend or something like that and now it doesn't but how you think about it as a user, as a community member, as a developer, as a beginner, as an expert all that is basically still the same and I'm going to unpack this like I said in a bit but basically the idea is that the inside of the building block that the reason it's glowing is the insides can change, the insides can like do whatever but the way that the building blocks fit together doesn't change and that is as I will unpack later a big part of what makes it possible for Ember to have a sustainability story and have an evolution over time story that works as well as it does and I think it's underappreciated but it's because of the way we architect and how we think about the concepts. So I started programming in 2004 and Ruby and Rails changed my life. I basically was programming PHP for like about six months or a year before that. I learned about Rails and the reason that Rails changed my life was at that point I was really a beginner and it was like writing raw SQL inside of PHP was not something that was getting me very far. It's not like I couldn't do it, it was just like taking me a long time to do anything and the really big deal about Rails for me and the thing that I really tried to bring to Ember and I think makes sense is Rails was not a tool that was like for beginners and then there was the more expert version of Rails. DHH should say there's no easy-make ovens, right? And the idea behind that is there should be a way of using the tool that makes sense for beginners, there should be a way of using the tool that makes sense for experts and there should be a feedback loop between those communities and so when I started I was like literally just starting and Kaz who had been programming for years and like worked with Jboss and stuff like that was using literally the exact same tools as me and any thoughts that I had about whether the tools were good or not I could talk to him as a super advanced developer and it made sense and that idea of like everybody is basically working with the same concepts is the thing that I took away from Rails, it's the thing that made me able to be a programmer because until then I was like not really sure if that made sense for me and I think that's something that I believe in and it's what makes Ember matter for me, it's why I'm still here and it's why I think we are still here. Okay, so what are we going to cover today? First of all I want to talk about Polaris so I'm going to get into a lot of like not the nitty-gritty because that's what Ed's going to do but I'm going to get into like what programming in Polaris is going to feel like and then at the end I'm going to talk about how does this story fit into Ember's story that I just told about ourselves and the challenges that we face going forward. Okay, so table contents-wise we're going to talk about template tag, talk about routing, talk about resources, talk about TypeScript, we're going to talk about modern tooling, basically it's going to be basically v stuff like that, share tooling. The reason I had that bold thing on the bottom there is because it's very easy, we're not saying like basically like SvelteKit exists today because Sapper existed before, they wanted to adopt v and they didn't migrate Sapper to v they instead created a new thing called SvelteKit. We are not going to do that, we're going to take the existing Ember tooling and migrate users over to the new system so basically existing apps will get v eventually subject to the usual migration caveats and that is what I mean by share tooling, right? Making another thing that you migrate to, it's not like well there used to be Vue CLI, now there's going to be like the Ember tooling, it's just going to use the ecosystem under the hood, again more on that at that point in the talk. Okay, so template tag, so Octane really actually made a big advance here because if you remember before Octane, you had files in app slash components and files in app slash template slash components that were really talking about the same thing and Octane made a pretty significant ergonomic improvement by putting the template alongside the JavaScript or TypeScript file. That is nice, but I think it's basically behind, it's lagging behind our peer frameworks and that is because all of our peer frameworks either use JSX which basically means you can put the quoteable template in the same file or they use a single file component system which lets you put your template and your style and your JavaScript in the same place and everybody outside like basically most Ember people also but the wider ecosystem is pretty convinced that having two separate files is not good and I basically agree with that and so we need a solution. I think just FYI the thing that really pushed us here is that we wanted to be able to import stuff into our templates and the reason we wanted that is because in order to get all the benefits that I'll talk about later in the tooling space we really need to not have weird Emberisms that are not the same thing as modules so we really needed a file that's the module and we really needed that file to be importing things from other files and that's just how the JavaScript ecosystem works now and this is basically what we landed on there's like very very long series of blog posts you can learn about why we ended up here but this is what we ended up with so basically the class part looks exactly the same as the octane class part there's still track properties etc and the only difference is that you move the template tag from yeah so the track is the same you move the template tag from the HBS file into a template tag and I think I don't get to it soon enough but basically if you import other components into the file just like you would in a normal JavaScript file and that's like the big difference but really it's just about taking the two files and putting them in the same place some benefits that fall out of this that I think are really good you can just write a function in the same file if you want to function you don't have to make a whole other file somewhere where you put your quote-unquote helper that hopefully is generic enough to justify it you can just put it in there and because it's just another module you can just use a named export I think what we exactly recommend is still going to be like Ember is going to have conventions that we encourage people to use and maybe link but there's nothing stopping us from using from using any normal JavaScript module feature like it's just really a JavaScript module and so any type script code extraction should just work that's fine so you just move into another file also the function signature is just a normal JavaScript signature this is the thing that already has landed by the way almost everything I'm going to talk about today has landed I'll tell you if it hasn't I'll talk later about if that's the case why do we have Polaris but the thing that lets you just use normal functions in a helper file is already a thing that landed and is like very easy to use in any Ember app regardless of how much you adopted GGS and GTS files but this model where it's just a function and you're using it in the same file like the programming model where you can just think of your template as having access to JavaScript functions in scope that you can move around that's of course a GTS thing and it's good that you don't have to write helper prints so I said that already so now I'm just going to repeat kind of repeat myself so modifiers and octane go in separate files and I think one thing I would say about modifiers is that the story before octane is that components had access to a root element and that meant you had stuff like class name binding attribute bindings last from the past you don't need to know if you don't know it but there was a DSL on the component that was like how you talk about just the root element and octane basically said there's no more concept of like the components element there's like that way you can just use the class equals you can use attributes anything you can do anywhere works and the way we gave you back the feature of lifecycle was we gave you modifiers we made modifiers and that is technically good but it basically means that you have the same problem with helpers where you need to like if you have some DOM logic that's very local to a component you still need to put it in another file in a different location just to use it and so that's just I would say a hole in our migration from I think there was enough benefits to justify it but it's a hole in the ergonomics of going from literally it's in the class to it's in a separate modifier concept and I think what ends up happening is people use ember render modifiers to glue it together but those things are not very composable so basically what so this is an example from the ember modifier docs this is just how you import it's a package blah blah blah it's a pretty boring example but it's the one from the docs and just like with helpers like the Polaris stories you can just put the modifier like it's moved randomly again it's from the docs but like you can put it in the same file you can access it from the same file and it works you can just write in the same file and use it directly and you don't need any like if you don't need any local state you also don't need a class like you can still use a class but you can just put a template tag in the top level and I think that's all pretty sweet Jonas if you want to come up and ask Wave at people because you missed it before I told him he could wave but he wasn't here yeah wave this is human sustainability thank you Jonas yeah I've been telling him as soon as ember conf is over I will have my weekends back so so basically modifiers just work and then I also want to point out like I already said they export work but also obviously default export work because the point of it is just the value so we already know our modules work there's nothing new to learn here we will probably have some lints about like what the conventional style is but those will be lints those won't be about how the semantics work now this is I think the point where we're talking about something that is unique about what ember is doing here so people tend to think of JSX as the slam dunk winner of the framework wars but I think that's interesting and like go check you can bet me if you want basically everybody else or a person or a framework trying to be a clone react does not use JSX okay view allows you to use JSX but their documentation is like you probably don't want to use JSX go watch talks by either Rich Harris or Evan you about why that happens but I think basically there are good benefits to using templates that is a good idea and basically everyone who is not react thinks that however there is a nice thing about JSX which is that it's very easy to have two files in the same file because it's just an expression or a function you can just like make another one in the same file and call it and that is actually a thing that SFC is loose right and that's kind of why view ends up having these having JSX for like advanced cases because the SFCs don't give you everything that you need right and so the thing that I think is really awesome about the ember story and is like unique and doesn't exist anywhere else and like makes me it's like the kind of thing that makes me want to build something on top of what everyone else is doing and not just like go off and work on next JS or something is I think this is like a genuinely awesome thing it basically means that you can have a test that has a template tag that has access to the local scope you can have a bunch of them in the same file you can like extract utility components that are not ready to be pulled out into separate files yet and all this stuff just works and I think if you just quickly look at what I've said it will be like oh template that looks like JSX but it's actually it's actually a very nice combination of of the template the benefits of templating syntax and the benefits of having expressions that you can put in the same file so basically lets you take it lets you have an SFC that you can like move around I think that's pretty nice the top I should also say the top level template tag in the one of the component that's the declaration form so like that makes it you don't have to write export the full template tag right so there's some nice forms for the cases that are like SFCs but because it's not because that's just a convenience form writing const toggle equals template tag works also and like again I think this is like I think I'm really proud of I think it's really awesome and it's very unique and like really will shine in tests I think I think the fact that you could just like write a template tag gives you a component and you can just like access local scope from the test I think that's good I think that is like a game changing thing and nobody else really has it okay so that's template tag and I think like I think that's really awesome template tag that's already landed I will say later when I say landed it filled you up to configure it and it's pretty annoying especially using TypeScript so you have to be motivated but all the underlying features the prettier support the support in the Ember language server ESLint for the most part like the implementation that makes it work at all it works in class and in border right all that stuff already landed if you install Ember template imports so I think that's like we need to finish the job and I'll get into that but I think like I think that's an example something that is well in hand that we just need to focus on getting polish over the finish line but we like really already did most of the implementation okay the next topic is basically a unification of a lot of concepts that called resources and I'll just quickly go through a bunch of examples that show you what I mean by that by the way it is I don't know if you can see it but my clocks is 15 minutes so basically I'm not I'm not wildly over it just a lot of things happened earlier okay so basically what is resources I think a way to think about it is that they rationalize class based helpers, modifiers, services and even routing and that doesn't mean like it's like this obscure concept that you need to learn or whatever it's just it's going to basically be the replacement for a lot of those concepts so let's just look at like first class based helpers so class based helpers are this weird thing that is kind of like a function but you need it if you need services or track state or something like that you have this compute method if you need lifecycle it gives you will destroy but the way it looks to you as a user is it looks like a function in your in the HBS file right if you look on the right hand side the resources side that is like resource it's the DSL here by the way is the star beam DSL which I'll talk about in a minute but basically there's going to be a class based version it's basically blocking on stage the decorators getting out of the getting done but this is like a way of getting like if you are a fan of the functional modifier or thing or like the helpers those have limits you you run into problems if you need lifecycle or services or whatever or they look different in different people's add-ons this is basically a way of pushing as far as is reasonable on the function version of things and then if you have like a lot of track state and a bunch of methods clearly then you want the class version right so anyway that is the DSL I think without getting into too much detail it's like a very it's a small DSL that gives you a way of set creating setup and tear down logic and the point is that when you say parentheses current time in your template it works the same way that it worked before with class based helpers and the important thing here is that it gives you cleanup logic right so if you just have a regular function there's no cleanup a lot of the time you want to set up some state that also gets cleaned up and that is what resources are for now if all they did was replace class based helpers it's probably like a little a little much but there's a bunch of other things that you get out of it so the first one is that a service in Polaris is just a resource that's scoped to an app right so a resource is just a reactive object that is attached to some lifetime it's not only a component but there's also a concept called the app in ember weirdly not a lot of other frameworks and so sometimes you want to attach a object like maybe you have a long live channel or something like that or a web socket right like this is a kind of thing people do with resources importantly like tear down still does exist and the reason for that is that especially integration testing you want to be able to like keep you you don't have to like boot up the whole app every single time you run a test which is how most other frameworks do it and so by basically putting a lot like by having tear down logic inside your services you can boot up the app get some app state and then tear that down run another test with the same code right and that actually does make our integration test rather fast and like uniquely so in some ways and so basically that in that sense services right now are like another concept from class based helpers and the resource concept unifies them and importantly if you already had the resource from the previous slide you don't have to do anything special to make it a service all you do is you say that you want to use that resource as a service when you use it and that basically means like only make one of them please for the current app okay and by the way like this is I spent a lot of time working on this but like the when you say like there's no types anywhere on this slide but you get the right answer when you say service current time from TypeScript and I think that's like pretty nice and I think the wider ecosystem could spend more time trying to get inference to work well because TypeScript is actually very good at inference but people are like just very willing to be like just put some angle brackets here and that is like fine until it doesn't work and you're real confused about why things are failing at one time so I I really like leaning on on inference and I think this is we made it work okay modifiers that's another thing and this is like okay how does Polaris have a story for modifiers that's built in and not like an add-on basically it's a resource that's scoped to an element and I have a bug in this slide I think but basically there should be the inner function should be a function that takes an element and returns a resource right so basically the when you say curly curly element size it basically calls a function with the arguments more or less and then when the element gets like when the element exists it calls the function that gets returned with the element and it gets back a resource and that resource has a lifetime that lifetime is attached to the element's lifetime right so again that's like probably the first time you're hearing it it sounds like I just said a lot of words but it's basically just another way that the same resource concept which is just an API and it's the API and ember for generically saying I have some reactive state I want it to be attached to some lifetime it's a way of reusing that same concept and sometimes the code because the element it usefully has a lifetime right the element the element that you attach to a directive or modifier whatever you want to call it is is a stable thing and it just gets set up and torn down so it is actually possible to give it an element it's just like if you're using a framework like React and you end up with nulls for no reason but anyway the point is that it's just a function that takes some arguments that returns a function that takes an element and gives you a resource so hopefully the moral of the story here is like resources are a concept that we're going to use as well we'll have a class based ESL eventually and like answers a lot of questions about what we're doing like about what our concepts are right I don't know why I have that slide what is this extra slide here what is happening everything is going crazy okay next slide so I have import from star beam universal here like what is that this is the one and only react slide that I'm going to show here basically star beam is like successor in some to a big part of the part but the tracking part I work on it and null box who works on ember resources also is on the core team of star beam and the main thing that's different between star beam and glimmer is that star beam is makes these concepts something that works for all frameworks we have already written a react a preact and a view renderer called the things renderers the only reason there isn't already ember renderer is that ember already has a version all these things that already work and works in people's apps so I haven't felt like I need to prioritize like the only benefit that you get from star beam is other people are using it we're not ember so I need to like make that actually happen but the point is that the universal APIs will glue in ergonomically into ember as I've been showing on these slides and the point is that you can publish libraries that just use star beam universal don't mention ember at all and then other frameworks can do like what I'm showing here on the right like other frameworks can do can say like use modifier in the react case and then like in react you have to use wrap or you have to suppose to do or idiomatically react but there's a version of it like in view will be a directive that's kind of thing so that's that's what it is it's from the if you don't care about any of that it's just it's like saying glimmer components like the thing you imported but if you do care about it it gives you a way of writing universal universally reactive things that work in all frameworks and go to starbeamjs.com there's some documentation there and that's what it is okay okay so all of that brings us to routing now this these slides are the most speculative slides because there is no rfc that describes the syntax however it is the constraints are like everybody who works on routing in ember has this clear understanding of what the requirements are and I will talk about them and they give you very little wiggle room but the of course everyone in this room and everyone watching is welcome to let me get the rfc to like I want to say bike shed but not in the negative way like to get like I don't like the word bike shed because it implies like it's not a good thing but I think making the like the concept makes sense to everybody like making that happen requires that people like see that the words are not too weird and like if you just use functional programming words everywhere that does not what happens right so feel free to come in help us refine this syntax but these slides are basically trying to show you like how the concepts fit together conceptually but don't take the exact syntax for anything specific okay so basically what on the left hand side is like what I think is probably going to end up happening in practice for most cases I think that should say articles.data.ts so basically there's going to be some kind of resource function which takes a URL and gives you back a thing that counts as a model data and I think that's mostly what will happen but I think the right hand slide I have as a rule like things need to fit on a slide right the right hand side I guess it has a tiny bit of scrolling the right hand side is basically showing you it's not that hard to write the resource it's just that like it would not be great if every single time you wanted to like fetch a URL you have to do it now you might be saying like I think you could have made this slide look less annoying if you just use fetch directly but like you probably actually do want to support cancellation as a general principle because if it takes a long time to make the fetch and then the user navigates to another page probably a good idea to cancel the existing one and not just have it keep running so I think that's a good idea and you don't have to take my word for it like it's one of the YouTube things that keeps going by which is like hey by the way you're probably doing it wrong you really should be using a board controller that's fine but we probably should just give you a thing that does that for you and that's the only reason that this slide looks like it has more things on it is because I think that's probably what we're going to do like the left hand side it's not magic pretty easy but I just don't think everyone should have to write it all okay now so far I just showed you like it's just a function that returns the thing what about dynamic segments I think that's indeed the tricky thing by the way that hash app there it's just using a Node.js feature called import map so like if you're a package JSON has an import map like TypeScript and everybody knows what it means and as part of the general feeling that we should probably stick with what everyone else is doing it's possible to get the benefit of ecosystem tooling that's probably what we're going to do I think we don't have an RCA but I think we generate an import like your package JSON when you generate an ember app has an import map in it that points hash app somewhere then you say hash app and everything works because that's how package JSON works now is probably what's going to happen okay so basically what is a dynamic segment it's a parameter to a function that returns a resource so it's kind of like the element thing I showed before right it's a function and I don't eds talk at emberfest last year like goes into a lot of detail about philosophically what's going on here and maybe he'll talk about it later but I'm just trying to show you like from a user perspective what's going on here so there's stuff like it's bad that controllers outlive the template I think that's all good stuff to understand but I'm not going to get into it super aggressively here the tops part here is probably the most speculative part of all this and basically the key point about all of this is that in Polaris and like with embroider routes are the main unit of where code splitting happens so today there is no code splitting so there's not much to say about it but the main unit of code splitting is a route and the key point there is that I guess I should say I'll say my point and then I'll say that point the main point when I say the unit of code splitting what I mean is and I have slides on this fetching data and fetching the code should not have to happen together because it's obvious that fetching the code is going to take the component tree for your route is going to take a while and you don't have to wait for that to happen before you start fetching the data so basically the structure of this API is designed to make it easy for Ember and you to think about like here's the part that's fetching the data and here's the part that's fetching the code and if you put them all in one file I think we'll support that maybe as like a very simple thing that you could do but if you put them in the same file and you're sharing the same imports and that basically ends up meaning that you can't really start running the code to fetch your data until you actually have all the code for your components and that's just wrong like that it's just it's not like about SSR or anything it's just like pointlessly expensive to do it like that I want to say like a goal for this design and I think if we can't make this work but I think we can then we won't do this but like the goal here is that if you have an ID parameter that goes function on the other side of that that this should give you an error if you leave it out or something like that and if you're curious there's something called a tag template literal type and type script that together with some other magic that's not out of the realm of what everyone else is doing we can make it work and again if it but I think I would rather if you don't have to write import friends everywhere but I think if we'll do whatever we have to do to make it make sense that this is true I think this something like this will work so I said this already a routes component and its code load in parallel I think critically this is the critical thing it has nothing to do with SSR right it just has to do with the fact that we don't want to have to wait for the parent component to render before like you can start getting its data and then like you render the child and then you can get its data like that just if you look at the react store around all this like how they have to figure it out eventually they settled they had like a few options and they eventually settled on a thing that is more or less exactly this which is like you fetch and render at the same time you're doing that in parallel and everything other than that you can make suspense the react do anything you want but anything other than that is like recommended against because of the fact that it creates the waterfall problem and I think we should just try to avoid that by default by the end okay I only have a few more concepts left so I just this is very quick I just want to say when I say that there's conceptual building blocks on the screen is pretty different from the routing story that we have today but I think it is important to reiterate that the routing story that we have can't change like what is the point of routing an ember and part the point of ember routing an ember is ember is a web framework we should have good URL support what does good URL support mean like I'm not gonna you'll go watch an old talk that we've given but it means like the back button works reloading page works you can open a new tab I can send a URL to somebody on Discord and then tomorrow it still works right all that is good and there's like a lot of other things like that so basically it should work like a static site right and more or less I okay I will if I have time for questions I will call on you first okay so the opinion he has about ember okay I'm okay even if I don't get time I'll ask you later because beginner's mind is very good okay so basically what I mean by things work is like if you were looking at a page and you reloaded it still looks the way I expected it to work which basically means that meaningful state is preserved you don't like I think you know what the bad version of this is and I even though we've been embers been talking about this like since 2012 there's still a lot of sites that do the wrong thing but I also mean like you can make permalinks with query programs whatever like I think this is all it's all boring but if you go into the whole details like a lot of frameworks a lot of routing systems today that even a claim to be inspired by ember don't get all details of these things right and I think that page more or less the URLs URLs are very important you put them on billboards you send them in text messages they should be stable they should work they should capture the state correctly etc okay so now why like why do we do all the things I just said I'm just transitioning now into the like okay what are the challenges that ember faces etc so I'm gonna play another video and then try to wrap it up and pass it off if we hadn't started Tilda if some entity like Tilda didn't exist and instead ember was a project that we were working out of some other big company there's a good chance by now that some executive from on up high would have come down and been like I don't care about this scrap it and that would have been the end but because we have these smaller people driven companies in our ecosystem that's not really gonna happen if we hadn't started Tilda if some entity like Tilda loop on a loop okay basically I think this is really true I think I feel more strongly about it now that I felt when I when we originally recorded that I think at any given point there's gonna be some important companies that are investing a lot in ember but ember is really really structured so that a disinvestment from any significant company does not actually materially affect ember's ability to make progress of course less investment less resourcing has some impact on both the short and medium term progress like what people are doing but I think as an organizational matter there no company like owns ember and no company is no company's disinvestment I think a really good example that I use is like we don't use people's internal bug trackers we don't like our roadmap is not approved by some manager somewhere inside of some company so that means that if somebody like suddenly disinvest there's no infrastructure or or or or or chart matter that like sudden has to be quickly changed like that people are part of the ember poor teams as individuals not as companies okay so why are we still here like in some sense that's a good question like okay well we'll do a lot of things that make us as good as other frameworks but like okay but other frameworks already exist so why are we still here and I think the really the answer to this question and why I am still here is that the ideas that made ember good that make people want to be in the room here and that make apps that were built literally like 10 years ago still exist today and are able to use like gjs files and typescript 5.1 like why is that even possible that's like so far out of the expectations that anybody in the ecosystem has like that is still a controversial thing to try to accomplish what everyone else does is oh V came out let's like fork everything fork the ecosystem and do something else the fact that we invest so much energy in building blocks that we work on together that like beginners and experts can work on together and iterate on that add-ons can like that don't require us to like suddenly fork the ecosystem be like okay there's the part of the ecosystem that supports octane and whatever like all that is like a hugely powerful thing about ember that means that like older apps still work today but that also means that if you start an app today that that app gets the benefits tomorrow and next year and year after that and it's just if you even rewind to take three years there's almost no framework that is not ember that didn't have some kind of big fork that would require you to do a significant effective rewrite of your code base and I think the fact that ember has been not doing that since 2012 or 2013 is a good enough reason for us to keep doing this I will talk again about the challenges in a minute but I think how I usually summarize what I am talking about here is that we other ecosystems basically it's normal to have a concept of injection which basically means like well there's the like create react app or whatever like the thing that is the nice beginner friendly thing but like in practice you like press the eject button it like explodes out into your code base and now that's the thing that doing that basically means that it's very very there's no difference between the implementation details that a very advanced user understands and the way the conceptual building blocks that beginner users are like intermediates are using and that just makes it almost impossible to do any kind of significant changes of the code base without forks right so basically what no ejection means is that it aligns the mainline APIs like the APIs that are the primary ones in the docs with the way people actually use them it also changes our APIs with the way people think about the APIs right and that basically means that when we say okay we're not going to ember dot object is not a thing anymore that's fine because the authoring format all along was import from ember slash string and just because there's an implementation detail that turned into ember dot string somewhere internally for the last three or four years changing that to be a real module doesn't affect the mainline API how you think about the API or how you use it and I think just when you eject when you have ejection as like a primary way that you think about things it leaks the low level details of how things work into the way the framework is composed and the migration strategy it's unavoidable and I think it takes some effort to make that not true to have a difference between the authoring format and the implementation strategy but it has really paid dividends it's the reason that go back three years or six years or nine years and ember didn't ever have one of those forks even though at every one of those there's a lot of things that are not true to the authoring format okay I said the word authoring format basically I just want I have to define it because no one else does it but ember is unique in defining our public API in terms of an authoring format that is separate from the way the framework is built and that means that think like I talked about before like at ember slash string becomes ember dot string that's an internal detail the authoring format which is like very not compatible with the way the ecosystem wants to do things now we can change it all the way now I am running out of time we can change it all the way to using something like me and the thing you the way you think about it the way add-ons work the way you build your own apps the way you communicate between different developers different teams doesn't change and I that's just a unique thing and I think it's a really good thing and it's it's not like we're we have a lot of we have a lot of compatibility so we must be spending a lot of time on it it's that's not really quite right I think when you account for the fact that you have to deal with people on old versions anyway the thinking about things in these terms and thinking about what like ways to give people tools that are easy to migrate and just making that part and parcel of how we operate has actually given us pretty good velocity yeah I have to figure out how to quickly go through so I just want like this is a thing that is a little speculative but also that add-on already exists I think basically I think you might like we don't have a good CSS story right now frankly and you might think oh that's yet another thing we have to do in Polaris so like clearly it's going to be impossible I think what's nice about the way we're planning on implementing it is that we can have a feature that's like this high-level feature like the scope style tag and we can use tools like that come out of the view ecosystem or the svelte ecosystem to compile that down into something that is a separate CSS file and then like existing ecosystem tools existing bundlers know what it means to import a CSS file like that is already a thing that we don't have to build so simply doing the transformation from the left side to the right side is enough with existing tools to get what you need and that also for the most part with some work includes like getting your post-CSS configs to be included and stuff like that right because what we're doing is we're leaning on the fact that importing from a CSS file has an actual meaning in the ecosystem we're not trying to reinvent it but we're still keeping the ability to define like what is the authoring format because just because you can import from CSS doesn't like that churns a lot in the ecosystem so we're keeping the authoring format stable but we're using it's like a much thinner layer now okay I'll try to go fast I already said this a bunch of times so I'm just going to skip past it but basically what we mean when we say that we're the together framework is just like there's one thing which is the component there's one thing which is a service and it's like over time across experience levels across teams across add-ons whatever ecosystem and that is basically what lets us be a framework that goes together that migrates together that builds new features together etc very like go read this thread basically this is a thread where people were like why do we need the concept of services and like me and Tom wrote a lot of words that basically amounted to it's good to have concepts it's good to have terminology that helps people understand things and I think services are an extremely good example of this paying its way in gold like basically no other framework even has the concept of like a service scope to an app because they don't have a concept of an app they have context which you have to blah blah blah and this is like every Ember user knows what this is it's obvious how to use it and it's good and it makes testing really good but you don't have to think about that okay by the way app instance is the actual real concept that ends up being true like having there's an app instance against it can be run all the while okay as an example very quick this is the thing that would work in an Ember app today you can have a Polaris component with GJS Octane component that uses the new like the new track stuff new class stuff and an Ember.component.extend and like import Ember from it and like that whole combination of things will work that doesn't mean that you want to do that but it basically means there's no like sharp dividing lines between things that force everybody to synchronize across changes right so it's hard to explain I think it actually goes into a lot of detail about why it's good but I think this is an example of what it means that it's good okay yeah I'll skip past this really I have a quick demonstration here which I will go quickly through but I'll I just want to say why I have it here basically there's a thing called introJS it's compatible Ember 218 if you look at its code it uses very old concepts turns out you can drop it into component template it works I have a little demo of what like what I mean by it works like it's this whatever it's good and then like you can move that into GJS file you you can do imports but you don't have to switch away from curly syntax where it's interleaving the old world and the new world there basically I don't I don't need you explain why but basically it just works you can add track state that also just works you are still using like the curly syntax totally fine you can switch to angle bracket invocation we actually got pretty far without doing it totally fine and like really what all this is about is it's easy to be like oh what is the point like the answer is when you are forced when you say like this is the old world this is the new world and you have to migrate across them every single change that you make that's any kind of significant at all creates like the whole ecosystem has to be like we are moving from the old thing to the new thing every single time and it just forces you to combine a whole bunch of things into one feature technically it makes add-ons all have to be like am I supporting v2 or v3 like people don't have to say am I supporting octane like you have to support octane but you don't have to say do you support octane and the old thing because supporting octane means you support the old thing by definition right I think there's a lot of the god that's talk goes into a lot of detail about why like how we do that but I think this is like really a fundamental thing that is happening in like under the hood of our design philosophy but it's like why everything is good okay that here's the challenge and then I'm done so I think everything I just said is good and I think it's why people are here like people are in the room people are believers people's apps like it's not a lie but there is a problem which is which we've described as the pit of incoherence and I think the problem with the pit of incoherence I have come to believe is that it actually grates against the actual pitch that makes ember feel good so that base that is basically like oh we should adopt ember because we can take people from team A and move them to team B like during the period of the pit of incoherence especially right now that means that like there's all this tinkering that has to happen that basically makes ember at the bleeding edge feel like not that different from the other frameworks that you're claiming ember is better than and the real kicker is that because ember is not that competitive with our peers right now you feel like part of the sales pitch that you have to make to your boss or your clients or whatever has to include and we're using the new stuff right so now you're using the new stuff and that is actually in conflict with the fact that you like that you're like you're getting these benefits of going together right I think we do need the technical strategy of additions but we have there's a problem that is beyond just a normal addition problem that abstractly exists which is we are just behind now like all the benefits are good they would be unique value propositions of ember but it's hard to make the case because of the fact that we're just frankly we have competitiveness issues right now and I think what is the point of Polaris the point of Polaris is not just like to do one more like here they go again I know people feel like that but like we've been like we haven't been like saying we're doing this all along what's happening is we've been incrementally getting here and I think Polaris is the point at which we could say okay we you know we move to V we adopt all the stuff and now we've closed the gap with our peer frameworks and now the part of ember that is good which is the working together like the sustainability story that is a thing that you could like really sell and not have to be like embarrassed about the fact that there's all these caveats that hopefully don't apply or that force you into a more tinkering kind of mode and I think critically and this is Ed is going to go into this in detail we need to do the Polaris has to involve us doing this in a way that is sustainable going forward so we're not like saying the same thing three years from now right so we need a strategy for closing the gap with the ecosystem that gives us all the benefits of having separate authoring format and like the things that are good about ember that make us that make ember unique and good in a way that does that is sustainable so that when the ecosystem does more things we can like pretty easily adopt the thing the ecosystem is doing and you still get all the benefits right so I think that is what is needed so up next the thrilling conclusion how we're going to make it happen with Ed Faulkner take it away


Haters come in two different kinds, the least dangerous ones who express their hatred directly and the more dangerous ones who tell their hatred in more subtle ways. The second category is mostly friends and people you are close to. They express their hate in ways that will be difficult for you to know. This people can be scary, hence there is a need to spot them. In this video, I will show you 7 signs that you are dealing with a hater. 1. They lament about their lives regularly. Haters are depressed individuals. They portray the war is me attitude and are never happy with what they have because they compare themselves to what others have. They feel they don't match up and that others always have a better lot in life. Often, a hater will ponder what life would have been had they grown up in a different area under different circumstances. This kind of person imagines being in someone else's shoes thinking their life would be better. Haters never cease to whine about how lucky you are. When you acquire a feat, they don't care so much about the hard work, time and dedication you invested in that particular thing. They believe that whatever you have is as a result of luck. For instance, if you got an A in your test and show it to your hater friend, rather than congratulate you on your success, he or she will complain about their life and how they would have gotten an A or even a higher score if they had wealthy parents and stayed in a better environment. Worst case is that they may even play with your feelings so much that you begin to feel wrong about your success. 2. They are against everything. Maybe you will come across a person who feels that your opinion doesn't matter, that they are always right, even when they are not. Well, while this can be a temperamental attitude, it could be that you are dealing with a hater. Haters never take anyone else's side and feel if they don't like something, no one can convince them otherwise, since they are the ones always right. Even when you try to show them facts, haters will never accept that you are right. They are of the habit of making people around them feel like they don't know anything. Most people are also quick-tempered, don't take anything from anyone and are willing to tolerate very little before getting angry. If you try to counter their opinion, they take it personally on you. In general, haters affirm the against anything that doesn't bring them immediate happiness, even if it may not be suitable for the vast majority of other people, as long as they don't like it, they will never agree to it. 3. They are happy when you make mistakes. Do you have that friend who is always in a hurry to rub your failure on your face? Haters don't hesitate to say, you would have done it this way. Or why did you not ask me before doing this or that?  It takes only the slightest mistake to reveal a hater to you. Just like a mushroom after a fruitful rain, it takes the smallest error for a hater to jump happily at your face with words like, did I warn you? Your last failure is a source of joy and happiness for him. They don't mind you failing as long as it will help them prove a point.  You know where you are going and that's your way. No one will ever force you to turn away from it. 4.  When you trust your friend, you feel comfortable and vulnerable enough to share some or all of your deepest secrets, but what happens when that friend spills all your tea without a care in the world? It means that they are not the friend you need. There is a certain level of unforgivable betrayal that occurs when you realize your friend has been telling all of your business, a business that you thought you were sharing with someone who cared. It is even more painful when you realized it. They even added some lies to the information you shared. Haters will not miss the opportunity to talk behind you, although not every person who talks about you in your absence is a hater.  They will spread the purest and most magnetic rumors. They will use lies and imagination because they are angry and nothing will stop them.  That is the only way to stop them. 5. They like to imitate you. This is one of the easiest and most reliable ways to tell if your friend is a friend or merely a hater in disguise. Always filling the need to compete with you, no matter how big or small the reason. It's not what a real friend does. A person who envies your career's success, relationship or family, your clothes, etc. will have knowingly tried to copy you. For example, if you get a promotion at work or get proposed to by your man, a hateful friend will always try to top your big news with something unique that always happened to them at one point in life. They don't allow you to take pleasure in your special moment because they are constantly comparing their life to yours. Moreover, he or she can do so blindly and obsess that he will not even notice what is happening. Thus, it is better to let this person know that he or she should find his or her place in life. Explain that he is much more likely to succeed without pretending to be someone else or muddling someone else. 6. Try to distant you from your other friends. Haters will do their best to ruin the relationship with everyone close to you and dear to you. They get jealous and angry when they see you hanging out with others. Haters understand that taking away other people's love and support will make it much easier for them to destroy you. So, they will find a way to make sure you separate from your other friends. The way they do this is to try to be extra nice to you. They shower you with so much love and affection so that your attention will be directed only to them. When they consider any friends other friends wants to protect you, they try to poison your mind against that person with undesirable words that victimize themselves and make you feel sorry for them so that you will let go of your other friends. A true friend will not try to cause a rift between you and other friends just because they want you for themselves. Only haters do that. 7. They give hypocritical compliments. Haters are flatterers. They will surround you with compliments, praise and highlights in every way possible. It will be enough to turn you back to him and he will begin to criticize you and tell all kinds of nonsense. American author of the book, How to Win Friends and Influence People, Dale Carnegie, said there's a difference between appreciation and flattery. The first is sincere while the other isn't sincere. The first comes from the heart while the other comes from the tooth out. The first is unselfish while the other is a product of selfish desires. Haters practice the latter, not the former.  The fact that someone hates you does not always mean that you are the one at fault.  They have the problem, not you.


Dr. Sanjeev Sanyal, professor and department chair. In this section, I'm going to demonstrate the portal vein. The post-GMO structure in the extravatic portal triad. This is the portal vein. The portal vein is formed by the union of two great veins. The first vein that we see here, this is the supramacentric vein, which drains the midcut. And the other vein which forms a portal vein is this vein here. This is the splenic vein. The splenic vein normally runs behind the pancreas. So therefore, we cannot see it and therefore we have retracted the pancreas to show the splenic vein. It comes from the hyalum of the spleen and this vein brings so-called dirty blood from the broken down products of RBCs and the blood elements from the spleen and it is transmitted to the portal vein. The supramacentric vein carries the nutrient-rich blood from the midcut and it unites. This point of union occurs exactly behind the neck of the pancreas. This is the head of the pancreas and following that is the neck of the pancreas. And then the portal vein runs upwards and to the right. It runs in the free margin of the hepatodeodontal ligament or the lesser momentum as the post-GMO structure and then it enters the porta-hypatis. In the porta-hypatis it divides into a right and a left portal vein and the left portal vein has communications with the parambilical vein which runs in the free margin of the calcium omeligament and that forms an important site of porta-systemic anastomosis. The portal vein also receives this vein. This is the inferior miscentric vein which drains the hindgut. The inferior miscentric vein normally opens into the sprenic vein. It can open to the sprenic vein very close to the spleen or it can open to the sprenic vein very close to the superior miscentric vein. In this case we notice that it is opening into the superior miscentric vein itself. There are some important clinical correlations about this portal vein. In the earlier days in order to visualize the portal vein we had to do an investigation known as splenoportovinogram for that we used to inject a dye through the spleen and it is to fill up the sprenic vein and the portal vein and then we used to take images but that was a very traumatic procedure. So therefore nowadays when MR vinogram, magnetic resonance vinogram and therefore that we can see the full venous structure. The next important clinical correlation is when the person is suffering from alcoholic cirrhosis of the liver and there is portal hypertension when the pressure of the blood inside the portal vein is very high. Then one of the most important presentations of that is esophageal varices. Patient has hematomasis, vomiting of blood and therefore we need to decompress the portal vein. One of the procedures is to shunt some of the blood from the portal system into the systemic circulation. One of the methods of doing so is to connect the portal vein with the inferior vena keva. This is known as the portal keval shunt. There are different techniques of doing it but this is the principle. There is yet one more method of doing it and that is again because of anatomical proximity. We can anastomose the splinic vein with the left renal vein. This is the left renal vein and they are not very far apart. So therefore there are again many different technical varieties of doing it but the principle is same. This is known as the splino renal shunt. So these are two of the many ways, numerous ways by which we can shunt blood from the portal system into the systemic circulation and therefore decompress the esophageal varices and reduce the portal hypertension. Thank you very much for watching. Dr. Sanjay Sanyal is signing out. If you have any questions or comments please put them in the comment section below. Have a nice day. So guys thanks for watching. Make sure you subscribe. Make sure you like this video.