From Seattle, Washington, it's theCUBE. Covering AWS Imagine, nonprofit. Brought to you by Amazon Web Services. Hey, welcome back everybody. Jeff Frick here with theCUBE. We're actually on the waterfront in Seattle at the AWS Imagine nonprofit event. We're here a couple weeks ago for the AWS Imagine education event. This is really about nonprofits and solving big, big problems. So Dave Levy and team have a dedicated of some of these big problems that one of the big problems in the world is human trafficking and problems with the people that aren't countering and all kinds of nasty situations all over the world. And we're really excited to have someone who's tackling that problem and really trying to bring a voice to those people who wouldn't otherwise have a voice. And she's Hind Ali Nawee. She's the CEO of Humanitarian Tracker. Hind, great to see you. Thank you, Jeff. Good to be here. Absolutely. So before we jump into it, impressions on this event? It's a wonderful event bringing together technologists, people on nonprofit, really creating synergies for people to collaborate and talk to each other and network and learn how they can advance their organizations. Such important work. So give us kind of the background on what you're up to, what Humanitarian Tracker's all about. So Humanitarian Tracker's a nonprofit forum. It was created to connect and empower citizens using innovation and technology, but specifically for humanitarian events. We were among the first to combine crowdsourced reports with data mining and artificial intelligence and apply them to humanitarian disasters, conflicts, human rights violations, disease outbreak, all the way to tracking the UN Sustainable Development Goals, really giving a holistic view of what's happening.  I can't remember the exact term that people use where it was kind of the first use of regular people using their mobile phones to kind of grab a groundswell of action. You're not looking at the politics specifically, you're looking at more humanitarian disasters, but pretty amazing kind of what a connected phone represents to anyone in the world now to communicate what's happening to them to share that story. We really didn't have anything like that before to get that personal event on the ground. No, it's really a new way of consuming, creating and consuming information. So the cell phone has really given people on the ground a chance to tell their own story, but it's not enough. If you have an event that happens to you, something happens to you and you record it, it stops there. But the unique thing about humanitarian trackers that gives people that forum to show the world and tell them what's happening to and around them. But it's not just about the individual and what you guys are doing is using cutting edge technology. Obviously you're here as part of the AWS event in terms of machine learning and big data to grab a large number of these reported events and distill it into more of an overarching view of what's actually happening on the ground. How do you do that? Where did you get that vision? How are you executing that? Well, we're all about empowering the citizen. And in our line of work, we deal with a lot of data, a lot of information. Most of it is unstructured. Most of it is crowdsourced. So we use machine learning to help us extract important details, information on time, event, location, what is happening. At the same time, we really care that this reporter stays anonymous for their own safety. Privacy and security is up most important to us. So that's always our focus. So in that space, we de-identify them. We take out any information that could be identifiable, that could lead to their arrest or could lead to somebody identifying that it was them that reported. And how do you get the information to the people that are suffering this activity on the ground? How do they know about you? How do they know that you are anonymizing their information so there's not going to be repercussions if they report? You know, I guess you're go to market to steal a business terms in making sure that people know this tool is available for help. It depends on the situation. So for example, in the conflict situation, we rolled it out and we kept it low key for a while because we didn't want government attacks, we didn't want people to be arrested or to be tried. So we rolled it out and it was word of mouth that spread and people started submitting reports. Actually the first project we did with conflict, we weren't sure if we were gonna get one report, zero reports, the first week we got nothing. And then slowly as people learned about it, they started submitting their reports. And we see our job as really elevating the otherwise marginalized voice. So you submit a report to us, we then take it, we verify it, we make it public.  The data's phenomenal and what you get from it is not just collecting data, we're not about just collecting the data. We wanna make sure it's meaningful and we wanna derive insights. So we want to know what is the data actually telling us. Right, right. So just to be clear for people that don't know, so you're making that data available, you're cleansing the data, you're running some AI on it to try to get a bigger picture, and anyone with a login, any kind of journalist can now access that data in support of whatever issue or topic or story that they're chasing. That's it, Jeff. That's phenomenal. And just kind of size and scope, you've been at this, I think you said, since 2011, kind of how many active activities, crises, I don't know what the definition is of a bucket of these problems. Are you tracking historically at a given point in time? Give us some kind of basic sizing type of dimensions. It really ranges because we could, when we were tracking conflict, for example, we were really focused on one area and the surrounding countries because you had a refugee population, you had displacement, you had all sorts of issues, but it could be anywhere from five projects. It just depends. And we want to make sure that each project we're taking on, we're giving it our full attention, full scope, and I like to run the organization like a two-team pizza team, and so I don't take on more than I could handle. Right, right. So then how did it more from the conflict to the global sustainability goal? So we've worked with Western Digital, they're doing a lot of work, SAP is doing a lot of work on kind of these global sustainability goals. How did you get involved in that and how did the two kind of dovetail together? So the elasticity of the cloud has helped our operation scale tremendously. And in 2016, we were selected as a top 10 global innovation that could be applied to the sustainable development goals.  We were nominated and from over a thousand solutions we were chosen. Congratulations. Thank you. We were showcased at the Solutions Summit which is hosted at the United Nations. And just based on that experience of meeting people that were doing really cool things in their respective communities, we launched the Global Action Mosaic because we wanted to create one place where people that are doing projects in their communities could submit it and have it showcased. And the goals are not only to crowdsource the SDGs but also be part of the effort to track what's happening, who's doing what where, make it easy for people to search, say, Jeff, you decided to get involved in a project with education. You can go on to our Global Action Mosaic, search projects on education in your community or in other parts of the world and then get involved with it. So it's really kind of creating a centralized place where people can get information on the global goals. Awesome. So that's pretty much the Global Action Mosaic is pretty much focused on the UN Global Goals versus your core efforts around the humanitarian tracker. Yes. That's great. So we're here at AWS. Have you always been on AWS? Is this something new? How does being on kind of the AWS infrastructure help you do your mission better? We are, we've been partners in running on AWS since we actually started. Since the beginning. Yes. We have Ushahidi as one of our partners, development partners, AWS. And because one of the core, one of the most important things to us is privacy and security. We want to make sure that whatever data is being handled and received is stored securely. And that information transmitted, handled is also being done so in a secure way. Like I mentioned, the elasticity of the cloud has helped us scale our mission tremendously. It's affordable. We've been able to use it. We use their machine learning stack to de-identify some of the data that comes in. So we're firm believers that AWS is essential to how we run our operation. Because do the individual conflicts kind of grow and shrink over time? Do you see it's really a collection of kind of firing up hotspots and then turning down versus kind of one long sustained relatively flat, from kind of utilization and capacity point of view? No, it definitely, it flares up and you'll have like a year, months, weeks sometimes where it's just focused on one area. But one of the things that we focus on is not just, so what is the data actually telling us? So if you say you're focusing on point A, but just down the street in location B, there is a dire humanitarian emergency that needs to be addressed. The crowdsourced reports combined with the data mining and the AI helps us identify those hotspots. So everybody might be focused here, but there could be an emergency just down the street that needs to be addressed as well, so it just depends. And do you have your own data scientists or do you, do other people take your data and run it through their own processes to try to find some of these insights? We have both. You have both? Yeah. So what's been the biggest surprise when you anonymize and aggregate the data around some of these hotspots? Is there a particular pattern that you see over and over? Is there some insight that now that you've seen so much of it from kind of the cap word seed that you can share and reflect on? I think it's very unique to each project you do, but there is one thing that I strongly support that I don't see enough of, and that's the sharing of data within the organizations. So for example, just getting to that culture where sharing your data between organizations is encouraged and actually done, could help create a pool of knowledge. Create a pool of knowledge. So for example, we worked with 13 different organizations that were all tackling humanitarian events, the same one in Syria. And the 13 did not share data and did not talk to each other. And so we found that, for example, they were all focused on one area when just a few miles down, there was a need that wasn't being addressed, but because they don't share information, they had no idea. It was only when we were able to take a look at it kind of from an overarching view, looking all their data that we were able to say would be helpful. It would actually, you could save on resources and less time and less effort, and you guys are tackling a small funding pool to begin with if you shared information and tackle different things instead of focusing on one area because you don't know what the other guy is doing. And were they using crowdsource data or were they trying to collect their own from the field? They were collecting their own. So I assume the depth and richness and broadness of data was probably nothing like you were collecting. Well, you get a different kind of information when the individual is actually telling you what's happening versus you asking a very direct question like, are you healthy? Yes or no? Whereas you give them the chance they might tell you that they haven't eaten and they're diabetic and give you other pieces of information where they're living. Are they refugees? Are they healthy? Are they not healthy? Do they go to school? Do their kids go to school? How many kids they have? Are they female or unhousehold? All this information could help guide development in the proper way. Right, right. All right, so I'll give you the final word. How should people get involved if they want to help? You can go to humanitariantracker.org if you want to volunteer with us. And if you're doing a project that is related to the UN Sustainable Development Goals, I would like you to go to globalactionmosaic.org and map it there and be part of our community. Excellent. Well, thank you for taking a few minutes to sharing your story and for all the good work that you're doing out there. Thank you, Jeff. It was a pleasure. She's saying, I'm Jeff. You're watching theCUBE. We're at AWS Imagine nonprofit. Thanks for watching. We'll see you next time.


