Hello! Time-appropriate greetings. Thank you all for joining us today. My name is Eric, the IT guy, Hendricks, and this is REL Presents Episode Number 24. Today, we've got an awesome show for you. I am going to be bringing on a few of my co-workers here, and we are going to mute my confidence monitor. But we've got an awesome show for you today because just this morning, Red Hat announced the release of Red Hat Enterprise Linux 8.5 for beta, I'm sorry, the REL 9.0 beta was just announced and released. So with that in mind, I want to go ahead and bring on my co-workers.  Let's say hello to Scott McBrien. Hello, everyone. Good to see you again. Welcome back. It's been a couple of months. Yeah, been busy. How was life on the level up hour? Well, we've got these cool jackets. We don't have that in REL Presents. Maybe I should just get a patch and just put it right here. It'll be one of a kind. There you go. It's been good. We talked about insights this morning and we spent a lot of time talking about REL with insights, but also some of the cool stuff you can do with OpenShift with insights and some of the beta features they're lending for that. That's awesome. Yeah, so if you haven't been following Scott, go join him on the level up hour, a part of Red Hat Live Streaming. Also would like to mention that I believe Scott, myself, a few others are all hanging out on the Red Hat Live Streaming Discord server. So if you want to be a part of the conversation when the show is live and even when it's not, come and hang out with us there. The link will be in the show notes below. But before we get started, I want to introduce one other person to you, and that would be Matthew Yee. He is a technical marketing manager with us here at Red Hat. He's a co-worker of Scott and mine. He is the guru of all things, satellites, system roles, Ansible, all kinds of stuff. So Matt, you want to say hello? Hi, everybody. Hey, right to the point. I love it. All right. So we do have one other technical marketing manager, but he had a thing with Microsoft. So he'll be joining us here in a few minutes. We'll get him introduced once he jumps over from that. Don's a really popular guy today. So I guess Microsoft, we can let him use that excuse. All right. So let's dive right in. Rel 8.5, general availability is coming up here in just a couple of, and actually I'm not sure of the time, but it should be here very soon. We've got a lot of the beta bits in place, and rel 9.0 just went beta availability this morning, so you can go and download those bits. So we've got a lot to talk about. There's rel 8.5. There's rel 9.0 beta. So here's a lot going on. So I didn't want to have to, I didn't want to cover everything. So I brought on Scott and Matt and Don to help me kind of talk through things. And Edward, I'll get, I'll find out what's going on with the Discord link here in just a second. While I'm looking at that, Scott, I want to single you out. And why would we want to upgrade? Why not keep what's working? In rel 8.4, is that what you're talking about, or compared to something like 6 or 7? Yes. Excellent. No pressure.  The biggest thing right now is, you know, with Red Hat Enterprise Linux 8, we announced that we were going to be keeping a predictable release cadence. So every six months, we come up with a new minor release of Red Hat Enterprise Linux 8 since it was released in May 2019. Now with each minor release, we get some new features, some improvements, and it's going to continue like that for the next couple of years while we finish out the full support life cycle of rel 8. And we're going to talk today about some of those new features and enhancements that are coming in 8.5, which to the 8th doctor's comment soon, it's the answer that all the people love about when something will be done soon. I think more importantly, especially in light of the 9.0 beta release that we had this morning, with this predictable release cadence, we also said new majors over three years. So if May 2019 was rel 8, then mid 2022 is rel 9. You could see that we're on track for meeting that. And as an administrator or architect or team manager or app developer, this gives you a lot of information that previously you didn't really have with Red Hat. There used to be that we would release a new version of rel when we had enough features to make it technically compelling we thought to be released. And that meant that maybe some things that might have been technically compelling to some customers like new Node.js being available was not necessarily technically compelling for everyone, and so it didn't cause a new release. And we fixed some of that kind of stuff with application streams. But with three year majors, we're going to pick up a lot more of that. And so today, if you were planning on doing a new project, you could have a serious discussion with your stakeholders of whether you should target rel 8 for being the basis of that project, knowing that it has about two and a half years of full lifecycle left fall by another five years of maintenance, or if you should start work on your project on rel 9 beta, expecting that it's going to GA in mid 2022, and then have 10 years, five years of full support, five years of maintenance support after that. And that's a really drastic change from what we used to have. So I don't think we're really realizing that until now with rel 9 coming out. That didn't really answer the question that Eric. No, I think I think you hit on a couple of really important points. I mean, we all know that Linus Torvalds likes to change kernel major versions or minor versions at kind of random intervals, you know, he was he was quoted as running out of fingers and toes to count on. So it was time for a new major version of the kernel. And while that's, well, that's kind of something that the community and kernel developers look forward to it's some whimsy and in an otherwise very regulated space. That's not what I'd want to do as a systems administrator. I've been in that role. I know what it's like to try and think, okay, we've got hardware refresh coming up. We've got operating systems that need updates. So what do I really, how do I plan? Is it this year? Is it next year? Is it going to be a seven year lifecycle? Is it going to be a 15 year lifecycle? Which I think rel six was, was quite a long time. Now all those questions have, have been taken away. I don't have to worry about, I don't have to worry about when do I need to plan on the next major release? When do I run out of support on this thing that two people use that I can't seem to get rid of? Now I've got a, I've got a definitive date or at least, at least down to a quarter, if not a month where I can say that, look, this thing, we're going to lose support. It's going away. It's not going to get any, any security bugs, any fixes, nothing past this date. So even if the two of you still use this, this one random database, it's, we've got to move. We've got to update. We've got to move to something else, somewhere else heck nowadays, let's just put that database in a container and, and address the underlying operating system at least. Well, and it also like, not only can you have those discussions, but like, and know that those dates are coming. You also know that you should start planning for it. And if you're going to be replacing an application, you can also start budgeting for it or asking for budget to be allocated to it. If it's really mission critical for your organization, I saw a couple of questions from the eighth doctor there. So why aren't application streams released or updated out of band for rel eight dot, whatever minor releases. So I mean, we're releasing minor releases every six months. So how often is new stable, no jazz being released? How often is new Python being released? So I think that we're probably hitting about the right stride on, on that. Let's say that just the world lines up just right and new no jazz stable comes out a day after rel eight dot five comes out. Well, you know what eight dot six is only six months away and you'll see it there. So, you know, is it down to the day or the hour or the second of release? No, but, you know, we also do a lot of testing and right and other things. So we're still pretty bound to the release schedule and cadence. And that's how we organize all of our engineering work. But I think that ultimately, like for most customers, it's, it's probably the right amount. And then for 15 years, like I could tell you some stories that will cover your hair if you don't already have curly hair. So. Well, and, and the the UBI process does have built into it. The ability to release, say there's a critical vulnerability found within a particular container. There is the ability to release out of band. But I'm with Scott is depending on the release cadence of some of these different development tools or languages or language frameworks, six months seems to kind of hit everybody. And the worst case is if there's a feature in the next version of of a. If there's if there's a feature in the next version, you there are ways to play with that version without without the official supported package. But the good news is that, you know, that at most a new feature is only going to be six months away. And speaking of development frameworks and languages, as if on cue, we thought of his name enough times that I'd like to bring on the fourth member of our team. And that would be Mr. Don Pinto. Don, welcome aboard. Thank you, Eric. This is great. And it's great to be live on this live streaming show for the first time, I guess. Yeah, welcome. You and you and man are first timers.  But why don't you tell us a bit about yourself and what you do? And then I think this would be a perfect time to weigh in on containers and development frameworks, that kind of thing. Sure. Yeah. So since you talked about development, I'd like to use that to kind of introduce a little bit of what I do. So I'm on the rail technical marketing team here. So really happy to be here on this live streaming again. And one of the different aspects, if you will, of rel that I, you know, look at or focus on from the developer angle would be definitely things like, you know, app streams. I'll talk a little bit on, you know, maybe some of the cool stuff, which is coming in eight dot five, maybe not everything, but I'll touch upon a few things. And the other aspect is workload. So Eric, you also mentioned, you know, databases. And so that caught my attention. And definitely if there's time, we'll definitely show a demo to the audience here of how we can use rel to run, you know, SQL server. But starting with data development, just really wanted to touch up on two things very quickly. One of them is around open JDK support. So we, for rel, we have a huge ecosystem. And if you look at like developers, they love Java and they love.net. These are among the other languages, right? So these are really popular languages. And so I want to talk about a little bit on the open JDK 17, which has been announced as a part of rel eight or five, right?  So suppose you're building like an app which requires precision of numerics, right? So then you would, you know, there were some benefits you can definitely get from this Java, new Java version. You also touched a little bit on my UBI Eric. So I want to talk a little bit on yet all of this stuff that you, if you're not, you know, you don't want to download the open JDK, you're still using an old version of Java development kit. You can try open JDK 17 in a rel UBI container. So that is another option for you to go and experience if you just don't want to install it natively. Moving along, maybe .NET, just wanted to talk for the .NET fans on the stream here. So there's .NET Core 6, which is part of, again, rel 8.5. And some of the cool things you could get out of .NET 6 are support for WebSockets. So I know a lot of like people who are building chat kind of applications who, you know, where WebSockets are an important part of that application stack would maybe benefit from something like, or the improvements that are put into .NET 6.4. And plenty others. I mean, I only touched on two languages.  Go. I think that's, there's a lot of things in AppStreams that people should try out. So Matt, the only thing I took away from what Don was saying was that Don is the Java expert to talk to. Is that what you heard? Absolutely. I would ask him anything programming related. So actually, Don, I did want to highlight one thing about Developer. If there were maybe a resource that would dive into any of these languages, the Red Hat sponsors that you'd like to promote? Yeah, absolutely. So there is the website. I can just put it in the chat. And for those who are developers on the call, check out developers.redhat.com. So if you check out developers.redhat.com, you can click on, you know, we have a huge product set there, you know, in terms of the portfolio, click on Linux, because, you know, we since we're talking about ReLU, I highly recommend you to check some of the cool stuff we have, you know, we have documented on that page, whether it's tutorials, whether it's cheat sheets, whether it's listening to videos, and these assets can go deep in a particular topic.  Everything, you know, I feel for me, it's a daily resource, you know, I feel for developers to go and check out some of the most innovative stuff Red Hat has been doing in terms of development on that site. So again, developers.redhat.com, and, you know, use that site to also get access to the beta bits, we also launched ReL9 beta. So for folks who want to stay on the cutting edge and want to try it out and give ReL9 beta a spin, that is the page. Perfect. So I did see a question in the chat about ReL9 beta and about the beta program. We'll touch on that here in just a second. But before we do, I have to give props to Matt. He jumped on to the stream long before I did, and he's been waiting very patiently. So Matt, why don't you tell us a bit about what you've been working on with the new release and what folks should be looking for with Nino and with A5GA coming up here soon? So I primarily look after system roles and satellite. And with system roles, at least, is everybody... I'm going to assume that not a lot of people are familiar with Red Hat Enterprise Linux system roles, but I'll give a brief exposition. I think a lot of us out there already know a lot about Ansible and specifically Ansible roles. System roles are kind of an extension of that. They are pre-canned rules created and supported by Red Hat that allow you to configure your Red Hat Enterprise Linux hosts to conform to specific configurations or preparation for the installation of specific applications like SAP. And they are... I guess the main message I would like everyone to take away here is that they are supported by Red Hat. With specific to satellite, we released the beta for satellite 6.10 a little while ago, and the satellite 6.10 should go GA by next week. So we're very excited for that. The two main important things that we'd like people to know about satellite 6.10 is we've revamped the content management system in satellite, which means that a lot of the underlying plumbing has been modernized. We've collapsed the database from MongoDB and PostgreSQL into a single PostgreSQL database, and we've added better support for the disconnected satellite use case, which means that you can now more easily synchronize content to disconnected sites, which have satellite installed. So if you're not familiar with satellite, and if anything that Matt just said just went right over your head, then I want to go ahead and tease it, Matt. Episode 25 in two weeks is going to be about satellite. We're going to do an introduction to satellite. I think we've got some demo content ready to go. So it'll be about how to register systems, how satellite can help you produce some of that content or manage some of your content, not from a video perspective, but from a packaging perspective, life cycle management. So if satellite is something new to you, if it's something that you're interested in, if you're familiar with, say, Forman or Spacewalk and are curious to see how Red Hat utilizes those particular upstream projects, definitely tune in in two weeks. Episode 25, Matt will be joining me again live on air on YouTube and Twitch. So feel free to join us here in a couple weeks and we'll talk a little bit more about satellite. And just one more thing. I realize it's very confusing when we say content, so I'll just clarify.  Yeah, that's good clarification. So shifting gears a little bit. We mentioned the beta program. And in the chat, and I'll repost it here in a second, there is a link to the new beta experience. So I've been asked a few times, yeah, it's great. You've got the new bits available as part of the beta process, but how do I get a hold of those? Do I need a subscription? So with the 9.0 beta release and with the 8.5 beta, you can now, you don't need to have a subscription, you don't need to pay for any licensing, you can just go on to access.redhat.com, make sure you have an account created, and you can download the beta bits and you can try them out. Beta may not be the best branding, because I think it kind of gives us all an idea. Think of these as more of release candidates, because we're making changes to the beta program. We changed the life cycle in RHEL 8, and so now with RHEL 9, we're paying more attention to the beta. How do I get things in the hands of users a little bit earlier? And so one of the things that we're sort of piloting right now is more of a release candidate view to where you can just install it, try out the new bits and see if it works, but there's no road back into the GA release. So if you install the 8.5 beta, you're going to have to do a reinstall for 8.5 GA. So we're hoping to make changes as we move forward to make that easier. So if you weren't aware, Fedora is actually the upstream to Red Hat Enterprise Linux. So the upgrade process in Fedora, which shout out to the Fedora team, version 35 just came out yesterday. I actually have plans probably tomorrow to reinstall Fedora on my laptop. I'm really excited about Fedora 35, but if you're curious where RHEL is going, Fedora, the upstream Fedora and the CentOS Stream, great places to get information and see what's coming in RHEL. So the upgrade and beta processes for RHEL are going to start to look more and more and more like that of Fedora. So for a number of releases, I've been able to upgrade my workstation here from Fedora, I think 29 up to 34. And I've not had any problems. And so now RHEL is going to be easier than ever to do that. So RHEL 7 to RHEL 8, there's the leap tool for in-place upgrades. RHEL 8 to 9, we expect that process to be even more seamless, even easier. So check out the what's new in the beta program link in the show notes and in the chat. Guys, did I leave anything out as far as the beta program? Sounds good. Are we getting into 8.5 now? All right. So we've talked for like 25 minutes, and I know the guys are just itching to get hands on keyboard. And I know that's why you all tune in not to hear me speak, but to see if we can actually break things live on air, which I've proven to have a really great success rate at breaking things. Not sure if that's the goal, but that's usually what happens. So let me check. Who wants to go first?  I can go first. I got my terminal loaded and everything. Perfect. Let's do it. So I'm here to demo system rules. And can I share my screen? Yes, please do. I feel like I didn't give a very good intro to system rules just now, but you're probably asking yourself, why do I care and why would I want to install system rules? System rules, as I mentioned before, they're for configuring your host automatically. You can, it's based on Ansible. It's, that means it's, you can run the system rules playbook multiple times and get the same result. It's useful because as I think many of us already know on the stream here, if you're managing tens, hundreds, thousands of hosts, configuring all of them with the, as the number of hosts increases becomes an impossible task. So we use, we are preferred choices to have people use system rules to configure their hosts. And these hosts are, sorry, these, these system rules that we ship with rel, they're, for those of you who are, who are familiar with Ansible, you're probably asking yourself, what, why is this special? Like, why do I care about these system rules? The first part of that answer is, first of all, they come with your rel subscription. Second of all, these are not simple playbooks. These are actually pretty complex. We can configure things like network bound disk encryption, we can configure cockpit with Grafana exports. These sorts of things are hundreds of lines of code in order to give you this capability. So, I mean, with that, I'll just dive right in here. Like, so assuming that you are working with a fresh rel installation, and you've done nothing else to it, you've added the subscription, the first thing you want to do is enable the Ansible repo. And once that's done, you're going to want to install Ansible. Oops, you're going to want to install system rules with Ansible. What's our, what's our recommendation on running Fedora 21 in this day and age? Are we going to do that? So Fedora releases, Fedora releases have about a nine month life cycle, I think. So it, it, it passed on long time ago. Just don't do your online banking on that box. It's doctor. I think what AIDS doctor was talking about was doing in place upgrades on the same system since, since 21, from 21 up to 35. So yes, you're there for a minute. If you are running Fedora 21, I highly encourage you to just do a clean install. But if you're on 33 or 34, yeah, go ahead do in place upgrades. Okay, for a matter of heart attack. In case anyone's wondering where, what this is, this is a platform we're using called Instruct. You can get to it by typing in play.instruqt.com at forward slash R-H-E-L. Yeah, thank you. Okay, so that's what I'm here for. Ansible and system rules are installed. We're going to move to the next challenge. So Instruct, if you're, if you're not totally familiar is a competitor to Catacota. And we actually, the four of us have been spending a lot of time building out new labs, and we're going to be releasing them soon to, to keep with the theme. But so keep an eye on lab.redhat.com for more, more labs and contents, just like what Matt's showing today. What I've got here is a small playbook called soe.yml that stands for standard operating environment. What I have in there is a hypothetical playbook containing two system rules.  And let's skip down here. So what's, what's our swappiness setup right now? So for anyone who doesn't know what this kernel parameter does, 30, as you see on the screen here, means 30%. It means that start doing a bunch of swapping after your memory reaches 30% capacity. That means take like your inactive processes and swap them out to disk. I mean, systems have so much RAM these days, I don't know why anyone cares. So I am going to apply this system role with this setting value 20 for 20% instead of 30. So we're going to change that. Oh, it's not percent. Okay. So Scott, if I recall correctly, 100 means it's the most aggressive at swapping. That's correct. And so like, basically you're setting the aggressiveness, right? How much should your kernel try to swap? There's also things that the kernel is not able to swap like private memory pages, for example. So it's only applied to those things that are eligible for swapping. And then it's just like an affinity. So even at a swappiness of zero, your kernel can still potentially swap. It's just going to try really, really hard not to. So I'm going to pause here and give some commentary. I think intuitively, I think this really shows how useful system roles can be for a particular system because in that SOE playbook that I have right here, you can see that you can stack multiple system roles on top of each other. So that you can make as many configuration changes as you want. And then you can apply these at scale to multiple hosts. So I think that's all I wanted to show. If you want to see more about this demo on how to use system roles, please go on struct and give it a try. Definitely. Thank you for giving the kind of doing an overview of system roles because it really ties in a lot to what we're trying to accomplish with newer versions of RHEL both in the 8.x and the 9.x line. So we've kind of talked all around it and we've talked over it, I think. But why don't we talk a little bit about the specifics of 8.5? What maybe we'll go around the horn here and see what features should we be excited about? What should we be playing with? What should we be looking forward to? Scott, you want to go first? Sure. So we're making some changes to kernel live patching or Kpatch. One of the things is we're going to be adding Kpatch support into web console. So just so you know what that looks like, if I can find a copy of the image grab I did, maybe. This is what it looks like.  It shows up in the software updates parameter in web console, but if you have a kernel patch available, it'll show it as an update. Also, if you have any kernel patches applied to your running kernel, notice under the status, it tells you that there is one already applied and active. So that's one thing is we're making kernel live patching easier to use because we're adding it into the software updates component of web console. The other really big kind of exciting change is we're going to be producing kernel live patches for all minor releases of Red Hat Enterprise Linux 8. So previous to 8.5 we only produced Kpatches for what we call extended update support or EUS releases, which was 8.1, 8.2, 8.4. But those odd numbered releases, we didn't produce Kpatches for their kernels and that's going to change with 8.5. So with 8.5 you will get Kpatches for the duration of 8.5 and then when we transition to 8.6 you'll get it for 8.6 plus 8.6 extended update support. You'll also get it for 8.7, 8.8, and so on and so forth. So we backport critical security Arata into live kernel patches, which will allow you to apply updates to the kernel without the need for a reboot. And we have a six-month look back on all of those. So as you get new ones, they are a roll-up of all of the ones up to that point for the last six months. So that's a pretty exciting change for kernel live patching. The other thing that we've done in WebCultural is we in 8.4 we created a metrics page and I think I have that on my other box one second. So if you went to the, oops, live demo, what could possibly go wrong? So when you went to the homepage there was this usage details in history that allows you to look at performance co-pilot data in a more graphical fashion. So on this system I've already enabled it. So down here a little bit further on the page you have these nice little histogram graphics of what's been going on in this box. But with 8.5 and also into 9, you can also configure PMProxy through the Web Console. So if I go to metrics settings here, you can export to network which allows you to send your performance co-pilot data to another system on the network. And the reason you would want to do that is to collect all of your population information on a single host who then uses something like Grafana or another data visualization service to then show you important things that are going on across your population. So that's a little bit on what we're doing with performance co-pilot. Sorry to interrupt, Scott. Just one quick thing. If you need to configure this like performance co-pilot across multiple hosts, you can do it with a system rule. Also true, it's called the metrics system rule. And Brian Smith has a good blog entry on our site talking about how to set this up. In fact, a whole series of blog posts. And I'll see if I can grab the URL for that here in just a second. But Don, I think you had, I think you wanted to jump in on the performance enhancements for 8.5 as well. Yeah, I think Scott and Matthew covered quite a bit of it. Want to focus on one aspect of PCP, which is the scale aspect. So although the setup is easy, as Matthew said, with using the system rules, Scott showed how you can use the web UI or web console for a lot of the observation of all this metrics data. But when it comes to scaling PCP, PCP is a solution that people typically deploy on a cluster. And that cluster can be quite large. So we have done some internal testing to basically be able to deploy PCP on up to 1,000 nodes. So that is kind of the scale factor in terms of testing for PCP. Just gives you an aspect of, again, these tests are internal, but that is going to be kind of codified in our best practice in terms of when customers are running, like yourself, are running PCP in production. And a lot of times we get the question is like, how large can this cluster be or how large can the system be? 1,000 nodes is going to be the best practice because that is sort of measured and tested in the lab. And we hope to get feedback on that as well. And kind of sticking along with the web interface that's built off of cockpit upstream. One of the other big improvements we've seen with 8.5 is Image Builder. So if you're unfamiliar with Image Builder, it is the ability to create a golden image. You can predefine users, SSH keys, have packages installed ahead of time and create be it QCao2 files or AWS images. Image Builder actually gives you the ability to set a lot of different parts of your operating system ahead of time. And it's a very heavy area of focus. And so we've made two major enhancements to 8.5 for Image Builder. The first is bare metal support. So beforehand, it was really cloud-focused, very virtual machine-focused. There's VMware support, there's QCao2 files, which supports libvert and OpenStack images. But now, as of 8.5, you'll be able to do a bare metal install. And it takes the Image Builder process and instead spits out an ISO with a prewritten Kickstart file. Love having to pull these names out of my head as I'm talking live on here. It's great fun. But the second enhancement that I'm really excited about, it's been very heavily requested and our engineering team's been working really hard on, is customized file system layouts. So now, if you had a 20-gig Image Builder image, it would only have the slash or the root file system. Very important differentiation there. But now you can actually specify that layout. My 8.5 system wouldn't actually complete the demo for today's event. But here very soon, you'll be able to try that out for yourself on RHEL 8.5 GA. But bare metal and custom file system layouts, huge enhancements to Image Builder. And there's more coming out with every version. Image Builder is going to be very heavy focus for RHEL and RHEL distribution going forward. And then I might hit on one other thing and then turn it over to Scott to talk about containers. But I also wanted to mention that we featured this on the show just a few episodes ago. But the convert to RHEL utility. One of the limitations we had beforehand was it only supported the older grub boots options. But now with 8.5, so here just very soon, you'll actually be able to do convert to RHEL on CentOS and OEL systems, Oracle Enterprise Linux systems that have UEFI. So if you have a newer piece of hardware or a lot of cloud providers or virtual machines, all lean on UEFI for boot. So convert to RHEL will now support those systems as of 8.5. So Scott, we kind of talked a little bit around UBI. Is there anything specific in 8.5 we want to talk about with containers or Podman? I mean, I've been there and clearly got the t-shirt. Literally. So with UBI, like nothing major, we're still going to continue to ship our four versions of UBI. Micro, which is really small. Minimal, which is pretty small, but not as small as Micro. Standard and init or multi-service image that comes with full-on system de-implementation. So we'll be packaging those and shipping them with 8.5 as well. You can download them and redistribute them for free from the Red Hat Container Catalog or Docker Hub, if you would like. The changes in 8.5 are more around the container tools. So we made overlay file systems usable by rootless containers. So if you're not familiar with rootless containers, it lets regular people, non-privileged users, run containers. Depending on how you have the system set up, you can bind to different ports on the machine. So you can forward traffic to a higher numbered port, or you can actually tweak the system a little bit and also let them access traditionally privileged ports with some administrator changes to the box. But overlay file systems is one of those that has been difficult with rootless because of the non-privileged nature of rootless people. So with 8.5, we're improving that so that you can natively use overlay file systems and get some speed improvements with them for rootlessly running containers. We previously, I think 8.3, we released containerized Podman. So if you're using a different container runtime on another operating system, let's say, you could now run a container that includes Podman to allow you to build Podman-based images and access the REL container tools. And we're going to fully support that with REL 8.5 containerized Podman. And then, let's see, I don't think there's anything else crazy there. Oh, C Group 2 is now fully supported. So if you are using C Group 2, that's cool with containers now. We had been working with it, but now it's fully integrated and that's excellent. And then one feature that is landing in 8.5, but we should see additional additional work on in future releases as well is container verification. So now when you download a container for a registry, it'll actually compare the signature on that container once downloaded into your local registry with the signature on that container in your repository that you downloaded it from. So you can see that the container is valid all the way through from where you got it to your local file system.  And in the future, we're looking at making that more enforceable, but it's not there in 8.5 yet. That'll really help, especially with all the focus on open source supply chains. Well, not just open source, but any supply chain. So moving forward, it'll become easier and easier to make sure that the image that you're getting is actually from Red Hat and signed by Red Hat instead of just maybe Red HT or something. Some weird misspelling of Red Hat that looks kind of like it, but is in fact someone just trying to mine cryptocurrency using your server infrastructure. So let's see, what else do we have coming out in 8.5? So, Don, you mentioned a couple of security features. Do you want to expand on some of the security changes in 8.5? Yeah, so I mean, just compliance is definitely one with every point release. We kind of make sure that we are keeping that with compliance, whether it's regulations. So that is one thing I love to call out with, again, because it's a significant mature point release later in the cycle, 0.5, right? So we are up to date in terms of like, want to be up to date in terms of all the compliance regulations. But also in terms of, when I look in terms of security, especially when I look at things like insights, the rule database of insights, which is the service, which is having a lot of those intelligences, whether it's, you know, vulnerability intelligence, or whether it is also just improving operationally the system, the rules associated with that, they get improved with every release. It's not really tied to the operating system release, but essentially, there are certain rules that basically check the operating system version as well. So the rule database could get updated out of band, but that is also consistently moving forward. So just wanted to call that out. So what that really means for a customer is, you know, you may not know that your system is vulnerable, but now that with insights, you can really go there in the dashboard, not just see one system, but see your entire fleet of servers and be able to remediate issues right from the insights dashboard. And I'm sure Matt, you can talk more about like, you know, combining that with things like satellite and so forth. So it's funny you mentioned insights, because on episode 23, I had John Spinks on. So the episode right before this one, and we talked about insights and vulnerabilities. So then insights and rel continue to work closer and closer together. So lots of great, lots of great advancements coming with 8.5. And we'd be remiss if we didn't mention the 9.0 beta. In a feature by feature comparison, 8.5 and 9.0 beta are very, very similar to each other. But I need to stop reading the chat when I'm in the middle of a sentence. But feature to feature 8.5 and 9.0 beta are going to be very similar. I think the big takeaway is to see how this upgrade process, how this migration path is going to look moving forward. So while the actual bits may be similar, 9.0 is kind of the first major release since we've made all these life cycle changes. CentOS stream is now upstream of Red Hat Enterprise Linux. We're more tightly integrated with Fedora with CentOS than with REL. We're on a standardized release cadence. So the major version, REL9 is kind of a celebration of that. And we'll talk more about REL9 in the spring. So feature by feature, it's very, very similar. But the beta is out. It is freely available. So you can definitely see how things are going to go. Once REL8 hits its maintenance phase, I think we'll start to see that feature set diverge quite a bit, because REL8 won't get any of the hardware enablement or any of the new features moving forwards. And then that development will shift completely to REL9. So if you're on REL6, REL7, and you haven't started talking about upgrading to REL8, maybe it's worth taking a look at REL9. That gives you another six to seven months to prepare. And if you're on REL8, it's going to be an easy shift from REL8 to REL9. So as we kind of wrap up our time, I wanted to highlight the chat, please, if you have any questions. Now is the time. Go ahead. I was going to highlight a couple of things that I've noticed thus far in the REL9 beta. So one of the things that we intend to do is we're going to use DNF as our package management utility in REL9. It was actually there in eight. You just didn't notice it because we created the sim link for yum. And we'll continue to do that in nine. But for all of our documentation and other things, we're now going to be using DNF as our preferred command line utility. One of the other changes is modularity. So Don's probably encountered this some with his work with application streams. So I think with REL8, we may have overrotated a bit on modules and packaging all of our stuff as modules. It turns out modules is really hard. So in REL9, we're going to do less modules and more meta-RPMs. Meta-RPMs are a way of creating an RPM that references other RPMs as components. And so I think we'll see that more prevalent way of handling application streams there. Let me ask you a quick question for the group or for folks listening. How are these meta-RPMs going to be different than say like a group install? So a group install works off of a XML file as a definition that pretty much identifies the package name that should be included in the group. A meta-RPM is similar except the RPM itself is what identifies what components are required as dependencies by the meta. And so one of the ones that we've been talking about recently internally has been container tools. So container tools is Podman, Builda, Scopio, and a few others. And so if you install container tools today, you get that all those component applications as modules. But in REL9, you will get the container tools RPM. And if you looked at the container tools RPM, what you'd see is it had a dependency on Podman equal or greater some number and Builda equal or greater some number or Scopio equal or greater some number. And so when you install the container tools RPM, it slurps in those others as dependencies. Whereas today when you install container tools, it goes, ah, you want the container tools module? These are the other modules that are part of this module or other packages that are part of this module. And then when you do like an upgrade with modularity, that's really hard. With meta-RPMs, though, if you do an upgrade of your current container tools, the new container tools meta-package will say, I need a newer Podman. I need a newer Builda. I need a newer Scopio. And then it'll fetch and install those as part of that package transaction, which is a really well understood method of managing software on REL distros. So it's an easier and cleaner way to set up dependencies between packages? Uh, I don't know about easier and cleaner. Let's let's call it different. And it behaves in a much different fashion. So we had things with much authority where like, if you tried to upgrade, it could potentially leave artifacts on the system that you didn't intend. Whereas a RPM upgrade is a very atomic process, right? It like takes care of handling all the file meta stuff that's out there for for the package that it's upgrading. And that was not as well understood or practiced for modules, which is why our recommended practice was to erase the module and then install the newer module. So meta-RPMs will make that less difficult. Perfect. Great, great answer. I appreciate the clarification. And we'll talk more about all of this in the spring as we get closer to REL9's GA. So let's start with Matt. Any closing thoughts? We've got just a few minutes left. I encourage everyone to give the system roles, instruct a try. And please, we've got a really great blog series on system roles. So if you have to configure anything, and especially if you have to configure things at scale, please consider using system roles. Awesome. Yeah, and we'll have Matt on again in two weeks to talk about satellite. And then I think after the first of the year, I believe Don, you and I are talking about a system roles episode, and we're going to focus on SQL server. Also, you want to tease that out a little bit, Don? And same question. Any closing thoughts? Yeah, so stay tuned for the SQL session. I think what we're going to cover there is just motivation on why you should run a database like SQL on REL. I mean, we'll cover like top three reasons. So if you are database fans here, want to run it on figuring out your database like SQL to run on an operating system, you should attend that session definitely to learn more. I'll also touch a little bit upon automation, right? So I think Matthew said the stage value to kind of say why, you know, when you're deploying it in on a fleet of servers, this stuff, especially using Ansible, the REL system roles powered by Ansible is really handy. So I'll kind of show that in the context of SQL as well in the live demo. So hopefully you all can attend and we can do some hands on keyboard work. But yeah, closing thoughts, I think for 8.5, really recommend everybody to try the bits, give us the feedback. Your input is crucial for us to understand how we can move the needle in terms of the product forward for future releases. Awesome. Thank you, Don. Mr. Scott, how about you? I think insert incredibly inspirational quote here. I don't know about you guys, but I feel greatly inspired right now. Also, if you have questions after the fact, please put them in the comments with this video and feel free to like and share. Yes, please like, share, subscribe, all the good things, push that little up arrow. It really helps us know whether this content is resonating with you or not. Join our Discord, check out some of the other episodes and much like REL itself, REL presents is kind of changing and growing. If you've noticed, we've started implementing graphics. We've got a new streaming platform we're using. We're kind of changing up the contents a little bit. We're trying to bring more of the experts on to talk and answer your questions, whether it's 101 or 401 level stuff. We definitely want to keep the feel of the show the same. We all love the kind of laid-back conversation with a demo because what's a livestream without the chance of breaking something, right? I appreciate you all's patience. I've gotten some great feedback over the last few episodes. It's been a lot of changes in a very short period of time. We changed co-hosts, then we changed hosts, and then we changed streaming platforms. It's been a lot. Stick with us. We're doing a lot of planning behind the scenes, a lot of infrastructure-focused changes like the Red Hat Enterprise Linux YouTube channel. We've got some tech tip style videos that we've started to publish, including a couple for Convert to RHEL. Episode 25 in two weeks, 2 p.m. Eastern. Be here, Twitch, YouTube. We'll continue streaming on OpenShift and RHEL for the time being. We'll have Matt on to talk about satellite. Then looking at the end of the year, we've got a cool episode on Podman containers and running a game server at home. Then to wrap up the year. We haven't quite fleshed it out yet, but towards the end of the year, we're looking at doing some kind of a fireside chat where... This may change, so don't quote me, but I'm looking at sending out an invite to this event to just about anybody in the RHEL organization here at Red Hat, have them come on the show, see who shows up, see who shows up in the chat, ask different questions, have different conversations, and just kind of a nice, lighthearted Q&A session to kind of wrap up the year. In that episode, I also hope to announce some ongoing changes for RHEL live streams, RHEL presents. Stay tuned, and until then, thank you guys for joining us. Matt, Don, Scott, thank you guys for helping me out on the show today, and look forward to seeing you all again live in two weeks.


