The Edo State Police Command has paraded the suspected killer of the mother of a former governor of the state. Commissioner of Police Philip Abandu made this known to newsmen when he paraded over 400 suspects at the state command for various crimes. Abandu advised vehicle owners to apply tracking devices while assuring residents of an intensive patrol during the year tied. These suspects were arrested, some of them for kidnapping, some for unlawful possession of firearms, some for courtesan, some for armed robbery, some for murder, some for stealing and so many other crimes. And during this period for the festivity to be peaceful to us, the command is going to increase their patrol, we are going to increase our patrol and we are going to improve our response time. Meanwhile, the suspects narrated their levels of involvement in the various crimes they were arrested for. The money are ruined watch and jewelry, so in the month around four, so in the around four that I move out the house. They tear the second time that she go and carry the woman money so that if she carry the money, I mean she go and key her, I'm sorry, say she go and key her, then she key her, she will go and withdraw the woman money from there will give her her own share, so that she will take care of her daughter, so they let the tear her first and second time, then they turn time in the money, they will let them come, come. She give her a sweet, after she give her the sweet, she now can't remember her again, say remember that I want to tell you, make a key grandma so that we go withdraw money, come, go give her your own part. So from there now, after she tear like that, now that very nice, she didn't know her thing, now that very nice when she sleep, she just can't get her one time, she can't do something, go and hit the old woman. The expectation was that for them to pack the vehicle and go, but those other guys and the neighbors suggested that we should do it in a violence way and collect the money from there, I really wish we did, so when we are coming back, we will have ascent, so the money is 6.7 million, so we will not traffic the money to the other corolla, we should draw off. and don't forget to hit the notification button, so you get notified about fresh news updates.


So I've been talking to you guys about my switch and me being an OB and I've been getting a lot of questions about what like my life in OB entails. And I did a video last week on kind of like my first week on the job, but I wanted to specifically talk about what I do during the C-section, okay? And so I had that question asked and it's basically, you know, I'm answering what does it mean to be a first assist in the OR. So if you are interested in any OR work or becoming a PA or a first assist, like a certified registered nurse first assist, you should watch this video. Let's get into the video right now.  It's Edana, welcome back to my channel. You see my new title right here on the screen. I am officially an OB-GYN PA before I was in trauma. And in trauma, we also went to the OR and we first assisted. But in OB, it's a little bit more structured because we have scheduled C-sections. So it's structured on that end, but not on the end where somebody may come in as a trauma and need OB care or come in with like abnormal uterine bleeding or ectopic pregnancies that will require like GYN services in the OR. So that is where myself and my attending comes in because we are the ones that are in the OR, like doing the OR cases. So as an OB-GYN PA, I am first and foremost like in the OR and then dealing with like post-op patients and postpartum patients throughout the day afterwards. So when I'm in the OR, I am the first assist and what does that mean?  Sometimes you second assist, but for the most part they will allow you to like be in that position literally right across from the surgeon, right across from your attending and you guys are kind of working in tandem, working in collaboration, working as a team to get the surgery done. So what does it mean for me as an OB-GYN PA? When I first assist, so I like to be very helpful, okay? And I think it's important to be helpful to your scrub techs and your OR staff. You know, when patients are coming down, you wanna help like prep the patient if you can. So like I put in a ton of folies in the ED, like when I was working in the trauma base. So I will put in a foley. I know how to put in folies. So I will definitely put in a foley for the OR patient if they don't already have one. So we will move the patient from like their bed, from their hospital bed to the operating table. And I'll help move, I'll put in a foley. I don't prep in like, you know, prepping with like the chloroprep, which is the solution that keeps like the area that you're about to work on sterile. But like when it comes to OB and prepping like the abdomen slash like suprapubic area, I am not doing that. That is really for the nurse to handle because there's like, you know, a way that they have to do it, there's a certain number of times they have to go back and forth and then go up the abdomen like this way and then come back down into like the crotch last. And I don't wanna mess up the order or anything like that. So I leave that for the OR nurse to do, but I definitely will put the foley in. If they don't already have my gloves in my gown, which typically they do, I'll go get my gloves in my gown and I'll put it on the table for them. Never touch the sterile table, you guys. You open it sterilely and I'll probably show you guys a video of all like the various different sterile things that I have because I had some from like, way back when I was in PA school because I had thoughts of doing videos like that for you guys, but I just never got around to it. So I will definitely like maybe make some shorts for you guys on that so you can see that. But open it up sterilely to drop it on to the sterile table.  So never touch anything blue if you're not sterile and definitely don't touch the sterile table. But I'll open that up and then from that point on, it's like getting the grounding. So there's like a grounding kind of pad that you put on the patient so that the Bovee tip can work and the Bovee tip is the little machine that kind of cauterizes and cuts tissue.  And if you can't see what you're cutting into that you're just setting yourself up for problems, okay? So put the grounding pad on, get all of that together, put the SEDs on because they're gonna be immobile for a little while.   And so that is, that's like the initial part.   So you're like coming in, but they come in and their hands are up in the air and you back up into the OR and, you know, you wait for hair scrub tech to give you the towel. So I don't like to be wet. So I, what I typically do is I wash, like I do my wash, I'm wet. I dry with a paper towel. And that's, I do that when I first get in into the hospital because I know that at some point in the day I'm gonna be in the OR. And then every time after that, I just use the Avagard and I, you know, I'm more dry. So it's like a solution, like a very, very thick, very, very thick hand sanitizer. I guess is the only way I can explain it. But I use that and I still do like my wash.   So when I'm gowned up, that's when I will then put the sterile covers on the lights, position the light in the way that it should be for the surgery. And during this whole time I attending is still like doing other things, right? Maybe like delivering a baby vaginally or something like that while we're prepping in the OR. Then as long as like the time has passed for the abdomen that my, the nurse has already like gone through and done the prep, as long as that time has passed cause there has to be a certain length of time for it to dry and set. Then we get the drape and I drape it onto her abdomen and in the area that we're gonna be cutting like the suprapubic area. We drape that so you have that area and then you kind of tape it down and then you have your nice, beautiful, like sterile set up C-section ready to go. So once that is said and done, typically like my attending walks in and then she gets gowned or he gets gowned and it's time to rock and roll. And so she'll be like, all right, time out. And so the time out happens where they go through the name of the patient, like there are date of birth and stuff, what procedure they're here for and kind of like who's in the surgery with them. And after time out starts, then and it's finished. Like then we say, all right, incision and that's when the surgery begins. So my attending makes the first incision. I'm on, depending on if they're left handed or right handed, I'm on the opposite side. So if they're right handed, depending on the OR as well, they're on that side of the table and I'm over here. Okay, so it's like I'm looking at you and you are my attending, okay? If you're watching this video. And so they'll make the cut. I'll have like the suction in one hand and I'll have a towel, like a lap or a retractor in another hand because my job is to make their job a little bit easier. And so I'll be suctioning to get any blood out of the field and retracting back so that we can get a good view of the area that we're trying to get into. Once we make that first cut and we get through like a sub queue area, then they kind of like do some blunt dissections here and there. We'll like dissect through like the muscle layer and the fascia layer obviously of just like the abdominal wall. And usually like I said, we work in tandem. So like when we're doing like retractions, like getting to the uterus, like they'll do one side, I'll do the opposite side. Cause it's just, you know, it's just like a little bit easier. Like if you're coming this way and then I'm facing that way, it's just easier for me to go that way and cut that area, right? And obviously like I'm new. So there are some people that are like, you know, like, okay, you do it and then there are others like, all right, I'm like, I'll do this. Let me like see how you work first type of thing, which I am fine with because I am new. So please go ahead and coddle me all you want. I like, I'm okay with that. But with that being said, once we get to the uterus, my attending will make the incision for the uterine incision. And then that's when like you're prepared with like fluid, with a suction for the fluid that's gonna come out. Cause there's usually like a gush. This is like when there's like the gush, when people think like they're water races, we're like breaking the water.  And then you like suction that all up. And then you like note the consistency and like if it's clear or not of the fluid and then it's time for baby. And so after we make that incision, I am like pushing on the top of the fundus of the uterus to get baby out. So I'm like pushing from here and my attending is like pulling from our incision, the head. So it's like very much like a dance, right? So I push, they pull, I push and it's just consistent, constant pressure. And they pull and they pull and then baby comes and baby's there and sometimes baby's like crying and sometimes baby needs a little bit of help. And so like baby's there on the table and I'm suctioning and I'm patting baby and I'm cleaning baby up and I'm suctioning like fluid and blood and stuff cause all of that's coming out.  And what we do this thing called delayed cord clamping. So we delay clamping the cord for one minute because studies have shown that that delay in cord clamping from the placenta can boost the baby's blood flow and oxygen intake and overall helps the infant to do better in the long run.  And so we do delayed cord clamping. So we wait a minute, like the baby's just kind of hanging out there with us. This is when we get to like really see how cute their little faces are. And then we'll clamp the cord with, you know, like the little thing that you see on typically on the umbilical cord, the plastic clamp. So we'll clamp with that and then we'll clamp with like a Kelly and then we'll cut and then we'll go down a little bit further clamp, cut, take that part away. And then I'm holding like the part typically where the placenta is still attached to like a little bit more of the umbilical cord. And I'll open that up for our cord blood so that we can send that for like specimens and get testing. And then once that's done, then we pull the placenta out.  So like I massage my attendings pulling. Sometimes I get my ring forceps to like get the little pieces of placenta out because this is where like you'll get more bleeding. If there's like pieces of placenta and stuff still in the uterus, you'll continue. Like your lady will continue to bleed. Your patient will continue to bleed. And you don't want that. So we try to clean that out as best as possible. Sometimes we take a wet lap, a wet like towel and then there's kind of sweep it and clean it out.  And then from that point on, we're trying to close up. And so like, well, you know, I'm clamping different the different corners and edges of the uterus because that's where they will bleed from a lot. If you don't close those edges well.  And then they are the ones that are closing like the uterus. So they'll close the uterus and then they'll close the fascia and then I close everything after that. So I'll close like sub-Q and then skin. And after they close like the uterus and the fascia usually like they're gone. They say congratulations, oh baby's cute. They'll see the patient post-operatively and they're likely going again to like deliver another baby.  But I'll close like sub-Q and skin. And then some, you know, some attendings like to close sub-Q and then I'll just close the skin which is fine. And from that, depending on if we felt like there was a lot of bleeding or not, we'll like put a pressure dressing. And so after my attending leaves, like I'm in there by myself with like the scrub tech and the nurse and the anesthesiologist or the CRNA whoever's there with me and we're closing and we're talking and it's like a great time.  And it's fun and it's exciting and it's cool to just be in the human body and like seeing all the beautiful things that God has created in such like harmony in terms of how it works. So that's typically what I do as a first assist in my C-sections. Obviously I do GYN surgeries as well. So I'm also assisting in those like when it comes to circloges, you know topics and tubal ligations and other things like that. It's the same concept. The more of these surgeries that you see the easier they become. And so because it's very much like a routine, right? Or you hope so. And then from that post-op care. So in the OR like you are the first assistant surgeon on the case and that can be me as the PA or the resident or the certified registered first assist who is usually like an NP, okay? So like those are that's typically my day as a first assist in the OR on OBGYN. I will work on those shorts for you guys so that you guys can see like, you know the sterile opening of things and like place like if you wanna drop it on the table and stuff and we'll go from there and I'll give you some more videos on me and my life as an OBGYN PA cause I'm excited about this you guys. So hopefully you liked this video. Hopefully you learned some stuff.  And then you know if you're going on your rotation you can expect what you can expect as a first or second assist in the OR. See if it's something that you really like. If you have any questions for me leave them in the comment section below. Don't forget to like this video, subscribe to my channel and follow me on Instagram you guys at AdonanPA and on Instagram at Get That See University where we help you not only get into but through PA school through the use of mock interviews and personal statement reviews and just personal consultations. We're kind of like life coaches for PA school, okay? So if you are interested in that or just in general because we, I have gotten some like personal statement reviews for just like grad school and college in general. So we do that as well and you don't have to be a member to get those services. So just be mindful of that. That's Get That See University dot com. Thank you guys so much for watching. I will talk to you guys next time. Bye.


