The mutual broadcasting system in cooperation with Family Theater Incorporated presents Fear is a Little Word starring Joan Loring and Louise Beavers. Bob Crosby is your host.  This is a busy world. Whether in Hollywood or New York, it's just the same. You find people rushing around here and there, back and forth. Friends are too busy to call. Relatives too busy to write. Everybody's too busy. Yes, sometimes too busy to do a lot of things like being kind and thoughtful and ready to lend a helping hand when someone needs it. And many homes are unhappy because parents having time for their children, having time to get together as a family. Why? Well, they're too busy, that's all. We need a little more time out, folks, all of us do, especially at home. We'd have a lot more happier homes if people took more time out for home life together. Yes, that's important because if we're too busy to think of God, too busy for daily family prayer in our homes, then we're really too busy. Bob Crosby will return after tonight's family theater story, Fear is a Little Word starring Joan Loring and Louise Beavers. Greenville is a small town in the south bordering on the Mississippi. On this particular evening, a local chorus is rehearsing in the school and through the open windows, the singing drifts out across the vacant lots to a small, neatly kept house at the edge of the town. Vergy Lee is resting contentedly in her rocker on the back porch. She is listening to the music and watching her young daughter, Joan, at her nightly chore of rounding up the chickens. Here, chick, chick, chick, here, chick, chick, chick. Now look, all them chickens in yet, child. They're awful army tonight, Ma. There's just one more. Why, that singing sure does sound sweet, like heavenly voices. Which reminds me, isn't it about time my little angel practiced up on that song she's going to sing in church Sunday? Oh, Ma, I don't want to sing in church.  Now, is that any way to feel that's just plain sissy talk, honey? You got to do things in this world if you're going to mount to something, and it's an honor, that's what it is, and my Joan is going to do her level best. But, Ma, I'm afraid everybody looking at me and maybe thinking, what's that country girl doing up there among all those big, important people? I know a story about one little country girl that got way up among important people, even kings, and she didn't feel that way. Who was she, Ma? She had a name like yours. Her name was Joan, Joan of Arc, and she was just plain common folks like you and me. But she didn't let anything step in her way. When she heard what she was to do, she did it her level best. Who was she, Ma? You don't know who Joan of Arc was, and you are a great big girl going on eight.  I'm sorry, Ma. Who was she? She was a French girl, honey, and they came to think so much of her. Well, today she's a saint. What about this French girl, Joan? I worked in a big house with a French woman one time, and she was the one that told me about Joan, and she taught me how to say French words like, Bonjour and Bonjour. Those sure as common girl worlds. What do they all mean? Well, one of them means gentlemen, and one means hello. But I ain't just sure which is which. Anyway, like I was saying, this French girl, she lived a long time ago, five hundred years. How long is five hundred years, Ma? Longer than you can think. But don't fret your head about it. Times don't make any difference anyhow because this story could have happened anytime. Come to think of it, it would be sure a good thing if it would happen today. What could do with some help and no fooling? Tell me about her, Ma. Was she a beautiful rich lady with diamonds and a shiny car? No, sir. To begin with, she lived on a farm about like the farms around here. They had two or three cows and horses and sheep, too. As I remember, it was Joan that had to bring in the milk and feed the chickens. Oh, and haven't you finished with those chickens yet? They didn't want to go into crook, Mother. They are so wild tonight. I think it was the boys fighting their trouble there. Ah, those boys, forever playing soldier and fighting with each other. What is the world coming to when even the children think of nothing but war? When will there ever be peace, I wonder? Not till the true king assigns his throne, Mother. There will be no peace for France till the dauphin wears the crown upon his head. Big words for a maid of sixteen. Tend to your sewing and your other duties and leave affairs of state to the men. But they are bungling, then, Mother. I suppose you think you could do better? I could try. Oh, Joan, Joan, what are we to do with you? Ever since you started having these upsetting dreams, you have been... They are not dreams, Mother. The voices are real. They speak to me. Nonsense. I want to hear no more of that. Your father will be in soon. Hurry now and lay the table and add the potatoes to the pot of you. What's a pot of fuma? It's a kettle that's always sitting over the fire. French folks keep one there all the time, just boiling the lard. There's meat in it and onions and any vegetable they happen to have handy. Ma, you're making me hungry again. Can I have just one? You cannot? Well, maybe just one. Thanks, Ma. What does that mean about all the dauphin and the king? What did that part mean, Ma? Well, you see, it was like this, honey. France was all divided up into little states like, and they were fighting among themselves, and one of them, Burgundy, was the fight-ness of the lot. The real king of France, his name was Charles, and he was still a dauphin because he hadn't been crowned. He should have been sitting up there on his throne, ruling and keeping the peace. But he just couldn't seem to manage it. He needed somebody to help him, somebody to lead his army and help him get crowned, but there was nobody to do it seemed like. But what was it about the voices, Ma? What voices were they? Were they real? Joan said so, and she is a very good girl who went to church every Sunday.  But who were they? What did they say? They were the Blessed St. Catherine and the Blessed St. Margaret and St. Michael who spoke to her often. The trouble was nobody else could see or hear them, so nobody believed her. But Joan just went on listening. Joan, we are here. St. Michael. Oh, shining one. My eyes are blinded. We are here too, Joan. Oh, blessed saint at once. I kneel in all unworthiness to hear your commands. You, Joan, are our messenger on earth. Through you will God's word one day be made manifest. But how? You must be patient. The time is not yet.  Full instructions will be given you all the time is right. In the meantime, listen. Watch and pray. Pray. Pray. Oh, merciful Father, I beseech thee hear my prayer. I have sworn never to love man and count myself holy in thy truth and service. Count that whatsoever task thou hast set for me, I shall carry it through to a good end. And let's secure in thy mercy. I shall one day count myself among the blessed in heaven. Was it just like you said, ma? Was that how it happened? That was it, child, and there's no one can argue it because a blessed saint said it was so. But what did the voices want Joan to do? They didn't tell her exactly for a long time. They just kept on talking to her, trying to make her holy enough to do God's will. You see, things got worse and worse in France. The king should have been crowned if there was going to be any peace, but everybody was standing in his way, even the other countries. The English had no business over there at all. But they got themselves together, a big army, and had sailed over to France and were trying to capture the city of Orleans. Joan was almost 18 then, and one day when she went out into the garden to talk to the voices, they had something important to say to her. Joan, Joan the hour has come. We have need of you. This is the command of God. You, Joan of Arc, are to go at once to the help of the rightful king of France. But what should I have to do in such great matters? You are the instrument. A skill will be given you. Fear not. But I have neither money nor strength, nor friends. How shall I make my way to the king? And when I come, how shall I make him listen? He will listen, never fear. And the way will be provided for you. Only never waver in your path. There is no time to lose, Joan. Go. Go at once. Lift the siege of Orleans. Save the true king. Go. Go. Papa, believe me, it is true. The voices have commanded me. I am to go at once and raise the siege of Orleans. Raise the siege of Orleans. Are you mad, girl?   You would be laughed to shame if worse did not before you.   You must believe me. By all that sacred, I swear to you that this is true. The blessed saints themselves have told me what I should do. It is God's mission. I must relieve Orleans. Well, because of our cousinship, I'll go with you as far as Vocalor. I know the command under the fort there, Captain Baudrillacourt. Perhaps you will see or perhaps not. But in any case, you must be prepared for disbelief and ridicule.  Made to lead the armies of France. Eh, somehow I believe in you. But we will be lucky if we get back with our heads. Ah, Joann, as commandant of Vocalor, I have responsibility. So let us be reasonable, my dear.  And some, by us, honest it may be. But also I think quite mad if you ask me to say you to the Dauphin. Captain Baudrillacourt, as you love France, as you are a loyal servant of the one who through God's grace and my poor services will one day sit upon the throne, I beseech you to help me. Give me a horse and safe conduct. And make myself the laughing stock of France? Go back to your peaceful dowry, my girl. When France is driven to ask help of her mates, she will be in bitter strates indeed. Buddy, listen to Joann Ma. Couldn't she make him understand? She tried her best. She pestered that Captain Baudrillacourt night and day till he was near sick of the sight of her. You see, Joann had to have help of some kind, or she'd never get to the Dauphins alive. The country was just one mess of fighting and a girl traveling alone wouldn't get very far. She was sinking with depths of despair when she met with this young squire, Jean de Mez. Another rejection, eh, my pretty Joann? Well, patience, patience. Your charms will win old Baudrillacourt and never fear. I have no wish to win him. Only his horse and safe conduct to the Dauphin. Oh, Jean de Mez, I am on fire with impatience. Every dynasty of Orleans grows worse. My voices tell me that I tarry too long. I must find a way. Listen, my little pigeon. I have laughed at you, yes. I have teased and taunted you like the others.  Now I say, today I have come to believe in you. No ordinary girl would have taken what you have taken, would have come back time after time for another try. Yes, by heaven, I believe in you. And in your voices, whatever they may be. And to prove it, I am going to help you. I thank you with all my heart. The thing is, I see it that the most stands in your way, is the fact of your being a maid. Now, you and I, being nearly of a size, how would it be if I lent you a suit of mine? Did Joann boy the squire's clothes? She did, baby, and she made a right pretty boy, too. She had a haircut short and she wore a red tutti. That way, she was able to get as far as the Duke of Lorraine, who must have believed in her, too, because he gave her safe conduct and asked her to pray for his ill health. Then Joann went back to Bodecourt again, and by this time, he had time to think, and he saw things were in such a mess, they couldn't be very much worse, and he figured he might as well let Joann have a try. So the folks in Vocular, who'd come to have faith in her and love her, fitted her out with a horse and a page's dress and to wear, and Bodecourt himself finally broke down. Well, have it your own way, then, Joann. Never in my life have I seen a more persistent maid who will be having sentry leave to be rid of you. Wait a minute. Wait, I have something for you. Here, take this sword. A sword, my Capita. I shall pray for you every night on my knees. Nana, pray for yourself. You are going to need it. Now go and let come what may. I wash my hands of you. By nature, the test, do you see, the maid declares she is sent from heaven. The council says, then, let her prove it. Ah, and the sign is that Dauphin is agreeable? The girl has arrived with his curiosity. In fact, he is resolved to speak with her, but after they've made the test, his highness will stand down among us, and there will be nothing to show that he is the Dauphin. If she is able to identify him, I think she is coming. Jeanne of Arc, of Dom Rémy, known as the maid. In petition to his illustrious highness, Charles Louis Dauphin of France. Most noble Dauphin, I have come from God to help you and your kingdom. No, no, no.  You must not kneel to me. I am nothing. You are he who will one day be crowned king of France. I pledge myself to your service. My soul is in the keeping of God. And when the test, didn't she? She surely did, child. That tested all the others. What happened when she talked with the Dauphin? Well, they were alone together for two hours, and I guess he come to believe that she was telling the truth, but there was others that had to be satisfied. A whole lot of famous men were appointed by the king to question her. But when they were finished, they didn't have anything but good to say about her. So a little while after that, Joan was summoned to appear before the king. I am here at your command, most gracious sovereign. What is your wish? Jeanne of Arc, you are here by name commander of our armies. And you are ordered to take up arms forthwith. At last. Oh, heavenly father, bless this day and the cause we undertake. You will join the army at tour, and while there you will lodge with the mother of my wife, a majesty the queen of Sicily. Are you listening, Joan? With every fiber of my being. But I was giving thanks as well. You must provide yourself with a suite, a confessor, a square and two pages. And when you are arrived at tour, you shall yourself indicate the blaznings on the banner that you will carry. And as soon as preparations are completed, Joan of Arc, the maid of France, will lead the armies to the relief of Olia. Sovereign Majesty, King Charles VII of France, to the English commander of the forces besieging the city of Orléans. We hereby inform you that large reinforcements under our command have arrived to the relief of the city and that we are now in a position to dictate tours. You will therefore withdraw without delay or suffer the consequences. On this day, April 30th, in the year of our lord, 1429. Here, let me try now. No, no, think not of me on with a fight. For God, I'm King Charles VII, sovereign and rightful lord of France, defender of the faith, gentle king, now is fulfilled the will of God that I should raise the siege of Orléans. You are indeed the king and the rightful lord of the realm of France. Rise, maid, and in the name of France accept the homage of a rightful king and people. You are in very truth, God's messenger, and in our hearts we offer thanks in humility and in joy. Wonderful story. And Joan was coming. Don't you understand, baby? There ain't no common folks. There's just folks that amount to something and folks that don't. Suppose Joan had just sat around saying, I can't do it. I'm only a little country girl and I'm scared. What would have happened? But, but singing a song isn't important, ma. Like saving a kingdom. How do you know it isn't? The song you sing in church Sunday may help save somebody's soul and that's just as important as any old king. You've got to believe in what you do, honey and then do it with all your might and you'll find everything's going to be all right. I'll practice it in a minute. Ma, but first tell me about Joan. What happened to her after that? The rest of the story isn't so happy, baby. Joan got taken by the prisoner. Oh. Yes, honey, that was a sorrowful day and no mistake. There was some of them that was thinking of burning her alive at the stake. Oh, they couldn't do that. Could they? I hate to say it, but that's the way they treated her. But Joan didn't mind. She knew they were waiting for her up in heaven and all the blessed saints that had been her friends for so long so she just kissed the cross and called out one word. Jesus. So you see, she wasn't afraid and everybody loves her. And now suppose you sing your little song with me. Like this. This is Bob Crosby again. You know we have a way of measuring success in life by fixed standards of achievement. But rarely, if ever, do you hear that he was a success because first he was a good father. She because first she was a good mother. Public opinion often seems to put home life in a secondary place. It's usually business first. Yes, today we often forget fundamentals. Fundamentals like God and family prayer. Fundamentals like the greatest success story in the world, raising a good family and making a good home. And when fundamentals are forgotten, there's an emptiness in a home that nothing can fill. The emptiness that often leads to families breaking up. We need to get back to fundamentals, to the true meaning of success, to the joy and happiness every family should have through daily family prayer. To the realization that the family that prays together stays together. This is Bob Crosby saying good night and God bless you. This production of Family Theater Incorporated was directed by David Young. Others who appeared in tonight's play were Patricia Washington, Janet Scott, Tony Barrett, Jay Novello, Clark Gordon, and Larry Dobkin. Next week our Family Theater stars will be Victor Jory and Barry Kroger in Suspended Moment. Your host will be Victor Moore. This series of the Family Theater broadcasts is made possible by the thousands of you who felt the need for this kind of program and by the mutual broadcasting system that has responded to this need. Be with us next week at the same time when our Family Theater stars will be Victor Jory and Barry Kroger with Victor Moore as host, Tony LaFranco speaking. This is the Mutual Broadcasting System.


