For the safety of your smile use pepsidon twice a day see your dentist twice a year Lever Brothers Company presents the pepsidon show my friend Irma created by Cy Howard and starring Marie Wilson as Irma with Joan Banks as Jane Friendship, friendship, just a perfect friendship, when other friendships have been forgotten, there's will still be hot Application for life insurance under name I wrote Jane Stacey under description I wrote Brunette 5 feet 3 brown eyes under sex I wrote female My roommate Irma Peterson filled out the same application under name. She wrote Irma Peterson Description blonde 5 foot 3 blue eyes and under sex. She wrote none of your business Not at all This is comparatively mild for the adorable little blonde I share quarters with for example I happen to remark the other night that there's a new car coming out with the motor in the rear and Irma said in the rear. Oh, that's going to be so confusing. What do you mean? Well, supposing something goes wrong with the car you left up the hood. There's nothing there Four-way cold tablets and three-way stomach pills, but they haven't found a one-way aspirin that will counteract Irma's remarks So generally I ignore them and pick up the newspapers and just read Jane. What sweetie? What's new in the paper? Oh, nothing much. Oh, oh look, isn't that Mrs. Ryan manager's picture on the society page? Where? Right there Oh, yeah, so it is Let's see the annual masquerade ball to raise funds for the orphan children Will be held tomorrow night at the Long Island estate of Mrs. Richard Rhinelander the second This marks the first time that Mrs. Rhinelander will supervise the affair What is it sweetie? Did you know about this wonderful affair? Why you've? Yes, and of course you're going. Yes, Richard's invited me. Why? Oh Nothing. I'll find something to do. What's that? Nothing nothing at all if you sit home with a deck of cards and play some solitude that's solitaire Look, honey, I'm not going to have you stand there pouting you must realize the tickets cost $100 apiece $100 It's nothing. Well, I could even get my al to take me if I had $200 It's only me professor Kravatsky Janie and Irma my two little sailboats One trim the other lost in a fog Why professor excuse me girls a little joke. I picked up on the pier What do you think there's a burglar upstairs in my closet for goodness sakes, why don't you call the police? No, I was thinking of calling a psychiatrist Anyone who could come into that room of mine and expect to find anything must be out of his mind Oh professor you're always exaggerating your room is not bad. Oh, it isn't Well Halloween will soon be here and you know how most people put a pumpkin in the window and turn out the lights to scare the children Yes, I don't have to turn out the lights. I just turned them on Oh But what's the use? Am I am I just noticed? Why are you standing there looking so sad? Oh Richard's mother's giving a wonderful charity ball and Jane won't take me now for goodness sakes Irma Stop making her heavy out of me. I have nothing to say about the invitations But you have influence with Richard when a girl goes with a fellow she can get him to do anything She wants him to always that's so yes, I have al eating out of my hand That's only because it's for nothing Please girls don't argue Irma resign yourself. We are not invited. So we are not invited Although personally I would love to help make that a fairer success because it's for charity little orphans Bless them the little poppies of humanity Hello, oh Yes, I'll just a minute. I'll get her ermates for you an employment office They want you to take a job. This is a free country come over here, honey, and we'll talk about it. Good. Bye Oh that I'll you've got the handle to him. You've got the handle to him because he won't work for it Right Jamie Jamie Jamie oh, I'm sorry professor. I was lost in my thoughts about what costume I should wear to the ball come in Hello girls. Oh, hello, Mrs. O'Reilly. Well, look at your hair. Yes, I'm wearing the new short bob How does it look for a minute? I thought your head got caught in the electric fan Chop with you Janey darling, do you like it? Oh, I love it. It looks so neat and so clean. Yes I always felt my face was covered up too much That is a matter of opinion Yeah Erma darling, how do you like my hair? Erma is something wrong. Oh Jane's going to Mrs. Rhinelanders charity ball and I'll be all alone Erma, we've been all through that. Oh Janey how I envy you Mrs. Rhinelanders such a lovely woman and I know it must be a worthy cause Oh, it is and the ball is being held in the Rhinelander estate in Long Island Yeah, I just started shaking when I think of walking into that mansion Imagine 68 rooms and 40 baths 40 baths. Oh, now I know why they call them the filthy rich Janey darling, you're so lucky. I remember my first masquerade ball I was a girl in Ireland and at midnight I met a handsome young man He took off my slipper and started pouring champagne into it. He'd held two quarts The bottle that is and he insisted on drinking a toast to me beauty Pretty soon we were both a little shall I say If you feel it say it And just as he was telling me how beautiful I was some wise Ali came along and gave him a bromo seltzer It's sobered him up and I never saw him again My how the years fly Yes, and it's too bad while they were flying. They had to drag you along the ground What's the convention talking about mrs. Rhinelanders charity masquerade tomorrow night Oh, yeah, I saw the old gals picture in the newspaper great day in that mrs. Rhinelander Well, we could go to the ball if we had a hundred dollars Chicken nothing would give me greater pleasure than to help them kids May be able to do so if my new deal comes through Another deal Al what is it this time stretching the ears of cats and selling them for rabbits Oh, this one is money in the bank.  I uh, oh company. Yes, Richard. You know everybody. Yes, indeed rich We all want to tell you how proud we are of the work your mother is doing there for the offer Thank you.  Oh, so do I When al and I get married we're going to have lots of children You know, they say children are man's wealth and i'm going to make al a millionaire That's enough for him Richard has everything said for tomorrow. Yes. Yes, but mother's a little worried Why? Well, aside from the fact that the money is desperately needed mother wants terribly much to put this affair over You see last year mrs. Van clive was in charge of the ball and she raised $50,000 Well, naturally mother would like to get more because it all goes to charity and besides she can't tolerate mrs. Van clive You see she's been bragging all over town that mother can never hope to equal her record and mother's determined to do it Wish one of my deals had come through Could pitch in al by the time your deals come through those orphans will be old enough to take care of themselves and their grandchildren Well, Richard, i'm sure your mother's party will make more money than mrs.  I don't want to fisk out on the boys I would like to be there too Richard and believe me.   Rhinelander, but Well, you see I hold it everybody Jane didn't you didn't you give them their tickets tickets Richard? You didn't give me any tickets. Oh, what's the matter with me? I've been carrying this envelope for days Here's a ticket for each of you. Let me see rich Admission one hundred dollars Which stamp pay that's right. I think you can make it now l Well, it is the fiscal year But by an odd coincidence. It's also leap year So I think i'm in a position to leap the fiscal and come to the masquerade How about you professor? Why don't you escort mrs. O'Reilly? Well, I might do it since it's for charity She's going to be disguised anyway And here's your ticket urma. Oh, let al hold it. He always likes to treat me Oh richard, this is so sweet of you forget it. Well, think I'll be getting back to mother I want to see how close she is to that fifty thousand dollars gold. Well, wait a minute richard I'll walk with you I've got to see about getting a costume and you kids better get busy too Oh, we'll think of something so long everybody see you tomorrow night How do you like that guy shelling out four hundred dollars so we can have a good time at his mother's party Oh, I hope for her sake. It's a big success Yes, richard's worried about whether his mother can raise fifty thousand dollars must be a way we can make certain she does What do you mean must be away? Well, there are many ways of raising money Now for instance years ago, there was a little boy used to wake up his aunt by bringing a mouse in her room His aunt had screamed and give him a quarter to take it away He did this every day and years later This was to become known in financial circles as getting the ante up Look al let us not meddle in this thing. Yes, let's not ruin the affair Okay, and speaking of ruins. I think I'll go back to that wreckage.  I better get started on mid-cost to right away All right, mrs. O'Reilly and remember when you're finished if I recognize you I don't take you I don't have much time to get a costume. What shall we wear? Oh, I don't know. We're thinking I might go as Robert E. Lee Nothing doing al I don't want to spend the whole evening dancing with a steamboat Your winning smile is a pepsidon smile Again and again people have found it true The smile that wins is the pepsidon smile gene chadwick of east orange new jersey will tell you that her smile has made her doubly successful as a singer and as an actress When just starting her stage career gene decided her talents and her lovely smile would be used to best advantage If she both sang and acted her operatic selections The idea paid off for that smile and gene's artistry charmed audiences everywhere Radio appearances followed and her own series of television broadcasts, too No wonder gene told us a pepsidon smile helps any career. I'll always use pepsidon toothpaste Like gene chadwick people all over america agree the smile that wins is the pepsidon smile In recent comparison tests thousands of people preferred pepsidon with iriam over the brands they'd been using at home Yes pepsidon one by the overwhelming average of three to one For its cool minty taste for making breath cleaner and teeth brighter Try new pepsidon toothpaste with iriam and you will see the smile that wins is the pepsidon smile Must do one and I think it's rather effective. I am going as marie antoinette Irma couldn't understand why I spent so much time fixing my hair since I was going to have my head cut off anyway And What I went through before al and irma decided what costume to wear you will never know First there was al who said gene. You know think I'll go as jesse james. Nothing doing al. You've got to wear a costume Right and then there was irma who kept saying gee. I don't know what to wear So I said irma. Why didn't you wear that green costume you wore last year? You know when you went as a tree And irma said no someone's life will come as george washington chopped me down As all my patients could take so I said irma you'll just have to make your own decisions and irma said Oh, I know what I'll wear that kitty outfit that I wore in halloween last year, huh? So the kitty costume was agreed upon and I must say irma looks adorable with her two blonde braids Titan pink ribbons if it wasn't for her figure she could pass for six Yes, a little schoolgirl to perfection and I'm sure with those legs. None of the boys would ever play hooky As for al Al has found the most ingenious disguise.  So his tattoo will show and he's coming as a television set To remember al yeah, jane now It was very nice of richard to buy these tickets for us and all of us must be on our very best behavior Now, there'll be a number of rich people there and I'd appreciate it very much if you would not try to sell them any of your real estate lots Why not? Well, you see most of them have their yachts floating right over your property Well, what about oil well, no al why is it everything you deal and either has water over it or under it? Look jane, don't worry. This is for the office and I give you my word. You'll be proud of me Oh, that's good enough for me. Come in Hello gang say jane. You look terrific. Oh, thanks richard and erm Well, you're so cute.  No jane It looks pretty bad. What were the flu and the weather will be lucky to reach 40,000 and mother feels so badly about it I suppose that mrs. Van clive will never stop gloating. Well, you know, she's like that in mother's words. Mrs. Van clive is an old Watch your language little girl here Sorry little girl well richard isn't there any way we could raise more money at the party who once we charge a hundred dollars admission I don't know what else we can do. Maybe we'll think of something at the house Where's the rest of the gang? Oh, the professor misses. All right.  We'll meet you. I'd like that mother's so depressed I'd like to be with her. Come on jane. Okay. See you later kid What do you look so sad al burns me up chicken For an affair to help orphans. They can't get up enough dough And on top of that a swell gal like mrs. Ryan and is going to be ridiculed by that van clive day Well, what can we do about it got to see that the dough is raised and there's only one man who can help us Yeah, who else but hello joe Oh Got a problem gonna mingle with the rich tonight. How do I get money from them? What? No, joe. It's got to be with their permission Yeah, this this is for charity orphans Well, you don't say joe.  Well, what happened to your parents? Oh an accident They died while listening to chamber music Oh gas chamber music Well, joe, then you know what it means to help these kids. Yeah, how do I get them to shell out? Uh-huh Uh-huh Great idea joe. Thanks a million.   Thank you. Do you think I can pass for six sure just be yourself Oh How do you like my costume al? Well, what are you supposed to be can't you guess? I know a rag picker Oh, yeah, that's right. Professor wait.  Well, yesterday. Mrs. O'Reilly gave me new drapes for my window. Oh I see you're wearing the old drapes. No, I'll the new All right, oh don't mention us. He's furious Come here, mr. Riley everybody. Hey, mr. O'Reilly.   Well, and as for you, professor Take it easy. Mrs. O'Reilly. What's wrong? He insulted me. That's what he did. What do you say? I didn't say anything Oh, no, I spend hours getting this witch's costume on and then when he sees me He says it's getting late. Why don't you put on a costume? No time for personal grudges Mrs. Rhineland is in trouble and we got to come to the rescue. She hasn't raised enough money Oh 10 g shorter what mrs. Van Clive did last year. Oh glory being all those poor orphans in such need What can we do to help al? Got just the idea that we'll put this party across Where do you find the biggest crowds spending money at corny island? Right now? Here's what we do Mrs. Rhineland charming ball. Thank you, mrs. Van Clive. Are you having fun? Yes Wonderful idea of yours to have this intimate gathering instead of that tremendous turnout I had at my charity ball last year Really? Yes Of course, you won't make nearly enough to take care of the poor little children But perhaps next year the committee will realize their mistake and put me in charge of the ball again You're so nice Well I'll try to amuse myself Where could I get a Manhattan? I'm so thirsty right over there at the bar and you won't need any bitters in your Manhattan Just smile at it Clever mrs. Rhineland Well, you'll probably think of something amusing to tell the kitties When they're told they have to sleep eight in a bed because you couldn't raise the money Toodaloo Hello, mother. Oh Richard and Jane you look lovely dear. Thank you. What's the matter mother? You're shaking No, I've just had a word with mrs.  Maybe I shouldn't have undertaken the responsibility of the ball Well, mother you did your best Jane. Do you mind if I have this dance with my mother? I think it would be wonderful, Richard Come on mother.  Van Clive. This should be a nice waltz coming up Oh, I'd give anything to put this party across Hey The program says a waltz, but they're playing a conga. They're forming a conga line. They're all following the leader the leader That's al Is he taking oh my goodness. He's breaking up my policy. This is Ryan lander. I don't know how to apologize Oh, he's taking them all into the library. What's he up to?  O'Reilly have turned the library into a miniature midway Al is working the shell game. Now. I know the man I know the man who's trying to guess under what shell appears Last year this man was in whose who? 10 more minutes with al in the shell game and this man will be listed in the 50 neediest cases Al is speaking that will be 10 more you have lost to me friend And I saw to resent your remark that this seems like a dishonest game Let's try something else take a cut there. That's fine. Let me see. Oh king Now only an ace can beat that I shall draw How do you like that? It's an ace I just can't understand it. I I never seem to win. Oh al yeah chicken. You better sweep up a lot of aces are falling out of your coat All the chicken mr. This young lady is just joking. She she knows I run an honest game, don't I? Miss well al I thought you were just going to be the barber here the barber Yes, he told me he's gonna clip everyone who came here Come on chicken The gentleman may misunderstand and I want to give this dough to mrs. Rainland Can't talk now. I'm like here comes a lot of customer Uh, pardon me. Do you tell fortune? Certainly your name, madam. Mrs. Van Clive Aha, I see Let me see your palm, please Oh, I see a sparkling future happiness. Yeah, you laughed And then you get hit by a truck You are swinging between life and death only one doctor can save you What's his name a professional secret cost you 50 dollars to find out Well, here's the 50 dollars. What's his name? Who do you go to now? Dr. Jones is a good man. Keep going to him next That's not enough over in the right hand corner are two booze One is marked lemonade one dollar the other kisses five dollars a piece But they're not doing any business. Oh, no wonder al has made a mistake He's got ermah selling lemonade and mrs. O'reilly selling kisses Well, I'm getting out of here so fast the super chief will look like it's backing up Jane, Jane, Jane, where are you going? Richard?  They insist mother hold the ball next year You mean that richard sure jane. Come on. Let's congratulate al. Oh, well, yeah Hal on behalf of my mother.  Oh al al Things still bothers me ermah What were you doing in the lemonade booth? Weren't you supposed to sell kisses? Yes, but al's had to get over there in that booth and pucker up and lemons make me pucker What can I say except that there's never been a sweeter kid than my friend ermah Your winning smile is a pepsidon smile again and again people have found the smile that wins is the pepsidon smile That's borne out by the vote of thousands who tried new pepsidon toothpaste with erium in a recent nationwide test These people were given plain unlabeled tubes of pepsidon and were asked to compare it with the brands They were using at home when their votes came in pepsidon one by the overwhelming average of three to one These people say new pepsidon tastes better Makes their breath cleaner and their teeth brighter than any other toothpaste they tried Remember, that's not just our opinion. That's what people say They say it three to one They've seen pepsidon with erium remove the film that makes teeth look dull Uncover new brightness in their smiles Try it and you will see the smile that wins is the pepsidon smile And directed by sigh howard park levy writes the script with stanley adams and roland mclean And it's brought to you by pepsidon toothpaste with erium another fine product of lever brother's company mary wilson is starred as ermah with jones banks as jane The part of al was played by john brown Hans konried was heard as professor krapotkin and gloria gordon as mrs. O'reilly music was under the direction of blood gluskin The community chest campaign is your opportunity to make one contribution to all your local agencies for health welfare and recreation Nearly half the families in your community will benefit through red feather aid Support the community chest everybody benefits everybody gives This is wendell niles reminding you to tune in one hour earlier next week and listen to the lux radio theater Followed by the pepsidon show my friend ermah This is cbs the columbia broadcasting system


