now. So it's great that Anand actually asked the question how many marketers are there in the room and most I think there were a lot of fans I guess most of the people in the room are marketers. I come from the other side which is the world of consumer insights which I think all of us marketers believe we get all the insights on our own when we are monitoring social media because we get our dashboards when we are walking our dog I guess in the park because we talk to our neighbors or when we are doing market visits because we talk to a few retailers. Well that's one of the reasons why India is one of the least penetrated markets for consumer insights. India is also I think if you look at the ratio of GDP to marketing and advertising budgets would also be probably on the lower side and the reason for that in my view is the kind of data based decision making that tends to grow advertising and marketing is something that we need to do a lot more of and we probably don't do as much in investing in understanding consumer data at scale. So my topic is different my topic is I'm going to speak on purpose but I thought I will just give this bit of introduction on the consumer insights industry which I think all of you would be interacting with in some form or the other. So today I'm going to speak on purpose and what purpose means in a world which has been disrupted or not disrupted maybe just amplified by technology. So our world is obviously different today we have had wars we have had supply chain disruptions we have had unprecedented level of inflation maybe to some extent India has remained a little insulated but we are seeing recovery which is Bharat and urban India moving at different pace volume recovery has still not happened its value on which most of the FMCG companies are still riding on so there is a lot of uncertainty and in that environment in which the consumer is also facing a lot of ambiguity can brands really stand by. So some data from study we did on purpose to look at financials of brands that believe that they have a purpose versus those that don't clearly have a purpose and what we found is purpose driven companies tend to over perform on financial outcome metrics. Now this is as evaluated by the companies themselves but if we also looked at consumer data and this data comes from Cantor's brand Z which is the world's largest brand building database that exists and this data also supports the fact that if consumers believe that you have a purpose your brand valuation tends to be higher and there is a 1775 percent higher growth in 12 year brand value if consumers believe that your company actually has a purpose and in an era which is completely disruptive with digital innovation, hyperlocal marketing, value perceptions changing, sustainability I think this is as strong data as you can get and last year when we again did brand Z we again found that there is about a 62 percent valuation growth in brands where consumers endorse that they know and they understand what the brand's purpose is. So if the data is so clear then why I think Byron Sharp had written famously that purpose marketing is the depth of marketing. Why are there so many questions on should we actually do purpose-based marketing or cost-based marketing? I think that comes from a fundamental misunderstanding of what consumers see purpose as or brand purpose as. Purpose simply is the reason why your brand exists and the impact that you seek to have in the lives of your consumers the people who are also people and their ecosystem or the world that they live in. So it is not necessarily about doing something for a social cause it is it can just be delivering excellent high quality consistent service it can just be about high quality products that make life simpler. As long as we are clear on that and as long as that is consistently felt by our consumers they will believe that the brand has a purpose and last year we actually felicitated we have been felicitating purpose driven brands as seen as consumers for the last two years and last year we gave the award to Tadati for what we believe is communication led purpose. T is about refreshment, T is about wake up and they chose a theme that goes with what T stands for what their consumers look for in T and therefore and very nicely embedded socially relevant messaging into it. So it the product and what they are talking about actually go hand in hand and consumers consistently believe that it's a purpose led brand. But what has technology really changed we have been speaking a lot about I mean there is zoom there is hybrid we don't have to meet each other we can do this entire thing over a zoom webinar if we want to. So what has technology actually changed for brands? I think there are four things that have changed the first is it has bought in a lot of new influencers. India in Indians in general compared to the global average are way higher on being influenced by influencers as claimed by them. So this comes from a global study that we do it's called a global issues monitor and consistently we find that Indians believe and trust influencers on social media a lot more than their global counterpart and that's why you have not faced the kind of big technology backlash that's happening across the world till now. The other thing is that through social media we can express in anonymity. We love expressing ourselves through social media and that's again higher than the global average. So not only do we follow influencers and get influenced by them we also love to express ourselves a lot more and influence brand narratives to that extent and that means for brands consumers own your brands now it's not a one-way dialogue anymore it's consumers are feeding you back real-time what they feel about your brands and that makes it all that much more difficult and therefore the judgment is fast. So I won't take an Indian example there are thousands of Indian examples but I don't want to I mean I don't know so I won't take an Indian example but let me take a different example the Bud Light controversy that happened recently in US was because Bud showed a certain kind of person who their audience their relatively conservative target audience did not like and the kind of backlash that happened reflected immediately in sales drop. We have seen instances of this in India we have seen instances where brands have communicated and then taken back to the communication. So the importance of understanding that consumers own your brand and the judgment is going to be extremely fast is is really really really critical. The other thing is therefore if judgment is going to be fast do you want to lead or you want to be led this question was not there when you were doing one-way messaging when you were doing television advertising consumer could not feedback you could tell the consumer look I think you should adopt this progressive agenda on something or the other. Today if you are doing that you better be sure that you can stick to it and not fall back the moment there is a backlash. So either let's find ways of nudging the consumer in a culturally socially inclusive way or not go that route at all and therefore the question of remaining steadfast also comes. So there are four broad ways in which purpose can manifest itself purpose as a commitment I think we I mean Nike does it purpose as a commitment essentially purpose as a product I think Apple the kind of products they make the consistency which which they have stood for great user design is purpose as a product they have been deviating a bit so when a user design kind of organization wants to become a technology organization then they have to think through how they are going to manage that but fundamentally our purpose can be expressed through your product. I think the Polotire example is a great example where we connected what the product is to what we are doing purpose as an experience which is what I think a lot of airlines need to learn from and purpose as simply communication I think the way Tata T did it I mean you don't really have to do anything big they just simply picked up what T stands for and linked it to a socially relevant cause. But what we have to keep in mind as marketers that the value action gap in India is real so whatever you do considering that the question that is always asked is ROI the fact is Indians may say they want sustainability but they're not going to pay more for brands that are sustainable maybe niche maybe at a very upper premium end but not if you're if you're in a volume market and I'm not even talking about volume market as rural I'm talking about standard urban volume market so that value action gap is a real gap so in a sense if you want to do sustainability see it as hygiene don't see it as a way to premiumize see it as where consumers will penalize you for not doing something not that they will reward you for doing something and that is a big mindset shift because we have to also balance our PNL I guess. Therefore I think I really like this example of Tesla in China unlike I mean to some extent in India as well they instead of inclusiveness sustainability are all there but the main thing main what consumers believe what brands should be doing is to make in China is to build the Chinese pride and that's what Tesla did they set up a factory in Shanghai and they made the first EV there and and and they sort of led in some sense they became a part of China's electric vehicle revolution so it doesn't have to be about inclusivity or about any any any such specific today's buzzword it can be something it has to be something that's relevant to your consumer and that is why what we need to first understand is what does your target audience or your consumer believe or want from your brand and you have to nudge the consumer I think the the mistake a lot of brands make that we try to disrupt we try to provoke especially in social media and I don't know how many social media marketers are here but a lot of social media content wants to break the clutter and that's the only thing it seems to want right provoke break the clutter stand out now provoking breaking the clutter standing out is one objective of communication not the entire objective of communication and it does land a lot of times in the wrong way so nudging the consumer along I think there's two great examples of communication one was iodex which actually changed their prototype to this female IPS officer and the other one is Unilever does a brilliant job of what we call un-stereotyping they do it through most of their communication this is a great communication by Wim where they followed the same pattern of basically promoting neutral portrayals you don't have to disrupt you don't have to show something that Indians are not comfortable with as yet you can nudge them along and consumers do reward when brands do the right thing so this is again data from the work we do on creative testing and and what we find is that if consumers see a ad as being progressive or gender neutral there is a much higher impact on the brand equity and short-term sales likelihood much more than many other countries but finally what is really really important is to just remain consistent when the consumer thinks about your brand they should be very clear what does the brand stand for and what technology has done what social media has done is to actually because we are reacting and responding ended up at times make us forget that the class the the basics of brand building haven't really changed the basics of brand building are still the same so brands even when they are built on social media are also I mean even your direct to consumer brands the digital first brands also fundamentally are brands where consumers have to know you they have to feel what you're offering to them is relevant and you have to stand out from your customers other competitors so I think I am actually I've saved some time but yeah this is what I wanted to end with these were the brands that we actually awarded in 2021 for very different reasons and you will not be able to find a single theme I mean to the purpose for Amazon the way consumers see it is about the fact that they deliver fast and convenient I do not have to I don't have problems when I order on Amazon and for them that's fine that's Amazon's purpose it is not a purpose that is I don't know if that is Amazon's purpose but that is how consumers that's what consumers want from Amazon so as long as they are convinced that they are getting what they want they believe the brand is living up to its purpose so I want to leave you with this to say a brand with purpose is a brand with meaning but meaning for your consumers I have a short AV of what I really liked as one of the communication during that sorry can I can we play the AV I just lost it I think in my can you just play the AV please I'm not getting it from my clicker if people say your dreams are crazy if they laugh at what you think you can do good stay that way because what non-believers fail to understand is that calling a dream crazy is not an insult it's a compliment don't try to be the fastest runner in your school or the fastest in the world be the fastest ever don't picture yourself wearing obj's jersey picture obj wearing yours don't settle for homecoming queen or linebacker do both lose a hundred twenty pounds and become an iron man after beating a brain tumor don't believe you have to be like anybody to be somebody if you're born a refugee don't let it stop you from playing soccer for the national team at age 16 don't become the best basketball player on the planet be bigger than basketball believe in something even if it means sacrificing everything when they talk about the greatest team in the history of the sport make sure it's your team believe in something if it means sacrificing everything now for us to have the courage to take that path we will have to not end up doing what i mean not take the route that bud light ended up or ben and jerry went up a lot of the indian brands end up with if we have to take that route we'll have to stand steadfast in that route the trick is to balance that your consumer is not going to pay you more for this you have to still have your balance sheets to manage so what you define as your purpose has to be that tricky balance and it's for you to figure that balance out we can only provide insights around it thank you