Hi, I'm your speaker at 1115. My name is Danielle Adams. I'm from the NodeJS Project and the OpenJS Foundation. I should live here in New York, so very happy to cross the river and speak to all of you people. And today I'm going to be talking about the work that I do on NodeJS as a NodeJS Releaser. So, yeah, let's get started. A little bit about me. I work at AWS. If you're familiar with cloud computing and cloud software, you might have heard of it. I work on a platform called Amplify. It's a platform for mobile and web developers to build their applications. I also work on the NodeJS Project, so those of you that are here, you probably have heard of it or worked with it, hopefully. And so I am a Releaser, and I'll talk about what that means, and a member of the NodeJS Technical Steering Committee. So I work on the project to help, or I work with the other leaders on the project to help, you know, make it a great project for everybody and sustainable, you know, and work on the future of the project. So today I'm going to be talking about the work that I do as a Releaser. So does anybody here know how many supported releases there currently are of NodeJS? Six. Okay. That's a good answer. Not quite right, but good answer. And then does anybody know how many releases have been done this year? Just shout it out. Okay. Do you say 50 or 15? 15. Yeah, it's a little more than that. So I'll go over all of that and what that means. We actually have four supported releases now, and we've done about 50 over the past year. So what is a release when I talk about that? I'm going to be saying that word a lot, so we're going to just breeze through all of the definitions so that you kind of understand when I'm throwing these words around that are a little bit more nuanced when it comes to Node. So a release is a NodeJS, excuse me, a release, and NodeJS refers to the code changes that have been made to the code base that will be built and released on top of in-the-node distribution channels. Code changes are evaluated by each commit. So NodeJS might have up to five active release lines. Like I said, right now we have four. And a release line is a semver major version that is maintained kind of simultaneously next to the base project, which you could just think of as like the main Git branch. Releasers, which is what I am, we prepare the releases and are responsible for testing and releasing the builds and deploying the releases and making sure that everything goes smoothly and that we have these nice releases that are released to the world and that everyone is able to use. So these are the different stages of the releases. So I think as most of you know, or if you've worked with Node, you might know we have three different types of releases. We have current, we have active LTS, and we have maintenance LTS. So if you have a current version, if you're using, so right now the current version would be version 19, this happens every six months, and there are maintained versions that are most closely synced to what's happening on the main branch. So you're getting all the latest and great features that have just been merged into Node, and everything's kind of tested out in the wild there. Active LTS is our name for kind of like the actively released on stable branch. So usually commits that have been released on the act, okay, I always get the words make up, the commits that have been released on the current branch usually get pulled into the active version, and then those, so we know that those features have been tested already and tested in the wild. And then we have the maintenance version, and so that is for 18 months, and then that only gets the bug fixes and security patches, so that's really kind of another stable version that we're maintaining, but doesn't get the greatest features. So this is a timeline visual for the releases. So first, we're going to use BR and AR before release and after release to refer to the different stages of a release. So about three months before release, the Node project starts coordinating that, okay, on this date we're going to have a major release. Usually in September and April of every year, they happen every six months, and so there's a lot of work that goes into that about deciding, okay, what's going into the release, and then also just making sure that it's very well tested.  Okay, yeah, so I mentioned the preparation. Day zero is when the release is released, and then, so during that current period after six months, the release is changed to an active LTS, it becomes stable. That's only for the even versions of the Node releases. The odd versions then reach end of life, they've kind of reached their, so since all of the major versions are kind of mirroring what's in Dev, I'm sorry, in main, then the odd versions are no longer needed because we have a new current version that's been released. And so then after that, after, let's see, so yeah, so after a year of being the active LTS, then it's moved to maintenance LTS. And then after three years, it reaches end of life and the version has been deprecated. So this is just a scatterplot of all of the different commit sizes of each release, so I mentioned that each release, the way that it's prepared, it's evaluated by commit. So you could see kind of how I mentioned there's that first six months of the current release, then it's 12 months of the active LTS. You can kind of see with version 14, in that first kind of six months, it's kind of flat lines. And then suddenly after six months, it goes up. And that's because the releases, when it was first released, were more frequent. Usually the releases are about 100 commits each, give or take, and then after six months, those releases, because it's a more stable release, they become less frequent, but each release has more stuff in it. And so that's why we get version 14. We had a 600 commit release, version 16. This year, there was a 700 commit release. And so those releases are really exciting because they bring in all of the latest, greatest features that have already been tested in current. So I just talked about how we kind of have all of these releases out in the wild. So how do we maintain these at once? So release lines have two Git branches. Everything comes back to Git. The Git workflow is really great for managing a lot of the release stuff. So we cut a release. We create two different branches. We have one that's used for staging the changes on the next release. And then the other one is used to mirror what has already been released in the last release. So you could think of it as having... It's kind of like how a service would work. One is the staging environment. The other one is what's in production. And so it's called staging and pretty much just production. Node.js collaborators use GitHub labels to categorize commits by their sem for change. So it's easier to figure out which commits go into the release line. I just talked about how we have releases with hundreds and hundreds of commits. It's really important that the collaborators are working together to correctly label each of the GitHub pull requests because this is how everything is on GitHub so that when releases go through we can kind of make sure we're not reading everything so closely but we can filter stuff out that shouldn't go into the release. So just to kind of... This is another visual of a timeline. So every time a major release is cut it branches off of the main branch and then it kind of lives on its own forever until that version reaches end of life. And so this is how this works with the two branches that are used to maintain the release. So we have main and so the little squares are commits. So those commits will get pulled into the staging branch. Those are used to like test and test the build locally and whatnot and then while we're releasing we pull those changes into the production branch the main branch for the next release and then they sync up because they now have the same because now that code has been released via like a release. So how do we go through all of these commits? So I have my main branch and everything goes to main. So the Node.js Releasers we have a CLI tool called BranchDiff and that will make API calls to GitHub and it will pull in all of the commits that have been properly labeled to for how I want... for the commits that I want to bring into this. So for instance a label that gets used a lot is Sembrer Major. So we have commits that have been landed on main some of those are meant to be for the next major version of Node so we don't want to pull those into the current versions of Node because it's not a Sembrer Major change. So we use a denialist to Sembrer with like all these different tags including Sembrer Major and then so that the tool knows okay skip that commit that's already... that's targeting the Sembrer Major change. So we cherry pick each one and we pull it on to the staging branch so that we can test it. Mention, yeah, there's a lot of get magic here. So again I showed like a little bit how that works but how does this scale? There could be hundreds of commits I can't just pick each one by itself so while there might be hundreds of commits in a single release we have to automate as much as we can. So we can't automate that whole process or we can't automate it yet because every time we pull in a commit there might be a merge conflict or a test might fail or just something doesn't look right or whatever we have to kind of anything that comes in and it doesn't land cleanly the releasers have to be able to identify it and say oh this shouldn't go into this release and so that part is a little bit harder to automate so the human element is really key in that and so usually when we do run into merge commits, I'm sorry, merge conflicts we will ask the original PR author to create a back port to the release branch so what does that mean? A back port PR it's something that's pretty regular on the Node.js project so it means it is a commit that's already been approved to go to main but it doesn't land cleanly on to the staging branch so usually this happens with big refactors you know anything that has been built on or anything that's been worked on on top of a semver major change then it might create a merge conflict when you're pulling it into another code base or you're pulling it into another release line excuse me okay so let's see oh yeah so this is how we automate we take the list of commits that I saw that are returned from this tool and then we pipe them to cherry pick and then they are cherry picked on to the staging branch for that release so I make tests once the test passes everything's good right? wrong so that's just the beginning we've already pulled in commits but now we have to make sure that all of the commits are actually working together so a releaser on their device or on their local machine they can run a build of Node.js and then they will run the test suite against that build that they've created so I have my personal Mac I'll create a local Node build and then I'll run the test suite against it so yeah so what happens when something fails or the build fails we use git bisect to make sure we can go through all of the commits I won't go into too much detail about that because one of the other Node.js releasers is speaking later this afternoon so Beth is going to talk about what we have to do when we are trying to make sure that this long list of commits works together and so she's going to show you how to git bisect so I'm just going to breeze over that part but yeah so we do this to identify commits that break the build and the test suite and then we can use an interactive rebase to actually go back in time pull out the commits, edit them basically rewrite history to make sure that the list of the commits that have been pulled into the release line are all passing the build and passing the test suite so we run it again looks good right? not quite we have to do this several times so we have to iteratively do that until we have a passing build so it's not just once, it can happen you know ten times, quite a few times before we can have like something that we can start deploying so passes local test suite, great so now that I've passed the local test suite there are a couple steps first I think I mentioned release notes at some point we have an automated again another kind of CLI tool where you can see there's a markdown flag and it kind of takes the list of commits and it will generate a release notes kind of like commit list and it'll take all of the descriptions from the PRs and stuff and then it's up to the releases to kind of put together those release notes and also to kind of write some descriptions of oh these are the notable changes these are the breaking changes usually there's some dependency changes that we want to highlight as well so we'll put all that into the release notes and those will go into the change log as well just like any code change we propose a release on github yeah you can see here I've added that notable changes section we just put the release notes into the github description I have some fellow releasers and Node.js collaborators that have signed off on the release and then we run the CI tests that are kind of like out in the ecosystem so I've already run my tests locally so why do I have to wait for all these other tests that are also on CI well for people that have like it's kind of interesting because you know if you haven't worked on software that is packaged and released out in the wild you might think okay well I only need to run my tests in one environment but that's not really the case it's not a service so you don't know where the Node.js binary could be running it is very much like something that could be running anywhere so all of the CI tests which take they don't take too long to run but you know it is quite a bit of there is quite a bit of processing power there I'll say and so we have to run the tests across a bunch of different platforms and operating systems and then we also run the tests against a lot of kind of hand selected dependencies out in the Node.js ecosystem because we also don't want to break the ecosystem there's a ton of packages that people are using you know they're using them in their web servers and Node.js run times and a lot of the JavaScript build packages are built to run on top of Node so we try to make sure that everything that nothing's kind of like a huge breaking change against any sort of environment wherever Node might run so and then we build the release so I just talked about how we stage all of that information so first I'm going to create the release build this is just another CI that creates all the builds for all the different platforms we tag it on GitHub so we've like pushed all of this information to GitHub we tag we use like a tag object to link to the release nodes and then we promote and sign the releases so that they are verifiable on you know the distribution channels that are from Node so I just talked about all of this kind of like public public steps that we take for releasing but I didn't talk about any of the security parts about it so like we don't want to default to security by obscurity but you know when we are working on a security patch we want to make sure that we're doing it behind closed doors before we are disclosing that vulnerability so I'm going to talk a little bit about security releases and how they're different from our regular releases so yeah so like Node.js like many and sorry Node.js like many open source projects uses a public bug reporting tool for security researchers to submit potential bugs so that all happens that's I guess behind closed doors you know it's just a conversation between the Node.js team and a security release researcher once the bug has been verified as a vulnerability that's when the wheels start in motion about with the Node.js security release so because there's so many steps in that we actually have a designated security steward that is assigned to that release we have a rotating list of people that each take a release it's very much like hurting cats there's just a lot of different pieces to it and they all have to happen kind of asynchronously so we have one person that is designated to make sure all of the steps happen so that you know we don't miss anything so when we prepare the release that is a little bit different so I talked about in the regular release you know it's just the releaser we look at commits we pull stuff in it's really up to the decision of the releaser this is a lot more collaborative we have because there might be a couple security vulnerabilities that have been reported at the same time we have to make sure we're organizing you know there might be like one two three security patches in one release so we make sure we do that so that we don't have security not that we have a ton of security reports but you know we just want to make sure we batch those together so that we can you know it's clear okay this is how you can address like these XYZ then a date is scheduled so usually unlike the releases the regular releases which can take a couple weeks this might take several weeks or even months in order to coordinate all of the releases to be done before the release is done then we have to check that the fixes are actually ready for integration into the code base and that they fix the problem that was originally reported so this step is exciting because exciting and interesting because the OpenJS project was let's see so I'm going to talk about who actually works on these fixes so the OpenJS project was the first NoJS was the first open source project to be funded by Project Alpha Omega which was really exciting for the NoJS collaborators and leadership because that means we actually got external funding for some of the security efforts that we really wanted to focus on but everyone on the project is kind of you know they're very they're working on maybe the operations or the feature forward work and so this devotes a couple of people's time to making sure that we do proper security triaging stewarding releases and then just improving the overall security efforts of the project so this doesn't just include security releases and making sure we have proper patches this is just overall like you know recommending best security practices across the project and so yeah so we've been excited to be funded for this project this year and so this extends across the security releases and the work that's done to create remediations for any vulnerabilities and again like I said this takes the burden off the maintainers which you know there isn't really when you're working on operations or feature forward tasks there isn't really a deadline where it's like when you have a security vulnerability usually there is a deadline and you have to do within a certain amount of time and that's a lot of pressure on people you know who might be doing this in their free time or you know not really being paid for this type of work so we have the fixes in place usually that person that's working on the patches they are engaging with the security researcher to make sure hey does this fix what you saw there's some agreement that this is the patch for it and then we start the release process so oh wait we don't release yet first we do a pre-release announcement so you might have gotten an email or something that says there is a you know XYZ security release coming out on this date but it doesn't say what the vulnerability is it doesn't have a CVE or anything it just says we have a security update you know stay tuned so that's usually what this announcement is then we run the release process so that little step is all the stuff that I talked about in the first part of the talk so you know creating the PR pulling in the commits running the tests you know creating release notes making sure that there is coordination on the proper release notes because this is there's no other changes in that release it's only dedicated to the release the security patches and then there's a post we post a post release announcement so we have we might then disclose the security vulnerability and then we have a path to remediation which is in the form of hey upgrade your Node.js version patch your version you know this is the vulnerability if you think that you're affected so like I said a lot of that stuff happens a lot of the release process happens in public so how do we do this behind closed doors then we default to get everything that we do in public we actually also have a private space that we do that so we are reviewing code we have code reviews there's a lot of coordination between on just different what we should be pulling in to the security research sorry the security release and all of that happens on just like a private GitHub repository let's see so now that I've done this entire release what do I do next so I just spent weeks or maybe months working on a single release and do I get to rest well no releases as soon as we're done with the last one we start thinking about the next release because there's always a release coming out releases are scheduled years and months or months and years in advance there are no releases scheduled up until 2026 which is about four years so yeah so every time we are you know we're finished with a release we're kind of also planning for the next one and not just the next patch but maybe the next security release or the next semver major release and so as if you're kind of like yeah so you might have seen that each LTS version gets a code name that comes from the periodic table of elements and so in the English language there are no code names for Q and W so if you have any ideas please open a pull request you know because we also schedule the names very far in advance as well and so four minutes left so good doing good on time so this is also just to give you an idea of kind of like how you know I told you okay well we're scheduling in the future this is kind of a look at the past a couple years back this goes back to 20 no sorry not 2014 maybe 2019 but so you see we have version 14 is maintenance LTS right now and so that version has about we've done 45 releases version 15 which was that kind of in between current release about 15 releases and then version 16 which is still supported that has about 30 and so that will grow to the same height as 14 by end of life and then you have 17 and 18 which are tied because both of those have been in the ecosystem for about six months 17 was for six months and then it reached end of life 18 was released in April and so it's kind of hit the same number of releases and so that will surpass 17 and probably get to the height of 14 as well because it is an LTS version and then we have 19 which is just released in October and so that will reach about 15 versions and then it will hit end of life when version 20 is released in April so I just talked about all of this stuff that's like a huge coordination for a bunch of different people and teams across all different regions does this really benefit Node.js developers well I would say yes I think that there are multiple audiences multiple users for each version line or release line and so while some developers might want the latest greatest versions I know at my job like a lot of people are kind of on bleeding edge of technology but some people just want to upgrade every year every two years and so this release structure actually accommodates both of those type of users and as I'm sure you know Node is used widely across many different industries and different product types and so we want to make sure that we're catering to everybody and I believe that this model allows Node.js to have multiple release lines for multiple types of developers and platforms all at once so if you want to learn more the contributor guides that URL I'll leave this up for a second if anyone wants to take a picture the contributor guides have yeah what do they have the release guides they also have the back porting guides a couple other things some of the docs about how we do security releases and security stewarding the release group has a working group that has its own repository we meet once a month discuss releases and the schedule and what not to learn more about Project Alpha Omega I think that's the URL for a lot of the news and stuff for it and then yeah and then there's a link to my slides I think I also need to upload them to the public forum or whatever so and that's pretty much it thank you so much everyone for listening to me this is my Twitter account and then you can find me on GitHub as well so I appreciate your time thanks have a good day


