Hey everybody, welcome back to the channel. Today, we're gonna be talking about scratch pads. Now, scratch pads are not a window manager-specific thing. Like they exist in I3, they exist in DWM. There's a program that is window manager agnostic, agnostic called, oh hell, I don't remember what it's called, like T-flop or something, I don't know. I'll put the link to that in the description below so you know exactly what I'm talking about, because I can't remember the name. But when I first saw the term, I never didn't know what it hell was. I've been using I3 for months and months and months, almost a year, and I had no idea what a scratch pad was. I never used an I3.  So when I first started doing my research on DWM, DWM, I came across the term scratch pad.  I mean, I'm assuming that it's analogous to something like in the real world scratch pad, like something that you can doodle on or whatever. Excuse me. The burp totally made me lose my straight of thought. That was gross. Anyways. So I was like, what's a scratch pad? So I did a little bit of research and I realized that it's a terminal, basically, but a terminal that kind of exists on a workspace that doesn't exist or an invisible workspace, if you will. If you want to learn what a scratch pad is, and you're using DWM, there is a patch for it. So first I will show you what the patch is and I will do that on the main screen here and switch over to it so that you can actually see it and zoom in so you can actually see it. Okay, so the patch that I use to do this is DWM-scratchpads2020. This I'll show you in the browser as well. Actually, I can do that. Let's see here, DWM and patches and scratchpads. Okay, it was this one, I think. Yep, this one here. And again, I will put a link to the description in the description to this patch as well. So the question you have to ask is, what is a scratch pad and why is it useful? And I will put this right up front.  So a scratchpad, like I said, is a terminal that exists on an invisible workspace. So once you have this patch installed, you get three scratchpads. I'm not sure if you can create more. Maybe you can, probably you can, but I've not tried that. So don't quote me on it. But what you can do is do mod y and you get a scratchpad. Now this is just something I have open in this particular scratchpad. Normally it looks just like a regular terminal. This is the ST terminal. So you do have to have ST installed if you're using DWM. If you're using the generic scratchpad application that I'm listing below, you can use any terminal that's supported by that application. You can use Turma, you can use Alacrity, you can use ST. I'm assuming you can probably use things like Kitty or X-Term, I'm not sure. But this is what a scratchpad looks like. It's just a terminal. And it exists on a workspace that doesn't exist. So if I were to open up something in this, if I just do an LS of my home directory and I close this using mod y again, when I open it up, that's still there.  I use NCSpot for Spotify. I can open up to NCSpot and this is here all the time. So I can just play a song, get rid of this. The song keeps playing and I wanna change to another song or change playlists. I just go into y again and I'm there. And y again, it goes away. That is amazing. And no longer, usually I would go through and have it on a workspace five. Usually a workspace five on the main monitor is my music workspace.  That is amazing. So let me show you what the code of scratch pad looks like. So let's CD into my config.h or them into my config.h here. And let's just scroll down just a little bit. So the first thing when you do a patch adds these, what were the seven lines or so? I guess it adds the structure here as well. But basically what this does is it defines three scratch pads. And these are the things that will tell you it spawns the ST terminal with the flag N, which basically just gives it a name. And dash G, which gives it a size. And then the last argument can either be null or you can do another flag and run a specific program. So if I do mod U that opens up the ranger file manager. And you can do pretty much any terminal application you want by just just by following this syntax, you know, get size and then the E and then the name of the program and then it always ends in null. And you can change the size of the terminal as well just by using, you know, you know, length by width. And that's the definition of the three, those are the variables of the three scratch pads. And then it names them for something specific. And these are the something specific. It translates these of them into a command which they can be used in a key binding. So it takes the name from up here, puts it here and then names it this specific command. Okay, I'm assuming you can go through and make as many scratch pads as you wanted to. I don't know why you'd want a whole bunch of them. Three seems to be about enough for me. But you could probably create like five or something and then bind them to whatever you want. So, and then the only other thing that it adds, and this is probably something that will fail when you do the patch. If you do the patch and it fails, it's probably because the, you've probably added different key bindings to your config file, which will change the line numbers. And for me, I had to go through and add these three lines here manually. And this just defines key bindings, why you would end to those commands that were associated to the scratch pads that we defined above. And that's literally all the patch does to the main config file. I'm assuming it adds something to DWM.C. I'm not sure. I didn't actually look because it went through perfectly fine. But that's basically what scratch pads are. And like I said, I love scratch pads now. I mean, I just been playing around with them for now for about an hour. And these, I can see this completely changing the way I do things on DWM, mainly because I no longer have to keep a like oftentimes I'd be working around in my browser and I'd have to have this in monocle mode so that I could also have your Ranger open. And then I'd have to switch back and forth between them like this, you know, I no longer have to do that. I can keep myself in tile mode or whatever layout I'm in. And I can just do mod you and I have Ranger there at my fingertips, wherever I want. That's awesome. I mean, that's just completely blows my mind. And I'm gonna be adding scratch pads to every window manager that I switch between. So I'm gonna go figure out how to do it in I3. I might make a video on that just because it's so cool. So, yeah, I'm just, I'm giddy. I learned something new. I also had sugar before I did this video. So that's why I'm a little hyper. But this is cool. It's just so cool.  Scratch pads are awesome.   If you use that all the time, you could have something like be pi top open all the time. And it's just always there. So you get that. It's just always, you always want to just, you'll look at your system stats. It's always right there. Just easy as can be. That is so cool. So cool. Anyways, just a quick, just a quick video showing my new obsession. If you want to support the channel, you can do so by leaving a thumbs up or a thumbs down even. You can do, you can subscribe or you can support monetarily by going to patreon.com slash the Linux cast. And you can also follow us on Facebook at facebook.com slash the Linux cast. I don't really use Facebook, but every once in a while, you'll find me posting something on there. So yeah, thanks for watching. Just real quick video and I'll see you next time. Thanks for watching.


