CBS Radio presents the CBS Radio Workshop dedicated to man's imagination, the theater of the mind. Tonight's presentation, The Little Prince by the late Antoine de Saint-Exupéry.  Something was broken in my engine. Being alone, I set myself to attempt the difficult repairs. It was a question of life or death. I had only enough drinking water to last about a week. The first night I went to sleep on the sand a thousand miles from any human habitation. You can imagine my amazement when at sunrise I was awakened by an odd little voice. If you please, draw me a sheep. What? Draw me a sheep. I jumped to my feet completely thunderstruck. I saw a most extraordinary small person who stood examining me with great seriousness. He seemed neither to be fainting from fatigue or hunger, or thirst or fear. When I was able to speak I said, what are you doing here? If you please, draw me a sheep. I... I don't know how to draw. That doesn't matter. Draw me a sheep. When I was only six, I had drawn a picture of a boa constrictor from the outside, digesting an elephant. The grown-ups couldn't understand it. They told me it looked like a hat. They advised me to lay aside my drawing and devote myself to geography, history, arithmetic and grammar. I did because it's tiresome for children to be always and forever explaining things to them. Would you please, draw me a sheep? The little fellow was so insistent I took out my pen and some paper. Since I had never drawn a sheep, I drew for him my picture of the boa constrictor that looked like a hat. I do not want an elephant inside a boa constrictor. A boa constrictor is very dangerous, and an elephant is cumbersome. Where I live, everything is very small. What I need is a sheep. Please, draw me one. I made several attempts. Then, being in a hurry to start working on my engine, I tossed off a drawing of a box that had some air holes in it and explained that the sheep was inside. That is exactly the way I wanted it. Do you think this sheep will require a great deal of grass? There will surely be enough. It's a very small sheep I've given you. Not so small. Look. Look through the air hole. My sheep has gone to sleep. It took me a long time to learn where he came from. It was only from words dropped by chance that little by little everything was revealed to me. I learned, for example, that the little prince came from another planet and that his planet was scarcely any larger than a house. I should remind the grown-ups that in addition to the great planets, there are hundreds of others, some too small to be seen through telescopes, called asteroids, which are designated by numbers. The planet the little prince came from is asteroid B612. As each day passed, I would learn more about the little prince's planet. On the third day, I heard about the catastrophe of the Baobabs.  Yes. Yes, that's true. Then it follows they also eat Baobabs. Baobabs? But it would take a herd of elephants to eat anything as gigantic as a Baobab. Before they grow so big, don't Baobabs start out by being little? Entirely correct. But why do you want the sheep to eat the little Baobabs? I know a planet inhabited by a lazy man. He neglected three little bushes. What happened? Catastrophe. The Baobabs spread over the entire planet, bored clear through it with their roots, split it in pieces. So you must be careful. It is a question of discipline. I must attend to my planet each morning as I do myself. It's tedious. I need the sheep. On the fifth day, thanks to the sheep, the secret of the little prince's life was revealed to me.  A sheep eats anything it finds in its reach. Even flowers that have thorns? Yes, even flowers that have thorns. The thorns? What use are they? Don't you ever let go of a question once you've asked it? Can't you see I'm busy fixing my plane? There's a little drinking water left. I must finish the repairs. But you haven't answered my question. All right, all right. The thorns are of no use at all. Flowers have thorns just for spite. Oh! I don't believe you. Flowers are weak creatures. They are naive. They reassure themselves as best they can. They believe that their thorns are terrible weapons. And you actually believe that the flowers... No, no, no. I don't believe anything. It's the first thing that came into my head. Now, don't you see I'm very busy with matters of consequence? Matters of consequence? You talk just like the grown-ups. The flowers have been growing thorns for millions of years. For millions of years, the sheep have been eating them just the same. It is not a matter of consequence to try to understand why the flowers go to so much trouble to grow thorns which are never of any use to them. Now, just a moment. I... If I knew one flower which is unique in the universe, which grows nowhere but on my planet, which one little sheep can destroy in a single bite some morning without even noticing what he is doing... Poor thing! I... I'm sorry. I didn't realize. Now, the flower you love is not in danger. I'll draw you a muzzle for your sheep. I'll draw you a railing to put around your flower. I didn't know what else to say to him. Night had fallen. I had let my tools drop from my hand. Of what moment now was my hammer or thirst or death? There was a little prince to be comforted. I felt awkward and blundering. I didn't know how I could reach him. It's such a secret place. The land of tears. So, that's why you left your tiny home on asteroid B612. It was love. Love for a flower. A flower unique in all the universe. At first I was captivated by her beauty. Very quickly she began to torment me with her vanity. And soon I came to doubt her. Was she the only flower on your planet? Oh, no. But the others are very simple. They take up no room. Cause not one bit of trouble. Your flower was different. Very. She came from a seed blown to my planet from who knows where. From the moment she first showed herself, she became demanding. She commanded all of my time. Even that time I had always devoted to the Baobabs and my volcanoes. Volcanoes? I have two active volcanoes. Very convenient for heating my breakfast. I carefully clean them out every morning. If they are well cleaned out, they burn slowly and steadily, without eruptions. I... I see. I also have one volcano that is extinct. I clean it out too. One never knows. No, one never knows. You were telling me about your flower. I ought never to have run away from her. I ought to have judged her by deeds and not by words. I ought to have guessed that behind her poor little stratagems lay real affection for me. But I was too young to know how to love her. The fact is that I did not know how to understand anything. And so it was that the little prince fled from the proud flower he loved but could not understand. To escape from his planet, the little prince took advantage of the migration of a flock of wild birds. He found himself in the neighborhood of Asteroids number 325, 326, 27, 28 and 329. He began to visit them in order to add to his knowledge. The first asteroid was inhabited by a king clad in a royal purple and ermine who was seated upon a magic throne. The king was elated when he saw the little prince coming. Ah, a subject. Approach, sir, that I may see you better. The king felt consumingly proud of being at last king over somebody. The little prince looked everywhere for a place to sit down but the entire planet was crammed and obstructed by the king's magnificent robe. So he remained standing. Since he was tired, he yawned. It is contrary to etiquette to yawn in the presence of a king. I forbid you to do so. I can't help it. I have come on a long journey and have had no sleep. Ah, then I order you to yawn. Come now, yawn again. That's an order. That frightens me. I cannot anymore. Well, then I... I order you sometimes to yawn and sometimes not to.  I tolerate no disobedience. I am an absolute monarch. However, I always make my orders reasonable. That is very wise. Of course. If I offered a general to change himself into a sea bird and he did not, it would be my fault, not his. May I sit down? Yeah, I order you to do so. Here, I shall move my robe. Sire, I beg that you will excuse my asking a question. I order you to ask me a question. Sire, you are alone here. This planet is tiny. Over what do you rule? Over everything. Over everything? You mean the other planets and all the stars? Oh, over all that. Oh, that's marvelous. You can see a sunset whenever you wish. Oh, Sire, I should like to see a sunset. Do me that kindness. Order the sun to set. If I ordered a general to fly from one flower to another like a butterfly or write a tragic drama or change himself into a sea bird and if he did not, which of us would be wrong? You. Exactly. One must require from each one only the duty he can perform. I have the right to require obedience because my orders are reasonable. But my sunset? You shall have it. I shall command it. When, Sire? Well, I shall consult my almanac. Ah, here we are. That will be this evening about twenty minutes to eight. And when I give the order, you see how well I'm obeyed. I see. I have nothing more to do here, so I shall set out on my way again. Do not go. Do not go. I'll make you a minister. Minister of what? Minister of justice. Yes, that's it, minister of justice. But there is nobody here to judge. Well, then you shall judge yourself. It's far more difficult to judge oneself than to judge others. I can judge myself anywhere. I have good reason to believe that somewhere on my planet there is an old rat. You can judge this old rat. And from time to time you will condemn him to death. But you will have to pardon him on each occasion. He must be treated thriftily. He's the only one we have. I wouldn't like that. I think I will go on my way. Oh, no. I am ready to depart. If your majesty wishes to be promptly obeyed, he should be able to give me a reasonable order. Well, very well. I order you to be gone by the end of one minute. The conditions seem favorable. And hear this. I make you my ambassador. The grown-ups are very strange. The second planet was inhabited by a conceited man who thought the little prince had come to admire him. Oh, I am about to receive a visit from an admirer. Good morning.  It is a hat for salutes. I raise it in salute when people acclaim me. Oh, unfortunately, nobody at all ever passes this way. Oh. Clap your hands, one against the other. All right. You see, I now raise my hat in salute. Do it again. Thank you. Thank you. Wouldn't you like to applaud me again? Well, no. But you rarely do admire me. What do you mean? You regard me as the handsomest, the best dress, the richest and most intelligent man on this planet. But you're the only man on your planet. Well, do me this kindness. Admire me just the same. Very well. I admire you. Ah, thank you. Thank you. And goodbye. Now, what is there in that to interest him so much? The grown-ups are certainly very odd. The third planet belonged to a businessman.  Three and two make five, five and seven. Good morning. Well, good morning. Your cigarette has gone out. I haven't had time to light it again. Six, um, five hundred one million, six hundred twenty-two thousand, seven hundred and thirty-one. Five hundred million what? I can't stop. I've got too much to do. I'm concerned with matters of consequence. Five hundred... During the fifty-four years I've inhabited this planet, I've been disturbed only twice by inconsequential balderdash. This is the third time. I was saying five hundred one million... Millions of what? Those little objects one sometimes sees in the sky. Flies? No, little glittering objects. The ones that set lazy men to idle dreaming. You mean the stars. That's right. And what do you do with the stars? Nothing. I own them. But I have already seen a king... Kings do not own. They reign over. It's very different. And it makes me very rich. What good does it do you to be rich? It makes it possible for me to buy more stars, if any are discovered. How is it possible for a one to own the stars? To whom do they belong? To nobody. Then they belong to me, because I was the first to think of it. I suppose that is true, but what do you do with them? I administer them, count them, recount them. It's difficult, but I am a man who is interested in matters of consequence. You cannot pluck the stars from heaven. No, but I can put them into the bank. Whatever does that mean? I write the number of my stars on a paper. I put the paper into a drawer and lock it with a key. Is that all? That is enough. That is rather poetic, but of no great consequence. Your ideas about matters of consequence are quite different from those of grown-ups. Quite. I myself own a flower which I water every day. I own three volcanoes which I clean out every day. It is of some use to my volcanoes and my flowers that I own them. You are of no use to the stars. Boulder Dash. Now let's see, where was I? 342, 77 plus 89. The grown-ups are all together extraordinary. Tell me, how did you come to visit this planet, the earth? I was recommended by a geographer on the fifth planet I visited. Do you like it? Do you intend to stay? It has been almost a year since I left my home, my flower, my volcanoes. I'm worried. The Baobabs? I left them under control. Your flower then? On my journey I learned many things. I learned that flowers are in danger of speedy disappearance. Soon I must return. It had been eight days since my accident in the desert. The last drop of my water supply was gone. The little prince seemed not to guess the danger. The little sunshine was all he seemed to need. He was recounting some of his experiences after coming to our planet. He was a fox. My dear little man, this is no longer a matter that could have anything to do with a fox. Why not? I am about to die of thirst. I'll tell you about it as we go then. Come, let us look for a will. We're here to look for a well at random in the immensity of the desert. When arrived on the earth, I was surprised not to see any people. It was explained to me that I had landed on the desert. Your friend, the fox, told you this? No, it was a little gold-colored snake.  No thicker than a finger. A little yellow snake, but they're deadly? Not deadly, but more powerful than the finger of a king. He could have struck you fatally. He told me he could help me someday. If I grew too homesick for my planet, he told me all I need to do is come back to the place where I descended. He would meet me there. Are you so homesick then? It is very close to the anniversary of my arrival. At that time, my planet will be right overhead. I... I should be unhappy if you go. That is what the fox said. It was his fault. He wanted me to tame him. Tame him? It was when I wandered into a garden filled with flowers. There were thousands of them, precisely alike. They called themselves roses. I was broken-hearted. Because of the roses? They were all exactly like my flower. A flower I thought to be unique in all the universe. Oh. The fox made me understand to have hope again. He wanted me to tame him because it would establish ties and make him different from all the other foxes. I'm beginning to understand. I looked again at the roses. They were beautiful, but one would not die for them. My rose is more important than all the others because it is she that I have watered. It is she I have put under a glass globe sheltered from the wind behind a screen. Listen to when she grumbled or boasted. She is my rose. And your friend the fox? When I met him, he was as yet nothing. Just a fox like thousands of other foxes. But I have made him my friend. And now he is unique in all the world. You have learned a secret. A simple secret. It's only with the heart that one can see rightly. What is essential is invisible to the eye. Men have forgotten that you become responsible forever for what you have tamed. I am responsible for my rose. When we had trudged along for several hours in silence, the darkness fell and the stars came out.  I took him in my arms and set out walking once more. I felt the need of protecting him as if he himself were a flame that might be extinguished by a little puff of wind. I walked on. I found the well at daybreak. Just keep your promise, you know. The muzzle for my sheep. I remember. Afraid it's not very good. This will be all right. You have plans I don't know about. Tomorrow will be the anniversary of my descent to the earth. And your star will be just above. You must return to your work on the engine now. I will be waiting here. Come back tomorrow evening. I'm a little frightened. Remember the fox. One runs the risk of weeping a little if one lets himself be tamed. I was not reassured. I did not want to lose my little friend. I pretended to go but returned and hid behind a rock. I could not see to whom the little prince was speaking. This is the exact spot. At the right time. Good poison.  My heart jumped to my throat. I looked around the rock. Before me, facing the little prince was one of those yellow snakes that take just 30 seconds to end your life. I dug into my pocket for my gun and started to run. The snake let himself flow across the sand like the dying spray of a fountain and disappeared among the stones. What does this mean? Why are you talking with snakes? You will find out what is wrong with your engine today. And you can go back home. I too am going home today. It is much farther. Much more difficult. I want you to stay a while longer. I have your sheep and the sheep's box. And I have the muzzle. Little man, I want to hear you laugh again. Tell me it's only a bad dream, this affair of the snake, the meeting place, the star. At night you will look up at the stars. My star will be just one of the stars for you. You will love to watch all of the stars in the heavens. They will be your friends. I am making you a present. Little prince, dear little prince, I love to hear that laughter. That is my present. Just that. What are you trying to say? For most people the stars are silent. You alone will have the stars as no one else has them. I don't understand. In one of the stars I shall be living. In one of them I shall be laughing. It will be as if all the stars were laughing when you look at the night sky. Only you will have the stars that can laugh. I too shall look at the stars. They will all be wells with a rusty pulley. You will have five hundred million little bells. Then I shall have five hundred million springs of fresh water. Now, let me go by myself. You... You're afraid, little friend? I am responsible for my flower. She is so weak, so naive. She has four thorns of no use at all. Don't go. Please. Don't go. He seemed unable to move. The little prince hesitated. Took one step. There was nothing there but a flash of yellow close to his ankle. He remained motionless for an instant. He did not cry out. He fell gently as a tree falls. There wasn't even any sound. Because of the sand. Now years and years have gone by. Until now I've never told this story. My sorrow is comforted a little. Not entirely. But I know he did go back to his planet. His body was not there at daybreak. At night I love to listen to the stars. It's like five hundred million little bells. But there is one extraordinary thing. When I drew the muzzle for the little prince I forgot to add the leather strap to it. He will never have been able to fasten it on his sheep. So now I keep wondering what's happening on his planet. Perhaps the sheep has eaten the flower and the little bells are changed to tears. Here then is a great mystery. Nothing in the universe can be the same if somewhere a sheep that we have never seen has yes or no eaten a rose and no grown-up will ever understand that this is a matter of so much importance. The CBS Radio Workshop has presented The Little Prince by Antoine de Saint-Exupéry produced and directed by Antony Ellis. The script was adapted for radio by Frank Tossig. Richard Beals was heard as The Little Prince with Raymond Burr as our narrator. Featured in the cast were Ben Wright, Joseph Kearns, and Hans Conrad. Music for tonight's workshop was composed by Rene Garagank and conducted by Wilbur Hatch. This is Hugh Douglas inviting you to join us again next week when from New York we present H. L. Menken, the story of a journalist. That's next week on the CBS Radio Workshop. Stay tuned for five minutes of CBS News to be followed on most of these same stations by My Son Jeep. America listens most to the CBS Radio Network.


