From Goa Festival, Goa Fest, we have Immanuel Upputru with us or the founder and chief creative officer at EFG Brand Innovations. Today we will be EFGH Brand Innovations. We will be chilling out with Immanuel in Goa. So Immanuel, apart from being in Goa on a typical weekend, what do you do? A typical weekend I like to spend as much time as possible with my family, do whatever comes my way in terms of shopping or chilling or helping with the household chores and stuff like that. Very much. And what is that last show that you have been watched? I am kind of watched in Lube, it is another app, a director called Lars Von Treff, so he is really a Danish director, he does food stuff, I am trying to watch him. So I am trying for Netflix right now. What is that go-to food? Go-to food? Yeah. Go-to food is very easy like eggs and all that. And where is your next vacation going to be? Next vacation I think, I think last year was like the last we went to Europe for about 2 months, so I spent all the money. So I don't know where the next one is going to be. Where was the last one? In Europe, it is about 4-5 countries forward for fun. Oh, noise. And the last question is, one skill that you want to learn this year? Once. That's a tough question because the moment I learn something, something new comes up. Right? So last year it was all about metaverse metaverse and all that kind of stuff and dabbled into NFTs and all that kind of stuff. So this year I am thinking of AI, I hope I pick up something about the AI and then how I am going to learn mid-journey and GPT and chat GPT and all that kind of stuff. Playing around with it. Nice.


Gwelch i gweithio. Fawr ydych chi'n gweithio ar y gael y gwirioneddau ar y gael, o'r cymhwylliant, oherwydd, mae'n gweithio'r gael cymhwylliant ar y Gweithio Ieach. Mae'n gweld i'r moment yma, oedd yma'r gweithio'r cymhwylliant yn gwybod cymryd. Mae'r gweld i'r Gweithio'r cymryd ar y Gweithio Economech. Mae'r gweithio yma'r gweithio'r gweithio, You'll know that there's a particular man of the moment in this country who is taking the reigns of the horse and driving the agenda forward in terms of action on climate change. And that is Governor Jerry Brown of the State of California. Mr Brown is a 39th governor of California and the longest serving governor in California history. Yn ein anodd yn cymdeithasum, roeddent yn Gweinidwar sydd yn Nosiau'r tydd Gwt Iran, na ymwneud yn gyfan cyd-grôl Gwyrdddiad Arfermwy, yn ymlaen i'r Gwyrddiaeth, yn 2030, yn gych chi'n gweiniddiad eich ardal yn 2020. Yn i'r progelf, mae'r gwybodaeth yn gweinodd sydd yn cwil, mae'r gwaith efallai, mae'n gofyn o gyfaint â ddod ar gyfer gweinidwar, a'n gweinidwar yw'r rhagorol beth hefyd fel yn cael ei cyfaint adroddiadau, the and, is why he has garnered such support behind him for the momentum that he's creating. After Governor Brown has spoken, we will be receiving Minister Oolo, who is the ecology minister of France, and for many of those of you who also follow the agenda, you'll note that France is getting quite active in this space too. But let's start with you sir, Governor Brown. mor hyn yn fyddi'n gwahoddiadau i ddiddurio'n agendidol a gweithio â bod efallai, neu ond rydw i'n credu i'n ddiddordeb ar hyn. Felly dwi'n porno'r gyflaid, byddwn yn unrhyw pwysig yma, ond yn San Francisco yn ffawr 2018, yma hwnnw'n gweithio'n gweithio'r ddiddur i altru sicrhau o atho meddwl 180 groffnau i이면au o'r regio a llyfr ychydigion, such as Quebec, Ontario, Washington State, California, New York, many, many others, Bodden-Watenberg, all these sub-national jurisdictions have committed, signed on to the under two MOU to make their commitment to achieve the goal of the Paris Agreement to keep the temperature under two degrees or, in the alternative, reduce their generation of greenhouse gases to two tons per person. That's the goal and we're going to check in next fall to see how we're doing in the meantime encourage people to do as much as possible to accelerate. So the point is another is to have a measuring time, a time to say where are we and in the face of Mr Trump's withdrawing his efforts, if not the country, from doing anything, the sub-national group's states will do things. And I think even though there is a big problem when the President of the United States decides to, well, there's nothing to do because it's all hoax, that statement itself is such an incredible assertion of nonsense that it gives people pause, but only pause intellectually, but in practice we're taking renewed action. And we realize that if each person here who has some role to play and each state and region who can do something has to step up and they are stepping up and many provinces in China are stepping up along with the national government. So with the march of the political sector at the sub-national level, with the powerful assist of business and other non-profit groups, we can get a lot done. We're not going to get everything done, but we can really move the ball forward in a very important way and that gathering will help each of these states and provinces to focus, see how they're doing. And the most important thing that we have to do in terms of measurement is know where is the state? What is the greenhouse gas annual emission? What is it? And then where do they want to go? In California we're about 440, or even that I'm not satisfied that we're precise enough, but we have a goal by 2030 to get to 260 million tonnes per year. That's still a lot. We've got to get to zero by 2050, but at least if you have a number, you know where you are in terms of the tons of emissions of heat-trapping gases. Then you can have a plan and measure it to go to another spot of lower carbon intensity. That's our goal and I do think when we say accelerate, that conference will accelerate, but what we need in America, I can't speak for other countries, is a greater presence in participation by business. We have a lot of people from business, but I am not a client scientist, but I am a political scientist and I've studied American politics as long as anybody in the country. The role of business, of corporations, trade associations, money, interacting with government is very, very powerful. So what we have to do is up the presence of the corporate sector in a very serious way and that will bend the political arc in the direction of decarbonising. And then the states will step forward in California for the first time we had a significant Republican participation. In fact, to get our cap and trade bill, which is significant in a number of respects, but to get that bill we needed two thirds vote because it's considered under our constitution as a tax. We didn't have all the Democrats because in the way this party works, some are over on the left. As in Republicans being over on the right, but we were able to get most of the Democrats and we got a number of key Republican legislators that put us over the top. And as far as I know, in recent years, this is the first time in a major jurisdiction that Republicans identified as Republicans said they were voting to reduce greenhouse gases because of the danger of climate change. And they did that because their own political consultants and surveys said the party has been sinking and they need in public support, they need to do something to get more on the side of the environment and climate change. So that is a breakthrough. Now, California is not, you know, Texas or West Virginia, but they were Republicans and they represent some very conservative states, conservative counties, parts of California, highly conservative Republicans joined in this effort as did the Farm Bureau, as did the Roundtable, as did the Chamber of Commerce, as did most of industry. So industry moves the ball together with whatever the ordinary supporters of climate change might be. So we got the fall conference in 2018 and we can accelerate things with the participation of the business sector. And then I think the others will come along and we'll get it done. And before long, we'll have, you know, Washington will be on board too. I'm very clear about that, so anything else I can tell you, that's pretty much in a nutshell, there it is. Governor, that's fantastic. You said so many interesting things in there, but the idea of it being the political scientist, not the climate scientist, wearing your political scientific expert hat. If you could somehow bring together those businesses and the money and some of the politics, as you've described, into a kind of a collaboration or a partnership, something that we don't have yet, what do you think is the missing piece? A key business executive is joining in. We have some, not enough. And we had a political, we had a very important politician who was the leader of the California legislature. And he said, money is the mother's milk of politics. So we need the money, which is in the hands of business, corporations, CEOs. They're playing with the money. We just deal with the lowly taxes. So we want some of the profit and loss kind of people to join in. And you have a lot of them here, but we don't have enough. We haven't hit the critical variable, the critical mass to get the job done. So if we get business, we'll get the politicians. That's the way I don't want to overstate the abject dependency of politicians on money. I'm not going to overstate it, but I don't want to understate it either. And I know where of I speak. That's all. And Governor, you have so many kind of business representatives here and those who will be watching this streamed. What would your message be to those who say, yeah, but I'm not sure, you know, I've got to go which way the wind blows or the boss does. I've got to convince them it's not compelling. Well, what is compelling is the science and the science is getting better. And there is a non-trivial possibility of an eight foot sea level rise. That may be five, 10 percent chance and we don't know. And every couple of years, the predicted sea level rise is getting higher. So the news is not coming in better as science gathers more research, rather it comes in worse. So any fair-minded examination of the science of climate change would tell us the risk of catastrophic disruption is not acceptable. Therefore, we have to take action. And the action, by the way, is not trivial. We have to take, we have to get to zero carbon emissions in the world. So let's not sugarcoat this, got to get to zero. And after you get to zero, we got to extract and sequester another 20 or 30 million tons out of the environment is going to take trillions of dollars of research and investment in technology breakthroughs. This is a big deal. Now, I also want to say, since I said I wasn't a climate scientist, I was a political scientist. I'm also kind of a half-baked classicist because I studied Latin and Greek. I've studied the ancient Greek history and Roman history. Both were fabulous civilisations and they both collapsed. So be warned and don't rest on your profitability. You have to invest a small part of that profitability in dealing with climate change, and if you do that, you'll find the political leadership will follow. And we can build a consensus, which we do not have at this point, but we're not that far off. If I look back five years, we've come a long way. We've come a long, long way and you get up, you get downs. But I think the trajectory is positive, but the slope is not steep enough. That's kind of scientific, isn't it? Wonderful. So for those of you who are in the room, if I hear you correctly, Governor Brown, of those of you who'll be watching this on live stream, there is an invitation for those business executives, for the CEOs to come to the meeting in September 2018 for action on climate change. Yeah. And, you know, the make one more concrete point about climate change. The heat trapping gases that raise the global mean global temperature also have direct pollution effects. The Chinese are responding because the toxic air pollution in Shanghai and Beijing and other places in China. That's the power. If you can link the poison of the air pollution with climate change, you get real action. And we have a good historical example of that, California. Why is California so aggressive in reducing greenhouse gases? Because we have an air resources board and a set of institutions and policies that were built built up out of the terrible air pollution called smog in Southern California. And that smog was sufficiently unpleasant that politicians of all parties joined in the consensus to do something. Starting with Governor Ronald Reagan when he was there and going right through to another Republican Arnold Schwarzenegger who signed our first greenhouse gas reduction laws. So the key, as my wife tells me, is not to talk about these abstraction of climate change, but talk about real pollution, real asthma that kids are getting, real bronchitis of the elderly. And then you can get to the forest fires. The forest fire season in California is months longer, it's almost year wide now. So there are a lot of feedback effects from the change in the climate that are very concrete. And if we take that understanding and that perception and we can link it with hard boiled business leaders and they're joining in with the willing political forces, we will spread and we can get it going. But we have to accelerate. The rate of change has to be not only positive, it has to be a positive rate of change. So we've got to get better, faster continuously. Fabulous. I can't think of a better way of setting out acceleration for public, private partnership on climate action than you've just done. Governor Brown, thank you so much. And if we can, if we can now welcome Nicola Ulot, he's a Minister of Ecology and Solidarity transition. Minister Ulot has responsibility for climate, air pollution, energy and transport in France. Welcome, Minister. Thank you. And on the 6th of July of this year, many of you might have noticed, but some of you might not have done, but Minister Ulot announced the French government's five year plan to outlaw all petrol and diesel vehicles by 2040, which is part of the attempt to make France carbon neutral, I believe, by 2050. So there's some serious work going on with our colleagues from France. We're delighted to welcome you, sir. And as you know, this discussion is very much about the cooperation between business, governments, cities and states, as Governor Brown was saying. And we've just been hearing about this event in 2018 and to accelerate action on climate change that is being hosted by Governor Brown in California. Now, in France, it'll be two years since the Paris Agreement in December of this year. And I understand that there's some plans within the French administration to also bring together actors to accelerate action on climate change. Maybe you can tell us about them. First, thank you and sorry for my delay. But we were with the French president and Mr Trump. So take more time because we have a lot of things to understand. And I'm sorry if you don't understand all what I will say, but my English is poor, but I would like to use very simple words. First, the best solution is to believe to the transition. Because ambition works. If you scale up your ambition, all the door will open. But the best thing is to be, I don't know if the name, the word is the same in English, coherent, la coherence. What I want to mean, what I mean. What does Shantist told us if we want to succeed in the climate fight? To live underground, 80% of the fossil energy resource. So how can you understand if you put a target as we have done in 2050 to be neutral in carbon? And live to allow a new exploration of gas, haul, hydrocarbure is not current. So the first thing we are going to do, it will be my first law because I just arrived in this government five months ago. I crossed my finger because I must show this law at the parliament. It's to ban definitively at the time this law will be promote good to stop all new pyramid for exploration and to don't reconducting exploitation after 2040. It mean what? It mean it give to the economic actor a target they will know at this time that will be irreversible, no more gas, no more haul. And in the same time, no more car will use thermic engine. And you know better than me than what economic actor what financial people want. They want to see far and then the rule don't change every year. And in the same idea of coherence, the price of the carbon will grow up. We're already at four forty eight Euro the ton and we want to grow up until 100 Euro the ton. What we will do with this tax not to put only in the box of our budget, but we use this tax to help people by instance to change their car, by instance to protect by the thermic of the house of their flat. So that's what we call the currents. And of course to help during the time of the transition, the new energy to give some subside, of course, to renewable energy, not for a long time, just the time to change of scale. Because maybe that's the same here. You we always are. It will not be possible. It's not possible to response to the what we need like energy with renewable energy. See what happened and you know in California what is the price of the renewable energy and specifically with the wind turbine to grow down and then so does the same. The same people who told us few years ago electric car is not possible. Same people who say organic food is not possible. If you don't believe to the thing, the thing will never happen. What see what happened in California and what happened in China? Do you think China lose time now they will go very fast and all the targets they had they go faster than this target. So I think there is three world war important. Previsibility, irreversibility and progressivity. Excellent. That's a pretty comprehensive route map to 2040 that you've just set out. And we understand that this meeting in December that you'll be conducting, I guess, will bring together as Governor Brown was saying, the private sector, the business governments to discuss these these activities. I have a question. Great. Was the 2040 date for banning combustion cars? I take it it will not allow any combustion cars after that date. How did you arrive at 2040? Why not 2037 or 2043? Was there was there a careful number or did you just kind of throw it up in the air and say 2040? You know, it could be 41, 39. But as our target is neutral carbon 2050, I think it leaves some time maybe if they have not finished to just finish. But now it's a good a good scale. But before we have also other target by instance in 2030, we have an obligation to have 36 renewable energy. In the same time, we have to reduce by to our consumption of energy. So if we succeed to all this target, we will succeed. But we will have to reduce our consumption. We have to develop massively our renewable energy, of course. And in the same time, we must find solutions to use less and less gas. But to do that, you have to introduce positive advantage to the low carbon economy and what you can use also. Use the public market. I don't know if the name is good in English, but if all the city, the state, the region, their public market by low carbon economy, you can, of course, dub the transition. Fantastic. These two are going to be having a conversation, as you can tell after this public discussion, probably swapping some dates and times and trajectories from the sound of it. A little snapshot there of the acceleration on climate change action that is happening both in California under Governor Brown's leadership and in France under the new government of Enmarch and with Minister Oolo here. Both of you, we could talk for another hour, I'm sure, on this. Can I say something for 12 December? So much more to get on. Last word, 20 seconds, sir. No, very fast, because it's the same mind at what you are going to do in California, and we will be very happy to be there. President Macron wants to have an event at a high level to speak about financing because we need to be very creative to accelerate the transition and also to don't forget the adaptation because we are speaking and now what happened in Caraibb and everywhere in the world, they need a concrete answer. So that's the idea of the meeting in Paris. Is that December the 12th? 12 December of this year. So a high level meeting on finance, including for adaptation, in Paris December the 12th. I'm sure if people are interested to find out more and bring their expertise across the public and private, they can get in touch with you and your colleagues. Ladies and gentlemen, if you just give me a chance to thank these two gentlemen for their leadership on accelerating climate action.


