Coming up on DTNS one of you complained that you don't like these teases So the rest of you will just have to listen to the whole episode to find out what we say This is the Daily Tech News for Friday October 29th, 2021 in Los Angeles. I'm Tom Merritt Also in Los Angeles, I'm Lamar Wilson. Drawing the top tech stories from Cleveland. I'm Len Peralta And I'm Roger Chang, the show's producer. We were just talking about our thoughts on the Eternals if you want to get that and more get good day internet available at patreon.com slash DTNS And big thanks to our top patrons like Johnny Hernandez, Hi-Tech Oki and David Mosher. We appreciate you Let's start with a few tech things you should know Apple set records for revenue and profit in Q3, but supply chain issues mean it expects to fall short of Investor expectations. Tim Cook warned that Q4 would be impacted even more by supply chain issues Microsoft however forecast a strong Q4 as cloud services don't have to take a container ship to get to you And remain strong and largely unaffected by logistics all of that combined to see Apple stock decline Just enough to let Microsoft's growing stock make it the new most valuable company in the world Congratulations Microsoft shareholders. Yeah The latest version of the chrome browser features fixes for two actively exploited zero-day vulnerabilities Both are listed as high severity, but Google was light on the details since the start of 2021 Google has patches or release patches for 15 chrome zero days Google and the Indian telco geo platforms announced the Geophone next available November 4th That's JIO if you're trying to search for it phone cost 6499 Indian rupees equivalent of about 87 US runs an extremely optimized version of Android called Pregati OS it includes read aloud and translate now features across web apps and messages with support for 10 Indian languages specs include a quad core qualcomm qm 215 sock and dual sim support Canon announced a power shot px a family focused surveillance camera that will automatically snap photos and videos Using built-in subject recognition to frame and select shots It shoots 11 megapixel stills and 1080p video with the mechanical pan and tilt mechanism And bluetooth to transfer it to a phone It retails at 450 pounds in the uk and 500 euros in europe no release data was announced The dream of google clips lives on And Huawei continued to feel the impact of us rules that prevent sales of equipment parts and technology to the company without receiving a license from the us you want to sell to Huawei you got to get a license most people are not going to get a What license therefore Huawei doesn't get the parts and therefore Huawei reported its sales fell 32% in the first nine months of the year Largely because of those sanctions Its revenue was about a third less in the period than it was in 2020 Honor which separated from Huawei last November is doing fine now because it can get the parts It's now the third largest smartphone maker in china while Huawei has fallen to sixth Thursday the u.s. Senate unanimously passed legislation Prohibiting the FCC from issuing or reviewing new licenses to sell equipment to Huawei or zte The FCC had already voted to do so in june this Enshrines that in law earlier this week the FCC revoked china telecom's license to operate in the us Not good news for a couple of chinese companies. All right Let's talk about the facebook company changing its name to meta A lot of you had reactions to that a lot of journalists had think pieces on that The wall street journal has a notable piece up about facebook's continuing pivoting Over the last few years as mark zuckerberg tries to avoid the perils of the innovators dilemma If you don't know the innovators dilemma, that's the principle put forth by clayton christianson in his 1997 book That successful outstanding companies can do everything right and still lose their market lead or even fail As new unexpected competitors rise and take over the market to oversimplify The idea is that companies have to keep improving their existing products to satisfy their investors and customers And that keeps them from reacting to a new product from a smaller competitor When that smaller competitor matures and starts capturing the market's attention Uh, the usually the example people show is microsoft failing on mobile. Uh, they just they just couldn't devote the resources to it Facebook has been dancing like a dervish to avoid this fate in 2011 or 2012 Mark zuckerberg emphasized mobile to the point of apparently kicking people out of meetings if they brought up desktop features Uh, and that coincidentally is the same year they bought instagram 2016 was when facebook went video first remember that uh facebook. It's all about video Uh, that one didn't seem to work as well in 2017 the company changed focus to fortifying connections between users And in 2019 declared groups was the heart of facebook Which was going to be more like a living room now facebook is your living room It's not the public square. Look at that comfy old sofa This monday zuckerberg declared younger users are the new focus of facebook Tiktok at the expense of older users And then thursday changed the name of the company to meta and said it would be a metaverse first company now uh, so lemar who? What do you think they they got this right they're going to avoid the innovators dilemma I first of all, I thought it was fascinating I read more about this innovators dilemma and and I didn't know it was a thing that like someone had quantified That to be a thing and then we see this we mentioned, uh, Microsoft with mobile we think of aol yahoos companies that just you think, you know, um, what's the one before facebook that the one, um, Friendster or myspace? Yeah, yeah, yeah, just and it's just fascinating. It's like and so you see facebook Almost in a panic right now. Like, you know, like you like I was fascinating how you were talking about these different things I'm like, oh, yeah, they did they've changed their their their focus like what Four or five times it seems like over the over the years and it feels like they're in a panic And they they know tiktok is you know, it came in as a huge disruptor And and and other and other small ones are coming up some Will they Make it It's really hard to say I I think they will keep some parts going but the decline I don't think they can help. I don't think they can stop the decline It's just people are ready to move on to other stuff I think the way the way you avoid the decline is identifying something else you do that's really good That's not associated with your current success and you bet on it Mark Zuckerberg's doing that with metaverse. He thinks they do that really well Uh, speaking of metaverse one meta associated advisor Thinks their approach may be a little wrong-headed john karmack Was cto of oculus for six years he recently shifted to the title of consulting cto, but they still let him speak At facebook connect karmack expressed the opinion that instead of building the metaverse meta should focus on products that tap into it He said i mean it's gonna be a long quote, but i think it's worth hearing I really do care about the metaverse and i buy into the vision I've been pretty actively arguing against every single metaverse effort that we have tried to spin up internally in the company From even pre acquisition times I have pretty good reasons to believe that setting out to build the metaverse is not actually the best way to wind up with a metaverse My worry is that we could spend years and thousands of people possibly And wind up with things that didn't contribute all that much to the way people are using devices and hardware today He added i hope i can harness all this crisis energy with the metaverse that's going on And when he says products, he doesn't mean new headsets regarding all the metaverse oriented headsets in the pipeline at meta Carmack said i really don't like that and i keep pushing back whenever i hear that One wonders what he thinks of the picture of a meta watch found inside the ray band stories views app That's one it shows a smart watch with a camera notch in the face, but It sounds like car max like a metaverse, right pretty much every approach i'm hearing from within meta not the right approach Yeah, and again, do we want One company handling this i i think he's on to something with the idea that It's fine that we're going to this place It it just doesn't we don't we don't need one big conglomerate using so much resources. They're going to get Probably, you know underutilized now because they're focused on it whereas Different different companies different places can can you know different users can Help integrate this and make it a better experience that way you just not wasting time I I think facebook is one of those companies that really likes to you know experiment throw away That's one of their things they you know they they throw things to the wall see what sticks in this case Is it worth the resources To do that if only a couple things want to come out of it I think that's a really good point because because meta itself zuckerberg has said Uh, we don't want to build the metaverse We want to help the metaverse get built and be a part of founding it We know we're not the only ones who can do it, but I think what karmak is pointing out is All the ways you're going about it Might be wasted you you might be better off starting an open consortium starting a standard You know move moving with others instead of unilaterally saying look everybody should do this And we're also going to do it internally And I I think that I think karmak has nailed it like the approach Needs to be different if you want to avoid that innovators dilemma and just end up spinning your wheels And and your microsoft trying to invent the tablet and apple comes along and steals all your thunder a few years later exactly We just talked about tiktok so next story is interesting Tiktok tiktok confirmed a limited test of a tipping feature Letting users send money outside of tiktok live streams Now tiktok does not currently take a cut of tips tiktok already supports gifting of virtual goods on live streams In similar news twitter now lets ios users around the world paid a superfollow select creators Something previously only available in us in canada Superfollowers get some tweets not available to other followers Ooh special special people. I don't have this feature I don't have the super follower feature either But I think it's interesting that you're seeing this creator oriented approach to funding Kind of a patreon-ish thing of like just tip us, you know, just just drop a dollar in the jar sort of sort of situation You think that's gonna work I think so there was just an article see where I could pull it up. Yeah It was the article I read on a fast company. I bookmarked it the other day And it was just it was basically move over influencers, you know, the the independent creator Is is the is the person, you know, it's the new thing now where The the audience will fund you versus companies or sponsorships funding. I I think it's promising I think there's some people who have a draw that they can have people you're a great example of this I was gonna make a snarky comment, but yeah Yeah, there's somebody I know that does a really good job with it. It'll never work La bar no one will ever be able to fund a show entirely on patronage from good creators. Yeah Exactly. Uh, will it work for individuals?  Can I migrate over? I don't know Personally, I don't like the idea for what I do Having fans Pay for things. I rather the I rather be more top down the companies pay for you get everything free. That's you know For what I do, you know, if I obviously I would it would be a different model, but You know, so I'm not saying I wouldn't use tips, but I'm very I have them and I really turn them on I still feel weird about them I think that's a really really good point is that uh, my audience has been built on on a model that's We're independent and we rely on you if you get value out of the show give value back But if that's not the way you build your audience, you know If I were to suddenly take take money from top down my audience would be like, hey, that's not how you built this That's not okay. Same thing with your audience. If you start asking them for money. They're like, no, no, no You get your money from somewhere else. Don't start asking me for it It's it's so different models work different ways and I don't think either one of them are right or wrong Uh, in which case, I guess that brings me back to the idea that you know tiktok Making this available is a great thing for tiktok because they can they can take a cut of it Eventually if it catches on but it won't necessarily supplant anything it will supplement it Supplements a good word. Yeah, yeah microsoft has acquired a content moderation company called two hat that counts microsoft as a client Two hat uses algorithms to classify and filter messages images usernames videos and more It has helped moderate xbox minecraft and msn But now microsoft owns it so two hat can do it for itself now, but it will continue to work on microsoft moderation And also plug into microsoft plans to expand customer services Two hat will continue to serve non microsoft customers and hopes to acquire more of them This fits into something ceo sachinadella has been saying He wants microsoft to focus on creators and communities In this case, you know two hat brings a moderation thing to that. That's not the only thing he wants But that's why you may have heard the company rumored to be interested in buying tiktok at one point pinterest at another point discord at another point is They know that you know azure is great cloud services are great That's huge for them, but they want to avoid this innovators dilemma too. So they're like, ah the creator community We see tiktok wanting to take tips. We see twitter doing super followers We want to provide services For both the creators and the platforms Which is what we do at microsoft. We provide services like azure cloud services. We could provide community services too Yeah, I think I think that's smart. You remember just a side note when Microsoft it was some years ago. They had a they had a service similar to facebook. They were trying it was like this this Uh, I don't know what it was called. It was Microsoft something It it it was a it was a weird attempt at them trying to make a social network and it didn't it didn't pan out and I I think my point is I think it's smart to We see something like that. You see okay, that's not what we can do apple found out the hard way to with their social network Let's back off And provide services for people to to to be able to to you know to enable them to be better at what they do And I think this moderation thing is uh It's it's going to be important for multitudes of companies So, you know just like microsoft in the beginning had some patents right android had benefited Other people this could be the similar thing, you know Hey, we license this out for you know hundreds of companies thousands of companies to use and they get a little cut for me So they still win either way And they they use azure to serve lots of microsoft stuff But they also make a lot of money off at same thing they'll they'll use two hat to moderate xbox minecraft, etc Uh, but also turn it into a big, you know super charge it as a service yammer. Was it yammer? Was that the microsoft? It wasn't the one I was thinking of I'm gonna have to look at it while you're while you're talking uh Now I'm I'm upset. I can't figure Hey folks, if you have a thought about something on the show, maybe you're like, uh, this this is what you're trying to think of Uh, maybe you're like, how do I tell you email us feedback at daily tech news show dot com As part of her review of the new macbook pros wall street journals Joanna stern talked to some apple executives and unearthed a few explanations for burning questions You might have whether you're an apple fan or not For instance, you have a big old notch on the new macbook pro And you don't add face id said Joanna stern. I'm paraphrasing to apple executives Uh apples vp of ipad and mac product marketing told stern that touch id is more convenient because your hands are already on the keyboard If you're close enough To use the camera, you just reach over there and touch that touch id. Is that wash for you lemar? No I read that I was like, no It's nice to open it and yeah, it is a very apple comment. It's like come on. No when you open your laptop Just like windows hello. Come on guys They know no no what you want lemar is your hands are already on the keyboard What if my hands aren't on the keyboard right? But i'm opening it has they have they never opened a laptop before All right, this brings up another question. Why don't apple laptops have touch screens your hands are right there, right? Apple senior vice president of hardware engineering john turnes told stern We make the world's best touch computer on an ipad. It's totally optimized for that And the mac is totally optimized for indirect input. We haven't really felt a reason to change that I I still would like the option. I I get what they're saying and I get what they're saying too They don't want to cannibalize that the same that that's that's all that's really what it is, right? Yeah, because they gave us a keyboard for the ipad They did they did they gave us the option of one direction, but not the other direction Yeah, I this this argument makes sense on the operating system, right this to me It's like oh, yeah, you need ipad os for a touch-based system It sure so so maybe there's something to it of like yeah, and the mac book is different It is a different the operating system is meant for For a for direct input for for for keyboard So maybe maybe there is something there.  Yeah, all right I mean while the new york times has been going in depth on the 19 dollar apple polishing cloth Which is now technically the apple product with the longest shipping time Right now up to 12 weeks if you want to order the 19 dollar apple polishing cloth But apple's not surprised by that Daisuke Wakabayashi wrote for the new york times an apple official said in an interview based on the condition that the new york times not quote or identify her That the company was not surprised by the demand for the polishing cloth The official said the cloth was very effective and had been designed to be special including a custom light gray color Apple said the cloth was made of a non woven microfiber, but declined to elaborate I'm sorry. I did not mean to laugh during your thing. It's it like that's such an apple It's such an apple comment, man So it's different than these two microfiber cloths that I got with my glasses Exactly. It's more special. It's it's tuned to the only work Perfectly with the apple products. Yes I can't believe that you know what I can't believe I can believe the shipping is that long because There are people who will buy everything from apple. There are people who will buy it as a joke I don't know. There might be people buying it as a joke to do as an unboxing Yeah, who are those people like I mean crazy, right? Yeah And they probably didn't make that many of them is what I'm saying Like there's enough people who will buy them for whatever reason and they just didn't make a lot of them That's my guess. Yeah, I'm guessing that All right, oh man Time to get to the controversy in the show Yes Now, uh, listen audience Are you some kind of monster that likes to have motions moving on sometimes? But we'd like to have it automatically turn off when you watch a movie on amazon prime's video service Well, lg has a tv for you LG's 2020 and 2021 4k and 8k tv's can now turn on Filmmaker mode automatically when you're watching content from amazon's prime video streaming service The feature works by showing you Pop-up that's what uh, let me read that over the features works by showing you Pop-up that switch is happening giving you the chance to make the severely unpopular choice Of leaving on motions moving for your movie use centers Um, apparently from what I've come to understand Uh, you are you are forgiven for using motions moving on sports. That is what it's good for It's okay on sports No one well, no one will will condemn you for that And so that's why this would exist is so that if you have it on for your sports And you switch to amazon prime It automatically turns off and it saves you having to go into settings and turn it off How many people actually turn it on and off? Most people just leave it off even for sports, right? Yeah, I a little secret so back in I don't want the 2009 2010 I in Chicago, I would go visit fries electronics. Like I'll make it a trip.  It's like so like I was actually into the soap opera thing I know it's I don't have it on now, but I was enamored by it back then. I don't know why judge me, please I I'm glad I'm this is a safe space I don't mind the motion smoothing my my father-in-law had it on one day was watching star trek the next generation I was like, I don't know. It kind of looks cool. Like it's different Uh, it's different. That's what it is. I have turned it off on my television. I'm just you know Let's let's be clear, you know, we've all we've all bound to public pressure I don't think it looks better for most things But it doesn't bug me as much as it appears to be like Yeah, like you said like it's a sin many people Shocking revelations. Tom and Lamar do not totally mind motion smoothing We're canceled. All right. Yes Um, how about some extra information you're gonna distract them? Yeah, let me distract you here Boston Dynamics has released a video featuring a quadrupedal robot. Is it right? Uh named spots performing a Mick Jagger inspired dance to the Rolling Stones song spot me up You have to see this the video is a tribute to the 40th anniversary of the stones tattoo you album This video follows a line of similar viral videos Produced by the robotics company including one where a pack of spots Dance to the BTS song. How do you pronounce this? Is it ionic ionic? I'm on it. I don't Listen to BTS. Sorry cancel. I'm canceled Um, the video the video is hilarious army will not cancel you. They'll just say you'll come around eventually. Don't work Thank you Uh, the song is start me up, but they call it spot me up in this video because The spot robot is dancing along. I have to say now now keep in mind This is the video of start me up. So it's the young Mick Jagger Actually, he's not even that young but younger than he is now Mick Jagger Uh doing doing the dancing and the spot robots are mimicking his moves and his moves are you know, they're Mick Jagger moves They're interesting the spot robot moves like Jagger. That's what I'm trying to say It was delightfully disturbing Yeah, that's the best way I can say that video. I watched it and I was like What what did I just see here? What but it was great sort of Yeah, uh boston dynamics always getting us talking. All right. Let's check out the mail bag. What do we got in there? Lamar? Yes, we got an email from kevin who says thank you In a recent conversation with my wife I found myself explaining that a chip shortage that is currently plaguing auto manufacturers About halfway through the conversation. I realized that I was just quoting or paraphrasing what I've heard in your show and others This isn't the only conversation I've had about this topic and I gave you credit at the end of each of these events You make me smarter and allow me to speak intelligently about many tech related things regards Oh, thank you. Kevin. Yeah, uh, that that really is exactly what the show is about right there Is like giving you the background so that you just feel like you know stuff That you wouldn't have known otherwise. We we read the news so you don't have to uh, thank you, kevin Feedback at daily tech news show dot com. Also. Thanks to brand new bosses. We have three new bosses today Get ready folks to welcome andy gary monica r and robert murray into The dts boss tech all those out all of you out of the public feed You can follow them. You can follow them right into the show. Thank you andy monica and robert patreon.com slash dts also Thank you len peralta for illustrating the tech news this week. What have you drawn for us len? well, you know the Top, you know, I say at the top of every show that i'm on that i'm drawing the top tech stories Uh, this of course was the I feel the the biggest tech story of the week You might have uh, you might feel a little bit differently facebook turning into meta So I wanted to do something that was both halloween related and also capitalize on the fact that I feel that you know Zuck is really like michael meyers really honestly Not because he kind of looks like him, but also because he you know He he didn't kill facebook.  So in this image We have the tombstone of facebook the 10 28 21 which and then the body of facebook and and a michael meyers type Character holding on the head of facebook. So very creepy for halloween May not exist. Yeah, he's got the meta logo on his shirt Right where the ones are It does because it doesn't kind of look like lungs doesn't it a little bit creepy I I don't know. I find zuck a little bit creepy I don't know if if anybody else is in the camp, but uh, but I thought this was perfect for halloween A little bit of ribbing there for our good friend mark zuckerberg Anyway, this is um, this image is available Obviously at my patreon if you're a patreon backer patreon.com forward slash len also on my online store And letting for all the store.com and also you may want to check open see because this might be an nft as well So check it out there. It's very clever. You could you could use that on the metaverse someday I like what I see what you did there. Very good Lamar wilson, thank you my friend.  So my apology. We will be better We will be better next time. But yeah, I do videos, um, unboxing you mentioned the $19 cloth coming soon Um, if you're watching a video, I have This box from you'll never guess what this is from apple. Never it's impossible to guess What this long box is but I'll be unboxing this probably next week That they sent out. So, uh, yeah, be sure to check that out at lamar wilson at any social network Uh, facebook actually come in november 1st So and any one anyone if you're on you can watch me doesn't matter. I appreciate it. Thanks. Excellent Folks, we are live for at 4 30 p.m. Eastern monday through friday. That's 2030 utc until the time change next week Find out more at daily tech news show dot com slash live back on monday with rich straffolino and tim stevens here to talk about evs and the supply chain This week's episodes of daily tech news show were created by the following people Host producer and writer tom mary host producer and writer sarah lane Executive producer and booker roger chang producer writer and host rich straffolino video producer twitch producer joe coons Associate producer anthony lemos spanish language host writer and producer dan compos news host writer and producer jenn cutter science correspondent dr. Nikki ackerman's social media producer and moderator zoe dedity our mods beatmaster W's goddess one bio cow captain kipper jack shid steve garter amma paul reese matthew j stevensson and jd galloway That's matthew j stevens mod and video hosting by dan christensen video feed by shawn way Music and art provided by martin bell dan looters moustafa a a cast creative aster and len peralta live art performed by len peralta a cast ad support from trace gainer patreon support from stephan brown Contributors for this week's show included allison charitant scott johnson justin robber young and lamar wilson Our guest on this week's show was trisha hirschberger and thanks to all our patrons who make the show possible This show is part of the frog pants network get more at frogpants.com Club hopes you have enjoyed this brover


