This study examined the genetic makeup of four rodents and six bats to determine if there was any correlation between their lifespans and cancer resistance. The results showed that the naked mole rat, which is known for its longevity, had significantly fewer copies of lines and signs than other rodents, suggesting that these types of transposable elements may be responsible for the increased cancer risk seen in shorter-lived animals. Additionally, the long-lived bats also had fewer copies of these elements, indicating that they too may be resistant to cancer due to their reduced copy numbers. This article was authored by Marco Ricchi, Valentina Piona, Olessio Boettini, and others.


Hi, I'm Ethan Allen. I'm a host on likeable science on Think Tech Hawaii. And I'm here to share a little interesting science with you today. Some of you may have seen this demonstration before, but you probably haven't thought about what it really means. The demonstration is very simple.  Standard party balloon, standard source of flame. You could use a candle for this, too. You lower the balloon onto the thing and pop. The balloon pops. Nothing surprising about that. You take the same kind of balloon and you put some water in it. This is about half filled with water. Lower it onto the flame and notice what happens. The flame just sits there burning away onto the balloon, onto the skin of the balloon, onto the skin of the balloon, as long as you want to leave it there. And the balloon does not pop. So why is this? Why is this balloon not popping? What's going on here? You would think, I mean, this has been on that balloon now a lot longer than the other one was. And the balloon is not popped. You can see from the bottom of the balloon, it's got a lot of black soot on it from the flame. It hasn't popped because the skin of the balloon has never heated up enough to melt and cause the balloon to burst. The skin of the balloon has never heated up because it is backed by water. Water has tremendous heat capacity. It picks up heat and moves it away very effectively, very efficiently. Water has this huge heat capacity, more so than almost any other substance on Earth. And it's this property that sort of highlights the implications of this demonstration for our planet. If you think about the flame here as the sun and the water in the balloon as the oceans, you get some sense about this. That is, every day, particularly here in the tropics, the sun beats down on our oceans, warming them slightly. Warming them slightly a bit, but they keep just moving heat away, moving heat away from where the sun is shining most intensely on them, moving heat away, moving heat up towards the poles and then gradually releasing that heat into the air, onto the land around it. And it is that process that spreads heat very effectively over much of the surface of the Earth. So the sun's heat is not just concentrated in the tropics where it really falls, but is instead spread over much of the surface of the Earth. If it weren't for this amazing heat capacity of water, there would be a very narrow band of intense tropical heat, a very narrow band of temperate zone, and a large part of the Earth covered permanently in ice. But because of water's inordinate heat capacity, much, much, much more of the Earth is actually habitable and not frozen. That's all there is. It's a cute little demonstration, but it tells us something very profound about the way our whole planet works. Hope you enjoyed it. Bye-bye.


All these thoughts, all these disturbances, all these fears, all of these, these are actual material vibrations. They are electromagnetic material vibrations that take up space, that have a materiality to them. So obviously, when everything is quietened down in that state of surrender, actually going with the impulse of truth, the materiality of the body is also quietened down. And when it quietes down, it also strengthens up.