This day or darkest night, and give me strength to carry on, whatever comes to be done. This is my will and trust I will until, trust I will until we meet again. Give me strength to carry on.


Thank you. So this is joint work with Kasper Grain Larson and Jesper Buesnilsson also from Aarhus University. So welcome to the other half of the world of MPC, Information Theoretical Secure MPC. And in some sense, this talk is going to be about how different that half of the world is from what Abid just talked about and the spoiler, I guess, it is indeed very different in some ways at least. So as we all know, Information Theoretical Secure MPC protocols, they're so great, low computational overhead, no FAT here, best possible security guarantees, what's not to like. But as we also know, they're not so great because you have to have many rounds and large communication complexity, at least as far as we know from the protocols that we know about. And a very important, longstanding, open problem is whether that is inherent, those costs. So in this talk, we have some of the answers. The spoiler here is that the communication is indeed inherent, at least for some functions, but we don't have anything to say about the rounds. So just to be explicit about what do I mean by communication overhead. So one trivial observation is that if you don't care about security, of course you can compute any function with communication complexity with the size of the input. You just send all the inputs to one guy, he can use the function. And then if everybody gets output, of course, you should add the total size of the output because he needs to send the outputs back to these guys. But we'll only talk about functions with very short outputs here. Also to avoid cases where the communication complexity is large for trivial reasons, just because someone has to get a large output. We don't really want to look at that. So the question is, if you take the Information Theoretical Secure protocol, must it communicate more than the input size? It's the most basic question. There's also probably a much harder question that says, what is the circuit size? It's much bigger than the input size. Must you then communicate more than the circuit size of the function? That's not something we can say much about. We can say some things though, but it really is a different question. So our results. So the model first, we consist of statistically secure protocols, synchronous network and passive security, semi-honor security. We assume secure point-to-point channels using the standard model here, where the length of the message that you send always leads to the adversary. This is very natural, because if you're ever going to implement a secure channel, you'll be using, well, whatever you're using, you shouldn't expect to be able to hide the length of the message from the adversary. There are two models we consider, honest majority, where the number of players n is two times corruption threshold t plus one. And also dishonest majority with preprocessing, there you can also get information security and here n can be t plus one. What we show in both models is that for any number of players n and for infinitely many input sizes s, there exists a function f with input size s bits. So any protocol that computes f securely has to communicate at least some constant times ns bits. So that says that there has to be this factor n overhead compared to the input size. Okay. And recall just to make sure, this is not because every player has to compute a long input, because it has to receive a long output, because the outputs are in fact very small. More as true, it happens to be the case that our functions have very small circuits, in fact linear sized circuits in the input size. So the results also therefore say, obviously, that some functions require communication n times the circuit size of the function. So what this means intuitively, at least, is that if you have a general protocol construction that can compute any circuit securely, and if it does the same, the same approach to every circuit, whatever that means, then it must actually always have that factor n overhead, because it has to have it by these results when it computes that function that we construct. So from that intuition, at least, it seems that we always stuck with this overhead here, at least for the protocols that we know about. For honest majority, we have a matching upper bound, n times the circuit size. That's motivated by the fact that previous results were off by a factor log n for circuits that save a boolean circuit, circuits over small fields. For the preprocessing model, there was always an upper bound shown in a paper from 2013 by Ischia Hedal. So the upper bound is n times s, bits of communication. This requires exponential size preprocessed data, but if you can live with that, then the preprocessing case is essentially settled. The answer is n times input size. Good. So we also extend this to sub-optimal threshold. So for honest majority, what about n equals 2t plus s, where s can be greater than 1. So the coefficient threshold is smaller now. Then the bound is what it was before, but divided by s now. And this is nice because this exactly matches what we can get for upper bounds using packed secret sharing. So packed secret sharing is this technique where you can share a vector of secrets, but the share is still only one field element. And in this way, you can do a bunch of arithmetic operations in parallel for the communication cost of one, essentially. So this gives smaller communication, but the price is that the threshold must be smaller, the coefficient threshold must be smaller, and this exactly matches this lower bound that we get here. Okay. So before diving into how we do this, let me just mention some related work. First of all, this work by Scheihe-Dahl from 13. They prove lower bounds for two parties in the preprocessing model and this upper bound for the multi-party case that I mentioned. Then there's a work by, I think, Datta and the Pranab Kahant. They do a lower bound for three parties and perfect security. That was actually the first result showing that communication sometimes has to be larger than the inputs, but only in that particular case with three parties and so on. There's a work from Eurocrypt 16, myself, Nielsen, Ostovsky and Rosen, where we show a lower bound on a number of messages. So some functions require you to send n-squared messages. Everybody has to talk to everybody else, so to speak. This of course means you have to send n-squared bits also in particular, but that's much smaller than our lower bound when the inputs are large. Finally, there is another work from 16 where we showed some lower bounds for gate-by-gate protocols. Those are protocols that work the way we used to, that you compute the circuit. You do every gate by itself. There's a sub-protocol that you run for every multiplication gate. For that class of protocols, you can get very strong lower bounds, but of course only for that class of protocols. We want to do something for arbitrary protocols. So starting point for the results is to look at two-party private information retrieval. Just to remind you what that is, there's a server, there's a client. The server has a bit string x. The client has an index i that points to some position in the string x. They talk, there's a transcript t that's formed and at the end of the day, the client can compute the ith bit of x while the server is not supposed to learn anything here. The only very well-known and straightforward fact that I need about this situation here is that if this protocol is perfectly secure, then from the transcript, the client can always compute all of x no matter what the protocol does. This is very intuitive if you think about it. Because of the privacy requirement. If the transcript misses information about some part of x, then the server could conclude that that's not the part that the client wants. All the x has to be there somehow. That's the only thing I need you to remember from this slide. That in perfectly secure two-party peer, the client can always compute the server's input from the transcript. So now let's go to the honest majority. Oh, by the way, I forget this. So in the following, I only talk about perfect security. All our results hold for statistical security. Also, they're essentially the same.  I will distribute small epsilons afterwards so you can do it yourself. Anyway, so honest majority, three parties is the first step. So the function we consider here is the following. So there's going to be two parties on top. There's Nupi and Lucy, and they have each one bit string as input x and y. And Charlie Brown has no inputs, but gets the inner product of those two bit strings as the output. And so we assume that there is a perfectly secure protocol for this inner product function, which is secure against one passive corruption. Good. So you run the protocol, and then there is some messages sent between party one and party two. That's called T12, that transcript there, which you can think about as a random variable. And similarly, we have T13 and T23 that's sent between the other two parties. So the first pretty obvious observation is that since P2 has no output, should learn nothing new from the protocol, then of course, in particular T12 has to be independent of x, the input of the other guy, because you're not supposed to learn anything whatsoever. This is perfect security. That's pretty clear. So then, with that observation, we now consider what's going to happen if we run this protocol with a particular choice of the input y. So let's set y to be the all zero vector, except there's one in the i's position. So if you do this, then of course, the inner product of x and y is going to be the i's bit of x, obviously. So that means that we can now construct ourselves a two-party peer protocol because we're simply going to glue those two parties together there and consider them as being the client. And then of course, we have the Snowpiercer server has input x, and now these two guys together will learn the i's bit of x with that choice of y. But what did we say about two-party peer? We said that from the transcript of the protocol, which in this case is T12 and T13, the client can compute the service input x. So it means that you can compute x from T12 and T13. However, we just also said that T12 itself is independent of x. So from T12, you have no idea what x is, you bring in T13, now all of a sudden you know what x is. So that means that T13 must have contained enough information to determine x. So therefore, this intuitively has to be at least as large as x. I should perhaps mention for those who know about the technicalities here, what we actually show here is bounds on the entropy of say T13, and this then implies that the average communication complex must be at least the entropy, but that's a detail. Okay, so that's fine. And then from this we can lift ourselves one step more and do the... Yeah, okay, this is a takeaway message from this slide. The guy who gets the output must communicate a lot. This is the only thing you need to remember. So now, the general case. So here we have two T plus one parties. First we have, like, T incarnations of Snoopy. They look an awful lot like each other, but that's a good reason for this. You'll see. So they call P11 up to P1T. We have also T loses P21 up to P2T, and we have one Charlie bound with his P3. So two T plus one parties all together. Okay, and the inputs that we have here is each party has... Each of the top row parties have a bit vector as input. Again, X1 up to XT, and also Y1 up to YT are also bit vectors. And then in addition, every party has one bit as input. Okay, then the P11 up to P1T, and so on, and P3 for Charlie Brown. And the way we define the function is as follows. So we define a value Z, which is you concatenate all the X vectors. You concatenate all the Y vectors, and you take the inner product. That's called Z. And then the outputs are defined as follows. Each party gets as output that inner product times his input bit. So the input bit selects whether you learn something or whether you learn nothing. Okay, and now again, that's the function that we will rule over bound for. We assume a secure protocol for this function. That's secure against T-corruptions now. Okay, so again, we're going to hard-code the inputs in a particular way so that things will behave nicely. One thing we can do is we can set all the BIJs. So all the input bits for these top row guys up there will be zero, and only Charlie Brown's input there will be one. So he's the only one who learned something in that case. So then we can get a two-party protocol from this, right? Because we're going to glue all the Snoopies together, all the Lucy's together, and then we get a three-party protocol where, because the original protocol allows for T-corruptions, then any one of these three parties now can be corrupt. So that exactly mirrors the situation from the previous slide. It's exactly the same thing. So remember, the guy who gets the output has to talk a lot, right? So in this case, when we hard-code the inputs in this way, this guy must communicate at least order-as-bits, whereas this is a total input size, so the combined length of all these factors. But we can of course glue parties together in all kinds of ways. So we can also do something else, like we can say, let's set, now, B11 to B1. So the first incarnation of Snoopy gets the output, and nobody else gets anything. And then we also set Y1 to B1. I'll tell you why that is in a moment. So now we glue parties together like this, so we glue all the T-minus one last incandescence of Snoopy together with Charlie Brown and all the Lucy's that glue together. Now, what is going on here? The protocol, of course, computes the same function as before. Namely, it concatenates all the X's, all the Y's, does the inner product, but now because Y1 is set to be zero, that wipes out, in fact, effectively the X1, right? So what it does is, in fact, it computes the inner product of X2 up to XT concatenated and Y2 up to YT concatenated. It's a little bit shorter, but essentially the same size as before. So, and that's the inner product that the first incarnation of Snoopy will get. And now it's exactly the same situation again as the previous slide. So, therefore, P11 now much communicates all the S-bits. And as you can easily imagine, we can do exactly the same thing for all the players. So therefore, in conclusion, what we get here is that, so just to summarize what I just said, for each party, it holds that I can hard-code the inputs in a particular way such that this guy gets the output and that party in that case must communicate some constant times S-bits. But the point now is that the communication pattern, including the lengths of the messages, cannot depend on the inputs, right? Because in this model, even an adversary who corrupts no one will see all the entire communication pattern, can do traffic analysis, and that should not reveal the inputs. So that means if sometimes some guy has to talk a lot, he has to do it all the time. If the fact that he talks a lot depends on the inputs and it does here. So therefore, the total communication in fact has to be omega n times S-bits. Okay, so note also that the function, of course, this is just an inner product. So you can certainly compute that using all the S-elementary bits. So the bound is also n times the circumcise of the function as I promised before. Okay. Good, so that basically sums up what we do for the honest majority case where the threshold is full threshold. For the case, I don't have time to talk in details about the case of sovereign threshold and the case of dishonest majority with preprocessing. It's basically very similar ideas, but technically slightly different details. I guess I can say that if you have suboptimal threshold, what happens is that you can start gluing parties together in small groups. So we kind of do the transition from the multi-party case to the three-party case, which is still what you would use to, in two steps first you glue some parties together, then you get something which is essentially full threshold for this conglomerate of parties, and then you go the last step. That was probably not very clear, but I think from the paper it's hopefully clear. Okay, let's talk about the upper bound. So for honest majority, there is in fact this result from Q2.07, where I showed with Yers Van Nielsen that any arithmetic circuit can be computed with passive security and honest majority, but communication that's order n times circuit size field element. So you might say, but that's exactly the lower bound, isn't it? So there's already a matching upper bound, but there's a catch, namely that this only works if the field size is larger than n. So if I want to compute the Boolean circuit, say, I can still do that with that protocol, I just need to run it with an extension field. I need to make it big enough that I can have n-evaluation points in the field, and so this means that I would have to put in a log n factor into the communication complexity of this thing for Boolean circuit. So we can get rid of this thing by using a tool from last year. There is something called reverse multiplication-friendly embeddings. That's something that appears in the paper by Kramer in crypto last year. It's basically the idea is that it's a way to implement many parallel multiplications in a small field by doing just one multiplication in a bigger field. So basically what you do is you take your two vectors that you want to point-wise multiply, and you encode them using a special encoding function into two field elements in the bigger field. Then you multiply in the bigger field once, and you get something which essentially encodes all these parallel multiplication results that you actually wanted. So then what we do is you combine these two things. You basically run the old protocol from 07 over the bigger field, and this then does what you want, essentially. You have to do some unpacking at the end, but that turns out to be only for one big field element that you have to do something untrivial. So that basically gives you the corresponding upper bound. Okay, so let me go to open problems in future work. There's ongoing work where we try, and I would be very happy to receive any inspiration for this, that it would be nice to have lower bounds for also, let's say, naturally occurring functions. That is functions that we haven't especially engineered to be able to prove the lower bound. And there might be ways in which functions naturally behave in sort of similar ways to what we engineered here. So that would be interesting. A really tough question, but also immensely interesting question is, what if the circuit size is much bigger than the inputs? Is there a lower bound than the growth with the circuit size? This is a question of a completely different nature than the one we actually solved which has to do with the input size. I mean, for one thing, if I give you a function, I mean, for most functions, we don't even know what a circuit size is, right? Without some kind of assumption, we will certainly get nowhere here. But even then, I think it's really totally different techniques that you would need to do this. For the pre-processing model, there's this open problem left. So the existing upper bound says n times input size. That's for optimal threshold, nst plus 1. But what if we have suboptimal threshold? Then our bound degrades a little bit. It divides ns by this little s that appears, so this here gets divided by this. A lower bound gets smaller when the threshold gets smaller. And we don't know whether we have an upper bound that can match that thing there. Okay? And finally, something which used to be an open problem, but I think is now actually closed. So what about a lower bound for perfect malicious security? And it was 3T plus 1. So you might think that, okay, malicious security should be easy because that implies passive security. Just apply our bound. And this doesn't work here because the threshold here, right there, is n third. And we do something for n over 2. The threshold gets smaller, the bound degrades. So if you go all the way down to n over 3, our bound says we have essentially nothing. So it turns out that there's a different argument that explicitly exploits the fact that we have malicious security. And it gives the same result. There are some details we have to check, but it seems to work out. And then you get the same result n time circuit size as we have a passive security. And by coincidence, which is almost too good to be true, the next talk in this session, Goyal et al. will tell you that that's exactly the upper bound. So that's quite amazing. But yeah, so that's what I had. But that I'll say thank you for your attention. Go ahead. So you use the fact that the communication channel leaks the size of the messages. Do you think the bounds still holds if you have some sort of idealized channel that doesn't leak? I think so. So do the bounds still hold if the message links do not leak? I think we were maybe a bit lazy. I think we could still prove something even without an assumption. Then you have to have an adversary that corrupts some of the players and watches what is being sent. I'm pretty sure that could be worked out. So my question is the theorem statements you said are about the average complexity of a protocol, right? So could it be that that average is basically due to low probability events having extreme communication? Can you make a statement about the variance and argue that there can't be some protocols that are actually pretty good, but their averages are large for obscure reasons? That's a good question. I don't have a good answer to that. That would have to be, I think, a different study. I don't see anything that we have in the paper that would tell you directly what the answer to that one. Great. Thank you, Ivan.