The study found that while patient and public involvement, PPI, is important in applied research, it presents challenges in statistical methodology research. The survey results showed that 40.3% of participants had undertaken PPI to inform a grant application, with the majority reporting positive feedback from funders. However, only 21% of participants had conducted PPI during a methodological project. While 31% of individuals thought PPI was very or extremely relevant to statistical methodology research, negative opinions included that it is too technical for the public to understand. The study concluded that while there are varying views on the inclusion of PPI in statistical methodology research, many researchers would feel more confident if they had access to resources such as training, guidelines, and case studies. This article was authored by Lucy Abel, Francesca Mayer, Samina Begum, and others. We are article.tv, links in the description below.


Okay so the first job is to sort out and add taggers names to this ball which is ever growing it's now the taggers wall I'm not giving you an update since I went from the white clean boards dry white boards that's the name of them I've now moved over to this whole wall and I want to get it all full with average golfers who've got handicapped targets and goals for this season 2018 as you can see lots of names coming in Frankie first girl her target was to get a handicap another girl followed by young lady Becky O'Grady 3.9 currently down to 3.3 that's the only two women we have on the board so more girls more female golfers I want to see but just keep them coming in the only two differences are made so far in terms of handicap adjustments is Stephen Holiday 11.728 Rob McGarv 5.1 I think he was at sort of six is your 5.5 and he's trying to get down to scratch but as a whole host of names have been added from all over the world which is fantastic and the idea is we just keep on encouraging each other when you stand on that seat maybe just subconsciously in the back of your mind you've got the taggers target board there to drive your arm and to help just focus that mind on a back now when you got a chance to make that handicap improvement so keep on sending them in so just as a reminder all I need name current handicap and target for 2018 and there's gonna be some prizes given away at the end of it all okay so this week started off as ever at Fogolf in Chester every Monday morning starts there and I started doing the usual product testing and this week it was the Callaway XR driver new release from Callaway who spoke about this a few weeks ago finally hit that this morning that video have either been out in the past 24 hours or certainly round about now depending on when this one goes out and then it also took an interesting look at what I call a power bat in terms of irons so two seven irons from the strongest clubs out there in the G700 from Ping and the M4 from TaylorMade so once again two video shot there that are really really interesting and well worth a watch and as I say they'll be around and about this week on the YouTube channel so keep an eye out for those but I want to go back to last week and I started early on last week with a game of match play up at Northup Country Park and this is what happened I'm at Northup Golf Club and I'm about to play a pairs knockout match it's a regional county thing playing every year okay the last few years with the same partner Jason Barron and hopefully we'll have another good run but I must admit Monday is not the best day to play golf I don't think I've been at Fogolf recording this morning and I'm a little bit lethargic don't want to start making excuses I need to get a bit of positivity don't forget thoughts playing well last week so come on and liven yourself up and let's get going right before I move out the car first question that springs to mind how do you get motivated for competitions what gets you right now what would you be doing I'm struggling like I said thinking or you know one of them can't be bothered it's late in the afternoon it's not the nicest of days but I'm playing golf I could be working how do you get yourself motivated that's the first question of today's vlog right back where it all started about four hours ago 18 holes are done before we competition this one it's it's Matt or it's not match play it's a knockout format better ball but we play it as stable for points which is I don't know we still can't get me head around it but that's the way it is so what you do you end up playing 18 holes no matter how much of a lead you've got you keep on playing for 18 holes which is a bit daft for me but good news to reporters we had a cracking knock there I don't know what the other team finished up on but we beat them without being yeah we're being fairly easy because we had 45 points which was unreal we had 19 on the front and would you believe 26 points on the way back which is a bit of a score to say the least so happy with that and a quick point time to go home and we'll carry on with this chat tomorrow so as you can see that decent start to the week it was nice to get that win and carried on on Thursday played in Thursday's weekly roll-up at Heswell and don't forget a decent round the week previous this time it was over 18 holes it was still unfortunately non-qualifying due to the fact it was picking clean but we did play 18 holes and I managed to knock up 37 points which I was really pleased with at the same time disappointed because after 12 holes and remember it's a 12-hole comp the week before I had one more point than the previous week and I won the previous week so it was actually a point better than what I've done the week before over 12 holes and I then just faltered a little bit on the last six could be down to a little bit of fatigue getting on it was sort of half seven at night but that's how we'd come off I don't know I also play a lot of 12-hole golf during the winter months because it finishes near our car park and again I think I need to up my fitness level and play a few more rounds of 18 holes and that's my golf done with for last week I didn't play at the weekend but I did watch a little bit of world golf and this is the question I have for you is that I switched off fairly quickly and that's due to the fact none of the big name players are really involved in any of the tournaments and I can't just watch the lesser players I suppose and the big names the big players are definitely the draw for me and the big tournaments as well I suppose so I struggle to watch golf under any circumstances other than major competitions and the big tournaments I suppose and where the top players of the world are involved and what about you is that something that you struggle with will you watch literally any golf that's on the telly or do you have as it got to be you're like me have you got off the mage is that the big players got to be there because otherwise for me this is where with the lesser tournaments if I call them that there needs to be something a little bit of razzmatazz around the events to just get people switched on to see something a little bit different that's going on razzmatazz was maybe the wrong word but you get the idea now probably mentioned last week that there's someone shining in the UK and it was a little bit well it certainly went to my head made me perhaps a little bit delirious and for some reason I ended up filming this video I know it's a tough watch but I promise you you will never ever see me in that blonde wig and cap ever again in many ways the week went from bad to worse in terms of the publicity we receive and because even Saoirse Garcia decided to take his frustrations out on the average golfer when he struggled with recent performances with the Callaway Rogue driver so we enjoyed those videos I like to add a little bit of humor where possible into these videos it can be a little bit mundane just hitting golf products all day long they're not everybody's cup of tea but I enjoy making them every now and again and I hope you have a little bit of a laugh at my expense the main sort of mentioning that video is Randy at fried eggs and I did say at the end of the video he has got an album of brilliant rap videos the rights that are golf related and it's just released that album on iTunes this is absolutely fantastic so get over there support fried eggs golf go and check out the channel if you haven't already gives me plenty of shout outs and most people that watch this channel are already aware of who he is so I can never really give him much of helping and but if for whatever reason you've not seen fried eggs golf then get over there check out his channel get into iTunes and buy that album okay no no doubt you've been asking yourself what is that feel changing the color of his hoodie each time we change camera angle the answer is simple if you've been there already you'll know the averagegolford.com website sells a little bit of merchandise like these caps hats and polo shirts and it's done quite well to be fair and I really thank everybody who supported that so far so we've decided to add just a couple of products and we've added these hoodies which is available in five colors really nice quality we've also added a lightweight Gillet which is again really nice quality perfect for either on the course or maybe at the driving range or in the pub even they're really nice garments do like them but the bit that I want to add at the moment is for your support right now there's a little bit of a bonus code that you can add at checkout which is average 10 quote that code at the checkout you'll get 10% off your full order and we ship worldwide as we have done already plenty of support from all over the place and like I said really do appreciate that anyway that's me finished for this week don't forget thumbs up if you like the video subscribe if you don't already if you do subscribe I'm told you need to start hitting the notifications bell which will give you alerts each time we post a video and that's mega important because apparently that's dropped off quite a lot of the YouTube people who are subscribing to YouTube bit of an issue that they've got going on so just check out that you've got that notification bell highlighted other than that enjoy the rest of your week and I'll see you soon don't forget plenty of videos posted this week