Hey everyone, welcome to road gear reviews. My name is Caitlin from Mortons on the move and today We are taking a look at some of our favorite collapsible kitchen gadgets for RVing or camping. Stay tuned So today we're taking a look at a collapsible dish rack collapsible colanders and a collapsible tea kettle I'll start first with the dish rack. So this is a made smart collapsible dish rack Which is just as it is you collapse it down and now it's really easy to store I've always hated working with dish racks When when I found this in the store It was kind of an impulse buy and that was about two years ago, and I've loved this thing living in an RV or going camping space is often a premium and So you want something that's going to not take up a whole lot of space and be stored in some of the small Cammetry that you may have so when it's collapsed down It's really easy for us to store places also a lot of times in your RV You're not going to have a dishwasher So you're probably going to be doing a lot of your dishes by hand and this comes in extremely handy for those cases We've had this dish rack for about two years, and it's held up really well a couple of things that have happened though is this Bar right here has bent in a little bit from pans and pots resting on it and It is starting to wear out the silicone a little bit in these corners where it collapses down the most But overall it has really stayed in really good shape And we've been very happy with it another thing that can take up a lot of space in your kitchen are Call-inders and so we got these things to collapse down so that we can store them in a very Short drawer that otherwise you wouldn't have been able to stick something like this in these all collapse down Flat these are made by a company called squish and we've got the two-quart version The three-cup version and this handy-dandy little scoop. They're all BPA free They're dishwasher safe, but they are not good in the microwave So just don't do that squish makes a whole line of collapsible products that you can check out So if you need a colander bigger than this Or something else definitely check out their line of products. We've been really happy with them They've held up really well for us the past two years and this is probably one of our most frequently used Kitchen gadgets so the final collapsible kitchen gadget that I want to talk to you about is this collapsible tea kettle so it collapses down to a very short flat Storeable size and that is probably the thing. I love most about it. It's BPA free and it works with Propane gas stoves. It also works on inductions. There are a lot of different colors and models on Amazon I will give you the link below so you can check some of those out I chose this one because it was one of the models that had the handle up top because I didn't want the heat from our propane stove heating up one of the lower set handles So that's why I chose this one It has kind of a interesting little clip that keeps it closed But you just unhook that and it pops it open just like that. This is about 1.2 liters So that'll give you about five eight fluid ounce cups of coffee or tea whichever you prefer and We've really liked how it's worked. It works well on our propane stove as well as our electric induction cooktop and The pourer is kind of small, but it does have a really nice stream. So it's been really nice to have So these are our collapsible kitchen gadgets There are lots more that you can check out on Amazon or at local stores But these are the ones that we've been really happy with and been using a lot again This is the made spart collapsible dish rack the squish Columners and the collapsible tea kettle. Thank you so much for watching rogue your views You like this video give it a thumbs up and hit that subscribe button and we'll see you next week If you have any comments or questions, please leave them below and be sure to subscribe for weekly uploads to gear up for your adventures