Hello. Hello. Hello. All right. One thirty. A lively room. I guess nobody wants to learn anything. They just want to try programming. Okay. I'll assume everyone's online. That's where everyone is. Let's make sure we're running on the good stuff. Look at that. Yep. Stream good. Okay. Cool. All right. How many are done with assignment? Pretty good. Not bad. Cool. Okay. So let's get to the final piece of the puzzle and to give an example of one of the things that we have that we want to deal with. So we did all the way back on Monday. So let's run S trace. We can see it. Okay. So on Wednesday we were programming a similar style of server that was doing a different style of protocol. If we check that out it did something like the client would say give me underscore file underscore and we would say here you go underscore content. So let's see. And we were on, if I remember correctly, we were listening on port 8080 on IPv6. So I have on the left the server from S tracing the server so I can run this myself to see all the sys calls. And then on the right I am netcadding to 127001 port 8080. And that did nothing. The dash V. So I'm going to connect it. Connection refused. Oh, I thought we fixed this. Oh, I see what's happening. Look at this. This is not 8080. This is just 80. It's because this was me experimenting with old code. So if I get that handy-vandy line to compile, assemble, we would valid suffix for GE 55, go to line 55. Okay. Jump if equal found underscore. Did we leave this in a bad state? I thought this was working at the end. Was it not? It was. I think he didn't save here. I promise. Because I think you fixed the GE at the end of last week. Maybe. Okay. Well. Okay. Comparing with 5F, 5F was 0x5F is equal to the underscore character. GE. Thank you. Now let's run the server. There we go. IPv6. So now we're actually executing the correct version. Let's connect reading. And I'll need to remember gimme underscore file. I said gimme underscore slash flag was a client. Okay. Let's copy this. We don't want to do that again. All right. And so we already did so far. So we read that in from the socket on the other side. Oh, that's right. We just did a, um, we found the bite that was after the flag. That's right. And we were echoing that back. Okay. So we left this in a broken state. So we found our underscore. Now what do we want to do? Cause we want to eventually pass that to open to call open. So what was our point in trying to find where this underscore is? So we have this input from the client, gimme underscore and then a file. So the point of finding the first underscore was the start of this file. So one bite, one address after that should be the start of the file. So let's see. I think R13 is here. So if I increment R13 again, we should have for certain the start of the thing. And now I just want to open that. Can you all read this in the back? You're going to be bigger. I'll make it bigger. You're nodding your head like, yes, you can see, but I always find that it's better. Okay. We want to call open, which is R, uh, move into RAX2. Uh, we need to pass the file name, uh, into RDI. So that's R13 is the file name and RSI are the flags. Uh, let's see. I was just doing this the other day. Okay. I believe zero. We'll find this in a second, but, uh, I lost my thread. Okay. RDI, RSI, uh, we'll move zero into there. I believe that's a read check based on. Okay. Uh, an assist call. So let's see if that opens it up. Okay. Compiled it correctly. Let's connect. Okay. So let's check. So it read that request in now it's saying open slash flag underscore client underscore one slash N. Okay. Over it only was correct. So why is it saying that no such file or directory exists? I go here. There should be a slash flag. Yeah. That file does exist. Right. So I'm reading that error. Cause I'm reading a different file. Right. I'm reading a file that actually has a new line character in it. Right. And that's because the operating system and C programs in C strings, how does you know when you've reached the end of the file? So if you're writing a string length character, how do you know when you reach? Sorry. Not the end of the file. How do you know when you've reached the end of a string? The null terminator specifically a null bite. And there is no null bite here. It, well, it must exist actually after this slash N, but. It's continuing reading here. So what do we actually want? The operating system, what file to open slash flag, which means we want to change this underscore here to what? A zero and null bite. And if we do that, then our, our operating system will say, oh, open slash FLAG null bite. Great. So we want to open the file called slash flag. And we already wrote code to find the start of an underscore. If I was, you know, really doing some software development stuff, I'd probably move this into a function and figure out how to call it. But let's say I'm kind of lazy. I don't want to do that. Maybe you can relate. So, okay. So let's call this be, this is find first underscore and oh, yeah. So find first underscore. So that's the start actually. So I did a lot of work to find this first underscore to find the start of the file. Did I need to do that? What's another way I could have found the start of the file? Forward slash. What was that? Forward slash. I could look for a forward slash, although I guess we'd have to look at the spec that we came up with last week and it doesn't say anything about there necessarily being a forward slash. But what does the spec that we have here say? How many characters is it from the start of the request to the start of the file? Six. Is that ever going to change? No, because this is the protocol, right? Any valid request. Now you have to think, okay, do I want to make a very robust system that can handle any kind of weirdness and then I can detect if there's an underscore or not or whatever. But I can just cheat a little bit. I don't know if I want to tell you this, but it's fine. So yeah, if we just add six to the start there, that puts us directly at the start of the file. So this was in R13. So if I add to R13.6, let's see. And the comment I'd want to say is so 0123456. So this should now point to the start of the file. And I'm going to comment this out. I'm just going to delete it. Okay. And this should do the same thing. So it still didn't work, but it did. We did properly increment to here so that now get that back. So now R13 points to the start of the R13 points to start of file. And now we want to find out where the last underscore is. I need another register. Somebody give me a register. That's not RCX because that didn't work. RSI. We use RSI in these calls. Let's see. I have the calling convention. Oh, I had the calling convention. Was it R9? Okay. R9 will point to end of. So I'm going to change these R13s to R9. Why am I not using R13 here? And we need it later. We're going to pass that to open to open from there. So we need that pointer to the start. We're going to do is go to the end and replace that underscore with a zero. Okay. So now if everything is good, R9 should point to the second underscore. See this is why comments are bad because I just moved this code around and then this comment. Okay. Second underscore and null out second underscore. So how do I know out that bite? So I want to write into memory. So I'm going to move what zero where into what? Louder. The address of R9. The address of R9. Yeah. So I want, how do I do that? What does this mean? Replace everything in the R9 register with zero. Is that what we want to have happen? No. What do we want to have happen? Oh, let's get there next. But how do we write to memory? Yeah. Brackets around R9 to say that we want there. And then they answer that question. If you're the assembler, how many bytes of zero do I want to write out here? Do I want to write out one, two, four, or eight? Huh? Yeah. Well, no, nibbles too small. Actually. Yeah. We want to write one bite. Right. By telling, and there's no way for it to tell here about how big because we're using the constant zero. So we need to tell the assembler. We want to write out a bite of zero to where R9 points to. So wherever that memory region is, which we've moved that pointer forward until we got to the last underscore. And then we're going to overwrite that with zero. And now this open file should open up the file that we want. Is that correct? Ever on board? Yeah. All right. Assembled and built. I'm going to add this in here. Oh, why is that? Ah, segmentation fault. What'd you all do? Okay. Looking through this. Accept, read, seg fault. Oh, no. So what do I do here? Just, uh... S trace. I did S trace. Oh, this is already still in use. This is in use. This is detached. Okay. I'm very confident that this shouldn't work. Let's see. So connected. All right. Segmentation fault. Excellent. So now we just give up. Yes. Change to IP. We weren't having that problem before. So I think that should be fine because we were... Everything there was fine. So what we're going to do first is look at the code. Try to understand. So I think I see. So let's figure out the file. We use R13 for the start of the file. Move the offset above into R13. Move 6 into R13, or add 6 to R13 to increment it. Okay. Where did I set R9? R9 should point to the start of our file string first. Where did I set R9? Not at all. So whatever's in R9 is what in there. So it just started looking for memory through an underscore. Probably there was a zero in R9 as my guess, and that's why we had a psych fault. So I'm going to first initialize R9 with R13's value. So close. Okay. What happened here? Say it louder. Yeah, we did... If I remember correctly, let's go back here. Yeah, we found out where the underscore was, and then we added one more to it at the end to get to the character after the underscore. Because that's what we wanted to do to get to the start of this string. But we don't want to do that anymore. Cleaning up correctly. That's where I should be. Okay. If this worked correctly, okay. So were we correct in what file we're trying to open right now? Yeah. What is the return value of open though? Negative one. Is that what we want? No. Why is it negative one? Yeah, if we look at the permissions on flag, only root can read flag, that makes sense because think about if you were doing all those levels and the whole time you could just read the flag directly. That'd be kind of silly. So this is why you can't read flag directly. Let's give it... Let's see. Let's give it its own code. How about that? So gimme.slashserver.s openserver.s Read only. All right. So we're successfully opening. The whole point of this exercise though is to read out that file. So let's give ourselves another big file read buff. And we want to then read that file. So I'll need to store the cyscall, the return value somewhere. I need another register. R15. Have we used R15 yet? Okay. We have not. So R15 is file FD. Okay. Then we're going to call read. Go to our handy dandy cyscall table. Read is zero. So move zero into RAX. The FD. So move into... This is backwards. Zero into RDI. R15 into RDI. Go read. This is the FD. RSI is the buffer. I had just created this down here at the bottom. File underscore read into... What's it? RDX is the count, which is 1024. Okay. This should then read. And where's it going to be after I call read? So where is this data going to be? In where? File underscore read. Yeah. Just in this memory location, right? There'll just be bytes here of whatever was in the file. No stuff instruction N. On line 86. Go to line 86. It's a classic Emacs problem. So I opened it correctly. I'm reading from 5, 1024, getting 1024 bytes there. And now I wanted to... So what I wanted to write was the string, here you go, slash N, and then the contents. So the server response is here. Okay. Good. That is... Oh, there we go. That would be here you go. Slash N. And then we need to output the file content. So now I want to write to client FD, the file read. So whatever we just read in, how do I know how many bytes we read in from the file? Is it sort of RDX when? Read is file descriptor buff size. So the return value here is exactly that. Be how many bytes were read in? Why can't I just hard code in 1024 bytes? Just say write out from this buffer 1024 bytes. Yeah, there may not be that many bytes in the file. There may be only 10. And then we're saying print out 1024.  And we need things to be precise and to be correct. So I need one more register. What is it? R14 now. All right. R14 looks good. Okay. R14, store bytes read into R14. So now we're going to do, we want to do another right sys call this time. Move RDI R12. Modeling this off of what's happening up here. Move into RSI offset. Where do I want to write from? Where did I read the bytes from? File underscore read up here. So offset file read. The buff. And move into RDX the size which we, our handy dandy R14, which we call bytes read. And with a sys call. And let's see what happens. Hey, look at that. Here you go. Why is it gimme underscore? Oh no, this is going so great. I put 20 in here. This is not correct. You can see it's adding extra stuff. This actually is the, if we look in here, this is the server response. So there's these bytes and then a null byte and then the buff that we got from the server. So that's why that's being output as part of what we sent. So we want to do, I don't know the string length of this. I'll stop my head. That's why I will use my friend Mr. Python. 12 characters. Here you go. New line. And then boom, the file. Let's see. Let's get hello world into test. Echo hello world into test. Oh, that was the same one though. I wanted to show a different example. Okay. Test. The address is not in use. Okay.  This is driving me crazy. Okay. Before we exit, now let's close the client FD. Close the, what I call the first. Yeah. The socket, the FD. Okay. That's in RVX. Okay. Close is very simple. Close in the FD. So move. Move into RX three. Move into RDI. The client FD. I have no idea what did I call you Mr. client FD. R12. Call. Move RX three. Okay. Move into RDI. And this is, I hate that that's there. Let's move this here. Sort into RVX. Close four. Close three. Exit. Just starting to use still. Do we agree that it worked? What's the problem with this as a server? Is it a good server? Why? I wrote this. Are you telling me I'm writing bad servers? It's a trick question. No, but seriously, why is it, why is it not a good server? That's because we created this protocol. It's a great protocol. The protocol is not the problem. Yeah. You could access any file on the server that doesn't have permissions. Yeah. We can access any file on the server, but, you know, hey, that's okay. We're, that's the point, I guess, of this, this. What was that? Yeah. Maybe it's a honeypot to see what people are doing. What else? Do you think there's somebody at Google that starts their web server every time somebody makes a request? No. No? Yeah. And a lot of overhead, and it's like insane, right? We have a server. The server should operate indefinitely, continuing to accept connections. So where were we? The accept system call is the one that, the accept system call is the one that tells the operating system, hey, I want new connections from a socket. We agree? Yeah. So after I'm done processing this, so after I write out the response, I close the client FD, why don't I just go back to start accept, right? In a loop. And that way I can make as many requests as people want, and it'll just be the happiest web server, not web server, fake web server that ever did exist. All right. So I can make a request. It succeeded. I can make another request. I want to get other files that it definitely exists. The other one was test. Boom. And I don't even have to do this. It just keeps going. Isn't this awesome? Wouldn't I run out of file descriptors? Theoretically no, because I should be closing everything that I open, every go around, right? The only file descriptor that should be open was our first socket that we created on three. But you can even just look here and see, hey, this is getting up to seven. That's kind of bad. That means that we've definitely done something wrong. So if we, we closed client FD, but how many opens did we have? Then client FD came from accept. That's the other side of the client. What was the other thing that we opened? The file we want to read. Yeah, this one. This one in R15. So the file FD. So we also want to, and probably do this before. Yo. So I mean I should look it up, and it says Linux systems limit the number of file descriptors that anyone processed may open to 1,024. Yep. We're so bad about having seven open. Oh, it's nothing would be bad about seven. Actually, why don't we show that? That's a great question. I can't remember batch syntax. It's... Oh, that's right. For IN, seek, was it one? That's right, because seek is a command. Do, was it 10,000 was the limit you said? So 1,024 per process is what it says here. Under Oracle Health 10. All right, let's see. So if that fails, just 10 exit? Yeah. At some point it's going to fail. Oh, wait. I know. It says this condition is not a problem on Solaris machines 86, 64 and Spark. Those are completely different operating systems, or Solaris and Spark are different operating systems. Eventually, so eventually we won't be able to reopen any more files. So at a certain point this should fail and not give us the correct file back. Oh, it's an inherent limitation of any operating systems. So the idea is, remember how we had that table of like, that the operating system keeps track of the file descriptor and what actual file it is? That, oh, this is weird. File size, open files. Oh, this is going to take us a long time. But while I can talk while it's doing it. Because if you think about it, the operating system has to keep some data open for those files. So in order to prevent a user space program from taking down the entire operating system by just continuing to open files and it has to store all this data on all these files, it limits the number of max files you can have open. But as you can see, that's a setting that you can change at the operating system level to let it be unlimited. There's a lot of things like this in file systems. Like if you have the ability, because the whole point of an operating system is you don't want my process, like the server, to take down any other process or anybody else's services. So you limit what things can do so they can't do this. And it's a bummer that that size was so large. I thought we'd get there very quickly and this is going to take forever. Yeah. Oh, yeah. So what's interesting is, you know, so I'm wondering why we've completely blown past 1024. It's because it's configured. The Pone College server is configured differently. Like let me... Is this not x84? I mean x86? It is, I guess, even my Mac file. Oh, yeah. So the Mac default limit is 256. So each system is configured differently. So you can configure it. The administrator can configure these to be higher or lower. Well, we've also blown past that number as well. This is on my local machine. The 256 is my machine right here. Not the server that we're using. So, all right. We'll let this run. But anyways, to fix that, we don't want that. We want to close the file FD. File FD was in R15. Move into RDI R15. That would be fun. Okay. But now we've got this. So this is great. So now we have a server, right? Everything good? Just say like, yep, it's cool. But another aspect of a server that we definitely... Oh, I want to compile this. That we definitely want to think about and worry about is, what about concurrent connections? If Google is serving your HTTP request, does that mean that they can't serve anybody else on the entire world? Connection refused. Yes, I know. I just want to start this up. Another example. Try to fix this. Address and use... socket. Yeah, there you go. You can use setSockOpt to set the SO reuseAdder socket option which explicitly allows a process to bind to a port which remains in time wait. It only allows a single process to be bound. This is both a simplest and a most effective. So I'm doing what I should have done is look up how to fix this and then do it so that that way we don't have this problem in the future. Okay, so SO reuseAdder setSockOpt. Let's check how do you do this. Other score. Okay, this is where we can set... There we go. Manipulate options. I wonder if we can look for that. No. Okay. So this means we need to after we call this before we bind we're going to set on that file descriptor we're going to set this option. Of course you shouldn't take code from the person who's asking the questions because I usually have the bug in it. To do both of them. Let's not do that. I can make my point. Let me make sure we're good. So I don't want to do a thousand connections. So I actually did like ten thousand connections so we saw our system is pretty robust. It can handle a lot of connections like ten, twenty-four connections. That's way faster it feels like. And we can see that the file descriptor numbers aren't increasing anymore. So that's great. If I connect to it on two different so this connection has succeeded. This is actually connected to port 8080 but this one has not. Why is that? What's my program doing right now? We have the trace right here. So it just called accept that returned to file descriptor four which is this one because I did that one first. And now what's it doing? From where? What specifically? Waiting for what to be read. Yeah so we called, we jumped back. We were waiting. We called accept. We get a connection coming in. The operating system says good. Here you go. File descriptor four the very first thing we do is read from file descriptor four and what if they send us nothing? This read call will wait forever. But there's actually another request that came in that's ready. It has its request. But until we go back to accept we're not going to be able to know to talk to that server. Or sorry that client. We don't know that there's another connection. So the problem is we can accept connections one after the other but every time they connect to us we're going to wait until we fully process that request before going on to the next one. And this has massive problems as we can see because this one request we'll see. It's waited too long. Anyways the point being so what we'd really like to do is have a request come in and then be able to immediately handle another request while that other one's processing. And that gets us to where we're talking about today is multi-processing. So we went through all these steps in depth and in glory detail of calling socket, bind, listen, accept and what we really want to be able to do and there's many different ways of doing concurrency and all this stuff right now we'll look at multi-processing which is saying asking the operating system and think about like maybe taking biology. Yeah what's the process when a cell splits into two cells? I thought that's what it was I was gonna say I was gonna have you say it first that way if it's wrong it's on you. Yeah cell mitosis right it splits into two different copies of a cell and they can each do that this is exactly what this what we want to do is we want to split ourselves into two different processes and have one go back and accept more requests while the other handles that client request. And there's a very handy dandy nice function for this called fork. So fork is the sys call and again the operating system deals with talking to the file system talking to the network also the creation of a process so a similar type of thing fork will actually is done by the operating system which is why it must be a system call and so the idea is now that you've split in two how do you know which one is which because the code is executing the exact same code the same memory everything is happening simultaneously so you need some way to know which is which so the terminology is like child and parent so that's the the terminology here and actually this relationship forms a tree structure most of the time so the new process is referred to as the child process the process that originally called fork is called the parent process so after the accept we get a new sys call in a new connection in then we call fork the operating system literally does the cell mitosis splits us into two and then says both of you start executing but we need to know are we the child or the parent maybe we want to watch the child and watch it grow up and see if it crashes and deal with it I don't know so the idea is the only thing that is different between these two processes that are running because they literally have the same code the same data everything the same open file descriptors there's literally no way to know which one you are except the return value of fork so if fork is successful if it's not successful then you're only one process because no fork happening but if it's successful the PID so the process ID of the child process is returned to the parent in the REX register and it's zero in the child and this is how you can know who's inside who's doing what so at this point socket bind listen accept boom one process we call fork now it splits into two and so the child will be on the right why is the child on the right how do I know the child is on the right because their turn value is zero on the far right also there's nothing before it visually nothing happened in the child process before that because it's all come from the same place whereas in the parent the value 43 will be returned from fork and literally just like we saw like the all of this metadata is copied essentially from the parent to the child so all the file descriptors are open are the same the user IDs are the same the thing that's different is the PID so the process ID here it's 43 and the parent process ID is 42 so that's metadata that the OS stores about that so then in the parent we can then close the the client file descriptor because we don't want to deal with it what do we as the parent want to do except new connections that's our whole job except connections and create children to deal with the mess it's kind of like a classic parent I guess so we close it here but because even though it's closed here in the parent the important thing to remember and you'll get into this when you study operating systems about how this is actually done so if you think about it this is insane like every time you're making a connection this whole other process is treated with exactly the same memory but they're separate so if you change one it doesn't affect the other exactly the same here if I close file descriptor 4 it's only changed in the parent whichever process did that just like you can't change memory of other things but it's actually done in a very performant way so it's very cool about how operating systems make this happen so it goes away in the parent but still exists in the child so that the child can then do that the child can close file descriptor 3 the original socket that we listened on with absolutely no ill effect because it doesn't affect anything and then they can both work on them and the cool thing is after the fork these are all happening at the same time so if you have a single core system the operating system will decide what to schedule and how much of a thing to do whereas if you have a multi-core system this can literally be happening simultaneously then the parent would jump back and call accept and the parent could then be processing it while the child does everything so seems pretty cool okay I really don't want to deal with this that sock stuff so I'm gonna ignore it for now but if I need to do that we'll do that what how do I do that I don't know that's fine but I believe you that would work okay so we kind of already have this right so we have our accept we have our start accept so we want to accept and then who deals with so we accept do we want to read in the request first and then fork no we just want to immediately fork let the child deal with all the dirty work and the parent just jumps back to accept fork doesn't take any arguments which is also nice what is the sys call number 57 okay now boom at this point I now have spun up two separate processes the parent and the child so I'm the parent what do I want to do or how do I tell yes so what do you want to do with our X return value on success the PID of the child process is returned in the parent and zero is returned in the child so if we want to check before the child what should we compare against zero and we can do a jump if equals to some label called child and otherwise we can jump to let's say parent and child we know is actually just down here because we've already written it it's all doing dealing with all the stuff parent actually well I'll just do it here but it's fine we can do that let's see in the parent I want to close the client FD that was sent that means I will need to move this up here to get that in a register and I've written so many closes today you'd think I'd be able to do it I'll stop my head but I cannot move rax3 move the client FD which is R12 DI R12 jump back to start accept so all the parent does is close whatever was returned in the accept jump back and just boom boom boom the child we wanted to be if we're following an example we want to close the original socket move into rax3 move into RDI FD is in RBX RBX alright let's watch this see I can make two connections that both succeed I can't do them simultaneously but here you go that seems not good oh is this because of the limit did I fork on myself okay that was weird am I hitting a max number of processes can I have on the dojo 24 then why I thought it was a lot lower max user processes unlimited okay so this either means that so I'm forking correctly I guess one idea would be if my child is yeah okay how can I show this because we're in a very screwed up state where we have no let's kill this not quite yet okay PSAUX shows you all of the every process that's running on your system we'll do that at the top and type it through wc so we have 30 different roughly processes running so run the server check I'm at 32 not so bad because I'm running strace now I connect amazing okay but first thing I do is look at okay let's look at our parent so the parent closes the file descriptor and then jumps to start accept seems pretty simple not a lot that can go wrong here we saw that it kind of worked now child on the child socket we can then close read figure out the file start the underscore open the file call read store that write it out output close the file descriptor close the client descriptor and then what do we do so what happens after we close the client client fd jump where so after this there's a jump to start accept which will go the way up to the start call accept which will fail I think in return negative one and then it will fork again and then it will keep going so I think we're just spinning up a ton it's called a fork bomb when you just keep forking and call fork over and over and over again so we want to definitely not do that so these are defunct which means they can be cleaned up actually the z I believe is for zombie it's going to be a zombie process just in case you're curious okay but I can make tons of requests we definitely fixed that it just can't clean them up fast enough so you can see that I am it is creating a process and then you can actually see the downside now of doing multiprocessing in this way of spinning up a new process for every request it's actually kind of an expensive process and you have limits on the amount of these processes but we can fundamentally handle OS like fixes these but anyways we can handle but anyways these are zombies that's fine but we can handle concurrent connections and on a good enough server these will be fine questions on this so some other techniques are you don't actually usually it's like a worker pool so you wouldn't just spin up a process for every request you would have a specific set of like 20 30 or whatever processes that are ready to go and then you tell them that they have jobs to process and they don't go away they just stay open a long time show me that that's kidding like we're gonna look at something now okay so one thing we didn't show is so S trace has an option on a fork trace the child process as they are created so we can pass dash F so that we'll actually see the child as well so let's see so we call accept the accept got a four fork this and then we close close accept read open read write read wait what okay fork why is it calling accept again oh it's a different process I see okay this is the parent which makes sense because we closed for then called accept excellent and we read it write it out and then exit it okay great so we have some stuff to clean up here this bad file descriptor because we already closed that but that's okay okay cool so I was getting confused you have to pay attention to these process IDs these will tell you which one is which whatever they're doing okay more questions no questions what are you doing why are you saying it doesn't have any questions have you seen this it looks insane it looks even funnier this way maybe but in the camera okay now it's good I was bonkers well the camera doesn't have any questions does any of you have any questions any questions on twitch I'll get like two minutes so then finish the assignment and then we'll start new stuff on Wednesday yay for finishing assignments wow that was really really terrible