Frontier Town, the saga of the Roaring West. Frontier Town, El Paso, Cheyenne, Calgary, Tombstone. Frontier Town, here is the adventurous story of the early west. The tamed and the untamed. From the Pekos to Powder River, Dodge City to Poker Flat. These are the towns they fought to live in and lived to fight for. Teaming crucibles of pioneer freedom. Frontier Town! In case you've forgotten or never did know, I'm Chad Remington. Frontier lawyer from the cow town known as Dos Rios. And as I've said a time or two before, out on the brawling, sprawling frontier, a lawyer gets into all sorts of things. Especially trouble. And trouble out our way not only starts with a capital T, but often ends with capital punishment. I guess it was last month when a friend of my father's, Harvey Burnside, wrote and asked me if I had time to come down to where he lives. A town which he had built himself from practically nothing.  Harvey has a brother, Milo Burnside, who owns the little bank in Burnside. And between them I guess Harvey and Milo pretty well control that section of the country. Well, while Cherokee O'Bannon, a medicine man who now runs the Dos Rios livery stable and bangs around with me, was trying to find two horses from his stable that would take us to Burnside Falls and back, the situation which caused Harvey to write me suddenly started getting worse. So much worse that Harvey paid a call on his brother Milo at the bank. Milo, let's quit mincing words now. Let's get down to cases. All right, Harvey, let's. What's on your mind? And I've been hearing things about you, Milo. Things I don't like to hear about any man, let alone my brother. Well, you don't say. I heard you've been over to War Dance last week. And what if I have?  Harvey, it's high time you were getting some sensory ahead. When the railroad agreed to build its western terminal into whichever town the voters choose as the county seat of Buckshot County, nobody figured a dreamer like you would build a town out here right in the middle of the prairie. My eye, Burnside Falls lies between three trails and two rivers. The best dad-blame place in the whole state for a county seat. That's what I thought once.  Money. That's all you ever think of. Well, you'd be a lot better off if you did sometimes.  That new town of War Dance is a good 80 miles closer to where the rails now end. And it'd make an ideal county seat. War Dance, what is it?  Sure, McCall and the railroad are like that. Building in the War Dance would save them a couple hundred thousand dollars because it's closer. But they got their franchise on the strength of connecting up to whatever town the people select. Oh, the people, my neck. Now look, Harvey, it's worth good coal cash to me and I'll see you won't lose. If you help me convince the people that War Dance and not Burnside Falls should be voted the county seat next week. Yeah, they'll vote just how they please. And you, your bank, are that railroads not going to interfere.  If you weren't my brother, I'd tell you to go for your gun. And if you keep trying to interfere you may still have your chance, brother or no brother. And if you don't lay off, Milo, I may go for my gun first. Well, that was the situation when O'Bannon and I arrived and Burnside Falls. A wide-open split between Harvey and Milo Burnside. But being brothers, Harvey was reluctant, more than reluctant to make a public issue of what he believed and knew. And his wife, Sarah, hoped that somehow I might be able to talk sense into his money-grubbing brother's head. And that's about the whole story, Chad. The railroad can save upwards of $200,000 building into War Dance instead of here. And that's why the railroad can afford to offer Milo money to try and throw the election to War Dance. Now, I'm reluctant to say this, but your brother sounds to me like an inferious little nickel-nurser. Yes, that's the way it looks. And I'd bet Milo would sell the railroad out even now if anyone offered him $5 more. How does he figure to swing the election? Figure to swing it? Why, he's swinging it right now. People are actually pulling up stakes here and moving to War Dance already. Yeah, enough of a move. I suppose they'll have a majority of the votes. Well, folks, I don't know what good it's going to do, but come on, let's ride into town and pay a call on Brother Milo. The town of Burnside Falls lets Mike prosper. They've already passed seven stores. Two saloons. Saloons. Oh, Ben, and I don't mind you're admiring the saloons from the outside. This trip, you're not pouring what they peddle down your insides. Where's this bank your brother's located, Harvey? Just down at the end of this block, Chad, that gray and white building. Good grief, do you see what's happening? The bank's being held up.  Come on, boys, even with a head start they've got, we may still be able to overtake them.  Get running! The excitement brought everybody in town out into the street. By the time we'd threaded our way through the crowd, the bank bandits were out of town and into the hills. The trail ended in the rocks. We all turned our horses and piled back into town, back to the bank itself to find out what had actually happened. Boys, boys, boys, now, if you're only quiet down, maybe we can all hear what Milo has to say. My neighbors, I hate to tell you this, and if you'd have caught the men who rifled the bank, the story would be different. But the way they clean me out to keep up my legal cash reserves now, I am forced to declare all loans, due, and payable immediately. Now, men, now, men, I'm sorry, and as sorry as I am, the law's the law. And to tell the truth, as soon as I've got things straightened out here, I'm closing up and trying to make back what I've lost by moving my bank over to Wardance. You don't mean there's some connection between the bank robbery and you're moving to Wardance, do you, Burnside? That's the kind of idea it would be healthier never to put into words again, Remington. Oh, so? Well, I've heard of men being railroaded to jail before, but this is the first time I've ever heard of a railroad being the cause of moving a whole bank and its president up to the federal penitentiary. Burnside, after all I've been through today, you don't happen to have a little drop in the house, do you?  Besides, right now, none of us has got anything to celebrate. Milo's little bank robbery was too successful. You mean to think that Milo arranged the robbery? Oh, I ain't denying that Milo's ornrich had, but I can't believe Harvey's brother would frame a robbery on his own bank. Well, maybe not, Sarah. But Harvey did say that this other town, Wardance, is the hideout of a lot of owl hoots. You blamed right, fellas like Cap Killmore moved in there. And the question is, how come and why did Killmore move down here from his own stamping grounds, the Dakotas? Well, I don't know anything about that, Chad, but Killmore showed up in these parts about, uh, and let's see now, about three months back. Three months ago, huh? And when did you first hear about this railroad thing and their anxiety to make Wardance the county seat? Well, let's see. Well, it seems to me that that was about, uh, yeah. Yeah, that was three months ago, too. Do you think there's a connection between the railroad and Cap Killmore, Chad? Well, I don't know for sure, but there certainly could be. The railroad starts working on Milo, deposits money in his bank, and Milo writes a letter and hires himself a handyman like Cap Killmore. Chad, do you honestly think Milo would go out and hire a crook and drive folks over to Wardance? Plamed if I know. But it certainly makes a reasonable supposition. And with the election only a few days off, all we can do before we're sure is sit back and wait. Wait for action.  You're not driving me from my home. Yeah?  Chad, I know.  But we just can't go on this way.   Well, maybe it isn't. But it was Chad who said sit back and see what happened. And look what's happened. Folks shot down, places burned up, and almost half the people over here picking up and moving to Wardance to save their lives. My dear Mrs. Burnside, even though I used to sell a medicine which was a miracle, it's going to take more than a miracle to stop this lawlessness as quickly as you'd like. Yes, but you don't understand. Folks are moving away from here a dozen families a day. Just like sheep, that's what they are. And the blackest sheep of the lot is that no good brother of mine, Milo. It isn't all right even saying things like that, Harley. Even though saying and proving in Milo's case are as far apart as Pike's Peak and Death Valley. Oh, how can you prove anything on a gang of cutthroats like that? Thousands upon thousands of dollars behind them just to buy votes and bullets. And that's just the frame of mind. They want you and other folks around here to stay in, Sarah. They want you scared to death. They want you to give up before you're licked. Don't you see that's winning half the battle for them? Well... They're not only making this a war, they're making this a war of nerves. I've got my nerves so frazzled that I'm even willing to take a drink of my Cherokee and din rattlesnake oil. There's nothing else handy around the house, of course. Cherokee, the only thing around this house, is trouble. If Wardance is made the county seat, Harvey and Sarah Burnside will have lost everything they've worked years to build up. And the people of this section will be saddled with a rain of crime and corruption that will make Custer's last stand look like a Sunday school picnic. Now, that's what I mean, Chad. You've got to do something. And we will do something, Sarah. If we can ever figure out something to do. Believe me, I haven't come down here to console you. I've come down to help. I'm not going to sit by and see this county referred to in the history books later on as another gun trouble valley. We'll return to the second act of gun trouble valley, our exciting frontier town adventure in just a few moments. And now, back to frontier town. I might as well admit it. All that high-sounding talk I gave Sarah on Harvey Burnside was really just whistling in the dark. A little pet talk to keep up their confidence. It wasn't until later that afternoon while Cherokee and I were jogging back toward Burnside Falls that any idea hit me at all. Billy Blue blazes, Chad. This whole situation is thoroughly sorted. Sure is, Cherokee. A man not only turning against his own brother, but all of his neighbors and friends. Normal man might suffer from a thirst, like me. Normal thirst. Of course you mean thirst as in thirst for knowledge. Well, knowledge is what gives me my thirst.  Well, I'm glad to learn that, Cherokee. Because next time your thirst overtakes you, I'll just stake you to three rounds of axle grease. Axle grease. I believe an axle grease is better than water. However, referring to Milo Burnside's thirst, his is an unnatural thirst. Thirst for gold. And just about as unquenchable as the average Cherokee, whether you know it or not, you've just given me an idea. It has nothing to do with axle grease. I don't want to hear about it. Far from it. This has got something to do with gold. And I hope the solution to making Burnside Falls the county seat at the election. Gold? What has gold got to do with it? Well, if we can get about three ounces of gold dust and tailings, it may have everything to do with it. Come on, Cherokee. You and I are going to the lion's den. We're riding over to war dance. While Cherokee and I were prodding those livery-stable mags across the county over to war dance, Milo Burnside apparently reached there ahead of us as the result of a summons from Cap Kilmore. If you think because you're the president of a two-bit bank burnside, you can give me orders. You've got a few things coming. Yes. Now, you might as well understand this here now, Kilmore.  Well, I ain't working for nobody. McCall's railroad is put in the bill, and you and me will wear just partners. And the way I'm starting to feel now, I might be happier if I didn't have any partners at all. You can't threaten me. I promised the railroad we'd move a thousand people away from Burnside and over here to war dance. And if you can't live up to your obligation, I'll get somebody else to do it. Why, you fat-headed buzzard.   Why, you cheap murderants! I was just hoping you'd do that. My... my... my... my throat! You're choking me! Don't... don't cap, don't... I've got a good mind to bang your head to the floor. You're going to behave? Yes, yes, yes. And we're in this deal as partners? Yes, yes, Cap. Anything you say. Ah, go on, get up. And remember next time you think you're giving me orders, you'll find it's me who's doing the order. Ordering you a ten-dollar funeral. Two high-grade gentlemen, those two. Either one of them would happily arrange to murder a man for a silver dollar. But of course it was this love of money that not only was the basis of the whole trouble, but also what I hoped would be the solution for Harvey Burnside and Sarah. Cherokee and I were talking it over as our horses slowed up and we hit war dances rutted in Dirty Main Street. Suppose you realize and you're asking me to risk my life by coming over to a town like this, Chair? My war dance is the perfect time for you, Cherokee. It's wide open and lawless. That's what I mean. And being lawless, there's no law here. So there shouldn't be anyone looking for you for peddling that alcohol and water you used to describe as genuine Cherokee Indian rattlesnake oil. Yes, I see what you mean. Yes, indeed. With that poke of gold stuck in your pocket, somebody sure to spot it and try to get it away from you. If they do, that means trouble. Well, I hope somebody spots the gold dust. You hope? Count on you anyway, Chad. Just what are you up to? Well, according to you, I'm up to my neck in trouble. But if you want to know exactly what I plan to do to get the voters back to Burnside, all I can tell you is that I'm only certain of the first move. I'm going to locate Mr. Cap Kilmore and start from there. Okay. Where do you think you can find him? Well, the first place I'm going to look is down the street there, and that's the loon. And that's the loon? Chad, my boy, you're a man of rare perspicacity. Lead the way, my friend and dependable banner to follow. This time, leave the bottle on the bar. Hot me. You, Mr. Kilmore? Yeah. How are you? My name's Foley, Mr. Kilmore. Fellow over there said you wanted to talk to me. Oh, wow. You're one of the folks who moved over here from Burnside Falls, aren't you? That's right. That is a... I ain't sure I'm staying here. I see. Well, maybe I can convince you that you ought to stay here a while, at least until tomorrow when we're holding the election for the county seat. I don't see what you mean, sir. Well, us folks over here in Wardance have got a lot of pride in our community. And if you will stay here for the election and cast your vote for the best interests of the county, we'd be mighty happy to show you our appreciation. Well, that sounds interesting, Mr. Kilmore. You see, the law's funny. It says for a man to vote, he's got own land. So I figured maybe we'd just give you a quarter section of land. And how does that sound, eh? Well, that ain't much of an attraction. The land I've seen since I got over here is so dry a man couldn't raise gophers on it. Well, since that's the way you feel about it, we might buy the land back from you for $50 a good day after the election. Oh, oh, I see. Felly's got to own land to vote.  You sure are. And you'd better make sure you're smart, too, Foley. Because I'm making it my business to get the name of every man who votes and whether he votes for Burnside Falls or Wardance. I think you get the idea, Foley. I'll see you later. Sure thing. I'll be looking for you the day after election. If, hey bartender, I'll have a beer. Well, Cherokee, this is one time I'm going to buy you a drink. May we squeeze in here, Mr. Yeah, yeah, you bet. Give me two fingers, no chaser. Be careful with those fingers, Cherokee. Don't chew them down past the nails. You fellas here to vote? Far from it. I'm over here because of that crooked election Kilmores trying to run on the people. But I wouldn't say things like that too loud. Why? Has Kilmores got you left, too? Oh, oh. You're in for it now. Here's Kilmores coming back to the bar right now. No, sir. Kilmores don't scare me. I still think he's running a crooked election. What did you say, mister? What's that again? I said this whole election smells rotten to me. Or maybe you don't think so. The only thing I think is that your mouth needs closing. What's your name? What difference does my name make? Well, we got to put something on the headstone. Chad, take it easy. Now, look, if you think you're threatening me, you're not even getting close to it. Because I think you haven't got enough salt in your whole system to do anything about it.  Chad, you're local.  Well... Saffron, Tom kept Kilmores. You're dirty.  All right, you. Now, get up off there. Hey, Cap. Cap, what's that? That little leather pouch that rolled out of his pocket on the floor. Oh, what pouch? This pouch, right here. And look.  Gold dust? Yes, gold dust. Wait a minute. Give me that back. Gold dust is mine. Where'd you get this stuff? Well, I'm not waiting. Where'd you get that gold dust? Well, I should never tell you if you didn't have me covered. But, well, I got it out of the bank on Wolf Creek over in Burnside Falls. Come on, man. Let this gold there. We'd better be getting back to Burnside Falls.  Don't you say it's a trick? Come back. Well, you're smarter than I gave you credit for, Kilmore. It was a trick. A trick that was just good enough to spoil your plan for a cooked-up election. And by the time they find it out, the election will be over. Burnside Falls will be the county seat. And you'll be in jail.  Let's hear a key duck. Now, let's see what you can do without your gun. Chad, the way you're hitting him, he's gonna fall against the bar and upset those beautiful bottles. Now, that's the first time I've ever seen a man knocked out. Stimulus applied simultaneously. Look at him. He's just bathed in bourbon. Yes. But unfortunately, the bourbon's not going to wash away his sins. But I think by the time a few of the people admit on the stand that the bribes Kilmore offered them that the state will wipe away his sins, although it may take 20 years. On an attorney at law, you certainly violate more laws than you learned about in school. Oh, I don't know about that, Cherokee. The only law I was dealing with in war dance was the law of human nature. As you pointed out earlier and gave me the idea, it was just their thirst for gold which dumped Mr. Kilmore's apple cart. Strange, you should mention thirst and apple carts in the same breath. Because as a Callow youth, one of my dearest delights was imbibing a heart cider. An excellent libation, but I no longer like apples. You mean you're an apple knocker? Not exactly, my boy. But a short time ago, I was re-boldened when I served a dish of applesauce. The whole thing was full of hairs. Full of hairs, eh? Well, maybe that was your fault. You didn't order your applesauce made from the right kind of apples. Is there a certain kind of apple for making applesauce without hairs? Certainly. Next time you order your applesauce, order it made from Baldwin's. Baldwin's! Frontier Town, starring Reed Hadley and featuring Wade Crosby as a Brucell's production. Story and Direction by Paul Franklin. Music Written and Played by Ivan Dittman. Be sure to be with us again same time next week for another fine action adventure story with your favorite young western star, Reed Hadley. And now this is Bill Foreman telling you that Frontier Town comes to you from Hollywood.