Who all here came to see Vlad? Anybody know who Vlad is? Vlad is actually on my team, but he's up in the top left picture here in Florida. So he was hit in Tampa, but luckily family is safe. House is OK. But he couldn't make it here to the conference. So I am here for you instead of Vlad. So Vlad's actually an author. He's written this fantastic book on Go. He's actively on Twitter. And he's a part of the code team. Code is an open source initiative at Dell focused on contributing and building ecosystems and community all wrapped around emerging technologies. So my team is really a group of open source engineers and developer advocates that focuses on all kinds of cool technology. I'm a Go advocate. I'm a Go developer. I've written plenty of stuff. I'll tell you that Vlad is the deep dive guy, but I'll do my best for you guys. So if you have questions, I may defer. But let's see how this goes. So we've got three objectives today for the presentation. First of all, let's talk about why GRPC. I've actually got a ton of experience in developing rest and HTTP-based interfaces. So we'll talk a little bit about where we've been and why we're here at GRPC. We'll go through an example of a GRP service. And then we'll look at some of the extra features that you get by way of GRPC natively. So why GRPC? Like, what are we really trying to do? We're trying to connect two components together. And we want to do this in as simple a way as possible. If you look at the orange depiction from component one to component two, we just want that to be a straight line. We want it to be invisible. That should be as easy as it gets. Because connecting two components together isn't where the value is, like the workings in between them. The value is just having those two things talk to each other. So there's this crooked path that we can walk to get two components to talk to each other. And that involves having discussions about rest, like building a full rest model around having two things work together, very difficult. It involves existing RPC methodologies that may be native to languages. Maybe it's HVJSON to make a simple interface. There's lots of discussions that happen around just how you connect two things together. So I'm pretty excited about what we're going to talk about today, which is simplifying this and standardizing it as you look at building out this communication between components. So what's the situation today? It's really interesting because technology is changing. The demand for interoperability is increasing day by day. The user experience, when I look at something like this, like my phone. Most of us use our phone almost all day long. And that user experience and responsiveness is really important to us. But we travel through all kinds of different coverage zones through cell sites and stuff like that. And getting the bandwidth, getting the responsiveness, it's just critical to user experience. So we want to be as efficient as we can be when we talk about interoperating. And it may be a service to a service. It may be a phone to a service. We want all that communication to be super efficient. So mobile technology is driving some changes here. The other thing that's happening is software architectures are changing as well. So when we look at a monolith application, it was pretty simple to have different pieces of the application communicate because you're using in-memory processes that just can naturally call functions and stuff like that. But we look at taking these big monoliths and splitting them out to some type of logical microservices. Then you have to think about how these things are going to communicate with each other. Are you going to develop your own JSON API? Or are you going to use something simple to connect the two components together at that point? So the mobile technology, the changing software architectures in terms of using microservices, these are both driving the need for something like ERPC. So what's the scenario? We've got a currency service, for example. The currency has a lookup capability that we're trying to expose in some way. If you have a mobile client, maybe it's Android that wants to use this service. So I'm talking about developing a web-based app, for example. Maybe it's an iPhone where I'd need to develop in C-sharp. Maybe it's a back-end process with Java, Python, Go, Rust, something like that. Maybe it's a desktop tool, and it's developed in C-sharp or Java. And maybe it's a website back-end using Node.js. All different languages, but you want to expose that functionality to this lookup service consistently. So the problem is that there's multiple systems. If you're taking this mobile device area, it's all bandwidth constrained in terms of working from a cellular site and getting the bandwidth all the way to the data center. It's something that should be really efficient. You're talking about real-time data access. So maybe you're streaming in terms of sending chunks of data rather than large globs of data. Different languages and platforms, and the need to even version. If you're developing a centralized version of a service, if you want to upgrade that service, then you're going to have to figure out a great versioning ability so that you're consuming languages or able to interpret things correctly. And backward compatibility. So these are all a bunch of things to consider as you're building out the service and making it platform-agnostic at the end of the day. So InComes, kind of our first thing we'll talk about, which is RPC over HTTB JSON. This is a pretty good solution. It's simple, it's flexible, it's kind of universally accepted. The point here is when you have a RPC JSON interface, you're doing a lot of the work. You basically said I've got two components and I'm going to start with languages and I have to build like soup-to-nuts, everything in that language to make these two things interoperate. And then if I want to build in safeguards, like type checking and stuff like that to make it more consistent and predictable, that's all on me to develop in every single language. So in RPC over HTTB JSON, it's kind of a simple interface. You'll see it pretty consistently across a lot of different technologies, but it's got its downsides in terms of being predictable and it's got its downsides in terms of adoption in different languages and platforms. I covered the data typing. I think a big thing to cover here as well is the efficiency. I'll give an example in a little bit, the idea that I'm going to take a language and I'm going to have it communicate over a text and then I'm going to have like serialization and deserialization of that text to try to fit it into object models after that. It's very inefficient. Like it takes a lot of CPU cycles to actually do that translation and send stuff over text. So it's really inefficient when you start looking at the way it's transferring the data. Another important thing here is, we're using HTTP as a transport and it's not a perfect translation between a language and the HTTP protocol. So if I want to use errors, for example, you might think, hey, I can take my errors for my language and kind of encode them in the error response, but that's not really true because errors in HTTP shouldn't include that type of a body. So you can't really use the HTTP protocol to encode language-specific information. It just doesn't work out. It doesn't translate in the right way. So there's lots of work to do, essentially, if you want to take advantage of something like HTTP and throw your own JSON messaging layer and accomplish RPC. So the next thing that people look at is, well, how about REST? So if I say HTTP JSON and I say REST and they're completely two different things, do you guys, anybody disagree with that? Does that make sense or not? Let's say, okay. They are completely different. HTTP JSON is just simply a way of encoding information and RPC is basically saying, I'm gonna send these remote procedure calls over this transport, essentially. REST is actually builds on top of those fundamentals. REST actually leverages something like HTTP JSON, but it's this idea that I can have a common way for developers to communicate. The idea is I want to be able to have a language point at an endpoint and if it's RESTful, then that language should be able to figure out how to do everything it needs to do with that interface. And so what that means is to be a truly RESTful interface, it needs to be self-discoverable. So it's kind of an interesting point. So what is self-discoverable in human terms? In human terms, it's basically the Google interface. For Google, that is our UI to a search engine. And I go to Google and I enter in whatever I wanna search and I just know that that's how I get done what I wanna get done. I've learned about it. So that's the UI and that is essentially self-discoverable. I've already figured it out. I know how to use it. In the case of computers, how do I get a computer, or an application to point at some endpoint and know what to do already? And that's the idea of REST, is there's a pattern that can be employed, which is the maze pattern. And the maze pattern basically says, take an application, point it at this endpoint and when it gets there, it's gonna know how to discover exactly what it can do.  So when you look at an REST object model, it's gonna include all kinds of different object types. It's gonna include all kinds of different actions you can do on these objects and that whole model is gonna be self-discoverable. So that's the big difference between, say, something that's HP JSON, like an RPC interface, where you define all that ahead of time in a language and a REST interface, which is self-discoverable, meaning you point a language at a REST endpoint and all of a sudden the language knows exactly what it can do. The latter, this whole REST interface, which is the nirvana essentially, the holy grail of what's really trying to be accomplished, they get simple to leverage any type of endpoint, is very difficult and people write books on this stuff. There's conferences that are dedicated to building out truly RESTful services. I highly suggest them if you're interested in actually pursuing a REST interface, there's good reasons to still do so. I highly suggest kind of researching and seeing what that's all about. If you've heard of something like Swagger or Apiary, these are all kind of attempts at building frameworks around helping you build a REST interface. And then what that should end up doing is giving you these API bindings in your languages that you can actually make use of in your applications to solve the same problem that your RPC is trying to solve. So you've got HPJSON, you've got RPC over that, you've got these self-discoverable REST interfaces, which are made easier by way of something like Swagger, and then you've got something like GRPC that we're gonna talk about. So if you look at this thread online, there's a guy, Simon Brown, that I met this last weekend at Software Circus in Europe. He consults with customers about software architecture. And what he said down here is, I've heard advice such as break up your monolith into microservices with REST APIs between them, a number of times this week. And then at the top, he says, I've met a number of organizations who have done just this, and they're now struggling for obvious reasons. It's basically a bad idea, right? If you're gonna take an application and you're gonna split it up into microservices, and then you're gonna have to take the time to define a REST API between every single service, that's a lot of time and effort, and you're probably not gonna get the value out of that that you need to. So there's gotta be a better way of getting these things to communicate. So here's kind of the summary slide of what I've been talking about in terms of setting up GRPC. On the left side, you've got some of these attempts at building, or making it easier to build these interfaces. Who else used SOAP before? Yeah, what do you think about it? For the record, there's a lot of thumbs down. I would say inefficient, like if you have a large service by the time, the WISDL file is essentially this interface definition.  So I'd say largely inefficient. I talked about the serialization, XML, although very advanced in terms of the data structures that you can encode inside of XML, very heavy on the CPU. So very inefficient from a transport perspective. So SOAP was one that's been around for a long time. Another interesting point about it is that it's idiomatic in terms of client server. So SOAP, there's frameworks that have been written for different languages, whether that's Go, or Python, or anything else. And it should help you actually create these language bindings that are SOAP enabled. So idiomatic-wise, SOAP does have stuff that's out there. But the problem is that it's not part of the SOAP project, it's maintained independently by a bunch of people who care about those languages. So there are frameworks that help you create idiomatic connectivity. Is SOAP curl-friendly? Can you just pop open a bash session and just go open a SOAP interface? Not really, right? So it's a little bit more difficult to troubleshoot. Yeah, so inefficient, I'd say no. Predictable somewhat because you've got your bindings in your languages on a client server basis, and that does provide some predictability. You didn't build all that all yourself. There's some data-type validation to it. So the next one down here is RPC over JSON, which is basically where you said, I'm gonna create my own interface, but with a minimal amount of work. At that point, you don't have a client server stubs or client server bindings to take advantage of. You gotta write it all from scratch. So lots of work just to make every language compatible if that's what you need to do. It is curl-friendly, right? So if you wanna troubleshoot it, and you wanna do testing on it by way of pulling up curl, then that's available. So that's kind of cool. The frameworks are all custom to help take advantage of it. There's serialization is whatever you want it to be, JSON, something like that. It's probably not efficient and definitely not predictable. Custom rest, the difference with the custom rest is that you probably took the time to build your own framework. So rather than leveraging Swagger or something like that, you said, hey, Swagger doesn't do exactly what I need, it doesn't fit my use case. I'm gonna actually build Swagger from scratch. Like we've done that and it's not too fun, right? But it does get you to be a little bit more predictable. So that's what custom rest is all about. It's not efficient and it's probably not predictable. Under rest, that's where we cover Swagger. You do get your idiomatic client server stubs. It is curl-friendly at times, but it's not efficient, not predictable. The very bottom one is where we get to GRPC. So why is GRPC so cool? Well, the stubs, the bindings that you use for GRPC are all generated by way of the GRPC project. So as the GRPC standard for protobuf, et cetera, is maintained and moved forward, then your bindings at the language level are actually all put out as well. So they're all in sync. GRPC is not curl-friendly. That's kind of an important point. But they have their own tools for troubleshooting. But is that really important? Like if you're developing your application and I said, hey, the trade-off is that you're either curl-friendly or you're super efficient, what's more important? It's probably that you're super efficient. Because the bandwidth, data center bandwidth, CPU usage, et cetera, I think that that probably trumps the curl-friendly side of what you get by using other types of methods. The frameworks included for developing your stubs, serialization is binary. So super efficient and it's predictable because everything is generated for you. So let's go in and let's take, I guess, one more point here. So the Linux philosophy applied. So in Linux, the idea with all the different tools that are encompassed in the distributions is that you wanna write focus tools and you want them to do their job, do them well, but you also want them to interoperate with other things. So in Linux, if you have different tools working together, how do they communicate? The Linux pipe, right? So what we're really looking to do is create a, essentially a Linux pipe for boring distributed components and that is GRPC. So GRPC is a universal open source RPC framework designed to create efficient and fast polyglot services. So polyglot meaning many languages, any language. With the usage ranging from data center scale, so running backend services in the data center to bandwidth constrained devices like my iPhone traveling between all kinds of different parts of the world. So that is the focus behind GRPC. Be efficient and be fast. So GRPC is based on protocol buffers which are really how we can serialize structured data. So if I have an object in a certain language, the protobufs help me take that object, serialize it into a protobuf object essentially and then on the other end it comes out as a language specific object. So the protobufs help me with that translation and they help me define kind of a middle ground. So it's based on what we call an IDL which is the interface definition language which is where we can define like how do two things communicate with each other? This IDL essentially is what creates the client stubs and the server stubs and that's where you really focus all your time when you're defining your interfaces. So it's got a simple IDL, uses HP2 out of the gate. So HP2 is super efficient in terms of reusing HTTP connections. So it's great for mobile devices and just being efficient with data center resources. It's got bi-directional support and streaming. So if you wanna have a client or a server send data to a phone, if I've got a gigabyte in traffic, you can actually stream that in chunks so that the client is able to have a great user experience with that and chunk through the data as it comes in versus one whole segment of data. And there's other things. So it's not only like the user experience but that has to do with the memory. If I have to chunk a gig of memory, I need a chunk of a gig of RAM. But if I can actually do that in bits and pieces and I can stream it to the device, then the requirements to make sense of that data are much, much smaller. The other thing here is that it's got extensible middleware. So if you're developing your interface, there may be stuff that GRPC doesn't have already. Maybe you wanna add some throttling. Maybe you wanna add some authentication, all kinds of different stuff like that that you can essentially inject in the GRPC work stream and it can intercept requests and do extra things on the request for you. So plenty of extensibility capabilities is what it comes down to. So what languages are there today? All of these languages. So a lot of the common languages that you would use for not only your front end development for mobile devices but also your back end development in the data center. How about some performance examples? We're looking here at a dashboard that shows the comparison of languages. So if you just take a IDL, a Protobuf IDL, you define it and you generate your client server stubs and you take a look at what the round trip time is for the language itself. On the bottom, you have your baseline, which is your net perf. So what is the lowest expected performance? And then the delta between the net perf and any of the other colors is that language is added overhead for actually having the two processes communicate. So in this case, you've got C++ which is 25 extra nanoseconds and then you've got Go, C sharp, Java. So super efficient from that perspective. Here's some more practical results. Like when I was talking about XML, JSON as compared to GRPC, XML and JSON are text-based. GRPC is binary-based. So the translation there is much, much less in terms of getting stuff from one language to the other. So here's an example of the very top. You've got the JSON-RPC interface. The total time for the transaction was eight minutes and seven seconds, thank you. And then you had GRPC, the total time was 36 seconds. So that's a pretty significant difference, right? If you actually take GRPC and you scale it out to many, many hosts or many requests, then the difference is even more substantial for accomplishing the aggregate task, right? Because with GRPC, you can stream or you can send it out in different ways. So you get down to seven seconds at that point. If you compare the amount of memory consumed, so the nanoseconds per operation was down by 100%. The allocations per operation was down by 23%. And then the memory actually consumed through the operations was down by about 40%. So huge difference, like going with this human readable text format to make two components communicate together is probably a bad idea from a efficiency perspective. Using something with a binary format that GRPC helps you do is a good idea to keep things very, very efficient. Cool. How does this apply to something more practical? So don't take this as gospel, but just give you an example. Kubernetes, like when you look at a cluster and you look at the CPU usage, this is what's been said. Out of the Kubernetes cluster, because it doesn't use GRPC internally for everything right now. Some of it's based on Swagger and other API stuff. But you've got about 47% of the CPU usage is what's been said. I've heard this repeated a couple of times, but I'd love to get more firm details. But 47% is based on translating text to have different things to communicate with each other in a Kubernetes cluster. So pretty cool example of why we probably don't want to do that. So GRPCervice and Go, so let's get practical. There is a, so Vlad put together some great examples for you down here at this URL. And this session's obviously gonna be available after the conference through video and as a PowerPoint. But that is a GitHub repo that gives you some examples of how to use some of the GRPC features that we're gonna walk through. But what we're gonna do is something pretty simple. We're gonna find this service contract, which is this IDL, this interface definition. Excuse me, we're gonna compile the IDL into service interfaces and essentially a source code. And then we're gonna actually implement the methods that we're gonna find to create a real working service. So first of all, let's look at the IDL. So here we have a protobuf file. At the very top, you can see that we're defining the version of protobuf that we'll be leveraging. Next up, you can see the different messages. And we've got three that we're defining here. One is an object, which is the currency with a few fields in it, the code, the name, number. We're using strings and N32s there. And then we've got a currency list, which is essentially an array of the currency items. And then we've got the currency request, where we're receiving the ability to have a code and a number. This service that we're creating is about being able to look up currency. So there's a database of currency, the US dollar, maybe index one, the Euro's index two, and we wanna be able to query that currency database. That's what we're kinda generating here. So that's the interface, there's the request. At the very bottom here, we've actually got the currency service. So this is where we declare what the remote methods are that the client's gonna be able to access. So in this case, we've got the get currency list method. And inside of it, it's unary. So we've got a request object, and then we've got a list being returned from that method. So pretty simple, right? That's your protobuf definition. That is this like middle ground that allows you to define the contract between two components. So let's compile that. So we've got our protobuf file. We'll use protoc to actually compile that into a generated code. So this is generated code that you don't change, right? This comes out of that IDL. So in this, you can see kind of the one-to-one mapping of the message going into the type currency. On the right side, it's obviously go, right? But if you use protoc from a different language, it would generate the code in whatever language that you're gonna be using. So in Go's perspective, you've got the fields mapping pretty closely to the types. You've got the array, the currency list array, going into an array, the parameter of items with a array of currencies or currency pointers. And then you've got the currency request mapping over, and then here you have a interface, which is unary that includes the context object. So this is essentially working generated code, and the next step is just implementing what I see on the right. So let's implement it. So here's the simple implementation. We're gonna define a currency service struct, and that's gonna be an array of pointers, which are from the currency object that just came in on the last slide, right? With this new Go object that got generated for us. Our function is gonna be the getCurrencyList function, and what we're gonna do here, this is on the server side, is we're gonna range a CSV, so you can see under the four statement, right here, we're gonna range through a C.data, which is a CSV file. If the request that comes in that specifies the number and the code, I'm gonna append that item to the list, and then I'm gonna return this item down at the bottom as a currency list. So this is the server side implementing this getCurrencyList function. So here we have what this actually looks like as a runnable program. First of all, you can see the data come in from a CSV file at the very top line. Then you can see that we're starting our listener. Then we're gonna create our new currency service with this data object. We'll create our GRPC server at that point. We're gonna register that server and the GRPC server and the currency service together in the ProtoBuff, and then we're gonna serve down at the bottom. All right, so we've taken generated code. We've created a pretty simple function, which is this getCurrencyList. Then we packaged it up as a runnable program and go so that we can actually serve up this GRPC endpoint. So when I call it from the client, this is what it looks like. We've got a runnable program again as a client. At the very top, you've got a dial statement that says what's my endpoint that's hosting this GRPC service. You're gonna create a client by passing the connection in, and then you're gonna pass the client to the printUSD function. So the client gets passed in and then here it starts. So we're gonna, as a client, we're executing that remote getCurrencyList function. We're gonna come down as we get the results and we'll range through the results, all the items, and we'll spit out the information that comes back. So pretty simple. We had the server side implemented. This is the client side that's using the client stubs, and he's making use of the data, ranging through it and spitting out the results. Pretty cool, pretty basic. I should have used that for you guys, but that's all right. All right, so any questions there? Does that make sense? Generate the bindings, use the create the server, create the client, and all of a sudden the two things are talking to each other. No REST model generated, no working at an HTTP level. Lots of predictability because there's type safe built into this, so there's a lot less guesswork. You've got a really efficient way to make two things communicate together. So let's get a little bit more complicated with it to show some of the features of GRPC. So streaming, what the heck is this? I mentioned it earlier, if I say a device like this, and I'm gonna receive a dataset, and this dataset is bigger, I probably want to stream the dataset to the device because then the device can decide how much it's gonna chunk by. So if it's a gigabyte dataset, the device can pull off a megabyte, look at it, show it up on the device, and then it can move on and get the next megabyte, allowing the user to see the data in real time versus having to chunk through the gigabyte to show the results to the user. So streaming is pretty important from many perspectives, but it's great for the user experience, especially on the mobile side. So what does this look like? So if I update my IDL to include streaming, this is what it's gonna look like. At the very top, you have the existing definition of get currency list, and that's a non-streaming example unchanged here. As we step down, we've got three different streams, essentially, we've got three different stream types. One is server streaming, and that's the example that I was referring to where I've got a client device, and it's chunking essentially the results that come in, or the server is chunking it for me. Then I've got client streaming, so the opposite is true of what I defined from the server. So in some cases, you want the server to send in chunks. In other cases, you want the client to send in chunks. Maybe the client is on periscope, right, and you're recording stuff, and you wanna send chunks at a time upward. You want the server to be ready to receive in the same way that it would be sending. So you can see that the stream is just reversed in that case to have a stream be submitted rather than received. There's also bi-directional streaming, so maybe you want the communication both ways to be streamed, who knows. So all three are possible. Here's an example of actually putting that into effect. So if I'm on the, it's a server stream example. If I am on the server side affecting this get currency stream method, then this is what I'm adding. So as the results come in, instead of appending to an array, I'm just gonna send, I'm gonna open up that stream that came into me, and I'm gonna send that result real time back to the client. So instead of the server just appending in memory and creating the dataset and then sending that as a whole, it's gonna send the results every time it gets one as it iterates through the array. On the client side, what does this look like? How's it different? On the client side, we're gonna activate the get currency stream method, and then as we iterate through, we get to this four section. You're gonna see that we have a stream receive, right? And then we're gonna be printing out results as there's items that come into that stream. So that four loop keeps on going. Essentially, I think it's a blocking channel, I would assume, and once an item comes into the channel, then it moves on and actually processes it. Cool, questions there? Good, cool. Next one. How do I secure a GRPC interface? Another example of if you wanted to roll this yourself, getting TLS support across any language across different frameworks is difficult. Yep, question. So this example is not bidirectional. This would be the client, well, this is a server side, and I actually don't know the answer to that because I haven't implemented the bidirectional, so I can always, we can follow up afterwards and get you in touch with one of the GRPC people, yeah. Okay, so another feature, TLS. How do you guys usually do TLS as you create your own way of getting things to communicate? Not very easily, not very standardly. This is gonna be really easy. So TLS setup for GRPC is this. If you've got certificate files, key files, then you use the credentials new server TLS from file function there, or method, and then when you create your GRPC server, then you pass in the GRPC creds object, essentially, and that is how you create the server side where it's SSL based at that point. If I'm on the client, it's just as simple, essentially. You use the same exact method for creating this TLS certs object and then you inject it right here with a with transport credentials method, which will return that credential object for the dial. So pretty easy. How about request timeouts? How do you usually deal with backups and requests and all that stuff? Well, this is easy here. So what you're gonna do is you're gonna use goes context object. The context object is where you can pass around arbitrary data and it's thread safe, essentially, so you can send the context object to a method and then as it gets executed in a thread, it's able to use the information on that context and make use of it. So in this case, we're gonna augment the printUSD function and then we're going to add in the context at the very top. So at the top line here, we've got context with timeout and we're gonna specify the new context and then we're gonna say the timeout is essentially 200 milliseconds. And now I've got a context object that's got this 200 millisecond timeout information in it and then to make use of it, I go down to the very next line down here and I say get the currency list past the context but that context has the timeout and so now if the 200 milliseconds has exceeded, then GRPC is gonna error and say it didn't complete within the deadline. So timeouts are easy. Cool, what error handling? I think when you look at the error handling, it's probably one of the most inconsistent things as you look at how interfaces actually work together. If you look at, I guess in my opinion, if you want two things to work very predictably, then what happens during errors is one of the most important things. If I've got an error and the client side doesn't know how to recover or doesn't know what to do, what steps to take, then things can get out of sync and all kinds of problems happen. So having well-defined errors is pretty important and it's actually very easy as you use GRPC to do that. So an anti-pattern within GRPC is to send a error back which hasn't been decorated at all. Sending back the exact error is probably not the thing you wanna do. You actually wanna do some wrapping on it. So what does that look like? So in the case of a server error, if I've got some type of an invalid input or something like that, I wanna return a new error that's got an enum or a codes.invalid argument. So it should have some type of a code established for that type of error that occurred. And that should be actually defined within my protobuf essentially so that it translates back and forth easily. And that error should actually indicate some extra information so that you can make sense of what's going on as the client tries to report back what the problem was. On the client side, if that server's actually declaring the error, which it should and it's decorating it a bit, then it should be able to interpret it in different ways. So as we've got this error that happened and I can switch through it and figure out what the error is, then the client should actually go through and print a special message for that error. So it's all easy and very possible as you use GRPC to do this in a very standard way. And you can even get more complex. So if I decided that I wanted to add more information to the error that gets generated, I'm able to do that. And then at the very bottom, I can essentially take that object that got generated and I can send back an error-based object through the interface. So and then on the other side, as I have a more complex error that gets generated by the server, then I can make use of that error on the client. And I can, in this case, what I'm doing, if I started with an object which may have generated the error, the reason for the error, I can actually cast that object or I can assert it as the PB currency object. And if it doesn't assert correctly, then I can actually spit that out at the client and I can show the client like, hey, here's the object that came through. Take a look for yourself and you tell me if there's something in here that was invalid that may have caused me to have a problem. So all kinds of capabilities you can have by one, making sure you're using the JRPC errors, defining them in your protobuf, but also doing more details and asserting the values so you can properly report back to the client like what was going on on the server side and why there was an error. Other features. So other really cool stuff with JRPC. We talked about interceptors and taps a little bit. So in the case of services, like you may wanna establish a tap that does some type of flow control. So if you wanna make sure that you're not overriding a service or doing DOS attacks, you can actually inject some types of middleware that ensure you can establish some flow control. If you had extra things you wanted to add for authorization, you could do that. So there's all kinds of extra goodies that you can inject inside of the JRPC workflow to add some extra value on top. There's tracing for more information about the transactions, support for pluggable authorization and the ability to limit message sizes. So JRPC, I love it, we're big fans as a team. We just worked on one of our first implementations with it as part of the CSI project. Have you guys heard of CSI before? Or just interfaces in general, CNI, CRI, CSI, there's like three big ones right now. Anyways, as the cloud native ecosystems evolving as all these different components in these cloud native ecosystems are looking to talk with one another, then the interfaces and how they communicate are becoming much more important. So one of the things that we're excited about is what JRPC is bringing to the table and it is being used across these different interfaces. So as container orchestrators like Kubernetes are expanding out to be able to talk to different components and do more than they are today, JRPC is what's being used. So in one of the projects we've been working on very closely is the CSI project, the container storage interface project, and that's how a container orchestrator talks to storage platform. The JRPC interface is used there and so we had our first implementation with it recently and I can say it actually went really well. So a lot of the challenges that the team had been looking at previously in terms of creating our custom, like our own REST interface, working in the HTTP JSON area, those are all like problems arose which shaped some of what you guys see in this presentation today. And a lot of that stuff went away as we embraced JRPC and worked very closely in the CSI project. So we're very excited about it and I think it's a great way for, a great thing for you guys to look at as you figure out like, how to get your components to really talk to each other in the data center. So with that, that's pretty much all I had for you guys. Any questions? Yep, I'm actually not sure the answer to that. So let me, you can talk to me after and we'll get you hooked up with someone who can give you all the details that you want there. I would encourage you though to pick up jrpc.io, just bring up the website and they've got some great documentation that goes over all the details of what jrpc does and some of the stuff that they're working on. Any other questions? All right, with that, thank you guys very much and enjoy the rest of the conference.


