day. So we're going to start with a movie with David and David's joining us from Cincinnati. And then afterwards, we'll take a 10 minute break. And then we're going to have some breakout rooms where you can share any, anything that came up for you during the movie. Then we'll have a 45 minute break after that. And then I'll be holding the closing session today. Hello, I'll pass it over to you now, David. Okay, thank you, Pete. Hi, everyone. Welcome. We have a Christmas treat today. We are entered into December, working our way towards Christmas and praying that Jesus will fill our mind with light. That's our stocking stuffer. We want to be filled with light. And I know a number of people who always tell me that Christmas time is their favorite time of the year. And I think there's something in our heart that is drawn to Christmas because 2000 years ago was when Jesus seemed to be born to this world. And there's something inside us that just loves the feeling and the experience of the birth of Christ. It's not like it's really about someone else or something else, but I think it's because since we are the Christ, that's who our identity is. And the birth of Christ would be the remembrance of our identity as God created it. So that's a celebration. I mean, even the ancient Greeks before the time of Jesus, their main message was, know thyself. And then I think with the birth of Jesus, we got a glimpse. We got a little bit of a glimpse like how wonderful that self is, that Christ self, and how wonderful that God is, the creator of our Christ self. So even though it took about 2000 years to get the message into a document, the Course in Miracles, that we could nod our heads and go, oh wow, that's what Christmas is about. It's about knowing who I really am and forgiving all the rest. So as usual, we just took the themes down for this week. And as Pete was saying, we have a large expanded group. We have, I see our Living Miracles Monastery is all there. I see our Living Tabula Rossa Mystery School is all there and sprinkled around from countries throughout the world. We are all joining here for this beautiful Tabula Rossa edition of our Saturday movie session. So the themes that you voted on this past week, the themes that you want most to experience and why we're doing this movie workshop here is to experience these themes in a full way in your heart. Not as a concept or an intellectual idea, but as a heart-opening, bursting, loving experience. And that's what we're all praying for. We're praying for the experience of connection with our Creator. So the themes this week that you voted for coming in at number one was release the need for control and personal responsibility. That's a big one. Both aspects are huge. Release the need for control and personal responsibility. Some of you are familiar with the Serenity Prayer of part of the 12 Steps program. And you know that the Serenity Prayer has three parts. You know, that which you can control, that which you cannot control and the wisdom to know the difference. And when people ask me about the Course in Miracles when I traveled around the world to these 44 countries, I would say, well, the Course is just an expanded version of the Serenity Prayer. It's just 31 chapters, 365 lessons, a manual for teachers, and a clarification of terms, just so you can understand what the Serenity Prayer means that was previously given. And of course, it's important because what you can control is your state of mind. What you can control is the direction of your thinking. You only have two options. The range is set. Ego and Holy Spirit. So there's not a lot of options there, but you still have control of which one to listen to. And therefore, you do have control of whether you experience peace and joy and happiness or guilt, shame, suffering, pain, you know, jealousy, all kinds of fearful emotions come from following the imposter self, the ego, and our choice of our state of mind and our choice of which voice to listen to is always our own. So, you know, there's one part in the Course where Jesus says that that choice was the greatest gift that God blessed his sleeping son with. In heaven, there is no choice. Everything's just absolute love and oneness. But if you believe in separation, then choice is the greatest gift that God blessed his sleeping son with, because it allows us to choose again. We can say, oops, separation, that wasn't a very good idea. Oops, that was not a really good experiment. But in any moment, we can laugh and we can just say, oh, I choose again. I choose the Spirit. I choose love. I choose love. I'm not going the other direction. I'm sorry. Sorry, Ego. Thank you for sharing, but no, thank you. I would rather be in eternity with my creator than be dilly-dallying around in time, trying to make a better self than the one God created perfect. So, I've been perfect from the get-go. I never messed up. I never could fall from grace. I never could separate from my creator. That was a ridiculous idea. But when I believed in the ridiculous, I had some pretty ridiculous emotions. Fear is a very ridiculous emotion.  And all types of suffering are ridiculous because God didn't create them. Why would a God of love have anything to do with them, actually? And now we are on our journey back. So, I think this is a sacred moment that we all share because, you know, what's the best use of time except realizing it's not real? That's the best use of time. Jesus says, time is a learning device that the Holy Spirit can use to teach you that there is no time. So, if that sounds like a paradox, it's not really a paradox. It's just a paradox to those who believe in time. And the more content you are with the present moment, you don't have a paradox. You're happy now and that's it. End of story, period. There's no paradox in heaven. There's no paradox with the Holy Spirit. And the Holy Spirit will just keep repeating this simple lesson of forgiveness for the sleeping mind until the time it's accepted. And that is inevitable. I love that word inevitable. Inevitable is joyful to Jesus and the Holy Spirit. Inevitable is fearful to the ego because the ego associates it with loss and destruction. You know, if you tell the ego, your existence is disappearing. It's fearful. But what is spirit can never disappear. What is spirit less forever? So, the body is now just a learning device to learn forgiveness. That's it. It only has one purpose. And the simpler that is for you, the better. Because the more you really see that there aren't many purposes for the body, there's just one. Then the more you start to really relax and go, okay, I got this. Holy Spirit has taken me home and I can do this. In fact, when Jesus was asked, is it possible to reach God? He said yes. Is it possible to reach God directly?  And he says yes. In fact, you might say it's the most natural thing in the world. Reaching God is the most natural thing in the world. And it's really, he says, it's the only natural thing. So, we don't have to worry about nature or mother nature because wakening to the love of God is the only natural thing in the world. You don't have to worry if you're eating natural foods or not. All foods are artificial. All learning in linear time is artificial intelligence. So, you don't have to associate artificial intelligence with technology. It's like everything that was learned. Apple, grass, sky, mom, dad, learned, learned artificial intelligence. And Jesus said, you spent your whole, you spent so much time learning an artificial world, but you never paused to ask, why am I doing this? Why am I over learning an impossible situation when I could just let it go? So, second on our list of poll results is, remember the spirit's gentle laughter behind it all. Oh, gentle laughter behind it all. Well, sure enough, Jesus has got a comedy for us today. Jesus loves to show comedy movies and we love comedy movies.  And Jesus doesn't.  You know, all you have to do is remember to laugh at the ego and then you can laugh at its world too. But if you take the ego serious, then you take its linear world of time and space serious too. And then it gets quite frightening. Not in reality, but in awareness, it gets really frightening when we start to give validity and belief to this linear world. Number three on the list, transcending doubt through communication. Yay for communication. I love communication. Transparent communication. Open communication. Say what you feel. Speak what you feel. Don't hold back. You cannot be limited unless you attempt to limit communication. Because full open communication is how we enter the holy instant of release. So wouldn't it be great to be in total communication with everyone that you know and everyone you think of? Imagine that that's just a way of saying all minds are joined and you're really totally telepathic and nothing gets by the mind of Christ. It's all connected. It's all perfectly connected. And that's how we remember the love. So we're open to it. And this movie definitely takes communication and it starts out very egoic. And in fact, it's quite antagonistic between two of the main characters. They just don't really like each other. I like a movie where a couple of the main characters don't like each other. And then the Holy Spirit gets a hold of them. And lo and behold, they fall in love. They go from hating each other's guts to falling in love. There's there can't be a better love story than that. This is this is really transformation when the characters don't like each other and then they fall in love. That's that's our kind of love story. That's a Christ love story on Christmas. Okay, number four, staying open to things my brothers point out about me. I'll say that again, staying open to things my brothers point out about me. If I believe my brothers and my sisters are other than me, it can get pretty frustrating. Nobody likes to be told of their flaws. Nobody likes to be told what's wrong with them. People like to hear good news. They want to hear the good things. They would rather hear all the good opinions and zero of the bad opinions. That's how the ego thrives. You know, if it likes, tell me, tell me something good. You know, it wants the compliments. It wants the praises. And it does not like the criticisms. It's like, just accentuate the positive and eliminate the negative and don't mess around with mister in between. Well, Jesus is like, well, that's okay, but actually both the positive attributes and the negative attributes are made up by the ego because all of them are shadows. But the positive judgments are light shadows. And the negative judgments are dark shadows. But shadows are shadows. Shadows are not the light. Why would you settle for light shadows? Why would you take a little bit of shade when your reality is pure love and light? No shade involved. No shadows. Only direct awareness of the light of heaven. That is what we're going for. So we do have to learn to come to guidance and come into a state of mind that transcends doubt and it transcends all things that my brothers point out to me. When your brothers and your sisters are pointing things out to you, they're just acting out thoughts and beliefs that you still hold about time and space. So actually that's why Jesus says only full appreciation and gratitude is an appropriate response to your brothers and sisters. You never actually have a reason to be upset with them because even when they're acting out your dark beliefs, they're showing you the dark beliefs and you need to see the dark beliefs so you can let them go. So that's why it's mirroring.  Jesus talked about the line attributed to Judas in the Bible, betray us thou with a kiss and Jesus simply has only one comment on that line that's attributed to Judas in the Bible, betray us thou with a kiss. Jesus simply says I could have never said that to Judas because I don't believe in betrayal. Whoa, that's a whole reinterpretation of the whole story at the end of Jesus' life. He didn't believe in betrayal. He was all just acting out and he had removed his faith and belief in the images and therefore he didn't believe in betrayal. He goes further on to say Judas was a beloved brother, like all brothers and sisters. So he's not only saying that Jesus is saying Judas didn't betray me because I didn't believe in betrayal but he's saying I loved Judas and that's important because you could say that about anyone. He loved everyone because he knew who he was and he knew who everyone was as well and that's the Christ. And then the last one that's on our list is giving my state of mind top priority. Yeah, your state of mind. Your peace of mind is important. It's no small gift. It's worth every effort that you make in mind training. It's worth your attention. It's worth your vigilance. It's worth your devotion. There's nothing else I can think of more important than mind training in order to accept the atonement and to forgive the world. There's nothing even close to that. So giving my state of mind top priority is very important. Okay, now today I know now you're really interested to say what are we going to see that helps us with those those themes. Well, the name of the movie is No Sleep Till Christmas. No Sleep Till Christmas. And I have to say Kirsten sent me an email this past week and before I went to bed I saw the email and she was recommending this movie No Sleep Till Christmas. So I saw the email, I looked at it and it was addressed to me and several others and then I went to sleep and then I slept several hours and then I woke up because I couldn't sleep. So when I woke up in the middle of the night I said okay Jesus what do you want? And he said no sleep until Christmas. I said oh yeah the movie maybe I should watch the movie. So about three o'clock in the morning I went on to Netflix. No, it wasn't there. That's where Kirsten said she had watched it up in the States and I was in Mexico. I went to Amazon. No, put it in your watch list. It's not available. So I thought that's funny. I can't sleep. I have this movie on my mind and then a couple hours later still in the wee hours of the morning I got an email from J.P. Jason Press and said I put that movie on your hard drive in your share folder. Oh my gosh, Jesus is delivering the movie even when I can't find it on the internet. So I watched it and I loved it. I laughed so hard at this movie because I thought this is perfect for in a funny way helping us see that we can laugh at these judgments, laugh at the grievances we hold, that we can actually be brought together with brothers and sisters that are kind of like our forgiveness assignments in helping us release the thoughts, attack thoughts in our mind and the grievances that we hold. So I'll just give you a little setup of the movie and then we're just going to have a good laugh together. So the main characters I think in this movie are Lizzie. She's an event planner and she's got a pretty structured life being an event planner and she pretty much tries to plan out her life and we all know how that goes. Has anybody else tried to plan out your life?  Having things happen that completely disrupt your plans and we think it's the world doing it to us but maybe we were planning something that we didn't need to plan. That was the problem. Maybe we were just supposed to take it moment by moment and enjoy the ride instead of trying to figure it out and plan it. So Lizzie is an event planner and she's got a lot of stress and pressures and so forth. She's engaged to be married right at the end of the year and so this movie takes place in December and she's engaged to be married to Josh who is a surgeon and she is feeling pretty stressful about this wedding because as an event planner you know she's wondering how much active planning she has to do in this wedding and Josh, her fiance, he really loves his mother and his mother really wants to plan the wedding. So you've got an idea of how stressful this is for Lizzie because Josh's mother is wanting to plan the wedding. A lot of times the bride likes to have a big hand in planning her own wedding, not let the mother-in-law plan the whole the whole thing but she's a planner so she's quite invested in this. The one thing that is interesting is that Lizzie is having trouble sleeping.  So that's her main issue. She has a sleeping problem she can't sleep and on top of that she's getting married at the end of December to Josh and Josh's mother wants to plan the wedding and she's having trouble functioning in her day job as an event planner so she's struggling and the more days that she goes without being able to sleep the more stress comes. She just feels like it's absolutely intolerable. She has to find out what the problem is and for any of us who go through issues and problems in the world the problem is the ego but the ego is mostly unconscious. It's just a puff of nothingness that is turned into an entire belief system and most of it is out of our awareness so we tell ourselves I wish I could quit making these mistakes or I wish I could be more loving to the people around me I wish I could be more kind. I wish I could be more gentle but when you have an unconscious belief system that is based on fear that's where the sickness comes in that's where the struggle comes in the stress. All upset is basically produced from wrong-mindedness which is what the ego is it's a wrong-minded belief about our identity. So that's Lizzie and that's Josh and then the other main character in this movie is Billy and you'll see that that Lizzie is going to meet Billy because she just doesn't know what to do with herself she's tried everything she can't sleep she actually will even get in her car and the city lights for her are very bright so she sometimes just goes driving through the streets of the city with her sunglasses on in the middle of the night because she's nothing better to do she's just she's just an insomniac with a great struggle going on in her mind because she cannot sleep but it turns out that Billy who she has not met is also unable to sleep. So Billy's out jogging on the city streets in the middle of the night and then Lizzie's out driving with her sunglasses on and they will meet they will they will crash together she will hit him she will hit Billy the jogger with her car and she will claim that Billy jumped in front of her even though she was wearing sunglasses and driving at night and Billy will say you hit me so you see the two interpretations of the the meeting point you hit me no you jumped in front of my car and thus we have the antagonistic interpretations of even a meeting that will help free their mind even the beginning of a love story is interpreted as you did it to me you you shouldn't have done that to me you see the ego always interprets every situation in every event is something was done to me against my will and Jesus is saying no nothing happens to you apart from your choice I love that that little part in the course I am responsible for what I see I choose the feelings that I experience and I decide upon the goal I would achieve and everything that seems to happen to me I ask for and receive as I've asked no victimization no betrayal no abuse Jesus says the secret of salvation is but this you are doing this to yourself wow that would be the first step to admit I'm doing this to myself if I wanted to be free and go back to eternity then I must start to realize that this world is like distraction though this world is a make believes place of time where things seem to happen that don't really happen they're just imagination just my imagination running away with me it's just imagination and it's all based on our thoughts and beliefs so if if we somehow egoically want to be mistreated then we can invent a dream where the character that we identify with is mistreated but it's not real it doesn't really happen in heaven there is no mistreatment in the kingdom of heaven it's only in the realm of time and space where this belief in abuse a belief in being mistreated the belief that that something can happen to us against our will that is what the realm of time and space is all about and then Jesus contrasts that he says well actually God's will for you is perfect happiness and so if you're not perfectly happy it just means you don't want to know God's will for you and you don't really want to know your true will you would rather be miserable and struggling than happy and in eternity that's the that's the context of the metaphysics of of course the miracles you want to be right about the human condition or you want to be happy in heaven the choice is yours you know basically Jesus is saying there's no pressure it's it's but it is totally up to you whether you want to know God's will for perfect happiness or you want to continue to participate in an illusion of struggle and that's it that's the the the choice so we've got Lizzie the event planner we've got Josh the surgeon that she's engaged to and Josh's mother is trying to get this wedding planned and then we have Billy who uh he's pretty much personality wise the opposite of Lizzie in every way have you ever been with somebody who seems to be your exact opposite in personality yes it's kind of like hi oil meat water water meat oil see if you guys can coexist hmm it's it's an interesting equation now the one thing though even though Lizzie and Billy are complete opposites they do have one commonality and it's both of them cannot sleep okay this is what the Holy Spirit does oh great I can I can bring about a lot of healing in a very humorous way but I have to have give me one commonality to work with and they both cannot sleep except when they're together so they discover that they can only sleep when they're together Lizzie and Billy mind you though Lizzie is engaged to get married to Josh and she's not functioning very well because she's not sleeping and Billy's not functioning well either his girlfriend left him like I'm out of here I can't handle this I can't handle being with you like grow up Billy and so in one sense Lizzie and Billy have a huge need and the Holy Spirit will use this common need to bring about an enormous healing in fact to bring about such a healing that love will be able to stream through that relationship so he's going to take a very antagonistic relationship and he's going to purify it so that the love can shine through it wow that's good news for all of us if Billy and Lizzie can forgive then I think any of us can forgive as well because they're going to show the way so I think you're going to really enjoy this movie I will I will pop in from time to time but I found this this movie is like a beautiful ride in transformation of consciousness and awareness I think sometimes people say to me you know David I don't quite what know what you mean when you say no private thoughts and no people pleasing I mean what how what does that even mean and in a course of miracles in the text Jesus says that if you would have no thoughts that you would withhold from anyone else in other words if you are willing to share your thoughts with everyone without exception then you would soon realize the nature of who you really are if you had no thoughts that you would keep private and you were open to complete transparent open communication with everyone and everything you would find the holy instant for sure if you were that open Jesus also tells us in the beginning of the workbook that he says you have no private thoughts and yet that is all that you are aware of so the human condition is is the belief in private thoughts secrets and the perception that comes from the belief in these secrets what is the secret it's a thought that you believe you can think apart from God in heaven there are no secrets but if you believe in secrets then you believe in private thoughts and then the Holy Spirit will use relationships to teach you it is not so now I remember we had I think it was Kai hi Kai it's good to see you again Kai was asking about desires he was saying I have all these organic desires well let's talk a little bit about desire too before this this movie Kai was saying that that I still have these desires for things in the world and I don't know how to reach beyond them I'm basically seemingly stuck with my desires like every day I I have to face these desires for things of the world and I was giving you that quote from the course you know truth will be returned to your awareness by your desire as it was lost by your desire for something else so I'm just going to say this realm of time and space is is a trick and it's a trick of unfulfillment every human being that seems to come here is dealing with a core issue and I'm just going to call that core issue unfulfillment there human beings are restless human beings are goal seekers they seek things in the future to to help alleviate a present sense of unfulfillment relationships in this world we'll call them interpersonal relationships always begin with some sense of unfulfillment in other words that's that's why you're more attracted to some people than others because you believe that they can fulfill you and then there's other people with it you don't believe can fulfill you at all those are the ones you just want to cast aside like I'm indifferent I don't need to meet them thank you just bring me the ones that will fulfill me and eliminate I don't even want to meet the other ones because they that they serve no purpose but you see the problem is is that the unfulfillment is coming from the ego and the unfulfillment is coming from a from a belief in lack and deprivation that's where all unworthiness rises it's from a a belief in lack and deprivation in the mind so therefore as you identify with the body or as you identified with being a human being you will then seek for those who are not you but who can combine with you to be a better you so uh you know I guess we could say in terms of dating and and pursuing a relationship or even a lifelong relationship sometimes people will say oh I I haven't found the right one yet it's like that's like out of six seven we'll say seven billion you're looking for just the right one that will turn the key and provide 100 fulfillment it ain't gonna happen I can I don't want to ruin the romantic stories here but uh if you're looking for the right one and the right one is in your mind is some form then you're seeking outside yourself which is what seeking in form is because your spirit so if you seek in form for the right one you're actually looking for love in all the wrong places you're looking for love in time and space and it's not there you're looking for love in the projection in the projection of the ego oh sneaky sneaky sneaky but looking for the right one sometimes um sometimes people say David I found the right one and I say what does that mean and they say I found my better half that doesn't sound actually good to me I don't I don't really know about you but when people tell me I found my better half I'm like what do you have a worse half too did I meet the worse half before I meet the better half can I meet the worse half you know I kind of been playful about this because you know it's it's it's ridiculous but it is heavily believed in so I don't want to ruin anybody's party too much but this movie helps us get under the game you know it's a game it's a game when we're searching outside Jesus says seek not outside yourself he's basically saying don't look for yourself outside of spirit seek not outside yourselves for it will fail and you will weep each time an idol falls so every time we set up something to be our savior or even I'll say our fulfillment and then lo and behold they say or do something and then we wonder did I make a mistake I didn't think a better half is not supposed to act like that I didn't think a better half would ever say that to me I already had a worse half I didn't I don't need that kind of behavior out of a better half that's just not acceptable from a better half and then finally you start to turn within and that's what Jesus said in the Bible the kingdom of heaven is within you meaning it's it's spirit it's light know thyself as spirit and you will be happy for eternity because God is eternal and God created you as a spirit that is an eternal being it never is born it never dies it's just an eternal being of love and light so let's enjoy Lizzie and Josh and Billy and these three it's just uh it's really good I think that's that's how you get a movie like this is I've watched the the the way that comedy movies play there's some kind of secret that is established pretty quick early on in the plot and then the more that that secret grows and is continues to be hidden then that is the that is the plot it's it's a plot of secrets and then the big laugh comes when the secret is kind of exposed for the first time why do we laugh so hard when somebody else's secret gets exposed is because there's something inside of us that's hoping our secret will get exposed we're hoping this whole trick of identity gets exposed you know that we we let it get exposed so um I think that's that's pretty much the the tension that is felt is that that there you believe you have to do something that you have to keep secret and then in keeping the secret there's a pressure God doesn't keep secrets I don't know why we would think we would be happy keeping secrets but it's part of the belief in the ego that certain thoughts are meant to be kept hidden in private and other thoughts are meant to be shared the ego is very selective about its perception of reality it only selects things that would serve it and it disregards everything else so we're going to see that the answer to unfulfillment is miraculous communication miraculous communication dispels the belief in separation and therefore it it dispels the experience of unfulfillment miracles are really the way because they dispel this false erroneous sense of unfulfillment that is usually the mind will try to dispel the the loneliness and the deprivation and the lack by using some form to substitute that it believes is better so it's always trying to trade up you know if you got let's say you've got a self-concept as a single man or single woman and you're you're unfulfilled and then you look around the world and you see everybody they're getting paired look over there they're getting paired up and they're getting paired up over there and then pretty soon your unfulfillment starts to come and why am I a lonely single person and then you go to the park to get away from all of these couples and you look out in the water and it's two swans it's like oh my god it's it's even in the birds the birds are pairing up you know oh my god and then you think i'm i'm destined to be lonely forever look at even the swans get along they're they can pair up but i can't and this is still the ego's projections to try to to make you feel unfulfilled make you feel like you're lacking something and make you feel like you feel so sad you just want to die that's the ego's goal is death basically that's its ace card i mean if you follow the ego's plan eventually it's just going to flip its ace card out and go just kill yourself you see it's all aimed at one one card it's the ace of spades it's black or maybe even the ace of clubs it wants to club your mind with blackness and darkness and listen that is not our god's will for us we are not meant to be stabbed or shoveled or clubbed into death we are to to awaken to eternal life so enjoy the movie and i will join you during the movie let's have some fun today this is this is the start of our christmas time we are going to rev ourselves up and this time for christmas we're going to celebrate the birth of our true self in our awareness that is christmas and you don't even you don't even need eggnog for that you you don't even need uh material presence you can just feel the presence of god's love bursting in your heart and the joy filling the world so let's go into that joy to the world the lord has come let's go into that experience through this movie