All right, so this is an example with a controller. And normally, we would need to put those two requires at the top, right? Because this controller is inherited from application controller. So normally, in a Ruby library, standard Ruby library, you should need to require the file that defines that class. And in the index action, we are using the POST model. So normally, we should be required in POST to have that defined when the action runs. But you know that in Rails, actually, you do not need to do that. Indeed, this has a number of issues. First, it looks like kind of redundant, right? We have POST and require POST application controller. Our RubyMind quickly says there's something redundant here. We could maybe automate something or something like that. The other thing is that requires the file only once. So if something changes, it's not going to be reflected in memory. And in development, we would like to be able to change things and have them refreshed in memory automatically. So Rails provides this feature, which is constant auto-loading and class reloading. And it's one of my favorite features of Ruby on Rails first. It's something that is focused on what I believe is the most important thing when you design software, which is how do you use this? You know, how do I use Rails? This is very convenient for me as a programmer, as a Rails programmer, to have this feature. So this helps a lot in your day-to-day. It's a key feature for me. The other thing is that it's kind of, I don't know, it's kind of unassuming. It's just there silently doing its work. I don't know. There's something there. And also it's technically interesting, I believe. So the talk is about how this works. And it has three sections. The first section is a section about constants in Ruby. So that's going to be just Ruby. And that's because this topic is a topic specifically about constants. And it's going to be good that we have them fresh in our minds how they work in Ruby. So first section, constants in Ruby. Second section is how this constant auto-loading works. I refer the post-model and it's just defined. So indeed, the idea is that if you had your application already loaded, you don't have to care about that. You can work more or less as if that was true. The third section is class-free-loading, because we have here actually two features. One is that the constant is auto-loaded for you. And the other one, related but different, is that in addition to that, in development mode by default, if you change something, that's refreshed memory. That's the third section. All right, so let's go with the constant refresher. You know what's a constant in Ruby. We have here an assignment. We are assigning an integer to the x constant. In most programming languages, constants are like a trivial topic. There's not a lot to say about constants. But surprisingly, in Ruby, it's a really, I don't know. There's a lot of things to say about constants. It's not by any means something as simple as in other languages. Here we have a class definition. It looks innocent, but here's the point. This is a constant assignment indeed. We do not see it because we have the class keyword and that's working behind the scenes. But there's a constant assignment there. So in reality, what happens is this. So we have here three, I cannot use the laser, so I'm going to try to describe where I am. The first thing is class C. We have defined the class C as in the previous slide. The second chunk is equivalent. Equivalent as far as constants is concerned. Then there's some stuff with the scope and some stuff that doesn't matter for this presentation. But if you define a class and assign that class to the C constant, that's the same thing the class keyword is doing, the same thing. I mean, I'm not talking about the implementation. I'm talking about the conceptual model in Ruby. It's that. So when we say the C class, we are doing an abuse of language because the class is the object that is stored in the C constant. Like you could store it in a variable, you know? So it's in the C constant. So Ruby has constants and has class and module objects. And they are independent things of the language. When you define a class that way, there's a little coupling there and that's also in addition, you know, give it to you in a simple way with the class keyword, but once you get that definition, they are constant and class object stored in a constant the same way we stored a one in the X constant in the previous slide. Same way. There's no difference. You have X storing one. You have C storing a class object. There's no difference. And here, if you ask in the third chunk of code, if we ask for the name of this class, we get C as the name. And why? Let's suppose the first chunk does not exist. Right? Let's suppose we have only the second and the third chunk. So the reason is that when you assign to a constant, the interpreter says, if the object I am assigning is a class or module and it does not have a name, it's anonymous, then I am going to put the name according to the constant I am assigning the object to. That's what happens. That's like, you know, there's code in the interpreter that does this, right? So you get C as a name. And by the way, this name, this method call is calling a method on the object that it's stored in the C constant. This is one of the most important slides of the presentation. So what happens in the third chunk is that there's a C constant that is the same you can think of a variable to separate clearly constants and class and module objects. There's a C constant that evaluates to a class object that responds to a name method that yields a result. That's what is happening there. So when the interpreter boots, you have a number of constants already defined, you know? But they are constants, they are not classes. So when we say the string class, and we write it that way, we are doing an abuse of language. It's a, of course, it's a convenient abuse of language. You are not going to say, you know, give me the object that is stored in the string constant by default by interpreter, something like that. Which would be, you know, the whole thing, but it's not convenient. But that's really what's happening. We have a string constant that stores a class object that is created by the interpreter when you would. Constants are stored in modules. So, for instance, this is the implementation of the module class in Rubinius. You see, it has a constant table. You can think of that as a hash table. It maps the name of the constants that that module has with the value.  So they are stored in modules. And again, this is not implementation. This is the conceptual model in Ruby. Constants belong to modules conceptually. So here, we are assigning one to the constant x. And what's happening there? The module, and I am going to spell everything now. That's not how you talk, you know, in your everyday programming. But what happens here is that we are assigning one to a constant call it x that is stored in the constant table of the module that is stored at that time in the constant m. We normally say x is stored in m, right? But to clarify everything because one of the purposes, you know, one of the things that we are going to have clear when we finish a talk is that these things are totally decoupled. So we are storing the x in the module that is stored within the m constant. Indeed, the module could be called something else. And again, the class keyword and the module keyword are basically constant assignments. So this is something in the first chunk of code. This is something that we do routinely. Module something that creates a name space for you and you define a class in that name space, all right? That's a constant assignment. All class and module keywords are creating constants for you. So it's equivalent to the second chunk. The second chunk creates a class with a constructor, class new, assigns to SUCKS parser, and then if you ask for the name of this class object, it returns XML colon colon SUCKS parser. Why? Because it is storing the class object in a constant that belongs to a module called XML. Then the interpreter builds this XML colon colon thing for you, okay? Depending on the name of the module you are defining this thing. And this is another very important slide of this presentation because we are totally going to decouple constants and modules here. We have something similar to what we had before, but we are going to stress that the module and the constant are different things. So in the first chunk we define a module XML, empty. All right, then we do an assignment. This assignment is very important. If you want XML evaluates to a module object that we assign to another constant, same thing as if XML contain it on a string or something more ordinary, you know? There's no difference. It's just an object that is stored in the constant. We assign that object to, in this case, the M constant. All right, so after this line, the M constant and the XML constant hold the same object. If then we reopen the M module because in the third chunk we have module M. What does module M means? So the interpreter says, okay, M, do you have an object with this constant exists? Yes, it has a module, all right. So since it has a module, it's going to reopen the module. It doesn't matter that it was called it or assign it initially to the XML constant. It doesn't matter that the name of the module is XML. It doesn't matter. It's a constant evaluates to a module. We are going to reopen the module. And if we define the SUCKS parser class inside that name space, the name is still going to reflect the name of the module under which we are going to define this constant. You see the separation? So the XML ends in the name of the class because it doesn't matter which is the constant that you syntactically see in the scope. What matters is the module stored in that constant. Of course, this is something that we do not do in our everyday programming. But if we understand this example, we are able to distinguish and know what's going on. Since modules store constants, we have an API to modify the constant tables of those modules. And that's this API that you maybe know, cons get, cons set, cons define it, et cetera. So that's like a high GPI. Get me this constant from this module. Do you have this constant, you know? All right. So in order to resolve constant names, Ruby has three algorithms. We are going to see the three of them from the easiest one to the more complicated one. This is one is here. And it's kind of implicit. We maybe don't realize there's a constant lookup here. So we have a module admin and a user's controller that we want to define within the admin name space or admin name space. What happens here? Remember that every time you use the class or module keyword, the interpreter checks whether you are defining something or reopening something. So there's a check going on, you know? Ruby needs to check whether user's controller is defined in admin module. I don't remember what goes the accent admin or admin. Where goes? Admin? Admin, okay, thank you. So in the admin module, and it's only going to check the admin module exclusively, even if it has ancestors, it doesn't matter. It's going to check the admin module, which is what the name space we have in the scope. So if the constant user's controller exists, in the admin module, it's going to check if it's a class and reopen the class if it's a class, otherwise it's going to error. All right. And this is very important. It's only going to check the admin module. So if you have a user's controller, already defined it in the top level scope, it doesn't going to matter. It's not going to reopen that top level thing. It's strictly the module I have in the scope. All right. By the way, in the top level, constants are stored in the object, right? Okay, the second one. To explain the second one, we need to revise the concept of ancestors of a module or class. Okay, let's go through this slide. In the first chunk, we define an N module. In the second chunk, we define an M module that includes N. Then N becomes an ancestor of M. All right. Then we have class D. And finally, class C inherits from D and includes M. So we have a little bit of everything to see ancestors in all their generality, you know? So which are the ancestors of C? You see at the bottom the ancestors of C. So first C, so technically, the ancestors method returns the receiver. And in this presentation, I am going to refer sometimes to the ancestors. I am going not to include the receiver in that, in that notion, you know? Ancestors from me up, you know? But the ancestors method returns the receiver. All right. Then M, then N, because N is an ancestor of M. So it's kind of recursively unnesting everything for you until it gets flat. That's what it is doing. Then once you have, you know, recursively unnested everything regarding modules, include modules, then it goes to the superclass.  So these are the ancestors of a class or module. And this is the algorithm that is used to resolve this particular case. And we are talking about the X. So in this particular thing, we have two constants, M, and then the X. The first M is not related to this algorithm we are explaining now. Let's suppose that M is resolved somehow and gives you, for instance, a module, okay? So this slide is about how the X is resolved. And the way the X is resolved is check in M. Do you have the M in your constants table? Let's suppose the answer is no. Then it's going to go through the ancestors of the M module. Okay? Check in one by one. If you find the constant, it's going to return a value. Otherwise, it's going to exhaust the ancestors and it's going to call a special method called const missing. Const missing is similar to method missing. Like if you were asking for a constant and it was not found in the places that there's a look up for, that method is going to be called. And Ruby has const missing defining module and that's the method that raises a name error if the constant is not found. It's a method, indeed, which is raising with that error message that say that the constant didn't exist. So only check in the ancestors and const missing if it fails. And now we go to the most complicated of the three and also maybe the most common one to use, which is in this situation we are going to introduce the concept of nesting here also, which is important for the third algorithm. So we saw the ancestors. We are going now to see the nesting and both of them are taken into account in the third algorithm. So the idea of nesting is that nesting reflects the nested name spaces you have at the point of execution. That's the idea. So in this case, we have m and c. And if these constants store the modules that we normally have in those constants where the name's match, we are going to have in module nesting, which is a method that tells you the nesting at the given point, those three things. The c-class, m and c, the mn-module and the m-module. That's the nesting. So it's something syntactical.  It's syntactical. All right. At the top level, the nesting is empty. And it's important to say that the nesting is only changed by the module class, sorry, the module keyword, the class keyword. And then the eval family, let's say family, there are several eval methods or several or eval-like methods when they take a string of code to evaluate. Not when they take a block, but when they take a string, then the nesting is changed for the context of the execution of that string. But that's the only thing that changed the nesting. In particular, class eval and this kind of things, when they take a block, the nesting is not changed. And this is important for the resolution of constants with relative names, which is what we are going to do now. So you see in the third chunk of code, module nesting, it has not changed. Still, it's empty. Even if for some other stuff is the m and c class that is in a scope to define methods and for other things, that class is in a scope. But the nesting is not, that class is not pushed to the nesting. All right, so what happens with this x in the middle of a screen? The algorithm goes this way. It checks whether x belongs to the class or stored in the c constant. Let's suppose it doesn't exist there. It is going to go up following the nesting. So it's going first checks c, well, the name is m, m and c, but let's say it's simple. See, then the next module, mn, then the next module, m. Let's suppose it has not found the constant in any of these three things. Then it's going to follow the ancestor chain of the c class, m and c class. Okay. And then there's a special rule here. With the c class, we are done. If the constant is not found, it's going to call const missing. But if the name space in a scope, the most nested thing in the nesting, it's a module instead of a class, then the interpreter manually checks object. Object does not belong to the nesting. Okay, so in the first thing, when we go up this way, it's a c and m and stop there. We are going now to go through the ancestors of c. And we have not checked object yet. Object is the last resort. So if the most nested thing is a module, then there's an exception in the algorithm. Special rule that says we are going to check no object. All right, if it fails, it involves const missing. To simplify these descriptions of the algorithms, I skip this little detail, but we are going to see it. You know this kernel autoload thing. Kernel autoload allows you to define here a constant, sex parcel, let's say, and associate that with a file, with a file name. What that does is basically the idea is to lazily load the constant when you need it. So when you need it means anytime you try to do something with a constant, get a value, ask if it's defined, something like that, transparently the interpreter, if you ask, if you are asking for that constant, is going to check if there's an autoload. And if there's an autoload, it's going to fetch the file and if the file defines the constant that we are expecting is going to return the value it holds, okay? So in every single time I set, it checks this module, it checks the ancestor, it checks, that check is always a check. If there's defined and if there's an autoload, go an autoload, all right? That's the entire algorithm. This is very important. I've been asking it a few times this. The way constant autoloading works in Ruby, in Rails, sorry, is not based in this autoload mechanism. It's a different thing. The implementation we are going to see it has nothing to do with this autoload feature. And the problem is that it's just not possible. There are a few things with this autoload thing. First thing is that it only accepts constant names. You cannot pass constant paths, all right? So that introduces some difficulties to support namespaces in Rails. The other thing is that it does a require. And in order to be able to reload things, we need to be able to execute files when they change. So if you use require, you are not going to be able to trigger this again. And in addition, you could decorate maybe, I don't know, as a hack, kernel require. But in addition to that, at least in MRI, that require is a particular require in C that is not kernel require. It uses a particular require. Still, you can do a hack with that because how does require know if something was loaded? So there's an array, call it dollar double quote, that has the names of the files that has been loaded so far. Require checks whether the file you want to load is there. And if it's there, it does nothing. If it's not, require and stores that, you know? So that array is mutable. So if we remove the string from the array, require is going to be fulled and is going to load again the file. OK, but it's not yet enough. Even if we did that hack, we had the issues with namespaces. There's no API to remove an autoload, for instance. So if you remove a file that defines the user class or something, we would expect that to, I don't know, to not work. There should be no autoload for users, you know? But you cannot remove autoload that you already have defined. So there's a number of reasons that prevents rails from implementing autoloading with this thing. And it's a pity because it could be so transparent. It could be so smooth. I don't know. For me, it could be the ideal solution for constant autoloading. But I don't think it's possible to implement it with this feature of Ruby. OK, so we are ready to go for constant autoloading. The thing is we are going to autoload the user constant. You know, we have been invoked the action up to that point in the execution of the code. The user model was not defined. And what happens? Ruby says, hey, you are accessing a user constant. I don't know anything about that constant. It looks for the constant. In users controller, it's not there. Admin is not there. Ancestor is not there. And what happens? It calls const missing, you know? And Rails defines a custom const missing. That's the key of this feature, that const missing. So instead of the default const missing that just raises, so const missing is a method. And the const missing is called doing a method dispatch, ordinary method dispatch. If you, in the answers tree, you have defined something in between, that one is going to be invoked. So const missing gets the constant name you are looking for. In this case, the constant name would be user. And it's running in the context, you know, of the admin users controller class. And that's the information you have. You know, it was invoked in admin users controller. The name we are looking for is user. Those are the two bits of input we have. There's a, this configuration collection in Rails application that by default, it has everything under the app directory. And it's mutable. You can add stuff in that collection. That's a collection of directories to look for constants in auto loading. So it goes this way. First, it checks whether there's a user RV below admin users controller. So is that file, do that file exist? Probably there's not even a users control directory, you know, but you check. This path exists in the file system. Let's suppose the answer is no. Next step, and this is a strange, but we are going to see in a minute what it means. But let me tell you that it checks also whether there's a user directory below the users control directory. Okay, let's suppose it doesn't exist. Then it goes one level up. And we are here kind of emulating going the nesting app. So the nesting here is first admin users controller, admin users controller, then admin. Okay? So we are kind of checking more or less like RubyDOS. It's different, but it's more or less the idea. You know, this thing exists here, no. Next level exists here. That's why it checks whether there's an admin user RV. Let's suppose the answer is no. And also checks whether there's a directory admin user. And if all of these checks fail, if we have a user RV in, you know, at the top level, it's going to load that one. And that's the way a user RV is loaded. Okay, and in development mode, this is done with load. You know, Ruby has require and has load. Require requires only once. Load loads every time you want to load a file. So in development mode is done with load and in production mode is done with require by default. The thing with directories is that maybe you have noticed that when you have namespaces in a Rails application, you do not need to define a file that defines by itself the module that you are using in the namespace. If it's a module. So here's an example. Let's say we have some workers and let's say that for organizational purposes in our application, we have the workers in a workers directory. It's plural or singular. Singular, worker directory. Okay, worker directory is something. You know, files. Maybe you have noticed that you do not need to define a worker.rb file that defines the worker module. You do not need to do that. You can do it, but it's not required. So the thing is, it's going to find, you know, doing this backtracking. It's going to eventually find the worker directory and in that case, it builds an anonymous module for you. Well, anonymous first and then, okay, let's explain this. We're going to match it with the previous section. So we store a worker constant in object and assign a module to that constant. And this is a constant assignment. It's a little bit convoluted. It goes through the API, but it's a constant assignment. So that module that it's anonymous is going to get the name of the constant we assign it to it. Ruby is going to do that for us. So when you ask for the name of the worker module, it's going to say worker. Okay, so Rails does that for you. There are a few cases, few, I don't know, corner cases where you need, so this thing is lazy, right? And that's fine, that's good, because you are not evaluating files until you need it. You need them. But there are a few cases where you need to be sure that the constant is defined at some point in the code. And you can do that with required dependency. Required dependency basically says, load that file now, so the constants are going to be defined now, but do it in a way that is integrated with all the system and they are going to be reloaded and everything. We do not have time to explain use cases for this, but let me say that you need this rarely. So this is something exceptional. Do not take it like normal API that you use every day. No, no, no, it's only for some particular cases where you need to be sure that something is loaded at that time. So we keep track of fully qualified staff and file names. Kernel load and kernel require are rapid because if the user, if the user, if user-rb requires no-co-giri, for instance, dependencies has to be able to know that user-rb was something out-loaded, but no-co-giri was something not out-loaded. It needs to distinguish them because it needs to know what was out-loaded and what was not. Because of course interpreter has tons of constants, you know? It's important to realize that constant out-loading in Rails is different. It uses different mechanisms that Ruby algorithms. First, const missing does not have the nesting. We have the name of the class, we have the constant, but we do not need in which of these situations we are because the nesting depends on the modules stored in the constants, not in the constant names. So the first chunk of code is the regular one, but in the middle, the nesting only has one module, mn, okay? So Rails is not, const missing is not able to say whether which is the nesting. I know my name is mn, but mn is the name in the first chunk and in the second chunk. And there's no way to tell which of the both cases you are, you know? And this is like very, very decoupled. I mean, you can build a nesting with any number of any modules. So generally speaking, the nesting does not reflect the name space. It has nothing to do with the names of the things. Of course, you normally do work with code that reflects it, but technically, it doesn't need to reflect anything. Nesting can be arbitrary as the third chunk exemplifies. And, well, there are even more corner cases, but we are running a lot a bit late, so I'm going to skip this one. So there's a trade-off. There's a trade-off. Rails is going to assume that the name space, you know, the name of the class reflects the nesting. It's going to assume that. If the code is not that way, it's not going to play by the rules of dependencies RV. That's the idea. So it's better, it flows better if your name spaces reflect the name of the things. Okay? So this is the assumption that we are in this situation. All right? Rather than doing class, admin, colon, colon, users, controller. You can do that. It mostly works, but it doesn't flow naturally with dependencies RV. Let's forget about this, which is a corner case. The other key information we do not have is which is the name of, which is the algorithm that was being used to load the constant.  We don't know. So here, we do something that I don't like very much. I don't think this is an elegant solution, but it's the best you can do. You cannot do anything else. We are going to check whether the... Okay, we do a check that says if this check succeeds, we kind of know which is the algorithm. But that check depends on the order of loading of the staff which are the constant that are defined at that point. I don't like it very much. Third important difference, we didn't mention any ancestors. We only did the directory thing, okay, which is kind of following the nesting, but we didn't say anything about ancestors. And that's just because we have seen no use case for doing that and complicating things. So it doesn't do it. So this is a corollary of this part. It doesn't emulate the way Ruby actually does things because we cannot, the key information is lacking. We don't have it. Okay, so quickly, the request flow.  There's something that monitors whether the files change. And there's a middleware if you want to reload stuff that is going to reload the stuff. Some stuff is watch it if you change the route, sorry, these changes, locales and everything. And that's the key point. If something changes in development mode in the file system, then the constants, we know because we were keeping track of the constants that we auto-loaded. Those constants, we just remove them. Rails removes those constants. Like using the API, remove const, remove const, remove const, remove const. That's done in the middleware when we start doing the next request and we detect that something changed. So all constants, all auto-load constants are removed. So the way reloading works is the following. If we change it a file and the constants are removed and we are in a request to that admin, users controller, what's going to happen that when the interpreter arrives to the line that uses the user constant says, it doesn't exist. Like it said in the previous request or whatever, it doesn't exist. Then therefore, I'm going to go through these algorithms, I'm going to try to load it and you get a new class object assigned to this constant that we just removed. It could be that the original, technically the original class object maybe, it could be floating somewhere, but it's not reachable through the constant anymore. In that, if your application is correctly written, there should be no nothing referenced, dangling in memory, but they are decoupled. It could still be that the class object somewhere leaving NFC projects that had issues because some stuff like this, they auto-load the constant in italizers or in places that get not reloaded, that kind of things. Okay, anyway, that's it. All right, thank you.