me. What's up man? How's it going? How you doing? I'm doing well. You doing well? You with your family? Yes sir.  Yes sir. All right man. Took this long cuz they don't know I need to go a lot. Hey, hey listen everything happens for reason right? Yes sir. We get in that room with you and we talk about it exactly why you guys were playing so well in Cincinnati that chip on the shoulder that y'all had right? The way y'all played, the way y'all fought, the way y'all competed. You know that sign up that says how you do anything is how you do everything? Yes sir. That's how we do things here all right? Yeah we're gonna get it done man. Hey, we're excited man. I'm gonna hand you over to the head coach. Enjoy this moment. Yes sir. All right here you go. Yes sir. Hey, what's going on bud? What's going on coach? All right man. We're about what you're about and that's why we want you here. We're fired up. All right, great opportunity. We're fired as hell. You're coming to Atlanta. We'll put ours to work. What's that? So let's go to work. Let's roll. Here's Arthur Blink. Hey Desmond, how you doing buddy? How are you? I'm doing great. I didn't get a chance to meet you but my son and I were at the game. We played against the Notre Dame and we fell in love with you then. So we're still in love with you now. We look forward to having you in Atlanta and hopefully you're excited about it. You had an incredible career with a great team. You'll have a chance to do the same thing here. So we're excited you'll be a falcon. Yes sir, thank you so much. Okay, we'll look forward to seeing you here. Okay buddy? Yes sir, let's have a good one. Okay, thank you. We will. Thank you. Take care of yourself. Look forward. Bye.


So we started with 20 girls in 2012 and last year we taught 152 and this year we're going to teach 400 in 19 companies across America in Boston, Seattle, New York, Miami at companies like Facebook, Twitter, Square, eBay, Intel, Intuit, Stanford, Adobe, Amazon, Microsoft, Google. Every single company, major technology company in America, is going to have 20 young girls learning how to computer programming, learning how to computer program and become the next, the future of innovation in our country. And the most amazing thing about teaching young girls how to computer program is they teach other girls. You teach a boy how to code, he will teach no one, you teach a girl how to code, she will teach at least three.  I want to start a club at school. I want to teach my dad how to code. I want to go to my church and teach them how to computer program. So by the end of this year, we'll have another 2,000 girls that go through our Girls Who Code Club programs. Again, changing the face of innovation. Our program matters because I truly believe that the products that these young women will create will change the world. One of our young girls, Cora, her father was diagnosed with cancer when she was five years old. So she decided that when she was five, she was going to save her daddy's life. She was going to become a doctor. And she didn't understand the connection between technology and medicine until Girls Who Code. And in the last two weeks of our program, she built an algorithm to help detect false positives in breast cancer testing. She's 16 years old.


Carey Vine's homemade treats specializes in dessert bars. It is Columbia's home for a variety of nine flavors throughout the year. We keep up seasonal flavors, but we also make two layer nine-inch cakes, all of which are covered in our signature cream cheese icing. This came about after having my first child. I was at a job that I enjoyed doing. However, the hours weren't in a way that I felt I was able to balance with my new family dynamic. So that's where my brainchild Carey Vines came about, because you wonder, it's like, what do you already know how to do? And baking was it for me. You know, I figured out a way that was pleasing to my market, a need that wasn't being met already. And that's how Carey Vines came about. I would say to others in my position, just to keep going. One step at a time as cliche as it may sound or is, don't beat yourself up. Write down those awesome ideas that come to you. Write those things down and also catalog what you have accomplished. So when the sad days come, you're able to look back and see what it is that you have already overcome. And that'll give hopefully a little bit of kick or energy that'll enable you to keep going in your your own individual race.


Two people were killed and 12 were hurt in a shooting on Saturday at a party in New Jersey Police say a 30-year-old man and a 25-year-old woman were killed The injured was sent to hospitals and one of the wounded is in a critical condition The shooting occurred at the home in Bridges in New Jersey Just before midnight on Saturday More than 100 people were attending the birthday party, which was a 1990s themed event Hundreds of people, our neighbors who were just getting together because it was the first really warm nice night and There were a lot of parties and get-togethers throughout the community and this was probably the biggest This isn't the first time like we've had a lot of violence in our community a lot of Fighting 15 year olds 80 year olds were having a good time. It was a 90 things party It wasn't a shooting gallery It wasn't a hunn next position. It was a party and a few bad apples inside of it turned into something else