What's up everybody, J.J. over at jacobyscasebreaks.com 2019-20, Pony, Mosaic, Blaster, 1 box break, number 24 random teams just sold out And this is for the last chance at five mixer spots to unlock the mixer So again 30 total spots, randomize customer names and teams, open up the blaster, distribute the hits out, shimmer no better in common ship And then we'll randomize the customer names again over here in a separate dice roller randomizer and top five at the end of the Randomizer, we'll win a spot in the mixer So good luck guys, let's do the break first. Let's roll it and it's a six and a five eleven times one two three four five six seven eight nine ten 11 Christopher, down to Zach seven eight nine There's with the Clippers, Stephen with the Lakers, Roy with the Heat, Aaron with the Pacers, Dingo with the Pelicans, Alan with the Bulls Zach, Paul with the Hornets, Ryania with the Celtics, Anthony with the Grizzlies Dewey, Anthony's with the Grizzlies, David with the Magic, Ryan with the Knicks, Aaron with the Nets, Jacob with the Jazz, Shannon with the Pistons, Josh Cruz with the Wars, Josh with the Wizards, Jacob with the Kings, Anthony, navigator with the Rocket Jacob with the Mavericks, Patrick with the Thunder, Zach with the Zach, Ian with the Bucks, Aaron with the Spurs, Jacob with the Nets TJ Leonard with the Hawks, Aaron, or Aaron, I'm sorry, with the T-Wolves, Ryan S with the 76ers, Chris with the Blazers, Chris with the Raptors, Josh Cruz, that's all just Cavs and Zach T with their Phoenix Suns. So yeah, I'm just gonna close the trade window guys. There's a quick little blaster and see who Yeah, that's true, Ryan. They're Shackleton and then the other one. Yes, well Anthony V, they're cousins and they have the same name, so it kind of helped us out putting their like street name on there so that way we know which one is which because we've had problems. I mean good thing they're not too far away from each other, but obviously we got to make sure we ship it out to the right customers, but yeah, they kind of helped us out and put their street name at the end of their name so that way we know which one it is to ship to, because sometimes they're in the exact same break as they are here. So thank you, Anthony's. Let's close it guys. All right, then let's do the break and we'll get where the mixer's on. All rookie, Silver for Mosaic, Hayes, Millsup, Diabol, Inservianus, Jared Allen, Tyler Hero, Ooh, nice P.J. Washington, Jr. I mean it's kind of the new new investment out there, Vanilla. I mean if you think about it, right? People are not collecting as much art pieces as they used to. People are using cars as stock really, right? Investments? I don't know about new currency though. Right? It's like, all right, I'll pay you in one LeBron PSA 10. All right, so that's $10,000. All right, cool. Good luck guys. Dice Roll it. Three and a five eight times. Top five getting guys. Number five spot three. Give it away. One, two, three, four, five, six, seven, and eight. Eight times. Aaron, you're in. Anthony, Dewey, you're in. David, Ryan S, Shackleton, and Jacob. Congratulations. Five and eight three eight times. You five are now in the mixer and coming up next guys in a separate video is the mixer.


