I'm Adam Williamson. I work on the Fedora QA team at Red Hat, which I've been doing for the last 10 years for my sins. This talk, I'm kind of surprised to see so many people, but it's great. It's not going to be super exciting. It's mainly just a dump of information about a bunch of things we have running in infrastructure that do useful tasks that not many people know about. And I was going to write this up for the rest of the members of my team, so that at least someone other than me would know about. And they thought, hey, if I'm going to do that, I may as well turn it into a presentation. So here we go. So these are the robots that I'm going to cover. The ones that I'm mainly going to cover are one through four. I'm going to briefly touch on five, but this talk is not really focused on those two things because they are independent systems that have a lot of documentation. They're very big. They have whole teams behind them. You can go and see talks on them. So this is more about these smaller things that people maybe don't know about. And I'm also going to talk about some things that are not quite robots. I wouldn't put a yet on the end, but there wasn't room, which are things that we have that are sort of partly automated or not really automated that I really wish were automated, but we just haven't done them yet, and I'm going to explain why. So a bit of basic background before we get going. I'm calling these things robots because it's a cool name. But what they really are is FedMessage consumers. Who is familiar with FedMessage hands? About a third half, so maybe I'll go over it. FedMessage is, as it says here, a Fedora-wide message bus. The idea was that pretty much anything in the Fedora project, when it does a thing, can send out a message and then other things can listen to that message. So for instance, if someone files a bug, there is a FedMessage. If a compose finishes, there is a FedMessage. If someone edits the Wiki, there is a FedMessage. And the message is just a little bundle of data that says this thing happened and some more information about the thing that happened. It's supposed to be replaced soon by a thing called Fedora-messaging. Do we have any FedMessage people in the house? Or no? There's going to be a talk about that, I believe, at this conference too, so you can go and see that if you're interested. Apparently it's all going to be majorly backwards compatible and by magic, we're not going to have to do anything, so we'll see how that works out. The things that I'm going to be talking about in this talk, the things that I call robots, are written under a pattern which is kind of called FedMessage Hub Consumers. Which I discovered when I needed to write the first of these things, and it's actually, once you get the pattern, it's quite easy and quite short to just write one of these things, which whenever a FedMessage of a certain type shows up, it does something. So I just adopted this pattern for a whole bunch of different things. So all of these things look quite similar to each other, because I wrote most of them and they all kind of work the same way. Taskatron and the pipeline, again, as I haven't mentioned those yet, they both basically do the same thing, but they do it a little differently. Taskatron has a much bigger framework called Triggers, which kind of wraps up FedMessages and abstracts it a bit. And the CI pipeline sort of consumes it through Jenkins, I believe, so it's not exactly like a FedMessage Hub consumer. It doesn't look like this, but basically it consumes the FedMessages and does things when it reads them. And another couple of things I'm going to mention, so quite a lot of these robots use a thing called FedFind, which is a Python library slash CLI I wrote back in the ancient days when we didn't have compose metadata. So in order to find a compose to work with it, you had to know a bunch of magic information about where it would be, basically. And FedFind was all that magic information wrapped up together so that you didn't have to do this manually. I was hoping when we had compose metadata FedFind would go away, but in the sad way of the modern world it kind of didn't. I've managed to throw bits of it out, but other bits of it are still useful. You know, you don't want in every application you write to re-implement, okay, let's go and download the compose JSON and let's read the JSON and let's do some very standard things with it. So FedFind has kind of become a library for doing that. And it also has helpers for doing stuff like, what is the current release of Fedora? This is surprisingly difficult to do programmatically. I mean, it's not really difficult, but it's harder than you think it would be. So it has a helper for doing that, which I use all over the place. Parsing compose IDs. It has a massively over-engineered helper for parsing compose IDs.  Oh, by the way, all of these light blue things here are hyperlinks. So if you download the slides for this presentation, which will be up on the shed site, you can click on these and it will take you to the pages for all of these things where you can learn more about them. And quite a few of these robots use a thing called Python Wiki TCMS, which I once did an entire talk on and it's very crazy. Basically, we store a lot of test pages in the Wiki for Fedora, which is crazy, but it's what we do. And sometimes we need to interact with those. We need to recreate them all. Like I told you, it gets really crazy. We need to edit them. We need to do things. Python Wiki TCMS is a library that does this. If you follow those links, Wiki TCMS with the capital W is what I call this whole crazy system. And there's a Wiki page that tells you all about it. Yeah, it's pretty hairy. ResultsDB conventions. It's basically a helper for submitting results to ResultsDB, which ResultsDB is kind of the standard for storing test results in Fedora and Red Hat, which is kind of neat. And this is just a way of submitting results to it. And my goal was to sort of have this library define conventional ways to store things in ResultsDB, so various different systems would store results in the same format. And right now two things use it. So it's technically a standard. This is used by a couple of these consumers, so I thought I'd mention it. So moving along, let's go through each of these robots. All of these things have documentation and you can follow these links and see them, but the thing that was missing is there's no overview anywhere that says these are the things that exist. You'd have to sort of go poking around the Fedora QA Pagger project and like, hey, what's that? What's that? What's that? So the idea is just to say, hey, these are the things that exist. They're there worrying away in the background doing useful stuff that you may not know about. So OpenQA Scheduler is kind of the big one. So we have these various automated test systems in Fedora. We have Taskatron. We have the Pipeline. We also have OpenQA, which I'm heavily involved in the maintenance of. It's a graphical automated test system for Fedora. It was written by the SUS folks and we kind of collaborated SUS on it. It does a bunch of tests on composes and updates and it's really useful, but it's not the focus of this talk, so it's kind of all you need to know. The fun thing about OpenQA is it doesn't do scheduling or anything like that. It gives you an API that you have to... It gives you an endpoint that you can touch and say, hey, run some tests, but it's your job as the person maintaining the OpenQA deployment to, you know, when something shows up, run the tests on it, right? So the project that we have is called Fedora OpenQA, and that's the kind of the wrapper around OpenQA for Fedora that runs tests and so on. So a part of that is a set of these FedMessage consumers, and the first one is the OpenQA Scheduler. So basically what this does is it listens out for FedMessages from the compose system, which is called BODI, and BODI will send out a message any time a compose finishes, whether it finished successfully or didn't, and this consumer listens to those messages. If it sees a finished or a finished incomplete compose, it says, okay, that's a compose that actually worked. I'm going to test it, and then it, you know, it uses FedFind at this point to find out various things about the compose, like which images it has that can actually be tested, and then where those images are, and then it sends, it goes and touches the OpenQA API endpoint and says, hey, look, there's a compose. I want you to test these images and off-go those tests. So this is all, you know, completely automated. Before we had this, we used to have a cron jump, which just ran every hour and said, I wonder if there's a new compose. This is much better. The other thing, obviously, we test updates in OpenQA as well. So when you create an update in BODI as a package, again, a Fed message gets sent out, and when you edit an update in BODI as a package, a Fed message gets sent out. And the schedule listens to those messages, and it then does a bit of filtering because we don't have enough resources in OpenQA to test absolutely every update that goes out. So it says, hey, are we going to test this update or not? If it decides we're going to test it, again, it sort of finds out some information about the update, and then it goes off and tells OpenQA, run these tests on this update. It uses a thing called the OpenQA Python client, which is exactly what it sounds like. It's just a little wrapper library for talking to the OpenQA API in Python, which I maintain. I didn't hyperlink that, but I probably should. You can Google it. So it's part of a project called Fedora Unscore OpenQA. So that links you to the Pagger repo for this project. And the second link, the OpenQA dispatcher Ansible goal. So in Fedora, all of these things are deployed within Fedora infrastructure, and Fedora infrastructure is maintained by Ansible. There's a big repo which contains a whole bunch of Ansible playbooks and inventory files and host variables and all of that stuff. And all of these things are deployed through that. So this just links you to the actual goal that deploys this robot. So in case you want to know how this actually gets deployed and you need to maintain it, that's where you go to change that. Also, all of these robots are deployed on the OpenQA server machines themselves right now. That obviously makes sense for the OpenQA scheduler and the next thing. It doesn't necessarily make sense for some of the others, but it's a machine that can run them and they have root access on it. So that's why they run there. Also part of Fedora OpenQA and part of the same role are the reporter consumers. So the other thing that OpenQA doesn't do is when the tests are finished, send the results anywhere else. It stores them itself and pursues their one true test system. So they're fine with that. But we actually want to send those results somewhere else. So Fedora's OpenQA sends out Fed messages as well. That's a plug-in for OpenQA. So whenever an OpenQA test finishes, Fed message goes out and says, hey, this test finished. So we have consumers which listen out for tests finishing and then a simple one takes that test result and forwards it to ResultsDB. That one is pretty easy because ResultsDB is basically a key value store. So what we have to do is consume the OpenQA result, do a little bit of munging on it to put it in the format we want and send it to ResultsDB. That part of it uses ResultsDB conventions, obviously. The much more fun one reports the results to the wiki. So what this means is that it edits a wiki page and if you've ever seen, just so you guys know what I'm talking about here, let me see if I can get a browser up there. Yeah, I can. I'll just have a look. In case you've never seen one of these before, these are the pages I'm talking about. So we're actually going to talk about this a bit later as well, but we have these big tables of test cases and results. So all of the results you can see here from Coconut are actually results from tests that ran in OpenQA and then got forwarded to the wiki. So what this robot does is basically it edits this wiki page and stuffs that result into that table. And all of the craziness for doing that is in Python wiki TCMS. And it's super fun because this is also human editable. The results that are not from Coconut are done by humans. So it has to be able to deal with human vagueness in editing wiki pages. So that's super fun. But it works much better than you would expect, believe it or not. So we report the results to ResultsDB. The results we report to the wiki are results from the compose tests and it does a bunch of parsing and says, hey, this was a result from this OpenQA test. That matched to this result on the wiki. I'm going to file it and blah, blah, blah. So yeah. That's another thing that these consumers that my robots are doing. Next one, check compose. If you're subscribed to the test or deval mailing list, you may have seen these mails that come out every time a compose happens that says compose check report. And they say something like, hey, here are all the tests that pass. Here are all the tests that fail. We also have read data about maybe memory consumption change since the last time. That's all done by check compose. Check compose itself is a utility for generating that report for an arbitrary compose. The robot listens out for OpenQA tests finishing and when it detects that all the tests for a compose are finished, which is a fun hack, it runs check compose on that and sends the result out to the mailing list. So that again, for instance, if you notice that these mails were mysteriously not showing up for a few weeks, this is the robot you might want to go and check and see if it's working. So the robot, the consumer is part of the check compose project. So the repository contains check compose and then it contains a consumer file as well. And there's an ansible role called check compose, which just deploys the fed message consumer and the script itself. And that is deployed on OpenQA because, hey, why not? Next one, so you know those crazy wiki pages I was telling you about? They not only get edited by the OpenQA result reporting robot, they are created by a robot, which is called rail valve consumer for historical reasons. So ages and ages and ages ago these validation events were created more or less by hand. We had a page we called a template, but it wasn't actually a wiki template. It was just a wiki page that you would open and copy and paste into a text editor and manually go through entering, you know, the compose ID that this was a test for and then you paste it back into the wiki and because there were four or five of these pages, it would take you about half an hour every time you did it and it was a complete nightmare. So a few years ago I decided to make that better. So I wrote a tool for creating those pages basically. There's a very complicated real template system in the wiki which absolutely no one but me understands. And to make the wiki create one of these pages you enter a sort of magic template string. RailVal is a Python library that sort of does that. You tell it you want to create an event for so and so compose and it enters the magic strings to the wiki and this causes the pages to be generated. RailVal consumer is a robot, the fed message consumer, which listens out for new composers showing up. It then runs through sort of a set of heuristics. It's like, hey, have we had an event in the last three days? Then we probably don't need a new one. Have we had an event in the last 14 days? If not, we definitely need a new one. If it's between three and 14 days it says, hey, have any interesting packages changed because the last time we had an event and if they have it creates a new event. And then that effectively runs RailVal and tells RailVal, hey, create a new event. RailVal goes and talks to the wiki templates and the magic happens. These pages show up in the wiki. So this is also obviously using Python wiki TCMS which is what it was originally designed for. So it also sends an announcement of the new event out to the mailing list. So if you're subscribed to Test Amounts, which Devel is subscribed to, so if you're subscribed to Devel you get these mails too, you'll have seen these mails go out saying, hey, a new release validation event was created. That's this. So if that stops happening, if the event stops showing up or the mail stops showing up, this is the thing that probably broke down. So this, again, this one has its own repository. It is its own project, RailVal consumer and there's an answerable goal for it. And again, it's running on the open QA service. That's where it runs. So you ever wondered how those things happen? That's how these things happen. Is this the final robot? Wow, I'm going through fast and I thought I was. Yay. The final of my little robot is called Auto Cloud Reporter. So we actually have one more automated test system in Fedora, which is called Auto Cloud, which we kind of wish didn't exist, but it's still rolling away somewhere. What that does is every time it sees a new cloud image pop out of Koji, it runs some tests on it, and it doesn't do anything with results. It keeps them itself. You can go to Auto Cloud and ask for its results and it has a web UI. But Auto Cloud doesn't have any ability to report these to results DB. And about a year ago, actually, or two years ago, one or the other, this was kind of annoying because we were trying to get everything into results DB and I said, well, Auto Cloud does send out Fed messages. So I wrote this thing. It listens out for Fed messages from Auto Cloud saying hey, I finished the test and then it goes and grabs the result from Auto Cloud and forwards it to results DB. So again, it uses results DB convention, so it actually files results in exactly the same form as the results from OpenQA Compose tests. So if you look at the results in results DB for Auto Cloud and OpenQA, they look exactly the same because they're both going through this library. I had something to say there and I totally forgot what it was. And it's not in my notes either. Oh, well, never mind. But yeah, that was, you know... Oh, obviously, if you look at results DB and Auto Cloud results are not showing up in it, this is probably the thing that broke down. Again, this is its own project because it's not part of Auto Cloud. It's like a sort of little module backing around it. It lives in its own repository and it has its own sensible role and again, it is deployed on OpenQA. So yeah, I did say we're not going to focus on these, but you know, just to sort of round out the talk, it would be weird if I didn't mention them. Taskatron was originally intended as Fedora's standard automated test framework. It runs tasks in response to events, is basically what Taskatron does. In practice, what it's doing for us right now is it runs very generic package tests.  Whenever a package gets built or in the case of a couple of tests, it runs them when the updates testing repository gets refreshed. And it stores results in results DB. It's actually where results DB originated. And this is not like the things I've been telling you about at all. Taskatron is a whole big project that has its own identity. It wraps Fed message itself. So it's nothing like any of the other things, but I just wanted to mention it. And the CI pipeline is the sort of newer standard automated test system for Fedora. And what it's mainly focused on doing right now is running package-specific tests. So if you've seen this whole thing about putting tests in your package's Git repository, and then they will magically get run, this is the thing that's doing it. It's basically based around Jenkins. There's a whole lot of other detail to it, but again, we're not really focusing on this here. And it's results are stored in results DB as well, although not at all in the same format as Taskatron's results, which is something we need to fix. But again, it has its own Fed message implementation, and there's a whole bunch of documentation in the wiki. If you just look up CI in the Fedora wiki, there's a lot of documentation of this system here. Or you can go above Dominic, who will tell you all about it. So the other thing that I did want to talk about, sort of specifically in this talk, are not quite robots. There's probably more of these. These were the only two I could think of when I was writing these slides, very tired, a couple of days ago. So we have these things which are important, and again, I wanted to brain dump and make sure people know they exist. In case I get hit by a bus, then someone's going to have to do this. But they are not robots, and they are not automated. So this thing called Update Trackers. If you've ever dealt with the Fedora release process, you know we have this whole thing around blocker bugs where you have to file them on the bugzilla and you've set them to block a particular tracker bug and then there are meetings and tags and all sorts of magic happens. Those tracker bugs have to get created somehow. And again, up to a year and a half ago or so, that was done by hand. Just every time a release happened, someone, usually me, went into the wiki and copied and pasted all the text and made it for Fedora 29 blockers and it took about two hours and it was stupid. And then I got sick of doing it, so I wrote a script to do it. It's called Update Trackers. And you just run Update Trackers 29 and say Fedora 29 just came out and it will go out and create the new tracker bugs for Fedora 29. It goes and edits the 28 tracker bugs and takes some old aliases off them and stuff. And it also edits the wiki because I love writing things that edit wikis. There's a page in the wiki called Housekeeping, I believe, where there's actually a list of all the tracker bugs going back to like Fedora 10 and it's a bunch of wiki tables and I had to edit it by hand and transfer bits of the tables from one page to the next from one part of the page to the other and it was a whole mess. So it does that for me too, so I don't have to do it manually. So basically, someone has to remember to run this script the day a new Fedora comes out or else the tracker bugs don't get updated. We actually create them two releases in advance. So the Fedora 31 blocker trackers exist right now because they were created the day 29 came out. It uses Python Bugzilla, which is a Python library for interfacing with Bugzilla because it needs to create the bugs and Python wiki.tcms. It doesn't really need wiki.tcms except that the Fedora wiki uses open ID authentication, like fast authentication and the wiki.tcms is really just a wrapper around Python NW Client, which is a generic media wiki client library. This would use that directly except for the auth thing. So it just uses wiki.tcms because wiki.tcms deals with the authentication. The other one that is not automated. We have this thing called blocker bugs. Again, if you've ever dealt with the Fedora blocker process you may have come across this. I'll just show this in a browser again. Does anyone have a cop suite for Kevin? Come on, network. You can do it. Anyone want to sing a song while we wait? Audience participation. You may have seen this thing. It's spreading. It's basically a sort of web UI that wraps around the whole blocker thing because there are certain things it's awkward to do in Bugzilla. You just want to see the current blockers. It's a bit annoying because you have to know the aliases or you have to have bookmarks or whatever, finding out the status of all of them. It shows updates. It does a whole bunch of convenient stuff. But if you look at this thing, where is the top bar? I don't want to get to the front page here, if I can. I don't know why it's not showing the top bar. Wait, is it because we just rewrote it and it's broken? Oh, this thing. I think the screen isn't wide enough. If you go to blockerbug slash current, it redirects you to the current milestone. There's also this list of active milestones. Obviously, every time a beta release comes out or a final release comes out, these need updating. The current milestone is now different. The active milestone is now different. This isn't automated. Someone just has to remember to go into the admin front end for this thing and edit it by hand, which again is an annoying manual task that's a pain to do. We have a ticket open to automate this and just make it happen so we don't have to do it and we've just never got around to doing it. It would be nice if that happened. There's something we need to fully automate either both of these things, update trackers and blockerbugs, which doesn't exist. Interestingly, there's no fed message. There's no anything. When a new Fedora release happens, you can't be told about that in any kind of programmatic way, unless someone knows something I don't. There's no way you can set something to happen when Fedora 30 beta comes out because nothing tells you that. That's the thing that's missing that we need to get release engineering to do. If we had that, then we could automate these two things and actually a whole bunch of other things that happen when releases come out could get automated. To summarize, I really just wanted to put these things out there and make people aware of these little tasks that are going on in the background and processes you might be dealing with that get done by robots that are quiet and helpful and work nearly all the time. But sometimes they just break down. I mean, stuff happens. Fed message stops forwarding messages. Someone invents a new with compose type and it makes fed fine choke and all of these things stop happening because fed fine starts crashing. I just kind of fix these things as they happen, but again, that's a bus factor of one. I wanted to let people know about them. If I'm off on my desert island and these things start breaking down, these are what they are and they need fixing. Things that indicate that one of these things has broken down, like the validation events in the Wiki just stop appearing or announcement mails forward. They keep appearing, but announcement mails for them aren't being sent, which has happened before. Results from the OpenQA tests stop appearing in results TV, stop appearing in the Wiki. If any of those things happens, it probably means that one of these robots has died. Sad robot. Yeah, so that's actually gone faster than I expected, which is great. At this point, if anyone has any questions, then fire away. Yes. Okay, so the question was, how do we run those robots? Where are they running? They run in Fedora infrastructure and openQA servers. There are two openQA servers, a production and a staging, and most of these robots have production and staging versions, so the production one runs on openQA production server, the staging one runs on openQA staging server. So it's the same basically the machine. If you go to openQA.FedoraProject.org, it's the machine that is running that. For three of these, it makes sense for them to run there. For the others, they could really run anywhere. Something like the Auto Cloud Reporter could run anywhere, because all it needs is to be able to listen to the Auto Cloud messages and send to ResultsDB. That's another reason I run on this machine, because ResultsDB authentication is basically IP address based, and this is a machine that is allowed to submit results to ResultsDB, so it's a sensible place to run them. That's how it's done. And the way the deployment is done is, like I mentioned, it's via Ansible. Yeah. And your second question? Kevin could maybe speak to this. It's one of those things where if you start doing it, it makes you want to fix a bunch of other things. So the whole result process kind of kicks off an initial event, and then lots of things happen, because that's how it should really work. But that's not how it works right now. I mean, stop me if I'm being inaccurate, Kevin. It's like you start thinking, why doesn't this task happen magically? Why doesn't this task happen automatically? How do you do this whole thing? It becomes one of those. There is a lot of doing with FPDC, Aurora Product Definitions Center, but it's not in place yet. Yeah. The answer is basically that it naturally is one small part of a much bigger project, so the problem is getting that much bigger project done. It may be one of those things. I've actually thought of doing that, honestly, but the message currently is every half an hour and sends out a message of the changes, and if we don't get the project done in another year or so, maybe I'll do that. But that's kind of why it's never happened so far. Any more questions? Dominic. What are the plans there to monitor the robots? Are there some end-to-end testing? Yeah, there is. Good question. The question was, do we have plans for monitoring the robots doing end-to-end testing? Apparently, an extremely advanced intelligence system called me, I notice when these things stop happening and fix it, but obviously that is not scalable or sustainable, so yes, we should have automated monitoring for these. There's some to an extent anything that runs in infra is monitored by an ETS, so, I mean, when OpenQA gets monitored when a NIT, it goes down. The tricky thing about automating monitoring of these things, it becomes the kind of the map of monitoring, because if you want to monitor whether the validation event creator is working properly, you kind of need to know the rules about when it creates events. So you're just going to re-write it. I believe, again, Kevin may know more about this than me, there's some kind of plan for generic FedMessage monitoring like things that should happen in response to FedMessages if they don't happen. Do you have some NGS checks for that kind of thing? Yeah, it's basically just a I have not seen it. It does a query, a data worker query that says what was the last validation event or something like that. If there's a, you know, you can say there has to be one of these ever needed or if it works, but that's kind of not... So that would be kind of the way I go about doing it, but yeah, it's honestly, it's just been a I'll get that done sometime kind of the thing, but that would be the way I go about doing it. I'd probably use that and say, because you can, it's basically, you can say, yeah, if there hasn't been a new validation event in two weeks, probably something is wrong, all go ahead has been broken for two weeks is the other, the other case where you don't get a validation event for two weeks. Yeah, that's definitely something that we need to set up for these. Yeah. Do we have more questions? Jack. Auto Cloud. Does it run the test itself or does it monitor the QA? No, it's running test itself. It's a whole kind of self-contained test system. It basically came about, I believe, again, if someone thinks I'm wrong, please correct me, as part of the whole two week atomic thing where they really needed some basic checks of cloud images and we didn't have anything else at that point that could do this. Task Patrol can't do it really, I mean it could, but it couldn't at that time. Open QA, there wasn't a round or just wasn't geared up for doing this kind of thing so it was basically one of those we need this thing right now, someone wrote it in a week kind of things and it was just a very quickly thrown together thing that I believe it runs, it spins up a Docker basically and runs the image it wants to test and makes sure that that actually comes up and then it also does some, it just runs some basic tests on it which are more or less just shell scripts and expects them to pass or fail and then it's very sort of, I want to say simple slash basic slash it gives you a one or zero result basically like for each thing it does it just says for each image it just gives you a pass-fail which is actually a synthesis of about 15 different things it's doing but you just get this image passed or this image failed and that's the result that gets forwarded to result CD it's one of those things, as I mentioned at the time we kind of wish it didn't exist but these things just kind of show up so we'd love if it got folded into the pipeline or got folded into something which is not itself but it's one of those things where it works right now and they'll want to have the cycles to do that yeah so that's why Auto Cloud is around. I honestly haven't looked into it in much detail for a while but I know it's still there still doing something at least as on a few weeks ago because I checked that there was still results showing up for it and there are still results showing up for it so it's there, yeah Oh Dominic, yeah please One of those things, how could I how would you suggest I do that without breaking anything? Sorry, you want to... If I contribute to one of the contributing levels Yes, the more complicated ones have test suites and they actually have CI set up through the Pagger CI integration system so you can actually send the pull request I honestly don't remember off the top of my head which ones this is true of, I think so if you send the pull request for I'll consume or it'll get CI then we'll run the test suite and your commit will be blocked if it doesn't pass some of them are super simple so they don't have test suites but I'm not going to live go through them and remember which doesn't Fedora OpenQA has a test suite as well and I believe it's set up for CI yeah I don't remember I mean something like the Auto Cloud Forwarder I mean it's such one page thing that I wrote and it has worked ever since that I've just never got around to going back and putting a test suite in it but the ones that are significant do have tests and yeah so that's actually just a good point is as I mentioned all of these have links to the repositories the repositories are hosted on Pagger which is just like GitHub more or less so if you want to look at these things, contribute do them, make them better please do, they're open for pull requests and there is documentation as well there's pretty decent explanations of how they work and hopefully should be quite easy to to look at and mess with so please do if you want to end something, please send it along anything else or is everybody done that was just a yawn right yeah I saw how you go just joking alright in that case thanks a lot for coming along everybody