The death-cap mushroom, ammonite aphaloids, is one of the deadliest species of mushrooms on earth, responsible for over 90% of mushroom-related fatalities. Its primary toxin, amanotin, is highly potent and has no known antidote. In this study, researchers discovered that a protein called STT3B is essential for the toxin's activity, and that a compound called indocyanin-green, ICG, can be used as a specific antidote. Using a combination of genetic screens, computational analysis, and in vivo testing, they found that ICG blocks the toxin from binding to cells and prevents cell death. This discovery could lead to the development of a new type of antidote for people who accidentally consume the mushroom. This article was authored by Bei Wang, Arabella H.W.A.N., Yushu, and others.


Hi, everyone, I'm Michael Blyve with Firebase. And I love using the platform to build web applications. It's amazing the way that you can compose simple elements together, and it becomes a fast, responsive, fluid front end for your web application. But on the back end, the story is a little bit different. Sure, it starts out easy. I think I'll just throw some code together, plug it into my front end, and everything will be good to go. So let's start with something like auth, right? Well, let's see. I want to have signed in from Facebook. So that's OAuth 2, but I want to support Twitter as well. That's OAuth 1. Then I want people to be able to link both of those accounts together. And I guess I'll need a database. So let's see, Postgres or MongoDB. Let's see. Then I need to build API servers that talk to the database, and then the clients can talk to those. But my API servers have to scale as my application grows. OK, so that's the database. Oh, wait, but I want it to be real-time. So that means that I also have to run socket servers that sync the changes from one client to another client whenever a change happens. And let's see, yeah. And I need to build an administrative back end so that I can look at the data in my system and make changes. And yeah, so there's my back end. Great, except actually that's not my back end at all. That's just all of the scaffolding that's required to start building my back end. So I know what you all must be thinking. There has to be a better way, right? Well, thankfully there is Firebase. Firebase is an integrated suite of products that helps you develop your app, grow your user base, and earn more money. Now, with Firebase, you can do more than just use the platform. You can use the platform and lose the back end. Are you tired of implementing the same authentication system again and again? Firebase off makes all that go away. With one step, you can have authentication with Facebook, Twitter, Google, email and password. It all just works. It's 2016, and users expect more from their applications. Pull to refresh is unacceptable. Pulling is slow and unoptimized. If you want real time, you have to build a complicated back end, right? Not anymore. The Firebase real time database takes all that pain away. Connect to the database directly from the browser. Sync changes in real time to every connected client. Take all of those refresh troubles and throw them away. Now, have you ever been in the situation where you spin up a server just to proxy traffic from file uploads from the client to your server and then to a cloud storage bucket? Not anymore. Firebase Storage lets your users upload directly to Google Cloud Storage from the browser. And you still have total control over who uploads what and where. So now we've got Firebase Auth, Firebase real time database, and Firebase Storage. We've replaced our entire application back end. And that's pretty great, right? But we still need to deploy our app somewhere. If only there were a way. Firebase Hosting. Firebase Hosting allows you to deploy with a single command line, with a single command from the Firebase CLI, and in seconds, your site is deployed to a global CDN with HTTP2 support. If you've heard of Purple, Firebase Hosting is one of the easiest ways to get started with Purple. So this is a pretty great platform. I started working for Firebase a little bit more than a year ago. And if I weren't working for Firebase, I'd still be building apps using Firebase, because I think it's a great platform. So this is like all we need, right? We have everything we need to build an app. But wait, there's more. I first heard about web push, and I was really excited. Because to me, web push was one of the biggest gaps in capability between native mobile applications and web applications. Those push notifications made it really easy for people to get right back into an app really quickly. So I saw web push, and I thought, great, I'm going to dive right in. I'm going to implement web push. And it's going to be really easy. And then I read how you actually do it, and I gave up almost immediately. I think it was the elliptic curve digital signature key pair where I just really threw in the towel. So again, there has to be a better way, right? So now I'm pleased to announce that Firebase Cloud Messaging, the same service that powers more than a million applications and sends messages to more than 2 billion devices worldwide on Android and iOS, has come to the web. We've taken that 15-step process, and we've distilled it down to three. Install the Firebase Messaging service worker, ask the user for permission to send notifications, and then listen for those notifications. It's really that simple. But why are these push messages so important? Well, we've been trying out Firebase Cloud Messaging with a few early partners, like Aliexpress and Alibaba.com. And what they've seen is huge upticks in engagement. In fact, they've even seen some engagement that surpasses the same conversion rates on their native applications. And that's a huge difference, because with web push, you can just engage people where they are. You can get them back into your application faster and easier. So that's a complete platform, five features that all work together to deliver a comprehensive platform, a comprehensive back end for your web application. But wait, Michael, I hear you saying, this is the Polymer Summit. What does any of this have to do with Polymer? Well, that's where PolymerFire comes in. PolymerFire is the official set of custom elements built by the Polymer and Firebase teams together to support Firebase and web components being used together. And I'm happy to announce that with the O.10 release that's coming out later today, you'll be able to use Firebase Messaging in PolymerFire directly. Now, this all can be yours with one easy step of Bower install, save Firebase PolymerFire, try it today. OK, OK, sorry. I get a little bit excited when I talk about Firebase. I think maybe I got carried away. But I am really excited about Firebase. And I'm really excited about web components. It's two things that I think just fit together really naturally. And now I'm going to take a step back. And I'm going to look at how you can actually integrate these two things together and how you can build a full progressive web application using Polymer and Firebase together. And I'm going to start with a demo. So I built a little app called PB&J. It's a restaurant delivery app where you can see a restaurant's menu, you can order some food, and then you can watch the order status. So let's go ahead and switch to a demo. So here we have the beautiful website for my favorite restaurant, that's my jam. And you can see on it I have a link that says order on PB&J, so I'm going to go ahead and tap that. And here's the menu, I've just got some different peanut butter and jelly sandwiches. And so I'll add a few of each of those. OK, I don't need six sandwiches. I'll just go with two banana PB&Js. That sounds pretty good. And let's see, now it says I need to sign in, so let's go ahead and do that. And of course, I'm talking Firebase off here. Quick pop over to Google, tap my username. There we go, I've already got my address stored with my user account. And now you can see I've got a checkbox for order update notifications. And when I tap that, you'll notice that it immediately pops up a permission dialogue that says, do you want to be able to take notifications? Let's say yes, and let's complete our order. So now the order is received, and hopefully my delicious food is on the way. Now I'm just going to step over here to my laptop for no apparent reason. And oh, what's this? Now my order is on the way, and you might have noticed that a little message popped up at the bottom. So that is actually Firebase Cloud Messaging at work. It went from the cloud to my device and popped up a notification. But hey, there's a million ways that you can do that, right? You can do that with the Firebase Real-Time Database. So let's say that I am not in the app anymore. In fact, let's say that I exit it completely. And now it's been a little while longer, and I'm thinking, I'm really hungry for some PB and J and bananas. When is that food going to get here? And oh, look at that. I have a notification on my phone. What a surprise that I was not expecting. And you can see PB and J is arriving now. Your PB and J food is arriving. I tap the notification. And it brings me right back into the application, and you can see, hey, my orders are arriving soon. So that's PB and J. It's a really simple app, but it shows the power of Firebase. We use the database to store this data. We used Auth to sign in with Google, and we used Firebase Cloud Messaging to push these notifications out to the user when they were relevant. Can you imagine how easy this flow is compared to installing a native application for every restaurant or for 10 different delivery services that are all competing for the same space? This flow is a game changer, and I think that it's really cool and really important. So let's go ahead and switch back to the slides and talk about how we built this. So with Polymer Fire, everything starts with the Firebase app element. The Firebase app element is essentially just a way to bootstrap the configuration of your Firebase application, aptly named. And if you've used Firebase before, you may have seen a snippet that looks something like this. And Firebase app is just literally executing exactly the same code. In fact, if there is a reason that this is more convenient for you to do just because you can copy and paste it from the Firebase dashboard, use this instead. It really doesn't matter. They do the same thing. And the fact that they do the same thing is actually kind of handy, because that means that you can use the Firebase JavaScript SDK exactly the way that you do in the docs from anywhere in your Polymer app. So sometimes elements are the right way to go, but sometimes you want to drop down to the JavaScript SDK. You don't have to pick and choose. This isn't some sort of buy-in to everything, and it all works this way. Just use the Firebase JavaScript SDK where it makes sense, and use the custom elements of Polymer Fire where it makes sense. So in this case, Firebase Storage, which we're still working on for Polymer Fire, can still be used in my Polymer app just by dropping down to the JavaScript SDK. So next, let's talk about Firebase Auth. Firebase Auth is an element that lets you synchronize your current user state and also gives you easy hooks to sign in your users into your application. So let's take a look at the Firebase Auth element. Here you can see that I gave it an ID, and I'm binding two properties from the element. I'm binding the user property and status known. Status known is basically saying, hey, Firebase has done the due diligence it needs to do to figure out, and now we know whether or not the user is logged in. And user is going to be the currently logged in user if there is one, or it's going to be null if there isn't. Now one feature of Firebase Auth that I want to highlight today is the idea of anonymous authentication. Because when a user visits your website for the first time, they're not always looking to just immediately hand you their email and create a new password, or even sign in with Facebook or another social authentication provider. But a lot of times, you still want to be able to associate data with them as they go through and add items to a restaurant order or anything else. That's what Firebase Auth anonymous authentication allows you to do. So here, I'm setting an observer on user and status known, and I'm calling a method called autoauth. And what autoauth does is just says, if we know that the user is not logged in, then let's go ahead and automatically log them in with an anonymous account. We don't need any credentials from the user. We don't need anything else. The account is stored on the device, and now you can sync with the real-time database. You can do all the things you would do with the user, and you know that this is anonymous user. In the security rules and other places, you can see is anonymous is true. And what's really useful about this is that later, maybe a user has become engaged with my application, and now they're ready to upgrade to a full account. And that's really easy with Firebase Auth. So all I do here is I say, OK, I'm going to use a Google Auth provider, and then I take my user, which is directly pulled out of the Firebase Auth element, and I say, link with popup and the Google provider. And that's exactly what happened in the demo app that you saw. It takes you away to Google. It comes back, and it actually authenticates you with the same UID that you were already using from your anonymous account. It links those accounts. And it's not just one to one. You can link as many providers as you want to the same account, which means that if you want somebody to be able to associate their Twitter, their GitHub, their Facebook, all of those accounts with the same user, you can do that with Firebase. Next, let's talk about the real-time database. And the first element that we use for that is Firebase Document. So Firebase Document is essentially just listening to a path in your Firebase database. If you haven't worked with Firebase real-time database before, it's essentially a giant JSON object. It's a tree of data at which at any point you may have leaf nodes that are just JSON values. So it could be a string or a number or any number of things. Well, actually not any number of things, because JSON's pretty limited. That number of things. So with Firebase Document, I can just bind to a path in the Firebase database. In this case, I'm binding to a user profile. And you'll notice that the user UID is bound into the path. And Firebase Document is smart enough that if you have a path segment that ends up with two slashes in a row, it's not going to bind that, because it assumes there is a missing binding there. So you can safely add this element into your project. You can bind it with attributes and properties that are null, and as soon as they're populated, the Firebase Document will say, OK, now everything seems to be here, so I can go out and I can actually fetch the data. And that data is being synced into a property called profile. And of course, because this is a polymer element, it's built to work with the polymer binding system. So if I have a text area, for instance, I can just directly bind that into profile.address. As I type into that text area, it syncs in real time to the database. Anyone else who's looking at that same data will see all those changes happen in real time. It's really easy. It's almost stupidly easy to do. But sometimes you have data that's a little bit more complicated than just a simple document. And that's where Firebase Query comes in. Let's take the menu from the PB&J app, for example. The data for that looks something like this. You have a menu. Underneath that, you have URL-friendly names for each of the menu items. And then underneath that, you have the description, image, name, position, and price. So how are we going to get that into something that Polymer can look at? Because if we used Firebase document for this, we would just have an object. And it's kind of hard to deal with objects and turn them into lists. And there's kind of a lot of work there. So that's where Firebase Query comes in. With Firebase Query, again, I just have the simple path and data. So I'm binding to a path in the Firebase real time database, in this case that menu. And underneath that menu, there were nodes for each of the items. And I'm, again, binding the data into a property called items. And the one extra thing that I'm adding here is order by child. So this is one of a few different querying attributes that you can add. And in this case, I'm saying that this position property that's in my data is what I want to order by. So if I have position 1, 2, 3, 4, 5, then it'll order by that. And then below this, I'm just using a standard iron list. And I'm binding it in there. And the only difference that you'll see is that there's an item.$key. And that's automatically added by Firebase Query to tell you what the key was. So in this case, classic-pbj or whatever else it is, so that you can turn this object into an array without losing any data or granularity. So Firebase Query makes it really easy to read collection-based data out of your Firebase real-time database. Next, let's go into Firebase Messaging a little bit, because it's the newest thing. And I'm pretty excited about it. So essentially, what Firebase Messaging lets you do is send messages to your application whether or not it's open. And so to start, you're going to need to install the Firebase Messaging service worker or use a service worker that you're already using in your web app. And it's really not very much because service worker is required for doing any kind of background action while the site is closed. We have to have a service worker, but we've done a lot of work to make this as easy as possible. And so all you have to do is import the Firebase SDK, initialize it with your Messaging sender ID, and then initialize the Messaging SDK by calling Firebase.messaging. Now, optionally, you can set a background message handler in the service worker that allows you to manually handle any messages that come in. But in general, you won't need to do this for reasons that I'm about to go into. So this is there as an option for advanced use cases, but most of the time, you probably won't need it. Now, let's talk about the Firebase Messaging element a little bit, because there's a couple steps that you have to go through to get Firebase Messaging working. First, you have the element itself, obviously. And here I am binding a property of token, and I'm adding an event handler for onMessage. And so let's talk about the token first. Notifications require permissions. Browsers don't just allow any site that you visit to send you push notifications, and that's a very good thing. But obviously, you need to request permission then if you're going to do it. That's baked into both Firebase Messaging and the Firebase Messaging element. And so all I have to do is take my Messaging element and call requestPermission on it. And that's going to pop up that little permission dialogue just like you saw in the demo. But of course, if I already have permission, then it's not going to pop up that dialogue, and it's just going to return a promise that will automatically resolve, and the Firebase Messaging handler will automatically set all of this stuff up. So I request permission, and in this code here, I'm doing it onReady in my element. But that's not actually what I'd want to do in my application. I'd want to attach it to a user action like you saw in the demo, because you don't want to just have somebody visit your site and then, wham, immediately they're hit with a, hey, allow me to send you notifications. That's a pretty bad user experience, and people are probably going to hit back as fast as they can. So instead, tie this to a user action, make it something that's really clear, like, I want notifications, and now I have notifications. And that's pretty easy to do. So how do we actually send messages? Well, we need a token. So when Firebase Messaging registers successfully, it gets a device token that you can sync to the real-time database or anywhere else that you can access so that you can send that specific device a message. So here, I'm syncing it to the real-time database under prefs.pushToken. You can do anything you want with this data, but you need to have this token to be able to send messages to that device. And so what does sending a message to a device look like? It's a simple HTTP request. You just post to fcm.googleapis.com, slash fcm slash send. There is a server key that you have to paste in from your Firebase console, and you need to specify a content type of application JSON. And then the body just says to, and you specify the token. So that's pretty easy, but then what's the actual payload? So there are two different kinds of payload that you can do. You can add a data payload, and this is just basically a silent push. So this is going to be sent to the device, but isn't going to trigger any kind of visual notification unless you decide to write custom code that does that. And so this can be useful for sending something to the service worker to let it know it needs to update something or just other actions that do background processing but don't necessarily pop up a notification. But where Firebase Cloud Messaging gets really smart and really shines is with the notification payload. So you can specify a notification payload with a title, a body, a click action, and an icon. And that gets turned into that native notification that you saw in the demo. But more importantly than that, it's also smart about what is the current state of the application. Now you'll notice that the first time I sent a notification, it just popped up as a toast in my application. And I wrote code to handle that because what happens is that Firebase Cloud Messaging assumes that if your app is in the foreground, then you probably don't want to push notification to show up in the notification tray because you're literally looking at the application right now. So rather than popping up that notification, it will instead send through a message to your Firebase Messaging event handler, and you can decide if there's some kind of UI that you want to do. Or if whatever state the notification is telling you about is already represented on the screen, maybe you'll do nothing. But if the app is in the background, and that could be that you are switched over to a different app, that could be that you're on a desktop and the tab is no longer in the foreground, that could be that the app is entirely closed, then it's going to pop up that native notification, and you're going to be able to jump right back into the app and pick up where you left off based on the URL specified in the click action. So this is a really simple API, but it's also really powerful. It lets you reengage users at whatever seems like the right level, and it's not going to bug them with incessant notifications if they're already looking at the app. In addition, because this notification payload will automatically pop up a notification, you can do this without changing your code. So if there's some new kind of notification that you want to try out, and you don't want to have to deploy new code for it, and you're just testing things out, you can send this to devices exactly as is with no extra code, and it will pop up a native notification. And that's pretty cool. So going back into our code, we're going to actually handle this message now. So you can see I have an on message, and I'm calling pushReceived. And that pushReceived then just gets an event, the detail of which has a message property in it. And of course, message is exactly what we said. It is the message payload from this slide. So you're going to have that notification title body. All of that is going to show up in the message.notification. If it's a data push, then it will show up in data. And that's all there is to it. So with just a little bit of work and a really simple API, you can integrate this push messaging into your progressive web application using Firebase and Polymer together. So that's kind of an overview of what you can do with Polymer and Firebase. Polymer gives you amazing web component front-end technology that makes it really easy to compose apps from simple components. And Firebase does the same thing by letting you compose complex apps from simple back-end components so that you don't have to run your own servers. This isn't what we want to be building. We don't want to spend all of our time connecting together and re-implementing the same things that have been re-implemented 100 times before, 1,000 times before. We want to concentrate on the things that make our apps great, that make our apps different. And every minute that you spend writing a bunch of boiler plate that doesn't really need to happen is a minute that I wish could be spent building your app instead. So do yourself a favor, make yourself a nice Polymer butter and Firebase Jelly sandwich, use the platform, and lose the back-end. Thank you very much.


