by transcription. Good health to all from Rexall. It's the Bill Harris Alice Fay show presented by the makers of Rexall drug products and 10,000 independent Rexall family drugs. This is your Rexall family drugist here to say hello and welcome for the 10,000 independent drugists who have added the word Rexall to our own store names. You know us by the orange and blue Rexall sign on our windows, but our best identification is that we carry the 2,000 or more drug products made by the Rexall drug company. Some of these products are already household words like Rexall aspirin for instance, the fastest acting aspirin you can buy. Yes, by laboratory tests Rexall aspirin disintegrates faster than any other leading brand tested. And it's quality like that we family drugists are talking about when we tell you you can depend on any drug product that bears the name Rexall. Good health to all from Rexall. And now your Rexall family drugist brings you the Bill Harris Alice Fay show written by Ray Singer and Dick Chevrolet with Elliot Lewis, Walter Tetley, Robert North, Jeanine Roos and Whitfield, Walter Sharpen is music yours truly Bill Foreman and starring Alice Fay and Bill Harris. Phil and Frankie have just come from a meeting with Jack Bennett. It seems Jack is taking his show to New York for a couple of weeks and he's informed Phil that he is going with him. Phil and Frankie are talking it over as they walk down the street. How do you like that cheapskate, Benny? Taking you to New York but not me. I play in the band, you think you don't? Frankie, he's just taking the cast. Nobody's even allowed to bring his wife. I'm going to have to be in New York for two whole weeks without Alice. Just take Harris on the loose in little old New York. Why do you have to go? Well, why do I have to go because they're clamoring to see me back east? That's why I'll be the best thing that's happened to Manhattan since the pilgrims landed on White Rock. Curly, I'm disappointed about not going on this trip. So was Alice. I called her and told her as soon as I found out. Frankie, I'd pay your fare but it'll cost me about $150 to take you on this trip and I can't spare the money. If I could only raise the dough myself, I...  Curly, I got the solution. I'm going to hock something to get the money from my fare. Come on. Oh, will you, Frankie? Gee, it'll be swell having you with me. Ah, it's a nice little store. Hmm? Where do you go to get the money? Right over to that cage, Mark Remley. They got a special department for you? Well, I've hocked a few things here. Hey, come on. Hey, here's my special rack. That's my overcoat. That's my suit. Hmm, new mouthballs. There's my guitar. Hello, son. Hi, Frankie.  This is the wife of the guy who owns the place. I just call her mom. Say, Mom, I'd like to get a little money on something. I'm sorry, son, but you know we don't handle stolen goods. What do you mean, stolen goods? Well, I know you don't have anything left of your own to hock.  I can't stand funny old ladies. I got something to hock. I don't want to because it's a Christmas gift that has sentimental value, but I got to do it. How much can you let me have on a solid gold timepiece? I'll have to see it first. Okay. Curly, take off your wrist watch and show it to the ladies. You want me to hock the wrist watch that Alice gave me for Christmas?  Curly, if you're my pal, you'll let me hock your watch. Won't do you any good in New York, anyway. What do you mean? There's a three-hour difference in time. What good is a California watch going to do you in New York? True. Alice gave me the watch and I don't want to... Alice won't even know it's gone. As soon as we get back from New York, we'll redeem it. Well, okay. Thanks, pal. I want you to know I'll never forget this. Someday when you're broken, down and out, lying in the gutter, you just call on me. Why call? I'll just nudge you. I'll get the 150 from Mom and I'll go down and see Bill Riggs at the Santa Fe and buy another ticket for the chief, then I'll go home and break the news to Alice. Now, meet me at the house later. Alice, do you mean to tell me you're allowing Philip to go to New York all alone without you? Well, why not? When he called, he said he was going on business. Business my elbow. Far be it from me to start any trouble, but I know when Philip gets to New York, he'll spend all his time in nightclubs, while I can just see him sitting in the Copacabana now. What's wrong with that? He's not alone. He's not? Who's with him? A corpus girl. What are they doing, Willie? She's sitting on his lap. She is, huh? Hey, Alice, I'm home. How are you, honey?  What woman? What lap? Don't try to squirm out of it. Willie saw you sitting at the Copacabana. And with a red hat on your lap. Oh, Phil! Oh, I gotta lock the liquor cabinet. You two have been sniffed in my brandy. Alice, what's going on here? I'm just teasing you, Phil. Willie has an overactive imagination. He thinks you're anxious to go to New York without me. You're not, are you, Phil? Oh, honey, how could you even ask me that? Why, going to New York without you is like... like going to Chicago without you. Well, at least I got an answer. It doesn't make any sense, but it's an answer. Phil, you sure you're going to New York, aren't you? Of course I'm going to New York, and I can prove it. Here's the envelope with my ticket. I'm leaving tomorrow morning. Yes, it's a ticket to New York. Why, Phil, there are two tickets in here. Oh, yeah, that other ticket. That's for... Oh, you're darling. You bought it for me. What a wonderful surprise. But Alice, that ticket... I'll help you, sir. I'll keep the ticket so you won't lose them. You're a wonderful husband, and I love you. Love you, love you.  That's his ticket. There it goes. Well, if I can't take Frankie to New York, I can't take him. I really should take Alice anyway. After all, she's my wife. And it'd be kind of nice having the little woman by my side. And besides, I can't get out of it now. Remly will understand. Well, Burley, here I am. I'm all packed and ready to leave. You going someplace? Of course I'm going. You got my ticket, didn't you? Yep. You told Alice about the ticket, didn't you? Yep. I'm all set to go, ain't I? Never mind the Gary Cooper dialogue. What happened to my ticket? Alice found it? She thought it was for her? She's going. Alice? Burley, something's gotta be done about that woman. I can take just so much. Why didn't you talk her out of it? I couldn't. I love talking her out of it. I'll speak to her. Before I forget, Phil, Mrs. Scott called and he wants you to call him at Rexall. Hello, Frankie. Hello. Did you hear the good news? I'm going to New York. You're going to New York? During the Blight? Blight. The Locust Blight. Those little rascals have engulfed Manhattan. They've eaten 12 floors of the Empire State Building and a hobo conferee boat. Frankie, stop with your wild stories. I'm going to New York and you can't talk me out of it. Now, if you'll excuse me, I'll go upstairs and finish packing. And, honey, don't forget to call Mr. Scott. I'll call him later. Well, Frankie, I guess you don't go to NY. That's what you think. I'll just have to hock something out. Wait a minute. I got nothing left for you to hock. Curly, don't expect to hock anything else of yours. That's better. I'm not a heel. This is Alice's fault. I'll hock something of hers. Let's see. How about that silver tea set? No, no, no, not that. I'll never miss the tea set. I promise to take you. I know I promise to take you, but... All right. But you've got to redeem it the day we get back from New York. Okay. I'll get the money and buy the ticket. I'll see you later, Curly. Well, Curly, I did fine. I got my ticket to New York right here in my pocket. Good old mom. She gave you 150 on the silver set, huh? Well, not quite. I had to throw in a little something extra. Gee whiz, Remly. I hope Alice don't notice that that tea set and my watch are missing because she'll suspect that we're up to... Well, Phil, I'm all finished packing. Gosh, it's tiring. Well, it must be, honey. Is there anything I can do for you? Yes. Look at your watch and see if it's time for tea. Tea! Remly, hmm? Pico wants tea. She wants to know what time it is, Bill. What's the matter with you two? Oh, honey, we don't feel like tea. We're up for piping hot coffee. We got that nice new automatic coffee master. Nope. I mean, nope, Gary. When I hot the tea set, that was a little something extra. I had to throw in that. What are you two mumbling about? Make up your minds what you want to do. Oh, yes. I almost forgot it. How about a round of piping cold water? Remly, we still got the sink, haven't we? Make some hot chocolate. Okay, honey, that'll be fine. Yeah, yeah. There's an arrow in it, huh? Well, we better be careful.  Now, don't lose the ticket. Don't worry. I got it right here in my pocket, and I wound. I wound. Early, it's gone. I got a hole in my pocket. It must have dropped out. Oh, no.  Now, what are we going to do? I wonder how much I can get on that portrait. Don't touch that!  Get on out there and start looking for that ticket. You must have dropped it outside Trino. Well, hurry up! How can a guy be so careless?  Gee whiz, I'm not... What happened to Frankie? Oh, honey, he had to go downtown. You know, honey, it's going to be nice in New York, just the two of us. Yeah. I'd like to take the children, their grandma will take good care of them. Hey, Alice, you know, we may not be in New York alone. You see, I... Mommy, look what we found in the hall. It's a ticket to New York. Oh, thank goodness. That's the ticket I... Oh, Phil, you darling, you put another ticket so we could take the children with us. But, Alice, it's only one ticket. All they need is one ticket. They go for half fare.  Oh, how am I going to face Remle? Hey, Curly, I looked around outside, but I can't find the ticket. I don't know where it could be. You can stop looking. It's been found. Oh, thank goodness. I thought I'd never get on that chief. You still ain't getting on that chief. The squaw has taken her pampousses. I'll tell you, the kids found the ticket in the hall. Alice thought it was for them, and now they're going now. I've got to destroy this family. Curly, you can't do this to me. You promised to take me to New York, and you've got to go through with it. I know I promised it. All right. Look, Remle, Jackson gave me $150 for living expenses in New York, and I'll buy you a ticket with that. Oh, Curly, look, if I take your expense money, how would you live in New York? I just won't be able to eat. Well, as long as you've got to figure it out, I'll take the money. All right, wait till I count it out. There's 20, 40, 60. Phil, do you want to take this suit? What suit? I'll be with you in a minute, honey. 80, 100. Come on, hurry up. This time, I'm not coming back here with the ticket. Valice sees it. You'll probably think it's for Willie. Oh, sure. That's all I got to do. Lay out $150 for a ticket to take Willie to New York. Oh, Phil, you're taking Willie to New York. Wait! Are you a blonde bandit? Silly. Why should Phil buy a ticket for you as brother-in-law is much closer to him? This is just a family affair. Now, if you'll excuse me, I'll call Willie and tell him. Valice, I warn you, if you people don't take me to New York, I'll... I'll shoot myself. Don't do it in here. I just had the rug cleaned. Frankie, I'm sorry. I despise you. I still want you to go. But I've got any more dough. We can only borrow it from somebody. But who? Alice is the only one that's got any money and she won't lend it to me. All right. Just a minute. Now, just a minute. What? She might if we softened her up a little. We played on her sympathy. Hey, I got it. She heard me threaten to shoot myself. I suppose I pretend I do it. Yeah. She think it was her fault and then she'd come through, huh? Come on. Let's get in the kitchen. Now, look.  This'll do it. Hey, where's the ketchup? Here's some chili sauce.  Yeah, there you are. How do I look? Like a side order of French fries. Now, that ain't gonna work, Remly. It's too lumpy. Won't work. What we need is real blood. Stop staring at me. I'm not in a bleeding mood. But I tell you, if we're gonna fool Alice, we got to get some real blood. Well, if it ain't the plasma kit, a walking blood bank is really... Let's step up to his paying vein and make a withdrawal. Oh, say, Judas. Hey, kid. We want you to do us a little favor. We'd like to borrow some of your blood. All we need is a quart. You'll never miss it. So Mr. Remly can go to New York. This and me are going to New York and this is just a little scheme we cooked up to get her to pay Frankie's fare. Yeah, the only way we can get the money is to play on her sympathy, so I'm gonna pretend that I shook myself. That's a very smart scheme. The kid's right. If you used a real bullet, it'd fool Alice completely. No. I'll just spread this chili sauce out a little thinner. That looks pretty good. Yeah, it looks perfect. You can't tell that from any sauce. Come out, Julius, or I'll take you apart. He's got us, Curly. I know, I know, I know. All right, Julius, I'll try to get enough money from Alice for both of you. Now, look, Julius, here's how you can help. I'll go inside and talk to Alice. And when you hear me say, Frankie is broken-hearted, you yell, Stop! Don't do it! Frankie, you fire the gun, and I'll tell Alice you shot yourselves. Right. Okay. Now, don't forget, the cue is, Frankie is broken-hearted. All right. I hope this works. That Alice ain't so easy to fool you. Oh, there you are, Phil. Have you called Mr. Scott yet? Oh, honey, I haven't got time for that. Now, I'm worried about Frankie. He's awfully upset about not going to New York, and there's no telling, there's no telling what he might do, because Frankie is broken-hearted! No, no, don't! Oh, no! Frankie killed himself! Wait a minute, Phil. How did that go again? Julius said, I said, Frankie's killed himself, and then there was a gunshot. Oh, I see what you mean. Well, I just had a feeling he was going to do it.  Don't be silly. He wouldn't kill himself. I tell you you would, because Frankie is broken-hearted. Look at that kitchen. Oh, this is all your fault, Alice, because you wouldn't loan him the money to go to New York. Yes, yes. Poor Frankie. We better get to him fast. Just look at him.  Oh, Franklin, speak to me. Say something. I, I, I... Do you have any last request, pal? Yes. Alice, take me to New York and bury me there so my father can visit my grave. Your father lives in North Dakota. Let him commute. Oh, look, everybody, that bullet made a great big hole in his shoulder. We better put something in there to stop the blood. I'll get a cork. That won't do it. Get a towel. No, no, don't bother. Don't bother with a towel, Alice. Just stuff it with a ticket to New York. He's dying. The least we can do is make his last moment comfortable. Yes, honey.  Oh, you mean you're new all the time? Of course I knew. I've never seen such bad acting.  What about it? Well, I promised to take Frankie and Julius to New York. And we were trying to get the money from you. Why didn't you say so, Phil? I'll be glad to buy them each a ticket. Gee, thanks, honey. And you can pay me when we get back. Hey, you! But, Alice, I can't afford it. Hey, thank you, Mr. Harris. I better go home and start packing. Wait a minute. Wait a minute. Wait a minute. I have to pay for five tickets to New York at $150 apiece. Five times $150 is... is... at least. Hello, Mr. Scott. I was supposed to call you, but I got... Yes, yes. I wanted to talk to you about going to New York.  What are you talking about? Look, I just laid out five times $150 to take everybody to New York. Alice, Willie, the kids, Julius and Frankie and I... Well, what a happy coincidence. I came over on behalf of Rexall to ask you to make appearances in New York on the Times Campaign. Oh, well... I'll be glad to do that. Yes, yes. We want you to take your entire cast and we were going to pay all expenses. You are? We were. Now that you bought the tickets for everybody, we won't have to. Oh! Very generous of you, Harris, and we have... Oh, he passed out. Well, I'll just tip my toe out of here and let him sleep this one off. Alice and Phil will be back in just a moment. But first, here's your Rexall family drug. Everybody's been talking about the cold weather lately, and that always reminds me of one big reason for the uniform quality of MI-31, Rexall's famous mouthwash. Why? What cold weather got to do with MI-31? Well, ma'am, first I should explain that the antiseptics used in MI-31 include highly efficient yet mild oils. And Rexall's men of science had to find a way to keep them in solution at their most effective strength. After long and careful experiment, what do you think they discovered? I don't know, but I'll bet it has something to do with cold weather. And you're right. After the MI-31 solution is carefully mixed, it's subjected to a rapid drop in temperature in specially designed cooling units. This makes it possible to filter off the excess oils and those remaining are kept in solution at their most effective strength. And how strong is that? Well, ma'am, full strength in MI-31 kills contacted germs almost instantly. It's quality like that we family druggers are talking about when we tell you. You can depend on any drug product that bears the name, Rexall. Good health to you all from Rexall. Folks, seriously, our entire cast is leaving for New York tomorrow to do our radio programs on the 5th and 12th of February to help further the March of Dimes campaign. And if you'd like to see $1 do the work of two, give to the March of Dimes. It will gladden your heart. Good night, everybody. Good night, everybody. This program was produced and transcribed by Paul Phillips. If vitamin deficiency is making it hard for you to take this winter weather, try plenamins, Rexall's popular multivitamin capsules. Just two plenamin capsules a day give you more than the daily minimum requirement of every vitamin for which such requirements have been established, plus valuable liver concentrate and iron. The daily dosage is sealed in airtight metal foil. Just break it off, and the remaining capsules stay completely protected. Ask for plenamins wherever you see the orange and blue Rexall sign on the window. And remember, you can depend on any drug product that bears the name Rexall.