Chris birch My man, mr. Haskins. What's up, everybody? We're joining you this afternoon and uh You guys have a bunch of snow down there We got about two inches, but it's pouring down ice and rain now Yeah, we're supposed to get that in DC like tonight and then tomorrow. They're supposed to be Even more snow throughout the day. It's like good grief, man Mm-hmm, but you know it is what it is man. That's right I wanted to bring you on today Chris because you know my channel on YouTube here is all about inspiring helping entrepreneurs Teaching teaching from my life lessons the mistakes. I've made the methods and procedures that I put in place to excel in business And I thought With you announcing your your summit coming up I thought it would be great for my subscribers to Have that opportunity To look into This this foreclosure summit that you've put together And I wanted to give you a chance just to speak briefly on it But I wanted to ask some some questions about Basically what this summit will include? What what are some of the the topics that you and I can go over that they're going to learn? By by you know watching this this all day summit and when are you when are you doing it? Yeah, yeah, Chris is an honor to talk to a true entrepreneur as yourself my friend Yeah, February 13th. It's gonna be all day 12 to 5 eastern standard I'm trying to get my eating my west coast homies on here too. So I'm starting later in the day All day man. Uh, it's gonna be the first time I'm doing one all day I usually just do classes, but this foreclosure thing is so detailed that I was I'm not able to put it into like a master class. So I'm gonna be teaching you how to locate this stuff What do you do before you bid bidding etiquette?  What's wrong with you? Don't you know? Auction bidding etiquette you wait anyway, I don't get to stuff. It's that it's that uh That the eager buyer and soon as he names soon as the auctioneer announces the first price the hand goes up, right? Anyway, yeah, I can't yeah, I can't change it. But uh, we're gonna bidding etiquette bidding etiquette. Yeah, yeah So let's get into it. I wanted to first ask you Um, this course is gonna cover a vast array of topics throughout the day And I know you had mentioned it starts out with locating the foreclosure Yep, can you speak a little bit on what you're gonna be showing? Uh people to join this summit. Yeah, man. So locating uh, if if you don't know which I didn't know Every foreclosure is public record. Everyone of them. They have to announce it in the public. But the the key is these Where can I use to be politically correct? These forward thinking attorneys sometimes don't put the foreclosure auctions and share sales in the most widely publicated documents if you will so there are Yep I'm assuming what you're saying is they kind of tuck them into the little local community newspaper because legally all they have to do is Show the public that it's coming up That's crazy You'd be surprised chris, you know, both of us been around, you know, how this thing works. And by the fact I know some Guy around here. Troy Titus went to jail doing that mess, you know, just putting them out in the penny savers, which It's public record. Yeah, I recorded it. So Yeah, I remember what was that little there was a I think they had it in your market to the penny saver Yeah, right Yeah, no pages Yeah, and really all this this whole book was just a bunch of coupons For all these retail And yeah, and then they had that long classified list. Yep Sick chris. So anyway around here around the towel area, there's a couple of them Which I don't even know and I'll show you how to google it, you know I mean you can find them in any city in some cities It's just the share of sale. It's like a big thing where you go down where they do uh once uh Once a month. So it all depends on where you're at No, every state's different. Gotcha. Gotcha. Yeah, I think that would be great for a lot of our viewers to Understand that it's not always in the big, you know, new york or the You know, they you will find them there as well sometimes. Yeah, but you'll you'll teach them a strategy of How to get how to get behind curtain in a sense to find these It's so weird, man. I was thinking I remember back in the day listening to robby kisaki It's all about where you shop, you know, do you go in the mls? Look for that stuff? Or do you go?  Do you want to go to macy's sacks for that? I mean it's Yep to you No, that's true. I mean I've I actually bought a foreclosure off the mls They listed it, you know Yeah, exactly. All right. So cool. And then you go into kind of how to Not only find them there, but how to research the the potential properties Yeah, you're gonna first of all, do we even know if there's something we want to buy? So we was prostrating for that but in the bigger picture I had a friend in your market chris that bid on a property and little did he know See, there's a lot of people don't understand. There's a foreclosure. It's nothing but a sale That's it. It's just a sale. So you got to make sure you know what Uh Lender is foreclosing what position they are in because if you don't know that man, you could really get put out of business Yeah, because as you know in in that document that you sign at the courthouse steps It it whatever your purchase price might not include any leans against the property Or you know, there's a lot of little technical things that you have to read Might not you're right chris when and the they're not going to give you the money back Oh, I didn't I didn't know you think they give a crap about not knowing Yeah, yeah, and I actually you brought up a good point. I'll add it to the video description We got a a link for prop stream chris and I use prop stream Shoot every couple times a day really that's right. You better and it was it was so accurate I'll let you guys know that chris and I recently did a deal Down in his market hampton roads market. I searched prop stream a couple weeks after chris chris and his partner acquired it and prop stream was so up to date It was like literally within the court system and it showed it showed all the data. Yeah, cool. Cool. Yeah Yeah, so then you um, you know speaking of doing doing the research you're also going over uh title as well, correct Yeah, I'm a problem. Just not probably I'm going to show everybody what a title search looks like because I didn't know what the hell It was before Let me show you what position these loans are in because believe it or not a second or a third mortgage can foreclose I've had a second mortgage foreclose on me on one of the many houses that I've lost Wow, so you gotta know what you're doing Right, right. So now you you're gonna basically In theory of how this this summit is going to go through you're going to take them to the courthouse steps And what they're going to need to do and tools that they're going to have to have in place Before they get to the steps. Yeah, but then also what they do when they get to the steps When you get there bidding etiquette, how do you do it after you win? What do you do? What do you do? You got this contract here? It's a memory. I'm gonna show you What we get when we bid a memorandum of sale because they can't Do a purchase and sale agreement because they don't own it yet. You know, they're just taking over for the lender Gotcha that memorandum and how do we bid? What do you do with the money? How much money to put up? I mean We don't buy them in our names, right? So you got to know how to transfer it You bid in your name, you know, you're not bidding as an entity. You got to know how to bid Where you know, there's so much stuff, man Correct. Yeah, I mean even even to the simplest things that I am Unfortunately admitting to being a victim of as well. You better have your earnest money deposit with you Oh, yeah, right in fact, you can't even bid like they Uh the foreclosing trustee they they ask for the proof of funds before you can Sign the paper to bid.  Okay. Uh step aside. He said beside. Yep And I honestly chris I've been to I've been the foreclosures that weren't at the courthouse steps They were at the steps of the property Uh, huh, right same thing and I didn't bring earnest money with me because I was really just doing research Man, I lost my shirt. I could have got such a good deal by simply not having I lost the deal because I didn't have my certified check Just being prepared. Yeah to be prepared. That's all. Yeah. Yeah. Now a lot of this starts here though, chris A lot of it man. Like am I going to be prepared? Luckily I have a team So smithy can do a lot of this research for me. Well with me not for me But with us that he can look at a lot of that stuff, right so I can focus on the money part Which really works all well. Yeah Yeah, and now In in your opinion Who is this course going to be best for is it the savvy investor? Someone who maybe has been in real estate, but never done foreclosures A lot of those. Okay. I will say that let me preface this by saying If you are a new investor You better not do any type of foreclosure foreclosure auction bidding unless you know What you're doing Okay And even further a lot of savvy investors been around 10 15 years never even been to the steps, you know, so I would say it's for the newbie and the seasoned guys brother because a lot of people don't I don't know I don't know what drew me to the steps. I guess maybe Going down there a million times doing research looking for probates. I saw those dudes standing outside and where else in the world can you Show up to a location and instant equity get created You know a borrower could owe two hundred and fifty thousand dollars and then the opening bid be 150. I mean they are making Equity It creating equity out of thin air. It's just unbelievable to watch it happen. Yeah You seen it. I mean whatever no doubt the one that you bid on They didn't open it up with the total amount that the person owed No, they I mean I didn't so I did my due diligence on that Even though I was unprepared when I got to the steps They opened the house was probably worth Probably about 225 to 250 in good condition sellable condition and they started the bid at like 10,000 What did they owe about one? I think it was 116 When I when I had looked it up But so that's a different scenario and I guess your your your summit here is going to help people understand All of the different variables. I know you're going to talk about how do you handle foreclosure if if the house is occupied How do you handle a foreclosure when so this property that that I was mentioning that I went to It clearly stated in the foreclosure listing that there would be no walkthrough of the premises allowed So that's why I honestly was going for research when they said you can't walk it. I'm like that's crazy I'm not going to do that I get there the doors open The trustee for the foreclosure was there and the auctioneer and they said oh go ahead and walk around You got to be there, right? There you go. You there if you go here I mean that's the thing I I can't tell you matter of fact. I was going through my old videos How many foreclosure houses as I have I visited just like that just going to do recon And the damn door be cracked open. Yeah, you know, it's walk We got someone on uh On facebook joining us chris saying that they can't wait. Thanks you thanking you for doing this Well, it's a thing. I noticed uh being doing this since 2004 when I got in it was like the market was going like this Then they just everybody knows what happened My gut is just telling me this is where we're headed chris. You know all the signs are there So why not get prepared now to understand what's coming in the future? That's all yeah, very true And I was having this conversation with a fellow investor this past week And he was saying that he thinks that the banks are gonna be even more forgivable than they were before Well, my response to to his statement was Well, why wouldn't I prepare myself now if the banks are not gonna be forgivable, right There yeah, regardless if there's coveted relief or mortgage relief There's still gonna be more foreclosures because because of the time frame We're we're dealing with almost 12 months of the banks not in not being able to pursue Or get into the court to start the foreclosure process You know at chris I'm just thinking there's gonna be a group of the population word that I think a lot of us are reassessing our lives right now A lot of a lot of people are like, do I need this house? What why did I even buy this house? Do I want to even live here anymore? I mean, there's so many Different sub categories of people That are gonna that are going to reassess their lives and some of these houses just not going to fit in the equation for them Yeah, yeah, I mean, I think a lot of people misconstrue What foreclosure actually is Yeah, and the reason and every reason is different. It's not foreclosure is not strictly someone defaulting on their mortgage Yes, technically speaking they have defaulted But the reason they defaulted there's a million reasons Things yeah a million things. Yeah. So guys, um, the link below for chris's summit He's also even in this in this this one day course. You're actually you're bringing on a real estate attorney Is that correct? Oh, yeah, my boy bill brunsheck just happened to be a friend of mine. We connected years ago I've met him back in like 2005 Okay, and now that i'm a published author and you know, I got a platform We do a lot of stuff together. He's been doing it since the 1990s He's gonna come on and talk about the legal aspects what happens after you buy it and Also do some training on redemption rights because some states Where the borough where has the ability to come back and cure that debt and instead there we have We have ways as my friend lou brown says we have ways around that Exactly exactly And it's usually whoever beats the other one to the court first That's right whoever whoever against gets the the document filed Correctly, you know in first place. Yeah, gotta get it done, right? Yeah, cool. So you're doing this on february 13th From noon. Was it from noon to five? Roughly roughly that i'm presuming. I don't know but uh, you know, you can't judge how long this these things will take But yeah, i'm gonna have my boy dutch on two gonna go over It just decided that yesterday kind of doing some pre foreclosure stuff to show them people how to do the text messaging stuff If you want to try to Intervene before the foreclosure. I'll cover a little bit of that Throughout the day too that is that that that text messaging and stuff that that dutch does is so key because he's actually He's actually getting leads on pre foreclosures that aren't even a pre foreclosure. Yeah something He's starting to hear the pain points from from the owners, right? He's hearing it before the banks even know they're in default. That's right Yep, I should doing some amazing stuff. Right. Right. That is cool, man So i'm not gonna hold you too long. I just wanted to invite you on share this, you know with my subscribers Yeah, you know continuing to grow continuing to you know, you say it all the time you pour information into people And that's really that's my focus. I don't have any there's no underlying objective It's it's sharing information with people that like and and also share our content. So Chris, I'll leave you with that but any any final thoughts any Anything special that they can look forward in this summit. I mean, it's gonna be a wealth of information Um, me or I have it on there the the link you can sign up for his uh for his one day summit There's a link in the video description below. Yep Um closing points. Yeah. Well first of all chris for you man. I mean just what you're doing This is a matter of time for you your channel just goes through a roof because of the information you're sharing Genuinely the word I've learned recently genuinely altruistically altruistically. Yeah, I I just learned that word So bear with me if I'm trying to make sure I deploy it properly When you give was not expecting anything in return. It's almost like the universe kind of just Opens up the clouds and it just rains on you crazy. So thank you for doing this chris. Yeah, man and and for years Years, I mean, I've heard people say show me how to do this show me how to do that and I said, you know I can't focus sharing it with one person at a time. So I said, you know what? Let's do the internet. Let's do youtube. Let's do facebook You know, you know, you guys can put questions in the comments below on this video We're you know, happy to help happy to share You know, but also don't forget give me give me a thumbs up on on this video Share the content subscribe to the channel if you wish there's a lot of good information Both on chris askin's channel as well as on mine and chris, what are you? You've already crossed the 70 000 subscribers. I believe it's crazy chris man I mean even when I you know every day is a new journey A new contact a new lead a new this and new that on this internet. Yeah. Yeah, so looking forward to what 2021 has my friend Yeah, yeah, that's great, man Cool, man. That's all I had Thank you for joining me guys Click the link below if you want to get involved in chris's summit and we'll see you guys soon Poor closures instant equity instant equity just like this I remember one time I saw a house. It was a burnout that opened in big with like 7 000 I mean 17 000. So you just don't know what's gonna happen. No, no You gotta be there. You have to be there. No Yeah, all right, man. Yes, sir. Thank you. Thank you