Okay. Hello everyone, welcome to the weekly Jenkins Infrastructure team meeting. So today we are five persons, we have a guest, Tien Studer, we have Stéphane Hervé, Marc and I. Hello. So let's get started, first announcement. So the weekly release to point three to five has been released. The checklists have to be completed. The main element if I remember correctly, oh it's written, perfect. Plug-in manager UI, big changes to improve the user experience. So yet, don't know if there are other major changes, Marc? A number of internal improvements that have been queued and working through. So lots of refactoring that happened, lots of warning improvements, that kind of thing. Okay. Thanks. So that should be available on how you are, let's say staging and test environment before end of day. Are there any other announcements? Not, okay. So let's start. So the first point, welcome, Tien. So I will let you the mic. We will discuss about the subject of accelerating CI GenKinds.io builds and tests, mainly. We is using gradle enterprise shoots. So Marc drive the subject and the channel guest is here to show us things. Great. Well, thank you very much, Tien. So I'll share my screen. I have a few slides that I would like to share to give you a bit of context, but I also want to give you a bit of a demo as well. So I will be, and I'll try to keep an eye on the watch that we don't own out of time. So my name is Tien, I'm from gradle, the SVP of engineering of the gradle enterprise team. I have a French name, but I'm from Switzerland and I speak Swiss German usually. So please don't ask me in French at the end of this presentation. I might get a bit in trouble. So first of all, what are we trying to, what problem are we trying to solve? Just give you a little bit of context before we dive into specifics of gradle enterprise. So what we often see for years now already and still see it is three different things, most many others, of course, things take too long, right? We make a small change. We expect to get quick feedback, but we wait way too long and we lose the flow. We switch context and we also accumulate more changes, more potential for failures because things take too long and we start doing something else. Things also take too long to fix. So it goes for local developers or for engineers, but also for infrastructure teams or build teams. Because if we don't know what is going on, what went wrong, it's really hard to fix it. At first, you need to know what is happening without just guesswork and without having to reproduce what hopefully will happen again in order to debug. You want to jump right to, oh, this is what happened. Okay, I know how to fix this. And the third category is more like, is the category of things could have been prevented instead, you run some builds, it fails, the developer comes to you and says, yeah, of course, this happens from time to time, just rerun the build and you'll be fine. It could be a local build, but it could also be a CI build. I'm sure everybody has experienced that, that we're just clicking the run button again because we know sooner or later it will pass. This is all creating inefficiency and making us less productive. And if you add that up for a whole year for multiple developers and that doesn't matter if it's a commercial company or an open source project, it really reduces your productivity significantly and it bumps up your costs, wasted costs. So with Quail Enterprise, we can do different things and I'll show it in practice in a second. First one, we can really surface what happened in your build because we collect what happened in your build with great detail, whether it's a Bazel build, a Maven build or a Gradle build, does not matter, it works exactly the same way. And we can capture that data while the build is running, upload it to the Quail Enterprise server and then that data becomes available to be visualized, to be analyzed and so on. And we can do this for local builds as well as for CI builds. That's an important point because if you just have the server, yes, then you can look at the CI builds, what happened, typically based on logs, but we can do the same for local builds and it's not just based on log, it's a much richer model. And what that allows us to do is we can really do a fast root cause analysis, what was going on like I mentioned, and then we can start addressing it. You can also collaborate efficiently. If something goes wrong and it helped, for example, from the infra team and I built locally, I don't have to explain what I did exactly and what machine was I using and so on. I can just share the data visualized and the infra team, for example, will be very quickly understanding what was going on and they can focus on the solution and not on what was I trying to do, right? The same if I want to collaborate with another developer and I'll show you in a second and some in the case of investigations, even if it's on CI, I can do on my own. If my builds failing, it's passing locally but not on CI, well, I can already take a look at what happened on CI in the visualization that I mentioned and it might be, oh, a new snapshot dependency was pulled in and that was causing my problem, right? I don't need to ping the infra team to ask for a statement in such a case so that it also saves some resource. And also, especially I think in the open source world, everybody's time is limited. Except those that are doing it full time, they do it in their spare time and if they tackle something, they want to do this efficiently. They're not going to say, oh, I'm going to investigate this nasty issue but I already know it's going to take so much time so they might not even start that. So let me just show you that aspect. So that is what we call the build scan and you can see it here. It captures a lot of data, visualized it. You can also export it via an API and it provides all kinds of details and I just picked this from an open source instance that is the xwiki project and what you can see is I can dive all the way into, for example, dependencies and I can quickly see what was going on. Oh, this is what I'm pulling in. It's exactly that snapshot version and that might be the cause of my problem, right? Or I might not know, so I can just take that link and I can share with others, right? I can take that link and I can say, hey, I don't know what the problem is but my colleague might know or maybe somebody from the infrastructure team, I just shared that link. You can go there and you see exactly what I'm looking at and you will see much more. I do will see with what hardware did I run it? What switches did I have on? What were actually the actual goal that I was running and so on. So all these things are already answered and you can quickly dive into the details. What was the build doing? Of course, that includes also testing, dependencies, which plugins were applied. I can even add my own data. And of course, the log itself is also available, but that is the least interesting because it's basically just the plain text. But even here, I could link, I could share, ask for help and really efficiently collaborate with others. So that's the insight spot. Then we move on fast feedback site. I think everywhere does development. Notice that situation, you make a small change. You want to get some quick feedback but usually you make a small change and you have to wait quite a long time to get the feedback whether that change was sound or not. But if we can achieve that the feedback cycles get fast because the build is doing less work because it only does the work it needs to and not all the work all the time, we can run or build more often. We can make smaller changes and get the quick feedback. Was that a good change or not? And because it's so quick, we'll also do this more often. And if we do things more often, this also puts less constraints or less strains on CI. But not only for local development, things get more fluid. Also when you push those changes to CI and you want them to be deployed to some testing server or so, some staging server, if the build is faster, it will, the change will go through the pipelines faster. In the end, be deployed faster to a staging environment or even to a production environment. And one thing that I find extremely important, especially in the open source world, is if I'm a contributor and I want to make maybe just a very small change, maybe even a typo somewhere that I saw in the Java doc or in a method in the API, I want to make that change as quickly as possible. So what do I do? I check out the project and first I build it. And after I build it, I'll make the change. But if it takes me, if it takes to check out this class, but then it takes me like half an hour or an hour to build the project. And I haven't even touched the project yet. I mean, I'm sure many people will just stop there and say, ah, I'm not going to contribute. It's not worth fixing a few typos or even making some small refactors to the code or a feature. If it takes me so long to even build the project the first time. And that's also something we can address where we, and I will show you a concrete example right now. So faster feedback cycles, one way to approach it is by saying, let's not do work we've done before. And that's on the level of a goal. So if I've done it, executed the goal before with exactly the same inputs, so the same sources, for example, the same JDM version and so on, depending on the goal, of course, I can reuse that output that was produced instead of rerunning that goal. And we see this, I took as an example the Spring Boot build. I ran this locally a few days ago. I had checked it out fresh, right. And many things did not have to be run again because they've already built on CI. They've already put in the cache by CI. You can see it here, right. And what that meant is that the whole build, to execute all the tasks to two minutes, right. The full build is about 40 or 50 minutes. So if I'm also, if I'm looking at how much am I saving when I ran this locally, I saved almost three hours. Why? So the build will not have taken three hours. That's because they run the build also in parallel with multiple threads. But still I'm going down to two minutes from something like 40 or 50 minutes. And that is a really low bar for me to say, yes, I want to contribute to that project if I just want to make a small change and I don't want to make a big investment of running a build for an hour. Maybe it even fails after an hour just to make a small change. So I think that's a, especially in the open source world, an important thing to keep in mind. So then lower CI resource consumption, that is in my opinion a nice, almost like a side effect. But I think it's a very important one and I see this more and more happening that just scaling horizontally at some point becomes really expensive. And so what we can do or what happens is if we skip goals because we have executed them already with exactly the same inputs and then we save ourselves the resources of recompiling or rerunning the tests or regenerating Java doc or regenerating source code if we generate source code dynamically. And so that saves resources, right? If we can skip tests that we don't need to run because we know these tests are not going to affect or not going to be affected by the change I made while we again save resource because we just skip work. Also, if the build feedback cycles get faster that I mentioned before and we now start running builds more often locally instead of always just pushing to CI and say, ah, CI is going to take care. We're also putting less weight on CI. And as a nice side effect of that as well if we start building more locally what we will push to CI will be higher quality before you test it locally at least verified to some degree, right? That means it will have less red builds on CI meaning red builds need to be rerun after they're fixed, right? So we can save ourselves these extra cycles of red builds to some degree if we start building more locally and having a higher quality that we push. Another effect is if we get our builds more stable, right? If we have, for example, flaky tests every time we have flaky tests and that runs on CI and it fails, well, we have to rerun that build the entire build typically, right? So we can also reduce hardware consumption in that sense if we make our builds more stable. And so when the test should be green it's always going to be green and it's not going to fail sometime, right? And again, I want to show an example on that part. I'm using the spring project again so they also use Squared Enterprise as an open-source project where we sponsor an instance. And you can see here for the spring boot build all the CI builds are filtered by those over the last 28 days. And you can see they also have some flaky tests. I think every project has flaky tests. I've not seen one that didn't, but that's okay. And usually we have more flaky tests than we have time to fix. So which one should we fix? We need the data to make a good decision and that's what we get here because we collected all the flaky test data for all the builds so basically the test data for all the builds we can also see which ones are the most flaky. And I can slice it and dice it as I want, right? I went by CI, by project but I could also use other dimensions. I didn't see out this one is the most flaky. It usually runs for 12 minutes. Oh, that's pretty expensive every time it runs and it might fail even though it shouldn't. That's it. So it ran for 12 minutes just to then fail when it shouldn't fail. And in the end the whole builds fails. And so if I want to address this problem I will probably address this one first because it's the most flakiness. It is the most flaky of all the tests they have. So I have the data. I can make an informed decision. I can make the fix and I can then verify it again. And then hopefully I see an improvement. For example, you see it was more flaky in the past then it went down but it's still flaky sometimes but most of the time it's green. So I can even see the trend is it getting more flaky or less? All right. So then going back just also how do you install? I get from the infrastructure team you're also interested in how do you run this? So basically you have a great linear-price server. It's piece of software that you install or rehosted in that we can discuss that. And it comes with all these components so the build scans that's what I showed in the visualization. We have the build cache. We can also run tests distributed across many machines. And we can also do analysis over many builds. That's what you see or what I showed you with the test analytics for example. And on the client side basically whether you are on CI which is in that sense also client of great enterprise or a developer the build just points to great enterprise captures the data while it's running pushes it to great enterprise at the end and that's it. Caching happens work similarly the developer runs the build and the great enterprise checks can I use it from the cache or not? And if so it pulls it from the cache. And on CI you not only read from the cache but you also push to the cache. So local developers typically don't push to the cache usually that's disabled that or the permissions are not granted. So only CI pushes to the cache but everybody can reuse. You can reuse it in your pipeline you can use it in consecutive steps of the pipeline and developers can also benefit. So for example I come into the office in the morning I run the build like I showed you with spring and it took everything from the cache and that will be basically always happening when I do a git pull and have no local changes everything will come from the cache. They have some changes only those things that are not affected by that change will then be taken from the cache. So yes I showed the build scans I want to just emphasize that the caching great enterprise happens on the level of a goal so not on the whole build not on the level of a git commit it's on the level of a single goal so it's very fine-grained but that means with every build you will get some caches and the less changes you made you typically the more you get from the cache. Test distribution that is of course not a component where you save resources but if you have to run tests because something has changed you can distribute the work across multiple agents and then collect the results or will be collected and the build continues of course much faster. So if you have 10 agents each one runs 100 tests of 1000 total tests well you can you can expect that your overall test goal will be done 10 times faster. And then we have predictive test selection that's that's something we're working on we were releasing the first preview this week action that's the idea well if I make a change I don't need to run all the tests I only need to run those tests that are very likely to be broken by what I just changed because if I just run a test that is not even affected by that change well I can be saved myself running that test and that is based not on like code traversal or so it's based on historic data we have a very high hit rate and it comes to consider considerable savings right if we don't have to run tests unnecessarily of course you can conditionally turn it on and off so if you say well I have a release build there I always want to test or run all the tests yes you can do that but you could say like for get pull requests there I don't want to run all the tests I just want to run those likely affected by the change. How is it deployed? It's deployed into Kubernetes cluster it supports horizontal scaling it runs at some of the biggest companies or software engineering teams in the world you know like Netflix and LinkedIn and several others also banking banks and so on with thousands of users so it scales really so that's not going to be the issue you can also use an external database instead of an embedded database so that's also possible and you can run multiple cache nodes so if you have people on different continents you can also say I have multiple cache nodes and they can even replicate so you could say see I push this to the cache in just making this up in the US and then it pushes all the entries automatically to the one in Europe the one in Asia and so when people in Europe access a cache node to get some entries it's already there they don't have to get it in the US so this is pretty advanced what would you have to do on the project? I talked with Mark about using the Jenkins core project to get started all you would have to do just to get up and running is well once the server is running achieve those Jenkins.io add extensions.xml where we refer to the Great Enterprise Maven extension you add a great dash enterprise.xml point to that server you can also configure a few details about what you exactly want to capture and so on but that's it you check that in and from then on every build on CI or locally we'll capture the build scan we'll publish it and you get all the analytics you get the build caching etc and I mentioned on CI you would also want to push to the cache so whenever you build on CI push the artifacts of compile and test and turbo talk and so on and so on and so there you would also inject the credentials to write to the build cache while reading you would leave anonymous access so everybody can read the entry but not write so and that's pretty much it but we would not just say here's the server or here's the license and now they connect your builds and we're done and we would really help you get the most out of it and this maybe looks a bit I don't know scary but it's not there's an installation part then it's configuring the build to connect to great enterprise that we would measure where we are today but this is really more for the commercial side I mean but still it would be interesting to see where are you today then we would help you optimize the build to get the most out of the build cache and we can measure then again we can measure a delta and that's it well all right that is more like on the commercial side but that this is really the idea we use the tool itself to measure its value and it's not based on qualitative value it's or qualitative metrics it's really quantitative metrics but even then you would not be done or I mean it is not considered done because it's like cleaning up a room you have to clean up from time to time otherwise you're going to have a mess again I didn't see the same here so we also have some some visualizations to make sure where's my build time going is it going up and down how am I using the build cache and so for what are the most common failures for example you have a somebody says oh I have an error on CI I have this every day you're like you're sure I don't think so well then you have this guesswork with quite an enterprise you can find all the builds with similar failures and it will tell you ah it's only on that one agent or it's only locally by that user or whatever it is right so again we will have data to make informed decisions and if you're not sure you can always share use the links and share with your colleagues you can also compare to builds to see why it's not something taken from the cache when it should be and it will give you a nice diff and from there it's usually really easy to find out because the key is always knowing what happened because once you know you can react to it but you have a lot of customers so but that's not relevant in this case but we also have other open source great land price instances running right and this is the current list so you see spring was one of the first chapter in Scotland compilers using each unit Spock test containers a lot of project in the in the testing space we also have micrometers also hibernate and also the micro note foundation they're also using great land price across their 80 projects yeah and some both listed twice and so on right and some use it cradle some use it with maven it works exactly the same way we also did it for the Jenkins project so I asked Mark well what would we do first and he said we will do the the core project first so we ran an experiment we took the project we checked it out we ran the full build with tests so and we tried to use the same configuration that you have in your what we think is your configuration that you run on ci and it took an hour and 12 minutes and I can show you the build scan and then we ran it again with great land price enabled we we added some additional annotations to make it clear for great land price what are inputs and what are outputs and in the best case scenario where you run the build twice and you don't make a change between it goes from one hour 12 minutes to one minute two seconds so again we can we can measure that so let me show you you can see here to finish off my my part here it was using the build cash and ran not many goals because many came from the cash so if we look at what came from the cash these are all the things that came from the cash all right so that's what I briefly wanted to show here as well that that the savings you can expect are very significant and that's pretty much what I wanted to wanted to show you today so I'd be very happy if you're interested in proceeding from here to try out great land price with one of your projects so thanks very much at the end I'm I'm especially delighted that you ran the experiment with the Jenkins Core that was now now I'm interested in the behavior on as soon as a so the 72 minutes to two minutes really great that's marvelous now the question then is when the first change arrives that's the place where I was most interested in all right somebody submitted a poll request to change some piece you noted that would that would then take some advantage of the cash but of course it'd have to rebuild some pieces and so it's certainly not going to be two minutes the hope is it will be somewhere between 72 minutes and two minutes and we get benefit from the cash yep yes exactly so great land price we'll only build what what is needed to be built so if you make a change depending on what that changes how rippling it is it will have to do more or less work that's correct so it is the best case scenario but I would still keep in mind that this best case scenario also happens quite often like I said if you check out a new version from Git and you commit state you have no local changes you build it it will apply or you run the the GitHub the poll request and then you merge it and you run it again on master it basically have the same code you run you run the same thing it can just take everything from the cash so there are still many scenarios where the best case scenario kicks in and even if the best case scenario doesn't kick in it's somewhere between the two minutes yes and the hour and 12 minutes in the case that we measure to yes and the great land price will tell you like we have a performance dashboard where you see over the last for example 28 days on CI how much savings did we get from the cash so to the rest of the team I assume ge.jankins.io is a thing that you hosted and that you could host for this prototype to Damian and every I assume that would mean we would have to do something in terms of DNS to to allow such a thing what other questions the rest of the team have I I've run out of my questions others okay so thanks for for that presentation that's really appealing so I have also a few questions so the first one we have a specificity on the case of CI jankins.io is the fact that since it's a public facing jankins instance and we don't have mechanisms such as the GitHub token on GitHub action we consider all credential on that instance potentially compromised every day that means everything that is built so all the the CI pure CI no generation of artifact that are published somewhere all the build and test only phases are provided to developer for the feedbacks that means developer cannot push the cache that will be too dangerous for us given the amount of contributor we have there so that means the cache generation is it possible I understand that yes based on your presentation but I will want to be sure that I understand correctly that mean we could have a private instance that run the source code so it's something really private and secure that should push to the cache only while another jankins instance that big one public facing could benefit from that generated cache is my understanding correct okay so Damien just to be sure I've understood so then the idea then would be ci.jankins.io would not push to cache we would have something else that would push to cache it may not give us as hot a cache as as if ci.jankins.io were doing it but it avoids the risk of someone doing an attack where they submit something and poison the cache by exactly that's the risk here the attack vector will be clearly this one I understand that we should see some benefits but will we have the same benefits as the incrementals one that you describe like we open a pull request or a few pull requests a lot during a single day let's say we update the cache hourly or maybe all the six or eight hours are we still able to benefit from the when we are frequent tiny changes yep so that's a good good point and so what I did not go into but there is there's both a local and a remote cache so there's a cache you can share between users and then there's one local to the machine so that's a kind of worst case you had no remote cache you could still benefit from a local cache when you switch branches or you make updates and be wrong again so that's something you would still have but even if you have the remote cache on and you do the scenario that you describe yes you lose a little bit in that case where you said okay I'm pull request and I'm urged to master because likely between those two builds the private instance will not populate the cache and I'm not sure how you reuse the agents so for example if you run multiple builds on an agent before destroying it then you can no we don't we don't reuse agent at all or our agent are ephemeral and one-shots initially for cost reasons but also to help on the security even if it's not enough I would say safety instead but all these machines except really really specific exceptional the machines are either virtual machines on the cloud or containers on Kubernetes and it's on two different cloud provider so we don't have the network locality so in the deployment scenario we will need two geographical location one on Azure and one on AWS so depending on the kind we will have a closed cache near to the agents yeah yeah yeah so I would expect that we don't see the same high benefits but I would expect we still see the benefits and again if you try it you will be able to measure it that's the good thing it's not I mean right now it's a bit of a guess but it will not be and of course let's say a developer that that contributes and checks out once a day or maybe once every few days they will still get all the benefits when they pull from from the git and then run the build and it gets it from the cache I also have a question so I don't know since you have a lot of metrics do you have feedbacks about the benefits costs of running your own service and cache versus downloading everything because in our case installing the service meaning hosting a database having a file system block storage that will grow with the cache size plus the multiple installation that will cost us some let's say CPU cycle on both clouds and in the end since our goal is to decrease the build time do you have some metrics about okay if you host on Azure then it's better than Amazon because the cost balance benefits between the time of spending on one hour of AWS T3 medium I don't know if you have such metrics because that one is tricky to measure and that could we need at least one month of running it in a real-life scenario not on a single point to be able to measure if it's worth it Yes so for that I don't have an answer because to be honest so far everybody that's using great enterprise and doesn't host it internally they're using AWS that's that but there we also see some differences in that some some use bigger machine some use smaller machine and also there is the question well do you really need the higher machine I mean it's at some point it's pretty hard to quantify but my experience is also the costs are not so big that it really makes a huge difference whether you're then using A or B so and what I also often see is that yes there's also an overhead in getting things from the cache because it needs to download it it needs to extract it but when you compare it to a goal that runs for five minutes or even an hour it becomes negligible that is kind of there so there's some cost but usually it's negligible Okay I was just asking in case you already had metrics if we can totally provide what we can measure on our experiment in the case most of the infrastructure is open and transparent so if you're interested on these feedbacks we could try to measure of course in that measurement it's only pure infrastructure and eventually this ups measurement time how much we cost per hour or something but it doesn't measure the the value that you presented for the developer not having to wait even if we are not the company with all the contributor we cannot measure the developer productivity here but still it's it's really nearly scoped what I'm speaking of of course because the developer experience and they don't have to wait one hour this one is hard to value in terms of money but it's still a good value to provide so it's just I'm asking and we can provide measure because we will try that will be still a data point interesting data point to that point and just give you a rough number that we host some instances right and what they call we'll host them all in the Kubernetes cluster it's the same cluster all those 15 instances minus two spring and JetBrains hosted themselves but all the other ones we host so that's 13 instances and they cost us around a hundred thirty dollars per month per instance so it's it's not it's not a lot of yeah that's okay of course as you have more data and maybe you have much more load than the number increases but this is an average number for our instances okay but that's a good order of magnitude another question about the installation let's say we have a Kubernetes cluster to host most of the persistent services such as the database the proxy and all the the element the key clock and stuff let's say we have another Kubernetes cluster on another cloud provider in our case Azure and Amazon we tend to separate physically Kubernetes cluster and on Amazon we only run ephemeral agents what the builds happen so that means we would need at least one or two local nodes that provide a cache or any metrics or probes that are used is it possible to have such deployment like some components are outside the main Kubernetes cluster where you have the database yes in general that that is definitely possible I don't want to go too far because I'm not the infrastructure experts okay but no problem let's say situations you also are able to run a cache node not as a Kubernetes but just as a standalone Docker image that is also possible okay so what I've seen is usually when the constraints were given by the Kubernetes how restrictive the Kubernetes cluster was configured and not by what Gridliner price supported or not because in the end it's just HTTP requests across networks first I think that answer my last question is is there a possibility to remove from cache a specific artifacts because that's a scenario we have quite often we generate an artifact that for good and bad reasons ends up being a jar file with a size of 0 bytes that file is uploaded to the cache we have currently most of the time we need to create a new release and update all the dependency chain because we cannot clear remove from our homemade cache is it a feature because that feature is costing a lot of developer headache is it something that is provided on the offer like I want to remove specifically that artifact but that version of the artifact yes so that the in the way it works as you would see in the build scan that the visualization I showed you would see oh this goal ran created a jar doesn't look right you will see what what the cache key is of that entry you can go to the cache admin UI of course enterprise you can enter that cache key you can say delete and it will delete it from all the nodes cool yeah nice feature these are the four a question I had I don't know for airbase if I don't mark if you have others but thanks for your answers thank you for the question ATN you had mentioned to me licensing and that was one if I remember right that needs somebody with signature authority and that I'll probably have to take to the Jenkins governance board because the the infra team certainly does not have authorization to sign something on behalf of a legal entity so but but that I anything you need to share there on licensing that you and I can work it separately I think without without a lot of complication there I've I'm now a member of the governance board so I'll certainly take it to them yep yes so it's it's more like a technicality I mean we see this as a collaboration and it's not like you know I mean we're offering this right so it's we just need something for kind of the worst case scenario where I don't know you invited Microsoft to use that instance for free or something right I'm just making it so it's really just for the worst case in ours that we want to be we need something because we're now commercial in India but we've done before so we have a standard terms as well that we can use as a basis so I'm I think it's just a formality in GMC to work that for that you know that's excellent thank you Etienne thanks very much thanks very much I think I think that concludes next steps as far as I can tell is engage with you to or let me do we need a separate conversation Damien Erwe and Stefan or is it okay if we I start the next steps of working the discussion with the governance board and we'll discuss internally yeah I think we can totally start the conversation with the governance board and the developer so the goal is now is to be sure that our developers see value if there is no override if they are okay on the infrastructure sites I mean we don't mind providing a new tool because we see it could be valuable but we are not the person that really developed and use and wait for their builds every day so here the value for us as infrastructure is if you can help the developer and if you can even help us a bit that's okay but the cost here for us is to have to manage the solution it sounds good on the paper given the answer you and the presentation you gave I mean we can install on Kubernetes and eventually distribute some cash there is the test part I understand there is a part that might be or is hosted on your own for the metrics analytics I assume that you have something on that part no either it will all be with you or all will be with us like there's no share there's no split okay so an ATN if it would be okay with you I'd like to plan for and it may have to be after the first of the after the new year a developer online meetup where we have you present much of the same things that you've done for us here but with a developer centered idea so that they can come and ask questions and say hey what about this what about this your data that you gave what looked like a great piece I would ask for one or two more pieces of data in terms of hey I evaluated this pull request it took this much extra this much time so that they've got that in that answer but would you be okay doing us an online meetup probably 60 to 90 minutes the first 45 minutes or so presentation mode with relatively few questions and then we'll switch to Q&A mode and high interaction would you be willing to do that sure okay great all right so I will I will propose that and go looking for a time when it works for us we usually need at least two weeks of of of alert to the community and given the end of your holidays that means it'll probably be early January before we can do it it's better than yeah great thank you for the opportunity thank you very much exciting and then we'll stay in touch I guess excellent thanks at the end I'll let you go all right thanks very much thanks so Damian I think we still have topics we need to cover are you okay if I go back to sharing my screen or you want to share okay share here we go up strong yes I propose given that we are a bit over time we go over the important part is the accounts Jenkins IO discussion from Loc4Shell and if it's okay for everyone I don't see other emergency or high priority to pick outside this one so I propose that we delay the all the normal operation elements either to the day today or to next weekly team if it's okay for everyone unless you have a high priority topics outside Loc4Shell the Loc4Shell is the one thing that was on my mind and accounts at Jenkins that IO is the one on my mind okay so let's go so first of all public thanks to LV Mark and Stefan also for the work you did I wasn't available during last week for the work you did to assist the security team that we can also give many credit and thanks for the rapid response analysis for helping on all the sites so really a big thanks I wasn't available at all and I mean I wasn't worried the minute given the work that everyone did even if it's a worrying subject so really many thanks for all of you for the work spot there so just a point so thanks so Hervé it sounds like confirm what is my understanding correct that account Jenkins IO so the old application that helps to manage the accounts and directly on the LDAP database and also beta and admin that are two and three point to the same key clock system a public and the back end one these applications are still running on our Kubernetes cluster but they don't have any ingress which mean no one can reach them except the cluster administrator so we keep the logs of this system or at least the current behavior we can still manage us admins but no one can reach them since everyone worked on that can you confirm that I understand correctly I couldn't the Jenkins that IO and beta that I couldn't the Jenkins that IO I don't anymore any ingress but admin the Jenkins that IO is still open running okay and accessible yeah it's only available through the private ingress meaning through the VPN so it's not admin only for that one it's everyone with an open access to the Jenkins infra VPN it's using what we call the private ingress but yeah important to notice because if there is an attack vector through our private machine still we could have had issues so the status right now oh the analysis I understand that no Jenkins systems is subject to the log for g issue because no log for g dependency on Jenkins core or most of the plug-in we use I don't know if there has been a full scale or a scale directly on the virtual machine to see if there isn't dependent a transitive dependency of a plug-in mark did we run that analysis Daniel ran that analysis on CI on Friday and and found no no issue if that's that I think by analyzing the sqa file and the dependency file not on VM and like you are suggesting correct he you're right he did not scan the file at least as far as I know he did not scan the file system that's true okay what he did was scan understand just one final task to be sure on the case of ci given that we have a bunch of plugins that are installed some might not be used so better safe than sorry even though they did to complete analysis from the top I think there are a bunch of scanners that we can run on ourselves from the machine just to be sure that on user local Jenkins we don't have anything I guess it's it has to be run on the Jenkins some not on the Docker image since they already did the Docker image part yep I'm I'm pretty sure they just looked at the source code source source code of the plugin on Jenkins and I don't think they well no I so I definitely ran the the mitigation from the blog post on ci.jenkins.io and that that is inside that goes inside the groovy script console so it's definitely looking at the running Java virtual machine okay is there a way to persist that change if we have to restart ci.jenkins.io if we did the mitigation that inside it's not a mitigation it's a script to check if we are available from is there any plugin using logforge the affected version of logforge or logforge at short okay ash I may have asked before then is there a document even a private one that one of you can share with me because I I wasn't able to find anything about that and I'm sure there is a bunch of someone wrote the script the script to check it is in the Jenkins blog yes all working documents that list what has been done everywhere because I had partial information from different chat channels or issues and I'm not sure if we have documents where we listed that I understand that it was hard so I'm not saying we should have done that I'm saying do you do we have something that that can do yes I'm and I'm happy to share that with you Damien we've okay I we definitely kept the log all day Friday of the of the actions we were taking and the observations so many things with you absolutely so that means all the Jenkins instance are safe based on all the work you did that means the only candidates would be accounts and beta and that mean do I understand that these are the only ones all these operations either are not Java or don't have logforge right yes key clock isn't affected and account doesn't seem so too I've searched for logforge in the source code and dependency tree and they don't found anything cool where were we able to run on the these free services a scan on the containers because these are running on containers and Kubernetes that check that the the dependency is not present on the war somewhere as a transitive dependency so we don't have the dependency from POM XML but it can come from a transitive dependency so the the the assessment that that is done from the script console checks transitive dependencies because transitive dependency jars are also loaded into Jenkins at runtime and so the for Jenkins but for key clock oh yeah key clock we've key clock we've we are taking they issued a statement saying there aren't vulnerable we if not we didn't went further and for account tab I've so in the case of account tab I saw an analysis from Daniel that we're using logforge1.x so that means a version before the code that is the infamous code that triggered the GNDI stuff hasn't been introduced yet so that means account is so old it doesn't see that they got other problem to solve before this exactly so based on all the feedbacks you all did there should be no reason for not putting back this service online so Daniel Beck did have one question he was asking if accounts.jankens.io is hosted inside of something else and I had not done that analysis he was asking about is it inside a tomcat or a web sphere or a glassfish okay so it's running on a docker container which is described on the repository let me add the link on the notes I don't remember but it's on the from let me add the link oh right I think we did look at that didn't we sorry no problem Mark we had looked at the docker image that defines accounts.jankens.io and the from was was an outdated version of jetty if I remember right okay it's running inside jetty correct I don't know that for sure have you checked at Damian yes just right now let me add the link here is the link so which version I don't know we need to check the last the the builds yes and that should be in the notes yeah oh yes here it is okay so oh nope okay I did the the dependency check in the in the notes and there it was only logged for j1.2 note 2.x but the that that jetty jre8 we did the analysis during the meeting but I don't see it noted here sorry about that so it was that is jetty colon jre8 is if I remember right about two years old as an image and so don't know if it's vulnerable okay let me just run the command with kubectl exec to check the exact version we have I think that's right now in production because here we have a typical example that we use the latest kind of image on Docker that means what is exactly inside the image depends on when did we build that image last time we cannot fix exactly all the elements on a given image because we want to benefit some from patches but here in that case it's factual that means we need to check in production what we have I'm currently running the command inside the app container and I will copy pass the command I run to determine the current version of jetty and java so we should be able then to answer back to Daniel so we can continue on the on that one so we need to ask to assess there is absolutely no risk on account jenkin sayo before putting it back so right now we don't know do you share the same analysis as mine I do not know that that docker image is free of any any JDK or any log for j2 instance yes so I don't know that so we need to validate these versions regarding accounts and beta so these two services sorry beta and admin so beta is public and admin is private and will be kept private we have we can I mission you to just to chair the official statement of key clock so we can put it on the notes not right now we can do this afterwards that will be our stump saying okay we can put that service back if it's okay for everyone but that should be okay to put these elements back if we have that confirmation and add a scan a full scan of the of the docker if if needed to have a second security you know yeah good point I propose that we run the docker docker released that scanner analysis on the tool on docker desktop so we could try to run a scan on the same exact image checksum that the one we're running in production as a secondary check so we have from key clock something that say okay it's okay and the docker scan analysis with both if both are positive we should be able to put beta and admin back online or beta sounds good for you we want to take the scanning option someone with docker desktop I don't know how to say something more brutal but that's the word better safe than sorry in English that's that's exactly the same meaning as Santuribre tell you perfect are you are you interested Stefan on running the scan since I know you have docker desktop we can help you on finding the correct one the correct or reference but are you interested on that oh yes perfect okay so Stefan is designed a volunteer for that task at least for the for the for the beta image yeah um I propose RV or mark one is one of you okay for doing the same with the account docker image just to be sure yes if I can get the how would I how would I get access so I definitely have docker desktop and I'm happy to run any tools that will help that how do I find out the exact how do I get and download the exact image of what's being run for on accounts that Jenkins that I took off you have the tag of the image defined on the chart configuration file that should be a first step and then you will you should confirm that the full shh checksum of the image that you have scanned is the same as the one running on aka s cluster so with the describe pod or get pod if you export the pod definition if you're interested we can do this like we because we do the same with Stefan so we can do the free of us and each one of you will then be autonomous to get the correct reference the difference is I don't know if Stefan has direct access while you have mark but we can start the free of us yeah I'm not sure that I'm I'm I actually I'm quite sure I'm not confident being using direct access even if I have it so yes I would I would love a session okay so then I will show you that unless survey are you okay to drive that I'm asking just to be sure because that's a learning opportunity for everyone even if I do it oh I don't so sorry two minutes heater issue but maybe we don't need to record that part right right we definitely know that that that we will end the meeting and then and then we can do do do the exploration absolutely so while while Demian's offline I had opened up the the jetty colon JRE 8 Docker image that I downloaded I'm not 100% sure it's the same exact image but I opened it and I see no reference to log for 2j dash core anywhere in it so so that there is there are references to log for 2j log for j2 but not the dash core that that is that seems to be the place where the vulnerability exists now I have not expanded every jar file that's on the system to do the recursive search so it still could be hiding I've put the note the depression from key clock in the zoom chat okay so the so the the unpacked jetty user local jetty does not it contains several different many different jars but it does not contain any jar with the name log for j in it I'm just locked on the on the zoom screen no way to see anything else yeah okay so I think we are at a point where we could pause stop the stop the recording and call it continue the meeting then without being actively recorded any objections no no okay so I'm