In this presentation, we will record journal entries related to wages, both direct and indirect within a job cost system. Information will be on the left. We're going to enter that into our general journal, then post it to the general ledger. First, a word from our sponsor. Well, actually these are just items that we picked from the YouTube shopping affiliate program, but that's actually good for you. Because these aren't things that were just given to us from some large corporation which we don't even use in exchange for us selling them to you. These are things that we actually researched, purchased and used ourselves. Acer 27 inch monitor. I've been using an Acer monitor as my primary monitor for a few years now. This is the first Acer monitor that I have used after having used a series of different brands of monitors in the past. The Acer monitor has been performing well and I'm trusting the Acer brand more and more as I use the monitor. I have a 27 inch monitor, which I think is ideal for what I do, which is of course the screen recording and the editing. If you would like a commercial free experience, consider subscribing to our website at accountinginstruction.com or accountinginstruction.thinkific.com where we have many different courses you can purchase one at a time or have a subscription model given you access to all the courses. Courses which are well organized have other resources like Excel files and PDF files to download and no commercials. General ledger being used to create the trial balance. Here is our trial balance. It's in order assets and then liabilities and then equity income and expenses. We of course are focusing in on the asset accounts, more specifically the inventory accounts as we take a look at the flow of a job cost system. What we're doing here is looking at the wages that are paid to people that work in basically the where in the construction of whatever we make for making guitars in the construction of construction jobs within the construction process to people that work directly on that as well as the people that work indirectly. We're going to have to sort those two out and record this information to understand this. We first need to think about that. We're really kind of just processing payroll here. We're processing payroll to people that work on the jobs. If they work in the factory and they're making guitars, they work in the factory. We're processing the payroll. Now, when that happens, typically we think that the journal entry, if we take out all the withholdings, we're not going to get into payroll withholdings and whatnot. But if we think about the simplified transaction of payroll transaction, it would be we're paying someone credit in cash. We instead are going to make a payable wages payable. And then the debit traditionally we would think would go to wages expense or something some type of expense. In this case, that's of course what the difference is going to be. And it takes a little while to really understand that this is going to happen a lot in a job cost system because we start to memorize if we've worked in other types of industries. A service company, merchandising company that every time we have payroll, it's just going to be wages expense. But in this case, when that's because of the matching principle before it used to be that we used those wages in order to help us generate revenue in the same time period. And this time, whether not generating revenue yet, they're making an asset, they're making inventory. So that's the first thing we need to realize. We're kind of processing payroll, but it's going to look different. And we're going to have to just basically unlearn if we just memorized kind of the payroll journal entry, which is the credit cash or credit wages payable and debit the expense. We're not going to debit the expense because it's not an expense type. What we're going to have over here is the jobs that they worked on, and that's what we will have to track. So let's take a look at that real quick on how that might happen from a forms basis, just an example. So we're going to go to the right over here all the way to the right. And we're going to have something like a time ticket, of course, and the time ticket is going to give us an idea of the jobs, the people that worked, the jobs that they worked on, so that we can track what job is being worked on. So just note that we're going to need some type of system within a job cost system to track which jobs are being worked on so that when we process the payroll, we can process it and select the correct account to hit, which is going to be the correct job account when processing their payroll process. So this individual worked on Job B-15, and that's where we need to apply the expense of the wages we're going to pay for this individual. Note that this could happen for a company that makes stuff or for a service company, like a service company, like a bookkeeping company may have a job cost system in a similar fashion. Also note that here we're applying out the actual cost. If we work in a bookkeeping company or something like that or law firm, we may have a billable rate for people that might be different, meaning we might make our invoices using some type of billable rate that's different from the actual pay rate. Or we might make our invoice with what we actually pay an individual and then mark it up, use some kind of markup in order to record it. Here, though, we're tracking the cost to the inventory, the cost to the job. So we're really using the actual number that we pay employees here. So I'm going to go all the way to the left again. So I've scrolled all the way back to the left. Now that we've just seen the documentation that might be used to create this, we're going to just look at the jobs here. This is the jobs and the direct labor that we are applying to them, which we're putting together by basically tracking as we as the employees work, typically in a database program of some kind, what job they worked on. So job B 15, we've got 1200 that's going to be applied for direct labor job B 16, 900 B 17, 560 B 18, 850 and B 19, 690 for a total of 4,200. So the journal entry then is pretty straightforward. We don't need to break it out for the journal entry, but we do need to break it out for the supporting documentation in each job. So the journal entry, we're just going to use this total here. It's going to go into work and process. And that's usually that's going to be kind of the confusing thing here, because again, typically we would think of it as an expense here. We are using these wages in order to help us generate an asset, which is going to be inventory, which is represented here by unfinished work and process. So it's a debit balance. We're going to make it go up by doing the same thing to it another debit. So we're going to right click and copy. We're going to put this in B 10, right click and paste 123. The amount in C 10 is going to be that 4,200. Then we're going to credit something for 4,200. I'm going to use the kind of plug formula of negative of that number and enter. And then we just need to see the amount. Now we could say that we paid cash, but typically a lot of book problems and in practice, we may go into wages payable first and then pay it at a later time. So I'm going to put wages payable. So J 14, right click and copy. We're going to put that in B 11, right click and paste 123 values only. So again, if this was a normal payroll journal entry for a non-manufacturing company, we would credit wages payable or cash and debit wages expense or something like that. And then we would have withholdings to we're simplifying the kind of payroll entry here, but we would debit wages expense here. We're not debiting the expense and that's kind of the tricky thing that we're going to have to see a few times over as we go through a manufacturing company. And that's because of the matching principle. We haven't used those wages to help generate revenue yet. They're going to help us generate revenue in the future. When we finally sell the inventory, we will expense it in the form of cost of goods sold. So the value of that work is going into the inventory, which is currently in process and therefore going into work in process. So let's record that out. Here's the work in process account. It's going to be one, two, three, four accounts down here. It's going to be four accounts over on the GL then we're going to try to just scroll back and forth. If you want to make the screen smaller, that can help to record. I'm going to try to keep it full size and use scrolling to do this. We could also freeze the pains, but we'll do it this way. So we're going to go to work in process. Here it is. We want to be in the debit. We are in cell S 10. I'm going to say equals and point to that 4,200 and that's going to bring the balance from 2002 30 up by 4,200 to 6,430. That then is being used to create this trial balance number and we're out of balance by the 4,200. Then we'll record the other side of this, which is wages payable. That's going to be our only liability account. It was a pretty simplified trial balance, but there's our wages payable. We're going to scroll over to wages payable. It's going to be a credit. So here's wages payable. We're going to be in the credit side of an X 19. So within X 19 equals I'm going to go all the way to the left until I find it wages payable. The last journal entry 4,200 and enter. So there it is wages payable 4,200. This number then being used to create wages payable here and we're back in balance. So our journal entry is back in balance and has been recorded here. Okay, so there's our process. Now, once again, we did something to work in process. And whenever we do that, we need to support this not only with the GL as we have here, but this only gives us the detail by date. We need to break it out by job. And remember, it's similar to like the accounts receivable being broken out not only by date, but by customer who owes us the money. Work in process needs to be broken out not only by date on the GL, but by job. Which job are we applying these costs to? So if we do that, that's where we're going to need this separate break out here in the sub account. So I'm going to go ahead and copy this and we'll bring it over. I'm going to go all the way to the right to where our jobs are. So here's our jobs over here and I'll paste this down here. Okay, so so now we're just going to apply this out that 4,200 is broken out job B 15. We're in B 15 direct labor and we're going to say this was 1,200 and then B 16 900. Here's B 16 direct labor 900 and then we're going to say B 17 560 B 17 560 and then B 18 850 B 18 850. And finally B 19 690. So we're going to go over here to B 19 and say 690. Now, if we add up our total jobs, they add up to direct materials, direct labor. These two add up to 1,230 being summed up across being summed up vertically. Here's our total 1,030. That's the case for all jobs. If we add up all of them, they're all open. All these jobs can do it this way. All these jobs add up to this amount. That should be equivalent to what's on the trial balance and GL. So we can see over here. We noted that this work in process was used to create this number and this number should be supported by this number and by the work in process. The jobs and and it is so we look good there. The last piece of this then is we're going to record this amount. This is the indirect labor and that's going to be anything on the factory that we couldn't apply to a job. So if we have like supervisor salaries or something like that, we don't know which job they actually worked on, if any. So they're working on multiple jobs. So we have to basically apply their salary to those jobs. If it's a maintenance or something in there, we might need if it's anything that's in the factory, where we make things if we're making guitars and whatnot, we need to be able to apply those salaries out to the jobs. So that's going to be the indirect labor here. So it's still going to be wages payable because we're processing payroll, but the debit now not going to work in process because we don't know which job it's going to. It's going to go to the bucket, which is factory overhead. So we'll right click and copy factory overhead. We'll put that in B 13 right click and paste 123. And then the amount is going to be 1200. We'll credit something run 1200 as well. I'm going to do that with a little like negative of that number. That's like negative plug formula. You could put just the negative 1200. That's fine too. But and then that's going to go to wages payable. Again, it's kind of like processing payroll like we could have said paid cash. We're not dealing with any of the withholdings here. We're just having a simplified payroll journal entry rather than depicting expense. However, it's going to an asset account, an inventory account. In this case, overhead until we we figure out a way to apply that overhead to a job. So we're going to right click on wages payable. We'll put that in B 14 right click and paste 123. And there we have it now. Let's record this one. We're going to post it to the general ledger. Here's factory overhead. Here's factory overhead. It's like the third to last asset account. Same order on the GL. So factory overhead is down here. So it's right there in S 26. So within S 26, I'm going to say equals go left. Going to find that last account. There it is factory overhead and pick up that C 13 enter. So within S 26 equals C 13 bringing the 550 previously in their up by 1,200 to 1,750. That 1,750 then is being used to create the trial balance out of balance by 1,200 until we record the other side. So here's the other side. Wages payable. It's our only liability account, which is nice and this nice small trial balance. So we're going to go find wages payable. There it is. It's going to be in the credit side again. I'm in X 20 X 20. We're going to say equals and then we'll scroll left and find that that accounts or scroll on left wages payable. We'll pick that up in D 14 and enter. So here's wages payable equals D 14. It was at a credit of 4,200. It goes up in the credit direction 1,200 to 5,400. That then is used to create the trial balance and the trial balance is back in balance debits equaling the credits. Debits minus the credits equals zero still no effect on net income here. And again, even though we kind of paid wages and you might and are thinking if we've thought about companies other than manufacturing companies is probably that there should be an expense related to wages expense. But no, it's there's not an expense because that was part of inventory. Anything that we had to pay for in order to conform or convert the raw materials to inventory is not an expense until we sell the inventory. It's part of the cost of inventory.