Creativity carries contradictory associations and some of those come from psychology. For instance, we think of creativity as the special gift that marks off a minority of great people, but also as a capacity that we all possess and should exercise for our mental health. In my inaugural lecture, I'll look at how different areas of psychology have contributed to our understanding of creativity and the experience of creative practitioners. Join me to have your say.


President of the United States and Mr. David Roderick. Mr. President, welcome to Pittsburgh and this national conference on dislocated workers. As you know, the conference was convened under the cooperation of the National Alliance of Business and 12 other government and labor groups. All organizations in this partnership are presented on this dais, participated in this conference. We have had a very productive meeting. We have shared experiences, ideas that I think will mutually benefit us all. Many of those ideas have been extremely innovative and we know that although we have much to learn, much has been learned. Thank you very much. Mr. President, we Pittsburghers are pleased and proud to welcome you to this great city, a leader in the first industrial revolution and eager and anxious to play a part in meeting the challenges of our economy and transition. This conference clearly underscores the commitment of the private sector, business and labor, to dealing with the problems of unemployment and of the displaced worker, sending you our thanks for coming and our warm welcome to the city of Pittsburgh. Mr. President. Thank you very much. Thank you. Well, I thank you, Governor Thornburg, senators and representatives, the distinguished guests here at the head table, Secretary of Labor, and you ladies and gentlemen. I thank you all for a very warm welcome. And I want to thank the National Alliance of Business for inviting me to this important conference on the dislocated worker. I come not only as a speaker, but as a possible victim. I know this is a bipartisan gathering, but I assume there are a number of Democrats who would just love to dislocate me. But it's nice to be in the hometown of two very fine teams, the Pirates and the Steelers. And not to mention the hometown of Governor Thornburg and Senator Hines. I came here today to talk to you about our unemployed citizens. I want to say how instrumental you are to this effort of helping displaced workers find jobs. You, the business leaders, union officials, agency heads, educators, and members of various councils are great resources. And I'm so glad to see you joining together to exchange ideas. You can help those frustrated steel workers, some of whom are across the street, venting their confusion and anger as we meet. And it's no wonder they're confused. The economy is getting better, but they don't see their prospects improving. You might have noticed that I always seem to attract attention when I pull out the one ads and talk about unemployment. I'm usually criticized and very often misunderstood or perhaps I should say misinterpreted. I don't use the help wanted ads to suggest people are not seriously looking for work. My purpose is to point out that in this time of great unemployment, there are jobs going unfilled for a very definite reason. A couple of Sundays ago I read through the help wanted ads in the Pittsburgh Press. And it's obvious why so many unemployed are frustrated when they see jobs are available. Like this ad, it's for something called a medical records coder. Position requires an ART or equivalent experience and knowledge of medical terminology and ICD-9-CM coding. Or this one that seeks an achiever in the structured COBOL and or RPG2. But this one from a personnel agency dealing only with computer people illustrates perfectly the point I want to make so I'll read you the entire ad. Systems programmer, large scale IBM, VTAM, TSO-SPF, ACF2, CICS, OS-MVS. The point is that we're in a new age. No longer do the ads simply offer jobs with good hours and no heavy lifting. You have to be a specialist to know what the ad is even about. Yes, there are lots of jobs in this paper and in papers all across the country. But the skills needed for the jobs don't always match the skills of those who need the work. The permanently laid off steelworker has never had the training even to understand what these want ads mean, let alone to apply for the position. And I can tell you right now, I don't know what they mean. And many of the jobs are not around here, but in Florida or Virginia or beyond. I could have brought more newspapers with more ads, but they're in areas far from the homes of Pennsylvania's unemployed. And it's this mismatching of skills and geography that has brought all of you together. Let me tell you how we intend to deal with this structural unemployment, as you experts call it. First, I'd like to say a few words about cyclical unemployment, which seems to get most of the media attention. As you know, cyclical unemployment results from changes in the business cycle, the ups and downs of the overall economy. About half of our current unemployment is the direct result of the recession. Now, the best cure for this is to get the economy moving, and we're doing just that. The leading economic indicators you probably know are positive, and I can tell you so am I. January's surge was the largest in 33 years. The indicators are up for February as well. The double-digit inflation of 1980 has been knocked down to four-tenths of 1% in the last six months. The lowest six-month rate in nearly 22 years. And the prime interest rate, which was 21.5% when we took office, is down to 10.5% today, and we're not finished with it yet. Housing starts and permits are at the highest level since September of 1979. Unemployment, while still painfully high, has decreased to 10.3% from a 10.8% peak in December. And if you count our men and women in uniform as employed, and they should be, the rate is 10.1%. I just found out recently that we haven't been counting them, but when they leave the service, we count them as unemployed. So there's two million of them, so that are in uniform, and most of them seem to like their jobs very well. But with the help of Senators Hines, Inspector, and Congressman Klinger and Ridge here, we've tried to ease the transition for some of the unemployed with a $4.6 billion jobs in humanitarian relief package. This legislation will increase job opportunities by speeding up public works and construction projects that were already on the books, but were scheduled for later implementation. And it also provides extra funds for social service and health assistance. But to be honest, this aid will help only to a limited extent. An improving economy is the quickest, best, and most potent antidote for those citizens who were laid off because of the recession. We fought hard for this recovery, and we're not going to see it shattered. The so-called alternative budget recently passed by the House of Representatives, on the other hand, calls for a $315 billion tax increase over the next five years and an almost $200 billion increase in domestic spending. It provides for recovery all right, the Congress's recovery of money that belongs to America's wage earners and taxpayers. It's a reversion to politics as usual, taxing and spending more and more of your money. It would cancel both the third year of the tax cut and indexing, which protects the wage earner from being kicked into higher and higher tax brackets, and more than three-fourths of the tax relief in indexing will go to lower and middle income earners. To those who would consider changing those tax laws, I am sleeping with a pen under my pillow ready for veto. I have two direct and moral questions for every congressman who voted for this alternative budget. How can you justify hitting the median American family with a $3,550 tax increase over the next five years, and how can you support a budget that would threaten the recovery just as it's getting underway? I've never seen a budget proposal with a more flagrant disregard for its consequences, and those consequences would be more unemployed Americans, higher interest rates, more government spending, and a recession worse than the one we're just emerging from. The American people have suffered long enough because of the economic mistakes of the past, and I'm not about to let them be plunged into that same mess again. There's been a lot of talk on Capitol Hill about multibillion-dollar make-work programs as an answer to recession. Those responsible for the alternative budget support this idea. It's not a cost-effective idea, and it certainly is no road to permanent economic recovery. Now, structural unemployment is not the result of temporary slumps in the economy, as we've just been discussing. It's caused by deep and lasting changes in science, technology, competitiveness, and skills. And you just can't cure that with a quick-fix solution. When I signed the Job Training Partnership Act last October, I pledged it wouldn't be another bureaucratic boondoggle, but would provide real help. And I stand by that promise. Our aim is to train up to a million unemployed Americans each year in skills useful in the private sector. And to that end, we're requesting over $3.5 billion for this program in 1984. The vital difference between this program and the failed ones of the past is that this time, private employers will take the lead, not the federal government. Private employers will work with state and local officials to ensure positive results. Too often in the past, the bulk of funds set aside for government job training programs was used to pay bureaucrats rather than to help those without jobs. In recent years under CETA, only 18% of the money was actually used for training the unskilled. No one knows better than private employers the skills and training needed by today's employees. And that's where we're putting our emphasis and our efforts. Recently, we sent to the Congress a package of new proposals providing incentives for businesses to hire the long-term unemployed. Under our proposal, a worker who's been unemployed for an extended period could convert his unemployment benefits into job vouchers which would entitle his new employer to a tax credit. The overwhelming majority of those who've been unemployed for long periods would gladly trade their benefits for a job if they could only find one. Well, this voucher gives them a better chance to do just that. We also wanted more than double the money for that part of the Job Training Partnership Act that helps displaced workers. This program offers grants to the states for retraining, job search, and relocation assistance to dislocated workers. And we also propose allowing states to use up to 2% of their unemployment insurance tax revenues for re-employment assistance. Now, this could mean another several hundred million dollars. The old cliche that you can't get a job until you have experience and you can't get experience until you have a job really is true for too many of our young people, especially minorities. One of the main reasons many teenagers have difficulty finding jobs, especially their first job, is the current minimum wage. Employers simply can't afford to pay this set amount to kids with no work experience. So to help young people find jobs, we've proposed a youth opportunity wage 25% below the regular minimum of $3.35. Young people, of course, don't have to accept this amount, and I know many of them will be able to command the regular minimum wage or more. But this new wage will allow those who don't have any experience to make a start in the workplace. What we're trying to do is get them in the door and give them some experience so they can move up the pay scale. And since the special wage applies only in the summer, there's no danger of displacing current workers with young people at a lesser wage. Also working in partnership with the National Alliance of Business, we've been asking employers to set aside summer jobs for kids who really need them. In fact, companies can qualify to tax credits of up to 85% of the wages paid to each eligible youngster certified by the job service. Any lasting solution to the problems that we've been discussing today must have the support of the private sector. And here, too, the news is encouraging. Let me tell you about one displaced workers program right here in Pennsylvania. In 1980, the Crucible Steel Plant in Midland, Pennsylvania started laying off hundreds of experienced workers. Soon after, the Crucible Management and Local 1212 of the United Steel Workers Union joined together to help the employees. With technical assistance from federal, state, and local governments, they formed what they called a job search club. The employees learned what jobs were a logical extension of their previous work experience. Then they learned how to write a resume and interview for that job. And if need be, where to go for training. Although a relatively small group of 125 employees participated, the club worked. Many found new jobs in steel as well as in other industries. The workers also acquired new confidence and skills that will enable them to get better jobs as the economy expands. Well, we want to duplicate the success of the Crucible Steel case across the country. And we're working with the NAB, the AFL-CIO, the Labor Department, and the private sector to do just that. You know, I receive all kinds of letters from our unemployed citizens.  Some are determined and hopeful. Some are confused and angry. But I think the most perplexed are those letters from displaced workers. Most of these men and women have been in one industry, if not one company, for the better part of their working lives. The mill of the plant had always been open, perhaps even since their fathers are their grandfather's day, and they assumed it would always be that way. Their employers represented America's strength and vitality as an economic power. How could the major employer in the town, the very lifeblood of the town, close its gates and lock its doors? This was as inconceivable as the town itself closing down. But we know the plant can close, no matter how essential it is to the employees and the townspeople. We know that America's economic strengths change and grow in different directions, sometimes without regard to the people who serve the old industries. This is called the free market, and it's what gives our children and their children an economic future. I believe that we as a nation owe an obligation, as well as a helping hand, to those who pay the price of economic readjustment. Government, federal, state, and local should provide support for job training and re-employment assistance. Business and labor working in partnership also have a responsibility to ease this transition and prepare their employees and members for the future. Educators, as well, are challenged to tailor their curriculums to the employment needs of the future. In one way or another, we all have a positive role to play. I came here today to tell you I support your efforts wholeheartedly, and I'm trying my hardest to make real changes in Washington that will help get our people back to work. As I've often said, we want real work for our citizens, not make work. We want an economic future based on growth, not on fighting over smaller pieces of prosperity. I believe in what you're doing, and even more importantly, I know those that you've helped believe in it. Together, we can make America and the American dream the inspiration they were always meant to be. I thank you for inviting me, letting me participate even in this little bit in your conference, and God bless you all. Thank you, Mr. President. Thank you, Mr. President, for those remarks, and I think they have provided a very great inspiration for the conclusion of this conference. I know all of us involved are grateful for your participation, and we know that the program will be a success with the dedication that has been shown during the course of this meeting. Ladies and gentlemen, will you please remain seated in your place until the President and his party leave the ballroom? Thank you very much.


