Live from Las Vegas, it's theCUBE. Covering Dell Technologies World 2019. Brought to you by Dell Technologies and its ecosystem partners. Hello, welcome back to theCUBE's live coverage here in Las Vegas, theCUBE, covering Dell Technology World 2019. I'm John Furrier, my coach Dave Vellante. Dave, a lot of strategy being discussed, a lot of new product introductions, availability of things, things in beta. Michael Dell, on stage with Pat Gelsinger, Satya Natal, a lot of great things. Jeff Clark, Nassaros ceremonies. And here with us is Matt Baker, who's the Senior Vice President of Strategy and Planning, works for Jeff Clark. Great to see you. Thanks for coming on. Thanks for having me. It's great to be back. So you're the man behind the curtain for Jeff, right? You give him all his- He's sort of boss. You send in all the plays. He's Tom Brady, you're Bill Belichick. I don't have my hoodie, I need a hoodie.  So pretty strategic couple years for Dell. Sure. So take a step back because, you know, one of the luxuries of doing theCUBE for 10 years is we get some one-on-ones with Michael. We see him in the hallways. We get to chat with him. He's very approachable. We talked to him before he went private, when he went private, pre-Dell EMC, buying EMC, and then when he bought EMC. So series of conversations, but it's always had that vision of scale, benefits of that. And the numbers were off the charts. People's eyes were popping out of their head. So a lot of strategy coming in there with the founder, with the team, pretty impressive. Take us through the pieces on the board and what happened, what didn't happen, what could have happened and how it all transpired. That's a long journey and it could take a little more than the time. You got 10 seconds to go. We got 10 seconds to go. I think, you know, Michael is a visionary. He's always had a vision for something bigger. And certainly the history of Dell shows that scale matters. And, you know, we saw this play out with our competitors and our strategy versus their strategy. They got smaller, we got bigger. And, you know, so we're sitting here today following all of those moves was a vision to become that, as Michael would say, essential infrastructure provider. And in addition to that, not just the physical infrastructure, but the logical infrastructure, the management of all that. So the vision that Michael saw through to, you know, the acquisition of EMC along with the constituent parts that were the Federation, inside of there being VMware, an opportunity to really bring forward a solutions powerhouse that was able to address this broad challenge that our customers were having, which is how do you manage all of this stuff? And, you know, putting a lasso around that and figuring out how to help our customers with what is becoming increasingly complicated, it's not becoming simpler. The individual components are becoming simpler. And that's our job to make each of those elements more automated, more, you know, easy to use, more approachable for more people. But ultimately people are trying to achieve so much with technology today that you got to drain away the complexity of that and bring a higher order platform and a higher order operating environment to allow people to really realize their goals. And one of the things that you got to do in your job is you also got to not only look at that, but also cut through the hype. Sure. I mean, how many times have we heard the PC is dead? How many times have we heard that if you're not here or there, you're out of business? Somewhat true when you have transformational markets, but then in the day, the value activities that are involved in a company is pretty simple. They have operations, they sell a product, good or service, they give it to a customer, they collect cash, at the end of the day there's workloads. So if you look at everything, all things being equal, this is a developer operational and a workload kind of challenge to do something. Certainly. Pretty much it. So operationally, it's a big advantage. Well, I think that's what our customers are struggling with is that there are very good reasons to choose different operating environments. I mean, to have things in different localities. Simply, you might want to pre-position content like you guys do. I'm sure somewhere behind the cube is a CDN, right? For distributing content. And so that service benefits from geographic distribution, but you shouldn't have to create a diverse operating environment in order to operate a geographically diverse environment. What we are creating is this singular operational hub for your entire IT environment. You can run workloads in Azure, you can run workloads in AWS, you can run workloads in the 4,000 VCPP partners that Pat mentioned during the keynote, and you can do that all through a single operational framework. I don't want to say single pane of glass, but in essence, a single operational framework that allows you to orchestrate and manage your entirety of your operations, which allows you to choose the best course for the given course. So strategy guy, dial back a few years, even maybe before the acquisition. How clear was it to you and what gave you the confidence that acquiring, because you guys were acquisitive, Dell was acquisitive, and I would say a lot of them, yeah, it didn't really pan out the way you had hoped. Then you're going to bring in this giant EMC, clean up VMware's cloud strategy, leverage it across the portfolio, really drive scale, become that sort of arms dealer, if you will. What gave you confidence at the time? Or was it more, hey, this is a great asset, we'll figure it out. Can you share with us? You're taking back. No, no, I think you'd need to roll the clock back much further to the fact that we were partners for a long time with EMC, and we were certainly one of the largest and year by year, the largest or second largest partner to VMware. So we were incredibly familiar with one another and incredibly familiar with our capabilities. We were the early company that worked on, I can't remember what it was called, it might've been, I can't even remember the name of it. Guy integration. No, no, I'm talking about the early vSAN implementations that went to market with Dell, right? So we had been collaborating on hyperconverge, we'd been collaborating on cloud management, we'd been working with EMC years prior. In fact, some of the folks that are appearing on your show today are people that were my partners 10 years ago at Dell. So I think we had the confidence, and Michael certainly had a long history with the organization, and I think he saw an opportunity that there was sort of a confluence of opportunities around the markets, our ability to pull a deal like that off. But I think ultimately, Michael had the confidence that this was going to create a powerhouse, and those assets were undeniable. And to some degree, what you were saying about the sort of these zero sum assumptions is like, okay, well, software defined is going to disrupt traditional arrays to the extent that it's gonna, there are no zero sum outcomes in IT. We continue on, and those markets continue to be robust. In fact, the storage market has been growing quite robustly. So sort of like, this is a set of capabilities that people need, we need to get bigger, not smaller. I buy that, I buy that it's not a zero sum. I heard Bill Clinton at Adele World years ago talk about how it's not a zero sum game, and that I thought was pretty credible. However, historically, the IT business has been a winner take most. The leader gets most of the profit, the second makes, does okay, and the third kind of barely breaks even, and there is no fourth, fifth, and sixth. So it is sort of a winner take all or winner take most market, isn't it? I think to some degree, but it depends on how you define markets, and we all tend to participate and find opportunities to move and cross into new market areas. Market extension is a basic of strategy, right? Like, look for adjacencies, extend. So there's plenty of room in this three plus trillion dollar IT market for us all to really participate. The job of strategists and business leaders is what are those best opportunities and how do we get after them? And certainly, Michael has proven to be the strategist to figure this out. Like, what, you know, Dell's acquiring EMC? It's like, yeah, we are.  What? Yeah. It's always good to have the founder around. It's always great to have that leadership in the history. But one of the things I really like about the strategy that you guys are taking is, one, I love the bigger scale leverage. I think that's right on the money. We call that right out of the gate. I'm here on theCUBE right when it happened. But the other thing that's emerging, I want to get your thoughts on it. I see this clearly with Google. Google has a SRE, site reliable engineer, and they run massive infrastructure for themselves. Their cloud's not yet translating because no one's like Google, right? There's no enterprise that actually matches Google. So it's like a tailored suit for one person, Google. Operational consistency is a huge message here this year. It's been for a while. This is really important. I want you to take a minute to explain why, that strategy, and what the impact will be for customers. Yeah, well, I think that you just sort of, it's the analog within our customers to what you just described with our business, achieving scale allows you to accelerate growth. Achieving scale in IT operations allows you to achieve scale and accelerate your digital transformation as a customer. So if you're able to create the equivalent of these site reliability, in other words, creating a highly scalable IT environment, there is no lack of demand for IT fueled innovation in any business anywhere today. That's why we're so bullish on the future that we're in the middle of this massive investment cycle of digitizing, codifying business process into applications and growing the footprint and sort of surface area of all businesses. So if you're able to create this consistent operating level, rather than spending all day down in the plumbing of it all, automate that layer and then focus on the business value. That's if you go look through our studies around digital transformation and what our customers are doing, it shows that to some degree they face digit transformation stall, right? They're like, how do I get everybody aligned to this IT? I've got the business increasingly, we're like, you all need to come together as an organization and focus up and helping our IT people free up and scale themselves to get closer to the business and really be a part of that sort of strategic discussion for the company. That's the same thing. It's achieve scale works everywhere. Achieve scale in IT operations, freeze up time and investment dollars to help the devs, to help the business figure out. There's right revenue. It's not just a cost issue. You take away that cost, which is a cost consolidation, cost leverage, efficiency, et cetera. But the flip side is like Bank of America was saying on the keynote, they got to run their business and make money. So the app developers are critical. And IT could be a part of the revenue stream. And I think the sort of basics of it all is that we keep throwing around the term digital transformation. But at the end of the day, people are codifying business process and their customer experiences and all of that into technology. And that's how they're delivering new business products, new experiences for their customers. I have a branchless bank that I use. I have, I adopted them because the technology was great, right? Because their experience of banking through them is amazing. And I'll never... They know you, it's the data model that actually is not an account number. Absolutely, so I think that the point you're asking, why is a consistent operating model important? It helps IT achieve scale. And some people say, well, it's all about development. It's like, look, it's the interplay between ops and dev. There's two words there. It's not no ops. It's dev and ops. And to achieve scale, you need operators who can achieve scale. To achieve scale, you need consistent capabilities, tooling, et cetera. I think what you were saying about revenue scale is really important because most big acquisitions, they talk about synergies. That's a code word for cut. You guys grew 14% last year. So I'm sure you have cost synergies, but there are revenue synergies as well to your point. Yeah, and for the customers as well. I think we've just been successful showing the power of the full portfolio and that's turned into, we'll make a bigger and bigger bets with you. And during the post keynote press briefing, it was stated, look, people don't necessarily want more and more and more vendors. They want fewer, more strategic vendors for certain elements and then they want to look for new innovation in other areas. And so I think that it's sort of, we're benefiting from the fact that we are the company that you can turn to to solve this broad challenge of IT. And then you can work with others around your specific vertical, what you might do. We've got a huge network of partners that we work with that can help customers with bespoke applications for their specific vertical, healthcare, retail, so on and so forth. So yeah, I think we've found- Up the value chain. Up the value chain. Not 20 infrastructure suppliers. So your point about the zero sum thesis is not being zero sum is infrastructure loves automation. Automation loves data. So if you have an end-to-end architecture, you have better data. Correct. You have opportunities to innovate around automation, machine learning to set the standard for the next layer up. Well, and that consistency extends all the way across. So if I can create a consistent model, that model is also pour out in the data and then I can create a consistent engine to consume that data to drive automation that continues to add value and value and value. So putting that loop around it is hugely important to driving value for our customers.  You know, they say, would you rather like this really be in a hot desert or freezing cold, right? So Matt, would you rather be a fighter test pilot or a college professor? You know, you must have read something from my Twitter feed. You got an answer. Definitely fighter pilot. Fighter pilot, okay. How about would you rather be a professional hunting and fishing guide or a professional ocean racing skipper? Probably the ocean racing skipper. Although I'd like to be closer to my family. Both of those, you're out of the woods. You're sweet with your top five jobs, right? Those are my theoretical jobs. I love my job. I don't want a new job. I love my job. I don't want to go anywhere.  Love it. Matt, thanks for coming on theCUBE. I'll give you the final word. In short, what's the core strategy for Dell Technologies? Well, I think it's to continue to drive value across the totality of this entity that has so much power. And I hope that's on display and obvious to you both that we're really pulling together to create solutions that deliver a massive amount of value to our customers. And I think that's unmatched in the industry. So I appreciate you having me on to talk through this and give me a little, rip me a little about my tweets about my critical jobs. Give a quick point for your video blog, The Baker's Dozen. Yeah, The Baker's Half Dozen. The Baker's Half Dozen. What's it about? What's the focus? Yeah, it's basically a six minute spot that I go through six and a half things. Baker's Dozen's 13, it's hard to divide it by two. So we end up with a half thing. It's sort of funny. But I just take people through a basic rundown of, hey, what's going on in the marketplace? And I try to make it simple, funny, and just sort of poke fun at myself. So, it's fun. Matt Baker, Senior Vice President of Strategy and Planning for Dell Technologies. I'm chef of worry, Dave Vellante. Stay tuned for more live coverage. Day one of three days of wall-to-wall coverage. Two Cube sets, a lot of content. The Cube Canon blowing out the content here at Dell Technologies World. Stay with us, we'll be right back.