Welcome, artistic friends to Monet Cafe Studio. I'm on painting number two in my winter study series. Now, this is a Patreon-only tutorial, but I'm providing it here on the Monet Cafe channel with a sped up version. In this lesson, I decided to do four paintings of the same subject matter, each using a different set of pastels, just one set for each painting. This was painting number one. For this painting, I used the Diane Townsend Landscape A set of pastels. This is a lovely little set of pastels. I've created multiple paintings with it, and now it's time to start on painting number two. I'm once again using this lovely reference image that's from unsplash.com. I will have that in the description of this video along with all product links. The surface is Kanson Me Tants pastel paper. It's an unsanded pastel paper that's quite affordable and great for beginners. What I used was a page out of the gray tones pad. There's 24 sheets. Each sheet is 12 inches by 16 inches. I used the, I think it was the second to last color in that. It's kind of a tan color. And now I have to make a choice of which set of pastels am I going to use for painting number two. I almost chose this set of Jack Richardson reds. It's called, this is a Diane Townsend set called Smokey Blues. But I decided on this set of Sennelier pastels. It's their 40 half stick set. I highly recommend Sennelier pastels and I think you'll see why. Now the only other pastel I'm using, now this sketch part is gonna be sped up quite a bit because I'm doing it four times in each of the videos. But the only other pastels I used are these little pastels called Prismacolor New Pastels. They're normally long and rectangular, but I break them. And they're really just great for sketching. At this portion of the sketch, you could use anything, a charcoal pencil, whatever.  Sanded surfaces of pastel paper are awesome, but they're more affordable and it probably would hurt your finger a little bit to blend like that. But now I'm usually left-handed, but I switched to my right hand. It was just easier to get to these trees. And I'm using this gorgeous dark green to sketch in some of the trees. And I think you'll see the difference between this painting and the previous one to the right. The Sennelier pastels had so many gorgeous golden colors and light colors that were very warm. So that's what I decided to accentuate. Look at those pretty mustardy and ochre colors. So I'm going to let you guys watch this to some music, watch the painting come to life. If you would like to see any of these full tutorials, they are on my Patreon page. It's patreon.com slash Susan Jenkins. And it's only $5 a month, not $5 a day or $5 a week, just $5 a month. And you unlock hundreds of lessons and you support this channel, Monet Cafe. It's what keeps the free lessons coming because people support me on my Patreon page. But this lesson, number two in the series is real time on my Patreon page with full commentary. Plus we have a lot of fun. I get to see your work, we have sharing platforms. But anyway, it's Christmas time and I just wanted to share some tutorials with you. And I thought some lovely Christmas music would be nice. So enjoy this. I'll be back at the end though for some more comments on the differences between these two paintings. All right, enjoy. Merry Christmas and I'll be back. Almost done at this point, but now I'm adding a little bit more of my lightest highlights on those areas where they might just be catching a little bit of that sunlight filtering through the trees. And again, I got a brag on this little Sennelier set of 40 pastels. They have gorgeous colors. Their application is awesome. And I'm quite impressed that I can get so many layers on an unsanded surface. Typically you can't get that many layers, but for some reason this little set, it's like a workhorse, it did a great job. So can you see the dramatic difference between the two? Some of it has to do with the colors in each of the two different sets. Remember the first one was the Diane Townsend Landscape A set. I love that set. But some of it has to do with how the pastels apply as well. So each set has its own advantages and beauty.  And I love to add a color at the end that gives some pizzazz. And oh my goodness, was this pink just the perfect selection. There were two pinks actually. One was more magenta and one was a little warmer. And I'm just getting a few more skinny trees in there, carving in a little bit more darks in the tree trunks. And here I am, finished with painting number two. Wow, I really loved this one. And I have two more to go. By the way, each of these is six inches wide by seven inches tall. This large piece of 12 by 16 cantson paper fit for paintings of this size. So I hope you enjoyed this. I hope you will subscribe to this channel if you haven't already. And if you would like to bless this channel and me consider becoming a patron of mine on my Patreon page. It's only $5 a month. You get lots of lessons. There's lots of goodies and we have a lot of fun. So everyone have a merry Christmas. I have more coming. I have a snowman tutorial coming. So it should be awesome. All right, everyone. God bless and happy painting.


