Hello everyone, welcome. My name is Willem Smith. I'm professor of marketing at Asia School of Business. And despite this very strange situation we're all in, we're very happy that you have joined us for our fifth webinar in the series on the day after tomorrow. ASB has launched this series because there's an increased demand among executives and firms on how to deal with this very uncertain and new situation. And that is also for marketing and marketeers and that's why we have today's topic on marketing for a new normal. Marketing for a new normal, is there gonna be a new normal? That is a question. We don't really know. And if we ask, if we look at firms, actually no firm can adequately or accurately predict what will be that new norm. But there is a benefit to find out as one of the first to how that new reality looks like. And so in this seminar we will talk or we will talk about what is currently happening with markets, with consumers, consumers bound at home and we'll offer some perspectives on how to respond to this new situation. And for that we have experts from the business intelligence community join us to provide very up to date insights in what is happening. We have global marketing research company Ipsos joining and sharing their perspectives but we also have the region's largest data analytics and agency firm ADA join us as well. So it is really a true honor to present you our two guests. First we have Jocelyn Pinto who's manager data strategy analytics at Axiata. She is an expert in monetizing data assets for companies. She also was recently asked to join a special task force to help the Malaysian government in combating the COVID virus. And we also have Arun, managing director of Ipsos. Arun prior to coming to Malaysia he built up the financial services business for Ipsos in Middle East and North America. And he is an expert in consumer behavior and customer loyalty. So the third point I'd like to raise before moving to our guests is we'll have Q and A sessions. So you'll see a screen. You can, there's a pop-up version you can select and add to your questions there. You can even vote for the questions you think are really interesting to be asked. So you can upvote the question, yeah? Then I'd like to actually raise two points and that is the questions that I receive as a marketing professor from many firms in dealing with a downturn. So the questions that marketers ask like, what do I do? How do I apply my marketing mix in this change situation? And from marketing science actually there are insights that have been proven and proven again. So there's a large amount of empirical data that can guide you. And the two don'ts in marketing in a downturn are don't cut your marketing budget because by cutting your marketing budget you run the risk to actually lower your share of voice compared to competitors and maintaining that share of voice is critical for growth after the recession. So if you are very much cutting your marketing budget you run the risk of being of your brand being harmed in the long run. Second don't is actually not to apply price promotions. When you can raise the regular price, please do because there's a wider group of consumers and customers that are more price sensitive in a downturn. So when you can, you should do. However, if you cannot do and your price promotion will only be temporary you'll disappoint a lot of people when you need to raise back to the regional of a regular level of prices. So those are the don'ts that you should avoid in dealing with a downturn. But so what is this downturn like? And that's the second issue I'd like to bring up before giving the floor to our guests. And that is whether or not this is not, this is a normal in the beginning. I think in March people were expecting a kind of a V shaped recovery. So after the downturn, there will be a quick rebound of economic activity. And it's more like a V shaped plastic maybe three, four months of recession. However, now since this is taking longer people are getting worried whether this will be an L shaped recession. That meaning a very slow recovery after we have hit button. And so there are kind of two extreme scenarios which gives us uncertainty. But this is a very unusual type of uncertainty that we're faced today. And so let me explain why this is a kind of a different uncertainty. And so if we look at a business science we can compartmentalize the uncertainties in the following three ways shown by kind of these three urns. The left hand urn is a transparent urn and when a blindfolded person would pick a ball from that urn you can actually see what are the chances that she or he will pick up the white ball. So that's 25%. And so in similar to this situation if it was a normal recession you would kind of have an estimation based on past recessions, the 11th recessions that we had since the Second World War and make an estimate on how long it will take. I'm not so sure we can do that now. Maybe it's much more of a second type of a distribution where we cannot see or not gonna predict that much. We can only slowly get ideas as we pick kind of figuratively big balls from the urn. So meaning we slowly inform ourselves with how things are going on a month by month basis or weekly basis. So like purchasing managers index or other consumer confidence indexes. So slowly we get to know what this recession is. And this is what we call in business science a knowable distribution. However, maybe we can think of the COVID uncertainty much more as a distribution an unknowable distribution. So everything that comes out that we experience are basically from very different sets of variables. So we don't know the vaccine, how when the vaccine will come, what are commodity prices, how they will react. There's disturbances in the global supply chain. People adopting more and more online behaviors. So there's a lot of uncertainty. So this could be classified as an unknowable distribution. And I think the nature of this recession is very much like that last one. And what we normally do is when we want to know about what is going on, we would normally go into the streets or see people's behavior. But in today's situation, streets are empty, offices are empty, shops are empty and people are bound at home. So consumers are staying at home and we wonder what is going on. What does the data tell us? And that is why we'll ask our panelists who are experts in business intelligence to share with us what they observe. What does the data tell us about the consumers staying at home? Arun, can I ask you to share your insights from Ipsos? Thank you, William, and all for joining. So William, to answer the questions, we probably try to see it as from three different angles. So because we don't live in isolation, so we need to see it as society, market and individuals as we are, so from these three angles. So let's start from a Malaysian context specifically. So we have, when we started the MCO period, like this is where everybody being aware of the situation, the gravity of the situation as such. So around 95% of the Malaysians actually supported it. And even 94% said that putting the measures that the government has come up with, which is putting the border control and everything is the right thing to do. So when we went to this MCO period, overwhelmingly Malaysians agree to those decisions as such. So we agree as individual as a society, these are the right things to do. And as we see in the next slide as well, which information did they look into? Where did they actually go into to get this information? William, if you can, sorry, if you can change to the next slide. Yes. Sorry for that. So we look primarily for the government in Malaysia. So we know that traditional media in Malaysia has a bigger trust than the news, the new channels and the others as well. But it's quite surprising, like compared to some of the other markets, which is what we see in the US and Europe and some of the other markets. Malaysia do look actually into the government and the government sources or the local health authorities for the information as such. So in a way, what I say, there is a specific source of relevant information that Malaysians are always visible into. So we are not as, there are a few people who are definitely dependent on WhatsApp and YouTube and what's happening in there. But those sources are probably less relied upon than compared to this. So we agree to go to this and we are relying on the same source of information as we look into, right? So as you rightly pointed out, the streets are empty, the shopping malls are empty. So how do we get the information? We have another source, so we have another source, which is our social media platforms. So that's where a lot of conversations happening as we speak and discontinues to happen as well. And it's a treasure trove of information for each and every one of us and all the marketeers and the business people as well. So if you look at the first phase of MCO, you can see that from the 15 to 31st period, the number of mentions related to COVID-19, MCO extension, you can see it's initially spiked somewhere till the 1st of April, till the 21st of March, then it's kind of slowed down as we go in itself, right? So this gives a lot of information for us to say, so okay, what are people actually speaking about? What is happening in their life in itself, right? So we all have knows our lives and people around us, their lives as well, but the wider population what it is. So in the next slide, we can see that the main conversations which is actually happening across different paradigms. So of course, 22% of the Malaysian was speaking about quarantine itself, like no, stay at home, hashtag stay at home, it was trending a lot. And but also on what is the preventive measures? We are actively switched into, okay, now how can we prevent COVID-19? Nothing happened to us. So around 7% of this millions of conversation was about sanitizers and face masks and everything. But there is also this concern of the job losses, which is on the left side, you can see the smaller mention of job losses, but there is subsequent mention of a lot of things, right? So there's a funny post of cats are trying to measure their base size and stuff into attribute into that, am I going to gain weight during this period, right? How do we manage that? How am I going to manage my lifestyle in itself? But there is also mentions of mental health. That's one of the things that it's a bit of a trauma to be hooked up into one place for 24 hours a day. So it's quite a traumatic. So there's a lot of conversations happening online around these topics as well. But we also try to capture it through some of our survey, through online surveys as well. So one thing which we can clearly see is this drastic shift towards the digital and online behavior as well. So what we did is that what used to be offline, we moved it to online to a greater extent. So relations are known to be quite addicted to social media. We spend a lot of time on our Facebook, Instagram, TikTok and all, but imagine 79% with more intensity. So it's much more intensely. We are focusing on social media, following on news and WhatsApp and stuff. And interestingly, 48% almost half of so as are using e-commerce platform, purchase platforms more than what it used to be there. Even the enough food and grocery delivered, you can see 46% of it. So what happened here is that other than those who usually traditionally use, which is what I would probably consider the profile of the millennial generation, younger urban population, even the semi urban and the rural areas are moving online to make this purchases and stuff. So there is a significant movement towards that. That's one, so that we are, for example, creating a digital life for ourselves beyond taking it away from the street, but also see the purchase behavior has changed. So in this big shot, I will summarize in three sections as such, right? So you can see the hand sanitizers. Obvious, that is probably the face masks and hand sanitizers are not much of a friend in the COVID-19 situation. So it has increased 34% more purchase of it, right? Our stand right can food and stuff like that. So what we have seen is three trends here. One part is that what we usually not given much priority, which is like the hygiene priority, which is like disinfectants and sanitizers has started commanding a bigger share of our no monthly budget and valid and stuff like that. So we are allocating more money for that, right? But because of the stocking situation, which happened, which is at the beginning of this period, we're also stocking a lot of past our eyes and can food, which is, if you notice, all of them are cans last for a longer period of time. So we don't know how long this is going to be, how much of further measures are going to be. So at the initial phase, we are stocking up a lot of this kind of non-perishable items as such. So interestingly, we can also see that that very deep prioritized is our duty and personal care. This is, we can also see that the likes of L'Oreal and like of the, you know, the personal care products and stuff like that, they've been affected significantly. And also your clothing garments and say also chocolates and sweets. So we kind of know, because we kind of thought that if we accumulate these at home, this is probably not good for our health. So let's be prioritized this and move forward for the other thing. We do see going forward, the concept of hand sanitizer and loss for a longer period, but some of the other things will fade away. How did the brands perform in this period? So one thing which almost all the brands and companies has focused is avoid not being an opportunist, which is even the likes of Detol and you know, face mask companies and all of them at the forefront of it. They try not to be opportunistic. But then then some of them took the step as in the sense that you can see, you have seen the OD branding, McDonald's branding, which promote about the distancing angle of it. So they restructured their logo for a period to disseminate that information. But predominantly most of them spread positivity, creativity at this period and move as much as possible onto the digital as well. But the main thing which the brands can do is that what we will mention later is that how do we help people past time? Because how do you create new moments into the people's life? So if people have moved away from outside and moved into the home, then how do you create new moments in people's life? So if people are still celebrating birthdays, sometimes weddings and anniversaries and stuff. So you need to build in this new moments in people's life. That's what we can do. And also a lot of our clients realize that this is a time they can reactivate their purpose of brand. They're relieving the purpose of what they stand for in the society and make them more relevant to the consumers in general. This is some of what we can see and the brands have been doing. And a big part of it is the communication because the channel for the communication, the primary channel, which is your TV, social media, everything is still open there. And people are welcoming because they find it as an escapism as well as information. So the discipline and companies are promoting and sharing information on the COVID-19 perspective. So there's useful information at the same time an ad is actually taking away from the usual daily life which they are a bit frustrated about on a day-to-day basis. So the communication is a big part of it. And that's comes to a point that William, that you mentioned at the beginning which I will end with the next slide on this part is that no, it's not the time probably to cut the spending on communication and marketing as well, right? Because when I quickly looked at the data through the last recession phases that we have, companies who've been continuously spending at this period maintain their market share or increase than company who's actually reduced their communication or the marketing campaigns in itself. So I leave with this few thoughts that we had across the globe within episodes is that be authentic and faithful. It's not time that you reinvent yourself as something different. Find the right story to tell the people and strike the right tone. Why strike the right tone? Because this is a, a lot of the people are trying to communicate within the mood of COVID-19 of the caring and compassionate and everything. So if everybody is communicating at the same way and the same line, it is very difficult for you to cut through. But at the same time, you have a other restriction if you're a marketeer is that you cannot be overly cheerful at this point either because then you'll be completely out of the picture either. So this is something you cannot communicate the same way to everybody because you will be cut through you will not get the cut through in the communication itself. At the same time, you need to reach out to the individual group because each personality is in itself. So that's the learnings that we have at this point about how, what people are doing so far, William. Thank you Arun. Thank you so much. Very insightful. Nice, nice developments and tracks that we see of slowly changing or of actually radically changing behaviors and sentiments. I would like to ask Jocelyn to chime in and share what they have found out looking at consumers being locked down in their homes. Jocelyn. Thank you William, thank you Arun. So in maneuvering through this uncertain time, as William has mentioned, it is important for brands to stay connected to their customers to be top of the mind but where do we exactly start, right? So Arun has given a very good overview of why we need to find a new paradigm on how to strike the right tone. As most advertisers try to appeal with the same messaging in this current situation, empathetic, caring. So what we have found at ADA is that different people actually react to the pandemic in different ways. So what we did was we took advantage of the hundreds of millions of consumer behavior data that we have and we analyzed the following parameters. Firstly, we looked at the changing behavior. So we looked at consumers' digital habits before the crisis and sort of compared it with during or after the event by tracking over 400,000 apps across the region and their app categories, such as financial, fitness and entertainment apps. We also looked into their location data to determine who is always seen at home and who are part of the workforce who is still frequently seen elsewhere. So this essentially allowed us to collect insights into how consumers are reacting to the crisis. We found that there is no one way to react. So what we have done really is we have clustered consumers together based on their personas. So in the next couple of slides that I think you've already shown here, I'll walk you through some of the personas which we have developed based on our methodology. Here over in this slide, we have a persona which we call the market observer. So this segment is affluent. They are seen to be at home most of the time and they have heavy usage of financial apps. And if I may direct your view to the chart on the top right, here at the red line, basically illustrates the number of COVID-19 cases which we use as a reference line. Also used as a reference here is the white dotted line which represents the average level of ad usage before the COVID pandemic. So it's at the 100% mark. And if you look at the green line, you can see that financial apps are increasingly used by this segment. They may be concerned with the financial impact of crisis or they may just be looking out for other opportunities. Also visible in the chart here are the three graphs where the ad usage is the lowest. So this coincides with the weekends when the market is closed. And in Malaysia, there is a total of 200,000 individuals that fall under this segment. And just the graph below are just a couple of examples of apps that we use to compute these numbers. They consist of investing, currency exchange and stock exchange apps. So in the next slide, we've got people who are out there who are not too concerned with the market but they are more concerned about still being able to continue shopping using online marketplace when they cannot go out or when offline retailers are not in operation. And in Malaysia, there are 435,000 people who fall under this segment. And looking at the green line, you can see that there has been a spike in shopping app usage at the right about the start of MCO. In the next slide, we have the social citizen. So looking at the use of social and new steps, the numbers were normal until the onset of MCO but it's shot up to reach a new normal of 1,400% more and these are concerned people who gather information from social and official news sources and they share them back with their social circles. About 2 million individuals in Malaysia fall under this category. In total, sorry, we're going to go to the next slide. Thank you. In total, we have developed 11 personas for the Malaysian market. Sorry William, can you go on to the next slide please? Thank you. So yeah, we've developed 11 personas for the Malaysian market purely just by analysing their app categories, their usage and places they have been cited at. And if I may go through each of them briefly in the interest of time, besides three illustrated previously, we have the resilient one who are stuck at home but they remain unfast by the situation. They are just going to wait it out. We also have the bored homebody who are killing their time with entertainment, playing games and watching movies. The next segment is the yearning traveller or what I call the wishful thinkers who are really thinking about the upcoming travels or once the crisis is over and the border reopens. We also have the work from home professionals who are adapting to the now remote workforce as most of us can identify with. The health and nut and the whole fitness field are segments who are taking this long-downt opportunity to revisit their mental and physical balance. And another space, another mental space that we see which is not a really great one which is the sad and confused who are digitally less active than before because let's face it, right? Many people are in fear and trepidation of the adverse economic impact brought about by this whole COVID-19 pandemic.  And lastly, we have the brave ones who are the front-liners working in essential services and continue doing so to go work on a daily basis. What these personas really highlight is the fact that people are in different mental space in current times and this underscores the importance of brands in reaching their customers with the relevant messaging. Thank you. Thank you, Jocelyn. Very insightful, really nice to show that people are responding differently to the lockdown situation and the spreading of the fear for coronavirus. So, but that will not last forever. We'll have a period after COVID. So on the other side of the pandemic, when people come out of their homes, will we see a new normal? And there's wide debates around that, whether that will happen. And if you systematically analyze what people foresee, you see broadly two schools of thought. On the right-hand side, you see people professing a new, a next new normal. A period after this period of a couple of months of forced experimentation, of online, of working at home, being with kids, developing new habits at home, or in other restricted situations, you will have adopted other habits. And so it would be like what they would say, a press forward button on human history. And that's mainly shown in reports of consultants who predict a more digital, but also at the same time a more distant future. On the other hand, there is a school of thought like, no, there will not be an actual big change.  And these critics are mainly saying that the people foreseeing a new normal, they see the change they wanna see. They project that idea of it will be all very different. But the left-hand side school thinks, well, people are hardwired, they will go back. So as we are ASB are very interactive in our classes, in in-person classes, and we cannot do that online. We're building in ways to get feedback, to get interaction from you. So we would like to ask you the question. We'd like to turn to you this question of, will there be a new normal? I will have a vote, a polling coming out, you see it on the screen. I'll give you 30 seconds to give your view on whether there will be a new normal or not. And try the number of votes are coming in. I'll close it in 10 seconds. All right, five, three, two, four, three, two, one. End poll. Okay, and then here I'll share the results. It's quite exciting. We'll see a 90% of you think there will be a new normal. 10% have their reservations. They will say it will not go as fast. It's quite interesting to see that there's variety and maybe between these extreme school thoughts, there's more likely that the truth lies in between of those. So I would like to go back to our panel of experts and ask in this evolving new situation, how should companies respond?  Joslyn, can I ask you to start? Sure, I guess before I answer that question, let's take a look at how some advertisers fair at appealing to cost consumers in the new normal. I'm going to, I'm about to show you a video, but I'm afraid I would have to stop the video prematurely due to time constraint, but I sure hope you can derive some observations out of it. Oh, right, right, right. All right, so generally I think everyone can agree that the advertisements featured in this video all seem the same tune and frankly, not a single one invoked any unique emotion in me that would drive me to action. So what this is really is an attempt to cluster all consumers together with one singular messaging tone and manner. And this just goes to prove my point on the importance of catering your message to different personas. And as we have learned from ADS COVID-19 personas, people are in different mental space and one message does not fit all. For instance, a light-hearted ad will not sit well with people who are depressed and a somber ad would be a mismatch with people who are feeling positive and going back to the three sample personas that I've presented previously, let's take a look at how some of these brands have appealed to each persona. For the market observer, I think DBS has done a really great job in providing economical support and measures by providing relief funds, specifically for business owners and they have actually accelerated contact-free banking. In the adaptive shopper category, Lazada Indonesia aims to provide the assurance of customer experience, peace of mind and reliability to their customers and has even stopped its cash on delivery option. Last but not least is the social citizen where Clorox Philippines has reached out to provide reliable and relevant information by creating shareable tips on disinfection. And in total, there are nine other communication examples that correspond to the other personas but I will not be able to cover them in this section unfortunately. But what's worth noting again really is that different people react in different ways and to be relevant to consumers, we need to understand the different types of personas and to customize messaging and be relevant to all. Very good. Thank you so much for these insights. And yes, being differentiated to people that are in different moods is critical to stay meaningful and relevant. All right. Can I ask Arjun to share his view? Arjun, Arjun, your mic needs to be unmuted. Yes, thank you, William. So one of the benefit of being in different markets is just we can see how each market is evolving and the sphere of the market and the main market which came out of the situation partly is China. So we have done a full degree of how people are going through it. So we have seen that there has been different phases. So it's not just start and stop. It's not like zero and one kind of a situation. So people start with what we call an uncertainty. This is predominantly mostly a pre-lockdown period in each of the countries where there's a lot of fake news. They don't know what it is. They don't know whether it is going to get here and all those kinds of situation. Then they go to stage of preparation. I want to control what I can and that's where we are stocking up or like moving our workplaces to home and stuff happens at that place. Then it's an adjustment period. Okay, this is a new reality. How do I adjust to that situation? Then over the period of it is okay. Now I can just take a step back and relax. So that's where the acclimatization period. Then all of us are waiting. In Malaysia, we are at that stage between acclimatization to endurance, right? Oh, I have to stand there for a bit more and all those things. And then the anticipation of this is going to open up things are going to back to a normal or normal as it is. This is what people are going through. And each stage has a different behaviors. When we look at uncertainty or the preparation stage, we have noticed that people, even if you're familiar with a brand, you will probably go at that stage. This is an example of association with food itself. And this is mostly coming from the social media in itself, right? So if you look at food as, the first stage of, which we say they know the awareness stage of it, we are looking at food as an immunity booster. What can boost my immunity at this stage so that I don't get the virus as such, right? So you go for oranges, you put vitamin C, some of them take flu vaccines, though it might not fully help, they would have an excellent, okay, it might help us a bit in a lot of different contexts in itself, right? So then the phase of stockpiling and panic buying. So that's where your pastas and rice comes into the picture. You get truckloads of, no toilet papers and pasta rice and all those things, that's the stage. Then you have, okay. So I have everything. Now I need to deal with how it is. So that's where the fridge become the enemy because you go back to the fridge and start. So that's a, I know, quarantine snacking place, you know? That's the part. Then you are saying, okay, so now I'm at this place, I have enough time. So what do I do with this? So that's what we call, like, no, we have a different relationship with food itself, like, you know, start cooking at home. A lot of mothers or like, you know, fathers has time to cook for their, they want to test their skills and stuff. So that's what's happened. So this is a very small concept of food itself. And if you can see that this habit and the evolution over a period of what? Six weeks to nine weeks in itself. So imagine the impact this is having on everyone of our face. And the interesting thing is that it is not constant. Not ever think it is like a zero and one concept. It evolved from one stage to the other stage. And each stage we are adopting and developing new habits as it is, right? So I want to zoom into the ones which is now currently relevant to acclimatization, which mostly that we are in, in itself. This is an example from China. For example, so when you are out, you just go and take coffee from any of the Starbucks and, you know, whatever Gloria jeans or whatever coffee shops that we have. Now, when you are at home, you have limited options for coffee. Now you're looking for coffee machines. So there's a huge demand for coffee machines in China so that they get that variations itself, right? So that's one part. On the other side, we are experimenting. You know, we are looking for novelty as it is. So at the early stage of what we call the awareness stage and, you know, adjustment stage, you don't experiment. You go with the family of stuff because I don't have the time for the chance. Now, when it comes to the acclimatization period is that they want a bit of innovation because, you know, can I do something? So that's where the Dalgona coffee, like all of us have heard about it, right? In the social media, so looking at further. And also if you look at Malaysia specifically, the number, the looking for baking recipes, a shootout over that period of time because people are experimenting with food in itself, right? So in itself, a lot of people would have, you know, picked up a new habit in itself. Okay, I know how to bake because after, you know, a lot of press and I have enough times to say. But also in the next slide, when we go to the next stage of it, which is the endurance, which is a bit of a difficult phase, right? Because you, okay, you have said your things and you need now into it for the next few years. Like, and Malaysia is a bit, we all know it's a right measure to do, but even when I get, you know, blip in my heart when 12 days, another extension, then 12 days, another extension, but it is the right thing to do. But this is where people go through the endurance phase. In China, we see that there's, you know, divorce rate spectrum because there's a huge impact on the social aspect. In Japan, they offer separate apartment for, you know, husband and wife to go. But this is an area for the brand to leverage as well. So we have put some examples there as well, is that how do you make it bearable for people? And the brands can make a lot of it, right? For example, specifically, you can engage the kids in there is a, L'Oreal, which we heard in China has come up with a new, you know, testing online. So you can upload your pictures or you can see yourself and then you can try out and stuff. So this is a way of engaging. And I think like people at this stage is looking for an escape system from their day to day life and whatever that they can engage beyond, you know, the Netflix and TV and stuff, they will do and the brand should be able to capitalize on this part of it as well. So, William, if you can go to the next slide, which is going to be that, okay, this is the anticipation phase of it, right? So in Malaysia, when we did the first wave of survey, they were reasonably realistic to say 68% of the Malaysian says that by June, things will be normal. You can see that the Asians are much more positive when it comes to this compared to the rest of the world in the likes of Japan or Germany and the UK and US as well. So 68% of Malaysians are thinking that things will be back to the normal in by the time we reach June in itself, right? But as marketers and the business people, we know that there is no zero to one switch state in itself. And what we understand is that if not, we are looking for more volatility where the brands and the consumers are expected to be more agile. So till we find a vaccine or a proper cure or whether the virus completely vanishes from the face of earth, we will be in a situation which is not something that we want, but the governments will be in a situation so it's locked down some part of the countries, right? Or say for example, retail stores are out but the shopping malls are open or some businesses are open. So this is going to be the mix and match. Look at Singapore as a country as an example, they went, then they came back. So that's going to be the situation. So it's a lot of volatility though the general sentiment has been positive in Asia of the economy will recover quite significantly after the space. And if you look at the Malaysia data at the next slide on it. So we always ask if there's a regular survey and we always ask this question whether the country is in the right direction. And I'm assuming that our Ministry of Health and others have a lot of tremendous amount of job to put it back to the right direction. So if you look at in February 46% of the Malaysia were thinking it is in the right direction. That means the 54% were thinking it is on the wrong track. In March, it has dropped to 35%. But if you look at April, it has almost bounced back to 66%. So this is the amount of optimism which is in the country in itself. Okay, the infection rates are coming down. The then things are getting back to normal, let's say. And another chart is that our country's economic sentiment has been going down for months on months. Right now, for example, which been tracking over the years as well. The only update that we have seen is in April. So despite the situation, so the general consumers are, general public is very positive of what things took, things going to back to the normal and they can start a normal life and the regular part of it. But compared to that, there is probably a long way to go to reach there because unlike this popular expectation, it is not going to be a straight road. There is going to be a lot of ups and downs and we are expected to be much more agile to respond and more creative to be responding to us next six months, which is what we expect is going to be much volatile. Very good. Thank you, Arun. Thank you, William. So thank you. Kind of in sum, because I think we have provided our audience with a lot of insights and ideas, but it kind of in sum before we turn to them in a Q&A, I'd like to kind of summarize what we talked about. We started out with setting the stage on there are two clear zones in recession marketing. Then the idea of we're talking about a different uncertainty, a different recession, and so to uncover what is this new uncertainty is, it's important to stay connected and to keep the finger on the pulse, not maybe through regular channels of information gathering, but now with online data, we can do a lot and polling on the distance or maybe other creative forms of collecting customer intelligence. So through that, you showed great examples of, actually there's a discovery of new moments to connect because people are now in a very different situation and they're exploring doing new habits and new behaviors. So that gives opportunities for brands. ADA showed us that there are actually different personalities, different types of responses from different segments in society. And so they developed the COVID-19 personas. Then ideas for companies to respond, you very much recommend customizing your communications and maybe other variables in the marketing mix to the COVID-19 persona. And so to stay relevant to their specific individual situation. Ipsos then gives us further insight in the phases that people will go through and recommends to anticipate the different phases that lockdown consumers have or will experience following the example that they had from China. All right. Thank you. Can I ask a panel too? So I'll ask the panel now to take a couple of questions. I'm mindful of the time. It's nine, I think it's 44 minutes. We're supposed to close at 45. If you would like to leave, you're welcome to. If you want to stay on for a couple of our questions, I think we'll answer four or five questions online. We can take the ones that are in our chat. We can also answer those specifically with email if you have left your name. All right. So for our first question, I would like to, that we got earlier, I would like to ask Joslyn to talk about the interplay that there are within the personas. Are there is one person, one specific persona? So yeah, absolutely. There can be multiple personas as you probably have already identified yourself with one or two other personas. So humans are essentially manifested at the end of the day. We are interested in a variety of things, some of which we have more inclination to it and others not as much. And this can also be quite situational, speaking from my own experience. So I think that's why advertisers should communicate to the different sides of the side of the consumers to reach and connect at the right moment. And I think just to note a point as well, there are other personas that you can develop out of these, for instance, by overlaying segments on top of personas.  So even tapping into first party data to get, to tie back to your point of sale data or even for fall data to create the segments. So this would create a more comprehensive lens to view your customers. Okay, very good. Thank you. Thank you so much. Then I see in the questions that we receive through different channels also a question specifically for the financial service sector. And since Arun is an expert in the financial services, would you give specific recommendations for the service sector and maybe the market observer persona that ADA was mentioning about? Yeah, thank you, William. So what we know is that one of the areas that we mentioned about food, the other area that people are generally looking at is the financial services itself, the financing. So from a consumer perspective or an individual perspective, how do I manage my money or how do I manage my savings? So you are in this period where there is a risk for your salaries, you have a risk for your income assets. But again, this is not general for everybody. So you have what we call the T20 of Malaysia who can always leverage on their savings and investment. So then whereas you have the B40s and M40s assets, right? So that's across the globe as well. But irrespective, we wouldn't be surprised that everyone would have at least thought about their money and saving in this period of time. So what happens is that some of them has more time to think about it. That's another fact. So you might think about it, but this is a time and you probably want to take some actions around it. So this happens from this two angle to it. So how do I make sure that I have enough savings to support me through this crisis? That's one part of it. So we do see there is, those who have regular income, they would, for their salaries or incomes are not affected. They are saving more monies in their bank accounts, right? So that's where that's one part. And it's quite interesting what Jocelyn has shared in terms of market observer. There's a lot more upticks in terms of looking at the financial products and services online. It has picked up over the period of time. So that means that it is already translated into some of the people's behavior online there because whatever they are thinking they're actually checking online as well. Or like now they are doing some actions around it, right? So when I look at a financial services so that what we would consider is that people trying to optimize whatever that money that they have, that's one group of people that might be looking at, how do I better save to support over the period of time? So that means that after this period, there are going to be a certain group of people which has considerable amount of savings that could be invested on something else. So that's one group of people. There's another group of people who are which we say that they are going to delay their purchases. And for example, if I'm planning to make a major decision of buying a car or buying a house or as such you would want to delay it for another six months period. So there's a group of people who are thinking along that period. There's another group of people who are actually looking for investments at this point of time. If you look at the stock markets across the globe and probably there is an expectation of the property prices and everything. So I have this cash reserve. So I need to be looking at how do I invest it so that I have a better return at a later stage. So they don't have any need for cash for immediate subsistence but they would want to channel it to somewhere else which gives them a bigger return. So if I look at my financial consultant or financial services you need to see from these angle which group is speaking to me within that path so that I tune my product according to that at the overall level. But irrespective, we see that there will be a shift to the online or the digital angle of banking and the financial services in itself. So that because people are more used to it because you cannot transfer money to a friend as a cash anymore. So you have to do it online at this period of time. So you are used to it. But the thing about moving to digital and online banking is it's not a reversible thing because you're already used to the convenience and you will rather stick with it. So this is what I would consider from a financial service assignment. All right, okay, very interesting. Because other industries can learn from this from the financial industries like how to make now the change, the adoption of new technologies that may be helpful in their favor to stick, how can it be in reversible? So maybe before a lot of companies did a lot of efforts to have people adopt new technologies. In this new situation, this lockdown situation people were forced to adopt that had not adopted yet. So I think the shift and the anticipation that companies then should make if digital works in their favor to put efforts on making it irreversible to focus on retention on that behavior. And so learn from the financial industry. So I see that we have many questions. We don't have time to unfortunately to answer all of them but we will take time to answer them online. When we can trace back who sent the message or the email, well actually we can answer all of the questions and send those two people that are interested. I will take one last question. I think it's the most popular question on top as a final question. That question is, are Asia did not follow the don't cut price rule? That is number two. So why was it successful? So in that sense, I think that cutting, so I don't want to talk about a race specifically. I think much more learning is from the fact that you in this period, a lot of the learning can be done actually in applying other marketing mix variables. So instead of easily cutting prices, now we are forced to think of what are the new products to be launched that are meaningful and relevant to this change situation. What are different channels to communicate but also deliver our product services? And so instead of only resorting to pricing and communication, I think this is the time that we would need to think about a broader strategy and have marketing more be involved in decisions on products and on channels and not only on communications. So with that, I would like to thank everyone, the support team, everyone attending. And especially I would like to thank our panelists, Jocelyn Pinto and Arun Menon for these fantastic sharing of their insights. And I hope that you'll stay connected, do stay and follow us for our next seminar, which is next week. Stay tuned and keep in touch. Thank you so much. Thank you. Thank you. Thank you, William. Thank you, Esb. And thank you all. Fantastic, guys.