عن عيشة رضي الله تعالى عنها قالت دخل عبد الله قد دخل عبد الرحمان ابن أبي بكر الصديق رضي الله تعالى عنهما عن النبي صلى الله عليه وسلم و أنا مسندته إلى صدري وما عبد الرحمان سواك الرطب يستن به فأباده رسول الله صلى الله عليه وسلم بصره فاختوا السواكة فقاضمته وانفضته فطيبته ثم دفعته إلى النبي صلى الله عليه وسلم فاستن به فلما رأيت رسول الله صلى الله عليه وسلم فما رأيت رسول الله استنANK IСتن أسن منه فما أعد أن فرغ رسول الله صلى الله عليه وسلم رفع يده أو إصبعه ثم قال في الرفيق الأعلى ثلاثا ثم قضى وكانت تقول ما تبين حاقناتي وذاقناتي وفي لفظ فرأيت ينظر إليه وعرفت أنه يحب السواكة فقلت أخذه لك فأشار برأسي أن نعم هذا لفظ البخاري ولمسلم نحوه هذه الحديثة تخبرت من الإمام البخاري وخاري هوه يحب المولون وخاري هوه وخاري تخبرت هذه الحديثة في كتاب الجمعة كتاب الجنائس كتاب فرض الخمس كتاب فضائل الصحابة كتاب المغازي كتاب النكاح كتاب الرقاق رقاق ورزمان مسلم نريدت هذه الحديث إلى الصحيح كتاب فضائل الصحابة عائشة رضي الله تعالى عنها وخبرت عنها بايوغرفي قبل وخبرتها في الثالث حديث وخبرتها في الثالث حديث وخبرتها هو عبد الرحمن ابن أبي بكر who we haven't spoken about he's the brother of عائشة رضي الله تعالى عنها he took Islam قبيل الفتح he took Islam before the conquest of Mecca just before it and his Islam became very good ومات في Mecca and he died in Mecca سنة 58 he died in Mecca in 58 هجرية عائشة رضي الله تعالى عنها she said دخل عبد الرحمن ابن أبي بكر السديق عبد الرحمن ابن أبي بكر السديق entered and when he entered عان النبي صلى الله عليه وسلم all the messengers صلى الله عليه وسلم he entered onto us وانا مس ناديا تهو and I was the one I was the object that the Prophet was leaning on I was the thing he was leaning on عليه السلام إلى صدري to my chest the Prophet was leaning on my chest his head عليه السلام وما عبد الرحمن and عبد الرحمن ابن أبي بكر he had a Siwak in his hand رطبون the Siwak was rudmily it wasn't dry it wasn't dry يستنو به in which he was cleaning his mouth with فأبده the Messenger صلى الله عليه وسلم ممعني أبده اي مد نظره إله واطال the Prophet ﷺ he lengthened his look at him when he looked at him for a long time عليه الصلاة والسلام you see looked at him for a long time عائشة realized because the other wording told her فرأيتوا ينظروا إله I saw him looking at it in the first narration it says فأخذتوا السواك I took the Siwak from Abdul-Rahman her brother okay in the other wording she said وعرفتوا I know you love Siwak I realized and I remembered that he loves the Siwak فقلت I said to him أخذوها لك shall I take the Siwak for you whereas the wording of Bukhari doesn't say that he just says that she took it the wording of sorry the other wording of مسلم the Bukhari both of them are Bukhari wording sorry Bukhari other wording he says with his head this yes he's very sick he says death bed عليه الصلاة والسلام so he said yes get it for me get it for me عائشة رضي الله تعالى عنه she said فقاضم to who فقاضم to who فقاضم to who ومعنى فقاضم to who I chewed on it for him I chewed on it for him so she bit on it for him and then what did she do وانا فضت to who and she took off what was on it the things that were on it meaning her brothers the part he used she took it off for him meaning she broke it off and I made it فطيب to who I made it ready for him pure and nice and good I made it ready for him then she said ثم دفعت I gave it to him this is to show you that the wife should know her husband she knew him عليه الصلاة والسلام he didn't have to say anything to her she recognized he was looking do you see فاستنى به the prophet and he started to brush his teeth عائشة said فما رأيته I never saw رسول الله the messenger of Allah استنى استنان I never saw the prophet pure and clean his mouth the way he cleaned his mouth that day فما عدى he did not finish عليه الصلاة meaning he as soon as as soon as he finished his brushing of his mouth she said that he lifted his hand or his finger رفع يده he lifted his hand up or his finger and then he said في الرفيق الأعلى a high level I want the high level meaning three times and then his soul was taken and عائشة used to say the messenger of Allah died ما تبين حقنتي وذاقنتي the messenger died on my haقنة and my ذاقنة meaning my chest here it was on her chest عليه الصلاة between her throat and her stomach so he was there عليه الصلاة he used to pray she used to boast نفق of the hadith one from the sunnah is the sunnah is to use a siwak which is not dry two جواز الستياك بسيواك غيره بعد تنظيفه وتطغيره the permissibility of using a miswak that is not yours but somebody else's after you've cleaned it and purified it three the permissibility جواز العمال بما يفهم من الإشارة والدلالة المفهما the permissibility on implementing something that was given to you by way of indication not verbally said to you four جواز و the permissibility of دخول الأقاربي the permissibility of the relatives entering upon the wife أقاربي زوجتة على زوج في حالة مرضه وغيره at the time when he is ill the husband the family of the girl can enter upon the man who is married to their sister because remember the person who has to cover is the sister and if these are from her side then الحمد لله she doesn't have to cover five جواز إسناد زوج زوج في حالة الصحة والمرض ولو في وقت النزه the permissibility of leaning the husband on the wife or leaning on something at the time when you are healthy or even when you are ill or even at the time when your life is about to be taken you can lean on something six شد تحب الرسول the excessive love of the messenger and he is striving for the تسواك عليه الصلاة والسلام مشروعية the legislation of the تسوق في كل وقت every time to do تسواك because the process of the سلام he affirmed it عبد الحمان بن عو أبي بكر he affirmed it for him like he was doing it every time that you can do this work you see number eight قوة القلب النبي صلى علي السلام the strength and the power of the prophet's heart عليه الصلاة والسلام nine إثبات العلول الله to affirm that Allah is above high up above his throne عليه الصلاة والسلام because the prophet said رفيق أعلى أعلى so he is going to his lord ten فضيلة عائشة رضي الله the virtue of عائشة by her good way in which she lived with the messenger the way she served him while he was alive and even the last moments before he left this world and that negates the battle concept and the rafid and the shia of عائشة رضي الله رفيق الأعلى رفيق الأعلى are the accompanies of the above the accompanies of the above رفيق الأعلى is the high stage those you accompany رفيق means somebody who accompanies you who are those who accompany you in the high above they are those who Allah has mentioned in the ayah and the Quran in Surah al Nisa ayah 69 الذين أنا عم الله عليه من النبيين والصديقين والشهداء والصالحين وحسن أولئك رفيقاء ayah 69 سورة النساء نعم