Continuing on our day here at the research symposium, I am here with another wonderful group of ladies from the School of Engineering. Hello girls, how are you? Good. Good. All right, tell us a little bit about your project, Jetta. So our project is a robotic surgery training dome. We're a team of four, and we worked with Professor Freud's in for our mentor. She was great. So our project seeks to quantify the forces during robotic surgery training. And we are different from other products on the market because we give quantitative feedback and measure surgeon's progress in real time. And our project was sponsored by the Cardamon Scholars Fund at Fairfield and the Connecticut NEXT Foundation and the New Business Competition. Really impressive. Congratulations. Thank you. So continuing down the line here, can we talk about what inspired you to jump into this research? So the reason why we created our design is basically to improve invasive surgeries. So like improving surgery and stuff like that for surgeons, like for trainees. So it's a better technique for trainees to train on. So that was our goal. Makes sense. Really impressive. Moving right down the line. So talking and bringing it here today to the research symposium, excuse me. Tell me a little bit about what your experience has been like here so far today and how it feels to present this hard work that you put a lot of effort into. Right. So it's amazing to be able to present our project that we've been working on all year, two semesters. Everyone's put a lot of hard work into it. And it definitely feels good to share it with not only the school, but in a bigger scope, the medical community as well, to give the results that we need to improve the medical community and reduce any complications due to suturing. That makes sense. And let's wrap it all together. What is next for the project? Where do you hope it goes after the symposium? So after the symposium, we are looking forward to expanding the application of the dome. So we are looking into endoscopy, more with suture training, moving outside of just robotic surgery. We want to make this dome as applicable as possible to any field in medicine. And then on the actual dome, we're looking at an LED display to show the data, the quantitative data, the force measurements. And then also just adding more lights really to make it more aesthetically pleasing and to make it applicable for anyone. Wow. Well, you guys are so impressive. Congratulations on all your hard work. It's really, really amazing here today. So thanks so much for chatting with us. Thank you so much.


