Live from Atlanta, Georgia, it's theCUBE, covering Citrix Synergy Atlanta 2019. Brought to you by Citrix. Welcome back to theCUBE. Lisa Martin with Keith Townsend, day two of theCUBE's coverage of Citrix Synergy 2019. We're having a great time here in Atlanta, Georgia, and we have one of our CUBE alumni back with us, Calvin Chu, Vice President of Product Marketing at Citrix. Calvin, thank you for joining us on theCUBE. Thank you so much, it's great to be here. We have had a great action-packed day yesterday, half-day today or so. What you guys announced yesterday with respect to the digital workspace, the intelligent experience, is really resonating with the audience here. People are excited about it, because we get it. We're all workers, employees of whether it's our own companies, or a company like Citrix, and we just need things to work. Yeah, no matter what, as much as anybody loves their job, it could always be better, right? It could always be things that are more streamlined, or everybody talks about the red tape, or the bureaucracy that they get to get through, and more and more, we're just building red tape and bureaucracy into our systems and into our enterprise applications, and now we start to blame the technology, and it's not really the technology, it's just that we're not thinking about what it takes to get through someone's daily work, right? And how we get some of that noise out of their way and just make it a more streamlined. Some of the stats that David Henshall shared were shocking that companies spend seven trillion waste, seven trillion dollars a year on lost output, because employees are having to, before they even get to their actual function, you're a marketer. All of the different tasks that you have that are bombarding you and distracting you is a massive amount of money that companies are wasting every year. I love the line that he used also. Basically, we're taking knowledge workers and turning them into task workers, and then I think the other part is we take task workers who are supposed to be focused on specific tasks and they can focus on the wrong tasks, right? So there's just a lot of opportunity for people to be either giving them time to be more productive, doing the things that they normally would do, or time, I think, in a lot of organizations today to be more innovative and be creative, because that, certainly we know from psychological studies, that takes concerted blocks of time. That takes thoughtfulness, that takes non-distraction, but that's why there's all these practices about mindfulness and things like that now. How can you find time to be mindful if every two minutes you're getting a disruption somewhere, right, so? So Calvin, you sit in a unique position. One, you've been at Citrix for almost 15 years, and then you're over the security products. So when you look at solving this $7 trillion problem, this one-fifth of our work we've going to do with rudimentary tags, that involves automation. When, as a security guy, every time I present some type of automation, process automation tool to someone, oh, you don't have to sign into Salesforce directly, there'll be some back-end system. As you talk to your long-term customers that might be a little bit apprehensive and looking at this kind of cloud way of doing legacy technologies, what are some of the insights and how do you help pull those customers along? First, just before anyone says anything, I'm not a security guy per se. I know the security value problem in my business, I know what we do, but I know a lot of security professionals would be like, I know Calvin, he's not a security guy. But I would say, for those organizations, particularly for the ones that have been with Citrix for a long time, don't try to solve all $7 trillion of problems at once, right? Take it one step at a time. Build some trust in one area. I like what a lot of our customers have started to do and we're starting to plan with them on their first potential implementations of intelligent experience in the workspace. And that is say, take something that's just really painful, something that gets done a lot, and just solve that one thing. Build one micro app for it. See how that gets adoption, learn from it. This is part of the reason we built analytics and telemetry into all our products so you can start to measure the utilization of it. Are we really achieving the productivity gains that we thought with that one task? And then go from there, right? Just earn that trust on that one action, that one process or workflow. And then, sooner or later, then the business will start to tell IT which things they need to optimize. They'll say, okay, that worked great. Here's the next one I want you to do for me. And then it just becomes a matter of sort of prioritizing them. So taking those baby steps, getting started somewhere. I think we see a lot of, you know, paralysis by analysis of just trying to solve too much of a problem all at once. So as the VP of product marketing, you talk with customers a lot. What's been some of the feedback from some of the beta customers who are in there getting their hands dirty and playing with intelligent experience? What's some of the feedback that these customers are sharing with you, but also how involved were they in saying Citrix, this is where you need to take digital workspace? Yeah, so the second part of it first, I mean, in everything from the UI, the interface design process, as well as in sort of architectural review, we've had customers in along the way. And so it's been interesting to watch them.  We had them do it the old way and then we had them do it the new way. And we were just basically time trials, right? Trying to figure out what kind of productivity savings. And so we invite some real end users and customers and things in to do that. And so they're definitely very influential in that whole process and in giving us information about what's working and what's not working. The thing I would say is what's getting them really excited is that they see that there's alignment with the line of business. And so we typically, most of our executive briefings are with the IT part of the house. And when you talk to them about what the possibilities are, then their eyes light up because they know, hey, this is what my line of business has been asking for. This is how I can engage with them. This looks like a meaty project where at the end of the day, we get this all done right. Everybody's pats each other on the back and says, okay, now we know what we need to go do next. And I think sometimes IT projects get sort of lost and just the procurement and they sort of rack them and stack them and they're thinking about it and those terms of project lines, not, what is the business person trying to do at the end of the day? How do we integrate with that? How do we help that move along and improve that process? So, Calvin, talk to us about the foundation. As a long time Citrix customer, you come to this show and it's changed. Used to be day one, we talk about products, speeds, feeds. Yesterday it was all about solutions. Like, okay, we're solving this $7 trillion problem, we're increasing productivity. We, you know, the intelligent experience is the future. But tie the foundation. Like, how do we get from traditional Citrix products into this intelligent experience? Where's the connection? Yeah, so at the core of it, I think it's all about sort of what we've been doing for generations really is about trying to get applications out to people. And so really all we're doing is we're adding to the variety of applications that we're delivering. It's no longer just Windows virtualization, which has been a huge part of our history, but now it's extending out into SaaS applications and into mobile applications. Along the way, I think what we also realized in the past year or so is that, you know, if we're powering the future of work, work is not done by applications. Work gets accomplished by actions, right? And so can we extract actions out of applications and then we have a fast path to getting work done? Anytime that we, what we're starting to realize now is that anytime we send somebody into an application to get to an action, to get work done, then we've already moved them, you know, a couple of steps away, and anytime they have to go to one application to go to another application to go to another application to get to an action, right? Then we've already wasted a lot of time and that sort of realization is really helpless along the way. And then I think your point about, you know, presenting solutions is a really good one in the sense that that same journey made us realize, well, we had a networking business and we had sort of an end user computing business, but more and more, you can't get to the end using computing components without some networking in between. So there's just this interconnected mesh of I have an action, I want to connect to another action. There's always some kind of connectivity, some kind of network that has to happen. All these things need to work in concert and if those things are working in concert, then you have this amazing opportunity to collect data and get analytics and insights and, you know, apply some machine learning against it. And so it's that that kind of led us to say, let's start talking more about solutions because, you know, people aren't going to get if we try to explain this whole daisy chain of events. Let's just talk about what the outcome is and what we want to achieve. People like that, right? We're kind of outcome oriented by nature and speaking of outcomes, I couldn't help but think yesterday when you guys were showing that great demo David showed during his keynote of the marketing manager and the bombardment that happens when that person in the line of business comes in and has, you know, five or seven different apps to interact with, go to the app as you were kind of describing that, what can be a complicated process of then having to take an action and being able to use intelligence and machine learning to surface, Lisa's a marketing manager, this is how she engages with Workday and with Salesforce, so bringing that to the surface based on the data analysis and the insight. I can't help but think another business outcome that we haven't really talked about yet is increased adoption of those SaaS web and mobile apps that the business is investing in. As we all know, if you're spending money on applications like that and they're not being effectively utilized by your entire company or all the people that need to use it, it's not going to work very well. So I'm kind of even thinking from a product marketing perspective, that's got to be one of the benefits is actually fine-tuning even the cost optimization of some of those apps that you guys can now bring that right to the user based on what you know they need. Yeah, yeah, I think there's a couple of important points there that you mentioned. One is bringing the apps to the user, right? So they're not, or the actions. The actions, yes, thank you. So instead of them going to multiple places to get them, they're all just kind of coming to them in one feed. The other is from the adoption perspective, I think there's a lot of opportunity not just to improve the adoption but also to improve the satisfaction with the usage that's happening there. And anytime somebody talks to me about adoption now, I think about this one customer briefing that I had where there was a very unique titled person. They were director of end user experience, not director of end user computing. They were director of the experience. And their job was, you know, you're saying we're in charge of the adoption and the satisfaction, overall experience with it. And I said, oh, well, so by adoption, are you just creating mandates or policies or saying, hey, you will use this application, not these other four options that you found online, just doing a search. I said, no, because that doesn't lead to good experience. So our NPS scores, so he's rated more on NPS scores than anything else, our NPS scores go down, even if we can drive adoption up, that the NPS scores go down, that's a failure for us. So it's not just, because you can get adoption by forcing people to use something and they hate it, and then you sort of know better off from an employee engagement perspective. Just kind of goes to show how essential the employee experience is to customer experience and customer satisfaction. Employees touch and any function, some level, we're all engaging with our employer's customers. And if there's dissatisfaction going on within the employee, it has a very good chance of making it to the customer. And customers these days, if any product or service, we have choice. Customer churn is something that all marketers aim to eliminate and prevent, but we know we have choice. So I thought you guys did a great job yesterday of really elevating the employee experience to a business critical imperative. I don't even want to say it's a C-suite topic of discussion. It seems to be an absolute imperative because to your point, you can by forcing function make your teams use certain software applications, but if an internal NPS goes down, so does an external NPS or the risk thereof. And so you guys did a great job of tying those two together as really, this is something that every business needs to be laser focused on as that employee experience. Yeah, well, the other thing to think about is a lot of these systems are not necessarily part of their primary function of their job, right? So, you know, unless you're in HR, you're not there to use the HRIS system all day long. And so you just got to get them to the point so that they can do the things they need to do as an employee for legal or financial reasons and then just get them out of the way and let them go on and feel productive, feel like they're contributing to the actual outcomes of the company that goes a long way towards that experience and engagement. Absolutely. So let's peek a little bit into the future. You know, it's funny that we're talking post-digital transformation as most people are still going into digital transformation, but customer experience, employee experience are the output of digital transformation. You get data from your digital transformation. You guys are doing a great job of providing analytics. Let's talk about the importance of those analytics as we go beyond employee experience, digital transformation and customer experience. When we removed one bottleneck, you know, when I first got my first iPhone, it was awesome until the next iPhone came out. And then the next one and the next and my level of expectation changes. So what was good seven years ago is not unacceptable today. As you guys help customers innovate and you collect data, what types of X data, experience data will you continue to collect? So even when the employee experience rises, that bar again rises and you help customers meet that bar. How important analytics to that? Yeah, so the whole analytics platform is, I mean, I could foresee a day where people almost buy the workspace or buy our networking solutions to get to the analytics that they want, right? Because we are in a unique situation where we have information about who the end user is, what device they're using, what files they're accessing, what networks they're going over, what servers are touching, what clouds they're using. And all of this stuff that it's very rare in the industry that all those kinds of things come together in one place. So I think for one, the great thing about the purpose of gathering those analytics is for the machine learning. So the machine learning never stops learning. As the end users continue to use it over time, it just keeps getting better and better and better. It understands their behaviors, it understands their patterns. And so that sort of the longevity is actually what helps it transform with the end user, as long as we're just continuing to provide those sorts of capabilities. I think also the analytics, particularly in the area of engaging and engagement and productivity, we go back to the idea of breaking down applications into actions, into micro-apps. I think once you start to see what micro-apps people use and what micro-apps people use in concert with each other or in sequence, that also has an interesting analytic behavioral benefit to it, right? You can see what workflows are developing, whether organically or inorganically, or whether there are things, patterns that you should take advantage of or patterns that you should stop. And those analytics then start to evolve in a way that we're getting at very granular pieces or granular units of work. And then we can start to see how those impact the business outcomes. So as long as we keep thinking about not just how analytics apply to one piece of software and the experience with that software, but start to think now, what is the daisy chain of micro-apps? What is the experience of work and the interconnectedness of that? The analytics just become more and more important in bringing that together, because you can't do that mentally as a human being. You need some of that help from the machine learning. So Calvin, last question for you. Lots of folks here, over 6,000. The keynotes, yesterday and this morning, were standing room only. We heard record numbers watching the live stream. Intelligent experience, not GA yet. We mentioned there's some customers in beta. That was the most popular demo here in the Solutions Expo, long line yesterday. Got to ask you as a VP of product marketing, what are some of the feedback that you've gotten from customers here since that breaking news yesterday morning? Number one is, can I get it now? Because they didn't pay attention to that. Of course, right? So can I get it now? The other one I think is really great discussion because they see it, they see the end vision of it. It's kind of like the cooking shows.  How do I make it? How do I get there? And so that's been the nature of a lot of those conversations. We're also holding executive briefings here a lot and what I've been hearing from all the teams is, we'll start kicking off into a presentation. We'll say, okay, so let me recap what you saw. And they're like, no, no, no, no. I like what I saw. Tell me how we're going to do it. What does it look like? You get right into that conversation of execution and planning and who do I need to get on board? Who do I need to talk to? Do I bring in my CHRO? You know, that kind of stuff. It's been that kind of reaction. It's exactly what we're hoping for. So, and I'll sink one more question in because you've been at Citrix for 15 years, but looking at the employee experiences as horizontal across, not just IT's issue to make sure things are connected. It's HR, it's people officer, it's marketing, it's sales. Have you seen a big change in how Citrix is going to market? Not just talking to the IT folks, but people saying, who do I need to engage in my business to get on board with this direction? Yeah, definitely. I mean, I don't want to overstate it in that we're in front of, we're not a consumer name yet. But in the past several months, the audiences that we've been talking to, it's not uncommon that we'll have a briefing with a CIO and the next time we talk, the CHRO is in there with them, somebody else from the line of business, the Chief Revenue Officers, and they're starting to bring people in that we've never met with before. And I think that's good for the CIO too. It says, I'm investing in this business, I understand what our business is, and I found a way to help you. And let's talk about how to do it. Exciting times, never a dull moment. Well, Kevin, thank you so much for joining Keith and me on theCUBE this afternoon at Synergy. We've heard so many exciting things, talking a couple more of your innovation award nominees this afternoon. Really great stuff. It's a really good flock this year of the Innovation Award final. Outstanding. I love how you guys do the voting too, that it's some of the public gets a chance to vote as well as some of the experts. I thought that was very cool. American Idol style. Exactly. Well, Kevin, thank you. It's been a pleasure to talk to you. For Keith Townsend, I'm Lisa Martin. You're watching theCUBE live from Citrix Synergy 2019. Thanks for watching.