In New Delhi, India, extreme air pollution is creating a deadly gas chamber for the city's citizens again. The pollution problem is entirely blamed on the country's farmers and their practice of stubble burning. But the real picture is quite different. What is stubble burning? Paddy or rice is grown at massive scales in the states of Punjab and Haryana in North India. When this is harvested, it leaves behind fields of very long straw. This paddy stubble is difficult for farmers to clear. To clear their fields, farmers set fire to this stubble. A large number of fields are set on fire every year around this time. The pollutants from this stubble burning aggravates the already polluted air in North India. But the number of stubble burning incidents in October this year was much lower compared to the same time last year. But stubble burning did not stop. It was only delayed due to the late monsoons this year. A lot of the burning is happening now. Despite the delay, the air quality was still extremely poor in October. So the question is, how much is stubble burning responsible for Delhi's pollution was? And is it right to blame the farmers? There are a number of causes behind Delhi's winter air. Let's take a look at the two major ones. First, the cold weather leads to something called temperature inversion, which results in a higher concentration of pollutants closer to the ground. Second, Delhi air is already extremely polluted around the year. These pollutants come from a variety of sources which remain unaddressed. Let's first take a look at temperature inversion. Hot air rises, cool air sinks. That's simple science. In winters, the simple science causes certain complications. In the summer, the air close to the ground remains warm. So the air rises up along with the pollutants and disperses. Because of this, pollutants don't get concentrated near the ground. But in the winter, there is less sun. The earth's surface loses heat rapidly, causing the air just above the ground to become cooler. And the air in the upper layers remains warm. This is inversion. The layer of cool air is then unable to rise upwards and disperse. This results in a higher density of pollutants remaining stuck in the lower layers of the atmosphere and choking the air quality. So the level of pollutants in the air is extremely high all year round. But in winters, the pollution becomes much worse because of inversion. That is not to say that stubble burning does not play any role at all. But the amount of pollutants it contributes is smaller compared to other factors. Also, stubble burning happens for only a few days every year. Unfortunately, this coincides with the winter temperature inversion conditions. So the industries and others who are primarily responsible for this situation conveniently escape while the blame is focused on the farmers instead. Pollutants from stubble burning can be as low as 12% of the total pollutants in the air. In certain localized areas closer to stubble burning sites, this concentration can go up to 60%. Industries, private vehicles, real estate giants performing constructions, all of them contribute much more to the pollution problem. But the state has only outlawed stubble burning with limited action against other responsible parties. So the ones penalized are the powerless farmers who are already burdened with huge deaths and a host of other problems. We also need to see why stubble burning is happening.  Escalating fields in any other way costs too much money. In response to this, state and central governments have announced joint subsidies to ease the financial burden. But the practice continues. Traditionally, paddy was not grown at such massive scales in Punjab and Haryana. It was only after the Green Revolution that paddy became one of the major crops in this region and one of the main export crops. Green Revolution came to India in the 1960s with the motive of industrializing farming and increasing food grain production. This movement brought in technologies developed primarily by private multinational corporates. But this proved to be very costly for Indian farmers and caused heavy damage to the environment over the years. Coming back to paddy farming, when harvested manually, the paddy stubble left behind is only a few inches high. This can easily be plowed back into the soil while sowing of the next crop. But mechanized harvesting techniques soon replaced manual harvesting as a part of the Green Revolution. The combined harvesters used now leave behind stubble which is much higher in length. This is not easy to clear. It cannot be plowed back into the soil. Hiring manual labor to remove the stubble is too expensive for farmers already burdened with debt. Mechanical equipment for removing paddy stubble is also very costly. Farmers are unwilling to spend so much money on equipment they only require for a few days each year. While the government has announced some subsidies, these are not enough to make the equipment affordable. And these subsidies are only reaching a limited number of farmers. It has also been reported that the cost of equipment has gone up since these subsidies were announced. The government and students in different universities have come up with a number of alternative uses for the paddy stubble. It can be given to paper manufacturers for making paper or power generators for converting into biomass-based energy. These solutions sound great on paper and can also bring additional income to the farmer. But so far there's not been much success in implementing them. Even if the rest of the supply chain is established and the stubble is successfully collected from farms and delivered to industries which can use them, the first step of removing the stubble is yet to be solved. So while it's easy to blame farmers for the pollution and impose fines on them, it does not solve the problem of stubble burning. And even if the problem of stubble burning is somehow completely tackled, the other pollutants in Delhi's air will not let its citizens breathe easy anytime soon.


Chris Cuomo Changing the subject remember this place? The day we shot that video We picked up a couple cocktails to go and while it was only on the screen for a second you may recognize this little guy This is the liquid picnic and it's the first drink. I ever had a Thunderbolt I saw it on the menu and thought gin tomato rosemary black pepper sounds like my kind of weird So I order it and the bartender reaches into a freezer and pulls out what looks like a bottle of water She free pours it into a chilled nick and Nora glass and slides it across the bar I was surprised by the presentation but more surprised by the drink itself I'm delighted. I get to have it again in spite of everything that's happening in the world How about that wash line? Do I know how to nail a drink or what a happy reunion? That is an explosion of flavor Every ingredient that is listed The gin the tomato the rosemary the black pepper are all there. They're all front and center But they are not fighting with each other the only ingredient in here You might not recognize a citrone citrone is considered an original citrus and could be considered the great great great grandfather of lemons and limes Both of which are hybrids in this case the citrone flavor comes from a liqueur by Nardini And yes, it does taste kind of like a salad, but the absolute best alcoholic salad you've ever had Damn, this is a good drink. How all these ingredients get into the drink? I'm not exactly sure I do know that Mike is a disciple of Dave Arnold the author of liquid intelligence and the guy behind Booker and Dax and existing conditions both of which are in New York There's probably a centrifuge involved beyond that. I can't really say but when the drink is this good who cares You've got to try this if you're anywhere near LA check Thunderbolts Instagram for their hours because this is a must That's it for today. Stay safe all the advice professionals, and I'll see you tomorrow. Cheers