Can you hear me? Oh, sorry. I was muted, Peter. Hey, how are you? How are you? I'll do great. Thank you. Great, great. You prepared for more wind and rain and storms? No. I don't want it. No, not much we can do about it. I know. But I moved to California in 2017. And if I tally it all up, I'm still net positive with great weather. Yeah, oh, for sure, for sure. Absolutely. Yeah, we get 90, whatever, percent great weather. Yeah, but this year it's just a bit much. But then again, I still don't want to complain because I keep hearing about tornadoes, hurricanes, and then I'm bored. For sure. Yeah, some bad wind and some rain is not the worst of it, certainly. Hey, John, hey, Tracy. Hey, Tracy. David, how are you doing? Good, how are you? Great, Tracy, good to catch up. Peter, good to catch up. OK, go ahead, David. No, no, no. Go ahead, jump right in, John. No, I just wanted to follow up on a couple of things. So, David, are we on onboarding this week, or are we talking about documentation this week? I mean, I think we could do both. I mean, the way I had set up the invite and we could clarify if we need to divide up and separate the invite. I mean, the invite is for both. My thought was you could do 30. And I think that we had discussed this, you could do like half and half, right? But I'll defer to you if you want to have one week be one and the other week be another. You certainly, we can change the invites, but I'll double check the invite. I think it's set up to be both. Yeah, and that's fine. I kind of wanted to just talk about the submissions to begin with. And I see Bobby's jumped on here now. So, I guess I'll kick it off and just start off with the onboarding submission. So, we've got that in and Peter is on that as well. Thanks for joining that, Peter, for the mentorship program there. Yeah. And so, the main thing, David, I wanted to check in with is I had pinged Arun a couple of times now around, you know, collaborating with him and the team that did the start here last year. Yeah. And I haven't heard back from him. So, I pinged, so we, yeah, we both took that as an action item last time. And yeah, I pinged him as well. He did respond to me on Discord. He may be, I don't know if you emailed him or not. He may be more responsive on Discord. He did ping me on Discord. He did say that Niku is still involved with Start Here. And if you see in the onboarding content task force channel, Niku did show up in Discord and say, hey, he couldn't make the last meeting. He wanted to see the meeting notes and stuff. So, it sounds like he may be interested. This may not be a good time for him, but so he's still involved with Start Here. I think he's certainly somebody that we could try to connect with. I think Arun maybe is less involved in Start Here now. I mean, Arun's obviously a busy person and, you know, has had some changes recently. So, he may be less involved in Start Here now, but Niku is probably the right person to reach out to. Either on again, if you've tried to email him, maybe try him on Discord. But, and then just to give Tracy and Bobby some background, if I remember correctly, they weren't on the last call, but I really liked what Peter had sketched out for the mentorship projects. Cause that was my concern. Like I don't, it wasn't exactly sure what we would have that person do, but I really liked Peter's idea of identifying the steps it takes for somebody to come to an entry point in the community, you know, say the Hyperledger website and how many clicks does it take for them to get to the, like how to contribute to, you know, a project, you know, information. And my, my kind of suspicion is that it's going to be several clicks, right? Like I don't, I haven't mapped it out myself yet, but I wouldn't be surprised if it's, you know, five or six clicks, right? And so I think identifying that and then having the mentorship be focused on reducing that number of clicks. So almost like a UX style mentorship. It kind of makes a lot of sense to me. Like, and then Bobby, thanks for putting that thoughts together that you put on the wiki. Like I think there may be some, just my feedback on kind of the notes you put, I think there may be some gaps in the documentation, but my kind of my initial gut, and I know we haven't as a task force kind of mapped out everything we want to do with onboarding. My initial gut is a lot of that documentation is there. It's just really hard to find. So I think in my mind, this mentorship is less a documentation project and more of a usability mentorship and to helping people find that documentation, right? Like so much exists, but it's so scattered and hard to find. So that's just my two cents, just to summarize our conversation last week. Yeah. And I think you and I are in alignment on that, David. I think we talked about, you know, making sure that the person has strong UI, UX skills. And in fact, you know, if you look at what the mentorship submission was, you know, it focused a lot around that as well. So I think if we can, you know, get that approved and, you know, have Peter engage and I will reach out to Niku right now and make sure that, you know, he wants to join in as part of that mentorship. That'd be great. And then anyone else, you know, on the call who wants to join into it, you know, you're always welcome to do that as well. That's great. And then I think all the pieces are there. We have Peter, one of the project maintainers.  Yeah. Okay, perfect. Bobby, you want to talk a little bit about the other submission that we did for the documentation side on the mentorship program. I see Bobby puts on the chat. No, I don't hear you, Bobby. I see that it looks like you're, oh, you lost her. Looks like she was unmuted on the, maybe she just joined. Yeah. Yeah, no, no problem, David. She's got me with the microphone trouble. Yeah. That was last week, Peter. From now this week, she's sound great. Thank you. Yeah. The week changes. Yeah, next week, it'll be my problem, right? That's how it goes. Kind of a round robin deal. Yes. Okay. Well, we'll give Bobby a couple of seconds to jump back on here. Anything else that we want to cover around the onboarding strategy for now on the task force? I mean, maybe while we're waiting for Bobby to come back, just if Tracy has thoughts on what an onboarding mentor should look like. I mean, I think what you said sounds good. I think there's, you know, what are the end improvements that we want? And I think that's pretty much, I think what you guys said, right? Like, figure out what it is that it takes today and see what we can do to improve that. Yeah. And that seems very, Makes sense. Yeah. And it seems a very quantifiable, tangible thing that a mentor or mentee could point to. You know, it's now fewer steps than it was before for somebody to find the thing. Yeah. Yeah. I guess my question to you there, David, is, you know, a lot of time from a search engine optimization standpoint, if you go too deep on the levels on your website, it's harder for Google and the search engine to find an index. Yeah. So I guess my question around that, just, you know, from my perspective is, are we open to maybe restructuring the URL, directory structure to make it more SEO friendly as part of this as well? Or is that not in the cards? I am Matt, I mean, I can't, so that's a Ben question since he owns the website, but, and I can't speak for him, but I imagine he's open to it, especially if we can present some sort of a case. Hey, if we do this, we'll see this benefit, right? Yeah. You guys hear me now? Yeah, yeah. Yep, thank you. You're loud and clear now. You're chatting. I did listen to the recording from last time and I've been trying to catch up. So I'm just gonna share my screen because I did just write some notes down, if that's okay. Sure, sure. Hold on. So this is the Wiki page. I have all of the Discord pages open and everything else linked to on top, but basically so far with the task force, I think we've accomplished two things. We set out that survey for people to say what time they wanna meet and it doesn't seem like anybody really has an objection to this time. And so I think we should just keep meeting at this time. I don't know if we can get more people involved. I know the mentor will have to come and we wanna change that depending on who the mentee is, but we'll work on that when that happens. So that was that survey. And then the mentorship program, here's a link to the program, which again, I was trying to get my head around like the tasks, so I wrote those down and then what we determined our audience was. So if you go down to starting here with who are we doing like keeping that in mind? Who are we doing this for? Are you this person, this person? You know, maybe color code this. So if the documentation we're developing or the path we're suggesting is for these people, you add that color code or their initials or something to it. But again, we were talking about where it comes in and the first three spots that I noticed from again, analyzing the first test was to like kind of go through it was in the first page of the web is learn. And again, I don't know what all the case studies are, the white papers or the training, what all that looks like. But again, if I was learning that would be the first spot I'd go to. And I think that the mentee would be well to make sure that what, and I know they're redoing the website and rebranding. So whatever the new website looks like, I think the mentee should work closely with that learn button as well as the use button. That's more for like the maintainers and that's a little bit a step deeper. And then the participate button. And that's where you have the videos and... I'm going backwards, Chris. The videos. So these are like the first three buttons with all that information. And I don't know if, again, you want to gear it specifically. So, if you're a chair and you're cutting, I don't know if that's the place for that, but I think we need to have a good look at what these links are attached to and if that information is relevant and enticing even. And then again, the next was the wiki page with the start here. And again, that's what that looks like. It is, you know, a lot of information, getting started, frequently asked questions. I don't know if this can be more streamlined for directing people who they want to go instead of reading all this information. You know, maybe have it more card-like or landscape-like, something like, rather than just lines of... Agreed, agreed. And that's where like somebody with some UX skills could really help, right? I don't think it's, yeah, yeah. I don't think throwing a lot of information to people is necessarily the right way to get them where they want to go, all right? And then this, David, I don't have to tell you because this is your video, is the video about getting involved with these main points of the first things that you see is, you know, learning about Hyperledger, which is great and it's right there on Participate. So again, I don't know if you want the mentee to look at that, gearing it for these. And I know that we've done some work. Now that was the other video we've done. Oh my God. Some work again. I can never find... I think it's under the main team's guidelines, some user guides for them, I know Tracy was working hard on those to get that working. And again, here's a little bit, I put all this on the Wiki page again, finally, with the contributors' guidelines. So again, the mentee, here's the project. I think that that would be a good, you know, because there's milestones in the mentee project, you know, they can complete some of these tasks, like, you know, identifying the areas that can be improved or update and streamline this documentation by making, you know, not creating, again, like David said, not recreating it, but just making sure it's up to date and accessible from one of these points. Yeah. And I really like your focus on looking at the website and the Wiki. My only comment is we should build on what's already been done here. I don't know if people are familiar with the last years onboarding related mentorship project, but there's a nice summary of what that person created. And it does involve some mockups and some suggestions on how to rethink some of the pages on the website. I wouldn't want to, like, ignore that. And it would be nice to, you know, build on that. So I think everybody, if you haven't looked at that, at what that mentee did last year, take it and spend some time, there's a page on the Wiki with a bunch of mockups and a presentation. So, you know, I would say let's, we should be familiar with that. And then whoever mentee we pick should also, you know, start, you know, not from scratch, but see if we can build on stuff that's already been done in the past. And I think this last year's mentee project does have some pieces for us to look at. Yeah, no, I agree, David. I don't think reinventing the wheels a way to go either. And I think, you know, build on what's been done and have a keen eye toward what's really going to make a difference here. You know, which one it was called, David? I dropped the link. Yeah. I dropped the link in Zoom chat. Thank you. Save me time. Yeah, go ahead. Yeah, this is great. Thanks. Sorry, I was being slow to load, but there's some content down below. So sorry, Johnny, we're going to say something. Yeah, I was going to just weigh in a little bit, Bobby, could you just navigate to just wiki.hyperledger.org, just the main homepage. And I just kind of kind of discuss this a little bit when we talk about starting here and, you know, onboarding. So you see in the upper right corner there, it has a getting started call out. And one of the things that I think would be good here is also to link to the start here page. You know, not sure where to start. Check out start here, you know, we can just kind of bring it into the homepage here to really get that engagement because a lot of times when we have somebody new to the community, they're probably going to hit the homepage more than anything. And I'm sure, you know, that's the most highly trafficked page and that's where we really want to try to drive in. And we did embed the start here coming the content and that trending community activity is from start here. Our thought was instead of linking off to a different website, maybe we could bring content from the website in here, kind of like a one stop shop. But yeah, you can certainly, yeah, this is, I'm not a UX expert. So I'm not sure at the right rate of present or get people to the content is so this, the way we set it up may not be ideal, certainly. I really like that the attend the workshop right up front. I mean, I think that's fabulous. Get people in get away to get people involved right off the, off the bat. I like that a lot. Yeah, the promo spot. Yeah, yeah, that's really, you know, because that's what we tried to do at the learning materials working group was give it a place where everybody could, you know, where are the current events that are happening instead of going to the home, the website events, meetups, and then finding it that way. If you're on the wiki page, you just, oh, there's a, and that's the, yeah, and that goes to where the traffic is. Like John said, the main page of the wiki gets the most traffic. Yeah. And that's what I'm just saying too, David, you know, when you have something that's above the scroll and in that upper right corner, you know, that's valuable real estate or, you know, people's eyeballs looking at the website and, you know, being able to dive them in right from there would be great. But that's something we can do in an analysis. We can talk to Ben about his thoughts on it and, you know, just work on that. But, you know, my thing is always, you know, just like you said, David, less clicks to the valuable content and put the best click in front of somebody's, you know, first look on the page. Okay. Bobby, any other thoughts on that? Do you see what I'm referring to? Yeah. I'm going to get back to. I'm just lost for our tasks. Okay, so. I just would make a suggestion that maybe each one of us take one of these and spend some time this week just doing these clicks and make a little table somewhere, whether I'm hoping it would all be on that wiki page, just put a table in there, you know, I did. I did use, I did participate and I found that this information was wonderful. This information was at a date. Is it, is there any way that anyone wants to volunteer to do a section on the website to use, learn or participate? I can volunteer to do use and learn. Okay. Thanks. I'll put that down. And this is where we can bring Ben in. And if we put together some recommendations for each of these pages, we can bring Ben in and see if he's, you know, open to, you know, adjusting things. And again, I don't know what he has in mind necessarily for the new version of those pages on the new site, but yeah, it's good to have a conversation going with him. If we have a point of view on the pages. Yeah. And Bobby, if you want me to do the participate one, I'm glad to jump in and do that one. Awesome. Thanks. And now I have to say the documentation. I am not ready to go through that because I have to spend the day going through the task for the mentee applications. At which point I'm going to sit down and see if I have any recommendations for combining or in any ways, synergies between the documentation mentee applications. Before we just jump into. I'm really saying what that task force should be focused on, because I think both these task forces are going to use the mentee application as, as getting the stuff done. So, again, there's a pit mentee application is right here for the one that I applied for, but that's going to more be an umbrella one for the ones that, you know, we're going to figure out what, in fact, the community needs are through the mentorship application submissions, if that makes sense. It does. So I need this week to go through that stuff. So if anybody has any, again, this is the tasks like envision for the different mentee or mentee forces that work on this, but it's very broad right now because I haven't really thrown myself in. So that's, I think, And then on that submission for documentation, Bobby, are you looking for any additional collaborators on that? Well, absolutely. Well, that's the thing like there's a submission for Cactus is documentation. And then so what we're going to, I'm going to try to do is try to read through them all and see if we can get that done. So that's just like evaluating some of the submissions. So while I'm doing that, I'm going to make a mental note of which ones are documentation. I just don't know if there's anybody from the community that you wanted to bring into that. Anyone who wants to come help. But I can't really. You know, you start to ask for the specific mentor yet, because I'm not really sure the umbrella of the documentation project. Are you still with us, Bobby, or did it drop the audio? Yeah. Yeah, your audio seems to be maybe a little laggy. John. Yep. Okay. Did you guys hear me? Yeah, we can hear you now, Bobby. Okay, good. So that's, that's it. I was just, um, again, the documentation, uh, initiative for the mentorship program might have more than one. Yeah. So I'm going to go back to the, I'm going to go back to the mentor. I'm going to go back to the mentor. Menti because there's multiple documentation projects. So again, we'll kind of figure out the. Focus of those this week. Okay. Is there anybody else that's in particular? You want David to help you with reaching out to you to. Get engaged with. Being a mentor for that project. Again, once we know what the projects look like, we'll have a specific. Um, I'm just going to make sure that. We have the right people working with you to make sure we get that going. Yep. I'm on it. So that's my, my initiative for the documentation is to see where the. Like minded projects are in the mentorship programs. Perfect. Okay. Peter, do you have anything else that you'd like to cover around either one of those two mentorship. Or anything else related onboarding their documentation? Just wanted to apologize for one more time. I know I've been very slow to respond. Uh, I got the updates done in the. Document very last minute, basically the evening before the TLC meeting. Sure. It's not about that. Oh no, no problem. Peter, you know, we're all super busy.  I'll guarantee you that. And we can just, you know, try to participate as much as we can. So that makes perfect sense. Thank you. Yeah. On that note, the other thing is I do have to drop at nine 30. Yeah. No, no problem. I think, you know, we're pretty good on a half an hour call. Unless Bobby, you think that we should extend it further. I'm fine with wrapping it up at a half hour here. No, that works. And thanks Peter for putting that together. I think it's interesting to see the, you know, you know, you know, you know, you know, I put on there about the currently the number is five clicks for each project, but to your point that you add on there and assumptions, that's assuming the user knows where to click. I think it's not necessarily. Could be five. It could be five or more. Right. If user has to hunt around a little bit. Yeah. At least five. At least 50. Yeah. Could be. But yeah, but no fewer than five. Certainly. Yes. Okay. And we'll plan on catching up. Next week at about the same time. And then I'll take care of my stuff. Peter, thanks for working on the other stuff. And Bobby, great to catch up with you as well. Thanks. Thanks, John. All right. Take care. Bye. Yeah.