Today's computers are really smart. They can see things, they can speak, and they can even play the ballgame of Go.  To be a good Go player, you have to rely on intuitions. Computers do not have intuitions. That's why previously people saw that computers could never beat a good human player. But just two months ago, a computer did beat the best human player in the world in a game of Go. So now it seems that computers do have acquired some sort of intuitions. And the reason behind all these amazing breakthroughs is machine learning technology. Using this technology, we can feed a vast amount of data into a computer. And then the computer can learn by itself the hidden patterns in the data and make predictions. I think artificial intelligence is going to have an impact on knowledge workers in every sector. No one is safe. But the extent of the impact depends on the nature of that sector. For example, if we are talking about analyzing financial data like stock prices, computers can do that. In fact, computers can do it better than human beings. And that's why the majority of security transactions in the world are now done by computers, not by humans. But for some professions like law, it is more difficult for computers to do. Because legal reasoning requires common sense. And common sense is based on a wide range of knowledge like history, us, music, science, sports, all of it. Computers do not have that general knowledge, so they don't have common sense. But now scientists are trying a number of ways to solve this problem. One of the ways is to convert each word into a long series of numbers. In other words, we are translating the natural language into a language which computers can understand. And hopefully one day computers can just go out and read all sorts of materials and gain common sense. We are not there yet, but we are getting there. If computers become truly smart in the sense that they can read, they can understand, and they can reason, then they can do a lot of things from a lawyer's perspective. I can let computers draft contracts, do diligence, or even give me a summary of all the relevant cases on a particular topic. Actually, we can take this idea one step further. And let's imagine that a computer reads all the cases and the statutes and textbooks, and then the computer will become an expert in the field of law. In a sense, the computer becomes a robot lawyer. It can provide legal advice. It can do legal reasoning. And in fact, currently, one of the problems with our current legal system is that people need legal advice, but they cannot afford it. So maybe a robot lawyer is the solution. And in the financial sector, actually, this is already happening. Computers are already providing investment advice at low cost or free to retail investors. Once computers can do things on their own and make decisions on their own, I think we then have to consider a serious question. That is, how much responsibility we can give to computers? In other words, what are the decisions a computer can make and what are the decisions only a human being can make? I think it's quite safe to say that we can allow computers to drive a car or fly a plane or even perform medical operations. But on the other hand, I think we should never allow a computer to decide the fate of a human being, like whether that person should be killed or sent to jail. But there will be some tricky questions, like can we allow a computer to decide whether to build a new bridge or to lower the interest rate? Those are difficult questions and I think we need to start thinking seriously about them. Artificial intelligence will transform the job market in the next 10 or 20 years. There's no question about that. For the legal profession, we are facing two types of questions. One type is whether the new laws or rules we need to design or create to cater for this new phenomena. And the other type of question is how legal professions can use the new technology to increase the quality of legal services we can provide to our clients. But the AI future can be a bit scary, but it's also very exciting to me. For the first time in human history, machines not only enhance our physical power, but also our mental power to think and to reason. The journey to artificial intelligence will push the boundary between machines and humans and lead us to a better and deeper understanding of the true meaning of humanity.