Next, we'll talk Streamline's team communication, offering chat, video calls, recording capabilities, and real-time document collaboration. It simplifies breakout discussion in your meetings and enables seamless webinar organization, a modern solution for all your communication needs. We have all had a moment where we are deeply involved in creating a project plan, working on a paper, or developing technical designs. Only to be interrupted and lose our focus. Next, our talk offers new features that help you to keep your focus intact. For example, messages like who joined the conversation and who left the conversation are now condensed into one single message, so that your chat messages are not flooded with messages like who joined and left.  As GIFs can be a little overwhelming, we also added a button to disable them so that you can find out some of those messages that are interesting for you. Well, in this case, I don't think there is any important message for me. If you are new to a team or interested in joining one of the ongoing discussions in talk, you can now browse and discover existing open conversations more easily, allowing you to find that off-topic chat that everyone has been giggling about lately. Looking to check on what's new in the morning with the ability to filter your conversations quickly for unread messages or to sort your messages by prioritizing mentions in conversations, you can now quickly see new messages for you without spending time scrolling through the list. Group meetings and conversations can be a great source of creativity. But let's face it, very long meetings aren't always very productive. And for that, NextLoudTalk now sends a notification at a one hour mark, gently suggesting you that maybe it's time to wrap up and move to the next task. You all appreciate when every given gets a chance to speak in a meeting. That's why NextLoudTalk displays the speaking duration for each participant. It is a helpful feature to better understand and balance your team interactions. Staying on top of our task is important for all of us. NextLoudTalk offers the option to enable a boat that tracks all your to-do items during a call. Any task noted and the boat confirms its action with a thumbs up emoji. After the meeting is done, now you will get a call summary. The call summary shows who attended the call and how long the call lasted. It will also show all the to-do items that were noted down during the meeting. It is a straightforward way to review what was discussed and what needs to be done next. We have made numerous improvements to enhance your experience in NextLoudTalk. For instance, TalkNow features webhook support, streamlining the integrations of third-party tools and the boat, like the one I mentioned earlier in my slide. To give you messages, visually more attention, we've added formatting capabilities to Talk. Talk messages using Markdown. NextLoudTalk is available on mobile platforms such as Android and iOS, making it easy to stay in touch and collaborate with your colleagues while you are away from your desk. NextLoudTalk is also available as a desktop application. It offers a seamless experience for your calls and chats, whether you are using Linux, Mac or Windows.  Now you can safely receive and respond to your messages while driving all through voice control. So that wraps all the improvement in NextLoudTalk. Being a NextLoudTalk user over the year, my personal favorite features are call summary, helping me to create tasks quickly from meeting, call duration for better planning and to just ensure that I'm not spending more than one hour in meeting. And I'm someone who never wants to miss any conversation around NextLoud. So I love the new feature to find all the open conversations easily. And I hope you also like all the new features that we've added to NextLoudTalk. We await for your positive feedback.


