Welcome, it's Jenkins documentation office hours. It is the 16th of August. Oh, we've got Kristen and Meg and Mark here. So what we were going to do is record an answer to a question that Dheeraj had last week so that he can watch it as his time allows. So what Dheeraj has done is he has created, Dheeraj created an integration test inside the configuration as code plugin and submitted it as a pull request. And there was some feedback from Tim Jacome saying, hey, you really need to test it this other way. You need your assertions need to do this other thing. And so what we thought we would do is have a session here. Let's use a debugger to go exploring and see how we would learn how to write one of these kinds of tests using the debugger to help us identify what's in Jenkins that could help us. So that was the idea. And so what I've done is I've brought up, I've got net, I'm gonna run it with net beans. And after I've played with a little with net beans, we'll have Kristen Wettstone do a little bit of experimenting with Visual Studio Code because Visual Studio Code is what Dheeraj uses. I'm not familiar with VS Code. So I have to do my work in net beans. And then we talk about the differences in the distinctions and hope that we learn something together by doing it. So the first idea was, okay, here is, let's see, I guess I should probably show the source code. So here is a get window. And if we look at the list of things, what I did is I took Dheeraj's code and I rebased it onto the master branch. So first thing that I observed was his code is a long ways behind. Let's see, let's look at it this way, get remote. If we look at his code and see where is it, slash view job filters demo, and then my code, what we'll see is his code is quite a ways back and his master branch is quite a ways back. So one of the techniques that I had to learn in dealing with multiple repositories in GitHub is that my master branch doesn't automatically get updated when a new release happens or when new commits happen. So I have to bring in the changes from the upstream repository to my master branch and push them. So he's based off of, he's committed, made three commits to an outdated copy of the master branch. And usually the developers would like things committed against something that is very near the top of the master branch. So all I did was take his changes and rebase them so that they're on top of upstream master. And so here's his change rebase, here's his second change and here's his third change. So when I did that, there was, oh, it doesn't compile. And so I've added some additional things to make it compile. This add a dependency on the view job filters plugin changes the code so that it adds a dependency on the view job filters plugin into the integration test POM file. Then while compiling it, this plugin has strict enforcement of check style. And check style means that the imports need to be, any unused imports need to be removed and the imports need to be in a specific order. So I fixed those. Then while I was in there, I formatted the file because check style was also complaining that the file contained tab characters. And so I fed it to a formatter that let me then not have tab characters anymore. And then I made, oh, and then I realized that while running the tests, there were some errors in the calls to the constructors that Dira should originally done that I needed to fix. So I fixed those. I now got something that compiles and runs. So that was the crucial thing is, let's get something that will run a test. So my step was, okay, I opened his test, view job filters test, and I can set a break point here. Let's, yeah, let's set a break point there. And now when I do a right click debug test file with NetBeans, what it's going to do is it's going to start the debugger and it will run the test until it hits my break point. Now, this isn't particularly important. What I'm doing right now, it's just to show that, yes, the debugger will stop where it's run until it stops and stop. Now, one of the things to be aware of here is that this thing called a JUnit rule is actually constructing a Jenkins instance. It's really creating inside the test a fresh Jenkins instance. And that fresh Jenkins instance can be referenced through this J variable and used to a certain thing. So here the test has stopped and I can inspect variables. So for instance, I can look at this.j and see that, hey, there's a configured read me with rule and it's got lots of stuff on it because attached to that thing is a Jenkins and now I'm just going to continue and let the test run. So I made a number of modifications to allow the test to pass because I like to see tests pass. And so in this case, the test passed for me. So that's a positive, good sign. However, what the comment came was that, hey, this thing is just constructing an object and that's not using the results of this configured with read me rule or annotation. What this configured with read me annotation says is, start this Jenkins configured with read me rule, read view job filters read me.md and use that as the definition of a Jenkins configuration as code. And then inside the test, we're going to assert the expected attribute values of the test. However, in his test, what he's doing is defining a new object and then asserting the content of the new object. So that new object is not the same as the object that's inside the Jenkins that was defined with this configuration file. Any questions so far? Boy, I'm droning on, sorry about that. Okay, so as part of the exploring, one of the things that I like net beans is I can now say give me a Jenkins and let's call it Jenkins and this thing will be J dot. So J is this configured with read me rule and now I'm going to say J dot and thankfully the IDE now gives me help. It shows, oh, hey, look, there's a Jenkins field on this J object. And so I'm going to click that and there it is. Now I'll be able to oops and the little red stuff here says I've got to fix that. So I need to import Jenkins dot model dot Jenkins. Come on. Okay, so the import is done and we can see, okay, here's the import it added with the little green highlight and here's this. Yes, so the idea is helping me giving me hints. Now if I run with the debugger and let's do the same thing again. So I'm going to say debug the test file. Now I'll have this variable Jenkins inside the current context that I can use the debugger's facilities to go exploring that thing to see what's available on it. And what's available on it may help us decode how do we find a build duration filter inside this Jenkins object.  And so I can just go looking, see if I see anything here that looks interesting. What I was thinking is, okay, what we're testing is something about views. So I was thinking I should probably be looking for something called views in this list. And I don't see anything called views in the static stuff. So let's look in the inherited. And now we truly are getting into the spot where I just start exploring and look, okay, is there a views here? And what we've got, if I keep going down there's a views tab bar, okay. And there are nodes which are prob, oh, here we go. And here is views. Okay, so we've got a views thing and primary view here is all, okay. I remember the Jenkins UI has a view that's named all. So okay, this could be something useful. And in the views, now what I've got is there's an array of list views, length one that has in it. And now this is where earlier today I found this, there was a job filter, here it is. Here is the build duration filter associated with it. And I think this build duration filter and this build status filter and then this build this security filter are exactly what came from this view job filters, readme.md. Now I should really open that file, shouldn't I because now we gotta find it. And this is where I'm badly, terribly unskilled with the IDE. So let's go find that file. And maybe we look here, find. Okay, so there's the test. Ah, here we go, viewjobfilters.yml. No, that's not, I was expecting a file named readme.md. I mean, this certainly is a valid job filters.yml file, but that's not what I was expecting to find. So I must be looking for the wrong thing. Files, integration tests. I think it's in the demos folder. Demos, ooh, that's a good solution. Yeah, it was a little weird. It was a little interesting because I was looking for it too, so. Okay, so in the demos folder, and if I remember what this thing is showing me is only things that it's managing. So I've gotta go look at it differently here. This is where, okay, my usual technique is bring out the other tool and go look for it. Let's find it again, grab for it. Okay, so what I wanted was build duration because I assume the build duration will be somewhere in there. There we go. Okay, demos, view job filters, just like you said, Kristen, view job filters, readme.md. So when I look at this file, the source data that he's using says, okay, amount 60 days, latest, include matched, less than true. So those look like reasonable values and if we look inside the debugger here, I bet we will find where was my, let's see, not output variables. Here we've got, oh, come on, I was just here, views. Where are my views? Let's try it again. So inherited views. Okay, maybe we need to sort alphabetically. Here we go, views, list view. And now let's look at where my duration go back to views. Ah, here we go. Okay, ah, yes, there we are. Okay, so we've got job filters here and here is a build duration filter and it's got a less than value of true and a build duration float of five. And then I'll bet it also has some other values that it's inheriting like build count, amount, yes. So things it gets from the object it inherits from. So this, now the challenge for me was how do I ever get access to this views thing? And I assumed it was Jenkins.getView. Now that was, what was that? I missed it. The IDE gave me a hint and I ignored it. Jenkins.getViewsReturns, a collection of view. So like that. And of course the IDE is guiding me that I didn't finish entering all the imports. Okay, so stop the debugger and let's try it again. And maybe it's best for me to stop here and Kristen, do you wanna switch and show, take some time and show us some visual studio comparables? Do you do these kinds of explorations with video, visual studio or would you approach it differently? That kind of thing. Yes, sir, we can do some of the stuff. I'm just waiting for it to try to import the run and debug, which allows us to be able to do that cool like breaking thing. Cause what visual studio code has to do is you have to explicitly say, because everything is run via plugins. I think that means it's kind of like that too, but it's very, it started its life out like very lightweight. So almost everything is a plugin. Follow Jenkins, follow Jenkins. So the running and debugging some of the stuff, especially for the certain Java tools is like a plugin. So it has to like, you have to basically turn it on. Okay, so you're waiting for it to enable. Yeah, so I'm waiting for it to, right now it's scanning the entire project. And I think because it's so big, it's taking a little bit longer. It says it's 64% done. So what that will allow us to do is be able to do the debugging stuff too. So it's thinking, but... Cool. Yeah. Well, so if you're okay with it, well, and that's great. So maybe you can help me here on the, as I'm looking for this. So what I see now is I've got, I've got a variable for views and I can look around at the variable for views. Now I wanted to see if I could get the job filters. So the view has one of its things is a job filters. And I wanted to see if I could get that set of job filters. Now, this is where I get really uncomfortable because I'm not entirely sure how to ask that question to Jenkins. How do I ask from code? So views. Well, okay, so views is a collection. So we have to get the first item out of the collection.  Oh, thank you. Right, right, of course, right. Why didn't I think of that? Excellent. So the first is I need to do a get or a views. It's a collection. So yeah, I need, I don't, they didn't offer a get views.  Trying again. Views. Please wait. Oh no, it's taking views from my stuff that's still working. No, see, I don't want, okay, how do I, how do I read from the collection? I mean, it's. I thought it was good. Yeah. Okay, so I could either street. I'll tell you right now. I'm so used to JavaScript that I was like, just put it in brackets and get the first one. I was like, just get the first one. I hope. No, so it's okay. How do I, all right. Java. Java read first. Oh, wait a second. It's a collection. And therefore it's no promise about any ordering. Well, I think it only has one element. Yeah. So, but, but I have to get an item from a collection. And now that means I've got to go, go. Okay. I've got to use the for each thing. I've got to iterate over it, right? It's not, it's, I can't. Okay. For view. So this is, this is, because I was assuming, oh, I'll get it by index, but of course it doesn't have a concept. This collection doesn't have a concept of ordering. So there isn't a way to do. Okay. So this is now it's saying view. Okay. Now we go maybe. All right. So this is, I would like to get, I would, in a perfect world, there would be something about get job filters, but I don't see it. So is it likely to be a descriptor that I need to ask for the list of descriptors? And there's no filter. Just like a straight get filter filters. I don't see one. Let's see. Get people, get in-denter, get properties, get Q items. I guess it could be a property. Is filter executor executors? Get view, get this set description. Okay. So I'm going to ask for the descriptor just because I want to see what, okay. And that is what type? What's the type of this thing? Describable, oh goodness. Describable. And this is one where I'm not nearly, okay. I think it's a, do I have to get it as a descriptor? Oh, no, it's a descriptor. Okay. So I got the wrong type. That's not right. So now back to help, having the ID help me with what? Okay, view dot, get descriptor. It returns a view descriptor. Okay. Okay. So, and of course I didn't import it. So we need to import. Okay. Now view descriptor dot. And here again, I was hoping to find something about filter. Nope. Oh, get job filters descriptors. Yes. Okay. So I think, and this is a list of descriptors of view job filter. Now, did it do it? And I'm sure there's a better way with, if someone who was really serious about the ID, it would automatically complete all the things. All right. So I'm at a point where I think I'm ready to try again.  So this should be a descriptor of a view job filter, right? So now if I do a debug test file again, test file again. Now I admit this is a terribly inefficient way to do it. Smarter people probably have much better ways to do it, but for me, the ID is helping me explore to see, okay, where might I go from here and how might I use this and what could I do with it? I assume I could have also gone and read Java doc and found it somehow that way. Oh, I didn't set a break point correctly. Sorry. Try it again. I'm at a break point right here. Oh, yeah. So I've got this descriptor list, which has a whole bunch of things in it. Okay, so this surprises me a little. It's got the all jobs filter first and then build duration filter, build status filter and some others. Okay, so I'm not sure. So Kristen, how should I be interpreting this? Because this is a lot more things than I was expecting to find. I was assuming this would give me...  Those are... This... Oh, sorry. Go ahead. No, no. The first thing I think about is that I recognize those from trying to figure out those are like documents, almost like documentation tags that I think are inside of the filter. Like those are classes. Right, okay. So the fact that there are extra of them is not a big shock. So if that filter has extra, especially the help... First thing is pipeline steps where they have the descriptor info class and it's usually a lot of documentation that can help figure out what's going on with the build status, but it's not gonna be able to help us with this particular... It's a lot of extra stuff. Well, okay, and these are descriptors and descriptors are usually inside the thing we want to test, right? They're usually a subclass or an interior class. What do you call that? It's a... They're nested inside the thing I really want to get to because I want to get a build duration filter, not a build duration filter descriptor. So I... Oh, wait a sec. Maybe this is the... Maybe I'm just doing it wrong. Okay, so what I've got is I've got... We had views, right? I don't know what we're just looking for. Yeah, so we use the view descriptor. So maybe I'm not... I shouldn't be looking at view descriptors at all. Maybe this should, instead of view descriptors, it should just be looking at something else on the view. Sure, yeah, let's figure that part out. So usually my strategy when I start to get too complicated is probably not the correct one, but sometimes I go to... I look in GitHub and see if other people have written the test, like what I'm trying to do. Right, right, absolutely. And then I just like, okay, what am I trying to do? And then I just kind of like... It's almost like kind of like looking at Java docs or Java docs with examples. And it probably would be helpful to actually... Like to like look at the Java docs that's nicely published on our website would probably be like another good check. But I do like this exploring with the tool because like being able to poke around and see what's there in real time is pretty helpful to understand what's happening with your test. Yeah, so... It's working. It's just we need to figure out how to get it into the test. You know, because we see that they're there. Right, right. That's the other elegant thing, right? Is by exploring here, I see, hey, here's the job to job filter for build duration filter, build status filter and security filter. They really are there.  Dheeraj, thanks for joining us. Sorry, we've just been going ahead. We figured you could watch the recording. Yes, thanks a lot. And I'm sorry for being late. Oh, no problem. We've been having more fun just exploring and looking to see... So we'll let you catch up later. You can watch the recording or look at the notes. I created a separate branch and had to make a number of changes in order to get your code to compile. And as part of this exercise, we've been doing some exploring, looking to see, okay, what could give us what we need? So here you see, let's get the list of views. And then there's only one in the whole list. So it's not a big list. There's just one view here. And so we iterate over that view and start looking inside the view to see what we could do with it. And that's where we've been sort of perplexed because what we wanna get to is these job filters and the job filters that are right there. The question is, where's a method that will let me access the job filters? And okay, it's a describable list. So maybe, Kristen, what do you think? Could it be that I, well, but here is the get job filters descriptors method call. Well, okay, let me, that's groovy. I was just like, is there a way that let me see if it's just doing the searching for examples on GitHub, seeing if it's possible to have just to get job filters. So I don't look at Java classes. So when we set, or when we got the, so there's a class called list view, which you can get the job filters from. Okay, so if I can get something that will give me back a list view. And it does give you a describable list with view, job filter, and then the descriptor. Okay, so if there's a... Well, I was looking to see if we got, if we were up to another level. So when we got our view collection, if we needed to somehow make it a list or if there was a way that you could add a static method. Oh, list view extends view, have a mind. I thought, darn it, so close. It looks like it's a subclass, not a superclass. Well, but isn't, I bet view is probably an item, isn't it? Well, I guess it doesn't matter. Okay, so we've got a, we can get a view descriptor here. We could get a view property. I wonder. So it doesn't appear that view has top filters as a, oh no, list view, okay, so it is a list view. So all you have, or depending on the version, I think all you have to do is say, get job filters. View. Because I'm looking at this when you're back, if we're looking at list view, and what version are we running against? Two dot, so what version of view, job filter plugin, or of Jenkins? Or Jenkins, because list view is in Jenkins core, though. And if I remember, this is based on two dot 249. Okay. But you're saying that there is a get job filter. There is on master, so Jenkins two dot 249. And that's not something just from the view job filters plugin, it's really. Right, like it's in Jenkins core, there should be a get job filters that there. Right, there it is, okay. I see it on the two dot 305, Java doc, okay. And now usually there's an at since that should have been added to that API. Okay, so this is on a list view object. So don't I still. In the code for two dot 249. Yeah, so somehow I need to get a list view out of. Well, isn't that what you've got? Right, like, because the first, if you scroll, see the in your variables section, or in the box down below, not in the code, but in the bugger, see the zero or scroll back up a little bit. Okay, so you have. Yeah, so. The view is absolutely a list view. Right, so. Okay, all right. So all we need to do is cast it. Okay, so list view. Okay, don't tell anybody I did such a terrible thing. Okay, but that now gives me a list view. Yeah. And now you've say right now, I've got to get job filters right there. And that will get exactly what we're looking for. Okay, all right. So knowing that and that the debugger hinted to me, hey, there's a list view here because look at this, it tells me the type. So instead of using the more general purpose, the more generic view, I said, fine, make it a list view like it is. And then, okay, now let's get that code. It was list view dot get job filters. And it is a describable list. And my ID is not helping me there. I need to learn more about how to do that. It has a long. Okay, it's a describable list of view job filter. Oh my God. Describable list describable of view job list. Filter. And I'm sure that's not the right way. Describable list. Okay, describable list we need to import. Okay, so back to writing a code dot get view. Get job filters, describable list of view job filter, comma descriptor of view job filter. Do you know, I'm sorry if this is- Let's figure out our class. Oh, sorry. I'm so sorry. No, go ahead. Get list done. I was like, I don't think that's how we'll be able to get the class that you'll need to cast. Cause- Right, exactly. Unfortunately, we gotta do a little bit more casting. This should be.  And we're gonna look at A, right? Because I think that's the idea, right? Is now that will be, at least there's a chance that's the thing we need or that that list of this describable list has inside it our job filters. Okay, now A looks like A is a describable list. And there it is. Look at that. The first entry is a build duration filter. The second is the build status filter and the third is the security filter. Yes, victory. I think this is great. Okay, so now the real question is, okay, what do we do here? And for instance, I could say, talking about doing dirty tricks, I could say I want a variable build duration filter. Okay, so duration equals null.  Look at that. That's a describable list. Oh, this is great. Right. Okay, so I can actually ask for it to get me the build duration filter, right? I think that's what I can do here, isn't it? I can say give me the thing that is one of these. Now, this is gonna prove me completely wrong because maybe I need a dot class. Is that now stop and let's try our debugging again because I really wanna see this. Sorry everybody that we're taking all this time with me playing with the debugger. Oh, this is good. Cause like, I think that we're like, look, we would never have seen that if the debugger didn't show us like the actual class of zero. Right, right. Yeah, letting the tool help us and say, okay, show me what the class structure is. Right. So, Dheeraj, while we're waiting for this thing to hit the break point, do you have time that you and I could talk even after the scheduled end of our session about the blog post? Yes, of course. Super, thank you. Sure. I would like to, I'm so sorry. Like at the, I think my computer realizes that we're recording a demo right now and it's still not finishing this refresh. I restarted, I even closed it because I was like, okay, maybe it froze or something. And I restarted it, it's at the same point. So I don't know what it's doing, but yeah, I can talk about it a little bit if you want me to or... Well, so for me, no problem because I think we've achieved at least what I was hoping to achieve. I think we've achieved it because, all right, so what we've got here and Kristin, you were exactly right, this a.get, this thing. Now, so I declared a build duration filter up here and walked through this and assigned duration to that one. And now I could hear, I can just do this and say, whoops, assign this to duration. And now I've got, I'm ready to do assertions on this thing. Now, that's totally dirty trickery, right? In no way should you submit something to the code that does that. But this lets me explore it and see, hey, does this behave the way I'm expecting? Yeah, and if it makes you feel a little better, Mark, I am looking, I've tried after we did this and I tried to see if I could find a test where they did something like this and there's a lot of casting going around with someone else, at least another test that I found. Okay, so but you did find a test that does this kind of thing. Yeah, the view job filters plugin. Yeah, which makes sense because that's the plugin we're using here. So that's really good, okay, great. So their test also does have a cast, like a cast for getting the list of the job filters, so. Okay. So don't worry, we're okay with our casting. So my guilt should not be terribly guilty. Exactly. Okay, so, but now, and now this is now asserting the thing that was generated by the README, instead of asserting the thing that was in this constructor. So we've got it testing the way that we would have hoped it tests. So that means we don't need this junk, okay? But we do need a status filter. So I think we need the same kind of thing here where we say build status filter, status equals no. And then we're going to do the same thing here and say status is and this one. And seriously, Dheeraj, you must not take this as an example of how the test should actually be written, but the trick, I think the technique is going to work for us of, okay, we go find the Jenkins, we get the list of views from Jenkins and then iterate over the list of views and take the value for duration. Now, in this case, what's this doing? It's relying that the list is of length one. And then that's a terribly dangerous thing to do, right? We should probably be asserting much more about how long is the list and what's the content of the list, et cetera. But for purposes of exploration, I think we're okay. Let me read this. I feel it's really lovely to see some board in Docs Officer. Well, I'm glad that you're not humiliated by watching my poor skills. Hey, I'm enjoying it. It's like a movie to me. It's very kind of you. It's very fun to do pair programming. Yes, yes. Especially when you get to discoveries, it feels like extra special. It's like, yes. Well, and I'm deeply in love with pair programming. So absolutely no question there. The time I spend pairing is just intensely valuable. Okay, so now this, oh, yes, good. Okay, so let's try it. Again, dirty trickery has been applied. Let's just run it and not even bring up the debugger. Let's just see if it passes the tests. Okay, so this is the noise from the Jenkins rule. Instantiation exception. Oh, this is Mark Waite's guilty problem elsewhere. And there it is, test passed. Okay. Well, that's a new problem. I was like, we didn't see that one at all. No, well, and that one is, that one is there's something going on in the SSH server plugin that I've been working with that as part of the Get Credentials Binding GSOC project. So it's all sorts of interesting. Cool. All right, so this I think is at least a beginning of, now let's fix the imports, because one of the things we learned, Dheeraj, when we went through this earlier was that this particular plugin has strict enforcement of check-style rules. And because it has strict enforcement of check-style rules, it enforces that, for instance, all of the imports must be in alphabetical order. And the static imports must follow the non-static imports and it's got things like that. So you have to be, oops, what did I just do? You have to be careful that not only does it pass inside your ID, but then you run it from the command line and be sure everything works there as well. Oh, okay. So the static import should be below the normal imports. In this particular plugin, yes, they there, and that's one of the things that plugins are allowed to sort of shape themselves to the way their maintainers want them to be. And in this plugin, they've chosen that they want certain check-style rules strictly enforced and they will fail the bill if you don't match their check-style rules. Okay, so ID does not do that automatically, right? We need to do this. It, well, in this case, I think it did, I think it retained them ordered. M, M, U, V, yeah, so I think it did it. I think NetBeans did, I'm not sure about others. Now, I had originally, when I was working on this, had used Emacs to do it and I just sorted things alphabetically with Emacs. And how did you realize that this is the necessity to do? Like it did it. Oh, I ran a compile and it failed the compilation. So I ran a command line compile and it failed to compile. Okay, got it. All right, so let's commit this and rough prototype of working, of reading Jenkins instance for the assertion, for object values, how about that? And then what you can do, Dheeraj, is you can, I'm gonna push this change to my repository and you can then get access to it and see, you can see the differences. Please. All right, now my apologies to everybody. We're now an hour and seven minutes beyond our, or seven minutes beyond our planned limit. I've gotta have some time with Dheeraj to talk about our proposal for a blog post. The rest of you don't have to stick around if you don't want to, but I think he and I need to chat about that. We had other topics, so we had Java, this one was the one I needed to talk to. And I'm not ready to talk about Hacktoberfest, so that's just me being embarrassed. Anything else, Dheeraj, that you feel like we need to discuss other than Java 11 and default Docker images? No, nothing from my side. I just wanted to say sorry for being late because I need to say it or else I would not be able to sleep. So I'm sorry for being late. I don't know why it was raining. That's why I forgot to wake up on time. So thanks for your time, I think. Absolutely no problem. We are all volunteers. We all absolutely get to have real lives outside. So good for you. That is not a problem in any way. Thanks for being here. You didn't even have to attend today at all if your time wouldn't allow. So don't be at all shy about that. Oh dear, what did I just do? I thought that should have redirected. Oh, you did finally. Okay, good. I learned about the debugger as well because I never took it seriously before this and now I realize that it's very useful. So thanks for that as well. Yeah, and thanks for asking the question last week and inspiring us to do the play. It's been helpful for me and I think Kristen has discovered some things in her exploring. So thanks very, very much. Okay. Okay, so the crucial thing for me, Dheeraj, is we've got, here's what I had, and maybe what we'll do is let me bring it up in running because it's better if we can see it on the webpage. So just a minute, let me get the site running and we'll look at it. Okay, now we've got it. Okay, so the blog post that you and I are proposing here is, okay, I did this picture just hopefully for some visual interest and now the text of the thing talks about controllers will use Java 11 by default, agents will use it by default, and now the agents, we're not gonna make the transition. It'll take us as much as two weeks, I fear, to do the transition for the agents. There are some Docker tags that we are no longer going to update, specifically around CentOS 8. And Windows 1809 Docker ranges have stopped. Are you okay with those, the messages that we've got in there? Is that, does that look okay to you? Yes, the link, the font and everything is great, BW. Okay, yeah, so this link, now I'm doing a little bit of a cheat here. So this hyperlink that says Jenkins 2.307, it jumps into this change log page and uses an internal destination that doesn't exist yet until your change log gets merged and we release 2.307 tomorrow. So I'm intentionally putting that hyperlink to it jumps into the page but doesn't show the correct content yet. Same for this one, it will jump into the LTS change log, but of course we haven't published 2.303.1 yet, so it's not there. Right, and about 2.307 that I'll be working right now. So do it, should I be working normally as I work on change logs or I need to add something special? I don't think you need to add anything special, just do the usual because, well, you know what, actually you asked a great question because there is something we could do. Let me show you the example of what we could do that might make it more visible to readers. Glad you asked. Okay, so if we look at the download page here and the change log, now if we look at, you see this yellow box, the yellow backgrounded box, there are ways to put those into the change log entries like this one and maybe we should do that for 2.307 is point to this blog post from the 2.307 change log. What do you think with that? Do you think that would help readers if they see a yellow block here that says, hey, the Docker image is now using Java 11 with this? Totally, I think that's a great idea. It's more visible. So let me show you how you do that and then you can do it yourself, but you just have to know where to look to find it. Okay, so let's look in content, change log. Nope, underscore change log, we need the data, data. No. Okay, where is it? You'd think I would remember it, all the things that I've done with it. Content, underscore data, there we go. Okay, so if we look here, I think if we just grab this text, so as described in the, and now if we search backwards for that, as described, okay, here we go. There is this thing banner that we can insert into a change log and that will put the yellow box up at the top. So, and if you're willing to do that, that would be great because then we get a way of highlighting, hey, this now has a different JDK and a different Java. Absolutely. Great, okay, thank you. Also would we need to add the link to the blog that you have published? That would be great as well, right? I think we should, and in order to make that doable, I'm gonna go ahead and merge this blog post because Tim has approved it and you and I have reviewed it, so I think we're gonna go ahead and merge it. That way when you update from upstream, you'll see that blog post so you can link to it with confidence. So it's merged now. So in the next 10 or 15 minutes, it should become visible. So what should I be writing there in the yellow box? Like, hey, this is a new change or something like, can you help me out? Yeah, I would steal the text from the blog post maybe. So maybe just say, Docker images provided by the Jenkins project, will use Java 11 instead of Java 8 by default, something like that, that sentence there. Meg, any recommendations? Yeah, what I like to post, what I'm wondering is how do I know whether that hurts me or affects me? Because there's something else where it tells me differences that are given to me like my builds may fail because of this or whatever. Oh, that's a good thing. That should probably be in this blog. So that text will link to this blog post, but this blog post really would benefit by having, hey, here's the impact of it. Yeah, because this is too much news and not enough actual impact, isn't it? Right, I mean even for starters my basic Java statement that I used to start Jenkins, is that the same? Well, in this case it is because when you run a Docker image, you don't get any control over which Java version, you're stuck with whatever version we did. Okay, okay. But impact is not covered in this blog and that's a problem, it should be, right? This is just, this is informational, good insight that we should probably put something here about impact, not just about, you know, so okay, there is some where it says if you want Java 8, you need to do this. But what it doesn't say is things like if you need to run a build with Java 8, you can still compile with Java 8 even though the agent is running Java 11, just choose a different tool. Right, and what the, and it made, I mean, there's probably some place out there a fairly detailed list of the differences between Java 8 and Java 11 that maybe we could look at. Well, certainly for the Jenkins project there is if we look at Java 11 here, running Jenkins on Java 11, this page should probably be, well, I don't know if this page justifies because there's not a lot of content here. Yeah, so it's good suggestion. Let me think some more about if we should put additional text into that blog post that guides them how they can do, how they can have a better experience with Java 11 if they have some problem. Yeah, so here are some good warnings for people related to Java 11. Yeah, this one may also need some visiting. Yep, thank you, found more things we need to fix. IDRsolutions.com, Java 8 versus Java 11, what are the differences? Yeah, and those kind of things are usually focused on the programmer. Right. And in the Jenkins context, they don't have to think about that level because the code is already adapted, but they do need to think about things like JVM versions on agents, the non-existence of Java Webstart. So there are some things that are in fact different between Java 8 and Java 11 that matter to a Jenkins user. And the positive, I think Java 11 seems to be significantly faster than Java 8. And I can't vouch for significantly, but it's certainly, for example, it runs very, very well on the ARM architecture. Java 11 is, and it's available for system 390 mainframes, whereas Java 8 by default doesn't run with acceptable performance on system 390 mainframes. So yeah, the Java 11 is a nice upgrade for most people. So, Dheeraj, I think we've got the plan for your steps. You'll work on the 307 change log? Yes. Okay, super. All right, and I'm sorry. Go ahead. Yes, so I was wondering if we, if I can write a blog on writing tests in configuration as a code. Oh, yes. The readme, so they fetch the results, Yamil from the readme file, right? That is something especially we discussed. Yes. Because even I found this, that very interesting to fetch from readme files. Excellent. I like that. I like that idea a lot. Awesome. So I'll watch the recording of this meeting and then I'll try to understand what happened and then try to reproduce it and then we'll start a draft blog and share it with you. Great. Thank you. Thanks very much. Awesome. Thanks. And it may be several days before I get the recordings posted, I've got a huge backlog of recordings I need to post. I'm sorry, but I've just been busy running the meetings instead of publishing their results. That's definitely fine. All right. All good. Thank you. Go ahead. Kristen, did you have something you need to say? Oh, no, no, you're good. Okay, all right. I think we're set then. Thanks very much. I'm sorry for an hour and 20 minute meeting. Thanks very, very much, everybody. Great results. Thank you. Thank you. Good meeting, guys. Mark, I'm throwing you some, you are some links that may or may not be useful. Oh, good. You see something official and I'm not finding that. So maybe if I keep making it. Yeah, the eight to 11 transition has been blogged and documented, et cetera. And it's been years since they did it. And so you may not find much of it. It may be going late. Yeah. Right. And then it sort of, I don't know, have we, in our internal testing, have we done things and found are there specific things with Jenkins where, you know, common things and changes? And it, but by reading carefully as I was listening to you, it sounds more like it's adding features, not like there isn't a lot of stuff that's getting. Well, and there are some things, for instance, that are absolutely impacts. And it reminds that this blog post needs to describe the impact because there are some plugins that just don't work with Java 11. It's a relatively small group, but there are some that simply do not work. And they're described here in this poll request that I submitted about this change and what we're going through, what we're doing. But I didn't mention them in the blog post and I should have. So if I should really go to this one and bring out, let's see, where is it? Backwards compatibility. So for instance, the Ruby runtime plugin just doesn't run with Java 11. And that means there are certain plugins, relatively small numbers of installations, but certain plugins that are just broken. They simply will not work. Now it's fun to see because, for example, the last release of this plugin was seven years ago. Wow. So the fact that it even executes is to me somewhat miraculous. Right. And I think others are even older than that. Some of them in this list have been nine or more years ago when they were last released. Okay. So I have grandchildren younger than some of these plugins. And yet out there, there are a few people for who these are critical. There are people who have them running, at least. I'm not sure critical, but there are people who have them running. We clearly have evidence they are running. They have to do some work to change if they didn't have them. Right. That's the most simple answer is either remove these plugins, some of them break for other reasons or stay with the old version or stay with Jaleid. Right. All right, thanks everybody. Terrific, thanks everybody. Talk to you next week. Sorry, Dheeraj, did you have something? Yes, just small questions. I'm sorry. So about the blog that I was saying, so is it worth my effort? So that people would be finding it helpful or it's something I'm doing for just by myself? I would guess that the configuration is code plugin and its testing technique is relatively specialized to that plugin. So most people won't be able to use that testing technique because it's somewhat unique to configuration as code plugin. Now, the using other tools to help you learn how to write tests, that might be more useful, but then again, I'm not sure how you would teach, how you would blog about what we did as in a pair programming session, right? Because what we did was needed Kristen's knowledge and my knowledge and we bounced ideas off of each other and I don't know how you blog about a pair programming session. So it's a good question. The technique that they're using is very good for configuration as code. I'm not sure that it's as useful for others outside of the configuration as code plugin. Okay, so what do you use this then? I think I'd probably, good question. I'd probably skip the blog post and focus for instance instead on helping us get the changelog automation all the way into the code so that then we can do reviews of proposals for changelog instead of having it create the changelog. Right, so that makes sense to me. So I'll then focus on that automation part then. Great. All right, thank you, Dheeraj. Anything else? No, no. All right, have a great day. Bye everybody. Take care everybody. Bye.