Shhh, do you mind? What are you doing here? What's that? You know what? You have, you have an attitude. A pinch? How did you know?  Oh wow, this guy's beautiful. Yeah. He seems a little big for her, no? I mean, but they might like that, you know, the macho guy. I know a lot of girls go for little guys, but some girls go for guys like Tina's son. Vinnie, did you see the finch that I got? I got the finch set. Yeah? Let's set up the finch cage real quick. So guys, this is a quick set up. As you guys know, I'm a big fan of the natural purches that are not perfectly straight so that your bird can have all different variations of sizes so that your bird, but it's more orthopedic for your bird. Imagine if he's just sitting like this everywhere in the cage. Different sizes here. We sell these on our site at parentstations.com. I love the weird ones. There's no guarantee which shape it will be. They're natural, so it's whatever we have in stock. I'm pretty impressed that we have some that are small enough for finches. Who's this? This is my baby Branto. For those of you that might not know how to set up a perch, go over that real quick. You keep this washer on this side and you'll put the bar of the cage in between. Reason being, because it could go through. So let's just choose some spots for it. We need access to the food and water. Well, the finch is very small so the finch can kind of just go sit on the water thing. I think right now this is kind of a good spot. It's hard to tell. Once you set them up, you kind of start knowing what's in the way. This is less of an official cage set up and just kind of a temporary solution. I actually thought for some reason that three perches would take up the whole cage, but now that I put it in this cage is a lot bigger than I thought. So you guys saw what I did there. One washer is on one side, the bar would be jealous of. Try to have a variation of heights so that your bird can be high, be low, however your bird wants to be. But make sure you don't put so many perches in there that your bird can't fly around, especially with the little birds. This is kind of a cool idea because it leaves a lot of open space right here. Righty, tidy, lefty, loosey. Why do I have long nails? By the way, guys, my nails are in honor of my new glitter Vinny gang hoodies and shirts. So Vinny's pink, Vinny's beak, which is yellow on the hoodie, glitter and the black hoodie. You guys check those out on hairstation.com as well. What are you mad at? Listen, I can't tell what righty, tidy and lefty loosey is here. Generally, I would put a perch for food, but these bowls are kind of the bowls and finches are so small that they can just step on them. They don't need an added perch or they feed too. Why are you on me? To come torture me? Like why are you here? You need to go to bed, you're overtired, you know that? Side note, if your bird is experiencing hormones, I don't know if this has ever been said, I don't know if I have said it. There's a lot of things you can do to help them and ease them through this situation. And there is a lot of things, so there's things you could do for the bird and there's things you could do for yourself. However, don't blame yourself if they're still behaving like this. They're going through something, it's natural. They're birds.  It's part of the bird's nature.   Just understand what your bird is going through and be more lenient with that. Don't take things personally with birds, you know? I know she's biting, I'm just going to adjust myself that I don't feel it by, you know, covering my finger real quick. There are other reasons you may be quarantining a bird besides for the fact that you brought one into your house to keep. You may have found a bird outside, you may have found a bird that is lost, you may be in the middle of a rescue, fostering, I have no idea. There's lots of reasons why you may have a bird suddenly and you may not be ready for a bird.  These are the bowls that fit in the cage. I have filled this with filtered water, but sometimes this happens, I mean, maybe I'm not the only one, but this happens. When you're bringing out a cage in an emergency situation for a bird that you weren't planning on having or helping, you can't find the bowls and you can't find pieces just like we had to put the purchase in the cage. It's always good to have little things like these on hand. I like to keep them just as like fruit bowls for my birds. They come in many different sizes. I actually buy a pack that they all fit in each other. And then you always have quick things that you can add on to the cages. We're gonna put the Finchy food in here. There's a lot of different components to what to have to take care of a Finch. We'll go over that in a different video. This is just kind of us getting them sorted. Pre-mixed, a little bit of some egg protein and some Finch seed, but some other things that we're going to add to Finchy's cage are going to be some charcoal, which we'll put in a separate bowl that is actually for all the Finches.  The charcoal kind of goes through your system, collects all the toxins and just, you know, streets it. So we're gonna put some of that in a separate bowl. So another thing that we're going to add, I actually have it on special order is basically a type of grid that's small enough for Finches. And I want me to have someone come in and do a really good informational Finch video for you that not only you guys, but also I can benefit from as well. I don't know, that looks good, no. You wanna make sure that it's not close enough in a situation where if the Finch wants to stand on it that they would also be going potty on the perch. Be aware of those kind of things. So you know what, you have an attitude. I'm adding a swing. This might be, it's definitely small enough for a Finch, but you could probably get a smaller swing for a Finch. We'll check it out just because this perch is a little big, but definitely, you know, he's actually kind of one of a bigger Finch than the one that I have. So I just wanna create some activity. And what's cool about this beautiful toy, which you can get at ParrotStation.com, is that our new Finch cannot really destroy it.  So stay beautiful and pretty in here. We'll try it out. Another thing to be aware of is the length of your bird's nails. Right now, you'll notice I have these paper towels on top, but if you start noticing that your bird's nails are too long or they're getting caught in it, remember the rule of thumb, always, always change it immediately. If it happened once, it's gonna happen again and it's gonna happen worse and Brando is behind you, trying to torture you. This is so useful, actually. This is a really quick, small water bottle that's really easy to add to travel cages because the water's not bouncing all around. Since the bird's been using it, I'm going to keep it. You know, he's used to it. I'm not sure if the Finchy seeds are the same exact brand. So I'm going to add these to that mix. When a bird gets used to eating something, you don't wanna just switch it up immediately. So our new Finch now has his quarantine cage set up and now it's gonna be so much fun to learn and observe a little bit about this Finch. So stay tuned, don't forget to like this video, leave me a comment, say hello, let me know who you are because I love knowing you guys and believe it or not, I start remembering you guys from the comments and even if I don't respond, I read them.