Welcome to an update here on Netflix. I thought I would do this because it's getting into the end of the year. And I did say that I thought Netflix would get up to $400 before the end of the year. It looks like that is actually going to come to fruition. Pretty interesting. I said it here the day that the stock gap, this was the earnings, it gapped up to $389.16, and it had this huge, huge red bar that came off all the way here into support. But this chart is in such a beautiful uptrend. Here, look at this. This is actually like the bullish gap of the year here in Netflix. Netflix gets the prize for the bullish gap of the year because it started out this year doing a corrective gap back here in January, and it's never looked back. I mean, this just has never, never looked back. There's a whole chart. Look at that thing. So I thought around the $3.75, and I thought I would do that. So I thought around the $3.75 a sharey in here is where it was confirmed then that it would do it by the end of the year. And it did get there. It looks like a couple of days ago. Yeah, Mr. Here. Now here. Looks like the 13th. It's Friday. And of course, the rally in the market is going to help this into the end of the year as well. And so I've seen all of this here when I made this call. And this is just a beautiful chart. So, you know, you have a big bar like this and a stock end up trying to make sure that this is profit taking. And I felt that as soon as the trading and the buying started to come through right around this area in here, that it would retrace part of this point, it's more than 55% of this red bar that it would take the lift off and it would go. And actually I think tomorrow this is going to have a nice fat day. And I think this is going to get up tomorrow with the market. All of this in here is a stock resting and getting the momentum and getting going and getting going and getting going and getting going and getting going. And it's just one of these things where I can see where the price is going to do ahead of time. And $400 would be an all-time high for Netflix. This was at all-time highs. You're back here on the 22nd in October when it had the earnings. It almost made it then. I mean, really. Look at that. What a nice chart. So Netflix is continuing through, keeping up its pace. Look at the beautiful moving averages here, the eight on the black line, the 20s of blue line, the 50s of green line, and the 200. This is like an elevator. Look at that. 200 per moving average. Look at that. It's beautiful. Netflix is a bullish golden gap of the year. It's just without a shadow of a doubt ever since this gap that happened back here. And why? Because the stock was in a downtrend. Let's go back here. Let's go all the way across back in time. This is all before that. This is last year. This is 2012. This is Netflix. So Netflix was in a downtrend all this period here. Look at that. And Netflix fixed itself and corrected itself on a bullish gap, a very high quality gap that happened in January of 2013 this year and is held. This is the reason that I like to trade gaps. And it's also the reason that I can read these charts very well because I knew that this was an immediate aggressive buy. And a lot of people wanted to fade this. They said, no, no, it's a buy. And then look what it did the next day afterwards. This is amazing. And all of that held. And look at how great that chart is. And do you know that if you would have bought this year, how much money you would have made this year just holding this position, even if you only had 100 shares? And how would you know to do that? How would you have the answers? How would you have conviction? Where? Where? How would you even know? Because you'd read the gap. You'd rate the gap. You'd rate the gap as a golden gap. You'd rate the gap for 20 points, which this did. You would look to buy it. You would buy it on the day or the fall through continuation here, or you would hold the position. And, you know, it's just one of these things. I mean, I really, I think Netflix is on its way to the $400 number here before the end of the year. And it's less than two weeks left, but it only has $25 to go. And that's a sneeze, a sneeze for Netflix. And the other thing I'm noticing here, there isn't one large green day in here at all. There's some nice greens, some medium sized greens, some small greens. There isn't one large green day in here, not since the earnings, not since this whole thing here, not with a market rally. And there will be one. And that will make it pop and blow over the number and get over $400 actually. Because once it hits over $389, it's going to just blow. This is going to actually happen tomorrow. I'm seeing this here. So this is Melissa with thestockswitch.com. This is Netflix. Nice update on Netflix. It's doing it, people. It's doing it. It did it. This is the bullish golden gap of the year. It gets the award. I'm going to have to make an award here for Netflix. It gets it. And I love Netflix. Love it. Love it. I can't wait to sign out for it again. Moving into my new apartment soon. And I'm going to have to get Netflix. I love Netflix. I've always loved Netflix. Love it. So this is Melissa with thestockswitch.com. Email me at Melissa at thestockswitch.com if you'd like more information on how to read gaps, how to see these numbers, and see these price areas. Have a great day, everybody.