Hey, everybody, what's going on? I am Greg Sosman joined today by Drew Diggmeyer of dailyrotor.com, who's here to break down tonight's NBA Slate. What's happening, Drew? Not much, you know, no Super Bowl hangover here. We got 10 games on the NBA Slate to look forward to, and hopefully help people set those fandoms. That's right, it's a full slate of games tonight, so let's break it down. We begin with your top star on the board, your guy, Nikola Vuchovic, who is priced under $9,000 tonight, making him an excellent play. Yeah, it's an interesting slate for the stars. There's no James Hardin, no Yannis Antedicumpo, no LeBron James or Anthony Davis. So a lot of the stars are kind of these upper mid-tier price plays. And at the center spot, I really like Nikola Vuchovic tonight. Charlotte ranks 29th in defensive efficiency against the opposing center position. And Vuchovic has seen his rates really rise, especially the rebounding rate in the absence of Jonathan Isaac, who's been out for a few weeks now. So it looks like a great spot for Vuchovic. It's a really good price tag as well.  Good value, good matchup, good spot for Vuch. You have to love him here at center under nine grand. Vuch belongs in your center spot on Fandall tonight. Coming up next for us, we have the DeIron Fox on. You've been in on recently, Drew. It's been up and down. Why do you think tonight is one of those upnights? Yeah, I think this is a good matchup for him. Minnesota is a team that ranks, you know, bottom 10 in defensive efficiency against opposing point guards. He's at home, so he gets that scorekeeper boost with the assist rate, which is vital to all the point guards. We usually like to play point guards at home in general. Pretty high total game, competitive game environment expected here, and good price tag in the low 8000s. The point guard is a spot that's lacking some of the high end options with no Russell Westbrook on this slate. Kyrie Irving out tonight. And we think DeIron Fox can kind of fill that mold in that low 8000s price range. Low 8000s for DeIron Fox works here for Oz. Get Fox in there for the Kings and in your Fandall lineups tonight. Our final star, well, he's especially a star when Kyrie Irving doesn't play. That's Spencer Dinwitty. It's as simple as that. No brainer, Spencer Dinwitty's got to be in there, right Drew? Yeah, whenever Kyrie Irving sat this year, we've seen Spencer Dinwitty really dominate his usage rate is trended up near 32, 33%. The assist rate is trended up near 39, 40%. Basically assuming the Kyrie Irving role in that Brooklyn offense. Favorable matchup tonight against Phoenix at home. Good game environment, total in the 220s. And the price tag's still kind of in the mid 7000s here. Just not adjusted for life without Kyrie.   What else could you ask for? Great spot here for Spencer Dinwitty. Let's move on to some of the value plays over the night, Drew, and that brings us to Bruce Brown, the Detroit Pistons player. Should get a lot of minutes tonight. Some of these other players in Detroit off in the air. Bruce Brown could be in a good spot. Yeah, you look at Detroit and kind of how they've managed the point guard situation all season long. They've been cautious with Derek Rose on back-to-backs. Reggie Jackson is just kind of working his way back. They played an overtime game last night. So we think, or yesterday afternoon, so we think one of those two players is likely to sit, which would open up a lot of minutes for Bruce Brown, who's been very effective when he's been given kind of that point guard role. He's been very effective off the bench, even with Reggie Jackson and Derek Rose back. Pricing low of 4,000s, I think he's one of the better values on the slate. You just need to confirm that one of those two guys, Reggie Jackson or Derek Rose sits tonight. If that's the case, it's all systems go for Bruce Brown. Remember, lineup's locked at 7 p.m. Eastern. Daily Rotos got you covered with all of the latest lineup alerts, so make sure somebody's out for Detroit before you get Bruce Brown in there. But if they are, as we expect they will be, Bruce Brown is a fantastic, cheap play. Up next for us, we stay in Brooklyn, going back there, rather, and that's Kairis Lavert, also no Kairi.  Yeah, we've seen Lavert, he's been such a good permanent producer throughout his fantasy career, but the fantasy value's been neutered a little bit this season with Kairi Irving around. It's kind of pushed him to the third ball handler role. That shouldn't be the case tonight with Kairi Irving out. We'll see Spencer Dinwiddie in that starting lineup dominate the usage, and we think we'll see Kairis Lavert in that second unit dominating the usage with a little bit more minutes upside now. Again, that price tag in the low 4,000s just too cheap, friendly home matchup against Phoenix, good game environment on the whole. We like both Spencer Dinwiddie and Kairis Lavert tonight. Well, Dinwiddie and Lavert should see a lot of action tonight and should see higher usage, of course, without Kairi. Both deserve to be in your ladders tonight, so get Kairis Lavert in there. Little him and Dinwiddie, they don't really cost that much, so make sure you play them tonight on FanDuel. One final player to get to, and that's going back to Dwayne Deadman once again. Now, we've done this Deadman thing, it's worked out that it doesn't, and you got to pick the right night to play him. Why is tonight that night? Well, hopefully tonight is that night because Sacramento's going to need some size. When you're going up against Carl Anthony Towns in Minnesota, you can't play those kind of small ball lineups with the elites at the center spot, so we think Deadman's minutes are a little bit more secure tonight, as long as he can stay out of foul trouble, and Minnesota historically has been a team that struggled against opposing centers, so we think there's reasons for Deadman to be on the floor, there's reasons for Deadman to produce successfully, and hopefully tonight he's not Deadman walking. Deadman walking, I love it, Drew. That is as daily Roto as it gets right there. Deadman walking, hopefully not. Hopefully he's alive tonight for your fantasy teams and for the Sacramento Kings. Drew Digmire, dailyrotor.com. We appreciate the time and the terrible jokes. Thanks, I'm always here for the terrible jokes and happy to give my time. Enjoy the game tonight, Greg. Thank you very, very much, Drew. I'll be here all week as well. Tomorrow, I'll be joined by Davis Matic and Jim Sonnis, office back baby. We'll break it down tomorrow right here. I'm a fan, do a hurry up.