Hello, 127th Wing. I'm General Momen, and welcome to 2023 and the January drill. Looking back at the December drill, I can't tell you how pleased I was with the commander's call. The questions that you asked were great, and we have a long list of questions to answer. And one of the questions, actually two of the questions that I wanted to talk about today, go directly toward the fourth line of effort, which I really didn't get into during the commander's call, and that was Selford's sustainability. The first question was, the shifting of the runway to solve the clear zone problem to the south of the airfield. Now, keep in mind, we must solve that clear zone problem. We know now that it is an issue, and we have to solve it. So the question came up, does it reduce our capabilities here at Selfridge? Actually from a landing perspective, the runway does shorten a little bit. So we'll have less landing runway than we currently have. That said, we plan on using our overruns as displaced thresholds, and we actually increase capability from takeoff both to the south and to the north. So end game, it's a wash. We lose a little bit from a landing perspective, but where it really counts, we gain capability from a takeoff going north and south. Another great question came up about electric vehicles moving out towards clean energy and the thoughts of how we are going to leverage ourselves for that in the future. So currently we are in a discussion with the state and the federal government about future design plans for our infrastructure here at Selfridge, specifically the electrical system. Right now our electrical system is aging. It's been around for a lot of years and it needs some maintenance. I'm really not interested in upgrading the system to its current status. I want to create a system that's there for the 2100s, not for the 2022s and the 2023s. So we're in that discussion right now to see what that looks like. And that would, in my view, include parking areas for EV vehicles, transitioning of flight line vehicles to all electric and so forth. Now granted, that's not going to happen tomorrow and that's probably not going to happen in the next five years. But we have to start someplace, so yes, we are working on those. So it's a great question. Now looking out to the future of 2023. I'm anticipating another busy year with some exercises. We have an operational readiness exercise for the tanker mission later in March and in April. We're sending ATENS into Northern Strike Exercise and Winter Strike Exercise. Additionally, our efforts for highway landings that we've done here in the state of Michigan has gotten noticed and we were invited by the state of Wyoming to participate in a highway landing out there later on in the summer. The plan would be to land ATENS on the highway and to refuel off of a C-130 in the middle of Wyoming. Again, that's all efforts that we've been recognized here that are now paying dividends elsewhere in the country, so well done. Also looking out into the future, we have a deployment for the tanker set later on this summer as part of a normal rotational deployment cycle. So it is going to be a busy year. Looking out a little bit farther ahead in 2024, I'm very happy to announce our next air show will be the 8th and 9th of June of 2024 where our headliner act will be the United States Thunderbirds. We're really excited for that. Now finally, I want to talk a little bit more about you and about your professional development. Professional development doesn't start and stop with professional military education, but that is a critical part for your future as a leader in this organization. So I encourage everyone to do your PME when you are available and when you're ready to do it. There's not a day that goes by that I don't read or listen to something from my own professional development. I take it very, very seriously and even at this level, I think it's important to continue to do on a daily basis. If you do that, that is a critical piece to our goal as being the best-led, most efficient, effective and adaptable organization in the United States Air Force. I appreciate your leadership and I appreciate your professionalism.