Hi, I'm Carmen Ermo and I'm one of the Curators Coordinating Radical Women Latin American Art 1960 to 1985 at the Brooklyn Museum's Elizabeth A. Sackler Center for Feminist Art on View Now. We're inviting our followers and our friends to nominate a radical woman in their lives and question what a radical woman means today. To me a radical woman is someone who has a radical message and shares it in a radical way. That's why I'm nominating Dr. Marta Moreno Vega, one of the 123 artists in the exhibition. Dr. Vega founded El Museo del Barrio and the Caribbean Cultural Center Africa Diaspora Institute here in New York. Both institutions still going strong today. We invite everyone watching at home to join the campaign and nominate a radical woman in their life.


Hello everyone, I'm Alicia Anderson and welcome to the Fort Report. Holiday season is fast approaching and during that time we tend to cook more with fat and grease. Are you frying a turkey? What do you do with leftover cooking oil? A lot of people don't know how to properly dispose of those fats and cooking oils and unfortunately a lot of people put them down the drain. And what will happen is that will harden and actually cause a clog in the sewer system. What most people don't understand is our sewer system. Actually the water inside is really more of a trickle and it's gravity fed. And so because it moves so slow, the fats and grease that get in there can harden and just kind of slowly back up and cause a clog. When it's clogged we'll have what we call an SSO or sanitary sewer overflow. So essentially you will have sanitary sewer water back up into your home, into your showers, into your toilets. You could also have a pipe break and burst as well. So what can we do to avoid sewer water backing up into our home? The best thing to do is not to pour grease down the drain. So with food scraps, anything left on your plate you really should scrape that off and put it into the trash. Let's say you've been deep fried a turkey and have cooking oil. The best thing to take that is to let the oil cool down, put it into an original container or any container with a lid, label it whether we know it's grease or whether it's cooking oil and then put that inside a plastic bag so that it will help prevent or at least limit spills. And we would suggest that you actually recycle it, take it to our environmental collection center and have it recycled where a company comes and picks it up and actually turns it into a biofuel. So that's the best thing to do with it. If you can't do that then put it back into that container and actually put it in your regular trash. For more information visit the website on the screen. And if it's too late for your home and you have a clogged pipe, call<PHONE_NUMBER>. Here's a look at other events happening in and around Fort Worth in the next few weeks. For a listing of more events and city meetings you always can check the calendar at the city's website.