Hoi Hoi and welcome to r slash dank memes from site 19 where I go over the best SCP memes that I can find on the r slash dank memes from site 19 subreddit. Let's get started. Objection! Wait, let's see if I can get in for him. Objection! Objection! I'm trying. I'm trying. I'm really trying. I am completely unfamiliar with this property, the phoenix riot ace attorney series I think it's called, but I have seen the memes and I am aware of it enough to know that there's a meme of a guy pointing and saying objection really ugly. So now you have it for your use at some future point. Wait, maybe if I did it for, yeah, if I did it for this hand, I think it's not the same, but I can get it in frame properly. I don't know. I saw this one and I wanted to include it just because I thought, okay, that's fair. That's fair. I'll take it.  Every time I see a meme about the memes being memed, yeah, something like that, I kind of just go nice, nice, dank memes from site 19 reviews, complaining there are no memeable SCPs other than the popular when there are thousands of SCPs you could be doing instead. I get the joke there very much because there's a lot of complaining. I mean, it's the same thing I talked about on the SCP Wiki itself for the writing part of it. If you want to create something better or different than what's currently popular, then you know, create it. Like you don't complain that no one else is well, you know, a lot of people don't see themselves as being potential creators, but that's just because most people don't realize that you just get better at something by starting at it and not being great at it in the first place. I always say, like, if you want to write an SCP, write an SCP. If you think the SCP Wiki should be a certain way, join the SCP Wiki and vote on the thing. Just be a passive observer, involve yourself. Same thing on here. If you want to create a meme outside of the popular few, do it. And then people will be like, then it won't get any upvotes, which is, you know, kind of live with the world as it is, not the way you want it to be. Ah, that's an old man thing to say. It's a real old man thing to say. The Minecraft meme. I like this because I've never used the pumpkin head this way in Minecraft, but I know it can be used this way. And it actually works, or at least it used to. Maybe it doesn't anymore. Maybe that's the joke. I don't know. But it works. You can look at the enderman all you want and they don't scream and come after you or none of that stuff. Unlike the scramble gear, which had to have been purposefully poorly designed, right? Well, no, I don't know. That's making sense. No, director Emerson.  That's unethical. Haha, incinerator go burn. I really, the one thing I saw about this that I don't know if it was disappointing, but one thing I saw about this that, because, you know, I am, if nothing else, an egomaniac, because the whatever happened is what's happened to site night 13, not nighting. Whatever happened to site 13 features Jeremiah Sumerian as a character objecting to the destruction of the humanoid anomalies, and then being executed for it, I would have sworn that the person they used on the left would have had the scarring or something like that. But nope. They just went with generic, make a generic. And wait, no, generic, make generics. And yeah, that'll work. Yeah, that's fine. The CV Wiki offers a creative writing community sandbox that started with entries like 173, Clef, 682, Bright, 049, and 096, but has a room for so many different tales and themes to explore. There's really a lot you can choose from and freedom to create whatever SCP 173, Clef, 682, Bright, 049, 096. Well, like just because something is infinitely memeable doesn't mean that it necessarily is better or even more popular than the other things. It depends on your definition of the word popular though. Like, do you define it as something that people think is good or just a lot of people know about? I guess popular would be the things that people know. Literally, the definition of popular is the ones that most people know about. But popular, that's my point here is actually that popular does not equate to good, right? Like, plenty of people went to go see the first few transformer movies. That doesn't mean that they were good movies, they were just popular. But I mean like, I think a lot of people miss out on when they complain about the love for the original stuff is that you can use that. If people are looking for the popular stuff, give them what they want, but also give them what you want them to want. Does that make any sense? Me. Quarantine boredom. Me. SCP 245 video game. Here's an interesting thing. I don't think this mentioned it or even had anything to do with it or even knew about it, but a 245 video game is something I made. The SCP 245 is something I created. So yeah, since I saw this meme, this was definitely going on. I just love reminding people that, hey by the way, I made that. It's not a particularly long video game though. Like maybe, I don't know, I know how to get through it. So it's like 45 minutes to an hour's worth of content and that's because you have to play like three times, I think three times to get the full content play through. And that's assuming you don't screw up somewhere along the lines or not know that you can run or not know that you can save your game at any point. So like people can play through it and they're like, oh, I hate having to go through that intro every time and something's messed up with this one quest and I don't understand what I'm doing wrong. Oh, I've had to play through this same thing like five times. Like why don't you just save the game at the at the beginning and play it from there. Like do whatever. Anyway, it's just, it's not, I will say that to be fair, SV245 is not my best work. And there are places in it that I see now. This was like five years ago. Like I see parts of it now that I'm like, that's just bad game design. But at the time it was my very first thing I'd ever created. Well, not very first thing I'd ever created, but very first game I'd ever created. The only game I've ever created actually, I never followed up on it. I probably should. What do you guys think? Do you think an RPG maker game? I could, I still have RPG maker, the more modern version. You think an RPG maker game would be well received by the SAP community? Maybe put it up on Steam for like a dollar, two dollars or something like that? Maybe, maybe one day. I'll take the lessons that I picked up from making the first game and go from there. Scranton communism will win. I only featured this one because there was someone in the comments who said they picked, whoever you are, you're probably watching this video. You said in the, you said in the comments for this meme that you discovered that from my video that Scranton got, or Scranton Scantron got banned from the SAP Wiki for making a political statement. No. And I never said that he did make political statements. I mean, that whole communism will win is definitely changing his name. That was definitely a political statement. It was not ironic. It wasn't a joke. That is literally what he believes, but they believe. I think it's they. But the important part is no, they didn't get banned for making a political statement. They got banned because they were a Polyon is an object class for my super dangerous SCP that can kill people with exactly five people drink milk at the same time when someone else has a specific piece of gibberish, which we don't know. A Polyon is super keeter. A Polyon means that it is permanently breaching, will permanently breach containment, and will cause mass disruption. A Polyon means the people who don't know about it, don't know its object class. If you put it in a box, something, nothing happens. And suddenly the communities and shreds about every third and every third post about SCP has an argument about whether or not its object class is correct. Its object class is a Polyon. I'll go one better. A Polyon means you spent too long thinking about what object class to make your SCP. That's it. Full stop moving on. When your brother is an undead mass murderer, he's not undead. That's not technically correct. Mass murdering, mindless monster. He's also not mindless. Undead mass murdering, mindless monster.  Mass murdering monster? Absolutely. And also, what would undead and mindless have to do with making him disliked? But the fandom likes more than you is the whole point of this. It's a cane being like, why does everyone like Abel so much? Just if he was undead and mindless, that wouldn't make him less likable. Shoutout to all my zombie bros out there. Mass murdering monster? That's actually fair. I don't know if he's a mass murderer. He's more of a spree killer. What is the definition of mass murder? You know what? I'm not googling that. I was about to google that. Maybe I'm not gonna google that. Let's just leave that one alone. I don't need that in my search history. And with that, I bid you adieu. Thank you very much for watching. If you enjoyed the video, scroll down, hit the subscribe button, then hit the notification bell next to that. And if you have an idea for what I can do a You're Wrong About video on Thursday, wait, for what I can do a You're Wrong About video on Thursday about feels like there's too many abouts in there. Oh well. Let me know in the comments down below. If you'd really like to support this channel beyond that, head on over to Patreon.com. Everybody here on the screen already has. And join people like probably a wizard and definitely not a scientist. I'm starting to remember that name from memory. And Manuel Noltorp, who both pledged at $40. Thank you for letting me know that I'm not alone out here. And I'll see you all again on Thursday.