Oh, I started two winters ago, so it would have been, we're in 2019, last winter it was ongoing, 2018, so the winter or the late fall of 2017. Well the first set of interviewing that happened, there was approximately 10 to 12 in this region. That was shared with my cohort at the time and since that time going from this past year span I would have had six people interviewed. Well I think that the biggest thing was being able to highlight for myself information I didn't know about my own community. I didn't realize that our Aboriginal Head Start program was the only accredited one for a full day program in, I believe, Canada due to their certification. I didn't realize that we had that in our community. I didn't realize that our on-campus friendship centre was the only one in Canada with that partnership. So just realizing the uniqueness of some of the things that are happening in Northwestern Alberta really was important for me because it helps me in my work on the other side of my life because I'm very involved in community work and volunteerism and that whole world. So getting to talk to people and share information with them about what's available with the online information centre. I think that I felt very happy to be able to approach people that I know and respect because we are a fairly small community with this piece of information that they may not have known about being the National Collaboration Centre and providing the opportunity for their voice to be represented. That made me feel very, very happy to be able to make those connections because quite often Northwestern Alberta, specifically the Grand Prairie Urban Area, is underrepresented or completely missed over in a lot of things that happened. So that was something very valuable to me and to the people that I was able to present the tool, because it is a tool too, that people were very appreciative of the possibility of connecting with people across Canada and seeing other videos about what works and other people's experiences. People were quite excited about that. I do think that the potential for connections was a very valuable part because they're instantaneous. People can go and look right away and find something in a content area that they're curious about and you know how the internet works. One thing leads to another and you can really keep going and so it provides very relevant tools and moving forward, my vision would be to see this continue with the online site, those virtual connections being made between people. I would also like to see, I see a people component, the people getting more involved where the rubber hits the road and people making connections right in their own communities or province to collaborate as groups and move forward with their ideas in person. Because to me, if something's only virtual and it's all online, then my auntie, in her words, she said it can't have spirit, it needs the people to have spirit. That's right. I try to remember that whenever I'm doing any type of a research or anything to do that has a lot of reading that we have to remember the people side of things and make sure that at the end of the day everything goes back down to people physically connecting. So moving forward, I guess my vision would be that some tools are put in place that help people actually connect in, I don't know, sharing forms or I don't know what that looks like but I think that would be great. I think this is a very interesting process around storytelling but on a national level there's many layers here and this is a story that's being told with super amount of chapters but really it's a story of what people have created in their own communities that are considered best practices by their own people and I think that story is a new story. We don't often hear it that way. We often get these books from the government that say best practices. Here, phone this number. But this is a visual story, an auditory story that people can engage in and relate to their own realities and decide if they want to go down that path and learn a little more and so I see it as a form of storytelling and I think it's a great tool. We have to embrace the digital age that we're all in and I think it's fantastic. I see it as a networking piece moving forward. I think it would be really neat if they incorporated a chat function where people can chat in real time together like a messenger function. It's not the people part but at least it's people connecting their ideas instantly like a real conversation. Lots of times we think about something like oh yeah I should ask about that and then we forget and if we had that functionality technology wise to say hey person in Nova Scotia Head Start program to ask their opinion on something or ask for a resource and to get an instant response for people that are online that would be great. Absolutely because we're in Cree territory most of our resources are Cree. It would be very interesting to have outside resources because we do have other people asking in this area specifically for something that we don't have readily. I think that there are numerous levels of knowledge holders you know and it would create pathways to help facilitate getting to the right person in terms of what it is you need to know and if it's something that can be talked about online or read about it'll be there. If it's something that needs to be in person protocol then that would be laid out as well. It would be an avenue for that stopping point by people who do have the ability to say no that cannot be discussed here right now. However you could approach such and such with protocol and talk to them in person and it would be people directing that flow and protecting I guess as you say also. I think that the information gathered on a national level if all of it is coded and all of the themes and the sub themes everything is laid out as to what is being said where what's important all of these pieces. I think that's a very valuable tool that can be shared within the curriculum. In Alberta anyway we have teacher quality standards in the curriculum that need to be implemented very soon and a lot of schools are not floundering that's not the right word. Are unsure of what are appropriate resources and approaches and I think that some of the information that's been collected with this project would be a great place for them to draw upon and create their own discussions regionally. I think when when I was I did my own little area of research here and I kind of did my own coding for my own purposes to report and you know there are five main themes that came out of all the interviews that I conducted that were important to the people here in their perspective and it had to be anything to do with teaching had to be regional specific language was fundamental appropriate knowledge keepers being used there was numerous things and all all things being taught needed to be experiential touch taste feel type stuff considered so that was in our region what the people were saying collectively it would be interesting to see what I'm sure it would be very similar in Saskatchewan or Manitoba I think if people were removed from the process and it just stayed as an online vehicle that could happen but I think that the interviews and the people were very cautious about the content that was put online and so that type of information is protected and not there however people could go online and take have their own takeaways and go and create their own thing out of it that could happen but I'm not I'm not really too sure and it's hopefully up to the rest of the communities and professionals to see that what it's happening and to not support it and to ostracize or isolate those people that are involved in that out of the process hopefully you know out of everybody's learning and goodwill people would educate themselves enough to know what is appropriation and hopefully that's a piece of what can happen with this I think that I would take it to the voices of the children I would I would include the children's perspective in a very less formal manner of course but to capture I guess different age groups what their understanding is of some basic concepts that we're all hoping are instilled in our communities and nation just to see where kids are at with that what their opinion is today it would be very interesting to hear what they perceive now and what they want to know and to me I just think it would be we're always amazed at what children have to say because they speak with such truth and they sense they sense when things are not right in a sense when their energies are strange or they feel uncomfortable in a certain situation they might use children's words but they can be very clear about what what they're trying to say yeah I think that would be very interesting because you know we often focus on the elders and the professionals and these groups which are important but the kids to have a voice would be an interesting perspective I think if they took the time to go through the site and look at the regional I guess that breakdown would need to happen as to what's happening in their province but I think the tool yes actually I do think it will help educators because there's a lot of people out there that are wanting to know things and they don't know where to start and so if this is able to provide connections for people to even just go to a website or phone somebody that's a starting point that they didn't have before in a very specific area I think so maybe regional contact people who can help facilitate something um but I do think personal personnel or people need to be included I do I don't know what that looks like but I really do think it has to always be in place