Hello and welcome to NewsClick. Today we have with us Dr. Satyajit Rat from National Institute of Immunology. Satyajit, I think that has been sort of going around recently is a malaria vaccine. We have had times of India extoll about it in great detail. We have had even New York Times has commented on it as a major development. This vaccine which has had some field trials now, some results are available, talks about 47 percent cover if you will of for small children regarding malaria infections also claimed to be the first vaccine against parasites. Now what do you think this represents? So this is the vaccine from GlaxoSmithKline that was initially made in the US Army laboratories and since then has been developed by GSK in association with the path malaria vaccine initiative which is a multilateral public interest consortium. There is as is evident a very substantial financial and otherwise interest of the Bill and Melinda Gates Foundation. It is an interesting vaccine because it is a truly genetically modified protein. So it takes the surface coat protein or a fragment of the surface of one of the surface coat proteins of falciparum malaria and it is from the life stage of the malaria parasite that mosquitoes inject into the body. It then stitches this fragment of protein to a protein from the hepatitis B virus against which we have a very good vaccine. The nice thing about the hepatitis B virus protein is that it forms ordered particles by itself. You make the protein, you put it in appropriate physiological solution and it clusters. So it creates particles. So this fusion protein also creates particles and particles are much better to generate an immune response, to trigger an immune response than dissolved proteins are. So in this sense, it is a nice little vaccine candidate that has been around for a long time. It is very slowly gone through a number of clinical trials. It is phase 2 clinical trials in Africa. Remember, this is falciparum malaria. So inevitably trials have been almost entirely as far as I can recollect in Africa in a whole range of countries and all the phase 2 trials which are small trials have succeeded. Incidentally, they started with human volunteers who agreed to be vaccinated and then deliberately infected with malaria to see whether they could be successfully infected or not and that is where efficacy was shown to some extent and therefore that is how it was started. Now the nice thing about this trial is that this is a phase 3 trial. It is a large scale trial. Many thousands of children, 16,000 I believe are to be recruited. The trial has two components. One is very small babies, 6-week, 10-week, 12-week old babies. Remember our immunization program for children in public health, we usually do the bulk of our vaccinations in that age. So if at the public health level you have to introduce yet another vaccine, that would be the age to introduce it at logistically, expenditure wise and so on and so forth. But they have also got a greater than one year age between one to two years age. I forget the exact month slot group of children in whom also vaccination has been done and results are to be generated. Now the trial is to go until 2014. So they have done a mid-trial analysis and they have determined that the second group of children, the one year plus group of children shows a significant protection with the vaccine against attacks of malaria. Doesn't change deaths due to malaria. It does improve the severe attacks of malaria, the very severely ill children that frequency has gone down as well. But if they pool both groups, the effectiveness of the vaccine comes down. So what that suggests possibly is that the very young babies being immunized may not be as well protected, number one. Number two, the bulk of the protection is being seen within the first year. The trial is only just bigger. Now other people have done this, they haven't, the authors haven't done this. Other people have done this, that if you split their data into protection early after vaccination and protection towards the end of the first year after vaccination, protection towards the end of the first year after vaccination tends to be a little lower. Now one doesn't know if this is the case or not. In all of this, therefore, there isn't really a vaccine as far as anybody can tell right now. There may be, there may not be. What there is is some glimmering of an indication that there may be a vaccine. This is better than any other anti-malarial or anti-parasite vaccine that we have seen. And to that extent, the enthusiasm is, I suspect, warranted to some extent. But it is curious that rather than waiting until 2014, which after all is not that far away, they have chosen to do a midterm analysis and to release both a publication and maybe even more importantly an announcement by Mr. Bill Gates in the Bill and Melinda Gates Foundation meeting that here is a vaccine. They're also talking about introducing this by 2015. Now if the trials are going to end by 2014, is that possible as a date to introduce the vaccine itself one year within that? So WHO has said again unusually that if the present data hold up in the next set of analyses, say once you begin to do interim analysis, you can do a whole range of interim analyses. So if they hold up in the next set of analyses, which will be towards the end of next year, and if they hold up at the end of the trial, which is 2014, then because it has gone through a protracted set of clinical trials over recent years, WHO will feel comfortable with these provisos in saying in 2015 that it should be introduced. This is coupled to the fact that GSK has said that it will cost this vaccine, that it will price this vaccine at production cost plus a token amount of additional cost, which GSK has said, I have not seen the original commitments, but GSK appears to have said that it will undertake to invest in a next generation vaccine because everybody admits and agrees that even if this vaccine works, we are going to want a better vaccine. Manufacturing cost plus recovery of the R and D cost which Glaxo Smith and Klein has said is about 300 million dollars, I don't know. So whether the manufacturing cost is just manufacturing cost plus a percentage of other cost. And as you know, the major cost as far as drug companies are concerned have always been about the R and D cost, not about the cost of manufacturing. So that itself makes it, you know, okay, we will take this on phase value, but it's not as clear that it will be affordable in that sense. Oh, not at all. As a matter of fact, I haven't seen any realistic estimates of what it would cost to put it into actual regular immunization schedules for children in middle and low income countries. Also, we have this notion that vaccines are going to solve our problem. Clearly, that's not the case. So our proposal of which there is a statistic that we would be doing well to keep in mind. Remember, this is a trial in extremely poor African countries. In fact, one of the remarkable things about the trial, one of the nice things about the trial is that scientists from African countries were involved fairly intimately in the doing of the trial, which is always a nice thing. But this is in very poor countries. Yet, simply by virtue of being recruited into the trial, deaths from malaria have been extremely few in this group of children to the extent that you cannot even get statistically significant differences simply because there have been so few deaths. Why have there been so few deaths? Because given that they are part of the trial, the children have gotten proper medical care and attention. So effectively, what we run into the danger of saying is that because we either cannot or do not choose to provide the medical care that ought to be the right of everybody, we will substitute it with a vaccine. There are difficulties with this. I think that's a very telling point also because a lot of the single issue programs that have come into Africa distort the public health scenario, but that's really a discussion for another day perhaps. But I would like to come back to you on the issue of vaccine itself. Most vaccines we know are really almost 100% effective and that's what we know the vaccines to be. So what does a 30-40% vaccine protection really mean? At the individual level, that's perfectly true. Should will individuals take a vaccine, that's only 30 or 40% effective. Now many of the people of young India may not even remember it, but you and I certainly remember the so-called TABC vaccine for typhoid, paratyphoid, cholera, etc. that we used to get that showed between 30-40% efficacy over the first year and that was discontinued or at least has fallen outside widespread usage. W also had a TB vaccine, if I remember correctly, the BCG vaccine? We still have a BCG vaccine. We still continue to use it because in very small children, for certain illnesses, it is clearly effective. But yes, it's not certainly universally effective. The issue here is whether the individual is protected or not is one question. Whether for an infectious disease you can break the transmission cycle in the community enough to bring down exposure frequency and therefore bring down the total numbers of cases happening every year or not, these become two separate questions. For large public health infectious disease problems, public health authorities, agencies, tend to think in terms of at least breaking the transmission cycle, if not achieving individual protection. Individual protection is the ultimate ideal goal. More than 90% protective efficacy would be wonderful, but most public health agencies tend to think that if you can manage to achieve the break in transmission cycle, you've contributed. I'm inclined to think that that would be a nice thing. Satyajit, again studies have been conducted on what kind of interventions are required for breaking the transmission cycle and it comes down to that you really target the families where there are infections. If you have the public health system to do so, that's much more likely to break the transmission cycle than intervention at the generic level of society as a whole. So, I would agree that it's certainly a proven method for intervening effectively. All sudden, unmedicated bed nets work very well when the program works. I would argue that it's at least plausible in an academic sense to think about a vaccine that breaks the transmission cycle. So, WHO, for example, has said that if we can have a vaccine with 50% efficacy maintained over one year post vaccination, it will be a significant addition in the portfolio of choices for intervention. Nobody is pretending that the vaccine is going to replace anything else. But I think that there is still an issue about single disease-focused approaches in not quite in contrast to, but effectively in competition to far more integrated approaches to public health. And every vaccine hype, deserved or otherwise, tends to worry me from that point of view. Getting out of this malaria issue, there's a larger issue that is there regarding drugs itself. That for instance, after the Artemisinine's introduction, we really haven't had a malaria drug. The last malaria drug for tuberculosis is about, I think, 40 years, 45 years back. Now, do you think that this is a, that we have really reached some kind of scientific limit? Or is it really that there is not enough money in research? There's not enough attention for actually having drugs against what are called the forgotten diseases, forgotten, I don't know by whom, but certainly they are the most prevalent diseases which kill in the world today. I think it's a little bit of both. This is completely prejudice mine in this case, but I think it's a little bit of both. In the first place, I think that there is, it's getting, in science terms, it's getting harder to find targets. Simply because the most obvious and the easiest targets that distinguish microbial infectious agents from us, which are the targets that we would like to make drugs against, many of those already have drugs against them. So it's that much harder to find new ones. It's also easier to find drugs against bacteria, for example, than against parasites because parasites are eukaryotes like us. Bacteria are a whole different category of life forms altogether. So the distinctions are more stark and therefore drugs are easier to find. That said, I don't think it's impossible to find targets. I do think that it is necessary to commit to far more widespread, far more shall we say non-linear efforts to find targets. And our present modality for finding targets, which is really pharmaceutical industry driven, much more product patent driven, tends to try to minimize risk and therefore tends to try to stay within empirically accepted parameters based on prior experience with drugs for the purpose of finding new drugs. That essentially locks you into a relatively small subset of the potential operating terrain for drug finding. And unless we shift away from that into a public sector, public interest, public good effort, that's much more broad ranging. My guess is that we are always going to have this difficulty of self-restricted drug discovery space. Thank you very much, Sir Tijit, for sharing with us your views and your knowledge about these areas and these issues. We'll follow them with you as we go along. I think that we have a long way to go on this as yet. We certainly do. Thank you.