Prophet sallallahu alayhi sallam also described the imposter messiah So that we might recognize him as well and not be deceived.


So of course, you know, there are two really important runoff races taking place in Georgia that will ultimately determine which party controls the US Senate And what I find fascinating is that both of the Republicans in these races Rebusted just this year Doing insider trading. So if you were caught doing insider trading, you'd think that that alone should disqualify you But yet this is still going to be a close race Because I guess that corruption is expected in DC so long as our team is doing it It's okay, but if the other team does it not okay But what's interesting to me about David Perdue is that he's more corrupt even than the average US politician Which is a really high bar to pass but he passes that easily So we're gonna talk about some new developments with regard to his corruption because it is so brazen that this man should not be a United-State sender this man should be behind bars because he is a criminal He is a crook. Now if you've watched his debate, I want to talk about that first The reason why this race is even close is because John Ossoff as much as I hate him because he stands for nothing He low-key demolished David Perdue at the debate that they had before the election. Take a look Well, perhaps senator Perdue would have been able to respond properly to the COVID-19 pandemic If you hadn't been fending off multiple federal investigations for insider trading It's not just that you're a crook senator It's that you're attacking the health of the people that you represent You did say COVID-19 was no deadlier than the flu You did say there would be no significant uptick in cases all the while You were looking after your own assets and your own portfolio and you did vote four times To end protections for pre-existing conditions. That was absolutely brutal and again I'm no fan of John Ossoff and I will say that to you every single time his name comes up But that is how you dismantle a politician now because of that You know, it is shockingly David Perdue didn't want to do another debate But yet there was still going to be another debate because if you want this seat You need to show up and debate your opponent, but you know, he didn't want another disaster So when the debate took place for the runoff, this is what happened This is the runoff debate for the US Senate seat currently held by Senator David Perdue of Georgia The candidates are in alphabetical order Democrat John Ossoff He is CEO of Insight TWI a media production company that investigates corruption organized crime and war crimes for international news organizations Republican David Perdue has served in the US Senate since 2015 Before his election he sat on the board of five major corporations and co-founded Perdue partners A global trading company senator Perdue declined to participate in this debate and is represented by an empty podium embarrassing absolutely embarrassing and You think, you know, why would you not show up to a debate if your opponent is going to be debating an empty podium? Isn't that embarrassing? But if I were David Perdue David Perdue, I wouldn't want to show up to this debate as well Because I think that just like hiding away my face That's the better strategy here because he's continued to make a fool of himself and a Report from the New York Times came out and showed that he is the most active trader in all of the United States Senate And we're learning more and more about the insider trading deal He was busted with this year now, you know the ethics panel from the Senate They basically said, you know We can't prove that he used the information that he was privy to as a US senator to do insider trading And that to me is a joke because you know, we can never prove a quid pro quo exists between large multinational Corporations and politicians, but when they take that a financial contribution from a large corporation We know implicitly that there's an agreement that you're going to do the bidding of said large multinational Corporations so you can't prove that that's a quid pro quo, but nonetheless it still is corruption. I'll be it legally It's a legalized bribe, but it's still a bribe nonetheless, and you're still peddling influence So, you know, it's laughable to think that oh well We can't prove that this is insider trading of course it is But now more evidence has come out showing you might actually be able to prove This is legitimately a case of insider trading to which he should be prosecuted for so as Roger Solenberger of salon reports senator David Perdue one of two multimillionaire Georgia Republicans facing tight runoff elections in January Drew scrutiny this spring for stock transactions made in the weeks ahead of the coronavirus outbreak in the United States While he was receiving privileged briefings on the impending pandemic According to news reports and Perdue's financial disclosures. The trades involved 112 transactions as much as $825,000 in sales and 1.8 million in purchases the timing raised flags for various reasons Perdue sold up to 165,000 in shares of a casino company that later shuttered for instance And made an investment in a company that manufactures personal protective equipment On the same day Perdue attended his first classified pandemic briefing in a series of transactions in late February Perdue Also invested up to $245,000 in the pharmaceutical giant Pfizer Though the Pfizer purchase has been reported previously the events surrounding it have not one week after those stock purchases The company publicly announced it would be developing a coronavirus vaccine Although the justice department eventually cleared Perdue of his insider trading This synchronicity raises new questions about what the senator knew and when yeah, I'll say now What also is important is that his defense is falling apart Because he's maintained that it's not him who's making all of these decisions Unilaterally, he has you know this third party advisor that makes trades on his behalf So his hands are clean here regardless of what information he knew. It's not him who's making these decisions That's a lie because as sullenberger continues This spring Perdue pushed back against allegations of insider trading in advance of the coronavirus Claiming that outside advisors made the calls without his input But a bombshell new york times report last week made clear that was a lie This september justice department investigators found that Perdue had instructed one of his wealth managers to offload More than one million dollars in a financial firm after the ceo tipped off the senator in a personal email The Pfizer transactions would seem to have required even more faith in his broker Who apparently felt counter-intuitive confidence in the company's stock in the early stages of a market wide crash And during a week when its shares fell in line with the dow's overall drop of more than six percent Perdue's broker would have been similarly undaunted by the company's february 27th warning to investors That the pandemic could adversely impact its operations including clinical trials Quote the extent to which the coronavirus impacts our operations will depend on future developments Which are highly uncertain and cannot be predicted with confidence Including the duration of the outbreak new information Which may emerge concerning the severity of the coronavirus and the actions to contain the coronavirus or treat its impact among others In particular the continued spread of the coronavirus globally could adversely impact our operations Including among others our manufacturing and supply chain Sales and marketing and clinical trial operations and could have an adverse impact on our business and our financial results Perdue's broker chose to buy more Pfizer stock that day So in other words Gotcha, bitch There's nothing left to say about this. He shouldn't be running for a us senate seat He should be in prison right now for insider trading. This is very clear like this isn't Like the usual corruption that we see in dc. I want to emphasize that It's not just you know the implication that if I take this contribution from company x They are going to expect me to do their bidding and deregulate them or not impose new regulations This is different. This is him very deliberately making decisions based on information That you'd have to be a united states senator to have I mean the details here speaks for itself When no sane person would want to purchase more Pfizer stock after they released that warning to investors He did he took information when a ceo sent him an email and told him about what he should or shouldn't do This is explicit corruption. He's basically flaunting it in front of everyone's faces And if there's no Prosecution in this instance, I mean, when will there ever be a case where we can Logically deduce that insider trading is what's going on because if it's not happening here If you conclude that maybe he's innocent, maybe it's just a coincidence Then I mean basically senators can do whatever they want because if he gets away with it You can get away with anything How much more explicit and brazen do you have to be to where we actually see someone be held legally accountable who's in power? I mean if this were someone who was not a united states senator, just someone who had no power no money They would already be in prison, but the fact that there's even a question is all because of his status and his wealth Lock him up. Like what what are we doing throw him in jail? He's clearly guilty. He's corrupt And it's sad that you know, he's a united states senator He's in a position to where he really could be taking meaningful action to represent his constituents But what is he doing? He's looking out for his own financial well-being.  He's not just a bad person He's corrupt in the legal sense So I don't know what it's going to take But if you're this openly corrupt and you see no consequences for your actions, then I mean this is going to open the door to more corruption Right. He shouldn't even be a contender to be a u.s senator But we're beyond that like we should be talking about this man being in prison But the fact that he's probably going to get away with this It speaks to the fact that we have a two-tier justice system in the united states of america If you're rich and powerful you can do whatever you want be explicitly corrupt flaunted And nothing happens to you. You could be you know up for reelection in a runoff.