The Immostate Commissioner of Police, Abutiyaro, has relaunched Operation Search and Flush to ensure visibility, police and patrol in the state. CP Yaro charged officers at the command headquarters to shun any act of misconduct that's capable of jeopardizing the image of the police. He said the exercise is geared towards restoring peace for businesses in the most state to thrive. And by the grace of the governor, the chief security officer that the governor is here to witness your launch and to coordinate further logistic welfare for you, you must live up to expectation. I want you to disconnect yourself from your old negative patrol mannerisms. And you know those negative patrol mannerisms I'm talking about. Extorting money from motorists, hostility to members of the traveling public, improper and intemperate use of arms, sleeping while on patrol duty, appearing dirty, shoddy and unkept while on patrol. All these ones I've enumerated are the cardinal no-go areas that under the relaunch scheme we are not going to tolerate it. You must appear neat in uniform, you must put on the best culture of humanity and distance, and you must avoid corruption-leading behavior. And don't forget to hit the notification button so you get notified about fresh news updates.


So this is what my nails look like. Oh, they look so bad. I kind of wish that I picked a day when my nails were in a little better condition. This is real life people. Anyway, we're gonna sort it. The most important thing when you're applying fake nails is not the type that you're using, but actually the size that you're using. If you apply the wrong size, they do not look great. The majority of people will have an index finger and a ring finger that are pretty much the same. Then your pinky will be about two sizes smaller than that.  Does that make sense? Okay, you have to make sure that they fit perfectly. They're like shoes. You have to get the right size. Do apologize. If you hear me clicking, I have JHS, which means that my joints click a lot. So if you can hear clicking, that's my joints happens a lot. These are the nails that I use. They actually do have petite ones as well. So if you have a very small nail bed, petite is the way to go. I'm gonna be using the regular oval. It's not sponsored by Nailene. I don't think I've ever been sent anything by Nailene, to be honest. I find the easiest things to lay out your nails in pairs so you're not gonna mix and match and end up getting glue everywhere. It just makes it simple. So I start off with the pinky always. It's the first thing that you wanna find. When you get a packet of nails, go for the smaller size and have a look to see if that fits your pinky. And it should slide really nicely on a nail bed. There's no glue on this, I'm just trying it on. It's really nicely on there. It shouldn't creep over to the edges. If it does file the sides, if it feels like it's a little small and you can still see your nail, then you need to go up a size. That's the first one. I then do my index because that's the next size up. My index finger is actually smaller than my ring finger even though my index finger is actually bigger in size ring size compared to my ring finger. The nail bed is smaller and that's what we need to look out for. So what I find that I have to do with my index finger is that the size is somewhere in between. So what I do is I kind of manipulate the edges and sort of push them down and warm them up between your fingers and then slightly push the edges and that actually makes them bigger. So if it's slightly in between two sizes, that's a great way to kind of make it slightly bigger. Ring finger is next index finger and then we have the thumb. So let's actually start applying these babies. A lot of brands just put on really cheap glue. It means that nails fall off and then you have to buy more. That's how they get you but nailing have a really long lasting glue so I love it so much. Before you start applying, be extra careful with nail glue. Don't have pets or kids around. This stuff is flammable. It can make you go blind. One time I set my hand on fire because of nail glue. I was lighting candles on a cake and all my hands went on fire. This stuff is dangerous. So I just apply a little dot, applied a little bit of glue just on there. I don't put any on the actual nail itself because that's enough usually. Hold it then for a few seconds and it should set pretty well. You wanna make sure you don't have any glue coming around the edges.  If you use tissue, it'll just stick to your hand. Don't use tissue. As long as you apply a very even thin layer, you're good to go. And that'll be on there solidly now.  Other side, on average, this takes me about five minutes. Make sure you don't stick your skin to the actual nail. So once I apply it, I pull down the skin like this to make sure that there's no glue on my skin that will stick to the nail. But that's why it's really important not to over-apply the glue. See, there's absolutely no glue coming around this edge whatsoever. And that's what we want. Do not push it underneath your cuticle and make sure it's not touching your cuticle either. A lot of people will file their nail bed in order to help it have something to hold on to. However, I find for me, my nails are so dry that I don't need to. Oh, this glue is not sticking. Sometimes the product can kind of separate. So what I wanna do is pop the lid on and give it a shake. And now it is sticking perfectly. Other side. Probably because I didn't put the lid on in between each application. And then there you go. Much, much better. You might need to file the tops of these, however, because sometimes they can have a little bit of a rougher edge. The great thing is nail polish is super long lasting when you apply them over the top of this because the nail polish is sitting basically on plastic. The nailing ones are the ones that I wear day to day, but I do treat myself to the occasional fancy pair like these ones by Kiss. Elegant touch have some great ones. Primark have some great ones too. These are tinkerbell ones. How cute are they? And they're only two euro and they're always going on sale. As long as you get the sizing right, you are good to go. I'm gonna actually paint these. This is the new collection by Lancome.  And that is our look finished.