Good morning, John. Remember how I wrote a book? This is all of the languages it's been published in so far. That's the coolest thing I own. That book will, at some point in the future, have a sequel. And I have been working on that sequel, and so I've been thinking about writing a lot lately. And this has made me realize that there are a number of things that I wish that I had known about writing when I was writing my first book. This, of course, isn't going to be applicable to everybody, but I figured I'd share with the help of some questions I got on Twitter. Thing number one, characters versus plot. I started with plot, and I thought that plot was going to carry me through the whole process. I was super wrong. I couldn't even really get deep into the book until I cared about the characters really deeply. I had to love them like friends in order to have the motivation to finish telling their story. So, like, as far as writing motivation goes, my, like, biggest tip is fall in love with your characters. That's all. It's the only thing that kept me going. Thing number two, writing schedules are not a thing that I have. Sometimes I'm pretty busy. Sometimes I'm not. Sometimes I'm sick. But if I do not write at least a thousand words a week, the story leaves my brain. I no longer think about it in the shower when I'm taking a walk. And starting back up again becomes a whole process. For me, a thousand words is like one or two hours of writing time, and if I don't make that time, I'm not writing the book anymore, and I might not write again for months. Thing number three, also regarding the actual physical process of writing. Not all writing is writing. Thinking, staring, researching, stressing, reading other people's books, reading your own book again, reading stuff that you've already written. All that stuff is writing. If you're super focused on word count, you'll have more words. If you're super focused on story, you'll have more story. Thing number four, relatedly, nothing but time writes a book. I don't know how I didn't know this, but it takes hundreds of hours at least, and so if you don't spend the time, it doesn't get done. Thing number five, plotting, for me, is a process of constant retcon. I don't know how other people do it, but I'm writing, and then I realize that something earlier in the story doesn't make sense, or isn't necessary, or is too loose. And then the first book, I would go back and fix that, which was terrible. One, because I might get further into the story and then have to go back and fix that exact same thing again. It takes a thousand years to look it up and fix it. It takes you out of your flow. So the second book, I just created a folder in my project file, and it's called Things to Change.  Thing number six, the characters have to be in control. If I'm controlling them, then they aren't real, and they're not going to feel real. Thing number seven, oh my God, why didn't I know this? You don't have to write linearly. If I'm around, if I'm excited about a scene, I go and I write that scene, and it doesn't matter if it's going to take place like at the last quarter of the book and I'm in the first quarter. When I eventually fill in all the gaps, like there's definitely going to be things that I have to change about that scene. But also everything that I've written up to that point is going to mesh better with that final destination. And even more importantly, sometimes a scene you're really excited about, they're big scenes, they're important scenes. They turn out that they don't work. And then if you write up all the way to that scene just to get to that scene and it doesn't work, it's a disaster. So for me, it's been really good to know if my important scenes are actually going to work before I get to them. And finally, thing number eight, I have expertises and passions, of things that I love and that I care about and that I know about. I've written like a thousand nonfiction video essays, I'm kind of an expert on social media. I don't know how I hadn't figured this out, but like using my expertises and my passions has been deeply enabling. And all of my early failed attempts at other books was because I wasn't doing that. So John, thank you for the years of practice here and if I could give you any advice, it's apparently write a soccer novel. I'll see you on Tuesday. I don't have any news regarding this sequel right now but I am working on it. If you want to hear me talk more about writing, I have a very long video over on Hank's channel where I answer many more questions that I was sent on Twitter. And also the book boxes from Life's Library. We actually make more of those than we're probably going to need just in case anybody needs some replacements. But we're releasing a bunch of those on discount at dftba.com if you want to check that out.