In the plastic surgeon's story, we learned of the leading role Australia plays with assistance and in advising on strategic planning for the health sector in Kiribati. It has also responded to needs when they arise. For example, the Centre for the Treatment of TB. There's also a brand-new maternity ward in Beso at the far end of the island. Three weeks after the plastic surgeons have left, once again large numbers have gathered at the hospital. The world has gone out. A team of orthopedic surgeons has arrived. The Bone People. It makes us think about what we do at home. We have so many people coming and complaining about petty things back home and the people who come here with the problem, it's a serious issue. It's humbling actually to come out here and to see how people struggle sometimes, not only in their everyday life but with medical problems and they don't have the facilities we've got at home that we take for granted. I mean, we can't get an x-ray immediately, we jump up and down at home. Once again, the first day is dedicated to assessing the patients and whether the team can assist each individual case. We're just looking at some x-rays of the next patient who's coming in with, we assume it's back pain because we're looking at x-rays of the lumbar spine. I'd say the most common cases are trauma that's been neglected and needs to be corrected or club feet on this visit. Six days ago, this little girl came in for a small first operation for her club foot. They're very common, we've seen a lot this trip. Today she's come back for the team to do a small incision and lengthen the Achilles tendon just above the heel. These club foot conditions can now be treated with a high degree of success. But the secret for the success is that they should be carried out in infancy. But the good news is that these procedures can now be carried out at the hospital here by the local surgeon. And with careful management, there's no reason why small children like this can't grow up to be as mobile and carefree as their friends. I think it must lie, it must lie just on where the bundle lies. Although they're known locally as the bone doctors. Their work is also about muscles, joints and ligaments, and a person's ability to move freely and without pain. I'm just trying to think why. I think you might need to take this off or sit up. The ward rounds are good because we get other people involved. We see the ward staff and we as doctors enjoy it because it's what we call old school when we see the patients. The nurses actually come and we tell them what's going on and they report their side of the story about how the patient's going and we give our instructions and there's a bit of interface or interaction occurs at the bedside. Whereas at home that's something that's lost a bit. Can you move the ankle up and down? Yep, that's good. Do a little bit more each day. Well we've got two roles. One is to treat the patients that are here and one is to try and assist the local surgeon and instruct him and show him how you can deal with the cases when he sees them on a day-to-day basis. He's actually very good so we've had the same local surgeon with us for several years now and so we feel that the educational role's been quite good. Oh this was a kid who came over from the islands. I think even a lay person can tell that that should be there. It's completely snapped off and then this is it fixed. The team faced a similar but much more challenging case during their last visit. Prior to their arrival this man could not walk. The gentleman with a badly united or ununited fracture was just joined by fibrous tissue and it was badly displaced and he could hardly move his knee at all. And we did an operation that you'd hardly ever see done in Australia where we took the fracture apart and put it back together and released all the muscles off the bone so they could move his knee again and it was very rewarding to see a good result from that surgery. One of the cases I can remember is a young boy who came in who had TB of his spine and he was going paraplegic and he had an ascending level and his sensory level was up to here on his chest so he couldn't feel anything below that. And he had an abscess in his spine from TB and so we suggested and stressed strongly to the Minister of Health and to the administration of the hospital that this boy needed treatment outside of Curbus so he was in fact sent to New Zealand and he came back to see us about five years later and he was walking albeit with a little bit of a limp and they had cured his TB they had infused his spine over a segment like that and he had only a mild residue of neurological problems in his lower legs and by that stage he was about 19 and he just came in with all smiles on his face and just to say thanks so I thought that was pretty good. Yes, these teams bring so much experience to assist the people of Kiribati but it works both ways when the team leaves the responsibility is now on the local staff to continue the care and management for example the small girl will need her dressing change every one or two weeks in this way there is a partnership she is supported by both local staff and the visiting expertise. I feel I had a scholarship covered education I didn't pay anything for my medical education I feel I owe someone something back this Australia doing a good thing with this program I think they're doing a very good thing yes.