Can you share the notes if possible? You should see them now. Do you see the notes? No, we see your file explorer. Oh, I shared the wrong window. That didn't help anything. OK, stop share. Share screen. Is that better? Yep, definitely. And if you even want, yeah, that's good. So welcome for this new Jenkins Infrastructure meeting. So the first thing to mention before we start, tomorrow we will have a stable release. So please do not modify the release at CI environments until the stable release is over. That's the first thing. The second one, so the first thing that I want to mention here, I had a look to the cost of the Azure account. And we are above the limits for two months now. So two months ago, we were close to $12,000. And this time, we are close to $11,000. So we are decreasing again. But we have to identify ways to go back below $10,000. One thing that I noticed is the network cost increased from since November to now increased from $200 to $1,600. So it's a major increase. It's probably because we've redirected a lot of traffic for the Mirrors on the communities cluster, which is something that we fixed last week. So it's still too early to identify a trend. But we still need to identify other services where we could reduce the cost. Anyway, so this is something that we have to work on. But yeah, the Linux Foundation did not complain. And overall, I think if we just look at the cost over the past year, we are still below our limits. But yeah, it shouldn't be. We should pay attention to that. Any questions? So the terms of the. Go ahead, Gareth. All right. I was just going to, in terms of the bandwidth cost, is that what's the split compared to sort of egress and egress on that? So we don't have. I don't easily have that information because the view that I was looking at is on the Azure accounts, so not inside the communities cluster. So we can definitely have some. We can definitely identify trends inside the cluster by looking at the graph and a dashboard because there we have metrics for the different services. I mean, we have a lot of metrics inside. Yeah, we should be able to tell from. There's your dashboards to a network level, whether it the cost is coming from. Yeah, bandwidth going in or out. So normally splits. It normally splits the metric into two things. OK, OK, I didn't see. I didn't find that information. So maybe I should just spend more time there. Thanks for the suggestion. So and Gareth, the reason to ask is it inbound or outbound is is that there are different techniques we use then to to reduce those costs inbound versus outbound? Or so, yeah, I'm wondering whether it's because if we're doing things like increase number of Docker belts, are we pulling more images from external sources inside? And are we paying for that? So is there some caching or relocation of stuff? Or is it down to some configuration in the cluster somewhere, which means that things I've been downloaded from it more frequently? Not sure what that would be, but it could point to somewhere in some some other misconfiguration that we've had in the past. So basically, this could give us some insight about which service we have to look at. So if it's a mirror, if it's a CI environment, if it's whatever it is. So yeah. Do it step by step. First step is separating ingress egress. Then see how you can have it on the graph now. Then next step could be per name space. Or per code, or per service, the Azure. But do it by tiny iterations just to be sure we don't start something that we don't finish until weeks. Definitely. But yeah, the most important thing is for now the Azure account is paid. The next foundation did not complain. And so yeah, we still have to improve the current situation. Anyway. So the next topic. So I propose that we discuss it immediately. Danielle, let's talk about having a new wiki in the Jenkins Infra project. Do you want to elaborate a little bit? OK. Danielle is not available. So I propose that we continue. Sorry, I was stepping away for a moment because I didn't expect the topic to already be mine. So yeah. I just wanted to bring up a suggestion. We used to use the wiki for a lot of meeting nodes and other collaborative document editing stuff in the past when it worked. And then we had trouble operating the wiki and problems with spammers and all of that and abandoned that. And since then, we started using Google Docs or, as you're sharing right now, HackMD or even GitHub gists or GitHub wikis or weirdly some stuff in normal GitHub repost that would probably, at least from my point of view, be better off in a wiki for collaborative editing. And so I wanted to bring up the suggestion to have a new wiki that is explicitly not for housing technical documentation, which should be on the site or in plug-in repos and such. But where we would put notes for the info meeting and notes for the governance meeting and that sort of content. And before I emailed a dev list suggesting, hey, this is what we should do, I wanted to bring it up to this group, whether this is something we can even support. OK, so to be honest, then it would mean that we would have to deploy a new wiki service. And in the past, we had issues to find people who weren't trusted to maintain that service. And we just end up having a snowflakes. So that's why we started using managed service like Google Docs. I'm not a big fan of Google Docs, to be honest, because you need to have a Google account to use it, which, I mean, not everybody has one. To me, the ICAND seems a good compromise, because then once the meeting is over, you publish notes on the kit repository and then the collaboration can happen there. I put a link to a pull request that I opened on the Jenkins Infra documentation kit repository, where we explain the difference between synchronous and asynchronous communication. I'm just sharing ideas. I'm not totally against having a wiki, especially if we have a smaller group of people. Yeah, I could look at if we can find something easy to put in place and easy to maintain. So pardon my ignorance here. Is there a wiki solution where we can collaborate in real time? Accepted confluence, I don't know. I don't think so. I mean, I have maybe then. Just confluence something we could get from the Linux Foundation, like they do Tira. So this is definitely an option as well. Linux Foundation could provide a managed confluence. And it will be even, and it will be so. And there we have two options. Either we transfer the current confluence data to that location, like we did for Tira, or we just start from scratch. If the plan is to use confluence again, we'll just look with them if we can just move the data from the current wiki to that new. So yeah, I don't know if the other have any opinion about using confluence again for the meeting notes. So, Daniel, could you elaborate a little further on the challenges? So is your worry that we would be better, are you thinking we would be better served by having things centralized, sort of organized for these, for notes and things like it, even accepting that we're going to limit the number of people we allow to have right permission to these things? If I can just answer your question before Daniel, my understanding and my frustration is that we know, since a while, we rely a lot on Google documents and that's really difficult to find all the information because each time we have a contributor submit, we have meeting notes, we have whatever, we rely on Google Doc and yeah, that's just awful. I mean, I'm not a big fan of Google Doc and that's why I started using Acme because then I can push the notes in GitHub. But I totally understand that Acme is not convenient for everybody. So I'm not totally against having a wiki in place again. I'm just more concerned about maintaining it. So if the links foundation is open to maintain it, I don't have strong objection. So yeah, it's similar for me. So for one thing, it's the practical problems of having a sprawling mess of individual documents that are created and abandoned. Like I've seen at companies that do something similar, we're searching and finding tends to be a mess and you don't never update anything that was created in the past and you just create a new document and you wonder a year later which is the one with the truth. And obviously wikis can also become a mess but it seems that we've handled that fairly okay in the past. And then there is also a principle behind it that I don't think as the Jenkins project, we should rely heavily on third parties, free services that we just happen to use without some kind of sponsorship because those services can go away or they can change in a manner that is not great for us. And then we have trouble even getting our data out of them again. I don't feel strongly about technology that we should be using but if I understood Olivier correctly, Confluence is basically the one that allows collaborative editing, especially real-time editing and that would be very useful to have. Obviously Confluence has a few anti-patterns like page comments which I've never seen as useful anywhere. And whenever I looked at its API in the past, I couldn't figure out how to automatically manage groups to derive permissions from, which is something I always wanted to do but the API didn't allow it because we know we have a complete list of plugin maintainer user accounts. For example, if we were to back it with LDAP and then we just do a second list with people who aren't plugin maintainers but still involved in the community and suddenly we won't have spam if we limit editing to these folks. So I think if we can get something like that done which I would be happy to look into, that would be good. So yeah, just some random thoughts. I think we should have a wiki for our collaborative editing needs and it should be something that we quote unquote own in the sense that we could have some amount of control over the data in it rather than some other hosted services. I mean, do you have any opinion Damian or Garrett on this? I think that's a discussion that should happen on the main list to have more feedback. On my side, I despise confluence for me. I waste my time and this will be for me or something slowing me down to take notes. Quite honestly, I can't. I've lost so much time trying to just save or trying to understand how to use it basically. So maybe it's just that I'm dumb. Last year we used a self-hosted instance of Etherpad which has the advantage of filling the boxes that you just listed. We master our own data. It's stored on a file system. So we just have to back up with a target. It's quite easy service. It provides real time. The only thing is what I like on ICMD and that could be something to search or so as a box is the ability to support markdown or ask a doctor's syntaxes since we use both syntaxes or on all the technical docs. So the ability to export to these syntaxes and reuse them, it could be great as well. But this is nice to have and it must have. Yeah, I see how nice it is in the second line of this document where it switched to, I think, glatech formula mode. But yeah, Etherpad was a nice one, I'm adding it. You can also teach yourself so that that could be an intermediate. So yeah, it sounds like the next step is to send an email on the mailing list, collect IDs, and yeah, this is something that I can do tomorrow. Or maybe, Daniel, if you want to send that email. I think you're better versed in terms of the actual hosting options we have. But I just fine with me. Okay, so I can work on it. So while we are talking about, yep, sorry, Mark, you have this. Sorry, I forgot. We've got a single account that we're using and there's a webinar starting in five minutes on this account. We have to hard stop. Okay, sorry. I am happy to reconvene us on MyZoom account if everybody would be willing to just let me send you a message with MyZoom account so we can continue. No, I just propose to consult because we only have seven minutes left. So I just, so I propose that if we have a specific topic that we want to talk, we talk in the RSE, otherwise we just keep the topic for next week. Any opinion on that? Okay. Daniel, is it fine for you? Nope. Then let's stop here and yeah. Thanks very much. Sorry, I should have realized that, should have thought about that and did not. Thanks everybody. That's okay. See you later. Bye-bye.