Hello, good morning, dear colleagues, dear Marta, Cecil and Susanna. I'd like to thank you very much for bringing this very interesting topic to this year's E-Meeting in Barcelona and of course for inviting me to take part in this session. I will talk today about my new research project entitled Textiles and Seals, Relations Between Textile Production and Seals and Sealing Practices in Bronze Age Vs. The time directing, I just have started it this year and I will be continuing until 2021. My focus today is textile iconography and the question of interpreting the small-scale representations in Glyptic that may refer to manufacturing of textiles. I will start with an introduction very brief to Greece and in the Bronze Age and the Young Glyptic, then I will shortly refer to how the imagery of Glyptic has already proved to be a potential source of textile knowledge and what is my methodology and approach to the iconography of textile production. Finally, I will discuss Middle Bronze Age Prismatic Seals in more detail as a case study demonstrating that more complex iconographic references to textile production may have also existed. I will close my presentation with some conclusions, obviously, with an important qualification that needs to be remembered. However, these would be the first observations from the ongoing research. The Bronze Age in Greece generally covers the third and the second millennia BCE. The Bronze Age cultures developed on the mainland and they comprise the Haladic and Mycenaean cultures. There was Cycladic culture on Cyclades and Mycenaean on Crete. Seals were produced and used throughout the large part of the Bronze Age. However, with certain geochronological differences between Crete Cyclades and mainland, the uninterrupted use of seals from early to late Bronze Age has only been attested on Crete. For more than 100 years, agent Glyptic has been widely explored as a valuable source of information about many aspects of life in Bronze Age Greece and intensive research has been undertaken into the spragistic use of seals as well as symbolic and talismanic function of seals and their remarkable iconography. However, the complexity of relations between textiles and seals has not been fully explored until now. At first, seals were impressed on clay textile tools, specifically lume weights, a practice that has been observed throughout the entire period of the spragistic use of seals. Secondly, textiles, basketry, weaker work and other organic products preserved as impressions on clay nodules that were still impressed themselves. Cordage impressions, often with knots, preserved under flat-based nodules, so-called pacan plumbin, and inside single-hole hanging nodules. There are also extensive iconographic references to textiles on seals. They may be classified as descriptions of costumes and fashion, sacral textiles such as offerings of textiles or textiles that had some symbolic meaning like sacral knots, motifs resembling textile patterns and more recently recognized symbolic references such as spiders, references to raw materials and possibly dye stuffs such as woody animals, goats and sheep, fibrous plants such as flax, muricida shells and possibly even mass-producing white silk. And finally, references to textile tools and production such as lume weights and weavers first recognized by Brandon Burke and the warp-weighted looms recognized by me. The last three categories marked by red blocks are of special interest in my research. Since the knowledge of textile technology has noticeably progressed and detailed understanding of the Shen Operatua has increased in recent years, iconographic references to textiles are more visible in ancient imagery. Thus, potential raw materials and textile tools may also be recognized in a gel-glyptic on the basis of knowledge of textile technology both prehistoric and traditional as well as experimental archaeology. Here, flags are warp-weighted loom and loom weights motifs or chosen to illustrate my approach to the imagery of textile production in Glyptic. Please note that in this presentation I'm only interested in a visual form of a motif that I identify as a flax, otherwise recognized as a hieroglyphic syllabogram 031 representing an unspecific plant and I'm not going to touch the question of early writing and visual form of hieroglyphic science. The preliminary identification of motifs is based on the graphic visual resemblance to actual objects here, flax plant with its long stem and plant-solate leaves and seed capsules and the general form of the warp-weighted loom and the appearance of hanging loom weights. This identification may further be supported by iconographic compranda with other arts and cultures including the conventions adapted for small-scale representation, for example, in Mesopotamian Glyptic. Then possible classification of procedural sequences in textile production into iconographic conventions might be investigated including so-called technical gestures of textile workers here presumably required by weaving. In case of multi-faced seals such as the metalbrowns age prismatic seals from Crete they already recognized motifs, for example loom weights or weaver width loom weights should be compared and cross-checked with motifs represented on other seal phases in order to determine if any combinations of textile-related themes or repertoires existed. This question is especially important for this Madame Minant reasons since no relations between depictions carved on all three seal phases have been discovered so far. The existing hypothesis suggests that prisms may have belonged to officials that are more than one administrative function and thus seal phases might refer to different responsibilities of an individual. According to other scholars including the recently published monograph by Maria Anastasiadou some of these depictions might have been just imitations of the hieroglyphic inscriptions that also appear on these seals. Could textile production be a theme that possibly linked different seal phases of some of the prismatic seals? To answer this question let us have a look at the basic statistics first. There are 600 prismatic seals altogether including the pieces with decoration that is not readable anymore. The motif of weaver width loom weights has been attested on 23 seal phases and the motif of loom weights alone on 31 seals. At least every tenth seal refers to general motifs of loom weights depicted alone or with the weaver. The seals such as represented on the slide with all three phases possibly referring to textiles and textile production are very rare yet they exist. The observed combinations comprise a motif showing a woody animal that is an animal with horns identified as goat or sheep sometimes as a grimy or a proton of such an animal and a spider, a symbolic reference. There is also a combination with the repeated motif of two woody animals on two seal phases here possibly shown in a reproduction sequence and combinations of a woody animal and a possible textile tool such here possible weaving sort and bitters. There are also repeating combinations of the loom weights motif alone or with the weaver depicted on two seal phases out of the three. The most popular is the combination with woody animals and this appears altogether on 23 seal phases. Equally differently distributed frequency is upset for the combination with various figures of male, never female, represented alone or in groups. Then go depictions of various pots and vases sometimes accompanied by a man four and five accordingly and the same in number are combinations with spider or spiders three and six examples. Then goes the motif termed as a duck lion, two and six examples and the fish motif, one and five examples. There are also combinations with a motif of a waterfall for examples and with ornamental motif such as a whirl free examples. Therefore most of the repeating combinations with the loom weights motif do not demonstrate any further references to textiles. On the other hand, the motif state possibly referred to textile production such as spiders are generally popular on prismatic seals. For example, spiders can be recognized on 56 seals thus obviously spiders were also depicted in combinations with other motifs than loom weights. Even if I believe that some of these other combinations with spiders may reveal further relation to textiles in dual cores, the possible meaning of the spider motif might be different in different combinations. To conclude, the imagery of a gene-glyptic reveals indeed manifold references to textile production including references to raw materials, die-staffs, textile tools and works. This multiplicity is especially visible on the middle bronze age prismatic seals from Crete where the loom weights motif appears on every tense seal and textile related combinations of motifs might be observed on two or sometimes even three seal faces. The general complexity of textile imagery in a gene-glyptic will be further investigated with the help of a database still under construction now designed specifically for textiles and seals project by the Digital Humanities Laboratory of the University of Warsaw. The following concluding remarks will be formulated as questions without any secure answers, yet posing them seems to be helpful for understanding the possible variety of relations between textiles, their imagery and selling practices. Assuming that particular faces of prismatic seals indeed corresponded to different administrative responsibilities of an individual seal-beer, it is tempting to identify these possible responsibilities on the basis of iconography. In fact, several crafts or professions such as textile and pot-making, sometimes as we have seen represented together, archery, possibly fishing, may be recognized on these seals. Textile production seems to be particularly well represented in this context. Yet, there are also seal faces bearing depictions of various animals, including odds, corpios and centipedes, as well as purely ornamental motifs that may not easily be connected to a specific craft or administrative task. Therefore, the imagery of prismatic seals must have had more complex meaning even if the suggested correlation between the tasks and images may still be valid. Thirty combinations comprise the Lumoids' motif and the depiction of woody animals, so it's nearly half of the representations of the Lumoids' motifs is combined with animals. Again, it would be tempting to interpret this regularity in a relation to the responsibilities of an individual seal-beer and his or her control or involvement in two procedural sequences of textile production, wall gathering and weaving. Yet again, the already expressed reservations are valid also for this interpretation. Still, the revealed textile-related combinations of motifs on different seal faces allow to consider the three-sided prismatic seals as potential iconographic entities, which meaning is encoded on all three seals faces, and thank you for your attention.