Very warm welcome to everyone. I'm Shanti and with me today are some notable deep-tug experts from across industries So deep-tug as you all know is no longer in the proof-of-concept stage in India It is very much a part of our everyday lives every business is leveraging multiple technologies like machine learning artificial intelligence so on and so forth and Many macro conditions have also come in as a blessing in disguise for this particular segment for instance the pandemic it has not only accelerated the adoption of tech among masters and businesses it has also led to Increase awareness about sustainability and this has led to many more use cases of deep-tug Across industries like EV and climate tech so without much delay I would like to get into my first question to all of you So as I just mentioned Deep-tug has many use cases across segments what according to you is the biggest use case that your company offers and Also, what is the biggest change that it has brought to the sector you are in if you can just Introduce yourself briefly and take it up Yeah, we can start from left first of all. Thanks Shanti for this question Just wanted to introduce our company. We are disrupting the orthodox staff documentation and remote software development industry So we are a tech company at heart and that's why we are Involved deep-tech heavily and invested Many things that are involved with deep tech AI ML etc Essentially, we have our internal proprietary tools and software algorithms to match appropriate talent Talent data that are mostly the engineers from our vetted talent bank to the to the companies and different projects So essentially we are doing it through Text analytics scale and project mapping of the engineers that we have in our talent bank and this is like as we know remote software development and outsourcing per se is one of the biggest revenue source of India as well as for many big tech giants like Infosys etc. So As a company we we are using Deep tech per se to give a use case for example if we have a project for Healthcare domain then our algorithm is matching a software developer Who has actually worked with healthcare domain and can assimilate with the right atmosphere of a healthcare domain in the sense We are actually Solving a critical problem of talent shortage a and we are saving at least $2,000 per hire for The companies and we are giving an experience of ramping up and ramping down of the engineering teams At an instantaneous level. So that is one thing the second part of the question Is that like what what new things and what all? New updates that we would get into deep tech as the industry evolves I see for example if I taking about charge epiti a charge epiti only and we were all Discussing about charge epiti before this panel like I according to me the new Tech that we are we are having at this particular stage would build new roles and also you can say Cancel the roles which were mundane at past so for example Accounting per se would be a mundane role which can get distorted eventually. So that's my take on this Thanks, Anthony I'm Sunil. I had tech for ship rocket So essentially what we do if we all know how e-commerce industry functions. So there are two Hours to it one is through marketplaces and other is through D2C bands So essentially we give the fulfillment services to D2C brands and small businesses in in a nutshell So for me if we talk about deep tech It goes anything which goes much to be on your traditional if then else as a statement and helps you to give the wow Factor to the customer. So we heard about zip to currently if the promise is 10 minutes And if you get the stuff in 8 minutes, so that's sort of a wow factor So especially in our industry So we do deliveries with our third-party career come partners So likes of delivery easy com express and all so imagine you are running a business And you have a career recommendation engine at your disposal which is trained over Huge volumes of data and is able to give you the best recommended career Pitch suits your pricing which suits your SLAs which suits your demands That is a perfect use case what we provide to our customers another thing can be what we essentially do you are running a business and a Portion significant portion of your orders is say on cash on delivery. So if a cash on delivery order is returned RTO happens So as a business owner, it's a double-bammy for you because you are paying the freight from both the sites and It's a locked-in inventory for you and you are not making money on it. So we have solutions where we Give a lever to you where you incentivize your customers to change that COD Order into a prepaid order. So things like those where which are Enhancing factors for your business and also serve as a wow factor for your customers Thanks, Shanti. I'm Shashank and I work as a chief development architect for SAP labs Bangalore so from My side all I can say we work on two aspects of deep tech or AI one aspect is that the verticals can Use AI in an embedded fashion, which means let's say a supply chain domain. So they have very specific needs for AI Which might be different from a CRM kind of a scenario So what we do is we provide some kind of a platform where they can embed the AI into their specific verticals Like as an example, I work for a team for API management Now currently what we are doing is we are looking for a solution to do anomaly detection on top of the APIs We have so how do we approach it? We take the platform provided by another team Which is providing all the workflows which we need for building an AI solution on top So we use that to build our own embedded AI solution Going forward what we see and particularly I see how SAP will proceed is there talks of let's say having their own Language model deployed in our data centers primarily the reason being that chat GPT There are a lot of privacy concerns Can I share my private data of a customer with chat GPT? Definitely I know right? So we need to run these kind of models within our own data centers within our own premises And where we can serve the customers in a secured way So that would be the idea from the SAP side. Hi, my name is Sumit Sabarwal and I lead a company known as team Lee's HR tech What we do exactly being a 20 years old company what we're doing is we're transforming the employee experience by leveraging deep tech Primarily AI machine learning and also a lot of new technologies that as we speak are evolving around the globe We manage close to about two million employees on our platform as on date focused on India and Some of the very breakthrough products across our product stack Are zero touch applicant tracking systems and one touch? HCM platforms coupled very very uniquely with Edu tech platforms with regulatory tech platforms that gives us seamless experience a lot of exciting things that we're doing we're having our innovation center here in Bangalore and Happy to be here on this planet. Thank you. Thanks Yeah, hi, I'm Sharmin. I'm the founder and CEO at in storied as the name says in storied inside stories We basically help you create stories across multiple formats Of course using AI starting from text to image to video at the click of a few buttons You can create content. You can create your own images. You can create your own videos Whatever that you might need And to answer your question about what are you know some of the best things happening in this space? Well, of course, everyone knows about chat GPT. Thanks to Microsoft backing open AI But yes, uh chat GPT became famous last year in October, but we started building a chat GPT like product back in 2018 Of course, we didn't have the funds to you know use 1.5 billion data points But we used 70 million data points and built something exactly similar And you know as a startup founders have this thing initially that okay We've built something phenomenal. Why should we sell we had acquisition offers from Grammarly? And you know some other folks, but we said no, we won't sell we're gonna go and compete against a chat GPT, but then of course that That is something out of question right now, but we are we are also You know figuring out how we can partner with chat GPT because we are focused on marketing, right? And across multiple formats. Yeah, so hi, I'm Ram Prakash Ram Amurti I'm the director of AI research at manage engine division of the whole corp so at manage engine we build tools for IT and We have infused all of these tools with at least one AI feature across our 100 plus products that we offer right now. So the products vary from IT service management to security to endpoint management to monitoring So coming to the second part of the question. What is the more impactful area that we see with deep tech? Enabling in our line of work. I think the whole notion of web security has been Beefed up by AI on one side. There are AI scripts to generate malware on the other side There are better and power packed AI tools to you know, identify these malware to quarantine these ransomware predominantly I think that's one of the interesting problems we solved in manage engine because these neural network models have to be run at the endpoint and Identify ransomware and malware so the whole notion of static security threshold is gone Everything is going to be dynamic and that is what AI has enabled for IT looking forward to the conversation. Thank you Hey, good afternoon folks I'm money from Uber Think care of engineering at Bangalore So one of the differentiating things that we have is on the deep tech space is Real-time marketplace right marketplaces a concept has been existing for a long period of time in e-commerce Where you put merchants coming in or giving you a catalog and then you have sellers But doing it real-time is an extremely extremely Interesting and a challenging space right when people open the app and when you click a button and I mean a car comes in front of you It's a magic. We call it as Uber magic Earlier if a car comes after two minutes people are okay because they are very fancy with the magic today People cannot even wait for 30 seconds. I need the car immediately. I need the auto immediately, right? How do we do it with real-time when you are trying to have two people anywhere in the world meet in the middle of the road? Agree on a transaction and then travel right when you want to do that at uber scale where we are operating at 10,000 cities and 100 countries where you have in a five million owner partners in our platform How do we figure that out? What kind of things that we do on AI what kind of things that you do on ML when you just go and say here It's a destination. I want to go from here to RG a tech park You see a list of offerings to say at this point in time How many driver partners in cars are there in autos are there in uber excel are there what should be the price? Should I apply a should I apply a search? Should I not apply a search and then show a product offering of 20 listings within two seconds So that the rider can make a decision is a very interesting problem, right? And how whether we use ML whether we use AI is all behind the scenes, right? It's all isolated from the riders, right? But for us to do that deep tech is extremely extremely important, right? And if you do that Once and if you have the differentiating software we can apply that in multiple space during pandemic when we were super high on Right's business and we said hey, why don't we leverage the same marketplace and see whether we can go big on the each Business on the delivery business at that time uber was operating close to a 50 billion dollar gross bookings on rights And we were able to get each and rights close to 55 billion dollars Globally with a single platform where you have a single platform today as a real-time marketplace which boosts both each as well as rights The moment you have a single platform which can boost eats and writes are a very few companies in the world Which are actually big on rights as well as on each you can say hey here as a company Which is big on rights in India you can know which is the company which does the rights in some other country You can know some companies are good on each but there are very few companies which do rights and each together And if you have that kind of a differentiating marketplace You can also introduce new scenarios as an owner partner whose whole goal is to see how I can maximize my earning You can do rights in the morning you can do delivery in the afternoon You can do rights in the evening you can do delivery in the night And then you keep switching between the market places so that you can give the best experience for both riders and the owners How do we use that using this deep tech is the uber magic? Great So we cannot have any conversation today without talking about chat GPT in fact many of you mentioned it So I have to ask this question So do you think we are rushing in somewhere? I would like to ask this to Mr. Shashank What's your question we are rushing in with what the usage of chat GPT etc I don't think we are rushing in because the capabilities of chat GPT are mesmerizing to say the least right But from my side at least I would say there are a huge amount of privacy concerns when we use chat Jpt like As a company like SAP we have so much of customer data so much of privacy concerns that nobody is willing to share or Tell that you can just freely use this data and put on chat GPT or as your servers and get the responses So there's a very strict guidelines even within the company what you can do with chat GPT What you cannot do with chat GPT, but that does not mean that it's not a good technology It's definitely a good technology and what we need to do is to probably look into the open source and See like how this shapes up in open source and Provide some models which can be deployed in the company's private data centers So which will be a win-win for the customers as well as for the corporates All right, and today the lines between tech and deep-tech is blurring Many startups today are able to prime the right product market fit Even though even then we don't find many series B funding rounds happening. There is not much of M&A IPO is still a far cry So do you see that changing in the medium to long term? It shall mean if you can take that question So Are you talking about the deep-tech sector IPOs and everything right? So yes, of course, it is a little blurry But then you know Of course when there are large companies like Microsoft Google etc. backing You know medium-sized companies like open AI and throw big etc. Correct So then what happens is that you know deep-tech gets the visibility right which which it wasn't getting earlier Now the biggest challenge with any deep-tech company while let's say if it has to plan for a SPAC or an IPO in the US Whatever the biggest challenge is the whole IP based criteria right because any SaaS company is not going to be You know EBITDA positive anytime soon right 90% of SaaS companies are bound to fail They need to raise a lot of funding in order to sustain Right so that that again is a very big challenge that you know support from stakeholders Understanding globally and then you know the IP related issues intellectual property is is not just about You know your copyrights or your trade secrets, but then you've probably taken like three years You know like for example, we did three years, you know to build your own data sets, right? Deep-tech is no magic at the end of the day as they say deep tech That's because there's a lot of data which is actually being infused into the system now That IP needs to have a value. So until and unless people don't start valuing the intellectual property more than just the You know your your numbers on the table I don't think it's going to be that easy for any deep-tech company to you know go IPO or SPAC that soon Yeah We all know would you like to take this question as well? So as said by my fellow panel, I just want to reiterate that again any deep come deep tech company at heart Requires a lot of funding even chat GPT got funded by consortium of investors may Google Microsoft Google is not part of it. Microsoft is the part of it but at the end we saw in COVID era that there were Astronomical valuations and right now the investors are more cautious towards profitability unit economics and Operational profitability at least so that's why we are getting some blurry picture out there when we are saying that the investments are Going less in deep tech companies specifically in series B and further When you're saying about MNA again the macroeconomic challenges are certainly not favorable we are having feds increasing the rates and Like the companies as well as the investors are parking their funds in rather risk-free or less risk Franchel or investment instruments. So again, that is The second thing and when we say about IPO like we all know what has happened recently in India that tech companies IPO like they were Bleeding to be very honest and to be very harsh as of now and we didn't see any Retail investors getting getting money out of it. So as of now I say that deep tech in there needs to be in the matter for metamorphosis space and It needs to grow and the the evolution needs to be there so that the even the retail investors understand deep deep tech What it is and what it is exactly. So that is my take Got it and as Charmaine just mentioned The inherent advantage of deep tech is IP creation So do you think that should be valued beyond your immediate revenue if Mr. Sunil can take that See IP creation is part of the journey itself. So if you talk about deep tech so essentially If you talk about deep tech it requires a lot of investment very true But end of the day it should solve some problem on the ground which should Directly result into making profits for the business that else We if we see around us there are a lot of deep tech things happening in the academic world But in order to make it a professional success It has to make profits for the business and yes, unless and until IP Milestone is crossed it won't be able to give those benefits for the business And yes as I mentioned so IP creation will be part of the journey and we'll see a lot of those IPs being created in Times to come and what has happened the actual Time span elapsed time in terms of any tech Being getting matured and commercialized and giving fruitful result that elapsed time has reduced significantly in last few years So what we are talking about it say maybe a couple of years down the line at the max Mr. Sumit you would like to take that question on IP creation. I think IP creation and Profitability go hand-in-hand if you if you very well define what sector are you focusing on and What's the difference it makes to the end consumer or the user experience or the problem that it solves then? certainly it will It will attract a lot of not only investor attention But a lot of customers and that's what basically the business is there for so while Our focus has to be on on the user experience on solving the problem using deep tech But at the same time If it is only for academics purpose certainly in the business world It's not going to make that kind of a impact and relevance and hence we enhance We'll see a lot of brilliant ideas not seeing the light of the day because of this so IP creation is important But I think the overall vision in terms of how it makes solves the problem how it makes a difference to the user Profitably and takes care of all the stakeholders not just the shareholders, but the community the employees You know the investors everyone that is super important Got it. And my last question is to Ram and money content Where are we going to see the next leg of deception in tech? See Two things you say especially on the transportation space Where we are and it's always a supply game who has the maximum supply wins the game, right? So demand is always there, right? So what the approach that we are looking for is two three four One is making us an open platform right today We have IC drivers or earner partners who are registering at Uber and then starting to be an owner partner in Uber We are also building a lot of stuff around fleets Where if you know if somebody can have like 50 cars or 200 cars or 10 cars and if they want to run for uber How can we make the fleet integration so easily so that they can increase the thing? And then we are also you know working on 3p taxes We have a goal that all taxes in uber by 2025 So we have opened up API so we are integrating with a lot of taxis So the taxi driver will still use the taxi app, but uber demand will come to the taxis That's one side of things, right? The second part, you know is around EBS, right? So there's a whole spectrum of things when it comes to EVs, right? We may still it may look very simple that hey, you know instead of just a you know petrol vehicle I'm just replacing the EV vehicle Just in our matching algorithm. I cannot match EV vehicle where the ride is going to be a 30 kilometer bar the EV charges is going to sustain only for 20 kilometers Just as one example, right? I'm just taking you know EV charges one example like that. There are like You know tens of parameters for which we need to take care and figure out how Autonomous vehicles and EVs can be partnered on this whole, you know, right sharing platform is another thing The last one is autonomous, right? You'd have seen a lot of news around autonomous We still feel that, you know, it's a good bet. A lot of things are happening It will take time for us to mature, right? And Uber will play an important role on the autonomous stuff We have already partnered and we have you know some of the delivery things are happening You know through autonomous vehicles and other stuff. So last one, you know Just since chat GPT is such a hot topic. I'll just give one liner about my thing, right? It's a few years back when software companies were developing softwares Just building a large-scale distributed system software itself was a differentiator There are very few companies which were able to handle petabytes of data which were able to do Millions and millions of compute with their data, you know data centers When all these cloud platforms like AWS or GCP or Oracle cloud platforms came in It's people feel that oh my differentiator is gone And a lot of companies feel that the differentiator is gone But then we went through a wave where a lot of us were integrating that became a commodity That's no more a differentiator. It became a commodity if I want to you know store millions of data I can just integrate with the AWS and store it, right? Today, that is not a differentiator that became a commodity When it comes to AI and ML a lot of companies were using that as a differentiator, right? And it was very few companies which have that kind of a talent and it's not easy to build With the introduction of chat GPT and other software I do think a lot more things will come like this like when we started with AWS It was just AWS right and then GCP came in and then Oracle came in I'm sure there'll be you know few more, you know big software players will come in on this space, right? This will now become a commodity building an AI enabled app will become so easy, right? Then what will be the differentiator is what the companies should start to think because this is no more differentiated become a commodity It's easy for people to integrate. It's easy to get a enable solutions So the offerings will be much simpler offerings will be much faster So then what is the differentiator for the company so that others cannot replicate so that changes the game, right? So all these waves will come in who can latches that and then make use of that commodity And then bring in a differentiator for the company will be the winner That's why my own perspective of how things will evolve on the technology side So money was talking about distributed systems and AI as a differentiator So the way I see this tech evolving I think privacy is going to come in on a big scale our laws have not evolved I mean not just in India, but across the globe There are the the whole GDPR document does not even mention the word artificial intelligence or machine learning Right, so and there are Bills that are passed across different states that are in different stages, but there is no concrete loss that can tie AI and Privacy so for example, we always used to see you have sensitive enterprise information And then you use a translation tool that is built for the consumer or you use a grammar error Corrector detector that was built for the consumer So look at all kinds of sensitive information that is leaving your system, right? especially in developing nations like India where Privacy has still I mean people are not very privacy aware, right? So we don't pay for our search engines. We don't pay for our social networks. We So now Apple is doing a good job by you know by calling privacy as a differentiator So I see this trend where Privacy enabled Technologies will evolve and people like I mean the cliched saying goes data as the new oil But it is just a statement how many of us are actually giving up our personal data for some services that we use so there is I see an increase in very strict and tightening of privacy norms across apps and Privacy is going to be the next differentiator at least for the next decade and hope privacy becomes a commodity And that is the best we could aim for thank you