Hello. Thanks everyone for joining today's webinar on frameworks to Excel as a product manager. Before we jump into today's topic, a bit of a background about my journey. I started my career as a technology consultant with Accenture in 2008. During the next five years, I learned a lot about IT services, consulting, and working with clients. My next job was at Amazon in 2014. Although a short stand, I learned a lot about systems complexity and large-scale systems. I moved to the Bay Area in 2015 for Uber, and it was truly a rocket ship back then. I was fortunate enough to transition into product management, and during the four years that I was there, I got to work on different problem areas ranging from leasing and rentals, new market entry, and platform product management.  During the COVID era, I switched a couple of jobs, and currently I'm a product lead at Stripe supporting financial data and the infrastructure team. Now let's talk about what are the traits of a successful product manager. There was a famous article published by Andreessen Horowitz back in 2015 that titled Good PM and Bad PM. It details what are the traits of a good product manager and how does it differentiate from a bad product manager. The first one being good PMs know their market product and competition really well. They take full responsibility of their deliverables and measure their own success in terms of the success of the product. Good PMs create and execute against a well-thought-out winning plan. Good product managers manage their time really well and ensure products are shipped on time. They focus their team's effort on customers and driving value in terms of market share and revenue rather than turning their team into a shift factory. Good PMs create leverageable documents, presentations, and take written positions on important issues. Lastly, they bring clarity, clearly convey their plans and follow through. I resonate a lot with these traits and let's translate them into PM skills that a PM needs to develop in order to be successful. The first one being product sense. Product sense is really the ability to navigate an ambiguous space through the lens of the user and solve their pain points. The next is execution and ability of the PMs to collaborate, communicate, and get things done. Simply said, execution is really the ability to ship products and get things done. Analytics, this is the ability to leverage data and make informed decisions. Communication is a key skill required at every level of product management. It is your ability to clearly convey and influence decisions. Leadership, a lot of PMs don't have people reporting into them while they are responsible for the overall delivery. Leadership in this context refers to the ability to influence others on your team without any authority. If you are managing other people, it also refers to the ability to coach and mentor others. The next is business acumen. This is understanding the commercial side of your product and lastly, strategy. Now, as I mentioned, these are all the PM skills that one needs to excel in their career. For today's session, we'll focus on strategy and discuss some of the frameworks required and discuss some of the frameworks that can help you get better with strategy. The future sessions of this webinar will focus on rest of the PM skills. What is strategy? Well, a strategy is a high-level plan about making explicit choices that will help you win in the marketplace. It starts with a clear vision and then goes on to define specific aspects around competition, customers, your go-to-market strategy, the markets to go after, and other aspects. So to recap, a strategy is nothing but a high-level plan about explicit choices that you would make in order to win in the marketplace. There are multiple different frameworks that one can use to define product strategies and we'll deep dive into some of them. The first one being product vision board. This was popularized by Roman Pitchler. It helps you visualize and validate your vision and define strategy. It consists of nine different aspects. The first one being vision. This is basically what is the purpose you're creating the product for? What changes would it bring about? Second, who are your target users? What are the market segments? And what is the total size of your user base? What are the problems you envision to solve with your product? And what is the unique value proposition? What is the differentiation in your product as compared to your competitors? What is the value that your product or service would bring to the company? Essentially, why should the company invest in this specific area? Who are your main competitors? What are their strengths and weaknesses? How would you monetize your product? What are the different cost factors that may influence the pricing of your product? And lastly, what would be a go-to-market strategy for the product or service? This is product vision board is a handy tool that one can use to brainstorm with the working group and come up with the product strategy. The next one is playing to win. This was developed by A.G. Lafley, former CEO of PNG and Roger Martin. It consists of five different aspects. The first one is purpose. What is your guiding aspiration similar to the vision from previous framework? The second is strategic choices, also referred to where to compete. What are the market segments you are gonna compete in? Who are your customer groups? What geographies and product categories do you wanna go after? The third is value proposition. This is how would you win? What is it that you would build different as compared to your competitors and what unique value proposition would you offer? The fourth is capabilities that you need to enable in your organizations. And lastly, processes, metrics and structures that you need to put into place to support your choices. A third model, which is popular enough is the DHM model proposed by Gibson Biddle, XVP of product and Netflix. And it focuses on three specific questions. The first one being D, how would you delight your customers? H, what will make the product hard to copy? It's a, and lastly M, what business model experiments are required to build a profitable business? The answers to these three specific questions would then in turn inform the strategies or hypotheses that you can build along these dimensions in order to test them out. And the next step, once you have these hypotheses that you've identified or your strategic choices that you've identified, you would then turn them into a product roadmap and define metrics to measure the success of each of these strategies. Sounds good? And the last one is V2MOM framework. This has been popularized by Mark Benioff, the chairman of Salesforce. Most of the aspects of this framework are very similar to the previous framework in addition to one other aspect, which is values. Values are specifically guiding principles and beliefs that would help drive decision-making and principles as you define a strategy. Now, we looked at four different frameworks. Each of them have their own flavors and nuances and there isn't one size fits all that you can use. My recommendation would be to use a framework that solves the problem for you. There are few key sections that I personally like to include in my strategy document. The first one being vision. As you would have noticed in most of the frameworks, this is a key aspect that is included in every strategy framework.  The second is opportunity size. You can define in terms of revenue or the market demand your product or service would help you capture. Third being the target customers or users of your product or service. Fourth, who are your competitors? What are their strengths and what are their weaknesses? Section five and six are really key sections which you should spend a ton of time on while drafting your product strategy. Five is value proposition and differentiation. This is where you would identify unique qualities and features that you need to build to differentiate your products as compared to the competition as well as value proposition that you would deliver to the users. It can be in terms of performance, brand, quality, experience or any other value. Section six is really, how do you take the value proposition from previous step and build a high level plan of 12 to 18 months around the big rocks and the main priorities. The next section is impact to the business. This is your case as to why the company should invest in this product strategy and proposal. How would you, the next is how would you measure the success? And lastly, call out any risk or trade-offs that you need to make in order for your product strategy to be successful. So really, nine key sections to include vision, size, users, competition, value proposition, future state, impact to business, metrics, risk and trade-off. To recap, strategy is all about making choices to focus on few areas from a wide range of possibilities. It is a team activity and you can follow these high level steps in order to come up with a product strategy. The first step is preparation. Anytime you've been tasked with the drafting of strategy for your team or your area, bring together a working group that should typically consist of engineering, product, data science, research, design and operations. You should not build your strategy in isolation. The next step is gathering insights. A lot of data and insights might already exist at your company. So as part of this step, you should extract all of the existing literature and insights that have been gathered in the company around customer competition and existing behavioral data and try to summarize them into key insights. The next step is really synthesizing the insights from the previous step and coming up with strategic options which the working group needs to align on and propose to the next group. As next step for each of these strategic choices that you've agreed upon in step three, generate high level concepts in terms of mockups or design that would help better explain what this would look like. This is a key step because the output from this step would help you get bind from leadership and cross-functional teams as your strategy is formulating. And lastly, you should finalize all of this into a crisp document with nine sections that we referred to in the previous slide and clearly call out the de-prioritized areas in the future step. Cool. How can one get better at strategy? Like any other skill, you can learn and get better at the skill. Some of the things that I propose that can help you get better at strategy are read more strategy books. Competitive strategy is one of the most respected book in this space and I would advise everyone to go through it. Read old strategy documents and presentations in your company. Build a point of view based on your reading. Listen to podcasts that are focused on strategy like Invest Like the Best and McKinsey podcast. Volunteer to help your leadership team with the next product planning cycle. This would help you get a front row seat to how your company plans and thinks through priorities and makes trade-off calls. Attend product strategy reviews and perform product hair downs with your peers. Lastly, practice drafting strategy for product areas. Pick up a product area, something that is at work or outside of work and seek feedback from mentors or colleagues you think are good with strategies. That's all for today's session. Thanks.