We don't want to twist our body, I just want to look over his ears. If I'm making a right turn, I have my eyes open and soft, and I look over his right ear. If I go straight, I want to look over the pole. I want to go straight, look over the pole. If I ride left, I just look over that left ear a little bit. So I'm looking right over the ear.


All right, let's wait around and see who comes around it'll be a couple of minutes where people actually start showing up I'm sure Especially this being on a Sunday So I'll wait for a couple people to show up here by the way I'll also be posting later on today another video I did an unboxing video of a creepy crate from the friends my friends over at the lineup They sent me an extra creepy crate that they had from October and Not sponsored or anything they just sent it my way because they're really cool people so I decided I'd unbox that here As a video on YouTube. I didn't do it live. I probably should have I didn't think about it until I'd already started So I do have this other box here that was sent to me though from a weird. Oh, and I'm going to unbox this I've not opened it before I haven't I have an idea of what's in it because he told me that he was sending it to Me but I've not seen it yet. So I don't know really exactly what to expect But and it looks like he's really done it up when it comes to When it comes to Packing it and making sure that it's that it was good for transport So I might you know what I'm going to go ahead and start opening this now They take me a while just to get through all the tape So back to my trusty knife We don't have I Need a weird darkness letter opener. It's what I need but I don't have one yet. So How do I get even? How am I even going to get the knife in here get this started? Holy cow? Paul This is from Paul Paul Spangler. He's an artist if you look at look for Paul Spangler on you on Facebook You can find some of his artwork. It's really cool. So I know that this is going to be artwork and I haven't and I he kind of told me what it was because he knows that I'm a fan of this particular Creation Well, I'll let it be a surprise to you so I See we have one person with us. Awesome. How you doing? We're what whoever you are. I'm doing an unboxing video of something that a weirdo said to me And I am for the light I'm having a heck of a time Trying to get the stinkin box open So holy cow It's like they were packing the I'm gonna use the knife again It's like they were packing the the coffin for the master on TV is the strain.  That's on my mind because I just got done watching the straight Which I prefer over the walking dead by the way I lost I lost interest in the walking dead. It was pretty much the same story every Every season find some place you think is safe bad guys come around you run or you bite them and run Okay, so I think I've got it open enough. I think that I could actually start showing you So I see we have three people with me here now. Awesome He sent me newspaper Paul. Thank you so much. It's newspaper. You are so sweet to me Okay, I'm just kidding. All right I'm with that off the side. Now. This is an unplanned live video. I'm just it was just off to cut off the spur of the moment Just I wanted to Open this for you guys 10 people watching now 13 people watching. Yeah, all right Okay, like I said, this is from weirdo Paul Spangler He says Darren Hope you enjoy these prints. I know werewolves are your fave So I picked three of my three of my best Wow Take care. Look forward to your latest narrations Paul Spangler You got a really cool signature Paul too. That's that's uh, it's more like an autograph. You can see guys can see that Can you see the autograph there at the bottom? I'm not sure. All right, but anyway Okay, so we know it's werewolves now Yes, that has been my favorite movie monster Since I was a kid We ended up going trick-or-treating one year and my dad helped me build a what-up bill put together a werewolf costume It was already a plastic mask But then we just we got a t-shirt and we Put some black dots on it with blood coming down looks like the bullet they like that like I've been shot Pretty cool. All right, so oh Okay, that's just for packing so Oh, wow, he's he's even framed these for me. Paul dude Oh my gosh, and they're signed on the back Signed on the back says 18. Oh wow Teenage werewolf. I don't know hopefully I'll try I'll try to keep the uh The glare comes in teenage werewolf That pretty cool teen was it would that be teen wolf or I was a teenage werewolf I guess depending on one of those two That is really cool, man He is really talented by the way. I look forward to Paul's stuff on facebook all the time. So there's that one I don't know where i'm gonna put these either. I can't really I can't hang them here in my office because um, I have to have soundproofing around so much So werewolves are the best as Joseph. I just want to say I love your videos keep up. Well, thank you Teresa. I appreciate it Uh, all right moving on to the next one which is also Also wrapped all right I missed it. I'm sorry. What'd you guys say? I was trying to Ah, crud Somebody asked the questions. All right Yes, yes, yes, yes This one's one of my favorites Okay It didn't do well in the box office, but I really liked um The wolf man With benicio del teller del toro. I really I thought I thought it was a really good attempt at remaking the original wolf man Um, adding a couple of twists. It didn't do well as well as they wanted it to so no sequels or anything, but this Do I have any tattoos? No, I do not have any tattoos um, that is Incredible, isn't it? That was just gorgeous Maybe I can put these in my bedroom. There's no way these are going to go up to the rest of the house My wife is not going to allow that It doesn't go with all the flowers and mountains and and uh forest streams and everything else that she's decorating with That is so sweet. All right, cool. All right, so there's those two I think I probably will have robin help me Put them together or put them up though. She's a lot better at hanging stuff than I am These are not I don't want these to fall There we go There's another uh as I mentioned at the beginning of the video when nobody was watching Um, there's another video going up later today I am I am a Unboxed a creepy creep From the lineup. They said it should be just for free because I had an extra one And I've been communicating with them about some other things. So Oh, look at this. He sent me some jesus Thank you. Paul Paul sent me some jesus Risen Easter celebration You've had these these newspapers for a while haven't you Is this the last one too? I think yeah, this is the last one. Okay So Do you know why Easter is a different day? Okay That whole page ought to be something I ought to keep a keep for informational purposes Okay Nice That is really sweet It's a profile essentially of the other of the one I just showed you Profile of the same creature come on focus Now the focus come back. There you go Just a side view of that same That is really cool that this this one reminds me a bit more of a long chainie Um werewolf We're gonna get closer without screwing things up. There you go How cool is that? Paul Spangler if you want to check out some of his artwork Just do a search for Paul Spangler um art I think probably or Paul Spangler um Drawings or something like that So he has risen The wolf man has risen So anyway, that is really really sweet man. Paul if you're watching this or maybe you'll see it later Thank you so much. That really is cool And I've actually had this box for a while. He sent it to me Right around my birthday, which was a halloween time essentially my birthday is the day after halloween So I've had this for a little while and I just hadn't got around to Opening it because I was busy with other stuff hadn't been feeling well, but Man, that really does mean a lot Paul So I'll be sending you a personal email as well, but thank you so much. Those those are just really sweet So, uh, again look for Paul on online Again, he just sent it to me for free. Just just being a nice guy He's a he's a fan of Weird Darkness and decided to send me something So and he found my address on the website. So thank you Paul So, uh, but yeah, look for another unboxing a little bit later on today that I did for from creepy creepy folks and Have a great afternoon guys. I'm not sure by the way I'm not sure what I'm going what I'm going to do for uh Weird Darkness on Thanksgiving So leave your comments below as to Whether or not you're you're even celebrating Thanksgiving because I know that's really only a us type of thing Canada does their Thanksgiving some other time and It doesn't make any sense for all the other countries to do it. I think europe Does Thanksgiving too, but I don't know if they do it at the exact same time that we do or not So anyway, uh, are you going to be online at all on Thanksgiving? Leave a comment below. Maybe I'll record something in advance for Thanksgiving or something So anyway, thanks a lot. Uh, love y'all. Thanks for being weird. I really appreciate it And I'll talk to you later as soon as I can figure out how to close this