Hello everyone, thank you Adam, appreciate it in the studio. We're here at theCUBE here in Cloud City, TelcoDR's Cloud City, I'm John, we're Dave Vellante. We're here for the next three days, wall-to-wall live coverage. It's a physical event with a virtual program, it's hybrid. We're here with Daniel Royston, he's the CEO of TelcoDR and the acting CEO of Toge, which is announced today, great to see you. It's awesome to see you guys. Awesome to see you, how you doing? How you feeling? I'm feeling great. You did it, congratulations. Right, 101 days ago, I didn't even think, this didn't exist, right?  Well, we did the preview videos where we were kind of walking through and documenting the early stages. It all came together beautifully spectacular for the folks watching behind us is the most spectacular build-out cloud-stage and ecosystem open concept. It feels like the Apple store meets paradise. Of course, we've got theCUBE here in the set and we've got the studio with all the command and control of that in there. So I got to ask you, with the connected keynote going on right now, the connected world, okay? It's connected, we all know that, everyone knows that. What's different now real quick before we get into the program? What's going on? Yeah, I think a big part of my message is I'm advocating it's more than just the network, right? And I think Telcos forever have relied on, that's all it is, that's what it's about. And I'm like, nope, you guys got to start focusing on your subscribers, right? And so the over-the-top players keep coming in and siphoning away their revenue. And it's time for them to start focusing on us, right? And making the experience great. And so I think that's what this is all about. Awesome, we're going to get to the news, but I want to toss it to Katie, the roving reporter who's going to give it a detail on how it all came together. So Katie, take it away. We're excited to be back in this beautiful city. Over at the convention center, the team is working hard, putting the finishing touches to Telco DR's amazing cloud city booth at MWC Barcelona 2021. I'm sure you know the story of how this all came together as one of the biggest vendors, Ericsson, pulled out of MWC with just over 100 days until the start of the event. When this happened last year, it kicked off a tidal wave of departures and MWC was called off. This year, we all wondered if MWC was going to be canceled again. And that's when Daniel Royston, CEO of Telco DR and to Togi swooped in and took over the booth, all 6,000 square meters of it. The plan, turn the booth into cloud city, the epicenter of public cloud innovation at MWC. Crews have been working around the clock. Over 150 people have been on this construction site for over three weeks with COVID testing every day to prevent outbreaks during the build. And in a hundred days, it's become just that. Cloud city has over 30 vendors presenting over 70 demos with 24 private meeting areas. Cloud city live is a virtual showcase and live broadcast studio featuring 50 guests from cloud thought leaders around the world. They have telepresence robots for a more personalized experience and a cloud city quest game with a chance to win more than $100,000 to gain access to live streams of our nightly concerts with Rosario Flores and rock legend, John Bon Jovi. And don't forget to visit cloudcity.telcodr.com to join in on the fun. Daniel Royston and Nacho Gomez, founder and CEO of Mertz, one of the key vendors in the construction of the booth, gave us a behind the scenes tour of the booth. Nacho! No! We did it! Yeah, we did it. Can't even touch because of COVID. Yeah. But look what we did. No fun, right? Hundred days ago, I called and I said, I'm taking over the Ericsson booth, what did you think? I know you were crazy, but... Just a little bit crazy. I didn't realize that you were more crazy than I thought, so at the very beginning I thought, yeah, she's crazy, but then I couldn't sleep the night. But the next day, then I realized that it was a very good strategy. It's a great idea. Yeah, super smart, so yeah. We're gonna show everyone a tour of the booth. Yeah, let's go. Let's go! So how do we build such an amazing, beautiful building, Nacho? Yeah, so this is... We've made a building inside a booth, so it was very hard to find the glassware of the set. The roof is around 24 tons. Yeah. So it's crazy. It's crazy, but we made it work and it's totally amazing. Yeah. Do you wanna go to Cloud City Live? Do, let's go. Let's go. Okay, so here we are at Cloud City Live. I know, we're producing a whole live streaming TV show. We always knew because of COVID that not everyone would be able to come to MWC and so we wanted to make sure that people could learn about the public cloud. So over here we have the keynote stage where we're gonna have awesome speakers talking all throughout MWC. People from AWS, Microsoft, Google, vendors, companies, so really, really great content. And then over there, we have theCUBE interviewing people. Again, 15 minute segments, live streaming, but also available on demand. And you can find all of this content on cloudcity.telcodr.com and it's available for anyone to use. Wow, a lot of content. And what about the robots? I know, we gotta go check them out. Come on. Yeah, I remember a hundred days ago, we were locked down. So we came up with the idea of having robots for the people who cannot attend in person. I know, right? We always knew that there was gonna be a big virtual component to MWC this year. So we bought 100 telepresence robots. It's a great way to have a more personal experience inside the booth. Just sign up for one on cloudcity.telcodr.com and you can control it yourself, right? So today we have Nikki with us who's dialing in from the Philippines in Manila. Hello, Nikki. We're great, can you show us a twirl? Super cool. Yeah, it is, what an experience. So, Nikki, robots are not the only cool thing we have in cloudcity. We also have super awesome concerts. We have Rosario Flores on Monday who's a Latin Grammy Award winner. We have John Bon Jovi. John Bon Jovi on Tuesday. American Rocker, you can't be changing talcum that a little bit of rock and roll. And that's Tuesday. And on Wednesday we have DJ Official. It's gonna be a super party. Now, if you play our cloudcity quest game on cloudcity.telcodr.com, you can participate in the live streaming concerts. And so I know a lot of people out there who've been on lockdown haven't been able to be going to concerts, seeing from Austin, Texas, which is the live music capital of the world, how to have music in the booth. It would be amazing. Yeah. It would be great. I'm getting hungry. Why don't we go to the restaurant? Let's go eat. Let's go. And here is our awesome restaurant. I know, it's called Cloud 9, right?  And Barcelona is known for its great food. And I'm a foodie, so we had to have a restaurant. Should we go check out my secret bar? Let's go. And thank you, Nacho. If you're watching this at home, I'm so sorry you can't join us in person. However, let's not forget this is a hybrid event, meaning we're bringing all the public cloud action right to you, wherever in the world you might be. This includes the Pact Cloud City Live program. We've partnered with the Cube Silicon Angle Media's live streaming video studio to make sure that all of the keynotes, panel discussions, demos, case studies, interviews, and way more are available on demand. So you can watch them whenever and wherever you want. Or you can live stream and enjoy all things Cloud City as and when they happen. So for those of you not able to join us in Barcelona, be sure to log into Cloud City Live and catch all the action. And don't miss the awesome concert Tuesday night with John Bon Jovi, available for free if you participate in our Cloud City Quest game. I'll be here throughout MWC, bringing you reports and updates. So stay tuned. Okay, we're back here on the Cube, on the floor at Mobile World Conference, in Cloud City, Telco DR's Cloud City. We're here with DR of Telco DR, Danielle Royston. Great to see you back. So the keynotes going on, Connected World, the big news here is obviously the open shift that's happening is going open, open ran. It's been a big thing, open ran alliance. You're starting to see the industry come together around this clear mandate that applications are going to be cloud native and that the public cloud is just coming in like a big wave and people are going to be driftwood or they'll be surfing the wave. This is what's happening. Yeah, I think public cloud is an unstoppable mega trend. It's hit every other industry. Regulated industry is like banking, right? Top secret industry is like government. They all use the public cloud. Telco's the last standing old school industry and it's coming. And I don't think we could have had an MWC without talking about open ran. That's the other major shift. And so we're bringing both of those ideas here together in Cloud City. So the big theme is telco transformation. Maybe we could start with the basics, like paint a picture of what the telco infrastructure looks like, particularly the data center stuff. Because they all have big data centers. Because those are the candidates to go into the cloud. Explain to the audience. Well, do you have a time machine? I think if any of us were in tech in the late 90s in the early 2000s, that's what telco's like today. So for people outside of the industry, don't know. They're mostly still managing their own data centers. They're just sort of adopting virtualization. Some of the more advanced telcos are mostly virtualized. Public cloud is this idea that's like this advanced thought.  Things are in silos. Things don't use APIs. They're all integrated with custom code. And so the transformation, we can all see it because we've lived it in other industries. And I am bringing that to telco and say, come along for the ride. It totally works and it's going to be amazing. So it's hardened purpose built infrastructure. Okay, that ultimately parts of that need to go to the public cloud, right? What parts do you see going first? I think all of it. Really? I think when you look at like Dish and AWS, which was an announcement that came out about two months ago, right? I mean, Dish was doing all these RFPs. Everyone knew about it. They were looking for cloud native software. No one knew what they were putting. They knew a big part was OpenRAN, but they're coupling OpenRAN with AWS and deploying their parts of their network onto the public cloud. And the whole industry is like, wait, we thought this was years away, right? Or number two, you're crazy. And I'm saying this is what I've been talking about guys. This is exactly what you can do. Leverage the capex over, let's see, I think Amazon did $100 billion of capex in 2020, right? Leverage that capex for yourself. Get that infinite scalability, right? It's going to- Well, we have a saying here in the queue. We just made this up called DR, that's your initial, tell the DR, Digital Revolution. Yeah, yeah. And there's three Rs. Reset, replatform and refactor. I think the observation we're seeing is that you're coming in with the narrative that everyone's kind of like, they're waking up because they have to reset and then replatform with the cloud but the opportunity is going to be the refactoring. You're seeing the public cloud do that, already do with the enterprise. Enterprise has already refactoring. Already has done that. Already done that. Now Telco's the last area to be innovated by the cloud. Yeah. I think there's old school, big, we're kind of on hallowed ground here in the Ericsson booth that I took over, right? They bailed and I kind of made fun of them. I was like, they don't have anything to say, right? They're not going to go to the show. I'm like, this is a revolution that's happening in Telco. And I don't think the big guys are really interested in rewriting their software that frankly makes them billions and billions of dollars of revenue. And I'm like, to use the public cloud, all of the software needs to be rewritten, needs to be refactored. And you got to start training your teams on how to use it. They don't have any capability, the Telcos in terms of those skills, hire the right people, retrain your teams, move your applications, rewrite them. And I think that's what we're talking about. This is not a short journey. This is a 10-year journey. So let's fast forward to the future a little bit. Because when I look around Cloud City, I see ecosystem everywhere. And so as you well know, the Telcos have generally done a four job of attacking adjacencies. So my question is, can they go beyond, should they go beyond connectivity, or is that going to be the role of the ecosystem? Yeah, I think it's time that the Telcos start to focus on their subscriber. It's been really easy for them to rely on the oligopoly of the network. We live in the United States. We see the 18T Verizon, T-Mobile, 5G network, 5G network. I'm like, what about us?  And I'm like, you don't focus on the customer. We would rather buy from an Apple or an Amazon if they provided a mobile service because the customer experience will be better. They need to start focusing on us. They have great businesses, but they want to make them better. They need to start focusing on the subscriber. So it's a partnership with the ecosystem then for them to go beyond just straight connectivity. Because you're right, those are the brands that we want to do business with. Yeah, yeah. You know, there was a great survey. Peter Adderton, who will be talking as a speaker, I think, I can't remember when he's talking, but he was talking about how there was a survey done of where would you rather get your mobile service from. And it had a couple of big names in Telco. And then, of course, the obvious consumer brand, some ones that we all know, and it was like overwhelmingly, would rather buy from an Amazon or an Apple. And I'm like, this is, if you guys don't change, right? If Telco doesn't change, they keep rolling out 6G and blah, blah, blah, it's about the network. And they don't start making about the subscriber, right? Those revenues are going to continue to erode. And they just sit there and complain about the OTT players. I'm like, it's time to fight back. Own the subscriber relationship. It's a digital revolution. And I think this event really encapsulates, in my mind, this hybrid world here, because it's physical events. Back, it's been since 2019 winter that this event actually happened. Well, no, it was even longer than, well, I guess winter. It was February of 19th, right?  Three years. Right, this is how you fill your sales funnel. This is how you connect with your customers, right? Telco's a very global, you know, experience. And so you've got to get in front of people and you've got to talk. A lot of change, too, when this happened. Look at just what public clouds done in two and a half years. Can you imagine three years being just gone? Right, and I think a lot of people, back to Dish and AWS, I think the industry was a little bit surprised by that announcement. So I've been telling executives, if you were surprised by that, if you think that's, you know, if you don't know how that's going to work, you need to come to Cloud City. You need to start meeting all the vendors here. We have over 30 vendors, 70 demos, right? People who are pushing the technology forward. You need to learn what's going on here. We have several Dish vendors here. Come learn about OpenRAN, come learn about public cloud. So we're tight on time today, but we're going to have you back. And we want to get into the tech, get into OpenRAN a little bit, get into what's, you know, 5G and beyond and how we're going to take advantage of that and monetize it and what that all means. Yeah, and also we want to hear what's going on in the hallways. I know you're going to, you're keynoting, you're going to be a lot of events, you've got the yacht, you've got a lot of briefings. Yep, yeah. And I've already had two meetings this morning. I shot a video. I met with one of the world's largest groups and I met with a tiny little super app company, right? So running the gamut, doing everything. You're like a cube reporter now. We could be like our, you know, our roaming reporter. You know, I love, I love talking to execs in telco and getting their perspective on what is public cloud and where are they going? What are they thinking about? And you talk to people who really, really get it and you get people who are just nascent and everywhere in between. And I love MWC, it's going to be great.  Telco DR, it's amazing. Dave, this has been fantastic. Again, for the folks watching, this is a hybrid event. So there's an online component and we're reaching out with our remote interviews to get people brought in and we're shipping this content out to the masses all over the world. It's going to be really amazing. Cube Coverage is here. It's going to bring rockin'. You guys are doing great. I just want to give you a compliment that you guys just did an amazing job. And of course we got Adam in the studio with the team. So Adam, I'm going to pass it off back to you in the studio.