Rwy'n meddwl'n gyflydydd. Fe amgylch â swyddiad cynyddiad hynny. Mae mate'n meddwl hyn dywed â'r cyfrwyd gydaill ar hyn, ond rwy'n meddwl sydd wedi gweithio gael cwyl alen, neu yn dda i ddweudеch chi'r gwrs a'r cyfrwyd. Mae'n meddwlMA ymgol Bundanov o'r ymgylchedd. Felly mae mae'r cyfrwyd, ac mae'r ymgylchedd yn y nghylch ar weithraff, mae genny'n meddwl y rydw i'r urllig ni, can follow along. So, let's do this. Okay, no, not like that. No. Okay, so today I'm going to talk to you about the power of the community and the power of collaboration and how that benefits us shaping the future of Moodle together. So I'm already surie for those who don't know me, I'm the community engagement lead at MoodleHU and I started working at MoodleHU just about a year ago as my first day was the first day of the MoodleMood global last year. So what I wanted to talk to you about is how much the community is at the heart of Moodle and you all know that because we're here today because it's the community's role to help build Moodle. But to do so, our community team is here to help you do so and I just wanted to just give you a little overview of our team. We have a very small team. We have some developers who help us look after the community sites and I'll go a little bit in details about the types of sites we've got in a minute and that how it can help you support Moodle. But we've got David, Victor and Aya and we also have part of the academy team who work with us Federico and Mary who help us manage the community, update the sites and look after the Moodle.org site which I'll show you in a minute. So my role is to help coordinating that and the remit is really about looking after our community site so it's Moodle.org and all the satellite sites if you want that go with this. And this is Moodle.org. If you haven't seen it, go on it, log in later on today in this presentation. I'll ask you to actually answer a feedback activity so you'll need to log in to Moodle.org to do this. And so basically, sorry I've got to keep to this microphone. I want to show on the screen, you've got to get involve button and if you click there you will see all the ways in which you can get involved in a community. And these involvement is how you can help Moodle grow and Moodle innovate so we can get a stronger Moodle elements and other Moodle services as well. It's not working. OK. So in the context of the community, in the context of Moodle, the community to me is the sum of all the individual actions that you make that builds our LMS and the other products globally. This collective power is the heart of Moodle. Without us, without the community, LMS and the other Moodle services aren't what they are. So we need to bring together those diverse skills and perspectives that you have. And at the moment we're doing that through different interactions on Moodle.org and the other sites, but I would like to know from you and that's what the feedback activity will be about today, how better we can do this through the sites improvements, but also through actions and initiatives. So if you have ideas, I'll want you to give us some ideas. But I also want you to question how maybe you can harness your skills and powers to help us and to help the community. And this brings me to this. I have this concept in my head. It's not an official concept of us, the community, being citizens of Moodle. So we're actors, we're active citizens who take part of the community. And we, it's not a citizen with a passport, it's a citizen who belongs to a group of people. And so my question to you is what are your superpowers or your superpower? You might have one skill, one strength that can help us grow the community. And you might think, well, I can do that little thing, but it's not going to be helpful. But actually answering that one forum post, contributing to a tiny little bit of code, translating one language string adds up. And when we all do that together, we make a massive change. And that's really important. So it's about bringing these things together. Some of you already contribute, and I know space is here. And some of you have done small contributions, and maybe have had a break, or you changed jobs, et cetera. Think about how you can keep contributing, but also tell me how we can help you do those contributions. Because I know time, you've got jobs, we're all busy, and time is important. But we can help, if we can help you in any way, I'd like to know about that. And so the examples, I'm going to go through a few ways of contributing. And this is in the Get Involved page I mentioned earlier. So obviously, for developers, building, developing, contributing to Moodle LMS, taking part in the Moodle User Association, the documentation, writing docs in all the languages, and I know some people in this room who have been really involved in this. Plugins, whether it's reviewing plugins, whether it's developing plugins for the community, or of giving feedback on plugins that help the developers improve them as well. The themes as well, development, translations, a massive part of our Moodle community, and our language strings available for Moodle. And these are also, our translators, every time a new version comes in, they have to re-translate all the strings, et cetera. So if you're interested in that, there are courses on, Mary correct me if I'm wrong, on Moodle Academy, that will help you becoming a translator, and then you can help with that as well. And the forums, like most people know about the forums, on Moodle.org, they are those communities in different languages that help each other, basically. Testing, new QA testing is happening soon now, so you can take part in testing, and you don't need to be a dev to do some testing, like, I don't, I'm not a dev, and you can also help with designing UX, exploring the resources, discussing UX issues, and taking part on our UX research, Moodle app as well, developments on Moodle.net, and contributing to Moodle.net as well. A lot of things, and all of these things, and taking part in conferences, meeting of others, sharing experiences is another one. So all of these are actions that you can do in the community. One I didn't mention on this last one, because it's new, I think is the LMS pack, and that's been mentioned by Mary yesterday in the keynote, but if you're interested in that, Mary posted a QR code to the forum on Moodle.org where Brett is asked for contributors, so you can go to that, and if you have any questions, just ask me after about this. But yes, let me know about your community engagement ideas. So we did a little competition last year in February, where we asked you to submit course templates, for example, and we had like two winners who I think are here today, maybe not in this room, but any other things that help you engage people and share ideas we want to know about. So the future of community engagement now. We had intentions to actually show you some of the outcomes of these things today, but they're not quite ready, so I'm sorry I can't show you all of that. But one of the things that we want to put in place, and we're working with people within the community to do this, are roles that will help us break down language barriers and geographical barriers, and that's both on Moodle.org and those sites, but also Moodle Academy, valuing your contributions by formalising and expanding community roles, doing kind of reward system, and we're working on that. It's slow because we only have a small team, but it's coming at some stage, and we're also exploring new ways of engaging and welcoming community input. Aside from that, we're also constantly improving the sites. So the sites are updated to the latest version of Moodle all the time, the community sites, but also at the moment we're doing a lot of research on the plugins directory, so if you want to get involved in that and how it's usable, let us know and we'll guide you towards that as well. So what's coming next? I mentioned the Pag. We will also, parallel from the Pag or ongoing, have a community funding platform, and that's not quite fully defined but we're getting there. We're looking at having single sign-on on the community sites, a pointer reward system and improve plugins directory, which I've mentioned, improve forums, so we've got ideas for that. Again, we might do some testing if anybody's wanting to be involved in that, let us know, and my biggest challenge, I think our biggest challenge as a team is improving that multilingual cross-language interaction to maximise your inputs and your contributions. This is hard with the benefits of AI and translations, etc. We will get there eventually, but this is our biggest challenge. So if anybody's interested in chatting about that, please come and find me and I'd love to hear about your ideas. And this is it. This is your turn. So if you can scan this, I didn't put the URL. Sorry, but otherwise, if you can't get it now, I can find a URL and send it around later. Let me know about your community engagement ideas. Please contribute. You will have to log into Moodle.org and it's a small feedback activity where you just can type in, basically, and I would love to hear a bit more. I don't know how I'm doing for time, but I'm nearly at the end anyway. So I'll let you do the scanning, take a picture, share with other people as well. Yeah. Okay. Just a summary of what I've talked about today. So it's about building that community further together, encouraging contributions and from others as well who you work with. I've talked about the upcoming strategies and things we want to develop. I want your feedback. We are trying to get a unified vision from the community as well. And please, please, please use your superpowers. Contribute. Tell us how you can help us. Any questions? Okay. Okay. Just a microphone. You had a nice chart with upcoming features or better plug-in registry and everything there. Exactly that one. Yeah. Do you have a page where you describe this in detail? So it's a task I haven't finished, but it will be. Okay. The Moodle roadmap, which is a GERA kind of tracker, I have started putting one or two in there and these are actually my next tasks in the next week to actually add these and give a little bit more and people will be able to comment on the tickets as well. So you can actually input at that stage. Nice. Thank you. Very good question. Thank you. Nothing else?


And yet, in our state, Governor Ahmed Finteri has commanded the judiciary for upholding the tenets of democracy by affirming his victory at the 2023 elections. Governor Finteri, in a statewide broadcast on Monday, said the Supreme Court verdict has brought an end to the tension in the state, which he believes is premised on rumors and misinformation by the opposition party. While thanking the people of the state for their continuous support, the governor has showed that he will ensure the prosecution of the former resident electoral commissioner, Hulu Ari, and all those who aided him and his to bid to divert the mandate of the people. He has, however, employed all the litigants to set aside whatever misgivings and joints hands with his administration to move the state forward. The Supreme Court verdict of Wednesday 31 January 2024 has officially closed all the noise on the 2023 election in Adamao State. The days of lying and deceits are over. The moments of false propaganda and cheap talks are gone. It is no longer in contest that Adamao State is the state for the people's democratic party. This has been affirmed both at the polls and in the courts. The people have spoken loudly and clear. A testament to this is our latest victory at my Balwa constituency of the state has ever simply. I most appreciate INAG.


Fort Worth home values are increasing, and rental prices have been rising steadily too. For some of our neighbors in Fort Worth, that makes it hard to find a decent, affordable place to live. Entry-level teachers, service industry workers, college graduates working their first job, seniors, persons with disabilities, skilled workers supporting a family. These Fort Worth residents need affordable housing, so they have enough left over for food, clothing, transportation, and other necessities. So what is affordable housing? The United States government considers housing affordable if it costs no more than 30 percent of your income. In other words, someone making minimum wage would be able to pay about $377 a month for an affordable one-bedroom apartment. But in Fort Worth, the going rate for a one-bedroom apartment is $850 a month and rising. To help bridge the gap, the City of Fort Worth Neighborhood Services Department manages a variety of federal, grant-based programs that help residents afford good housing. There are a number of programs. Some of them help the elderly on fixed incomes, or those with disabilities. Others provide rent subsidies or vouchers to tenants. There are grants for homeowner emergency repairs, neighborhood renewal projects, loan guarantees, and homebuyer and financial education. Other programs give tax credits to builders for new construction or renovating older units. All of these programs help beautify and strengthen Fort Worth neighborhoods. And yes, this is what affordable housing looks like today. Clean and attractive with an emphasis on energy-efficient appliances and windows, and ideally close to major highways, bus stops, and retail centers. Many rental homes and complexes you drive past every day offer a number of units to neighbors who qualify for affordable housing, but there's still a shortage. That's why the City of Fort Worth is working to provide more safe, affordable housing in a broad range of neighborhoods. Homes that don't separate low-income residents from others, but welcome them into the neighborhood and expand opportunities to be close to good jobs, good schools, and be more self-sufficient. For more information about affordable housing programs in Fort Worth, visit fortworthtexas.gov slash neighborhoods.