Yes, what happens if you stay out of the country for more than six months? Yes, when you say outside Katal for more than six months, it means your residence permit or what we call QID will be marked lost in the system. What could be the reason? Someone would ask me what could be the reason? The reason being that if you stay outside the country for more than six months, you'll be violating law number 21 of 2015, which regulates or which is regulating the exit and entry of all people into Katal. So that's why story is very important as you exiting or as you getting out of the country, you make sure you renew your ID or you make sure it is valid until maybe eight months. I think that is better in any way. Most of us we made so many mistakes especially when we are going for vacations and because of that anxiety that we want to go, we even forget the validity over. Our QID of get a validity of the QID of how long I'll stay outside the country. So you find that to some cases, most of you have got problems home and you definitely not wishing to return back to the country. But remember, for you to return back to the country if you stayed outside for six months, that means you need what you call the permission of your employer. He needs to request for what we call an exception permit into matrash that will enable you to come back into the country and pipe us the immigration at one or the other. Most of the times I always tell people let us not try to make this kind of mistakes in any way as we exiting. Let us make sure at least our ID or at least our QID are valid at a given period of time in one way or the other. So definitely it comes a little bit crazy for you at one moment of time that you have no issue. Most of us we've gone to vacations and we've been terminated from vacations. Our QIDs have been cancelled from there. So you find all those kinds of scenarios will definitely come in to answer your query, to answer how much period or what is the exact period that is supposed to stay outside the country. Outside Katal if you have what we call a valid QID or if you have a QID and definitely you need to take it home. Hope after it ships something for you. By the way, don't forget to subscribe.  It's not our right. So we need to follow the law. We just need to follow the law and know what the law wants and that is all. Otherwise, if you don't follow the law then that means you'll be inviting more problems to yourself. And if try so much to see that you don't have a lot of problems with your QID, a lot of problems, tango main cases put on your QID. Hope after it ships something for you. Thank you so much. See you again in the next video.