This will be a day that will go down in state history. April 27, 2011 is a date that will forever mark Tuscaloosa and the University of Alabama community. A decade has passed since an EF-4 tornado touched down in Tuscaloosa, tearing apart buildings and leaving wreckage in its path. Six UA students and one UA employee were killed in the storm. In total, 253 lives were lost across the state of Alabama, including 53 from Tuscaloosa. The UA community will never forget those who died and the thousands who suffered from the devastation of that fateful day. In the aftermath, the university and the city bonded together to heal, recover, and grow, rebuilding our community and forging essential partnerships that influence the university's mission of teaching, research, and service. In the years since, UA has girded its storm preparedness to become a leader in the state, opening avenues for research and building deeper, more sustainable service opportunities for students to engage the community. Although we will never forget that tragic day, the strength and resiliency of our community is the lasting legacy that keeps us forever tied together.


This is Melissa Armo with the Stock Swash, and I'm reviewing Amazon here today. This is, I'm actually lawn the stock in an auction. I've been lawning it for a week now, yeah, it's a week tomorrow, and it's very interesting because I was up a crazy amount of money in this yesterday, and it really held all into the close, even though it fell down a little bit here, it really held the price very, very well yesterday, way above three, and today it opened at three. So I was up like over $4,000 in this yesterday, this morning I got up, I was up like three something, 3,000 something, and then it pulled all the way back. So it gapped up today with the market, but fell, market held better today than this, but this ran up higher yesterday than the market, so it's neither here nor there. This is still really, really good, so what happened was it fell all the way down, and then it pushed all the way back up, and for like a smidgen of a second I considered buying more of this, and I said no, I'm gonna leave it, because I have a great price in this. My average cost in this option is 1.77, and I just don't want to do anything else, and if I take more it's not gonna make my price better, if I take more I'm just taking more risk, so it's a good trade, I'm just gonna play it on through, but what I could have done is, I could have taken half the position off yesterday, I could have made $2,000 yesterday and been in only half the position, I have 20 contracts, I could have taken 10 off, made two grand, booked it, and then whatever happens happens, and then I have 10 more, which is a thousand shares, but I kept them all. In my mind I was thinking I would get out of half, if it would be like over five, and yesterday was at four, so it really wasn't that big of a difference, so, but I didn't get out, I didn't get out, and then that was that, and then today it ran up, and I was up good money in it at one point this afternoon around lunch, and I could have gotten out of some of it, but I really, I really think I'm gonna hold it, I really think I'm gonna hold it now through the earnings call, am I calling this and the earnings, is that a gap's up, is that a gap's up, so, so I'm holding it through, my strike price on this is 680 to 15, which is here, let's find the exact number, oh there's exact number, that's the exact number there, the high of the day of the stay in 1217 is the exact number of strike price, so I have to be over that in the money to make over the strike price, now somebody said in the room today, gosh, so that's a long way away, I'm thinking 700, and in my mind I'm like 700, I see 700, so if it goes to 700, I'll be up $17.50 in the money, and you can do the math when 2000 shares, but I could have booked two grand in this yesterday, I could have booked 1500 in this today actually, but either way I could have, I didn't, then I would have only had a half the position, this is a good position, I have $3,500 at risk in this, but if it works out this could be a 10-hour trade, and if it doesn't I'll lose $3,500, but I could have booked 2,000 yesterday, I could have booked 1,500 here today, so for example, like, if I had gotten out, and this was one way to do it, and I didn't do this, because I really, I love this call, this is a such a strong, strong call here for me, I really believe in this call, 100% conviction, but what I could have done is booked $2,000 yesterday, cut my risk and a half, I would have been at risk then 1750, and booked two grand, I would have, no matter what would have happened, then I would have made $250, no matter what would have happened in the area, so that's one way to play on these through, and when I make these calls sometimes in the room, everyone in the room could do that, if you do them with me, I did not play that this way, but you could have, and I could have, and I didn't. In my mind I was thinking $5 to 7 prior to the earnings, and then I was thinking, okay, that would make it worthwhile for me to take it out, but I, I, we didn't, we didn't get there yet, but who knows, we could tomorrow, the FOMC minutes announcement are out tomorrow, and I see the market that's going to rally on that, so all the strong stocks in the market will rally on that, Apple's earnings out tonight, and I see that that's going to gap up too, so everything should just fly, and this really had a nice recovery day into the close here from the drop off it had this morning, so this sell set up here, it's during the daily chart is not going to fall through, it just, it just, it just ran up for four days and then went poop, and that's it, but it's, it's, I'm up in this trade into the close, and I have a good price in this at 1.77, but I will tell you, these things, these things move a lot, I mean, these things really move, and this is the stock moves, this moves, moves, because for me to be up that much, and then it pull back, and then it swish up again, I mean, this is, I can, I'm getting a feel for these things down, these are very expensive, which is why I'm doing the options, these really have a lot of momentum, like crazy momentum, and I'm, I'm kind of, I'm feeling that now, and sensing that with being in, this is an option, being in this as a day trade would be, would be, would be nutty, but I don't day trade this, I'm in the option, but it's, I can see how, how these things move, I mean, they're wild, so it's, it's interesting, it's good, it's fun, it's, it's very, very fun. Anyways, if you'd like more information, email me at Melissa at the stockswush.com, Amazon, option, I'm in it, strike price 632.50, my call is it gaps up on the earnings Thursday night, and I see 700. So that's what put you in the money over that. The expiration date is 129. Good luck, everyone that's in it. The room is in it. And some people have, I think the 700 ones, some people have 680. I think 632.50 is a nice number. Now I just found it here in the chart. So I like it. Email me at Melissa, the stockswush.com if you'd like more information about learning my gap method. The class is this week in January 30th and 31st, and you still have time to take this. If you can get in this trade under $3 cost at the 680.250, it's good. Like I said, it was worth $4 yesterday. You're not looking for a time value here, you're looking for it over the strike price. So for example, I have it at $177. So for example, if you can get it, let's just say at $3, it'd be $300 for one contract, which is 100 shares, it costs you $300. We got it at $3 and today was it to something, then you if it goes $17.50 in the money, then you would make $1,750 minus the 300 that you risked in it. So that's a very good trade. Okay, that's an excellent trade. That's that's a very, very good trade. That's like a five, six hour trade. And, you know, so it's worth the risk because it's a huge risk to reward. And you're out of it the next day and you must get out of the trade. So you must get out of the trade by Friday, the 29th. Because that's when the options expire, as you must get out of it, then you're not playing this for the time value. If you do what you're playing this for over the strike price move, so you risk what you can afford to lose in it, and is a fixed amount. Okay, email me at Melissa, the stockswitch.com if you'd like more information on that call or the overall gap class, which is this weekend. Thanks, everybody. Have a good day.