The western United States experienced unprecedentedly fast melting of snow in April 2021 due to a combination of strong upper atmospheric ridges, near-surface conditions conducive to rapid snow loss, and two heat waves. These conditions were exacerbated by the presence of a La Nina pattern in the Pacific Ocean and in eastward propagating an intensifying Madangilean oscillation. As a result, many areas experienced severe snow drought conditions, with some locations experiencing record low snow levels. This article was offered by Daniel James Cavoy and Benjamin J. Hatchett.


Hey man, what are you hacking my phone for? No I didn't, you just didn't have it locked. No well it was locked but there was no password on it. But no it's not hacking, it's just you didn't have a, well take it. How do you hack it? How? Why? You didn't have a password on it, no. So how's that hacking? I think you're getting it confused with your inability to put a password on it with my ability to hack something that isn't enough. I can't believe it. I want to tell everybody about you and your wicked ways man. All you hackers are the same.


Welcome to the Endless Knot, Tiki Bar. Today we're serving up my ties. When you hear Tiki Bar you may think of Hawaiian shirts, tiki torches, grass skirts, and legs. And you wouldn't be wrong, but as always there's more to the story. The word tiki itself comes from Māori with related forms in a number of other Polynesian languages. The Polynesian language family, a subset of the large Austronesian language family, is a group of some 40 related languages spoken in the scattered islands of the Central and South Pacific, including Māori, Tahitian, and Hawaiian. Owing to their relatively recent spread, the languages still show fairly strong resemblances with similar sounds and much related vocabulary. In Māori, tiki is the name of the first created man, or the creator of the first man. Polynesian mythology is complex and varied, with numerous different deities known by many different names, reflecting the wide diversity of cultures covered by the term Polynesian. In Māori culture in particular, tiki is often said to have been formed either by the war god II or the forest god Kāne, out of red clay or a mixture of blood and clay. In some versions of the story, tiki seizes reflection in a pool, and being unable to touch this companion covers the pool with earth, which then produces a woman. The first sexual act follows, so tiki is often associated with procreation or fertility. The word tiki also refers to a large wooden carving of a human figure, which has religious significance or marks sacred locations. Thus, the word tiki and its Polynesian cognates generally mean image or figurine. Tiki culture in the U.S. had its origin in the 1930s. In 1933, Texas-born Ernest Gant opened a restaurant in Hollywood called Don's Beach Comer Cafe, the first tiki bar. Gant had traveled around the Pacific, then ended up in Southern California doing odd jobs in the film and restaurant industries, and even a little bootlegging during prohibition. But things turned around for Gant after he opened his own restaurant, with South Pacific-inspired decor, Chinese-American cuisine, and rum-based cocktails, mostly because rum was one of the cheapest spirits at the time. Soon renamed as Don the Beach Comer, it became trendy drawing some of the Hollywood elite, and while Gant was deployed in World War II, his soon-to-be ex-wife, Sunny Sun, continued the success of the chain of restaurants and expanded into 16 locations. Oh, and after years of everyone assuming it was his name, Gant eventually legally changed his name to Don the Beach. Don the Beach Comer also inspired competition. In 1934, Vic Bergeron, born in California to a French-Canadian father, opened a restaurant named Hinky Dinks in Oakland. But after visiting Don the Beach Comer's bar, he changed the decor and menu to a Polynesian-inspired style and renamed it Trader Vicks, inventing a whole new persona of a South Pacific traveler for himself. Bergeron's chain of restaurants also went on to be quite successful in the tiki craze of the 1950s and still exist today. And it's possibly through Trader Vicks that the word tiki started being used for this mid-century pop culture trend. To tell that story, I have to go all the way back to the 19th century and the World's Fair. The First World's Fair, London's Great Exhibition, organized by Prince Albert in 1851, kicked off the practice of these grand celebrations of industrial progress. Its featured attraction, the Crystal Palace, is the perfect reflection of Victorian notions of industrial progress and Britain's paramount world influence. Later, as the United States' star was rising at the end of the 19th century, the 1893 Fair marked American ascendancy and the growing sense of American exceptionalism. This fair, held in Chicago, also celebrated the anniversary of Columbus' arrival in the New World and was dubbed the World's Columbian Exhibition, so its aspects of colonialism and imperialism are fairly obvious. The 1893 Fair featured native villages, recreations of the living conditions of so-called primitive peoples from around the world, including actual inhabitants, part of a widespread and truly awful 19th-century fashion for human zoos. As a sort of sideline to the Chicago Fair, an MHD Young organized the 1894 California mid-winter international exposition in Golden Gate Park with its own exotic displays, and among the exhibits were some Maori tiki carvings. After the fair was over, they didn't go back to New Zealand, but continued to be held in the Palace of Fine Arts Building, which became the MHD Young Memorial Museum, where they still are today. At some point years later, Trader Vic's restaurant started using the image of one of these carvings on the restaurant's menu, which helped establish the style, look, and name of the tiki bar craze. Vic and Beach were friendly rivals throughout the tiki craze, but one ongoing argument between them was who invented the quintessential tiki drink, the Mai Tai. The Mai Tai started out as a cocktail that features its main ingredient, rum, and also typically contains curacao, Borjat syrup made from almonds, and lime. Don the Beachcomber invented a drink he called a Mai Tai Swizzle in 1933, but that recipe is actually quite different from Trader Vic's Mai Tai recipe invented in 1944. The Mai Tai, which means good, is from Tahitian and has related forms in a variety of Polynesian languages. The story that Trader Vic told is that some Tahitian friends were visiting his restaurant and he mixed up the drink for them. After sipping it, one of them immediately called out Mai Tai Roa Ai, which Vic translated as, out of this world, the best. And so that's what he named the drink. Although the Mai Tai has a Tahitian name, none of the ingredients are in any way Polynesian. Rum comes from the Caribbean and is made from the byproducts of the sugar cane refining process. The name is something of a linguistic mystery, perhaps from an English slang word meaning good, excellent, high quality, or odd, which itself may come from a Romani word, or it might come from the Malay word for a rice spirit, or from a Dutch word for a type of large cup, or it might be from the last syllable of the Latin word for sugar, saccharum. Borjat, a European product, comes through French from the Latin word hordeum, meaning barley, which it used to contain, ultimately from a proto-Indo-European root that meant to bristle. And Curacao is named after the Caribbean island it hails from, which name itself comes from the Portuguese word either for heart, or cure, or from a now lost Indigenous word. So the drink really is emblematic of Tiki culture, being a blend of many cultures topped by a decorative element taken from the South Pacific, in this case, the name. Though the Mai Tai can be considered the signature Tiki drink, perhaps the second most famous is the zombie, a very potent and complex concoction of several different rums, syrups, juices, and bitters, created by Don the Beachcomber, according to legend, to cure the hangover of one of his customers. When it was so strong, it left him feeling like the dead. It was always sold with a two-drink limit, perhaps more for clever marketing purposes, though supposedly this was the last drink Howard Hughes had at Don's bar the night he hit a pedestrian on his drive home. Though the name does have a tropical flair, it certainly isn't connected with the South Pacific, coming instead from Haitian folklore originally referring to a snake god and later to a reanimated corpse, and ultimately derived from a West African word meaning god or fetish. However, the zombie cocktail does have an important role in the history of the Tiki craze. Monty Prozer, a nightclub owner with mob connections, also known for the Copa Cabana, yes, that Copa Cabana, and a press agent who counted Walt Disney among his clients, opened the hurricane bar at the 1939 New York World's Fair and sold zombie cocktails, claiming them as his own invention. They became a smash hit, increasing the popularity of the Tiki phenomenon. And what's more, as with the 1893 World's Fair, there was a concurrent West Coast Fair in 1939, the Golden Gate International Exposition, which was specifically themed to celebrate the cultures of the Pacific, and featured a 25 meter tall statue called Pacifica, a symbolic goddess of the Pacific. Over the first half of the 20th century, we can see the world's fairs gradually moving from industrial triumphalism to cultural fetishization and appropriation to genuine attempts at intercultural communication. And this Golden Gate Fair did much to introduce the growing Tiki culture, as well as actual Polynesian culture more broadly, to mainstream American society. Out of its start in the restaurant industry, Tiki culture spread to other areas of 40s and 50s America. Tiki torches that were originally used to decorate the Tiki bars and the Tiki mugs in which tropical Tiki drinks were served have become iconic. And the Hawaiian or Aloha shirt, which has its origins in 1930s Hawaii, became very popular in the U.S. and the US post it in the Pacific and Asia during World War II brought them home. In fact, these returning Americans had a lot to do with the explosion of Tiki culture in the 1940s and 50s, as did the incorporation of Hawaii as the 50th state in 1959. But the craze was also a reaction against the modernization and the industrialization of the post-war era, with the fantasy of an idealized, primitive simplicity, a tropical paradise without the rigid rules of 50s morality and society. And today's the Maori story of Tiki makes a good metaphor here. Americans looked towards the fantasy of the South Pacific life, but being unable to reach it, instead made a copy of it for themselves, reflecting their own culture more than the Polynesian reality. The Polynesian aesthetic made its way into music as well, in the form of Exotica, a subset of the popular lounge music of the 1950s. Classically trained composer Les Baxter kicked off the genre with his 1952 album Le Sacre du Sauvage, which combined jazz forms and tribal rhythms in orchestral arrangements that were meant to evoke the exotic Polynesian world. A few years later, Martin Denny had a hit with a cover of one of Baxter's songs, and popularized the vibraphone heavy sounds of the new genre which took its name from his 1957 album Exotica. He even performed for a while at Don the Beachcomber's Hawaii Tiki Bar. Also worth mentioning is the Japanese-American composer Takshindo, who after his time in an internment camp in World War II, explored the fusion of Japanese and Western musical traditions, including some Asian-influenced Exotica music. The original Tiki craze was actually quite short-lived with its mainstream popularity lasting only from the late 40s to the early 60s, when the counter-cultural movements of the hippies and the growing awareness of the problems of American imperialism, colonial history, and cultural appropriation combined to make Tiki culture seem tacky, artificial, and even racist. But there have been several waves of Tiki revivals. For instance, in the 90s, Tiki culture became popular for its kitsch value as a fun retro fashion, and more recently there's been a movement among the craft cocktail set towards rediscovery and reverse-engineering the original Tiki drinks and new versions that reflect more modern tastes with new Tiki bars opening. One interesting instance of this recent revival is Tiki Bar TV which was one of the very first podcast web series launching in 2005, made by Canadians on an American cultural trend based on elements of South Pacific and Caribbean societies, it was a highly ironic and self-referential satire on both internet culture and the Tiki phenomenon and reflects a more post-modern, post-colonial engagement with pop culture. Though Tiki culture was never really a reflection of cultural diversity, perhaps its re-examination can be. So, Tiki culture is a pretty complicated history, but at its heart it's always been about a fantasy of escape from everyday life and food and tasty drinks. So I'll end today's video by making Tiki culture's most emblematic drink, the Mai Tai. Now the Mai Tai has changed a lot since those early Trader Vic years, most of the time these days the Mai Tai served in restaurants is filled with juice and fruit garnishes maybe an umbrella or two. But the original recipe was designed to showcase a good rum, so I'm going to try to go back to that. I can't get the rum Vic used, but I'm using a premium aged Jamaican rum that should be pretty good. Oh, and most recipes call for an old fashion glass, but I can't resist the chance to use a Tiki mug. Combine with ice in a shaker. Two ounces aged Jamaican rum. One ounce lime juice. Half an ounce oregano. Half an ounce orange curacao. Quarter ounce rich sugar syrup. Shake them straight into a glass filled with crushed ice and garnish with a sprig of fresh mint. Thanks for watching. If you've enjoyed these atomological explorations and cultural connections, please subscribe to this channel to help me make more videos. You can also sign up for email notifications of new videos in the description below. Leave a comment or question, or tweet at alliterative. You can also read more of my thoughts at my blog at alliterative.net