Hi. Hi. Good afternoon. My name is Stone. Welcome to the live streaming video of the global source for the international global sourcing fail. So you are... Our country is for... Our company is Chenzo Hei Electronics, and we are the booth number of the 1K37... Today is the Saturday of the exhibition, and now we are going to introduce you to the smart alarm system, the GSM Wi-Fi alarm system. With the GSM Wi-Fi alarm system, you can directly to... So it's... How does it work? If there is alarm happen, you power it on, but if there is alarm happen, you can directly to make the alarm system to be informed to the preset alarm phone number, make alarm phone calling. So there's a battery inside. Yeah, battery. So when there's no more power in the house, it still work. Yeah, yeah. How long time will work on the battery? 20 hours. 20 hours. Yeah. So sometimes there's an emergency, no power, but so this guy, he cannot come in by turning off the power. It's not enough. If somebody make the power cut off, there is a light on the report and also notification AC field, AC failure, and then you would check the AC power, and also if the battery low power, there is also a light and notification, you can know. And for this alarm system, if someone need help, the emergency help, it can make the emergency alarm, then it will be help. Yeah. All right. The sound coming from this. Yeah. And this is the smart alarm system Wi-Fi 2G, 4G alarm hub. And there you have this thing, that thing, that thing, all these things. And this could be connected. Yeah. Output silent to be connected. And also for the alarm system, you can use the application. And this is the application of the alarm system with the application. Okay. Yeah. You can choose all the different devices that are connected. Is it over Bluetooth connecting or Wi-Fi connection? And for the alarm system, usually you leave home if someone to open the door, like this one is usually still on the door, you trigger the alarm, which will make the alarm happen. All right. Yeah. And then you would know someone, some safe or intruder, come into your room. All right. And then you have these big sirens. Yeah. This is big sound. Yeah. Big silence. The whole village will hear it. Yeah. The whole village, 118 dB, and in one meter, the distance of the. If you trigger this now, the whole fair will close. So better not to trigger. Right? Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. All right. Yeah. And what, what more product we see here is different versions. This is for the GSM Wi-Fi alarm system to, for this place that you have the SIM card. With the SIM card, you can set the alarm phone. When alarm happen, you would get the alarm phone calling and also SMOS to inform you. What is the software? What is the solution? Is it some kind of embedded solution, small software? The mobile phone application based with the cell wall back end, the mobile phone to, like this kind of mobile app, mobile application, you can arm this arm remotely with this mobile application. You can get the notification to know what happened at your house. And also you can connect to the IP camera, make your alarm visible. So how do you connect to IP camera? It's just an app? Yeah, in the same app. You add the IP camera to the app. Yeah. And then everything happened in the app. Yes. By the Wi-Fi configuration, you can add the alarm system to the application.  What is this 12,000 kits per month? This is how many you make? This is the production capacity of each month, 20,000 of each month. This is our factory of all more 7,800 square meters. What is the most popular product? The most popular products is this one, the Wi-Fi alarm system. Wi-Fi Gateway with the Red Dot Design Award winner in 2020. This one? Yeah, this one. This model. So what does it do? It's just a gateway? Wi-Fi Gateway, Wi-Fi alarm system. So it connects to your Wi-Fi? Yeah, it connects to mobile applications, like the Wi-Fi, 2.4GHz Wi-Fi and 5G Wi-Fi both support it. It also supports 4G? Yeah, 4G GPIS, yes. Can you talk about the price, MLQ? The price and MLQ, usually for this, needed 1,000 for the bulk order. For the bulk order, we make it at about $65 USD with one PIR, Peer, Movement Sensor, One Door Sensor and Remote Control, also RFID card. Nice. And do you have customers all over the world? We have customers mainly in Europe. Europe? Yeah. US? Europe, like Germany, Italy, Spain, UK, the high quality, higher requirement about quality. Is it mostly home use or office use or who's the biggest customer? We have a lot of segments, mainly about home users, office, industrial and also the buildings, pro-jackets. The shops? Shops. Yeah, commercial alloys. The banks? The banks, yes. Really? Yes. The banks use this? The banks use this kind of alarm system in the show? What is this? This metal case alarm system, it has the Wi-Fi, GPIS, also LAN network, LAN network. So it says here, Guangzhou, where is? We are in Quanzhou. Where is this? Quanzhou in Fujian city, near to Taiwan, Costa city. All right. Cool. Thank you.