You might know me from a little pet project called Babble. I also work at this company called Cloudflare. I work on the UI team. You should all come work there, because we use this really awesome, terrible, terrible UI framework. Anyways, you can also follow me on Twitter at the James Kyle. So you want to know how to build a compiler, or maybe you don't, and now you're just stuck listening to me.  The format of this talk has a bit of a backstory. I got into compilers through Babble, or 6 to 5 at the time. I always understood what compilers did from a conceptual level, but I wasn't really able to grok them until the last year and a half. The reason I was able to get into them is because when I first looked at the 6 to 5 code base, it was the first time I was able to read the code of a compiler and really understand it. After Babble blew up into a massive project, I became interested why we weren't also blowing up in the number of contributors. I learned that most people are pretty scared of compilers. It's thought of as this totally unapproachable computer science-y thing that only the nerds of the nerds can understand. I realized that we need to do a better job of teaching people and making it more approachable to people. So I decided that I was going to go out and really learn everything there was to know about compilers. I jumped onto Amazon, and I ordered the essential books on compilers. And about three weeks later, I discovered why compilers were totally unapproachable. Those books are 500 pages of the most dull explanation of compilers that one could ever have written. I love compilers, and I was so bored, so bored reading them. I couldn't even come close to finishing them. The learning problem with compilers is not that they're complicated. It's that we teach that they are complicated. So what I'm going to do today is give you an over-simplified but reasonably accurate overview of what most compilers look like, and then I'm going to try and make it more real to you by walking through the code of an actual compiler that I've written. So what even is a compiler? A compiler is simply a tool that transforms source code written in a higher level language into a generally lower level target language. But let's go back to the fundamentals to explain why they exist.  And they're sort of pure form. They're written as binary. And this is known as machine code. Obviously, there is no way a programmer could understand and be productive writing code like this. So CPU architectures support a mapping of binary operations as an easier read language like this. And this is known as assembly code. It's a super low-level programming language that gets converted into binary code by a thing called an assembler. Externally, an assembler looks a lot like a compiler. It's taking one type of code and translating it into a lower level type of code. However, internally, they're much simpler than compilers. Ignoring any kind of optimization an assembler might be doing, they're really just a straight mapping of one syntax to another. However, assembly code is still too low-level to be really productive in. So the next level up is source code. And this is where the vast majority of programmers enter. These are programming languages that you are familiar with and would actually write large pieces of software in. Source code is different than assembly code. In most cases, it does not map directly to machine operations. It's meant as an abstraction to allow humans to understand what is happening and be productive in writing code. As such, an assembler wouldn't be able to translate source code down into machine operations. We need something that can understand a more complicated syntax and transform it very intelligently into optimized lower level code. And this is where a compiler comes in. Since compilers are doing complicated operations, they have been broken down into a couple different stages. These stages vary compiler to compiler, but they all fit within these three primary groups. Parsing, transformation, and code generation. Parsing is taking raw code and turning it into a more abstract representation of that same code. Transformation takes that abstract representation and manipulates it to do whatever the compiler wants it to. And code generation takes the transformed representation of the code and turns it into a new string of code. Parsing gets broken down into a couple different phases. The two biggest ones that you will see are lexical analysis and syntactic analysis. Lexical analysis is pretty simple. It takes the raw code and it just splits it up into these little things called tokens.  They could be numbers, labels, punctuation, operators, whatever. Syntactic analysis will then take these tokens and reformat them into a representation that describes each part of the syntax and their relation to one another. This is known as an intermediate representation or an abstract syntax tree. An abstract syntax tree or AST for short is a deeply nested object that represents the code in a way that is both easy to work with and tells a lot of information. Now, this might be hard to visualize so let's look at what this code would be. So we would represent tokens like this. We have an array of objects with a type of paran or name or number and each of them have the same format of a value. An abstract syntax tree gets represented like this. You have a much more descriptive format for them. You have a program with a call expression named add with parameters that could be a number literal or a nested call expression. And this is the final representation that we'll use for the rest of the compiler. The next type of stage in a compiler is transformation. Again, this just takes the AST form from the last step and makes changes to it. It can manipulate the AST in the same language or it can translate it into an entirely new language. And let's look at how we would transform an AST. You might notice that our AST has elements within it that look very similar. These are objects with a type property. Each of these is known as an AST node. These nodes have defined properties on them that describe one isolated part of the tree. We can have a node for a number literal with a value of that number or a node for a call expression with a name and the parameters. And when transforming the AST, we can manipulate nodes by adding, removing, replacing properties. We can add new nodes. We can remove nodes where we can even leave the existing AST alone and create an entirely new one based on top of it. And since for our purposes, we're gonna be targeting a completely separate language, we're gonna focus on creating an entirely new AST that is specific to the target language. In order to navigate through all of these nodes, we need to be able to reverse through them. This traversal process goes to each node in the AST depth first. So for the following AST, we would go to the top level program and see that it has a body and it was an array of nodes and we go to the first one, we go through them linearly. We had a number literal which doesn't have children. So we move on to the next one, which is a call expression which does have children and so forth. The reason I use the word visiting is because there is this pattern of how to represent operations on elements of an object structure. The basic idea here is that we're going to create a visitor object that has methods that will accept different node types. And when we traverse our AST, we will call the methods on this visitor whenever we encounter a node of the matching type. In order to make this useful, we will also pass the node and a reference to the parent node. The final phase of a compiler is code generation. Sometimes compilers will do things that overlap with transformation, but for the most part, code generation just means taking our AST and stringifying it out. Code generators work several different ways. Some compilers will reuse tokens from earlier or others will have created a new separate representation of a code so they can print it linearly. But from what I can tell, most use the same AST we just created and that's what we're gonna focus on. Effectively, our code generator will know how to print each of the different node types and it will recursively call itself to print nested nodes until it's printed one long string of code. And that's everything. That's all the major pieces of a compiler. And that's not to say that every compiler looks exactly like this, but compilers and compilers serve many different purposes so they might have a lot more steps than I've detailed here. But now you should have a general high-level idea of what most compilers look like. So you can all write your own, right? Yeah, no, of course not. When I was thinking of how to create this talk, I knew I wanted to frame things from a more comfortable perspective, but I also wanted to teach in the same way that I learned by reading actual working code. In my proposal, I declared that I would write the world's smallest compiler thinking to myself, that would be super easy. I just have a couple of requirements. It has to demonstrate what a real world compiler would do. It has to do something complicated enough to justify building a compiler. And it has to be small enough, a piece of code, that it can be explained in a conference talk. It turns out I was a little bit confident and that's really friggin' difficult. I tried all sorts of things and eventually I just gave up. There was no way I was gonna write a compiler for this talk, it just wasn't a practical idea. A few months passed by and now I'm learning about list languages. I play around with a couple different languages and I discovered how powerful their compilers are. Interested, I started looking into how list languages get compiled because their syntax is very different than the C-like language that you're all familiar with. And then I realized that list was the perfect syntax for this compiler. It's a super simple syntax to parse and it's really easy to translate into a new syntax. I played around with the idea and after only a couple of hours I had a viable candidate for a conference talk. The entire source code is around 250 lines of code. If you're unfamiliar with lists, it looks something like this. We basically just put the parens on the outside. So in JavaScript it's that, that, that, that, that. And then you could do a mathematical operation like that, just that, that, that. And the cool thing that Yehuda pointed out to me was that handlebars, he pointed out that handlebars syntax is actually a type of lisp. I didn't even, like, I didn't even incurred to me, but it is. And so yeah, that's what we're gonna do. We're gonna take a lisp syntax and we're gonna translate it into a C-like syntax with JavaScript that you're all familiar with. So here it is, the code of our compiler. We're gonna start off with our first phase of parsing, lexical analysis, of this thing called the tokenizer. We're gonna take our string of code and we're gonna break it down into an array of tokens. We'll start by accepting an input string of code and we're gonna set up two things, a current variable for tracking our position in that string like a cursor. And then we're gonna set up a tokens array for pushing our tokens to. We start by creating a while loop where we are setting up our current variable to be incremented as much as we want inside of the loop. We do this because we want to increment current many times inside of the while loop because our tokens can be any length. It's not one loop per character. We're also gonna store the current character in the input. The first thing that we want to do is check for an open parentheses. This will later be used for call expressions, but for now we only care about the character. We check to see if we have an open parentheses. If we do, we push a new token with the type paren and set the value to an open parentheses. Then we increment current and we continue on to the next cycle of the loop. Next, we're gonna check for a closing parentheses and we'll do the same exact thing as before. Check exists, push a new token, increment current, continue. Moving on, we're now gonna check for white space. This is interesting because we care that white space exists to separate different characters, but it isn't actually important for us to store as a token. In fact, we would only just throw it out later on. So here, we're just gonna test for existence and if it does exist, we're just gonna continue on incrementing current. The next type of token is a number. This is different than we've seen before because a number could be any number of characters long and we want to capture this entire sequence of characters as a single token. So we start this off when we encounter the first number in the sequence. We're going to create a value string that we're gonna push characters to and then we're gonna loop through each character in the sequence until we encounter a character that is not a number, pushing each character that is a number to our value in incrementing current as we go. After that, we push our number token to the token's array and we continue on. The last type of token will be a name token. This is a sequence of letters instead of numbers. They are the names of the function, the call expressions in our list syntax. Again, we're just gonna loop through all of the letters pushing them to a value just like we did with numbers and we push the value as a token of the type name and continuing. Finally, if we have not matched any character by now, we're just gonna freak out and throw an error. The end of the tokenizer, we just simply return the token's array and that's it, that's the entire tokenizer. So now is the parser. Here, we're gonna take this token's array that we've generated and we're gonna reformat it as an AST, like that. Okay, so we define a parser function that accepts our array of tokens. Again, we keep a current variable that we use as a cursor but this time, we're gonna use recursion instead of a while loop. So we define a walk function. Inside of the walk function, we're gonna start by grabbing the current token. We're gonna split each type of token off into a different code path starting off with the number tokens. We test to see if we do, in fact, have a number token. If we have one, we'll increment current and we will return a new AST node called number literal and we'll set its value to the value of our token. Next, we're gonna look for call expressions. We'll start this off when we encounter an open parentheses. We'll increment current to skip that open parentheses since we don't care about it in our AST. We create an empty node with the type expression, a call expression and we're gonna set the name as the current token's value since the next token after open parentheses is always gonna be the name of that function. We increment current again to skip the name of the function and now we want to loop through each token that will be the params of our call expression until we encounter a closing parentheses. So, we create a while loop and we continue it until it encounters a token with a type of paren with a value of a closing parentheses. Now, this is where recursion comes in. Instead of trying to parse a potentially infinite number of nested sets of nodes, we're gonna rely on recursion to resolve everything inside of it. To explain this, let's look at our list code. You can see that the parameters of add are a number and a nested call expression that includes its own numbers. You'll also notice that the tokens array that we have, you can actually see it, but if you look at the code, you can see multiple closing parentheses and we have to make sure that they match. So, we're gonna rely on the nested walk function to increment our current variable past the nested closing parentheses. So, back to the code, we'll call the walk function which will return another node and we'll push it to the parameters of our node. Finally, we will increment the current one last time to skip the closing parentheses and we'll return the node. Again, if we haven't recognized the token type by now, we're gonna freak out again and throw a syntax error. Now, we're going to create an AST which will be a program node. And you'll notice that it has a body which have effectively statements of that program. And we're gonna keep calling our walk function in a loop until we've run out of tokens and just keep pushing those as statements into our AST body. And the reason that we're doing this inside of a loop, as you can see, is because they can be next to each other rather than nested. At the end of the parser, we will return the AST. Next up, the traverser. So now we have our AST and we want to be able to visit all the different nodes in that AST with a visitor. We need to be able to call the methods on this visitor whenever we encounter a node with a matching type. So we define a traverser function which accepts an AST and a visitor. And inside, we're gonna define two functions. A traverse array function that will allow us to iterate over the array and call our next function. Traverse node. Traverse node will accept a node and its parent node so that I can pass both to our visitor methods. We'll start by testing the existence of a method with a matching type. And if it does exist, we will call the node and its parent. Next, we're gonna split things up again by the current node type. We'll start with our top level program. Since program nodes have a property named body that has an array of nodes, we'll call traverse array and traverse down into them. Remember, traverse array will in turn call traverse node through causing the tree to be traversed recursively. A lot of words. Next, we'll do the same for call expressions and traverse their params. In the case of number literals, we don't have any child nodes to visit, so we'll just break. And again, if we haven't recognized the node type, we'll throw an error. Finally, we kickstart the entire process by calling traverse node with our AST with no parent because there is no parent. Next up, the transformer. Michael Bay doesn't go in here. Our traverser, our transformer is going to take our AST that we have built and pass it to our traverser function with a visitor and it will create a new AST. This new AST is designed for JavaScript. In fact, it's actually the Babel AST that's right there. So we have our transformer function which will accept the Lisp AST. We'll create a new AST which like our previous AST will have a program node with a body that has an array. Next, I'm gonna cheat a little and create a bit of a hack. We're gonna use a property named context on our parent nodes so that we can keep our traverser flat. Inside of the methods of the visitor, we're just gonna keep pushing nodes to that context and you can see it's basically just mapping the old AST to the new one. Normally, you would create a better abstraction for this but for our purposes, this keeps things simple and like easy to read. So we'll start by calling the traverser function with our AST and a visitor. The first visitor method accepts number literals. We'll create a new node also named number literal and we'll push it to the parent context. Next up, call expressions. We'll start by creating a new node call expression with a nested identifier that is the name of the function. Next, we're going to define a new context on the original call expression node that will reference the expression's arguments so that we can keep pushing arguments to it. Then we're gonna check if the parent node is a call expression. If it's not, we're going to wrap our call expression with an expression statement. We do this because the top level call expressions in JavaScript are actually statements. Last, we push our possibly wrapped call expression to the parent node's context and continue to build up our AST. At the end of our transformer function, we'll return that new AST that we've just created. Now let's move on to our last face, the code generator. Our code generator is going to recursively call itself to print each node in the tree into one giant string. We'll break things down by node type. And if we have a program node, we'll map through each node in the body and we'll run them through the code generator, joining them with a new line. For expression statements, we'll call the code generator on the nested expression and we'll add a semicolon because we like to code the correct way. For call expressions, we will print the callee, which again was that identifier of the name of the function, add an open parentheses, we'll map through each node in the arguments array and run them through the code generator, joining them with a comma, and then we'll add a closing parentheses. For identifiers, we just wanna return the node's name, which is a string. And for number literals, we just wanna return the node's value, which is also a string. Again, haven't recognized the node, freak out. Finally, we have our compiler function. Here, we're gonna link together each part of the pipeline. We'll take the input and pass it to the tokenizer and create our tokens. We'll take the tokens and pass it to our parser and create an AST. We'll take the AST and pass it to the transformer to create our new AST. We'll take the new AST and pass it to the code generator which will create our output string and we'll finally return our output. And that's it. That is all of the code in our compiler. And, but let me prove that it works to you. The tokenizer, actually I need to move up to that screen. The tokenizer will take our string and generate tokens and if I can match my cursor, boom, it does. Let me prove it again and boom, it does. The parser will take our tokens and generate a new AST and boom, it does. It does, yeah, there we go. The transformer will take our generated AST and turn it into a new AST. The code generator will take the new AST and generate the output and it does. Finally, from beginning to end, running it through all of them, we will run it through the tokenizer, the parser, the traverser, the transformer, the code generator and it generates our code. And that is it.