Okay, let's go through the women's draw for Indian Wells. It's just come out It's a pretty interesting looking drawer and there's some really nightmare matches for some of the big names in the first couple rounds But let's start with the players that are not playing in this event who have withdrawn Okay, so here is the withdrawal list for the ladies. You can see their Krijakava. She's pulled out Bencich also pulled out She won't be playing for the rest of the year So don't expect to see her name in the draw for about 12 months Mukava wrist injury had surgery She's out for a while Kovitava same as Bencich won't be playing for a while Sevastova also pulling out due to getting a possible knee problem last week We also have an Isimova pulling out of the draw, which is really a shame. She was playing so well in Australia So she's not playing. Okay, so 32 seeds in this one Of course being a 1000 event of this size all the seeds get a buy in the first round Starting with Shviyantek the number one seed she gets by in the first round She'd take on either a qualifier or Danielle Collins in the second round Of course Collins did push Shviyantek at the Australian open to the brink so very tough start for Shviyantek Then you've got Georgie taken on Bolton of course Bolton just won a title very very good form winner That will pay the number 26 seed Noskova in the second round of course Noskova Shviyantek That was in Australia and that was an upset then you've got number 18 seed keys She'll take on either a qualifier in the second round because there's got two qualities going at it in that first round Then you got Corpash taken on putting seven winner of that will take on the number 15 seed Alexandrova in the second round so this section is interesting It's an interesting little section with you know obviously Shviyantek being the big one But it's a lot of dangerous players in here You've got you know Shviyantek Noskova as the big two keys coming back for the first time this year She's also going to be one to watch of course, but then the dangerous unseeded player You've got Colin you've got Bolter who's in very good form at the moment So very interesting section to see how Shviyantek can get out of it next section of the draw You've got Oster Penko the number 10 seed She'll take on either Kerber or Martij in the second round Then you've got a qualifier taken on Venus Williams winner of that would take on the number 17 seed Kudamatova in the second round then you got the 25th seed Vekic She'll take on either Wozniakki or Zoo in the second round then you've got Andrava taken on Vali net winner of that would take on the number six seed On Shibur in the second round and of course we have seen Shibur taking on Andrava this year already and it was an absolute beatdown by Andrava in Australia So that sucks for Shibur, but plays to watch out for obviously Oster Penko Very very dangerous has had a very good season or so far as well Shibur if she needs okay, definitely want to watch and one to keep an eye on Andrava one of the most dangerous unseeded players in the draw Of course this section will take on the Shviyantek section in the quarter finals So we potentially could be getting a Shviyantek taking on Shibur if we're gonna go by the big names But if we want to go with the names that maybe everybody expects and maybe everybody wants Shviyantek versus Oster Penko That is the one that I want to see personally Because I reckon that on this slower court Shviyantek might like her chances a little better All right next part of the draw now We've got Rabakina number four seed she'll take on either Bedosa or Kruger in the second round Then you've got Tormo taking on Buskova winner that will take on the number 28 seed Potapova in the second round So Potapova is playing then you've got Callan Skyar the 21st seed She'll take on either a qualifier or the net in the second round And then you've got Maria taking on Bruce winner that will take on the number 13 seed Palini in the second round of course Palini just beat Callan Skyar in that Dubai final a couple weeks ago So that's gonna be really interesting to see if they get a rematch there But of course plays to watch Rabakina defending champion definitely gonna keep an eye on her Palini Just won in Dubai Callan Skyar of course just played the final of Dubai So go to watch out for them as well Then you've got the number 12 seed Hadajmaia she will take on the winner of either a qualifier or Wong in the second round Then you got Kessler taking on a qualifier winner that would take on the number 22 seed Pavlia Cenkova in the second round then you got the number 31 seed Kostruc She'll play either a qualifier or Zong in the second round Then you got a qualifier taken on Savile winner of that will take on the number 7 seed Vondrusava in the second round This is a weird section because there's no real standouts. I mean this players playing well Kostruc's been good Vondy She was okay a couple weeks ago Pavlia Cenkova's been pretty good at times Hadajmaia's had a moments There's not too many unseated players there that are super dangerous So this might be the most open section of the draw and of course this section will take on Rabakina section in the Quarters so we could be getting Rabakina taken on Vondrusava if we go by the big names the two past Wimbledon champions to play that would be really fun If you want to go by a little bit more form maybe Rabakina versus Kostruc after what Kostruc did last week in San Diego Or maybe even if you want to go something a little more different Rabakina taken on Hadajmaia could be something that happens there If you want to go with something different, maybe Rabakina not there Maybe you put Pelini taken on Hadajmaia or Pelini taken on Vondrusava I mean the possibilities are endless Rabakina really the only player that I would trust in this section of course this section in the semis will take on Shriontek section So of course Shriontek take Rabakina. We'd love to see that it was a semi-final last year And we could get a rematch we could get Shriontek taken on Vondrusava Things go right for Vondy this week or maybe even Shriontek Kallenskaya Which was a rematch of what we saw in Dubai last week. So there it is top half of the draw Let's go to the bottom half of the draw bottom half of the draw you can see there We've got Jung the number eight seed we'll get by in the first round She'll take on the winner of Gracheva and Yuan in the second round Then you got Buxa taken on Dolohide winner that will take on the number 27 seed Azarenka in the second round then you got the number 19 seed Kasteya She would take on either Stevens or Sharif in the second round Then you got Havanessi and taken on Dodden winner that will take on the number 11 seed Kazakina in the second round and look this is a very interesting section You know players that are playing well this year Azarenka's been good Jung's obviously been good Kasteya's had a moments Kazakina's been good as well. I mean this is a very competitive section All right next section of the draw you've got Samson over the number 14 seed She'll take on either Osaka or a qualifier in the second round So Osaka Samson over could be really really fun Then you've got Wong taken on Schmidlova winner that will take on the number 24 seed Merton in the second round then you got the 32nd seed Kalanina She'll take on either Fre or Bronzetti in the second round Then you got Wong taken on Beryl winner of that will take on the number three seed Coco Gough in that second round And I think Gough's got the easiest on paper easiest draw on paper I think that she really would like her chances in that for sure. There's not really any tough players in there for her I mean Samson over is not easy, but and Osaka of course isn't easy But I feel like Gough got a lot of chances in this section. Of course this section will take on that Jung section so possible quarterfinal between Gough Jung We could be getting a quarterfinal between Gough and and Azarenka Gough and Kazakina in the quarterfinals Or if you don't think golf's gonna make it Maybe you go with Jung versus Samson over as something a little different bottom part of the draw now We've got Pagula number five seed she'll take on either blink of it or push of it in the second round And that is such a tough second round no matter who it is a very tough start for Pagula Then you've got parry taken on Treveson winner That will take on the number 29 seed Fernandez in the second round then you got Garcia 20th seed She'll take on either Tomoba or Kennan in the second round then you got Snyder taken on Bogdan winner That will take on the number nine seed Sakuri in the second round and this section is stack Pagula Fernandez Garcia Sakuri all very very tough players, but also very competitive against each other, which could be fun You got you know obviously players to watch out for those four in particular, but also Pushkova You've also got Kennan in this section as well So this section here very very awkward for all players involved and then the next section to draw the bottom section The very bottom section you've got Svetalina the 16th seed She'll take on either Sinyakova or Minin in the second round Then you got qualifier taken on Sharenko winner that would take on the number 23 seed Navarro in the second round then you got the 30th seed Yastremska She'll take on either Raducanu or a qualifier in the second round and Yastremska has been good this year Raducanu Yastremska that'll be fireworks then the bottom part You've got Choky Redo taken on Stearns winner of that will take on the number two seed Savalanca in the second round very very interesting draw for Savalanca plays to watch out for Ah, you know Savalanca Yastremska Svetalina of course you got to keep it on Raducanu You know, she did play well here 12 months ago Surprisingly, so made the fourth round So definitely someone to watch out for on these slower courts because this section will take on that Pagula section so possibly caught a final between Savalanca Pagula We could be getting a Savalanca Sakri caught a final or even a Savalanca Fernandez caught a final if you want to go with something a little bit different and of course this section playing in the Semis against the golf section So big names Savalanca golf could be in the semis if you want to go something different Maybe Savalanca Zhang rematch of the Australian Open final Maybe you don't think Savalanca is gonna get there Maybe you go with golf versus Pagula with Pagula having the new coaches Maybe something happens. Let me know in the chat Let me know in the comments below if you're watching this later Who's gonna win this tournament? It feels like Rebecca has got the best draw or maybe even golf golf might be the one She has a pretty good road until the semis. Is that a good thing? Maybe, you know, she doesn't have to put maybe not have to play too many tough matches early But then again, maybe she has she should be playing tough matches So then when she plays Savalanca, if she plays Savalanca, it won't be out of nowhere You know, it's not that big of a jump to play some tough matches and then go to Savalanca But either way, I think that Shrion's extra is the worst and she's gonna have the toughest draw And the toughest road to making this title Indian whilst of the ladies and it's looking pretty interesting early on