Well, hello everybody. We've missed you. We really have missed you. We've decided to check in. I'm Michael K.  I mean, I am eagle. You know him. He, he a couple of years ago, we all laughed at him, but he actually built the panic room and that's where he's coming to us. It was a good investment. I really was. It was Michael. My, my dream has always been to appear on center stage. I just never imagined it would be this way ever. All right. If that was your dream, if you had one person a foxhole to help you get out, who would it be? It's you, Michael. I always really feel that way strong. You're dependable. All of the things that you wanted a foxhole. You bring to the table. Michael, this. This is not the way we thought we would get together because we always talk about, Hey, we're going to get together. We're going to get the families together. And this is the next best thing, but obviously the goal is one day you and I actually will share a meal together and not just do it by a social media. That's the truth. But the beautiful thing about us, if those that don't know, we are very anti condiment. So in common, I mean, I've never had mustard ketchup and egg. I've never had fish. I've never had any of that stuff. And I know you are probably even more peculiar than me. I might actually be more peculiar than you. I don't know if anyone's ever said that, Michael. I might be the first to actually come out and verbalize it. No, no ketchup, no mustard, no salad dressing because I don't need salad. So you're not going to have the dressing if you don't have the salad. These are interesting tidbits that I'm sure people have been starving for. You know what? If you have the dressing without the salad, you're essentially having soup and I've never had soup. I like soup. You do like soup. I hate the whole slurping aspect of it. It bothers me. My over and under for the word slurping was two minutes. We came under. You turned slurping less than two minutes in. All right, so this is very odd. I mean, we're trying to have some fun, but it's a very serious time in our world. Is your family all home or your kid? I know your son is in LA with the Clippers. Has he made his way back home? He has. Michael, my son Noah came back Thursday night from LA. My daughter was studying in Australia. Really? She returned on Friday night. So the timing was about as perfect as it could have been in terms of all the travel angst. And it's great to have them both here. Again, not the way we thought we were going to have a reunion in the month of March, but it's been really terrific for our family to get together. But a lot of nervousness and I understand there's still a great deal of nervousness out there because people are scattered around. You have young kids. Five and seven. So the house is like weird. Yeah, weird. And I believe is there some homeschooling going on right now? Jodi is getting worn out because she doesn't do anything halfway. So she's like teaching a full curriculum. It's unbelievable. And so, you know, Charlie's in kindergarten and Callie's in first grade. And she's teaching both of them different curriculum. So at the end of the day, Jodi's kind of worn out. But we zoom that because I'd like to maybe do a little Billy Madison thing where I catch up on some of the things I missed as a youngster. I bet you weren't good with blocks. I'm just guessing. I'm not a good share and a lot of issues. The fact that I've used the term zoom now shows you that I've come a long way in technology because up until two days ago, I just assumed people were talking about the 1970s and the 1970s kids show that I watched on PBS that you also watched. I'm sure zoom got a zoom. I was not was that a dog? I'm my dog. Really? We have somebody else on the call. It must be a little puppy. I never, for some reason, I wasn't that bright. I didn't really watch channel 13. So I never watched SME street or zoom. It was a free channel, Michael. I don't know if you were familiar. Well, we didn't have cable then. Free channel. No cable. Two, four, five, seven, nine, eleven, thirteen. Thirteen. Yeah. Those were the days. I was happy. It was a simple life. Now, are you staying sharp by playwise? I see Joe Buck is having people come in. I have a little method that I'm staying sharp. My son, who's five, super into baseball. Yeah. So he has learned how to use YouTube and he has he has listened and watched every one of Aaron judges home run. So then he takes a bat in the living room and I have to recreate every single call in exact detail, which is very, very difficult. And I said, I'm going to blow out my voice, but he doesn't quite understand that. So we do at least I'd say 40 to 50 calls a night. That is that it's tremendous. Honestly, that that is a great thing. First of all, it's great bonding for you two.  I did find myself looking back because of this time of year on a bunch of old NCA tournament games. And I do find myself feeling the urge to call the action. So I have done that a little bit in my office. I'm probably going to expand and I might open it up to some old Nets games as well. My son and I must admit, Noah, although he does play by play for the Clippers, we were not the family that grew up doing play by play at the dinner table. It wasn't like past the mashed potatoes. Oh, the tacos. That never really was our thing, but maybe we should start. That would be a great time. Yeah, I always want you know, you mentioned watching games and when I watch baseball games now, I don't really watch the game. I'm watching it as if I'm announcing it and I'm not critiquing so much, but it does take away the joy of watching the game because you're almost looking at the way it's being produced. Do you do that? Yeah, very similar because first of all, you call so many games over the course of a year. Your brain now is set up in that manner of seeing things through a certain way through the spectrum of how you would handle it, how you would navigate. And I find myself doing the same thing, even just sitting back watching the Super Bowl. I can't just watch the Super Bowl. I do think about how I might phrase something or an inflection level or where I would punch a word. I think that's fairly common for announcers.  That's an area you don't want to venture into. Then you're just considered odd. Right. Well, people consider me that so uncomfortable with it. Now I see that you're growing a little bit of a beard and as of yesterday, I had a really bushy beard. And then I started reading stories that that's not good in this time because COVID-19 could get stuck in the beard. So I actually shaved last time. All right. Well, I'm glad you mentioned that to me. I made the thought in my mind of when they call the action of, all right, I'm going to do something that I haven't done. That's what I thought. Yeah. Senior year of high school, I attempted to grow a mustache so that I could buy liquor. That was, that was my thought process that I would look older. I did not. It just looked like pudding, draped over my lip. So I've not attempted to grow any facial hair since that point for the most part. And I feel like like a soap opera version of the evil eye and eagle like Ryan Eagle. It's, it doesn't feel right when I look in the mirror. It actually has grown in nicely though. You think so? Yeah, it looks pretty good. Thanks. You're going with the goatee, not the full beard. No, no, no. No, I'm going for the full beard. It's just not growing anywhere. I'm going to have to take a Sharpie at some point and just start filling in and give myself mutton chops. But I'm going to give it a shot and we'll see. It may take, it may take another three to four months before you see any real additions on this side. Thanks for noticing. You got it. I don't believe yours was bushy though. I think you're, you're maybe pulling my leg on the bushy quality. Well, I mean, it wasn't real. It was eight days. And the thing that really got me eye is it was all white.  I kind of thought that was the time to get rid of it because then you're starting to scream what your age is. You know, at least it's not all white in my hair, but in the beard, all white. Yeah. Papa Smurf is not, is not the way to go. It's not true. But I'd like to see you maybe bring it back in and we can compare, contrast at some point. Whatever you like. You know what I'm impressed with? I mean, so much about you impresses me, but this is the first time we're doing this. And you obviously already have a clothing deal with Nike, which is amazing. How many people can pull that together that quickly? Yeah. You know, it's funny, the baseball travels do not take you to Portland to shop, the employee shop. And what ends up happening with the NBA, they do often set you up there. The problem is you end up buying a lot of stuff that you don't need.  You forget about it for two weeks. I took the lowest possible shipping. It came via camel. And I get it like three weeks later and I start going through stuff like, what is this? Why would I have ever chosen this? So yes, I do have a collection of Nike gear that I chose in haste. And then eventually I wear none of it. So this is, this is one of the items. Thanks. Now I've heard that you get great deals there. How great a deal. You do.  You convince yourself at the time that this is really stuff you need. And then you get home and go, I haven't worn a jogging suit since 1979.  But next time we do this, I'll work in a different brand that that I have a side hustle on. I've got, I've got something I could put on it. It could be like the Al Sharpton look for both of us. A little Velour sweatsuit, you know. I like it. I mean, you and I, let's just be honest here. We did not talk about anything prior to this. No. We did Regis and Kathy Lee-esque. Right. And to me, that's, that's a little more authentic. Absolutely. If anything, we are authentic. How are you feeling your time? You still have your daily radio show. Yes. Yep. So I'm doing that from three until seven and, you know, I check in on class every now and then I go, I do the gym for them. And then to give Joe to be a break, I'll let, you know, Charlie has to read certain amount of books to me and he does that.  I'm just crossing my fingers that it's all good, but I spend a lot of the day worrying. I don't know if you're like that. Yeah, I've tried to turn off my brain to some degree. I have some experience with that based on my schedule with football and basketball, usually taking me into early to mid June. And from mid June to early August, I've tried the last few years, Michael, to do very little and shut off my brain. So I'm taking that mentality and moving it over to this time of year. But it's hard not to pay attention. You're someone that seeks information. I also seek information. We find solace in that. And with all the information out there, it's a lot and it bombards you as you try to come up with coping mechanisms in this time. I also find, because let's face it, this is your life and this is my life, the sports part of it, the component. It's often a catalog for all of us and it allows us to set up our week. Yes, you're calling the action during the summer for the Yankees, but as a fan, I'm setting up my week based on what day the game is, what night the game is. Obviously football season following a very strict schedule and routine and regimen of preparation, performance, basketball. And without that, it feels very empty and it brings to the surface how badly you want it back and how badly you miss it day to day. That's what I'm feeling on a daily basis right now. Now I'm wondering, you know, in a more practical sense because again to everybody watching this, the most important thing is that everybody stays healthy. But is there a cutoff point you think I am for basketball where it would not be able to return if they're not backed by X. Michael, I think they have a number of contingency plans in the plan A, plan B, plan C, plan D. Plan A and plan B are probably out the window and they've now moved to plan C, plan D, plan E. There's probably a plan in place where they believe they can come back without fans in venues and televise the games and still finish out the regular season to some degree and start the playoffs and then take a wait and see approach. That might push the date a bit farther, but yes, they have to have a date on a board knowing full well that they can't complete the season just from a logistical standpoint and a time standpoint. I don't know what that date is. We're not there yet, but I feel like the NBA has been very vigilant in trying to stay ahead and trying to come up with a quality plan so that they're just not floored by all this when it comes to ahead. How about baseball? What's what's your feeling right now with baseball? I would say, you know, we had Mariano Rivera on the show the other day, and he said, you can't have a 60 game season. He said, that's not representative of what a champion is. So nobody has told me this, but I'd say, I'd say the minimum would be 100 games. So you'd have to, you'd have to get them back to another spring training because Mark Shapiro, the owner of the Bluejack, they said they're going to need four weeks because they're going to be so, you know, brought down to zero. So I would say they have to get back to spring training by sometime in June and then you start in July, maybe you push the, you push it down to November where the postseason and this could change the world forever where they could play games in neutral sites in schools. And I thought about this with basketball too. You think there's any way that they ship the basketball calendar because it is because I've always wondered why isn't basketball played in the summer? It's played in the summer Olympics. So what could they start December 25th where that's a big day in the NBA and then play through to some point of the summer. They're not alone. There are a lot of people that believe that would be the best move going forward for the NBA that this might allow them to put that plan in tact. I don't know that there had been a complete movement and solidarity amongst owners that that was the best plan, but considering the ratings in November, December, and the behemoth that is the NFL, the NBA might look at this as a springboard to making some changes and pushing their calendar into June, deeper June, July, and maybe even early August. And it may not be the worst idea for for the NBA moving forward. They're going to consider it clearly right now they're focused on trying to finish up 1920 and get a postseason and what has been a really interesting season. It's funny with the NBA because they've built up so much interest outside of the games, free agency, the draft, even summer league they've created pockets of interest that maintain their sport over a 12 month calendar. The games in the previous years because Golden State was so good and Cleveland with LeBron had been playing at such a high level. The games had lacked a little bit of entry, which is unfair because Golden State played such an incredible brand of basketball and we're going to look back on that stretch for Golden State and say, I'm not sure we'll ever see that again. This might give them a way to create more interest and get people excited again about the games because this season really was a fascinating year. The way things were playing out of the Western Conference and even the questions of the East whether or not Yanis Adedicumpo could lead his team to a championship or would there be another team that could step forward in the Eastern Conference? I'm wondering, quick basketball, final question on that. If the season resumes in June, Kevin Durant back, Kyrie Irving back? I've got that question a lot. People are posting that as a possibility. Durant and his people have downplayed it. Obviously, Kevin right now the focus after his positive test for LeBron a virus. Clearly, it's just all about health. But yeah, you allow your mind to wander a bit, Michael, and whether or not Durant from those little video snippets that we've seen and I think you've seen them as well. He looks good. He looks like himself. He looks like a player that could step in and play today. Yeah, the question would be probably posed to him. What do you want to do? And I think they would lean on him medically. My understanding is from this point on, he can play. It's now a question, is the team comfortable? Is he comfortable? And then look at the timing on Kyrie. He got the shoulder surgery done at a time where if you looked at a four to six week period, it would be right around the date that you're describing. Amazing. That would be why. Let's be the responsible adults now before we wrap this up and do a bit of a PSA. You have two children that are of the age that they would be cavorting around Clearwater Beach, but I'm sure that you raise them better. It freaks me out as I sit and watch the world on TV and on Twitter that young people just don't get it and they don't understand the way to stop this is to stay in. And I would tell everybody that's fans of the Nets and the Yankees and watch us on Yes, just stay in. I mean, there was a great meme that was out earlier. You know, our relatives went to war for our future. We're just being asked to stay home. And I would think that that's an easy thing. Yeah, and it's, it's confounding to even think that we live in a world where there's this mentality of but not me, but not me. Right. You could be a carrier. You could infect someone even though you might not be showing symptoms someone that physically can't handle it. Our elders who are certainly vulnerable and at risk. Be safe. Be secluded at this time. If this is what is being asked of our citizens. I don't think it's a huge ask. Right. Chill out. Don't push the envelope at this stage and think about others. This is the time to be selfless. This is the time to understand that your actions could affect so many people around you. I'm with you, Michael. It's, it's pretty much a no brainer. Let's just face it.   Like that. Like that. And it felt like what 17 minutes. Easy. Easy. Like 17 but we made it 20 minutes into magic. Zoom magic. I'm going to finish it up like I do on center stage. That's iron eagle. I'm Michael K. And this was not center stage.  Take it easy. I have always wanted to hear that, Michael.