I'm going to go ahead and get started so I don't keep you during lunch. I'm Mira Gary, and I work at Pivotal. And this talk was written in collaboration with Josh Hill, who unfortunately can't be here because he has kids and traveling to the States is too far for him. We're in the London office. And it's based on our experiences on the platform recovery team, which builds BBR, which is a tool some of you might be familiar with. Anyways, so here's how not to build a pipeline. Lessons learned from doing it wrong repeatedly. And clicker has decided to stop working. And I've lost my mouse. So the talk is put into two parts. Part one is mostly about build anti-patterns, so things that can go wrong in an individual job or task. And then part two is flow anti-patterns, so things that you can do wrong connecting your pipelines together. Obviously, connecting pipelines together is an important part of pipelines. So yeah. So part one is builds. Builds pass. It's great. Everyone loves it when it passes. And builds fail. That's also OK. Totally fine. Sometimes your tests don't pass, and it's good that you failed. But then sometimes you get an error. And if you're using concourse, this talk is mostly focused on concourse because that's the tool we use to run our pipelines.  Errors are wrong. So yeah. The visual is that it's gone orange. I unfortunately don't have a picture of one, even though actually the team I'm on right now did for a while have a lot of those orange builds. Yeah. Usually that means you've misconfigured something. And to fix it, you can just correct the pipeline definition. So some examples. You got the wrong credentials, so you tried to log into your repo and it just erred. Or you get a typo in the task name. That's a fun one. It's just like, nope, there's no task. You get an error. Another fun gotcha.  If you're not authenticated, and the Git resource pulls just frequently enough that you hit this rate limit and so your builds will also go orange if you don't authenticate. So easy fix for that. Just log in to GitHub at a private key, problem solved. Just make one for your CI. Another fun one. Errors are wrong, but keeping on flowing for without, things failed and you just say it's okay. That's also wrong. We've seen this one before. The error happened actually at the deploy stage, but nothing went wrong until you got to the run stage and you're like, you gotta look at the run task and you're like, what's wrong? Oh, there's just no environment at all to be testing and what are we doing? If your task fails, it should actually fail. So tasks should fail and they're code. So you should treat them like code and test them. Your tasks need to be tested and test the unhappy pads too. Make sure that if things are going wrong and failing that your task actually fails so your pipeline stops. Another fun one, bad bash. So we write a lot of our tasks in bash and then use that as the glue to hold everything together and run everything. Shellcheck is your friend. Shellcheck will tell you about when you've done something wrong in bash. This example here, rm-rf $variable slash star. Shellcheck will scream at you because that can expand rm-rf slash star if variable's unset. This example was actually on every Bosch director. Great. You don't wanna run that. Yeah. Also, set if you're using bash, set minus EU and set minus O pipe fail. All these things will ensure that your tasks fail if something goes wrong. Yeah, minus E exits on error, minus U exits with an unset variable. So in this case, if variable was unset, you would just exit instead of rm-rfing slash and minus O pipe fail exits when a pipe fails. Okay, here's another one. Our thing failed, but what went wrong? Anyone know? I don't know. There's no output. It failed. I have no idea what went wrong. You don't wanna have to hijack, or I guess the correct term now is intercept a container to figure out what went wrong. You should output debugging output so that you can debug your tasks when they fail. So the treatment for that is to log things to standard out and standard error. Concourse will just print them up for you. One convenient way to do this is to set plus X and then every command that you run is displayed, but that's also a little unsafe because if you've got creds going into your commands, then they're now suddenly printed in your concourse. Concourse is not the most secure thing in the world. Maybe you don't wanna leak your creds, so be careful with that one. But yeah, generally, more output is better than less output. Here's a good one. Flakes, this is a picture of an actual pipeline and all those red jobs, those aren't actual failures. We were having some real fun networking issues and some things were just dying because the network would just drop the connection.  So you really always need to investigate them. A good example actually of a real-life flake. So my girlfriend has a little sensor on her door to tell if the door is open, but it's not that well attached to the door. So sometimes it just goes off and sends you a notification that the door is open, you're like, it's fine, the door is closed, everything's fine. Well, she was going away on a work trip and she had just left and then I got this notification that the door was open and I'm like, eh, it's fine, who cares? And then she messages me and she's like, can you check my door? I was in and out three times so I kept forgetting things and I'm not actually sure I shut the door. I'm like, okay, so I went over to her house and yeah, the door was open. Hunt down flakes because they can be hiding real errors.  Another problem, copy-pasta. I mean, yeah, there's a lot of things, like you copy-paste things and you end up with three different tasks that are almost identical and they just take some, one slightly different config thing. Yeah, no, infrastructure is code, is still code. All of the normal things that we do with code apply to it. You can refactor it. This task here needs refactoring. We can just make one task and then use input mapping to like, you make a general input and then use input mapping to specify the specific one. There's also output mapping does the same thing on outputs. But yeah, it lets you write general tasks with a very small API and then you can just make it very specific by using input mapping and just, yeah, refactor your tests. Another one, another common copy-pasta. This is actually sort of more flow, but sometimes you're like, oh, we need to add another step to this thing. So I'm just gonna copy this piece of YAML and paste it into the other piece of YAML and now we've got a new pipeline config and then you apply it and everything's great and then you look at it and you're like, wait, that's not right. I wanted to configure things before I ran the tests, not in parallel with the tests. Yeah, so when you copy and paste things, like, you know, actually edit them too, don't just copy paste. You can look at your pipeline and you'll just see it looks wrong, that things are like not flowing the way you wanted. Yeah, not great, but easy to fix. You just, you know, go edit your YAML and set pipeline again. Ooh, this is an interesting one. You should be able to run tasks again and again and again. Concourse really helps you a lot with this because it runs things in fresh container images. It's very repeatable, but like if your tasks have side effects, like they push to GitHub or something, maybe it's not so repeatable and you should really like make sure that your jobs are item potent and so you can run it again and again and again and that way, you know, you can just, you're not worrying about building up state and cruft and if you have state that you need to build up, that should live in resources, which we'll talk about more in a little bit, but those are the pipes that flow through your pipeline. That's where your state should live. It shouldn't like live in your tasks. Yeah, very important that we can run things again and again and again. So like an example of this, we actually wrote a task that pushed to Git because we were using Git Crypt and at the time the Git resource didn't support Git Crypt and it would like, it was usually fine and then sometimes something would go slightly wrong and like all of our Git repos were completely garbled and you had to go manually ungarbled them and so you couldn't run the thing again until you ungarbled the Git repos because you just pushed like encrypted nonsense in a way that overwrote everything with encrypted nonsense. So thankfully we were able to fix that and we made a PR to the Git resource and now it supports Git Crypt, but yeah, if you have state, you should put that in a resource. Don't put it in a task. Oh, here's another one. This job actually failed not because of anything wrong in the job, but because we were using an S3 bucket and the S3 bucket, actually every time we ran the test it made a new S3 bucket as part of the test and then it never deleted the S3 bucket and you can only have 100 S3 buckets on an account. So time number 101 when we ran this, we were like, oh, we've made another change to code, let's just run it and then it like failed and you're like, what went wrong? Oh, well, we never cleaned up those buckets. So we added a step now to clean up those buckets and now this works. Yeah, so like other similar things are sometimes you have quotas on things. Anytime you have a quota, like how many VMs can you deploy in an AZ if you're deploying stuff? Make sure you delete them afterwards because otherwise you can run out. Yeah, yeah, and just automate your cleanup. All right, on to flow, the more interesting part because this is where you glue all things together and your pipelines actually flow, right? Pipelines when everything's green, everything flows and you're happy and you ship products and you continuously deliver everything and we're in the world of dreams. Yeah, that's great, love it. This is actually a pipeline that builds a CLI, it has some unit tests, some integration tests, a variety of system tests and then at the very end it cuts a release and publishes it, it's wonderful. Pipelines can also fail and block and nothing flows. This is great, you know, if something's wrong you don't chip it, perfect. You don't wanna publish a new version of a thing if it's wrong and so, you know, if something fails, you know, it fails and it blocks until you fix it. And the first rule of the pipeline is that everything has to pass at every step in order to reach the end, that's why it's a pipeline. And concourse does exactly what we tell it to do in the definition, but sometimes you end up with nonsense. This often happens because pipelines are opinions, we have opinions about which tests should run when and what tests we should be running and sometimes our opinions change. So, yeah, plumbing. Here's what the first section of that pipeline I showed you looked like about nine months ago. There was a small change that flowed through and our tests that ran system tests against a Bosch director failed. And we're like, okay, we looked at it and we're like, what went wrong? Well, there was no Bosch director. And so we started trying to figure out like where'd the Bosch director go? Well, then we looked around and we're like, oh, that's actually quite clever. We automated deploying the Bosch director, that's great.  But it was very thankful that earlier ourselves remembered to like automate this, but so we ran that and everything worked again, it was fine, but maybe that should have run beforehand. This is no pipe. So the deploy Bosch director should have happened before we ran the tests against the Bosch director. And the visual on that is that the jobs weren't linked and to fix it, we just made a resource and we added a past constraint and now everything's great. The Bosch director has to be deployed before we run the tests against it, perfect. Okay, so that's what it looked like after we added that past constraint. Now the deployed Bosch director happened before the system tests, but it's a loose dependency. That there's a dashed line going through, not a solid line, so that means that it has to have happened already but it doesn't trigger it. And then we started thinking a little more, like, hmm, is this right? And it turns out that the test releases are actually a prerequisite for the system tests, but right now when we make changes to those test releases, it didn't trigger and so we could actually cut a release without testing everything, which is not great, we were missing builds. So we had to add a trigger there to make sure it triggered automatically on the previous job. So now it's a solid line. All right, fans. So sometimes you have lots and lots and lots of tests and things fan out and fan in and get complicated. So here is another pipeline. I don't know how well you can see that, but there's all these tests that run in parallel and everything fans out and goes all over the place. It's got a bunch of integration tests between all sorts of different components that we had to integrate with. And one day we added a new integration and we copied the system tests and the config and all the new tests passed and everything was fine. But we forgot to fan in. So one day that job failed, but the pipeline was still green. We're like, what happened? So we could have cut a release that failed these new tests, thankfully, like we also visually inspect the pipeline before we cut a release and it was red and we're like, nope. So we fixed this, but yeah, you need to fan in. So this is an incomplete fan in and so a version that fails the test could be delivered and the lines were just inconsistent. You saw those lines flowing down into the void. They went nowhere and the treatment was just at a past constraint. And now those lines fan in and everything's great. But here, here we have another one. Now there's even more, like we've zoomed in more and you can see that there's just lines everywhere flowing all over the place. Everything depends on everything and actually not everything depends on everything, but we had wired everything to everything and so we just, anytime anything changed, like let's say we made a change to Azure integration. Well, we'd also run the tests against GCP even though those tests didn't have anything to do with GCP and we hadn't changed the GCP code. We were over testing. So actually we needed to remove some of those lines. Yeah, so really you should minimize the number of past constraints. Only have the ones that you actually need. The things that you depend on should be past constraints but the things that you don't depend on don't need to be past constraints. Yeah, and the visual's just like that mess of pipes going everywhere and you're like, I can't see anything. Maybe check if you really need all those lines. All right, let's talk about the resources that are flowing through things. So the nice pipes that we have this pipeline builds a Docker image and tests it and promotes it. Everything looks good, right? Let's look at what flows through the pipeline. It's actually the repo with the Docker file that flows through the pipeline. Perfect, seems fairly reasonable. But what about the candidate that it builds? Cause we built the candidate and tested the candidate. Where'd that go? So how does it promote the candidate if it just doesn't have it anymore? Well, what it was doing was it would build the image and then it would test it and then it would build it again. Great, that image of course has unpinned versions in it. So like if someone else changed a version number, like we have no idea if that Docker image still works. We don't think we actually managed to cut a Docker image with this problem, but we had to fix that. And so now it's the Docker image the candidate flows through. And so we build it, we test it, and then now we promote it. And so we just add a tag to the release candidate and make it actually the release. And so we're not building it twice. I think we just noticed it. We didn't run into any issues. We were just like, this seems wrong at some point. Someone was like trying to add another thing to the Docker file and then noticed that the pipeline just didn't seem right. So we build the image and then we test it and we promote it. This is the wrong resource flying through. Which resource flows through is tricky and important and can cause very subtle issues like shipping a thing that you didn't test. Not great. So make sure you get the right thing flowing through your pipelines. Here's another pipeline. It has three rows that are all the same. So it deploys a cloud foundry, runs the disaster recovery acceptance tests against it and then deletes the cloud foundry. And there's three different versions. One is just running normal threats. One is running threats with hard mode threats just like backs up a cloud foundry, changes all the things, restores it and checks that everything is back to its original state. Drats with destroy deletes the entire cloud foundry, brings up a new one and then shoves the state into the new one, checks that that works too and then there's a PR flow for when people make PRs to the test suite to test those. So it's great. So we deploy the cloud foundry, we run the tests and then we delete the cloud foundry. Everything's great. And we knew only one of these jobs could run at a time so each of these trios is in a serial group. But one day the system tests failed. And the reason was that the jobs triggered in the wrong sequence. Someone pushed two changes, one after the other and let's replay what happened. So it deployed, it tested, it deployed again. It deleted and then tried to run the test. Cas serial groups just enforce that one thing runs at a time. They don't enforce the order. And so the test just had no chance of passing because the deployment had been deleted. So this is actually a missing resource. There is state in this system, which is the fact that there's an external environment with a cloud foundry deployed on it and that was just not represented at all in the system. And so you need to add a resource to represent that state. And thankfully, Concourse has a resource to do this. It's called the pool resource, it's built in. And it just is a thing that lets you represent some state that's not contained in your system. It's great. All right, so let's go over what we talked about. So there were all sorts of pipeline antipatterns. They're build antipatterns and flow antipatterns. And all of these things are important. And fixing all these things can make your system work better and your pipeline's happier. And that ensure that you don't ship a product that doesn't meet your standards. That's all. All of the platform recovery pipelines and Concourse are all open source. You can go look at them, they're on GitHub. And the Concourse is publicly accessible, sort of. I mean, you can see it, you can't do anything to it, obviously, but you can see it, that's all online. So thank you for listening.