Inside Ontario greenhouses, automated climate control systems regulate the growing environment. Venting is computer regulated. Diffused glass filters light. Automated shades help to keep heat in when required. Many growers have also installed solar panels for renewable energy.


Hi, everyone. I'm here to talk about Jyulipsi. I've tried to put this together as a sort of call to action for a first-time contributor or a fairly new contributor. But I'm also hoping that maybe it's useful, at least entertaining, to people who are experienced programmers and already know their stuff. Who am I? My name's Arjun. I'm an upstream Jyulipsi contributor. I also co-maintain Jyulipsi in Fedora and Red Hat Enterprise in Linux, which, of course, means that I work at Red Hat. So I'm going to try to, this is the last talk. I want to make this really quick to talk about whatever I have to say and leave some extra time for questions and answers. I hope I make it. It's really my first talk, so I'm not sure how I'll get the timing right. But I'll try my best to leave as much time as I can for questions and for people who want to maybe leave or leave to party. So I'm going to go with an introduction. I talked about seven steps in my title, so I'll quickly jump into the seven steps. And then I'm going to walk through a patch, a Jyulipsi patch, a recent Jyulipsi patch, just to kind of show what kind of goes into writing a patch. And then I'm going to talk about what you could do to contribute to and help with Jyulipsi. And then, of course, questions at the end. And we're off. So I was first introduced to the C language in high school. I knew a little bit about stdio.edge and malloc. And to be honest, it was mostly magical incantations that I wrote in the middle of my program to print and to get input and to allocate some memory. I really believed it was something that's happening within the compiler and kind of didn't really think too much about it. But very soon I realized, string length, for example, is a function that can be written in C. So it's not really magic. There's something going on there. Obviously, eventually, I got into this field and I know a little bit more about all of this. Well, not all, but some of it. It's a pretty wide topic. So I know that a lot of it is actually mostly written in C, mostly written in C. So what is Jyulipsi? It's the standard C library. We have all of those functions and a lot in between. For example, one might think that main is the first thing that starts executing when you start a program.  So there's a lot more to Jyulipsi than just providing the functions. It is the runtime. Okay, so next, we're gonna talk about why it's maybe useful or why you might want to contribute to Jyulipsi. I think the first reason, at least for me, is that it's very high impact. There are millions of installations. It is the C library for the majority of non-Android Linux based operating systems. If you make a change in malloc, for example, that shows up on the critical path, you're looking at trillions of executions of the code that you wrote in a week or something like that. I don't know the exact numbers, but you can think about every time malloc goes through, your code's in there doing something. So that's what actually makes me very happy about being able to work on this stuff. The other thing is we actually have a fairly actively developed piece of software. It's not really like some arcane old thing that's never really updated. We have over 1,000 commits a year, which means we regularly add bugs that need to be removed. My personal experience with the community is that it has been very welcoming to me, very kind. Mistakes are welcome and accepted and understood. We all commit bugs once in a while and help each other out to fix it. It's like any other piece of software really. I think recently is not really accurate, but I think it's been more than a year already. We have weekly public video patch review meetings. So people who have recently submitted a patch can actually show up to that meeting. There's a link somewhere in our wiki. Show up to the meeting and talk about your patch or say that you want review and someone will be assigned to look at it. A lot of the regular attendees are basically regular contributors. I don't show up very often to that meeting, for example, but once in a while I do and try to find or get assigned like maybe a beginner's patch because I do care about this. I do care about, it makes me happy to, it's first of all easy to review a patch by a beginner and it makes me happy to see that we have another person who made a contribution and who might make more contributions, right? It's got this kind of multiplying effect. So we have all of this and we do look out for patches from new contributors and we also have a code of conduct that is a work in progress. So yeah, we do care about being welcoming, be kind to everyone and trying to get as much as possible contributions from people who are willing. Okay, I said seven steps. It was a clickbait, to be honest. I didn't know how many steps it would be. I don't think there's a fixed number of steps but I did shoehorn the seven steps here. You can see them. So you do a git checkout and this is a bit of an idiosyncrasy. You need to be building in a separate directory and you can't really build in the same directory as the source tree. I don't know the reasons for it. Something to do with the build system. I don't know most things about Jylipsy, to be honest. So you're building a separate directory and you need to make sure at configure time that you provide a prefix which is about where it's going to be installed. It's just a couple of idiosyncrasies to building Jylipsy that don't exist in a lot of similarly packaged applications. So let's say that you're trying to fix a bug. A good place to start is by maybe adding a new test that fails without this bug having been fixed. So that's a potential step three. You implement the fix. You do some testing. We recently added a couple of recent is always a bit of a longer time span when it comes. But maybe I think a couple of years ago, maybe slightly more, we added a couple of scripts to help you run a program, not on the systems installed C library, but on the one that you just built. So there's test run for that. And then there's, you know, you need to do a lot of special things to get GDB to pick up the in tree freshly built Jylipsy sources. Sorry, not sources at this point, of course, executable. And then run it with a test program. And so we have a script to help with that as well. And you can use that to kind of check out how your test and your fix is working. And then eventually you delete the build directory, you reconfigure, you run make check, you make sure everything's working fine. And perhaps you submit a patch to libcalpha at sourceware.org. That is our mailing list. We submit patches there. We discuss patches there, right? Is that the end of the talk? Maybe not. So, I will now go into the anatomy of a relatively simple patch. I try to look for something that is on the order of magnitude halfway between a fixing of a typo in a comment to like a entirely new, let's say, feature that changes, you know, dozens of files. Somewhere in the middle of that is this. It's a fairly simple fix that went into gilipsey recently. My colleague Florian, who is an experienced developer and a prolific committer in the gilipsey sorcery, he submitted this a couple of days ago. I reviewed it for him. And it's basically a fix to a function called stir error. And apparently this function must not return null. We'll go into why. So for some reason stir error, the function was returning null in some cases and it's not allowed to do so. And then Florian goes on to explain that we made a recent change where stir error was implemented in terms of another function, stir error underscore L. And that's what caused this sort of regression that needs to be fixed, right? What is stir error and stir error underscore L? So stir error is basically, if you know error number, it takes a number which potentially is the error number and it returns a string corresponding to that number describing what that error might mean. Obviously, if you put zero, you get success. And I did not know this and I really don't know if this was a joke or if it's, I don't know, divine intervention, but stir error 42 returned no message of desired type. I have not read the book, but 42 is apparently an interesting number and I thought it was funny that this is the reply you get when you try to find out what 42 means. So stir error underscore L is a very similar function that returns a string in the current locale, which might have a different language than the one, in a given locale, sorry, not the current locale, the current locale is the one in which the program is running. So the program is running in locale x, you want the error message in locale y for whatever reason, you use this other function. Obviously, you can now see why stir error can be implemented in terms of stir error underscore L. You just pass the current locale and you get it back. So someone made that change, which was definitely an improvement, right? We don't want to duplicate code, but it caused a regression and why was it a regression? Stir error is not allowed to return null, but stir error underscore L actually is allowed to return null for some reason. And the details of that are actually in this little bit in the POSIX documentation for these functions, right? POSIX tells you what these functions are allowed to do in what circumstances. And basically, the POSIX manual says that whether successful or not, stir error must return a pointer to a generated message string. But stir error underscore L does only need to return it upon a successful completion. If it's a fail, it can return null. So the moment we made stir error use stir error underscore L, we started having the same behavior that it was sometimes returning null. That was the bug. So now we're actually looking at the patch that Florian wrote. It was a test and a small change to the code, right? I really want to show that, I think my idea here is to show that a patch is not so complicated here. Like you can see this and see that it's not, I don't know, like arcane magic, right? So the test includes some usual headers. You see a few headers called support slash something. Those are actually part of the GLIFC test rig. When you run the test suite, you can actually use some helper functions to do a lot of things, like implement some checks, do some error checking for functions that you're not testing and so on. So we have some helper functions for it. The patch has a test. This is where the, these are the headers that the patch had. So first, we're going to look at the test itself. So I think I should be using this at this point. Okay, is that visible? Yeah. Okay, so it's a function that tests this stir error and what it does is it sets a variable called fail malloc, which when you turn it through, apparently some malloc is going to fail. Every malloc from here on is gonna fail, right? And then you call stir error with a weird number, which obviously is not a regular like result that you get for an error. And then you get the result for it and then actually you stop causing malloc to fail because you don't want the rest of the test to stop working, right? Only for the call of the stir error, you want malloc to fail because we know that that is the point at which stir error was returning null. It was trying to do an allocation and it would fail and it would just return nothing. So we got malloc to fail, we got a result and then we're actually checking that this result is the same as this string unknown error, which is the default string for any kind of error that you don't really know what it is. So we expect this. So this test compare string is actually from the test rig. Like I said, we have the support directory where you have all of these helpers. It's one of those helpers is this. It just compares strings and it logs an error if they're not equal, right? Oh, I forgot I can use this to change slides. So now we're looking at the test itself. So the test rig actually has this bit where it makes sure a test will not run forever, right? If the test was a main program that never returned, then you'd run make check and it would be stuck running one of these tests forever. So what we do is for tests that we have in G-Lib C, we require you to actually define this function called do test and then write all of your testing inside it and then you just include the rest of the test rig which has a main function and that will actually make sure that these do tests doesn't run for more than a couple of seconds. So that test will return or if the test gets timed out then it actually errors out and we know that this test hangs for some reason. So that's pretty much all of the test. So Florian did include another test first error underscore L but that's not important. I just wanna talk about the one piece. So that's what I bolded here, right? And now we move on to really the end of the test itself which is the malloc, which we said that there could be a malloc that fails and this is the malloc that was in the patch. So it's a malloc which will obviously take precedence over the malloc in the C library. If you define this function in your test, it's gonna get picked up before the G-Lib C's malloc gets picked and what it does is if this fail malloc is true, it returns a null, which means it won't allocate otherwise what it does is it goes into the G-Lib C dot SO and it picks out the actual malloc and it asks it to do an allocation, right? Because we don't want to re-implement the whole malloc, we just use the one that actually works. Okay, we finished writing the test. How do you add a test to the G-Lib C source string? This is a string-based test. Stir error is a string function and so we have a directory for that. You just go to the make file and there's gonna be this little line called test and then you just add the name of the test here without the dot C. It's literally just that. You write this function, you don't write it as main, you write it as do underscore test and then you add it here to the make file and you have already a test that will start to fail. Right, without the fix. So now, and I really hope this is visible because it was really, really hard for me to split this among multiple slides. So now we're looking at the fix itself, right? I'll quickly go through this. So we have stir error underscore L. Like I said before, we implemented stir error in terms of this function, right? So this is the function where the problem lies now. I know it's allowed to return null, but there's nothing wrong if it stops returning null also, right? We can do better than what the standard requires. So we'll now make both of these functions not return null in any case. So we have this error number that we get. Ignore that bit, it's not about Erno. Erno is something else. Let's not think about that right now. So we have this error number from the user and we wish we need to convert to a string. We go to the error list. Really, let's not care about the details. We go to the list and we get the number and we get a string corresponding to it. And if we don't get a string for that number, then we know that it's an unknown error. We don't know what this error is. If we knew what it was, we'd have it in that list from the get error list, right? So we're in this piece where we don't know what it is. If we know what it is, then we just translate it to the locale that is requested and then we just return it, right? So this is what the code looked like before. Here on the right side, this is what the code looks like after the fix. Everything else is the same. It's just that this bit where we don't know the error, it got fixed and so what got fixed there? What got fixed is we were trying when we know that there's an error number, let's say 999, right? That's what we had in the test. We're trying to return something like unknown error, space 999, right? We're trying to create like on the fly a string with the number also so that eventually when it shows up in the application somewhere, that number is not completely lost. That number is still there. We're trying for it. So what we were trying to do was we're trying to do an AS printf which basically it allocates memory and it prints into the memory whatever you want. It's basically like printf, but it'll create its own buffer and it'll print into a string, right? So we call AS printf and whenever AS printf return minus one because it couldn't allocate memory, we were returning null, okay? And what we do now is okay, so we tried to return unknown error 999 and AS printf failed. So okay, Florian changes a bit. We were looking for a minus one for failure. Now we are looking for greater than zero for success. Why is that? Because AS printf returns a number of bytes that were written. So if it wrote a few bytes, we know that it succeeded. If it wrote zero bytes, we actually know that something went a bit odd there, right? It didn't write anything. And if it returns minus one or any negative number, then of course that's also an error condition. So that kind of got reversed, right? Now we had the error condition first and then we had the success case. So we changed this around a bit. So if we succeed, we set the return string to the one that we got from the printf. But if we fail, what we do here is we'll turn simply unknown error without the number, right? Which is a static string. We don't need to allocate anything for it. It's just unknown error. It was part of the binary anyway. It's just gonna get returned. So that's the fix, right? That's the fix. And now we look at this and we're sure that we're never gonna be returning null. Okay. I do wanna pause here and ask if this is completely gibberish or it kind of made sense? Kind of made sense. Does it, are there any sort of, let's say, see beginners here who see this and feel like, okay, that's not too hard. It's not arcane magic or maybe? Okay. I think that's what I was hoping for. I was just hoping to show that, a glibc patch is not all that, right? It's not all that. So that's the fix. And that is actually the entirety of the patch. I know I kind of formatted it and showed it in a slightly different way. That was Florian's patch, which fixed this bug. And that's actually what I really wanted to make a point about. Now I wanna talk about what you could do to contribute to glibc as a, well, even if you're super experienced in something else or also super experienced in glibc, but you're bored of doing something that you usually do, there are a lot of things that require relatively less knowledge of the internals where you could make a difference. So the first one is that you could write new tests and you could improve old ones. For example, we have the, so Fedora, I'm also a Fedora contributor. So we have the Fedora glibc package and then we have some CI behind it which runs a lot of tests. Some of those tests actually I wrote a few years back and didn't upstream them for whatever reason don't hate me. So we run the CI and which a lot of those tests are not really upstream. The reason for that is that some of them require setup or altering the system's kind of configuration in some way and those are not the sort of tests you want to include in a test suite for application where you're messing with the user system. You probably won't even, it'll fail because it'll try to modify nsc with switch.conf and it can't, right? But since then we actually have containerized tests in glibc. So I'm gonna go back here. So instead of adding an entry to this tests line, you add it to a different line called tests-container which you can write a containerized test, you can make a little directory containing all the files that you want inside the container and you can actually write a test that does a bit of setup or has a bit of setup that modifies the system but it won't modify the system, it'll run inside a container. So you could do some tests like that. You could look at the CI test for Fedora and then upstream them as containerized tests, for example, right? You could write documentation. I'll come to that, I'll come to that. Actually I just attended a talk earlier today where it was about beginners feeling like how it feels to be a beginner in the open source community and actually the speaker there said that we should have good documentation. So I feel bad about that. That I'm saying right documentation is a beginner task but okay, for people who are a bit into GDB, there's this whole thing called pretty printers. I think it's a, I don't know much about it but I think it's like a Python thing where you can write pretty printers and we have lots of like these opaque Glypsy data structures, maybe bits of the Glypsy heap, maybe there's a way to like walk through the heap, maybe some other opaque types like a lock is a lock locked because if you try to see like a P thread mutex type and see what its values are, like it doesn't say well it's locked enough, it's gonna have some numbers behind it. So you could write a pretty printer that actually just prints like okay, this lock is currently locked or not. Occasionally when you're just like reading code, sometimes you'll notice like it's changed a bit. So the comment is a lie and nobody caught it at review time. You know, it feels like, it often feels like it's not a value but honestly it is, right? It is of value. There is value in fixing that. Obviously it's not so glamorous but it helps. We also have a bug tracker where you could you know, sort by new and maybe like confirm that this bug actually happens for you or you know, try these bugs, see why they happen. All sorts of stuff. Some more relatively more specific ideas. So you could optimize the integer to string conversion in printf. You could rewrite the base 64 decoding encoding. We also don't have info pages for DL open and a lot of pthread functions and some DL open and related functions. You could write those explaining the details of how the G-Lib C implementation handles these things. And we have this mtrace, which is currently a pulse grid but you could convert that to C. So these are like concrete things. Just mentioning like which we could use help with. We also have arc and pulse scripts that we picked up at various points of time. And we could kind of standardize on Python and kind of reduce the, no hate for these. Just reducing the number of things that we need to build G-Lib C. Yeah, so a lot of things to do. I promise to leave a lot of time for questions and I see it's only five minutes. I'm sorry about that. But I hope some of you will stay and keep asking. I'm here to answer anything that I can. Final kind of links. We have a wiki, it's very out of date to be honest but it's still useful. We have the bug tracker and we have the development meeting list. And then this one is, I would say really nice, a Lib C help for people who don't want to, like don't feel so comfortable like posting a patch like from get go but need help with something. Like maybe you want to ask what you could work on. Maybe you want to talk about something you're trying to work through but you're having trouble. So like everything Lib C related is sort of on topic here. You could write there and ask questions. You could also, hey, like just sort of kind of sort of a beginner here myself to be honest. It takes years working on this stuff and still feeling like you don't know much but you could write to me and if I don't answer you I'll point you to someone who can answer you. So now questions. So I'm just gonna repeat the question which is that for a lot of application level stuff there's like a more modern, I guess, repository and like a contributing.md, possibly on GitHub, and Jellipsy doesn't have that and also a lot of people take it for granted that it's probably works good enough. I guess that's what you want to say. And so how do we hope to have more contributors? To be honest, this is a question I do not have an answer to.  It is well established. The truth is that there is, as I said, over 1,000 comments a year, I actually checked. Maybe not every release is 500 plus comments but the average is like over 1,000. So it's happening. I think a lot of the contributors do tend to be full-time employees of software companies in this field. That is quite true. It's a hard problem really, I must say. It is a hard problem too. I know it's just not as, like it's also not as glamorous as the kernel. Right? I don't know the solution to this. I don't know the solution to this. But you're right, I think it is sort of harder to get contributors into this than to some other stuff. So I guess that's my answer. Sounds good to me? Okay, so too. You can go first. Yes, so there are a lot of things you could do. First of all, if you found the bug, obviously you could file a bug report while you're working on the patch. File a bug report, assign it to yourself. You don't have to, but it's good to do that. But literally sending to this mailing list is all you need to do. You could be a drive-by contributor who does a patch that sort of fixes it, but has some issues.  And we might still actually work on it and write ourselves down as a co-author and finish the patch. I've seen that happen at least once fairly recently. Somebody fixed a bug in some, one of the G-Lib C utilities that ships some executable. I don't know which it was. And I think someone kind of fixed up the patch a bit and then committed it on their behalf. So that's it. It's a bit old fashioned, I will admit. So I use git send email. I also remember that my company actually changed the way like our email provider. And there was like a few months in between where I was nervous that am I gonna be able to send patches the same way as I could? And I was like using my private email address to send patches. But it's git send email works for me even now and that's the one I use. But you could attach it to an email and just send it here and it should be fine. We don't have full requests. So, sorry. Aha, okay, good question. I will come to you. So, good question. So, license agreement. I guess you mean copyright assignment. Yes, so you may assign copyright to the Free Software Foundation if you wish to. But it is not required anymore. You could do a developer certificate of origin. You don't need to assign copyright. So that requirement is gone. Yeah, it is fairly new, yes. I have the same. So, the question is are there any free tools to kind of help understand all of the function calls that happen there which are like, you don't know what's going on there. The answer to that is I actually don't. I have the same problem myself. I try to avoid looking at a lot of context and just trying to look at this particular patch, look at this particular bit of code. Okay, I'm out of time. I can continue answering questions but we will do it off this platform.