to the 24th lecture in the course design and engineering of computer systems. So this week we have been discussing a few high level details about the various layers in the network stack that comprises the internet. In this lecture we are going to study more details about the application layer. So let us get started. So the application layer is what all of us see and interact with when we use the internet you know when we use the worldwide web, browse websites, use an e-commerce website or video streaming or social media or anything all of these are user applications which are present in the application layer of the internet. And all these user applications exchange information with each other over the internet and this application software we have seen is built using APIs like the socket API which let us send and receive messages using the network. So the application layer is defined by a set of protocols which are nothing but rules by which the different components of the application understand each other. For example you know if you want to you know book a ticket then you will send a message with some information then that server will send you back a reply with some other information right. There has to be a certain format for all of these messages and you know the order in which these messages have to be exchanged what is in what order is information written into the packets all of that has to be decided so that the both sides can understand each other. So application layer protocol is like a language that the both sides speak in order to understand each other and you need a common agreement a common language to understand each other. So that is defined by application layer protocols and we have many protocols in use today The most popular one is HTTP or Hypertext Transfer Protocol. This is developed for the web to browse websites and of course many other applications today it was initially developed for the web but many other applications use it. Then you have the simple mail transfer protocol SMTP for email transfer and there are many such protocols in use today. So we will study some high level ideas about these protocols in this lecture. Note that the protocol only specifies how we should communicate it specifies the language but actually not what content is exchanged what data is exchanged in that language. So with HTTP you can exchange HTML webpages you can exchange images videos any such things ok. So let us not confuse between the protocol itself and the actual data being exchanged by the protocol. So what is HTTP? So HTTP is a protocol that helps web clients that is you know typically browsers to communicate with web servers you know websites that actually host content you know web pages or videos or you know the NPTEL website that you are accessing the YouTube website all of these are served by web servers and this content is served to web clients using HTTP. So this is one of the most widely used applications on the internet ok. So let us understand how HTTP works once again go back to our example of what happens when you access a web page. The user will give a certain URL. This URL is nothing but it has the domain name like nptel.ac.in and inside that domain you know your URL has other things also nptel.ac.in slash you know some courses some lectures something something it has the location of the content at that domain name also present in the URL. So the user will enter the URL in the browser then what will happen? Of course you have your server that is listening on a well known port 80 is the port that is used for HTTP or if it is secure HTTP then 443 whatever it is there on some port at this public IP address your server is listening to new connections and then your client will obtain the server's IP address via DNS and it will open a TCP connection to the server. So your server is there your client will do the connect system call or whatever and you know establish a connection to the HTTP server that is listening on port 80 at some IP address. Now the client will send an HTTP request it will tell the server please give me some information about this webpage or about this course or about this video whatever the client will request the server make an HTTP request and the server will send an HTTP response back. And all of these HTTP request HTTP response are just application layer messages that are sent say via you know TCP sockets and on top of that you know you have your HTTP request and then the TCP will add its headers IP will add its headers the layer 2 will add its headers all of that is happening ok but the actual message is an HTTP request. The format of this actual message is specified by the HTTP protocol and once you get some response back from the server then your browser will display you know whatever information is there in that HTTP response whatever HTML you know display the page like this all that information is there in your response and the browser will render that webpage in front of you so that you can see. This is a basic high level view of what happens when you browse a webpage and this data that is exchanged is in HTTP response whatever the server sends back can be actual web pages you know text like HTML based web pages it can also be images multimedia files you know on one web page you can actually have many different things you can have the HTML web page you can have some style files telling how this web page should be displayed you can have some embedded images videos all of that will be sent to you in the HTTP response. So this is the basics of HTTP now let us look at what is the HTTP request you know that the client sends to the server the HTTP request is the first step so HTTP is a request response communication the request is the first step. So the request can be used to get information the requests are multiple types you know it can be a get request you can it can be used to update information at the server for example if you are booking some train tickets you can post information to the server saying these are my dates and this is my route and you know this place I want to go to all of that you can post to the server. So your HTTP request can be get post and there are many such types like this and then you can specify the location the resource location I want to get information about you know this course or something or this product on an e-commerce website. So your get request will also contain some extra information about which resource you want to get and your HTTP request will also have various other HTTP has many header fields some extra information it adds to the message this is the main message get so and so information but you will also add you know what type is your browser what language do you prefer there all of these extra things also you will tell the server and all of this is sent in the application layer message in addition to this you might also have some even more content the body of your request might contain you know whatever value you want to post you have get put post all of these things and then you have some headers and you have some body all of this is your application layer message your HTTP request and for at what granularity do you make HTTP request if you have multiple objects in a web page you know you have the HTML text you have some image you have some video you have some other script files various other things in a web page all of that information cannot be fetched in one HTTP request okay every object on a web page is fetched via a separate HTTP get request so your browser will make one get request get the main page and inside that page whatever other things are there you have to make separate HTTP get request to get each of these separate items okay so an HTTP get request will only get you one item an HTTP post request will only update one item for you now these multiple HTTP get request what do you have to do you have to open separate sockets it is not necessary if you already have one socket open between a client and a server you can get one object after that you can get another object after that you can get another object so you can use what are called persistent connections over the same TCP connection you can first get one object then the other object then the other object one after the other instead of every time you know opening a separate TCP connection doing a TCP handshake connect accept you don't have to do that every time once you open a connection you can fetch multiple HTTP objects using separate HTTP request on the same TCP connection the other thing you can do is you can also open parallel connections to one web server you can open multiple TCP connections and on this get one object on this get one object on this get one object in parallel you can do this also for faster performance if your web page has 20 objects you can you know in parallel open four connections get sort of five objects each on each connection you can do that also so this is about HTTP request and next is HTTP response once the server you know accepts your TCP connection reads your HTTP request right we've seen a simple server socket program accept connection then read from the socket and now the client has sent an HTTP request on the socket then the server will generate an HTTP response back to the client this response can will have various things it will have a status code indicating okay could the server you know successfully handle your request or not this status code a common status code is 200 saying okay then there is a status code 404 saying you know you couldn't contact the server something right there are various status codes that are returned for you in your HTTP response then your response also has various header fields like you know what is the type of content you are sending some timestamp when was the content updated all of that also you will send and the actual content is also sent right you will send status code and various headers and then the actual content all of this so the HTTP protocol specifies how all of this should be put into a packet and sent out to the client and note that there are two ways of generating HTTP response either all of this you know whatever content you want to send this file the user has requested an image file say either the content can already exist at the server in which case it is a static response or the server may have to generate this content in for each request for example if the user has entered some search keywords on an e-commerce website then you know with those keywords you may not have a ready made file that you can send back to the client then the server will you know look up its database construct an HTTP response and then send it back to the client those are called dynamic responses. The one thing to remember about HTTP is that it is stateless that is request response after that that's it the server doesn't remember anything about the client you know it won't remember oh last week you made this request to me I sent you this response now I am sending you this response doesn't remember any such thing HTTP is fully stateless but then you might be wondering some websites track you it or some websites know what I have done before on that website how is that accomplished that is accomplished through what are called HTTP cookies okay so when you make a request the server will send a response back along with that response it will also send some special identifier for this user called the cookie the next time you make a request if you send this cookie to the server then the server knows who you are and it can remember some information about you if you clear all your cookies then the server cannot recollect any information about you so if you want more privacy you can always disable cookies on the internet and these HTTP responses they can always be cached you know you have some image file you got then some other user also is going to the same server getting the same HTTP response then again this idea we've seen again and again in the course you can also cash this HTTP response your browsers maintain a cash or there are some special caches in the network so that if multiple users in a network are accessing the same HTTP content you can obtain it from the cash instead of going to the server all of these also can be done and the HTTP response headers will tell you how long the item is valid in cash and you know how can you cash it that is specified in the HTTP response headers. So now most of the web servers today actually generate dynamic content whatever static content is there if you are distributing static content you can just give it off to CDNs we've seen CDNs in a previous lecture but most application servers web servers today are focused on dynamic content because that is what is where the most interesting computer systems can be built for example how is dynamic content served if you want to search some for some products in an e-commerce website then you will enter some keywords then your HTTP request will convey all of these keywords to the server then the server will look at the keywords contact other you know databases or other servers you know you made some request to an e-commerce website this server will talk to various other components look up some catalog of products assemble the response and then send the response back to the client. So there are many steps here and at the client side also there could be some scripts running which basically modify this response when displaying suppose the server has sent a list of hundred products then on your browser you can have an option to view only the first 10 products right that is done by your client side some scripts running at your browser that will do all of this like for example JavaScripts and all of that. So in this way our dynamic content is generated both at the server side and dynamically displayed at the client side. Now this is a very complicated thing it is not like a simple socket program you can write read something from a socket and you know write something back it's not so easy you know you have to talk to multiple components assemble the response dynamically construct the response therefore you have various pieces of software today which are called web application frameworks that will make it easy for you to build these web servers or application servers that serve dynamic content you know these frameworks will have all the pieces required you know the web servers the databases and you know some scripting languages to know in order to parse the request construct the response you know in a wide range of programming languages some front-end tools at the client side the scripts that you need to display this dynamic web page the server side tools that are needed to handle all this back-end processing all of these are packaged together in a web application framework and you use this web application framework you don't have to worry about setting up your database web server opening a socket all of that is automatically handled for you you can just focus on your application logic of you know how to handle HTTP request what things to fetch from the database you can just focus on your application specific logic everything else is taken care of by the web application framework even things like you know should you have one thread per connection even driven API's all of these are also handled by the web application frameworks so HTTP also has many optimizations today you have version 1.1 that is evolving to version 2 and version 3 today which has many features in order to improve performance for example HTTP 2 improves performance in several ways over HTTP 1 you have a more efficient way of transferring data that is you know HTTP 1.1 send data as text but HTTP 2 will you know send it in a much better compressed format then the server can actually push some objects instead of waiting for the client to ask for everything if the server knows the client needs something it can push you can also have multiple streams over the same TCP connection so that you can quickly send multiple objects all of these are optimizations that you have in HTTP 2 if you upgrade your web server to HTTP 2 you will get all of these features for improved performance so you might wonder why do you need multiple streams in the same TCP connection that is because once your TCP has you know done the slow starts settled into some constant bandwidth you know into some stable state you might want to actually send multiple streams of data into that TCP connection you know get multiple objects in parallel instead of opening multiple TCP connections itself in one connection itself you might want to get multiple objects that feature is available in HTTP 2 for you of course this has the problem that you know what if one of the objects is lost then all the objects in a stream are kind of blocked because TCP will recover do retransmission of that object and you know even if the other objects have gotten through they cannot be delivered in TCP because it only does in order delivery therefore people are also moving away from TCP towards UDP based transport protocols now HTTP 3 uses a new transport protocol that is called quick which is actually built up on UDP and you add reliability and congestion control a little bit differently you are not doing like TCP but you are doing something different you are starting from UDP and doing something different so HTTP 3 uses quick as your transport protocol so in this way I mean all of these are sort of advanced topics that we do not have time to discuss in a lot of detail but one thing to understand is people are constantly working towards how to make HTTP transfers faster and newer versions of HTTP are evolving to handle all of these issues and they are also work being done on how to design your web page itself so that it loads faster you know so that the important content comes first you start to see something on the web page so that the user is not staring at a blank screen for a long time all of these these are all active areas of research and how to improve applications to make them faster for the internet so one other thing that you would have come across is you know things like JSON and all of that you would have heard so I just want to briefly explain what these are so whenever you are sending some big data structures or objects on the internet over protocols like HTTP you have to serialize them what does it mean you have to somehow have a way for deciding how you will break up that object and stream it as a series of bytes okay so there are certain standardized formats in order to serialize objects and deserialize them at the other end so one popular format is what is called JSON so this is a text based format so if you have some data structure like this you know for example a banana is represented as an object it has a name a type and a color and so on then JSON will basically serialize that object into the string and send it over the network and when you receive this string you can once again parse it and make it into an object then you can access the fields of the object like this so you can easily go from an object a data structure to a string and back and different programming languages will support this so this is a standard way note that you need to agree on the standard format of the string otherwise you know if different people are serializing and deserializing in different ways then you cannot recover the object on the other side the other popular format that's being used today is what is called protocol buffers this is another library that can be used to serialize so with protocol buffers you can actually define some message you know you can define a structure with all the fields data types everything you can define and then this protocol buffer will automatically generate code that will convert this object into a string convert a string into the object you know modify various fields of the object for all of those the code is automatically generated that you can use that the application can use okay so you can just create object like this and give it to this compiled code that will take care of converting this object into an output byte string so there are several such serialization formats available so that you as an application developer you don't have to reinvent the wheel every time and figure out oh my application has this big data structure how do I send it to the other side how do I write it into a socket all of that is taken care of if you use one of these standard data serialization formats so the next application that we are going to study is how email works okay we have another application protocol SMTP that deals with email so email is stored in mail servers like how websites are stored in web servers email is stored in email servers and this is again a server is nothing but separate process that's listening on a special well-known port for email it is 25 whereas for web bit is port 80 and this is some software that is listening on this port and can manage all the email that you get so these mail servers like you know companies like Gmail or your own college every organization can have its own mail servers available to store the email now when the user accesses the mail servers the user will use something called a user agent for example an email client or the browser if your browser is your user agent it is called web mail or you can also have other special user agents like Outlook or Thunderbird these user agents talk to a mail server in order to send and receive emails and the protocol that is run between these user agents and the mail server that is called the SMTP protocol now why do you need a separate protocol for example why couldn't we use HTTP note that different protocols are designed for different purposes when you send an email you have to push an email you are not fetching anything right HTTP is designed to get information from a website whereas SMTP is designed to push emails to the other person therefore the semantics the headers everything are slightly different therefore you have different application layer protocols for different purposes so let us just understand if you want to send email from this email ID to this email ID what is happening you have a user a that is you know using some email server at sender.com to send email to somebody at rx.com to another user B okay so then the user agent of a which is either a browser or some email client will first obtain the IP address of this mail server at sender.com how do you do that that also you do via DNS DNS will give you the IP address of the website it will also give you the IP address of the email server if you go to gmail.com gmail.com has a website it also has the mail server that is actually handling all of this email so from DNS you can get the IP address of the mail server also then you will open a TCP connection to that mail server and over that TCP connection you will send SMTP messages to push your email okay you will use SMTP to push your email to the mail server sender.com then sender.com will open a TCP connection send an SMTP message to push your email to the mail server at the receiver side now then this user at a later point of time this user will you know fetch the email will contact the mail server at his the receivers domain and get the email note that on the receiver side you cannot use SMTP because here you have to pull so therefore there are various protocols available like IMAP and so on or you can also use HTTP to pull your email this is like getting information from a website the concept is similar so the user agent of B will pull email but all of this pushing of email from user agent of A to the mail server here between mail servers all of this happens via SMTP. So the one final concept I want to discuss in this lecture is that of what is called remote procedure calls or RPC okay so RPC is just a different way of thinking about client server communication where you actually call the servers code as if it is a function in your local code for example if you want to search for products on an e-commerce website let us continue the same example either you can you know send your HTTP keywords that you are searching for an HTTP request and the server returns an HTTP response and so on that is one way of doing it the other way is if the server has some function defined in its code like search you can just invoke this function at the server you can invoke a function at a remote server like just like you would call a local function in your code that is another way of programming applications which is called remote procedure caller RPC. So now you might wonder okay in my code I know what functions are there how do I know on the servers code what functions are there that is where you have various RPC libraries or RPC frameworks that will help you implement RPC in client server applications. For example one thing that you need is you need a common description of the interface the client needs to know what are all the functions that the server has what are the messages it can send what are the arguments to these functions all of that information it is written in a common interface description language and agreed upon between the client and the server then when the client calls this function like search the client knows now from this interface description language it knows what are the functions at the server then when the client invokes this function like this is RPC library takes care of everything you know this message that is sent to the server you will see realize the message on the client side there is a small stub that will serialize this message open some socket talk to the server on the server side receiving this message over sockets converting it into the arguments for the function all of that is done by the RPC library and you as the user you just have to write implement the functions at the server side and invoke those functions from the client side. So RPC is a very different way of programming in some sense it is more intuitive where you are able to decide you know just write your application in the form of functions and invoke those functions just like how you would do in a regular program with the RPC library taking care of all this remote execution related complications and there are many RPC frameworks available today like GRPC is a popular framework and you know you have very choices for how do you serialize, deserialize, how do you communicate TCP, UDP, how to exchange messages do you do a blocking RPC like when you invoke a function will the client block is it even driven API all of these choices are available to you in different RPC libraries and the RPC library will also take care of network failures. Now when you do a local function call there is no notion of packets getting lost and all but when you make a request to a remote server actually your request can get lost the server may not get that request. So therefore your RPC client has to you know repeat retransmit that request all of that is also taken care of by RPC libraries you know some libraries will repeatedly execute the function at the server and your server code for that to happen your server code has to have some property called as it has to be idempotent that is you have to be able to repeat the function multiple times or the RPC library has to somehow take care that it will exactly give invoke the function only once all of these you know we will study all of this when we study reliability part of our course in more detail but the thing to note is that your RPC library has to handle many more complications RPC is not as simple as just running your local function because all of these other complications that are present and then why would you use RPC versus using an application layer protocol for example if you want to talk to get some information will you use RPC or will you use HTTP well the choice depends ok. So with RPC the problem is that your client and server are tied together very closely you know you cannot just open a connection to any server and request HTTP objects you have to know what are the various functions being implemented at the server function names number of arguments what messages what arguments all of that is you know very closely agreed upon between the client and the server therefore you have lesser flexibility whereas if you use protocols like HTTP you have more flexibility and any client can talk to any server you are not in some sense coupled with the server but that said RPC has is very versatile you can handle many different types of applications you do not need one protocol for web one protocol for email you can do everything with RPC so in that sense it is very powerful and this RPC communication can also be better optimized for example in HTTP you have so many headers because it is very general anybody can use HTTP for anything but with RPC you can actually customize what messages are exchanged what information is exchanged for your specific purpose therefore it can be optimized better it is more specialized but it is also less flexible than application layer protocols so we will revisit this discussion on RPC versus HTTP later on in the course also when we are thinking about end-to-end application design okay so I would like to wind up this lecture on the application layer here in this lecture we have covered some popular applications like HTTP SMTP and so on we have studied how applications can serialize data to send over the network and we have also studied the concept of remote procedure calls so in order to understand this better to actually see the various headers of these application layer protocols I request you all to please use Wireshark to capture packets coming in and out of your computer say when you are browsing the web or sending email and actually see what are the various headers in HTTP what is the packet format in HTTP all of that you can inspect in Wireshark so that is all I have for this lecture thank you all and see you in the next lecture.