The Latoral Combat Ship, USS Freedom, stopped in Pearl Harbor, Hawaii on its way to a deployment in the western Pacific. The Freedom is the Navy's first Latoral Combat Ship, and it will conduct maritime security operations with U.S. partners in Southeast Asia during its eight-month deployment. Which U.S. Pacific Fleet Commander Admiral Cecil Haney says lines up well with his priorities. This business of having credible combat capability forward, forward where we can respond in a shorter period of time given the vastness of my area of operations. This class ship will allow us to work even more closely and in different ways with our allies, partners and friends in the western Pacific with its unique capability. Tech Sergeant Michael Jackson, Joint Base Pearl Harbor, Hickam, Hawaii.


I want to share something with the teenagers and the young boys and girls of this country. There is a new profession on the horizon. There is a new opportunity on the horizon. India is a booming economy and you people can make a wonderful career out of it. Please listen to this carefully. The future is in agriculture. The future is in farming. The future is in animal husbandry. The future is in dairy farming. Please take agriculture seriously. Instead of doing B.S.C. in some odd vocational course, some odd sciences and doing your graduation in sub-subject, why don't you try for some horticulture course or for some agriculture course, farming, you know, or learn from some agriculture. I think the best brains of this country should come into farming. I think the purpose of this country should come into agriculture and that is the day when India will be really a strong nation because agriculture and farming, agriculture, farming, dairy, animal husbandry, livestock keeping, managing your land, managing your land, and never, never, kids, never let your parents sell your land. It will be of great help to you. Learn from modern technology, from traditional wisdom, how you can do good farming, how you can produce agriculture. You can make a lot of money out of it. And money, I don't want to talk about money. You can have a good lifestyle. You can have a good outdoor life. You can have a good life. You can live a good life. You can live a good life with health and happiness. So please, I request all of you, please consider the career, the business of agriculture, farming, livestock, animal husbandry very seriously. This is the future. I'm telling you this is the future. Thank you.