Hello, welcome to Combined Wing Chun. I'm Sui Fu David. Welcome to Wing Chun Dummy Training Techniques, also called Mu Yan Zhang in Chinese. In this video series, you're going to see 116 Wing Chun Wing Dummy Training Techniques, 116 moves from Yip Man's Wing Dummy Form. I'm going to show you each move step by step with the action cam so you have the best way to learn the Wing Chun form at home. Make sure you subscribe and click the bell for notifications so you don't miss a single lesson in this series. Here we go. These are the first few moves. And the third move is Bong Sao. So we are here in move number two. Move number three will be do Bong Sao. So we're going to flip it around and do Bong Sao. So from the front, it looks like this. This is in your center line. This is your Bong Sao. Your finger is pointing that way. It's relaxed. And your elbow is higher than the wrist. This will be around your sternum level. And these are all both on the same line here in the center line. It's on the dummy. You end up here. And now we just go in here. So notice I'm making contact with this and also with this arm. There's no pushing. There is no sinking. Just make contact. That's all you need to do. So from number two, this hand moves here. This hand moves here. Here. To here. Here. To here. Okay. Here. To here. This one goes from here to here. So at the same time we go here. Here. Here. Okay. So it's move number three. From here to Bong Sao, we're going to first step over to the corner. And then we're going to move this feet to the side of the lower arm. I mean lower leg. And then we're going to hip it this way. So that's the feet. Starting from here. I mean we're in this position. So we're going to step to this corner. This one steps to here on the switch sides of the lower leg. And then we're going to shift. Now we're facing 45 degrees towards the dummy. And now the weight of your foot is 70% left foot and 30% right foot. Okay. So you want to smooth motion here. So once again. You pivot it this way. You step this way. And then we pivot it back this way. Now we're 45 degrees. Okay. So we ended up with Bong Sao. And what we want to do with the hands, just the hands, is we're going to move. And then we're going to flip it to the Tan Sao. So we're here. Flip it to Tan Sao. Bong Sao. Flip it to Tan Sao. Bong Sao. Flip it to Tan Sao. Okay. Let's move. This hand doesn't move. It stays in your Wu Sao position. All you're doing is from here. And then keep contact. Keep contact. Keep contact. And it flips to the Tan Sao. This index finger is still pointing into the center of the dummy. And that is Wu Sao. Okay. There's an ending position here. Your weight is on your back foot here. Your feet are pointing 45 degrees. Shoulders down. Wu Sao is here. And you're facing, looking at the dummy. So that is move number four. Number three. Step. Step. Shuffle and do the Tan Sao at the same time. From here. And we pivot and do the Tan Sao. Pivot and do the Tan Sao. Pivot and do the Tan Sao. And then the next move is we're just going to go turn this into a low palm.  Just shuffle a little bit. So there's this tiny shuffle. There's a tiny move forward. Shuffle. That's it. So tiny forward, tiny bit forward. So at the same time, move number five is that's your feet moving forward slightly. Move number five. And now you combine it with a low palm. While this keeps the Tan Sao up here. That's move number five. So we're going pretty quickly. Let's start from move number three. Your Bong Sao. Slowly. Step. Step. Pivot. That's move number four. Move number five is slight shuffle forward and low palm. And this Tan Sao stays up here. Alright, so that's move number three to five. Let's do number three to five a little bit slower. So we're here in our Bong Sao. And then we're going to step to the corner. Move this foot to this side of the lower leg. Pivot this to the side. The upper hand turns into a Tan Sao. Who else are you here? Step five is step in a little bit. And as you shuffle forward and backward, do the palm. This stays as a Tan Sao up here. That is the move number five. So those are moves number three to five. Okay, correction. We made a little mistake here. This is three. And this is four. So it's not four and five. So four and five, but I just explained it's actually just one move, four. So you can call this three, four, and a half. Okay, I just want to separate it so that you can make it a little bit clearer. But in actual, according to the 116 move, this is three, four. It happens at the same time. So when I'm turning, pivoting, and calming at the same time, this is one move, four. Okay, so now we end in the four. Move number five will be to switch it to a Gan Dam Sao. Okay, so I'm here. Switch it to here. So I'll just do it quickly. Number five, eight, nine, ten. Okay, so we're going to go through that sequence. So here's the hand movements for four to ten. It's on the front angle. This is the four. There's a Tan Sao in the low jiao, the Dai jiao. So from four, we go five, six, seven, eight, nine, ten. Okay, one more time. We just ended up in four. So it's five, six, seven, eight, nine, ten. So let's do it over my shoulders so you can see. Staying on the dummer, dummy, four. So we're four here. Okay, so now you can see over my shoulders, over the, in the dummy starting position four. Position five, six, seven, eight, nine, ten. So that's how you do it on the dummy. If you like this lesson, make sure you click the like button and share it with your friends. And also subscribe and click the notification bell for all the latest lessons that are coming up. If you want to continue your training, just click the next video to keep watching.