Let's talk about Parler in many ways. Is it a refuge of the right now and in that way perhaps a more concentrated echo chamber and what are the risks in that? And yes, Parler has become an echo chamber for the right which is particularly ironic because it talks about in its mission and its founder talks about wanting it to be a platform on which ideas can be debated for a productive conversation and yet in practice it runs exactly counter to that and has become very much an echo chamber. But what are the risks of that? I mean there is a lot of overt racism, anti-semitism already on that site and worse too. I mean without limits isn't isn't that risky? So recognizing that a poorly moderated platform may allow for terrorists both foreign and domestic to recruit or plan, you'll also see online conspiracy theories that we worry about moving offline which we've already seen with pizza to gate and QAnon. How many times now have we been told by the left that if we don't like Big Tech's Orwellian CCP style censorship then we should just move to another platform or just start our own. So Parler starts up and is immediately adopted by several high profile conservatives making it the number one place for exiled conservatives, republicans, libertarians and basically just anybody who opposes the left. What the media does next is very predictable. We're going to dig right into the democrat party state media's attempts to crush dissent and gaslight the country but first a quick word from our sponsor. After 20 years old your body will naturally decrease its collagen production by 12 percent each passing decade. This is a leading reason as to why skin appears thinner and more wrinkled as we age. It's essential for skin, bones and more and the way to keep our skin looking healthy and youthful is by consuming five different types of collagen. Ageless multi-collagen provides you with the five types of collagen your body needs and one complete protein. As an added bonus ageless multi-collagen is non-GMO and there's zero artificial flavors, colors, preservatives, sweeteners, gluten or antibiotics. You'll enjoy powerful support for your body with results you can see and feel in a few short weeks. Get ageless multi-collagen for 51% off plus free shipping by going to www.healthwithdronetech.com or by clicking the link in the video description box below.  What we're seeing right now is the same old playbook that we've seen for the last few decades and they keep using it because it works.  It really just means anybody who stands on opposition to the establishment media and the democrat party and they want you to think that that's very very bad. Meanwhile being left wing is okay being far left is okay and we know this because the media simply doesn't use these terms as derogatory slurs or even at all. One thing I'm struck by in these headlines is just the unadulterated gaslighting the accusations against the quote right that are exactly what the left and their media are actively engaged in. How about our country's so-called free press being used to promote and protect extreme leftists who have been given cover for the last four years to do whatever they want to do. We even have media organizations like CNN literally inciting left-wing terrorist organizations to carry out attacks on ICE facilities. Oh but the media doesn't report on that or rather reports on it very little then buries it never to be spoken of again so basically it's like it never happened. Out of these places where hate developed they also want to talk about the harms that we see to democracy that if you allow a space where none of these claims are going to be countered that people are going to believe that an election was unfair or illegitimate. Really? For the last few years we've been told our president is a Russian agent and the election illegitimate as they now tell us that any suggestion that the election was illegitimate is a far right-wing conspiracy theory as I predicted when democrats win the all clear is given all these accusations against the right allegedly desiring echo chambers where their views can't be challenged are also incredibly laughable. Big tech is forcing their political opposition off the platform. Conservatives and general opposition to the left don't want to leave these platforms they're being forced off through censorship and when it comes to echo chambers even Dorsey himself admitted that it was left-wingers on Twitter that preferred the bubbles and it was the right that quote cross-pollinated. Don was it Sam Harris that the left these left liberal journalists only follow each other? Yeah in the run up to the 2015 2016 elections. Yeah and so I mean I still believe that to be true and I've worked in these offices. It has changed they've done the study again the visualization and now there is a lot more cross-pollination but we what we saw is folks who are reporting on the left in the spectrum mainly followed folks on the left and folks on the right followed everyone. What you were talking about earlier that there's bubbles there's bubbles and we've helped create them. So there you have it they have set their sights on parlor which will no doubt lead to pressure to censor anyone standing in opposition to the media or the democrats. It doesn't matter what your views are as an individual the media has decided that if you oppose them then you're all right-wing terrorists. There is zero doubt that heading into a possible Biden administration our so-called free press will be nothing more than a mouthpiece for it. You can help me to keep up this fight by supporting me using one of the links in the description or pin comment. If you enjoy this video please hit that like button and share it maybe if you have some extra time. As always thanks for watching and I'll see y'all next time.