So thanks everyone for tuning in. I'm here with the Dean. I've been actually trying to get Dean for many years now to to function conference and other conferences I ran and it's real honor to have him amongst us, you know, I've actually my first recollection of dean is reading the chapter in clean code book, which he had contributed to along with Uncle Bob's book. And then onwards I think I have had the opportunity or privilege to run into him in a few few cases. And then of course when the scholar book came out, which I think is 2008 2009 time frame. You know, I was just telling him that, you know, Venkat Subramaniam and he both had the book out at the same time so you know it was kind of hard moment to see, because I'm not good at reading books with which one to go. Actually, now you're up to the third edition of the book so that's that's very impressive and congratulations on that and thanks for all the contributions you've made to the functional programming community in general but scholar particularly I think you've put in a lot of sweat behind. And of course these days, Dean is working with IBM and doing a lot of interesting work I think he's probably touched upon some of these over to you Dean thanks again for coming in. Thanks, it's great to be here it's it's actually a privilege to be here, as you said it's been a long time and we've talked about it and it was great to catch up to really enjoyed finding out what you're up to as well. So let's go ahead and get set up here. Alright, I think I have everything, and I will try to answer questions as they come up I have a Q&A window open. So my name is Dean Wampler. There's a couple links here if you want to follow me on Twitter. I still I've been blogging about scholar three, since I started, since about the time the book came out. This is the third edition so you can just find me at Dean Wampler.medium.com, or send me email it. Yeah, my email address. Excuse me. All right. Hello and the photos. This is a trip around Nevada that I did actually middle of last year during one of the loss and COVID, some backpacking and driving around so interesting place if you ever get a chance to go there. So yeah, I actually worked for IBM research I joined about two months ago and the reason I joined was to lead an engineering team that is trying to promote what we're calling accelerated discovery as in scientific discovery. So IBM has a bunch of science assets and research, a lot of things about like modeling chemistry, quantum computing turns out to be a very good system for simulating chemical interactions these days and that's actually become a viable use of it even though it's still a very early technology. So the platform is really kind of doing the stuff that most of us do which is build production grade software, you know on Kubernetes, the whole nine yards, but to make it much easier for research scientists, and even the people with an IBM to access and use and sequence these scientific toolkits for drug discovery, carbon capture discovery, that kind of stuff for climate mitigation and other materials research just a whole bunch of things that are kind of fun to play with and that's, that's kind of what got me really interested in doing this was working on a mission like this of building stuff. I'm actually hiring. I don't have a good link for the, our open recs at the moment but definitely follow up if you're interested in finding out more about about the team. As the rest said I published the third edition of programming Scala last year, almost a complete rewrite really so go out and buy a new copy. I basically updated it significantly for Scala three. And as I'm going to discuss I really like a lot of what they put into Scala three they fixed a lot of little warts. Interesting decisions they made that have actually come to like, I hope it's a very successful edition of the language but it is kind of a major update. Although I have to say, it's done a pretty good job with backwards compatibility you can use 213 libraries, you can actually use Scala three compiled libraries in the latest release of Scala 213. So they worked really hard for backwards compatibility but there are some things that have changed. So you know if you decide to upgrade you will have to take a little time at least to fix a few things that have changed in the language. So basically what I want to talk about is first how Scala has evolved. In particular how Scala three provides greater clarity about certain constructs, how they've rethought the way implicit to work this is like the power mechanism and Scala that everyone talks about either for good or for ill. It's like anything it can be misused. And one of the things they've tried to do is move away from having to memorize idiosyncratic uses of this underlying mechanism to provide contextual abstractions that are more fit for purpose you know that are more directly obvious about what they're doing, and less about learning the sort of idiosyncratic idioms for doing things like adding methods dynamically to types and so forth. And it's to the type system that I'll talk about briefly as well that are kind of interesting. I also want to talk about you know lessons learned from 15 years is you know what I've observed about people building software in Scala versus Java or whatever. I kind of put enterprise Scala in quotes because I don't want us to write enterprise Java that's written in Scala I've seen that and I'll talk about that a little bit. There are various things that some of which will be pretty obvious to this crowd, you know, like the virtues of FP over object oriented programming, but also talk a little bit about where I think people get carried away. You know, like trying to treat everything as meaning to be typed and so forth and and you know where you strike the balance there, and just the idea that Scala helps promote reduction of code, which is a really great value. And then I want to talk a little bit about the future that just sort of a worrying trend about you know whether FP adoption is going to stall or not and why I think that that might be the case for a couple of reasons, one of which will be obvious. The other one may be less obvious and I'll talk about that a bit. Okay, so on the subject of greater clarity. One of the things they did. This is something Martin Dursky the creator of Scala really wanted to do is he introduced this new indentation or significant indentation syntax like Python like Haskell where you get rid of braces it's it's optional. You don't have to do this. You can use braces if you want. When I first saw this I thought this was really a bad idea because you know a lot of people complain that Scala is too complex too many ways to do things. I don't think very fairly actually, if you especially if you look at Dursky says this all the time. The grammar of Scala is actually simpler than the grammar of Java because Java has a lot more special cases. Like one of those things is kind of a gratuitous difference why would you do this. But I decided to go ahead and use the syntax in the book and I actually really came to like it by the end that it just adds just a little bit more clarity Scala is already really well known for being concise. And, you know, let me write quite a lot of functionality with relatively little amount of, you know, characters, and this just takes us to the next level of that so you know just hopefully you can see from these two examples that, you know just getting rid of that actually does actually add a little bit more cleanliness to your code so I've actually come to really like this syntax. But one of the big things, you know maybe more profound improvements is really trying to get rid of the need to memorize idiosyncratic uses of this powerful mechanism called implicit and replace or at least complement those uses with more directly applicable abstractions. You know Scala you know about arrow associate this is that famous type that's been in the library for a long time, where, as you see in the bubble if I write a arrow be like it's not actually something built into the grammar when I want to create a two element it actually invokes this implicit mechanism that converts that a object into an arrow a source object or but you know basically wraps it. And then this arrow method is called, and that returns a tuple with a on the left and whatever you pass as an argument that the b value on the right. And that returns a two element tuple. And this is exactly the way it looks. I think I copied it faithfully out of the source code for Scala to 13. Now this is a really cool mechanism we used it a lot but there are two problems with it one of them is if you're learning Scala. This makes no sense at all you kind of have to just learn this is the idiomatic way that you do what is essentially extension methods that are truly available in other languages. And the other thing is there's this sort of overhead of wrapping this object now maybe that the compiler can actually optimize that away but you know in the naive case you would be just creating these little throw away objects to the wrapping. So Scala three on the right hand side finally adds true extension methods, you know this is what the syntax looks like, you know extension for some type a then define this method I actually use tilde greater than instead of using arrow, or you define arrow, greater than, because it turns out Scala three, in part for backwards compatibility compatibility does use the Scala to 13 library so in fact arrow sources still in Scala three. And that's actually what gets invoked if you use this mechanism, but you know eventually that'll get replaced and it'll be just a regular extension method written like I did on the right, much more concise hopefully easier to understand much more directly applicable to the the idea that you're trying to create here. And so this this idea of using implicit generally falls into the category of contextual abstractions you know I'm trying to do something in a particular context. And there's been other things that have been added to you know make this work. So let's look at some other examples here. So this is a functional programming conference I have to have at least something that looks like a category theory concept so on the left I defined a trade called semi group semi group is just the abstraction over, you know integer addition or whatever. And then monoid extends that with adding the notion of a unit value and you know integer addition it would be zero integer multiplication it would be one, so that zero plus x equals x that kind of stuff. But notice the syntax here. So I declare this this trade you know this thing I'll use as a mix in or a superclass. And then I declare an extension method in the trade because I want every single object that is a semi group to have this unique ability to basically do addition. And what target name is about on the previous slide target name is an annotation that actually tells the compiler what name to use for this object and JVM bytecode, or this method rather, you might recall that Scala let you use things like these operator symbols and so forth which are not legal in in Java itself, or in the in the bytecode standard. So this is actually the name that would show up in bytecode now you can actually you cannot call this method from Scala using PL us, but you could call it from Java if you wanted to so it's the purpose for this annotation target name. But anyway, so I've got essentially two extension methods here, one of which is this sort of Darth Vader operator, you know, for plus, and all it does is turn around and call this combined method, which is another keyword you now have to declare things that you want to be able to use as infix operators if they are not using operator symbols so combined is using ASCII text. Another area where they felt that Scala got a little ahead of, you know, there are people used it in ways that maybe wasn't really appropriate for comprehensibility and avoiding compilation ambiguities is the overuse of infix notation, where we just drop the parentheses and drop the parentheses. So now, if you have an ASCII type, or an ASCII name of something, and you want to use it in an infix context you have to prefix with this keyword infix. Now there is some backwards compatibility things we've all done this with a standard, you know, collection operators like map and flat map and so forth, and it would break too much code if that wasn't supported going forward. So this is where they're sort of grandfathering in the ability to do this, but as a rule, it's another example of trying to make our code a little bit more precise in the sort of idioms that we're using. So, so keep that in mind that that's why the infix is here it's a new keyword, and that's the method that has to be defined in concrete subclasses of this trait, along with unit. So the unit method in monoid versus the combined method in semi group is that combined is defined as an extension method. So it becomes an instance method something that's applied to instances of a semi group. But we really only need one unit method per type, like integers floats begins whatever. So that's actually going to turn into a is like the companion object method, and so it's not declared as an extension method. And the bottom example then is actually a string monoid. The way I declare an implicit version or implicit instance of something now is with this new given keyword. So given some string monoid, then it's going to subclass. Actually, it's I'm declaring an instance of this thing I'm not even creating a subclass. So it'll be a monoid of type string and now I define units and the extension method combined in the usual way that you would for strings. And then on the right hand side you can you can see what it would look like if I actually use this, this operator obeys is the utility rules for addition, not always true for all monoids that that's true in this case. And notice, notice how we reference the unit object we call it like a companion object method or her member string monoid unit in the bottom case. So, you know how would I get like type parameters in this so numeric is a great example I don't want to declare. I don't want to have a given instance for every single type of thing that I can do addition that's like you know floats doubles begins and so forth. I can use numeric for this. Similarly with Scala this T colon numeric basically means that there's some implicit instance of a numeric that's going to exist for the type T I'm trying to use. So, there won't be one of those for say, you know, the class of user or something and unless I actually define a numeric for user types, but there will be in the library already for and begin and so forth. So, a little bit similar to what we saw before. Now we use the summon method, if you, there wasn't implicitly method before in Scala to the it's basically the same method really just a new name. Actually, both of them are still there. So summon says all right there was that instance that that made me able to declare this numeric object for some type T. Now grab it because I need to get the the zero it was what what it's called in numeric. That's what I'm using as my unit here. And similarly when I do the combined method I need to get that numeric instance that's in scope, and then call plus to actually implement my addition operator. On the right what happens, I don't have to declare anything else it just magically works now for ints doubles and big ints. And you can see how I reference the unit values where I have to now supply, I actually don't necessarily have to supply the type, like enter double. In the case has written it would actually infer that it's an end, but on the bottom one where the double comes first I have to put in the double they're just you know the little bit of type inference warding if you will. And then finally, another common use of these implicit was to pass context like, let's say a session object when you're doing your web processing or something. So I just made up a very simple example of some trade with some information that's contextual. And then I'll have a particular implicit instance again with this given keyword that will be one of those instances and I declare the value that's returned by string to be cloud exclamation point. And the way this is normally used in Scala is when you see this using clause now that would not have to be provided explicitly when I call this process method. Now instead of calling it implicitly or implicit rather some argument or arguments. We now use a new keyword called using probably should put it in yellow type because it's a keyword. But notice I don't actually have to name this this object. This context object I can just use some and once again to fetch it when I need need it in order to get this this info string. It is obviously very trivial contrived example but just showing the analog of how we've often used implicit argument lists to provide contextual information. An example of how it might work where by default it's you know when I call process, it's going to return AWS dash cloud exclamation mark. If I create a new given instance and in this context I'll actually shadow the other one that I declared on the left hand side. And now when I call this or if I pass it explicitly then I'm going to get this new string is output. So, just how that you know example of how that might work. In general though they thought about or how do people actually use implicit or how have they been used in the past let's actually put some mechanisms in the language that are more explicitly about those contextual abstractions. So they're easier learn easier and simpler to write and debug as a result and also just more intuitive. Let's talk about changes to the type system. And I won't go into a lot into all of them there's quite a lot of changes here. One of them that's kind of interesting is something called opaque type aliases. Now, this solves a problem that was solved with the previous mechanism that still exists called value types where you're supposed I have a conceptual idea in my domain like logarithms, but in fact they're implemented with just a single primitive type in this We don't really want to be creating object wrappers all over the place I can have millions of these logarithms and you know like a big data app and I really don't want all of that, you know little wrapper stuff in my heat it's going to slow things down use a lot of memory. At the bytecode level I'd really like the compiler to just use doubles everywhere and substitute in you know the method calls is required or whatever. There has been this thing called value types where you can declare these value types had some strengths and weaknesses. It turns out this type alias is a complimentary mechanism so value types are still there. But this one is sometimes useful in ways that value types aren't I won't go into a lot of the details here. One of my blog posts discusses this, but just to you know how you would declare this is you declare it is like a regular type alias inside some object but with this opaque keyword. And that means that it's you know what's inside this logarithm type wrapper if you will is invisible outside of this object called log log was a bad name choice I guess. But, but you do have to define methods for converting doubles to logarithms and working with them, you know is like using like the operators that we know and love. So these first two methods that I define apply and then safe are basically constructor like methods that return, you know a logarithm object. The second one being one that will check that you're not passing a negative double because that would blow up to minus infinity. So in this case it returns an option wrapping the value or none. And then we use extension methods to define all of the instance methods that we want to be usable and logarithm like plus and multiplication. And also just extracting the double back out so a nice mechanism that gives you that runtime efficiency of working with primitives but lets you think about domain abstractions like logarithms. And then the last two things I'll talk about on the type system are true intersection and union type so that the type system behaves more like or follows more that the rules of set theory, like for example these two types are actually interchangeable or rather intuitive. There's certain ways in which they aren't which I won't get into. But, but the something that's resettable and growable is considered equivalent to something that's growable and resettable. So notice the function at the bottom first it all I care about is I want to pass in something that I can reset the contents, in some sense like you know it's a mutable collection or whatever, and I can also add stuff to it and the stuff and the stuff inside this other strings. But I don't care what actually this thing is what the particular type is I just wanted to have both of these mix and traits as part of its type so that I can call reset, I can call add to string of course I could call in, in any case, but that's that's the idea that only values that are both resettable and growable can be passed here. And it adds true set theory to kind of behavior, like commutativity of these, this composition, it didn't exist in the previous way of using extension extend and with to mix and traits. This apparently gets rid of a bunch of warty situations where you have a runaway type expansion. And complement would be union type so notice the signature of get user I'm going to call a database I'm going to return some instances of this user type at the beginning with the name and password. But notice what it returns it's either going to return a string, which will be for the error situation or maybe I didn't find anything, or it's going to return a single user or it's going to return a sequence of users if there happens to be reused IDs.   And now I'm going to match on the results and either return a string that I didn't find any or return the first element, you know, converting whatever this results that record is into a user. I'm sort of glossing over those details, or map that result set into some sequence of users. And if I get an exception then I'll just return the message for the exception. Now, because I'm returning one of three types when I actually call it at the bottom here I have to use pattern matching to determine what I get. So it's either going to be a string again, or a single user or a sequence of users. And so that's how you work with these return types. You always just use match clauses. So another cool thing that you can do. Once again the types are considered commutative. So if, you know, if I have an instance of string or user or sequence of users it's considered equivalent to an instance of or type equivalent to user or string or sequence of user etc etc. All right, let's move on to kind of lessons learned from 15 years of Scala. You know, first, kind of preaching to the choir here obviously the benefits of object oriented programming were kind of superseded by the benefits of functional programming most importantly, the idea that we should really emphasize immutability and not have unconstrained immutability which is what object oriented programming, at least in the naive sense, allowed us to do. But it also really, really promoted more concise code and I think a great example of this is to think about SQL. It's hard to think of anything more concise than the SQL query, in most cases, and it really is a great example of taking sort of, you know, mathematical rigor and boiling it down to its essence in this case it's more set theory you know maybe like category theory or whatever, but it really is a very concise way of expressing what I want but most importantly, not telling the system how to do it but telling the system what I want in sort of a logical sense and then letting the system figure out how best to provide that result. And as we all know, you know databases have really good query optimizers, they often are indexed and so forth so this is usually a very fast operation compared to me like, you know, iterating through a source file and finding the things that I want and so forth. Data file, I guess. Another powerful idea that we've leveraged a lot in Scala is the notion of parametric polymorphism. And I just want to give you a sense of what this is but this blog post here. I talk about it a little bit including some things that occurred to me that maybe aren't the most obvious benefits of this. But consider these two functions you have no idea what these are doing necessarily because the names are completely opaque. So if you think about the second one first foo to, if I pass in a sequence of integers and return and if there's quite a few implementations that would satisfy this signature, like the return the first element the last element you know the median, the one in the middle, or maybe you know the mean rounded up to the nearest integer, or the size or something like this this just it's not very well constrained. The signature does not really constrain what's possible. But the first one actually does, because I don't know what the type T is. I really can't do anything with this method except implement the size method essentially so foo one is really the size method. That's the only thing that makes reasonable sense here. And it's interesting kind of paradox that by making the type less specific you know T instead of hints, we actually constrain the allowed possibilities for this method. And that helps us be more precise about thinking about the relationship between abstractions that are public and implementations that are internal. So we're less likely to be surprised. We're less likely to have, you know, unexpected behavior or buggy behavior whether, you know, however we implement it. And it's just a very powerful capability in terms of constraining us in a way that actually produces better quality down the road. So I really like this idea of parametric polymorphism, and I encourage you to look at it more detail. I want to talk about something I've seen a lot in enterprise code written in Scala, and that is the notion because we have this powerful type system we should just type the hell out of everything. And the specific problem I'm talking about is some code I had to deal with not long ago that was basically, you know, YAML files for submitting pods to a Kubernetes cluster, where instead of just using a template and then like stuffing in the few files that I have to stuff in my Scala code, the code I was looking at would just faithfully represent all of this structure in Scala code, effectively duplicating all of this knowledge, having this, you know, a problem of maintaining two versions of the same and not really adding any value over just having a template and having the Scala code understand just the few things that it needs to be able to substitute into this template when it actually submits a job in a Kubernetes cluster. My point being that sometimes we kind of fall into this really it's an object oriented pattern of oh we should type everything we should have our entire domain represented in source code. So we really should not we should only have the bare minimum that we need to express what we really need to say, and nothing more, and find other things other ways to express the rest of the information like you know templates that where I spend all my time making sure this template is right, not making sure the template and the Scala code are right. This dramatically reduces boilerplate in our Scala code and it eliminates all this duplication and so forth and so forth. So if you fall into this temptation, really think twice about when you really want to use static typing for its benefits and when you should not represent an idea in code but maybe keep it more abstract, like use a hash map, or, you know, some some wrapper around YAML or JSON, rather than immediately convert that into some object that you've declared, or some type you declare. So if we do this, then, and we leverage the concision of Scala, then we'll just have much less code and we'll avoid just translating our thinking about enterprise Java into enterprise Scala, which doesn't really give us that many benefits. And the last example about this point I'll make is that if you think about, this is one of my favorite examples that I talked about a lot about five years ago or so, when I was doing a lot of spark programming. And an algorithm called the inverted index, it's sort of what a search index is based on in a very crude sense. But let me check the chat here quickly. The idea here though is that if you write this in spark, we get to leverage all of these functional combinators that we really love like map, flat map, you know, split is not exactly but sort of reduced by key and so forth. And so we can write this whole algorithm in one page of code. And the thing is, if you really embrace these functional idioms, really go for the most concise way of thinking about the types and what you need to express and how to work with them. Then you dramatically reduce your code and when you do that then suddenly everything gets smaller. You don't need dependency injection anymore. Gosh, if I dealt with problems with that. You know, crazy mocking libraries for for everything because you haven't managed your dependencies very well. And you can really get rid of a lot of the design patterns that are really, you know, use properly that they're good things but when you'd have a lot less code you have a lot less need for stuff like this. And you can actually, you know, live with smaller numbers of services to my blessing I want to talk about quickly is this problem of and I'll answer this question at the end about commutativity that came up. Here's a here's a risk item that I see that's going to affect the growth of functional programming. You know, if you look at things like the Tyobi index, what you see is that, you know, some of these popular languages like Python and go and Kotlin, they keep growing in popularity, but they're not really as you know strongly functional as we might like right. In fact, I really hate working with Python even though I work in the data science space a lot I just feel really disabled in the sense when I'm working with it, because it just doesn't have the same kind of functional power and concision that scholar does and yet it's you know it's popularity has been growing enormously. I think Python is the light blue color that's, you can see it, according to Tyobi it's the number one language right now. Alright, so why is this happening well we know one reason it's kind of obvious but just to state the obvious. For a lot of people functional programming is at least perceived as too advanced, even though they're actually using some of the constructs that have worked their way into languages like Java and Python and so forth. I think developers that see the perceived is too hard or they lack the motivation to learn it. Whereas in contrast, object learning programming does have this kind of seductive quality that it seems intuitive at least in the naive sense. I remember people saying this back in the day, just take your verbs and your nouns and drop them in your code right model everything in your code. Well it turned out we had a lot of problems with that including unconstrained mutability and this issue I mentioned earlier where we put stuff in code that really wasn't there, where we should maybe use templates or something, you know less formal, you know, like hash maps or whatever. But I think the more interesting situation is that software development itself is changing. If you think about how we write software it's still kind of a craftsman's business, a lot of the code we write is code that's been written before but we just rewrite it with some minor changes for our needs.  So, but I do want to emphasize it. I'm not saying that either one of these is good or bad that they either both of them apply in context where they make sense and they can even exist in the same relatively large and programming environment community whatever. So what I mean by full stack is the case where you think about I'm just going to like do something that I'm going to pick maybe a big framework like rails or I just picked rails as an example because I used to do rails programming. But mostly I'm going to write a lot of the logic myself. My day is going to be spent thinking about the domain logic that I need to implement in this system, and I'm not going to spend as much time thinking about deployment and production monitoring. Maybe I'm building an app for an IT environment where I just need to manage it on a few servers or something. That's not my main problem. The main problem is just getting this complex domain logic right. Maybe I'm writing accounting apps where the rules of accounting are somewhat complex. And I actually think though that functional programming is still the best way to do all of this. I mean the kind of concision you can get the way you can get a handle on the logic and express it concisely. This is really the still the growth area for functional programming. However, the other place where we're seeing a lot of interesting change is what I'm calling service oriented and that is that we're finally standardizing a lot of the stuff that we used to roll by hand in sort of a craftsman way So Kubernetes, whatever you think or dislike about it, the main value of it in my opinion is that it's actually just defining the standard for a lot of stuff that we often do. Like, how do I roll stuff out? How do I roll it back if I want to? How do I discover services? How do I load balance? How do I orchestrate storage over a cluster? How do I manage secrets and on and on and on. And that's what we're seeing grabbed from the Kubernetes website on the right here. So, a lot of my time these days, though the project I'm working on is thinking about how do we stand up, highly resilient, highly scalable, highly durable, highly flexible clusters, and, you know, provide the services that the, in this sense, the scientists who are writing these fancy toolkits at IBM, how do I make them as accessible as possible to their customers and as reliably delivered and all that kind of stuff.  You're not really writing big complex logic so much. A lot of the sophistication is being handled for you by these standardized libraries. So maybe functional programming isn't as important to you. And I think this is one of the reasons that we're seeing maybe a stalling of the growth of functional programming and traditional languages are, you know, learning some of the lessons there and mixing in some of the ideas, but not really embracing FB. And I'll cite one other important example of this, I think, and that's in the data science world. You know, one of the reasons Python is doing so well, again, is because it's so popular among data scientists. And if you look at what data scientists write, they really don't typically write a lot of code. They do have to have a lot of domain knowledge about what's the right statistical algorithm to use or I don't, you know, how am I going to apply neural networks to what I'm doing. Their expertise is not in programming. It's in this kind of, you know, well, just, it's just in data science. So once again, they're kind of doing the same thing. They're basically scripting in Python or R to do, to drive the behavior of these very sophisticated toolkits like TensorFlow and PyTorch and SK learn or scikit-learn.  But nevertheless, for them, it's the perfect fit or near perfect fit. And so I think this movement towards finally figuring out good abstraction boundaries for a lot of commonly needed things like running clusters and all the services there, running, you know, data science applications using very sophisticated toolkits that where you kind of really hopefully still need functional programming to implement. It's kind of driving a lot of us to not really need the power of functional programming as much. So I'm a little concerned that, you know, maybe this is going to decline over time, or at least it's going to stall out the growth of functional programming. So just to wrap up then, you know, once again, I think that this is a risk to us. It's actually a good thing that we're doing a standardization, but it does kind of threaten the growth of functional programming a little bit. Okay, thank you very much. I'll go through the questions now and I'm happy to also chat in the session or the meeting room afterwards. So the first question here. Someone is asking about commutativity of a function object that he saw in the first few slides. I remember that it had a logical and between the two parameters and what it did. Okay, basically, it used to be in Scala you would say like, you know, my service, or maybe my collection extends resettable with what was the I forgot now, growable. Okay, and it turned out that you could get into problems where maybe I happened to declare a collection where I mixed up like or change resettable and growable to be growable first then resettable. Logically, there's no reason they should be considered differently. I'm kind of mixing in unoverlapping behaviors, mostly. So why should they be treated as logically distinct just because I declared them in one order. I'm over I'm just kind of ignoring a big exception to this rule for now but but the idea is that in set theory it wouldn't it doesn't matter what the order of things are. It's either in the set or it isn't, and I can talk about you know overlaps of sets, you know the union or the intersection of sets, right, I'm not thinking at all about ordering of the objects in the set. And so that's the idea here is to bring more set theory into the type system by replacing the with keyword with the ampersand for and, and also supporting the idea of like an extension of the either type or instead of either two types, I can have arbitrarily many alternative types that are returned by some method. So that's the idea there, and they are commutative, at least, except for one big exception which I won't get into. We can talk about it in the little chat room afterwards. So someone's asking what the, what the code means in terms of again kind of this commutativity. And they bring up a good point that if I if I mixed up. I didn't mean commutativity in the sense that the order of methods that I call is independent what I meant is that from the type theory point of view, those two types that are declared as acceptable and resettable or declared as resettable and groble they're considered equivalent from the point of view of the type system. Actually you're getting to the exception I was sort of mentioning how you call methods and how method resolution works is not commutative. But from the type theory point of view the objects are commutative so that's what I meant there. The last question here is, do you foresee that using languages like Scala and Haskell with type oriented programming might make them interface better with AI tools like co pilot. I actually think that would be true I put in that little tweet grab, in part because people do commonly run into type problems and it would be better if they could express things. They actually make optimization work better. In fact, most of those toolkits that are written in Python, often have these sort of side tools they've written to highly optimized the code they're not really going through normal Python so much is going through a highly optimized query planners that kind of be equivalent there of, I think that could probably be easier to do in Scala or Haskell. In Python too almost nothing's done in Python, at a certain level you drop down into C and C++ code for performance reasons. So, yeah, I think you could make a good argument. Actually, Haskell might even be better than Scala because a lot of people don't want to run JVMs anymore. So if we actually like used Haskell for everything, which actually can compile to very fast code, it might actually be far better in the long run. My sort of my hope is that Julia will be successful in the long term it's it's another language that kind of could replace R in Python, and it solves a lot of these problems. Okay, a few other questions and then we're going to be out of time I guess. Is Scala 3 ready for production. Yeah, it is you can you can use it now it's it is very robust and they went to a lot of effort to make it backwards compatible with Scala 2 either I mean in the syntax level there's flags you can use to decide how much of Scala 3 versus Scala 2 syntax you want, and the libraries generally interoperate if you compile to with Scala 2 13, and even with Scala 3 you can mix and match across those boundaries. And then the last question I'll take here is do you think that if he could be used for ML and AI. Yeah, it's really a challenge of, you know, once again data scientists are thinking about data problems and statistics, you know, a lot of them come from that background they really want to think. They don't want to think about programming very much a lot of them are good programmers but they're really much more concerned about, you know, doing programming, you know, doing data science, and the, and the, again, it's just a. You know, the objective the appeal of a very simple looking language like Python, even though you often run into roadblocks where you can't really do some of the things you'd like to do in a more sophisticated language. And the classic problem that you know beginner versus expert, you know. So what they typically do then is they just rely on the tool kits to do most of the heavy lifting, and they just kind of script what they want in their notebooks or in Python, or are is kind of similar. Thanks a lot Dean there was blazing through a lot of content, but I think, yeah, great, great summary of some of the things that is there in scholar three and was interesting to see your thoughts on basically, you know, the two types of kind of programming jobs if you will, you know, and where you think FP may shine still continues to shine and where, you know, service oriented might just be good enough where you could do so that I think that was interesting. I think we've run out of time but again I want to thank all the attendees for joining in and thanks Dean for taking the time this morning to be with us.