So, hi, I'm Monica and I'll be talking about the intricacies of networking in Kubernetes. A little bit about me. So I work as a full stack engineer at Mintical. I worked as a software developer. I worked as a DevOps engineer and when nothing else works, I work as a Jogadu engineer. You can find me all over internet with my handle, Monica Rangwar. So story time. So it was 1.5 years ago that we migrated all of our stack on Kubernetes, all of our production load and one day I got a call from my team lead saying that our production is not working and whole of our network stack has gone down and when I logged on, I found out that none of our pod is able to connect to any of the services, be it external, be it internal and we were left with no other option than to set up a new cluster and migrate all our applications to it and that's when we decided that we have to understand what is happening, what is happening internally and how is Kubernetes handling its networking. So I took a deep dive into Kubernetes and that's what this talk is all about. A little bit of terminology that we'll be following. I don't know if you've heard about Kubernetes. It's the state of the art container orchestration system and it was developed by Google and is open source now. Pod is a very basic unit in Kubernetes. It is the specification as to how your containers will run. It is a collection of containers which shares a network and store its space. So pod is ephemeral as you've learned in the previous talk by Bhavin. So pods are always coming up and coming down. So service is another abstraction of a pod. It's how you expose your pod to external traffic. So we have a very simple problem. We have two services in our cluster, service A and service B and service A wants to just send a packet to service B. So if you're aware about Kubernetes, you can very easily imagine the path it's going to take and you can assume that it's very easy. So a very simple easy path is you have a pod A corresponding to service A, your pod A is going to hit your service B and service B is going to load balance over its pod. If it was that easy, I wouldn't be giving you this talk. So there are a lot of components involved in this process. There are a lot of backend mechanisms and each of these components has the tendency to either add some delay or to block your packet altogether. So we are going to understand what all components this packet flows through and what all block we can avoid and how we can optimize these components. So the first stop in this treacherous path is the kernel itself. It's the kernel of the pod which wants to send the packet. Its objective is very simple that it just wants to send a packet to service B. So kernel, so the first step it performs is the DNS lookup and it uses a library called library called libc in Linux and muslin alpine and its job is to resolve service B to its IP. So the way this lookup happens is it performs the IPv4 lookup which is a record and IPv6 lookup which is called a record on the same socket. It happens in parallel. So when there are lookups happening, Linux kernel uses contract to keep track of the ongoing network connections happening in the kernel. And we are performing a DNAT translation here which is destination network address translation and when these translations are happening, there is a chance of race condition. Now, what happens in this race condition is if any of the lookup, if a lookup has been confirmed or unconfirmed or unconfirmed, it drops the second packet which is called in. Now, if any of the packet is dropped, our library assumes that whole of the DNS lookup has failed and it retries in five seconds after a time out of five seconds. So here only a latency of five to 15 seconds has been added to your request and which is a lot in a network connection. A latency of five seconds is a really lot. So how you can debug it? You can debug it simply by doing a TCP dump and you can check, you can see that the lookups are happening on the same socket and you can also see the look, retries in five seconds. You can also check contract which is a package in your Linux kernel and you can see that there are a lot of insert failed. This is a cue to understand that a lot of entries are getting rejected into being entered into contract and this could be because of Lipsy. How you can avoid it? You can avoid it simply by adding this option called single request reopen. You can add it to your deployment specs, to your pod specs. What it does is it tells Lipsy to perform lookups on different sockets. So your lookups will not happen in parallel and even if any of the packet is dropped, your library will not assume that your DNS lookup has failed. In cases of gRPC you have to do a special handling because gRPC assumes that gRPC uses Aries as its native resolver and if your kernel has this library, it's going to use that for its resolution. So you can simply set this environment variable called gRPC DNS resolver. You can set it to native and it's going to use Lipsy only for its resolution. Now that we have saved a packet from a delay of 5 to 15 seconds, we're going to understand how DNS resolver works in Kubernetes. So DNS resolver job is very simple. It has to resolve service B to its service IP. So you can use any DNS resolver in Kubernetes. It comes as an add-on and by default it's code DNS after Kubernetes 1.11. Before that it was kube-dns. So a very basic job for DNS resolver is to do server path completion. So if you've just given service B for it to resolve, it's going to add a lot of subdomains like serviceB.default.svc.cluster.local. It's going to add these subdomains and it's going to figure out which is the right domain. So since it's doing a lot of extra DNS resolution, there is a lot of over it and there are chances of lot of latency. So one of the job of DNS resolver is to have negative caching. Negative caching is to figure out which domains are invalid and to keep a cache of it so that it can be avoided in the future. Which is absent in code DNS. Sorry, which is absent in kube-dns and present in code DNS. In terms of CPU, kube-dns uses DNS mask which is a highly optimized DNS resolver written in C, but it's single threaded and it would need a full code to work on. Whereas code DNS is multi-threaded and it can utilize CPU better. In terms of memory, kube-dns consists of three containers whereas kode-dns consists of a single container. Also, it needs to keep a cache of all the endpoints it has resolved. Now, since it contains three containers, it's going to keep track of all of the cache in both in all the containers. So there's a lot of memory overhead. In terms of latency, kube-dns performs better for internal DNS and kode-dns performs better for external DNS. But the difference in these latencies is not that significant. So that's why kode-dns is the default DNS resolver in kube-dns right now. You can also optimize kode-dns so that you can further improve the latencies. So, I don't know if you've heard, there's a property called n-dots in kube-dns and it's set to five by default. So what this property means that it assumes a fully qualified domain name will contain five dots. So if your domain name consists a single dot or it contains four dots, it's going to add a lot of sub-domains to it to figure out if it's internal to the cluster or if it's external to the cluster. So again, there are a lot of overhead, there are a lot of extra DNS resolution happening. So you can simply avoid it by adding a trailing dot to your domain name so that there are no overhead DNS resolution happening. Another way you can optimize is enable caching in your DNS resolver. Also, if you have services external to the cluster and they fall into your internal domain name, you can add a zone for it. For example, my myintical.com corresponds to let's say <IP_ADDRESS>c idea. So I can add this zone. So for my myintical.com DNS resolution also, it's not going to add sub-domains to it. It's going to understand that this zone is external to the cluster and I don't have to add sub-domains. So these are the few ways you can optimize your DNS resolution. So now that we have our service IP, we want to reach a pod IP. So as you know, service load balance is over multiple pods. So we want to figure out our pod IP. This is the job for Qproxy. Now Qproxy can run in three mode, user space, IP tables and IPvS. User space is an obsolete mode. In user space mode, Qproxy itself acts as a proxy. So the go binary itself acts as a proxy and forwards all the requests to your services. So in user space mode, what happens is it configures your IP table to forward all of the connections to a port which is on which Qproxy is listening. So in that case Qproxy terminates the connection and establishes a new connection to your service and forwards your subsequent request. In this scenario, there are a lot of switching happening between the kernel and your go binary and a lot of latencies are getting introduced. Also Qproxy is a blocker here. So you have to keep track of how to scale and how to keep it always up and running. In IP table mode, which is a default mode right now, IP table is a Linux kernel module. It works for firewall purposes and it is flexible enough so that you can add your additional rules for packet manipulation. So what Qproxy does is it makes use of IP tables to do its NAT routing and it adds it's chaining rules to the NAT hook. So let's say you have a service which has two pods. So it will add two rules in IP table. The issue with IP tables is it has a complexity of ON. So as and when you have a lot of services and a lot of pods, there will be a lot of rules in your IP table and the lookup time will be O of N, which is a lot. If you have 2,000 services which all have 10 pods each, you will have 20,000 rules in your IP table. IPvS is another Linux kernel module and it's an optimized load balancer. So Qproxy uses IPvS to configure its load balancing rules The good thing with IPvS is it has a complexity of O of 1. So instead of a lot of chaining rules, it has a better data structure. It uses hash tables to store all the rules and it performs better in terms of load balancing. How you can debug Qproxy? So in user space mode, there are no other options than to see the log itself. In IP tables, you can check contract, you can check if any of the pod IPs are being cached or if there are stale connections being made. You can use IP tables save to see the rules. I'm going to show it to you in the next screen. In IPvS, so in IPvS mode, there is an interface made for Qproxy and there is a virtual, there's a service IP attached to this interface. So for each of your service, there's a virtual server created in Linux kernel and each of those IP is attached to your interface. So here you can see Qproxy in action. So as you can see that this is my service, this is my service IP and it has a SHA corresponding to it. Corresponding to this SHA, there are two rules which are pod SHA's and it selects a random rule out of this based on this random probability and in each of those SHA, you can see that there is a Dina translation rule written. So here your service IP which is your 155207 will get translated to your pod IP let's say 10125192. So in this way, your service name has been translated to your pod IP. Now you have your pod IP but there are a lot of nodes in your cluster. How do you reach the exact container this pod is running on? This is the job of CNI. CNI is your container networking interface. So as you can see in this diagram, pod1 wants to reach pod4. So the job of CNI how this works is as and when a new node is added to your cluster, it will assign a address space out of your pod address space to your node and it will keep a track of that. So for example, let's say XYZ pod address space is assigned to node2. Now pod1 has specified the pod IP it wants to reach. It will flow through the network interfaces and it will reach the route table. It will see that the IP address belongs to this IP address space which was assigned to node2 and it will route it to node2. Here in node2, it will see that the address space does not belong to the node itself whereas it belongs to the pod address space and it will forward it to the bridge and the bridge will forward it to the correct container. So now your packet has finally reached the container. How you can troubleshoot your CNI? So there are a lot of CNI available. You can use any, we've been using Veeve and Veeve has its own set of problems but in order to figure out how to debug and how to optimize your CNI you have to understand the implementation each of the CNI is using. One way is log itself. So the conclusion, Kubernetes is not foolproof. You should not start using Kubernetes without understanding what all is happening in the background. It's not complex. Once you understand, once you see the flow it's going through, it's very easy to understand. Networking is hard if you're not able to imagine. If you're not understanding all of the rules, all of the backend modules it's using and it's fun if you do understand it.  You should definitely know what is happening in the backend. Is it any question? So it depends on your DNS resolver. If your DNS resolver provides a way to configure it then yes but I don't think you should configure it yourself. It's better to use a DNS resolver which itself comes up with negative caching.


of course I probably can't, probably have to pick it back, oh well. So cruciiform lock from eBay, Chinese I think, not super hard, kind of fun, good starter lock, about 10 bucks. This is Alex, have fun, keep it legal, cheers.