Good morning, everybody. We got the weasel with us again We are headed down to Chicago Chicago we're headed down there. We'll be there tomorrow evening. I Want to unload Thursday morning and then Thursday at noon? We have to reload in Michigan City, Indiana and that load is gonna take us to Hamilton, Ontario And then we have another reload Friday evening at That same place again for another load of that wide steel 10-foot wide steel And that's in now. Where was it St. Catharines, Ontario? And then that's going back to Alberta We got the next whole week Drawn out for us. Oh shoot. I didn't put it into my GPS yet. Good thing. I know how to get to the border And all the way to Chicago I'll have to put that in at my next stop First stop is Flying Jay in St. Agath, Manitoba We need to get some coffee. I don't need to fill up the tanks. We're good there We'll fill up in the States for some cheaper juice But I do need some coffee I don't have a long day ahead of us yet We need to get I'd like to get to Black River Falls, Wisconsin tonight, but we'll see It's another eight or nine hours from here Well, we'll see. Well, who left this squeegee sticking out like this. Look at this Who does that? One second I have to grab this with my hand Who does that really?  Okay, so we have a reload out of like I was saying Michigan City I just got the information for it here. Got to pick it up on the last of the month And it doesn't say when it has to be there by it just says I got to deliver it to Hamilton, Ontario I guess just got to get it there as soon as I can which will probably be Well, if I pick it up That'll be Thursday I'm probably gonna try to deliver it Friday yet. I'm assuming Guess we'll see we'll find out first things first Liquid life The day can now officially begin. This is gonna be so good. I'm not picky with coffee As long as it's got caffeine in it. I'm picky about caffeine D-Caf coffee. That's a waste of coffee. I don't have caffeine. What's the whole point of drinking coffee? If it doesn't have caffeine Right, I got a pull into this scale. So I'll see if they Are gonna let me bypass within the scale here or if they actually want to scale me Watching these lights above above the road here. It stays on the left. I just keep left Okay, so you're gonna let me bypass. Well, that was pointless of telling me to pull in then Because my pre-pass system in the truck here told me that I had to pull into the scale I couldn't bypass But now the scale is telling me to bypass. I could have just stayed on the road Minnesota Just into the United States a little ways into the United States This is the first big scale on our way down to Chicago. I guess they didn't want to see me after all Maybe they don't like me. That's fine with me exit 127 sock center, Minnesota gonna stop by the gym here and Do a little workout. I Didn't work out while I was at home I did actually I shoveled two feet of snow off my entire roof and it took over three hours That was a pretty good workout But I want to go into the gym here today and keep my routine going because you know me if I don't Force myself to keep my routine and force myself to go Before you know it I missed one day then I missed three days then I missed a week I have to force myself to go even if it's just for a little while. I've got to stop by the gym You guys like that too I'm terrible for that Look at me with my whole walking thing from before our wedding I was so bent on getting in shape for the wedding and as soon as the wedding was over I didn't go to the gym for a few weeks then all of a sudden boom It was almost two years since I've been to the gym So snap fitness Snap fitness is just off to the left here. I'm gonna go park off to the right and walk on over So that was an hour and 15 minutes Whoa, I should be hurting again tomorrow. That's good. Oh boy, but I still got some weight to lose. Look at this when I have to Stop unbuttoning Or how do I say this the day I have to stop unbuttoning my button of my pants to be comfortable sitting in my truck I've arrived at a weight. I'm comfortable with Until then I still have to undo my belt and button the button My arms are just like heavy right now just I did my biceps triceps Packs what else did I do? went for a jog and My shoulders. Yeah, so my and my abs too so pretty much my upper body and a little bit of running Yep, I need to do that every day or more often Maybe every second they got to give my arms and my body a chance to heal But on the days when I'm letting my muscles heal up I should be doing some walking or running at least right at least some walking gotta keep this body active. I Sit for a living so some may call me a professional sitter. So I have to make sure that I Get my body active. Otherwise you turn into a A 400-pound steering wheel holder and I refuse to be one of those Gotta make the effort Let's get back out there on the highway. I want to go a little bit further yet I was lucky enough that I was late at night that there's nobody around That I actually got to park right in the gym parking lot That's great. If it's too busy like if it's during the day and I come here. I always got to park further away I Usually park on the street by McDonald's over there Then it's like a about a block walk, which isn't bad But by the gym or in the gym parking lot that I can keep an eye on my truck from inside the gym It started to snow a little bit while I was in the gym Hopefully that won't cause any problems down the road So I don't got to go through there tomorrow during the day ask midnight and I'm getting really tired I'm pulling over we haven't made it past Minneapolis yet, but we have all day tomorrow to get to our destination Only 700 kilometers to go. So no less than 500 miles and we'll be unloading the next morning So I'm gonna pull into this rest area here and see if I can find somewhere to park for tonight Let me do the rest tomorrow. I'm tired And I would much rather Uh stop now then drive to you know, like three in the morning Oh boy, I don't know if they're leaving me parking here for me These guys are already blocking part of the driveway Like I said, it's after midnight. So Might have a hard time finding parking at all. Oh This guy took up two spots How kind of you? Good sir There's a bit of snow on the ground.  It's not that hard Just take up one spot And this guy Right in the middle of two spots You know, I think I might still be able to get in there I'm gonna see if I can get in there Let's see if I can get in between these two guys I'm just gonna have to cut it really wide Bit of snow here that hasn't been cleared yet I don't want to get stuck either There we go.  You see what I did right there Day is done logs are filled out just doop. Doop. Doop done no more of this mathing Writing lines writing where I am trying to figure out where I am. This thing already knows where I am I don't need to figure it out every time sort of guess I don't I like it. So we're going to bed here. It's snowing pretty good outside. I'm gonna walk the weasel and uh Get ready to Hit the hay back there. I'm actually pretty excited to try out my new mattress that I got It's actually I bought it for Britt Because when she comes on the truck, I want her to have a softer bed to sleep on then just those Little uh What would you call them cushions? Not even they're not even cushions. They're just pads pretty much But it's so that we can fold it into a table, right? So it's like, uh, we got it from Costco It's a memory foam mattress so you can roll out on it. I'm actually pretty excited to try it out I'm just gonna go and do a quick Walk around the truck here Make sure that I'm in a position where I'm only taking up one spot And make sure that I'm in a spot where uh The other drivers around me can get out Whoa. Oh, he's got plenty of room to get around me Yeah Oh boy There's lots of snow here This is my load Just economy lumber. I'm gonna need the tri axle for that wide load of steel out of Ontario Let's have the tri axle with me again Oof got a little bit of snow on the back. I should probably wipe that off right now before I Forget you know, I'll be out here to check in the morning again anyways, but That snow was coming down pretty good right now So I did have to park a little closer to this guy because that guy was taking up more than one spot, but I think there's plenty enough room for people to get around me. They can drive through I can actually come back a little bit further even Just need to make sure that people can get through here, you know Oh, I hope that doesn't snow too much tonight. I've had enough snow for this winter already I'm really looking forward to beaches and camping in summertime This is the mattress topper. I just pulled it out somehow. I gotta get I gotta cut this off And then let it expand It's heavy And then I got this cover up here that I'm gonna put over it yet And you put a sheet on top of that, but I don't got a sheet with me I thought I carried an extra sheet in here If not, then I'll just put an extra blanket on top for now, but Here goes nothing. I have no idea what I'm doing here, so Okay, so let me put that there. I gotta cut this somehow. I don't think I got scissors in here though I got a knife though. I got a couple of knives. I got a whole bunch of knives You got scissors? Oh wait, I think I do got scissors. Do you need scissors in here? I'm pretty sure. Wait, maybe not. Oh, yes, there is. There they are Okay Little itty-bitty baby scissors. Okay, so I gotta get rid of this big box. That's gonna be on their diesel Burt myself here While I get this mattress topper, is this gonna work? Scissors aren't sharp enough Okay, I'll use my knife. I just got to be very careful not to Cut the actual mattress, right? Or, because that's nice and sharp You guys see what I'm doing here? I really don't want to cut the mat. Oh this thing is so sharp Just gotta barely touch it in between the mattress and the bag scissors when you got these guns That is pretty hard It's not as wide as I thought it would be I think you gotta Oh, look how compressed it is Oh wow And that expands out to uh How thick was it again? 7.6 centimeters or three inches So this is going to expand Sorry, that's going to expand out to three inches yet. It's a little big. It's a little wide For this bed, but that's okay You can always cut a little bit of it off So it fits properly. Oh my okay, there we go. It smells funny. I'm already expanding quite a bit Quite quickly. I'm supposed to just let it sit for a while Yeah, it's a double It's a little bit too big, but that's okay. Okay, I'll just cut a little Little piece off the end and it'll fit in just perfect. I'm just gonna wait for it to expand fully Before I do that It feels like it's going to be nice and comfy though Look how thick it is now, eh? Crazy just expands. It's pretty big. It's pretty big. I gotta cut that whole back piece off So it fits on here properly, but Hey, at least it's not too small, right? Probably could have gone with a twin, but yeah, well Looks awesome, though I don't know how I'm going to cut it Guess with a little bit bigger of a knife than this one Or maybe just with this one. That was a really sharp knife. Hey Might just do with that So thanks for watching today guys I appreciate it hit that like button if you like the video subscribe if you want some more We make a new video every day got over 2,000 videos on the internet So there's a lot to catch up on if you're new, but that's okay. We're glad to have you here Take care and I'll see you tomorrow.