In the last lecture, I have started discussing what are the PDA that we have introduced that is equivalent to CFG in the sense that all the context free grammars for every context free grammar, you know you will have a PDA accepting that particular context free language and any language which is accepted by a PDA that is a context free language. So, this gives you you know a better tool to understand context free languages in the line up of automata this is this push down automata. So, in the last lecture itself I have started discussing PDA and CFGs are equivalent. In fact, we have done the construction one side that you give me a context free grammar how to construct a PDA. In fact, I have constructed a PDA with two states. So, as given here, you give you take a CFG and TPS you consider two states P and Q terminals whatever the set of terminals will be the input alphabet. And N union T the terminals and non terminals we are taking stack symbols and transitions we have defined the P is initial state and the second state will be the final states only two states. And then the rules we have declared the transitions we have declared like this without you know you start initially by putting in S into the stack change to the state Q that is of course, the final state for us. And then what are the string that you are generating by the grammar through certain rules corresponding to that you are actually giving transitions like this. So, we have done some sample this thing also that A power and B power and N is equal to 0 that we generate through these two rules S goes to A S B epsilon these two rules. Now, these are the transitions and I have shown a sample computation also in PDA and here you understand that we are first putting S into the stack and then we are generating what are the string that you generate through that and then match with the string given in the input that is what we are doing. But here we have a special feature that you know the derivation that you are applying if you are having some derivation in which say for example, you start like this and you have some derivation which is getting you know x 1 one non terminal sample say for example, A 1 some x 2 another non terminal A 2 and say for example, x 3 suppose after finally, many steps and then if you are applying in case if it is the situation like this in this say this say for example, another final. So, this A 2 if it is making some terminal string y 1 say x 3 now you are matching with this is the non terminal that you are getting in the stack on the top this is the A 1 and the rest of the strings, but you have generated some string y 1 in place of A 2 say if A 2 is there. So, but we are not accessing this unless you access this A 2 you cannot apply that rule and then generate the string respective string and then you match with the input suppose if this is the symbol that you know for which this is applied. So, what is the requirement you understand that if you have a derivation if you have a derivation and in the stack if you are generating the string which you want to match with that you have to first replace you know for a first non terminal symbol in the string. That means, such a derivation we have already talked about such a derivation is called left most derivation left most derivations. So, you know that for every derivation there is an equivalent left most derivation. So, if you have such a derivation in hand then what you can do you can generate the string in the stack and match with that because you are having you are applying left you have having left most derivation. So, then the what is the rule that you are applying on the left most non terminal symbol you apply and generate the terminal string and match with the input. So, this is the idea. So, what do we do first we recall this statement if you take a contested grammar g and t p s and correspond to every derivation say for example, s generates x infinitely many step for some x and t star. We know that there is an equivalent left most derivation I take this into count to you know prove that what are the construction we did in fact that works. So, for that purpose what I will do I will just let me state these things if s produces the string x alpha through left most derivation infinitely many steps for x and sigma star and alpha you know is a string for which the first symbol is a non terminal symbol n v star when I am writing union epsilon if alpha is there you know the first non terminal symbol. So, this is a left most derivation x is a terminal string. So, till this point suppose if you have generated then what I am saying say from this configuration on the top of the stack if you have s if in the not in the stack if you have s and you can consume this x in the input from the in the state q to reach to the configuration in which the stack content is alpha. So, corresponding to each such you know derivation you can have this kind of computation in the in the constructed push down automaton and conversely if you take any configuration of this sort q x s and infinitely many steps you can you know finish x and left if you are left with some stack alpha for some x in sigma star and alpha in v star then we can certainly have you know a derivation in the given c f g of the form s gives x alpha infinitely many steps as a left most derivation you can have. By observing these two claims you know we can quickly conclude from these two claims you can we can conclude that whatever the push down automaton that we have constructed indeed that works. Now, how to prove this claim one and claim two in claim one we are starting with a derivation and we wanted to observe this computation. Now, what is the idea proof idea here is we can apply induction on the number of steps in the derivation to get this computation you can see the basis and inductive hypothesis and you can action the induction. And similarly in the for conversely if you take the computation in this in the given in the constructed grammar which is of this form you can apply induction on the number of steps in the computation and you get and you can prove that this derivation in the grammar is possible. So, this as I mentioned we will apply induction and do that I will be working for other other other converse part of the construction when equivalence between p d a and c f g. So, these two I will leave it as exercise it is not a big deal because I will be doing this in this lecture itself for other part. So, you can imitate and this is a very simple thing that I hope you can you will be able to do and to conclude that the what are the push down automaton we have constructed indeed is equivalent to the given c f g. Now, I will look for the converse part that means you give me a push down automaton you can construct a corresponding contested grammar. So, I start this with the same concept called simple p d a because this is one correspond to every p d a an equivalent simple p d a we can have first let me tell you what is let me introduce what is p d a. A p d a q sigma gamma delta q naught a f is said to be simple if you take any transition p x alpha q beta here you will have you know the stack string the stack string that you are popping of length should be less than equal to 1 that means either empty string or a single symbol that you will pop at one time and the second condition is if you have epsilon here you know then for all a in gamma for all stack symbols I should have this kind of transition also. Now, I give this remark for every p d a there exist an equivalent simple p d a now the question is how do you get it what are the two conditions the transitions they have to satisfy any time if you want to pop any symbol from the stack either it should be epsilon or you know it should be of length 1 or if you are having a transition with epsilon here then there should there should there should be a transition for each symbol a in gamma with this kind of thing. Now, the second one can be achieved very easily whenever you have such a transition you take each symbol a from gamma and then write a production rule of this sort corresponding to each element of gamma through which you know you will achieve this and we are not going to lose anything we are not going to you know change the language the reason is because this transition whatever that is changing when I introduce this is such a transition what it says whenever you are accessing a on the top of the stack you are temporarily removing and immediately you are putting a in the stack and what are the beta. So, this particular by introducing this kind of transitions the number of transitions with respect to the size of the stack we are not going to gain or lose anything with on the language. So, language remains same from the given p d a to this now corresponding to this I will just give me a simple technique that say for example, if you have something of this sort say p x a 1 a 2 a 3 say for example, you have 3 symbols and the transition say for example, of this form say q beta suppose this is your transition then what I would suggest you you just simply remove this transition and place this transitions of this form with some new states you choose some new states which you have not used which you do not have earlier say for example, p 1 and then epsilon. So, this is one transition I put what I am trying to do here is instead of removing 3 symbols at once I will remove one after another that is what I do. So, now I am in p 1 in p 1 without taking the input I simply remove now the second symbol a 2 and change to another state p 2 and then since I am in p 2 now what I will do this x need to be consumed in the input. So, now I just consume the at the end so a 3 I will pop and then connect to this state whatever you require that is q here. So, you change to the state q. So, what I will do corresponding to this particular transition I remove this transition from the set and I introduce these 3 transitions in low of this. That means, what are the purpose of this particular transition it is exactly doing this because this p 1 p 2 what I have chosen they are new states here. Say for example, if you have n number of symbols here choose n minus 1 states you remove one after the symbols and the new states corresponding to each transition you know you choose and remove one symbol after another from the stack and by the time you know remove the last symbol you consume what are the input that you have to consume through in this particular transition given and then change to the required state here for example, q here. So, change to the required state and put whatever that you have to put it in the stack. So, through this you can understand that these 2 rules you know these 2 conditions can be you know you know achieved we can achieve these 2 conditions and to make the given p d a to a simple p d a. So, thus every p d a can be converted to an equivalent simple p d a.   Now, I construct a c f g n t here t the input alphabet sigma p s as described below now I consider non terminals of this form 1 non terminal s for the start symbol I consider here and then the non terminals I will consider of this form for that let me first tell you some philosophy about this non terminal symbols in a p d a what we are doing we are having this kind of situation. So, you are consulting the stack whatever and you are reading the input in the given state now what do what is the construction non terminal symbol construction we consider things of this form p a q this kind of non terminals we have consider for a it is a stack symbol or it may be epsilon what is the philosophy with the non terminal symbol that we consider here is when you are in the state p when the top of the stack is a say for example, when you have a here now your for example, reading and writing it is this here for example, at the particular position. So, here after you will be reading some input here in the tape say some x you are reading. So, when you are reading this input the possibility in this push down automaton is when a is on the top of the stack you may have you may add some more symbols on the stack certain symbols and you will remove because you know accepting a string input string what you have to do you have to ultimately make the stack empty we know that. So, between you know the situation say your current state is p when you have a on the top of the stack from here you might be adding some more symbols on the stack here and then finally, anyway you have to remove a to make the stack empty. So, by that before by the time you a remove a from the stack that means, we are not we are not touching in between because what you may have some additions on the top on the top of this and by the time you remove a from the stack if you reach to the state q from here to here. So, it is not two things. So, this you may come to for example, state q whatever the portion of the input that you may be able to read that set will be denoted by this non-terminal symbol. So, this non-terminal symbol denotes set of all those strings in the input such that the current state is p the current state is p what I am explaining is this the current state is p and when you have a on the a is on the top of the stack by the time you remove a if you reach to the state q whatever the amount of input that you read whatever the input that you read at a given instance. So, all those strings will be represented or assumed to be derived through this kind of non-terminal symbol that is the philosophy we use and for example, if a is epsilon that means, say I do not have you may have something in the stack let me a is epsilon that means, whatever that you have say for example, this portion say alpha on the top of this you might be adding some more things in the stack. That means, without consulting the stack whatever the amount of input that you read between the states p and q without consulting this stack that means, the stack information whatever is lying that will be there I am not saying here stack is empty if you have a is equal to epsilon here stack you may have something, but without consulting the stack I mean without touching whatever the stack information already existing you may add some more things in this between states p and q and you may remove them and you come to this same point that means, whatever is existing that I am not going to change. So, within this between these two times whatever the input that you read that is represented here through this non-terminal symbol I hope you understand this philosophy. Now, this philosophy is taken to consider this non-terminal symbols. So, S start symbol for start symbol for the contrast to grammar and then between given any two states p and q I consider non-terminal symbols of this form p a q where a is a stack symbol or epsilon and then we include the following types of rules. First rule you can quickly understand because from the start symbol I if I connect to this what is the idea from the initial state because what are the strings you have to generate in this grammar from the initial state to some final state. You know the stack to start with it will be epsilon you do not have anything now from there you come back to the same status. So, that means here you require epsilon. So, explaining this rule is much easier that is not a big deal I hope you understand. So, S should be connected to this kind of non-terminal symbols for each you know this kind of non-terminal symbols you will get one rule one for each final state of the given p d a and then I have you know type b rule I will explain you this and then type c rule and then the type d rule again will be easy to explain. For each state if I have this p epsilon sorry say q epsilon q type of non-terminal symbol you know I can nullify that because from the state to the state q you know without changing the stack what kind of symbols whatever that you are reading that is represented by this you know anyway and in addition to that you know I can say that epsilon can be derived through that. So, this rule is easy to understand now let me come to the type b and type c rules in general you know if I explain type b with n is equal to 0 you are essentially having type c rule. If you take a transition of this form p x a which is in the state p by consuming the input a and as a stack symbol a. So, a can be a stack symbol or epsilon right so because it is simple p d a now if you have done this that means you are changing to the state q and you are putting x 1 x 2 x n inside the stack. Then what we are suggesting here is from p you are changing to the state q that means eventually I will leave you in the state q. So, the corresponding non-terminal may be you know the production rule may be this p a r that means you are consulting the stack with a and now a is removed x 1 x 2 x n is inserted. So, that means corresponding to x 1 x 2 x n this non-terminal symbols this stack symbols you know are representing some information of the input right when we are putting x 1 x 2 x n these are representing some information of the input when you are removing them systematically what are the string that you wanted to accept that needs to be generated in the grammar that we are going to construct. So, that means whatever the input that you have consumed that is generated here that is clearly mentioned whatever the input that you have consumed in p d a that need to be generated. So, that is what is this and then corresponding to this x 1 x 2 x n now for all the possible states q 1 q 2 and so on r q n minus 1 and r all possible states because I am choosing this all possible states I give such a rule this q x 1 q 1 q 1 x 2 q 2 and so on q n minus 1 x n r and this r q i's are arbitrary. So, now the connection between this from the state p to q now I will give you a sample construction then you will understand this better you know this p d a. So, for 0 power n 1 power n greater than equal to 0 you can consider the p d a as follows you take the state p read 0 you know and insert 0 in the stack and non deterministically I am changing after some point of time I will change to q and then when I have a match I will remove you know when the input is 0 power n 1 power n whenever there is a match you will be in final state by consuming all the entire input and making the stack empty through this rules that you can quickly understand and see that this particular p d a accept 0 power n 1 power n. Now, here notice that I have considered two states and sigma 0 1 of course in gamma I am using only 0 I am putting only 0 in the stack. However, I have considered 1 also just for the sake of you know showing this particular construction anyway final state is 1 is like this.  So, first converting simple p d a you know that what are the things that I have to introduce because here is epsilon in the first rule. Now, for all the possible non terminal stack symbols I have to have this thing and here type 1 sort of that first condition of p simple p d a because it is anyway satisfied because in this third position all are the lengths are less than equal to 1. So, condition 1 is of simple p d a is anyway satisfied condition 2 that I have to consider. So, then what do I do I have to introduce the rules like this because the example considered here is p 0 epsilon here is 1 and p epsilon goes to q epsilon these two rules that I have. So, p 0 epsilon now p 0 0 that is p 0 0 that is what because now by taking the possibility of 0 of the stack symbol and now similarly here by taking the possibility of 1 as a stack symbol. I hope you understand here although this is not very much used in the stack since I have considered stack symbol 0 1 I am putting this. So, that you see that when I am constructing all and since in the p d a this has no role this has no role in the you know the constructed c f g also, but just for the sake of example I have considered that and I am showing this rule also. Now, corresponding to p epsilon epsilon where we are changing it to q epsilon we are changing the state changing to final state. Now, by choosing 0 non terminal stack symbol and similarly the possibility of choosing 1 as a stack symbol. So, this productions that I have to add in addition to the given 3 there are 4 rules. Now, you can quickly see that this is a simple p d a because now the conditions both the conditions of simple p d a satisfied. Now, using the simple p d a we construct c f g from a. So, how do I construct the first rule is saying that I have to give a production rule of this form s goes to p epsilon q this I have to give such a rule for 1 for each final state here of course, only one final states therefore, we have only one rule here. And type b remember corresponding to each transition of this form I have to give 1 because here the transition means for n greater than equal to for n greater than 0 I am giving whatever that you are putting inside x 1 x 2 x n. If something non non empty that we are putting I am using this if you are putting empty then these things are not there simply x is produced q epsilon r. So, this is the distinction as that it is type b rule or type c types of rule fine. Now, let us look at that. So, in type b type of rule by taking first rule and this kind of transitions we need to introduce r equal to p when you choose the possibility p here because you look at in the rules I have mentioned for all the possibilities of the states I have to write this kind of rule. Now, by taking the possibility p I write this rule and then by taking the possibility q for r I take the I write this rule. Now, then you know by taking r is equal to p and the possibility is 0 p 0 by considering this because this is for rule 4 you look at rule 4 how it is because there are 2 0s. So, in between I consider p that means in between this I mean because I have mentioned it like this for the possibility of rule 4 you have 0 0 there. So, what I am doing by considering p here that is one possibility r is p and then again for 4 you have in between you can consider q this is one possibility and r is p. Now, you can consider r may be q and in between 0 0 you can you can consider p I mean this the possibility of the state and then r can be q in between you can consider q. So, this is for rule 4 the corresponding and for rule 5 similarly this and for rule 5 by considering q in between we look at in general for r you have the possibility of p for r you have the possibility of q there are the 2 possessor 2 states possibility. When I have considering a string whose length is greater than greater than 1 I can actually here there are actually 2 symbols sort of. So, in between what do you want to consider because this we will introduce for every state for every possibility of the state. So, for rule 5 like this and one more you get now for rule 6 this rule they are all coming under type b. This rule by choosing r the possibility p and q for rule 7 again by choosing the possibility of p and q these 2 rules 22 rules. And then type c you see now by choosing r to be p you have got this and by choosing r to be q corresponding to rule 2 we have this 23 and 24 rules. And then for rule 3 corresponding to 3 that is of type c that is coming under type c you know type c means this because when you are inserting epsilon in the you know you are just popping something and that is just a pop rule if it is of this form. So, essentially rule 2 and rule 3 the transitions 2 and 3 are of this form. So, we are introducing these 2 production rules these 4 production rules now type c and in type d you see there are 2 states. So, how to nullify this particular non-terminal symbol that p epsilon p goes to epsilon q epsilon q goes to epsilon. So, these are the 2 rules type d that we introduce I hope you understand this construction. So, what did we do we have considered a p d a for 0 power and 1 power and there are only 3 rules, but first by introducing another 4 there are only 4 3 transitions by introducing another 4 transitions we made that simple. And using the simple p d a what are the 4 types of rules that we have mentioned we have constructed you know a context with grammar now let me just give you a small derivation in this context in this context with grammar corresponding to a computation for 0 0 1 1 in the given p d a. You can see that this is how we are actually accepting 0 0 1 1 in the given p d a you start from the initial state 0 0 1 1 with the stack empty you know you are reading those 2 0s in the state p. And then non-termistically you are changing to the state q then when you have 1 and you have 0 on the top of the stack you just match them like that this we know and you are in the final state. So, this is how the computation is considered now corresponding to this let us observe the derivation in the g I am just marking this rules in the production rules in the constructed c f g. So, from as we will consider this you know because this is the only possibility that we have and then you see I am reading 0 in the input and we I am putting 0 in the stack that is what we did in the first step of the computation the same thing here is shown. So, the targeted stage the final state is q that is anyway there, but what is the current state now I am continuing the state p. So, that is the state p here it is shown that 0 is in the stack and I have consumed 0 in the input that means I have derived now in this derivation 0 that is what is this marked. Now, when I have consumed 2 0s in the input here I derive 2 0s and then in the stack you have 2 0s those 2 0s are shown up. So, the respective production rules that I am marking here rule production 10 here production 14 as I have constructed and now I can use 20 to make this as p 0 q I can make it as q 0 q and now I can rule 26 use you produce 1 then q epsilon q then q epsilon q can be nullified and then this 0 0 1. So, the left over thing is q 0 q and then 0 0 1 1 q epsilon q rule 26 I use and then finally, you know this q epsilon q again I use 28 rule production rule 28 to show that 0 0 1 1 is generated in this now. So, this is just a sample construction and this philosophy I hope you know through this particular example what are the corresponding to the computation what are the derivation I have shown I hope you understand what is the philosophy behind in you know introducing such a non terminal symbol and then once you understand that then the proof part of proof part will be easy. So, just I display this derivation because the non terminals the importance of the non to the way that it is you know introduced you understand. Now, what I prove the construction is valid to show the construction is valid that means the what are the grammar constructed indeed generates the language actually the given p d a what I do I prove this statement you take any 2 states p q and a symbol or epsilon and any string terminal string that means input string I can call here sigma star we claim that this non terminal symbol p a q in finitely many steps if it can derive x this non terminal x of course, the grammar then this kind of configuration that means this is a stack information of course, there is nothing else right this is a configuration p x a from this configuration I will be able to get the configuration q epsilon epsilon and conversely this is what I am going to prove by proving this you know that the constructed grammar indeed generates the language actually given p d a how if you know the first one you will connect to this the first one you will connect to the first one you will connect to this because in the one rule that you produce p epsilon q to this you will connect and thereafter in finitely many steps suppose if you have produced x you see in this then the corresponding to the computation you know you have this computation and conversely. So, what what happens here so this production you have considered now in the computation suppose if you have the computation which produce which says that I will reach to this final state q. So, from the configuration x epsilon if I can get in finitely many steps q epsilon epsilon then what is the meaning of that through this you know we are getting this x as this and conversely because this if and only if what I am going to prove if p a q derives x in finitely many steps if and only if p x a in finitely many steps you are getting this kind of configuration. So, by getting this kind of configuration so correspond to this computation this you have p epsilon q produces x in finitely many steps. So, if I have corresponding 1 to 1 correspondence between these two type of things correspond to this derivation if I have this computation and vice versa you understand this x can be generated in the grammar and whenever you generate from here x some terminal string you know there is a computation in this. So, that you can understand that the language generated by the constructed grammar is same as language actually the given p d a. So, we get this how do we do this this I will. So, let me just say that x belongs to L of g if and only if x is in L of a which is equivalent to this statement. Now, the only if part that means p a q produces x in finitely many steps then we have to prove this thing we prove this this computation by induction on the length of the derivation. If the derivation p a q has only 1 step because see here I can start with because this is a reflexive transitive closure one can ask that what about you know for the basis considering 0 steps you know this is a non terminal symbol this is a terminal string you know here non terminal symbol cannot be you know a terminal symbol here this type of a special type of symbols that we have constructed and therefore here I cannot assume 0 number of steps. So, let me assume you are getting this in one step that is how the basis I have started with then automatically you understand this arrow x this non terminal symbol arrow x has to be a production rule if it is in one step. So, then it is a production rule of type d if it is a production rule of type d you can understand a equal to x equal to epsilon and p equal to q. So, that you have p x a is equal to q epsilon epsilon. So, this configuration and this configuration they are equal and hence you are producing this configuration in 0 number of steps and finitely many steps and if you this is the basis. So, basis is very clear from this now inductive hypothesis if you take a derivation of this form p a q produces x in you know if you are getting that in k or fewer steps then this configuration gives this configuration in finitely many steps. So, if the derivation is of length k or less than that then you are getting this in some finitely many steps that is what is inductive hypothesis. Now, you take a derivation of k plus 1 steps p a q gives x in k plus 1 steps then let me rewrite this derivation of this form p a q produces alpha in the first step and after that this alpha produces x in finitely many steps let me assume like that. Now, what is the possibility for this alpha now then the rule p a q alpha is either of type b or type c you know it cannot be type a type a is of the form s goes to something of this kind of non-terminal symbol. So, it is not of type a or it is not of type it is not of type you know d because we have here k plus 1 steps. So, it is not of that we have considered. So, this is either type b or type c form now if it is of type b let me consider this case then alpha then for n greater than equal to 1 we write alpha is equal to y p naught x 1 p 1 and so on something of this form. So, that you know you have this transition rule in the given p d a I have this kind of production rule means there should be corresponding to this transition.  Now, I will break them into this y 1 y 2 y n of course, y is already shown corresponding to each non-terminal symbol that it is deriving in the given derivation such that this particular non-terminal symbol here is producing y i the component y i in the terminal string that y i can be epsilon also that is a different I mean that can be the situation. So, thus for each i this derivations because the total derivation is of k r fewer steps whatever we have considered here and thus whatever that we are producing this string since it has k r fewer step I mean it is in k steps. So, this each such derivation is of k r fewer steps very clearly and therefore, by inductive hypothesis you know you get from this configuration to this configuration in the p d a this is the inductive hypothesis.  So, that y you have consumed that means you have right and you have x 1 x 2 x n in the stack and then when x 1 is removed you have consumed y 1 in the input and so on when p n you have this. So, if it is so what do you what did I get then p x a infinitely many steps I have q epsilon epsilon if this is rule of type c then it is very quick then it is of the form y r epsilon q and this can be the transition corresponding to that and where now x can be written as this y z for some that in sigma star. So, that you have this computation you will get this computation in the p d a. So, if you have the derivation what did I get. So, by assuming what is called by inductive band active hypothesis on the length of the derivation we have observed that you get that particular computation in the p d a. Now, conversely that if part if I assume this computation I have to show the derivation. So, we prove this derivation by induction on the length of the computation. So, what are the computation under consideration if this computation has 0 number of steps here I am saying say for the basis I am saying 0 number of steps because the possibility is there then why it is 0 number of steps means these two configurations are same that means p equal to q x equal to epsilon a equal to x a is also epsilon. So, in which case you see this derivation holds trivially as p epsilon p goes to epsilon this is a type p type d production rule you see the production rule we have this kind of rule. And therefore, it is possible in the constructed grammar and hence we have the basis. Now, for inductive hypothesis if a computation is having k r fewer steps then assume this derivation is possible that means this p a q produces x in finitely many steps. So, for inductive step you know use just assume k plus 1 steps computation p d a and now for n greater than or equal to 0 I can write like this because this say for example, in the first step of the computation you are having this kind of thing that means from the stack a you have removed a and x 1 x 2 x n you would have introduced or the possibility is this x n can be a and you have consumed some input and you have z left over in the input. And after k number of steps you have the final configuration sort of this q epsilon epsilon. So, this is a possibility. So, then there is y in sigma such that x is equal to y z that means that y. So, p y a is a transition you know r epsilon x 1 x 2 x n is the thing this implies that you have either this kind of transition or you know for n greater than or equal to 1 this a is equal to x n p y epsilon is r x 1 x 2 x n minus 1 this kind of transition because this a may be there you are not removing that, but you would have added x 1 x 2 x n minus 1, but since what are the p d a that we have considered it is simple you know it is sufficient like the latter case implies the former one and in any case we have this kind of production rule. Now, you see the situation is correspond to this computation. So, p x a that is p y z a that is how we are writing now y is consumed that what I have this r z x 1 x 2 x n this is what is there in k number of steps you are getting this q epsilon epsilon, but in between you have to remove x 1 x 2 and so on x n this stack symbols need to be removed. So, whenever you are remove x 1 whatever this whatever the string that you are consuming from the input I call it as you know z 1 and similarly for x 2 z 2 and so on by the time you remove x x n I assume that z n is consumed in the input. So, I appropriately mention that under respective states intermediate states p 1 p 2 and so on. So, the computation is presented like this. So, r z x 1 x 2 x n by the time I finish remove x 1 from the stack then I have consumed z 1 the remaining is z 2 and so on z n. So, similarly all this and so on by the time you finish x n you have that q epsilon epsilon is a configuration this is the computation that we have considered. Now, you see this total computation here we shown up is care fewer steps and therefore, by inductive hypothesis notice that each computation has care fewer steps. Now, by inductive hypothesis you have this p i x i plus 1 p i plus 1 gives z i plus 1 you know in finitely many steps that is inductive hypothesis and then since p y a is you know this is the transition you have to combine all this corresponding to that then you have this kind of production rule this is a type b.  So, then this p 1 x 2 p 2 from which you can produce z 2 and so on this p n minus 1 x and p n you can produce z n. So, you have produced x. So, thus you have a derivation for x. So, this is one case and if n is 0 because you look at here if for under the equal to 1 then I have shown this. So, corresponding to this I have this particular type b type b production rule and then I have this derivation in the grammar. If n is 0 then simply you have the situation k steps you are getting this. Now, by inductive hypothesis this r epsilon q produces z in finitely many steps and since this p a q produces y r epsilon q is a rule this is of type c then you have this kind of derivation and thus you know we have the proof. So, now you understand like you know whatever the contested grammar I have constructed I have shown this particular statement that whenever I have some computation there corresponding to I have a derivation. So, for which what I did I have applied induction on the number of steps in the computation and derived it and conversely if you consider a derivation in the grammar we have shown that the computation the corresponding to the derivation there is a computation also in this. So, that you know we have observed that the language generated by the grammar constructed is essentially same as the language accepted by the given p d a. So, we have shown the equivalence like this. So, this I hope you know gives an idea how to prove based on the number of steps by induction on the number of steps of the derivation or the computation for the previous one also whatever I left is an exercise. I hope you can complete that exercise. So, that you observe that p d a that push down automata and contested grammars they are equivalent. So, with this I conclude this lecture.