A most important literacy concept to teach, especially to our young kiddos in early childhood, is the difference between fiction and non-fiction. I have made myself a graphic organizer, visually helping the kids to see what things we choose around the classroom that are fiction and what things we choose around the classroom that are non-fiction. You could easily make a graphic organizer with anything you have around your room. You could use two separate tables. You could use tape to split your carpet. You could go outside in the sand and use a stick to split a sandbox just so that they know there's two different categories that they're going to sort books and realia around the room. Realia. These are things around your classroom that the kids can hold, touch, feel. Things that they can say, hey, I grabbed this. Is it fiction, fantasy, or is it non-fiction? It's real. I start teaching that way. Fiction has the same beginning sound as fantasy. Fiction and fantasy are make-believe, and I put my little finger jazz with that because they remember it's not real. You're using your imagination, and that's okay. There's nothing wrong with making things up. But true facts are books that are called non-fiction, things that are real, things that look real. The kids use their senses to determine whether things are real or not real. Can you see it? Can you smell it? Can you taste it? Can you hear it? Can you touch it? When things are fantasy, you can't always see it. Maybe in the book, but have you ever seen it in real life? Have you ever touched a leprechaun? Have you ever caught or captured a unicorn? Those things are fantasy, fiction, things that the kids love to learn about, but they also need to understand what things are real in our world and what things are not. We've been doing a study on animals in our classroom, and I have a story book that's real photographs of real animals, real facts. So I tell the children that these are things that we are learning about. Real animals, real bears, where they really live. Those are facts that go into the category of non-fiction. Then, of course, I have to read a story book about animals that cause chaos in the zoo. These animals are going on strike. They talk to each other. They paint things. They write things. Is that real? No. That's fantasy. That's make-believe. So the kids would categorize that book into fiction. We have a pet frog in our room, and we talk about our frog all the time. We find out facts about our frogs from non-fiction books. I read this story book with my kids, and we write down and find out all the facts we can about our class pet. That's real. That's non-fiction. But, of course, there's a famous frog who lives with his mom and dad and goes to school and travels around the country named Froggy. Froggy is make-believe. He's fantasy. It's still fun to read about a frog, but this is fiction. Now, a fun part. I let my kids go around the classroom and find things that they know belong in each category. I have some animals in my classroom. Now, these animals are toys, but they are shaped and look just like the real animals. The my kids would know that these are non-fiction toys, and they would put them in the category of non-fiction. I also have a bucket of stuffed animals, and although this may look like a real dog, this dog can stand, this dog can talk. This is not real. This is fiction. So they could categorize that into my fiction category. I use a lot of literature in my classroom, and I believe that it really, really solidifies the foundation of learning with a fiction and a non-fiction book. So when talking about polar bears, I would introduce a book fiction and a book non-fiction, and we can compare those books and talk about that. Then the most important part is having the kids know it on their own. So then the day that comes when they can say, oh, I just read a non-fiction book about penguins and put it in the non-fiction category, and then tell me that they read a book fiction about penguins in the same day. I know that that foundation of learning fiction versus non-fiction has been solidified, and it will help them throughout their education. Thank you.