Well, one of the key questions in monetary policy is how does the financial sector transmit monetary policy? And what my work is doing is sort of looking at this question deeply. And what we find is that it's going through the pricing of deposits. So deposits move less than one for one with the short-right. And as a result of that, banks basically expand and contract a balance sheet as monetary policy changes. That shows up in lending, and it also shows up in terms of insulating them from interest rate risk. What's really stimulating about the conference here is that we have both academics and policy makers participating. And one of the sessions just recently talked a lot about how policy makers make use of our research, in particular how macroeconomics started incorporating a lot of the concepts from finance. And that's exactly what I'm working on, and so it's great to get some feedback from the policy makers on what they think about our work.


Good morning, everyone. Welcome to BC 308. Thank you for connecting to the class today. Let's pray and get started. Maybe somebody could lead us in prayer, please, and we'll get started. Let's pray. Dear Heavenly Father, I come to you under the name of Jesus. I thank you for this day. Thank you for the class that you have given us. And, Lord, I thank you for revealing the things to us, Jesus. You considered us worthy enough. So we couldn't know this. We could understand your will, your plans and the future, what it holds. So we can be people of hope, Jesus. And what I pray that as we see the prophecies and try to understand them, what I pray that Jesus, you will, whole Spirit, you will guide us, reveal us the deepest truth and fill us with your hope, Jesus. Fill us with your word so that we can go out, reach the gospel truly so that the people who are hopeless will be filled with hope. We thank you for your words. We thank you for past rashes. And I thank you for all my classmates and Jesus name I pray. Thank you. So before we move forward, we are in now in the book of Daniel. We're coming close to the end of the book. We have chapters 11 and 12 that we plan to complete today. Before we move forward, I just wanted to see if there's any questions from anybody in the class on what we have covered so far up to Daniel 9. Any questions? I know last week we went through Daniel 9 and if you went back and thought about it, did you have any questions? Did you want any clarifications? Anybody? Anything you wanted explained? If you don't, we'll move forward. Okay. So let's move forward. And of course you're always welcome to pick up any questions at any time. So we covered till chapter 9 in chapter 10. We're not going to go into chapter 10, but in chapter 10, Angel Gabriel is explaining to Daniel what is happening in the spiritual realm.  There were things happening and Daniel is, you know, he was in prayer for 21 days. And so Angel Gabriel explains about what's happened and what is going to happen in the spiritual realm. Basically, we understand through what we see in chapter 10 that there are rulers or spiritual powers over geographical regions. Chapter 10 refers to as the prince of Greece, Persia, the prince of Israel, which is Michael, the archangel assigned to Israel, the demonic powers of Persia, that's Iran, over Greece, and how they were trying to intercept and interrupt Gabriel from coming through and how Michael the archangel assisted Gabriel and he was expecting the same to happen on his way back. And I just want to point to verse 14 of Daniel 10. Daniel 10 verse 14, where Gabriel says, Daniel 10, 14, I have come to make you understand what will happen to your people in the latter days. For the vision refers to many days yet to come. So Gabriel says, I'm here to help you understand what happened to your people in the latter days. So that was one of the key things we saw in chapter 9. When Daniel 70 weeks that Gabriel spoke about to Daniel in chapter 9 had to do with your people and your city. That means Jewish people, the city of Jerusalem. That's repeated here in Daniel 10, 14 to your people. I mean, this is very specifically to your people in the latter days. That is, he's come to speak to Daniel about things about the end today, things in the end. So the vision refers to many days. So with that background, so we're not going to chapter 10 because it's more of an insight into the spiritual realm and what was happening at that moment. We are now going to go into chapter 11. Now chapter 11 is a very interesting chapter because there are two portions to it. There is the portion which we would refer to as the near term prophecy. That means something that would happen within the next couple of hundred years. Next couple of hundred years. That's the near term. And then there is the prophecy that would be about the latter days, the latter days. So chapter 11 can be broken into these two parts. So I'll just go ahead and share the notes and I've put this in the notes. So chapter 11 in your notes. Chapter 11 versus till verse 39, 36, till verse 36 or let's say verse 35. Till verse 35 is what we would refer to as the near term. And then we see what we would put as the long term, meaning something that's going to happen in the latter times. So and we will see. And we will see. Now we're not going to read chapter 11 verse by verse, but I'll just give you a summary. Basically, in chapter 11 till verse 35 verse 1 to 35. Daniel is going through the events that are going from the Medo Persian, the Greeks, and then all the way to what will happen as enemies from the North and from the South fight. So the North referring to Syria and the South referring to Egypt. Israel as a land is sandwiched between Syria and the North and Egypt and the South. So he focuses on what happens between Egypt and the South and Syria and the North. He focuses on what happens between these rulers over the next several hundred years in the coming time. So near term. And historically, when historians look back at what Daniel has written here, verses 1 to 35, and compared to the actual events of history, they're able to map it so beautifully. And what's amazing is that in this little passage, and I just put it down here at the beginning, 135 events are foretold about 200 years before they actually happen. So in this piece of text, Daniel 11, 1 to 35, numerous details, and somebody has counted it, I didn't count it. And somebody has counted it and arrived at this 135 events. Foretold, prophesied 200 years before they. So it's near term, meaning it was a few hundred years from then, but it was in detail. So what do we see versus, and I'll just go through as an overview, because it's a lot of history and, you know, kings and so on, which we are not familiar with, but people who study history, they're able to map it, that what Daniel has written and what actually happened. But just giving us an overview. So Daniel 11 verses 1 to 4, he speaks about the Medo-Persians, the means and the Persians. So he talks about three more kings arising and whose king was going to, from the Beads and the Persians. And then he talks about Alexander the Great, verse 3, a mighty king will arise and rule the great dominion. You know, he's, of course, some of us, he's already given to us in chapter 8, but it's like a summary of all that he's given. Verses 3 and 4 talks about the Greeks, and he talks about the four generals who would arise and rule. Then from verses 5 to 32 is about Egypt in the south and Syria in the north, and all the kings would come one after the other. So it's literally, you know, talking about if the kings would come from the south and the kings would come from the north, the Syrians. And so here, just given between verses 5, 6 and so on, you know, these people, people whom Daniel is referring to, can be mapped to actual history and these things have been put down. So again, it's people who know, who studied ancient history, were able to map it beautifully for us. So I've been going into these particular details because these are historic and they've already happened. And, you know, we can read about these people and actually the wonderful thing is not necessarily wonderful, but the fact is that these people actually did what everything that Daniel said they would do. And some of it was very harsh against Israel, especially Antiochus Ford Epiphanus. He was a very harsh king who really ill-treated the Jewish people there, Israel. But Daniel foretold that in Daniel 11, 21 to 32, and he did exactly the things that Daniel foretold. So he was a very, very despicable enemy, a very harsh enemy, and he did exactly that. But what is of interest to us is what we pick up from verses 36 onwards, which we can map or we can draw up parallel to some of the things that have been spoken in the past in chapter 7, 8 and 9, and which we can also, when we look into Revelation, we can understand some of these things. So we will just pick up that portion from verse 36 on Daniel 11 verses 36 to 45, and let us look into that, please. Daniel 11, 36 to 45, we'll do the usual thing, maybe three verses each. Just quickly read that and we'll come back and analyze it closely. Daniel 11, 36 to 45. Verse 36, Then the king shall do according to his own will. He shall exalt and magnify himself above every God, shall speak blasphemies against the God of God, and shall prosper till the wrath has been accomplished, for what has been determined shall be done. He shall regard neither the God of his fathers, nor the desire of women, nor regard any God, for he shall exalt himself above them all. But in their place he shall honor a God of fortresses and a God which his fathers did not know. He shall honor with gold and silver, with precious stones and pleasant things. Thus he shall act against the strongest fortresses with a foreign God which he shall acknowledge and advance its glory, and shall cause them to rule over many and divide the land for gain. Verse 43, At the time of the end, the king of the south shall attack him, and the king of the north shall come against him like whirlwind, with chariots, horsemen and with many ships, and he shall enter the countries, overwhelm them and pass through. He shall also enter the glorious land and many countries shall be overthrown, but these shall escape from his hand. Adam, Moab and the prominent people of Amman. He shall stretch out his hand against the countries and the land of Egypt shall not escape. He shall have power over the treasures of gold and silver and over all the precious things of Egypt. Also the Libyans and the Ethiopians shall follow at his heels, but news from the east and the north shall trouble him. Therefore he shall go out with great fury to destroy and annihilate many, and he shall plant the tents of his palace between the seas and the glories and glorious holy mountain. Yet he shall come to his end and no one will help him. Now verse 35, if you look at verse 35, he's talking about whatever is happening will happen until the time of the end because it is still for the appointed time. That means there's a transition. We said from verse 11 verses 1 to 35 is about near the kings would happen and it's been a few hundred years all these things. And verse 35 ends by saying, okay, now we're going to the time of the end. That means we are now going to talk about the time of, you know, that's in the latter days. Remember we read in Daniel chapter 10 verse 14, Gabriel said, I've come to talk to you about your people and the things that will happen in the latter times, things that are out in the future. So chapter 11, 1 to 35 is near term, which happened in a few hundred years. But then verse 35 says, okay, until the time of the end because it is still for the appointed time. Now the shift is, okay, I'm now taking you to the time of the end for that future time. And then he says, he's talking about a particular king and basically verse 36 to 45 is about this particular king.   Okay, so immediately we connect back to, hey, this is familiar to us because he has described someone like this in chapter 7 and chapter 8 and chapter 9, whom we refer to or we recognize connecting it back to the book, connecting it to the book or revelation in the New Testament scripture as the Antichrist. So this man, this king or a ruler or a leader is speaking blasphemies against God. And another interesting thing as we read is, you know, he says in verse 36, he's speaking blasphemies against God, he will prosper till the broth has been accomplished, meaning the judgment of God has been accomplished. He's going to let him go, let him do what he wants. Verse 37, he's not going to regard, he's not going to regard the God of his fathers. I mean, he's paying no respect to any known God on God, known God. He's not going to regard any God, he's going to exalt himself above all of that and he's going to put his trust in and some unknown God. So when we read very clearly in Revelation 12 and 13, we read about this dragon who actually empowers the Antichrist and the false prophet. This is God, the small G, the God of this world who is empowering. So the Antichrist and the false prophet are actually directly empowered by Satan, this dragon in Revelation 12 is the Satan. So we see here, back in Daniel 1137, he is going to honor a God which his fathers did not know and he's going to be empowered by this God, this unknown God. And he's going to rule and reign over many and notice he's going to divide the land for gain. So divide the land for gain. What land is he talking about? There's only one land which is being the focus of all of us prophetic scripture. It's the land of Israel, the glorious land. And he's going to divide the land for gain. That means if we put it down in what we are seeing today in Israel, the common idea is that in order to have peace, we have to divide the land. Give the portions off to the Palestinians and Israel who stay in this portion, give the other portions of divide the land. And this man, the Antichrist, it says here he's going to divide the land for gain. End of verse 39. So I'm going to put all the pieces together, which is he's going to be able to have a temple built, which we know is the third temple. It has to be in place. But most likely his strategy will be, I will divide the land, but you give this. So he's pleasing both sides. He's able to please the Jews. Initially, while they get a temple, he's able to please the Palestinians, you get your land. And he is able to rule over many. He's able to have influence over many people. So I'm just putting the pieces together, right? Because we know that there has to be a temple and having a temple is going to make the Jewish people very happy. But we also know that this man, this king is going to divide the land, which is going to make the Palestinians and the Arabs very happy. So he comes as a man of peace. And this is most likely going to be his strategy for his peace treaty. I can make both sides happy if you give both sides what they want. Give the Jewish people the temple, give the Arabs their land, the land they want. Okay, so he can divide the land for gain. But what will he get? He will be able to rule over many. That's what he wants. And he's being empowered by this unknown God, this God whom none of his fathers knew, none of them worshipped. But he's speaking blasphemies against God and so on. Then what is happening versus 40 to 45 is this. So remember, South is Egypt, North is Syria. He has done all this, but it says suddenly there's going to be a disturbance from the South and from the North. They're going to attack. Meaning somehow this most likely will happen when he sets himself up as God. You came as a man of peace. He made us all happy. But in the middle of the seven years, you're breaking the covenant. And you're setting yourself up as God.  Something is wrong. The whole peace treaty is broken. It doesn't last seven years. Three and a half years. It's broken. And so he's going to be attacked from the North and the South. From the South and the North. It is from Egypt and Syria. And it says here, verse 41, he shall enter the glorious land. That is the land of God's people. Many countries will be overthrown. I mean, this is like the picture of the battle of Armageddon, right? Nations arising, coming together. Some will escape. Some, the Eden, the Moabikes, the Ammon, they will escape. He will stretch his hand against many countries doing all of this. But verse 44, but news from the East and the North shall trouble him. So this ties in so clearly to what we see in Revelation 19. Actually in Revelation 16, the river Euphrates dries up. And the kings of the East are marching towards Jerusalem. So just to give you that reference, you turn with me to Revelation 16. I'll give you the exact address. Verse 12, Revelation 16-12. Then the sixth angel poured out his bowl on the Great River Euphrates. And it's water was dried up so that the way of the kings from the East might be prepared. So kings from the East, the rulers, the elites from the East are moving in. Revelation 16-12. The end of the judgments. What's happening? This is the builder for the battle of Armageddon. What's happening? Kings from the East, armies from the East are moving in towards Jerusalem, the glorious land. What did Daniel say? If you go back to Daniel, chapter 11, verse 44. But news from the East and the North shall trouble him. North, Russia is coming in. Syria is there, the immediate North, further up North, Russia. They're just moving in. From the East, armies are moving in. They'll come with great fury and annihilate men. So this destruction that we see here, the gathering together at the battle of Armageddon, is going to be devastating. But this is like the final, the final builder. The armies are moving in. And he's going to try and establish his own palace, verse 45 of Daniel 11. He's going to establish himself between the sea and the glorious Folly Mountain, that's Jerusalem. He's going to put himself up there, but he's going to come to his end. Nobody will help him. So there are additional details given here, verses 36-45 of Daniel 11 about the Antichrist. What he's going to do, and how he's going to position himself, how he's going to be able to exert influence over many nations. And what will finally happen? He'll be attacked from the South and the North. But what would be most devastating is when the kings of the East start moving in. That means that's the battle of Armageddon, which we see in Revelation 16. Kings of the East are moving in. That's the final battle. So let me just say, I see it, John's asking question. So would this dividing of the land becoming the rule of many happen before the rapture? So this will happen right after the rapture. The reason is, remember we saw in 2nd Thessalonians chapter 2, verses 1 through 12, that he who restrains must be taken out of the way. And then the son of the man of sin, the son of perdition will be revealed. So that means the church is taken out of the way, only then this son of perdition is revealed. That means the Antichrist comes in to do his thing. So the church is taken out of the way, then he's revealed, and then begins the final seven years. And what we have just read in Daniel 11, 44, 45 is the end of the seven years, which maps to Revelation 16, 12 on, which is the build up for the battle of Armageddon. Is that clear? Is that okay? Now we didn't read verses 11, verse 1 to 35, because it's all about those kings that came in the few hundred years right after Daniel. It's too many details and the names are given, people have identified them. But this is the interesting part, verses 36 to 45. So Pastor, one more hour. Yes. So we see verse 44, the news from the east and the north shall trouble him. So which means the king of the east and king of the north as we mentioned, Russia and the king of the east would cause trouble to the Antichrist, correct? Yeah, they're all moving towards the land of Israel, the battle of Armageddon. So they are in a sense, and we will see this in Revelation 17, what happens is that in Revelation 17, we see that this whole religious system that was introduced by the false prophet, who was supporting the Antichrist, he was beginning everybody to worship the beast, the false prophet. That loses, suddenly loses support. People are just illusions, and that begins the fall of the Antichrist, meaning like, okay, people are no longer trusting this man, and everything is gone, and there's a big battle coming in. So these armies are moving towards the glorious lands. Now verse 44 of Daniel 11, 44 and 45, they're coming, and how this battle is going to play out. We don't know exactly, so we just know that all the armies are coming towards Israel, to attack Israel, and at that time the Lord Jesus returns. So that's kind of the details we know, and we can look at, when we talk about the battle of Armageddon, we will look in detail on Ezekiel 30, 36, where we read about the king of the north. If you want to look at it very quickly, you can, I'll just point it out to you. That's on Ezekiel 38. Ezekiel 38 describes this. Ezekiel 38, he says, verse 1, the word of the Lord came to me, I'm reading from verse 1 on Ezekiel 38. Son of man, set your face against Gog, the land of MacGog, the prince of Rosh, Meshach and Tewbel, and prophesy against them. That says the Lord God, we are against you, Gog, the prince of Rosh, Meshach and Tewbel. I'll turn you around, put my lips in your jaws and lead you out by all your army, horses and horsemen, all splendidly clothed, a great company with butlers and shields, all of them handling swords. Persia, Ethiopia and Libya are all with them, all of them with shield and helmet, Gomer and all its troops, the house of Togarma from the far north, all its troops, many people are with you. Prepare yourself and be ready.  And then he says, after many days you'll be visited. In the latter years, you will come into the land of those brought back from the sword and gathered from many people on the mountains of Israel. It's a long been desolate. They were brought out of the nations. Now all of them will dwell safely.  You and all your troops and many peoples with you. So Ezekiel 38 was one to nine is describing the buildup with the battle of Armageddon. And the tribes that are mentioned here, Rosh, Meshach, Tuba are tribes that are currently in Russia. He mentions in verse five, Persia, which is Iran, Ethiopia, Libya. And then he also mentions Togarma, which is Turkey, modern day Turkey. That means all these nations are joining together, coming in from the north, moving in to attack the land, the mountains of Israel, the land of Israel. So Ezekiel 38 is basically detailing how it's going to happen. And he mentions here that it will happen in the latter years, verse eight. In the latter years, you will come into the land. So this is happening in the latter years. So it kind of ties in with what we saw here in Daniel 11, 45, 46. One more question. So the Antichrist, which comes in, so just out of curiosity, is it a form of Satan or like a human being itself, like a normal man, or is he like influenced by Satan? He will be a normal man, just like any one of us, a normal man, but empowered by Satan. Similarly, the false prophet, we will read about him in Revelation 13. So there's going to be like another person who will be side by side with the Antichrist. So I will refer to him in Revelation as the false prophet. He will also be another man, but he's empowered by Satan doing science. So basically these are two human beings empowered by Satan, by the devil. Thank you. So now go ahead. I just want to make an explanation for the last few terms over here. I think in verse 36 it says God of gods. Is it Jesus, the Father God? And also in verse 38 it says the God of fortresses. And in verse 39 it says the strongest fortress and what are all these? You're muted first. Sorry. In verse 36 he will speak blasphemies against the God of gods. So God of gods is the most high God. So in our minds when we say God we should think of the Godhead.  So when we hear in the phrase the God of gods, you're thinking about the Triune God, the God of the Bible.  Then verse 38 it talks about he will honor a God of fortresses. And he will honor a God of fortresses and a God which his fathers did not know. So I'm not sure why that phrase a God of fortresses is used, maybe I'll have to search on that. But a God which his fathers did not know is like this unknown God. What we can say based on Revelation 13 very clearly is that this man is like Satan's main representative on the earth. The dragon will be in Revelation 13. So the dragon is empowering this man. And he is getting people to worship him the Antichrist and actually through him they're worshiping Satan. So that's why I was saying that a God which his fathers did not know. I take it from me, in my understanding I take it as representing the dragon Satan himself. That this is whom he is empowered by and whom he worships and he's fully committed to and is empowered. So I say that based on what we read in the New Testament. And he will act against the strongest fortresses with a foreign God which he will acknowledge. So against meaning against whatever defects. I mean, if you want to imagine fortresses as in defense, a strong. That means no matter which country has what defense this man will act against it. Empowered by this foreign God, this unknown God, empowered by Satan. Satan is empowering him to have great influence, great strength or great power. And God is allowing that fortresses for that seven years is okay. I'm allowing that to happen during that seven year period. And therefore this man is going to have rule and influence over many people. I just have a follow-up question.  So I think this God of God. I don't know where it is as well, I don't know where.  It's only from God. Like, even though it's a very important God, there's only one God. And sometimes it creates a, like, I don't know if I ask them and I don't know if they do or someone call them as. There are some places where they're like, he's a God of God. Yes, it means they are some of their God as well. And the true God is just a human world of God. And is there an explanation there? So God of God. So remember that the second is small g, t, o, d, s. God, captain, g of God is in small g of God.  So small, so even kings, for example, kings and rulers sometimes are referred to as gods with a small g. Principalities and powers. Satan himself is referred to as a God of this world with a small g. So our God is above God of God's meaning. He's God above all these small g's. So whether it's human or demonic, that's how we understand it. So God is God above God's. So God of God's. It doesn't mean that these are also gods with him. They're no comparison. It's just that he's God above all these small g's. Okay, so let's read chapter 12. We're coming now, moving into chapter 12. It's a small chapter. We'll just read it, then go for a break, come back and then study chapter 12. So let's just read it. You know, maybe three verses each revelation at Daniel, Daniel 12. Small chapter. Let's read three verses each, please. 15. At that time, Michael shall stand up the great Prince who stands watch over the sons of your people. And there shall be a time of trouble such as never was with, never was since there was a nation. Even to that time, and at that time your people shall be delivered. Everyone who is found written in the book and many of those who sleep in the dust of the earth shall awake. Some to everlasting life, some to shame and everlasting content. Those who are wise shall shine like the brightness of the firmament and those who turn many to righteousness like the stars forever and ever.  Many shall run to and fro and no one shall increase. Then I, Daniel, looked and there stood two others, one on this river bank and the other on that river bank. And one said to the men floated in the name who was above the waters of the river. How long shall the fulfillment of these wonders be? Then I heard the man clothed in linen who was about. Okay, I'm not sure if we are able to hear. So, can somebody read from us or onwards please? Then I heard a man clothed in linen who was above the waters of the river. When he held up his right hand and his left hand to heaven and saw by him who lives forever, that it shall be for a time, a time, a times and a half a times. And when the power of the Holy people has been completely shattered, all these things shall be finished. Although I heard, I did not understand. Then I said, my Lord, what shall be the end of these things? Amen. And he said, go your way, Daniel, for the words are closed up and sealed till the time of the end. Many shall be purified, made white and refined, but the wicked shall do wickedly and none of the wicked shall understand, but the wise shall understand. And from the time that the daily sacrifice is taken away and the abomination of desolation is set up, there shall be 1,290 days. Here's 12 onwards. Blessed is he who with an alight at the 1,000 and 300 days, what rules the way to defend and shall rest and shall stand in your alluded place at the end of the day. Amen. Okay. Thank you, everyone. So let's go for a break and we're going to come back and look through chapter 12. Just to, you know, it's like the final message, wrapping everything up. But it's also interesting because he's giving us additional time periods. He's using some time period that we are familiar with, a time, times and half a time, but he's also bringing in some other days, which we haven't seen before. That's especially in verse 11 and 12. He's talking about days, and so we will look into those days and see what that means. So let's come back in 11 o'clock, right after this break, and we will go through chapter 12. Thank you.