I think for startups it's very hard for them to afford a celebrity who would kind of leverage their name and that would add to their repertoire but for them it would make sense to kind of give them some equity and kind of route it that way because then you also have the celebrity and you have not only them invested fully but also their faith in you. So they work slightly harder you know so it works I think both ways but for actors I feel most of them don't want to go down that path because it's a high risk kind of investment so as an actor you'd rather just be laid back and you know make your money for the one two years that you're endorsing the brand you don't know what the future of that brand is going to turn out to be. So for me more I think 70% are deals like that but 30% that I invest in comes from a place of absolute faith. There is a chance of it failing but when you go with your gut and you have to give you have to give any startup at least three years to kind of you know steady themselves to kind of prove themselves to get better learn from their mistakes. So I invest and I forget about the investment you know and some of them work some of them don't but like for example Wicked Good I see you know the performance in the last one year they've done like literally 300% better than before than the last year and for me that was reason enough and also the fact that I told you the products were amazing products are good so that has the product has to speak for itself. I come into the picture much later so while I might think this is a great idea if the product cannot stand on its feet no Shilpa Shetty no XYZ can make it. Things that I think are important in my day to day life for my kids you know so I think not just as a consumer when I invest I also think as a mother I think on a human level and that for me is my biggest driving force behind investment. I do all my working of figuring out whether it's really worth investing with these people or not till I sign on the dotted line and then after that it's really left to the people that I invest in and I invest not only into the company but into the people and I invest in their vision and if I start questioning that vision I would be questioning my sensibilities as an investor. Five years ago when mama happened Varun came with the intent of wanting me to be a brand ambassador and I don't think he could afford my fee so he gave me the opportunity to decide whether I would want to stake and I used his products and I did a lot of due diligence on it and I really loved his drive I loved how he thought I loved the fact that he had a vision and apart from the fact that the products were amazing I knew that he had the ability to you know take it to a certain height. I didn't expect it to be you know become a unicorn but I did I did see some very bright prospects on the onset which is why I decided you know to be fully and completely invested because as a mother I thought or as a mama I thought you know it was amazing that they've taken cognizance to the fact that there is a dearth of made safe products paraben free products for kids and it's something that we need to pay attention to and five years ago it really you know answered a lot of mums and parents prayers and that was the reason I associated with them because I thought it was a great story and something that I believed in Varun and Ghazal work from the angle of not just being owners but also as consumers so I remember them starting the brand because there was a lacuna in terms of good baby products that were paraben free made safe lawn toxin I mean toxin free in the market in India and they they were finding it hard as parents to kind of provide that for their child and I was going through the same feeling so we came together as parents you know and looking for the same thing and that's that's how it worked because like us there were so many out there who are looking for the same thing I did have a wellness brand that I got out of recently I invested and I started my own wellness health and wellness app a simple soulful app around the same time and these are things that I believe in that I'm passionate about and I'm synonymous with so if you ever see me in a space that I've invested in it means that I'm passionate about it and I have absolute and complete faith in what these guys are set out to do where it's skill development and skilling I think is so important especially for women where you're able to go you know there's so many women in the B and C centers where they want to learn and they want to provide for their families and it's an amazing and very thoughtful app that teaches different skills to women from the you can be from the back of beyond and still learn something and start your own business so I know what I'm good at and what I'm not so there's a it's been a learning curve becoming an entrepreneur learning about new things I heard about capital gains when you make a lot of money and then when you you know you want to invest it somewhere and then you have to offset your capital gains so these are all things that I've learned now I never knew about these things so I think I'm street smart and I have a bit of you know a business acumen but if you talk about conventional business making or business making decisions I don't think I'd be great at that I didn't get too attached to any business you can try only up to a point and you have to learn to maybe making peace if you're not making your ROI in a stipulated amount of time size actually the pretty woman that we think about it another day it's a real