So thank you, Dan, for introduction. The first thing first, to whoever you came to this room for a talk called CI for OpenShift, and now we are looking at the title slide, wondering if you are in the right room. Yes, you are. I will deal with OKD OpenShift situation in a while. So my name is Petra, like Dan introduced me, and I'm a member of the OpenShift Developer Product and Test Platform team. And we are basically somehow the CI team for the OpenShift upstream. We are not the only ones responsible for this. It's a huge system consisting of many parts, some of them by Kubernetes upstream, some of them done by other Red Haters. But we are sort of stewards. So like promised, I'll first deal with what OKD actually is. So if you know Kubernetes, that you can think of OKD as a distribution of Kubernetes, augment it with more features that are aimed mostly for developers. So it helps developers with application lifecycle, et cetera. If you know OpenShift, which is a family of Red Hat products, then you can think of OKD basically like upstream for OpenShift, a little bit similar to what Fedora is for Red Hat Enterprise Linux. If you heard Origin before, then OKD is basically renamed OpenShift Origin. If you don't know neither of these, I'm afraid I can't really help you go to the URL shown on the slide. And let's continue. What OKD practically is, is basically like hundreds of Git repositories developed by more hundreds of people involved in the OpenShift organization on GitHub. And OKD is if you build a bunch of artifacts, which are mostly container images, out of the right revisions from the repositories and use some of these artifacts in the right way on a suitable infrastructure, you'll get a working OKD cluster, hopefully. All the repositories there are, of course, somehow different. Some are forks of the upstream, various upstreams. Some are OKD specifics. Some are intensively developed. Some are pretty much dead, or mostly stable, not dead. And the goal of the CI system for OKD is to continuously have a good OKD version, no matter how the individual components are developed at the moment. So the thing is, we always want to have a good OKD, something that works. And to achieve that, we basically need to enforce that for any request in any of the components repository leads us to the OKD that is working. The reason for this is that once OKD becomes broken, all of the other component teams are basically in the dark. They don't know how their development affects the whole, the whole OKD. And together today, we are in this state, although people who are probably at this very moment praying for the end-to-end tests OKD to finally pass for a 20th attempt or something would probably laugh at me, laugh at me bitterly, perhaps. One big principle that we would like to have in the CI system for OKD is that we would like the component teams, the developers of the components of the OKD, is to self-service and own their CI config as much as possible. But at the same time, we don't want them to own it and go to a different direction because otherwise, we wouldn't have no base criteria and the idea of having good working OKD would be lost. So we need at least some base criteria that are somehow enforced throughout the whole organization on all of the components. And this idea of self-service and ownership comes a bit out of the history because OKD and previous to the origin, of course, as a major and quite established project has a lot of history. I don't really want to delve into this history. But I will suffice to say that in the past, most of the CI system for origin at that time was based on Jenkins and a bunch of custom built and auxiliary tools. And now, it's all built over a system that's called prow, prow is the front part of the ship or something like that, which brings us to nautical terms, like we are in Kubernetes world, of course. So the switch to prow is actually quite recent. So when I prepared this talk, one of my resources was a talk by Michalis Kargakis, who at Defqon last year talked about what were the problems with Jenkinses and Jenkins-based infrastructure. Why did they decide to switch to something else and how it went at the initial stages. So if you are interested in this kind of history, go Google his talk. It's actually pretty interesting. And now, when I dealt with history, I will continue talking about prow, what prow really, what prow is. So prow is the Kubernetes-based CI CD system. That's a lot of buzzwords there. So what prow actually is, it's a bunch of straight-less and very loosely coupled microservices, each one doing their own thing. They are designed to be running inside a Kubernetes cluster. And together, they somehow implement a continuous integration system. So for example, there is a component, it's called hook, that its only job is to watch what is happening inside Git repositories and it dispatches these events to the other components that care about some of these events. There is a totally separate component that only handles merging of full requests. And there are many more, about 20, 25, something like that, perhaps. What any of these services do not do is they do not care about scheduling and resource management and all these things that you would probably need to handle when you're running Jenkins, because they are running in Kubernetes. And Kubernetes is actually quite good at scheduling and running workloads from pretty much wherever, as long as the workloads are somehow containerized. And prow is actually, it's not an OKD thing, it's a Kubernetes thing. It originated in the Kubernetes upstream. It's used there and we in OKD run our own instance, which some of you may know as API CI cluster. It's mostly there for running prow. Another description of what prow is, is coming from the upstream documentation for prow and the documentation says that it's actually, like if this, then that system for GitHub, more like developer oriented perhaps, but still. And by default, what the components are implementing is the library of default triggers and actions that are somehow useful for implementing a CI system. Prow is very designed to stay out of your way as a developer, so if everything goes well, you only interact with prow via GitHub. There is no separate system that you need to go to. There's pretty much nothing else. You get information via GitHub comments, via labels. Sometimes prow does something with your full request or something and you should only leave GitHub if something went terribly wrong and you perhaps need to follow a link to C log or something and prow can display logs to you. So what prow does, can be separated into three main areas. So the first thing that many of the components are implementing is it improves development workflows for developers and improves them above what GitHub itself offers, especially for the big and distributed communities like Kubernetes or OKD. So I'll try to give a few examples. So there is a component that watches PRs and just only labels them with how big the change they actually bring. There's a totally separate component which knows who are the people who are likely to be a good reviewers for a full request and assigns them to review a full request. There's a different thing that records the fact that the code was possibly reviewed as indicated by the slash command, LGTM, and records this fact as another label. There's a theme occurring there with the labels. There's a different thing that watches PRs that needs to be rebased because the base branched moved in the meantime and labels the PR. It tracks approvals, which in the prow world is a slightly different process than a simple code review. Like code review says the code is good or code is bad and approval is meant to be something like do we want this feature? Is the feature in the right area of the whole thing? Like these like big ideological answers. And finally, like final example is like it automates what humans like to do, which is like re-triggering the failing test indefinitely until they actually pass. So with Proud, we don't longer need to do it yourself. Proud does this for you. All of these actions like are performed by separate little components. And you can notice that they're really, really simple. They just watch for something, some even to happen on a GitHub repository. And do a very little, very simple action somewhere else. Do a label, comment, something like that, trigger a test. So the second before that Proud offers to users or developers is it handles merging. So in Proud world, it's not humans who are triggering the merge button to accept the PRs. It's robots. There is a component, it's called Tide. It's like when the sea tide is rising and going. Tide know what the criteria are for a PR to be accepted and merged and it enforces them. It's better than humans because it doesn't, it does this all the time and immediately. So you don't need to wait until the senior accepting guy finally wakes up somewhere in Japan. It does it efficiently. I'll get to that in a while. It doesn't force merge because it thinks it's a rockstar developer and it's a Friday afternoon so it's probably okay. So the way how Tide communicates with you within a pull request is with this little GitHub check that just for Tide it's, this pull request is most mergeable because it needs LGTM label and you just need, you know that you just need to bother someone to put the little comment there, some other Proud component would put the label there and Tide will say, okay, this is now mergeable. If you want to know more about this, you can follow the details link and you get the full criteria. So Tide enforces that the old tests are passing and even better. Just before something is mergeable and it would be merged, Tide is checking whether the test results are fresh enough. That means if the tests were performed over the current tape of the branch of the target branch. If it's not, if the target branch moved in the meantime and we have the old test results, Tide re-triggers the test so we always merge something that's probably working. Of course this means that whenever anything is merged into the branch it invalidates pretty much all of the existing test results which would ultimately limit the throughput for merging. So Proud, Proud 2, but Tide actually, is smart enough to do the merging in batches. So if there are multiple PRs waiting to be merged and they would be mergeable, merging any one of them would invalidate results on all of them. So Proud just takes all of them, attend to merge them and tests over the final result. If the result of merging all of them would pass the test, it merges them all at once. And you can also see, not just test, it also Tide tracks what labels are present on the pull request. So remember all those little labels that the various components were putting on the pull request. So Tide cares about them and is able to say, I'm missing this one, should be there. And this is something that shouldn't be there, so get it removed, I won't merge it. And of course, it doesn't merge anything that's in conflict, that's not that, that's not rocket science. So that's merging. And third, and for the part of continuous integration system, probably the most important and most complicated part are Proud jobs. So the concept of Proud jobs is like if this, then that on steroids, which is like, we know that something's happening in the GitHub repositories, so we want to execute something. And that something is very useful to be a test workload. So we are in the Kubernetes, so the something is basically a Kubernetes bot. So as long as I have something containerized, I will just submit it, it will execute, Proud will check whether it was executed successfully or not, and report that back. There are three types of jobs, depending on how they are triggered, in what cases they are triggered. The easiest one, we call them periodics, is just like time-based trigger. It's 12, 12 a.m., let's just run some tests every day or every week or something like that. Very simple. Something more complicated are post-submits. So post-submits run whenever there are new comments on some branch in the usual world, that means some poor requests were just merged, so we need to do something. In this case, it's not that much useful for testing because it was just merged, so it's too late for having a kind of meaningful testing. We want to have testing before we merge, so we don't get bad code on the branch. So this is useful for reports and artifact builds and stuff like that, so we'll get to that a bit later. And the third one, mostly used for for testing, are pre-submits, which are run whenever there are new comments in the proposed poor requests. Like I said, these are mostly used for tests because they can run and they can report their results to the PR to which they are testing, so these can be used to get merging for poor requests to any repository. So let me now describe, we know what the jobs are actually, so if I'm a component owner, I have proud deploy, what do I do to actually create a job or something? So we are a Kubernetes, so we write YAML, like a lot of YAML, of course, and track it in Git. So this is a, it's even shorter, an example of how a job might look like. So this is a pre-submit that's set up for the CI operator repository in an OpenShift organization. It has a name, which doesn't really matter that much. This part is a standard Kubernetes spot spec, which just tells what to run, coming from which image, that's it. It's a pre-submit, so it has a bunch of options that allow you to fine-tune when it actually should be triggered and how. So you can see, there's a regular expression called trigger, which allows you to use a flash command inside your GitHub full request and Proud will trigger this pre-submit. And finally, as a pre-submit, it has something called context, which is nothing more than just a name under which Proud will report its results to the GitHub full request. And that's pretty much it. So let's just go back to this heap of YAML, so this is a single job. If I am an owner and I'm supposed to use, and I have Proud, what I'm supposed to do, I'm supposed to write one, two, 10 of these jobs in YAML. I would, of course, need to make sure that I have all my test workloads containerized or I would need to have, like, a way how to containerize them easily. So it's probably nice, allows us to run pretty much anything, but it's still a lot of work to get to the actual useful CI system. So, enter CI operator. Now, if you lived in a Kubernetes or OpenShift world in last year or so, and you installed some of the talks here on DevCon, you probably heard a word operator in a certain context. So, yeah, CI operator is not that operator. I have no idea how the name was born. In CI operator, the L word is just a part of the name. That's it. So what it's not, we know, so let's focus on what it actually is. So CI operator is a tool that knows that it will probably be run in a context of a proud job, and it knows how to achieve and simplify the usual task that all the OKD components might want to perform within the pro jobs. So it knows that when something runs within a pro job, it proud exposes information about why we are running this job. So that is something called job spec, which the thing that's running inside a proud job can see, and we see here that we know what is being tested. So we see that there's a certain revision coming from a certain pull request that's supposed to be merged to a master branch of a component, of a repository called component in an organization called OpenShift. So we know what should be tested, like up to the certain revision in Git. So the only thing remaining is we don't know how to test it, and we allow, or CI operator allows component owner to define how their component should be tested, how it fits into OKD distribution and stuff like that, the usual stuff, inside something that we call a component config. So what is component config? It's of course, Moriyamo. So the first usual action is to execute test from that component repository. So, or more generally, it's an action to run some commands when you have checked out the component repository. So here's an example of the component config. So given a build root image, release OpenShift GoLang 1.10, which is supposed to contain all the necessary dependencies to build this actual component, when a CI operator allows me to specify the test binary build command stanza, the command that CI operator can use to build the binaries for the component. And also after those are built, it tells CI operator it can run the make test unit command inside the component repository, which execute something that happens to be unit test for this. And now, CI operator does not really do all this like image building something complicated legwork itself. Like, Proud uses Kubernetes to do the stuff Kubernetes do well. CI operator uses OKD or OpenShift for stuff that OKD does well. So it uses OKD features like builds, and image streams to do the actual legwork, building images and moving images from place to another place to the image streams. And CI operator only orchestrates this as a OKD client. So containerized tests are the most simple action to be specified for CI operator to execute. And once we have this kind of component config, running these tests when you have a API CI cluster or some other Proud enabled cluster, it's just as simple as running CI operator and target unit and the CI operator will do everything. So the second useful action that all the components need to successfully do is they need to be able to build their image so that the image can be included in OKD, in the whole big OKD collection. Again, CI operator made this quite simple. You provide a base image, which is mostly shared for all components, and you provide the structure how the CI operator should build the image from the component image, from the base image. And CI operator makes it easily happen with a similar call like before. When it can build component images, it can also do mockingly build something like OKD builds, which are called release payloads and which are mostly collection of specific component image versions. And again, it's as simple as running with a different target. The last thing, if we have a collection of OKD images which are known to be good for some definition of good, way they work, and we have this single image that was just built, that's a candidate image for a single component, then we can use, like put them together and install the whole thing and deploy a new cluster and execute various end to end tests to see whether like the resulting OKD cluster would behave well or not. I stressed in the previous examples that running say operator to achieve something is simple, calling target. In this case, it's not easy, it's not that easy because the whole functionality is achieved by using OpenShift templates. But our tooling in the current state it's actually very easy to set up as long as the results will be run within CI. It's not that easy to run it locally on your workstation. We have multiple templates available for component owners to use. The two most used are, the first one is executing a shared OKD test suite which basically verifies that whatever we just created is a well-behaving OKD cluster. And the second one is allows component owner to run more detailed end to end unit tests coming from their components repository against the freshly installed cluster. And this is of course used to allow more thorough testing of the component on the test in the context of a freshly installed OKD cluster. So, and the last thing that CI operator can do, so if we execute all the tests that we have available, we assemble the release payload, we run all the end to end testing about the freshly deployed clusters. We can, CI operator can promote the image to be included in the next batch of what is now a good OKD cluster. And this image would be almost immediately available for the other parts that are just starting testing, for example, and while if we have everything set up, that means that we just have a PR, it is tested, everything passes, it gets merged, the images are built, it gets included in the good OKD and from that point, other components or even my component will use this new OKD. So we get this gradual, this component is good, this component is good. Again, people who are praying for their end to end tests to finally allow them to merge would perhaps disagree, but we kind of are there a bit. So, now we have proud that executes something for us and we have like CI operator which allow us to easily specify that something meaningful for proud to execute. So we are right now in a situation that again, if I'm a component owner, what I would need to do to set up CI for my component, I would need to write little EMOS for the CI operator stating this is my component, this is how it's tested and I would need to write even more EMOS for proud. So execute CI operator for this target and execute CI operator for another target when this happens and that happens. So that's more like, that's still like hundreds lines of EMOS for each component. It's easier than before that at least I need, I need to just specify CI operator instead of preparing paths and handling image builds myself but still we are not there yet. So we were not there yet, right now we are. All of the configs or all the EMOS that I described for both proud and CI operator is living inside a single separate Git repository. It's not just these configs are living there, it's like general proud config and some other config and other things. So what, how the whole CI is currently configured list in this repository and I mentioned that we want self service so this means we want everyone to submit their configuration changes, submit PRs to this repository. But until around August last year all of the jobs for EMOS for jobs live in a single EMOS file which at that time was like 5,000 lines of EMOS for all the components. And of course this is not very scalable when you expect like tens of people at least to own their own jobs. So the obvious thing that we did was create this little hierarchy when each component had their own directory so that this is not the case. So we have this, that made it easier for teams to own their jobs. After we have few early adopters from Bored with proud together with CI operator there were patterns starting to emerge and that means that like the success of full adopters mostly used CI operator to define all the tests. They usually define okay we have something that's unit test, something that's integration test, perhaps an end-to-end test. We can build image or two or 10 or something and all of them basically just did the matching part inside proud. So what happened is that everyone set a pre-submit that run pretty much all the tests and built images. So they had pre-submits running the unit test, pre-submits running the integration test, pre-submits running the end-to-end test, pre-submitted would attempt to build the images and a full submit that would build the images and promote them. So that was the pattern that emerged and of course because we asked people to write 100 tons of EMO it's not that all of the adopters would write the EMO themselves from scratch but they copied it from each other which even reinforced the pattern. And like copy, paste means mistake. Nobody really wanted to deal with proud jobs anymore. Proud configuration became boilerplate and nobody liked boilerplate. So we decided to get rid of it. Get rid of the proud job boilerplate. The way how we did it was that we built something called Proudgen and that's nothing more complicated than just taking all of the available tests and generating jobs for running all the available tests in the pattern that I described on the last slide which is execute everything before merge and build images and promote them after merge. That's it. So that means now nobody really needs to care about Proud config. Of course, if they want to and some people do because it allows you to have more flexibility you don't need to care about Proud config. So it's not hundreds of EMO anymore. You just need to write something on 40 lines per component once and then just perhaps adapt it when you need to add a new test type or something like that. And having stuff generated and having thousands of lines of EMO in the repositories and there was still like copy paste occurring pretty much everywhere. Mistakes were still very likely like copy paste, typos, leaving files somewhere that shouldn't be preparing a CI operator config file but not running the generator, running the old versions of the generator. All of these like little things why the EMO can be like painful to use. So on OpenSheet release, we linked, test and cross check everything with extreme prejudice on incoming PRs which means that like getting the change there might be a little painful because unless you check it for yourself locally submit some change, I want a new job and some part of config says no that's like you have a hyphen where underscore should be go away and you fix it and some other checks notices. So this is badly ordered. We need to like have this strictly ordered. Oh, you have Python, fix all these Python errors, everything. So we are very strict on the configuration but the result is when something goes in it usually works at least for our party. If you tell us that your repository has a make target called unit tests and it doesn't, that's not, well, something that we could check or we could, I will touch this in a while. So at some point like two months ago something like that. It seemed like Progen and all the checks were the missing piece. It made adoption earlier. We saw like pretty much everyone being onboarded in Proud and we were finally in a state when despite our like constantly changed config, new jobs, removed jobs and everything, CI worked and it worked well. So we were able to focus on improving the experience of the job authors. There are many and I selected like two because they are like technically interesting about what we are trying to achieve. So the first thing that like we had a common pitfall. So let's imagine that we for example added a job for a certain repository and this change like adding a job was merged while there was a full request in-flight on the target repository. So that was filed before the job was merged but it was for example waiting for a review or something so the sequence was there was a tested repository full request. We merged a changes that brought a new job, something reviewed the or someone original, someone reviewed the original full request and now it wouldn't merge because like the tie, the component that handles merging knows, okay, there are all these tests that need to pass and this full request doesn't pass everything because there was nothing that would trigger the newly added job with all the PRs that were in-flight. So that was a problem. This was, such PR would be stuck until someone came and I re-triggered the test manually or something like that. And removing and adding and changing jobs would cause similar problems that it was like pain, huge pain because nobody like, we had a lot of questions, why doesn't this merge and why doesn't that merge? So we, and by we I mean my team lead Steve, wrote a proud component that would be watching for like job config changes and immediately would apply this like little intervention automatically. So whenever we add a new job for a repository, it triggers this new job on all the PRs that are currently open for this repository. We, if we remove a job, we make sure that this, like the context from the all removed jobs is removed from all the PRs that are in-flight and something like that. So these problems no longer happen tight, mostly merges flawlessly and happily. So the second thing that we are right now focusing on building is that we still have this anti-pattern we observe on our repositories. So when a component over wants to set up something for his CI, he goes to our repository, the OpenShift release one and does some change and gets it merged. And then they go back to their own target repository, file a new PR to test what they actually did in the CI config repository to observe if the right jobs are triggered, if they are executing what they should and if not, if something went wrong, they go back to our repository, try again and repeat and repeat and repeat and that's of course, people are doing that and not actually that much complaining about it but we are not, we don't like it. So we are working on a feature that would, we call it rehearsal, rehearse jobs. So if you submit a PR to our CI job config, we would detect how does it affect jobs, if it brings new ones, if it changes some existing ones, if it changes something that's used indirectly by some of the jobs and we try to rehearse it and give at the OpenShift release for request, give the job author feedback about how would the job behave if it were executed on the target repository. So we know we won't be able to do rehearsals for all of the jobs and we are not sure if we want to, for example, if you change one of the base templates I mentioned before, if we really want to rehearse something that would add that second try to schedule 200 jobs each attempting to bring up a full new cluster, we'll sort it out, but the feature is coming. So that's what are we doing right now? So I promised some view on the future in the title, so I'll get to that. So with everything this, it's the feature is mostly stable and the biggest thing probably everyone has in the OKD organizations, so is that the investigation of failures is not very easy. If you have a job failing on you, especially one of the template based jobs to try to bring up a whole cluster and run all of the OKD conformance tests, it's painful, it really is. Sometimes there are no locks, sometimes there are locks, but there are so many moving parts that it's very easy to find, it's very easy to miss the artifacts even if they are there. So we would like to focus more on improving the experience from investigating failures. And we also want to focus more into bringing metrics and alerts there, mostly on test results and analysis of data of test results, like investigating flakes and stuff like that. So there's a reason why we currently do not have that much in OKD and that's the reason is that in this we are mostly alone on our own in OKD. In upstream, Google feeds everything, all the artifacts into some internal big tables into a tool called take test grade, which we can't really deploy because it's not open source yet. So we have nothing to reuse and unfortunately all the priorities were different so far. So that's like two main areas we would like to improve in the future and I'd like to wrap up the whole thing with a few numbers. So right now, I checked yesterday, we have 700 jobs set up for 120 repositories spread out in 10 organizations. So it's not longer just the, it's not longer just the open shift organization but people are setting up jobs for their personal accounts or I think we have something in Knative and other orgs. When I said that in August, we had 5,000 lines of YAML. So now our jobs are like 35,000 lines of YAML, which I was not sure if I even want to include if it's a good thing or bad thing. The good thing is definitely that most of the people, most people do not really need to care about this number. If they even need to care about job configuration YAML, they find like little components specific files with like 100 or 200 of lines. So that's quite reasonable I think. And right now, like the whole OKD end-to-end tests are getting through requests and coming into like around 70 repositories in open shift organization. In last 24 hours, I'm lying a bit because like I said, I checked the numbers yesterday evening. We executed around 2,000, 2,600 jobs. I checked just before I went to this talk and it was around 2,200, like 400 less. And that's probably what we get by doing DevCon on Friday. All the jobs were triggered for 233 different pull requests and out of the 2,600 jobs, 600 jobs were actually trying, at least trying to deploy a full cluster and test something around that. So with these numbers, I'm wrapping it up and I'll be happy to answer any questions. I'm actually not that long in this organization, so I would probably make things up. I don't know. I can ask, but I'm half a year back in Red Hat. That's my time span. More questions? Go ahead. Can you repeat please? I was like. No, the result is to run all the AI jobs, like how do we, on the cluster on that in your example and other types on AWS, so how many results do you need to support that job? I'm not able to answer how many resources we, the question is how many resources we need to execute all of this. And the thing is, I'm not able to answer this question because our cluster on which all the test workloads are running is out of scaling, so it just like asks what we don't care. Someone pays the bill. The question I understand is, if there is some manual testing involved in this process, in OKD organization, only the manual testing that whoever submits the PR does before he submits the PR. So for OKD, which is a community distribution, I don't think there are any systematic testing efforts. It's certainly not manual. I'm not able to comment on the open shift products because I don't know. It should be something around 40 minutes. The question was, how long does it take to run all the tests? So it's all parallel. The duration is whatever takes longest and the end-to-end tests are the ones that run longest and it should be something around 40 minutes. Sometimes it's more, especially when we have failing tests which a lot of files are based on time amount and stuff which makes the whole execution longer. Mike, again. We don't, we don't do that well. So all of the, there isn't anything more smarter than test individual component in the context what's currently being well assembled as a good open shift. There is a step that I missed like between the promoting an image and it being available for next testing, like handled by something called release controller and after something assembles the new release for other like tests to use, it runs these tests again. So if something like past isolated testing and would be included and something else would do the same thing and there would be something like timing grace and collision, it's likely that the, like this thing that test the whole thing again would discover it and would not pass this thing to be like the latest known good OKD to other tests. So we would just continue to use the old good OKD. More questions. Yeah. I think the question was if we, in the case when we want to build images for components whether we always need to, like whether the user needs always to provide the Docker file or whether there are other means to be able to build images. I think right now there are no other means and it's not decided by us, but it's decided by an architect who decides how the images for OKD and later OpenShift products should be built. So right now it's only Docker files. So I guess that's it. So thank you for all those questions.