This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information, or to volunteer, please visit LibriVox.org. Narrative of the Life of Frederick Douglass Written by Frederick Douglass Appendix I find, since reading over the foregoing narrative, that I have, in several instances, spoken in such a tone and manner, respecting religion, as may possibly lead those unacquainted with my religious views, to suppose me an opponent of all religion. To remove the liability of such misapprehension, I deem it proper to append the following brief explanation. What I have said respecting and against religion, I meant strictly to apply to the slaveholding religion of this land, and with no possible reference to Christianity proper for, between the Christianity of this land and the Christianity of Christ, I recognize the widest possible difference. So wide that to receive the one as good, pure, and holy is of necessity to reject the other as bad, corrupt, and wicked. To be the friend of the one is of necessity to be the enemy of the other. I love the pure, peaceable, and impartial Christianity of Christ. I therefore hate the corrupt, slaveholding, women-whipping, cradle-plundering, partial and hypocritical Christianity of this land. Indeed, I can see no reason but the most deceitful one for calling the religion of this land Christianity. I look upon it as the climax of all misnomers, the boldest of all frauds, and the grossest of all libels. Never was there a clear case of stealing the library of the court of heaven to serve the devil in. I am filled with unutterable loathing when I contemplate the religious pomp and show, together with the horrible inconsistencies which everywhere surround me. We have men-stealers for ministers, women-whippers for missionaries, and cradle-plunders for church members. The man who wields a blood-clotted cowskin during the week fills the pulpit on Sunday and claims to be a minister of the meek and lowly Jesus. The man who robs me of my earnings at the end of each week meets me as a class leader on Sunday morning to show me the way of life and the path of salvation. He who sells my sister for purposes of prostitution stands forth as the pious advocate of purity. He who proclaims it a religious duty to read the Bible denies me the right of learning to read the name of the God who made me. He who is the religious advocate of marriage robs whole millions of its sacred influence and leaves them to the ravages of wholesale pollution. The warm defender of the sacredness of the family relation is the same that scatters whole families, sundering husbands and wives, parents and children, sisters and brothers, leaving the hut vacant and the earth desolate. We see the thief preaching against theft and the adulterer against adultery. We have men sold to build churches, women sold to support the gospel, and babes sold to purchase Bibles for the poor heathen, all for the glory of God and the good of souls. The slave auctioners' bell and the church-going bell chime in with each other, and the bitter cries of the heartbroken slave are drowned in the religious shouts of his pious master. Revivals of religion and revivals in the slave trade go hand in hand together. The slave prison and the church stand near each other, the clanking of fetters and the rattling of chains in the prison, and the pious psalm and solemn prayer in the church may be heard at the same time. The dealers in the bodies and souls of men erect their stand in the presence of the pulpit, and they mutually help each other. The dealer gives his bloodstained gold to support the pulpit, and the pulpit in return covers his infernal business with the garb of Christianity. Here we have religion and robbery, the allies of each other, devils dressed in angels' robes, and hell presenting the semblance of paradise. Just God, and these are they who minister at thine altar, God of right. Men who their hands with prayer and blessing lay on Israel's Ark of Light. What, preaching kidnap men, give thanks and rob thy own afflicted poor? Talk of thy glorious liberty, and then bolt hard the captured store? What, servants of thy own, merciful son who came to seek and save, the homelessness and the outcasts, fettering down the tasked and plundered slave? Pilot and Herod friends, chief priests and rulers as of old combine. Just God and holy is that church which lends strength to the spoiler thine? The Christianity of America is a Christianity of whose votaries it may be truly said, as it was of the ancient scribes and Pharisees. They bind heavy burdens and grievous to be born, and lay them on men's shoulders, but they themselves will not move them with one of their fingers. All their works they do for to be seen of men. They love the uppermost rooms, feasts and the chief seats in the synagogues, and to be called of men rabbi rabbi. But woe unto you scribes and Pharisees, hypocrites, for ye shut up the kingdom of heaven against men, for ye neither go in yourselves, neither suffer ye them that are entering to go in. Ye devour widows, houses, and for a pretense make long prayers, therefore ye shall receive the greater damnation. Ye compass sea and land to make one proselyte, and when he is made, ye make him two-four more, the child of hell, than yourselves. Woe unto you scribes and Pharisees, hypocrites, for ye pay tithe of ment and ends and cumin, and have omitted the weightier matters of the law, judgment, mercy, and faith. These ought ye to have done, and not to leave the other undone. Ye blind guides would strain at a net and swallow a camel. Woe unto you scribes and Pharisees, hypocrites, for ye make clean the outside of the cup and of the platter, but within they are full of extortion and excess. Woe unto you scribes and Pharisees, hypocrites, for ye are like unto whited sepulchres, which indeed appear beautiful outward, but are within full of dead men's bones, and of all uncleanness.  Dark and tolerable as is this picture, I hold it to be strictly true of the overwhelming mass of professed Christians in America. They strain at a net and swallow a camel. Could anything be more true of our churches? They would be shocked at the proposition of fellowshiping a sheepstealer, and at the same time they hugged to their communion a man-stealer, and brand me with being an infidel, if I find fault with them for it. They attend with farisacual strictness to the outward forms of religion, and at the same time neglect the weightier matters of the law, judgment, mercy, and faith. They are always ready to sacrifice, but seldom to show mercy.  They love the heathen on the other side of the globe. They can pray for him, pay money to have the Bible put into his hand, and missionaries to instruct him, while they despise and totally neglect the heathen at their own doors. Such is, very briefly, my view of the religion of this land, and to avoid any misunderstanding growing out of the use of general terms, I mean by the religion of this land, that which is revealed in the words, deeds, and actions of those bodies north and south, calling themselves Christian churches, and yet in union with slaveholders. It is against religion, as presented by these bodies, that I have felt it my duty to testify. I conclude these remarks by copying the following portrait of the religion of the south, which is, by communion and fellowship, the religion of the north, which I soberly affirm is true to the life, and without caricature or slightest exaggeration. It is said to have been drawn, several years before the present anti-slavery agitation began, by a northern Methodist preacher, who, while residing at the south, had an opportunity to see slave-holding morals, manners, and piety with his own eyes. Shall I not visit for these things, saith the Lord? Shall not my soul be avenged on such a nation as this? A parody. Come, saints and sinners, hear me tell, how pious priests whip Jack and Nell, and women buy and children sell, and preach all sinners down to hell, and sing of heavenly union.   Yet rob old Tony, doll and Sam, of human rights and bread and ham, kidnappers heavenly union. They'll loudly talk of Christ's reward, and bind his image with a cord, and scold and swing the lash apart, and sell their brother in the Lord to handcuffed heavenly union. They'll read and sing a sacred song, and make a prayer both loud and long, and teach the right and do the wrong, hailing the brother, sister throng, with words of heavenly union. We wonder how such saints can sing, or praise the Lord upon the wing, who roar, who scold, and whip, and sting, and to their slaves, and mammon cling, in guilty conscience union. They'll raise tobacco corn and rye, and drive and thieve and cheat and lie, and lay up treasures in the sky by making switch and cow skin fly in hope of heavenly union.  A roaring, ranting, sleek man-thief, who lived on mutton veal and beef, yet never would afford relief to needy, sable sons of grief, was big with heavenly union. Love not the world, the preacher said, and winked his eye, and shook his head. He seized on Tom, and Dick, and Ned, cut short their meat, and clothes, and bread, yet still loved heavenly union. Another preacher, whining, spoke of one whose heart for sinners broke. He tied old Nanny to an oak, and drew the blood at every stroke, and prayed for heavenly union. To others, oped their iron jaws, and waved their children's stealing paws. There sat their children in Gugaz by stinting negroes, backs, and maws. They kept up heavenly union. All good from Jack another takes, and entertains their flirts and rakes, who dress as sleek as glossy snakes, and cram their mouths with sweetened cakes, and this goes down for union. Sincerely and earnestly hoping that this little book may do something toward throwing light on the American slave system, and hastening the glad day of deliverance to the millions of my brethren and bonds, faithfully relying upon the power of truth, love, and justice for success in my humble efforts, and solemnly pledging myself anew to the sacred cause I subscribe myself. Frederick Douglass. Lynn, Massachusetts. April 28th, 1845. The End. End of Appendix. And End of Narrative of the Life of Frederick Douglass. By Frederick Douglass. This recording by Jeanette Ferguson on June 16th, 2007.