g big let's see something big dressed to the nines come on baby it's gonna be number two of ten that is willy mccovey abber poohals frank thomas parmond kilibrew eddie murray gill hodges jeff bagwell don manly and mark maguire that's pretty fire that's awesome congrats on that one all game used bunch of legends in there bunch of hall of famers pretty much all hall of famers i think this hodges made it except for no maguire manly aren't yeah but mccovey is poohals will be thomas's kilibrew is hodges just made it murray is bagwell is that is awesome yeah it's pretty fire congrats on that one there uh greg dressed to the nines hell yeah congrats on it like i can't say congrats enough man that is awesome all right that will do it for your break there mr. greg thanks again as always for the support buddy get him right off to my man it's awesome dude so sick ryan arpin up sporting kc tomorrow all right everybody let me get that uploaded really quick that one too all right everybody let me drop you the link i don't know if they make a mag big enough for that one they might they might i don't know actually off the top of my head to be honest greg i don't know i think you linked picking up a spot tomorrow as well here's your link to uh tomorrow's group breaks with forest he's starting off with some mls finest decent amount of spots still left in those um do appreciate you guys hanging out as always i will see you guys again shawn and i tomorrow night so have a go on everybody and we'll see you then


Hi, I'm Raquel Lopez with Denver Police Media Relations Unit. I'm here today speaking to Commander Joe Montoya from District 3 on an officer that has went over and beyond the call of duty assisting a small child. Good afternoon, sir. Good afternoon, Raquel. Yeah, this is a very nice story. It involves Officer Dan McIntosh who was working in an off-duty capacity in a Denver Police uniform. He observed a small child with a football in the neighborhood just throwing it up and playing catch with himself. He was kind of struck by the loneliness of the child. So he went over and talked to the child and kind of confirmed what he was thinking that the child was just a lonely child that didn't have many friends. The child was eight years old and Officer McIntosh, being a part-time football coach, took some time out with the young man, showed him how to catch the football, throw the football, and basically befriended him. In his conversation, he found that this child loves to ride bikes but wasn't able to afford one. His family could not afford one for him. Officer McIntosh, after his shift, went home and related this to his son. Between the two of them, they took some parts they currently had and went out and purchased parts and they built a bike for this little boy. They took it a couple days later, presented it to the little boy and his grandmother, and they were forever grateful. And this was just a fantastic opportunity to create a relationship, a positive relationship between a young boy and the police department. Thank you. Thank you, Commander Joe Montoya. I'm Raquel Lopez with the Media Relations Unit. Stay tuned for updates on Facebook, Twitter, and YouTube.