And then another now comrade wrote into the website and this is quite lengthy but I'm going to read out anyways. I'm just an angry powerless young person who doesn't want everything I know to die. I've wanted to participate in radical leftist activism for a long time and just stumbled upon this opportunity. I don't want to go passively, I want to raid against the system that put down everything except profit.  I'm increasingly convinced that reformism is dangerous and naivete. The Israel Gaza genocide has demonstrated this best. I've long stopped being a fan of liberal democracy but I never thought they would support mass murder of this brazenly. I don't want to live in a world where simply living is something you have to work for. I want to tear down every hierarchy propped up by a system that leaves everything to rot and joining this party is one step toward that. There's never been a better opportunity to fight back against the system collectively. Stop fighting for yourself individually, organise collectively. That is what we need to be doing today. There's never been a better chance.  Thank you very much. Cheers.


We did the Salt Conference and if anybody remembers Anthony Scaramucci, he was in that short stint with Donald Trump, where he's his press guy, and then he was in 10 days later. Anthony and I became very close over the years. We ran this event with his team and just had an amazing time at the highest and highest levels. If there weren't generals and dignitaries at his VIP dinner every year, you know, it was something. The concert, I mean, I can name off about 10 different high-end acts that they would do over the years. And one of my favorites was Adam Levine with his band.