So let's go ahead and actually implement out this map one of the reasons why we called it a map here's because if we're looking in Java's world It refers to a dictionary as a map now one of the things I said in the last video is this idea that map the The class of map in Java is an abstract class. There's actually a lot of different variations to it and how it sort of handles certain operations like lookups or storage and so We don't just magically get to you know, just use a map, but we do get the ability to come in and say something like Hash map now that hash map is just gonna be one of the variations Inside of all the difference We actually also have something called a tree map and we also have something called a link hash map Just different variations again. We'll take a look at them in a second. So let's say I came in and I'm just gonna throw together really quickly My my implementation of my my maps so I come in public static void main string args and Aha, I finally I'm gonna make my map now. We remember in polymorphism. I could call this a hash map or a map I can call it anything inside of its Implementation hierarchy, I want to use map in this sense just because It's a it's one step above I can still kind of work off of this especially when we start changing Hash map to tree map and link match map. I don't link hash map. I don't have to Really do much difference. The problem is we're starting to get into a quick introduction to the difference between an array and sort of a Dictionary if we will so you notice we got rid of the idea of an index when we started talking about maps dictionaries One of the things that we have to deal with now is what element? What is this? It's a character We know but it could be anything I could just like I was saying before I could turn this into You know another I Could turn it into that that's a terrible version since cats there, but it could be any Object, let's just kind of use an o for that. Oh Object It could be any data type that I want it to be and so as a result one of the things we have to sort of implement is Generics So what's a generic you may see this sometimes in you know different? Implementations out there on the internet and whatnot, but there's some class that someone built and right beside it You see sort of this kind of carrot sign and then maybe an e All that's telling us is that? This can be any Data type that we're dealing with if I want multiple that I'm gonna be dealing with a lot of them Guess what? I just throw a comma in there and I have some other e I wouldn't call it e because that's the same data type But you get sort of the gist of what's going on there can be anything. I want it to be we just use e For simplicity sake We're actually gonna do that exact same thing here inside of map now maps already been implemented So we don't really have any problems kind of going in I Still use that now if we kind of look I'm using DC and M for my keys over here So for our sake, I'm gonna say that the key In my map is a character data type I could use char, but I'm just kind of being fancy with the the capital character class Then I would separate by a comma because now I have to look at what my element is just like when we were dealing with an Array a traditional array. I would put whatever data type and then square brackets same kind of concept dog Could be anything I make it and for our sake. We'll just say it's a string I'm gonna call this M just to kind of model myself over here. However, this is where things are different If I just came in and did that let's implement that and let's see what happens if I compile and run that Let me shrink this move it into a reasonable view Java C test map Dot Java I Get in there. Ah, look at that map is abstract cannot be instantiated This is why we implemented that we imported a hash map as well. The idea is I can come in and say hash map Now if I compile this, oh It's complaining about this unsafeness and that's actually because I didn't include the good old Sort of this was a generic class as you can see simply resolving that takes care of that now Inside of my previous implementation. You see I did m.insert Java being Java does not use the idea of An insert. However, it uses in our case Put no difference, but the kind of implementation is now instead. I'd come in and I'd say in my sake my character data type and then my string element and As we can kind of see for cat and monkey. I Can do the exact same thing see for cat and M for monkey. All right. Everything seems honky-dory so far. That's perfectly fine One of the things we can do with this is we can Do simple things first. We'll do a traditional system dot out dot print L in on dial M for Anyone who gets that reference bonus points M dot look up All right, I think it's get off the top my head. I can't remember get we come in we Compile I was get a ha ha and then I run this Java test map Dial M for monkey Notice all I had to do here is instead of looking up Monkey I could actually just tell it my key. So if I came in and said Get M Dial M for dog Doesn't really work because you know stuff, but if I wanted to see every element That's actually kind of a really nice implementation and this is where we're gonna see the difference between a hashed Tree and linked hash map. So in our sake, I'm gonna use the for each Version of a for loop the idea here is that I now I'm working off of a colon And I don't have some index. I don't have the luxury of that one and two So I can't just do a for I and I Zero to size because I don't I can't I don't have indices instead I'd come in and I'd implement something over on that side as in that entry set that's My I don't want to say array, but that's my collection now And what that's gonna give me is not just dog cat monkey or DCM That's gonna give me that collection that entry if we will In fact, I'll call it a map dot entry. Haha just to kind of give you a hint I'm gonna I want to get the entry of those that key and that element and that's actually what I would put over here I would say map dot entry and Just like I did up here Where I said I had a generic of a key of a character and an element of a string I do the exact same thing here. There was a Character key and there was a string element and I'll just call it entry for the sake of simplicity sake So now that I've got these I'm not you know gonna jump too quickly yet, but I can come in and I can say Character key equals entry dot get key It seems pretty straightforward what that will do that'll grab the the D the C the M string element Entry dot get What do you think it is? It is not element. It is value. Oh, that's not terrible. You know we Values a little bit more of a generic term than element and you find a lot of times that get value is what people implement But the interesting thing is when we come in system dot out dot print L in key Will be my key Slash T element Will be my element And if I came up here Compile this and ran it Huh Notice that part right there see that's not my first entry Why is it appearing first? Well, that's actually what I was talking about at the very beginning some Hash map for example doesn't actually store them in any particular order. It's just kind of whatever wherever. It's available in its self Tree maps very similar. We're gonna get the same Implementation we're gonna get the same look and feel inside of a tree map and The only difference here is in this implementation. This is an alphabetical order Let me add a few elements in just real quick to And three we'll say so we have an a for alligator We have an e for elephant and we have a r and r for rat So we're talking about this being a tree map right now The tree map is going to put them in alphabetical order of their keys So as we can sort of see a c d e m r everything's in alphabetical order If however, I did it with a hash map right a hash map There is no particular order. Oh look at alligator and then we got rats and then c d e m There's not a given order to it. It's just kind of however they get stored That's fine sometimes But what about that linked hash map since that's sort of the last one that we haven't touched on yet linked hash map Linked hash map This is going to allow it to kind of be stored in the order. It was put in so it should say d c a e r m d c a e r m Which one is better where they're all pretty much the same It's rather more what you want to do with them if I need them to be an alphabetical order for my look ups Tree map if I do need them to be in the order that I inserted them linked hash map if I just need them to be stored in some Happ hazard way that doesn't really care about order hash map


In the event of a boom in space resource development there would be an increased amount of space debris making it difficult for existing spacecrafts to navigate safely. To address this issue we have developed a novel context sensing YOLO V5, CSYOLO V5 algorithm which can detect small and weak space objects by extracting local context information and fusing spatial information from multiple layers. We also introduced the cross-layer context fusion module CCFM adaptive weighting module AWM spatial information enhancement module CM and contrast mosaic data augmentation CMD. These modules work together to improve the accuracy of the algorithm and its ability to detect small and weak space objects. Experimental results show that our approach outperforms other state-of-the-art methods in terms of accuracy and robustness. This article was authored by Yumen Yuan, Hong Yang Bai, Pan Feng Wu, and others.