Thankfully, it's November, and Appalachian Wireless is offering the Samsung GS8 or the GS8 Plus for $100 off the regular price with two-year agreement. Better service, bigger savings. That's today's Appalachian Wireless, an East Kentucky network company. Wednesday night, just before 10 p.m., a state trooper stopped a vehicle in the Warfield community for suspected DUI. But when the driver got out of the vehicle, Martin County deputies discovered drugs inside. I noticed a syringe laying in the driver's seat and playing to you. At that time, I asked the driver if he had anything in the vehicle, and at that time yesterday was a quantity of marijuana inside his vehicle. That discovery led to a more thorough search. Around 58 grams of methamphetamine was found underneath the passenger seat of the vehicle. $12,640 was found on the driver and inside the vehicle. But in the midst of these discoveries, deputies realized the situation was more severe than they first thought. The driver of the vehicle started complaining of chest pains, sweating very badly. He was transported to Pobby Hall of a possible drug overdose. And then the passenger of the vehicle was transported as well as the overdose. She was actually an arcand on scene by Nick Carramont service twice. The driver, 34-year-old Billy Williams of Nicholasville and his passenger, 25-year-old Mary Parsons of Beauty, both remain in critical condition. They have been charged with felony trafficking and methamphetamine, trafficking in marijuana and possession of drug paraphernalia. A passenger in the vehicle, 32-year-old Hagen Johnson of Lexington, was arrested and also charged with trafficking in meth and marijuana. He also had warrants out of Fayette County for the same charges. Team 11 says 114 grams of meth was seized with a street value of approximately $10,000. This is coming in. It was going somewhere to be distributed out. We will find out where it was going. Hopefully there will be more rest made over this incident. In Inez, I'm Shannon Deskins, EKB News.