Far from traffic investigations. Thank you. That's Sergeant Mike far F. A. R. R. Denver Police Trapping Investigations Unit here today to update you on fatal accident investigation that we investigated last night at the location of First Avenue and Downing Street at about 7 35 p.m. District officers and traffic investigators were called to that location on what was initially reported to us as a an auto versus bicycle collision. That was also a hit and run. Once we arrived on scene, we were able to clarify that bicyclist was not involved. It was in fact a pedestrian. So this crash will be an auto pedestrian crash. And while initially reported to us as a hit and run, it was discovered that the driver of the automobile traveled from the location of the crash at Downing Street to Ray Street, where he did come to a stop, did make a phone call to 911 and reported that he was in a crash and waited there for officers to respond. So this crash will not be classified as a hit and run from that standpoint because he did make that phone call. However, officers did upon contacting the driver of the vehicle discovered signs that he was intoxicated. And so we have investigated him for having been driving under the influence. Those test results will for a chemical test will not be known for some week. So I do not have a BAC for you only to say that he did have indications of impairment when he was contacted. So the driver of the car is identified as Jesus Carino.  He has been arrested for investigation of vehicular homicide and driving under the influence. Obviously is this investigation moves forward will eventually present this case to the district attorney for an official filing of charges. Whatever they file in the end, of course, is up to them. We did learn that our victim last night, the pedestrian Colleen O'Connor last night, we received information, which I believe has been confirmed today that she was one of our friends in the media, a member of the Denver Post reporter team. And so if that information has been out there, I believe we have confirmed that she was in fact an employee of the Denver Post. So our condolences to our friends in the media for for this loss. So at this point, that's really the wrap up for the information I have if there's any questions. No, no, it appears as though he is traveling on First Avenue eastbound is crossing the intersection on a green light when strikes the pedestrian. So we believe that the pedestrian is in the intersection against the signal light. And then it takes him eight blocks. So we're talking downing to approximately race eight blocks to come to a stop. But he does stop. He does remain there does make a call to the police. But I don't believe he was turning off the street. It was through on East First Avenue. That's what the witnesses tell us is that the automobile had the green light and that the pedestrian was in the roadway against the signal. So the caution there obviously is this. You have to obey those signals. It's it's the safest way for our automobiles for our pedestrians for our bicyclists for our scooter riders to interact with each other safely as the signals are there for your help and your protection. And apart from being a law violation, it's just the safest way to get across the busy streets of Denver. We haven't had a chance to do that analysis yet. So that's going to come as the investigation moves forward. Yes, we do have a reasonable belief he was driving under the influence and that is under investigation. I don't know. We haven't completed the investigation. That's all part of the background. Yes. So he is under investigation for vehicular homicide and driving under the influence. You know, that's the information the DA will get to consider if they choose to add hit and run, that's going to be their purview from the law. It really requires you to stop. Try to render aid to anyone who is injured, which he did through a call through EMS. Is it traditional to go back and actually render that aid in person? Well, again, that's going to be for the DA to make a decision. He did fulfill the requirement of notifying the police and remaining there until the police arrived. So from our standpoint, it will not be investigated as a hit and run, but if the DA chooses to accept that charge, that is their decision to make. No, we won't go into specifics of those indications at this time. We don't have a bicycle involved in this crash at all. She was transported and declared at the hospital. As I've explained, we will present this case to the district attorney. We have that requirement within 72 hours of arrest. We present the case and the DA has final decision. What charges if any are filed? So that will come through the DA's office within the next three days. You know, I couldn't address that without really looking at the stats of that. There are crashes that occur there that I'm never involved in because they don't involve serious injury or fatal injury. And so for me to address that now without having the stats, I think would be unwise. I just don't know. I'm getting a sign that that about wraps us up. So thank you. Again, our condolences to the Denver Post and our friends in the media for the loss.


What's up everybody, Jason here for jazby's casebase.com. Technically guys, this might not be the last one. I figured since every other hip parade we've done the last couple days, I've countered the second filler, only needed to do one. Now this one did sell out, but we still have nine left straight up. If people don't buy into the next spot straight up, sell it out, then I'm gonna turn that next one, number 47 into the last last one. But for now, technically is last one. This is a nine spots in hip parade giveaway with the 2021 Mosaic cereal box, one box break, number 46. Now hopefully this is the last one, but if not, number 47 won't be posted. And basically guys, just again, I'm the other filler, we're randomized customer names team to distribute the hits up, then we'll come back, randomized only the customer names I bought in. I just deleted it, but it's basically these names here. And the top nine out of the 30 get in. So if you do wanna buy into the break guys, break is posted there. All we need to do is sell these nine straight up spots and then we can sell it out. But if it doesn't sell out in the next 10, 15 minutes, then I'm gonna cancel it and turn it into another pack filler. So let's do the break first. Here we go. Roll it. Six, two, eight times. Good luck. One, two, three, four, five, six, seven, eight. Eight times, six to eight. Brett down to K, Y. We got six, two, eight. One, two, three, four, five, six, seven, eight. Pelicans down to the Indiana Pacers. Six, two, eight, eight. Now again guys, quick little pack filler so no need to trade, no trade window, nothing like that. Let's just close it, stick to what you got. I'll show your teens really quick. But it's just a quick little cereal box so it's just a little quick pack. Cereal box here. And you're looking for still stained glass but you're looking for the little reactives that you can only find in here too as well. But you can still get everything out of stained glass. Straight fire, all that stuff. P.J. Washington, Jr., Norman Powell, Jordan, Steve and Lamar Stevens rookie. We got Dirk and introductions. I don't know, that's what I was trying to tell people earlier is like I kind of miss it being so easy to pull because it was just exciting. But if you guys noticed the last year's kabooms, some of the players really dropped down to price. Like they were like less than like $100 sometimes. You know what I mean? So I figured maybe they're trying to revamp it up to make it kabooms kind of really exclusive to kind of help drive up the price. Cause like I said, I don't know if you guys remember those football case hits that Fifth Braid does but they put so many kabooms in there but they're probably all under like $100 barely. You know what I mean? So I just thought it was cool, exciting to pull one all the time, but maybe they just weren't as rare. So I hope I'm correct and I know I keep on saying it but I hope that the market reflects on this year's kabooms to be a lot more expensive then cause they seem so hard to pull. And it's not just here. People are talking about it everywhere. All right, so here we go guys. Top nine get in, roll it four and one, five times. Good luck. One, two, three, four and five. Five, Chris, Steve, Brett, Donald, K.Y. Brett, Herman, Donald and Brett, congratulations. Top nine are in. So let me paste you guys' names in here. And like I said, if we don't get any of the orders into the next 10, 15 minutes for the swaths straight up, I'm going to cancel that nine straight up swaths we're gonna put in a filler. Appreciate you guys.


you realize in life don't we that emotions don't organize themselves into neat categories for us. They just present themselves amongst all the other emotions we're having and often one emotion can feel like another one but they are not the same. And I think developing an emotional accuracy in our ability to interpret them, this emotional literacy where we can give correct interpretation to an emotion we're feeling, what that does is it delivers us from being at the mercy of rogue unnamed misunderstood misinterpreted emotions that hijack our internal world.