But the more shots they get up, obviously the more points they're going to be able to score. And we said 90 points per game, eighth in the nation. Berks misses a three, and all of a sudden, Xavier is running, and Marshall, who had the best game of his career on Saturday, drains a three. And here comes Xavier, a 13-0 run for the Musketeers. Gooden spinning, and he scores over Penneville. Gooden, Gooden. If you take a way to foul, that doesn't fall. Gooden spins in, pass loose, picked up in Jones. Not only are they getting points in the paint, they're getting points right underneath the bucket. Gooden's defense on him has been so good, he hasn't been able to turn the corner. And a steal by Elmore, blew it. Chasing, fouling, count it. It's a trip on blew it. And all of a sudden, John Elmore and Marshall have life. Sometimes, you know, lawyering can do things to you. Tyreek Jones with two hands, and Xavier continues to execute offensively. You know, more times than not, they're going to have some kind of success. A bucket will get to the free throw line. Cantor left open, missed a three. Jones the rebound. It's a three, so it's long. See, that time, Irvich didn't assert his big body, allowed Jones to take over. You know, with hot shooting and outscored Toledo, I think it was 14-nothing down the stretch to wind up with a win on the road. Good scream. Great finish. That's John Elmore at his best. And the crowd grows uneasy here, 10,000. And Cincinnati couldn't with the left hand. There's an advantage right there. Not only the quickness, but the upper body strength. It's like getting a gallon of salsa. There's Cantor, no one on him. Finger roll, and a block, and the bucket. It was stun when he looked up and saw him. Nobody in front of him in the basket. Good fundamentals. He went straight to the basket. Just a little bit of a lean. You see that lean in the sliding of your feet. You're not in legal guarding position. It's kind of hurt, Marshall, here in the last couple of minutes. Quick shots, guys aren't in position. You haven't really put pressure on the Zager defense. Lewitt whips it to Cantor, missed the three, and here comes Marshall. This is Birx, goes for the three, hits the three. And how about Marshall? Within seven, with a minute 25 left. Maybe to have a seven bit in you. And Marshall running out of time. Another three, and this is good. And that's C.J. Birx. Well, you really have to hand it to Marshall. They have made it interesting here. Half a minute left. Elmore now to inbound it. They'll get it right back to him. Drive into the bucket, looking for contact, kicks it. Good ball fake, three on the way. Got it! It's Barkes who hits a three. Did I say something about a miracle? And Marshall hits within five, 21 seconds left. And Chris Mack can't believe it. He calls time out. He's furious right now. And just weren't able to close the door. And Marshall feels good about himself if there's such a thing as a moral victory. Elmore's three is good. And what looked like a 23 point blowout ends up as a four point win for number nine Zager. First off, Chris, what's the condition of a guy like Najee Marshall and the other guys, Makura and Gates? Who knows at this point? You know, I'm glad the medical staff has given me some players to work with at this point. Oh, that was a tough way to finish it out, although you guys a 23 point lead.   I mean, it's tough.  You know, rotations are completely different with three guys out, three main guys. But you know, I'm proud of our group for being able to stick with it. Marshall's got a really talented offensive team. Ran out of a little bit of gas. Ball wouldn't go in for our best player. But we'll take the win. Well, how important was coming from behind against East Tennessee? Did that have any impact on the mentality in this game? I might have, especially coming into the game. I thought our guys were amped to play. I thought they were ready to play. And I thought we did a really good job to hold those guys to 27 points at halftime. We just had to be a little bit better on the offensive end, the second half. But we'll get back to work tomorrow. All right, you've got Northern Iowa coming up. You know, hopefully, obviously, your bench can round out. And you'll have the full complement of guys. But what would you expect going forward? Well, we know Northern Iowa has a tremendous program. I mean, Coach Jacobson does an amazing job. Played those guys in wars last year, two of them. So we're going to have to prepare for a very tough environment, a team that prides himself on the defensive end.  Well, congratulations on this one. And good luck going forward. Thanks, man. Rob, back to you.