President Mohamed Abouhari has described the indigenous people of Biafra clustering for secession as a dot in a circle that has nowhere to go. The president spoke during a rare interview with a rise television aired on Thursday. But the Apex Ibu Social Cultural Organization, Orhanez and Ibu, has chided Abouhari for the statement, saying that he had a choice between dialogue or an avoidable war against Ibu. Abouhari has justified the agitation for Biafra by Ibu youths through various pro-Biafra groups. Adin Abouhari's nepotistic and sectional government reinforced a separatist agitation in the southeast.


Hello everyone, my name is Bindobong and I'm representing the College of Arts and Commerce and the devil of my song is a very common song called One Day.


Some of my clients are interested in Bitcoin and other cryptocurrencies right now, and they've asked me what I think about it. So I thought I'd make a video sharing with you my thoughts, my current thoughts about the Bitcoin and cryptocurrency situation.  But right now, the reality is that I can't pay my mortgage with Bitcoin, even though it's really popular right now. I can't go to my local grocery store and buy food with Bitcoin. I can't hire most service providers who services I want and need using Bitcoin. You can't hire me using Bitcoin. So in other words, right now, it's not really a means of exchange that is widespread. And I believe in alternative and complementary currencies. I think it's a healthy thing for our world to have more forms of exchange. But right now Bitcoin, Litecoin, Ethereum and other cryptocurrencies are altcoins. Bitcoins are essentially, they are a gamble right now. They are a speculative investment, speculation. It's not really investment because most of the people who are doing it don't really understand it. For example, right now Bitcoin is at $17,000 per coin and even some of the experts don't understand why the price is so high. There's a lot of misunderstanding. I mean, there's a lot of sort of, even though it's supposed to be transparent, a lot of people are just baffled about how it really works in the real world, the price up and down and things like that. So that's one concern I have is that we don't know if it's going to become a widespread means of exchange. And so those who are investing it may lose their money, right? The way that it's going with the price hikes and drops right now, mostly price hikes with Bitcoin, for example, is that people, some people think it's a bubble. I don't know if it is or not. But the fact that it might be a bubble means that it could burst at any time. We don't know when, that's the problem. And it could hurt a lot of people. And usually in situations like this where a price of something goes up dramatically in a short time, it's almost always a bubble. And there's a lot of excitement and even like some so-called credible people are getting on board. Well, guess what? Same thing with the dot com. Same thing with the mortgage crisis. A lot of credible people were getting on board with all of those. Same thing with any bubble in history. A lot of credible people and leaders seem to be getting on board. And then everybody, most people lose money, including the leaders that we thought were credible. So that's the practical case where I think it's dangerous right now. We don't know if it's going to be a means of exchange. We don't know yet. Yes, some people are saying, yeah, but some people are able to buy things with Bitcoin. Well, still, try to pay your mortgage with Bitcoin. Try to buy food. Most people can't do that. It's not practical on a wide level yet. Now, people say, well, yes, but I'm investing in the possible future where it can be a means of exchange. But really, what's going on with this motivation is that people are trying. Maybe they're desperate about money. And unfortunately, in the cases like this, a lot of people who are desperate about money get swept up into this kind of scheme and end up losing money. So let me tell you an imaginary story. So let's imagine a community of people and some of the people are farmers. Some of the people are chefs. So these people grow and cook food that others need and want. Some people are builders. So they build homes. They build schools. They build furniture that people need and want. Noble, worthwhile ways of earning an income. Some people are teachers. Some people are healers. They're doing things that people truly are adding value, bringing a more life-giving world into existence. And then, there's a group of people here on the side who are playing a money game. Let's say there were 100 people playing a money game. They're spending their days. They're precious life resources. They're precious lifetime. Let's just call it a day. They're spending that day playing the money game. So during that day, they're not cooking. They're not farming. They're not building things people want and need. They're not healing or teaching. They're playing the money game. That's what they're spending their time and energy doing. And out of the 100 people playing the money game, two of those 100 become, well, filthy rich. They earn tons of money while most of the people, 98 of those 100 people, either didn't win any money and they simply lost their day, lost the time and energy of that day. Or they even lost a lot of money. Some of them even lost their life savings. This is what happens with most money, sort of hype and mania that's going on right now, like with the cryptocurrencies. It is a money game. It is not yet certain whether it will be a widespread means of exchange. It's not yet certain whether it's a bubble. And people are, have this fantasy and this mania, this jumping on the bandwagon. I don't want to miss out the fear of missing out whenever you are acting from the fear of missing out. It is almost always not a good idea for your soul and for your long-term well-being and for your mental health. And what happens is these two people who play the money game in this community who win this proportioned amount of money, they didn't really add value to the community. They simply played this game that allowed them to now have accumulated a lot of money or power, essentially, over the community and now they own most of the community. And so this is what happens. Some people are getting filthy rich with Bitcoin right now and now they're able to own a lot of things because they played the money game. They've achieved a lot of wealth without much real work, adding value, bringing a life-giving world into existence. They simply were cunning enough or they were lucky enough to have earned a disproportioned amount of security and prestige and privilege for themselves. And so I just don't think that it's something that is worth modeling for the children, right? It's like, oh, this is how you should earn money, it's by playing a money game rather than bringing a life-giving world into existence by doing valuable things like farming or cooking or building things or healing or teaching or things like that. You see, that's what I hope to inspire all of us to do is to earn money in a way that we feel is truly worthwhile. It is a worthwhile use of our day and of our life rather than spending all this time and attention, our precious time that we cannot get back with learning about this money game stuff. Let's spend our precious time and attention building useful skills that are truly valuable to others and that truly manifest and bring forth a world where everyone can thrive, and not just the few who happen to get lucky or were cunning enough, you see? And so the last thing I'll say is that if you're fearful of your future security, you know, your children's future security, there is one investment that will never go away, and as I said before, it's the investment in building your skills that are useful to others and it's building meaningful relationships with others. So for example, I'll say that I am one of the teachers in this community, the story I've told, I'm one of the teachers, let's say, and if I build meaningful relationships in this community, even if there are a few people who get fabulously wealthy, if I have good relationships, whoever has good relationships will always be able to sustain themselves and their family in a community. And so that is what I hope we can all spend our precious life energy building, is skills that are useful to others and meaningful relationships of true reciprocity and generosity. So I'll have a lot more to say about cryptocurrencies and so on. If you look at the notes of this video, I did some research on this stuff and why I'm not personally wanting to invest in it and why I don't recommend it. So you might want to take a look at the notes of the video for a lot more, but hopefully this video will give you some inspiration and to not have to give into the fear of missing out about the whole Bitcoin craze, I don't fear because I'm spending my precious time building skills that are useful to others and building meaningful relationships with others. So anyway, that's all for now and I truly wish you well.