It is one of the most common, yet also one of the most perplexing, sleep disorders that exist. Insomnia. At any given time, it can affect around 10% of the world's population, causing countless hours of lost sleep and wakeful anguish. But why does it happen? And how does one overcome it? Stay tuned to find out. Naturally, we fall asleep at night. It is how the human body reacts to exhaustion, and a part of the innate biological rhythm that our species has maintained for thousands of years. Yet, nearly 30 million Americans suffer from at least a mild form of insomnia that causes them to have difficulty falling asleep when they want to, and which subsequently leads to the suffering of fatigue and drowsiness during the daytime. And during their nights, sufferers of insomnia experience a whole other set of troubles and pains which add to their woes. Time is there right now. Quite often, during the late hours of the night, an insomniac's mind will race with activity.  Better get some sleep. Too quiet here, I can hear myself breathe. Why do I feel like I'm forgetting something? And inconveniently enough, many of their thoughts will be the ones that induce the most anxiety, depression, and stress, making it quite a challenge for the individual to find any relaxation right before bed.  There may be a variety of different reasons which cause these thoughts to become so prominent at night, but once they begin, they become very difficult for insomniacs to suppress. And to make matters worse, some sufferers will also experience irritability, discomfort, or even pain after lying awake in bed for a while. Many who experience persistent insomnia crave for regular sleep schedules, and the ability to fall asleep comfortably and to wake up refreshed. But falling into such routines without relying on sleeping pills or other drugs can be a tenacious problem that each individual must find their own unique solution to. For instance, distractions such as television books or computers will potentially stimulate the mind and keep the individual awake for much longer than they desire. Or conversely, they could actually distract the mind for just long enough from all the thoughts that are keeping the individual awake. It really depends on the person. The most important thing is to figure out what works for you. And the best way to do that is to experiment.  For some, getting out of bed to do something relaxing, such as drinking a warm beverage or reading a book, can be more helpful than simply lying awake in bed. For others, listening to music or watching a familiar TV show can do the trick. It also helps to be mindful of what environmental conditions are preparable and conducive to you falling asleep, such as the amount of light in the room, how noisy it is during sleep hours, and the room's temperature. And it really helps to move all clocks out of plain view as this effectively alleviates the anxiety associated with watching the night hours tick away. The activities that you engage in before bedtime could also have an effect on how quickly you'll be able to fall asleep. Some general things to avoid are late-night heavy meals, vigorous exercise, and work-related tasks that might cause stress. Suffice it to say, big discussions or arguments should also be important right before bedtime. And all of these stress-inducing activities should be replaced by more soothing lights and low-letting conditions and violence. This will generally prime the mind and the body for sleep long before it is time to actually fall asleep. And as for screens such as television, smart phones, and tablets, while research has shown that the light emitted from these screens tends to suppress the body's production of melatonin, and that can severely disrupt sleep patterns. But if you find that watching something helps, then it might be a good idea to stick with what works and perhaps just set things so that these screens are turned off afterwards. So that's it for part two of our 12-part series on Disturbing Sleep Disorders. Insomnia is a widespread condition with different solutions for different people. So to continue the conversation, please feel free to comment below with your own experiences on the subject. And don't forget to like and subscribe. Until next time, good night and sleep tight.