So, far we have discussed NFAs at an informal level. Let us define NFAs formally. An NFA when we use the formal root is a pipe tuple q sigma delta q 0 f as d f s r, where q is the finite set of states of the machine m. In other words, an NFA also has number of states and that number is finite. Sigma is the alphabet and which is a finite set of symbols. Delta is the transition function and it is here an NFA and a dFA would differ in general. q 0 is the initial state of the machine m and f is the set of final or setting states. We have two terminologies for the same thing. Either we can say final states or accepting states. Clearly this is a subset of q and now let me describe the transition function for NFAs. So, delta is a mapping from q cross sigma to power set of q. You recall what power set is. Power set of q is the set of all subsets of q. Example would be simple example. Let us see you have power set of the set 1 and 2. This is going to be this is a set. Remember power set is a set and its elements are the subsets of the set here. So, the empty set is a subset of this set 1, 2, the singleton 1, the singleton 2 and the entire set itself. So, in general if q had n elements, q had n states then power set of q will have 2 to the power n elements each of which is a subset of the set q. So, now this is saying the delta is a map which is which has two arguments that is the domain is the cross product of q cross q and sigma and its range is this power set. So, for example, delta of let us see q and a symbol a. So, the first argument of delta comes from the set capital q. The second argument comes from the set sigma. So, this is a state of NFA.  So, let us see how it captures our informal understanding of NFAs. Let us take this very simple example and let me name these states as this is p, this is q, this is r and you can see what this NFA accepts the language the NFA accepts. It accepts the set of all strings in which the string 0 1 occurs as a substrate. We have seen similar examples before, but in this picture the transition diagram formally would write like this delta p of 0. Now, which are the states the machine can go to in this diagram you can see it can either go to p or it can go to q on 0. So, therefore, this is. So, the understanding of this is that if we have delta q and a is r which is a subset of q the machine from state q on symbol a can go to any one of these states of m which are in r.  So, the set of all states to which the machine can go to that is the value for this case. So, similarly what is delta p of 1 delta p of 1 you can see it from p on 1 it comes back to p, but we write like since they have to be a subset even for a singleton case this is the set of states it can go to it may be singleton. In fact, this set can also be empty as you can see from the next state q delta what is q of 0. See there is no transition defined from q on the symbol 0. So, which are the set of states the machine can go to from q on 0 none of the states. So, therefore, it is the empty set, but empty set remember is always a member of the power set. So, that is all right our definition of delta allows a empty set here r can be empty as in this case. And similarly you can write delta q of 1 delta q of 1 is only the set consisting of the symbol r. And to complete the r description for this case delta r of 0 as well as delta r of 1 both of this once the machine is in state r it does not matter whatever is the symbol it remains in the state r. So, this is right so just to emphasize once more in case of an NFA when we say the delta q a from state q on a is equal to r which is a subset of q what we mean is our understanding is that if r is the set of all states the machine can go to from the state q on symbol a right. We have defined formally what NFA is, but the next important thing we need to define is what the language accepted by an NFA is how do we define that formally. In case of NFA what did we do we extended this delta which was from q cross sigma to q cross sigma star exactly that is what we are also going to do, but keeping this definition in mind for delta in case of NFA. Now we would define l m the language accepted by an NFA m informally what did we see the language was informally we said l m was the set of all strings in sigma star such that x can take m from q 0 to 1 of its final states. Remember I emphasize that because it is a nondeterministic machine a string can give rise to many different computational paths and depending on the nondeterministic choices made by the machine in a particular computation it will be either in this state or in that state. However, this thing is well defined we look at all possible states the machine can go to after reading the string x and then if one of its states it can go to happens to be one or more happens to be a final state then we say the string x is accepted. So, this is of course we have stated it informally how do we formalize it as I said we will do it in terms of delta hat. So, let us remember what delta hat was delta hat is a function which again takes two arguments, but the second argument first argument is a state second argument is a string is a finite string over the alphabet sigma and its range is as before the power set of q. So, intent is intent is this we would like to define delta hat in this manner that suppose delta hat of p and x now x is a string remember which is in sigma star if this happens to be r which is of course a subset of q then we would like our definition should ensure definition of delta hat will ensure that this capital R is the set of all states thus r is the set of all states m can go to m can go to I will again emphasize the fact it is matter of possibility it can go here it can go there and which are all the states it can go to that is what is the subset of q r on string x from state starting from state p right this is what we would like to ensure and how do we do that well we will do it in this manner inductively we will define delta hat using the definition of delta and remember the style is same as the way we did it for DFA this is what so informally what we would like delta hat to satisfy. So, what is delta hat remember delta hat takes two arguments p and some string x now I need to define this function delta hat for all possible second argument argument here, but then that is an infinite set we cannot just write down as we could do it for delta. So, inductively we define inductively this in the induction is on x. So, what is the base case the base case is when the string is empty the null string. So, p and it is presented with the null string epsilon what happens what do you want to ensure that the set of all states the machine can go to from p on this string, but then there are no symbols it has seen. So, it will not make any transition it cannot make any transition it will remain in the state p. So, clearly this is going to be this. So, this is the base case and for the induction part what do I have to do we need to define delta hat p x a using the value for delta hat p x this is how all inductive definition goes that you supposing you have you already know how to do it for the string x then a new symbol comes a which is added to its right then for the string x a what will be the value of delta hat. So, let delta hat of p of x be r which is of course the subset of q remember that means this is the set of all states the machine can go to from inductively we assume that this assertion will hold here from the state p on the string x right. So, just before I write down formally what is happening. So, let us say this is part is x and this part is a right and after reading x the machine is in some states let us say it can be in one of these states. Now, what are the states the machine can be after reading a at this point. So, it on x it could have reached the state p 1 and now it care it is reading the symbol a. So, had it reached p 1 then it would have gone to one of these states p 1 a this is defined because delta we already know when you gave me the machine m delta p p 1 of a tells me which all states the machine can be on reading a from the state p 1. So, this is going to be a collection of states. So, these are the states the machine can be after reading a similarly from p 2 on x it could have gone to p 2 and now a came again there will be a bunch of states defined the machine which the machine can go to any one of which the machine can go to on symbol a and so on. So, therefore, it is not difficult to see the set of states the machine can be after reading this symbol a is the union of all these states. So, therefore, we would write like this way we will the delta hat of p of x a is the union of you are supposing r is a state r is an element which is of course, the state in capital R remember what was R capital R is the state of states the machine can be starting from the state p on reading x and now the next symbol we need to take care. So, delta r of a this is going to give me a subset of states. So, had the machine reached R then when it read a the machine would have gone to could have gone to any one of these states and the same is true for every other element of R. So, we take the union. So, you see this completely defines delta hat and in terms of delta hat we can now formally define the language accepted by the machine n. This was the informal definition and formally now that we have all this machinery we do not need to write English sentences or any natural language sentences to explain what the language accepted is l m is the set of all strings in sigma star such that delta hat of q 0 x what is this? This is the set of all states the machine can be starting from q 0 on this x on reading the string x and we what we want would say that this string x is in the language l m if any one of these states happens to be one of the final states. So, that is easy to write formally is this what we are saying is look at the collection of states the machine can be on reading x starting from the initial state intersect that set with the set of final states if that overall thing that you get is non-empty that means it can go to one of the final states then of course x is in the language and these are precisely the strings which are in the language because we are stating this is equal. So, that we this is the way to define the language accepted by the non-deterministic machine m. Now, this one very important question that we need to address and that is we had defined DFA's and we had then talked of the languages accepted the class of languages accepted by DFA's and now we have defined NFA's and now again we can talk of the class of languages defined by NFA's. So, I have two classes of languages one defined through DFA's the other defined through NFA's what is the relationship between these two classes. In particular it is easy to see that if language if a language is accepted by a DFA then it is also a language accepted by NFA. So, let me let me write it down let me state it if L is accepted by a DFA that means there is a DFA to accept L then L is accepted also by NFA now the reason for this is actually a trivial reason why because every DFA is also an NFA does it make sense this statement it does because what is an NFA NFA just states that from a state on a symbol there can be 0 1 or more transitions right whereas DFA's on from a state on a particular symbol there exactly one transition. So, therefore, the DFA case is a sub case DFA situation is subsumed by the situation of NFA. So, you can think of every DFA without any problem that it is an NFA it is that NFA is choosing to behave deterministically that is all. So, in terms of class of languages therefore, it is clear that the class of languages accepted by NFA's can be something bigger it cannot be less right. So, the question therefore, the which comes to our mind is that is there a language which can be accepted by an NFA, but not by any DFA and that the answer is no. So, in other words the these two classes the classes of the class of languages accepted by DFA on one hand the class of languages accepted by NFA's on the other hand these two classes are actually same. And therefore, since the class of languages accepted by DFA's we termed it as the regular languages class of regular languages NFA's also precisely accept regular language. So, this requires of course, proof to what we are claiming is that if you give me an NFA M for an NFA M the language accepted by M I will put it this way is regular. When I say L M is regular then what I mean is of course, by definition there is a DFA to accept this language L M the language accepted by the NFA M. And we prove this by actually constructing even any NFA M we will see how to construct it DFA from that M the definition of that M which accepts the same language.  So, the idea is to construct a DFA let me call it M dash such that the language accepted by this DFA is same as the language accepted by the NFA that you had given me. So, before we proceed further let us see what can be the strategy of the DFA M dash. So, we have seen several examples of the for the design of DFA's. And remember this is a string and our M dash has to decide by the time it reaches here the end of the string what the whether or not X would have been accepted by the NFA. So, as it is going on what all information it can keep through its finite head that will help in doing this task. So, in particular what should be the states of the DFA such that as the DFA moves from symbol to symbol when it reaches the end of the string it will know whether or not the string is in the language of NFA. Now let me tell you is an idea which you want for which is this it can we do this that of course we know that on a string X there are many possible computation paths. So, one would be that let the DFA keep track of all these paths but that idea would not work why because the total amount of information if you would like the total number of states that would be required will be infinite. Because as we have longer and longer strings will have it is like it you remember that computation tree is like a tree and it is it keeps growing it keeps growing and we cannot keep the entire tree for any for every input string in a state. In other words we just because a DFA can work only with finite number of states then you would say it is not really necessary to keep track of all these computation paths why not keep track of the this sequence that is if it had taken this path then it would have been in this state on X had it taken this path. So, this will be a sequence of states can we keep track of that in the finite states of DFA again the answer is no because this sequence also keeps growing arbitrarily large with larger and larger input all this is over came we do not really need the DFA does not really need to keep all the information which are which is there either in the entire computation tree or even in the frontier of the tree what it needs to keep track of. So, let me write it down the states of m dash on reading some string X will remember in its states the set of states NFA m could be could have been reading the same string X. Now, why should this idea work? So, you know this is the invariant the DFA will keep fixed that it will remember in one of its states precisely the set of states the NFA could have been on reading the string X. Now, you see this actually the total amount of information is finite why because NFA has the states the set of states of NFA is Q and Q is a finite set and whatever be the string that you give me the NFA will be on reading some string X it will be I know in one of the subsets of Q. So, how many different subsets can be there of a finite set like Q clearly that will also be finite. So, this information that the DFA needs to keep track of therefore, is a finite amount of information and that does the work. So, let me now give the a little more detail on this idea from the NFA m we would like to get to a DFA m dash which is equivalent in the sense m dash the DFA accepts the same language as that of the NFA. So, if our NFA was this Q sigma delta Q 0 f m dash let me write it as Q dash etcetera and now our strategy for this DFA m dash we said is going to be that m dash is going to keep track through its you know states the set of states m could be after reading part of the input some initial part of the input. So, then the simplest thing would be to define Q dash which is remember the set of states of DFA to be the power set of Q. So, for example, if the DFA is in this state where each P Q and R is a state of the NFA after reading. So, after reading x DFA m dash is in now this is a state of the DFA what we would like to ensure is if and only if m after reading x can be either in P or in Q or in R this is what we would like to ensure. So, for that we are saying the DFA set of states is the set of all subset of state space of the NFA alright this is not too difficult to see to implement that idea the only thing is now what we do about how do we define the transition function for the DFA. So, now delta dash is going to be now this is now is R and A what is R? R is a subset of Q which is and the Q is the NFA set of states, but this is now a state of the way we have defined it it is now a state of the DFA R and a symbol has come. So, according to this idea this should be equal to R dash and what is R dash where R dash is the union of I mean we have discussed this idea before, but it is essentially what we are saying is that suppose the NFA is one of these states R on reading something some part of some string and now A came right. So, from this from this small R it can go to these are the states the NFA can go to. So, I collect these states collect these all these states take their union now I get a subset of states of M and let me say that to be the let me define that to be the value for delta dash R A and if you see this actually implements this idea that we have stated here one more thing to notice that this is there is nothing non-deterministic about it. This is a state of the DFA this is another state of the DFA is not it because R dash is also a subset of Q. So, there is one state a symbol and we are giving a definite state of DFA that DFA can go. Now, I will not prove it formally, but if you see that this idea being implemented through this definition of delta dash then it is not going to be difficult to see that this M dash is going to accept the same language, but of course I need to tell you what these other two components of the DFA would be. So, that is easy. So, Q 0 dash the initial state of the DFA it is clearly should be the set of states the NFA could be initially and that is of course Q 0. Q 0 is the initial state of the NFA and this is this is the set of states the NFA could be initially and therefore, the corresponding subset is our state of the DFA and what should be F dash when should when will the DFA know the string would have been accepted by the NFA. If it finds that the NFA can be in one of the states on reading this string x and one of such one of these states is a final state of NFA then the string would have been accepted. So, it is clearly F dash we can define it this way that the set of all R now this is a state of the DFA this is of course the set of states of the NFA such that R intersection F F is the set of final states of the NFA is. So, we have completely described what M dash is we have described what Q dash is sigma of course, same as that of NFA sigma and then delta dash we have defined and F dash we have defined. So, the DFA is totally defined now let me give you an example of going from given an NFA to a DFA which accepts the same language. As an example consider this NFA and can see of course, what does this NFA do it accepts the set of all strings which each of which has as a substring somewhere in the string 0 1 and we would like to using this idea that we have developed. So, far going from NFA to DFA we would like to get a equivalent DFA. Now, it described of course, in detail what the set of states etcetera will be but given such a problem it is instead of trying to first see this NFA has three states and if you follow blindly that whatever you said we will start out with eight states 2 to the power 3 is 8, but you see some of these states could be inaccessible from the initial state that is there is no way you can reach one of these subsets. So, there is no point keeping those. So, we will start with the initial state of the DFA and see which all such states it can reach on 0 and on 1 basically the symbols of the alphabet. So, the initial state of the DFA is of course, the initial this set consisting of just the initial state of the NFA. So, which is P and here is a state and there the symbol can be either 0 or 1. So, from P on 0 you can let us see this probably once from P on 0 it can go to P as well as it can go to Q. So, therefore, we write this and you can see from P on 1 there it has no other choice it has to remain in P. So, now we have found another state which is reachable from initial state. So, let P take care of the state. So, the DFA is in this state P Q and let us say 0. So, what is the state the DFA would be? So, we see individually in fact that is what we liberated there from P on 0 it can go to the NFA can go to either P or Q and from Q on 0 which is the set states it can go to from Q on 0 no transition is defined. So, from Q on 0 the NFA goes to the empty state. So, take the union of all the states and that is P Q. So, and now let us consider from state P Q on 1 which all states it can go to from P on 1 it can go to of course P from Q on 1 this the NFA has no choice, but it will go to R. So, on 1 it goes to R. So, from P Q on 1 it goes to P R. So, you have found discovered one more state which is reachable from the initial state we need to take care of it. So, P R we will do the same thing. So, now it is P and R and 0 came on 0 from P you can be either in P or in Q from R when a 0 comes you will remain in R. So, the state DFA will be P Q R and what about 1. So, from P the NFA on 1 can go to on go to only P and on from R on 1 you will see can only go to R. So, it is P R P R is already taken care of, but again we have discovered a new state P Q R. So, P Q R from P on 0 it can go of course to either P or to Q Q on 0 it goes to empty R on 0 it goes to R.  So, it is P R. So, these are the now you see all the states these are the states which the machine can go to starting from I mean these are the reachable states P P Q etcetera and. So, therefore, we have completed the description of the DFA by the way this is called a transition diagram a transition table because here we are this side we are listing out the all the set of states of the DFA and here we have number of columns 1 column per symbol and basically such a thing tells that if the machine is in this state and a 0 came which is the state it can go to. Let us draw the corresponding transition diagram. So, that for the DFA M dash and you can see it has 4 states the initial state is this P and on 0 it goes to a state for this state and 1 it remains in the same state initial state from P Q on 0 it remains in the same state and on 1 it goes to a state P R from P R on 0 it goes to a state P Q R and on 1 what are the final states all those which have a final state as one of the members all those subsets. So, you can see the final state here is only R. So, R occurs here R occurs here. So, these are the two things oh by the way we should have taken care of for P R transitions I mean this state transition P Q R on 0 it remains here and P Q R from this state on 1 you come to. So, this is the DFA according to our idea now two points first of all if you I mentioned it once if you had done mechanically you would have written 8 states and then you would have found some of the states are not reachable. So, we just those states we do not have to really show. So, this is the DFA now does it make sense can we informally see that m and m dash accept the same language m of course, I know it is the it will accept the set of all strings with which has 0 1 somewhere and you see what this DFA does this DFA waits on 1 here and if a 0 comes it is here it means it has seen a 0. If it sees another 0 at this point it says I have seen a 0 which could be the first part of the interesting string 0 1 and once it finds a 1 then of course, it is either in this state or in this state I should have put down what that the transition diagram symbol was p r on 1 it remains here. So, you see once it has seen 0 and 1 the then in consecutive first once it escapes it remains here then it sees a 0 then oh by the way what happens on a 1 here. So, it has seen a 0 if a 1 then you have seen the interesting thing. So, now whatever happens whatever be the symbols which would come later on we should accept the string and therefore, it is either of these two states this is not the best DFA that you could design, but of course, this DFA accepts precisely the same language namely the set of all strings in which 0 1 occurs as a substitute. So, today in this lecture what we did was formally we defined what an NFA is and then we showed a very important result which is that given any NFA I can construct a DFA such that there is DFA accepts the same language as the NFA. So, therefore, the class of NFAs do not does not have any language which is not accepted by a DFA. In other words NFAs also accept precisely the class of regular language.