We started the origin of the company, and the original mission was to bring Brazilian cheese bread to the U.S. market, which is a staple in Brazil and South America. Recognizing this gap in the market, Junya decided to bring her favorite snack to America, and so she founded Brazibites. Initially, the growth was steady and predictable. But once they went on Shark Tank, Junya quite literally couldn't keep Brazibites on the shelves. When you come to America, you see it's missing, it's lacking, it doesn't exist. And then at some point, you go, let's make it, and then you transition into saying, let's start a company. Was the idea so clear to start a company, or was it something like you can just make it for your family, your friends? The idea was kind of like this.


Hey everybody it's Sam at Mixed Up Craft, thank you for watching my tutorial today, I'm going to be showing you how to make this shadow box card. These are lovely to make, I've actually made a few already on my channel but I haven't done one with a one inch frame, so this frame here is one inch all the way around, I've done half an inch, I've done five by seven with the half an inch, I've done some photo frames with a similar kind of concept but I haven't done this one. So I've actually made this as a sympathy card, this is for the family of a lovely lady who was part of the Mixed Up Crafters group and I'm sending this to their family on behalf of us all, so those of you that know who I'm talking about I don't want to you know openly say names and stuff on my channel but if you're a member of the group I know many of you will know who this is being sent to and this is on behalf of us all, so I hope you like the card that I'm sending to the family. These are beautiful cards to make, they can be made for any occasion, so you know these are lovely, I've done them as birthday cards before wedding cards, you can also put a sheet of acetate on the top, you can have it as a shaker card, you can put things inside, there's so many variations to this style but it's a top folding card so it stands up like so and then inside I've got my mats and layers and it says there are no words, we are just so sorry and yeah there's the card, so this will fit in my box envelopes, I will link that now, I'll probably link it through the video as well so you can pop it in there and yeah so it makes it a bit easier to post, so let me show you how I've made this really pretty card. Okay so you're going to want a piece of 11 by 11 card stock, you want something that's about 200gsm because you want it to be able to hold that 3d shape, now the inspiration has come from this one here which is in the book and it's gorgeous, I thought it was a shadow box and then when I saw that it was actually just a 5 by 7 card I just thought that would look really nice in a shadow box with this kind of you know cascading into that shadow box area I guess, so that's the inspiration, thanks Nikki, I always love her cards, so I've stamped my card stock here and I've used the lovely big stamp here, it's this one up in the top left hand corner, really really nice and then I've just coloured them very roughly, I haven't done any shading or anything because I've done more of a focus on the shading and intensified the colours and stuff on these ones here because I want them to really pop against the background, so what you want to do along the 11 inch side, well actually it's on every side, you want to score at half an inch, one inch, then two inches and two and a half and you want to do that on all four sides, so again rotate, you're going to do half an inch, one inch, then two inches and half an inch, that one inch gap there will give us that nice thick frame, so just rotate that and repeat again and rotate and repeat again, then on two opposite sides only, so I'm going to do this one and then this opposite side, keep it in there and again along that 11 inch side you would have scored at two and a half, you then want to score it three and a half but just down to the second score line, I'm going to flip this over and bring it up closer in a moment just so you can see the score lines, so you've done your two and a half, that was your last one, but then you want to do three and a half just down to the second score line and then seven and a half just down to the second score line and then rotate it all the way around so you've got the opposite end and do the same, three and a half just down to the second score line and seven and a half just down to the second score line, if I flip that over you will be able to see these score lines much much better, so you can see my half inch, my one, my two and my two and a half and then that's three and a half but it's gone past the first score line just down to the second because I'm working with a pattern paper it just gets a little bit confusing that way around so it's much easier if I just flip it over if you can see a faint line here ignore that I scored it wrong before and I'm not going to waste this and so I just rub them out you can kind of get rid of score lines with this end of your stylus if you just go to the back side and flatten it but you can see again here there's that half inch the one then the two then the two and a half and then that three and a half just down to the second score line and you'll see I've got it on the opposite end down here okay you then want to fold and burnish all of your score lines okay so all my lines are all burnish there next you want to go and cut down those little extra score lines that we done so I'm going to flip it over so we're going to cut down that three and a half inch score line just down to that one there you then want to cut across on the diagonal so that's that one inch section and then down and it will join the corner of that big square in the middle here and then if you go along here you're just going to remove all of that corner like so okay so I'm going to go along here again as you can see there's my three and a half score line down to the second just holding this up and cutting I'm trying to keep myself from shaking and then you're going to go across on the diagonal down to the score line like so and then follow down to the top of the corner of the other corner there rotate and then I'm just going to remove all of that like so so this you've got so you've got that shape so again if I just talk through the score lines that's the half inch that's the one inch that's your two inch here and then the two and a half and what will happen is when they fold around there's that one inch section and it gives us a nice thick frame and we're starting to form our corner here I'm going to go through that all again on this side here so I really want to make sure I just feel I need to make that school so you guys can see it it's like they get squashed there we go because it's just a cut line but I really want you to be able to see so here it is again here I'm just cutting down so I've gone past the first score line down to the second just where that score line was you're then going across right down to that third score line and then down to that top corner and then remove all of that now I do have other shadow boxes on my channel you know check them out I've got a six by six one but it's got a thinner frame I wanted to do this with a thicker okay like so and then again here down to the second across diagonally to the top of that third one down to the fourth like so I flip it over see the shape there that you will have this is going to be the back this is going to be stuck onto the card but all of this is going to fold over like so okay you can see that lovely big frame that we're getting so next we want to start gluing some stuff down I'm going to stick my mat layer because I want a little bit of a cream frame I'm going to do that last but if you want to fill this now with some pattern paper you want to do that before we stick it all down so I'm going to use my quick grab glue here you want to start with one of the straight edges first I just find it a bit easier and you're just going to add glue just to that last half inch section okay fold it back so you've got two of the half-inch pieces facing you so I've got one half here and another half here then fold the whole thing over so you've got the one inch and one of the half-inch pieces and just make sure that all sticks down and when you bring it up you will have a perfect tube shape and then you can fold it back that way and just go in there and really burnish again all those score lines then you get a really nice shaped tube I'm going to do it again on this side so I'm just putting the glue just on that one outer half inch piece and then have taking that half inch and then the other half-inch section so I've just got a one inch piece that's facing me and then you're folding everything over so then you've got a one inch piece and a half inch piece facing you hopefully I'm breaking that down and then fold back that way and now we've got two tubes okay next this piece is going to fold over and sit inside like so now you might find that you get a little bit of buckling so what I would do is just take a little wedge off of the very bottom one just that half inch section there and again just there and there and then just go back in and just check and see how it's going to look it's made a lot of difference if you feel you've got anything still then just take a very thin but just straight on that second half inch piece just so you get a nice finish it's like it's such a small amount just a little shaving off the sides like so and then you're going to add your glue to that last half-inch section like so and then this time if you stick it down and fold it back away because otherwise you don't want to damage anything that you've already stuck down like so so inside there can you see what I've done and then when you bring it up it will all come up together and it's just a really much I think easier way to get a really good finish on your shadow boxes so I'm going to repeat it again here usually I would fast forward these but I do want to make sure you can see exactly what I'm doing so I've just put glue again on that very outer piece but this time I'm going to fold just that half over so I've got the glue there and then fold it down so just folded that one little piece under and it will just prevent you damaging or possibly buckling any of these lovely edges that you've already done so again just give that a second to grab and then we're going to put glue on these in a minute but you should be able to bring up all of your sides really easily to form that really nice shadow box you see all the dimension you've got there now so I'm going to flatten it back out again and I'm just going to put some glue in this triangle here this triangle here and try and do it all in one go if you want to do once you know an end at a time you can but I'm going to bring all of mine up together so it's just on the flat pieces bring it all up and just spend a minute sticking all of those corners down like so really pleased with that I think it looks really really nice so now we've got our six by six outer you know frame there which is going to sit onto the front of our six by six car blank when I get to it now I want to do a nice little frame inside so this is the cardstock that comes in the kit and this is the one I'm working with actually for those of you that may not have this you get all sorts in there I've taken most of my now so I'm using it now but I want to create a little frame just in the middle here so this actual size is but time everything comes in it's already under four so I'm going to actually cut this piece to three and five eighths of an inch squared you may want to do three and three quarters but I think three and five eighths is going to fit this better it's a lovely like linen kind of matte finish and that's going to go in there with a nice frame looks really nice I'm going to use the cloud glue now for these bits so I want to start adding a little bit of strength to this card move that around until I've got a nice equal border okay and then I'm going to pick I think that's better to have as the tux is a lot going on there so now I've gone and stamped three of these might not use all three and then I've done quite a few of these ones and then I've done my with sympathy and then I've also got these gold strips as well and the reason I've done these and I'm glad in a way it happened but because I did do that extra scoreline by accident you can faintly see it so I've got these to go over it I'm going to do that with them on all of the corners and I think it just really adds a little bit of an extra special touch to the frame so I'm going to stick them first and then I'm going to build up all these bits on top of that so I'm just going to use some of this glue actually because I think it's going to be better I'm wondering actually whether to make them shorter or whether to cross them over I'm going to do them shorter so I think I'm actually going to do each one so that it is five because I've done them six by a quarter of an inch I'm actually going to do these ones so that they're five inches again completely optional this one down first I'm going to do two opposites first and then I can have them all kind of sitting the same way that needs to be a little bit longer I'll get this right in a minute they need to be two or five but two need to be five and a quarter fortunately I've got enough left here let's do five and a quarter here we go that looks really really nice I love that little extra so although it is kind of covering a mistake I think it actually looks really nice I'm kind of glad that happened okay then I have these pieces now so I'm going to start kind of having them come into this area like so something like that and then I think the with sympathy will be maybe like that I'll put it on some foam and then I'm going to start just kind of adding in these little bits and pieces just for that I love that little bit of red that pop of that color I think looks really nice maybe bring a couple around here as well so I'm going to pop it on high speed and start building all of this up okay so there is the finished card and I think it's turned out really really beautiful I love the shine from the glossy accents you can just see it all catching there and that's using this here so you just squeeze it on the areas that you want to have that gloss or that shine and then just let it dry and it will be completely clear and you can just see there I think it works perfectly with that gold trim now and I've added the or yeah well actually I added the buttons here you can see them and then I put a blob of the Nuva drops in the center and I use the mustard gold and it worked really well with this linen background I've got the doily there as well and then I've stuck that whole thing onto a six by six card blank top folding so you can see where I've just stuck the whole thing onto this here and then I've put a mat and layer inside so my gold mat is five and three-quarter squared and the cream is five and half squared and I've stamped my message so that's already now for me to pop in my box envelopes which I've linked into the video and that will just you know keep everything safe and it won't get crushed you know when it's mailed and keep everything nice and safe so yeah I've thoroughly enjoyed making this one as much as it's a sympathy card it was still really nice to make and I just hope it's well received considering the circumstances so I hope you've enjoyed this tutorial from me today I will share all the links to everything that I've you know used you should still be able to get hold of the kit because I know that they're doing open stock so just check out those links if you would like to you know grab that one there's some beautiful stamps in there and I'm looking forward to doing some more projects using the supplies and also I'll just link up here two other shadow box videos I'll do the five by seven and the other six by six so if you do want to check those ones out you might like to do them as well but yeah I'll be back again very soon with another tutorial thanks for watching bye