All right. Hello, everybody. Thank you. I Haven't even done anything yet. That's great. I'm just I'm just gonna bask in the glow right now Hi, I'm Peter Bayless. I work at a little startup in Durham called Percato My Twitter handle is up there at P. Bayless if you want to find me follow me bug me. I am available for that Percato is a little startup that is about Finding discounts on shoes, so we will not be talking about shoes today But but that's that's their business We are going to talk about speeding up your WordPress site Which I imagine even if your WordPress site is is pretty speedy You still might want to do or might want to know about and if it's not you probably really want to know about it So here we go All right, so so when I say like your website is slow you might be thinking like It's not that slow like maybe maybe you think it's fine But it turns out that that people are very impatient and and they always want your site to be a little bit faster Because they just they just want to move on they want to get to the next page About three seconds is is sort of the the baseline at that point like people are already leaving your site Some of them may have left already And so like if they're sitting there and nothing is loaded like that is just that's dead air That's bad. That's like me just sitting here and not saying anything And so you'll also find out that for SEO Google will penalize slow websites when they crawl your site they will record that and they will say oh well This site is faster than that site so people are going to like that experience better And so we're going to rank that site higher than your site So there are a lot of reasons to be concerned about this both for the user experience and for your search engine rankings And so I'm going to go through a lot of things Just sort of a survey Some of it is technical. I will probably lose you at some point Please raise your hand ask me questions if you're confused If we can't reconcile that in a reasonable amount of time then you can talk to me afterwards I will wander over to the happiness bar probably after lunch and And you know certainly just talk to people after the talk But we can just have a back-and-forth and talk about website speed and things you could be doing and So the first thing the first technical term I'm going to throw at you is this ttfb the time to first bite And so that is the amount of time it takes for someone to get anything from your website And so that's where you have that blank screen when you first go to that page the amount of time that you wait there That's the time to first bite. It could be in milliseconds It should be if it's in seconds. That is bad You don't want to be waiting a second staring at a blank screen before you see anything And then that could have to do with your hosting with your web hosting with your server performance It could just take that much time to contact something or start pulling that page It could be that something's just really slow on that server And what we want to do is kind of drill down and find out why and identify what the problem is and fix it You could have a slow theme. You could have a slow plug-in It's something within your WordPress site that's slow and runs on top of the server It could be individual resources. You could have a very large image. It takes a long time to load It's slowing things down. You could have CSS files and JavaScript files That are taking a long time Or maybe you don't know maybe it's gremlins. Maybe there's just something else going on that you can't explain We've seen that too Alright, so I've got a nifty graphic on the side there and the things I'm going over are going to relate to that You don't have to read it. I think it's pretty legible But I generated that by going to the WordCamp Asheville site actually And so each one of those bars has to do with how long it took something to load on that page And if you follow those links up top if you go to Pingdom or web page speed test You can get a graph that looks like that and you can put in the address of your site And you can find out All those things that you're loading from your site and how long each of them takes and so that is a waterfall view Because it just sort of cascades down like a waterfall. I guess that's what we call it You can also do the same thing within Chrome or probably within your web browser There's usually a set of development tools you can get to somehow In Chrome you can right-click on the page and it says inspect element and if you go in there It'll bring up the dev tools and there will be a lot of tabs and it will be Confusing but it has many interesting nuggets buried in there and it will do the same waterfall view And it'll have a lot of information and instead of being a static image It'll actually be a dynamic thing that you can click through and play with and find out more information about all the resources So if you're really interested in why something is slow, that's a great tool to play with And so each one of these all the waterfall views you'll encounter pretty much tell you the number of things you load The size of each thing What type of thing it is if it's an image if it's a script file? and so you know if you see a really long bar like Like whatever these four or five things are down here They're obviously taking the most time because this is like a timeline And so those are actually images I think those are like sponsored images I think there's probably like like PNG files that someone just uploaded were there like 200 kilobytes. I bet that's fine So this is actually a pretty fast site. There's no scale on here. You don't know how many seconds that is And at the beginning you see that short bar at the top That's the actual page and you see it starts to load immediately and so that's good You have a good response and by the time those down there loading You probably can't even see them because they're further down on the page So this is actually not a bad waterfall chart What would be bad is if you had the long bar at the top and you're taking a long time just to get to the page and And so that's that's sort of the basics of of waterfall charts I'd like to talk a little bit more about the chrome dev tools themselves They're excellent tools if you use chrome just please use them if you have an issue to troubleshoot I'm going to talk about two pains in particular for this The networking pane is the one I told you about that has the waterfall views It tells you every resources that load if you click on any of them It will tell you detailed what's the size when it started to load all the details about it And you can inspect and debug and drill down into anything you can see exactly what loaded if you click on an image It will show you a picture of how it loaded You can get into like just detailed like script responses, and so that's the the pretty json views json is the JavaScript object notation, so if you have a variable in JavaScript, it's in json And so you can open that up and see All the different things Who have I lost at this point? Just completely confused. No, I'm not doing my job Okay, next we have the audits pane and this is great Because this is actually a human readable Report, you know before I'm telling you to do all the work go through the waterfall view figure it out That's what I like to do, but some people just want a summary They just want you to tell oh your images are slow The audits pane actually like they added this more recently and it gives you a lot of great information So you can run an audit on a page, and it will give you a report and tell you And it will simulate a slow connection by default and why you want to do this is because like Let's say somebody's on a mobile phone And they only have 2g and they're trying to load your web page you might not have designed it for that You might not have thought about that use case, but it happens And so then you want it to load really fast, you know You might be on your desktop at home with a nice internet connection thinking my pages are really snappy But when you're on that phone, they're not and you aren't looking at it And this will try it like that first and then you'll say oh my website's really slow don't freak out It's not that slow not most of the time, but it could be faster, and it would help those people if it was And it will it will build that whole report. It has just so much information and There's also a chrome extension. There's a lighthouse chrome extension the tool is called lighthouse It's from a third party, and I believe Google licensed it But it still shows up in the audits tab and chrome by default And there's also an extension that you can use just like so you don't have to open the inspector and get in there You can just click that button and get a report for the page.  It takes huge pictures. They don't need to be that big on your website Cameras these days are amazing DSLR cameras are incredible. They take enormous pictures And so you're gonna upload that into WordPress and by default WordPress will have that full-sized image It doesn't always load that full-sized image, but it might depending on where you are on the site WordPress tries to resize your images down But you know it doesn't always fix it for you not by default not out of the box and so If you have a photo just like a straight up you took a picture of a person or something Or a scene a beautiful landscape You want to use JPEGs for that and probably you already do when you take that photo on your camera But maybe you got a stock photo. Maybe you got a photo from somewhere else Maybe you got a really high quality bit of artwork that's used for a designer and it's in a PNG Even though it's a picture of a person or a landscape You don't want to upload that directly into your website as a PNG. You want it as the JPEG Yeah, you don't want to do that You can actually download that picture and you can upload it again And so here's the thing there's a plug-in called insanity and I recommend this It's great for a number of reasons It has you can put in a maximum dimension for your image uploads You can say I don't want anything that's wider than 2,000 pixels or 1,000 pixels if you know you're never going to need that on your site You can set a compression level so by default WordPress defaults to 82 for a JPEG compression level You don't want it to be a hundred. It doesn't need to be that high quality and some of these stock photos Even if they're JPEGs might be like a hundred There's also an option in insanity that you can check to say convert PNGs to JPEGs for me And so if you know you're never going to want a raw PNG on your website You can do that and then when you uploaded it it will automatically get converted to a JPEG And that's really nice And so that's the situation if you had that plug-in and you went in the settings for it And you checked that box then the next time you uploaded that image you could just download it Delete it upload it again set it as an image in your post or wherever you're using it And then it would be converted to a JPEG for you Okay, well, that's nice that that probably does a pretty good job on images But I don't know that would automatically convert it for you, but we can take a look at that later There are also other tools you can use to optimize your images if you're on a Mac There's a great tool called image optum that will try to recompress your images It will do a good job of just crunching them down without losing any detail There is an option in there for if you want to actually reduce the quality as well and still have it look okay But that's not turned on by default. So if you just get image optum out of the box It doesn't change the quality of your images, but it tries to make them smaller in file size There's another tool called image alpha that is just for PNGs That's for reducing the number of colors and still having it look good So if you need to have a PNG because you need to transparent image Then you can use image alpha to try to reduce the size if it's really big And then there are similar tools on windows I'd say equivalents to those two are file compressor and color quantizer Respectively so file compressor is like image optum on windows it can crunch down images Color quantizer is like image alpha. It can reduce down PNGs If you're on Linux, you can probably figure this out for yourself But but that's you know just handy gooey tools for Mac and Windows And then if you have logos or line art SVGs are good for that So you wouldn't convert something to an SVG probably But if you were using illustrator or something you might have something as an SVG And you can use those on the web now and they'll display it like pretty much fine And they're usually pretty small Although you know again, it's always worth looking at the file size to verify that What is it Scalable vector graphic is what SVG stands for so it's line art and then the lines are just like clean strokes Right right there you go All right, so maybe your problem isn't that your images are just too big Maybe your problem is that you just have too many little images Maybe you've got a gallery on your page Maybe you've got a wedding website and you've got like a hundred images or five hundred images There's some crazy amount of images that you had that you took And so there are lazy loading plugins. There's a plugin called lazy loader There are actually a lot of these if you look for this feel free to try them and see what works for you I like lazy loader. There are different ones And what it will do is it will only load the image If it's on the screen And so when you scroll down it'll be pulling in more images and usually they'll be pulling in Before you even see them because usually these things happen pretty quickly But it doesn't happen quickly if it's trying to pull in 500 images at once it happens If it's just pulling in a few images at once it can just devote all those resources to those few images and load them faster Also, this helps the page load quicker when you just first load the page Because it doesn't have to load everything because you aren't looking at it yet by default browsers don't know what you're looking at They're they're trying to fix that Google is working on that They're trying to get lazy loading just built into Chrome But at the moment, you know, you still want to plug in like this because not all browsers would do that Also, there are sort of more technical ways to combine images together There are tools for building image sprites Which is literally like a big image that has a bunch of little images in it And you just show little parts of that a lot of websites use that for Things that show up on a lot of pages and so like again with Google if they have like they always have the logo And then they have a couple arrows and then maybe have some dots that they display for pagination Just different design elements. So a lot of times a design shop will combine that together into an image sprite So it only has to load a single image and then they can use CSS to just selectively show parts of that image And so that's a neat trick There are also data URIs you can actually put an image into your CSS Into your style sheet by encoding it into a data URI You don't really want to do that for a big image because it takes up space and your CSS is loaded across all your pages usually But you might want to do it if there's an image that just you know shows up on all the pages Because then when your CSS file loads those images also load along with it and they're just referenced in the CSS So that's another neat trick Now I should say the only reason you do this at all is because HDP The transfer protocol on the web Used to be very slow for having a bunch of resources that it has to fetch Because it would get each one and have to talk back to the server And so there's a newer protocol called HDP 2 and if your web server supports that and if you're in the chroma Inspector, it will tell you it will tell you what the protocol is for all the connections So it'll say HDP slash 1 HDP slash 2 different things If you see that slash 2 then you'll know that it's actually going to be faster for having a bunch of small resources because it keeps that Connection open so it doesn't have to keep talking back It just says give me these images and it just streams them all through that open connection And so then you don't have to worry as much about having a lot of small images They still load pretty fast or a lot of small CSS files or a lot of small JavaScript files So if you know your server is HDP 2 then the number of resources isn't as important It can still be important because JavaScript files can load other JavaScript files So you could be waiting for something to load that and if it was minified it would just pull in one JavaScript file But in general that speeds things up for small resources But you would need to make sure that's configured on your web server or have somebody do that for you If you don't know how to do that So that would actually be like a configuration file in a setting on a server That someone would have to change and restart and it might not always work And you'd probably want to test that out somewhere else first before you go taking down your server if you're using that for anything If you do just have too much CSS or JavaScript and you want to compress it or minify it together There are a couple of good plugins for that One of them is called auto optimizer or auto optimizer Somehow they just thought to just stick that 1.0 in there and I don't know if it's British or how you say that And then there's also BWP minify So between the two of those I'd say auto optimizer probably has less settings, but they have like a button to see more settings They're both pretty robust A danger with minification is it's always possible that something could minify Incorrectly and you wouldn't see it right on your site So it could break your layout or it could just cause a script to give an error These two plugins are usually pretty good But they also have some options for if you know there's a script that causes problems to say Don't minify this one script minify everything else together and then this one That's a problem just keep that one out and usually it takes some trial and error to figure that out if you have that problem Where you need to troubleshoot like which script you have to sort of play whack-a-mole and say okay Is that this one is that one maybe just disable half of them and narrow it down You know, hopefully you won't run into that but that can be a problem with minification All right, so now we get to caching plugins. Maybe you've heard about caching The basic idea is that you just want the server to Render and output whatever it's going to do and then you store the result and the next time you can just give them that saved result and so There are two really big caching plugins in the space. There's WP supercache and W3 total cache And they sound kind of similar But they're they're pretty different WP supercache is definitely simpler When you first enable it and turn it on so the good thing is is you know, you have sort of less options to look at However, it also does less. So it is a simpler plugin actually It does page caching and that's great if that's all you need You know, so it will you go to a page if you're not logged into WordPress It will save that out and it will serve that same page to everybody and sometimes that works fine And and so that's that's sort of your basic. It doesn't cache things from the database. It doesn't cache Objects or code and WordPress on your site things that it generates Intermediate results. It doesn't do that. It just does the page just HTML and then it serves that fast And so that's that initial time to first bite. That's what we're optimizing here W3 total cache the great thing about W3 total cache is it's got a lot of features The problem with W3 total cache is that it's got a lot of features Yeah And and it does it does have a page cache. It also caches objects. It caches things from the database It is the all singing all dancing bear. It does all the things You have to go through and configure it. You have to be very careful with it You have to know what all these options are But if you have a complicated site, it might be worth that pain to get that payoff to speed up things You wouldn't otherwise be able to speed up if you have a simple site. You probably don't need it at all It also has a minifier built in never use the minifier I've never had luck with the minifier that's built into W3 total cache That's why I recommended two other minifiers before I even got to it Yeah, just don't even turn that on pretend. It's not there, you know, if it works for you great I've never seen it work But other than that, it's a great plugin. I don't know why the minifiers busted And then for the object caching specifically if you're programming in WordPress, you can also use the transience API So if you're a developer, it's a way to sort of store information for those intermediate results And then that way they will show up in the object cache So if you're aware of that if you know you need that you can program to be aware of Putting things in the object cache when you're using W3 total cache. That's sort of an advanced tip Also, if you're doing that there are different backends for the object cache So these are other programs that store that information. I like to use memcached. It's pretty simple It's a basic key value store. So you're you know looking up data by name In memcached and usually that's pretty good You would have to also configure that on your server to run and then it would show up in W3 total cache And you could say use memcached for the object cache. So again, if you know you need that that's useful So you do all this and it's still slow You've done everything you can do. You don't know why it's still slow Maybe it's your web host If you're on shared hosting don't use shared hosting It could be somebody else's on your server slowing you down and the reason you got a cheap deal on that web Post is because of that is because there's eight other people and one of them has a big site and it's just falling all over I don't think that's as much of a problem as it used to be But it used to be people were just on cheap posts and it could be very slow for that reason You know and sometimes you do get what you pay for For the web server if you control your environment Consider using engine X over Apache Apache was sort of the default web server that everybody used for a long time And engine X came out later and it didn't have as many of the features as they had maybe 90 percent of the features Than Apache Apache is very full featured, but engine X was a lot faster. It was just focused on performance So, you know, if you if you know what all those letter mean letters mean then Consider setting up engine X on your server Otherwise go to a host that does it for you and see if that says that when you signed up for that host Along with engine X it plays well with PHP FPM, which is a specific server for running PHP And so those two together very speedy combination. That's just pretty good out of the box. They work well together If you do all that and things are still slow There's another static page cache that it again runs as a server in front of your web server called varnish and you can set that up and If varnish is too hard to configure which it usually is varnish is pretty complicated You don't always know what it caches. You don't always know how to flush the cache If you figure all that out, you're probably a varnish expert at that point You should probably start a company like fastly because they've already done this They just put their varnish servers in front of your server and you can use it as a service Cloudflare in general works the same way But it's it's sort of in the CDN market Cloudflare is an interesting company because they started out trying to be a security company and they said we're gonna protect people from Attacks and people were like we don't really care about that But you sped up our website and we like that and so Cloudflare was like we're gonna speed up your website They they pivoted they they changed that entirely But but they they start out as a free service and you can have Cloudflare in front of your website and it'll speed it up Or if their servers are down then you'll see a notice the Cloudflare servers are down This is the problem with having somebody else's server in front of your server I've seen that notice before too, but I expect on balance. Usually it's faster There's also CDNs I should mention CDN stands for content delivery network The idea is that they have a lot of servers all over the globe and it tries to use the closest one geographically to where your users are So if you have a web server that's in England and I'm in California, but you're on a CDN Then maybe it fetches it from closer to California Because it has just different servers where they've mirrored all your content so that can go out and find it That's what that service is There is in the jetpack plug-in there is a free image CDN called photon And so if you're using that it will store your images on their servers and that will speed things up And so you can just try that out and see if it works for you if you have slow images and see if that speeds it up Also way back in the beginning when I mentioned the waterfall tools. This is a test You can actually use them to test from different locations So in Pingdom, you can say try it from the West Coast And it will use a server there and tell you the speed from there So if you are concerned or you know your customers live somewhere else you can try that out Yes, okay, so I just got a cloud player excellent To go with the short pixel plug-in right right, but I have clients two of them that have lots of pictures And I need to get them onto a CDN One of them is a newcomer, so they already have jetpack. They're using it. Nice. Should I use the photon one? Yeah, yeah, if you if you already have jetpack try it out You know because it costs you nothing to just check that box and photon And and see if it works and see if it speed things up and that's by far the easier solution if you're just doing it yourself You know if on the other hand you want to speed up the whole site if you know there are slow other things that are slow other CSS JavaScript, and it's not the images that are the problem then consider cloudflare because photon will do nothing for the rest of it It just is an image CDN Yeah, yeah cloudflare is like just having something in front of your web server that serves all your content But it does it from different locations And so it geographically tries to be smart and pick the best one if it knows that my IP address is coming from somewhere else Right, yeah cloudflare is everything. Yeah Photon is just images, but if images are the problem, maybe photon is enough. So that that's sort of the trade-off And so if you've done all that and things are still slow Maybe you've optimized your website and you just have a lot of traffic. Maybe you're really popular This is not a bad problem to have hopefully you're making money on this if you've got a website that operates that at a large scale And at that point you can afford to invest more in infrastructure, and so then we're talking about scaling out And so maybe you need separate or multiple front-end servers Maybe you need different servers serving the PHP and the images Even though you have the CDNs the CDNs eventually have to talk back to your server And so you're still getting traffic. You're not getting as much traffic, but it still needs to be fresh It still needs to update sometimes Or if you have like a membership site if everybody logs in it might not be able to cash as much because you need specific Profile information you need, you know, and so it can't cash all that if it's like my user isn't the same as your user So like Facebook, you know, they operate at scale. Everybody sees something different. That's a hard problem That's a lot of you know, sort of combinations of things. Everybody's wall looks different. They change it all the time That's hard to cash. You can't do a static page cash for a long You know, maybe you can do that for like 30 seconds, but you know, you can't do it for 15 minutes as people are still refreshing it There's HyperDB Which is again sort of low in the WordPress stack It's something that you can put in there for talking to the database for partitioning and replication Hopefully if you if you you know if you can figure out what I'm talking about there, you know, you might know about it or need it The idea is that, you know, if you have a WordPress multi-user site You might have different Different sites that are on sort of like different databases and HyperDB is how you would do that So you could say like on this, you know on this MU site You've got like 200 servers on the site. So maybe 20 of them are over on one Database server and 20 are over on another and you can you can parcel it out like that. So that's sort of scaling out On AWS on Amazon web services, they have a product called Aurora They can do database clustering so it'll look like one database But it's actually multiple servers clustered together and they can have multiple Readers and writers and so you can have just sort of different servers Serving that so even though it looks like you're just talking to one instance It's actually faster because it's coming back faster because they have multiple servers on the back So that's sort of again high-level scaling But that is an option. I mean you could do that you could set that up You could completely over engineer your blog on Amazon web services and be ready to operate at scale And then realize you're just paying too much money because you're not getting that much traffic yet Or maybe you need it and so that that sort of concludes the basic performance optimization piece But I wanted to talk a little about Sort of more more technical With the WordPress REST API it's possible to just dynamically pull in content So even if you have a static page if you know you have one dynamic element You can have the REST API pull that in and so the example I wanted to use was something like a fortune like a fortune cookie or like a quote Maybe you have something that you randomly want to rotate on a page Typically that doesn't work well with a static page cache You know you wrote all this this PHP code or somebody did to get a random quote You installed your static page cache and now it's the same quote all the time or it's the same quote for an hour Because it cashed that static page And so this is an example of how you could do this with the REST API and have it just pull back new content every time Because that's in JavaScript And the JavaScript is on the client side then the client just fetches the new quote every time and they could reload The page every second and pull back a new one, but the rest of the page is still static So the page loads fast and then that content pops in and So this is if you go to github.com slash P. Bayless, you'll see this WCAVL fortune repo There's one file in it I'm going to go over most of it in the next couple slides if you don't understand what's going on there Don't worry about it So the first thing you do with a post type is you register your post type And the key thing here is there's this show in REST flag when you register a post type And if you set it to true then you can use that in the REST API And if you don't then you're going to be like why is the REST API broken? I can't see my post type and it's because you didn't do that And so that's the the key thing if you want to use the REST API to pull post out of a post type It has to have that show in REST flag set to true when you register that post type So here I'm registering a post type called WCAVL underscore fortune And then when you do that you'll see like a fortune label and the WordPress admin and then you can post fortune posts And that's your basic how you create a post type and you would have that code in a plug-in Which I have on that GitHub and then this is your basic code to fetch one of those fortune posts I put this in jQuery because this is actually shorter If I had written it out and just draw a JavaScript it would be longer I'll show you that next and we'll just completely gloss over it because it's way too long to just read on a slide But yeah, here you have you have a div at the top it says show fortune I gave it an ID And then you're going to put content into that div. So that's your placeholder So this is still static you have a static div. It has nothing in it And then this is your script and then in the script you see that Ajax right there That does your Ajax request it pulls it in from a URL on your website The slash WordPress slash is actually hard-coded. I probably should have done that But that's where my WordPress installation lives if you're doing this, right? You would want to use something like site URL and pull that in And then you have the rest of the URL to it. And so that's your usual rest API URL So the WP JSON I told you about JSON before it pulls things back in the JSON object model It's a JavaScript variable Slash WP slash v2 slash and then the name of my post types there's the WCA BL fortune and then Slash question mark and then we have the options for pulling things out And so this is what you'd see in WP query So that's the post per page the offset and so I'm saying Perpagination is one you only want one page one one one post The offset is how far you seek in there and so like maybe you're just going through like three posts or something But I don't have that set to a number because if I hard-coded it to three you would see the same post every time And so I have some code here some more JavaScript to say, okay I want a random number and then multiply that by the total posts and give it to me as an integer and So say like and then that might come up with post three or might come up with post four And then it fetches that post data and once it's done We shove that post data back into the show fortune div and then it just pops in and so that's the basic idea behind this code And so that that's sort of the the amount of effort required to do something like that or If you weren't using jQuery it would look more like that and that Probably looks like more work and you know actually I can still read that from here I was thinking I would have a smaller screen, but that's still probably too much to go through on the slide So, you know, that's why people use jQuery folks Everybody's like oh you can write it in raw JavaScript. It's the same thing. It's great.  And then having to wait for that file to load or do you want to spend your time writing longer code? And then you know waiting for that and you're like well, it's less kilobyte. Yeah, but but you spent time doing it So there's always sort of that trade-off between libraries that help you and more code to load in on the front Versus more code for you to write because you didn't use that library Now we talked about the REST API and the REST API is great But there's some overhead to it because every time you make a REST API call in WordPress It has already loaded all your plugins It has already loaded the theme and I told you guys I just want one post out of this fortune post type Do I need an SEO plugin for that? Do I need a caching plugin for that? I'm not caching it. I'm just I'm pulling the post back So there may be some you need there may be some you don't and you want to sort of step back and look at that and say Okay, is this fast enough or do I need to make it faster? Is it taking too long for that quote to pop in if it does it taking two seconds to load all my plugins in my theme every time? and so This gets pretty technical and that you'd need to create a must-use plugin to be able to override other plugins And so that that shows up in the WP content slash mu plugins directory Most of the time, you know, if you don't know what a new plugin is you probably don't want to be writing one Because that's getting just sort of into the more dangerous. It's basically a plugin. You can't deactivate It's always running. You don't even necessarily see it on the plugins list. There is a tab for it But you might not even notice And so it's just for things that you always want to run And in this case it would just be very short and it would just check and say is this URL going into the rest API If so, maybe what rest API call is it, you know, is it this fortune one? And then if so Don't run these other plugins and it's powerful. It can do that because it loads before the plugins load So it can tell WordPress not to load things And so that's what this option action active plugins filter is The active plugins option controls all the plugins that load and so you can grab that and you can manipulate it before the plugins load And say don't load this one. I know this is slow. I don't need it for the rest call I'm going to just deactivate it. It doesn't deactivate the plug-in like in the admin It's just temporarily for that request that plug-in just doesn't even load and no one's the wiser Because you decided I don't need it for this And so that's just getting sort of into the into the weeds of the fine tuning of WordPress But that's what you do when you really need to speed things up There's also a constant in WordPress called doing Ajax that was used sort of in the legacy previous Ajax system If you remember WP admin admin Ajax That's where we used to do Ajax calls and that still has a lot of code in WordPress where it would say Oh, you're doing Ajax. You don't need to do this And so you could set that and that would also speed things up before the rest API even loads in that same way So that's sort of another hack that you can do If you need to really speed up a rest API call Also going even deeper than that You can have a standalone PHP script just for doing rest API's and bypass the rest API entirely And there's a short knit constant and that if you enable that first it doesn't even load the plug-ins It doesn't load the theme it doesn't load most of WordPress But if all you need is a post you might be able to pull out a post with a little bit of WordPress It does load so that's super fast, but it also gives you almost no functionality And you're hitting just like a standalone PHP script. That's just barely talking to WordPress So I'd say for most use cases you don't even need that that's probably overkill But if it has to be really fast, I was actually talking to Michael wood earlier And he was telling me a use case for this and I'm just going to steal this and tell you And it was like an autocomplete, you know So you know when you're live typing and then it comes up with the suggestions But it updates every time you press a key They needed to do that short knit solution because that was the only way it could be that fast Because if it took a second or two seconds to load a theme or all the plug-ins and every time you're waiting to see what happens When you press that key you would not use that autocomplete you would not type into that search field But if it comes back in 50 milliseconds, you can type just fine And so that was the use case and so it doesn't happen often, but it can happen And then you can also cash responses from the rest API so for this fortune example Maybe you've already seen this quote before but it pulls it in again when you read the page because maybe you've gone through all the quotes And so then it would pull it back faster because it's seen that rest API call And so there's a plug-in called the WP rest cash I don't personally use this because I had sort of a custom Solution I did where I actually sort of compressed the things first and it's a little complicated But for simple rest calls, it's great And it actually adds some filters in front So there's this rest rest cash headers filter where you can actually send special Headers to the browser and say like, you know, I want to cash this for 900 seconds or something You can just specifically control that And that's a nice feature that they added And so I'd say like as a developer It's useful sort of looking into that WP rest cash plugin and seeing what they did and how they did it You know at least as an example Alright, so at this point we're probably overdue for questions Anything you guys want to know about or talk to me about or questions you have about your site doesn't have to be You know, hopefully you're talking about speeding it up, but other than that Anything I'm just gonna assume I went through all the things and did a great job But feel free to talk to me afterwards