My name is Veronica Birga. I work with the UN Human Rights Office and I oversee the work of the women's human rights and gender section. Across the globe, being a woman or being a girl means to varying degrees being constrained by patriarchal notions, practices, beliefs that at best limit our options and at worst can result into discrimination, oppression and violence. I stand up for women's and girls' rights by supporting the voice of the courageous women and girls who fight for gender equality and by amplifying their demands for justice. 15 million girls are married off every year. That's one every two seconds. And every day over 800 women die of preventable causes related to pregnancy and childbirth. Stand up for human rights, stand up for women's rights and stand up for a world where all women and girls can have the freedom and opportunity to follow their dreams and aspirations and are not confined or oppressed by outdated notions of what is right and what is appropriate for them.


Hello and welcome to NewsClick. Today in Talking Science and Tech, we will be looking at new research on climate shifts, which can help further our understanding on how ancient civilizations in Asia and Africa may have collapsed. And to talk about this, we have with us Prabir Prakash Sita. So Prabir, can you first tell us about this new study, new research, which looks at the megadrots which occurred in Southeast Asia 5,000 years ago? It's an interesting question what you're asking because I think the studies in fact do show that weather patterns had an enormous impact on civilizations in this period. There have been a number of studies which had earlier suggested this and this is in fact continuation of the method used earlier to declare the megalayan period itself, which was that 4,200 years back there were megadrots in different parts of the world and the record of that, confirmation of that was the stalagmites that were studied in a megalayan cave and they found that you could clearly distinguish that the showers, the rainfall had reduced because the oxygen isotope, the light oxygen isotope which is there in bigger showers were less than the age, sorry, oxygen 18 isotope which is heavier, which normally falls in the lighter showers or in the pre showers. So this identification of how much rainfall using stalagmites, using the taking cores out of that trying to see what is the oxygen isotope levels of the two isotopes of oxygen, all of that is something which led to the declaration of the megalayan period itself and this is what is now being used in the different parts of the world to see what is the rainfall pattern and can we relate certain historical events to such patterns. Now there have been certain anomalies, in fact, this particular study points it out that you would expect agriculture to have sprung up in Southeast Asia in this period because it is there in other parts of the world, but you do not find it in Southeast Asia in this particular period, so what is it due to? So initially it was felt that maybe it is because people really have not found the sites of ancient agriculture, now they are coming around to the view that agriculture would have collapsed because of the mega drought that took place and they have identified a long period of this drought. Now these researchers, unlike the other ones who have talked about this similar droughts in North India for instance, essentially the Kala collapse of the Mohan Dharav civilization, the Harappan civilization and also in South, in West Asia and North Africa, Egyptian collapses in this period, the Akkadian Empire collapsing and also in fact in what is the Anatolian Peninsula, the Hittites, so there have been records at different points of research of seeing collapse of civilizations or roughly around the same time, so the question has been is it related to a climate event and this seems to suggest that it is except this says the climate event was much longer, while you take the other places into account it's quite possible in those places there was not a 1500 years or 800 years long climate event, but it was of a shorter duration which is really 200 years. That's also because the way the weather patterns in these places move that we have really three very large weather, you know, climate patterns that exist. One is essentially over the Atlantic which is also connected to for instance the ocean currents and you get as you know the what's called the Endino or Southern Oscillations because of that, then you have the Monsoons and Indian Monsoon is of course the very big part of that, that's a very particularly it also affects the two hemispheres, Southern and Northern Hemispheres and then you have the East Asian Monsoon, Southeast Asian East Asian Monsoons, so these are the really very large climate events that takes place, the pattern that takes place which determines also how you are going to see rainfall or other temperatures in this region. So it does seem that they are correlated but they may not be as strongly coupled meaning that if something happens for 200 years over West Asia and North India, it does not mean that it happens for the same duration in China or in Southeast Asia but there are close couplings, that means there is the effect but it may be not identical. So it seems to be if we look at the data that we are getting that we have a large mega-route which took place in Southeast Asia probably in South China as well, Yangtze being affected, then you had sharper but shorter periods in these parts of the world because you don't see such a long route being recorded and these are all records, after all Egyptians kept very good records, in fact the Egyptian Empire did not collapse unlike the Akkad then or Mohanjidaro basically the urban civilization disappearing, so such cataclysmic changes did not take place in Egypt though yes the urban civilization there did take a big hit. So if we take all the recorded evidence we see some commonalities but some differences too, so it does seem to be that yes climate had a big role to play in these changes for us to understand because till now we have been thinking it's only overthrow of settled agriculture could only take place if some people come and overthrow these people so destroy the basis of the agriculture itself and Mohanjidaro Harappa has been something of an anomaly that we didn't understand why it had collapsed. Now if we look at this picture and it's across a large part of the world then we can see that yes this failure of understanding is because we did not think the civilizations were so brittle that a small climate shift could lead to a significant change in the way people live so therefore it's also an indication of how narrow the surplus was to maintain the cities that if for instance crop productivity falls by 10 percent maybe cities are not then they cannot survive because that's what determines or really drives the urban population so urban civilization can only survive if there is surplus from the farming population to the urban centers and that means there must be at least a surplus that you can produce the farmers can produce which then can go to others so that that brittle nature of these civilizations when the surface is very narrow and it would seem to indicate that but I think this is a very interesting study because we are now trying to relate very dissimilar disciplines together to understand our past and also the researchers in the study are pointing out that how this could all be linked to one major event which was the gradual desertification of North Africa of the Sahara which used to be very green but we know now it's a desert so can you tell us about that how those two ends are linked? Yes the green Sahara issue that Sahara was not a desert it was relatively green and at some point there is a temperature there is a climate change of some kind which leads to northern Africa largely becoming desertified so in fact that's the end of green Sahara. Now why did that happen? I don't think we have still received any clear explanations of that but we know that it did happen so that that much of information we have so one of the things that would happen and this is what these researchers have said that that would lead to certain changes between how moisture bearing winds then would operate in the in this part of the world along the tropics and this lack of enough moisture coming would mean the weakening of the rain bearing winds and so on and so forth but I think there's one thing important to remember that in large parts and this is really seems to seem to be around the tropics this whole region which is affected seems to be around the tropics. Now it is more in large parts of it as we said it seems to be a 200-year event so if it was greening of the loss of greenery in Sahara if it was left to that I think we would have seen a different configuration of the climate in this entire region it cannot be that it only affects us for 200 years and then it comes back to the pre situation when there was the rainfall is restored so you can see a break on a 200-year drought scenario now there are two ways of explaining it one there is something ma which massive which is shifted and that has created a 200-year hit on the climate before it comes back that's one possibility the other possibility is that that's a quite a dangerous possibility that we have a bi-stable system which periodically can shift so the major part of it it is in the mode that we see today but there is because the bi-stable system it can fall into a pattern which creates a stable weather pattern which is different and that different weather pattern would be much less rains in the tropics the places that we have talked about from Southeast Asia Southern China to Northern India to West Asia if that is true then it is possible to flip the weather back flip the climate back to this situation where we again get mega drought so if we for instance look at climate change today the fact that we are the largest drivers of climate change with the amount of carbon dioxide we are putting in the atmosphere so it is possible that because the climate is you know the climatic system so to say has a huge inertia and therefore normal human activity would not shift the climate system from one stable stable for configuration to another but that it did do it at one point of time whatever may be the reason means it can do so again so I think that is something that is something for all of us to consider but looking at it and looking at the fact that the green Sahara I don't see green Sahara being directly connected to the 200 year mega drought that 200 years of mega drought we are talking about it could be connected to a major shift of the climate could be possibly and that that a different stable system to emerge took time and therefore the 200 drought that we are talking about really takes takes at the end of this climate pattern shifting and this was a you know a some in some sense a closing chapter of a large shift of the climate the problem with this formulation and I think the experts have to debate this out is that we should have seen also precursor to that slow change over North India for example or over West Asia before such a climb you know climactic change takes place when this 200 years of mega drought takes place so somehow I'm not I'm not sure that this is perhaps explanation so I think you have really because of the three systems which are connected something that happens over the North South Atlantic which has an effect of North on man North Africa then you have the the monsoon systems one the Indian monsoons the East East Asian monsoons so all these three system and the interact there could be changes which are introduced which we need to understand in totality so it's possible that Southeast Asia the 1500 year drought which is what these researchers are talking about could be the result of the green Sahara ending but I don't think it explains the 200 year droughts that we talk about in this particular case which took place in North India and West Asia Egypt that I don't think is that easy to explain so it's quite possible that the East Asian monsoon the North Atlantic climate system all of that have a more complex interaction so I think it's really a matter of now more research to see a much greater detail and also the climate models we can now build and hopefully solve to see what what is a possible answer to this now three mysteries which have seemed to be connected together one is this 1500 year mega drought over Southeast Asia I don't know how long it was over China South China it seems to have been also been affected also Korea for instance has come into this discussion in some form then of course what is the impact over from North Africa to India Southeast Asia to be accurate and also what led to the green Sahara being destroyed so all these things now are puzzles which seem to be connected together so I think it's exciting times because you were seeing new methods you were seeing modeling being used you are seeing different kinds of disciplines being put together for essentially paleo history ancient history earlier we really looked at artifacts and to understand history now we're looking at much larger issue you know much larger set of variables and I mean that's a very exciting time to be in to see how can explain distant past with all the tools we have not just what the archaeologists or the historians have used and you know to end it all there has been this debate that the megalian period this side suddenly identification of this new period is going against the whole bunch of people who said we should really describe something called the Anthropocene period which is a human activity the one where the human beings have changed the what is in the you know the climate as well as the world so this change needs to be registered as we are now the biggest element of changing climate as well as the habitat so this debate now needs to be refined somewhat to show that actually in this period it still is that much larger forces are at work and relative to that we were not so important so I think it does show that the geological age being determined and the errors being determined based on measurable climate events so to say in this particular case it meant that each age had some physical things that you could measure this is 66 million years back and therefore you know this event took place that's how we have dated our various errors and this particular this particular event is also then connected to something which is physical you can measure the change of oxygen isotopes in rainfall which you are measuring so it's a physical measurement you can do so till this point you are also privileging natural phenomena in terms of the turbulent epochs and not the human phenomena so I think that is still holding true for this period is I think an interesting interesting development that yes of course this is Anthropocene era there is no question this is very much there but nevertheless still it's predominantly to be seen in terms of various geological ages that we have given we still have to continue looking at this period also in those terms because after all here is the change point taking place now we are going to be far more important in determining what's going to happen on the surface of the show thank you for being for talking to us today and that's all the time we have keep watching news click