Live from Cambridge, Massachusetts, extracting the signal from the noise, it's theCUBE, covering the MIT Chief Data Officer and Information Quality Symposium. Hi everybody, welcome to Cambridge, Massachusetts. This is theCUBE, SiliconANGLE Wikibon's coverage of MIT IQ, the MIT Chief Data Officer Conference. This is our third year at the conference and we are here actually, thanks to Paul Gillan, who is my co-host today. Paul, great to see you back in Boston.  So the story of the MIT Chief Data Officer Conferences, I got a call from you one day, you were asked to sort of be the sort of media partner and catalyze media coverage for this conference three years ago and you said, hey, do you want to attend? Maybe write it up, I said better, let's bring theCUBE and we brought theCUBE and we've had some fantastic guests over the last two years, as I say, our third year here. The narrative in year one was how prominent is the Chief Data Officer? Will that role emerge? Will it gain traction? Where should it report into the organization? And then year two was kind of, look this Chief Data Officer very clearly entrenched within financial services, healthcare and government, will it extend into other areas? And it feels like Paul, the Chief Data Officer has gone mainstream and now we're talking about more practical issues of sort of how to get things done, how to protect data, how to actually exploit data for productivity advantage within organizations. So it seems like this is taking hold, it's really evolving, there are a lot of subtexts around what does this mean for the CIO, but really a fascinating topic. Well, Dave, I think what we're seeing in the agenda this year is the maturation of the CDO role. And if you remember last year, there were some guests who actually suggested that the CDO may replace the CIO at some point. And with cloud moving as fast as it is, with companies looking at outsourcing essentially all of their future infrastructure, in some cases even their legacy infrastructure, you really have to wonder what the CIO role becomes when everything is in the cloud. And really it becomes then all about data. Data is the asset that is most valuable to most organizations. We're going to have some great guests here. We've got the CDO of Walmart, which has hired more than 2,000 developers in Silicon Valley to do big data analytics, completely revamping its approach to e-commerce. We are seeing the CDO concept and the idea of data as a competitive asset go from theory to demonstration now. Yes, we actually had John Holomka, the CIO of Beth Israel Hospital on this show last year, but call it's a question, the role of the CIO. I will say this in my observation, and I had some questions, will that CIO role divert into either a technical role or a business role? I actually think the CIO role, you're right, there's this data layer emerging. It's increasingly becoming, which infrastructure do I use to support that data layer? Do I outsource to the cloud? What do I keep on premise? And that seems to be the role of the CIO, part cloud broker, part keeping the lights on for the existing infrastructure. In my observation over the past 12 months, I think that CIO role has been solidified somewhat. I don't, at one point I was like, you know, maybe it is going to sort of vaporize over the next 10 years. I think it's going to be solidified, but it's going to transform quite dramatically. A big injection from the business side, I think it's going to be less of a technical role and much more of a infrastructure steward and process role. Absolutely, I think CIOs have got a big transitional task, a hurdle ahead of them. CIO is basically an evolution of what used to be the data processing director and then the MIS director, but it's always been about infrastructure. The core job of the CIO has always been about keeping the lights on, keeping the machines running. And when you think now, we are beyond the stage that it makes sense anymore to wheel in crates of computers and unbox them and put them on a raised floor. We're getting past that now to where information technology is truly becoming utility. And that means that the core job of the CIO, I think is going to be called into question as companies move large amounts of infrastructure into the cloud. And so they have to transition to a more strategic role. And that means they have to become data, they have to become experts at managing data. That has been traditionally just a minority part of the CIO's role. It's now going to become the job itself. So I think CIOs who will succeed in the future or the next generation of CIOs will be those who can get past the idea that their job is to keep the lights on and keep five nines up time. That's all going to be taken care of by somebody else. They really have to finally execute on this vision that we've heard for 20 years about the CIO as being a strategic part of the organization as contributing strategic value. It's time now to execute on that vision. I think we're also seeing a major impact in the financials of large corporations as a result of things that were born by the web giants, Google, Amazon, Facebook, cloud, mobile, social, big data, seeping into the enterprise now and having a major impact. I think a good example of that is Hadoop. While Hadoop is still relatively small, the ROI on Hadoop, as one colleague of ours, Abby Mehta has said, has really been around reduction on investment. And what people have done is they've sort of attacked that spend on the traditional data warehouse, moved a lot of data into Hadoop infrastructures. And now you're seeing that Hadoop batch model becoming more real time with things like Spark, moving into the mainstream of the enterprise. SQL is like the killer app for Hadoop. So you're seeing a lot more mainstream programming being done in that type of model, that distributed model. And it's driving costs down. And that seems to be permeating along with cloud throughout the industry. And you're seeing it in the financials as we were talking off camera, of all the major players. You've got this trillion or $2 trillion IT business, which is essentially flat. And then you've got pieces and pockets that are growing like crazy. We're now seeing Amazon's financial results, let's say they do five to six billion, they're operating profits, are the same as EMC's, a very profitable company. So everybody talks about this race to zero. Well, Amazon's figured out that they're driving infrastructure costs and provisioning down towards software economics. And it's starting to really take hold in the financials of these organizations that are very large, multi-billion, tens of billions, 40, 50 billion dollar companies, or larger like IBM and HP. And you're seeing things like HP now splitting up. You're seeing companies go private like Dell. And what these large companies are doing, and I'd love to get your take on this, Paul, is they're mobilizing and reorganizing and trying to get the new stuff in line that's growing, trying to get that big enough and growing so that it cannot offset the declines. But there really aren't a lot of, or any good examples of a large company being able to do that just yet. So they're relying on cash flow and balance sheet and share buybacks to stay relevant. Well, I've never seen a more disruptive time in the IT industry in my 30 plus years in this industry. Everything is changing.  You mentioned centralization of infrastructure. What's happening now is that infrastructure, which has historically been very distributed, each company had its own IT infrastructure. That is now all being centralized, economies of scale being applied, and companies like Amazon really learning how to drive the costs out of IT to a degree that has never been seen before. Open source is a huge factor. And really, this has been, the last year has really been the year of open source. This is when we have seen a transformation of the infrastructure that is driving. Companies like Amazon, like Google Cloud Platform, even Microsoft, moving toward open source. And the economics of that, of course, are compelling. But I think even more important is the innovation that comes about. The great advance that open source has introduced is we no longer reinvent the wheel. When an open source technology is developed, it's put out there for everyone to build upon. And so we don't have companies here, there, and everywhere building the same thing over and over again and selling it as a proprietary platform. So we're seeing this explosion of innovation in software development, new functionality, and of course, web scale, is a hugely disruptive factor. You know, prior to the release of some of these tools, like Kubernetes and like Hadoop, the biggest problems that companies ever solved were how to support maybe a couple of hundred thousand concurrent users. But Google and Amazon and Facebook have had to figure out how to support a quarter of a billion concurrent users with sub-second response time. Huge technical problems that those companies have solved and are now being made available for free in the mainstream as platforms for people to develop on. So it's an enormously exciting time. It's an enormously disruptive time, as you say, for the IBMs and the HPs and the EMCs of the world that have traditionally had very high margin proprietary products. They are seeing the margins being sucked out of those businesses by open source and by white box technology. And it's going to be a very difficult transition for them to make. The good news is that according to research I've seen, companies that buy software and infrastructure as a service over a five year period actually pay about 50% more for those services than they would if they bought them as a captive on premise platform. So the good news is that if they make this transition, the businesses will be more sustainable, more predictable, and ultimately more profitable. Yeah, so we're going to cover this and other topics. Sandy Pentland's coming on next. He's the head of MIT's Media Lab. Later on today, we've got a number of other great guests coming on from Michael Stonebreaker, who's going to be fantastic. I'm sad that we won't be able to see his keynote because we'll be on theCUBE. And of course, Bob Picciano, who heads IBM's $17, $18 billion analytics business will come on so we can cover some of these themes with him as well. So two days of coverage. This is theCUBE, we're live at MIT IQ. Check out hashtag MIT IQ. This is theCUBE, go to siliconangle.com for all the news, wikibon.com for all the research. We'll be back, Paul Gilland and myself to cover MIT IQ right after this word.