Lutz presents Hollywood. The Lutz Radio Theatre brings you Shirley Temple, Claude Reigns and Preston Foster in The Littleest Rebel. Ladies and gentlemen, your producer, Mr. Cecil B. DeMille. Greetings from Hollywood, ladies and gentlemen. Whatever it takes to make a motion picture star, we've got a whole lot of it here tonight in a very small package. Shirley Temple is making her first appearance in the Lutz Radio Theatre. Her first appearance in a full-length radio play. It carried me back a few years to the day I watched her on the set doing her first important role. Later I saw the picture score its first hit, not at a glittering premiere with milling crowds and bright lights, tracing patterns in the sky, but in a studio projection room, just four bare walls and the toughest audience in the world, men and women who make pictures for a living. When it was over, we were all the slaves of an actress, just five years old. For on that afternoon, ladies and gentlemen, a star was really born. Tonight we present Shirley Temple in one of her biggest 20th Century Fox hits, The Littleest Rebel. And opposite Shirley, we have two leading men, two count them. Claude Reigns and Preston Foster, both rivals for the ladies heart. Naturally, this is a proud week for all of us here. We're proud that this distinguished event is brought to you in this theatre by Lux Toilet Soap. And I know you share our pride because without your help and support this play and cast would be only a producer's dream. Your part in this theatre is just as important as any part played on this stage. And we hope that every day you'll give Lux Toilet Soap the important role in your daily living that it deserves. The Littleest Rebel is a story of the human side of the war between the states. It's about a little girl whose bravery and courage found friends and men of good will on both sides. Claude Reigns is her father, a captain in the Southern Army. Preston Foster is a Northern Colonel. And tonight Preston has brought his suitcase with him because right after the final curtain, he leaves for Regina and the Canadian opening of Northwest Mounted Police, in which he played another soldier hero for me. Now we take you back to the Old South to see a great historic event through the eyes of a child. The curtain goes up on Act 1 of The Littleest Rebel, starring Shirley Temple as Vergey Carey, Claude Reigns as Captain Carey, and Preston Foster as Colonel Morrison, with Lee Whippa as Uncle Billy, and Frank McGlynn as Abraham Lincoln. April 12, 1861. Throughout America, it heard the first rumblings of a great conflict. And on this day, a gun will be fired at Charleston, heralding the opening of a four-year war between the states. On the Old Carey plantation in Virginia, the thunder of marching men has still to interrupt the quiet dignity of its peaceful country life. In the great reception hall of the mansion, the children of the neighborhood have gathered in honor of the young mistress, Vergey Carey, eleven years old today.  Everything all right, Miss Vergey? Thank you, Uncle Billy. Everything's fine. Miss Vergey, may I have some of those cookies? Of course you may, Uncle Billy. Serve these cookies to Master Harold. Right, Miss Jen. Yes, Miss Vergey. It looked to me like Master Harold got them all outside and all the inside. Would anyone have some more ice cream? Another portion for you, Miss Gladys? No, thanks. I've had enough.  Oh, well, I'll only ask the ones. I won't coax. More cake or ice cream, Master Pellet? No, Miss Vergey. Nothing more for me, thank you. Would you care for more ice cream, Master Frederick? Yes, thank you very much. Now you've done it, Miss Vergey. Master Frederick, perhaps you'd rather have another nice big piece of cake. No, just ice cream. What are you going to do now, Miss Vergey? Give it to me, Uncle Billy. You? Yes, I haven't touched it yet. Take it to him, please. Yes, yes, Miss Vergey. Now, will anyone else have any ice cream?  Look at her. Isn't she lovely? Thanks. She takes after her mother. Oh, Robert, please. Oh, Master Kerry, sir. Yes, Tom? Master Kerry, that Sally Ann child of mine doesn't just come up in quarters. Say, she and Rosa Bell and others got a present for Miss Vergey. Well, that's fine, Tom. Master Kerry, I didn't tell all those children not to come up here. It's all right, Tom. Linda, I think you'd better take care of this. Of course, dear. They're all waiting outside, Miss Kerry. I'll tell Vergey. She'll be right home. Now you get up some gulpsion, Sally Ann, and talk right out to Miss Vergey.  All you gotta do is give Miss Vergey the present we make for her. Now you hush. And don't forget to make that speech like I teach you. Here she comes now. Hello, Rosa Bell. Go on, Sally Ann. Say it. This is the present I got because you all made it with your own hands. Thank you ever so much. Happy birthday, Miss Vergey. Happy birthday to you. Excuse me. I've got to go in now and I'll save you all some cake. Yes, Miss Vergey. And you dance very nicely, Miss Vergey, if I may say so. Thank you, Master Fellow. But I hope you'll excuse me if I don't bow very low. My bridges are too tight. That's perfectly all right. Just bow as far as you can. Thank you, Miss Vergey. Yes, sir. Come in, sir. I want to see Captain Kerry right away. Yes. Who is it, Tom? It's a soldier, Miss Kerry. I'm sorry to disturb you, ma'am. But I have a message for Captain Kerry. It's very urgent. For Captain Kerry? Oh, just a moment. Thank you. Robert, come here. Yes, my dear. Robert, a man just rode up. A soldier. Where is he? Captain Kerry, sir. Yes, I'm Captain Kerry. What is it? Fort Sumter was fired upon this morning, sir. The war has started. Gentlemen, please. You have any orders for me? Yes, sir. You ought to present yourself at the Armory immediately, sir, with horse and side arms. And all men of the Richmond Graves report in the city before nightfall will be in place. Send someone down the valley to spread the news. Yes, sir. Then ride north among the river plantations. Yes, sir. War. Oh, Robert. Well, it was bound to come, Linda. But it can't last long. I'll be back in no time, darling. There's nothing to worry about. That's what they told me when my father left for the Mexican war. I never saw him again. Linda, darling. I... I'd better get your things together. Yes, I'll have to leave as soon as I can. And I think we ought to get the children home. The roads may be filled with soldiers before night. We'll be mobilizing. Of course. Tom. Tom, get all the carriages ready as quickly as you can. Yes, sir, Miss Kerry. That's the last one. Everybody gone, Miss Vergey. Uncle Billy, I don't think it was very polite to chase everybody out of my party like that. Can't help it, Miss Vergey. That mamma's got to get him home quick. You see, there's going to be a war. A war? Yes, a real war. With lots of soldiers and battles and men killing each other with guns. But why? Why, Uncle Billy? It seems like to me, Miss Vergey, that no one knows why. I hear white gentlemen say that there's a man up north who wants to free the slaves. What does that mean? Free the slaves? I don't know myself what it means. It's funny, isn't it? Miss Kerry, say you better come in the house now, Miss Vergey. It's getting powerful late. In a little while, Uncle Billy. Ask her if I can stay out just five more minutes. You waiting for your daddy again, Miss Vergey? We'll help him get you out no sooner than just watching the road.  Say, there ain't a confederate soldier around here for a mile. Yankees, what would they know? Hey, Ro! Better come inside the house, Miss Vergey. I'm not going to run. But there's liable to hurt you. I won't budge. I'm not afraid. I'm evil.  Of course I'm not. Are you? Well, I hear the white gentlemen say that your daddy didn't know what fear is. But if he won't find out, I could tell him now. Oh, what are you afraid of them for? Do you see that man riding in front? Well, watch. What you gonna do? I'll show you. Miss Vergey, put away that slingshot. Get me a pebble. Where's a pebble? Please, Miss Vergey. You ain't going to use that slingshot on a Yankee. You can't. Watch. Ow! Cover the hole! That'll teach him to come snooping around here. Miss Vergey, you are starting another war. Who did that? Who did it? I did.  Who are you? I'm a confederate. Oh, a little rebel, am? I'm not a rebel. My daddy said so. I'm a confederate. Is your daddy a soldier? He's the best soldier in the army, the confederate army. Is he around here now? Do you suppose I'd tell you if he was? No. You've got a lot of spunk, haven't you? I'm not afraid of you. I've noticed that. Nevertheless, young lady, I'm a colonel in this army. Yankee army. And it's beneath the dignity of my position to be hit in the back of the neck with a slingshot. So you just mind your manners. Good day. Oh, I wish I was in Dixie. Hooray! Hooray! This is where you do it.  Away! Away! Goodbye, little rebel. Now talk to Dixie. Well, it's me. Master Kerry. Miss Kerry. Miss Wendley. Miss Mascayne, come back. Shut that door and bolt it. Yes, sir. Robert. Oh, Robert, you've come at last. Linda. Daddy. Daddy. Hello, darling. Oh, Daddy. Oh, Robert, it's so wonderful to see you. It's been so long, darling. Yeah, here now. Are those tears? Tears of joy, that's all. Me too. Look, Daddy. We can't have that. Southerners never cry. No. Then what are those in your eyes? Oh, raindrops. Not a sunshiney day. Can you stay long this time, Daddy? Not this time, either, darling. I've got to get right on again. I'll see if Roosevelt has lunch ready. I won't be able to stop for it, Linda. Oh. Well, you can take something along with you. You've got to have something. Are they getting a fresh horse for me, Uncle Billy? Yes, sir. I'll go see Miss Wendley. They'll have it for you, Daddy. Everybody knows just what to do. We practice it every day. God love you.  Can I polish your boots? No, don't bother. Time's too precious. Just sit over here with me. Let me look at you. Daddy, are we winning the war? Well, it's hard to say yet. You mean we're losing? No, but don't worry about it. Things are going along. Well, it'll last much longer. I hope not. Do you have to work hard in the war? We all have to do our share. But every time I see you, you're always so tired. I'm not tired now. I'm looking at you. So, Daddy, do you miss me? Very much, darling. Mother always pretends you're just gone for a little while and that there's nothing really wrong. And then when she's alone, she cries. I've seen her. But she does pretend. That's what matters. We've all got to pretend. I put something in your saddlebag, Robert. It isn't very much. Thank you, darling. I've got to travel light anyway. Well... Oh, do you rarely have to go so soon? Can't you rest just a little while? I've got to move on while the coast is clear. I have to find out where Sheridan's camping and report to General Lee before nightfall. Oh, Vergy, would you look out the window and see if Tom has a horse saddle? Yes, Mother. Robert, I'm worried about you on these scouting expeditions. If you're caught, you'll be shot as a spy. I can't be shot as a spy. Not as long as I'm in my own uniform. Please be careful. I will, darling. They're bringing the horse up, Daddy. Good. Well, I'm sure he's ready, Mr. Carey. We've got no best saddle and weight at the back, though. How is she, Uncle Billy? Fine, Mr. Carey. Fine, sir. We've only got two horses left. But there's both goods, sir. Two left? Linda. I've had to sell or trade nearly all the stock for food. I've kept the horses till the last I thought you might need them. Why didn't you tell me? Oh, you have enough troubles. This is the part of the war where women must fight.   What's that? Mr. Carey, hurry! What's the matter, Tom? Yankees coming over the hill. Yankees. Robert, go quickly. Goodbye, darling. Don't be afraid. Of course. Goodbye, Bertie, honey. Bye, Daddy. Oh, come on, darling. Let's see you smile. I am smiling. Well, that's only half a smile. Come on. Now, a big one. Not this. That's fine. Don't be scared. Hurry up, please. Coming. Linda, listen. Yes. I'll try to cross to the other side of the mill. I can hide in the woods till they pass. If I get over, I'll fire three quick shots to let you know I'm safe. Keep the Yankees here as long as you can. I'll need all the time I can get. Goodbye. Goodbye. Goodbye, darling. Daddy! Daddy! Yes, dear? General Lee. I will, honey. Goodbye. Tom. Yes, Miss Carey. Where are those soldiers now? Just turning off the main road, Miss Carey. Uncle Billy, get the corn from the barn into the house. Yes. Then hide the silverware in the cellar. Yes, ma'am. Wait. Where's Master Carey's horse? The one he rode here. We put him in the barn, Miss Carey. Well, take him out. Have Tom ride him to the bottom of the west field and turn him loose. They mustn't see that horse. Yes, ma'am. I'll tell. Verge, you come upstairs with me. I'm not afraid of Yankees. Please, dear. Just those here. Wherever you are on the back, the rest stay with me. Yes, sir. Keep your eyes open for food and valuables. But Sergeant Dudley, we have strict orders against looting.  I'm in charge here. Yes, sir. Open up. Open up! Yes, sir. We're looking for a spy. Is there a rebel hiding in this house? No, sir. Nobody told, sir. Who lives here? Miss Carey, sir. Married? Yes, sir. Where's her husband? Well, sir. In the army? Is he? Yes, sir. Where's she? She's around. I don't know where, sir. Some of you men search the house. She's hiding someone. She wasn't, she'd be here. Yes, sir. You. Bring me a drink. We ain't got nothing except some apple cider. I'll bring me that. Yes, sir. Got any food? Food? No, sir. Ain't enough for tall. Sergeant Dudley. Find anything? Yes, sir. This corn out in front of the ground near it was wet as though a horse had been watered and the saddlebags filled. This corn ain't been there 10 minutes. The sun ain't even turned it yet. Search the stables and rush some men down to the river near the old mill. That's where he'll cross if he gets away. Yes, sir. So there was nobody hiding in this house, huh? Come here, you. I don't know nothing. I don't know nothing. There's food in the cellar, sir. Food. You didn't know that either, did you? Well, go get it and be quick about it. Come on, miss. Come on. Easy now. Easy. I found this kid hiding at the top of the stairs. It's a woman we want. Find her. Yes. Come over here. Where's your mother? Where's your mother? All right, little lady. We're not in any hurry. We'll be here for a long time yet. Huh? Might as well be comfortable. Here. Pull these boots off for me. Pull them off yourself. Did you hear what I said? Now grab that boot. Down there at the hill. Now pull. Pull. Push. Look out, you. I'll show you. Don't go. You're shoving the chair over here. Look out. Back here. I'll tan your hide. Come here. Come here before I... That's my child, hello. Get out of my way.  Do you hear? What you did? Are you hurt, lady? I'm sorry. I didn't mean to push you.  Let her alone. Let her alone. Attention. Sergeant Dudley, Colonel Morrison is here. Morrison. What's going on here?  No. No, I'm all right. Who's in command here? I am, sir. Sergeant Dudley. I might have known it would be you, Dudley. You know what he does. You men put that loot back where you got it. Lieutenant Harris. Yes, sir. Take this man outside and give him 25 lashes. Investigate the others. If any are gilly, give them five lashes each. Yes, sir. I can't tell you how sorry I am, madam. And you, too, miss. You were crying, weren't you? No, I wasn't. I'm just mad.  I won't blame him a bit. Here's my handkerchief. I'll blow. Thank you. You're welcome. Madam, I'm Colonel Morrison. You're Mrs. Robert Carey, aren't you? Yes. Mrs. Carey, a rebel scout is known to be in the neighborhood. I'm sorry to have to question you. I know nothing about him. I happen to know that you do. He's your husband. You've seen him today? No. Would you tell me if you had? Would you expect me to? No. I'm afraid not. Colonel Morrison. Yes? We just found a horse in a corral half a mile below. It shows signs of having been ridden hard in the last 20 minutes. That means he changed horses here. Send five men to the river. Put two sharp shooters on the roof of that old mill. They can cover both banks. Wait. What's that? A path. A godsend. Oh. In that case, I'm afraid there's no longer any necessity for my staying. Never mind that order, Corporal. He's already across. We'll go back to camp. Yes, sir. Mrs. Carey, if you should see your husband again, I'd advise him to stay out of this section. They don't always get away from us. Good day, madam. Good day to you, little rebel. Burgy, did you see his face? He was almost glad the daddy got away. He was nice, wasn't he?  In a moment, Mr. DeMille will bring back Shirley Temple, Claude Reigns, and Preston Foster in act two of the littlest rebel. Did you ever stop to think that everything you say makes a sort of tune? Now, for instance, if you wake up feeling unhappy, you're likely to say good morning like this. Good morning.  That sounds better, doesn't it? Now, isn't it true that the woman who wakes up happy in the morning is usually the woman who looks pretty in the morning? The woman whose husband puts down his newspaper to say, how nice you look and thinks to himself, what beautiful skin. And when you talk about beautiful skin, about the complexion care nine out of ten screen stars use, it too makes a tune. Yes, luxe toilet soap.  Know why? It's because this mild white soap has active lather that removes stale cosmetics, dust, and dirt thoroughly, gives skin the protection it needs to stay lovely. Now, our producer, Mr. DeMille, act two of the littlest rebel starring Shirley Temple as Virgil Carey, Claude Reigns as Captain Carey, and Preston Foster as Colonel Morrison, with Lee Whipper as Uncle Billy. The months drag slowly by, the flame of war rising higher each day, laying fearful waste to home and farm. Directly in the path of destruction, in the crossfire of two armies, lies the Carey plantation. It's deserted now for Mrs. Carey, Virgil, and Uncle Billy have taken refuge in the fields. For a whole day, they've watched the shells bursting near their house, and now with night, a driving rain sweeps down upon them as they huddle close around the lantern. You can't get back to the house tonight, Miss Carey. Yang is already down, but it's all filled. The house right in the line of fire. Look, Mother, the shells are dropping in the yard. What about going down to... to slave quarters? Can we go there? Then we're safer here. We'll wait till morning anyway. Mother, you're cold. Please take this blanket. I don't need it, Mother. Honest, I don't. No. You keep it, darling. Put it up around your throat, good and tight. But, Mother... It's all right, dear. I'm warm, really. Do as I say. All right, Mother. Captain Jerry. Captain Carey, sir. Yeah? Oh, come in. Sorry to disturb your rest, sir. One of your slaves just came into camp. He wants to see you. One of my slaves? Yes, sir. Well, how could he have gotten through the Yankee lines? We'll send him in. Yes, sir. Come in here. Oh, Master Carey, thank you. Lord have found you, sir. What is it, Uncle Billy? Sir, she's awful sick. Sick? Yes, sir. I'm afraid, Master Carey. She keeps asking for you all the time. I'm afraid. What happened? Well, sir, they fought right in the front of the house in the slave quarters, and the house burned down, sir. Miss Carey kept her death a cold. She coughed and bad. How long has this been going on? Oh, she was sick for three weeks and getting worse. And living in a cabin that ain't fit for the likes of me. So I thought I'd better fetch you, sir. I've been going from camp to camp before the week now. And Vergy is Vergy all right? Oh, she's fine, sir. Never complain about nothing. Always cheerful. Been a great comfort to Miss Carey. But I was afraid Miss Carey needs you now, sir. I'll get leave right away. We'll have to take our chances on getting through the Union lines. Yes, sir. I got some logs in the river covered with brush. We can float down past the Union camp and cut in linen and cross through to Chickaharmony Swamp. All right. Come on. We've got to get into the swamp before daybreak. We've got to stop the bank. We're drifting into the shore. Yes, sir. Sure would be a help if we could see that bank. I never did see a dark night like this. That moon, that moon will only stay behind the clouds. We'll make it. Where did you say that Union camp was? Just blue, yes, sir, but maybe a half a mile, maybe less. Well, they camped on both sides of the river? No, sir. Only on this side. The one we's on now. How wide is the river on that point? Did you notice? No, sir. I couldn't say for sure. The river is mostly narrow all the way like about here. That means we'll have to float right down past their centers. Yes, sir. Putty closed. They could just about reach out and touch us as we go by. If we go by? We will. Keep low down on the raft. And pull that brush above you. I won't even breathe, not scared. Seth and I was just thinking, how we go to pull the raft along if he's laying down? She'd get stuck awful easy in the bank here. We'll have to take that chance. I'll keep it out as far in the middle of the stream as I can. Look, masquerade. There's camp now. I see the fire. Quiet. You're not masquerade. Somebody playing the mouth on. It means they're still up and stirring. Maybe not. There aren't many fires burning. Look, sir. Here comes that moon again. They can see us for sure now. Hold the raft back to me. Now work it out in the middle. Hold it. I see a soldier, sir. The one that's playing. He's sitting right on edge of the bank, sir. It's too late to turn back now. We'll have to go on right past him. Keep him low. And if he stops playing, shove the raft over to the other bank and run for the trees. Understand? Yes, sir. The minute he stops playing, only I wish I hope he don't stop. Let him out. Yes, sir. Come on. We did it, sir. Right under the nose, like his nose. Yes. He plays well, doesn't he? Yes, sir. Feeling better now, aren't you, mother? I think so. Yes, dear. Sure. You just stay in bed and don't try to get up. Daddy will be here soon. He'll make everything fine again. You just wait and see. We mustn't be too sure, darling. And then we won't be disappointed if he can't come. Perhaps Uncle Billy couldn't get through the Yankee lines. Uncle Billy can do anything. He'll bring Daddy back. I know it. Now I have my housework to do, so you just lie quiet till I finish. All right. I'm very proud of you, darling. I'll be right back. Roosevelt, are you crying? No, ma'am, Miss Vergey. I just kind of slipped.  Yes, sir. Yes, sir. Vergey, let us in. It's Dad. Daddy doesn't come. Oh, Daddy. Vergey, darling. The whole Yankee army couldn't stop him. How's that? How's that, too? Vergey, how's your mother? Oh, she's much better. She's in here. Come on. Thanks for dinner. Linda, Linda. Linda, how are you? Are you really better, darling? I had to live until you got here, and I knew Vergey'd be safe. Don't talk like that. You're going to be well, darling. I'll take you out of here. We'll go south, far behind the lines. Yes. Vergey. And you, Linda? You. Look at me, Robert. Can't you see? It's too late, darling. Linda. Billy. Lasma. Robert. Don't let her see. Oh, mother, didn't I tell you what would Billy would find him? Wasn't I right? Yes, dear. And you don't have to leave right away this time, do you, Daddy? No. No. I'll stay. You see, mother? He can stay. And the war will be over soon, and everything will be just like it used to be.  And that's all true. Isn't it, Daddy? Tell her it's true. Daddy. Vergey, dear. Yes, mother? No matter what happens, you've got to be very brave. Can't I be brave and still wish you weren't sick? Of course, dear.  She's going to sleep soon, darling. And if mother can dream in her sleep, oh, my dear ones, if there are dreams in that sleep, how are dreamers new? Vergey? Go outside, Vergey. Wait for me. Roosevelt says she is. I didn't know she was that sick. Will she get well again? Will she? That ain't for us to say, Miss Vergey. She will. She's got to get well. Come here, my darling. Something happened to mother? Something very beautiful, darling. And that's how you must always think of it. That mother will never be ill again. No discourage. No frighten. No hunger. And she'll never suffer anymore. Just think of it as beautiful. No one will bother you. I'll return as soon as I can. In the meantime, I'd like to feel that someone was taking care of things. I know, sir. I'll be here and I'll put flowers on a grave every day. Thanks. Now, there hasn't been a Yankee patrol through here since morning. There's bound to be one soon. Get Miss Vergey's things ready.  Yep. Who do Yankee lie? I've got to get her to my sister in Richmond. She'll be safe there. Look, Captain, it's dangerous. You can't do that, sir. We do lots of things in this war, Uncle Billy, that can't be done. Listen. Yankee! You can't leave now, sir. I have to hide here. Or it does a trapdoor massacre you up in the ceiling, sir. That'll do. You've got to go, Daddy. They're coming. I can't. It's too late. Uncle Billy. Is there a ladder to get up there? Never mind. Push that table over there. There you are, sir. Listen, do you remember how Mother always taught you never to tell a lie? Yes. Well, if these Yankees come, you'll have to break the rule, darling. All right. What shall I say? If they should stop here and question you, tell them, I was here, but I left an hour ago, and you saw me cross the river. I will. They're coming, Massacre. Up here. Right over your head, darling. Don't be frightened when they come. Just act as though you didn't know they were here.  Please. All right, sir? Yes. Now put that table back against the wall. Remember, act as if nothing had happened. We will. Close the trap door so they're coming right now.  Yes, ma'am. I got it. Well, please, something quick. I don't know if I can. Miss Bird's not shaking so. We'll try. Go on. Yes, ma'am. It's you again. I'm sorry to bother you. How's the littlest rebel of them all? Fine, Yankee. Just fine.  No, sir. Come in. Thank you. You two all alone here? What? I said, are you two all alone here? Oh, yes, we are. Your daddy hasn't been around, has he? Yes, he was, but he left an hour ago. Hmm, that's so. Yes, sir. I saw him cross the river. Well, now that's very interesting. Play something else, Uncle Billy. Yes. Just a minute. What was your father doing here? He came to see my mother. She was very sick. She kept asking for him. So Uncle Billy went and brought him. And then this morning, my mother, she went away. She went? Oh, I'm very sorry. My daddy said I must always think of it as beautiful. Your daddy's right. You see, I have a little girl, too, just about your age. I'd be awfully sorry if her mother went away. Are you warm enough now? Yes, I think so. Good night. Good night. Just in case your father should. What's the matter? You had that table out in the center of the room, huh? Oh, no, sir. No, sir. No? What are those tracks on the floor? Them? Oh, I must have made them sweeping. The table stood right here and up there. Is that a trapped door in the ceiling? There's nothing up there, nothing at all. You've been lying to me. No, sir, I haven't. Your father is here now. He isn't. He isn't. You know he is. He was here but he left an hour ago. I saw him cross the river. You tell me the truth. It is the truth.  No, no. Just a minute. Dad. I'm coming down. When I thought that it'd let you, drop down and keep your hands in the air. Now, like up against that wall, you got a pistol? Inside my coat. I'll take that. All right. You can put your hands down now. Daddy, I didn't do it right, didn't I? Yes, you did. I'm proud of you, Bertie. I said just what you told me to. And you were perfect. I was only fooling about that licking. I wasn't really going to do it. Go inside, dear. Daddy'll call you. Take her inside, Uncle Billy. Can you arrange it so that my rest won't frighten her? I'll try. Thanks. Got any papers on you? No. I'm not scouting this trip, Colonel. I came home to bury my dad. Yes, I know. I'm sorry. Come on. Let's get it over with. I'm ready to leave now. You don't want to see the little girl? I'd rather not. I don't believe I could stand it. You were going to leave her here alone? I was going to take her to Richmond. You can tell her that... Well, tell her the war is almost over. I'll... I'll be home soon. I wish that were true. Captain, I don't think my country expects me to make war on babies. If you get that child to Richmond, it's all right with me. Here, take this. What is it? A pass through our lines. A pass? Now, if you were in a Yankee uniform, you might make it. Otherwise, I doubt it. You'll have a choice. Of course, you'll realize what it means if you're caught. You're taking an awful chance yourself, Colonel. War is full of chances. Do you know the Cartwright Plantation? Well... They've got a carriage and a couple of horses. I left a uniform there to be mended by the slaves. If you wanted to steal it from me, I don't know how I could stop you. I won't forget this, Colonel. I hope you'll get through. Thanks. There's just one thing I want you to promise. And passing through our lines, whatever you see or hear, forget. My word of honor. You'd better leave right now. Vergey, come in. Get out the back way. Follow the woods to Cartwrights. I'll keep my men here for half an hour. Vergey, put your coat on, hurry. Daddy, is the Yankee going to help us? Yes, darling. The Yankee's gonna help us. You see, you made me think of my little girl. Oh, well, I hope you get home to see her soon. Thank you. Goodbye, Colonel. Good luck, sir. Goodbye. Goodbye, little rebel. You know something.  You know something.  This isn't the same road we used to take to Richmond. I know, honey. We're going the long way round. I'd rather not meet anyone if we can help it. Well, you've got a Yankee uniform on. And didn't that man give you a pass to show them? Yes, but the Yankees around here might recognize me. I don't want to use the pass to get out of this neighborhood. This isn't a very nice neighborhood, anyway. Hold it. Hold it. Where you going, mister? I'm taking this child to her father just beyond our lines. Colonel Morrison sent me. Here's our pass. Where'd you come from? Curtis Plantation. I've left that noon. Why aren't you using the main road? I'm full of artillery going the other way. Well, this looks all right, but I don't know. We got orders to be on the watch for a rebel scout. Well, they caught him this morning. They did? Morrison's man at his own plantation. Oh, what's your regiment? Seventy-second Vermont. That's all right, then. It came just a mile below here. Go ahead. Tags. Wait! Hold that carriage. Come here, judges. Just a minute, mister. Daddy, that other man is the same one who came to the house. The one who hurt Mother. Quiet, darling. Keep your face covered. Did I hear somebody say something about Colonel Morrison? I did. I just came from him. Here's my pass. Yeah? Whose kid is this? A friend of Colonel Morrison's. A friend on the other side of our lines? Well, there's been heavy fighting south of here. The lines change every day. Let me see that kid.  Give me a light over here. Listen, I have a pass. Have a mind the pass. I want to see that kid. Come here. Let me alone. Yeah, I thought so. Ever seen me before? No. No, and I've seen you. Hold this kid, Judson. Her old man is the most dangerous scout in the Rebel Army. And you, mister. We want to speak to you, too. Get out of the way! Stop him! Stop that carriage! He's a rebel spy! Hold! Hold! Get down on the floor. I'm going to stop at the bottom of this hill. Then we'll run for the woods. All right, Daddy. But hurry! Hurry! Me and. Take care of that girl, Harris. You come along with me, mister. You're under arrest! After a brief intermission, Mr. DeMille will return with Shirley Temple, Claude Reigns, and Preston Foster in Act 3 of the Littleest Rebel. Now, a day with Mary Kay, secretary. Yes, Mr. Jones coming. Mr. Jones' office. In a minute, Mr. Jones. Yours of the fourth, received. Right away, Mr. Jones. Sorry, Mr. Jones is in conference. All right. No, sorry. He's still in conference. The contract you refer to. Mr. Jones' office. Wait a minute, please. I'm coming. And so, Mary Kay has quite a day of it. She works late and gets home a little out of breath. Because, as luck would have it, she has that night a big, a very big date. She hasn't time for a nap, but she knows what to do. She draws a tub of warm water, gets in, and relaxes completely. Yes, luck's toilet soap. That's the soap she uses. She covers herself all over with its rich, fragrant lather. Yes, active lather that makes her sure of skin that's really fresh. She steps out of her luck's toilet soap beauty bath, feeling like a million, buzzers and phone bells forgotten.  Mary, what makes you so sweet? We pause now for station identification. This is the Columbia Broadcasting System. The curtain rises on the third act of the littlest rebel. Starring Shirley Temple as Vergey Carey, Claude Reigns as Captain Carey, and Preston Foster as Colonel Morrison, with Lee Whipper as Uncle Billy, and Frank McGlynn as Abraham Lincoln. Arrested as a rebel spy, Captain Carey was taken before a military court to be tried and sentenced, but he was not alone. Another man stood trial with him. Colonel Morrison, accused of treason, and the sentence passed upon both, was death. In adjoining cells of a Yankee prison, two men await news of their appeal, and one night it comes as a union officer stops in the corridor outside Carey's cell. Captain Carey? Yes, sir. I'm afraid I've got to give you some bad news, Captain. The appeal was denied. Yes. Every finding of the court was upheld. I see. And that... when does the party take place? The morning of the 27th. At dawn. I still have six days. Are there any messages you want since? I'd be glad to do anything I can, Captain. You've done enough already, sir. Is my little girl all right? Yes. We sent for that old slave of yours. He arrived this morning. He's looking after her. She has a room with Mrs. Robinson on the next street. Thanks. You've been very kind, Major. Colonel Morrison? Yes, I know I heard you. No chance at all, eh? I'm sorry, Colonel. He's innocent, Major. All he did was to try to help a child. The evidence we couldn't overcome, Colonel, was the fact that you not only gave Captain Carey a pass, but he was wearing your uniform. I stole that uniform. We couldn't make them believe that. I'll be around, Colonel, if there's anything you want done. Thanks, Major. Well, it was a gamble and we lost. I haven't any regrets. When I think of my own baby, I'd do the same thing over again. If helping a child is treason, I'm afraid I come of a family of traitors. Hurry, Uncle Billy. Daddy always expects me at 3.30. He says it makes his afternoon thing shorter. As hard as I keep, Miss Verge. Do you think they'll keep him locked up much longer? No, Miss Verge. I expect you to take him out pretty soon, now. I hope so.  And then I thought maybe that was too much to ask. So I said he didn't have to bother about the dress. There's no use taking any chances, is there? No, ma'am. That was right. But if you want that dress, I'll kind of slip a little hit in my prayers tonight. All right. Oh, before I forget, Uncle Billy, when we get there today with Daddy, if you look sad like you did yesterday, I'll never take you again. No, Miss Verge. I won't look sad. See that you don't know. We've got to smile to show him that we're happy. I'll be everything you've been doing. I don't get much news in here. Well, I sewed up a hole in my dress, and this morning I helped Mrs. Robinson with the housework. She's awfully nice. I'm sure of it. Go on. Daddy, when are they going to let you out? I thought we weren't going to talk about that. Now tell me, tell me what else you've been doing. Well, there's a little girl who lives across the street, a pony. She let me ride it yesterday. That was grand. And she invited me in for lunch. She's a Yankee, of course, but she said she didn't care whether I was a rebel or not, and I said I didn't care whether she was a Yankee. Even if there is a war, she was awfully nice to me. Daddy, when she was so nice, and Colonel Morrison so nice, and Mrs. Robinson, why did the rest of the people have to kill each other? I don't know, honey. I think someday when we grown-ups learn to have as much sense as you children, there won't be any more wars. Right here. Miss Verge, we've got to go now. Not yet, Uncle Billy. The major man says so. We've got things we've got to do. Perhaps you're better, darling. Then tomorrow you can come again. All right. Good-bye, Daddy. You're not leaving without saying goodbye to me, are you? No, sir. Goodbye, Colonel Morrison. Tomorrow when I come, I'll do all my talking with you. Put you around, eh? Well, you see, you tried to help us. So I've made you assertive... assertive second, Daddy. Do you mind? Thank you. Nothing so nice has ever happened to me. Goodbye, Yankee. Goodbye, little rebel. Hi, Miss Verge. We've got to hurry up fast. What's the matter, Uncle Billy? Where are we going? Listen, that major man, he gave me some money, and he wrote a letter for us to give to some man up there in Washington. In Washington? Yes. That's where we've got to go right now. All the way to Washington. The major man says it's the only way. But I don't know if we've got enough money to give that. Who's the letter to? I don't know. Some man. A big, important man. He wrote his name right here on the letter. Let me see. There it is. What do you say, Miss Verge? To Mr... Mr. A. Blankin. A. Blankin? Who he? Please, sir, how much is the railroad fare for a colored man to wash? $6.20. And how much for this little girl? Well, she's a little tall for half fare. Oh, no, I'm not. I'm standing on my toes. This is my right side. See? Well, don't get down any lower, Miss, or you'll be kneeling. All right. $5.60 for you. First class. Thank you. That will be $11.80 altogether. $11.80. We got that much, Miss Verge? No. Mr. O, we have the $7. I'm sorry. $11.80. Now what are we going to do? How do people get money, Uncle Billy? I don't know. I never had no money. I know. Remember the time Daddy took us to the fair? There was somebody singing in the street and a man with a hat was passing through the crowd.  We'll get that money right away. Good drop thing for all you do all day. But I'd like to hear a lollipop. Which cause? Why the right cause? I don't put no money in a confederate hat. Oh, right there then, boss. See, I brought her all a union hat. Oh, that's different. Here. Thank you, sir. Mr. Lincoln, we'll see you now. Thank you, sir. Come in, please. Come right in. Good morning, sir. Good morning. We had an appointment. Let me see. It's written down here somewhere. Oh, yes. Mr. Virginia Kerry and Uncle Billy. Yes, sir. Yes, sir, Mr. President. I'm pleased to meet you, Miss Kerry. Thank you, sir. And how are you, Uncle Billy? Me? Oh, me. That's fine, sir. Good. Now, let's see. Major Thomas wrote me about this case. Suppose you sit right down over here, Miss Kerry, and tell me all about it. Yes, sir. Excuse me, I was building an apple here. You mind if I go right ahead? Oh, no, sir. Fine. I'll give you some when it's ready. Well, Miss Kerry? Mr. President, my daddy and Colonel Morris are in prison, and they're going to shoot them. Mm-hmm. Your father is a captain in the Confederate Army, isn't he? Yes, sir. Arrested as a spy. He isn't a spy. No.  I know it's something bad because they shoot you for it, and my daddy couldn't do anything bad. I don't see how he could either with a little one like you. I have a piece of apple. Thank you kindly, sir. Now, tell me about it. My daddy went away of the war, and then the Yankees came around our house. And sometimes my daddy came home. Was he in uniform? Yes, sir. What color? Gray. I see. I have another piece of apple? No, that's yours. I had the last piece. That's right. Thank you. Then what happened, Miss Kerry? Well, then there were so many Yankees around, my daddy couldn't come home anymore. And then our house burnt down, and we had to move into a cabin, and oh, excuse me, but that's my piece. You had the last one. I beg your pardon. You forgot, that's all. Well, then my mother got sick, and she kept asking for daddy all the time. Smoker Billy went and brought him home, and then she was going away. She said she was going to sleep. I understand, but you mustn't cry. Please don't. I won't. What happened next? Then the Yankees came, and my daddy had to hide in the garret. And Colonel Morrison came in. He talked to me. He's awfully nice. He has little girl, too. Just my age. Then he found daddy, and daddy told him about one to take me to my aunt Caroline in Richmond, so I could get enough to eat. Yes, sir. That's why the Colonel gave him us a carry to pastor. Just so he could bring Miss Wurgy where she could get taken care of. I see. Now on this trip, before your daddy was captured, did he write anything down on a paper, or anything? No, sir. Did he ever stop and look at the Yankee soldiers, or count them, or look at the cannon? No, sir. He told me that if we got to Richmond and anyone asked me what I'd seen, I was in honor bow not to tell them. He told you that? Yes, sir. Because Colonel Morrison asked him not to see anything. And my daddy gave his word, and they shook hands. Just a moment. Mr. Harper. Yes, Mr. President? I want you to deliver this message for me. Mr. President? Yes, Miss Kerry?  Colonel Morrison, will you? Harper, rush this by special courier. Yes, Mr. President?  But it seems to me that the natural hazards of war are sufficient in themselves without us adding to them.  I had the last piece. Oh, Mr. President. Mr. President! There, there, now, there. All your terrible fears are over. The note I just sent was to General Grant. Your father and Colonel Morrison are going free. This pass will see you through our lines. Thanks, Major. Thank you. Colonel Morrison, will you please report to your own regiment? I'll leave it once. Very good, sir. Good day, gentlemen. Good day. Good bye. Well, Captain, say goodbye. Goodbye, sir. Goodbye, Yankee. Goodbye, Rebel. Thank you for fixing things up with Mr. Lincoln. Perhaps we'll all meet again sometime. Not until the war is over, I hope. We'll pray for that, sir. Oh, that won't be long. You seem pretty sure about it. I am.  I think we're going to fix that up, too. Escorted by such gallant gentlemen as Claude Reigns and Preston Foster, surely Temple returns now to our microphone, her first curtain call in the Lux Radio Theatre. Well, Charlie, Mr. DeMille's a pretty tough boss, isn't he? I didn't take any chances, Mr. Reigns. I did what he told me. We didn't have any trouble, did we, Shirley? Honest, Mr. DeMille, I could hardly wait until school was over every day, so I could get here for rehearsal. You're sure you weren't just anxious to get out of school? I guess you went to school, too, Mr. Foster. What are you studying now, geography? Yes, and history and arithmetic in English. I certainly hope I pass out arithmetic. Shirley, my sympathy. I never really enjoyed life until I got through with arithmetic. I'm still a bit weak on spelling, but don't get discouraged, Shirley. The main thing is to, well, get a good secretary. Well, I want to thank you all for being so nice to me all week. I listen to the Lux Radio Theatre a lot, Mr. DeMille, and I've used Lux soap ever since I can remember. My mother says that we've had it at home since I was a tiny little girl. I think it's grand. Mother's always no best, Shirley, about everything, including Lux soap. What play are you doing next week, CB? Next Monday night, we have a play about one of the theatre's most glamorous women, and in the title role, we present one of Hollywood's most glamorous stars, Alice Faye in Lillian Russell. You'll hear Edward Arnold in his famous portrayal of Darman Jim Brady and Victor Mathieu as Alexander Moore. Lillian Russell's life was a play in itself, a life of romance, drama, and applause. But we'll tell that story next Monday night with the adaptation of the 20th Century Fox screen hit, Lillian Russell. I want to listen to that, Mr. DeMille. It sounds like a swell show. I'll hear it in Canada, CB, and I'm off right now for that Northwest Monopoly's premiere. Good night. Good luck, Preston, and good night, CB. Goodbye, Mr. DeMille. Good night. Good night. You go to the head of the class, Shirley. Our sponsor, the makers of Lux toilet soap, joined me in inviting you to be with us again next Monday night. When the Lux Radio Theatre presents Alice Faye, Edward Arnold, and Victor Mathieu in the delightful play, Lillian Russell. Mrs. Cecil B. DeMille saying good night to you from Hollywood. Heard in tonight's play were B. Benaderic as Mrs. Kerry, Avon Jackson as Sally Ann, Warren Ashe as Union Officer, Lou Merrill as Dudley, Jack Carr as Tom, Bernice Pilot as Roosevelt, Walter White as Corporal, Griff Barnett as Ticket Agent, and Charles Seal and Dwayne Thompson. The children were played by Bobby Larson, Barbara Jean Wong, Tommy Lane, Dix Davis, Harriet Flowers, Donald Brown, and Pauline James. Here's an important announcement. Uncle Jim's Question B, which so many of you enjoy, is now on the air Tuesday nights, instead of Wednesday. See your local newspaper or radio magazine for details. Claude Reigns will soon be seen on the screen in the Warner Brothers picture Four Mothers, Preston Foster has just completed Moon Over Burma at Paramount. Our music is directed by Louis Silvers, and your announcer has been Melville Roy. This is the column there, Broadcasting System.


Welcome to this short UK Data Service tutorial on how to hide empty rows and columns with UKDS.STAT. For this tutorial we selected a World Bank World Development Indicators data set in the UKDS.STAT interface. In particular we selected the subject Low Birth Weight Babies, Percentage of Birth, for all countries from 2009 to 2013. As you can see this data set is quite sparse and it would be useful to hide empty rows and columns. To do so, go to Customize and click on Table Options. Here take hide empty rows and hide empty columns on the top right and click on View Data. The table now displays only rows and columns with at least one value in them, which makes it easier to analyze the data set. That's it! Thank you for watching. For more information about our UKDS.STAT interface take a look at other UK Data Service tutorials and user guides.