Okay, you can start. Alright, so I'll start by showing my awesome Hello World app in red. Why not colors? Because I normally don't use ink. Okay. Okay, so it actually uses middleware called belt and the app itself is just an approach.  But the really annoying thing was that the API for the middleware and for the actual app is slightly different. So you can't actually do that. Because the middleware is automatically instantiated by the builder. You can extend the proc class. That would be one solution. Okay, and because it's already called right, it doesn't actually check that you're passing the end thing. So one thing you can do is you can just pass whatever you want here and it should still work. I think I need to restart it. It's actually still working here. So yeah, I guess the thing about red is that it's really super simple and it was probably even simpler than I thought it was before I started reading the code. But I guess one of the biggest gotchas is that the middleware can be order dependent. So if you have something like Warden, it will be depending on you having some session middleware before it in like the middleware chain. Yes, I always said that slightly different APIs for apps and middleware seem a bit unwarranted to me. If we're going to go with a super simple API anyway, then I felt like we should have the same API. It was slightly obscure to me at first as well. If you saw Confim.ru file, the contents of that file is actually wrapped in a wrapped builder when the code is executed. And that is everything I had time to prepare. Anyone else wants to present something before I get you to some more advanced stuff? No? See you next time now. Hello everybody, I'm new here. I just my first meet up here in Singapore. I'm also very new to Ruby. I just completed a bootcamp which ended just last Thursday. So I wrapped up something that we used but I didn't know anything about it. So I pulled up some recipe tutorials, read some articles. And this was basically the following tutorial by Ryan Bates which was quite a long time ago. So what I basically done is I put most of my logic in my app, Ruby. What puzzles me is certain things over here. So I read a documentation that you always need to finish your response. And this was what Ryan Bates did as well. But this is slightly positive to me over here because there's this. I'm not sure how this is different from this I guess. But otherwise I pretty much followed the tutorial and played around with it. I tried to do some vibe up to find out what the environment was and I learned a little bit about that. And one thing that I tried on this rack app was by using this middleware I guess called Builder. So it allows me to make the changes to the app without me having to restart the server. So this is something that when I use Sinatra or Rails it does for me and I don't know what is actually going on behind. So I learned something new. And then I, well there was this auth basic which allows me to just do some very simple auth authentication without using what I have to create a user model or anything like that. Could you increase the font size? Oh sorry yeah. So I guess how the authentication works is you just go through. Are you rack up? Rack up. Looks like I've broken my app. Well okay. Can you require a relative instead? Require underscore relative. And why I did that? Dot slash leave slash my app. Yeah that should work. Okay. Right. Is it 9292? Yeah. Here we go. And also following the tutorial you can also change the name over here. But for some reason I've already authenticated it before so it remembers. Incognito Mido? Sure that works. Yes. So I'm asking for a username and password which I've set here. Oh sorry. Not here? So let's add it. 12256. Like that. Yeah that's okay. That's my rack app. Pretty much. I can change the name. You can change the name between the display. Okay. Yeah. Yeah. What does it do that? So reloader allows you to make changes to your second server but what is the zero parameter there? That's a cooldown period. So by default rack reloader, I don't know how it works but it checks every 10 seconds by default. Oh okay. So if you set a zero then it just keeps doing that. I don't know how much processing power it takes. Okay. Yeah. Okay awesome. All right. Anyone else? At home I have MacBook Air and it has on the right side. Yeah. And MacBook on the left side. Okay. First I check this response class. Let's make it bigger. So this response class what it does is that a rack, every app needs to return an array of three elements. So first element is a status, the second one is the header and the third one will be the body. And if you just return the response you are not returning an array. You are returning the object of response class. Okay. And when you do response finish what it does is just it executes some block, it did it some stuff and then it returns these three elements, the array that you need. So that's why you need to call finish or you don't need to always create the response object. We can just return an array of any three elements. Okay. So I've got a simple app. Let me check if I can know what it is. Give me a second. Let me know what it is. Okay. So I've got applications showing that basically rack apps are nested applications. So what middleware does and actually middleware is like behaves just like an app. So you nest an app in an app in an app and then you can do each middleware can do something before calling the next level or after that. So I do here two things. I use two middlewares. First middleware is a random sleeper and it will wait a random amount of time between one and one second and then it will call the application. So first it will sleep and then it will do, it will call the next app. And the second one is time measure. Time measure first checks what is the current time. Then it calls the next application and then it adds the text. As you see, it adds two empty lines and then some text that shows how much time it took to run this application. So this code is quite lame. Basically time now minus, time now it will return in seconds. So because this will sleep less than one second, it will be always 0.0 something. So I just do, I multiply by 1000 to show this time in milliseconds. And now my app, so the hello app, the main application does nothing. It just returns the text hello. I haven't managed to see why I need to return error here. I don't know. It just tries to run each method on this, on the third value. So it needs to be an error apparently or a hash. I haven't checked it. So it will return a status 200. It will return no headers. It will just return this body. And now I build my applications in the rack in there. So first I use time measure. And I need to use time measure first to start measuring time. Because if I do it this way, then first I will sleep and later I will start measuring time. So it doesn't make much sense. And then I run my hello app. So actually I build an app that consists of three different applications. And then I run it. So let me. On my private computer, it runs Puma by default. Because I've got Puma installed here, I don't have Puma. The next server is still. And the next one in order is Webrick. So there is a hard-coded order in the rack that will always take Puma whenever it's possible. Okay? Okay, so it shows I responded in 400 in something millisecond. And now I refresh it and 450 here. So it will always sleep between zero and one second, a random number. And then it will respond. Okay, so let me. Yeah, so this app is basically very, very simple. I want to show you now the server and the handler what it does. Okay, I've got too many of these open here. So let's start with the server, the first file that we're supposed to read. So this one, basically what it does is that it parses all the options that you pass when you start your application. It doesn't do much more. It basically takes all the options, it parses them, adjusts them to the handler's format and runs the application. So the server basically, as you see, it has a bunch of these options. So you can do Evol, you can do Builder, Warnings, you can print some path additionally, et cetera, et cetera. This is super boring code. And it goes like this. And here, this is the end of that option. No, it's not, yes. Or this is the end of parsing that option. So this method is like 100 types of code just to parse different options that you can pass. Now, this one, I haven't really checked. And then we've got the start method. And the start method, you just call rack.rackserver.sh, it creates the new instance of the rack server. And then it will... Then what it does, it adds certain configuration. And this is super interesting thing. So you can call a global variable starting with a dash. But if you try to call the local variable starting with a dash, it will not work. So let's do it. So it works only with one letter name. I didn't check that. Yep. Okay, I have no idea if it's some special attribute of Ruby or not. If I do something like this, it says that this global variable is not initialized. Now, if I do something like this, yeah, it just doesn't work. And let's try one more thing. Yeah, this one doesn't work either. So the only case where you can start the name with a dash is the global variable. And it's only one letter. I guess it's some very, very old legacy code. Yeah, they have a lot of weird stuff with it. Also with numbers as well. Yes. They're like some numbered global variables that stop at a random number. Okay, no idea. It's something that I learned often when I read the code of some libraries that are, you know, quite old. The code is quite old. I guess that... Yeah, I think that's seven years old. The first thing I reacted to was that everything was a bit messy. And I think everything going with the approach of don't fix what's not broken. Yeah, I think so. The first commits are from 2009. Yeah, some of this could be refactored, could look way nicer, but it just not changed. So anyway, you parse all these options here once again. So first, that method that I showed you before, it parses options and it generates a hash, depending on what options you add in the command line. And then depending on these options later, you can change some settings. Now, it checks the PID. So it will, if this app is already running, if you provide the process ID and it's already running, it will run you an error. Then this is building application. So this is the... I think this is the builder class that we used in this example that will build the whole app. And it will basically return the application that consists of all the middleware that you provide. So this is wrapped up. Then it will demonize it if you provide it so that it will work as a demo in the background. You reserve the process ID. And then in the end, the last call that happens is the server run. So server actually here, it's not the... This is not the instance of a server class. The server variable is the instance of handler class, which is, to me, it was very confusing because I am in a server class here. So I assume that server variable is an instance of the class where I am, but no, it's a handler. So yeah. So now we get to the handler. And handler is an adapter between the application and the server. So as we know in Ruby, we use server applications to run our app. So we can run... The different one is WebRub, but we can run Unicor, which is, I guess, most popular than Puma, which is one of the few multi-fragment options, etc. And each of these servers needs to have a specific handler that will adjust to their racks requirements. So we have, on one hand, we have a framework like Rails or Sinatra that is on one hand of rack, on one side of rack, and it needs to adjust to the racks syntax and the way it works. And then on the other hand, we've got the server. So basically this allows us, it's kind of like a bridge pattern. It allows us to run any framework on any server. So Sinatra will run on Puma, Rails will run on Fin or WebRub, etc. Any framework that supports rack will run on any server that supports rack. That's the two-disk handler code. So the handler class itself does almost not just determine which server you are using. And that's it. It doesn't do much more, but it's quite a simple class. Basically, if you will provide the name of the server, it will try to guess what it is. So it will manipulate the string. It will change all the letters to small. It will, basically, if you provide some, if your name is not perfect, it will say it's in capitalized letter or you don't use the double problems, etc. It will try to find what was the handler that you're trying to use. And this class, this module actually, it's not even a class, it's a module. Based on that, it will try to fetch the server. It will try to initialize that handler that you're looking for. So here we've got default value. If it fails to understand what you meant, or if you do not provide the server, whichever you want to use, it will just try to guess based on the environment variables. So if you don't have any environment variables, and I didn't have any of these set, it just picks the first available from the list of Puma, then Thin, then Web Brick. So in my case it was Thin. I don't know, I think it is installed either with some framework or with Ruby right now. That's why it picks it, because I've never used it, actually. So I don't know why it's in my system. Anyway, so picking is that there is this function called try with require. So it tries to, so it changes the name of, as I showed you, it will change the name and then it will require it. But if it can't, then it will not raise an error. It will just go further. So that's why even though I don't have Puma, this try and require rescues the error. And it will only, I think if I say, if I add the warnings, it will say that it tried to load Puma, but it let it fail. So then it picks the next one and the next one. And only if the last one fails, then it will crash. And then with that function register, so it registers all the basic, all the handlers that come with RAP itself. So these ones are like CGI, fast CGI. These are all, this is all stuff. So basically RAP appeared, I think, in 2009 or 2008, something like that. Before that, there was no RAP, so people were running rails and in general Ruby scripts on CGI. Then RAP appeared as this module, as this piece between the server and the application or framework. And I think the passenger server was the first one to support RAP. So then everyone switched to this mode passenger that was actually the mode for Apache. And then more servers appeared like Unicorn and standalone passenger. And I don't know, there are a few more like rainbows, for example. So anyway, this module does, but it only picks the handler. And then what's more interesting is that what this handler does. So each of these servers has a bit different syntax, a bit different options, a bit different way of starting the application. But basically the goal of the handler is to start the server with the application provided there. So webrick is pretty simple here. We've got just one method that is called run, and we determine the environment, a few options that we need. So for example, webrick requires the port option. So we check if it exists and if not, for webrick the default port will be 8080. Then RAP has an option called host, but webrick the server doesn't recognize it. It uses bind address. So we need to change it. And basically this is what we do in the handler. We transform the RAP syntax, the RAP options into the syntax that server understands. And then what webrick does is that it basically creates the new options with the server. It mounts the application under the root path and then it starts the server. So I will show you one more that is thin because it's a bit different. So thin doesn't mount application. Application is one of the arguments that you start when you create the server. So we put the host, port, application, and then options. So it's a bit different syntax. But thin, as you see, it's like what, 630? This is the whole class. There is nothing more. 36 lines of code. So this is once again very simple. And then the last one that I have is Puma. Make it a bit bigger. And Puma is a bit longer. So Puma has this whole configuration object here. So we need to call... We basically create a configuration object that will... This is not a hash. It's a custom class. And then this config goes here. So this config contains everything. This config contains hosts and the application to see if it has custom methods. Or maybe it has custom methods that are, like, port, etc. So... Yeah, okay, yeah. And then we create this launcher. And then we have a bit different method we call it launcher run. In other cases, we have launcher.start. Any questions so far? No. So it actually runs server first before it runs the handler. Probably not the other way around. Because I was thinking that the handler picks the server and then it runs server.rb. So it's the server.rb that calls the handler. Yes. Yeah, that's what it does. So... So server here... It chooses the handler. So server in the end... And server.run calls handler.run. Right. Yes. Okay. Yeah. That's it regarding the handler.run, I guess. I will show you a few more things. So here in this middleware you've got... There's no middleware library here. So it's hard to let them know what is really middleware in the rack. But what you can do is you can go to Rails and then in the action pack... Action pack consists, among others, of action dispatch. And here you can see how different middlewares work. Not all of them are rack middlewares. They are just thrown here. But for example, one of the bigger ones is cookies. So here you've got the method call. And as you see, it returns in the end. It returns status. It returns header. It returns body. So what cookies middleware does in Rails? First, it calls the application. And then later, only later, it updates the HTTP header. And if you see the line, it's line number 570 something. So this is a huge application. There's lots of documentation, but it's quite a big application here. There's lots of stuff that is happening. Yeah, it has a bunch of custom modules and classes, et cetera. I think that this itself could be some separate library. I've seen libraries that are 50 lines of code, and this is 10 times bigger. So you can let them check the other stuff. Remote IP, for example, this... Ah, I didn't open Remote IP. Yes. So Remote IP is simpler. It basically provides you IP. Yes. So this is what it does in general. This is the core of it. So it adds the IP to the environment so that later you can call request.remoteip in your application. So all of this stuff, all 200 lines of code, what it does, it calculates, it transforms the IP to the format that we can understand. So Rails IP right now, the default stack, if you do not remove any middlewares, it runs around 60 of them. So there are 60 levels of Rails application before it gets to your controller. So it will add this IP, it will go through SSL, for example, at some point, the middleware will not call your controller. It will just return something up. So for example, you've got a middleware... You can have a middleware that will return something instead of going to the controller just because you want it to be super fast. So you can put this middleware somewhere between your two middlewares. In the Rails app, so you want the middlewares that you need to work and then the ones that are not needed, you can just skip. Your middleware will not call the app.call, it will just return a bit up. I'm not sure if I know any example here, the static one. No, it does, it calls it. So for example, SSL, you require SSL, right? And if your request goes for SSL, then you will call this application. But if not, you will try to redirect. So if a user makes a request and they specify the HTTP protocol, it will not get to your controller because it will need to go through all the 60 or something layers. So what it will instead, it will go through like 10 layers or so and this layer will stop it. It will try to do something else, yes. So I use, for example, I think one case that I use, middleware is translations file. So we want to fetch the translations file, file that consists of all the keys and phrases for certain language and we want it to be as fast as possible. So we just put it somewhere in the list of middlewares. So that it doesn't need to go through SSL, middleware, it doesn't need to go through a bunch of other stuff. But because of that, it returns in like 5, 7 milliseconds instead of standard 50 or 100. Here I've got an example of the middleware that does, it's not really a middleware. Oh no, it does. It also does app.com. I think I've seen one that doesn't do it. So it seems that not all of these are really behave like middlewares, but I might wrong, I just thought that I've seen something that doesn't behave this way. Okay, and I've got one more thing to show, which is the, I didn't mention it in the description, but I checked it later and it appears to be interesting to start. So Builder is a class that allows you to build the whole application that will consist of multiple apps and middlewares. This is what I use in this example. So this is what I use in this example. It's basically, it's a small DSL that composes the application. So as Ted mentioned, it's already dependent. So it processes a line by line and then it runs the application in the app. So let's see how it works here. This is quite complicated and to be honest, I do not understand everything here because it's a DSL, so it tries to decognize, it basically parses the code that you provide there. And, okay. So first function is use and we've got this use instance variable that will keep all the apps that we, it will keep all the applications that we are using, all the middlewares that we are using. Let me try to find where is the first time that it appears. Okay, so it starts as an empty array and then we push more things here. So, I don't know what this map does here. I think we can map it to a certain route. Ted, you have an idea? Yeah, yeah, map is for routing. Map is for routing, yes. But this is for, this is, you can provide map for use. So I think you can map, so when you map something to a route, you can use custom middlewares for that routing. But I'm not sure. Let me go to the beginning. So you've got map that starts as nil and where do we assign it? Okay, yes. Here is the example. So see, so we can... So is it so that the routes will be available to the middleware? No, no, no. This middleware will be run only in this, in this route. Only you can... Yes. So for example, you can do something like admin use out. Right. Yeah, something like that. So this builder allows you to specify middlewares not only on the top level, you can do top level as well. So this one will be available everywhere and this one will be available only, not available, it will be run only on this route. I don't know if it's possible to nest the mappings. Because let's say that I want to do admin here and then I want to do something like not to the user. And then I want to use another middleware but I'm not sure if it's possible or if I need to do it here and then I need to repeat those stuff. So I'm not sure about it. Anyway, we were in this method called use. So this method will add this particular middleware or app that we provided with all the arguments to the list. So then it will be all, will be called in an order that we provided. Now, so this is use and there is map. So map only creates this variable and assigns this block. So executes this block in the route that we provide in the path that we provide here. So this is the second method and then the third one was run. Okay, so run basically assigns this application, the middleware application that we provide there as the main one. And then and then this is what creates the application in the end. So if we have some map, we generate it. So this generated map will be our main application and if it's not, we just have the main app. So in my case, I can just do something like this because I will not be using or I can be using builder. I can do it without or with the builder. If I don't have any maps like in this application, I will just use this application. Then what we do, oh, I have no idea what this article does. If someone knows who does the article, I don't know why it reverses it. So this use will be consisting of all the middlewares, right? But then we reverse it. So it starts from the last one and then we inject. Ah, of course. So, in a second. Okay, so we need to run we need to go to the last one so that we will have something like nested how to explain it. So the random sleeper will have the hello app as it's app to run. So it will be something like this. Something like this. So that it will take we will initialize it with this argument. And I think we need to do it from the end because if I want to provide the hello app as the new hello app, the instance of hello app as an application to be called by a random sleeper I need to create it first, right? So first I create this object and I provide it as argument here. And then, because I create this one I can provide it as argument here to the time measure. Yes, exactly, yes. So each next application is an argument to be run by the previous one. Yes. Okay, so that's why that's why we reverse it and we inject it then starting from the last one. And then we've got then this is our complete application and in the end we have the warm-up. Don't know what it is. No idea. Does it? Okay, okay. Yeah, that explains a lot. Okay. So I believe that we want to before we start serving the request we need to do something for the application. So for example imagine that your application you want some data before it serves it to user. So maybe this is for warm-up use. Or even caching. Caching, yes, exactly, yes. So this is like a preparation for the app on the start of time before it starts before it starts serving the request. And this one. Okay, so this one maybe it checks if the application starts successfully because it creates a mock request and it just checks it's work. I don't know. This is just my guess. I've never read this option before. So anyway we call this and then we return the application and this function to app is called in. So builder.app will basically create an instance of this builder that will later that will later create create all this nested all this nested structure. And now let's see okay. So this is already no. I never called builder.app in my code. So I don't know where it is. Okay. I do builder.new if I do builder.app will it work? Is it just an alias? No. It's not an alias because I do new and then it but then it calls to app. But I don't call it manually, right? Here, if I refresh the new I do not call to app. So I have no idea okay. Yeah. So if I provide just new and then I provide block. So this block will be evaluated within this instance. Okay. So what I do is okay. Let's see if maybe run does it. No. No. Okay. I'm lost here. If someone figures it out later let me know. Write some comment. I don't know why it's used up here and what is why it works with the new if it's the same with with app. Okay. I think this is all I prepared for today. Any more questions or? I'm curious now why my application works. Because even in Aaron's talk, right? He said that the body must respond to each. But in my app it works even though I just have a string. It works. You pass the string and it works. Yeah. But for you it didn't write. It didn't for me as well. Yeah. So I wonder if I just ended up with a server that is more forgiving or Okay. If I run all the middleware it will work. Okay. Let's see. This will work. No. It doesn't work. Okay. Which server did you get? Thing. Which version? The newest one. All the newest versions. No. I have no idea. Okay. Let me just double it. Oh. Yes. It's there. 1.6. 0.3. Okay. Okay. How do I provide the hand here? Let's see if I do it with library. But what is the option now? Uh... This step also says it was a master for straining Ruby 1.8. I'm removing Ruby 1.9. But I'm not using Ruby 1.8. Yeah. Exactly. Yeah. Yeah. 1.7 knows it. I don't like it. Okay. Let me start with library. Yeah. Because I know Aaron said for sure that the body must respond to it. For me, it's too much. No. Same here. Okay. Let's... Let's see if that will help. 1.7. Okay. 1.7. Not that. The computer is broken. I broke it. I broke it. If I just do... It needs to take the environment as an argument, I guess. Where? As an argument, I guess. What did I do wrong? I need the curly brackets. What? You need the curly brackets for your... Okay. No idea, man. This is so scary. Okay. What if I do without the builder? What if I do just this way? No? Still the same? Yeah. Are you sure you didn't override the string class to respond to each? It's still working. It's still working. We fined. 1.7. Okay. No idea. You don't like the string to try? I'm just trying to see if I do something different. Okay. It's supposed to work, right? It's supposed to come to each method. I'm not running Ruby 1.7 for sure. Runs Ruby 2.3. The version of the server is 1.7. Yeah. Is Ruby 2.1? Yeah, still works. For some reason. Which version of Ruby do you have? 2.1. I've got 2.15. Let's try another one. It's running 2.3.0. Okay. Okay, this one I will run. It shouldn't make a difference. Oh. Wait, wait. I think I... Yes. Yes. That's positive. Let's try once again. Hey, it works. So, Ruby version. Ruby 2.3? Makes it. Let's try with Ruby. I'm just glad I didn't... You didn't go crazy. Yeah. That's good. What? Now we have another question we can begin with. Is it about the basic object being arranged or something? Different implementation of each. But strings should not implement each even in Ruby. Yeah. It doesn't. It doesn't. No. Okay. Yes. Something behaves weird here. Ruby thing maybe has some special case in there. Like if you're using Ruby. I don't know. No idea. I will check later. Do you know which version you used before when you did it? 2.1.5. Yes. It's the same. Okay. We can check in the rack of actually. But I didn't know where is that. By the way. Where is that each? It's in the body proxy. No, not here. Not here. You don't see something here. Just make a special case to address the body. To what? This method is a special case to address the body square. We are applying a special case for each function. To say adding too many methods. But what is it? What is the name of the body? Or the number? 434. Yeah. So the method is Oh. There is a method missing here. Or no. But the method missing is on the body proxy class. Not on the string class. Okay. Had it. 2012. It's on the body proxy thing. Oh yeah. So it shouldn't work without a builder. And you returned just straight string. You didn't use the response class. So you used the response class. Right. Yeah. Yeah, so somehow it turns the string into a body proxy. Yes. Somewhere. But I don't know where. Yeah, but the thing is that the body proxy. Each calls the body. Each. Yes, exactly. Yeah. I think we will not figure it out now. Yeah. Just leave it as an exercise. Okay. Anyone has any more questions or want to show some piece of code or that's going to be. Okay, cool. Thanks for coming then. Thanks to Thinkabox and then for hosting us. I will add the issue on the github to Ruby SG so that we can decide what we are going to do. So far we've covered sprockets, concurrent Ruby and today we are. Thanks once again. Thank you. Thank you.