Maguire's Gold Class Rich Leather 3-in-1 Wipes easily clean, condition and protect the leather surfaces in your car, all in one convenient step. Cleaners work to gently remove dirt and grime while premium conditioners and aloe nourish leather for a supple-looking feel. Formulated with UV protection to help keep your premium leather looking better, longer, without linting or leaving a greasy look or feel.


We have been on Drummond Avenue since 1920. Fast forward to now. Increased violence, young people dying everywhere, getting shot, stabbed. This community is suffering. I would never come down this street at night today. Tons of drug violence and bullets flying.  Is this? This is the reality. We need to reach beyond the four walls of the emergency room, the four walls of the hospital, and into the community to meet their needs. And Project Heal is a quintessential example of that. It was a hard time when I got shot. My son standing right on the side of me, shot me right there. I wasn't able to go back to work and really provide for my family. I was in an abusive relationship and I was trying to get out.  A peer who has been an impacted individual themselves is the person that is going in and speaking to the injured person. After they connect with the individual, they work closely with our case managers and social workers to conduct an intake, develop an individualized service plan, and get them the supports that they need so that if what they need is educational opportunities, we can do that for them. If what they need is job training and placement, we can do that for them. If what they need is transportation services, we can do that for them. If what they need are mental health and substance use disorder services, we can certainly do that for them and it makes a world of difference. We can make these connections with you so that you can follow through to really change the outcome.   So there's no judgment. It's just let me try to help you where I can. So we do what we can. Project Heal helped change my life by just being there and I just felt like I would have went a different route. They helped me grow as a person. They're not scared to help you and everything you say to them is confidential. Unfortunately, in this area, being stuck is a life sentence. Project Heal takes these people by the hand and do our best to try to get them out of that black hole. Over 40% of individuals who suffer a violent injury return to the hospital with another violent injury within five years. Up to 20% are dead of another violent injury within five years and so it's as stark a reminder as they come that there are cycles of violence and we ought to be doing something to break them. Any improvement, any ounce of help is worth it. You know, if you see one person doing well, I'm proud of that. I want to be the drive trucks. I want to own my own business. They looked into it until they're in the school. Violence is often cyclical and so if we could break that cycle, we could prevent future admissions, future harm. This not only makes clinical sense, it makes common sense.