So I'm going to talk about, this is joint work with my former student Anya Bankovic. So let's see, so let me start, so S throughout this talk will be a closed, orientable surface genus G2. And so two structures that I want to associate with this. So first of all, gamma of S will be set of homotopy classes of essential closed curves, and let's say maybe unoriented. And then the other thing that I want to think about associated with the surface S, some family of metrics. So omega will be some family of metrics. To simplify things, I'm going to, I'll sort of be slightly vague about this, but points inside of omega will sometimes be metrics and sometimes they'll be equivalence classes of metrics where the equivalence relation is familiar one from Teichmann theory. So family of metrics on S, up to isometry, isotopic to the identity. So I could take some metric on my surface and then I could apply some homomorphism, let's sort of difhumorphism, let's say, that's isotopic to the identity. So I put my hands on my surface and I sort of smear it around and then I could push forward the metric. And I want to think of those two metrics as being the same. And so given an equivalence class of metrics and a homotopy class of curves, I can measure the length of the homotopy class with respect to the metric, where I just take a representative of the metric and then I take the GDSIC representative of the homotopy class, minimal representative. So we'll say that omega satisfies, let's write it, marked length spectral rigidity. So that's the title here, marked length spectral rigidity, almost sort of thinking of the future. As marked length spectral rigidity, if function from omega to r to the gamma, which just takes a metric sigma and spits out all of its lengths, so length with respect to sigma of gamma. In other words, metrics in the family omega are determined by the lengths of their minimizing GDSIC representatives. So this is probably familiar in at least one setting. So hopefully I'll try to leave this up. So example, so the Teichmeler space, so what's the Teichmeler space? That's the situation where omega consists of constant curvature minus one metrics on the surface. And then there's something stronger here, so Teichmeler space of s satisfies marked length spectral rigidity. This goes back, I don't know, to Frick and Klein or something. And you can say more, right? There's, yeah, if, oh, yeah, it is one to one, thanks. Yeah, so if, so I guess I said it out loud, the metric is determined by the length, but yeah, I didn't write it. So no, no, definitely not surjective, yeah, that's right, yeah. So right, so something stronger is true for a Teichmeler space. In fact, I don't need the lengths of all curves to determine the hyperbolic metric, I only need a finite set. So in fact, we can find curves alpha one through alpha k, k linear and the genus, so that the function from Teichmeler space to r, the alpha one through alpha k is one to one. Okay, so this is pretty, pretty easy, let's, let me just sort of say what the point is. So maybe here's my surface.  So as we know, a hyperbolic metric on the surface will give me a hyperbolic metric on each of these three-hold spheres, which, if I take these to be geodesic representatives, that metric will be determined by the lengths of those boundary components. And then, what should I do? So I've almost determined the metric, but I've got a sort of choice as to how I glue these pairs of pans back together. And I can determine that if I take, say, some curves that are, so I could take a curve that intersects this curve, and then the length of this curve will almost determine how I glue. And then if I, if I want to pin it down so there's, I could take maybe another curve that intersects that curve. And the lengths of those two curves together will tell me how much I've twisted, okay. So from this, it's pretty easy to get 9g minus 9 curves, and in fact you can, you can reduce it down even lower. Okay, but the point is that Teichmeler space is a finite dimensional space. It's dimension 6g minus 6. And so for, for larger families of, of metrics, this becomes a bit trickier. Nonetheless, it's true for, for lots of metrics. So let me just write a sort of big theorem that includes lots of different results. So let me just say a marked length spectral rigidity holds for, and now let's say classes of metrics. So negatively curved metrics, okay. So if I look at all negatively curved metrics, then, so this is due to O'Tal and independently croak. So this is no longer a finite dimensional space of metrics. This space is huge. And it's definitely not the case that I'm going to find finitely many curves. And moreover, I can't even pick finitely many, I can't even pick the set of all simple closed curves. So it's a result of Berman and series that if I look at the set of simple geodesics, let's say, on a hyperbolic metric and take the closure of all of those, then that misses some open set. So the complement is, is open. And so I can perturb the metric inside of there without changing the length of any of those simple closed curves. So simple curves aren't enough and you really need lots and lots of curves. Okay, so this was then generalized to non-positively curved metrics. And I'll say something about the way that these proofs are related to each other in a minute. So this is due to croak, Fatih and Feldman. So as I'll say in a minute, there's an underlying theme for all of these results. They sort of, there's an initial reduction to a different problem. I'm going to spend some time talking about that different problem. And then from there, the techniques diverge. So the techniques here are sort of similar to the reduction. And then after that point, things become very different. So okay, well we can go a little further. So maybe it's worth pointing out, right, that the negatively curved metrics sit inside the non-positively curved metrics. A larger space of metrics than the negatively curved metrics are the negatively curved cone metrics. And this is due to Hershansky and Feldman. And here the techniques are sort of actually similar to the negatively curved case. So again, this is sitting inside of here. So what are negatively curved cone metrics? So away from a finite set of points, it's a negatively curved Riemannian metric. And at a finite set of points, you have concentrated negative curvature. So you have some comb point singularity for the metric, and the cone angle has to be greater than 2 pi. So in some sense, the proof here is really quite similar to the proof here. But you have to sort of work harder because of these singularities. And then, so the theorem that I want to talk about today is kind of in the direction of this non-positive curvature. So these are, I'll call them flat metrics, non-positively curved Euclidean cone metrics. So this is what we show. So you may be familiar with a large class of flat metrics. They were mentioned this morning, translation structures on a surface. So I start with something like this, and then I glue the sides. You take a Euclidean polygon and glue opposite parallel sides. You get a translation structure. Well actually, this is a singular translation structure. So you have a cone point here, which corresponds to the zero of the corresponding and billion differential. But away from that cone point, the metric is Euclidean. And then this cone point has curvature as a cone angle, 6 pi. So this non-positively curved condition just means that all cone angles greater than 2 pi. So this is the Gromov-Link condition for non-positive curvature. So you have a metric which is Euclidean away from a finite set of points. And at that finite set of points, you have a cone angle which is greater than 2 pi. So let me say something about that in a minute. This class of metrics, these translation structures, or semi-translation structures more generally, are just a very small part of this space of flat metrics. So being a translation structure, or semi-translation structure, means that not only are you non-positively curved, but the polynomial and the complement of the singular points has to be almost trivial. So either the identity or minus the identity. So I'm sorry. Well it's Euclidean, so it'll be, yeah. So just away from the cone points it should be smooth. So at the cone points you have some singularity, but away from there it should be a smoother money. Oh, that's a good point. I think that these, yeah, I'm not sure what the smooth is. Are they C-infinity? C2 at least? Okay. Yeah, so in my situation they're Euclidean, so they're C-infinity. Yeah, so in my situation they're, I mean they're Euclidean, so they're C-infinity. Away from the cone points. The metric just be continuous. That's a good question. I don't know. This is the curvature in the sense of Alexander of Spaces. So negative curvature here we just take, yeah. It's also, because it's assumed to be Riemannian, it's also the sectional curvature of Gaussian curvature. So yeah, probably C2, like I said, this, actually we'll see that here the sort of smoothness is not, well it's not an issue. Yeah, so this, I should say, this result is slightly more general. If you, so you can state it in terms of pairs of metrics. If you start with one metric which is non-positively curved and another that has no conjugate points, then if they're, if they have the same marked length spectrum, same functions here, then they're isometric by an isometry isotopic to the identity. But the, but as far as if you just, if you allow positive curvature that's easy to construct examples, take your favorite, let's say, negatively curved metric and then perturb it in a silly way, build a little bubble here. You can change them, there's no geodesics that are going to go up here. Okay, so the translation structures and the semi-translation structures give you some finite dimensional subspace here of flat S. And so your question about whether simple closed curves are enough, the answer is yes. So this was with Moon-Duchen. So in some work, some older work with Moon-Duchen and Kazaroffi, we showed a stronger statement here. So you have marked length spectral rigidity for translation structures or semi-translation structures with just simple closed curves. And although it's a finite dimensional space, there's no finite set that suffices. In fact, as said, so there's a refinement of this question you could ask, you know, if you take some set of curves and a metric, are you spectrally rigid with respect to that set of curves and that family of metrics? And for simple closed curves, in some sense, you really need all simple closed curves. So if you look inside of PML, if your set of simple closed curves is in dense, then you can find a family of flat metrics coming from semi-translation structures where the length functions of those curves are constant. So for the arbitrary case, you need simple curves that are not sufficient. And the point is that, so this space of metrics seems like a fairly special class, but actually you could approximate any of these metrics by metrics in here. So at least C0 approximate. So you could take your favorite hyperbolic surface, say, and then take a triangulation of that surface with tiny little triangles, and then if you just replace each of these hyperbolic triangles by the comparison Euclidean triangle. So Euclidean triangle with the same side lengths, you'll build a Euclidean cone metric, and at each vertex, you'll have an excess of 2 pi angle. So you can approximate any negatively curved metric or any non-positively curved metric with these sort of Euclidean cone metrics. And in some sense, these are sort of maybe combinatorial metrics. If you just want to build negatively curved or models of negative curvature, these are the kind of metrics that you would use. Okay. Other questions? So in our paper, we asked whether, because looking at the non-positive curve proof and our proof, there are a lot of similarities. So we asked whether or not can you actually do non-positively curved cone metrics. And that was after we did this, David Constantine proved that that's also marked spectrary rigid. So just non-positively curved cone metrics. Okay. So let me take about maybe 20 minutes. So these are Euclidean cone metrics. So he's allowing variable curvature. So in some sense, there are two bad guys when it comes to this sort of problem. One is the places where you have zero curvature and the other place is where you have cone points. They cause problems with sort of the sort of standard approach. And so what I want to talk about is sort of the issue that arises with the cone points. Okay. So there's a reduction of all of these things to, I'm sorry, hyperbolic, yes, hyperbolic orbifolds also, yeah, this is more general than, you could also allow hyperbolic orbifolds. You have, again, finite set of simple orbifold fundamental group elements that orbifolds for, yeah, so that's a good question. I don't know if you allow negatively curved orbifolds, that's, yeah, I'm not sure. Any other questions? Okay. So the key tool in all of these was introduced by Bonahan and then really sort of utilized by Atal. And this is, so there's a reduction of the problem of Mark-Ling spectral rigidity to a problem about injectivity of a different map of the space of metrics somewhere else, namely the space of GDS occurrence. So there's a reduction of the GDS occurrence. So let me remind you what GDS occurrence are or briefly tell you what they are if you didn't know. So we have our hyperbolic surface. So here's our surface S. We look at its universal cover, I should say we have our closed surface. I'm going to fix a reference hyperbolic metric, call it sigma not say, and as soon as I do that then the universal cover will be isometric to the hyperbolic plane and I can take the compactification of the hyperbolic plane and that gives me a compactification of the universal cover by a circle, call it S1 infinity. And then the basic fact is that if I change the metric sigma not to some other, let's say hyperbolic metric, I end up with the same identification of a sort of ideal boundary and more generally actually if I take any metric, so if sigma is any metric then S1 infinity is the space of equivalence classes, weak asymptote classes of geodesics, geodesic rays, geodesic. So if I have any, I could pick a point in my space and with respect to any metric I draw a geodesic ray and that will land at a unique point. If I draw another geodesic that lands at that point these two stay a bounded distance from each other, every point is the end point of a ray, blah blah blah, you don't know this. So what's a geodesic current? So let me say if this is the set of end points of geodesic rays then S1 infinity cross S1 infinity, so these are pairs of points and let's take pairs of distinct points, so this is the diagonal, okay, so there's x, x, so we throw away the diagonal, now we have distinct pairs of points and I don't really care about the orientation for my geodesic so I'm not going to care about the order of this, so let me mod out by x, y is equivalent to y, x, so if I take two points then at least with respect to my hyperbolic metric there's a unique geodesic between those points and with respect to any metric, any sort of reasonable metric, maybe I should say these are geodesic metrics, I'm going to restrict to non-positively curved geodesic metric soon. So with respect to any geodesic metric I take a pair of points and there's a geodesic connecting those by infinite geodesic and any two by infinite geodesics will stay a bounded distance apart, okay. So let me call this g of S tilde, so these are unordered pairs of distinct points on the circle at infinity and if I let, yeah, that's exactly right, it's a mobius thing. So another identification, if you want you can think about the hyperbolic plane sitting in RP2 and it's the complement of the hyperbolic plane, the compactified hyperbolic plane. So okay, so given a hyperbolic metric or a negatively curved metric, sigma, I can also look at the set of geodesics, so this is sigma on S but then let's lift it to S tilde. I'm not going to give it another name, let's just continue to call it sigma, so now I have my hyperbolic or negatively curved metric on S, I lift it to the universal cover and I look at the geodesics, so these are by infinite geodesics with respect to this lifted negatively curved metric. Well what I was just explaining is that, oh and I should say these are unoriented and unparameterized, so I'm just thinking about the subset of the universal cover. So there's a map from this to this space and this is a homeomorphism, not only is it a homeomorphism but it's a Pi 1 of S invariant homeomorphism, equivariant. The fundamental group is acting on the universal cover, by infinite geodesics, yeah, G sigma is the set of by infinite geodesics, yeah, oriented and unparameterized. So the fundamental group acts on the universal cover by isometry, so it acts on the set of geodesics, it also acts by extension on the circle infinity, and hence it acts then by the diagonal action on there, so I have a Pi 1 of S, equivariant homeomorphism. This is for negatively curved metrics, but for non-positively curved metrics, I'm just going to say NPC, so non-positively curved metrics, we can also define this G sigma, and it's a little exercise that this is, well it's still Pi 1 of S, equivariant, what I was sort of saying over there is that it's surjective closed map, that's not too hard to work out actually what the fibers of this map are, okay, so, but in general it's not a homeomorphism and this causes some problems, okay, so let's tell you what a geodesic current is, so far I haven't done that, yep, say it again, yes, yes, that's right, so because we have non-positive curvature, the fibers here are exactly sort of strips of geodesics, so if anywhere this map is not one to one, so I have a pair of points and I look at all the geodesics that connect those points, there's a bi-infinite flat strip in the universal cover, fully aided by geodesics that are the fibers, I'm sorry, that's right, yep, yes, so the, yeah the inverse images are either points or intervals, yeah, okay, so what's geodesic current, so geodesic current is a locally finite Pi 1 of S invariant borrel measure on this space G of S tilde, so I'm gonna stop making the distinction maybe between G of S tilde and let's say G of Sigma naught which is my fixed hyperbolic metric, okay, so I'll refer to the points here as geodesics, okay, so well if you haven't seen this before then this may look like a funny thing to do but here's, so here's an example, so let's start by taking a homotopy class of curves, this is good now we're bringing back in the sort of objects that we're supposed to be interested in, so I take a homotopy class of curves, I look at its geodesic representative gamma, I'll just call the geodesic representative gamma also, so I look at the geodesic representative with respect to my fixed hyperbolic metric Sigma naught and then I look at the preimage, so here's P, gamma tilde, this is P inverse of gamma, you get a bunch of geodesics, there may be some intersects, some are disjoint, the intersection pattern here is the intersection pattern down here and now this is a collection of geodesics, so this is the subset of this space of geodesics and so and not only that but it's locally finite, so I can just take the counting measure, so notice that, so counting measure on gamma tilde, so gamma tilde is pi one of s invariant, it's the lift of something down here, so this measure that I get is also pi one of s invariant, so let me not even call it something, let's just still call it gamma, so counting measure on gamma tilde will just be called gamma again, so this gives me for every homotopy class of curves an example of a geodesic current, so in fact we get an injection, so we have a one-to-one map of this into the space of currents, so let's call that c of s, so geodesic currents, okay? I'm counting, so gamma tilde, this is a subset of this space and I'm going to count, so I need to define a measure, so given a measurable set, I'm going to intersect it with gamma tilde and count how many points are in there, so put a direct measure on each point, gamma tilde is a, yeah, that's, yeah, so, right, any, right, okay? Make sense? Okay, now in fact there's more here, so this, this, this definition, this particular definition of geodesic currents I believe is due to Bonohan, and he proves more, so he actually proves not only is this one-to-one into here, but it's also if I take positive real multiples of this, right, so now I, every curve gives me a measure, I can take multiples of that measure, positive multiples, and he actually proves that, that's still injective and in fact dense, the image is dense, so every geodesic current can be approximated by real multiples, positive real multiples of these guys, okay, so what do we do with, with this, so now we've got lots of examples and we know how to approximate everything, so the key theorem, the Bonohan, is that there exists a symmetric, bilinear, continuous function called I from currents on S, cross currents on S to R, and what does it do? So the intersection, so this is called the intersection function, if I take two currents that come from, so for all gamma and delta, homotopy classes of curves, well if I have two homotopy classes of curves, there's a natural number associated to it, namely the geometric intersection number, namely, so I, I try to minimize the number of times that these curves intersect in double points and under all, because these are homotopy classes, so I'm allowed to homotopes, I take the minimum of those, that's the geometric intersection number, and this is, there's this nice, really nice function that extends the geometric intersection number, okay, and the key point is that geodesics minimize intersections, so if I take geodesic representatives, they're gonna minimize the number of times that anything in the homotopy class can intersect, so I guess I don't have time to tell you, I mean this is not a super mysterious construction either, I mean the, the, if I have two geodesic currents, so these are measures on the space of geodesics, and then I can look at the set of all transversely intersecting pairs of geodesics, and then I can take the product of those two measures on that subset, it's an open subset, and basically I take the volume of, of that measure once I pass to the quotient, so take a fundamental domain and take the measure, okay, so, so far we've related now geodesic currents tell us something about homotopy classes of curves, actually give us a lot of information, what about metrics, so this is the other, so Bonahan was trying to give another interpretation of the Thurston compactification of teichner space, and, and he, he used geodesic currents to do that in a very beautiful way, so let me just state this as a theorem, and this is, this is really due to Bonahan, in the case of, you know, of, of hyperbolic metrics, and then Otaal for, for negatively curved, and Krog, Fati, and Feldman, okay, and, okay, and, and, you know, you can sort of push this more, Hussanski and Paulin, and, and what's the point, so given sigma a non-positively curved metric, maybe even cone metric, so I'm not going to qualify here, saying Ramanian let's allow also singularities, cone singularities, there exists, so what's the, what's the name of the metric, let's call it, let's call it sigma, there exists a current called the Louisville current in this space of currents, such that nobody can see, move it over here, such that if I look at the intersection number of any one of these curves, this homotopy classes of curves, I take the homotopy class of curves, and then I associate to it this geosic current, this counting current, and then I'm going to take the intersection number with this Louisville current for the metric, so, and what you get is the length, okay, so associated to every metric, there's a current, an intersection number with that current is the metric, is the length with respect to the metric, okay, so this is, this may seem sort of mysterious, I will tell you just very briefly where this comes from, at least in the case of like a Ramanian metric, so the Ramanian metric on the unit tangent bundle, I can look at the geosic flow, and there's a natural invariant volume form, and okay, well if I contract that volume, so it's invariant under the geosic flow, if I contract that volume form with the geosic vector field, in this case I get a two form, I lift that to the tangent, unit tangent bundle, the universal cover, the flow lines in the universal, in the tangent bundle, unit tangent bundle, the universal cover, are exactly the space of geosics, the orientation, so, and this two form just pushes down to a measure on that space, which is invariant under pi one, the two form on the unit tangent bundle of the universal covers invariant, so when I push it down, I get this invariant measure, okay, so there's this construction, and the key thing that I want to maybe just say in just a minute is what L sigma looks like, let me just write it right here, so in the case where sigma is a Riemannian metric, there's a nice form for this L sigma, so let me write down, so here's the universal cover, so here's a nice set of geodesics, let me fix some segment alpha, okay, so here's some geodesic segment alpha, and let's look at all of the geodesics that cross alpha, okay, so all the geodesics that cross alpha are parameterized by the point of intersection together with the angle, so let's say alpha here is, sorry, this is horrible, so let's say alpha here maps zero to L, which is the length into the universal covers, this is my geodesic, I can parameterize all these geodesics by T in zero to L and theta in zero to pi, okay, so these are all the transverse geodesics that are transverse to the segment alpha, and then here's what L sigma is on zero L cross zero pi, it's just one half sine theta d theta dt, whatever, okay, so if I were to integrate over this set, this function, I exactly get L, okay, I'm calculating the length of that segment, and so I was mentioning trying to sort of very briefly say what this intersection function does, sort of integrating over all transverse intersections, so if I take a curve and take its geodesic representative and I integrate this over that, basically over all the points of transverse intersection with that curve, I'm calculating the length of that curve, so that's sort of the idea here, okay, one more fact about, are there questions? Some questions seem to have died down, so one more fact about these geodesic currents due to O'Tull, and this is really what now, you know, this already suggests some connection with the marked length spectral rigidity, so the theorem of O'Tull says that the map from currents on S to R to the gamma of S, so I'm going to take a geodesic current mu and I'm going to take its intersection number with the curve and record all those numbers, so this should look familiar, right, this is sort of like what I'm doing here when I'm calculating lengths, this is injected, okay, so geodesic current is determined by its intersection number with all closed curves, okay, okay, so now we can put all this together and we see what the reduction is, if I have a metric, almost, you need to know, well, yeah, so there's a little bit more than just density, yeah, almost, so yeah, there's some, we don't know sort of non-degeneracy of this intersection, anyway, so there's a, we have our function now from here to the space of currents, so we have our metric sigma and we read off the Louisville current and then we follow it by this, this is already one-to-one by O'Tull, so this map will be one-to-one if and only if the composition is one-to-one, but the composition by this formula is exactly the length, this is sort of length, okay, so we reduce the problem of proving marked length spectral rigidity to proving injectivity into the space of currents and now maybe it seems harder because the space of currents maybe seems more complicated, but it's got more structure than the set of closed geodesics, right, the set of closed curves is just a set, here we've imposed some additional structure and that gives us some leverage, okay, so 10 minutes, let me, let me come back to this picture again of what this Louisville current is, so for this Euclidean cone metrics, one way to take a singular metric and to try to produce this Louisville current is to take a sequence of, say, negatively curved metrics that approximate it and then you could take the corresponding Louisville currents and it turns out the space of projective classes of Louisville currents is compact and so I can always extract a convergent subsequence and so that would be one way to produce the Louisville current associated to sort of singular metrics, but it turns out that you lose too much information and in particular we're going to use a lot of information about what this Louisville current looks like in the case of non-positively curved cone metrics, so the formula, one half sign, so this is this formula, this is still valid for Euclidean cone metrics, so this is still valid for phi, this is formula L phi, so where phi is now one of these flat metrics, so I should, I should clarify, right, because if I take a geodesic in the universal cover, so here's my geodesic segment alpha and if I look at the geodesics that intersect this point and make an angle theta, well if this geodesic hits, hits a cone point then there's infinitely many ways to extend it, okay, so I'm no longer parameterizing all geodesics by that go, you know, that transversely intersect alpha with just the angle and the point of intersection, but it turns out that this current is actually supported on a much smaller set, so let me, let me write down some facts, the point, so if you like you could think about where is the geodesic flow defined, so if I throw out all of the singular geodesics, all the ones that go through the cone points, then I still have a geodesic flow and that turns out to be defined on essentially, on it, well on a, with respect to let's say theta and t, a set of full measure and so I can just ignore all the geodesics that go through the cone points and the L-P measure of a set of geodesics is equal to the L-P measure of that set of geodesics after I've thrown all the ones that go through cone points out, so the way to say that is that the support of this L-P is equal to the closure of a set of non-singular geodesics, okay, and there, there was actually another point nobody complained because it's like 430, so another issue, right, is I could also have, you know, one of these flat strips and as far as a measure on boundary cross boundary, all of these, all of these geodesics give me the same point, right, these are the things that are in the fiber, so really what I should do is I should get a measure on the space of geodesics in the universal cover and then push it forward to a measure using this closed map and that's, that's what we do, so this is, but let's not worry about that, so this is the closure of the non-singular geodesics, those are the ones that don't go through cone points, so that's useful, let me just state some other properties here, so this is one useful fact, another useful fact is that, well we're taking the closure of that set of geodesics, so that means we are going to see some geodesics that go through cone points and actually that's the sort of whole key to this, to this sort of proof, so we have all geodesics, all geodesics meeting exactly one cone point are in the support, so if I look at all the geodesics that go through a single point I can approximate those by non-singular geodesics, oh I should say it and, and make an angle pi, so let me just draw a picture, here's my singular point and I've got now a geodesic that goes through here, it only meets this one and it makes an angle pi, so the, the excess here is two pi, so on the other side I see something greater than pi, okay those are in there and then there are only countably many geodesics meeting greater than or equal to two cone points, okay, so this is maybe a technical point I shouldn't have even said it, but this basically says the ones, so these geodesics that meet more than one cone point you can ignore them, there are no atoms in this measure, so from the point of view of the, the measure they don't, these are you know irrelevant, okay, so in the last, I don't know, five minutes, let me just say what the, or three, let me just say what the, what this buys you and then I will, I'll stop, I'll leave the rest of it as a mystery, so the point now is that the support, the support of this current determines a lot of information, so it determines all the cone points and in fact their cone angles, so just from the support we get a whole bunch of information, we also get a set of all geodesics between points in the support LV between cone points, so maybe rather than trying to, yeah basically that's, that's right, so somehow you know here, let me just draw a picture, so here's, here's some, here's a cone point, how am I going to identify this cone point knowing the support, well I've got this geodesic in there and then I can go and make an angle pi over here and then I can also make an angle pi over here and so you see some sequence of end points of geodesics that build some kind of a star-like thing and then there's some equivalence relation you can put on these and from that you get, you can, you can sort of identify the cone point with some subset of the support and that identification I should also say is pi one of s invariant, equivariant, so all of this is pi one of s equivariant, so that's the first point you know, that's how we figure out what the cone points are and then how do I figure, so what is this thing about geodesics between cone points, let me just draw another picture, so here I have two cone points zeta one zeta two, I can look at all the geodesics in the support that separate the universal cover into two components with these on either side and why do I want to do that because the L-thee measure of the set of those geodesics is going to be the distance between these two points so from the, once I know this, the support I get a whole bunch of information and then I use the measure to actually tell me the distance between these points so now given one of these flat metrics phi I can reconstruct all the cone points in the universal cover I can tell you what the cone angles are and I can tell you what all the distances between them are and that turns out to be enough to completely determine the metric because it's Euclidean, so that's, so that's it, I'll stop