Today we are delving into the battle between two fundamental chassis designs. Marnacock and LadaFrame. A chassis is the framework or structure of a vehicle that supports and holds all the essential components together. It serves as the foundation for the vehicle and plays a crucial role in determining its overall structure, strength and performance ensuring stability and safety during operation. The chassis design influences the vehicle's handling, stability and overall performance. The most popular chassis designs a Marnacock and LadaFrame. A Marnacock chassis is like the exoskeleton of a car where the body itself provides structural support. On the other hand, a LadaFrame is a traditional separate frame structure where the body is mounted onto a rigid frame. Each design has its own strengths and weaknesses. Let's compare these two in each and every aspect. LadaFrame chassis consists of two parallel longitudinal rails connected by cross members forming a ladder like structure. The body is mounted onto this rigid frame and the frame supports the vehicle components. The engine is usually mounted at the front of the vehicle between the longitudinal rails of the ladder frame. In some designs the engine may be positioned longitudinally or transversely depending on the vehicle type. The transmission is mounted adjacent to engine forming the powertrain assembly. The transmission is typically aligned with the engine to maintain a direct power transfer. Front and rear axles are mounted to the frame with suspension components connecting them to the chassis. Front suspension components such as control arms, coil springs or torsion bars and shock absorbers connect to the front part of the ladder frame. Rear suspension components which may include leaf spring or coil spring and shock absorber connect to the rear part of the ladder frame. In rear wheel drive and four wheel drive vehicles the differential which is part of the drivetrain is often located at the rear of the ladder frame and it is responsible for distributing power to the wheels. The ladder frame is often preferred for off-roading adventures. With its robust construction and separate frame rails the ladder frame offers unparalleled durability and strength. It can withstand the rigors of off-road driving, absorbing shocks and impacts without compromising structural integrity. While the monocoque chassis may not be the best fit the monocoque's lower ground clearance and limited articulation can hinder its ability to traverse uneven terrain and obstacles. On the other hand, monocoque chassis is used in most standard passenger cars including sedans, sports cars and luxury cars. Monocoque chassis is often constructed using sheet metal forming techniques. Large sheets of lightweight, high strength materials like aluminum or composite materials are used. The sheets undergo stamping and eye casting processes to achieve the desired shapes and contours. These processes help in forming intricate structural components of the chassis including panels, pillars, beams and supports. The body panels themselves contribute significantly to the chassis structural strength. Components like the floor pan, roof and side panels are integrated to form a single cohesive unit. The monocoque chassis undergoes finishing processes such as painting or coating for protection against corrosion and to enhance the overall aesthetics. The engine is typically positioned at the front of the vehicle and specific mounting points are designed to accommodate the engine. In front wheel drive vehicles the transmission is often combined with the front axle into a transaxle. This unit is integrated into the monocoque structure usually in the lower front portion of the vehicle. In rear wheel drive or all wheel drive configurations, the transmission may be located toward the rear of the vehicle, close to the rear axle. Components like struts, control arms and sway bars for the front suspension are attached to designated mounting points on the monocoque chassis. Similar to the front suspension, rear suspension components are mounted to specific points on the monocoque chassis. Monocoque chassis often incorporate crumple zones at the front and rear of the vehicle. These zones are engineered to deform in a way that absorbs energy during a collision, helping to protect the occupants by reducing the abruptness of the deceleration. It's worth noting that the Range Rover's Defender switches to a monocoque design brings various advantages. It also sparked discussions among enthusiasts who appreciated the traditional ruggedness of the previous Defender's body on frame construction. Land Rover has aimed to balance the vehicle's heritage with the demands of the modern market through the new monocoque design. And finally, if you're prioritised on road performance, fuel efficiency and crash safety, a monocoque chassis is a suitable choice. If you require durability, off-road capability or customisation for specific applications, a ladder frame chassis may be more fitting. If you enjoyed this video, don't forget to hit that like button, subscribe for more content and let us know your thoughts in the comments below. Thank you!