Another rum video, but this time it's Cuban rum. That Havana Club Mini was kind of disappointing, but it did give me an idea. Why don't I take two of the other bottles of Havana Club I have lying around and have a little friendly competition? This is Iniejo Blanco. No age statement, but since Iniejo means aged, it's definitely seen a barrel. Probably for between six months and a year. Light straw color. Very delicate. A little bit of vanilla. It's nice. It's on the light side compared to other white rums I've had, but I can tell this is going to mix well. And this is the Iniejo 3-Year. I love it when rums have clear age statements instead of throwing random numbers onto their bottle that don't mean sh** it. It's actually, as the latter knows in the previous one, this one is also going to mix very well.  It's Cuban rum. I have to make mojitos. Here's how you make a mojito. Put 10 or so large mint leaves in a glass. Grab your muddler and give those a light press. Add three quarters of an ounce of fresh squeezed lime juice, three quarters simple and two ounces of the good stuff. Add some high-quality club soda, stir to mix, then top with ice. Top off with club soda and stir one last time. Wake up a few sprigs of mint and daintily garnish your masterpiece. My mojitos are complete. Ask 100 different bartenders how to make a mojito and you'll get 100 different answers. I wouldn't consider how I made these the definitive recipe, rather it was based on what I had around. One example, I'm not keen on leaving mint leaves in the glass, but since I'm not drinking it out of a straw, it doesn't matter. Mojito number one. This is with the Iniejo Blanco. This is summer drinking right here. Mojito number two. This is with the 3-Year. This one's definitely better. The differences are subtle, but they're there. If you make this at home, one thing you definitely should do different from what I did is get a smaller glass. The rest of the ingredients are a little lost in all the club soda I had to put in. But no matter, a great drink for warm weather. If you'd like to hit like, consider subscribing if you haven't already, and if there's something you think I should try, let me know in the comments. Stay safe, follow the advice professionals, and I'll see you next week.