All right, D-Led. Yeah, Coach, we'd like to turn over. Yeah, that's usually the story of the game, D-Led. Obviously, I was disappointing to turn the ball over three times. All of them were at the start of the drive, put the defense out there, a lot of bad spots. We battled, but usually when the turnover margins like that, and you hand them things, it's usually the way it goes. But we fought, tried to get everything we could to get back in this football game. Our team doesn't quit, but obviously, we came up short. Yeah, I mean, they grinded it out. Like I said, when you hand them the ball right back, it's usually advantage to the offense. You got to give no one's credit. They execute their game plan.  My message to these guys, I was appreciative of everything they've done. Obviously, we came up short of our own goals here. But this team, we learned how to win close games. We went seven and two in one possession games. We scrapped and called. Definitely feel like we got a good foundation and the better days are ahead. Thank you, D-Led.  I mean, Chris Morton's a pretty important team. I'm not discrediting any through the border, but I can tell you this, for 100% of fact, there was not a nonsense that came out in the spring. You know, how you want to insinuate things, no different than the Calvin Ridley question from last week, saying they're not a football decision that's made with the Atlanta Falcons without Terry Fontano and myself collaborating. That's just absolute nonsense, Michael. Absolute 100% nonsense. It'll never happen. We're not professional politicians. We don't operate that way. I know a lot of the league likes to, leagues, rumors, that's not how Terry and I operate. So I know there's a lot of respected people that got a job to do, but that's just not what happens. So, again, that's, life's a lot better when you're not on social media. I know you got a job, I understand. Just don't look at your mentions, Michael. Look, Michael, I sit here, Matt knows how we feel about him, but you're not going to get like a hot take from me today to ever back ourselves into a corner. I don't care about, everything is evaluated every year, and that's the way it goes in the NFL. To make a grand statement right after a game, we're all on the same page, but do I have to declare that Kyle Pitts will be our tight end for us next year? You want me to declare that? I mean, where do you want me to go? I'm gonna go down the whole roster. I'm not, never gonna back ourselves into a corner. I know you gotta ask the question, I appreciate it, but we're taking a fair evaluation of everybody, top to bottom every single year. Well, I'll say this about Matt, and this is what I appreciate about Matt. From the outside looking in, he's always had a lot invested in the perimeter. He's been a lot of good skilled players on the outside, the first part of his career, everything. This is what he proved, is he can win and we did it with a lot of different guys contributing. And so that says a lot about him. A lot of quarterbacks look pretty good. When they got first round picks, Hall of Fame guys outside from Gonzalez, Roddy Wright, when they drafted Julio, he was really the third or fourth guys. He got into it, he became obviously a premier player. You had Red, you had Austin Hooper. Obviously Kyle came in here and was forced into a role by circumstance.  And we found different ways, put Cordell Patterson out there, tried to do everything we could to win football games. And Matt proved that he didn't have to do it with nothing but first rounders out there. I think it says a lot about a quarterback. We only had 19 plays in the first half. Everybody's going through something, Josh. So there's a lot of packages and this and that. We had guys that, it's week 18. So again, there was only 19 plays. CPs obviously a big part of the game plan. We need more offensive plays. It's been the story of the last five games. Like I said, we found ways to win some games, but we knew a better job of being a little more balanced, which we will. Well, I mean, it's hard to get into a rhythm, but we took a shot down there side line that got picked. And then we had two fumbles to start drives as well, giving the ball in plus territory. Those definitely put your defense in a bind. That was the difference in the game. Well, I think you take the whole body of work, but certainly that's why, I mean, it's such a long season. And you do find out a lot about players as you go through it and which guys you can depend on as a season finishes.  But certainly you go back and look at it. There's something you could do differently. I think everybody should say, hey, how can we improve? Certainly with the roster, it definitely adds up. He was fighting through stuff, you know? He gave it everything. I don't think a lot of guys would have played in his circumstance. So we certainly tried. And I'm sure you'll get the hot takes about the target. He was a primary and a lot of play calls. I don't know if it took him away, so, but I can sit here and look at it and say he won 100%. But I appreciate him going out there and trying to help us. Thank you. Yeah, great. How tough was it for the unit out there today? In fact, they ran the ball over. I mean, it was tough for the whole team today, you know? Like I said, you ran the ball, you know, got the ball. We got the ball in some short fields.   Guys was fighting hard, so I'm proud about that. And, you know, not the finish that we wanted.   And still, you know, we just played our last game. You know what I'm saying? I'm sure a lot of, you know, stuff got to go on between, you know, now and next training camp across the league. So, you know, I can't really speak what's going to happen next year and stuff like that. But, you know, anytime there's an installation of, you know, new defense, more time you spend in it, always is better. But like I said, man, ain't no excuse. You know, we got to go out there and play the game today and be able to execute whatever Coach P's call and do it at a high level. And at the end of the day, you know, it's a little too early to be speaking on next year. You know what I'm saying? So process this. We still haven't had our exit meetings and stuff like that. So, you know, we'll time it till. Yeah, I mean, that's something to grab on to, you know what I'm saying? Winning close games is always important. You know, the margin of victory in this league is always small, so teams are good. I mean, each week, anybody can get beat, you know what I'm saying? So be able to come out on top of the close games is definitely something to build off of and something that we're proud of. I mean, I don't know if it's from the whole team's perspective, you know, for the office, defense, us as a whole team.  And nobody want to have to turn over, people don't turn a ball over on purpose, you know what I'm saying? So it's frustrating for the office, frustrating for the defense, but at the end of the day, we got to respond. We a whole team, you know what I'm saying? So got to do what you got to do.  You got to go to work, you know what I'm saying?  So at the end of the day, you still got a game to play. Like I said, nobody want to make turnovers on purpose. So, you know, it's still got more game to play. You want to pick up your guy and try to keep him motivated, you know, and keep the office motivated. And I think if we go out there, put a big showing to get a stop, you know what I'm saying? Or make them kick a field, go in a short field. They know that, you know what I'm saying? Like we got it back. So we got some stops. You know, sometimes we didn't get some stops and we just got to take that next growth. But, you know, turnovers affect the whole team. Nobody do it on purpose. And you got to be able to respond, you know what I'm saying? And that'll help them go back out and do better too. You know what I'm saying? It's a team thing. Yeah, man. The turnovers today were the issues for you guys. What are, you know, what were y'all, I don't know yet, what were the issues they were? Yeah, I mean, we knew coming into it, you know, we had to be efficient and take care of the ball, try to push one down the field to us and, you know, probably shouldn't have made that decision. You know, that's a tough one. And then a pair of fumbles. But those two before the half really hurt. And, you know, breathe some life into them and gave them an opportunity to score some points before the half, which is always tough to overcome. So it was disappointing, you know, for sure. And we've got to do better than that as we move into next season. We've got to, you know, be really efficient and take really good care of the football. I do think that, you know, there are positives to take from that in close, you know, one-score games. We were very efficient. We need to put ourselves in more of those, you know, than we did this year. And I think that's the next step. And I also think, you know, learning how to close some of those games out earlier and figuring out ways to win, you know, where it doesn't have to be one possession. You know, I think those are places we can, you know, make growth, but I'm optimistic.  And I think that's going to serve us well, you know, as we continue to grow and build.  And, you know, I believe in this team and the coaching staff, I think did a great job. You know, I really feel fortunate to have been here for as long as I have. And, you know, but I'm optimistic.  I really think we're going to, you know, make improvements this offseason and continue to grow as a team and be better than we were this year. No, I mean, I've just, we haven't talked about it. We're playing season and doing those kind of things and, you know, going through a game plan week to week.  But I feel good about it. I really do. I feel like I'm in a good space and our team's in a good space and we can improve and be better as we move forward. I understand my role, you know, what that is. And, you know, certainly throughout my entire career have given honest feedback. But, you know, I also understand that they have a job to do and it's their responsibility to find players, to, you know, decide who stays who goes, figure out contracts, figure out the cap, all those kind of things.  Yeah, I think, number one, those conversations are better had in our facility, you know, and behind closed doors. But I'm optimistic. I really am. I think, you know, Arthur talked a lot about wanting to create a culture. I think he's done a very good job of that. Creating a tough, you know, physical football team. We're making strides toward that. I thought the fight, the toughness from the guys, the resiliency all year was really good. And there's a lot of growth that can come from that with young players, you know, being in those situations and maturity and toughness, mental toughness, those kind of things. I think, you know, a season like this can provide. And so I'm optimistic. I really am. I mean, he'd be better to answer that question of that. But, you know, from my perspective, that's, you know, that's what he's asking for us as players, tough, smart, physical players. And, you know, I think guys have tried to do that. You know, guys have really worked towards that the way we practice, the way we train, all those things. You know, I think trend in that direction. And so, you know, I think being in year two in a system, not just myself, but, you know, the guys that are back, I think there are great strides that can be made there. Not really, you know. I think I'm at the point in my career. Don't get me wrong. I'm proud of how long it lasted for sure. But, you know, the objective is to be playing, you know, now and to have the opportunity. And so, from that standpoint, you know, the statistical stuff is very nice and I'm proud of it. But at the same time, I really care about winning. And, you know, want to be playing in the playoffs and making a push to win a championship. And that, to me, is the more important, you know, goals as we move forward. I think we were about two or three games away, you know. And there are some games that, you know, if you just look at it objectively, that's probably what we need it to do when nine or 10 games and give you the opportunity to get in. And so, every season's different.  And finding ways to win a few games early in the year, too, you know, where we had chances. I think that's going to be important and getting off to a good start. All those things are important. They all count one, you know. And sometimes they sting a little bit more at the end of the year, when the picture's kind of unraveled itself to you. But I've learned, you know, that those ones in the beginning of the year are just as important. So, you know, we're not far off. I've played with all kinds of different guys throughout my career.  But, you know, I feel like I'm at a point where I can work with different guys, for sure. And different skill sets and feel comfortable with that. I think Russ did a good job.  I think, you know, battling through injury early in the year kind of takes a little bit of time to get your legs back underneath you. But second half of the season or the last six weeks, whatever, I think he's played well for us.  I mean, I'd love to. I love, you know, Russ as a teammate.  I also understand, you know, it's the nature of this league is hard to predict how things are gonna go. But, you know, as far as my opinion of Russ, I love him. I think he's a great teammate and a very good player. All right, thank you guys.