What's going on everyone? Sam here with Leighton Sports Guard, Drippin' 23, Peony Origins, football hobby, 16 bucks, full case break, number 5, rendered vision style, look again at your random results, as always you can find those on the website under the results tab, as well as the link in chat. So good luck everybody, let's do it! Again, 3 to go on Prism Draft Choice. Sell that out last break of the night, 85 a spot, let's do it. It really is probably gonna be Nick's versus Pennex for the Heisman. Who else is in there?  Yeah, not anymore though. Not with 3 losses. CD Lamb to 149 and CJ Stroud to 75, nice one there, congrats AFC South, good start. ETN and Aiden O'Connell rookie. Got Tank Dell rookie jersey to 199 for the Texans, AFC South. AFC South again is gonna be Tank Bigsby to 75 with the Orange Inc, love that, that is sick. Congrats on that. Yeah, true, true. Jackson Smith and Jigba, rookie jumbo jersey auto NFC West. Nice one there, congrats Jake K, NFC West. Bryce Young to 149 and George Kindle to 125. Got DK and Will Anderson rookie. AFC West, Michael Meyer to 49, AFC West, nice one there. We've got Tyjay Spears rookie auto, going to the AFC South. And another redemption, this time Tank Dell rookie jumbo patch autograph Turquoise, AFC South. AFC South, capping to the left to have redemption. Confirmed this one does not. George Kindle to 125 and 149, Mike Will, Hertz and Aiden O'Connell rookie again. Rookie patches AFC North, Cedric Tillman to 75, nice one there. Clayton Tune, NFC West to 49. Congrats, NFC West. And then NFC North, Jaden Reed to 75, nice one there, NFC North. Two color rookie patch auto. Again, three to go, prism draft choice everybody, three to go. Last break, three to go, three to go, three to go, three to go. Juju to 99 and Chris Carter to 75. Robinson, Luke Musgrave rookie. Rookie patches, Roshan Johnson to 99. Congrats on that one there, NFC North. AFC South, Will Anderson Jr., it's so weird that he's live in this. Had to issue a refund, Anthony, sorry. So yeah, still three to go. Michael Meyer, rookie jumbo jersey auto, AFC West. Nice one there, Michael Meyer. Mike Will to 50, AFC West. And Chad Johnson, AFC North to 99. Mike Will and Josh Downs. Nice one here for the NFC East. That is going to be Brian Dawkins to 99. That's sick man, congrats on that NFC East. Rise to the hall. We've got rookie auto on card, Jamiro Gibbs. There you go, NFC North, Jamiro Gibbs. And then AFC North, Cedric Tillman, rookie jersey auto for the Browns. AFC North.  Whatever's in here. This is hopefully going to be nuts. I want to see something super low numbered for the booklet this time. Fields to 75 and Ced to 125. Vani David and Ty J Spears rookie. Got Hendon Hooker, NFC North. Two-color patch to 75. Oh yeah, oh yeah Anthony. Proving Ground Auto is to 25. That is going to be a Jamal Williams, NFC South. It's not a while, two Proving Ground Autos. Because the next one is going to be AFC West of Hunter Renfro. That's going to be cool man. Steven V, I'm very jealous of this man. 11 of 49, Zay Flowers, rookie booklet patch auto. That's nasty, congrats buddy. He's on card, he's not on card in any of these except for the booklets. So congrats on that AFC North, good stuff Steven. Mr. Zay, Zay Tillman, back to 125. And Ritter to 149. This rookie is Anthony Richardson and Bijan Robinson. Two rookies in that pack, well very good. Yeah congrats Steven, like I said I'm a Ravens fan so that's very awesome. Will Levist to 99, AFC South. AFC South, Will Levist Future Fabrics. Dalton Kincaid, rookie on card auto for the bills. Grats on that, Buffalo. And Tyler Scott, NFC North. AFC East on the Kincaid by the way. NFC North is Tyler Scott. Keishaan Boutie to 75 and Dalton Kincaid to 99. Two numbered rookies there. Tay Adams and Jalen Hyatt rookie. That is going to be Tank Bigsby to 199, AFC South. AFC South. And still three to go on the next one everybody. NFC South is going to be Jonathan Mingo on the on card rookie auto. And then Jarron Hall, rookie jersey auto, NFC North. NFC North, Jarron Hall. I had to issue a refund Zach. The threets, oh my god dude. There we go, three to go on Prism Draft Choice. I sent a link. Yeah I had an email, Forest told me to check my email. And there was somebody that wanted a refund for a couple of spots. So I had to send the refund, not no big deal. Just three to go. I mean it's still going to go tonight obviously. Gotta get those last three spots sold out and we'll be good to go. That is John Metchie to 125 and Chad Johnson to 149. Davontae Adams and Will Levish rookie. Marvin Mims, hometown roots to 99. Very cool one there for the AFC West. AFC West. Got Zay Flowers to 75 on the RPA, AFC North. Again, very jealous Steven. Nice Zay. And then Kendra Miller. NFC South, two RPAs in this box. Kyle said he had one with three RPAs earlier today. That's in one of his cases. That was kind of wild. It's like alright, hey. What all means dude? Give me three RPAs, I'll do it. I'm down with that. I'm in. T-Law to 50 and Nick Chubb to 99. Miles Sanders, Darius Davis rookie. Got Tyjay Spears, AFC South to 99. Justin S, picking up a spot. Thank you buddy. Very nice. Shown Clifford to NFC North. Rookie Otto, nice one there. Two to go now on Prism Choice everybody. And Jalen Hyatt, rookie jumbo patch autograph read. NFC East, nice one there. NFC East on the Hyatt. That's on that NFC East. Because the cards are made earlier. Origins is known to have the double zeros sometimes. You'll see a lot of guys in double zeros in this one. Because they're like Photoshopped. They're for the rookie premiere. One of the other. I think it's for the rookie premiere. Yeah, because they don't have their official jerseys yet when they make this product. Yeah. This one's very early on in the production period. Two 125 Chris Godwin and to 99 Jerry Judy. Russell Wilson and JSN. Will Anderson Jr. Rookie Jersey for the AFC South. Another Will Anderson Jr. this time. Orange Rookie Otto to 75. And redemption is Jalen Hyatt again. Rookie jumbo Jersey Otto NFC East. Back to back NFC East. Very nice. Couple of Jalen Hyatt's. Caleb is running for his life, dude. Good Lord. He's on his way. Two to go now. We did not spell choice, right? Choeck. Choeck. Choeck. Eckler to 125 and Miles Sanders to 149. Jalen Waddle and Zach Charbonnet Rookie. Got Jameer Gibbs, NFC North to 199. Got Michael Wilson, NFC West. Rookie Otto. By the way, Cardinals. And AFC South Tank Bigsby. Rookie Jersey Otto. Still no case hit yet. Looking for an origin story, a pedigree, a primordial. It was like five case hits. That's insane. Blank Slate. It was like one other one too. That's new. Killa Trap to 99 and Tanner McKee to 149. Derek Henry and Will Anderson. It was a bot, dude. You can always be coming. A huge bot is Jaden. That guy's a bot. To 199 is Cedric Tillman, AFC North. Probably heard you say that. Yeah, yeah. AFC West is Michael Meyer. Glad him, dude. I swung their AFC West. And Sam LaPorta, Rookie Jersey Otto going to the NFC North. That's LaPorta. That's the fallen over here. Missing the trash. All right. Damian Pierce to 25. And George Pickens to 125. Eckler and Cedric Tillman. Next one here. NFC South Bryce Young. Hometown Roots to 99. Pasadena, California. I don't know who's a Cali guy. Very cool. NFC South again. His teammate is Jonathan Mingo to 99. And then Jake Hayner, RPA. NFC South again. NFC South Box right there. Nice one there. Kasek coming up. That is Aaron Rodgers to 125. And Austin Eckler. Got Luke Shoenmaker Rookie. That is a... Oh, nice. NFC West, that's in Bennett on the Primordial Kasek. Congrats, NFC West. Going to JK. Congrats, Jake. Nades for the couple of spots in archives. Thank you, buddy. Got DTR. AFC North to 75. Nice one there. AFC North. And again, AFC North is going to be Chase Brown, beyond Card Auto. And redemption is... Bijan Robinson. Rookie Jumbo Jersey Auto going to the NFC South. Congrats on that one. Thomas K. NFC South. Bijan. Venti basketball comes out next week.  Oh, that's gonna be awesome, dude. All right. Michael Thomas, NFC South to 50. And Derek Carr to 99. Juju and Jalen Carter, Rookie. NFC East. Nice one here. Potentially Bryce Young. Hometown roots to 75. Congrats again on that one there. NFC South. Got a Zach Charbonnet. On-card Rookie Auto. NFC West. And then NFC North. Sean Clifford to 49. Blue RPA. Congrats on that. All right. Quick recap here, everybody. Pretty solid break again. Stetson Bennett. Bryce Young. Jalen Hyatt. Or Cedric Tillman. Jamiro Gibbs. Will Anderson. Tyjay Spears. Marvin Mims. Brian Dawkins. Tank Dell. Roshan Johnson. Tank Bigsby. Will Leviss. That is Michael Meyer. Got Bryce Young. DTR. Cedric Tillman. Hedman Hooker. And Ze Flowers, RPA booklet. Autos. We had Bijan. Jalen Hyatt. Jalen Hyatt. Michael Meyer. Tank Dell. JSN. Those are all your redemptions. All of your live autographs. Chase Brown. Clayton Toon. Michael Meyer. Jonathan Mingo. Zach Charbonnet. Will Anderson. Michael Wilson. Sean Clifford. Will Anderson. Jamiro Gibbs. Jonathan Mingo. Dalton Kincaid. Tank Bigsby. Tyjay Spears. Jaren Hall. Sam LaPorta. Jake Hainer. Tank Bigsby. Tyler Scott. Kendra Miller. Hunter Renfrow. J. Reed. Sean Clifford. Cedric Tillman. Jamal Williams. And Ze Flowers. That'll do it for the break, everybody. Thanks again for the fill on that one. Up next, Prism Draft Choice.