This farm right here is River Bottom Land and there's, I can't remember exactly, there's about eight or ten different types of dirt here and they're from one extreme to the other. And so what we were running into irrigating here was we'd have a row that was, you couldn't even walk across it was so wet and then right next to it would be Wilton from Neaton Water. So the first thing I did once we got everything installed was, I knew what crop was going on the pivot. I called Zematica and I said okay we've got this crop going in. I said what's my prescription need to be? And they laughed at me and they said we don't do that, you do that. And so what I did was I read the description and the water capacity of these different types of dirt and I basically formed it into, I think I've got three or four different sowns, maybe five. So I had my base prescription and the more sand your dirt got a little bit more and the more wet nature dirt got a lot less. When we discuss about the project that we conducted this year we discuss the use of soil sensor technology to support irrigation scheduling meaning to support decisions of when to irrigate and how much to irrigate. So the first thing that we did this year was we collected soil samples to really ground truth to determine whether or not you know the soil type and soil texture of this map was correct and also the extent of these soil units. We also brought a sensor that collects soil electrical conductivity data so with the soil electrical conductivity data we also brought a high accuracy GPS because we know that there are differences in topography and then we combined soil electrical conductivity data, soil texture data and the topography or elevation map into a new map. When you started looking at the soil sensor data you saw that maybe you know your baseline zone got probably much smaller and probably was split into two that maybe this field that you know you have two different soil types maybe there was only one soil type and then this area that you found as sandy you know it was much larger. Yeah and it was and it's not so much on top it is it is come to find out that dirt after I researched a little bit more about that little field right there it's got a really shallow or high groundwater table right there and by looking at it and by the soil maps that you don't realize that but it's actually there and the soil sensors pick it up. Between the variable rate irrigation and the soil sensors I mean this technology is very very important. Well we used to just irrigate a straight rate and since we've gone to variable rate I would I would feel safe and guess and we're probably saving at least 60% water usage on that pivot and on top of that with the sensors you could possibly even save more or maybe use a little more to get the crop you know to achieve your goals on your crop.