تشرف بالاشتغالي بالعلم ولا تبغي به ما عشت يا دا دا دا وياله من شراف عظيمي دلام إن الحمد لله دلام in the word دلام ده ازوات ازلام الاختصاص لام اختصاص ميزوات سبسفاكلي فالله سبسفاكلي فالله كبارك وتعالى سبسفاكلي فالله اختصاص يونيكلي فالمتبارك وتعالى والحمد لله الله is what الله is عالم على ذات الله pay attention Allah's names are names and they are attributes and as a qaeda which you need to know and memorize Allah's names is what اعلام باعتبار دلالتها على ذات ووصاف باعتبار دلالتها على المعاني الله's names are what الله's names are refer to a existing one his names refer to an existing one وانا exist الله تبارك وتعالى and they also refer to one who has characteristics and attributes so every name of Allah is referring to Allah and it's also got a characteristic in it so Allah's names are not مجرد اسماء they are not just mere names there has no characteristics in it for example the word the word or the name sorry الرحمن it means what what's merciful what's merciful or the name العزيز عزيز means what الغالب في امره the one who wants something it happens in the way he wants it without any person being able to come and say it will take place no one is able to do that الله is غالب في امره بمعنى اذا شاء if Allah wills something سبحانه وتعالى it will take place no one can stop it are you with me so Allah's names is what it's أعلام باعتبار دلالتها على ذات ووصاف باعتبار دلالتها على المعاني does that mean if I call Allah by الرحمن الرحيم المالك القدوس السلام المومن المهيم العزيز الجبار القبر الخالق المصور if I call him by all of those names does it mean I'm calling different they all show what one but they all have different meanings that's what the قاعد is they are all a lot but they refer to الله تبارك وتعالى so the word الله pay attention the name الله they say it is the greatest and the biggest name because every name الله is الرحمن الله is غفور الله is عزيز الله is you don't say الرحمن is الله never does that make sense every name goes back to it and the name الله means اي المألو المعبود the one that is worshipped so it comes from the word االيها يأله مألو it's like the word لبس يلبس ملبوس الله is the so it's the one who's worshipped تبارك وتعالى المنفر he's single in what عبادة the word الله is what the one الإفراد الله تبارك وتعالى بالعبادة it's to single him in worship صحيح الله good it's he what did he say he said وهو أعرف المعارف it is as I said before he's the the biggest name to know الله تبارك وتعالى is الله على الإطلاق سيبوه سري and look at this brother's pay attention all of the people who were arrogant and tyrants and the rulers and those who claimed that they were they should be worshipped and whatnot not one of them has ever been able to call himself الله had diverted from everyone does that make sense have you ever had to call himself الله never Allah diverted from everyone فرعون who claimed him as an Allah he said he never called himself as the word الله he had his own name so الحمد praises to لله uniquely for الله اللذي اللذي is a it's a it's a it's a it's a it's a it is used for like it's used for a singular masculine whereas the word اللذي is used for اللذي is used for what a singular feminine that's the difference لم يزل الله has not remained لم يزل لم يقول now it is حرفه نفين وجز من وقلب we know that we study that in our and that's in أجرومية it's a letter it's a particle the word لم it's a negation and the نقضم فعيل that comes after it we said the word لم remember when we study حروف what did we say the حروف are three three types we said three types المشترك بين الأسمائي now particles are shared between a noun a verb like the word هل what can come after it it is a verb or it can be a noun we also took the the particle it could be the second type what is it nouns and the third we said حروف وشاوات المختص بالأفعال the one that is بالأسماء is what حروف الجر حروف القسم we said that من إلى رب and the ones that were were uniquely for verbs which one did we mention لم and لم the فعيل that comes after we even narrowed even more down what did we say it has to be a فعيل مضارع the word لم it enters the فعيل because we said the فعيل مضارع it is مرفوع مرفوع if you say لتجروده من Анناص adoاجلadoragal see it becomes مرفوع when they both come they changed it from it's art studies have them نام so we said لم meaning it's a 0 legacy الله has not remained يزل و مضارع comes from لكن الآن الخبر لا يفعله ، فهي يجعله مصوب. سوف نأخذ هذا ، إن شاء الله الله تبارك وتعالى ما زالا لم يزل ، لم يزل هو الذي يتحدث عنه ، يعني الله سبحانه وتعالى لذا سوف نقول ، أين هو ؟ أين هو ؟ أين هو اسمه ؟ إذا كان ذالا ، نقول ، إنه أخي من كانا نقول إنه أخي من كانا ، أين هو اسمه ؟ إن اسمها بمير النستطر تقديره هو أين هو ؟ لم يزل هو أنه لا يتحدث عنه ، الله تبارك وتعالى و العليمان بالطبع أنكم all know is the khabar so the khabar is aliman and the mubtada or the ism of the zala is what it is هو so we say Allah has not remained الحمد لله he praises to the one and lady the one لم يزل who has not remained except عليمان he has remained with knowledge عليم قدير one who has تبارك وتعالى so their name عليم and قدير are what they are اسماء الله الحسنة they are the names of who they are the names of Allah تبارك وتعالى and as we all know مذهب أهل السنة والجماعة the methodology and the belief of أهل السنة والجماعة is what in the names of the attributes of Allah is what إثباتوا ما أثبت الله تعالى لنفسي to affirm for Allah that which he affirmed for himself وأثبته له رسوله and that which his message affirmed for him with what من غير تكيفن ولا تمتيلن ولا تعطيلن ولا تحريف without giving it any how without any resemblance without distorting it without distorting it and changing and altering it no دهن الشيخ رحمه الله سنة وصلى الله and pray صلى الله the word صلى مخاري narrated it is صحيح تعليقا مجزوما pay attention مخاري narrated without mention so we are going to take the word تعليق what do you remember they call it معالق معالق is when الشيخ الامام البخاري he takes out his teacher if بخاري or the author of the book he drops his teacher doesn't mention his teacher we said the hadith is called what معالق what is it called معالق معالق مخاري narrated this quote that I'm going to mention but he narrated it so the hadith which مخاري narrates which معالق is two ways in which he deals with it are you with me because he's not connected he didn't mention his teacher what does it become معالق and it's a form of what it's a form of disconnection yeah it's a form of it's a form of disconnection so if it's a form of disconnection how does the scholar look at it we look at it in accordance or we look at معالق if بخاري says قال he says قال عن and this now normally would enter the Rome of what تدليس not a modelis and that when we look at it in regards to بخاري رحمة الله analyze who مخاري is بخاري is not a modelis so what do we do with he says قال عن the علمات they say عن عنت البخاري the عن of بخاري you يحملوا على التصال يحملوا على التصال it is taken as though it's connected with the condition some scholars say if بخاري narrates it مجزوما if he says عن or قال or عن or روا لكن if it says if he says قيلة روية حكية that is called سيغة التمريض second form right it's called what سيغة التمريض meaning بخاري it has been narrated the other one he is saying it's narrated this one he is saying it has been narrated كان له سيغة التمريض بخاري in his eyes they say so that's where some people try to permit for themselves the issue of the music remember we spoke about this issue the hadith of بخاري narrated it in the word what قال بخاري is قال is the same as the word عن when we look at بخاري is a museum with the list so he said so then they said that بخاري did not use the word حدثانا أخبارانا which was which is clear cut showing that he heard it from him so they said there's a disconnection this hadith is معلق are you with me the scholars answered three points here the first one they said that بخاري did meet بخاري did narrate from him and he is his teacher the second answer that they gave also was بخاري even if he narrated بقال قال is not سيغة الجزم and then sorry it takes the the ruling of the word عن عانة البخاري محمولة محمولة على تصال يحبن على تصال that's known the third answer that they gave which is this hadith it connected other narrations have we have بشكل حجر رحمة الله it mentions in his كتاب تغليق وتعليق you go to it you find it بخاري رحم الله he mentions the chain of narration for it so that's weak إن شاء الله but you have to be alert and remember the books that we take took it before this is a science brothers it's important that the previous book that we are taking you learn it you listen to it in order to move on to the next book because it's going to keep coming up and we can't keep going on with the same terms again صلى الله عليه وسلم so when did that تعليق and معلق this issue بخاري نريتر إن الصحيح تعليقا مجزوما with جزم أبو عالية define the word صلى الله عليه وسلم the word صلى الله عليه وسلم he said صلى الله عليه وسلم صلاة الله ثاناؤه عليه عند الملائكة وصلاة الملائكة الدعاء أبو عالية الريحي who is the student of عبد الله من عباز عبد الله من المسعود he said أبو عالية said بخاري نريتر this remember he said remember brothers you have to learn the way the scholars if بخاري نريتر حديث and it's معلق you have to mention it's معلق if it's مجزوم mention it's مجزوم if مسلم نريتر حديث it is مقدمة the introduction you have to say رواه البخاري في مقدمة you can't say رواه البخاري be quiet like that potent so what did أبو عالية define صلى الله عليه وسلم he define it it means that Allah is praising صلى الله عليه وسلم in the gathering and the presence of the angels what about when the angels do the salah what does it mean it's a dua what is it it's a dua it's a dua عبد الله من عباز on the other hand when he came to صلى الله عليه وسلم he said he said it means يبركون يبركون he said that they ask Allah's باركة for him and he says to the angels تأني الشخصد على سيدنا أنا وسيد سيد is what عظيمنا والشريفنا the hour على سيدنا أي عظيمنا وشريفنا وأعلان منزلة وأسمان قدرة عظيم means what عظيم means سيد means the greatest of us our master the honorable one or honorable one أعلان منزلة دوانا has the highest level محمد محمد صلى الله عليه وسلم الذي أرسله الله الذي أرسله دوانا الله تبارك وتعالى سدهم وات بشيرا ونذيرا بشيرا ونذيرا ميز وات أي مبشيرا للمؤمنين بالجنة promising the believers جنة ومنذرا ومخوفا للكاثنين بالنار and the warning I'm putting fear in the disbelievers that their health I will await them وعلى آل محمد and on the آل of the prophet صلى الله عليه وسلم the word آل اختلف في أصلي there's a dispute on what's original root word is فقيلة some said أهل they said أهل ثم قولبا تلها أهمزاء and they said the ha got exchanged and it got turned into an أهمزاء he said you with me فقيلة it was then said what because there's already if there's a there's a hamza already there if the ha got changed to another hamza what happens it became what it became أهل أهل that's what they said ثم صغلت and then it got made easy so it became what أهل the two of them merged together and what did it become أهل that's one view that's how it came into it they said so what did they say the ha قولب the ha used to be أهل the ha got changed into what أهل and then when it got changed into أهل what did it become not أهل I'm sorry أهمزاء what happened to both of them أهمزاء they entered it became a met صوه so he said أهل أهمزاء and that's why the scholars they say those who said that view when you're trying to make it small like you know طالب what do you say if you want to say a baby student of knowledge how do you say طالب طالب علم I'm a baby student of knowledge how do you say طوليب طوليب طوليب طوليب صح it's called تصغير to make it smaller the word أهل how is it made it small أهل أهل أهل أهل is the صغير of the word أهل they say أهل الفني meaning the people of this field أهل الفني I think he says ومدرجاته في الحديث مع أتد من بعد ألف هذا الروات تصلت ها يزيني before that yeah وضعوا وضعوا وضعوا وضعوا مضارب عنداء أهل الفني أهل الفني that's what meaning the people of this ابن القيم that is weak that view that happened that قولبة الهاء وهمزة that the hat was changed to a hamza and then after that it became أهل and then what happened to أهل سهلت and then it became مدور into it ابن القيم said that view is weak and he mentioned this in his كتاب what جلاء الأفام في فضل الصلاة على خير الألام he said أصل of it is what أول he said أالي همزة وعو ألام it's all أهل جوهري he mentioned that he mentioned that جوهري and he said sorry what did I say أول and أل أول means الرجع original he said that's what it means جوهري رحم الله mentions it so he said جوهري says فباب الهمزة فباب الهمزة الهمزة والألواء واللام those three that's the root where do you go to جوهري's كتاب what did he mention he said وعال الرجل the man's is who أهل who his children his family وعيالوا اتباعوا and his followers وعند هؤلاء مشتقوا من الأول it's rooted from the word الأول وهو الرجوع it's to come back it's to come back and that's what you come back to original people they come back to