In this video, I want to share a really important lesson with you, which is how to actually remember to do reality checks in your dreams. So I'm talking about what is called your prospective memory. This is your memory of something in the future. And there's a few powerful ways that I want to share how to do this. So make sure to just stick around and watch the whole video if you do want to get your reality checks to actually show up in your dreams. Because if they're not going to show up in your dreams, they're kind of a waste of time. The only reason you wouldn't want to do a reality check is because you want that check to show up in your dreams so that you actually become lucid. So if you're not getting results with the reality checks, you really need to watch this whole video. So number one, you need to make sure that you are actually spending enough time doing the reality check. This is really critical for this. If you're spending just 10 seconds, it's just not going to work. You need to spend at least 30 seconds, ideally two minutes on the reality check for it to be detailed and thoughtful enough and mindful enough to actually show up in your dreams. Next you really need to use what we know to be the most effective reality checks. Now there are lots you could choose from and the most common ones tend to be the least effective ones.  Now that's kind of a good idea. It does remind you to do reality checks but it's not the most effective way. In the same way, most people think that if you look at text in a dream or all the time or your watch or a clock and then look away and then look back in theory the text or clock or whatever should have changed and the theory is or the idea is that that will become your reality check and make you lose it.  So you're not in a logical state and you can quite easily mistake things like that and get the wrong idea. You might look at text. It might be all jumbled up but your unlogical brain in the dream will think that's kind of normal. I can't see anything strange here so let's go about our day. Let's continue walking on the backs of these camels or floating around in the shopping mall or whatever it is. So what is the most effective reality check for lucid dreaming? Well, here's one that will actually show up in your dreams and make you lucid and this is the most common one that I use and I'm going to put a little twist on it as well. So the actual reality check itself is that you take your hand. You try and push this finger through the palm of your other hand. Now the reason that's so effective is because it's unmistakable. There is no way that you can do that in a dream and have a false positive. It's very unlikely because your finger either goes through your hand or it doesn't go through your hand. There's not really any sort of middle ground that there is with the text reality checks where you can look at text, read it and it can be all jumbled up but to your brain that seems like it's normal because your logical centers are shut down.  So when it happens in a dream, it's usually going to be more effective than any other reality check you could try. So that's why that is the most effective one and that probably will show up in your dreams and actually make you lucid. But here's how you can put a little twist on that to make it much more effective. So here's what you do and it's to do with your prospective memory, okay? So this is your memory of doing something in the future. So you want to remind yourself to do something when something happens in the future. And so here's what you do. When you are doing your reality checks throughout the day, you're going to do those reality checks where you try and push your finger through your palm and as you do the reality check, you're going to try and set the really strong intention or the idea in your mind that you want to remember to do that in the future, okay? So here's what I want to just stress this so you understand. So several times throughout the day, you're going to do that reality check as you are doing that. You're going to set the intention to do it again in let's say an hour's time or in half an hour's time or whenever you next see something strange, okay? And this is a really powerful, probably the best time to do a reality check is when it is when you see something strange. And I'm sure as many of you know, we often dream about the unusual things or the strange things. Let's say if you have just traveled to a new country and this happens to me all the time. You know, quite often when I go to a new place that night or at least that week that I'm there, I'll always be dreaming about that new place. I'll have more vivid dreams. I remember more of them and they're often lucid as well. Because when you go to a new place, it's exciting, it's novel. You know, you're trying new things, experiencing new things. The whole process is an incubator for lucid dreams. It makes them more likely. So here's what I want you to do. When you do the reality check, tell yourself that you will remember to do that reality check in one hour's time or whenever you next see something strange. Now, when you set that intention, you need to really focus on visualizing doing the reality check in the future. Not now, but in the future when you do some, when you see something strange or when you experience something strange in the future, not now, but as you are doing the reality check. And if you do those things, that will probably make the reality check show up in your dream and actually let you have a lucid dream.  However, there are some of you who will be watching this and thinking, I've tried that. I've tried everything to do with reality checks. Nothing is working. They're just not showing up in my dreams. What do I do? So I do have a complete guide to getting your reality checks to show up in your dreams, which is linked in the description. It really does get results. It's quite a powerful system. And if you follow that system, you will have reality checks that do show up in your dreams pretty much every time. And lastly, I want you to comment letting me know what your most interesting or unusual reality check is and how they have been showing up in your dreams that may be like what you're struggling with and whether they're actually working.  But to be honest, you're probably doing them slightly wrong, otherwise you would already be lucid dreaming. That being said, please keep practicing these things. You will get there. I'm sure you are very close to having your first lucid dream. And as I've been talking and replying to a lot of you in the comments, I really do believe you are so close to breaking through having lucid dreams and experiencing all of these incredible things because it really is an unbelievable experience.  Thanks for watching guys. This video and this channel was supported by my Patreon followers. Please consider giving just a dollar a month to support this channel or just click the links in the description. You'll find links to various lucid dream products, articles, techniques and tutorials. If you did enjoy this video, please click the notification bell and subscribe and I'll see you next time.