Ah, the one area that I always wanted Supernatural to go. courtroom drama. Hey guys, this is my review for episode four of Supernatural season seven, defending your life. And I actually don't mind this one. Now admittedly, the episode is, I feel a form of damage control for Dean as a character considering the absolute assassination they've been doing with him of late. Always does. So it kinda does make sense in terms of this mistrust between Sam and Dean. Out of all of the examples that I can think of in terms of Dean and Sam ever lying to each other after season five, this is probably one of the more stronger ones.    I murdered a mother. He has that actual guilt, that hiddenness about him and that is used against him by this Egyptian God who puts him on trial. That doesn't put him on trial in terms of trying to prove to others that he is innocent. It is delving deep into Dean himself to see whether he actually feels like he is guilty or not. And I actually really like that in terms of him being an adversary. He's not sort of a pseudo villain. He is just weighing people by their guilt. Is he kind of going after some people that don't entirely deserve it? But there is the one gentleman who served his time in jail who's served 30 years and now he's out and he's immediately killed. But it's all because these guys walk into this bar and they find him. Seeing this episode, we have the guilt that Dean is riddled with after killing Jewel and they can't afford to bring her back. So instead of getting her back for this episode, we get Joe back. And I actually liked her inclusion in this episode. It made sense. It worked well. It kind of built a little bit more on this character. I liked how she goes about trying to kill him. The other people who are there, at least who have killed these other people, they're acting out of vengeance. Are there just a car that's dead set on running over someone? Whereas in this one, she has sympathy. She doesn't want to do this. So she's trying to do this in sort of the most common peaceful way possible by blowing them up in a very pseudo resemblance to that of what happened to her. I actually also really liked the clip show in this. If you wanted to ever get a clip show of supernatural history, this is a good one. Is it a little bit of low hanging fruit? Yeah, but it actually doesn't do a bad job in terms of what it is. There is the kind of hanging joke with Sam when he steals the horn and the guy, the minister comes in, he's like, I guess you're not here for bar mitzvah training. I was really wanting to see how that interaction ended, but it doesn't, there's no follow up to it. Doesn't bring the horn back. That was a joke left hanging if I can believe that. For the most part, this episode has a great self reflection on Dean. I like how he actually feels shitty about it. He knows exactly what's coming when the guy teases this final witness.  He would rather keep his brother in the dark than have any more saying what is actually in terms of his innocence. Except when we come to the very end of the episode, when Sam asks him, who do you think he was gonna bring? Now, admittedly, this is a writing critique because the dialogue he says, oh, it could have been anyone, whoever, people we killed. I feel that that was just him like not accepting anything that just happened.   That's just gone. That's just erased. And he's just back to being him because he immediately turns it on Sam and says, how are you not having guilt? And Sam, admittedly, it does open up an idea of how Sam is dealing with everything.  He doesn't have the guilt anymore. He has served his penance.  So episodes are super strong up until the end. It just kind of loses a point for Dean's entire adversity in this episode being kind of just away. So I am gonna give Defending Your Life A4 out of 7. It's a pretty average episode. I think it's good. I liked it. I would have given it a five had it not completely washed away everything that happened at the end, but I still enjoyed it. But now those are my thoughts about this episode. Let's see what you guys had to say. Defending Your Life breaks the shippers of Joe and Dean where Joe confirms he didn't have any romantic feelings towards him. And who would blame her? I love Egyptology and I was exciting to see the interpretation of Osiris. I love how in this episode where Sam and Dean don't kill Osiris, but just banish him for centuries. The episode also portrays ghosts in a unique way, but it also really handles Dean's guilt for killing Amy very well, as well as it starts to weigh on him.  Now, like I said, yeah, he does make Dean feel bad about it until the very end of the episode. And I don't know. I feel like there was still something between, like, you know, they work that. That's the whole idea of how the trial works is that Sam is able to, you know, use his lawyer-ness to get around it. So I don't know. I always feel like there was something there. What can I say about Defending Your Life? I've always been a fan of Egypt mythology and well, from watching House of Anubis. So when I started watching this episode, well, House of Anubis, what was that show? I watched this episode. I was hooked when they mentioned Osiris. I always like it when they take a spin on the original lore of anything. If anything, it makes the show more engaging. When Sam himself was on the stand at first, I half expected him to put his perspective on things and it's the same for Dean. Also, with Joe coming back as a ghost was well done and we get to see her side of things as well. Overall, the episode is sort of a gut punching when Joe started the oven and tried to get the lighter of the scene. That made me emotional. Yeah, that was a very good part. This episode does have its flaws and a connectivity to the Amy plotline was done very well. Especially with Sam and Dean was interested to know who the final witness would be, which made Dean didn't say anything because he and Osiris knew it was gonna be Amy. I'm only glad that Amy plotline is going to end in three episodes and continue with the Leviathans and Sam's hallucinations. For the rest of the season, I'll give this episode a four or five. Oh, cool, we're on the same page there, Lauren. I'm not surprised that Dean was feeling guilty about killing Amy. I'm really sorry for Sam because he doesn't realize that Dean, once again, lied to him. I really liked the Osiris. I find him to be irritating to me, though he was right about the toxic co-dependent bomb between Sam and Dean. I was surprised to see Joe again. It was great seeing her and I was glad to see Sam stab Osiris. I really wish Dean had told Sam the truth at the end of the episode, but I'm not surprised he never did. The last one here, Supernatural may have bad CGI here and there, but I give it credit. It would never got as bad as Supergirl are the modern Flash, which now looks like the Power Rangers. Yes, a hundred percent on that. I know the fans are always wanting legit monsters, but I appreciate leaving more to the imagination and not having to half-ass CGI abominations for a demon. I will give you credit on that. That's what I think that they're trying to do, the Leviathan, I think they're trying to make this, they're doing what they can with what they have. And yeah, some of the stuff that was being done on the Flash and Supergirl, that stuff really aged. Like I think if you wanna watch a Corridor crew, they actually did an episode specifically about that one that from episode of Supergirl that was getting the rounds. They talked about just the timeline, the crunch and the impossibility with budget limitations that those shows ran into as years went on. All right guys, thank you for your comments. Now the next episode is the one that I thought this one is. This is the one that has Spike from Buffy. This is Shut Up Dr. Phil. So give me your guys' thoughts about that in the comments below and I'll read those off in the next review. Otherwise guys, that's all for me. Hope you enjoyed this video. If you did, leave a like and if you're interested in more, subscribe. Until then, see you guys next week.