Can you hear me back there? Yeah, okay So thank you for having me here, and I want to thank PJ and Johnny who just left for Inviting me here and making this great conference. I really enjoyed yesterday's talks, and I had a lot of fun meeting many of you So looking forward to today. So I got a warning up front. I have this tendency to speak pretty fast Sorry about that But I want to give you as much as possible try to pack as much as possible in my talk So hope it's gonna be worth your time and also during this talk You may get this impression that I'm trying to sell you something and I just want to state up front that this is not what I'm trying to do The position I'm taking in this talk in all my talks is that of a happy user I said this by the customer and this is really how I think of myself when I Consider a leak sear and Erlang I've been using both languages for many years now And I'm really really happy with them and the OTP framework and the associated ecosystem third-party libraries Frameworks and a lot of great tools that we have and I really feel those things help me do my job Help me focus on the core problems of my job But still there is absolutely no doubt in my mind that like the most important piece of the puzzle Here is the runtime layer itself the virtual machine the official one which we call beam And this is the thing that I believe takes this whole system and puts it very far apart very be very very different And special compared to anything else that we have available today And it is a thing that I feel helps me the most with some of the most difficult challenges I'm about to face regardless of the precise nature of the project. I'm gonna work on and I just want to state that Beam as the runtime layer is actually not great for every type of software Which is in fact precisely what makes it great in my personal opinion Because rather than trying to be a jack of all trades and therefore a master of none Beam is built with a strong focus on a particular class of problems a particular class of software And I like to call such software a software system And this is a kind of software that you build you put it into production You start it once and henceforth it has to run continuously constantly for like a long time many years But maybe decades even and it has to do many different things at any point in time to serve the needs of many many users Depending on the system like 24 seven every day of the year and of course it goes without saying it should do those Things within some reasonable time constraints, whatever that means for each particular use case now Think web servers back ends of any kind Crawlers chatbots we seem to have a lot of interesting emerging examples in the embedded area as well So quite a lot of different software falls into this category that I'm labeling the software system And then there's a lot of software which is not a software system And if you're building those other kinds of things like especially some more complex things on a larger scale It's very likely that beam is not the hammer to that particular nail But if you are building a software system regardless some kind of a web-facing system Regardless of a business domain complexity or scale there is no doubt in my mind that Beam-facing languages are your best option available today Precisely because the runtime layer itself is fine tuned for the problem, right? It has some properties it makes some strong guarantees and some trade-offs are made in implementation Which are very well suited for the class of software systems, and this is what I'm going to talk about today I'm gonna cherry pick only a few examples and Try to explain. Why do I feel are they relevant in this particular kind of software? So it's gonna be technical, but nothing super deep you don't need to worry about that it's more like a high-level look at our lowest layer that we're using and For the purpose of this talk, I'm gonna assume that the thing called nif does not exist Now nif for those of you who are not familiar stands for native implemented functions It is a mechanism that allows you to write your own custom native code like in C C plus plus Recently people have been doing it with rust And to run that thing directly in the beam operating system process and when you do that then all the guarantees are off Right like you can crash your entire system You can completely paralyze it leak memory resources and whatnot. So it comes with a lot of power and a lot of bad stuff can happen And this is why I usually say it should be like your last resort It's perfectly valid if you want to want to implement some parts of your system in some other third-party languages Which do not compile down to beam But there are some other safer options which are not as performant but way safer and this is what I would recommend first So whenever I say something is guaranteed or something cannot happen It's really isn't true if you take nifs into the equation, but I'm gonna remove them from this discussion Okay, so let's get down to business Right, so you have your system powered by beam like let's say it's written in elixir. It's as a mixed project You start it whether it's locally with a mixed tool or in Production which in my opinion should always be an OTP release The story is always gonna be the same. So you get your own operating system process Your own instance of beam and in there you're gonna have a couple of threads running Called schedulers by default one per CPU core, but completely configurable There will be some other threads which I'm gonna ignore today And then you have a bunch of these what I like to call little yellow boxes This lightweight beam processes and you're gonna have way more of them like this is idiomatic Erlang and elixir I usually like to describe it as run different things separately You want to run different activities in separate processes and this quickly leads to explosion of these processes like in smaller systems You might have hundreds of them larger systems tens hundreds of thousands millions of those things Could be running around during some peak periods So this is what's gonna give you a lot of superpowers and the first thing I'm gonna talk about is context switching In the schedulers right so schedulers are the ones which are actually running those things like a scheduler pulls a process The process hits a scheduler and now it has some CPU time it can run some beam instructions and During that time if it doesn't need CPU anymore like it's sleeping or maybe it's waiting for a message to arrive or maybe it's Waiting for an IO operation to finish then it's gonna implicitly yield and someone else gets a slot But if it's highly CPU bound like for a long time say computing pie to billions of decimals Then it's gonna be switched out and this is gonna happen Usually it's gonna happen pretty quickly like in less than one millisecond and I say usually because the actual Implementation is not based on fixed time slices. So under some condition Arguably arguably not very likely it can happen that a single process holds on to a scheduler for much longer Like maybe a couple of tens of milliseconds But I'm not personally aware of any kind of elixir code Which we can write that could hold on to a scheduler forever, which is why I like to Say that for all practical intensive purposes the scheduler is preemptive and what this means, right? So we have like preemption and a very frequent preemption very frequent context switching what this means for our system it brings us a property which I like to call responsiveness and Instead of trying to describe it. I'm going to try to demo it with a simple Through a simple site that I built here for you. It's powered by By cowboy and plug I'm gonna start the thing and to make things a little bit more explicit and clear I'm gonna explicitly stated. I want to have just one scheduler thread and Let's start the thing Okay, and let me start the observer thingy Okay, so we can visualize stuff right so you can see here Hopefully that we have a one we have one scheduler thread It's already a little bit busy because the observer itself is implemented in play in our lungs So whatever it does it also uses this scheduler, right? So every single beam process of this beam instance is going to use the scheduler thread So now let me show you the site do not be intimidated by the complex user interface. I'm going to walk you through it step by step Okay, so what what does it do? I give it a number It gives me a sum of first and natural numbers and if I give it a larger number. I'm going to get a larger sum Which is hopefully correct. I actually have no tests to back this claim But it doesn't really matter in fact because what does matter here is that the implementation is completely CPU bound, right? So there's no yielding sleeping message passing file operations and whatnot So basically goes from 1 to n and accumulates the sum along the way So if I give it a large enough number, then of course it's going to keep this single thread Scheduler thread busy and this is what we're going to try. I'm going to give it the magical mystical 9 9s 4 5 6 7 8 9s, right, so hopefully that's right Let me check it out and when we when I go to the scheduler Utilization hits, you know now we're fully maxing out of the scheduler got a move quickly here So the site is still responding right in a separate step I can run stuff and I can get my responses pretty quickly this thing here is still ticking and it's just finished Right, so what you've just seen is the long running computation was running and it wasn't really too much extended Relatively speaking, you know, so the running time is in the ballpark and the short running Requests were pretty quickly certain. This is what I like to call responsiveness That's what let's talk a little bit more about that But so what you get is let's say that you have like a web server on this machine with a single core You have single scheduler thread and you have five requests pending like tasks that need to be done All of them CPU bound the first one quite heavy 10 seconds of CPU time That's quite intense the remaining four fairly short ones one milliseconds each and what you're going to get Could beam is like after five milliseconds you have already served four out of five requests Then you're handling the rest of the long computation and even while you're doing this You can still take more work and serve it pretty quickly Assuming it doesn't require a lot of computational time itself But so this is what you want in a system because you're juggling with needs of many different independent people now in contrast with Cooperative scheduling and I want to say that many of popular technologies today are going to give you this type of scheduling When the task hits the scheduler or this thread then it doesn't let go for as long as it needs CPU So for the first nine thousand nine hundred ninety nine milliseconds nobody gets their response right latencies All the latencies are ten seconds plus just because you have one super heavy long-running computation So this is not really quite good and I don't want to say the corporate scheduling is universally bad but I don't think it's a good default or a good choice for a software system and You can suffer from this problem Even if you have multiple threads because the story is roughly this like you're going to have to deal with a bunch of Bunch of logical activities right like thousands or millions maybe like handling requests doing some background processing and whatnot And you're going to have a fairly small usually fixed-size pool of operating system threads because those are heavy resources So you cannot have like millions of them So what you need is just to have a couple of these tests there's a small fraction of your system being super CPU busy for a little bit longer and Most of your system is on hold business of one or few leads to paralysis of many or all and this is definitely not good I have seen the situation in production myself. Have I seen this thing take down the production? so technically speaking it was working but Basically all the threads were busy and nobody was able to get their response within any kind of acceptable time So for all intents and purposes it was down not only have I seen it I have actually did it myself Not intentionally but by mistake I make mistakes from time to time like probably on a daily basis and this was a great example of how Seemingly low-level technical property Amplified my mistake and led to production being completely down, right? So that's that's pretty pretty bad in my opinion now beam is way more forgiving towards such types of mistakes Like if you have a couple of these things then your system is ticking as I have shown you and of course if you have more of these Long-running tasks, then they're gonna put a pressure on those schedulers and Your latencies are gonna increase your performance is gonna suffer But this degradation is gonna happen gradually gracefully so you get a time to spot that something is often to Maybe Understand what's the problem and fix it before it completely blows your production up, right? So this leads me to the next point the next property I want to discuss and this is the fact that Activities of your system powered by beam are first-class runtime things now what I mean by this is As I've said initially you want to run different activities and separate processes and these processes are Implemented at the runtime layer, right? So therefore your activities are runtime entities I'm I'm stressing this because there are some popular lightweight concurrency implementations Which do this on the library level and therefore they are not runtime entities, obviously another part of this puzzle is that activities have identities rights of these processes have identities, which is again not always the case the most notable example is go Basel CSP concurrency model where activities are anonymous and communication channels have identities now in beam you have basically activities as runtime entities with identities and what this means is that You can manage and manipulate these activities by talking to your runtime directly even if they themselves refuse to cooperate So this is pretty important, but sounds quite fluffy and weak So I'm gonna try to demo what I mean by this. So let me head back to this site I'm gonna show you bug you're gonna immediately know what's the problem But let's pretend that we don't know and let's see where it takes us, right? So like if I enter a negative number here Then this thing is gonna never gonna return right so you can tell here that it's just spinning and if I go to the scheduler Then it's completely maxing out, but it's never gonna return like even if I close this tab It's still computing there. So it's maxing out my scheduler and of course as I've shown you the site is still responsive So that's cool But if we get more of these things running, we're just gonna do a denial of service and essentially the system is not gonna be Working so we need to find what's wrong and assuming that I have some like proper Monitoring and alerting system in place. I should get some notification like my CPU Utilization is way off and now as a developer. I want to go to the production and see what's wrong I understand what what's causing this problem. And this is what we're gonna do. I'm gonna debug the thing Of course, I'm doing this thing Locally, but whatever I'm showing you holds for production You can tune into a running production without needing to restart it set some environment flags or God forbid Re-deploy a tweaked version of your system You can hook into running production and you can get a lot of useful info just by talking to your runtime about your activities And this is the point I'm trying to drive Right, so I'm gonna use like low level stuff. There are some you actually don't want to use this in real production You have some higher level tools Which are easier to use and a little bit more production save But I just want to drive this point and keep it fairly lightweight, right? So we want to find out who's burning our CPU and this has to be clearly one or more processes So what I'm gonna do first is I'm gonna list the processes That I have running in the system, so I get a list of pits and now I can go through each of them and I Can Ask my runtime something about them, right? So in this particular case what I'm interested in is a property called reduction count Or reductions and I'm gonna keep it very simple and stupid It is a number the higher the number the busier the processes and kind of dumping it down here and skipping some fine points But that's that's the idea. So we're I'm gonna look for the ones which have the highest reduction count Those are the one which should be the busiest So what I'm gonna do here is I'm gonna pack this thing in a tuple So I get a list of tuples reduction count plus a pit and now it's pretty much straight forward It's a smooth sales basically I need to sort this thing in a descending order And then let's see okay, and then let me take just top end of them Like say five and then I'm gonna For the better UI UX I'm just gonna print each one on a separate line Okay, so we have top five Reduction counts and you can tell that the winner is way busier than the runner up and therefore this process here Is the cause of our problems right so we were able to find the thing that's causing the problems Now I'm gonna we're gonna drill into it and we're gonna find find out what it does So let me take this pit into a variable right so I'm taking this identity because you know this thing That's think that thing has the identity and the first thing I can do is I can take a look at the Current stack trace right like a snapshot and keep in mind that this thing is completely out of control It doesn't cooperate with me, but I can still find out a lot about it But so I get the stack trace and I can tell that it's like cowboys So it's a web request. It's a router so I can narrow it down It's some so now I already know what type of the request the file name the line number and I can go back to the code Stare at it, you know like contemplate meditate Maybe something comes up and I can see some potential problem But why stop there, you know, I can I can get much better than this I can actually ask my runtime to trace me the activity in this process alone out of all millions of them running around the Production I can hook into this one little thing and I can see what happens and this is what we're gonna do I'm gonna use a DBG module because it's out of the box It's kind of gnarly or cane, you know a little bit cryptic, but it can do a lot of stuff, right? So what I'm gonna do is I'm gonna start a tracer and now I'm gonna say that I'm interested in tracing just this process and In particular I want to trace only function calls You can trace a bunch of other stuff like garbage collections messages being sent and received and whatnot So when I'm gonna look at just dynamics of this particular process and then I'm gonna set the pattern I'm interested in local calls of every single module. So every every function of every single module This is gonna generate quite a lot of output.  Let's see Okay, looks fine and stop Yes, okay, so we have one second trace Thank you very much. Thank you. Do not do this at home, right? I'm trained professional So we have one second trace of the activity of that particular process and you can tell that it's just infinitely recursing And now I pretty much know what's the problem like like in 99% of the cases the root cause of the problem Is that I was trying to be too smart about too insignificant thing, right? So in this particular case, I was trying to make some as a tail recursive Implementation so I'm recursing passing three arguments the start the finish and the accumulated some every time I recurse Increment start by one and I'm gonna stop when start and finish are the same Which is never gonna happen for a negative number for a floating point number probably some other edge cases around now I can go back to the code. I can fix the thing. I can even hot patch it, you know in production without needing to restart it But in the meantime, you know this thing here is still it's still consuming my CPU, right? so we're still maxing out on the scheduler and We can do a little bit here to help the production. So what I'll do here is I'll stop the thing, right? So I'm gonna send it an exit signal and in particular I'm gonna send it a kill exit signal Which is special because it can be trapped. It can be intercepted. This is kind of like kill minus nine, right? So we are brutally killing the activity and I'm gonna do this thing and you can see the log entry and going back to the scheduler We're now back to the normal utilization, right? So what you just witnesses I approach the system and I was able to quickly sift through like millions of things running around the system to Find the rotten piece then drill into the rotten piece to find why is it rotten and then take it out without disturbing Anything else in the process and I'm not aware of anything else that comes even remotely close to this level of service Like even this seemingly simple and naive feature of being able to forcefully terminate an activity gone rogue It's gonna be mission impossible for the vast majority of popular technologies today like the best case that they're gonna give you Is something along the lines of this, you know You politely ask the thing to stop itself and then you hope and pray that it's gonna stop itself Which is not gonna happen in the case you've seen right so what your best and only option in that case is going to be to to restart the whole operating system process and That means that you're gonna have to take down Thousands or millions of perfectly well functional healthy activities down as a collateral and that's pretty shitty if you ask me Right so in Erlang you can get much better You can get this thing I can ask the thing to stop itself But I can talk to my runtime to make some stronger guarantees I can ask my runtime. Let me know if that thing dies no matter how that so I set up a monitor to process And then I asked the process to stop politely and now it has the chance to flash its work say some final last words And then I'm waiting for the corresponding message and now no matter how the process dies, you know, even if it crashes before my Request reaches it. I'm gonna get this message. I'm gonna know that it has terminated. So that's one big thing That I get here and of course me being a separate process I can wait for this down message to arrive for some time if it doesn't then the other thing refuses to stop Maybe it's busy. Maybe just ignoring my request and I'm gonna brutally kill it right so I'm gonna send it to kill exit signal and Then I'm awaiting again for the down message because the exit signal itself is asynchronous So I need to wait for the down message but now I'm pretty sure that it's gonna happen because this is brutal termination and what you've seen here is a Sketch of how supervisors terminates its children, right? So polite, please stop followed by a brutal brutally die if you refuse The only difference is it doesn't use a special message. It uses an exit signal, which is not kill, right? But that's the only difference. So this is kind of the core idea another interesting thing we can do Because we can forcefully terminate our activities. So this sketch the snippet that you see is a Computation with a cut of time right with an upper time limit So this is kind of like here I'm the manager process and I start the computation in a separate process. It is a task. I don't care about the boundness It can be IO CPO doesn't matter So now as a manager, you know as every self-respecting manager. I basically what do I do nothing, right? So I stare at the clock and wait for the result to arrive if the result arrives I'm gonna take the credit, you know do something with it and yay But if the result doesn't arrive within some given time constraints, then I'm gonna terminate the worker But so I'm in walking task shutdown with the reason brutal kill under the hood This is gonna do what you've seen on the previous slide. It's got a new process exit kill followed by It's gonna then await for the down message. I don't know if James. Are you here somewhere? Yeah, it's kind of out.  But under the hood, it's a special reason kill process exit with a special reason kill is used Okay, so a lot of these stuffs that I've shown you again I just want to drive this point the first and foremost thing the property that that makes it possible is the fact that we can talk to a runtime of other activities So the runtime knows about those activities and they have identities. This is this is a big deal for me The next thing I want to talk about is share nothing concurrency. This is pretty famous property And it's a great example of a trade-off made in the implementation of beam So I usually like to describe it as these processes are essentially separate programs No, they just happen to be running in the same operating system process But have nothing in common really they have their own flow of execution have their own stag their own heap share no memory and Because of this property you have to pay the price when those things communicate like when they when you're sending messages Across process boundaries the message is being copied in most cases. There is one optimization path But for the most cases it's being copied So therefore you have to pay the price in some memory, of course and especially in some time The good thing about it though is that the the cost of this message passing is explicit It's obvious it's up front and therefore when you're tuning your system and your benching it when you're optimizing You're gonna see this cost and you're gonna optimize your messaging protocol Like you're gonna reduce the chatterness between processes and you're gonna remove or avoid sending needless pieces of data across process boundaries And the cool thing about that is that it makes it easier not easy But easier to spread this little yellow boxes around multiple machines because your messaging protocol is already optimized, right? So that's one good thing. Another good thing is that by paying the price up front. You don't have to pay the completely Unexpected surprising non predictable and sometimes very expensive price of stuff to world garbage collection so we don't have the thing in the beam and What's great about that is that you get more predictability Predictability like you're tuning your system. You're benching it and you reach some targets desired performance and you put it into production and You can expect more consistency there You can expect less gatchas in surprises over time, right? So that's another nice thing But another part of this puzzle that I actually want to talk about here is The fact that resources are also owned by Processes so what I mean by this is like stuff like file handles and network sockets ETS tables Monitors races and whatnot all of those things belong to some process Like usually by default one that actually creates them like if I open a network socket And I'm the owner and I can give it away to you and then you're the owner But someone is always the owner. That's the point Excuse me Now what this means is that when the process terminates no matter how it terminates Everything is properly cleaned up Like memory is reclaimed and files are closed and sockets are closed and so on and so forth And even that means even if the process is brutally killed and this is important because brutal termination means you don't get to say final Last words you cannot catch the thing you can do try after or anything else So still the stuff is going to be properly cleaned up and I'm just going to briefly show showcase this so I'm going to head back to the site and I'm going to do it from the command line. I need to curl This site just a second. Let's Okay, so let me try the good case. This is cool. And I'm going to do the minus one thing again So again, I'm running a request that runs for Infinity now we're going to kill this this thing And this time I'm going to do it in the observer to make things a little bit quicker So this one is the top the top one and this is the process that I'm going to kill That's the request handler and it owns the socket, right? It's going to send the response over that socket and I'm going to kill the thing and Immediately here I get an empty reply from server because the process has died and the socket has been closed on the server And therefore the client is now received the proper information, right? So that's just a demo that even when you have brutal termination the thing is going to be killed Okay, so finally I want to discuss how OTP supervisor actually sits on top of this seemingly simple low-level Properties and give some guarantees of its own, right? So OTP supervisors are usually discussed in terms of Restarting failing activities. This is arguably the most important point but feature but it's not the only one The thing I'm going to talk about here is our supervision trees So a supervision tree is basically the way that allows you to like you have this thousands and millions of processes in your system and with the supervision tree you organize them into Services of subservices of microservices of nano services of Pico services and so on and so forth you just drill down, right? So that's kind of the idea what you see here is an example of a supervision tree That I had a couple of months ago when I was demoing Phoenix at a local conference in my city So we have like a top-level supervisor. It's a system and when I start the system It consists of a back-end service and the front-end service So starting the system means I'm going to start the back-end service fully Then I'm going to start the front-end service fully and then the system is considered to be started and so on and so forth You get the idea now When you have such a system, you know, I just wanted to say think about it Is it is if it's kind of a unit system for your beam? it's like in it D if you will and Now when this thing is running there will be some various situations when you want to stop working service There are a bunch of reasons for that like sometimes you want to do this explicitly because of the flow in your application other times you want to do this You specify Rest for one or one for all supervision strategy and this essentially means you're telling to the supervisor if this thing terminates then Terminate all of these other children because there are somehow deeply connected. They are tightly coupled. So sometimes you do that There are another another frequent cases when you have a bunch of restarts in a single supervisor And then the supervisor gives up it says I cannot fix this problem I'm going to terminate my complete subtree and I'm going to delegate the thing further up the chain right so bunch of different reasons these are all the only ones and Basically, like if I want to stop a front-end system, I want to get that right like You would expect to have the proper subtree cleaned up with everything with all the associated resources That's what you would expect and that's this is what the supervisor is going to give you No, you can mess it up But it's an opt-in you really need to look for trouble to get into trouble right to the by default It's going to work pretty pretty well and the reason why it can guarantee this is because it sits off top on these Simple guarantees so frequent context switching with preemption means that no matter what the workers do even if they're super busy Hugging up your CPU and scheduler the supervisor is going to get its CPU time to do its work Right, so that's one important property and because we have first-class runtime activities That means that the supervisor can work with its runtime to manage those activities It can ask to be notified when things terminate and it can also ask to forcefully terminate those things if they refuse to stop themselves and finally of course share nothing concurrency, especially resource ownership means that You're going to get a proper cleanup files and handles and network sockets are going to be closed and whatnot now These are the foundation of the supervisor and take any of these properties away You know pick anyone take them away and things might look the same at the surface level They might even work well for a lot of cases, but there will be some non-obvious very treacherous Ugly nasty problems lurking you might end up with dangling processes Which could lead to re-entersy and race conditions and you could have leaking memory and resources and you can have excessive Needless CPU consumption, which could lead to self-denial of service. You could like completely block your Scheduler it's a bunch of nasty problems Basically, the system is not able to self heal properly in all situations anymore and sometimes the attempt to self heal is actually going to aggravate your problem So that's you know pretty pretty terrible the fault tolerance layer itself becomes faulty and that's pretty bad in my opinion because fault Tolerances I believe one of the most important property of any kind of a software system that is supposed to run for a long time So if you are aware of these risks, you can of course mitigate them You can work hard you can follow some best practices and do thorough code reviews and whatnot and you can improve your chances But no matter how hard you work how much you try you're never going to be able to fully eliminate The risk because the risk itself originates from your runtime and this leads me to The main point of this talk like this super big and important message. I want to send to the world So I have this feeling this wrong feeling that as the community of software developers many of us not not I'm not talking here But you know like in general when we're choosing our tool for the job and comparing different tools and discussing them It seems to me that we put a huge amount of emphasis on these things on the right side Sometimes I'm almost kind of get this impression that the success of a software system and its reliability depends on whether you have curly braces and semicolons and out of the box one line deployment commands You know and I'm not going to say that these things on the right side are not important They're of course important. You want to have some Some reasonable syntax and you want to have some flat learning curve and approachable Community and you want to have of course West echo system of libraries frameworks tools and so on but The thing is that if you have those things sitting on top of an inappropriate runtime, which doesn't give you some foundational guarantees then those things are an empty shell right there like a shiny facade on top of a shaky Structure and in contrast if you have like a properly designed runtime with the respect to the kind of problem you're solving then it's straightforward to support different syntaxes and to to flatten the learning curve and to evolve the echo system and of course a great example of this is elixir itself Because you see the runtime is basically your foundation It is your ground right and when the ground is solid then you can move with a lot of confidence at the predictable base Never looking back never regretting your past choices you can build your system and watch them grow and it will be on your original plans and imagination and Basically, this is why I believe that when considering your tool for the job, especially for a software system I would say that you should ask not only what your language and your library and your Framework can do for you, but you should first and foremost ask what your runtime can do for you because it can make a really huge difference Thank you