Hey guys, Shea Bear 1000 here. I know I've got some funny stuff on the security cams. Well the other night, let me just give you a backstory on this. You know, I've done some weird and funny stuff too that I have uploaded. I'm going to upload this because this happened to Monkey. The truck was sitting right about here where I'm standing, back then here beside the vet. I was sitting over there on the bench and she kept looking over this way. It was after dark. She kept looking over that direction. Well we got a lot of armadillos around here. Well there's a couple baby armadillos in there. I didn't know at the time but something they made and they're loud.  You won't be able to hear the scream because I don't have the mics. I don't have mics on the cameras yet. But trust me, she screamed and in about three steps she was off the tailgate of the truck and in the house and then a few seconds later you see her peeking around out the door and I'm sitting there laughing at her. So anyway I'm going to throw that clip in here. I'm going to loop it a couple times for you and then slow it down.  I just wanted to share that with you so check this out. So I told her I was going to upload that by itself. She was like no don't do that. I said no because she made me do it. Remember when I thought I thought I had a spider crawling on me and I jumped real big? She made me upload that so I'm going to upload this for I went out later and you see me shining the flashlight around up the flashlight around up there in the camera but all it was I found because I heard them going out towards the road and they come out by the road and there was two babies they were playing. One of them was standing up like like squirrels do and they was smacking at each other so they were just having a good time so it was just too big. Too big. They made out a racket though. I mean I was kind of wondering myself but that's what it was armadillo so I just thought I'd share that with you guys. Love you monkey. Thanks for watching Sheba the myth man legend. Hopefully that'll brighten your day up a little bit. I'm gone for now.