Scottish Fold Cat vs Maine Coon Cat. What are the differences between these two cat breeds? There is nothing as Scottish Fold named for their folded ears likes better than to be with their people, participating in whatever they are doing. Scottish Folds come from Scotland, and they can all trace their ancestry back to a barn cat named Susie who had folded ears and worked as a mouser. The Maine Coon is a native New Englander, hailing from Maine, where they were popular mousers, farm cats, and most likely ships cats, at least as far back as the early 19th century. With the way their small ears fit like a cap over their rounded head, the Scottish Fold is often described as resembling an owl. The ears range in appearance from a single fold, bent forward about halfway up the ear, to a double fold, somewhat tighter, and the triple fold, lying tight to the head, which is desirable for showcats. kittens are born with straight ears, which may or may not fold when they are about three weeks old. Wide open eyes gaze out at the world with a sweet expression. The medium-sized body is also rounded, completed by a medium to long tail that sometimes ends in a rounded tip. A short-haired fold has a dense, plush coat with a soft texture. The long-haired variety has medium long to long fur with bridges, longer fur on the upper thighs, toe tufts, a plume tail, and tufts of fur on the ears. They may also have a rough around the neck. The Scottish Fold comes in a number of colors and patterns, including solid, tabby, tabby in white, bicolor, and particolor. I color depends on coat color. For instance, white and bicolor cats can have blue eyes or odd eyes, where each eye is a different color. A Maine Coon is a big, rugged cat with a smooth, shaggy coat who looks as if they could put in a full-day mousing on a farm in all weather conditions. Indeed, they were built for just such work in the harsh Maine climate, and their breed standard reflects their heritage, calling for a medium-sized to large cat with a well-proportioned body that is muscular and broad-chested. A Maine Coon has substantial, medium-length legs and large, round paws, well-toughed with fur, to serve as snowshoes during winter. A heavy coat is shorter on the shoulders, longer on the stomach and bridges, long fur on the upper hind legs, with a rough in front and a long, furry tail waving a greeting. A medium-width head is slightly longer than it is wide and has a squarish muzzle. Large, well-toughed ears are wide at the base, tapering to a point, and large, expressive eyes are green, bold, greenish gold or copper. White or bicolored Maine Coons may have blue or odd eyes. The brown tabby pattern is so common in this breed that many people don't know Maine Coons can come in any other colors or patterns. They might be surprised to learn that Maine Coons are found in solid colors that include black, red or white, all tabby colors and patterns, bicolor such as blue and white or red and white, and patterns such as tortoise shell and calico. Hello. This video is sponsored by Beemix Pets. Are you looking for high-quality cat collars at an affordable cost? Check out BeemixPets.com. Use coupon code Kittenlife to get 20% off. After their ears, the first thing you will notice about a Scottish fold is their habit of posing in odd positions, flat out on the floor like a little frog, sitting up for all the world as if they were a meerkat on a nature program, or lying on their back, paws up in the air. And although you might assume that their ears are less mobile than those of other cats, such as not the case. Scottish Folds use those ears to communicate quite effectively, adding comments in a quiet, chirpy voice when necessary. This is a smart, moderately active cat. The Scottish Fold enjoys teaser toys that test their agility and puzzle toys that challenge their intelligence. Their favorite activities include anything that involves human interaction. There is nothing as Scottish Fold likes better than to be with their people, participating in whatever they are doing.  The last thing they want is to be left alone for hours on end, so they're not the best choice unless someone is home during the day or you can give them the company of another cat. Rest assured, however, that they will expect you to play with them when you get home from work or school or at least sit down so they can get in a little lap time or curl up next to you while you watch television. The good-natured and affable Maine Coon adapts well to many lifestyles and personalities. They like being with people and have the habit of following them around, but they aren't needy. They're happy to receive attention when you direct it their way, but if you're busy, they're satisfied to just supervise your doings. Close a door on them and they will wait patiently for you to realize the error of your ways and let them in. They're not typically a lap cat, but they do like to be near you. They also retain their skill as a mouser. No rodents will be safe in a home where a Maine Coon resides. Even if you don't have any mice for them to chase, they'll keep their skills sharp by chasing toys and grabbing them with their big paws.  They can climb as well as any cat but usually prefer to stay on ground level. That's where their work is, after all. They're also very smart and will happily learn tricks or play with puzzle toys that challenge their brain. Maine Coons usually enjoy a kittenish love of a play well into adulthood. Males, especially, are prone to silly behavior. Females are more dignified, but they aren't above a good game of chase. Not especially vocal, they make any requests in a soft chirp or trill. Come the Scottish Folds coat weekly to remove dead hair and distribute skin oils. A long-haired fold may need to be groomed a couple of times a week to ensure that tangles don't develop. Despite the length of the Maine Coons coat, it has a silky texture that doesn't melt easily, if you groom it regularly. It is easily cared for with twice-weekly combing to remove dead hair and distribute skin oils. Useful grooming tools include a stainless steel comb for removing tangles and what's called a grooming rake to pull out dead undercoat, which is what causes tangles when it's not removed. Use it gently, especially in the stomach area and on the tail. Maine Coons are patient, but they don't like having their hair pulled any more than you do. Check the tail for bits of poop stuck to the fur and clean it off with a baby wipe. They the Maine Coon is needed, which can range from every few weeks to every few months. If their coat feels greasy or their fur looks stringy, they need a bath. Brush the teeth to prevent periodontal disease. Daily dental hygiene is best, but weekly brushing is better than nothing. Trim the nails every couple of weeks. Wipe the corners of the eyes with a soft, damp cloth to remove any discharge. Use a separate area of the cloth for each eye so you don't run the risk of spreading any infection. Check the ears weekly, especially if they are tightly folded. If they look dirty, wipe them out with a cotton ball or soft, damp cloth moistened with a 50 to 50 mixture of cider vinegar and warm water. Avoid using cotton swabs, which can damage the interior of the ear. Keep their litter box spotlessly clean. Cats are very particular about bathroom hygiene, and a clean litter box will help to keep the coat clean, as well. It's a good idea to keep them as an indoor-only cat to protect them from diseases spread by other cats, attacks by dogs or coyotes, and the other dangers that face cats who go outdoors, such as being hit by a car. Cats who go outdoors also run the risk of being stolen by someone who would like to have such a beautiful cat without paying for it. The friendly, laid-back Scottish fold in Maine Coon is a perfect choice for families with children and cat-friendly dogs. They love the attention they receive from children who treat them politely and with respect, and they don't mind playing dress-up or going for a ride in a baby buggy. They're happy to live with cat-friendly dogs, too, thanks to their amiable disposition. Introduce pets slowly and in controlled circumstances to ensure that they learn to get along together. If you enjoyed this video, kindly press the like button. Also don't forget to subscribe with notifications on, so that you don't miss out on videos like this. Thank you for watching.