from our studios in the heart of Silicon Valley, Palo Alto, California. This is a CUBE Conversation. Hello everyone, welcome to this CUBE Conversation here in Palo Alto. I'm John Furrier, host of theCUBE here in theCUBE Studios. I'm Chairman Ronan Schwartz, Senior Vice President and General Manager of Data Integration and Cloud Integration at Informatica. CUBE alumni have been on multiple times here to do a preview around Informatica World coming up as well. Let's just catch up. Ronan, great to see you. Really happy to see you and you guys have a beautiful place here in Palo Alto. I know you live right around the corner so we're expecting to see you come on multiple times and come in and share your commentary. But I want to get your thoughts. It's been a couple of months since we last chatted. Interesting turn of events.  But now the realization from customers is that this is now a fully blown up cloud world. It's cloud operations, it's just public cloud for unlimited cloud natives activity, on premise for existing workloads and a complete re-architecture of the enterprise. Yes, and I think from re-invent to Google Next just a week before, I agree with you. It's a world of hybrid and a world of multi-cloud. I think a lot of exciting announcement and a lot of changes. I think from my perspective, what I see is that the Informatica customers are truly adopting cloud and hybrid. And as data is growing, as data is changing, the cloud is the place that they actually address this opportunity in the best way. So I know, we've talked in the past in your title, it's data integration, cloud integration. Obviously integration is a key point. You're starting to see APIs going to a whole another level with Google. They had acquired Apigee, which is API marketplace, but with microservices and service meshes and Kubernetes momentum, you start to see the advent of more programmability. This is a big trend. How is that impacting your world? Because at the end of the day, you need the data. Yes, it actually means that you can do more things with the data in an easier way. And also it means that you can actually share it with more users within the enterprise. I think that especially the whole ability to use containers and Kubernetes is an amazing example of how you can do it. It's actually giving you unparalleled scale, as well as simplicity from the obstruction perspective. And that allows more and more developers to build more value from the data that they have. So data is actually in the core. Data is the foundation. And really a lot of these new technology allow you to build up from the data more valuable capabilities. I'm really happy that you're mentioning Apigee, because one of the things that Google and Informatica notice together is the need for API to actually leverage data in a better way. And we strike a very strategic partnership that has gone into the market in the last few months, allowing every user of Informatica iPass to basically publish APIs in a native experience from the Informatica iPass directly to Apigee and vice versa. Everything that you build in Informatica Cloud is basically automatically an API inside Apigee. So users get more value from data faster. So can you give an example? I think this is one of the things that we saw at Google as a tell sign or the canary in the coal mine, whatever a trend parameter is that end to end, CICD pipelining, seamless execution in any environment seems to be the trend. What you're kind of getting at is this kind of cross integration. Can you give an example of that Informatica Cloud to Apigee example of benefit to the customer or use case and why that's important? Yes, definitely. So if I'm a retailer or a manufacturer, I'm actually looking into automate processes. There is nothing better than deleting the iPass from Informatica to actually automate process anything from order to cash or inventory validation or even next best recommendation coming from some AI in the backend. Once you have created this process, exposing these processes at API is actually allowing multiple other services, multiple other capabilities to very easily leverage that, right? So this is basically what we're doing. So what an individual in the retailer is doing is they're actually defining this process of order to cash and then they're publishing it as an API in one click. At that stage, anybody anywhere can very, very easily consume that API and basically use this process again and again. And that means what? It's faster execution of application development? It means faster execution of application development also mean consistency and basically scale. So now you don't need to redevelop that. It's available as an API. You can reuse it again and again. So you do it in a consistent way. When you need to update, you need to change. You need to modernize this process. You modernize it once and use it again and again. Sorry to drill down on the kind of the unique use case there, but this points to the integration challenges out there and the opportunities. Mission Google Next, Google Cloud. You got a relation with Amazon. This is part of your strategy for ecosystem. This is critical. Integration is becoming, because if, I meant while I was saying that you could compose, have that foundation for the data and you compose your applications, but if you're going to have a lot of composition, you need to have integration points. That's going to be either APIs or some sort of glue layer. This is huge. This is like the entire thesis of cloud architecture. Right. And the reality that our customers are facing is basically a reality of a multi-cloud. They will use the best of breed cloud for CRM, the best of breed cloud for ERP, as well as the best of breed cloud for their data warehouse, their databases, as well as their analytics, AI, et cetera. In that world, the only thing that is kind of common across this cloud is the data. And if you're actually able to allow the data to reside in the best place, but you keep the metadata managed centrally by software like the one that Informatica is giving, you're getting the best of breed of all of these offerings without actually paying a fine for that. So you guys are in a lot of the magic quadrants out there in terms of categories of leadership and focused on data from day one. As you talk about your ecosystem, can you explain what that means because you're also an ecosystem partner of cloud players, but you also have your own ecosystem. Talk about the ecosystem. How is it laid out? What's the update? What are some of the momentum points? Can you share just an overview of how that's all happening? Yes, definitely. When we're looking into our partnership with Microsoft Azure, with AWS, or with GCP, we're not talking about just Informatica supporting the technologies that they build. We're talking about Informatica supporting the technologies that they're building, as well as their ecosystem of partners. We're talking about an end-to-end solution that supports the entire ecosystem. What that actually translates to is Informatica building services that are giving best of breed experience for users within this cloud environment and really giving you the full power of data management, integration, data quality, master data management, data security, data catalog, across all of these cloud. In a way, you're right. We can look at it in the same way as like we have an ecosystem. And in that ecosystem, we're seeing a lot of strategic partners that are very, very large. Definitely all of these cloud scales are key partners for us and for our customers, but we're also seeing a huge amount of smaller innovative vendors that are joining this ecosystem. And Informatica World in May 20th is a great place to come and actually see these vendors. We're actually showing for the first time our AI and cloud ecosystem in one place. And these vendors are coming and they're showing how are they leveraging Informatica technology to basically bring new value in AI and machine learning, in analytics to their customers. If you ask me like what is Informatica doing to help them, we're basically making the data available in the best way for their offering. And that kind of allowed them to focus on their innovation, rather on how do they work in the different places. Ron, you got ahead of me on the Informatica World question, but you just brought it out. You're doing the innovation, John. Let's talk about Informatica World, because again, this data, there's a lot of sessions. So you do the normal thing. We've covered multiple years there. Integration is the key point. Why should someone come to Informatica World to serve a customer or a prospect? And you mentioned the AI zone. What's the core theme that you're going to be seeing there? How do you, from your group and from the company? Informatica World this year is an amazing place for people to come and see the latest that happens within the cloud and hybrid journey. A great place to actually see next generation analytics and all the innovation there. It is a great place to see customer 360 and master data management and how can that change the organization as well as an amazing place to see data security and data privacy and a lot of other innovations around data. But I would actually say that it's great to see everything that Informatica can share with you. It is even a better place to see what our customers and our partners are sharing. And especially from a partnership perspective, Informatica World 2019, you're actually going to see leaders from Google. You're going to see leaders from Microsoft. You're going to see leaders from AWS, the people that are leading the best data warehouses in the world, the best analytics in the world, as well as innovators like DataRobot and Databricks that are changing the world and actually advancing technology very, very fast. And the AI zone, there's a cloud and AI zone. I see my notes here from the prep. What does that mean? AI is going to be hot. I think that's a big theme and getting clarity around as Amit kind of shared with us on our previous interview. AI is hot because automation, kind of blocks the blocking and tackling, but the value of creation is going to come from using the data. Where's the, and if it's not integrated, you can't get the data in. If it's not integrated, you can't leverage machine learning. So having access to data makes machine learning get great. If machine learning gets great, AI is great. So tell us what's going on with AI. Give a little sneak preview. It's actually amazing what we can do leveraging AI and machine learning today, right? I wake up in the morning and I say, Alexa, good morning. And I actually get back like, what's the weather and what's happening? I get into my car, Google is telling me how fast will I get to the office or the first meeting? I left to come here and I knew exactly what's the best route to take. A lot of that is actually leveraging AI and machine learning. I think it's not a secret that the better your data is, the better the machine can learn from the data. And if your data is not good, the learning can actually be really, really bad. You know, sometimes I can use like with my kids, if their learning books are bad, like there's no way that they can actually get to the right answer. The same is data, data is so critical. What we're seeing is basically data engineers, data operation becoming a super strategic function to make AI and machine learning even possible. Your ability to collect enough data, to make sure that the data is clean and ready for AI and machine learning is critical. And then once the AI and machine learning have actually contributed the automation, the decision making, the recommendation, you have to put it back into the data pipes so that you are actually able to leverage that to do the right thing. You know, I think you nailed this. We've talked about this before, but I think more important than ever, data cleansing or data cleaning was always an afterthought in the old data warehouse world where, well, we're not getting the answers we wanted. So you kind of had to fail to figure out that the data sucked, so you had to get the data to be better. Now it's much more acute in the sense that people realize that you need quality data. So there's now new capabilities to make sure there's a process for doing that on the front end, not on the back end. I'll talk about that dynamic because this is something that's critical in the architecture and how you think about data pipelining, data management, the things that you guys do. This is an important trend. Take a minute to explain that. Yes, I totally agree with you and I think the rise of the importance of data quality and it actually is coming also as part of a pattern of data governance. We want to make sure that the processes exist to make sure that the data that we make available for our AI research, for analytics, for our executives and data workers, that this data is really the right data is critical. To actually support that, what we are seeing is people defining data governance process. What are the steps that the data needs to go before it is actually available for the next step? And what is nice today is that this is not people that the data need to go through. These are processes, automation that can actually drive data quality. It goes from things that are very, very basic. Let's remove duplicate data. But also into the fact that you actually identify anomalies in the data and you ask the right questions so that bad data doesn't go in. Is this the kind of topics that people will hear in Informatica World? Definitely. They will hear about how they can actually help their organization get the data right so that machine learning, automation, and hyper growth is actually possible. You're excited about this market, aren't you? Super excited. I mean, I think each and every one of us, we're going to see a lot of innovation coming out. And I consider myself lucky that data is actually in the center of all of this innovation and that we're actually able to help the customers and our partner be successful with that. Yeah, you and I were talking before we came on camera. I wish I was 23 again right now. This is a great time to be in tech. Everything's coming together. You got unlimited compute, machine learnings, rock and roll, and everyone's get all kinds of diverse areas to play on. It's kind of intoxicating to be in this environment, isn't it? I totally agree. And I will add only one additional thing to the reasons, agility. Like the fact that it was available in your fingertip and you can actually achieve so much with very little patience is really, really amazing. This composability really is the new developer modernization, renaissance, it's happening. Yes, yes. And as we usually say, all starts from the data. Okay, Ronan Schwartz was talking about Informatical World but getting an update on what's going on because data integration, cloud integration, this is the number one activity people are spending their time on. You get it right, there's huge benefits. Ronan, thanks for coming in and sharing your insights, appreciate it. Hey, my pleasure. Okay, this is theCUBE here for CUBE Conversation here in Palo Alto, California at theCUBE headquarters. I'm John Furrier, thanks for watching.